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.
  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.
  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.
  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.
    • 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.
  8. 06 Mar, 2019 1 commit
  9. 05 Mar, 2019 1 commit