Releases: omni/tokenbridge-contracts
TokenBridge Contracts 3.1.0
This version of TokenBridge supports operations in three modes:
- native coin to an bridgeable ERC20 token;
- an ERC20 token to a bridgeable ERC20 token;
- an ERC20 token to a native coin;
- relaying arbitrary messages (Arbitrary Message Bridging, AMB).
This release contains a reference implementation of the functionality to relay ERC677-to-ERC677 tokens through the Arbitrary Message Bridge. The documentation describing the contracts interactions for this implementation described in the the manual "How to develop a cross-blockchain application by using AMB bridge"
The following changes were included in this version:
TokenBridge Contracts 3.0.0
This version of TokenBridge supports operations in three modes:
- native coin to an bridgeable ERC20 token;
- an ERC20 token to a bridgeable ERC20 token;
- an ERC20 token to a native coin;
- relaying arbitrary messages (Arbitrary Message Bridging, AMB).
In order to get more details how to implement applications for AMB please refer to the manual "How to develop a cross-blockchain application by using AMB bridge"
The following changes were included in this version:
- Enhancement: New bridge mode supporting relay of an arbitrary message (#77)
- Enhancement: Support of different token decimals (#268)
- Enhancement: Enhance setStakingContract function (#274)
- Fix: Process validator's reward accounts only when used in deploy script (#272)
- Fix: Security update of project dependencies (#276)
TokenBridge Contracts 2.4.0
This version of TokenBridge supports operations in three modes:
- native coin to an bridgeable ERC20 token;
- an ERC20 token to a bridgeable ERC20 token;
- an ERC20 token to a native coin.
The following changes were included:
- Enhancement: Allow fixAssetsAboveLimits to fix partial amounts (#247)
- Enhancement: Add eth-gas-reporter codecheck for gas usage report on CI (#264)
- Fix: Remove redundant code from ERC677BridgeTokenRewardable contract (#249)
- Fix: EternalStorageProxy inheritance (#254)
- Fix: Increase code coverage (#250)
- Fix: Add param check in setDailyLimit and setExecutionDailyLimit methods (#255)
- Fix: Check proxy upgrade contract code (#256)
- Fix: Improve validator initialize gas usage (#257)
- Fix: Update ERC677Bridge to inherit from ERC677Receiver (#259)
- Fix: Set of minor fixes on contracts (#260)
- Fix: Move mappings key to constants (#261)
- Fix: Add missing events in initialize methods (#262)
- Fix: Travis coverage test run fails from time to time (#263)
- Fix: Dependencies updated to have
lodash
of 4.17.15 as per the GitHub security alert recommendation (#265)
TokenBridge Contracts 2.3.3
This version of TokenBridge supports operations in three modes:
- native coin to an bridgeable ERC20 token;
- an ERC20 token to a bridgeable ERC20 token;
- an ERC20 token to a native coin.
The set of changes made in this release is to address comments found during the security audit held by SmartDec. Here is the link to the report:
- Add 0x/sol-coverage code coverage (#191)
- Update setBlockRewardContract method validations (#197)
- Update reward management docs (#202)
- Remove proxyOwner method from proxy contract (#198)
- Refactoring as the security audit recommendations (#203)
- Add fee value check (#209)
- Fix claimTokens to support all token transfers (#213)
- Add unit test for incorrect length of signatures arrays (#204)
- fix fixAssetsAboveLimits imbalance if feeManager used (#218)
- Add claimTokensFromErc677 on erc20-to-erc20 contracts (#219)
- Remove returns from internal initialize method on HomeBridgeErcToErc (#221)
- Use OpenZeppelin SafeMath instead of its copy (#222)
- Remove duplicated logic on top of withinExecutionLimit (#223)
- Remove redundant fallback method on HomeBridgeErcToErc (#224)
- Remove duplicated checks of contracts (#225)
- Remove address mask in parseMessage (#227)
- Improve contracts names as per the security audit recommendations (#226)
- Fix missing required block confirmation check in ForeignBridgeNativeToErc (#229)
- Improve revert pattern as per the security audit recommendations (#235)
- Add validators amount limit (#239)
- Use external modifier instead of public as per the security audit recommendations (#236)
- Add Solhint solidity linter (#240)
- Update ERC677BridgeTokenRewardable to optimize the gas usage (#242)
- Fix random method visibility in BaseFeeManager (#246)
Moreover the next changes were applied additionally:
TokenBridge Contracts 2.3.2
Besides supporting the bridge operation in three modes:
- native coin to an bridgeable ERC20 token;
- an ERC20 token to a bridgeable ERC20 token;
- an ERC20 token to a native coin.
This version of TokenBridge contracts provides an ability to take fees from the transfer of assets through the bridge and distribute them among the bridge validator. More details can be found here.
The following changes were included in this version:
- Fix: Update deploy/package-lock.json (#188)
TokenBridge Contracts 2.3.1
Besides supporting the bridge operation in three modes:
- native coin to an bridgeable ERC20 token;
- an ERC20 token to a bridgeable ERC20 token;
- an ERC20 token to a native coin.
This version of TokenBridge contracts provides an ability to take fees from the transfer of assets through the bridge and distribute them among the bridge validator. More details can be found here.
The following changes were included in this version:
- Fix: Bad initialization of bridge Validators on deploy script (#187)
TokenBridge Contracts 2.3.0
Besides supporting the bridge operation in three modes:
- native coin to an bridgeable ERC20 token;
- an ERC20 token to a bridgeable ERC20 token;
- an ERC20 token to a native coin.
This version of TokenBridge contracts provides an ability to take fees from the transfer of assets through the bridge and distribute them among the bridge validator. More details can be found here.
The following changes were included in this version:
- Enhancement: ERC677 bridgeable token can be used by
BlockReward
contract (#129, #153, #157) - Enhancement: Add ERC677 support on foreign bridge in the
erc20-to-erc20
bridge mode (#177) - Enhancement: Dynamic gas limit for the deployment/configuration transactions (#178)
- Enhancement: Reward for the bridge validators (#130, #132, #134, #135, #141, #142, #144, #150, #151, #155, #164, #166, #167, #169, #171, #176, #179)
- Enhancement: Native-to-ERC20 bridge with the Ethereum Classic as Home chain (#156, #184)
- Enhancement: Support multiple evm versions (#161, #181)
- Fix: Replace default web3 provider URL in
.env.example
(#152) - Fix: Upgrade Node.JS version to 10 (#154)
- Fix: Avoid calling blockReward if zero value on the foreign transfer in the
erc-to-native
mode (#165) - Fix: Updating README with clarifications for usage
FOREIGN_DAILY_LIMIT
andFOREIGN_MAX_AMOUNT_PER_TX
(#172)
POA-bridge-contracts 1.2
This version of the POA bridge contracts supports bridging of a native coin to a ERC20 token. The code base is being used for the official POA bridge.
Only Rust version of the token bridge works with the logic implemented by this release.
The following security updates were applied to this version:
- any transaction is checked twice on both sides of the bridge if it is within limits in order to block possible malicious behavior of the validators (#109)
- meaning of security roles were updated (#116)
Please refer to the gists of the contracts code in the PRs listed above to get actual version of code deployed to both the POA core and the ETH Mainnet.
POA-bridge-contracts 2.2.0
This version of POA bridge contracts supports bridging in three modes:
- native coin to an bridgeable ERC20 token;
- an ERC20 token to a bridgeable ERC20 token;
- an ERC20 token to a native coin.
These contracts does not work with Rust version of POA Bridge, the POA Token Bridge (https://github.com/poanetwork/token-bridge) must be used.
The following improvements were done (#117):
- Meaning of security roles for accounts that could perform management operations over the bridge contracts was changed
- Security limits are introduced to reduce the impact of the validator's malicious behavior
POA-bridge-contracts 2.1.0
This version of POA bridge contracts supports bridging in three modes:
- native coin to an bridgeable ERC20 token;
- an ERC20 token to a bridgeable ERC20 token;
- an ERC20 token to a native coin.
These contracts does not work with Rust version of POA Bridge, the POA Token Bridge (https://github.com/poanetwork/token-bridge) must be used.
The following improvement was done:
- Docker support to deploy contracts (#103)
- The gas consumption documented for the bridge operations (#47)
- Support of the bridge contracts deployment to the RootStock chain (#106)
Including fixes for the issues:
- The validator Contract can be flattened now (0c2fe21)
- Unification for
bridgeDeploymentResults.json
(#105) - Add validator contract address check on initialize method (#96)
getBridgeInterfacesVersion
returns incorrect version of the contracts (#92)- Default gas price is not initialized for
ForeignBridge
contract inerc-to-erc
mode (#86)