Skip to content

Commit

Permalink
Merge pull request #683 from OpenST/release-0.10
Browse files Browse the repository at this point in the history
Release 0.10
  • Loading branch information
0xsarvesh authored Mar 28, 2019
2 parents 62a46e7 + 8374b2e commit f85ee21
Show file tree
Hide file tree
Showing 394 changed files with 57,874 additions and 15,729 deletions.
21 changes: 21 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"extends": [
"airbnb-base"
],
"rules": {
"no-console": "off",
"no-underscore-dangle": "off",
"import/no-extraneous-dependencies": "off",
"strict": "off"
},
"env": {
"mocha": true,
"node": true,
"es6": true
},
"globals": {
"artifacts": false,
"contract": false,
"assert": false
}
}
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.sol linguist-language=Solidity
25 changes: 25 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,28 @@ contracts/abi/

# don't commit node_modules
node_modules

# Don't commit package-lock.json file
package-lock.json

# Do not track builds
build/

# Do not track IDE files
.idea/
.vscode/
*.iml

# LaTeX auxiliary files
*.aux
*.log

# NPM package generated files:
dist/contracts.json

## Build tool auxiliary files:
*.synctex
*.synctex(busy)
*.synctex.gz
*.synctex.gz(busy)
*.pdfsync
5 changes: 5 additions & 0 deletions .solcover.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions .soliumignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
node_modules
contracts/truffle/Migrations.sol
16 changes: 16 additions & 0 deletions .soliumrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"extends": "solium:recommended",
"plugins": [
"security"
],
"rules": {
"quotes": [
"error",
"double"
],
"indentation": [
"error",
4
]
}
}
13 changes: 10 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ branches:
only:
- master
- develop
- /^feature\/.*/
- /^release-.*/
- /^hotfix-.*/
notifications:
email:
recipients:
Expand All @@ -20,8 +23,12 @@ before_install:
install:
- npm install
before_script:
- nohup ./tools/runTestRpc.sh </dev/null >/dev/null 2>&1 &
- ./tools/runGanacheCli.sh </dev/null 1>/dev/null 2>&1 &
- npm run compile
script:
- truffle test
- npm run test
- npm run test:deployment_tool
- npm run test:integration
- npm run build-package
after_script:
- kill $(ps aux | grep 'testrpc' | awk '{print $2}')
- kill $(ps aux | grep 'ganache-cli' | awk '{print $2}')
76 changes: 74 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,76 @@
## OpenST-protocol [v0.9.2](https://github.com/OpenSTFoundation/openst-protocol/releases/tag/v0.9.2) March 27 2018
# Mosaic Contracts Change Log

## Version 0.10.0 ⚓️ Anchor

<!-- [**Release 0.10.0, (<date-here>)**](https://github.com/OpenSTFoundation/mosaic-contracts/releases/tag/0.10.0) -->

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

OpenST v0.9.2 improves usability to facilitate application by the [OpenST-Platform](https://github.com/OpenSTFoundation/openst-platform) and other services. Additionally, this release increases test coverage, with additional unit and integration tests, and adds continuous integration with Travis CI.

Expand All @@ -19,7 +91,7 @@ Detailed changelog:
- Tests: migrate unit tests for `Owned`, `OpsManaged`, and `SafeMath` from SimpleTokenSale repo ([openst-protocol #73](https://github.com/OpenSTFoundation/openst-protocol/pull/73))
- Tests: add integration tests for reversion functions ([openst-protocol #65](https://github.com/OpenSTFoundation/openst-protocol/pull/65))

## OpenST-protocol [v0.9.1](https://github.com/OpenSTFoundation/openst-protocol/releases/tag/v0.9.1) December 19 2017
## OpenST-protocol [v0.9.1](https://github.com/OpenSTFoundation/mosaic-contracts/releases/tag/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
Expand Down
46 changes: 46 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at support@ost.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]

[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
Loading

0 comments on commit f85ee21

Please sign in to comment.