1. 19 Apr, 2019 1 commit
  2. 18 Apr, 2019 6 commits
  3. 19 Mar, 2019 1 commit
    • Jakob Botsch Nielsen's avatar
      Introduce FullTx type exposed by ChainBuilder · fd2bb5a5
      Jakob Botsch Nielsen authored
      This contains _all_ information that happened in a transaction (for
      instance, including the exact contracts that were deployed). The
      ChainBuilder exposes the trace of transactions (as FullTx values) that
      have happened in the chain.
      fd2bb5a5
  4. 12 Mar, 2019 1 commit
    • Jakob Botsch Nielsen's avatar
      Abstract ChainBuilder and rename LocalChainEnvironment -> LocalChainBuilder · 8038826a
      Jakob Botsch Nielsen authored
      The ChainBuilder represents the full implementation of a blockchain
      containing all operations (such as adding blocks) and state (such as
      full contracts with their receive functions). Such a value is
      convertible to a Chain (but not vice versa). This is where we will state
      general properties about how the block chain behaves temporally.
      8038826a
  5. 11 Mar, 2019 1 commit
  6. 10 Mar, 2019 1 commit
    • 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
  7. 08 Mar, 2019 2 commits
    • 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
      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
  8. 06 Mar, 2019 1 commit
  9. 05 Mar, 2019 1 commit