1. 10 Mar, 2019 2 commits
    • Jakob Botsch Nielsen's avatar
    • Jakob Botsch Nielsen's avatar
      Refactor finite map/finite sets and prove map-list/set-list equality · 5e814944
      Jakob Botsch Nielsen authored
      * Pull the functionality we need into a Containers.v file that takes
        care of including the proper implementations of fmaps and fsets.
        Additionally, this file defines notation/new names.
      * Stop using map/set notation for operations. This conflicts with
        lists/record-set and is generally a head-ache.
      * Switch to lists instead of AVL trees for the sets and maps. This
        allows us to prove (assuming proof irrelevance) what we need:
        FSet.of_list (FSet.elements x) = x. Prove this and the equivalent for
        fin maps.
      * Do not use program instances in Oak.v. We can do with instances which
        generate a lot less bloat.
      5e814944
  2. 08 Mar, 2019 4 commits
    • Jakob Botsch Nielsen's avatar
      Add Blockchain.get_contract_interface and create_deployment · 11c14413
      Jakob Botsch Nielsen authored
      These functions allow interacting with contracts in a strongly-typed
      manner without having to serialize/deserialize manually.
      Also adjust test to use these.
      11c14413
    • Jakob Botsch Nielsen's avatar
      Add a working example using the Congress · 0bcb6c0c
      Jakob Botsch Nielsen authored
      This adds a small example that uses a local blockchain to deploy a
      congress and do a transfer with it.
      
      Also fixes bugs to make this work.
      0bcb6c0c
    • Jakob Botsch Nielsen's avatar
      Drop support for Coq 8.7 · c66e14a1
      Jakob Botsch Nielsen authored
      Coq 8.7 does not support notation patterns.
      c66e14a1
    • Jakob Botsch Nielsen's avatar
      Implement execution in LocalBlockChain · 357cd8df
      Jakob Botsch Nielsen authored
      This implements a depth first execution of chain actions with support
      for deploying contracts from contracts and calling into other contracts
      recursively. To support these things, contracts need to exhibit a
      bijection of their types from and to OakValue. This machinery is modeled
      with type classes. Then, use this to avoid having to store strongly
      typed contracts anywhere; instead, a contract can be converted to a
      WeakContract instance (using a coercion). The WeakContract verifies that
      messages and states serialize/deserialize correctly and then passes
      everything along to the strongly typed contract under the hood.
      357cd8df
  3. 06 Mar, 2019 2 commits
  4. 05 Mar, 2019 1 commit
  5. 04 Mar, 2019 4 commits
  6. 02 Mar, 2019 1 commit
  7. 01 Mar, 2019 3 commits
  8. 28 Feb, 2019 3 commits
  9. 27 Feb, 2019 7 commits
  10. 25 Feb, 2019 1 commit
  11. 22 Feb, 2019 2 commits
  12. 21 Feb, 2019 5 commits
  13. 20 Feb, 2019 5 commits