github.com/ChainSafe/chainbridge-core@v1.4.2/chains/evm/cli/local/local.go (about) 1 package local 2 3 import ( 4 "fmt" 5 "math/big" 6 7 "github.com/ChainSafe/chainbridge-core/chains/evm/calls/evmclient" 8 "github.com/ChainSafe/chainbridge-core/chains/evm/calls/evmtransaction" 9 10 "github.com/spf13/cobra" 11 ) 12 13 var LocalSetupCmd = &cobra.Command{ 14 Use: "local-setup", 15 Short: "Deploy and prefund a local bridge for testing", 16 Long: "The local-setup command deploys a bridge, ERC20, ERC721 and generic handler contracts with preconfigured accounts and appropriate handlers", 17 RunE: localSetup, 18 } 19 20 // configuration 21 var ( 22 ethEndpoint1 = "http://localhost:8545" 23 ethEndpoint2 = "http://localhost:8547" 24 fabric1 = evmtransaction.NewTransaction 25 fabric2 = evmtransaction.NewTransaction 26 ) 27 28 func BindLocalSetupFlags(cmd *cobra.Command) { 29 cmd.Flags().StringVar(ðEndpoint1, "endpoint1", "", "RPC endpoint of the first network") 30 cmd.Flags().StringVar(ðEndpoint2, "endpoint2", "", "RPC endpoint of the second network") 31 } 32 33 func init() { 34 BindLocalSetupFlags(LocalSetupCmd) 35 } 36 37 func localSetup(cmd *cobra.Command, args []string) error { 38 // init client1 39 ethClient, err := evmclient.NewEVMClient(ethEndpoint1, EveKp) 40 if err != nil { 41 return err 42 } 43 44 // init client2 45 ethClient2, err := evmclient.NewEVMClient(ethEndpoint2, EveKp) 46 if err != nil { 47 return err 48 } 49 50 // chain 1 51 // domainsId: 0 52 config, err := SetupEVMBridge(ethClient, fabric1, 1, big.NewInt(1), EveKp.CommonAddress(), DefaultRelayerAddresses) 53 if err != nil { 54 return err 55 } 56 57 // chain 2 58 // domainId: 1 59 config2, err := SetupEVMBridge(ethClient2, fabric2, 2, big.NewInt(1), EveKp.CommonAddress(), DefaultRelayerAddresses) 60 if err != nil { 61 return err 62 } 63 64 prettyPrint(config, config2) 65 66 return nil 67 } 68 69 func prettyPrint(config, config2 BridgeConfig) { 70 fmt.Printf(` 71 =============================================== 72 🎉🎉🎉 ChainBridge Successfully Deployed 🎉🎉🎉 73 74 - Chain 1 - 75 Bridge: %s 76 ERC20: %s 77 ERC20 Handler: %s 78 ERC721: %s 79 ERC721 Handler: %s 80 Generic Handler: %s 81 Asset Store: %s 82 ERC20 resourceId: %s 83 ERC721 resourceId %s 84 Generic resourceId %s 85 86 - Chain 2 - 87 Bridge: %s 88 ERC20: %s 89 ERC20 Handler: %s 90 ERC721: %s 91 ERC721 Handler: %s 92 Generic Handler: %s 93 Asset Store: %s 94 ERC20 resourceId: %s 95 ERC721 resourceId %s 96 Generic resourceId %s 97 98 =============================================== 99 `, 100 // config 101 config.BridgeAddr, 102 config.Erc20Addr, 103 config.Erc20HandlerAddr, 104 config.Erc721Addr, 105 config.Erc721HandlerAddr, 106 config.GenericHandlerAddr, 107 config.AssetStoreAddr, 108 config.Erc20ResourceID, 109 config.Erc721ResourceID, 110 config.GenericResourceID, 111 // config2 112 config2.BridgeAddr, 113 config2.Erc20Addr, 114 config2.Erc20HandlerAddr, 115 config.Erc721Addr, 116 config.Erc721HandlerAddr, 117 config2.GenericHandlerAddr, 118 config2.AssetStoreAddr, 119 config2.Erc20ResourceID, 120 config2.Erc721ResourceID, 121 config2.GenericResourceID, 122 ) 123 }