Skip to content

Latest commit

 

History

History
193 lines (163 loc) · 18.2 KB

CHANGELOG.md

File metadata and controls

193 lines (163 loc) · 18.2 KB

Mosaic Contracts Change Log

Version 0.12.0

Notable Changes

  • Implementation of RedeemPool Contract (#790, #791)
  • Implementation of Redeemer Proxy Contract (#790, #791)

Version 0.11.0

Notable Changes

  • Gateways should store roots in ring buffer #726
  • Autogenerate contract interacts using typechain/ts-generator #781
  • OSTComposer StakeRequest object storage optimization #778
  • Destructing staker proxy via ost composer contract #777
  • Hashing of a stake request now confirms EIP-712 #776
  • activeStakeRequestCount removed from OSTComposer contract #775
  • Mutex refactoring and nonce removal check from StakerProxy.stake #774
  • Ost composer contract #750
  • Staker proxy contract #745
  • Generate proof data #743
  • Retains a pattern of generated proof data #760
  • Parallelize Travis CI #746
  • Fuzzer that generates the valid Merkel Patricia Proofs. #729
  • Integration tests for redeem and unstake after revert stake #753
  • Integration tests for revert redeem #747
  • Integration tests for progress stake and mint after revert #752
  • Integration tests for redeem & unstake with proof #734
  • Integration tests for revert stake #732
  • Integration tests for stake & Mint with proof #730
  • Correct setting of auxiliaryAccounts in integration tests #761
  • Merkle Patricia Proof Generator Tool #717
  • Code deduplication, UtilityToken, Organization dependencies are imported using git submodules, SafeMath dependency is imported as npm package #728
  • Change references from (branded) token to value token #710
  • Gateway nonce now starts at zero #715
  • Improved variable names in GateawayBase.feeAmount() #713
  • Token type as address instead of EIP20Interface in UtilityToken #714
  • Improved message bus documentation, using explicit inboxMessageStatus and outboxMessageStatus #709
  • Updated vocabulary, coin and ost instead of base token and token #686

Version 0.10.0 ⚓️ Anchor

A gateway for a given EIP20 token is comprised of a EIP20Gateway contract on origin and a corresponding EIP20CoGateway contract on auxiliary. On auxiliary there is an EIP20 utility token contract that mints and burns utility tokens. It atomically mirrors tokens staked and unstaked on the origin chain.

Atomicity is achieved using a 2-phase message passing architecture between the chains. Messages are declared on the source chain and confirmed on the target chain. In order to confirm a message, a facilitator uses a Merkle Patricia proof once the source chain's state has been transferred to the target. Once messages are confirmed on the target chain, the facilitator can efficiently progress them by providing the hash lock secret. Alternatively, anyone can progress the messages with two more Merkle Patricia proofs. Progressing with proofs does not require knowledge of the hash lock secret. Messages can also be reverted if they are not yet completed on the target chain.

The current release uses a "anchors" to provide state roots from remote chains.

Notable Changes

  • Penalty is now burned on revert stake and revert redeem instead of returning on progress stake with proof and progree redeem with proof(#668).
  • MerklePatriciaProof library can now verify valid proof with extension nodes (#651).
  • Contracts' ABIs and BINs are provided via npm package @openstfoundation/mosaic-contracts (#619, #637).
  • Contracts are now separated into "Gateway" and "Core" contracts (#221).
    • Core logic is now cleanly split into a "mosaic core" and an "anchor" (#522, #549).
  • Gateway can now interact with decentralized mosaic core (#463).
  • Introduced a new state-machine based message bus (#293).
  • Gateways are now based on the new message bus (#293).
  • Redeeming no longer requires a facilitator argument (#517).
  • CoGateway can no longer be deactivated (#518).
  • Stake and redeem now support "zero gas price" (#521).
  • CoGateway no more mints zero reward amount for facilitator (#527).
  • Mint and burn now changed to increase and decrease supply (#529, #540).
  • OST prime supply is now increased as base token (#559).
  • Claim and redeem are now called unwrap and wrap. Claim and redeem events are now called token unwrapped and token wrapped (#533).
  • The gateways now accept a "burner" argument. All burnt value will be sent to the burner instead (#542).
  • Staker can now stake without providing signatures. This also means that there is now only one actor known to the Gateways (#548).
  • Gateway and CoGateway now check that the stake/redeem amount covers at least the potential reward (#600).
  • Penalty is returned to the staker and redeemer on progress stake and progress mint, if revocation of message is declared on source chain and target is already progressed (#576).
  • Anchor now stores only recent state roots (#546).
  • Contracts can now be Organized in line with openst-contracts (#513).
    • Gateways are now Organized (#515).
    • Only the organization can anchor state roots (#560).
  • Objects are now hashed according to EIP 712 (#399, #566).
  • Added tools to make deployment of mosaic easier (#458, #550).
  • Naming of RLP encoded parameters and variables is unified (#528).
  • Added getter functions for easier interaction (#598, #600, #601, #602).
  • Significantly improved test coverage (various PRs).
  • Significantly improved readability and maintainability (various PRs).
  • Stake and mint integration test (#634).
  • Redeem and unstake integration test (#638).
  • Ported repository to Truffle v5 (#334).
  • Ported repository to solidity 0.5.0 (#480).

Updates to Mosaic Core

  • Core contracts implement an initial version of the Mosaic protocol (various PRs).
    • Report block headers of both chains to the respective block stores.
    • Vote on checkpoints (Casper FFG style).
    • Propose meta-blocks to origin.
    • Verify a seal on a proposal on origin.
    • Transfer the new kernel to auxiliary.

Known Issues of Mosaic Core

  • Circular dependencies between mosaic core contracts on auxiliary.
  • Validators can not yet join an existing set of validators.
  • Validator rewards are not handled yet.

OpenST-protocol v0.9.2 March 27 2018

OpenST v0.9.2 improves usability to facilitate application by the OpenST-Platform and other services. Additionally, this release increases test coverage, with additional unit and integration tests, and adds continuous integration with Travis CI.

Detailed changelog:

OpenST-protocol v0.9.1 December 19 2017

OpenST v0.9.1 is the first release deployed on Ethereum mainnet combined with the activation of Simple Token to power the OpenST platform. The OpenST platform allows Ethereum smart contracts to runs faster and cheaper while leveraging the security properties of Ethereum's Proof-of-Work. In this release we implement the first corner stone of the protocol: the ability to stake value on Ethereum mainnet and mint a new representation of that value on a utility chain, effectively increasing the computational throughput of Ethereum smart contracts by allowing parallel execution across chains.

OpenST smart contracts have been restructured to store value separately from the logic that implements the protocol. v0.9.1 is not yet protocol complete as the validators are whitelisted and not yet open with stake put forward on Ethereum mainnet. However, by splitting the protocol implementation into these two logically separate problems, we can already start working with member companies and developers to fine-tune the APIs and the developer experience to build mainstream applications on Ethereum.

  Ethereum mainnet (value)   |  OpenST platform (utility)
  ---------------------------------------------------------------------
      Core - - - - - - - - - - - (Core)
      /                      |      \
     /                       |       \
  Registrar                  |  Registrar
    |                        |        |
  OpenSTValue                |  OpenSTUtility
    \_ SimpleStake           |    \_ UtilityTokenAbstract
                             |         \_ SimpleTokenPrime (base token)
                             |         \_ BrandedToken

Detailed changelog:

OpenST-protocol v0.9.0 November 8 2017