Skip to content

Releases: omni/tokenbridge-contracts

TokenBridge Contracts 3.1.0

17 Sep 09:06
86b35f8
Compare
Choose a tag to compare

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:

  • Enhancement: Add erc677 to erc677 bridge on top of AMB (#273)
  • Enhancement: Add result information for AMB message call (#282)
  • Enhancement: Add methods to fix failed messages in erc677 to erc677 on top of AMB (#284)
  • Fix: Update project dependencies to latest versions (#283)

TokenBridge Contracts 3.0.0

09 Sep 13:18
7d259b9
Compare
Choose a tag to compare

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

08 Aug 15:23
048f51e
Compare
Choose a tag to compare

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

31 Jul 00:50
Compare
Choose a tag to compare

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:

  • Enhancement: Improve checks of configuration parameters for contracts deployment (#228)
  • Fix: Update ERC677BridgeToken transferFrom to call contractFallback (#220)
  • Fix: Support zero fallback gas price in erc-to-erc mode (#234)
  • Fix: Update package name and version (#230)

TokenBridge Contracts 2.3.2

24 May 14:06
bbb97a6
Compare
Choose a tag to compare

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

23 May 20:48
b1c4c35
Compare
Choose a tag to compare

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

22 May 21:54
c54cbbc
Compare
Choose a tag to compare

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 and FOREIGN_MAX_AMOUNT_PER_TX (#172)

POA-bridge-contracts 1.2

08 Jan 11:45
65ac528
Compare
Choose a tag to compare

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

03 Jan 20:04
4615162
Compare
Choose a tag to compare

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

06 Nov 19:14
1f61c69
Compare
Choose a tag to compare

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 in erc-to-erc mode (#86)