Skip to content

Commit

Permalink
Remove default mock tokens deployment from rootchain deploy command (#…
Browse files Browse the repository at this point in the history
…1642)

* Remove default mock tokens deployment from rootchain deploy command

* Fix E2E tests

* Remove unused flag names
  • Loading branch information
Stefan-Ethernal committed Jun 22, 2023
1 parent 62653a7 commit a152b79
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 79 deletions.
46 changes: 0 additions & 46 deletions command/rootchain/deploy/deploy.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,9 @@ const (
erc20TemplateName = "ERC20Template"
rootERC721PredicateName = "RootERC721Predicate"
childERC721MintablePredicateName = "ChildERC721MintablePredicate"
rootERC721Name = "RootERC721"
erc721TemplateName = "ERC721Template"
rootERC1155PredicateName = "RootERC1155Predicate"
childERC1155MintablePredicateName = "ChildERC1155MintablePredicate"
rootERC1155Name = "RootERC1155"
erc1155TemplateName = "ERC1155Template"
customSupernetManagerName = "CustomSupernetManager"
)
Expand Down Expand Up @@ -90,9 +88,6 @@ var (
childERC721MintablePredicateName: func(rootchainConfig *polybft.RootchainConfig, addr types.Address) {
rootchainConfig.ChildMintableERC721PredicateAddress = addr
},
rootERC721Name: func(rootchainConfig *polybft.RootchainConfig, addr types.Address) {
rootchainConfig.RootERC721Address = addr
},
erc721TemplateName: func(rootchainConfig *polybft.RootchainConfig, addr types.Address) {
rootchainConfig.ERC721TemplateAddress = addr
},
Expand All @@ -102,9 +97,6 @@ var (
childERC1155MintablePredicateName: func(rootchainConfig *polybft.RootchainConfig, addr types.Address) {
rootchainConfig.ChildMintableERC1155PredicateAddress = addr
},
rootERC1155Name: func(rootchainConfig *polybft.RootchainConfig, addr types.Address) {
rootchainConfig.RootERC1155Address = addr
},
erc1155TemplateName: func(rootchainConfig *polybft.RootchainConfig, addr types.Address) {
rootchainConfig.ERC1155TemplateAddress = addr
},
Expand Down Expand Up @@ -274,20 +266,6 @@ func GetCommand() *cobra.Command {
"existing root chain root native token address",
)

cmd.Flags().StringVar(
&params.rootERC721TokenAddr,
erc721AddrFlag,
"",
"existing root chain ERC 721 token address",
)

cmd.Flags().StringVar(
&params.rootERC1155TokenAddr,
erc1155AddrFlag,
"",
"existing root chain ERC 1155 token address",
)

cmd.Flags().BoolVar(
&params.isTestMode,
helper.TestModeFlag,
Expand Down Expand Up @@ -456,30 +434,6 @@ func deployContracts(outputter command.OutputFormatter, client *jsonrpc.Client,
}
}

if params.rootERC721TokenAddr != "" {
// use existing root chain ERC721 token
if err := populateExistingTokenAddr(client.Eth(),
params.rootERC721TokenAddr, rootERC721Name, rootchainConfig); err != nil {
return nil, 0, err
}
} else {
// deploy MockERC721 as a default root chain ERC721 token
tokenContracts = append(tokenContracts,
&contractInfo{name: rootERC721Name, artifact: contractsapi.RootERC721})
}

if params.rootERC1155TokenAddr != "" {
// use existing root chain ERC1155 token
if err := populateExistingTokenAddr(client.Eth(),
params.rootERC1155TokenAddr, rootERC1155Name, rootchainConfig); err != nil {
return nil, 0, err
}
} else {
// deploy MockERC1155 as a default root chain ERC1155 token
tokenContracts = append(tokenContracts,
&contractInfo{name: rootERC1155Name, artifact: contractsapi.RootERC1155})
}

allContracts := []*contractInfo{
{
name: stateSenderName,
Expand Down
18 changes: 7 additions & 11 deletions command/rootchain/deploy/params.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,16 @@ const (
deployerKeyFlag = "deployer-key"
jsonRPCFlag = "json-rpc"
erc20AddrFlag = "erc20-token"
erc721AddrFlag = "erc721-token"
erc1155AddrFlag = "erc1155-token"
)

type deployParams struct {
genesisPath string
deployerKey string
jsonRPCAddress string
stakeTokenAddr string
rootERC20TokenAddr string
rootERC721TokenAddr string
rootERC1155TokenAddr string
stakeManagerAddr string
isTestMode bool
genesisPath string
deployerKey string
jsonRPCAddress string
stakeTokenAddr string
rootERC20TokenAddr string
stakeManagerAddr string
isTestMode bool
}

func (ip *deployParams) validateFlags() error {
Expand Down
2 changes: 0 additions & 2 deletions consensus/polybft/helpers_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -185,10 +185,8 @@ func createTestBridgeConfig() *BridgeConfig {
RootERC20PredicateAddr: types.StringToAddress("4"),
ChildMintableERC20PredicateAddr: types.StringToAddress("5"),
RootNativeERC20Addr: types.StringToAddress("6"),
RootERC721Addr: types.StringToAddress("7"),
RootERC721PredicateAddr: types.StringToAddress("8"),
ChildMintableERC721PredicateAddr: types.StringToAddress("9"),
RootERC1155Addr: types.StringToAddress("10"),
RootERC1155PredicateAddr: types.StringToAddress("11"),
ChildMintableERC1155PredicateAddr: types.StringToAddress("12"),
CustomSupernetManagerAddr: types.StringToAddress("13"),
Expand Down
2 changes: 1 addition & 1 deletion consensus/polybft/polybft.go
Original file line number Diff line number Diff line change
Expand Up @@ -324,7 +324,7 @@ func GenesisPostHookFactory(config *chain.Chain, engineName string) func(txn *st
params := &contractsapi.InitializeNativeERC20MintableFn{
Predicate_: contracts.ChildERC20PredicateContract,
Owner_: polyBFTConfig.NativeTokenConfig.Owner,
RootToken_: polyBFTConfig.Bridge.RootNativeERC20Addr,
RootToken_: types.ZeroAddress, // in case native mintable token is used, it is always root token
Name_: polyBFTConfig.NativeTokenConfig.Name,
Symbol_: polyBFTConfig.NativeTokenConfig.Symbol,
Decimals_: polyBFTConfig.NativeTokenConfig.Decimals,
Expand Down
6 changes: 0 additions & 6 deletions consensus/polybft/polybft_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,10 +94,8 @@ type BridgeConfig struct {
RootERC20PredicateAddr types.Address `json:"erc20PredicateAddress"`
ChildMintableERC20PredicateAddr types.Address `json:"erc20ChildMintablePredicateAddress"`
RootNativeERC20Addr types.Address `json:"nativeERC20Address"`
RootERC721Addr types.Address `json:"erc721Address"`
RootERC721PredicateAddr types.Address `json:"erc721PredicateAddress"`
ChildMintableERC721PredicateAddr types.Address `json:"erc721ChildMintablePredicateAddress"`
RootERC1155Addr types.Address `json:"erc1155Address"`
RootERC1155PredicateAddr types.Address `json:"erc1155PredicateAddress"`
ChildMintableERC1155PredicateAddr types.Address `json:"erc1155ChildMintablePredicateAddress"`
CustomSupernetManagerAddr types.Address `json:"customSupernetManagerAddr"`
Expand Down Expand Up @@ -130,11 +128,9 @@ type RootchainConfig struct {
ERC20TemplateAddress types.Address
RootERC721PredicateAddress types.Address
ChildMintableERC721PredicateAddress types.Address
RootERC721Address types.Address
ERC721TemplateAddress types.Address
RootERC1155PredicateAddress types.Address
ChildMintableERC1155PredicateAddress types.Address
RootERC1155Address types.Address
ERC1155TemplateAddress types.Address
CustomSupernetManagerAddress types.Address
StakeManagerAddress types.Address
Expand All @@ -152,10 +148,8 @@ func (r *RootchainConfig) ToBridgeConfig() *BridgeConfig {
RootERC20PredicateAddr: r.RootERC20PredicateAddress,
ChildMintableERC20PredicateAddr: r.ChildMintableERC20PredicateAddress,
RootNativeERC20Addr: r.RootNativeERC20Address,
RootERC721Addr: r.RootERC721Address,
RootERC721PredicateAddr: r.RootERC721PredicateAddress,
ChildMintableERC721PredicateAddr: r.ChildMintableERC721PredicateAddress,
RootERC1155Addr: r.RootERC1155Address,
RootERC1155PredicateAddr: r.RootERC1155PredicateAddress,
ChildMintableERC1155PredicateAddr: r.ChildMintableERC1155PredicateAddress,
CustomSupernetManagerAddr: r.CustomSupernetManagerAddress,
Expand Down
45 changes: 32 additions & 13 deletions e2e-polybft/e2e/bridge_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -338,13 +338,26 @@ func TestE2E_Bridge_ERC721Transfer(t *testing.T) {
polybftCfg, err := polybft.LoadPolyBFTConfig(path.Join(cluster.Config.TmpDir, chainConfigFileName))
require.NoError(t, err)

rootchainTxRelayer, err := txrelayer.NewTxRelayer(txrelayer.WithIPAddress(cluster.Bridge.JSONRPCAddr()))
require.NoError(t, err)

rootchainDeployer, err := rootHelper.DecodePrivateKey("")
require.NoError(t, err)

// deploy root ERC 721 token
deployTxn := &ethgo.Transaction{To: nil, Input: contractsapi.RootERC721.Bytecode}
receipt, err := rootchainTxRelayer.SendTransaction(deployTxn, rootchainDeployer)
require.NoError(t, err)

rootERC721Addr := receipt.ContractAddress

// DEPOSIT ERC721 TOKENS
// send a few transactions to the bridge
require.NoError(
t,
cluster.Bridge.Deposit(
common.ERC721,
polybftCfg.Bridge.RootERC721Addr,
types.Address(rootERC721Addr),
polybftCfg.Bridge.RootERC721PredicateAddr,
rootHelper.TestAccountPrivKey,
strings.Join(receivers[:], ","),
Expand Down Expand Up @@ -377,7 +390,7 @@ func TestE2E_Bridge_ERC721Transfer(t *testing.T) {

// retrieve child token address
rootToChildTokenFn := contractsapi.ChildERC721Predicate.Abi.Methods["rootTokenToChildToken"]
input, err := rootToChildTokenFn.Encode([]interface{}{polybftCfg.Bridge.RootERC721Addr})
input, err := rootToChildTokenFn.Encode([]interface{}{rootERC721Addr})
require.NoError(t, err)

childTokenRaw, err := txRelayer.Call(ethgo.ZeroAddress, ethgo.Address(contracts.ChildERC721PredicateContract), input)
Expand All @@ -393,9 +406,6 @@ func TestE2E_Bridge_ERC721Transfer(t *testing.T) {
t.Log("Deposits were successfully processed")

// WITHDRAW ERC721 TOKENS
rootchainTxRelayer, err := txrelayer.NewTxRelayer(txrelayer.WithIPAddress(cluster.Bridge.JSONRPCAddr()))
require.NoError(t, err)

for i, receiverKey := range receiverKeys {
// send withdraw transactions
err = cluster.Bridge.Withdraw(
Expand Down Expand Up @@ -433,7 +443,7 @@ func TestE2E_Bridge_ERC721Transfer(t *testing.T) {

// assert that owners of given token ids are the accounts on the root chain ERC 721 token
for i, receiver := range receiversAddrs {
owner := erc721OwnerOf(t, big.NewInt(int64(i)), polybftCfg.Bridge.RootERC721Addr, rootchainTxRelayer)
owner := erc721OwnerOf(t, big.NewInt(int64(i)), types.Address(rootERC721Addr), rootchainTxRelayer)
require.Equal(t, receiver, owner)
}
}
Expand Down Expand Up @@ -483,13 +493,26 @@ func TestE2E_Bridge_ERC1155Transfer(t *testing.T) {
polybftCfg, err := polybft.LoadPolyBFTConfig(path.Join(cluster.Config.TmpDir, chainConfigFileName))
require.NoError(t, err)

rootchainTxRelayer, err := txrelayer.NewTxRelayer(txrelayer.WithIPAddress(cluster.Bridge.JSONRPCAddr()))
require.NoError(t, err)

rootchainDeployer, err := rootHelper.DecodePrivateKey("")
require.NoError(t, err)

// deploy root ERC 1155 token
deployTxn := &ethgo.Transaction{To: nil, Input: contractsapi.RootERC1155.Bytecode}
receipt, err := rootchainTxRelayer.SendTransaction(deployTxn, rootchainDeployer)
require.NoError(t, err)

rootERC1155Addr := receipt.ContractAddress

// DEPOSIT ERC1155 TOKENS
// send a few transactions to the bridge
require.NoError(
t,
cluster.Bridge.Deposit(
common.ERC1155,
polybftCfg.Bridge.RootERC1155Addr,
types.Address(rootERC1155Addr),
polybftCfg.Bridge.RootERC1155PredicateAddr,
rootHelper.TestAccountPrivKey,
strings.Join(receivers[:], ","),
Expand Down Expand Up @@ -522,7 +545,7 @@ func TestE2E_Bridge_ERC1155Transfer(t *testing.T) {

// retrieve child token address
rootToChildTokenFn := contractsapi.ChildERC1155Predicate.Abi.Methods["rootTokenToChildToken"]
input, err := rootToChildTokenFn.Encode([]interface{}{polybftCfg.Bridge.RootERC1155Addr})
input, err := rootToChildTokenFn.Encode([]interface{}{rootERC1155Addr})
require.NoError(t, err)

childTokenRaw, err := txRelayer.Call(ethgo.ZeroAddress, ethgo.Address(contracts.ChildERC1155PredicateContract), input)
Expand Down Expand Up @@ -552,9 +575,6 @@ func TestE2E_Bridge_ERC1155Transfer(t *testing.T) {
t.Log("Deposits were successfully processed")

// WITHDRAW ERC1155 TOKENS
rootchainTxRelayer, err := txrelayer.NewTxRelayer(txrelayer.WithIPAddress(cluster.Bridge.JSONRPCAddr()))
require.NoError(t, err)

senderAccount, err := sidechain.GetAccountFromDir(cluster.Servers[0].DataDir())
require.NoError(t, err)

Expand Down Expand Up @@ -606,8 +626,7 @@ func TestE2E_Bridge_ERC1155Transfer(t *testing.T) {
balanceInput, err := balanceOfFn.EncodeAbi()
require.NoError(t, err)

balanceRaw, err := rootchainTxRelayer.Call(ethgo.ZeroAddress,
ethgo.Address(polybftCfg.Bridge.RootERC1155Addr), balanceInput)
balanceRaw, err := rootchainTxRelayer.Call(ethgo.ZeroAddress, rootERC1155Addr, balanceInput)
require.NoError(t, err)

balance, err := types.ParseUint256orHex(&balanceRaw)
Expand Down

0 comments on commit a152b79

Please sign in to comment.