icon-project / icon-bridge

The centralized bridge of ICON
Apache License 2.0
21 stars 15 forks source link

Adding Algorand Integration #860

Closed pedro-lino closed 1 year ago

pedro-lino commented 1 year ago

This PR integrates the algorand blockchain into the icon-bridge.

It implements a messaging exchange protocol, that enables communication between icon and algorand. On top of this messaging bridge was also built a token transfer bridge. For its functionality, were developed separate smart deployed and registered on the two blockchains. These bridge follows the lock/mint and burn/release pattern.

Integration tests were created to demonstrate the transfer of token transfer between the two chains. These create a new test token and move it between two locally deployed instances of the blockchains. A new workflow building the bridge and performing these tests was added on github actions.

Additionally, there are scripts to deploy the bridge on testnet and perform lock and mint transfers. A Readme file was also provided to indicate how to properly setup the bridge on each environment.

codecov[bot] commented 1 year ago

Codecov Report

Merging #860 (6b36ec2) into main (566fcce) will decrease coverage by 1.83%. The diff coverage is 0.51%.

Impacted file tree graph

@@             Coverage Diff              @@
##               main     #860      +/-   ##
============================================
- Coverage     38.25%   36.43%   -1.83%     
  Complexity      811      811              
============================================
  Files           117      125       +8     
  Lines         11478    12061     +583     
  Branches       1091     1091              
============================================
+ Hits           4391     4394       +3     
- Misses         6747     7327     +580     
  Partials        340      340              
Impacted Files Coverage Δ
cmd/iconbridge/chain/algo/bmc_abi.go 0.00% <0.00%> (ø)
cmd/iconbridge/chain/algo/client.go 0.00% <0.00%> (ø)
cmd/iconbridge/chain/algo/contract_deployer.go 0.00% <0.00%> (ø)
cmd/iconbridge/chain/algo/encoding.go 0.00% <0.00%> (ø)
cmd/iconbridge/chain/algo/link_operations.go 0.00% <0.00%> (ø)
cmd/iconbridge/chain/algo/receiver.go 0.00% <0.00%> (ø)
cmd/iconbridge/chain/algo/sender.go 0.00% <0.00%> (ø)
cmd/iconbridge/chain/icon/sender.go 0.00% <ø> (ø)
cmd/iconbridge/chain/algo/register_relay.go 100.00% <100.00%> (ø)