Skip to content

Commit

Permalink
Merge branch 'develop' into prompt-secret
Browse files Browse the repository at this point in the history
  • Loading branch information
kevinssgh authored Jan 15, 2024
2 parents a55317b + 6dc68a5 commit 8d0b7d5
Show file tree
Hide file tree
Showing 25 changed files with 388 additions and 221 deletions.
28 changes: 23 additions & 5 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,30 @@

## Unreleased

* ci: adding typescript publishing pipeline.
## Version: v12.0.0

### Breaking Changes

* PendingNonces :Changed from `/zeta-chain/crosschain/pendingNonces/{chain_id}/{address}` to `/zeta-chain/observer/pendingNonces/{chain_id}/{address}` . It returns all the pending nonces for a chain id and address. This returns the current pending nonces for the chain.
* ChainNonces : Changed from `/zeta-chain/criosschain/chainNonces/{chain_id}` to`/zeta-chain/observer/chainNonces/{chain_id}` . It returns all the chain nonces for a chain id. This returns the current nonce oof the TSS address for the chain.
* ChainNoncesAll :Changed from `/zeta-chain/observer/chainNonces` to `/zeta-chain/observer/chainNonces` . It returns all the chain nonces for all chains. This returns the current nonce of the TSS address for all chains.
* GetTssAddress : Changed from `/zeta-chain/observer/get_tss_address/` to `/zeta-chain/observer/getTssAddress/{bitcoin_chain_id}` . Optional bitcoing chain id can now now passed as a parameter to fetch the correct tss for required BTC chain.This parameter only affects the BTC tss address in the response.
TSS and chain validation related queries have been moved from `crosschain` module to `observer` module:
* `PendingNonces` :Changed from `/zeta-chain/crosschain/pendingNonces/{chain_id}/{address}` to `/zeta-chain/observer/pendingNonces/{chain_id}/{address}` . It returns all the pending nonces for a chain id and address. This returns the current pending nonces for the chain.
* `ChainNonces` : Changed from `/zeta-chain/crosschain/chainNonces/{chain_id}` to`/zeta-chain/observer/chainNonces/{chain_id}` . It returns all the chain nonces for a chain id. This returns the current nonce of the TSS address for the chain.
* `ChainNoncesAll` :Changed from `/zeta-chain/crosschain/chainNonces` to `/zeta-chain/observer/chainNonces` . It returns all the chain nonces for all chains. This returns the current nonce of the TSS address for all chains.

All chains now have the same observer set:
* `ObserversByChain`: `/zeta-chain/observer/observers_by_chain/{observation_chain}` has been removed and replaced with `/zeta-chain/observer/observer_set`. All chains have the same observer set.
* `AllObserverMappers`: `/zeta-chain/observer/all_observer_mappers` has been removed. `/zeta-chain/observer/observer_set` should be used to get observers.

Observer params and core params have been merged into chain params:
* `Params`: `/zeta-chain/observer/params` no longer returns observer params. Observer params data have been moved to chain params described below.
* `GetCoreParams`: Renamed into `GetChainParams`. `/zeta-chain/observer/get_core_params` moved to `/zeta-chain/observer/get_chain_params`.
* `GetCoreParamsByChain`: Renamed into `GetChainParamsForChain`. `/zeta-chain/observer/get_core_params_by_chain` moved to `/zeta-chain/observer/get_chain_params_by_chain`.

Getting the correct TSS address for Bitcoin now requires proviidng the Bitcoin chain id:
* `GetTssAddress` : Changed from `/zeta-chain/observer/get_tss_address/` to `/zeta-chain/observer/getTssAddress/{bitcoin_chain_id}` . Optional bitcoin chain id can now be passed as a parameter to fetch the correct tss for required BTC chain. This parameter only affects the BTC tss address in the response.

### Features

