From 1c368e61d0a6e641a4c0fe90d74b28c856c037e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Riquelme=20Guzm=C3=A1n?= Date: Mon, 21 Mar 2022 11:55:13 -0300 Subject: [PATCH] improvements for local setup (#288) --- chains/evm/cli/local/deploy.go | 31 +++++++++++++++++++----------- chains/evm/cli/local/local.go | 12 ++++++++++++ e2e/evm-evm/docker-compose.e2e.yml | 4 ++-- 3 files changed, 34 insertions(+), 13 deletions(-) diff --git a/chains/evm/cli/local/deploy.go b/chains/evm/cli/local/deploy.go index 8947f2c4..4210dce1 100644 --- a/chains/evm/cli/local/deploy.go +++ b/chains/evm/cli/local/deploy.go @@ -16,7 +16,9 @@ import ( "github.com/ChainSafe/chainbridge-core/chains/evm/calls/transactor" "github.com/ChainSafe/chainbridge-core/chains/evm/calls/transactor/signAndSend" "github.com/ChainSafe/chainbridge-core/keystore" + "github.com/ChainSafe/chainbridge-core/types" "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/common/hexutil" "github.com/rs/zerolog/log" ) @@ -42,6 +44,9 @@ type EVME2EConfig struct { GenericHandlerAddr common.Address Erc721Addr common.Address Erc721HandlerAddr common.Address + ResourceIDERC20 string + ResourceIDERC721 string + ResourceIDGeneric string } type E2EClient interface { @@ -88,6 +93,12 @@ func PrepareLocalEVME2EEnv( return EVME2EConfig{}, err } + resourceIDERC20 := calls.SliceTo32Bytes(common.LeftPadBytes([]byte{0}, 31)) + + resourceIDGenericHandler := calls.SliceTo32Bytes(common.LeftPadBytes([]byte{1}, 31)) + + resourceIDERC721 := calls.SliceTo32Bytes(common.LeftPadBytes([]byte{2}, 31)) + conf := EVME2EConfig{ BridgeAddr: bridgeContractAddress, @@ -99,19 +110,22 @@ func PrepareLocalEVME2EEnv( Erc721Addr: erc721ContractAddress, Erc721HandlerAddr: erc721HandlerContractAddress, + ResourceIDERC20: hexutil.Encode(resourceIDERC20[:]), + ResourceIDERC721: hexutil.Encode(resourceIDERC721[:]), + ResourceIDGeneric: hexutil.Encode(resourceIDGenericHandler[:]), } - err = PrepareErc20EVME2EEnv(bridgeContract, erc20Contract, mintTo, conf) + err = PrepareErc20EVME2EEnv(bridgeContract, erc20Contract, mintTo, conf, resourceIDERC20) if err != nil { return EVME2EConfig{}, err } - err = PrepareErc721EVME2EEnv(bridgeContract, erc721Contract, conf) + err = PrepareErc721EVME2EEnv(bridgeContract, erc721Contract, conf, resourceIDERC721) if err != nil { return EVME2EConfig{}, err } - err = PrepareGenericEVME2EEnv(bridgeContract, conf) + err = PrepareGenericEVME2EEnv(bridgeContract, conf, resourceIDGenericHandler) if err != nil { return EVME2EConfig{}, err } @@ -181,10 +195,8 @@ func deployErc721( } func PrepareErc20EVME2EEnv( - bridgeContract *bridge.BridgeContract, erc20Contract *erc20.ERC20Contract, mintTo common.Address, conf EVME2EConfig, + bridgeContract *bridge.BridgeContract, erc20Contract *erc20.ERC20Contract, mintTo common.Address, conf EVME2EConfig, resourceID types.ResourceID, ) error { - // Setting resource - resourceID := calls.SliceTo32Bytes(common.LeftPadBytes([]byte{0}, 31)) _, err := bridgeContract.AdminSetResource( conf.Erc20HandlerAddr, resourceID, conf.Erc20Addr, transactor.TransactOptions{GasLimit: 2000000}, ) @@ -215,8 +227,7 @@ func PrepareErc20EVME2EEnv( return nil } -func PrepareGenericEVME2EEnv(bridgeContract *bridge.BridgeContract, conf EVME2EConfig) error { - resourceID := calls.SliceTo32Bytes(common.LeftPadBytes([]byte{1}, 31)) +func PrepareGenericEVME2EEnv(bridgeContract *bridge.BridgeContract, conf EVME2EConfig, resourceID types.ResourceID) error { _, err := bridgeContract.AdminSetGenericResource( conf.GenericHandlerAddr, resourceID, @@ -232,9 +243,7 @@ func PrepareGenericEVME2EEnv(bridgeContract *bridge.BridgeContract, conf EVME2EC return nil } -func PrepareErc721EVME2EEnv(bridgeContract *bridge.BridgeContract, erc721Contract *erc721.ERC721Contract, conf EVME2EConfig) error { - // Registering resource - resourceID := calls.SliceTo32Bytes(common.LeftPadBytes([]byte{2}, 31)) +func PrepareErc721EVME2EEnv(bridgeContract *bridge.BridgeContract, erc721Contract *erc721.ERC721Contract, conf EVME2EConfig, resourceID types.ResourceID) error { _, err := bridgeContract.AdminSetResource(conf.Erc721HandlerAddr, resourceID, conf.Erc721Addr, transactor.TransactOptions{GasLimit: 2000000}) if err != nil { return err diff --git a/chains/evm/cli/local/local.go b/chains/evm/cli/local/local.go index 98b859fb..08a340b8 100644 --- a/chains/evm/cli/local/local.go +++ b/chains/evm/cli/local/local.go @@ -70,6 +70,9 @@ ERC721: %s ERC721 Handler: %s Generic Handler: %s Asset Store: %s +ERC20 resourceId: %s +ERC721 resourceId %s +Generic resourceId %s - Chain 2 - Bridge: %s @@ -79,6 +82,9 @@ ERC721: %s ERC721 Handler: %s Generic Handler: %s Asset Store: %s +ERC20 resourceId: %s +ERC721 resourceId %s +Generic resourceId %s =============================================== `, @@ -90,6 +96,9 @@ Asset Store: %s config.Erc721HandlerAddr, config.GenericHandlerAddr, config.AssetStoreAddr, + config.ResourceIDERC20, + config.ResourceIDERC721, + config.ResourceIDGeneric, // config2 config2.BridgeAddr, config2.Erc20Addr, @@ -98,5 +107,8 @@ Asset Store: %s config.Erc721HandlerAddr, config2.GenericHandlerAddr, config2.AssetStoreAddr, + config2.ResourceIDERC20, + config2.ResourceIDERC721, + config2.ResourceIDGeneric, ) } diff --git a/e2e/evm-evm/docker-compose.e2e.yml b/e2e/evm-evm/docker-compose.e2e.yml index 85b1a2e7..1d124e8e 100644 --- a/e2e/evm-evm/docker-compose.e2e.yml +++ b/e2e/evm-evm/docker-compose.e2e.yml @@ -15,7 +15,7 @@ services: - "8546:8546" environment: - NODEKEY=98ab333347a12cef869f92b3de44085f9e44891e513bcf1d76a99eecbcdd5e17 - - NETWORKID=421 + - NETWORKID=1 - MINE=true entrypoint: "/root/entrypoint.sh" @@ -32,7 +32,7 @@ services: - "8548:8546" environment: - NODEKEY=98ab333347a12cef869f92b3de44085f9e44891e513bcf1d76a99eecbcdd5e17 - - NETWORKID=420 + - NETWORKID=2 - MINE=true entrypoint: "/root/entrypoint.sh"