* [1549](https://github.com/zeta-chain/node/pull/1549) - add monitoring for vote tx results in ZetaClient
* [1498](https://github.com/zeta-chain/node/pull/1498) - Add monitoring(grafana, prometheus, ethbalance) for localnet testing
* [1395](https://github.com/zeta-chain/node/pull/1395) - Add state variable to track aborted zeta amount
* [1410](https://github.com/zeta-chain/node/pull/1410) - `snapshots` commands
Expand Down Expand Up @@ -40,6 +54,7 @@
* [1525](https://github.com/zeta-chain/node/pull/1525) - relax EVM chain block header length check 1024->4096
* [1522](https://github.com/zeta-chain/node/pull/1522/files) - block `distribution` module account from receiving zeta
* [1528](https://github.com/zeta-chain/node/pull/1528) - fix panic caused on decoding malformed BTC addresses
* [1557](https://github.com/zeta-chain/node/pull/1557) - remove decreaseAllowance and increaseAllowance checks
* [1536](https://github.com/zeta-chain/node/pull/1536) - add index to check previously finalized inbounds
* [1556](https://github.com/zeta-chain/node/pull/1556) - add emptiness check for topic array in event parsing
* [1546](https://github.com/zeta-chain/node/pull/1546) - fix reset of pending nonces on genesis import
Expand All @@ -66,6 +81,7 @@
* Update --ledger flag hint

### Chores

* [1446](https://github.com/zeta-chain/node/pull/1446) - renamed file `zetaclientd/aux.go` to `zetaclientd/utils.go` to avoid complaints from go package resolver.
* [1499](https://github.com/zeta-chain/node/pull/1499) - Add scripts to localnet to help test gov proposals
* [1442](https://github.com/zeta-chain/node/pull/1442) - remove build types in `.goreleaser.yaml`
Expand All @@ -77,7 +93,9 @@
* [1538](https://github.com/zeta-chain/node/pull/1538) - improve stateful e2e testing

### CI

* Removed private runners and unused GitHub Action
* Adding typescript publishing pipeline.

## Version: v11.0.0

Expand Down
13 changes: 5 additions & 8 deletions cmd/zetae2e/local/bitcoin.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ func bitcoinTestRoutine(
conf config.Config,
deployerRunner *runner.SmokeTestRunner,
verbose bool,
initBitcoinNetwork bool,
) func() error {
return func() (err error) {
// return an error on panic
Expand Down Expand Up @@ -47,23 +48,19 @@ func bitcoinTestRoutine(
startTime := time.Now()

// funding the account
txZetaSend := deployerRunner.SendZetaOnEvm(UserBitcoinAddress, 1000)
txUSDTSend := deployerRunner.SendUSDTOnEvm(UserBitcoinAddress, 1000)

bitcoinRunner.WaitForTxReceiptOnEvm(txZetaSend)
bitcoinRunner.WaitForTxReceiptOnEvm(txUSDTSend)

// depositing the necessary tokens on ZetaChain
txZetaDeposit := bitcoinRunner.DepositZeta()
txEtherDeposit := bitcoinRunner.DepositEther(false)
txERC20Deposit := bitcoinRunner.DepositERC20()
bitcoinRunner.SetupBitcoinAccount()
bitcoinRunner.DepositBTC(false)
bitcoinRunner.SetupZEVMSwapApp()
bitcoinRunner.WaitForMinedCCTX(txZetaDeposit)

bitcoinRunner.WaitForMinedCCTX(txEtherDeposit)
bitcoinRunner.WaitForMinedCCTX(txERC20Deposit)

bitcoinRunner.SetupBitcoinAccount(initBitcoinNetwork)
bitcoinRunner.DepositBTC(false)

// run bitcoin test
// Note: due to the extensive block generation in Bitcoin localnet, block header test is run first
// to make it faster to catch up with the latest block header
Expand Down
5 changes: 0 additions & 5 deletions cmd/zetae2e/local/erc20.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,17 +47,12 @@ func erc20TestRoutine(
startTime := time.Now()

// funding the account
txZetaSend := deployerRunner.SendZetaOnEvm(UserERC20Address, 1000)
txUSDTSend := deployerRunner.SendUSDTOnEvm(UserERC20Address, 10)

erc20Runner.WaitForTxReceiptOnEvm(txZetaSend)
erc20Runner.WaitForTxReceiptOnEvm(txUSDTSend)

// depositing the necessary tokens on ZetaChain
txZetaDeposit := erc20Runner.DepositZeta()
txEtherDeposit := erc20Runner.DepositEther(false)
txERC20Deposit := erc20Runner.DepositERC20()
erc20Runner.WaitForMinedCCTX(txZetaDeposit)
erc20Runner.WaitForMinedCCTX(txEtherDeposit)
erc20Runner.WaitForMinedCCTX(txERC20Deposit)

Expand Down
8 changes: 0 additions & 8 deletions cmd/zetae2e/local/ethereum.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,18 +46,10 @@ func ethereumTestRoutine(
ethereumRunner.Logger.Print("🏃 starting Ethereum tests")
startTime := time.Now()

// funding the account
txZetaSend := deployerRunner.SendZetaOnEvm(UserEtherAddress, 1000)
ethereumRunner.WaitForTxReceiptOnEvm(txZetaSend)

// depositing the necessary tokens on ZetaChain
txZetaDeposit := ethereumRunner.DepositZeta()
txEtherDeposit := ethereumRunner.DepositEther(false)
ethereumRunner.WaitForMinedCCTX(txZetaDeposit)
ethereumRunner.WaitForMinedCCTX(txEtherDeposit)

ethereumRunner.SetupContextApp()

// run ethereum test
// Note: due to the extensive block generation in Ethereum localnet, block header test is run first
// to make it faster to catch up with the latest block header
Expand Down
5 changes: 3 additions & 2 deletions cmd/zetae2e/local/local.go
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,6 @@ func localE2ETest(cmd *cobra.Command, _ []string) {
deployerRunner.SetZEVMContracts()
deployerRunner.MintUSDTOnEvm(10000)
logger.Print("✅ setup completed in %s", time.Since(startTime))
deployerRunner.PrintContractAddresses()
}

// if a config output is specified, write the config
Expand All @@ -220,6 +219,8 @@ func localE2ETest(cmd *cobra.Command, _ []string) {
logger.Print("✅ config file written in %s", configOut)
}

deployerRunner.PrintContractAddresses()

// if setup only, quit
if setupOnly {
os.Exit(0)
Expand All @@ -230,7 +231,7 @@ func localE2ETest(cmd *cobra.Command, _ []string) {
if !skipRegular {
eg.Go(erc20TestRoutine(conf, deployerRunner, verbose))
eg.Go(zetaTestRoutine(conf, deployerRunner, verbose))
eg.Go(bitcoinTestRoutine(conf, deployerRunner, verbose))
eg.Go(bitcoinTestRoutine(conf, deployerRunner, verbose, !skipSetup))
eg.Go(ethereumTestRoutine(conf, deployerRunner, verbose))
}
if testAdmin {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,8 @@ func bitcoinTestRoutine(
txZetaDeposit := bitcoinRunner.DepositZeta()
txEtherDeposit := bitcoinRunner.DepositEther(false)
txERC20Deposit := bitcoinRunner.DepositERC20()
bitcoinRunner.SetupBitcoinAccount()
bitcoinRunner.SetupBitcoinAccount(true)
bitcoinRunner.DepositBTC(true)
bitcoinRunner.SetupZEVMSwapApp()
bitcoinRunner.WaitForMinedCCTX(txZetaDeposit)
bitcoinRunner.WaitForMinedCCTX(txEtherDeposit)
bitcoinRunner.WaitForMinedCCTX(txERC20Deposit)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,6 @@ func ethereumTestRoutine(
ethereumRunner.WaitForMinedCCTX(txZetaDeposit)
ethereumRunner.WaitForMinedCCTX(txEtherDeposit)

ethereumRunner.SetupContextApp()

// run ethereum test
// Note: due to the extensive block generation in Ethereum localnet, block header test is run first
// to make it faster to catch up with the latest block header
Expand Down
10 changes: 8 additions & 2 deletions contrib/localnet/orchestrator/smoketest/runner/accounting.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ func (sm *SmokeTestRunner) CheckBtcTSSBalance() error {
btcBalance += utxo.Amount
}
}

zrc20Supply, err := sm.BTCZRC20.TotalSupply(&bind.CallOpts{})
if err != nil {
return err
Expand All @@ -67,10 +68,15 @@ func (sm *SmokeTestRunner) CheckBtcTSSBalance() error {
// #nosec G701 smoketest - always in range
if int64(btcBalance*1e8) < (zrc20Supply.Int64() - 10000000) {
// #nosec G701 smoketest - always in range
return fmt.Errorf("BTC: TSS Balance (%d) < ZRC20 TotalSupply (%d) ", int64(btcBalance*1e8), zrc20Supply)
return fmt.Errorf(
"BTC: TSS Balance (%d) < ZRC20 TotalSupply (%d)",
int64(btcBalance*1e8),
zrc20Supply.Int64()-10000000,
)
}
// #nosec G701 smoketest - always in range
sm.Logger.Info("BTC: Balance (%d) >= ZRC20 TotalSupply (%d)", int64(btcBalance*1e8), zrc20Supply)
sm.Logger.Info("BTC: Balance (%d) >= ZRC20 TotalSupply (%d)", int64(btcBalance*1e8), zrc20Supply.Int64()-10000000)

return nil
}

Expand Down
32 changes: 17 additions & 15 deletions contrib/localnet/orchestrator/smoketest/runner/setup_bitcoin.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,14 @@ import (
"github.com/btcsuite/btcutil"
)

func (sm *SmokeTestRunner) SetupBitcoinAccount() {
func (sm *SmokeTestRunner) SetupBitcoinAccount(initNetwork bool) {
sm.Logger.Print("⚙️ setting up Bitcoin account")
startTime := time.Now()
defer func() {
sm.Logger.Print("✅ Bitcoin account setup in %s\n", time.Since(startTime))
}()

btc := sm.BtcRPCClient
_, err := btc.CreateWallet(sm.Name, rpcclient.WithCreateWalletBlank())
_, err := sm.BtcRPCClient.CreateWallet(sm.Name, rpcclient.WithCreateWalletBlank())
if err != nil {
if !strings.Contains(err.Error(), "Database already exists") {
panic(err)
Expand All @@ -28,20 +27,23 @@ func (sm *SmokeTestRunner) SetupBitcoinAccount() {

sm.setBtcAddress()

err = btc.ImportAddress(sm.BTCTSSAddress.EncodeAddress())
if err != nil {
panic(err)
}
if initNetwork {
// import the TSS address
err = sm.BtcRPCClient.ImportAddress(sm.BTCTSSAddress.EncodeAddress())
if err != nil {
panic(err)
}

// mine some blocks to get some BTC into the deployer address
_, err = btc.GenerateToAddress(101, sm.BTCDeployerAddress, nil)
if err != nil {
panic(err)
}
// mine some blocks to get some BTC into the deployer address
_, err = sm.BtcRPCClient.GenerateToAddress(101, sm.BTCDeployerAddress, nil)
if err != nil {
panic(err)
}

_, err = btc.GenerateToAddress(4, sm.BTCDeployerAddress, nil)
if err != nil {
panic(err)
_, err = sm.BtcRPCClient.GenerateToAddress(4, sm.BTCDeployerAddress, nil)
if err != nil {
panic(err)
}
}
}

Expand Down
24 changes: 11 additions & 13 deletions contrib/localnet/orchestrator/smoketest/runner/setup_zeta.go
Original file line number Diff line number Diff line change
Expand Up @@ -115,12 +115,12 @@ func (sm *SmokeTestRunner) SetZEVMContracts() {
sm.SystemContract = SystemContract
sm.SystemContractAddr = systemContractAddr

// set ZRC20 contracts
sm.SetupETHZRC20()
sm.SetupBTCZRC20()
}

func (sm *SmokeTestRunner) SetupZEVMSwapApp() {
zevmSwapAppAddr, tx, zevmSwapApp, err := zevmswap.DeployZEVMSwapApp(
// deploy ZEVMSwapApp and ContextApp
zevmSwapAppAddr, txZEVMSwapApp, zevmSwapApp, err := zevmswap.DeployZEVMSwapApp(
sm.ZevmAuth,
sm.ZevmClient,
sm.UniswapV2RouterAddr,
Expand All @@ -129,25 +129,23 @@ func (sm *SmokeTestRunner) SetupZEVMSwapApp() {
if err != nil {
panic(err)
}
receipt := utils.MustWaitForTxReceipt(sm.Ctx, sm.ZevmClient, tx, sm.Logger, sm.ReceiptTimeout)

contextAppAddr, txContextApp, contextApp, err := contextapp.DeployContextApp(sm.ZevmAuth, sm.ZevmClient)
if err != nil {
panic(err)
}

receipt := utils.MustWaitForTxReceipt(sm.Ctx, sm.ZevmClient, txZEVMSwapApp, sm.Logger, sm.ReceiptTimeout)
if receipt.Status != 1 {
panic("ZEVMSwapApp deployment failed")
}
sm.Logger.Info("ZEVMSwapApp contract address: %s, tx hash: %s", zevmSwapAppAddr.Hex(), tx.Hash().Hex())
sm.ZEVMSwapAppAddr = zevmSwapAppAddr
sm.ZEVMSwapApp = zevmSwapApp
}

func (sm *SmokeTestRunner) SetupContextApp() {
contextAppAddr, tx, contextApp, err := contextapp.DeployContextApp(sm.ZevmAuth, sm.ZevmClient)
if err != nil {
panic(err)
}
receipt := utils.MustWaitForTxReceipt(sm.Ctx, sm.ZevmClient, tx, sm.Logger, sm.ReceiptTimeout)
receipt = utils.MustWaitForTxReceipt(sm.Ctx, sm.ZevmClient, txContextApp, sm.Logger, sm.ReceiptTimeout)
if receipt.Status != 1 {
panic("ContextApp deployment failed")
}
sm.Logger.Info("ContextApp contract address: %s, tx hash: %s", contextAppAddr.Hex(), tx.Hash().Hex())
sm.ContextAppAddr = contextAppAddr
sm.ContextApp = contextApp
}
Expand Down
2 changes: 1 addition & 1 deletion contrib/localnet/orchestrator/start-upgrade.sh
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ fi
echo "E2E setup passed, waiting for upgrade height..."

# Restart zetaclients at upgrade height
/work/restart-zetaclientd.sh -u 180 -n 2
/work/restart-zetaclientd.sh -u 200 -n 2

echo "waiting 10 seconds for node to restart..."

Expand Down
15 changes: 13 additions & 2 deletions contrib/localnet/scripts/genesis-stateful.sh
Original file line number Diff line number Diff line change
Expand Up @@ -100,12 +100,23 @@ then
cat $HOME/.zetacored/config/genesis.json | jq '.consensus_params["block"]["max_gas"]="500000000"' > $HOME/.zetacored/config/tmp_genesis.json && mv $HOME/.zetacored/config/tmp_genesis.json $HOME/.zetacored/config/genesis.json
cat $HOME/.zetacored/config/genesis.json | jq '.app_state["gov"]["voting_params"]["voting_period"]="100s"' > $HOME/.zetacored/config/tmp_genesis.json && mv $HOME/.zetacored/config/tmp_genesis.json $HOME/.zetacored/config/genesis.json

# set fungible admin account as admin for fungible token
# set fungible admin account as admin for fungible token
zetacored add-genesis-account zeta1srsq755t654agc0grpxj4y3w0znktrpr9tcdgk 100000000000000000000000000azeta
zetacored add-genesis-account zeta1n0rn6sne54hv7w2uu93fl48ncyqz97d3kty6sh 100000000000000000000000000azeta # Funds the localnet_gov_admin account
cat $HOME/.zetacored/config/genesis.json | jq '.app_state["observer"]["params"]["admin_policy"][0]["address"]="zeta1srsq755t654agc0grpxj4y3w0znktrpr9tcdgk"' > $HOME/.zetacored/config/tmp_genesis.json && mv $HOME/.zetacored/config/tmp_genesis.json $HOME/.zetacored/config/genesis.json
cat $HOME/.zetacored/config/genesis.json | jq '.app_state["observer"]["params"]["admin_policy"][1]["address"]="zeta1srsq755t654agc0grpxj4y3w0znktrpr9tcdgk"' > $HOME/.zetacored/config/tmp_genesis.json && mv $HOME/.zetacored/config/tmp_genesis.json $HOME/.zetacored/config/genesis.json

# give balance to deployer account to deploy contracts directly on zEVM
zetacored add-genesis-account zeta1uhznv7uzyjq84s3q056suc8pkme85lkvhrz3dd 100000000000000000000000000azeta
# erc20 tester
zetacored add-genesis-account zeta1datate7xmwm4uk032f9rmcu0cwy7ch7kg6y6zv 100000000000000000000000000azeta
# zeta tester
zetacored add-genesis-account zeta1tnp0hvsq4y5mxuhrq9h3jfwulxywpq0ads0rer 100000000000000000000000000azeta
# bitcoin tester
zetacored add-genesis-account zeta19q7czqysah6qg0n4y3l2a08gfzqxydla492v80 100000000000000000000000000azeta
# ethers tester
zetacored add-genesis-account zeta134rakuus43xn63yucgxhn88ywj8ewcv6ezn2ga 100000000000000000000000000azeta

# 3. Copy the genesis.json to all the nodes .And use it to create a gentx for every node
zetacored gentx operator 1000000000000000000000azeta --chain-id=$CHAINID --keyring-backend=$KEYRING
# Copy host gentx to other nodes
Expand Down Expand Up @@ -175,7 +186,7 @@ echo

if [ $HOSTNAME = "zetacore0" ]
then
/root/.zetacored/cosmovisor/genesis/bin/zetacored tx gov submit-legacy-proposal software-upgrade $UpgradeName --from hotkey --deposit 100000000azeta --upgrade-height 180 --title $UpgradeName --description $UpgradeName --keyring-backend test --chain-id $CHAINID --yes --no-validate --fees=200azeta --broadcast-mode block
/root/.zetacored/cosmovisor/genesis/bin/zetacored tx gov submit-legacy-proposal software-upgrade $UpgradeName --from hotkey --deposit 100000000azeta --upgrade-height 200 --title $UpgradeName --description $UpgradeName --keyring-backend test --chain-id $CHAINID --yes --no-validate --fees=200azeta --broadcast-mode block
fi

sleep 8
Expand Down
14 changes: 13 additions & 1 deletion contrib/localnet/scripts/genesis.sh
Original file line number Diff line number Diff line change
Expand Up @@ -91,12 +91,24 @@ then
cat $HOME/.zetacored/config/genesis.json | jq '.app_state["gov"]["voting_params"]["voting_period"]="100s"' > $HOME/.zetacored/config/tmp_genesis.json && mv $HOME/.zetacored/config/tmp_genesis.json $HOME/.zetacored/config/genesis.json
cat $HOME/.zetacored/config/genesis.json | jq '.app_state["feemarket"]["params"]["min_gas_price"]="10000000000.0000"' > $HOME/.zetacored/config/tmp_genesis.json && mv $HOME/.zetacored/config/tmp_genesis.json $HOME/.zetacored/config/genesis.json

# set admin account
# set admin account
zetacored add-genesis-account zeta1srsq755t654agc0grpxj4y3w0znktrpr9tcdgk 100000000000000000000000000azeta
zetacored add-genesis-account zeta1n0rn6sne54hv7w2uu93fl48ncyqz97d3kty6sh 100000000000000000000000000azeta # Funds the localnet_gov_admin account
cat $HOME/.zetacored/config/genesis.json | jq '.app_state["observer"]["params"]["admin_policy"][0]["address"]="zeta1srsq755t654agc0grpxj4y3w0znktrpr9tcdgk"' > $HOME/.zetacored/config/tmp_genesis.json && mv $HOME/.zetacored/config/tmp_genesis.json $HOME/.zetacored/config/genesis.json
cat $HOME/.zetacored/config/genesis.json | jq '.app_state["observer"]["params"]["admin_policy"][1]["address"]="zeta1srsq755t654agc0grpxj4y3w0znktrpr9tcdgk"' > $HOME/.zetacored/config/tmp_genesis.json && mv $HOME/.zetacored/config/tmp_genesis.json $HOME/.zetacored/config/genesis.json

# give balance to runner accounts to deploy contracts directly on zEVM
# deployer
zetacored add-genesis-account zeta1uhznv7uzyjq84s3q056suc8pkme85lkvhrz3dd 100000000000000000000000000azeta
# erc20 tester
zetacored add-genesis-account zeta1datate7xmwm4uk032f9rmcu0cwy7ch7kg6y6zv 100000000000000000000000000azeta
# zeta tester
zetacored add-genesis-account zeta1tnp0hvsq4y5mxuhrq9h3jfwulxywpq0ads0rer 100000000000000000000000000azeta
# bitcoin tester
zetacored add-genesis-account zeta19q7czqysah6qg0n4y3l2a08gfzqxydla492v80 100000000000000000000000000azeta
# ethers tester
zetacored add-genesis-account zeta134rakuus43xn63yucgxhn88ywj8ewcv6ezn2ga 100000000000000000000000000azeta

# 3. Copy the genesis.json to all the nodes .And use it to create a gentx for every node
zetacored gentx operator 1000000000000000000000azeta --chain-id=$CHAINID --keyring-backend=$KEYRING --gas-prices 20000000000azeta
# Copy host gentx to other nodes
Expand Down
Loading

0 comments on commit 8d0b7d5

Please sign in to comment.