From 7371f74ac01b02036f530273434a8d1846b14287 Mon Sep 17 00:00:00 2001 From: Tanmay Date: Wed, 15 Jan 2025 17:59:41 -0500 Subject: [PATCH 01/22] add solana support --- cmd/zetatool/config/config.go | 35 +- cmd/zetatool/config/config_test.go | 2 +- cmd/zetatool/filterdeposit/filterdeposit.go | 4 +- .../filterdeposit/filterdeposit_test.go | 8 +- cmd/zetatool/inbound_ballot/bitcoin.go | 220 ++++++++++++ cmd/zetatool/inbound_ballot/evm.go | 330 ++++++++++++++++++ cmd/zetatool/inbound_ballot/inbound.go | 81 +++++ cmd/zetatool/inbound_ballot/solana.go | 106 ++++++ cmd/zetatool/main.go | 2 + zetaclient/chains/solana/observer/inbound.go | 28 +- 10 files changed, 792 insertions(+), 24 deletions(-) create mode 100644 cmd/zetatool/inbound_ballot/bitcoin.go create mode 100644 cmd/zetatool/inbound_ballot/evm.go create mode 100644 cmd/zetatool/inbound_ballot/inbound.go create mode 100644 cmd/zetatool/inbound_ballot/solana.go diff --git a/cmd/zetatool/config/config.go b/cmd/zetatool/config/config.go index 6f3face04d..f3d2e959fd 100644 --- a/cmd/zetatool/config/config.go +++ b/cmd/zetatool/config/config.go @@ -11,30 +11,51 @@ var AppFs = afero.NewOsFs() const ( FlagConfig = "config" defaultCfgFileName = "zetatool_config.json" - ZetaURL = "127.0.0.1:1317" - BtcExplorerURL = "https://blockstream.info/api/" - EthRPCURL = "https://ethereum-rpc.publicnode.com" - ConnectorAddress = "0x000007Cf399229b2f5A4D043F20E90C9C98B7C6a" - CustodyAddress = "0x0000030Ec64DF25301d8414eE5a29588C4B0dE10" + ZetaChainGRPC = "127.0.0.1:9090" + EthRPCURL = "http://127.0.0.1:8545" + + BtcRPC = "smoketest" + BtcRPCPassword = "123" + BtcRPCHost = "127.0.0.1:18443" + BtcRPCParams = "regtest" + + SolanaRPC = "http://127.0.0.1:8899" + + ZetaChainID = 101 + ConnectorAddress = "0x000007Cf399229b2f5A4D043F20E90C9C98B7C6a" + CustodyAddress = "0x0000030Ec64DF25301d8414eE5a29588C4B0dE10" + BtcExplorerURL = "https://blockstream.info/api/" ) // Config is a struct the defines the configuration fields used by zetatool type Config struct { - ZetaURL string + ZetaGRPC string + ZetaChainID int64 BtcExplorerURL string EthRPCURL string EtherscanAPIkey string ConnectorAddress string CustodyAddress string + BtcUser string + BtcPassword string + BtcHost string + BtcRPCParams string + SolanaRPC string } func DefaultConfig() *Config { return &Config{ - ZetaURL: ZetaURL, + ZetaGRPC: ZetaChainGRPC, BtcExplorerURL: BtcExplorerURL, EthRPCURL: EthRPCURL, ConnectorAddress: ConnectorAddress, CustodyAddress: CustodyAddress, + ZetaChainID: ZetaChainID, + BtcUser: BtcRPC, + BtcPassword: BtcRPCPassword, + BtcHost: BtcRPCHost, + BtcRPCParams: BtcRPCParams, + SolanaRPC: SolanaRPC, } } diff --git a/cmd/zetatool/config/config_test.go b/cmd/zetatool/config/config_test.go index dd56604d5f..9685b13738 100644 --- a/cmd/zetatool/config/config_test.go +++ b/cmd/zetatool/config/config_test.go @@ -10,7 +10,7 @@ import ( func TestDefaultConfig(t *testing.T) { cfg := DefaultConfig() require.Equal(t, cfg.EthRPCURL, EthRPCURL) - require.Equal(t, cfg.ZetaURL, ZetaURL) + require.Equal(t, cfg.ZetaGRPC, ZetaChainGRPC) require.Equal(t, cfg.BtcExplorerURL, BtcExplorerURL) require.Equal(t, cfg.ConnectorAddress, ConnectorAddress) require.Equal(t, cfg.CustodyAddress, CustodyAddress) diff --git a/cmd/zetatool/filterdeposit/filterdeposit.go b/cmd/zetatool/filterdeposit/filterdeposit.go index e49a333f3f..f54b0817d3 100644 --- a/cmd/zetatool/filterdeposit/filterdeposit.go +++ b/cmd/zetatool/filterdeposit/filterdeposit.go @@ -47,7 +47,7 @@ func CheckForCCTX(list []Deposit, cfg *config.Config) ([]Deposit, error) { fmt.Println("Going through list, num of transactions: ", len(list)) for _, entry := range list { - zetaURL, err := url.JoinPath(cfg.ZetaURL, "zeta-chain", "crosschain", "in_tx_hash_to_cctx_data", entry.TxID) + zetaURL, err := url.JoinPath(cfg.ZetaGRPC, "zeta-chain", "crosschain", "in_tx_hash_to_cctx_data", entry.TxID) if err != nil { return missedList, err } @@ -97,7 +97,7 @@ func CheckForCCTX(list []Deposit, cfg *config.Config) ([]Deposit, error) { func GetTssAddress(cfg *config.Config, btcChainID string) (*types.QueryGetTssAddressResponse, error) { res := &types.QueryGetTssAddressResponse{} - requestURL, err := url.JoinPath(cfg.ZetaURL, "zeta-chain", "observer", "get_tss_address", btcChainID) + requestURL, err := url.JoinPath(cfg.ZetaGRPC, "zeta-chain", "observer", "get_tss_address", btcChainID) if err != nil { return res, err } diff --git a/cmd/zetatool/filterdeposit/filterdeposit_test.go b/cmd/zetatool/filterdeposit/filterdeposit_test.go index a2d2adb510..bb4c9b9719 100644 --- a/cmd/zetatool/filterdeposit/filterdeposit_test.go +++ b/cmd/zetatool/filterdeposit/filterdeposit_test.go @@ -34,7 +34,7 @@ func TestCheckForCCTX(t *testing.T) { Amount: uint64(657177295293237048), }} cfg := config.DefaultConfig() - cfg.ZetaURL = server.URL + cfg.ZetaGRPC = server.URL missedInbounds, err := CheckForCCTX(deposits, cfg) require.NoError(t, err) require.Equal(t, 0, len(missedInbounds)) @@ -53,7 +53,7 @@ func TestCheckForCCTX(t *testing.T) { Amount: uint64(657177295293237048), }} cfg := config.DefaultConfig() - cfg.ZetaURL = server.URL + cfg.ZetaGRPC = server.URL missedInbounds, err := CheckForCCTX(deposits, cfg) require.NoError(t, err) require.Equal(t, 1, len(missedInbounds)) @@ -74,7 +74,7 @@ func TestGetTssAddress(t *testing.T) { require.NoError(t, err) })) cfg := config.DefaultConfig() - cfg.ZetaURL = server.URL + cfg.ZetaGRPC = server.URL _, err := GetTssAddress(cfg, "8332") require.NoError(t, err) }) @@ -91,7 +91,7 @@ func TestGetTssAddress(t *testing.T) { } })) cfg := config.DefaultConfig() - cfg.ZetaURL = server.URL + cfg.ZetaGRPC = server.URL _, err := GetTssAddress(cfg, "8332") require.Error(t, err) }) diff --git a/cmd/zetatool/inbound_ballot/bitcoin.go b/cmd/zetatool/inbound_ballot/bitcoin.go new file mode 100644 index 0000000000..c52a2caf9c --- /dev/null +++ b/cmd/zetatool/inbound_ballot/bitcoin.go @@ -0,0 +1,220 @@ +package inbound_ballot + +import ( + "context" + "encoding/hex" + "fmt" + "math/big" + + cosmosmath "cosmossdk.io/math" + "github.com/btcsuite/btcd/chaincfg" + "github.com/btcsuite/btcd/chaincfg/chainhash" + "github.com/btcsuite/btcd/rpcclient" + "github.com/rs/zerolog" + "github.com/zeta-chain/node/cmd/zetatool/config" + "github.com/zeta-chain/node/pkg/chains" + "github.com/zeta-chain/node/pkg/coin" + "github.com/zeta-chain/node/pkg/rpc" + crosschaintypes "github.com/zeta-chain/node/x/crosschain/types" + "github.com/zeta-chain/node/x/observer/types" + "github.com/zeta-chain/node/zetaclient/chains/bitcoin/common" + "github.com/zeta-chain/node/zetaclient/chains/bitcoin/observer" +) + +func BtcInboundBallotIdentified(ctx context.Context, + cfg config.Config, + zetacoreClient rpc.Clients, + inboundHash string, + inboundChain chains.Chain, + zetaChainID int64) (string, error) { + + params, err := chains.BitcoinNetParamsFromChainID(inboundChain.ChainId) + if err != nil { + return "", fmt.Errorf("unable to get bitcoin net params from chain id: %s", err) + } + + connCfg := &rpcclient.ConnConfig{ + Host: cfg.BtcHost, + User: cfg.BtcUser, + Pass: cfg.BtcPassword, + HTTPPostMode: true, + DisableTLS: true, + Params: params.Name, + } + rpcClient, err := rpcclient.New(connCfg, nil) + if err != nil { + return "", fmt.Errorf("error creating rpc client: %s", err) + } + + err = rpcClient.Ping() + if err != nil { + return "", fmt.Errorf("error ping the bitcoin server: %s", err) + } + res, err := zetacoreClient.Observer.GetTssAddress(context.Background(), &types.QueryGetTssAddressRequest{}) + if err != nil { + return "", fmt.Errorf("failed to get tss address %s", err.Error()) + } + tssBtcAddress := res.GetBtc() + + return bitcoinBallotIdentifier(ctx, rpcClient, params, tssBtcAddress, inboundHash, inboundChain.ChainId, zetaChainID) +} + +func bitcoinBallotIdentifier(ctx context.Context, + btcClient *rpcclient.Client, + params *chaincfg.Params, + tss string, + txHash string, + senderChainID int64, + zetacoreChainID int64) (string, error) { + hash, err := chainhash.NewHashFromStr(txHash) + if err != nil { + return "", err + } + + tx, err := btcClient.GetRawTransactionVerbose(hash) + if err != nil { + return "", err + } + + blockHash, err := chainhash.NewHashFromStr(tx.BlockHash) + if err != nil { + return "", err + } + + blockVb, err := btcClient.GetBlockVerboseTx(blockHash) + if err != nil { + return "", err + } + + if len(blockVb.Tx) <= 1 { + return "", fmt.Errorf("block %d has no transactions", blockVb.Height) + } + + //// check confirmation + //// #nosec G115 block height always positive + //if !ob.IsBlockConfirmed(uint64(blockVb.Height)) { + // return "", fmt.Errorf("block %d is not confirmed yet", blockVb.Height) + //} + + // #nosec G115 always positive + + event, err := observer.GetBtcEvent( + btcClient, + *tx, + tss, + uint64(blockVb.Height), + zerolog.New(zerolog.Nop()), + params, + common.CalcDepositorFee, + ) + if err != nil { + return "", fmt.Errorf("error getting btc event: %s", err) + } + + if event == nil { + return "", fmt.Errorf("no event built for btc sent to TSS") + } + + return identifierFromBtcEvent(event, senderChainID, zetacoreChainID) + +} + +func identifierFromBtcEvent(event *observer.BTCInboundEvent, + senderChainID int64, + zetacoreChainID int64) (string, error) { + // decode event memo bytes + err := event.DecodeMemoBytes(senderChainID) + if err != nil { + return "", fmt.Errorf("error decoding memo bytes: %s", err) + } + + // check if the event is processable + //if !ob.IsEventProcessable(*event) { + // return nil + //} + + // convert the amount to integer (satoshis) + amountSats, err := common.GetSatoshis(event.Value) + if err != nil { + return "", fmt.Errorf("error converting amount to satoshis: %s", err) + } + amountInt := big.NewInt(amountSats) + + switch event.MemoStd { + case nil: + { + msg := voteFromLegacyMemo(event, amountInt, senderChainID, zetacoreChainID) + return msg.Digest(), nil + } + default: + { + msg := voteFromStdMemo(event, amountInt, senderChainID, zetacoreChainID) + return msg.Digest(), nil + } + } +} + +// NewInboundVoteFromLegacyMemo creates a MsgVoteInbound message for inbound that uses legacy memo +func voteFromLegacyMemo( + event *observer.BTCInboundEvent, + amountSats *big.Int, + senderChainId int64, + zetacoreChainId int64, +) *crosschaintypes.MsgVoteInbound { + message := hex.EncodeToString(event.MemoBytes) + + return crosschaintypes.NewMsgVoteInbound( + "", + event.FromAddress, + senderChainId, + event.FromAddress, + event.ToAddress, + zetacoreChainId, + cosmosmath.NewUintFromBigInt(amountSats), + message, + event.TxHash, + event.BlockNumber, + 0, + coin.CoinType_Gas, + "", + 0, + crosschaintypes.ProtocolContractVersion_V1, + false, // not relevant for v1 + ) +} + +func voteFromStdMemo( + event *observer.BTCInboundEvent, + amountSats *big.Int, + senderChainId int64, + zetacoreChainId int64, +) *crosschaintypes.MsgVoteInbound { + // zetacore will create a revert outbound that points to the custom revert address. + revertOptions := crosschaintypes.RevertOptions{ + RevertAddress: event.MemoStd.RevertOptions.RevertAddress, + } + + // make a legacy message so that zetacore can process it as V1 + msgBytes := append(event.MemoStd.Receiver.Bytes(), event.MemoStd.Payload...) + message := hex.EncodeToString(msgBytes) + + return crosschaintypes.NewMsgVoteInbound( + "", + event.FromAddress, + senderChainId, + event.FromAddress, + event.ToAddress, + zetacoreChainId, + cosmosmath.NewUintFromBigInt(amountSats), + message, + event.TxHash, + event.BlockNumber, + 0, + coin.CoinType_Gas, + "", + 0, + crosschaintypes.ProtocolContractVersion_V1, + false, // not relevant for v1 + crosschaintypes.WithRevertOptions(revertOptions), + ) +} diff --git a/cmd/zetatool/inbound_ballot/evm.go b/cmd/zetatool/inbound_ballot/evm.go new file mode 100644 index 0000000000..1e166b1063 --- /dev/null +++ b/cmd/zetatool/inbound_ballot/evm.go @@ -0,0 +1,330 @@ +package inbound_ballot + +import ( + "bytes" + "context" + "encoding/base64" + "encoding/hex" + "fmt" + + sdkmath "cosmossdk.io/math" + ethcommon "github.com/ethereum/go-ethereum/common" + ethtypes "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/ethclient" + ethrpc "github.com/ethereum/go-ethereum/rpc" + "github.com/zeta-chain/node/cmd/zetatool/config" + "github.com/zeta-chain/node/pkg/chains" + "github.com/zeta-chain/node/pkg/coin" + "github.com/zeta-chain/node/pkg/constant" + "github.com/zeta-chain/node/pkg/crypto" + "github.com/zeta-chain/node/pkg/rpc" + crosschaintypes "github.com/zeta-chain/node/x/crosschain/types" + "github.com/zeta-chain/node/x/observer/types" + clienttypes "github.com/zeta-chain/node/zetaclient/types" + "github.com/zeta-chain/node/zetaclient/zetacore" + "github.com/zeta-chain/protocol-contracts/v1/pkg/contracts/evm/erc20custody.sol" + "github.com/zeta-chain/protocol-contracts/v1/pkg/contracts/evm/zetaconnector.non-eth.sol" + "github.com/zeta-chain/protocol-contracts/v2/pkg/gatewayevm.sol" +) + +func EvmInboundBallotIdentified(ctx context.Context, + cfg config.Config, + zetacoreClient rpc.Clients, + inboundHash string, + inboundChain chains.Chain, + zetaChainID int64) (string, error) { + rpcClient, err := ethrpc.DialHTTP(cfg.EthRPCURL) + if err != nil { + return "", fmt.Errorf("failed to connect to eth rpc %s", err.Error()) + } + evmClient := ethclient.NewClient(rpcClient) + + res, err := zetacoreClient.Observer.GetTssAddress(context.Background(), &types.QueryGetTssAddressRequest{}) + if err != nil { + return "", fmt.Errorf("failed to get tss address %s", err.Error()) + } + tssEthAddress := res.GetEth() + + hash := ethcommon.HexToHash(inboundHash) + tx, isPending, err := evmClient.TransactionByHash(ctx, hash) + if err != nil { + return "", fmt.Errorf("tx not found on chain %s, %d", err.Error(), inboundChain.ChainId) + } + if isPending { + return "", fmt.Errorf("tx is still pending on chain %d", inboundChain.ChainId) + } + receipt, err := evmClient.TransactionReceipt(ctx, hash) + if err != nil { + return "", fmt.Errorf("failed to get receipt %s , tx hash %s", err.Error(), inboundHash) + } + chainParams, err := zetacoreClient.GetChainParamsForChainID(context.Background(), inboundChain.ChainId) + if err != nil { + return "", fmt.Errorf("failed to get chain params %s", err.Error()) + } + + switch tx.To().Hex() { + case chainParams.ConnectorContractAddress: + { + // build inbound vote message and post vote + addrConnector := ethcommon.HexToAddress(chainParams.ConnectorContractAddress) + connector, err := zetaconnector.NewZetaConnectorNonEth(addrConnector, evmClient) + if err != nil { + return "", fmt.Errorf("failed to get connector contract %s", err.Error()) + } + for _, log := range receipt.Logs { + event, err := connector.ParseZetaSent(*log) + if err == nil && event != nil { + msg := zetaTokenVoteV1(event, inboundChain.ChainId) + return msg.Digest(), nil + } + } + } + case chainParams.Erc20CustodyContractAddress: + { + addrCustody := ethcommon.HexToAddress(chainParams.Erc20CustodyContractAddress) + custody, err := erc20custody.NewERC20Custody(addrCustody, evmClient) + if err != nil { + return "", fmt.Errorf("failed to get custody contract %s", err.Error()) + } + sender, err := evmClient.TransactionSender(ctx, tx, receipt.BlockHash, receipt.TransactionIndex) + if err != nil { + return "", fmt.Errorf("failed to get tx sender %s", err.Error()) + } + for _, log := range receipt.Logs { + zetaDeposited, err := custody.ParseDeposited(*log) + if err == nil && zetaDeposited != nil { + msg := erc20VoteV1(zetaDeposited, sender, inboundChain.ChainId, zetaChainID) + return msg.Digest(), nil + } + } + } + case tssEthAddress: + { + if receipt.Status != ethtypes.ReceiptStatusSuccessful { + return "", fmt.Errorf("tx failed on chain %d", inboundChain.ChainId) + } + sender, err := evmClient.TransactionSender(ctx, tx, receipt.BlockHash, receipt.TransactionIndex) + if err != nil { + return "", fmt.Errorf("failed to get tx sender %s", err.Error()) + } + msg := gasVoteV1(tx, sender, receipt.BlockNumber.Uint64(), inboundChain.ChainId, zetaChainID) + return msg.Digest(), nil + } + case chainParams.GatewayAddress: + { + gatewayAddr := ethcommon.HexToAddress(chainParams.GatewayAddress) + gateway, err := gatewayevm.NewGatewayEVM(gatewayAddr, evmClient) + if err != nil { + return "", fmt.Errorf("failed to get gateway contract %s", err.Error()) + } + for _, log := range receipt.Logs { + if log == nil || log.Address != gatewayAddr { + continue + } + eventDeposit, err := gateway.ParseDeposited(*log) + if err == nil { + msg := depositInboundVoteV2(eventDeposit, inboundChain.ChainId, zetaChainID) + return msg.Digest(), nil + } + eventDepositAndCall, err := gateway.ParseDepositedAndCalled(*log) + if err == nil { + msg := depositAndCallInboundVoteV2(eventDepositAndCall, inboundChain.ChainId, zetaChainID) + return msg.Digest(), nil + } + eventCall, err := gateway.ParseCalled(*log) + if err == nil { + msg := callInboundVoteV2(eventCall, inboundChain.ChainId, zetaChainID) + return msg.Digest(), nil + } + } + } + } + return "", fmt.Errorf("no event found for tx %s", inboundHash) +} + +func zetaTokenVoteV1( + event *zetaconnector.ZetaConnectorNonEthZetaSent, + observationChain int64, +) *crosschaintypes.MsgVoteInbound { + // note that this is most likely zeta chain + destChain, found := chains.GetChainFromChainID(event.DestinationChainId.Int64(), []chains.Chain{}) + if !found { + fmt.Println("Not found") + return nil + } + + destAddr := clienttypes.BytesToEthHex(event.DestinationAddress) + sender := event.ZetaTxSenderAddress.Hex() + message := base64.StdEncoding.EncodeToString(event.Message) + + return zetacore.GetInboundVoteMessage( + sender, + observationChain, + event.SourceTxOriginAddress.Hex(), + destAddr, + destChain.ChainId, + sdkmath.NewUintFromBigInt(event.ZetaValueAndGas), + message, + event.Raw.TxHash.Hex(), + event.Raw.BlockNumber, + event.DestinationGasLimit.Uint64(), + coin.CoinType_Zeta, + "", + "", + event.Raw.Index, + ) +} + +func erc20VoteV1( + event *erc20custody.ERC20CustodyDeposited, + sender ethcommon.Address, + observationChain int64, + zetacoreChainID int64, +) *crosschaintypes.MsgVoteInbound { + // donation check + if bytes.Equal(event.Message, []byte(constant.DonationMessage)) { + return nil + } + + return zetacore.GetInboundVoteMessage( + sender.Hex(), + observationChain, + "", + clienttypes.BytesToEthHex(event.Recipient), + zetacoreChainID, + sdkmath.NewUintFromBigInt(event.Amount), + hex.EncodeToString(event.Message), + event.Raw.TxHash.Hex(), + event.Raw.BlockNumber, + 1_500_000, + coin.CoinType_ERC20, + event.Asset.String(), + "", + event.Raw.Index, + ) +} + +func gasVoteV1( + tx *ethtypes.Transaction, + sender ethcommon.Address, + blockNumber uint64, + senderChainID int64, + zetacoreChainID int64, +) *crosschaintypes.MsgVoteInbound { + message := string(tx.Data()) + // donation check + // #nosec G703 err is already checked + data, _ := hex.DecodeString(message) + if bytes.Equal(data, []byte(constant.DonationMessage)) { + return nil + } + + return zetacore.GetInboundVoteMessage( + sender.Hex(), + senderChainID, + sender.Hex(), + sender.Hex(), + zetacoreChainID, + sdkmath.NewUintFromString(tx.Value().String()), + message, + tx.Hash().Hex(), + blockNumber, + 90_000, + coin.CoinType_Gas, + "", + "", + 0, // not a smart contract call + ) +} + +func depositInboundVoteV2(event *gatewayevm.GatewayEVMDeposited, + senderChainID int64, + zetacoreChainID int64) crosschaintypes.MsgVoteInbound { + // if event.Asset is zero, it's a native token + coinType := coin.CoinType_ERC20 + if crypto.IsEmptyAddress(event.Asset) { + coinType = coin.CoinType_Gas + } + + // to maintain compatibility with previous gateway version, deposit event with a non-empty payload is considered as a call + isCrossChainCall := false + if len(event.Payload) > 0 { + isCrossChainCall = true + } + + return *crosschaintypes.NewMsgVoteInbound( + "", + event.Sender.Hex(), + senderChainID, + "", + event.Receiver.Hex(), + zetacoreChainID, + sdkmath.NewUintFromBigInt(event.Amount), + hex.EncodeToString(event.Payload), + event.Raw.TxHash.Hex(), + event.Raw.BlockNumber, + zetacore.PostVoteInboundCallOptionsGasLimit, + coinType, + event.Asset.Hex(), + event.Raw.Index, + crosschaintypes.ProtocolContractVersion_V2, + false, // currently not relevant since calls are not arbitrary + crosschaintypes.WithEVMRevertOptions(event.RevertOptions), + crosschaintypes.WithCrossChainCall(isCrossChainCall), + ) +} + +func depositAndCallInboundVoteV2(event *gatewayevm.GatewayEVMDepositedAndCalled, + senderChainID int64, + zetacoreChainID int64) crosschaintypes.MsgVoteInbound { + // if event.Asset is zero, it's a native token + coinType := coin.CoinType_ERC20 + if crypto.IsEmptyAddress(event.Asset) { + coinType = coin.CoinType_Gas + } + + return *crosschaintypes.NewMsgVoteInbound( + "", + event.Sender.Hex(), + senderChainID, + "", + event.Receiver.Hex(), + zetacoreChainID, + sdkmath.NewUintFromBigInt(event.Amount), + hex.EncodeToString(event.Payload), + event.Raw.TxHash.Hex(), + event.Raw.BlockNumber, + 1_500_000, + coinType, + event.Asset.Hex(), + event.Raw.Index, + crosschaintypes.ProtocolContractVersion_V2, + false, // currently not relevant since calls are not arbitrary + crosschaintypes.WithEVMRevertOptions(event.RevertOptions), + crosschaintypes.WithCrossChainCall(true), + ) +} + +func callInboundVoteV2(event *gatewayevm.GatewayEVMCalled, + senderChainID int64, + zetacoreChainID int64) crosschaintypes.MsgVoteInbound { + return *crosschaintypes.NewMsgVoteInbound( + "", + event.Sender.Hex(), + senderChainID, + "", + event.Receiver.Hex(), + zetacoreChainID, + sdkmath.ZeroUint(), + hex.EncodeToString(event.Payload), + event.Raw.TxHash.Hex(), + event.Raw.BlockNumber, + zetacore.PostVoteInboundCallOptionsGasLimit, + coin.CoinType_NoAssetCall, + "", + event.Raw.Index, + crosschaintypes.ProtocolContractVersion_V2, + false, // currently not relevant since calls are not arbitrary + crosschaintypes.WithEVMRevertOptions(event.RevertOptions), + ) +} diff --git a/cmd/zetatool/inbound_ballot/inbound.go b/cmd/zetatool/inbound_ballot/inbound.go new file mode 100644 index 0000000000..a2aed621e6 --- /dev/null +++ b/cmd/zetatool/inbound_ballot/inbound.go @@ -0,0 +1,81 @@ +package inbound_ballot + +import ( + "context" + "fmt" + "strconv" + + "github.com/spf13/cobra" + "github.com/zeta-chain/node/pkg/chains" + zetacorerpc "github.com/zeta-chain/node/pkg/rpc" + "google.golang.org/grpc" + "google.golang.org/grpc/credentials/insecure" + + "github.com/zeta-chain/node/cmd/zetatool/config" +) + +func NewInboundCMD() *cobra.Command { + return &cobra.Command{ + Use: "inbound", + Short: "Fetch Inbound ballot", + RunE: InboundGetBallot, + } +} + +func InboundGetBallot(cmd *cobra.Command, args []string) error { + cobra.ExactArgs(2) + + configFile, err := cmd.Flags().GetString(config.FlagConfig) + if err != nil { + return err + } + + cfg, err := config.GetConfig(configFile) + if err != nil { + panic(err) + } + inboundHash := args[0] + fmt.Println("Inbound Hash: ", inboundHash) + + inboundChainID, err := strconv.ParseInt(args[1], 10, 64) + if err != nil { + panic(err) + } + + var unsecureGRPC = grpc.WithTransportCredentials(insecure.NewCredentials()) + zetacoreClient, err := zetacorerpc.NewGRPCClients(cfg.ZetaGRPC, unsecureGRPC) + if err != nil { + panic(err) + } + + observationChain, found := chains.GetChainFromChainID(inboundChainID, []chains.Chain{}) + if !found { + fmt.Println("Chain not found") + } + ctx := context.Background() + ballotIdentifier := "" + + if observationChain.IsEVMChain() { + ballotIdentifier, err = EvmInboundBallotIdentified(ctx, *cfg, zetacoreClient, inboundHash, observationChain, cfg.ZetaChainID) + if err != nil { + return fmt.Errorf("failed to get inbound ballot for evm chain %d, %s", observationChain.ChainId, err.Error()) + } + } + + if observationChain.IsBitcoinChain() { + ballotIdentifier, err = BtcInboundBallotIdentified(ctx, *cfg, zetacoreClient, inboundHash, observationChain, cfg.ZetaChainID) + if err != nil { + return fmt.Errorf("failed to get inbound ballot for bitcoin chain %d, %s", observationChain.ChainId, err.Error()) + } + } + + if observationChain.IsSolanaChain() { + ballotIdentifier, err = SolanaInboundBallotIdentified(ctx, *cfg, zetacoreClient, inboundHash, observationChain, cfg.ZetaChainID) + if err != nil { + return fmt.Errorf("failed to get inbound ballot for solana chain %d, %s", observationChain.ChainId, err.Error()) + } + } + + fmt.Println("Ballot Identifier: ", ballotIdentifier) + return nil +} diff --git a/cmd/zetatool/inbound_ballot/solana.go b/cmd/zetatool/inbound_ballot/solana.go new file mode 100644 index 0000000000..75c25202a2 --- /dev/null +++ b/cmd/zetatool/inbound_ballot/solana.go @@ -0,0 +1,106 @@ +package inbound_ballot + +import ( + "context" + "encoding/hex" + "errors" + "fmt" + + cosmosmath "cosmossdk.io/math" + "github.com/gagliardetto/solana-go" + solrpc "github.com/gagliardetto/solana-go/rpc" + "github.com/zeta-chain/node/cmd/zetatool/config" + "github.com/zeta-chain/node/pkg/chains" + solanacontracts "github.com/zeta-chain/node/pkg/contracts/solana" + "github.com/zeta-chain/node/pkg/rpc" + crosschaintypes "github.com/zeta-chain/node/x/crosschain/types" + "github.com/zeta-chain/node/zetaclient/chains/base" + "github.com/zeta-chain/node/zetaclient/chains/solana/observer" + solanarpc "github.com/zeta-chain/node/zetaclient/chains/solana/rpc" + clienttypes "github.com/zeta-chain/node/zetaclient/types" +) + +func SolanaInboundBallotIdentified(ctx context.Context, + cfg config.Config, + zetacoreClient rpc.Clients, + inboundHash string, + inboundChain chains.Chain, + zetaChainID int64) (string, error) { + + solClient := solrpc.New(cfg.SolanaRPC) + if solClient == nil { + return "", fmt.Errorf("error creating rpc client") + } + + signature := solana.MustSignatureFromBase58(inboundHash) + + txResult, err := solanarpc.GetTransaction(ctx, solClient, signature) + if err != nil { + return "", fmt.Errorf("error getting transaction: %s", err) + } + + chainParams, err := zetacoreClient.GetChainParamsForChainID(context.Background(), inboundChain.ChainId) + if err != nil { + return "", fmt.Errorf("failed to get chain params %s", err.Error()) + } + + gatewayID, _, err := solanacontracts.ParseGatewayWithPDA(chainParams.GatewayAddress) + if err != nil { + return "", fmt.Errorf("cannot parse gateway address %s , errr %s", chainParams.GatewayAddress, err.Error()) + } + + logger := &base.ObserverLogger{} + + events, err := observer.FilterSolanaInboundEvents(txResult, + logger, + gatewayID, + inboundChain.ChainId, + ) + + // build inbound vote message from events and post to zetacore + for _, event := range events { + msg := voteMsgFromSolEvent(event, zetaChainID) + return msg.Digest(), nil + + } + + return "", errors.New("no inbound vote message found") +} + +// BuildInboundVoteMsgFromEvent builds a MsgVoteInbound from an inbound event +func voteMsgFromSolEvent(event *clienttypes.InboundEvent, + zetaChainID int64) *crosschaintypes.MsgVoteInbound { + + // decode event memo bytes to get the receiver + err := event.DecodeMemo() + if err != nil { + return nil + } + + //// check if the event is processable + //if !ob.IsEventProcessable(*event) { + // return nil + //} + // + + // create inbound vote message + return crosschaintypes.NewMsgVoteInbound( + "", + event.Sender, + event.SenderChainID, + event.Sender, + event.Receiver, + zetaChainID, + cosmosmath.NewUint(event.Amount), + hex.EncodeToString(event.Memo), + event.TxHash, + event.BlockNumber, + 0, + event.CoinType, + event.Asset, + 0, // not a smart contract call + crosschaintypes.ProtocolContractVersion_V1, + false, // not relevant for v1 + ) + +} diff --git a/cmd/zetatool/main.go b/cmd/zetatool/main.go index 7fd284ed2b..dd4ffa4b6c 100644 --- a/cmd/zetatool/main.go +++ b/cmd/zetatool/main.go @@ -5,6 +5,7 @@ import ( "os" "github.com/spf13/cobra" + "github.com/zeta-chain/node/cmd/zetatool/inbound_ballot" "github.com/zeta-chain/node/cmd/zetatool/config" "github.com/zeta-chain/node/cmd/zetatool/filterdeposit" @@ -17,6 +18,7 @@ var rootCmd = &cobra.Command{ func init() { rootCmd.AddCommand(filterdeposit.NewFilterDepositCmd()) + rootCmd.AddCommand(inbound_ballot.NewInboundCMD()) rootCmd.PersistentFlags().String(config.FlagConfig, "", "custom config file: --config filename.json") } diff --git a/zetaclient/chains/solana/observer/inbound.go b/zetaclient/chains/solana/observer/inbound.go index 6cc1c8d84c..4c875988f3 100644 --- a/zetaclient/chains/solana/observer/inbound.go +++ b/zetaclient/chains/solana/observer/inbound.go @@ -10,6 +10,7 @@ import ( "github.com/gagliardetto/solana-go/rpc" "github.com/pkg/errors" "github.com/rs/zerolog" + "github.com/zeta-chain/node/zetaclient/chains/base" "github.com/zeta-chain/node/pkg/coin" solanacontracts "github.com/zeta-chain/node/pkg/contracts/solana" @@ -176,12 +177,19 @@ func (ob *Observer) FilterInboundEventsAndVote(ctx context.Context, txResult *rp return nil } -// FilterInboundEvents filters inbound events from a tx result. +func (ob *Observer) FilterInboundEvents(txResult *rpc.GetTransactionResult) ([]*clienttypes.InboundEvent, error) { + return FilterSolanaInboundEvents(txResult, ob.Logger(), ob.gatewayID, ob.Chain().ChainId) +} + +// FilterSolanaInboundEvents filters inbound events from a tx result. // Note: for consistency with EVM chains, this method // - takes at one event (the first) per token (SOL or SPL) per transaction. // - takes at most two events (one SOL + one SPL) per transaction. // - ignores exceeding events. -func (ob *Observer) FilterInboundEvents(txResult *rpc.GetTransactionResult) ([]*clienttypes.InboundEvent, error) { +func FilterSolanaInboundEvents(txResult *rpc.GetTransactionResult, + logger *base.ObserverLogger, + gatewayID solana.PublicKey, + senderChainID int64) ([]*clienttypes.InboundEvent, error) { // unmarshal transaction tx, err := txResult.Transaction.GetTransaction() if err != nil { @@ -203,14 +211,14 @@ func (ob *Observer) FilterInboundEvents(txResult *rpc.GetTransactionResult) ([]* // get the program ID programPk, err := tx.Message.Program(instruction.ProgramIDIndex) if err != nil { - ob.Logger(). + logger. Inbound.Err(err). Msgf("no program found at index %d for sig %s", instruction.ProgramIDIndex, tx.Signatures[0]) continue } // skip instructions that are irrelevant to the gateway program invocation - if !programPk.Equals(ob.gatewayID) { + if !programPk.Equals(gatewayID) { continue } @@ -222,7 +230,7 @@ func (ob *Observer) FilterInboundEvents(txResult *rpc.GetTransactionResult) ([]* } else if deposit != nil { seenDeposit = true events = append(events, &clienttypes.InboundEvent{ - SenderChainID: ob.Chain().ChainId, + SenderChainID: senderChainID, Sender: deposit.Sender, Receiver: "", // receiver will be pulled out from memo later TxOrigin: deposit.Sender, @@ -234,11 +242,11 @@ func (ob *Observer) FilterInboundEvents(txResult *rpc.GetTransactionResult) ([]* CoinType: coin.CoinType_Gas, Asset: deposit.Asset, }) - ob.Logger().Inbound.Info(). + logger.Inbound.Info(). Msgf("FilterInboundEvents: deposit detected in sig %s instruction %d", tx.Signatures[0], i) } } else { - ob.Logger().Inbound.Warn(). + logger.Inbound.Warn(). Msgf("FilterInboundEvents: multiple deposits detected in sig %s instruction %d", tx.Signatures[0], i) } @@ -250,7 +258,7 @@ func (ob *Observer) FilterInboundEvents(txResult *rpc.GetTransactionResult) ([]* } else if deposit != nil { seenDepositSPL = true events = append(events, &clienttypes.InboundEvent{ - SenderChainID: ob.Chain().ChainId, + SenderChainID: senderChainID, Sender: deposit.Sender, Receiver: "", // receiver will be pulled out from memo later TxOrigin: deposit.Sender, @@ -262,11 +270,11 @@ func (ob *Observer) FilterInboundEvents(txResult *rpc.GetTransactionResult) ([]* CoinType: coin.CoinType_ERC20, Asset: deposit.Asset, }) - ob.Logger().Inbound.Info(). + logger.Inbound.Info(). Msgf("FilterInboundEvents: SPL deposit detected in sig %s instruction %d", tx.Signatures[0], i) } } else { - ob.Logger().Inbound.Warn(). + logger.Inbound.Warn(). Msgf("FilterInboundEvents: multiple SPL deposits detected in sig %s instruction %d", tx.Signatures[0], i) } } From 9c8b2a543474a39d2a9339934a2ed139405beae9 Mon Sep 17 00:00:00 2001 From: Tanmay Date: Thu, 16 Jan 2025 16:07:15 -0500 Subject: [PATCH 02/22] remove filterdeposit --- cmd/zetatool/config/config.go | 85 ++++--- cmd/zetatool/filterdeposit/btc.go | 189 -------------- cmd/zetatool/filterdeposit/evm.go | 239 ------------------ cmd/zetatool/filterdeposit/filterdeposit.go | 124 --------- .../filterdeposit/filterdeposit_test.go | 98 ------- cmd/zetatool/inbound_ballot/evm.go | 2 + cmd/zetatool/inbound_ballot/inbound.go | 10 +- cmd/zetatool/main.go | 4 +- 8 files changed, 62 insertions(+), 689 deletions(-) delete mode 100644 cmd/zetatool/filterdeposit/btc.go delete mode 100644 cmd/zetatool/filterdeposit/evm.go delete mode 100644 cmd/zetatool/filterdeposit/filterdeposit.go delete mode 100644 cmd/zetatool/filterdeposit/filterdeposit_test.go diff --git a/cmd/zetatool/config/config.go b/cmd/zetatool/config/config.go index f3d2e959fd..000a994e24 100644 --- a/cmd/zetatool/config/config.go +++ b/cmd/zetatool/config/config.go @@ -13,49 +13,66 @@ const ( defaultCfgFileName = "zetatool_config.json" ZetaChainGRPC = "127.0.0.1:9090" EthRPCURL = "http://127.0.0.1:8545" + BtcRPC = "smoketest" + BtcRPCPassword = "123" + BtcRPCHost = "127.0.0.1:18443" + BtcRPCParams = "regtest" + SolanaRPC = "http://127.0.0.1:8899" + ZetaChainID = 101 +) - BtcRPC = "smoketest" - BtcRPCPassword = "123" - BtcRPCHost = "127.0.0.1:18443" - BtcRPCParams = "regtest" +func TestnetConfig() *Config { + return &Config{ + ZetaGRPC: "zetachain-testnet-grpc.itrocket.net:443", + EthRPCURL: "https://ethereum-sepolia-rpc.publicnode.com", + ZetaChainID: 101, + BtcUser: "", + BtcPassword: "", + BtcHost: "", + BtcRPCParams: "", + SolanaRPC: "", + } +} - SolanaRPC = "http://127.0.0.1:8899" +func MainnetConfig() *Config { + return &Config{ + ZetaGRPC: "https://zetachain-grpc.f5nodes.com:9090", + EthRPCURL: "", + ZetaChainID: 7001, + BtcUser: "", + BtcPassword: "", + BtcHost: "", + BtcRPCParams: "", + SolanaRPC: "", + } +} - ZetaChainID = 101 - ConnectorAddress = "0x000007Cf399229b2f5A4D043F20E90C9C98B7C6a" - CustodyAddress = "0x0000030Ec64DF25301d8414eE5a29588C4B0dE10" - BtcExplorerURL = "https://blockstream.info/api/" -) +func LocalNetConfig() *Config { + return DefaultConfig() +} // Config is a struct the defines the configuration fields used by zetatool type Config struct { - ZetaGRPC string - ZetaChainID int64 - BtcExplorerURL string - EthRPCURL string - EtherscanAPIkey string - ConnectorAddress string - CustodyAddress string - BtcUser string - BtcPassword string - BtcHost string - BtcRPCParams string - SolanaRPC string + ZetaGRPC string + ZetaChainID int64 + EthRPCURL string + BtcUser string + BtcPassword string + BtcHost string + BtcRPCParams string + SolanaRPC string } func DefaultConfig() *Config { return &Config{ - ZetaGRPC: ZetaChainGRPC, - BtcExplorerURL: BtcExplorerURL, - EthRPCURL: EthRPCURL, - ConnectorAddress: ConnectorAddress, - CustodyAddress: CustodyAddress, - ZetaChainID: ZetaChainID, - BtcUser: BtcRPC, - BtcPassword: BtcRPCPassword, - BtcHost: BtcRPCHost, - BtcRPCParams: BtcRPCParams, - SolanaRPC: SolanaRPC, + ZetaGRPC: ZetaChainGRPC, + EthRPCURL: EthRPCURL, + ZetaChainID: ZetaChainID, + BtcUser: BtcRPC, + BtcPassword: BtcRPCPassword, + BtcHost: BtcRPCHost, + BtcRPCParams: BtcRPCParams, + SolanaRPC: SolanaRPC, } } @@ -80,7 +97,7 @@ func (c *Config) Read(filename string) error { func GetConfig(filename string) (*Config, error) { //Check if cfgFile is empty, if so return default Config and save to file if filename == "" { - cfg := DefaultConfig() + cfg := TestnetConfig() err := cfg.Save() return cfg, err } diff --git a/cmd/zetatool/filterdeposit/btc.go b/cmd/zetatool/filterdeposit/btc.go deleted file mode 100644 index f4b2636da2..0000000000 --- a/cmd/zetatool/filterdeposit/btc.go +++ /dev/null @@ -1,189 +0,0 @@ -package filterdeposit - -import ( - "bytes" - "encoding/hex" - "encoding/json" - "fmt" - "io/ioutil" - "net/http" - "net/url" - "strconv" - "strings" - - "github.com/spf13/cobra" - - "github.com/zeta-chain/node/cmd/zetatool/config" - "github.com/zeta-chain/node/pkg/constant" -) - -func NewBtcCmd() *cobra.Command { - return &cobra.Command{ - Use: "btc", - Short: "Filter inbound btc deposits", - RunE: FilterBTCTransactions, - } -} - -// FilterBTCTransactions is a command that queries the bitcoin explorer for inbound transactions that qualify for -// cross chain transactions. -func FilterBTCTransactions(cmd *cobra.Command, _ []string) error { - configFile, err := cmd.Flags().GetString(config.FlagConfig) - fmt.Println("config file name: ", configFile) - if err != nil { - return err - } - btcChainID, err := cmd.Flags().GetString(BTCChainIDFlag) - if err != nil { - return err - } - cfg, err := config.GetConfig(configFile) - if err != nil { - return err - } - fmt.Println("getting tss Address") - res, err := GetTssAddress(cfg, btcChainID) - if err != nil { - return err - } - fmt.Println("got tss Address") - list, err := getHashList(cfg, res.Btc) - if err != nil { - return err - } - - _, err = CheckForCCTX(list, cfg) - return err -} - -// getHashList is called by FilterBTCTransactions to help query and filter inbound transactions on btc -func getHashList(cfg *config.Config, tssAddress string) ([]Deposit, error) { - var list []Deposit - lastHash := "" - - // Setup URL for query - btcURL, err := url.JoinPath(cfg.BtcExplorerURL, "address", tssAddress, "txs") - if err != nil { - return list, err - } - - // This loop will query the bitcoin explorer for transactions associated with the TSS address. Since the api only - // allows a response of 25 transactions per request, several requests will be required in order to retrieve a - // complete list. - for { - // The Next Query is determined by the last transaction hash provided by the previous response. - nextQuery := btcURL - if lastHash != "" { - nextQuery, err = url.JoinPath(btcURL, "chain", lastHash) - if err != nil { - return list, err - } - } - // #nosec G107 url must be variable - res, getErr := http.Get(nextQuery) - if getErr != nil { - return list, getErr - } - - body, readErr := ioutil.ReadAll(res.Body) - if readErr != nil { - return list, readErr - } - closeErr := res.Body.Close() - if closeErr != nil { - return list, closeErr - } - - // NOTE: decoding json from request dynamically is not ideal, however there isn't a detailed, defined data structure - // provided by blockstream. Will need to create one in the future using following definition: - // https://github.com/Blockstream/esplora/blob/master/API.md#transaction-format - var txns []map[string]interface{} - err := json.Unmarshal(body, &txns) - if err != nil { - return list, err - } - - if len(txns) == 0 { - break - } - - fmt.Println("Length of txns: ", len(txns)) - - // The "/address" blockstream api provides a maximum of 25 transactions associated with a given address. This - // loop will iterate over that list of transactions to determine whether each transaction can be considered - // a deposit to ZetaChain. - for _, txn := range txns { - // Get tx hash of the current transaction - hash := txn["txid"].(string) - - // Read the first output of the transaction and parse the destination address. - // This address should be the TSS address. - vout := txn["vout"].([]interface{}) - vout0 := vout[0].(map[string]interface{}) - var vout1 map[string]interface{} - if len(vout) > 1 { - vout1 = vout[1].(map[string]interface{}) - } else { - continue - } - _, found := vout0["scriptpubkey"] - scriptpubkey := "" - if found { - scriptpubkey = vout0["scriptpubkey"].(string) - } - _, found = vout0["scriptpubkey_address"] - targetAddr := "" - if found { - targetAddr = vout0["scriptpubkey_address"].(string) - } - - //Check if txn is confirmed - status := txn["status"].(map[string]interface{}) - confirmed := status["confirmed"].(bool) - if !confirmed { - continue - } - - //Filter out deposits less than min base fee - if vout0["value"].(float64) < 1360 { - continue - } - - //Check if Deposit is a donation - scriptpubkey1 := vout1["scriptpubkey"].(string) - if len(scriptpubkey1) >= 4 && scriptpubkey1[:2] == "6a" { - memoSize, err := strconv.ParseInt(scriptpubkey1[2:4], 16, 32) - if err != nil { - continue - } - if int(memoSize) != (len(scriptpubkey1)-4)/2 { - continue - } - memoBytes, err := hex.DecodeString(scriptpubkey1[4:]) - if err != nil { - continue - } - if bytes.Equal(memoBytes, []byte(constant.DonationMessage)) { - continue - } - } else { - continue - } - - //Make sure Deposit is sent to correct tss address - if strings.Compare("0014", scriptpubkey[:4]) == 0 && targetAddr == tssAddress { - entry := Deposit{ - hash, - // #nosec G115 parsing json requires float64 type from blockstream - uint64(vout0["value"].(float64)), - } - list = append(list, entry) - } - } - - lastTxn := txns[len(txns)-1] - lastHash = lastTxn["txid"].(string) - } - - return list, nil -} diff --git a/cmd/zetatool/filterdeposit/evm.go b/cmd/zetatool/filterdeposit/evm.go deleted file mode 100644 index f4278b2fdb..0000000000 --- a/cmd/zetatool/filterdeposit/evm.go +++ /dev/null @@ -1,239 +0,0 @@ -package filterdeposit - -import ( - "context" - "fmt" - "log" - "math/big" - "strings" - - "github.com/ethereum/go-ethereum/accounts/abi/bind" - "github.com/ethereum/go-ethereum/common" - ethtypes "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/ethclient" - "github.com/nanmu42/etherscan-api" - "github.com/spf13/cobra" - "github.com/zeta-chain/protocol-contracts/v1/pkg/contracts/evm/erc20custody.sol" - "github.com/zeta-chain/protocol-contracts/v1/pkg/contracts/evm/zetaconnector.non-eth.sol" - - "github.com/zeta-chain/node/cmd/zetatool/config" - "github.com/zeta-chain/node/pkg/constant" - "github.com/zeta-chain/node/zetaclient/chains/evm" -) - -const ( - EvmMaxRangeFlag = "evm-max-range" - EvmStartBlockFlag = "evm-start-block" -) - -func NewEvmCmd() *cobra.Command { - cmd := &cobra.Command{ - Use: "eth", - Short: "Filter inbound eth deposits", - RunE: FilterEVMTransactions, - } - - cmd.Flags().Uint64(EvmMaxRangeFlag, 1000, "number of blocks to scan per iteration") - cmd.Flags().Uint64(EvmStartBlockFlag, 19463725, "block height to start scanning from") - - return cmd -} - -// FilterEVMTransactions is a command that queries an EVM explorer and Contracts for inbound transactions that qualify -// for cross chain transactions. -func FilterEVMTransactions(cmd *cobra.Command, _ []string) error { - // Get flags - configFile, err := cmd.Flags().GetString(config.FlagConfig) - if err != nil { - return err - } - startBlock, err := cmd.Flags().GetUint64(EvmStartBlockFlag) - if err != nil { - return err - } - blockRange, err := cmd.Flags().GetUint64(EvmMaxRangeFlag) - if err != nil { - return err - } - btcChainID, err := cmd.Flags().GetString(BTCChainIDFlag) - if err != nil { - return err - } - // Scan for deposits - cfg, err := config.GetConfig(configFile) - if err != nil { - log.Fatal(err) - } - res, err := GetTssAddress(cfg, btcChainID) - if err != nil { - return err - } - list, err := GetEthHashList(cfg, res.Eth, startBlock, blockRange) - if err != nil { - return err - } - _, err = CheckForCCTX(list, cfg) - return err -} - -// GetEthHashList is a helper function querying total inbound txns by segments of blocks in ranges defined by the config -func GetEthHashList(cfg *config.Config, tssAddress string, startBlock uint64, blockRange uint64) ([]Deposit, error) { - client, err := ethclient.Dial(cfg.EthRPCURL) - if err != nil { - return []Deposit{}, err - } - fmt.Println("Connection successful") - - header, err := client.HeaderByNumber(context.Background(), nil) - if err != nil { - return []Deposit{}, err - } - latestBlock := header.Number.Uint64() - fmt.Println("latest Block: ", latestBlock) - - endBlock := startBlock + blockRange - deposits := make([]Deposit, 0) - segment := 0 - for startBlock < latestBlock { - fmt.Printf("adding segment: %d, startblock: %d\n", segment, startBlock) - segmentRes, err := GetHashListSegment(client, startBlock, endBlock, tssAddress, cfg) - if err != nil { - fmt.Println(err.Error()) - continue - } - deposits = append(deposits, segmentRes...) - startBlock = endBlock - endBlock = endBlock + blockRange - if endBlock > latestBlock { - endBlock = latestBlock - } - segment++ - } - return deposits, nil -} - -// GetHashListSegment queries and filters deposits for a given range -func GetHashListSegment( - client *ethclient.Client, - startBlock uint64, - endBlock uint64, - tssAddress string, - cfg *config.Config) ([]Deposit, error) { - deposits := make([]Deposit, 0) - connectorAddress := common.HexToAddress(cfg.ConnectorAddress) - connectorContract, err := zetaconnector.NewZetaConnectorNonEth(connectorAddress, client) - if err != nil { - return deposits, err - } - erc20CustodyAddress := common.HexToAddress(cfg.CustodyAddress) - erc20CustodyContract, err := erc20custody.NewERC20Custody(erc20CustodyAddress, client) - if err != nil { - return deposits, err - } - - custodyIter, err := erc20CustodyContract.FilterDeposited(&bind.FilterOpts{ - Start: startBlock, - End: &endBlock, - Context: context.TODO(), - }, []common.Address{}) - if err != nil { - return deposits, err - } - - connectorIter, err := connectorContract.FilterZetaSent(&bind.FilterOpts{ - Start: startBlock, - End: &endBlock, - Context: context.TODO(), - }, []common.Address{}, []*big.Int{}) - if err != nil { - return deposits, err - } - - // Get ERC20 Custody Deposit events - for custodyIter.Next() { - // sanity check tx event - err := CheckEvmTxLog(&custodyIter.Event.Raw, erc20CustodyAddress, "", evm.TopicsDeposited) - if err == nil { - deposits = append(deposits, Deposit{ - TxID: custodyIter.Event.Raw.TxHash.Hex(), - Amount: custodyIter.Event.Amount.Uint64(), - }) - } - } - - // Get Connector ZetaSent events - for connectorIter.Next() { - // sanity check tx event - err := CheckEvmTxLog(&connectorIter.Event.Raw, connectorAddress, "", evm.TopicsZetaSent) - if err == nil { - deposits = append(deposits, Deposit{ - TxID: connectorIter.Event.Raw.TxHash.Hex(), - Amount: connectorIter.Event.ZetaValueAndGas.Uint64(), - }) - } - } - - // Get Transactions sent directly to TSS address - tssDeposits, err := getTSSDeposits(tssAddress, startBlock, endBlock, cfg.EtherscanAPIkey) - if err != nil { - return deposits, err - } - deposits = append(deposits, tssDeposits...) - - return deposits, nil -} - -// getTSSDeposits more specifically queries and filters deposits based on direct transfers the TSS address. -func getTSSDeposits(tssAddress string, startBlock uint64, endBlock uint64, apiKey string) ([]Deposit, error) { - client := etherscan.New(etherscan.Mainnet, apiKey) - deposits := make([]Deposit, 0) - - // #nosec G115 these block numbers need to be *int for this particular client package - startInt := int(startBlock) - // #nosec G115 - endInt := int(endBlock) - txns, err := client.NormalTxByAddress(tssAddress, &startInt, &endInt, 0, 0, true) - if err != nil { - return deposits, err - } - - fmt.Println("getTSSDeposits - Num of transactions: ", len(txns)) - - for _, tx := range txns { - if tx.To == tssAddress { - if strings.Compare(tx.Input, constant.DonationMessage) == 0 { - continue // skip donation tx - } - if tx.TxReceiptStatus != "1" { - continue - } - //fmt.Println("getTSSDeposits - adding Deposit") - deposits = append(deposits, Deposit{ - TxID: tx.Hash, - Amount: tx.Value.Int().Uint64(), - }) - } - } - - return deposits, nil -} - -// CheckEvmTxLog is a helper function used to validate receipts, logic is taken from zetaclient. -func CheckEvmTxLog(vLog *ethtypes.Log, wantAddress common.Address, wantHash string, wantTopics int) error { - if vLog.Removed { - return fmt.Errorf("log is removed, chain reorg?") - } - if vLog.Address != wantAddress { - return fmt.Errorf("log emitter address mismatch: want %s got %s", wantAddress.Hex(), vLog.Address.Hex()) - } - if vLog.TxHash.Hex() == "" { - return fmt.Errorf("log tx hash is empty: %d %s", vLog.BlockNumber, vLog.TxHash.Hex()) - } - if wantHash != "" && vLog.TxHash.Hex() != wantHash { - return fmt.Errorf("log tx hash mismatch: want %s got %s", wantHash, vLog.TxHash.Hex()) - } - if len(vLog.Topics) != wantTopics { - return fmt.Errorf("number of topics mismatch: want %d got %d", wantTopics, len(vLog.Topics)) - } - return nil -} diff --git a/cmd/zetatool/filterdeposit/filterdeposit.go b/cmd/zetatool/filterdeposit/filterdeposit.go deleted file mode 100644 index f54b0817d3..0000000000 --- a/cmd/zetatool/filterdeposit/filterdeposit.go +++ /dev/null @@ -1,124 +0,0 @@ -package filterdeposit - -import ( - "encoding/json" - "fmt" - "io/ioutil" - "net/http" - "net/url" - "strings" - - "github.com/spf13/cobra" - - "github.com/zeta-chain/node/cmd/zetatool/config" - "github.com/zeta-chain/node/x/observer/types" -) - -const ( - BTCChainIDFlag = "btc-chain-id" -) - -func NewFilterDepositCmd() *cobra.Command { - cmd := &cobra.Command{ - Use: "filterdeposit", - Short: "filter missing inbound deposits", - } - - cmd.AddCommand(NewBtcCmd()) - cmd.AddCommand(NewEvmCmd()) - - // Required for TSS address query - cmd.PersistentFlags(). - String(BTCChainIDFlag, "8332", "chain id used on zetachain to identify bitcoin - default: 8332") - - return cmd -} - -// Deposit is a data structure for keeping track of inbound transactions -type Deposit struct { - TxID string - Amount uint64 -} - -// CheckForCCTX is querying zetacore for a cctx associated with a confirmed transaction hash. If the cctx is not found, -// then the transaction hash is added to the list of missed inbound transactions. -func CheckForCCTX(list []Deposit, cfg *config.Config) ([]Deposit, error) { - var missedList []Deposit - - fmt.Println("Going through list, num of transactions: ", len(list)) - for _, entry := range list { - zetaURL, err := url.JoinPath(cfg.ZetaGRPC, "zeta-chain", "crosschain", "in_tx_hash_to_cctx_data", entry.TxID) - if err != nil { - return missedList, err - } - - request, err := http.NewRequest(http.MethodGet, zetaURL, nil) - if err != nil { - return missedList, err - } - request.Header.Add("Accept", "application/json") - client := &http.Client{} - - response, getErr := client.Do(request) - if getErr != nil { - return missedList, getErr - } - - data, readErr := ioutil.ReadAll(response.Body) - if readErr != nil { - return missedList, readErr - } - closeErr := response.Body.Close() - if closeErr != nil { - return missedList, closeErr - } - - var cctx map[string]interface{} - err = json.Unmarshal(data, &cctx) - if err != nil { - return missedList, err - } - - // successful query of the given cctx will not contain a "message" field with value "not found", if it was not - // found then it is added to the missing list. - if _, ok := cctx["message"]; ok { - if strings.Compare(cctx["message"].(string), "not found") == 0 { - missedList = append(missedList, entry) - } - } - } - - fmt.Printf("Found %d missed transactions.\n", len(missedList)) - for _, entry := range missedList { - fmt.Printf("%s, amount: %d\n", entry.TxID, entry.Amount) - } - return missedList, nil -} - -func GetTssAddress(cfg *config.Config, btcChainID string) (*types.QueryGetTssAddressResponse, error) { - res := &types.QueryGetTssAddressResponse{} - requestURL, err := url.JoinPath(cfg.ZetaGRPC, "zeta-chain", "observer", "get_tss_address", btcChainID) - if err != nil { - return res, err - } - request, err := http.NewRequest(http.MethodGet, requestURL, nil) - if err != nil { - return res, err - } - request.Header.Add("Accept", "application/json") - zetacoreHTTPClient := &http.Client{} - response, getErr := zetacoreHTTPClient.Do(request) - if getErr != nil { - return res, err - } - data, readErr := ioutil.ReadAll(response.Body) - if readErr != nil { - return res, err - } - closeErr := response.Body.Close() - if closeErr != nil { - return res, closeErr - } - err = json.Unmarshal(data, res) - return res, err -} diff --git a/cmd/zetatool/filterdeposit/filterdeposit_test.go b/cmd/zetatool/filterdeposit/filterdeposit_test.go deleted file mode 100644 index bb4c9b9719..0000000000 --- a/cmd/zetatool/filterdeposit/filterdeposit_test.go +++ /dev/null @@ -1,98 +0,0 @@ -package filterdeposit - -import ( - "encoding/json" - "net/http" - "net/http/httptest" - "testing" - - "github.com/stretchr/testify/require" - - "github.com/zeta-chain/node/cmd/zetatool/config" - "github.com/zeta-chain/node/x/crosschain/types" - observertypes "github.com/zeta-chain/node/x/observer/types" -) - -func TestCheckForCCTX(t *testing.T) { - t.Run("no missed inbound txns found", func(t *testing.T) { - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if r.URL.Path != "/zeta-chain/crosschain/in_tx_hash_to_cctx_data/0x093f4ca4c1884df0fd9dd59b75979342ded29d3c9b6861644287a2e1417b9a39" { - t.Errorf("Expected to request '/zeta-chain', got: %s", r.URL.Path) - } - w.WriteHeader(http.StatusOK) - //Return CCtx - cctx := types.CrossChainTx{} - bytes, err := json.Marshal(cctx) - require.NoError(t, err) - _, err = w.Write(bytes) - require.NoError(t, err) - })) - defer server.Close() - - deposits := []Deposit{{ - TxID: "0x093f4ca4c1884df0fd9dd59b75979342ded29d3c9b6861644287a2e1417b9a39", - Amount: uint64(657177295293237048), - }} - cfg := config.DefaultConfig() - cfg.ZetaGRPC = server.URL - missedInbounds, err := CheckForCCTX(deposits, cfg) - require.NoError(t, err) - require.Equal(t, 0, len(missedInbounds)) - }) - - t.Run("1 missed inbound txn found", func(t *testing.T) { - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(http.StatusOK) - _, err := w.Write([]byte("{\n \"code\": 5,\n \"message\": \"not found\",\n \"details\": [\n ]\n}")) - require.NoError(t, err) - })) - defer server.Close() - - deposits := []Deposit{{ - TxID: "0x093f4ca4c1884df0fd9dd59b75979342ded29d3c9b6861644287a2e1417b9a39", - Amount: uint64(657177295293237048), - }} - cfg := config.DefaultConfig() - cfg.ZetaGRPC = server.URL - missedInbounds, err := CheckForCCTX(deposits, cfg) - require.NoError(t, err) - require.Equal(t, 1, len(missedInbounds)) - }) -} - -func TestGetTssAddress(t *testing.T) { - t.Run("should run successfully", func(t *testing.T) { - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if r.URL.Path != "/zeta-chain/observer/get_tss_address/8332" { - t.Errorf("Expected to request '/zeta-chain', got: %s", r.URL.Path) - } - w.WriteHeader(http.StatusOK) - response := observertypes.QueryGetTssAddressResponse{} - bytes, err := json.Marshal(response) - require.NoError(t, err) - _, err = w.Write(bytes) - require.NoError(t, err) - })) - cfg := config.DefaultConfig() - cfg.ZetaGRPC = server.URL - _, err := GetTssAddress(cfg, "8332") - require.NoError(t, err) - }) - - t.Run("bad request", func(t *testing.T) { - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if r.URL.Path != "/zeta-chain/observer/get_tss_address/8332" { - w.WriteHeader(http.StatusBadRequest) - response := observertypes.QueryGetTssAddressResponse{} - bytes, err := json.Marshal(response) - require.NoError(t, err) - _, err = w.Write(bytes) - require.NoError(t, err) - } - })) - cfg := config.DefaultConfig() - cfg.ZetaGRPC = server.URL - _, err := GetTssAddress(cfg, "8332") - require.Error(t, err) - }) -} diff --git a/cmd/zetatool/inbound_ballot/evm.go b/cmd/zetatool/inbound_ballot/evm.go index 1e166b1063..94d450344f 100644 --- a/cmd/zetatool/inbound_ballot/evm.go +++ b/cmd/zetatool/inbound_ballot/evm.go @@ -45,6 +45,8 @@ func EvmInboundBallotIdentified(ctx context.Context, } tssEthAddress := res.GetEth() + fmt.Println("ETH Address: ", tssEthAddress) + hash := ethcommon.HexToHash(inboundHash) tx, isPending, err := evmClient.TransactionByHash(ctx, hash) if err != nil { diff --git a/cmd/zetatool/inbound_ballot/inbound.go b/cmd/zetatool/inbound_ballot/inbound.go index a2aed621e6..af1df3f143 100644 --- a/cmd/zetatool/inbound_ballot/inbound.go +++ b/cmd/zetatool/inbound_ballot/inbound.go @@ -14,10 +14,10 @@ import ( "github.com/zeta-chain/node/cmd/zetatool/config" ) -func NewInboundCMD() *cobra.Command { +func NewFetchInboundBallotCMD() *cobra.Command { return &cobra.Command{ Use: "inbound", - Short: "Fetch Inbound ballot", + Short: "Fetch Inbound ballot from the inbound hash", RunE: InboundGetBallot, } } @@ -48,6 +48,12 @@ func InboundGetBallot(cmd *cobra.Command, args []string) error { panic(err) } + //zetacoreClient, err := zetacorerpc.NewGRPCClients( + // cfg.ZetaGRPC, + // grpc.WithTransportCredentials(insecure.NewCredentials()), + // grpc.WithBlock(), + //) + observationChain, found := chains.GetChainFromChainID(inboundChainID, []chains.Chain{}) if !found { fmt.Println("Chain not found") diff --git a/cmd/zetatool/main.go b/cmd/zetatool/main.go index dd4ffa4b6c..1fb358bb41 100644 --- a/cmd/zetatool/main.go +++ b/cmd/zetatool/main.go @@ -8,7 +8,6 @@ import ( "github.com/zeta-chain/node/cmd/zetatool/inbound_ballot" "github.com/zeta-chain/node/cmd/zetatool/config" - "github.com/zeta-chain/node/cmd/zetatool/filterdeposit" ) var rootCmd = &cobra.Command{ @@ -17,8 +16,7 @@ var rootCmd = &cobra.Command{ } func init() { - rootCmd.AddCommand(filterdeposit.NewFilterDepositCmd()) - rootCmd.AddCommand(inbound_ballot.NewInboundCMD()) + rootCmd.AddCommand(inbound_ballot.NewFetchInboundBallotCMD()) rootCmd.PersistentFlags().String(config.FlagConfig, "", "custom config file: --config filename.json") } From 26549b28637dabbc03fba8d09fc2039ebb102a35 Mon Sep 17 00:00:00 2001 From: Tanmay Date: Thu, 16 Jan 2025 18:03:16 -0500 Subject: [PATCH 03/22] add configuration for testnet and mainnet --- cmd/zetatool/config/config.go | 91 +++++++++++++++----------- cmd/zetatool/config/config_test.go | 77 ---------------------- cmd/zetatool/inbound_ballot/evm.go | 34 +++++++--- cmd/zetatool/inbound_ballot/inbound.go | 39 ++++------- 4 files changed, 93 insertions(+), 148 deletions(-) delete mode 100644 cmd/zetatool/config/config_test.go diff --git a/cmd/zetatool/config/config.go b/cmd/zetatool/config/config.go index 000a994e24..05b82aca98 100644 --- a/cmd/zetatool/config/config.go +++ b/cmd/zetatool/config/config.go @@ -4,6 +4,7 @@ import ( "encoding/json" "github.com/spf13/afero" + "github.com/zeta-chain/node/pkg/chains" ) var AppFs = afero.NewOsFs() @@ -11,69 +12,82 @@ var AppFs = afero.NewOsFs() const ( FlagConfig = "config" defaultCfgFileName = "zetatool_config.json" - ZetaChainGRPC = "127.0.0.1:9090" - EthRPCURL = "http://127.0.0.1:8545" - BtcRPC = "smoketest" - BtcRPCPassword = "123" - BtcRPCHost = "127.0.0.1:18443" - BtcRPCParams = "regtest" - SolanaRPC = "http://127.0.0.1:8899" - ZetaChainID = 101 ) func TestnetConfig() *Config { return &Config{ - ZetaGRPC: "zetachain-testnet-grpc.itrocket.net:443", - EthRPCURL: "https://ethereum-sepolia-rpc.publicnode.com", + ZetaChainRPC: "https://zetachain-testnet-grpc.itrocket.net:443", + EthereumRPC: "https://ethereum-sepolia-rpc.publicnode.com", ZetaChainID: 101, BtcUser: "", BtcPassword: "", BtcHost: "", - BtcRPCParams: "", + BtcParams: "", SolanaRPC: "", + BscRPC: "https://bsc-testnet-rpc.publicnode.com", + PolygonRPC: "https://polygon-amoy.gateway.tenderly.co", + BaseRPC: "https://base-sepolia-rpc.publicnode.com", + } +} + +func DevnetConfig() *Config { + return &Config{ + ZetaChainRPC: "", + EthereumRPC: "", + ZetaChainID: 101, + BtcUser: "", + BtcPassword: "", + BtcHost: "", + BtcParams: "", + SolanaRPC: "", + BscRPC: "", + PolygonRPC: "", + BaseRPC: "", } } func MainnetConfig() *Config { return &Config{ - ZetaGRPC: "https://zetachain-grpc.f5nodes.com:9090", - EthRPCURL: "", - ZetaChainID: 7001, + ZetaChainRPC: "https://zetachain-mainnet.g.allthatnode.com:443/archive/tendermint", + EthereumRPC: "https://eth-mainnet.public.blastapi.io", + ZetaChainID: 7000, BtcUser: "", BtcPassword: "", BtcHost: "", - BtcRPCParams: "", + BtcParams: "", SolanaRPC: "", + BaseRPC: "https://base-mainnet.public.blastapi.io", + BscRPC: "https://bsc-mainnet.public.blastapi.io", + PolygonRPC: "https://polygon-bor-rpc.publicnode.com", } } -func LocalNetConfig() *Config { - return DefaultConfig() +func PrivateNetConfig() *Config { + return &Config{ + ZetaChainRPC: "http://127.0.0.1:26657", + EthereumRPC: "http://127.0.0.1:8545", + ZetaChainID: 101, + BtcUser: "smoketest", + BtcPassword: "123", + BtcHost: "127.0.0.1:18443", + BtcParams: "regtest", + SolanaRPC: "http://127.0.0.1:8899", + } } // Config is a struct the defines the configuration fields used by zetatool type Config struct { - ZetaGRPC string + ZetaChainRPC string ZetaChainID int64 - EthRPCURL string + EthereumRPC string BtcUser string BtcPassword string BtcHost string - BtcRPCParams string + BtcParams string SolanaRPC string -} - -func DefaultConfig() *Config { - return &Config{ - ZetaGRPC: ZetaChainGRPC, - EthRPCURL: EthRPCURL, - ZetaChainID: ZetaChainID, - BtcUser: BtcRPC, - BtcPassword: BtcRPCPassword, - BtcHost: BtcRPCHost, - BtcRPCParams: BtcRPCParams, - SolanaRPC: SolanaRPC, - } + BscRPC string + PolygonRPC string + BaseRPC string } func (c *Config) Save() error { @@ -94,12 +108,15 @@ func (c *Config) Read(filename string) error { return err } -func GetConfig(filename string) (*Config, error) { +func GetConfig(chain chains.Chain, filename string) (*Config, error) { //Check if cfgFile is empty, if so return default Config and save to file if filename == "" { - cfg := TestnetConfig() - err := cfg.Save() - return cfg, err + return map[chains.NetworkType]*Config{ + chains.NetworkType_mainnet: MainnetConfig(), + chains.NetworkType_testnet: TestnetConfig(), + chains.NetworkType_privnet: PrivateNetConfig(), + chains.NetworkType_devnet: DevnetConfig(), + }[chain.NetworkType], nil } //if file is specified, open file and return struct diff --git a/cmd/zetatool/config/config_test.go b/cmd/zetatool/config/config_test.go deleted file mode 100644 index 9685b13738..0000000000 --- a/cmd/zetatool/config/config_test.go +++ /dev/null @@ -1,77 +0,0 @@ -package config - -import ( - "testing" - - "github.com/spf13/afero" - "github.com/stretchr/testify/require" -) - -func TestDefaultConfig(t *testing.T) { - cfg := DefaultConfig() - require.Equal(t, cfg.EthRPCURL, EthRPCURL) - require.Equal(t, cfg.ZetaGRPC, ZetaChainGRPC) - require.Equal(t, cfg.BtcExplorerURL, BtcExplorerURL) - require.Equal(t, cfg.ConnectorAddress, ConnectorAddress) - require.Equal(t, cfg.CustodyAddress, CustodyAddress) -} - -func TestGetConfig(t *testing.T) { - AppFs = afero.NewMemMapFs() - defaultCfg := DefaultConfig() - - t.Run("No config file specified", func(t *testing.T) { - cfg, err := GetConfig("") - require.NoError(t, err) - require.Equal(t, cfg, defaultCfg) - - exists, err := afero.Exists(AppFs, defaultCfgFileName) - require.NoError(t, err) - require.True(t, exists) - }) - - t.Run("config file specified", func(t *testing.T) { - cfg, err := GetConfig(defaultCfgFileName) - require.NoError(t, err) - require.Equal(t, cfg, defaultCfg) - }) -} - -func TestConfig_Read(t *testing.T) { - AppFs = afero.NewMemMapFs() - cfg, err := GetConfig("") - require.NoError(t, err) - - t.Run("read existing file", func(t *testing.T) { - c := &Config{} - err := c.Read(defaultCfgFileName) - require.NoError(t, err) - require.Equal(t, c, cfg) - }) - - t.Run("read non-existent file", func(t *testing.T) { - err := AppFs.Remove(defaultCfgFileName) - require.NoError(t, err) - c := &Config{} - err = c.Read(defaultCfgFileName) - require.ErrorContains(t, err, "file does not exist") - require.NotEqual(t, c, cfg) - }) -} - -func TestConfig_Save(t *testing.T) { - AppFs = afero.NewMemMapFs() - cfg := DefaultConfig() - cfg.EtherscanAPIkey = "DIFFERENTAPIKEY" - - t.Run("save modified cfg", func(t *testing.T) { - err := cfg.Save() - require.NoError(t, err) - - newCfg, err := GetConfig(defaultCfgFileName) - require.NoError(t, err) - require.Equal(t, cfg, newCfg) - }) - - // Should test invalid json encoding but currently not able to without interface -} diff --git a/cmd/zetatool/inbound_ballot/evm.go b/cmd/zetatool/inbound_ballot/evm.go index 94d450344f..118df04385 100644 --- a/cmd/zetatool/inbound_ballot/evm.go +++ b/cmd/zetatool/inbound_ballot/evm.go @@ -27,26 +27,35 @@ import ( "github.com/zeta-chain/protocol-contracts/v2/pkg/gatewayevm.sol" ) +func resolveRPC(chain chains.Chain, cfg config.Config) string { + return map[chains.Network]string{ + chains.Network_eth: cfg.EthereumRPC, + chains.Network_base: cfg.BaseRPC, + chains.Network_polygon: cfg.PolygonRPC, + chains.Network_bsc: cfg.BscRPC, + }[chain.Network] + +} + func EvmInboundBallotIdentified(ctx context.Context, cfg config.Config, zetacoreClient rpc.Clients, inboundHash string, inboundChain chains.Chain, zetaChainID int64) (string, error) { - rpcClient, err := ethrpc.DialHTTP(cfg.EthRPCURL) + + // create evm client for the observation chain + evmRpc := resolveRPC(inboundChain, cfg) + if evmRpc == "" { + return "", fmt.Errorf("rpc not found for chain %d network %s", inboundChain.ChainId, inboundChain.Network) + } + rpcClient, err := ethrpc.DialHTTP(evmRpc) if err != nil { return "", fmt.Errorf("failed to connect to eth rpc %s", err.Error()) } evmClient := ethclient.NewClient(rpcClient) - res, err := zetacoreClient.Observer.GetTssAddress(context.Background(), &types.QueryGetTssAddressRequest{}) - if err != nil { - return "", fmt.Errorf("failed to get tss address %s", err.Error()) - } - tssEthAddress := res.GetEth() - - fmt.Println("ETH Address: ", tssEthAddress) - + // Fetch transaction from the inbound hash := ethcommon.HexToHash(inboundHash) tx, isPending, err := evmClient.TransactionByHash(ctx, hash) if err != nil { @@ -64,6 +73,13 @@ func EvmInboundBallotIdentified(ctx context.Context, return "", fmt.Errorf("failed to get chain params %s", err.Error()) } + res, err := zetacoreClient.Observer.GetTssAddress(context.Background(), &types.QueryGetTssAddressRequest{}) + if err != nil { + return "", fmt.Errorf("failed to get tss address %s", err.Error()) + } + tssEthAddress := res.GetEth() + + // Create inbound vote message based on the cointype and protocol version switch tx.To().Hex() { case chainParams.ConnectorContractAddress: { diff --git a/cmd/zetatool/inbound_ballot/inbound.go b/cmd/zetatool/inbound_ballot/inbound.go index af1df3f143..ca283242f7 100644 --- a/cmd/zetatool/inbound_ballot/inbound.go +++ b/cmd/zetatool/inbound_ballot/inbound.go @@ -6,12 +6,9 @@ import ( "strconv" "github.com/spf13/cobra" + "github.com/zeta-chain/node/cmd/zetatool/config" "github.com/zeta-chain/node/pkg/chains" zetacorerpc "github.com/zeta-chain/node/pkg/rpc" - "google.golang.org/grpc" - "google.golang.org/grpc/credentials/insecure" - - "github.com/zeta-chain/node/cmd/zetatool/config" ) func NewFetchInboundBallotCMD() *cobra.Command { @@ -25,39 +22,31 @@ func NewFetchInboundBallotCMD() *cobra.Command { func InboundGetBallot(cmd *cobra.Command, args []string) error { cobra.ExactArgs(2) - configFile, err := cmd.Flags().GetString(config.FlagConfig) + inboundHash := args[0] + inboundChainID, err := strconv.ParseInt(args[1], 10, 64) if err != nil { - return err + return fmt.Errorf("failed to parse chain id") + } + observationChain, found := chains.GetChainFromChainID(inboundChainID, []chains.Chain{}) + if !found { + return fmt.Errorf("chain not supported,chain id : %d", inboundChainID) } - cfg, err := config.GetConfig(configFile) + configFile, err := cmd.Flags().GetString(config.FlagConfig) if err != nil { - panic(err) + return fmt.Errorf("failed to read value for flag %s , err %s", config.FlagConfig, err.Error()) } - inboundHash := args[0] - fmt.Println("Inbound Hash: ", inboundHash) - inboundChainID, err := strconv.ParseInt(args[1], 10, 64) + cfg, err := config.GetConfig(observationChain, configFile) if err != nil { - panic(err) + return fmt.Errorf("failed to get config, %s", err.Error()) } - var unsecureGRPC = grpc.WithTransportCredentials(insecure.NewCredentials()) - zetacoreClient, err := zetacorerpc.NewGRPCClients(cfg.ZetaGRPC, unsecureGRPC) + zetacoreClient, err := zetacorerpc.NewCometBFTClients(cfg.ZetaChainRPC) if err != nil { - panic(err) + return fmt.Errorf("failed to create zetacore client, %s", err.Error()) } - //zetacoreClient, err := zetacorerpc.NewGRPCClients( - // cfg.ZetaGRPC, - // grpc.WithTransportCredentials(insecure.NewCredentials()), - // grpc.WithBlock(), - //) - - observationChain, found := chains.GetChainFromChainID(inboundChainID, []chains.Chain{}) - if !found { - fmt.Println("Chain not found") - } ctx := context.Background() ballotIdentifier := "" From 217b2fc11d4faf26c98e28bd2637efffc220ba08 Mon Sep 17 00:00:00 2001 From: Tanmay Date: Thu, 16 Jan 2025 18:24:04 -0500 Subject: [PATCH 04/22] improve error messages --- cmd/zetatool/inbound_ballot/bitcoin.go | 12 ------------ cmd/zetatool/inbound_ballot/inbound.go | 14 +++++++++----- cmd/zetatool/inbound_ballot/solana.go | 7 ------- cmd/zetatool/main.go | 2 +- 4 files changed, 10 insertions(+), 25 deletions(-) diff --git a/cmd/zetatool/inbound_ballot/bitcoin.go b/cmd/zetatool/inbound_ballot/bitcoin.go index c52a2caf9c..3927da45e7 100644 --- a/cmd/zetatool/inbound_ballot/bitcoin.go +++ b/cmd/zetatool/inbound_ballot/bitcoin.go @@ -89,13 +89,6 @@ func bitcoinBallotIdentifier(ctx context.Context, if len(blockVb.Tx) <= 1 { return "", fmt.Errorf("block %d has no transactions", blockVb.Height) } - - //// check confirmation - //// #nosec G115 block height always positive - //if !ob.IsBlockConfirmed(uint64(blockVb.Height)) { - // return "", fmt.Errorf("block %d is not confirmed yet", blockVb.Height) - //} - // #nosec G115 always positive event, err := observer.GetBtcEvent( @@ -128,11 +121,6 @@ func identifierFromBtcEvent(event *observer.BTCInboundEvent, return "", fmt.Errorf("error decoding memo bytes: %s", err) } - // check if the event is processable - //if !ob.IsEventProcessable(*event) { - // return nil - //} - // convert the amount to integer (satoshis) amountSats, err := common.GetSatoshis(event.Value) if err != nil { diff --git a/cmd/zetatool/inbound_ballot/inbound.go b/cmd/zetatool/inbound_ballot/inbound.go index ca283242f7..a60df55ae9 100644 --- a/cmd/zetatool/inbound_ballot/inbound.go +++ b/cmd/zetatool/inbound_ballot/inbound.go @@ -27,16 +27,20 @@ func InboundGetBallot(cmd *cobra.Command, args []string) error { if err != nil { return fmt.Errorf("failed to parse chain id") } - observationChain, found := chains.GetChainFromChainID(inboundChainID, []chains.Chain{}) - if !found { - return fmt.Errorf("chain not supported,chain id : %d", inboundChainID) - } - configFile, err := cmd.Flags().GetString(config.FlagConfig) if err != nil { return fmt.Errorf("failed to read value for flag %s , err %s", config.FlagConfig, err.Error()) } + return GetBallotIdentifier(inboundHash, inboundChainID, configFile) +} + +func GetBallotIdentifier(inboundHash string, inboundChainID int64, configFile string) error { + observationChain, found := chains.GetChainFromChainID(inboundChainID, []chains.Chain{}) + if !found { + return fmt.Errorf("chain not supported,chain id : %d", inboundChainID) + } + cfg, err := config.GetConfig(observationChain, configFile) if err != nil { return fmt.Errorf("failed to get config, %s", err.Error()) diff --git a/cmd/zetatool/inbound_ballot/solana.go b/cmd/zetatool/inbound_ballot/solana.go index 75c25202a2..5d5649c2bc 100644 --- a/cmd/zetatool/inbound_ballot/solana.go +++ b/cmd/zetatool/inbound_ballot/solana.go @@ -77,12 +77,6 @@ func voteMsgFromSolEvent(event *clienttypes.InboundEvent, return nil } - //// check if the event is processable - //if !ob.IsEventProcessable(*event) { - // return nil - //} - // - // create inbound vote message return crosschaintypes.NewMsgVoteInbound( "", @@ -102,5 +96,4 @@ func voteMsgFromSolEvent(event *clienttypes.InboundEvent, crosschaintypes.ProtocolContractVersion_V1, false, // not relevant for v1 ) - } diff --git a/cmd/zetatool/main.go b/cmd/zetatool/main.go index 1fb358bb41..bfd905eea0 100644 --- a/cmd/zetatool/main.go +++ b/cmd/zetatool/main.go @@ -22,7 +22,7 @@ func init() { func main() { if err := rootCmd.Execute(); err != nil { - fmt.Println(err) + fmt.Fprintf(os.Stderr, "Error executing command: %v\n", err) os.Exit(1) } } From a9feb8cb298a68db87c4de0444e7a89c5bb625c6 Mon Sep 17 00:00:00 2001 From: Tanmay Date: Thu, 16 Jan 2025 18:58:55 -0500 Subject: [PATCH 05/22] add changelog --- changelog.md | 1 + cmd/zetaclientd/inbound.go | 210 ------------------- cmd/zetaclientd/main.go | 10 - cmd/zetatool/config/config.go | 1 + cmd/zetatool/inbound_ballot/bitcoin.go | 23 +- cmd/zetatool/inbound_ballot/evm.go | 49 +++-- cmd/zetatool/inbound_ballot/inbound.go | 50 ++++- cmd/zetatool/inbound_ballot/solana.go | 6 +- cmd/zetatool/main.go | 2 +- zetaclient/chains/solana/observer/inbound.go | 2 +- 10 files changed, 95 insertions(+), 259 deletions(-) delete mode 100644 cmd/zetaclientd/inbound.go diff --git a/changelog.md b/changelog.md index 4cc4454097..42342e873f 100644 --- a/changelog.md +++ b/changelog.md @@ -5,6 +5,7 @@ ### Refactor * [3332](https://github.com/zeta-chain/node/pull/3332) - implement orchestrator V2. Move BTC observer-signer to V2 +* [3368](https://github.com/zeta-chain/node/pull/3368) - refactor cli command to fetch inbound ballot from inbound hash and move to zetatools ## v25.0.0 diff --git a/cmd/zetaclientd/inbound.go b/cmd/zetaclientd/inbound.go deleted file mode 100644 index ee1ac98a05..0000000000 --- a/cmd/zetaclientd/inbound.go +++ /dev/null @@ -1,210 +0,0 @@ -package main - -import ( - "context" - "fmt" - "strconv" - "strings" - - sdk "github.com/cosmos/cosmos-sdk/types" - ethcommon "github.com/ethereum/go-ethereum/common" - "github.com/pkg/errors" - "github.com/rs/zerolog" - "github.com/spf13/cobra" - - "github.com/zeta-chain/node/pkg/coin" - "github.com/zeta-chain/node/testutil/sample" - "github.com/zeta-chain/node/zetaclient/chains/base" - btcobserver "github.com/zeta-chain/node/zetaclient/chains/bitcoin/observer" - btcrpc "github.com/zeta-chain/node/zetaclient/chains/bitcoin/rpc" - evmobserver "github.com/zeta-chain/node/zetaclient/chains/evm/observer" - "github.com/zeta-chain/node/zetaclient/config" - zctx "github.com/zeta-chain/node/zetaclient/context" - "github.com/zeta-chain/node/zetaclient/db" - "github.com/zeta-chain/node/zetaclient/keys" - "github.com/zeta-chain/node/zetaclient/orchestrator" - "github.com/zeta-chain/node/zetaclient/zetacore" -) - -type inboundOptions struct { - Node string - ChainID string -} - -var inboundOpts inboundOptions - -func setupInboundOptions() { - f, cfg := InboundCmd.PersistentFlags(), &inboundOpts - - f.StringVar(&cfg.Node, "node", "46.4.15.110", "zeta public ip address") - f.StringVar(&cfg.ChainID, "chain-id", "athens_7001-1", "zeta chain id") -} - -func InboundGetBallot(_ *cobra.Command, args []string) error { - cobra.ExactArgs(2) - - cfg, err := config.Load(globalOpts.ZetacoreHome) - if err != nil { - return errors.Wrap(err, "failed to load config") - } - - inboundHash := args[0] - - chainID, err := strconv.ParseInt(args[1], 10, 64) - if err != nil { - return errors.Wrap(err, "failed to parse chain id") - } - - // create a new zetacore client - client, err := zetacore.NewClient( - &keys.Keys{OperatorAddress: sdk.MustAccAddressFromBech32(sample.AccAddress())}, - inboundOpts.Node, - "", - inboundOpts.ChainID, - zerolog.Nop(), - ) - if err != nil { - return err - } - - appContext := zctx.New(cfg, nil, zerolog.Nop()) - ctx := zctx.WithAppContext(context.Background(), appContext) - - err = orchestrator.UpdateAppContext(ctx, appContext, client, zerolog.Nop()) - if err != nil { - return errors.Wrap(err, "failed to update app context") - } - - var ballotIdentifier string - - tssEthAddress, err := client.GetEVMTSSAddress(ctx) - if err != nil { - return err - } - - chain, err := appContext.GetChain(chainID) - if err != nil { - return err - } - - baseLogger := base.Logger{Std: zerolog.Nop(), Compliance: zerolog.Nop()} - - observers, err := orchestrator.CreateChainObserverMap(ctx, client, nil, db.SqliteInMemory, baseLogger, nil) - if err != nil { - return errors.Wrap(err, "failed to create chain observer map") - } - - // get ballot identifier according to the chain type - if chain.IsEVM() { - observer, ok := observers[chainID] - if !ok { - return fmt.Errorf("observer not found for evm chain %d", chain.ID()) - } - - evmObserver, ok := observer.(*evmobserver.Observer) - if !ok { - return fmt.Errorf("observer is not evm observer for chain %d", chain.ID()) - } - - coinType := coin.CoinType_Cmd - hash := ethcommon.HexToHash(inboundHash) - tx, isPending, err := evmObserver.TransactionByHash(inboundHash) - if err != nil { - return fmt.Errorf("tx not found on chain %s, %d", err.Error(), chain.ID()) - } - - if isPending { - return fmt.Errorf("tx is still pending") - } - - receipt, err := evmObserver.TransactionReceipt(ctx, hash) - if err != nil { - return fmt.Errorf("tx receipt not found on chain %s, %d", err.Error(), chain.ID()) - } - - params := chain.Params() - - evmObserver.SetChainParams(*params) - - if strings.EqualFold(tx.To, params.ConnectorContractAddress) { - coinType = coin.CoinType_Zeta - } else if strings.EqualFold(tx.To, params.Erc20CustodyContractAddress) { - coinType = coin.CoinType_ERC20 - } else if strings.EqualFold(tx.To, tssEthAddress) { - coinType = coin.CoinType_Gas - } - - switch coinType { - case coin.CoinType_Zeta: - ballotIdentifier, err = evmObserver.CheckAndVoteInboundTokenZeta(ctx, tx, receipt, false) - if err != nil { - return err - } - - case coin.CoinType_ERC20: - ballotIdentifier, err = evmObserver.CheckAndVoteInboundTokenERC20(ctx, tx, receipt, false) - if err != nil { - return err - } - - case coin.CoinType_Gas: - ballotIdentifier, err = evmObserver.CheckAndVoteInboundTokenGas(ctx, tx, receipt, false) - if err != nil { - return err - } - default: - fmt.Println("CoinType not detected") - } - fmt.Println("CoinType : ", coinType) - } else if chain.IsBitcoin() { - bitcoinConfig, found := appContext.Config().GetBTCConfig(chain.ID()) - if !found { - return fmt.Errorf("unable to find btc config") - } - - rpcClient, err := btcrpc.NewRPCClient(bitcoinConfig) - if err != nil { - return errors.Wrap(err, "unable to create rpc client") - } - - database, err := db.NewFromSqliteInMemory(true) - if err != nil { - return errors.Wrap(err, "unable to open database") - } - - observer, err := btcobserver.NewObserver( - *chain.RawChain(), - rpcClient, - *chain.Params(), - client, - nil, - database, - baseLogger, - nil, - ) - if err != nil { - return errors.Wrap(err, "unable to create btc observer") - } - - ballotIdentifier, err = observer.CheckReceiptForBtcTxHash(ctx, inboundHash, false) - if err != nil { - return err - } - } - - fmt.Println("BallotIdentifier: ", ballotIdentifier) - - // query ballot - ballot, err := client.GetBallot(ctx, ballotIdentifier) - if err != nil { - return err - } - - for _, vote := range ballot.Voters { - fmt.Printf("%s: %s\n", vote.VoterAddress, vote.VoteType) - } - - fmt.Println("BallotStatus: ", ballot.BallotStatus) - - return nil -} diff --git a/cmd/zetaclientd/main.go b/cmd/zetaclientd/main.go index a5f8187699..b986650b74 100644 --- a/cmd/zetaclientd/main.go +++ b/cmd/zetaclientd/main.go @@ -61,13 +61,6 @@ var ( Short: "Show relayer address", RunE: RelayerShowAddress, } - - InboundCmd = &cobra.Command{Use: "inbound", Short: "Inbound transactions"} - InboundGetBallotCmd = &cobra.Command{ - Use: "get-ballot [inboundHash] [chainID]", - Short: "Get the ballot status for the tx hash", - RunE: InboundGetBallot, - } ) // globalOptions defines the global options for all commands. @@ -103,9 +96,6 @@ func init() { RootCmd.AddCommand(RelayerCmd) RelayerCmd.AddCommand(RelayerImportKeyCmd) RelayerCmd.AddCommand(RelayerShowAddressCmd) - - RootCmd.AddCommand(InboundCmd) - InboundCmd.AddCommand(InboundGetBallotCmd) } func main() { diff --git a/cmd/zetatool/config/config.go b/cmd/zetatool/config/config.go index 05b82aca98..adbc79a397 100644 --- a/cmd/zetatool/config/config.go +++ b/cmd/zetatool/config/config.go @@ -4,6 +4,7 @@ import ( "encoding/json" "github.com/spf13/afero" + "github.com/zeta-chain/node/pkg/chains" ) diff --git a/cmd/zetatool/inbound_ballot/bitcoin.go b/cmd/zetatool/inbound_ballot/bitcoin.go index 3927da45e7..39697dd150 100644 --- a/cmd/zetatool/inbound_ballot/bitcoin.go +++ b/cmd/zetatool/inbound_ballot/bitcoin.go @@ -11,6 +11,7 @@ import ( "github.com/btcsuite/btcd/chaincfg/chainhash" "github.com/btcsuite/btcd/rpcclient" "github.com/rs/zerolog" + "github.com/zeta-chain/node/cmd/zetatool/config" "github.com/zeta-chain/node/pkg/chains" "github.com/zeta-chain/node/pkg/coin" @@ -18,7 +19,7 @@ import ( crosschaintypes "github.com/zeta-chain/node/x/crosschain/types" "github.com/zeta-chain/node/x/observer/types" "github.com/zeta-chain/node/zetaclient/chains/bitcoin/common" - "github.com/zeta-chain/node/zetaclient/chains/bitcoin/observer" + zetaclientObserver "github.com/zeta-chain/node/zetaclient/chains/bitcoin/observer" ) func BtcInboundBallotIdentified(ctx context.Context, @@ -27,7 +28,6 @@ func BtcInboundBallotIdentified(ctx context.Context, inboundHash string, inboundChain chains.Chain, zetaChainID int64) (string, error) { - params, err := chains.BitcoinNetParamsFromChainID(inboundChain.ChainId) if err != nil { return "", fmt.Errorf("unable to get bitcoin net params from chain id: %s", err) @@ -56,7 +56,15 @@ func BtcInboundBallotIdentified(ctx context.Context, } tssBtcAddress := res.GetBtc() - return bitcoinBallotIdentifier(ctx, rpcClient, params, tssBtcAddress, inboundHash, inboundChain.ChainId, zetaChainID) + return bitcoinBallotIdentifier( + ctx, + rpcClient, + params, + tssBtcAddress, + inboundHash, + inboundChain.ChainId, + zetaChainID, + ) } func bitcoinBallotIdentifier(ctx context.Context, @@ -91,7 +99,7 @@ func bitcoinBallotIdentifier(ctx context.Context, } // #nosec G115 always positive - event, err := observer.GetBtcEvent( + event, err := zetaclientObserver.GetBtcEvent( btcClient, *tx, tss, @@ -109,10 +117,9 @@ func bitcoinBallotIdentifier(ctx context.Context, } return identifierFromBtcEvent(event, senderChainID, zetacoreChainID) - } -func identifierFromBtcEvent(event *observer.BTCInboundEvent, +func identifierFromBtcEvent(event *zetaclientObserver.BTCInboundEvent, senderChainID int64, zetacoreChainID int64) (string, error) { // decode event memo bytes @@ -144,7 +151,7 @@ func identifierFromBtcEvent(event *observer.BTCInboundEvent, // NewInboundVoteFromLegacyMemo creates a MsgVoteInbound message for inbound that uses legacy memo func voteFromLegacyMemo( - event *observer.BTCInboundEvent, + event *zetaclientObserver.BTCInboundEvent, amountSats *big.Int, senderChainId int64, zetacoreChainId int64, @@ -172,7 +179,7 @@ func voteFromLegacyMemo( } func voteFromStdMemo( - event *observer.BTCInboundEvent, + event *zetaclientObserver.BTCInboundEvent, amountSats *big.Int, senderChainId int64, zetacoreChainId int64, diff --git a/cmd/zetatool/inbound_ballot/evm.go b/cmd/zetatool/inbound_ballot/evm.go index 118df04385..2ddf909e0b 100644 --- a/cmd/zetatool/inbound_ballot/evm.go +++ b/cmd/zetatool/inbound_ballot/evm.go @@ -12,6 +12,10 @@ import ( ethtypes "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/ethclient" ethrpc "github.com/ethereum/go-ethereum/rpc" + "github.com/zeta-chain/protocol-contracts/v1/pkg/contracts/evm/erc20custody.sol" + "github.com/zeta-chain/protocol-contracts/v1/pkg/contracts/evm/zetaconnector.non-eth.sol" + "github.com/zeta-chain/protocol-contracts/v2/pkg/gatewayevm.sol" + "github.com/zeta-chain/node/cmd/zetatool/config" "github.com/zeta-chain/node/pkg/chains" "github.com/zeta-chain/node/pkg/coin" @@ -22,9 +26,6 @@ import ( "github.com/zeta-chain/node/x/observer/types" clienttypes "github.com/zeta-chain/node/zetaclient/types" "github.com/zeta-chain/node/zetaclient/zetacore" - "github.com/zeta-chain/protocol-contracts/v1/pkg/contracts/evm/erc20custody.sol" - "github.com/zeta-chain/protocol-contracts/v1/pkg/contracts/evm/zetaconnector.non-eth.sol" - "github.com/zeta-chain/protocol-contracts/v2/pkg/gatewayevm.sol" ) func resolveRPC(chain chains.Chain, cfg config.Config) string { @@ -34,7 +35,6 @@ func resolveRPC(chain chains.Chain, cfg config.Config) string { chains.Network_polygon: cfg.PolygonRPC, chains.Network_bsc: cfg.BscRPC, }[chain.Network] - } func EvmInboundBallotIdentified(ctx context.Context, @@ -43,8 +43,6 @@ func EvmInboundBallotIdentified(ctx context.Context, inboundHash string, inboundChain chains.Chain, zetaChainID int64) (string, error) { - - // create evm client for the observation chain evmRpc := resolveRPC(inboundChain, cfg) if evmRpc == "" { return "", fmt.Errorf("rpc not found for chain %d network %s", inboundChain.ChainId, inboundChain.Network) @@ -55,19 +53,12 @@ func EvmInboundBallotIdentified(ctx context.Context, } evmClient := ethclient.NewClient(rpcClient) - // Fetch transaction from the inbound - hash := ethcommon.HexToHash(inboundHash) - tx, isPending, err := evmClient.TransactionByHash(ctx, hash) - if err != nil { - return "", fmt.Errorf("tx not found on chain %s, %d", err.Error(), inboundChain.ChainId) - } - if isPending { - return "", fmt.Errorf("tx is still pending on chain %d", inboundChain.ChainId) - } - receipt, err := evmClient.TransactionReceipt(ctx, hash) + // create evm client for the observation chain + tx, receipt, err := getEvmTx(ctx, evmClient, inboundHash, inboundChain) if err != nil { - return "", fmt.Errorf("failed to get receipt %s , tx hash %s", err.Error(), inboundHash) + return "", fmt.Errorf("failed to get tx %s", err.Error()) } + chainParams, err := zetacoreClient.GetChainParamsForChainID(context.Background(), inboundChain.ChainId) if err != nil { return "", fmt.Errorf("failed to get chain params %s", err.Error()) @@ -156,10 +147,34 @@ func EvmInboundBallotIdentified(ctx context.Context, } } } + default: + return "", fmt.Errorf("irrelevant trasnaction , not sent to any known address txHash: %s", inboundHash) } return "", fmt.Errorf("no event found for tx %s", inboundHash) } +func getEvmTx( + ctx context.Context, + evmClient *ethclient.Client, + inboundHash string, + inboundChain chains.Chain, +) (*ethtypes.Transaction, *ethtypes.Receipt, error) { + // Fetch transaction from the inbound + hash := ethcommon.HexToHash(inboundHash) + tx, isPending, err := evmClient.TransactionByHash(ctx, hash) + if err != nil { + return nil, nil, fmt.Errorf("tx not found on chain %s, %d", err.Error(), inboundChain.ChainId) + } + if isPending { + return nil, nil, fmt.Errorf("tx is still pending on chain %d", inboundChain.ChainId) + } + receipt, err := evmClient.TransactionReceipt(ctx, hash) + if err != nil { + return nil, nil, fmt.Errorf("failed to get receipt %s , tx hash %s", err.Error(), inboundHash) + } + return tx, receipt, nil +} + func zetaTokenVoteV1( event *zetaconnector.ZetaConnectorNonEthZetaSent, observationChain int64, diff --git a/cmd/zetatool/inbound_ballot/inbound.go b/cmd/zetatool/inbound_ballot/inbound.go index a60df55ae9..0f86edee36 100644 --- a/cmd/zetatool/inbound_ballot/inbound.go +++ b/cmd/zetatool/inbound_ballot/inbound.go @@ -6,6 +6,7 @@ import ( "strconv" "github.com/spf13/cobra" + "github.com/zeta-chain/node/cmd/zetatool/config" "github.com/zeta-chain/node/pkg/chains" zetacorerpc "github.com/zeta-chain/node/pkg/rpc" @@ -13,8 +14,8 @@ import ( func NewFetchInboundBallotCMD() *cobra.Command { return &cobra.Command{ - Use: "inbound", - Short: "Fetch Inbound ballot from the inbound hash", + Use: "get-ballot [inboundHash] [chainID]", + Short: "fetch ballot identifier from the inbound hash", RunE: InboundGetBallot, } } @@ -55,23 +56,56 @@ func GetBallotIdentifier(inboundHash string, inboundChainID int64, configFile st ballotIdentifier := "" if observationChain.IsEVMChain() { - ballotIdentifier, err = EvmInboundBallotIdentified(ctx, *cfg, zetacoreClient, inboundHash, observationChain, cfg.ZetaChainID) + ballotIdentifier, err = EvmInboundBallotIdentified( + ctx, + *cfg, + zetacoreClient, + inboundHash, + observationChain, + cfg.ZetaChainID, + ) if err != nil { - return fmt.Errorf("failed to get inbound ballot for evm chain %d, %s", observationChain.ChainId, err.Error()) + return fmt.Errorf( + "failed to get inbound ballot for evm chain %d, %s", + observationChain.ChainId, + err.Error(), + ) } } if observationChain.IsBitcoinChain() { - ballotIdentifier, err = BtcInboundBallotIdentified(ctx, *cfg, zetacoreClient, inboundHash, observationChain, cfg.ZetaChainID) + ballotIdentifier, err = BtcInboundBallotIdentified( + ctx, + *cfg, + zetacoreClient, + inboundHash, + observationChain, + cfg.ZetaChainID, + ) if err != nil { - return fmt.Errorf("failed to get inbound ballot for bitcoin chain %d, %s", observationChain.ChainId, err.Error()) + return fmt.Errorf( + "failed to get inbound ballot for bitcoin chain %d, %s", + observationChain.ChainId, + err.Error(), + ) } } if observationChain.IsSolanaChain() { - ballotIdentifier, err = SolanaInboundBallotIdentified(ctx, *cfg, zetacoreClient, inboundHash, observationChain, cfg.ZetaChainID) + ballotIdentifier, err = SolanaInboundBallotIdentified( + ctx, + *cfg, + zetacoreClient, + inboundHash, + observationChain, + cfg.ZetaChainID, + ) if err != nil { - return fmt.Errorf("failed to get inbound ballot for solana chain %d, %s", observationChain.ChainId, err.Error()) + return fmt.Errorf( + "failed to get inbound ballot for solana chain %d, %s", + observationChain.ChainId, + err.Error(), + ) } } diff --git a/cmd/zetatool/inbound_ballot/solana.go b/cmd/zetatool/inbound_ballot/solana.go index 5d5649c2bc..ea57bb45c1 100644 --- a/cmd/zetatool/inbound_ballot/solana.go +++ b/cmd/zetatool/inbound_ballot/solana.go @@ -9,6 +9,7 @@ import ( cosmosmath "cosmossdk.io/math" "github.com/gagliardetto/solana-go" solrpc "github.com/gagliardetto/solana-go/rpc" + "github.com/zeta-chain/node/cmd/zetatool/config" "github.com/zeta-chain/node/pkg/chains" solanacontracts "github.com/zeta-chain/node/pkg/contracts/solana" @@ -26,7 +27,6 @@ func SolanaInboundBallotIdentified(ctx context.Context, inboundHash string, inboundChain chains.Chain, zetaChainID int64) (string, error) { - solClient := solrpc.New(cfg.SolanaRPC) if solClient == nil { return "", fmt.Errorf("error creating rpc client") @@ -61,16 +61,14 @@ func SolanaInboundBallotIdentified(ctx context.Context, for _, event := range events { msg := voteMsgFromSolEvent(event, zetaChainID) return msg.Digest(), nil - } return "", errors.New("no inbound vote message found") } -// BuildInboundVoteMsgFromEvent builds a MsgVoteInbound from an inbound event +// voteMsgFromSolEvent builds a MsgVoteInbound from an inbound event func voteMsgFromSolEvent(event *clienttypes.InboundEvent, zetaChainID int64) *crosschaintypes.MsgVoteInbound { - // decode event memo bytes to get the receiver err := event.DecodeMemo() if err != nil { diff --git a/cmd/zetatool/main.go b/cmd/zetatool/main.go index bfd905eea0..77fa1d88de 100644 --- a/cmd/zetatool/main.go +++ b/cmd/zetatool/main.go @@ -5,9 +5,9 @@ import ( "os" "github.com/spf13/cobra" - "github.com/zeta-chain/node/cmd/zetatool/inbound_ballot" "github.com/zeta-chain/node/cmd/zetatool/config" + "github.com/zeta-chain/node/cmd/zetatool/inbound_ballot" ) var rootCmd = &cobra.Command{ diff --git a/zetaclient/chains/solana/observer/inbound.go b/zetaclient/chains/solana/observer/inbound.go index 4c875988f3..965da635cb 100644 --- a/zetaclient/chains/solana/observer/inbound.go +++ b/zetaclient/chains/solana/observer/inbound.go @@ -10,11 +10,11 @@ import ( "github.com/gagliardetto/solana-go/rpc" "github.com/pkg/errors" "github.com/rs/zerolog" - "github.com/zeta-chain/node/zetaclient/chains/base" "github.com/zeta-chain/node/pkg/coin" solanacontracts "github.com/zeta-chain/node/pkg/contracts/solana" crosschaintypes "github.com/zeta-chain/node/x/crosschain/types" + "github.com/zeta-chain/node/zetaclient/chains/base" solanarpc "github.com/zeta-chain/node/zetaclient/chains/solana/rpc" "github.com/zeta-chain/node/zetaclient/compliance" zctx "github.com/zeta-chain/node/zetaclient/context" From 3f3262cdf1ab0bb6c93f8f70680ba3e1100f11bc Mon Sep 17 00:00:00 2001 From: Tanmay Date: Fri, 17 Jan 2025 12:00:59 -0500 Subject: [PATCH 06/22] resolve comments 1 --- changelog.md | 6 +++++- cmd/zetaclientd/main.go | 1 - cmd/zetatool/inbound_ballot/bitcoin.go | 21 ++++++++++----------- cmd/zetatool/inbound_ballot/evm.go | 2 +- cmd/zetatool/inbound_ballot/inbound.go | 10 +++++----- cmd/zetatool/inbound_ballot/solana.go | 2 +- 6 files changed, 22 insertions(+), 20 deletions(-) diff --git a/changelog.md b/changelog.md index 42342e873f..9dd26fc23c 100644 --- a/changelog.md +++ b/changelog.md @@ -2,10 +2,14 @@ ## unreleased +### Features + +* [3368](https://github.com/zeta-chain/node/pull/3368) - cli command to fetch inbound ballot from inbound hash added to zetatools. + ### Refactor * [3332](https://github.com/zeta-chain/node/pull/3332) - implement orchestrator V2. Move BTC observer-signer to V2 -* [3368](https://github.com/zeta-chain/node/pull/3368) - refactor cli command to fetch inbound ballot from inbound hash and move to zetatools + ## v25.0.0 diff --git a/cmd/zetaclientd/main.go b/cmd/zetaclientd/main.go index b986650b74..e1df683cc9 100644 --- a/cmd/zetaclientd/main.go +++ b/cmd/zetaclientd/main.go @@ -82,7 +82,6 @@ func init() { setupGlobalOptions() setupInitializeConfigOptions() setupRelayerOptions() - setupInboundOptions() // Define commands RootCmd.AddCommand(VersionCmd) diff --git a/cmd/zetatool/inbound_ballot/bitcoin.go b/cmd/zetatool/inbound_ballot/bitcoin.go index 39697dd150..34b66fb409 100644 --- a/cmd/zetatool/inbound_ballot/bitcoin.go +++ b/cmd/zetatool/inbound_ballot/bitcoin.go @@ -22,7 +22,7 @@ import ( zetaclientObserver "github.com/zeta-chain/node/zetaclient/chains/bitcoin/observer" ) -func BtcInboundBallotIdentified(ctx context.Context, +func btcInboundBallotIdentifier( cfg config.Config, zetacoreClient rpc.Clients, inboundHash string, @@ -57,7 +57,6 @@ func BtcInboundBallotIdentified(ctx context.Context, tssBtcAddress := res.GetBtc() return bitcoinBallotIdentifier( - ctx, rpcClient, params, tssBtcAddress, @@ -67,7 +66,7 @@ func BtcInboundBallotIdentified(ctx context.Context, ) } -func bitcoinBallotIdentifier(ctx context.Context, +func bitcoinBallotIdentifier( btcClient *rpcclient.Client, params *chaincfg.Params, tss string, @@ -153,18 +152,18 @@ func identifierFromBtcEvent(event *zetaclientObserver.BTCInboundEvent, func voteFromLegacyMemo( event *zetaclientObserver.BTCInboundEvent, amountSats *big.Int, - senderChainId int64, - zetacoreChainId int64, + senderChainID int64, + zetacoreChainID int64, ) *crosschaintypes.MsgVoteInbound { message := hex.EncodeToString(event.MemoBytes) return crosschaintypes.NewMsgVoteInbound( "", event.FromAddress, - senderChainId, + senderChainID, event.FromAddress, event.ToAddress, - zetacoreChainId, + zetacoreChainID, cosmosmath.NewUintFromBigInt(amountSats), message, event.TxHash, @@ -181,8 +180,8 @@ func voteFromLegacyMemo( func voteFromStdMemo( event *zetaclientObserver.BTCInboundEvent, amountSats *big.Int, - senderChainId int64, - zetacoreChainId int64, + senderChainID int64, + zetacoreChainID int64, ) *crosschaintypes.MsgVoteInbound { // zetacore will create a revert outbound that points to the custom revert address. revertOptions := crosschaintypes.RevertOptions{ @@ -196,10 +195,10 @@ func voteFromStdMemo( return crosschaintypes.NewMsgVoteInbound( "", event.FromAddress, - senderChainId, + senderChainID, event.FromAddress, event.ToAddress, - zetacoreChainId, + zetacoreChainID, cosmosmath.NewUintFromBigInt(amountSats), message, event.TxHash, diff --git a/cmd/zetatool/inbound_ballot/evm.go b/cmd/zetatool/inbound_ballot/evm.go index 2ddf909e0b..672d031b21 100644 --- a/cmd/zetatool/inbound_ballot/evm.go +++ b/cmd/zetatool/inbound_ballot/evm.go @@ -37,7 +37,7 @@ func resolveRPC(chain chains.Chain, cfg config.Config) string { }[chain.Network] } -func EvmInboundBallotIdentified(ctx context.Context, +func evmInboundBallotIdentifier(ctx context.Context, cfg config.Config, zetacoreClient rpc.Clients, inboundHash string, diff --git a/cmd/zetatool/inbound_ballot/inbound.go b/cmd/zetatool/inbound_ballot/inbound.go index 0f86edee36..616a0b5ffa 100644 --- a/cmd/zetatool/inbound_ballot/inbound.go +++ b/cmd/zetatool/inbound_ballot/inbound.go @@ -5,6 +5,7 @@ import ( "fmt" "strconv" + "github.com/rs/zerolog/log" "github.com/spf13/cobra" "github.com/zeta-chain/node/cmd/zetatool/config" @@ -56,7 +57,7 @@ func GetBallotIdentifier(inboundHash string, inboundChainID int64, configFile st ballotIdentifier := "" if observationChain.IsEVMChain() { - ballotIdentifier, err = EvmInboundBallotIdentified( + ballotIdentifier, err = evmInboundBallotIdentifier( ctx, *cfg, zetacoreClient, @@ -74,8 +75,7 @@ func GetBallotIdentifier(inboundHash string, inboundChainID int64, configFile st } if observationChain.IsBitcoinChain() { - ballotIdentifier, err = BtcInboundBallotIdentified( - ctx, + ballotIdentifier, err = btcInboundBallotIdentifier( *cfg, zetacoreClient, inboundHash, @@ -92,7 +92,7 @@ func GetBallotIdentifier(inboundHash string, inboundChainID int64, configFile st } if observationChain.IsSolanaChain() { - ballotIdentifier, err = SolanaInboundBallotIdentified( + ballotIdentifier, err = solanaInboundBallotIdentifier( ctx, *cfg, zetacoreClient, @@ -109,6 +109,6 @@ func GetBallotIdentifier(inboundHash string, inboundChainID int64, configFile st } } - fmt.Println("Ballot Identifier: ", ballotIdentifier) + log.Info().Msgf("Ballot Identifier: %s", ballotIdentifier) return nil } diff --git a/cmd/zetatool/inbound_ballot/solana.go b/cmd/zetatool/inbound_ballot/solana.go index ea57bb45c1..bdd632f600 100644 --- a/cmd/zetatool/inbound_ballot/solana.go +++ b/cmd/zetatool/inbound_ballot/solana.go @@ -21,7 +21,7 @@ import ( clienttypes "github.com/zeta-chain/node/zetaclient/types" ) -func SolanaInboundBallotIdentified(ctx context.Context, +func solanaInboundBallotIdentifier(ctx context.Context, cfg config.Config, zetacoreClient rpc.Clients, inboundHash string, From c61cd6c33722b8c747a60d4fdbf35c887bafa1b8 Mon Sep 17 00:00:00 2001 From: Tanmay Date: Fri, 17 Jan 2025 12:06:41 -0500 Subject: [PATCH 07/22] format files and rename ChainId to ChainID --- cmd/zetatool/{inbound_ballot => inbound}/bitcoin.go | 2 +- cmd/zetatool/{inbound_ballot => inbound}/evm.go | 8 ++++---- cmd/zetatool/{inbound_ballot => inbound}/inbound.go | 6 +++--- cmd/zetatool/{inbound_ballot => inbound}/solana.go | 2 +- cmd/zetatool/main.go | 4 ++-- 5 files changed, 11 insertions(+), 11 deletions(-) rename cmd/zetatool/{inbound_ballot => inbound}/bitcoin.go (99%) rename cmd/zetatool/{inbound_ballot => inbound}/evm.go (98%) rename cmd/zetatool/{inbound_ballot => inbound}/inbound.go (95%) rename cmd/zetatool/{inbound_ballot => inbound}/solana.go (99%) diff --git a/cmd/zetatool/inbound_ballot/bitcoin.go b/cmd/zetatool/inbound/bitcoin.go similarity index 99% rename from cmd/zetatool/inbound_ballot/bitcoin.go rename to cmd/zetatool/inbound/bitcoin.go index 34b66fb409..f7e3a726e6 100644 --- a/cmd/zetatool/inbound_ballot/bitcoin.go +++ b/cmd/zetatool/inbound/bitcoin.go @@ -1,4 +1,4 @@ -package inbound_ballot +package inbound import ( "context" diff --git a/cmd/zetatool/inbound_ballot/evm.go b/cmd/zetatool/inbound/evm.go similarity index 98% rename from cmd/zetatool/inbound_ballot/evm.go rename to cmd/zetatool/inbound/evm.go index 672d031b21..161978eb73 100644 --- a/cmd/zetatool/inbound_ballot/evm.go +++ b/cmd/zetatool/inbound/evm.go @@ -1,4 +1,4 @@ -package inbound_ballot +package inbound import ( "bytes" @@ -43,11 +43,11 @@ func evmInboundBallotIdentifier(ctx context.Context, inboundHash string, inboundChain chains.Chain, zetaChainID int64) (string, error) { - evmRpc := resolveRPC(inboundChain, cfg) - if evmRpc == "" { + evmRRC := resolveRPC(inboundChain, cfg) + if evmRRC == "" { return "", fmt.Errorf("rpc not found for chain %d network %s", inboundChain.ChainId, inboundChain.Network) } - rpcClient, err := ethrpc.DialHTTP(evmRpc) + rpcClient, err := ethrpc.DialHTTP(evmRRC) if err != nil { return "", fmt.Errorf("failed to connect to eth rpc %s", err.Error()) } diff --git a/cmd/zetatool/inbound_ballot/inbound.go b/cmd/zetatool/inbound/inbound.go similarity index 95% rename from cmd/zetatool/inbound_ballot/inbound.go rename to cmd/zetatool/inbound/inbound.go index 616a0b5ffa..439de080ed 100644 --- a/cmd/zetatool/inbound_ballot/inbound.go +++ b/cmd/zetatool/inbound/inbound.go @@ -1,4 +1,4 @@ -package inbound_ballot +package inbound import ( "context" @@ -17,11 +17,11 @@ func NewFetchInboundBallotCMD() *cobra.Command { return &cobra.Command{ Use: "get-ballot [inboundHash] [chainID]", Short: "fetch ballot identifier from the inbound hash", - RunE: InboundGetBallot, + RunE: GetInboundBallot, } } -func InboundGetBallot(cmd *cobra.Command, args []string) error { +func GetInboundBallot(cmd *cobra.Command, args []string) error { cobra.ExactArgs(2) inboundHash := args[0] diff --git a/cmd/zetatool/inbound_ballot/solana.go b/cmd/zetatool/inbound/solana.go similarity index 99% rename from cmd/zetatool/inbound_ballot/solana.go rename to cmd/zetatool/inbound/solana.go index bdd632f600..655b2914ae 100644 --- a/cmd/zetatool/inbound_ballot/solana.go +++ b/cmd/zetatool/inbound/solana.go @@ -1,4 +1,4 @@ -package inbound_ballot +package inbound import ( "context" diff --git a/cmd/zetatool/main.go b/cmd/zetatool/main.go index 77fa1d88de..e3e49cc280 100644 --- a/cmd/zetatool/main.go +++ b/cmd/zetatool/main.go @@ -7,7 +7,7 @@ import ( "github.com/spf13/cobra" "github.com/zeta-chain/node/cmd/zetatool/config" - "github.com/zeta-chain/node/cmd/zetatool/inbound_ballot" + "github.com/zeta-chain/node/cmd/zetatool/inbound" ) var rootCmd = &cobra.Command{ @@ -16,7 +16,7 @@ var rootCmd = &cobra.Command{ } func init() { - rootCmd.AddCommand(inbound_ballot.NewFetchInboundBallotCMD()) + rootCmd.AddCommand(inbound.NewFetchInboundBallotCMD()) rootCmd.PersistentFlags().String(config.FlagConfig, "", "custom config file: --config filename.json") } From 80e962c71b3366a5bbd7d7238da9be976812ae48 Mon Sep 17 00:00:00 2001 From: Tanmay Date: Fri, 17 Jan 2025 13:09:30 -0500 Subject: [PATCH 08/22] add readme --- cmd/zetatool/README.md | 30 ++++++++++++++++++++++++++++++ cmd/zetatool/inbound/bitcoin.go | 11 +++++++---- cmd/zetatool/inbound/evm.go | 4 ++++ cmd/zetatool/inbound/inbound.go | 5 ++--- cmd/zetatool/inbound/solana.go | 11 +++++++---- cmd/zetatool/main.go | 2 +- 6 files changed, 51 insertions(+), 12 deletions(-) create mode 100644 cmd/zetatool/README.md diff --git a/cmd/zetatool/README.md b/cmd/zetatool/README.md new file mode 100644 index 0000000000..18b849c7be --- /dev/null +++ b/cmd/zetatool/README.md @@ -0,0 +1,30 @@ +# ZetaTool + +ZetaTool is a utility tool for the Zeta-Chain project. It provides a command to fetch the ballot/cctx identifier from the inbound hash + +## Installation + +To install ZetaTool, clone the repository and build the project: + +```sh +git clone https://github.com/zeta-chain/node.git +cd node/cmd/zetatool +go build -o zetatool +``` + +Alternatively you can also use the target `make install-zetatool` + +## Usage + +### Fetching the Ballot Identifier + +```shell +get-ballot [inboundHash] [chainID] --config +``` + +- `inboundHash`: The inbound hash of the transaction for which the ballot identifier is to be fetched +- `chainID`: The chain ID of the chain to which the transaction belongs +- `--config`: [Optional]The path to the configuration file. When not provided, the default configuration is used + +The command returns a ballot identifier for the given inbound hash. + diff --git a/cmd/zetatool/inbound/bitcoin.go b/cmd/zetatool/inbound/bitcoin.go index f7e3a726e6..2e169a00e8 100644 --- a/cmd/zetatool/inbound/bitcoin.go +++ b/cmd/zetatool/inbound/bitcoin.go @@ -134,18 +134,21 @@ func identifierFromBtcEvent(event *zetaclientObserver.BTCInboundEvent, } amountInt := big.NewInt(amountSats) + var msg *crosschaintypes.MsgVoteInbound switch event.MemoStd { case nil: { - msg := voteFromLegacyMemo(event, amountInt, senderChainID, zetacoreChainID) - return msg.Digest(), nil + msg = voteFromLegacyMemo(event, amountInt, senderChainID, zetacoreChainID) } default: { - msg := voteFromStdMemo(event, amountInt, senderChainID, zetacoreChainID) - return msg.Digest(), nil + msg = voteFromStdMemo(event, amountInt, senderChainID, zetacoreChainID) } } + if msg == nil { + return "", fmt.Errorf("failed to create vote message") + } + return msg.Digest(), nil } // NewInboundVoteFromLegacyMemo creates a MsgVoteInbound message for inbound that uses legacy memo diff --git a/cmd/zetatool/inbound/evm.go b/cmd/zetatool/inbound/evm.go index 161978eb73..6720309b26 100644 --- a/cmd/zetatool/inbound/evm.go +++ b/cmd/zetatool/inbound/evm.go @@ -70,6 +70,10 @@ func evmInboundBallotIdentifier(ctx context.Context, } tssEthAddress := res.GetEth() + if tx.To() == nil { + return "", fmt.Errorf("invalid trasnaction,to field is empty %s", inboundHash) + } + // Create inbound vote message based on the cointype and protocol version switch tx.To().Hex() { case chainParams.ConnectorContractAddress: diff --git a/cmd/zetatool/inbound/inbound.go b/cmd/zetatool/inbound/inbound.go index 439de080ed..cc1954b916 100644 --- a/cmd/zetatool/inbound/inbound.go +++ b/cmd/zetatool/inbound/inbound.go @@ -13,17 +13,16 @@ import ( zetacorerpc "github.com/zeta-chain/node/pkg/rpc" ) -func NewFetchInboundBallotCMD() *cobra.Command { +func NewGetInboundBallotCMD() *cobra.Command { return &cobra.Command{ Use: "get-ballot [inboundHash] [chainID]", Short: "fetch ballot identifier from the inbound hash", RunE: GetInboundBallot, + Args: cobra.ExactArgs(2), } } func GetInboundBallot(cmd *cobra.Command, args []string) error { - cobra.ExactArgs(2) - inboundHash := args[0] inboundChainID, err := strconv.ParseInt(args[1], 10, 64) if err != nil { diff --git a/cmd/zetatool/inbound/solana.go b/cmd/zetatool/inbound/solana.go index 655b2914ae..3a5911fe69 100644 --- a/cmd/zetatool/inbound/solana.go +++ b/cmd/zetatool/inbound/solana.go @@ -59,7 +59,10 @@ func solanaInboundBallotIdentifier(ctx context.Context, // build inbound vote message from events and post to zetacore for _, event := range events { - msg := voteMsgFromSolEvent(event, zetaChainID) + msg, err := voteMsgFromSolEvent(event, zetaChainID) + if err != nil { + return "", fmt.Errorf("failed to create vote message: %w", err) + } return msg.Digest(), nil } @@ -68,11 +71,11 @@ func solanaInboundBallotIdentifier(ctx context.Context, // voteMsgFromSolEvent builds a MsgVoteInbound from an inbound event func voteMsgFromSolEvent(event *clienttypes.InboundEvent, - zetaChainID int64) *crosschaintypes.MsgVoteInbound { + zetaChainID int64) (*crosschaintypes.MsgVoteInbound, error) { // decode event memo bytes to get the receiver err := event.DecodeMemo() if err != nil { - return nil + return nil, fmt.Errorf("failed to decode memo: %w", err) } // create inbound vote message @@ -93,5 +96,5 @@ func voteMsgFromSolEvent(event *clienttypes.InboundEvent, 0, // not a smart contract call crosschaintypes.ProtocolContractVersion_V1, false, // not relevant for v1 - ) + ), nil } diff --git a/cmd/zetatool/main.go b/cmd/zetatool/main.go index e3e49cc280..c79451d413 100644 --- a/cmd/zetatool/main.go +++ b/cmd/zetatool/main.go @@ -16,7 +16,7 @@ var rootCmd = &cobra.Command{ } func init() { - rootCmd.AddCommand(inbound.NewFetchInboundBallotCMD()) + rootCmd.AddCommand(inbound.NewGetInboundBallotCMD()) rootCmd.PersistentFlags().String(config.FlagConfig, "", "custom config file: --config filename.json") } From 20bd1bc2855ec82568b6e8bd9a8e288debda7392 Mon Sep 17 00:00:00 2001 From: Tanmay Date: Fri, 17 Jan 2025 16:10:41 -0500 Subject: [PATCH 09/22] add warning for unconfirmed inbound --- cmd/zetatool/inbound/bitcoin.go | 26 ++++++++++++++---- cmd/zetatool/inbound/evm.go | 47 +++++++++++++++++++++------------ cmd/zetatool/inbound/inbound.go | 10 +++---- cmd/zetatool/inbound/solana.go | 8 +++--- 4 files changed, 60 insertions(+), 31 deletions(-) diff --git a/cmd/zetatool/inbound/bitcoin.go b/cmd/zetatool/inbound/bitcoin.go index 2e169a00e8..d403489c8c 100644 --- a/cmd/zetatool/inbound/bitcoin.go +++ b/cmd/zetatool/inbound/bitcoin.go @@ -56,6 +56,11 @@ func btcInboundBallotIdentifier( } tssBtcAddress := res.GetBtc() + chainParams, err := zetacoreClient.GetChainParamsForChainID(context.Background(), inboundChain.ChainId) + if err != nil { + return "", fmt.Errorf("failed to get chain params %s", err.Error()) + } + return bitcoinBallotIdentifier( rpcClient, params, @@ -63,6 +68,7 @@ func btcInboundBallotIdentifier( inboundHash, inboundChain.ChainId, zetaChainID, + chainParams.ConfirmationCount, ) } @@ -72,16 +78,20 @@ func bitcoinBallotIdentifier( tss string, txHash string, senderChainID int64, - zetacoreChainID int64) (string, error) { + zetacoreChainID int64, + confirmationCount uint64) (string, error) { hash, err := chainhash.NewHashFromStr(txHash) if err != nil { return "", err } - + confirmationMessage := "" tx, err := btcClient.GetRawTransactionVerbose(hash) if err != nil { return "", err } + if tx.Confirmations < confirmationCount { + confirmationMessage = fmt.Sprintf("tx might not confirmed on chain %d", senderChainID) + } blockHash, err := chainhash.NewHashFromStr(tx.BlockHash) if err != nil { @@ -96,6 +106,7 @@ func bitcoinBallotIdentifier( if len(blockVb.Tx) <= 1 { return "", fmt.Errorf("block %d has no transactions", blockVb.Height) } + // #nosec G115 always positive event, err := zetaclientObserver.GetBtcEvent( @@ -115,12 +126,12 @@ func bitcoinBallotIdentifier( return "", fmt.Errorf("no event built for btc sent to TSS") } - return identifierFromBtcEvent(event, senderChainID, zetacoreChainID) + return identifierFromBtcEvent(event, senderChainID, zetacoreChainID, confirmationMessage) } func identifierFromBtcEvent(event *zetaclientObserver.BTCInboundEvent, senderChainID int64, - zetacoreChainID int64) (string, error) { + zetacoreChainID int64, confirmationMessage string) (string, error) { // decode event memo bytes err := event.DecodeMemoBytes(senderChainID) if err != nil { @@ -148,7 +159,12 @@ func identifierFromBtcEvent(event *zetaclientObserver.BTCInboundEvent, if msg == nil { return "", fmt.Errorf("failed to create vote message") } - return msg.Digest(), nil + + index := msg.Digest() + if confirmationMessage != "" { + return fmt.Sprintf("ballot idetifier %s warning :%s", index, confirmationMessage), nil + } + return fmt.Sprintf("ballot idetifier: %s", msg.Digest()), nil } // NewInboundVoteFromLegacyMemo creates a MsgVoteInbound message for inbound that uses legacy memo diff --git a/cmd/zetatool/inbound/evm.go b/cmd/zetatool/inbound/evm.go index 6720309b26..99127794b1 100644 --- a/cmd/zetatool/inbound/evm.go +++ b/cmd/zetatool/inbound/evm.go @@ -12,6 +12,7 @@ import ( ethtypes "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/ethclient" ethrpc "github.com/ethereum/go-ethereum/rpc" + zetaclientrpc "github.com/zeta-chain/node/zetaclient/chains/evm/rpc" "github.com/zeta-chain/protocol-contracts/v1/pkg/contracts/evm/erc20custody.sol" "github.com/zeta-chain/protocol-contracts/v1/pkg/contracts/evm/zetaconnector.non-eth.sol" "github.com/zeta-chain/protocol-contracts/v2/pkg/gatewayevm.sol" @@ -74,6 +75,16 @@ func evmInboundBallotIdentifier(ctx context.Context, return "", fmt.Errorf("invalid trasnaction,to field is empty %s", inboundHash) } + confirmationMessage := "" + confirmed, err := zetaclientrpc.IsTxConfirmed(ctx, evmClient, inboundHash, chainParams.ConfirmationCount) + if err != nil { + return "", fmt.Errorf("unbale to confirm tx %s", err.Error()) + } + if !confirmed { + confirmationMessage = fmt.Sprintf("tx might not confirmed on chain %d", inboundChain.ChainId) + } + + msg := &crosschaintypes.MsgVoteInbound{} // Create inbound vote message based on the cointype and protocol version switch tx.To().Hex() { case chainParams.ConnectorContractAddress: @@ -87,8 +98,7 @@ func evmInboundBallotIdentifier(ctx context.Context, for _, log := range receipt.Logs { event, err := connector.ParseZetaSent(*log) if err == nil && event != nil { - msg := zetaTokenVoteV1(event, inboundChain.ChainId) - return msg.Digest(), nil + msg = zetaTokenVoteV1(event, inboundChain.ChainId) } } } @@ -106,8 +116,8 @@ func evmInboundBallotIdentifier(ctx context.Context, for _, log := range receipt.Logs { zetaDeposited, err := custody.ParseDeposited(*log) if err == nil && zetaDeposited != nil { - msg := erc20VoteV1(zetaDeposited, sender, inboundChain.ChainId, zetaChainID) - return msg.Digest(), nil + msg = erc20VoteV1(zetaDeposited, sender, inboundChain.ChainId, zetaChainID) + } } } @@ -120,8 +130,8 @@ func evmInboundBallotIdentifier(ctx context.Context, if err != nil { return "", fmt.Errorf("failed to get tx sender %s", err.Error()) } - msg := gasVoteV1(tx, sender, receipt.BlockNumber.Uint64(), inboundChain.ChainId, zetaChainID) - return msg.Digest(), nil + msg = gasVoteV1(tx, sender, receipt.BlockNumber.Uint64(), inboundChain.ChainId, zetaChainID) + } case chainParams.GatewayAddress: { @@ -136,25 +146,28 @@ func evmInboundBallotIdentifier(ctx context.Context, } eventDeposit, err := gateway.ParseDeposited(*log) if err == nil { - msg := depositInboundVoteV2(eventDeposit, inboundChain.ChainId, zetaChainID) + msg = depositInboundVoteV2(eventDeposit, inboundChain.ChainId, zetaChainID) return msg.Digest(), nil } eventDepositAndCall, err := gateway.ParseDepositedAndCalled(*log) if err == nil { - msg := depositAndCallInboundVoteV2(eventDepositAndCall, inboundChain.ChainId, zetaChainID) + msg = depositAndCallInboundVoteV2(eventDepositAndCall, inboundChain.ChainId, zetaChainID) return msg.Digest(), nil } eventCall, err := gateway.ParseCalled(*log) if err == nil { - msg := callInboundVoteV2(eventCall, inboundChain.ChainId, zetaChainID) - return msg.Digest(), nil + msg = callInboundVoteV2(eventCall, inboundChain.ChainId, zetaChainID) } } } default: return "", fmt.Errorf("irrelevant trasnaction , not sent to any known address txHash: %s", inboundHash) } - return "", fmt.Errorf("no event found for tx %s", inboundHash) + + if confirmationMessage != "" { + return fmt.Sprintf("ballot idetifier %s warning :%s", msg.Digest(), confirmationMessage), nil + } + return fmt.Sprintf("ballot idetifier: %s", msg.Digest()), nil } func getEvmTx( @@ -276,7 +289,7 @@ func gasVoteV1( func depositInboundVoteV2(event *gatewayevm.GatewayEVMDeposited, senderChainID int64, - zetacoreChainID int64) crosschaintypes.MsgVoteInbound { + zetacoreChainID int64) *crosschaintypes.MsgVoteInbound { // if event.Asset is zero, it's a native token coinType := coin.CoinType_ERC20 if crypto.IsEmptyAddress(event.Asset) { @@ -289,7 +302,7 @@ func depositInboundVoteV2(event *gatewayevm.GatewayEVMDeposited, isCrossChainCall = true } - return *crosschaintypes.NewMsgVoteInbound( + return crosschaintypes.NewMsgVoteInbound( "", event.Sender.Hex(), senderChainID, @@ -313,14 +326,14 @@ func depositInboundVoteV2(event *gatewayevm.GatewayEVMDeposited, func depositAndCallInboundVoteV2(event *gatewayevm.GatewayEVMDepositedAndCalled, senderChainID int64, - zetacoreChainID int64) crosschaintypes.MsgVoteInbound { + zetacoreChainID int64) *crosschaintypes.MsgVoteInbound { // if event.Asset is zero, it's a native token coinType := coin.CoinType_ERC20 if crypto.IsEmptyAddress(event.Asset) { coinType = coin.CoinType_Gas } - return *crosschaintypes.NewMsgVoteInbound( + return crosschaintypes.NewMsgVoteInbound( "", event.Sender.Hex(), senderChainID, @@ -344,8 +357,8 @@ func depositAndCallInboundVoteV2(event *gatewayevm.GatewayEVMDepositedAndCalled, func callInboundVoteV2(event *gatewayevm.GatewayEVMCalled, senderChainID int64, - zetacoreChainID int64) crosschaintypes.MsgVoteInbound { - return *crosschaintypes.NewMsgVoteInbound( + zetacoreChainID int64) *crosschaintypes.MsgVoteInbound { + return crosschaintypes.NewMsgVoteInbound( "", event.Sender.Hex(), senderChainID, diff --git a/cmd/zetatool/inbound/inbound.go b/cmd/zetatool/inbound/inbound.go index cc1954b916..2d71990103 100644 --- a/cmd/zetatool/inbound/inbound.go +++ b/cmd/zetatool/inbound/inbound.go @@ -53,10 +53,10 @@ func GetBallotIdentifier(inboundHash string, inboundChainID int64, configFile st } ctx := context.Background() - ballotIdentifier := "" + ballotIdentifierMessage := "" if observationChain.IsEVMChain() { - ballotIdentifier, err = evmInboundBallotIdentifier( + ballotIdentifierMessage, err = evmInboundBallotIdentifier( ctx, *cfg, zetacoreClient, @@ -74,7 +74,7 @@ func GetBallotIdentifier(inboundHash string, inboundChainID int64, configFile st } if observationChain.IsBitcoinChain() { - ballotIdentifier, err = btcInboundBallotIdentifier( + ballotIdentifierMessage, err = btcInboundBallotIdentifier( *cfg, zetacoreClient, inboundHash, @@ -91,7 +91,7 @@ func GetBallotIdentifier(inboundHash string, inboundChainID int64, configFile st } if observationChain.IsSolanaChain() { - ballotIdentifier, err = solanaInboundBallotIdentifier( + ballotIdentifierMessage, err = solanaInboundBallotIdentifier( ctx, *cfg, zetacoreClient, @@ -108,6 +108,6 @@ func GetBallotIdentifier(inboundHash string, inboundChainID int64, configFile st } } - log.Info().Msgf("Ballot Identifier: %s", ballotIdentifier) + log.Info().Msgf(ballotIdentifierMessage) return nil } diff --git a/cmd/zetatool/inbound/solana.go b/cmd/zetatool/inbound/solana.go index 3a5911fe69..4f091ecf6e 100644 --- a/cmd/zetatool/inbound/solana.go +++ b/cmd/zetatool/inbound/solana.go @@ -3,7 +3,6 @@ package inbound import ( "context" "encoding/hex" - "errors" "fmt" cosmosmath "cosmossdk.io/math" @@ -57,16 +56,17 @@ func solanaInboundBallotIdentifier(ctx context.Context, inboundChain.ChainId, ) + msg := &crosschaintypes.MsgVoteInbound{} + // build inbound vote message from events and post to zetacore for _, event := range events { - msg, err := voteMsgFromSolEvent(event, zetaChainID) + msg, err = voteMsgFromSolEvent(event, zetaChainID) if err != nil { return "", fmt.Errorf("failed to create vote message: %w", err) } - return msg.Digest(), nil } - return "", errors.New("no inbound vote message found") + return fmt.Sprintf("ballot idetifier: %s", msg.Digest()), nil } // voteMsgFromSolEvent builds a MsgVoteInbound from an inbound event From f4747987690b204c8a73d9c38c075431f8ad4319 Mon Sep 17 00:00:00 2001 From: Tanmay Date: Fri, 17 Jan 2025 16:56:48 -0500 Subject: [PATCH 10/22] fix spellings --- cmd/zetatool/inbound/bitcoin.go | 6 +++--- cmd/zetatool/inbound/evm.go | 14 ++++++-------- cmd/zetatool/inbound/inbound.go | 6 +++--- cmd/zetatool/inbound/solana.go | 4 ++-- 4 files changed, 14 insertions(+), 16 deletions(-) diff --git a/cmd/zetatool/inbound/bitcoin.go b/cmd/zetatool/inbound/bitcoin.go index d403489c8c..9fd1065a5b 100644 --- a/cmd/zetatool/inbound/bitcoin.go +++ b/cmd/zetatool/inbound/bitcoin.go @@ -90,7 +90,7 @@ func bitcoinBallotIdentifier( return "", err } if tx.Confirmations < confirmationCount { - confirmationMessage = fmt.Sprintf("tx might not confirmed on chain %d", senderChainID) + confirmationMessage = fmt.Sprintf("tx might not be confirmed on chain %d", senderChainID) } blockHash, err := chainhash.NewHashFromStr(tx.BlockHash) @@ -162,9 +162,9 @@ func identifierFromBtcEvent(event *zetaclientObserver.BTCInboundEvent, index := msg.Digest() if confirmationMessage != "" { - return fmt.Sprintf("ballot idetifier %s warning :%s", index, confirmationMessage), nil + return fmt.Sprintf("ballot identifier %s warning :%s", index, confirmationMessage), nil } - return fmt.Sprintf("ballot idetifier: %s", msg.Digest()), nil + return fmt.Sprintf("ballot identifier: %s", msg.Digest()), nil } // NewInboundVoteFromLegacyMemo creates a MsgVoteInbound message for inbound that uses legacy memo diff --git a/cmd/zetatool/inbound/evm.go b/cmd/zetatool/inbound/evm.go index 99127794b1..dbd1336fea 100644 --- a/cmd/zetatool/inbound/evm.go +++ b/cmd/zetatool/inbound/evm.go @@ -12,7 +12,6 @@ import ( ethtypes "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/ethclient" ethrpc "github.com/ethereum/go-ethereum/rpc" - zetaclientrpc "github.com/zeta-chain/node/zetaclient/chains/evm/rpc" "github.com/zeta-chain/protocol-contracts/v1/pkg/contracts/evm/erc20custody.sol" "github.com/zeta-chain/protocol-contracts/v1/pkg/contracts/evm/zetaconnector.non-eth.sol" "github.com/zeta-chain/protocol-contracts/v2/pkg/gatewayevm.sol" @@ -25,6 +24,7 @@ import ( "github.com/zeta-chain/node/pkg/rpc" crosschaintypes "github.com/zeta-chain/node/x/crosschain/types" "github.com/zeta-chain/node/x/observer/types" + zetaclientrpc "github.com/zeta-chain/node/zetaclient/chains/evm/rpc" clienttypes "github.com/zeta-chain/node/zetaclient/types" "github.com/zeta-chain/node/zetaclient/zetacore" ) @@ -72,13 +72,13 @@ func evmInboundBallotIdentifier(ctx context.Context, tssEthAddress := res.GetEth() if tx.To() == nil { - return "", fmt.Errorf("invalid trasnaction,to field is empty %s", inboundHash) + return "", fmt.Errorf("invalid transaction,to field is empty %s", inboundHash) } confirmationMessage := "" confirmed, err := zetaclientrpc.IsTxConfirmed(ctx, evmClient, inboundHash, chainParams.ConfirmationCount) if err != nil { - return "", fmt.Errorf("unbale to confirm tx %s", err.Error()) + return "", fmt.Errorf("unable to confirm tx %s", err.Error()) } if !confirmed { confirmationMessage = fmt.Sprintf("tx might not confirmed on chain %d", inboundChain.ChainId) @@ -117,7 +117,6 @@ func evmInboundBallotIdentifier(ctx context.Context, zetaDeposited, err := custody.ParseDeposited(*log) if err == nil && zetaDeposited != nil { msg = erc20VoteV1(zetaDeposited, sender, inboundChain.ChainId, zetaChainID) - } } } @@ -131,7 +130,6 @@ func evmInboundBallotIdentifier(ctx context.Context, return "", fmt.Errorf("failed to get tx sender %s", err.Error()) } msg = gasVoteV1(tx, sender, receipt.BlockNumber.Uint64(), inboundChain.ChainId, zetaChainID) - } case chainParams.GatewayAddress: { @@ -161,13 +159,13 @@ func evmInboundBallotIdentifier(ctx context.Context, } } default: - return "", fmt.Errorf("irrelevant trasnaction , not sent to any known address txHash: %s", inboundHash) + return "", fmt.Errorf("irrelevant transaction , not sent to any known address txHash: %s", inboundHash) } if confirmationMessage != "" { - return fmt.Sprintf("ballot idetifier %s warning :%s", msg.Digest(), confirmationMessage), nil + return fmt.Sprintf("ballot identifier %s warning :%s", msg.Digest(), confirmationMessage), nil } - return fmt.Sprintf("ballot idetifier: %s", msg.Digest()), nil + return fmt.Sprintf("ballot identifier: %s", msg.Digest()), nil } func getEvmTx( diff --git a/cmd/zetatool/inbound/inbound.go b/cmd/zetatool/inbound/inbound.go index 2d71990103..d3ea6177f3 100644 --- a/cmd/zetatool/inbound/inbound.go +++ b/cmd/zetatool/inbound/inbound.go @@ -39,17 +39,17 @@ func GetInboundBallot(cmd *cobra.Command, args []string) error { func GetBallotIdentifier(inboundHash string, inboundChainID int64, configFile string) error { observationChain, found := chains.GetChainFromChainID(inboundChainID, []chains.Chain{}) if !found { - return fmt.Errorf("chain not supported,chain id : %d", inboundChainID) + return fmt.Errorf("chain not supported,chain id: %d", inboundChainID) } cfg, err := config.GetConfig(observationChain, configFile) if err != nil { - return fmt.Errorf("failed to get config, %s", err.Error()) + return fmt.Errorf("failed to get config: %s", err.Error()) } zetacoreClient, err := zetacorerpc.NewCometBFTClients(cfg.ZetaChainRPC) if err != nil { - return fmt.Errorf("failed to create zetacore client, %s", err.Error()) + return fmt.Errorf("failed to create zetacore client: %s", err.Error()) } ctx := context.Background() diff --git a/cmd/zetatool/inbound/solana.go b/cmd/zetatool/inbound/solana.go index 4f091ecf6e..63b3b68eab 100644 --- a/cmd/zetatool/inbound/solana.go +++ b/cmd/zetatool/inbound/solana.go @@ -45,7 +45,7 @@ func solanaInboundBallotIdentifier(ctx context.Context, gatewayID, _, err := solanacontracts.ParseGatewayWithPDA(chainParams.GatewayAddress) if err != nil { - return "", fmt.Errorf("cannot parse gateway address %s , errr %s", chainParams.GatewayAddress, err.Error()) + return "", fmt.Errorf("cannot parse gateway address %s , err %s", chainParams.GatewayAddress, err.Error()) } logger := &base.ObserverLogger{} @@ -66,7 +66,7 @@ func solanaInboundBallotIdentifier(ctx context.Context, } } - return fmt.Sprintf("ballot idetifier: %s", msg.Digest()), nil + return fmt.Sprintf("ballot identifier: %s", msg.Digest()), nil } // voteMsgFromSolEvent builds a MsgVoteInbound from an inbound event From 1e3c69c04e2584179e8a9df248ed329659100c6b Mon Sep 17 00:00:00 2001 From: Tanmay Date: Fri, 17 Jan 2025 17:13:24 -0500 Subject: [PATCH 11/22] fix format for error messages --- cmd/zetatool/inbound/bitcoin.go | 18 +++++++++--------- cmd/zetatool/inbound/evm.go | 29 +++++++++++++---------------- cmd/zetatool/inbound/inbound.go | 18 +++++++++--------- cmd/zetatool/inbound/solana.go | 6 +++--- 4 files changed, 34 insertions(+), 37 deletions(-) diff --git a/cmd/zetatool/inbound/bitcoin.go b/cmd/zetatool/inbound/bitcoin.go index 9fd1065a5b..e7b8146a8a 100644 --- a/cmd/zetatool/inbound/bitcoin.go +++ b/cmd/zetatool/inbound/bitcoin.go @@ -30,7 +30,7 @@ func btcInboundBallotIdentifier( zetaChainID int64) (string, error) { params, err := chains.BitcoinNetParamsFromChainID(inboundChain.ChainId) if err != nil { - return "", fmt.Errorf("unable to get bitcoin net params from chain id: %s", err) + return "", fmt.Errorf("unable to get bitcoin net params from chain id: %w", err) } connCfg := &rpcclient.ConnConfig{ @@ -43,22 +43,22 @@ func btcInboundBallotIdentifier( } rpcClient, err := rpcclient.New(connCfg, nil) if err != nil { - return "", fmt.Errorf("error creating rpc client: %s", err) + return "", fmt.Errorf("error creating rpc client: %w", err) } err = rpcClient.Ping() if err != nil { - return "", fmt.Errorf("error ping the bitcoin server: %s", err) + return "", fmt.Errorf("error ping the bitcoin server: %w", err) } res, err := zetacoreClient.Observer.GetTssAddress(context.Background(), &types.QueryGetTssAddressRequest{}) if err != nil { - return "", fmt.Errorf("failed to get tss address %s", err.Error()) + return "", fmt.Errorf("failed to get tss address %w", err) } tssBtcAddress := res.GetBtc() chainParams, err := zetacoreClient.GetChainParamsForChainID(context.Background(), inboundChain.ChainId) if err != nil { - return "", fmt.Errorf("failed to get chain params %s", err.Error()) + return "", fmt.Errorf("failed to get chain params: %w", err) } return bitcoinBallotIdentifier( @@ -119,7 +119,7 @@ func bitcoinBallotIdentifier( common.CalcDepositorFee, ) if err != nil { - return "", fmt.Errorf("error getting btc event: %s", err) + return "", fmt.Errorf("error getting btc event: %w", err) } if event == nil { @@ -135,13 +135,13 @@ func identifierFromBtcEvent(event *zetaclientObserver.BTCInboundEvent, // decode event memo bytes err := event.DecodeMemoBytes(senderChainID) if err != nil { - return "", fmt.Errorf("error decoding memo bytes: %s", err) + return "", fmt.Errorf("error decoding memo bytes: %w", err) } // convert the amount to integer (satoshis) amountSats, err := common.GetSatoshis(event.Value) if err != nil { - return "", fmt.Errorf("error converting amount to satoshis: %s", err) + return "", fmt.Errorf("error converting amount to satoshis: %w", err) } amountInt := big.NewInt(amountSats) @@ -162,7 +162,7 @@ func identifierFromBtcEvent(event *zetaclientObserver.BTCInboundEvent, index := msg.Digest() if confirmationMessage != "" { - return fmt.Sprintf("ballot identifier %s warning :%s", index, confirmationMessage), nil + return fmt.Sprintf("ballot identifier: %s warning: %s", index, confirmationMessage), nil } return fmt.Sprintf("ballot identifier: %s", msg.Digest()), nil } diff --git a/cmd/zetatool/inbound/evm.go b/cmd/zetatool/inbound/evm.go index dbd1336fea..445be79ca4 100644 --- a/cmd/zetatool/inbound/evm.go +++ b/cmd/zetatool/inbound/evm.go @@ -50,24 +50,24 @@ func evmInboundBallotIdentifier(ctx context.Context, } rpcClient, err := ethrpc.DialHTTP(evmRRC) if err != nil { - return "", fmt.Errorf("failed to connect to eth rpc %s", err.Error()) + return "", fmt.Errorf("failed to connect to eth rpc: %w", err) } evmClient := ethclient.NewClient(rpcClient) // create evm client for the observation chain tx, receipt, err := getEvmTx(ctx, evmClient, inboundHash, inboundChain) if err != nil { - return "", fmt.Errorf("failed to get tx %s", err.Error()) + return "", fmt.Errorf("failed to get tx: %w", err) } chainParams, err := zetacoreClient.GetChainParamsForChainID(context.Background(), inboundChain.ChainId) if err != nil { - return "", fmt.Errorf("failed to get chain params %s", err.Error()) + return "", fmt.Errorf("failed to get chain params: %w", err) } res, err := zetacoreClient.Observer.GetTssAddress(context.Background(), &types.QueryGetTssAddressRequest{}) if err != nil { - return "", fmt.Errorf("failed to get tss address %s", err.Error()) + return "", fmt.Errorf("failed to get tss address: %w", err) } tssEthAddress := res.GetEth() @@ -78,10 +78,10 @@ func evmInboundBallotIdentifier(ctx context.Context, confirmationMessage := "" confirmed, err := zetaclientrpc.IsTxConfirmed(ctx, evmClient, inboundHash, chainParams.ConfirmationCount) if err != nil { - return "", fmt.Errorf("unable to confirm tx %s", err.Error()) + return "", fmt.Errorf("unable to confirm tx: %w", err) } if !confirmed { - confirmationMessage = fmt.Sprintf("tx might not confirmed on chain %d", inboundChain.ChainId) + confirmationMessage = fmt.Sprintf("tx might not be confirmed on chain %d", inboundChain.ChainId) } msg := &crosschaintypes.MsgVoteInbound{} @@ -93,7 +93,7 @@ func evmInboundBallotIdentifier(ctx context.Context, addrConnector := ethcommon.HexToAddress(chainParams.ConnectorContractAddress) connector, err := zetaconnector.NewZetaConnectorNonEth(addrConnector, evmClient) if err != nil { - return "", fmt.Errorf("failed to get connector contract %s", err.Error()) + return "", fmt.Errorf("failed to get connector contract: %w", err) } for _, log := range receipt.Logs { event, err := connector.ParseZetaSent(*log) @@ -107,11 +107,11 @@ func evmInboundBallotIdentifier(ctx context.Context, addrCustody := ethcommon.HexToAddress(chainParams.Erc20CustodyContractAddress) custody, err := erc20custody.NewERC20Custody(addrCustody, evmClient) if err != nil { - return "", fmt.Errorf("failed to get custody contract %s", err.Error()) + return "", fmt.Errorf("failed to get custody contract: %w", err) } sender, err := evmClient.TransactionSender(ctx, tx, receipt.BlockHash, receipt.TransactionIndex) if err != nil { - return "", fmt.Errorf("failed to get tx sender %s", err.Error()) + return "", fmt.Errorf("failed to get tx sender: %w", err) } for _, log := range receipt.Logs { zetaDeposited, err := custody.ParseDeposited(*log) @@ -127,7 +127,7 @@ func evmInboundBallotIdentifier(ctx context.Context, } sender, err := evmClient.TransactionSender(ctx, tx, receipt.BlockHash, receipt.TransactionIndex) if err != nil { - return "", fmt.Errorf("failed to get tx sender %s", err.Error()) + return "", fmt.Errorf("failed to get tx sender: %w", err) } msg = gasVoteV1(tx, sender, receipt.BlockNumber.Uint64(), inboundChain.ChainId, zetaChainID) } @@ -136,7 +136,7 @@ func evmInboundBallotIdentifier(ctx context.Context, gatewayAddr := ethcommon.HexToAddress(chainParams.GatewayAddress) gateway, err := gatewayevm.NewGatewayEVM(gatewayAddr, evmClient) if err != nil { - return "", fmt.Errorf("failed to get gateway contract %s", err.Error()) + return "", fmt.Errorf("failed to get gateway contract: %w", err) } for _, log := range receipt.Logs { if log == nil || log.Address != gatewayAddr { @@ -178,14 +178,14 @@ func getEvmTx( hash := ethcommon.HexToHash(inboundHash) tx, isPending, err := evmClient.TransactionByHash(ctx, hash) if err != nil { - return nil, nil, fmt.Errorf("tx not found on chain %s, %d", err.Error(), inboundChain.ChainId) + return nil, nil, fmt.Errorf("tx not found on chain: %w,chainID: %d", err, inboundChain.ChainId) } if isPending { return nil, nil, fmt.Errorf("tx is still pending on chain %d", inboundChain.ChainId) } receipt, err := evmClient.TransactionReceipt(ctx, hash) if err != nil { - return nil, nil, fmt.Errorf("failed to get receipt %s , tx hash %s", err.Error(), inboundHash) + return nil, nil, fmt.Errorf("failed to get receipt: %w, tx hash: %s", err, inboundHash) } return tx, receipt, nil } @@ -197,7 +197,6 @@ func zetaTokenVoteV1( // note that this is most likely zeta chain destChain, found := chains.GetChainFromChainID(event.DestinationChainId.Int64(), []chains.Chain{}) if !found { - fmt.Println("Not found") return nil } @@ -260,8 +259,6 @@ func gasVoteV1( zetacoreChainID int64, ) *crosschaintypes.MsgVoteInbound { message := string(tx.Data()) - // donation check - // #nosec G703 err is already checked data, _ := hex.DecodeString(message) if bytes.Equal(data, []byte(constant.DonationMessage)) { return nil diff --git a/cmd/zetatool/inbound/inbound.go b/cmd/zetatool/inbound/inbound.go index d3ea6177f3..dc11bda4d7 100644 --- a/cmd/zetatool/inbound/inbound.go +++ b/cmd/zetatool/inbound/inbound.go @@ -30,7 +30,7 @@ func GetInboundBallot(cmd *cobra.Command, args []string) error { } configFile, err := cmd.Flags().GetString(config.FlagConfig) if err != nil { - return fmt.Errorf("failed to read value for flag %s , err %s", config.FlagConfig, err.Error()) + return fmt.Errorf("failed to read value for flag %s , err %w", config.FlagConfig, err) } return GetBallotIdentifier(inboundHash, inboundChainID, configFile) @@ -44,12 +44,12 @@ func GetBallotIdentifier(inboundHash string, inboundChainID int64, configFile st cfg, err := config.GetConfig(observationChain, configFile) if err != nil { - return fmt.Errorf("failed to get config: %s", err.Error()) + return fmt.Errorf("failed to get config: %w", err) } zetacoreClient, err := zetacorerpc.NewCometBFTClients(cfg.ZetaChainRPC) if err != nil { - return fmt.Errorf("failed to create zetacore client: %s", err.Error()) + return fmt.Errorf("failed to create zetacore client: %w", err) } ctx := context.Background() @@ -66,9 +66,9 @@ func GetBallotIdentifier(inboundHash string, inboundChainID int64, configFile st ) if err != nil { return fmt.Errorf( - "failed to get inbound ballot for evm chain %d, %s", + "failed to get inbound ballot for evm chain %d, %w", observationChain.ChainId, - err.Error(), + err, ) } } @@ -83,9 +83,9 @@ func GetBallotIdentifier(inboundHash string, inboundChainID int64, configFile st ) if err != nil { return fmt.Errorf( - "failed to get inbound ballot for bitcoin chain %d, %s", + "failed to get inbound ballot for bitcoin chain %d, %w", observationChain.ChainId, - err.Error(), + err, ) } } @@ -101,9 +101,9 @@ func GetBallotIdentifier(inboundHash string, inboundChainID int64, configFile st ) if err != nil { return fmt.Errorf( - "failed to get inbound ballot for solana chain %d, %s", + "failed to get inbound ballot for solana chain %d, %w", observationChain.ChainId, - err.Error(), + err, ) } } diff --git a/cmd/zetatool/inbound/solana.go b/cmd/zetatool/inbound/solana.go index 63b3b68eab..41eb1b18b0 100644 --- a/cmd/zetatool/inbound/solana.go +++ b/cmd/zetatool/inbound/solana.go @@ -35,17 +35,17 @@ func solanaInboundBallotIdentifier(ctx context.Context, txResult, err := solanarpc.GetTransaction(ctx, solClient, signature) if err != nil { - return "", fmt.Errorf("error getting transaction: %s", err) + return "", fmt.Errorf("error getting transaction: %w", err) } chainParams, err := zetacoreClient.GetChainParamsForChainID(context.Background(), inboundChain.ChainId) if err != nil { - return "", fmt.Errorf("failed to get chain params %s", err.Error()) + return "", fmt.Errorf("failed to get chain params %w", err) } gatewayID, _, err := solanacontracts.ParseGatewayWithPDA(chainParams.GatewayAddress) if err != nil { - return "", fmt.Errorf("cannot parse gateway address %s , err %s", chainParams.GatewayAddress, err.Error()) + return "", fmt.Errorf("cannot parse gateway address %s, err %w", chainParams.GatewayAddress, err) } logger := &base.ObserverLogger{} From 0ea2c4a05026f7b7b9aa8f010645dfdfaf46a5fc Mon Sep 17 00:00:00 2001 From: Tanmay Date: Sat, 18 Jan 2025 17:03:07 -0500 Subject: [PATCH 12/22] add sample config and update btc client --- cmd/zetatool/README.md | 2 +- cmd/zetatool/config/config.go | 32 +++++++-------- cmd/zetatool/config/config_test.go | 55 ++++++++++++++++++++++++++ cmd/zetatool/config/sample_config.json | 13 ++++++ cmd/zetatool/inbound/bitcoin.go | 35 +++++++++------- cmd/zetatool/inbound/evm.go | 6 +-- cmd/zetatool/inbound/inbound.go | 10 +++++ cmd/zetatool/inbound/solana.go | 13 ++++-- 8 files changed, 127 insertions(+), 39 deletions(-) create mode 100644 cmd/zetatool/config/config_test.go create mode 100644 cmd/zetatool/config/sample_config.json diff --git a/cmd/zetatool/README.md b/cmd/zetatool/README.md index 18b849c7be..9df1d48850 100644 --- a/cmd/zetatool/README.md +++ b/cmd/zetatool/README.md @@ -24,7 +24,7 @@ get-ballot [inboundHash] [chainID] --config - `inboundHash`: The inbound hash of the transaction for which the ballot identifier is to be fetched - `chainID`: The chain ID of the chain to which the transaction belongs -- `--config`: [Optional]The path to the configuration file. When not provided, the default configuration is used +- `--config`: [Optional]The path to the configuration file. When not provided, the default configuration is used. A sample config is provided in the `config` directory. The command returns a ballot identifier for the given inbound hash. diff --git a/cmd/zetatool/config/config.go b/cmd/zetatool/config/config.go index adbc79a397..706bb37dc1 100644 --- a/cmd/zetatool/config/config.go +++ b/cmd/zetatool/config/config.go @@ -2,6 +2,7 @@ package config import ( "encoding/json" + "os" "github.com/spf13/afero" @@ -26,7 +27,7 @@ func TestnetConfig() *Config { BtcParams: "", SolanaRPC: "", BscRPC: "https://bsc-testnet-rpc.publicnode.com", - PolygonRPC: "https://polygon-amoy.gateway.tenderly.co", + PolygonRPC: "https://polygon-amoy.gateway.tenderly.com", BaseRPC: "https://base-sepolia-rpc.publicnode.com", } } @@ -78,17 +79,17 @@ func PrivateNetConfig() *Config { // Config is a struct the defines the configuration fields used by zetatool type Config struct { - ZetaChainRPC string - ZetaChainID int64 - EthereumRPC string - BtcUser string - BtcPassword string - BtcHost string - BtcParams string - SolanaRPC string - BscRPC string - PolygonRPC string - BaseRPC string + ZetaChainRPC string `json:"zeta_chain_rpc"` + ZetaChainID int64 `json:"zeta_chain_id"` + EthereumRPC string `json:"ethereum_rpc"` + BtcUser string `json:"btc_user"` + BtcPassword string `json:"btc_password"` + BtcHost string `json:"btc_host"` + BtcParams string `json:"btc_params"` + SolanaRPC string `json:"solana_rpc"` + BscRPC string `json:"bsc_rpc"` + PolygonRPC string `json:"polygon_rpc"` + BaseRPC string `json:"base_rpc"` } func (c *Config) Save() error { @@ -99,9 +100,8 @@ func (c *Config) Save() error { err = afero.WriteFile(AppFs, defaultCfgFileName, file, 0600) return err } - func (c *Config) Read(filename string) error { - data, err := afero.ReadFile(AppFs, filename) + data, err := os.ReadFile(filename) if err != nil { return err } @@ -110,7 +110,7 @@ func (c *Config) Read(filename string) error { } func GetConfig(chain chains.Chain, filename string) (*Config, error) { - //Check if cfgFile is empty, if so return default Config and save to file + //Check if cfgFile is empty, if so return default Config based on network type if filename == "" { return map[chains.NetworkType]*Config{ chains.NetworkType_mainnet: MainnetConfig(), @@ -120,7 +120,7 @@ func GetConfig(chain chains.Chain, filename string) (*Config, error) { }[chain.NetworkType], nil } - //if file is specified, open file and return struct + //if a file is specified, use the config in the file cfg := &Config{} err := cfg.Read(filename) return cfg, err diff --git a/cmd/zetatool/config/config_test.go b/cmd/zetatool/config/config_test.go new file mode 100644 index 0000000000..8640fa7939 --- /dev/null +++ b/cmd/zetatool/config/config_test.go @@ -0,0 +1,55 @@ +package config_test + +import ( + "testing" + + "github.com/stretchr/testify/require" + "github.com/zeta-chain/node/cmd/zetatool/config" + "github.com/zeta-chain/node/pkg/chains" +) + +func TestRead(t *testing.T) { + t.Run("TestRead", func(t *testing.T) { + c := config.Config{} + err := c.Read("sample_config.json") + require.NoError(t, err) + + require.Equal(t, "https://zetachain-testnet-grpc.itrocket.net:443", c.ZetaChainRPC) + require.Equal(t, "https://ethereum-sepolia-rpc.publicnode.com", c.EthereumRPC) + require.Equal(t, int64(101), c.ZetaChainID) + require.Equal(t, "", c.BtcUser) + require.Equal(t, "", c.BtcPassword) + require.Equal(t, "", c.BtcHost) + require.Equal(t, "", c.BtcParams) + require.Equal(t, "", c.SolanaRPC) + require.Equal(t, "https://bsc-testnet-rpc.publicnode.com", c.BscRPC) + require.Equal(t, "https://polygon-amoy.gateway.tenderly.com", c.PolygonRPC) + require.Equal(t, "https://base-sepolia-rpc.publicnode.com", c.BaseRPC) + }) +} + +func TestGetConfig(t *testing.T) { + t.Run("Get default config if not specified", func(t *testing.T) { + cfg, err := config.GetConfig(chains.Ethereum, "") + require.NoError(t, err) + require.Equal(t, "https://zetachain-mainnet.g.allthatnode.com:443/archive/tendermint", cfg.ZetaChainRPC) + + cfg, err = config.GetConfig(chains.Sepolia, "") + require.NoError(t, err) + require.Equal(t, "https://zetachain-testnet-grpc.itrocket.net:443", cfg.ZetaChainRPC) + + cfg, err = config.GetConfig(chains.GoerliLocalnet, "") + require.NoError(t, err) + require.Equal(t, "http://127.0.0.1:26657", cfg.ZetaChainRPC) + }) + + t.Run("Get config from file if specified", func(t *testing.T) { + cfg, err := config.GetConfig(chains.Ethereum, "sample_config.json") + require.NoError(t, err) + require.Equal(t, "https://zetachain-testnet-grpc.itrocket.net:443", cfg.ZetaChainRPC) + + cfg, err = config.GetConfig(chains.Sepolia, "sample_config.json") + require.NoError(t, err) + require.Equal(t, "https://zetachain-testnet-grpc.itrocket.net:443", cfg.ZetaChainRPC) + }) +} diff --git a/cmd/zetatool/config/sample_config.json b/cmd/zetatool/config/sample_config.json new file mode 100644 index 0000000000..ca15d85fa3 --- /dev/null +++ b/cmd/zetatool/config/sample_config.json @@ -0,0 +1,13 @@ +{ + "zeta_chain_rpc": "https://zetachain-testnet-grpc.itrocket.net:443", + "zeta_chain_id": 101, + "ethereum_rpc": "https://ethereum-sepolia-rpc.publicnode.com", + "btc_user": "", + "btc_password": "", + "btc_host": "", + "btc_params": "", + "solana_rpc": "", + "bsc_rpc": "https://bsc-testnet-rpc.publicnode.com", + "polygon_rpc": "https://polygon-amoy.gateway.tenderly.com", + "base_rpc": "https://base-sepolia-rpc.publicnode.com" +} \ No newline at end of file diff --git a/cmd/zetatool/inbound/bitcoin.go b/cmd/zetatool/inbound/bitcoin.go index e7b8146a8a..25e14100e1 100644 --- a/cmd/zetatool/inbound/bitcoin.go +++ b/cmd/zetatool/inbound/bitcoin.go @@ -9,7 +9,6 @@ import ( cosmosmath "cosmossdk.io/math" "github.com/btcsuite/btcd/chaincfg" "github.com/btcsuite/btcd/chaincfg/chainhash" - "github.com/btcsuite/btcd/rpcclient" "github.com/rs/zerolog" "github.com/zeta-chain/node/cmd/zetatool/config" @@ -18,35 +17,38 @@ import ( "github.com/zeta-chain/node/pkg/rpc" crosschaintypes "github.com/zeta-chain/node/x/crosschain/types" "github.com/zeta-chain/node/x/observer/types" + "github.com/zeta-chain/node/zetaclient/chains/bitcoin/client" "github.com/zeta-chain/node/zetaclient/chains/bitcoin/common" zetaclientObserver "github.com/zeta-chain/node/zetaclient/chains/bitcoin/observer" + zetaclientConfig "github.com/zeta-chain/node/zetaclient/config" ) func btcInboundBallotIdentifier( + ctx context.Context, cfg config.Config, zetacoreClient rpc.Clients, inboundHash string, inboundChain chains.Chain, - zetaChainID int64) (string, error) { + zetaChainID int64, + logger zerolog.Logger) (string, error) { params, err := chains.BitcoinNetParamsFromChainID(inboundChain.ChainId) if err != nil { return "", fmt.Errorf("unable to get bitcoin net params from chain id: %w", err) } - connCfg := &rpcclient.ConnConfig{ - Host: cfg.BtcHost, - User: cfg.BtcUser, - Pass: cfg.BtcPassword, - HTTPPostMode: true, - DisableTLS: true, - Params: params.Name, + connCfg := zetaclientConfig.BTCConfig{ + RPCUsername: cfg.BtcUser, + RPCPassword: cfg.BtcPassword, + RPCHost: cfg.BtcHost, + RPCParams: params.Name, } - rpcClient, err := rpcclient.New(connCfg, nil) + + rpcClient, err := client.New(connCfg, inboundChain.ChainId, logger) if err != nil { - return "", fmt.Errorf("error creating rpc client: %w", err) + return "", fmt.Errorf("unable to create rpc client: %w", err) } - err = rpcClient.Ping() + err = rpcClient.Ping(ctx) if err != nil { return "", fmt.Errorf("error ping the bitcoin server: %w", err) } @@ -62,6 +64,7 @@ func btcInboundBallotIdentifier( } return bitcoinBallotIdentifier( + ctx, rpcClient, params, tssBtcAddress, @@ -73,7 +76,8 @@ func btcInboundBallotIdentifier( } func bitcoinBallotIdentifier( - btcClient *rpcclient.Client, + ctx context.Context, + btcClient *client.Client, params *chaincfg.Params, tss string, txHash string, @@ -85,7 +89,7 @@ func bitcoinBallotIdentifier( return "", err } confirmationMessage := "" - tx, err := btcClient.GetRawTransactionVerbose(hash) + tx, err := btcClient.GetRawTransactionVerbose(ctx, hash) if err != nil { return "", err } @@ -98,7 +102,7 @@ func bitcoinBallotIdentifier( return "", err } - blockVb, err := btcClient.GetBlockVerboseTx(blockHash) + blockVb, err := btcClient.GetBlockVerbose(ctx, blockHash) if err != nil { return "", err } @@ -110,6 +114,7 @@ func bitcoinBallotIdentifier( // #nosec G115 always positive event, err := zetaclientObserver.GetBtcEvent( + ctx, btcClient, *tx, tss, diff --git a/cmd/zetatool/inbound/evm.go b/cmd/zetatool/inbound/evm.go index 445be79ca4..ff314f6661 100644 --- a/cmd/zetatool/inbound/evm.go +++ b/cmd/zetatool/inbound/evm.go @@ -12,9 +12,9 @@ import ( ethtypes "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/ethclient" ethrpc "github.com/ethereum/go-ethereum/rpc" - "github.com/zeta-chain/protocol-contracts/v1/pkg/contracts/evm/erc20custody.sol" - "github.com/zeta-chain/protocol-contracts/v1/pkg/contracts/evm/zetaconnector.non-eth.sol" - "github.com/zeta-chain/protocol-contracts/v2/pkg/gatewayevm.sol" + "github.com/zeta-chain/protocol-contracts/pkg/erc20custody.sol" + "github.com/zeta-chain/protocol-contracts/pkg/gatewayevm.sol" + "github.com/zeta-chain/protocol-contracts/pkg/zetaconnector.non-eth.sol" "github.com/zeta-chain/node/cmd/zetatool/config" "github.com/zeta-chain/node/pkg/chains" diff --git a/cmd/zetatool/inbound/inbound.go b/cmd/zetatool/inbound/inbound.go index dc11bda4d7..f4804b9ec9 100644 --- a/cmd/zetatool/inbound/inbound.go +++ b/cmd/zetatool/inbound/inbound.go @@ -4,7 +4,9 @@ import ( "context" "fmt" "strconv" + "time" + "github.com/rs/zerolog" "github.com/rs/zerolog/log" "github.com/spf13/cobra" @@ -55,6 +57,11 @@ func GetBallotIdentifier(inboundHash string, inboundChainID int64, configFile st ctx := context.Background() ballotIdentifierMessage := "" + logger := zerolog.New(zerolog.ConsoleWriter{ + Out: zerolog.Nop(), + TimeFormat: time.RFC3339, + }).With().Timestamp().Logger() + if observationChain.IsEVMChain() { ballotIdentifierMessage, err = evmInboundBallotIdentifier( ctx, @@ -75,11 +82,13 @@ func GetBallotIdentifier(inboundHash string, inboundChainID int64, configFile st if observationChain.IsBitcoinChain() { ballotIdentifierMessage, err = btcInboundBallotIdentifier( + ctx, *cfg, zetacoreClient, inboundHash, observationChain, cfg.ZetaChainID, + logger, ) if err != nil { return fmt.Errorf( @@ -98,6 +107,7 @@ func GetBallotIdentifier(inboundHash string, inboundChainID int64, configFile st inboundHash, observationChain, cfg.ZetaChainID, + logger, ) if err != nil { return fmt.Errorf( diff --git a/cmd/zetatool/inbound/solana.go b/cmd/zetatool/inbound/solana.go index 41eb1b18b0..6aba2a3f1a 100644 --- a/cmd/zetatool/inbound/solana.go +++ b/cmd/zetatool/inbound/solana.go @@ -8,7 +8,7 @@ import ( cosmosmath "cosmossdk.io/math" "github.com/gagliardetto/solana-go" solrpc "github.com/gagliardetto/solana-go/rpc" - + "github.com/rs/zerolog" "github.com/zeta-chain/node/cmd/zetatool/config" "github.com/zeta-chain/node/pkg/chains" solanacontracts "github.com/zeta-chain/node/pkg/contracts/solana" @@ -17,6 +17,8 @@ import ( "github.com/zeta-chain/node/zetaclient/chains/base" "github.com/zeta-chain/node/zetaclient/chains/solana/observer" solanarpc "github.com/zeta-chain/node/zetaclient/chains/solana/rpc" + + //solanarpc "github.com/zeta-chain/node/zetaclient/chains/solana/rpc" clienttypes "github.com/zeta-chain/node/zetaclient/types" ) @@ -25,7 +27,8 @@ func solanaInboundBallotIdentifier(ctx context.Context, zetacoreClient rpc.Clients, inboundHash string, inboundChain chains.Chain, - zetaChainID int64) (string, error) { + zetaChainID int64, + logger zerolog.Logger) (string, error) { solClient := solrpc.New(cfg.SolanaRPC) if solClient == nil { return "", fmt.Errorf("error creating rpc client") @@ -48,10 +51,12 @@ func solanaInboundBallotIdentifier(ctx context.Context, return "", fmt.Errorf("cannot parse gateway address %s, err %w", chainParams.GatewayAddress, err) } - logger := &base.ObserverLogger{} + observerLogger := &base.ObserverLogger{ + Inbound: logger, + } events, err := observer.FilterSolanaInboundEvents(txResult, - logger, + observerLogger, gatewayID, inboundChain.ChainId, ) From 163b51f0cf1b7ef9f0dc176e89f354dab3298b8f Mon Sep 17 00:00:00 2001 From: Tanmay Date: Sat, 18 Jan 2025 17:18:38 -0500 Subject: [PATCH 13/22] add sample config and update btc client --- cmd/zetatool/inbound/bitcoin.go | 10 +--- cmd/zetatool/inbound/evm.go | 4 +- cmd/zetatool/inbound/inbound.go | 2 + cmd/zetatool/inbound/solana.go | 6 +- docs/cli/zetatool/filterdeposit.md | 29 ---------- .../cli/zetatool/overview.md | 4 +- docs/cli/zetatool/readme.md | 55 ------------------- 7 files changed, 11 insertions(+), 99 deletions(-) delete mode 100644 docs/cli/zetatool/filterdeposit.md rename cmd/zetatool/README.md => docs/cli/zetatool/overview.md (73%) delete mode 100644 docs/cli/zetatool/readme.md diff --git a/cmd/zetatool/inbound/bitcoin.go b/cmd/zetatool/inbound/bitcoin.go index 25e14100e1..585cbcc09b 100644 --- a/cmd/zetatool/inbound/bitcoin.go +++ b/cmd/zetatool/inbound/bitcoin.go @@ -54,7 +54,7 @@ func btcInboundBallotIdentifier( } res, err := zetacoreClient.Observer.GetTssAddress(context.Background(), &types.QueryGetTssAddressRequest{}) if err != nil { - return "", fmt.Errorf("failed to get tss address %w", err) + return "", fmt.Errorf("failed to get tss address: %w", err) } tssBtcAddress := res.GetBtc() @@ -94,7 +94,7 @@ func bitcoinBallotIdentifier( return "", err } if tx.Confirmations < confirmationCount { - confirmationMessage = fmt.Sprintf("tx might not be confirmed on chain %d", senderChainID) + confirmationMessage = fmt.Sprintf("tx might not be confirmed on chain: %d", senderChainID) } blockHash, err := chainhash.NewHashFromStr(tx.BlockHash) @@ -106,11 +106,6 @@ func bitcoinBallotIdentifier( if err != nil { return "", err } - - if len(blockVb.Tx) <= 1 { - return "", fmt.Errorf("block %d has no transactions", blockVb.Height) - } - // #nosec G115 always positive event, err := zetaclientObserver.GetBtcEvent( @@ -126,7 +121,6 @@ func bitcoinBallotIdentifier( if err != nil { return "", fmt.Errorf("error getting btc event: %w", err) } - if event == nil { return "", fmt.Errorf("no event built for btc sent to TSS") } diff --git a/cmd/zetatool/inbound/evm.go b/cmd/zetatool/inbound/evm.go index ff314f6661..9ab5fffbea 100644 --- a/cmd/zetatool/inbound/evm.go +++ b/cmd/zetatool/inbound/evm.go @@ -163,7 +163,7 @@ func evmInboundBallotIdentifier(ctx context.Context, } if confirmationMessage != "" { - return fmt.Sprintf("ballot identifier %s warning :%s", msg.Digest(), confirmationMessage), nil + return fmt.Sprintf("ballot identifier: %s warning: %s", msg.Digest(), confirmationMessage), nil } return fmt.Sprintf("ballot identifier: %s", msg.Digest()), nil } @@ -181,7 +181,7 @@ func getEvmTx( return nil, nil, fmt.Errorf("tx not found on chain: %w,chainID: %d", err, inboundChain.ChainId) } if isPending { - return nil, nil, fmt.Errorf("tx is still pending on chain %d", inboundChain.ChainId) + return nil, nil, fmt.Errorf("tx is still pending on chain: %d", inboundChain.ChainId) } receipt, err := evmClient.TransactionReceipt(ctx, hash) if err != nil { diff --git a/cmd/zetatool/inbound/inbound.go b/cmd/zetatool/inbound/inbound.go index f4804b9ec9..be5a923ae8 100644 --- a/cmd/zetatool/inbound/inbound.go +++ b/cmd/zetatool/inbound/inbound.go @@ -57,6 +57,8 @@ func GetBallotIdentifier(inboundHash string, inboundChainID int64, configFile st ctx := context.Background() ballotIdentifierMessage := "" + // logger is used when calling internal zetaclient functions which need a logger. + // we do not need to log those messages for this tool logger := zerolog.New(zerolog.ConsoleWriter{ Out: zerolog.Nop(), TimeFormat: time.RFC3339, diff --git a/cmd/zetatool/inbound/solana.go b/cmd/zetatool/inbound/solana.go index 6aba2a3f1a..292440be1c 100644 --- a/cmd/zetatool/inbound/solana.go +++ b/cmd/zetatool/inbound/solana.go @@ -9,6 +9,7 @@ import ( "github.com/gagliardetto/solana-go" solrpc "github.com/gagliardetto/solana-go/rpc" "github.com/rs/zerolog" + "github.com/zeta-chain/node/cmd/zetatool/config" "github.com/zeta-chain/node/pkg/chains" solanacontracts "github.com/zeta-chain/node/pkg/contracts/solana" @@ -17,7 +18,6 @@ import ( "github.com/zeta-chain/node/zetaclient/chains/base" "github.com/zeta-chain/node/zetaclient/chains/solana/observer" solanarpc "github.com/zeta-chain/node/zetaclient/chains/solana/rpc" - //solanarpc "github.com/zeta-chain/node/zetaclient/chains/solana/rpc" clienttypes "github.com/zeta-chain/node/zetaclient/types" ) @@ -43,12 +43,12 @@ func solanaInboundBallotIdentifier(ctx context.Context, chainParams, err := zetacoreClient.GetChainParamsForChainID(context.Background(), inboundChain.ChainId) if err != nil { - return "", fmt.Errorf("failed to get chain params %w", err) + return "", fmt.Errorf("failed to get chain params: %w", err) } gatewayID, _, err := solanacontracts.ParseGatewayWithPDA(chainParams.GatewayAddress) if err != nil { - return "", fmt.Errorf("cannot parse gateway address %s, err %w", chainParams.GatewayAddress, err) + return "", fmt.Errorf("cannot parse gateway address: %s, err: %w", chainParams.GatewayAddress, err) } observerLogger := &base.ObserverLogger{ diff --git a/docs/cli/zetatool/filterdeposit.md b/docs/cli/zetatool/filterdeposit.md deleted file mode 100644 index cec577a1e1..0000000000 --- a/docs/cli/zetatool/filterdeposit.md +++ /dev/null @@ -1,29 +0,0 @@ -# filterdeposit - -Filter missing inbound deposits - -### Synopsis - -Filters relevant inbound transactions for a given network and attempts to find an associated cctx from zetacore. If a -cctx is not found, the associated transaction hash and amount is added to a list and displayed. - -``` -zetatool filterdeposit [command] -``` -### Options - -``` -Available Commands: -btc Filter inbound btc deposits -eth Filter inbound eth deposits -``` - -### Flags -``` ---btc-chain-id string chain id used on zetachain to identify bitcoin - default: 8332 (default "8332") -``` - -### Options inherited from parent commands -``` ---config string custom config file: --config filename.json -``` \ No newline at end of file diff --git a/cmd/zetatool/README.md b/docs/cli/zetatool/overview.md similarity index 73% rename from cmd/zetatool/README.md rename to docs/cli/zetatool/overview.md index 9df1d48850..f95b505505 100644 --- a/cmd/zetatool/README.md +++ b/docs/cli/zetatool/overview.md @@ -19,12 +19,12 @@ Alternatively you can also use the target `make install-zetatool` ### Fetching the Ballot Identifier ```shell -get-ballot [inboundHash] [chainID] --config +zetatool get-ballot [inboundHash] [chainID] --config ``` - `inboundHash`: The inbound hash of the transaction for which the ballot identifier is to be fetched - `chainID`: The chain ID of the chain to which the transaction belongs -- `--config`: [Optional]The path to the configuration file. When not provided, the default configuration is used. A sample config is provided in the `config` directory. +- `config`: [Optional] The path to the configuration file. When not provided, the configuration in the file is user. A sample config is provided at `cmd/zetatool/config/sample_config.json` The command returns a ballot identifier for the given inbound hash. diff --git a/docs/cli/zetatool/readme.md b/docs/cli/zetatool/readme.md deleted file mode 100644 index 206e1eb5e5..0000000000 --- a/docs/cli/zetatool/readme.md +++ /dev/null @@ -1,55 +0,0 @@ -# Zeta Tool - -Currently, has only one subcommand which finds inbound transactions or deposits that weren't observed on a particular -network. `filterdeposit` - -## Configuring - -#### RPC endpoints -Configuring the tool for specific networks will require different reliable endpoints. For example, if you wanted to -configure an ethereum rpc endpoint, then you will have to find an evm rpc endpoint for eth mainnet and set the field: -`EthRPCURL` - -#### Zeta URL -You will need to find an endpoint for zetachain and set the field: `ZetaURL` - -#### Contract Addresses -Depending on the network, connector and custody contract addresses must be set using these fields: `ConnectorAddress`, -`CustodyAddress` - -If a configuration file is not provided, a default config will be generated under the name -`zetatool_config.json`. Below is an example of a configuration file used for mainnet: - -#### Etherscan API Key -In order to make requests to etherscan, an api key will need to be configured. - -``` -{ - "ZetaURL": "", - "BtcExplorerURL": "https://blockstream.info/api/", - "EthRPCURL": "https://ethereum-rpc.publicnode.com", - "EtherscanAPIkey": "", - "ConnectorAddress": "0x000007Cf399229b2f5A4D043F20E90C9C98B7C6a", - "CustodyAddress": "0x0000030Ec64DF25301d8414eE5a29588C4B0dE10" -} -``` - -## Running Tool - -There are two targets available: - -``` -filter-missed-btc: install-zetatool - ./tool/filter_missed_deposits/filter_missed_btc.sh - -filter-missed-eth: install-zetatool - ./tool/filter_missed_deposits/filter_missed_eth.sh -``` - -Running the commands can be simply done through the makefile in the node repo: - -``` -make filter-missed-btc -or ... -make filter-missed-eth -``` From a8560ea7e7e320a560f079d815e69430ff4d3b73 Mon Sep 17 00:00:00 2001 From: Tanmay Date: Sun, 19 Jan 2025 20:33:36 -0500 Subject: [PATCH 14/22] handle solana errors --- cmd/zetatool/inbound/inbound.go | 2 +- cmd/zetatool/inbound/solana.go | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/cmd/zetatool/inbound/inbound.go b/cmd/zetatool/inbound/inbound.go index be5a923ae8..bf31a84618 100644 --- a/cmd/zetatool/inbound/inbound.go +++ b/cmd/zetatool/inbound/inbound.go @@ -120,6 +120,6 @@ func GetBallotIdentifier(inboundHash string, inboundChainID int64, configFile st } } - log.Info().Msgf(ballotIdentifierMessage) + log.Info().Msgf("%s", ballotIdentifierMessage) return nil } diff --git a/cmd/zetatool/inbound/solana.go b/cmd/zetatool/inbound/solana.go index 292440be1c..7087a4e01a 100644 --- a/cmd/zetatool/inbound/solana.go +++ b/cmd/zetatool/inbound/solana.go @@ -61,6 +61,10 @@ func solanaInboundBallotIdentifier(ctx context.Context, inboundChain.ChainId, ) + if err != nil { + return "", fmt.Errorf("failed to filter solana inbound events: %w", err) + } + msg := &crosschaintypes.MsgVoteInbound{} // build inbound vote message from events and post to zetacore From 50b417f099c5a39470a0e57ce0c36a02afd4ffe0 Mon Sep 17 00:00:00 2001 From: Tanmay Date: Sun, 19 Jan 2025 20:37:56 -0500 Subject: [PATCH 15/22] remove unused imports --- cmd/zetatool/inbound/solana.go | 1 - 1 file changed, 1 deletion(-) diff --git a/cmd/zetatool/inbound/solana.go b/cmd/zetatool/inbound/solana.go index 7087a4e01a..2ec70e7268 100644 --- a/cmd/zetatool/inbound/solana.go +++ b/cmd/zetatool/inbound/solana.go @@ -18,7 +18,6 @@ import ( "github.com/zeta-chain/node/zetaclient/chains/base" "github.com/zeta-chain/node/zetaclient/chains/solana/observer" solanarpc "github.com/zeta-chain/node/zetaclient/chains/solana/rpc" - //solanarpc "github.com/zeta-chain/node/zetaclient/chains/solana/rpc" clienttypes "github.com/zeta-chain/node/zetaclient/types" ) From 021d50dcb8bb7e7433c5648dc03792174e137b55 Mon Sep 17 00:00:00 2001 From: Tanmay Date: Sun, 19 Jan 2025 20:50:41 -0500 Subject: [PATCH 16/22] format log lines --- cmd/zetatool/config/config.go | 1 + cmd/zetatool/inbound/bitcoin.go | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/zetatool/config/config.go b/cmd/zetatool/config/config.go index 706bb37dc1..14d74ae24d 100644 --- a/cmd/zetatool/config/config.go +++ b/cmd/zetatool/config/config.go @@ -101,6 +101,7 @@ func (c *Config) Save() error { return err } func (c *Config) Read(filename string) error { + // #nosec G304 reading file is safe data, err := os.ReadFile(filename) if err != nil { return err diff --git a/cmd/zetatool/inbound/bitcoin.go b/cmd/zetatool/inbound/bitcoin.go index 585cbcc09b..6385e4ce55 100644 --- a/cmd/zetatool/inbound/bitcoin.go +++ b/cmd/zetatool/inbound/bitcoin.go @@ -106,14 +106,13 @@ func bitcoinBallotIdentifier( if err != nil { return "", err } - // #nosec G115 always positive event, err := zetaclientObserver.GetBtcEvent( ctx, btcClient, *tx, tss, - uint64(blockVb.Height), + uint64(blockVb.Height), // #nosec G115 always positive zerolog.New(zerolog.Nop()), params, common.CalcDepositorFee, From 5eccd02e71911d3accde041f5b8f748993391ae6 Mon Sep 17 00:00:00 2001 From: Tanmay Date: Mon, 20 Jan 2025 11:51:02 -0500 Subject: [PATCH 17/22] update readme based on comments --- docs/cli/zetatool/{overview.md => readme.md} | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) rename docs/cli/zetatool/{overview.md => readme.md} (58%) diff --git a/docs/cli/zetatool/overview.md b/docs/cli/zetatool/readme.md similarity index 58% rename from docs/cli/zetatool/overview.md rename to docs/cli/zetatool/readme.md index f95b505505..544ac97698 100644 --- a/docs/cli/zetatool/overview.md +++ b/docs/cli/zetatool/readme.md @@ -1,6 +1,6 @@ # ZetaTool -ZetaTool is a utility tool for the Zeta-Chain project. It provides a command to fetch the ballot/cctx identifier from the inbound hash +ZetaTool is a utility tool for Zetachain.It currently provides a command to fetch the ballot/cctx identifier from the inbound hash ## Installation @@ -18,13 +18,22 @@ Alternatively you can also use the target `make install-zetatool` ### Fetching the Ballot Identifier +### Command ```shell zetatool get-ballot [inboundHash] [chainID] --config ``` +### Example +```shell +zetatool get-ballot 0x61008d7f79b2955a15e3cb95154a80e19c7385993fd0e083ff0cbe0b0f56cb9a 1 +{"level":"info","time":"2025-01-20T11:30:47-05:00","message":"ballot identifier: 0xae189ab5cd884af784835297ac43eb55deb8a7800023534c580f44ee2b3eb5ed"} +``` - `inboundHash`: The inbound hash of the transaction for which the ballot identifier is to be fetched - `chainID`: The chain ID of the chain to which the transaction belongs - `config`: [Optional] The path to the configuration file. When not provided, the configuration in the file is user. A sample config is provided at `cmd/zetatool/config/sample_config.json` +The Config contains the rpcs needed for the tool to function, +if not provided the tool automatically uses the default rpcs.It is able to fetch the rpc needed using the chain ID + The command returns a ballot identifier for the given inbound hash. From 1a70d3d4d36cd7feaaf5f22e7fed9cac475fd38f Mon Sep 17 00:00:00 2001 From: Tanmay Date: Mon, 20 Jan 2025 11:58:45 -0500 Subject: [PATCH 18/22] adding auto generated cli.md --- docs/cli/zetacored/cli.md | 14562 ++++++++++++++++++++++++++++++++++++ 1 file changed, 14562 insertions(+) create mode 100644 docs/cli/zetacored/cli.md diff --git a/docs/cli/zetacored/cli.md b/docs/cli/zetacored/cli.md new file mode 100644 index 0000000000..2a75eb520e --- /dev/null +++ b/docs/cli/zetacored/cli.md @@ -0,0 +1,14562 @@ +## zetacored + +Zetacore Daemon (server) + +### Options + +``` + -h, --help help for zetacored + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored add-genesis-account](#zetacored-add-genesis-account) - Add a genesis account to genesis.json +* [zetacored add-observer-list](#zetacored-add-observer-list) - Add a list of observers to the observer mapper ,default path is ~/.zetacored/os_info/observer_info.json +* [zetacored addr-conversion](#zetacored-addr-conversion) - convert a zeta1xxx address to validator operator address zetavaloper1xxx +* [zetacored collect-gentxs](#zetacored-collect-gentxs) - Collect genesis txs and output a genesis.json file +* [zetacored collect-observer-info](#zetacored-collect-observer-info) - collect observer info into the genesis from a folder , default path is ~/.zetacored/os_info/ + +* [zetacored config](#zetacored-config) - Create or query an application CLI configuration file +* [zetacored debug](#zetacored-debug) - Tool for helping with debugging your application +* [zetacored docs](#zetacored-docs) - Generate markdown documentation for zetacored +* [zetacored export](#zetacored-export) - Export state to JSON +* [zetacored gentx](#zetacored-gentx) - Generate a genesis tx carrying a self delegation +* [zetacored get-pubkey](#zetacored-get-pubkey) - Get the node account public key +* [zetacored index-eth-tx](#zetacored-index-eth-tx) - Index historical eth txs +* [zetacored init](#zetacored-init) - Initialize private validator, p2p, genesis, and application configuration files +* [zetacored keys](#zetacored-keys) - Manage your application's keys +* [zetacored parse-genesis-file](#zetacored-parse-genesis-file) - Parse the provided genesis file and import the required data into the optionally provided genesis file +* [zetacored query](#zetacored-query) - Querying subcommands +* [zetacored rollback](#zetacored-rollback) - rollback cosmos-sdk and tendermint state by one height +* [zetacored snapshots](#zetacored-snapshots) - Manage local snapshots +* [zetacored start](#zetacored-start) - Run the full node +* [zetacored status](#zetacored-status) - Query remote node for status +* [zetacored tendermint](#zetacored-tendermint) - Tendermint subcommands +* [zetacored testnet](#zetacored-testnet) - subcommands for starting or configuring local testnets +* [zetacored tx](#zetacored-tx) - Transactions subcommands +* [zetacored upgrade-handler-version](#zetacored-upgrade-handler-version) - Print the default upgrade handler version +* [zetacored validate-genesis](#zetacored-validate-genesis) - validates the genesis file at the default location or at the location passed as an arg +* [zetacored version](#zetacored-version) - Print the application binary version information + +## zetacored add-genesis-account + +Add a genesis account to genesis.json + +### Synopsis + +Add a genesis account to genesis.json. The provided account must specify +the account address or key name and a list of initial coins. If a key name is given, +the address will be looked up in the local Keybase. The list of initial tokens must +contain valid denominations. Accounts may optionally be supplied with vesting parameters. + + +``` +zetacored add-genesis-account [address_or_key_name] [coin][,[coin]] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for add-genesis-account + --home string The application home directory + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test) + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) + --vesting-amount string amount of coins for vesting accounts + --vesting-end-time int schedule end time (unix epoch) for vesting accounts + --vesting-start-time int schedule start time (unix epoch) for vesting accounts +``` + +### Options inherited from parent commands + +``` + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored](#zetacored) - Zetacore Daemon (server) + +## zetacored add-observer-list + +Add a list of observers to the observer mapper ,default path is ~/.zetacored/os_info/observer_info.json + +``` +zetacored add-observer-list [observer-list.json] [flags] +``` + +### Options + +``` + -h, --help help for add-observer-list + --keygen-block int set keygen block , default is 20 (default 20) + --tss-pubkey string set TSS pubkey if using older keygen +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored](#zetacored) - Zetacore Daemon (server) + +## zetacored addr-conversion + +convert a zeta1xxx address to validator operator address zetavaloper1xxx + +### Synopsis + + +read a zeta1xxx or zetavaloper1xxx address and convert it to the other type; +it always outputs three lines; the first line is the zeta1xxx address, the second line is the zetavaloper1xxx address +and the third line is the ethereum address. + + +``` +zetacored addr-conversion [zeta address] [flags] +``` + +### Options + +``` + -h, --help help for addr-conversion +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored](#zetacored) - Zetacore Daemon (server) + +## zetacored collect-gentxs + +Collect genesis txs and output a genesis.json file + +``` +zetacored collect-gentxs [flags] +``` + +### Options + +``` + --gentx-dir string override default "gentx" directory from which collect and execute genesis transactions; default [--home]/config/gentx/ + -h, --help help for collect-gentxs + --home string The application home directory +``` + +### Options inherited from parent commands + +``` + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored](#zetacored) - Zetacore Daemon (server) + +## zetacored collect-observer-info + +collect observer info into the genesis from a folder , default path is ~/.zetacored/os_info/ + + +``` +zetacored collect-observer-info [folder] [flags] +``` + +### Options + +``` + -h, --help help for collect-observer-info +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored](#zetacored) - Zetacore Daemon (server) + +## zetacored config + +Create or query an application CLI configuration file + +``` +zetacored config [key] [value] [flags] +``` + +### Options + +``` + -h, --help help for config +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored](#zetacored) - Zetacore Daemon (server) + +## zetacored debug + +Tool for helping with debugging your application + +``` +zetacored debug [flags] +``` + +### Options + +``` + -h, --help help for debug +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored](#zetacored) - Zetacore Daemon (server) +* [zetacored debug addr](#zetacored-debug-addr) - Convert an address between hex and bech32 +* [zetacored debug prefixes](#zetacored-debug-prefixes) - List prefixes used for Human-Readable Part (HRP) in Bech32 +* [zetacored debug pubkey](#zetacored-debug-pubkey) - Decode a pubkey from proto JSON +* [zetacored debug pubkey-raw](#zetacored-debug-pubkey-raw) - Decode a ED25519 or secp256k1 pubkey from hex, base64, or bech32 +* [zetacored debug raw-bytes](#zetacored-debug-raw-bytes) - Convert raw bytes output (eg. [10 21 13 255]) to hex + +## zetacored debug addr + +Convert an address between hex and bech32 + +### Synopsis + +Convert an address between hex encoding and bech32. + +Example: +$ zetacored debug addr cosmos1e0jnq2sun3dzjh8p2xq95kk0expwmd7shwjpfg + + +``` +zetacored debug addr [address] [flags] +``` + +### Options + +``` + -h, --help help for addr +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored debug](#zetacored-debug) - Tool for helping with debugging your application + +## zetacored debug prefixes + +List prefixes used for Human-Readable Part (HRP) in Bech32 + +### Synopsis + +List prefixes used in Bech32 addresses. + +``` +zetacored debug prefixes [flags] +``` + +### Examples + +``` +$ zetacored debug prefixes +``` + +### Options + +``` + -h, --help help for prefixes +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored debug](#zetacored-debug) - Tool for helping with debugging your application + +## zetacored debug pubkey + +Decode a pubkey from proto JSON + +### Synopsis + +Decode a pubkey from proto JSON and display it's address. + +Example: +$ zetacored debug pubkey '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AurroA7jvfPd1AadmmOvWM2rJSwipXfRf8yD6pLbA2DJ"}' + + +``` +zetacored debug pubkey [pubkey] [flags] +``` + +### Options + +``` + -h, --help help for pubkey +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored debug](#zetacored-debug) - Tool for helping with debugging your application + +## zetacored debug pubkey-raw + +Decode a ED25519 or secp256k1 pubkey from hex, base64, or bech32 + +### Synopsis + +Decode a pubkey from hex, base64, or bech32. +Example: +$ zetacored debug pubkey-raw TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz +$ zetacored debug pubkey-raw cosmos1e0jnq2sun3dzjh8p2xq95kk0expwmd7shwjpfg + + +``` +zetacored debug pubkey-raw [pubkey] -t [{ed25519, secp256k1}] [flags] +``` + +### Options + +``` + -h, --help help for pubkey-raw + -t, --type string Pubkey type to decode (oneof secp256k1, ed25519) +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored debug](#zetacored-debug) - Tool for helping with debugging your application + +## zetacored debug raw-bytes + +Convert raw bytes output (eg. [10 21 13 255]) to hex + +### Synopsis + +Convert raw-bytes to hex. + +Example: +$ zetacored debug raw-bytes [72 101 108 108 111 44 32 112 108 97 121 103 114 111 117 110 100] + + +``` +zetacored debug raw-bytes [raw-bytes] [flags] +``` + +### Options + +``` + -h, --help help for raw-bytes +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored debug](#zetacored-debug) - Tool for helping with debugging your application + +## zetacored docs + +Generate markdown documentation for zetacored + +``` +zetacored docs [path] [flags] +``` + +### Options + +``` + -h, --help help for docs + --path string Path where the docs will be generated +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored](#zetacored) - Zetacore Daemon (server) + +## zetacored export + +Export state to JSON + +``` +zetacored export [flags] +``` + +### Options + +``` + --for-zero-height Export state to start at height zero (perform preproccessing) + --height int Export state from a particular height (-1 means latest height) (default -1) + -h, --help help for export + --home string The application home directory + --jail-allowed-addrs strings Comma-separated list of operator addresses of jailed validators to unjail + --modules-to-export strings Comma-separated list of modules to export. If empty, will export all modules + --output-document string Exported state is written to the given file instead of STDOUT +``` + +### Options inherited from parent commands + +``` + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored](#zetacored) - Zetacore Daemon (server) + +## zetacored gentx + +Generate a genesis tx carrying a self delegation + +### Synopsis + +Generate a genesis transaction that creates a validator with a self-delegation, +that is signed by the key in the Keyring referenced by a given name. A node ID and Bech32 consensus +pubkey may optionally be provided. If they are omitted, they will be retrieved from the priv_validator.json +file. The following default parameters are included: + + delegation amount: 100000000stake + commission rate: 0.1 + commission max rate: 0.2 + commission max change rate: 0.01 + minimum self delegation: 1 + + +Example: +$ zetacored gentx my-key-name 1000000stake --home=/path/to/home/dir --keyring-backend=os --chain-id=test-chain-1 \ + --moniker="myvalidator" \ + --commission-max-change-rate=0.01 \ + --commission-max-rate=1.0 \ + --commission-rate=0.07 \ + --details="..." \ + --security-contact="..." \ + --website="..." + + +``` +zetacored gentx [key_name] [amount] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --amount string Amount of coins to bond + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --commission-max-change-rate string The maximum commission change rate percentage (per day) + --commission-max-rate string The maximum commission rate percentage + --commission-rate string The initial commission rate percentage + --details string The validator's (optional) details + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for gentx + --home string The application home directory + --identity string The (optional) identity signature (ex. UPort or Keybase) + --ip string The node's public P2P IP + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --min-self-delegation string The minimum self delegation required on the validator + --moniker string The validator's (optional) moniker + --node string [host]:[port] to tendermint rpc interface for this chain + --node-id string The node's NodeID + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + --output-document string Write the genesis transaction JSON document to the given file instead of the default location + --p2p-port uint The node's public P2P port (default 26656) + --pubkey string The validator's Protobuf JSON encoded public key + --security-contact string The validator's (optional) security contact email + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + --website string The validator's (optional) website + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored](#zetacored) - Zetacore Daemon (server) + +## zetacored get-pubkey + +Get the node account public key + +``` +zetacored get-pubkey [tssKeyName] [password] [flags] +``` + +### Options + +``` + -h, --help help for get-pubkey +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored](#zetacored) - Zetacore Daemon (server) + +## zetacored index-eth-tx + +Index historical eth txs + +### Synopsis + +Index historical eth txs, it only support two traverse direction to avoid creating gaps in the indexer db if using arbitrary block ranges: + - backward: index the blocks from the first indexed block to the earliest block in the chain, if indexer db is empty, start from the latest block. + - forward: index the blocks from the latest indexed block to latest block in the chain. + + When start the node, the indexer start from the latest indexed block to avoid creating gap. + Backward mode should be used most of the time, so the latest indexed block is always up-to-date. + + +``` +zetacored index-eth-tx [backward|forward] [flags] +``` + +### Options + +``` + -h, --help help for index-eth-tx +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored](#zetacored) - Zetacore Daemon (server) + +## zetacored init + +Initialize private validator, p2p, genesis, and application configuration files + +### Synopsis + +Initialize validators's and node's configuration files. + +``` +zetacored init [moniker] [flags] +``` + +### Options + +``` + --chain-id string genesis file chain-id, if left blank will be randomly created + --default-denom string genesis file default denomination, if left blank default value is 'stake' + -h, --help help for init + --home string node's home directory + --initial-height int specify the initial block height at genesis (default 1) + -o, --overwrite overwrite the genesis.json file + --recover provide seed phrase to recover existing key instead of creating +``` + +### Options inherited from parent commands + +``` + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored](#zetacored) - Zetacore Daemon (server) + +## zetacored keys + +Manage your application's keys + +### Synopsis + +Keyring management commands. These keys may be in any format supported by the +Tendermint crypto library and can be used by light-clients, full nodes, or any other application +that needs to sign with a private key. + +The keyring supports the following backends: + + os Uses the operating system's default credentials store. + file Uses encrypted file-based keystore within the app's configuration directory. + This keyring will request a password each time it is accessed, which may occur + multiple times in a single command resulting in repeated password prompts. + kwallet Uses KDE Wallet Manager as a credentials management application. + pass Uses the pass command line utility to store and retrieve keys. + test Stores keys insecurely to disk. It does not prompt for a password to be unlocked + and it should be use only for testing purposes. + +kwallet and pass backends depend on external tools. Refer to their respective documentation for more +information: + KWallet https://github.com/KDE/kwallet + pass https://www.passwordstore.org/ + +The pass backend requires GnuPG: https://gnupg.org/ + + +### Options + +``` + -h, --help help for keys + --home string The application home directory + --keyring-backend string Select keyring's backend (os|file|test) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored](#zetacored) - Zetacore Daemon (server) +* [zetacored keys ](#zetacored-keys-) - +* [zetacored keys add](#zetacored-keys-add) - Add an encrypted private key (either newly generated or recovered), encrypt it, and save to [name] file +* [zetacored keys delete](#zetacored-keys-delete) - Delete the given keys +* [zetacored keys export](#zetacored-keys-export) - Export private keys +* [zetacored keys import](#zetacored-keys-import) - Import private keys into the local keybase +* [zetacored keys list](#zetacored-keys-list) - List all keys +* [zetacored keys migrate](#zetacored-keys-migrate) - Migrate keys from amino to proto serialization format +* [zetacored keys mnemonic](#zetacored-keys-mnemonic) - Compute the bip39 mnemonic for some input entropy +* [zetacored keys parse](#zetacored-keys-parse) - Parse address from hex to bech32 and vice versa +* [zetacored keys rename](#zetacored-keys-rename) - Rename an existing key +* [zetacored keys show](#zetacored-keys-show) - Retrieve key information by name or address +* [zetacored keys unsafe-export-eth-key](#zetacored-keys-unsafe-export-eth-key) - **UNSAFE** Export an Ethereum private key +* [zetacored keys unsafe-import-eth-key](#zetacored-keys-unsafe-import-eth-key) - **UNSAFE** Import Ethereum private keys into the local keybase + +## zetacored keys + + + +``` +zetacored keys [flags] +``` + +### Options + +``` + -h, --help help for this command +``` + +### Options inherited from parent commands + +``` + --home string The application home directory + --keyring-backend string Select keyring's backend (os|file|test) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --output string Output format (text|json) + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored keys](#zetacored-keys) - Manage your application's keys + +## zetacored keys add + +Add an encrypted private key (either newly generated or recovered), encrypt it, and save to [name] file + +### Synopsis + +Derive a new private key and encrypt to disk. +Optionally specify a BIP39 mnemonic, a BIP39 passphrase to further secure the mnemonic, +and a bip32 HD path to derive a specific account. The key will be stored under the given name +and encrypted with the given password. The only input that is required is the encryption password. + +If run with -i, it will prompt the user for BIP44 path, BIP39 mnemonic, and passphrase. +The flag --recover allows one to recover a key from a seed passphrase. +If run with --dry-run, a key would be generated (or recovered) but not stored to the +local keystore. +Use the --pubkey flag to add arbitrary public keys to the keystore for constructing +multisig transactions. + +You can create and store a multisig key by passing the list of key names stored in a keyring +and the minimum number of signatures required through --multisig-threshold. The keys are +sorted by address, unless the flag --nosort is set. +Example: + + keys add mymultisig --multisig "keyname1,keyname2,keyname3" --multisig-threshold 2 + + +``` +zetacored keys add [name] [flags] +``` + +### Options + +``` + --account uint32 Account number for HD derivation (less than equal 2147483647) + --coin-type uint32 coin type number for HD derivation (default 118) + --dry-run Perform action, but don't add key to local keystore + --hd-path string Manual HD Path derivation (overrides BIP44 config) + -h, --help help for add + --index uint32 Address index number for HD derivation (less than equal 2147483647) + -i, --interactive Interactively prompt user for BIP39 passphrase and mnemonic + --key-type string Key signing algorithm to generate keys for + --ledger Store a local reference to a private key on a Ledger device + --multisig strings List of key names stored in keyring to construct a public legacy multisig key + --multisig-threshold int K out of N required signatures. For use in conjunction with --multisig (default 1) + --no-backup Don't print out seed phrase (if others are watching the terminal) + --nosort Keys passed to --multisig are taken in the order they're supplied + --pubkey string Parse a public key in JSON format and saves key info to [name] file. + --recover Provide seed phrase to recover existing key instead of creating +``` + +### Options inherited from parent commands + +``` + --home string The application home directory + --keyring-backend string Select keyring's backend (os|file|test) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --output string Output format (text|json) + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored keys](#zetacored-keys) - Manage your application's keys + +## zetacored keys delete + +Delete the given keys + +### Synopsis + +Delete keys from the Keybase backend. + +Note that removing offline or ledger keys will remove +only the public key references stored locally, i.e. +private keys stored in a ledger device cannot be deleted with the CLI. + + +``` +zetacored keys delete [name]... [flags] +``` + +### Options + +``` + -f, --force Remove the key unconditionally without asking for the passphrase. Deprecated. + -h, --help help for delete + -y, --yes Skip confirmation prompt when deleting offline or ledger key references +``` + +### Options inherited from parent commands + +``` + --home string The application home directory + --keyring-backend string Select keyring's backend (os|file|test) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --output string Output format (text|json) + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored keys](#zetacored-keys) - Manage your application's keys + +## zetacored keys export + +Export private keys + +### Synopsis + +Export a private key from the local keyring in ASCII-armored encrypted format. + +When both the --unarmored-hex and --unsafe flags are selected, cryptographic +private key material is exported in an INSECURE fashion that is designed to +allow users to import their keys in hot wallets. This feature is for advanced +users only that are confident about how to handle private keys work and are +FULLY AWARE OF THE RISKS. If you are unsure, you may want to do some research +and export your keys in ASCII-armored encrypted format. + +``` +zetacored keys export [name] [flags] +``` + +### Options + +``` + -h, --help help for export + --unarmored-hex Export unarmored hex privkey. Requires --unsafe. + --unsafe Enable unsafe operations. This flag must be switched on along with all unsafe operation-specific options. +``` + +### Options inherited from parent commands + +``` + --home string The application home directory + --keyring-backend string Select keyring's backend (os|file|test) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --output string Output format (text|json) + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored keys](#zetacored-keys) - Manage your application's keys + +## zetacored keys import + +Import private keys into the local keybase + +### Synopsis + +Import a ASCII armored private key into the local keybase. + +``` +zetacored keys import [name] [keyfile] [flags] +``` + +### Options + +``` + -h, --help help for import +``` + +### Options inherited from parent commands + +``` + --home string The application home directory + --keyring-backend string Select keyring's backend (os|file|test) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --output string Output format (text|json) + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored keys](#zetacored-keys) - Manage your application's keys + +## zetacored keys list + +List all keys + +### Synopsis + +Return a list of all public keys stored by this key manager +along with their associated name and address. + +``` +zetacored keys list [flags] +``` + +### Options + +``` + -h, --help help for list + -n, --list-names List names only +``` + +### Options inherited from parent commands + +``` + --home string The application home directory + --keyring-backend string Select keyring's backend (os|file|test) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --output string Output format (text|json) + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored keys](#zetacored-keys) - Manage your application's keys + +## zetacored keys migrate + +Migrate keys from amino to proto serialization format + +### Synopsis + +Migrate keys from Amino to Protocol Buffers records. +For each key material entry, the command will check if the key can be deserialized using proto. +If this is the case, the key is already migrated. Therefore, we skip it and continue with a next one. +Otherwise, we try to deserialize it using Amino into LegacyInfo. If this attempt is successful, we serialize +LegacyInfo to Protobuf serialization format and overwrite the keyring entry. If any error occurred, it will be +outputted in CLI and migration will be continued until all keys in the keyring DB are exhausted. +See https://github.com/cosmos/cosmos-sdk/pull/9695 for more details. + +It is recommended to run in 'dry-run' mode first to verify all key migration material. + + +``` +zetacored keys migrate [flags] +``` + +### Options + +``` + -h, --help help for migrate +``` + +### Options inherited from parent commands + +``` + --home string The application home directory + --keyring-backend string Select keyring's backend (os|file|test) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --output string Output format (text|json) + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored keys](#zetacored-keys) - Manage your application's keys + +## zetacored keys mnemonic + +Compute the bip39 mnemonic for some input entropy + +### Synopsis + +Create a bip39 mnemonic, sometimes called a seed phrase, by reading from the system entropy. To pass your own entropy, use --unsafe-entropy + +``` +zetacored keys mnemonic [flags] +``` + +### Options + +``` + -h, --help help for mnemonic + --unsafe-entropy Prompt the user to supply their own entropy, instead of relying on the system +``` + +### Options inherited from parent commands + +``` + --home string The application home directory + --keyring-backend string Select keyring's backend (os|file|test) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --output string Output format (text|json) + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored keys](#zetacored-keys) - Manage your application's keys + +## zetacored keys parse + +Parse address from hex to bech32 and vice versa + +### Synopsis + +Convert and print to stdout key addresses and fingerprints from +hexadecimal into bech32 cosmos prefixed format and vice versa. + + +``` +zetacored keys parse [hex-or-bech32-address] [flags] +``` + +### Options + +``` + -h, --help help for parse +``` + +### Options inherited from parent commands + +``` + --home string The application home directory + --keyring-backend string Select keyring's backend (os|file|test) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --output string Output format (text|json) + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored keys](#zetacored-keys) - Manage your application's keys + +## zetacored keys rename + +Rename an existing key + +### Synopsis + +Rename a key from the Keybase backend. + +Note that renaming offline or ledger keys will rename +only the public key references stored locally, i.e. +private keys stored in a ledger device cannot be renamed with the CLI. + + +``` +zetacored keys rename [old_name] [new_name] [flags] +``` + +### Options + +``` + -h, --help help for rename + -y, --yes Skip confirmation prompt when renaming offline or ledger key references +``` + +### Options inherited from parent commands + +``` + --home string The application home directory + --keyring-backend string Select keyring's backend (os|file|test) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --output string Output format (text|json) + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored keys](#zetacored-keys) - Manage your application's keys + +## zetacored keys show + +Retrieve key information by name or address + +### Synopsis + +Display keys details. If multiple names or addresses are provided, +then an ephemeral multisig key will be created under the name "multi" +consisting of all the keys provided by name and multisig threshold. + +``` +zetacored keys show [name_or_address [name_or_address...]] [flags] +``` + +### Options + +``` + -a, --address Output the address only (overrides --output) + --bech string The Bech32 prefix encoding for a key (acc|val|cons) + -d, --device Output the address in a ledger device + -h, --help help for show + --multisig-threshold int K out of N required signatures (default 1) + -p, --pubkey Output the public key only (overrides --output) +``` + +### Options inherited from parent commands + +``` + --home string The application home directory + --keyring-backend string Select keyring's backend (os|file|test) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --output string Output format (text|json) + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored keys](#zetacored-keys) - Manage your application's keys + +## zetacored keys unsafe-export-eth-key + +**UNSAFE** Export an Ethereum private key + +### Synopsis + +**UNSAFE** Export an Ethereum private key unencrypted to use in dev tooling + +``` +zetacored keys unsafe-export-eth-key [name] [flags] +``` + +### Options + +``` + -h, --help help for unsafe-export-eth-key +``` + +### Options inherited from parent commands + +``` + --home string The application home directory + --keyring-backend string Select keyring's backend (os|file|test) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --output string Output format (text|json) + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored keys](#zetacored-keys) - Manage your application's keys + +## zetacored keys unsafe-import-eth-key + +**UNSAFE** Import Ethereum private keys into the local keybase + +### Synopsis + +**UNSAFE** Import a hex-encoded Ethereum private key into the local keybase. + +``` +zetacored keys unsafe-import-eth-key [name] [pk] [flags] +``` + +### Options + +``` + -h, --help help for unsafe-import-eth-key +``` + +### Options inherited from parent commands + +``` + --home string The application home directory + --keyring-backend string Select keyring's backend (os|file|test) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --output string Output format (text|json) + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored keys](#zetacored-keys) - Manage your application's keys + +## zetacored parse-genesis-file + +Parse the provided genesis file and import the required data into the optionally provided genesis file + +``` +zetacored parse-genesis-file [import-genesis-file] [optional-genesis-file] [flags] +``` + +### Options + +``` + -h, --help help for parse-genesis-file + --modify modify the genesis file before importing +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored](#zetacored) - Zetacore Daemon (server) + +## zetacored query + +Querying subcommands + +``` +zetacored query [flags] +``` + +### Options + +``` + --chain-id string The network chain ID + -h, --help help for query +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored](#zetacored) - Zetacore Daemon (server) +* [zetacored query account](#zetacored-query-account) - Query for account by address +* [zetacored query auth](#zetacored-query-auth) - Querying commands for the auth module +* [zetacored query authority](#zetacored-query-authority) - Querying commands for the authority module +* [zetacored query authz](#zetacored-query-authz) - Querying commands for the authz module +* [zetacored query bank](#zetacored-query-bank) - Querying commands for the bank module +* [zetacored query block](#zetacored-query-block) - Get verified data for the block at given height +* [zetacored query crosschain](#zetacored-query-crosschain) - Querying commands for the crosschain module +* [zetacored query distribution](#zetacored-query-distribution) - Querying commands for the distribution module +* [zetacored query emissions](#zetacored-query-emissions) - Querying commands for the emissions module +* [zetacored query evidence](#zetacored-query-evidence) - Query for evidence by hash or for all (paginated) submitted evidence +* [zetacored query evm](#zetacored-query-evm) - Querying commands for the evm module +* [zetacored query feemarket](#zetacored-query-feemarket) - Querying commands for the fee market module +* [zetacored query fungible](#zetacored-query-fungible) - Querying commands for the fungible module +* [zetacored query gov](#zetacored-query-gov) - Querying commands for the governance module +* [zetacored query group](#zetacored-query-group) - Querying commands for the group module +* [zetacored query lightclient](#zetacored-query-lightclient) - Querying commands for the lightclient module +* [zetacored query observer](#zetacored-query-observer) - Querying commands for the observer module +* [zetacored query params](#zetacored-query-params) - Querying commands for the params module +* [zetacored query slashing](#zetacored-query-slashing) - Querying commands for the slashing module +* [zetacored query staking](#zetacored-query-staking) - Querying commands for the staking module +* [zetacored query tendermint-validator-set](#zetacored-query-tendermint-validator-set) - Get the full tendermint validator set at given height +* [zetacored query tx](#zetacored-query-tx) - Query for a transaction by hash, "[addr]/[seq]" combination or comma-separated signatures in a committed block +* [zetacored query txs](#zetacored-query-txs) - Query for paginated transactions that match a set of events +* [zetacored query upgrade](#zetacored-query-upgrade) - Querying commands for the upgrade module + +## zetacored query account + +Query for account by address + +``` +zetacored query account [address] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for account + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query](#zetacored-query) - Querying subcommands + +## zetacored query auth + +Querying commands for the auth module + +``` +zetacored query auth [flags] +``` + +### Options + +``` + -h, --help help for auth +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query](#zetacored-query) - Querying subcommands +* [zetacored query auth account](#zetacored-query-auth-account) - Query for account by address +* [zetacored query auth accounts](#zetacored-query-auth-accounts) - Query all the accounts +* [zetacored query auth address-by-acc-num](#zetacored-query-auth-address-by-acc-num) - Query for an address by account number +* [zetacored query auth module-account](#zetacored-query-auth-module-account) - Query module account info by module name +* [zetacored query auth module-accounts](#zetacored-query-auth-module-accounts) - Query all module accounts +* [zetacored query auth params](#zetacored-query-auth-params) - Query the current auth parameters + +## zetacored query auth account + +Query for account by address + +``` +zetacored query auth account [address] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for account + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query auth](#zetacored-query-auth) - Querying commands for the auth module + +## zetacored query auth accounts + +Query all the accounts + +``` +zetacored query auth accounts [flags] +``` + +### Options + +``` + --count-total count total number of records in all-accounts to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for accounts + --limit uint pagination limit of all-accounts to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of all-accounts to query for + -o, --output string Output format (text|json) + --page uint pagination page of all-accounts to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of all-accounts to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query auth](#zetacored-query-auth) - Querying commands for the auth module + +## zetacored query auth address-by-acc-num + +Query for an address by account number + +``` +zetacored query auth address-by-acc-num [acc-num] [flags] +``` + +### Examples + +``` +zetacored q auth address-by-acc-num 1 +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for address-by-acc-num + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query auth](#zetacored-query-auth) - Querying commands for the auth module + +## zetacored query auth module-account + +Query module account info by module name + +``` +zetacored query auth module-account [module-name] [flags] +``` + +### Examples + +``` +zetacored q auth module-account auth +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for module-account + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query auth](#zetacored-query-auth) - Querying commands for the auth module + +## zetacored query auth module-accounts + +Query all module accounts + +``` +zetacored query auth module-accounts [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for module-accounts + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query auth](#zetacored-query-auth) - Querying commands for the auth module + +## zetacored query auth params + +Query the current auth parameters + +### Synopsis + +Query the current auth parameters: + +$ zetacored query auth params + +``` +zetacored query auth params [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for params + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query auth](#zetacored-query-auth) - Querying commands for the auth module + +## zetacored query authority + +Querying commands for the authority module + +``` +zetacored query authority [flags] +``` + +### Options + +``` + -h, --help help for authority +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query](#zetacored-query) - Querying subcommands +* [zetacored query authority list-authorizations](#zetacored-query-authority-list-authorizations) - lists all authorizations +* [zetacored query authority show-authorization](#zetacored-query-authority-show-authorization) - shows the authorization for a given message URL +* [zetacored query authority show-chain-info](#zetacored-query-authority-show-chain-info) - show the chain info +* [zetacored query authority show-policies](#zetacored-query-authority-show-policies) - show the policies + +## zetacored query authority list-authorizations + +lists all authorizations + +``` +zetacored query authority list-authorizations [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for list-authorizations + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query authority](#zetacored-query-authority) - Querying commands for the authority module + +## zetacored query authority show-authorization + +shows the authorization for a given message URL + +``` +zetacored query authority show-authorization [msg-url] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for show-authorization + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query authority](#zetacored-query-authority) - Querying commands for the authority module + +## zetacored query authority show-chain-info + +show the chain info + +``` +zetacored query authority show-chain-info [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for show-chain-info + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query authority](#zetacored-query-authority) - Querying commands for the authority module + +## zetacored query authority show-policies + +show the policies + +``` +zetacored query authority show-policies [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for show-policies + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query authority](#zetacored-query-authority) - Querying commands for the authority module + +## zetacored query authz + +Querying commands for the authz module + +``` +zetacored query authz [flags] +``` + +### Options + +``` + -h, --help help for authz +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query](#zetacored-query) - Querying subcommands +* [zetacored query authz grants](#zetacored-query-authz-grants) - query grants for a granter-grantee pair and optionally a msg-type-url +* [zetacored query authz grants-by-grantee](#zetacored-query-authz-grants-by-grantee) - query authorization grants granted to a grantee +* [zetacored query authz grants-by-granter](#zetacored-query-authz-grants-by-granter) - query authorization grants granted by granter + +## zetacored query authz grants + +query grants for a granter-grantee pair and optionally a msg-type-url + +### Synopsis + +Query authorization grants for a granter-grantee pair. If msg-type-url +is set, it will select grants only for that msg type. +Examples: +$ zetacored query authz grants cosmos1skj.. cosmos1skjwj.. +$ zetacored query authz grants cosmos1skjw.. cosmos1skjwj.. /cosmos.bank.v1beta1.MsgSend + +``` +zetacored query authz grants [granter-addr] [grantee-addr] [msg-type-url]? [flags] +``` + +### Options + +``` + --count-total count total number of records in grants to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for grants + --limit uint pagination limit of grants to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of grants to query for + -o, --output string Output format (text|json) + --page uint pagination page of grants to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of grants to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query authz](#zetacored-query-authz) - Querying commands for the authz module + +## zetacored query authz grants-by-grantee + +query authorization grants granted to a grantee + +### Synopsis + +Query authorization grants granted to a grantee. +Examples: +$ zetacored q authz grants-by-grantee cosmos1skj.. + +``` +zetacored query authz grants-by-grantee [grantee-addr] [flags] +``` + +### Options + +``` + --count-total count total number of records in grantee-grants to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for grants-by-grantee + --limit uint pagination limit of grantee-grants to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of grantee-grants to query for + -o, --output string Output format (text|json) + --page uint pagination page of grantee-grants to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of grantee-grants to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query authz](#zetacored-query-authz) - Querying commands for the authz module + +## zetacored query authz grants-by-granter + +query authorization grants granted by granter + +### Synopsis + +Query authorization grants granted by granter. +Examples: +$ zetacored q authz grants-by-granter cosmos1skj.. + +``` +zetacored query authz grants-by-granter [granter-addr] [flags] +``` + +### Options + +``` + --count-total count total number of records in granter-grants to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for grants-by-granter + --limit uint pagination limit of granter-grants to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of granter-grants to query for + -o, --output string Output format (text|json) + --page uint pagination page of granter-grants to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of granter-grants to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query authz](#zetacored-query-authz) - Querying commands for the authz module + +## zetacored query bank + +Querying commands for the bank module + +``` +zetacored query bank [flags] +``` + +### Options + +``` + -h, --help help for bank +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query](#zetacored-query) - Querying subcommands +* [zetacored query bank balances](#zetacored-query-bank-balances) - Query for account balances by address +* [zetacored query bank denom-metadata](#zetacored-query-bank-denom-metadata) - Query the client metadata for coin denominations +* [zetacored query bank send-enabled](#zetacored-query-bank-send-enabled) - Query for send enabled entries +* [zetacored query bank spendable-balances](#zetacored-query-bank-spendable-balances) - Query for account spendable balances by address +* [zetacored query bank total](#zetacored-query-bank-total) - Query the total supply of coins of the chain + +## zetacored query bank balances + +Query for account balances by address + +### Synopsis + +Query the total balance of an account or of a specific denomination. + +Example: + $ zetacored query bank balances [address] + $ zetacored query bank balances [address] --denom=[denom] + +``` +zetacored query bank balances [address] [flags] +``` + +### Options + +``` + --count-total count total number of records in all balances to query for + --denom string The specific balance denomination to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for balances + --limit uint pagination limit of all balances to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of all balances to query for + -o, --output string Output format (text|json) + --page uint pagination page of all balances to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of all balances to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query bank](#zetacored-query-bank) - Querying commands for the bank module + +## zetacored query bank denom-metadata + +Query the client metadata for coin denominations + +### Synopsis + +Query the client metadata for all the registered coin denominations + +Example: + To query for the client metadata of all coin denominations use: + $ zetacored query bank denom-metadata + +To query for the client metadata of a specific coin denomination use: + $ zetacored query bank denom-metadata --denom=[denom] + +``` +zetacored query bank denom-metadata [flags] +``` + +### Options + +``` + --denom string The specific denomination to query client metadata for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for denom-metadata + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query bank](#zetacored-query-bank) - Querying commands for the bank module + +## zetacored query bank send-enabled + +Query for send enabled entries + +### Synopsis + +Query for send enabled entries that have been specifically set. + +To look up one or more specific denoms, supply them as arguments to this command. +To look up all denoms, do not provide any arguments. + +``` +zetacored query bank send-enabled [denom1 ...] [flags] +``` + +### Examples + +``` +Getting one specific entry: + $ zetacored query bank send-enabled foocoin + +Getting two specific entries: + $ zetacored query bank send-enabled foocoin barcoin + +Getting all entries: + $ zetacored query bank send-enabled +``` + +### Options + +``` + --count-total count total number of records in send enabled entries to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for send-enabled + --limit uint pagination limit of send enabled entries to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of send enabled entries to query for + -o, --output string Output format (text|json) + --page uint pagination page of send enabled entries to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of send enabled entries to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query bank](#zetacored-query-bank) - Querying commands for the bank module + +## zetacored query bank spendable-balances + +Query for account spendable balances by address + +``` +zetacored query bank spendable-balances [address] [flags] +``` + +### Examples + +``` +$ zetacored query bank spendable-balances [address] +``` + +### Options + +``` + --count-total count total number of records in spendable balances to query for + --denom string The specific balance denomination to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for spendable-balances + --limit uint pagination limit of spendable balances to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of spendable balances to query for + -o, --output string Output format (text|json) + --page uint pagination page of spendable balances to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of spendable balances to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query bank](#zetacored-query-bank) - Querying commands for the bank module + +## zetacored query bank total + +Query the total supply of coins of the chain + +### Synopsis + +Query total supply of coins that are held by accounts in the chain. + +Example: + $ zetacored query bank total + +To query for the total supply of a specific coin denomination use: + $ zetacored query bank total --denom=[denom] + +``` +zetacored query bank total [flags] +``` + +### Options + +``` + --count-total count total number of records in all supply totals to query for + --denom string The specific balance denomination to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for total + --limit uint pagination limit of all supply totals to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of all supply totals to query for + -o, --output string Output format (text|json) + --page uint pagination page of all supply totals to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of all supply totals to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query bank](#zetacored-query-bank) - Querying commands for the bank module + +## zetacored query block + +Get verified data for the block at given height + +``` +zetacored query block [height] [flags] +``` + +### Options + +``` + -h, --help help for block + -n, --node string Node to connect to +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query](#zetacored-query) - Querying subcommands + +## zetacored query crosschain + +Querying commands for the crosschain module + +``` +zetacored query crosschain [flags] +``` + +### Options + +``` + -h, --help help for crosschain +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query](#zetacored-query) - Querying subcommands +* [zetacored query crosschain get-zeta-accounting](#zetacored-query-crosschain-get-zeta-accounting) - Query zeta accounting +* [zetacored query crosschain inbound-hash-to-cctx-data](#zetacored-query-crosschain-inbound-hash-to-cctx-data) - query a cctx data from a inbound hash +* [zetacored query crosschain last-zeta-height](#zetacored-query-crosschain-last-zeta-height) - Query last Zeta Height +* [zetacored query crosschain list-all-inbound-trackers](#zetacored-query-crosschain-list-all-inbound-trackers) - shows all inbound trackers +* [zetacored query crosschain list-cctx](#zetacored-query-crosschain-list-cctx) - list all CCTX +* [zetacored query crosschain list-gas-price](#zetacored-query-crosschain-list-gas-price) - list all gasPrice +* [zetacored query crosschain list-inbound-hash-to-cctx](#zetacored-query-crosschain-list-inbound-hash-to-cctx) - list all inboundHashToCctx +* [zetacored query crosschain list-inbound-tracker](#zetacored-query-crosschain-list-inbound-tracker) - shows a list of inbound trackers by chainId +* [zetacored query crosschain list-outbound-tracker](#zetacored-query-crosschain-list-outbound-tracker) - list all outbound trackers +* [zetacored query crosschain list-pending-cctx](#zetacored-query-crosschain-list-pending-cctx) - shows pending CCTX +* [zetacored query crosschain list_pending_cctx_within_rate_limit](#zetacored-query-crosschain-list-pending-cctx-within-rate-limit) - list all pending CCTX within rate limit +* [zetacored query crosschain show-cctx](#zetacored-query-crosschain-show-cctx) - shows a CCTX +* [zetacored query crosschain show-gas-price](#zetacored-query-crosschain-show-gas-price) - shows a gasPrice +* [zetacored query crosschain show-inbound-hash-to-cctx](#zetacored-query-crosschain-show-inbound-hash-to-cctx) - shows a inboundHashToCctx +* [zetacored query crosschain show-inbound-tracker](#zetacored-query-crosschain-show-inbound-tracker) - shows an inbound tracker by chainID and txHash +* [zetacored query crosschain show-outbound-tracker](#zetacored-query-crosschain-show-outbound-tracker) - shows an outbound tracker +* [zetacored query crosschain show-rate-limiter-flags](#zetacored-query-crosschain-show-rate-limiter-flags) - shows the rate limiter flags + +## zetacored query crosschain get-zeta-accounting + +Query zeta accounting + +``` +zetacored query crosschain get-zeta-accounting [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for get-zeta-accounting + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query crosschain](#zetacored-query-crosschain) - Querying commands for the crosschain module + +## zetacored query crosschain inbound-hash-to-cctx-data + +query a cctx data from a inbound hash + +``` +zetacored query crosschain inbound-hash-to-cctx-data [inbound-hash] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for inbound-hash-to-cctx-data + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query crosschain](#zetacored-query-crosschain) - Querying commands for the crosschain module + +## zetacored query crosschain last-zeta-height + +Query last Zeta Height + +``` +zetacored query crosschain last-zeta-height [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for last-zeta-height + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query crosschain](#zetacored-query-crosschain) - Querying commands for the crosschain module + +## zetacored query crosschain list-all-inbound-trackers + +shows all inbound trackers + +``` +zetacored query crosschain list-all-inbound-trackers [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for list-all-inbound-trackers + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query crosschain](#zetacored-query-crosschain) - Querying commands for the crosschain module + +## zetacored query crosschain list-cctx + +list all CCTX + +``` +zetacored query crosschain list-cctx [flags] +``` + +### Options + +``` + --count-total count total number of records in list-cctx to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for list-cctx + --limit uint pagination limit of list-cctx to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of list-cctx to query for + -o, --output string Output format (text|json) + --page uint pagination page of list-cctx to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of list-cctx to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query crosschain](#zetacored-query-crosschain) - Querying commands for the crosschain module + +## zetacored query crosschain list-gas-price + +list all gasPrice + +``` +zetacored query crosschain list-gas-price [flags] +``` + +### Options + +``` + --count-total count total number of records in list-gas-price to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for list-gas-price + --limit uint pagination limit of list-gas-price to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of list-gas-price to query for + -o, --output string Output format (text|json) + --page uint pagination page of list-gas-price to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of list-gas-price to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query crosschain](#zetacored-query-crosschain) - Querying commands for the crosschain module + +## zetacored query crosschain list-inbound-hash-to-cctx + +list all inboundHashToCctx + +``` +zetacored query crosschain list-inbound-hash-to-cctx [flags] +``` + +### Options + +``` + --count-total count total number of records in list-inbound-hash-to-cctx to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for list-inbound-hash-to-cctx + --limit uint pagination limit of list-inbound-hash-to-cctx to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of list-inbound-hash-to-cctx to query for + -o, --output string Output format (text|json) + --page uint pagination page of list-inbound-hash-to-cctx to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of list-inbound-hash-to-cctx to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query crosschain](#zetacored-query-crosschain) - Querying commands for the crosschain module + +## zetacored query crosschain list-inbound-tracker + +shows a list of inbound trackers by chainId + +``` +zetacored query crosschain list-inbound-tracker [chainId] [flags] +``` + +### Options + +``` + --count-total count total number of records in list-inbound-tracker [chainId] to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for list-inbound-tracker + --limit uint pagination limit of list-inbound-tracker [chainId] to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of list-inbound-tracker [chainId] to query for + -o, --output string Output format (text|json) + --page uint pagination page of list-inbound-tracker [chainId] to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of list-inbound-tracker [chainId] to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query crosschain](#zetacored-query-crosschain) - Querying commands for the crosschain module + +## zetacored query crosschain list-outbound-tracker + +list all outbound trackers + +``` +zetacored query crosschain list-outbound-tracker [flags] +``` + +### Options + +``` + --count-total count total number of records in list-outbound-tracker to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for list-outbound-tracker + --limit uint pagination limit of list-outbound-tracker to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of list-outbound-tracker to query for + -o, --output string Output format (text|json) + --page uint pagination page of list-outbound-tracker to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of list-outbound-tracker to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query crosschain](#zetacored-query-crosschain) - Querying commands for the crosschain module + +## zetacored query crosschain list-pending-cctx + +shows pending CCTX + +``` +zetacored query crosschain list-pending-cctx [chain-id] [limit] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for list-pending-cctx + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query crosschain](#zetacored-query-crosschain) - Querying commands for the crosschain module + +## zetacored query crosschain list_pending_cctx_within_rate_limit + +list all pending CCTX within rate limit + +``` +zetacored query crosschain list_pending_cctx_within_rate_limit [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for list_pending_cctx_within_rate_limit + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query crosschain](#zetacored-query-crosschain) - Querying commands for the crosschain module + +## zetacored query crosschain show-cctx + +shows a CCTX + +``` +zetacored query crosschain show-cctx [index] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for show-cctx + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query crosschain](#zetacored-query-crosschain) - Querying commands for the crosschain module + +## zetacored query crosschain show-gas-price + +shows a gasPrice + +``` +zetacored query crosschain show-gas-price [index] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for show-gas-price + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query crosschain](#zetacored-query-crosschain) - Querying commands for the crosschain module + +## zetacored query crosschain show-inbound-hash-to-cctx + +shows a inboundHashToCctx + +``` +zetacored query crosschain show-inbound-hash-to-cctx [inbound-hash] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for show-inbound-hash-to-cctx + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query crosschain](#zetacored-query-crosschain) - Querying commands for the crosschain module + +## zetacored query crosschain show-inbound-tracker + +shows an inbound tracker by chainID and txHash + +``` +zetacored query crosschain show-inbound-tracker [chainID] [txHash] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for show-inbound-tracker + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query crosschain](#zetacored-query-crosschain) - Querying commands for the crosschain module + +## zetacored query crosschain show-outbound-tracker + +shows an outbound tracker + +``` +zetacored query crosschain show-outbound-tracker [chainId] [nonce] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for show-outbound-tracker + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query crosschain](#zetacored-query-crosschain) - Querying commands for the crosschain module + +## zetacored query crosschain show-rate-limiter-flags + +shows the rate limiter flags + +``` +zetacored query crosschain show-rate-limiter-flags [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for show-rate-limiter-flags + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query crosschain](#zetacored-query-crosschain) - Querying commands for the crosschain module + +## zetacored query distribution + +Querying commands for the distribution module + +``` +zetacored query distribution [flags] +``` + +### Options + +``` + -h, --help help for distribution +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query](#zetacored-query) - Querying subcommands +* [zetacored query distribution commission](#zetacored-query-distribution-commission) - Query distribution validator commission +* [zetacored query distribution community-pool](#zetacored-query-distribution-community-pool) - Query the amount of coins in the community pool +* [zetacored query distribution params](#zetacored-query-distribution-params) - Query distribution params +* [zetacored query distribution rewards](#zetacored-query-distribution-rewards) - Query all distribution delegator rewards or rewards from a particular validator +* [zetacored query distribution slashes](#zetacored-query-distribution-slashes) - Query distribution validator slashes +* [zetacored query distribution validator-distribution-info](#zetacored-query-distribution-validator-distribution-info) - Query validator distribution info +* [zetacored query distribution validator-outstanding-rewards](#zetacored-query-distribution-validator-outstanding-rewards) - Query distribution outstanding (un-withdrawn) rewards for a validator and all their delegations + +## zetacored query distribution commission + +Query distribution validator commission + +### Synopsis + +Query validator commission rewards from delegators to that validator. + +Example: +$ zetacored query distribution commission zetavaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj + +``` +zetacored query distribution commission [validator] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for commission + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query distribution](#zetacored-query-distribution) - Querying commands for the distribution module + +## zetacored query distribution community-pool + +Query the amount of coins in the community pool + +### Synopsis + +Query all coins in the community pool which is under Governance control. + +Example: +$ zetacored query distribution community-pool + +``` +zetacored query distribution community-pool [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for community-pool + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query distribution](#zetacored-query-distribution) - Querying commands for the distribution module + +## zetacored query distribution params + +Query distribution params + +``` +zetacored query distribution params [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for params + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query distribution](#zetacored-query-distribution) - Querying commands for the distribution module + +## zetacored query distribution rewards + +Query all distribution delegator rewards or rewards from a particular validator + +### Synopsis + +Query all rewards earned by a delegator, optionally restrict to rewards from a single validator. + +Example: +$ zetacored query distribution rewards zeta1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p +$ zetacored query distribution rewards zeta1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p zetavaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj + +``` +zetacored query distribution rewards [delegator-addr] [validator-addr] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for rewards + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query distribution](#zetacored-query-distribution) - Querying commands for the distribution module + +## zetacored query distribution slashes + +Query distribution validator slashes + +### Synopsis + +Query all slashes of a validator for a given block range. + +Example: +$ zetacored query distribution slashes zetavalopervaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj 0 100 + +``` +zetacored query distribution slashes [validator] [start-height] [end-height] [flags] +``` + +### Options + +``` + --count-total count total number of records in validator slashes to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for slashes + --limit uint pagination limit of validator slashes to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of validator slashes to query for + -o, --output string Output format (text|json) + --page uint pagination page of validator slashes to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of validator slashes to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query distribution](#zetacored-query-distribution) - Querying commands for the distribution module + +## zetacored query distribution validator-distribution-info + +Query validator distribution info + +### Synopsis + +Query validator distribution info. +Example: +$ zetacored query distribution validator-distribution-info zetavaloper1lwjmdnks33xwnmfayc64ycprww49n33mtm92ne + +``` +zetacored query distribution validator-distribution-info [validator] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for validator-distribution-info + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query distribution](#zetacored-query-distribution) - Querying commands for the distribution module + +## zetacored query distribution validator-outstanding-rewards + +Query distribution outstanding (un-withdrawn) rewards for a validator and all their delegations + +### Synopsis + +Query distribution outstanding (un-withdrawn) rewards for a validator and all their delegations. + +Example: +$ zetacored query distribution validator-outstanding-rewards zetavaloper1lwjmdnks33xwnmfayc64ycprww49n33mtm92ne + +``` +zetacored query distribution validator-outstanding-rewards [validator] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for validator-outstanding-rewards + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query distribution](#zetacored-query-distribution) - Querying commands for the distribution module + +## zetacored query emissions + +Querying commands for the emissions module + +``` +zetacored query emissions [flags] +``` + +### Options + +``` + -h, --help help for emissions +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query](#zetacored-query) - Querying subcommands +* [zetacored query emissions list-pool-addresses](#zetacored-query-emissions-list-pool-addresses) - Query list-pool-addresses +* [zetacored query emissions params](#zetacored-query-emissions-params) - shows the parameters of the module +* [zetacored query emissions show-available-emissions](#zetacored-query-emissions-show-available-emissions) - Query show-available-emissions + +## zetacored query emissions list-pool-addresses + +Query list-pool-addresses + +``` +zetacored query emissions list-pool-addresses [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for list-pool-addresses + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query emissions](#zetacored-query-emissions) - Querying commands for the emissions module + +## zetacored query emissions params + +shows the parameters of the module + +``` +zetacored query emissions params [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for params + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query emissions](#zetacored-query-emissions) - Querying commands for the emissions module + +## zetacored query emissions show-available-emissions + +Query show-available-emissions + +``` +zetacored query emissions show-available-emissions [address] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for show-available-emissions + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query emissions](#zetacored-query-emissions) - Querying commands for the emissions module + +## zetacored query evidence + +Query for evidence by hash or for all (paginated) submitted evidence + +### Synopsis + +Query for specific submitted evidence by hash or query for all (paginated) evidence: + +Example: +$ zetacored query evidence DF0C23E8634E480F84B9D5674A7CDC9816466DEC28A3358F73260F68D28D7660 +$ zetacored query evidence --page=2 --limit=50 + +``` +zetacored query evidence [flags] +``` + +### Options + +``` + --count-total count total number of records in evidence to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for evidence + --limit uint pagination limit of evidence to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of evidence to query for + -o, --output string Output format (text|json) + --page uint pagination page of evidence to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of evidence to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query](#zetacored-query) - Querying subcommands + +## zetacored query evm + +Querying commands for the evm module + +``` +zetacored query evm [flags] +``` + +### Options + +``` + -h, --help help for evm +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query](#zetacored-query) - Querying subcommands +* [zetacored query evm code](#zetacored-query-evm-code) - Gets code from an account +* [zetacored query evm params](#zetacored-query-evm-params) - Get the evm params +* [zetacored query evm storage](#zetacored-query-evm-storage) - Gets storage for an account with a given key and height + +## zetacored query evm code + +Gets code from an account + +### Synopsis + +Gets code from an account. If the height is not provided, it will use the latest height from context. + +``` +zetacored query evm code ADDRESS [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for code + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query evm](#zetacored-query-evm) - Querying commands for the evm module + +## zetacored query evm params + +Get the evm params + +### Synopsis + +Get the evm parameter values. + +``` +zetacored query evm params [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for params + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query evm](#zetacored-query-evm) - Querying commands for the evm module + +## zetacored query evm storage + +Gets storage for an account with a given key and height + +### Synopsis + +Gets storage for an account with a given key and height. If the height is not provided, it will use the latest height from context. + +``` +zetacored query evm storage ADDRESS KEY [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for storage + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query evm](#zetacored-query-evm) - Querying commands for the evm module + +## zetacored query feemarket + +Querying commands for the fee market module + +``` +zetacored query feemarket [flags] +``` + +### Options + +``` + -h, --help help for feemarket +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query](#zetacored-query) - Querying subcommands +* [zetacored query feemarket base-fee](#zetacored-query-feemarket-base-fee) - Get the base fee amount at a given block height +* [zetacored query feemarket block-gas](#zetacored-query-feemarket-block-gas) - Get the block gas used at a given block height +* [zetacored query feemarket params](#zetacored-query-feemarket-params) - Get the fee market params + +## zetacored query feemarket base-fee + +Get the base fee amount at a given block height + +### Synopsis + +Get the base fee amount at a given block height. +If the height is not provided, it will use the latest height from context. + +``` +zetacored query feemarket base-fee [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for base-fee + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query feemarket](#zetacored-query-feemarket) - Querying commands for the fee market module + +## zetacored query feemarket block-gas + +Get the block gas used at a given block height + +### Synopsis + +Get the block gas used at a given block height. +If the height is not provided, it will use the latest height from context + +``` +zetacored query feemarket block-gas [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for block-gas + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query feemarket](#zetacored-query-feemarket) - Querying commands for the fee market module + +## zetacored query feemarket params + +Get the fee market params + +### Synopsis + +Get the fee market parameter values. + +``` +zetacored query feemarket params [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for params + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query feemarket](#zetacored-query-feemarket) - Querying commands for the fee market module + +## zetacored query fungible + +Querying commands for the fungible module + +``` +zetacored query fungible [flags] +``` + +### Options + +``` + -h, --help help for fungible +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query](#zetacored-query) - Querying subcommands +* [zetacored query fungible code-hash](#zetacored-query-fungible-code-hash) - shows the code hash of an account +* [zetacored query fungible gas-stability-pool-address](#zetacored-query-fungible-gas-stability-pool-address) - query the address of a gas stability pool +* [zetacored query fungible gas-stability-pool-balance](#zetacored-query-fungible-gas-stability-pool-balance) - query the balance of a gas stability pool for a chain +* [zetacored query fungible gas-stability-pool-balances](#zetacored-query-fungible-gas-stability-pool-balances) - query all gas stability pool balances +* [zetacored query fungible list-foreign-coins](#zetacored-query-fungible-list-foreign-coins) - list all ForeignCoins +* [zetacored query fungible show-foreign-coins](#zetacored-query-fungible-show-foreign-coins) - shows a ForeignCoins +* [zetacored query fungible system-contract](#zetacored-query-fungible-system-contract) - query system contract + +## zetacored query fungible code-hash + +shows the code hash of an account + +``` +zetacored query fungible code-hash [address] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for code-hash + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query fungible](#zetacored-query-fungible) - Querying commands for the fungible module + +## zetacored query fungible gas-stability-pool-address + +query the address of a gas stability pool + +``` +zetacored query fungible gas-stability-pool-address [flags] +``` + +### Options + +``` + --count-total count total number of records in gas-stability-pool-address to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for gas-stability-pool-address + --limit uint pagination limit of gas-stability-pool-address to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of gas-stability-pool-address to query for + -o, --output string Output format (text|json) + --page uint pagination page of gas-stability-pool-address to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of gas-stability-pool-address to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query fungible](#zetacored-query-fungible) - Querying commands for the fungible module + +## zetacored query fungible gas-stability-pool-balance + +query the balance of a gas stability pool for a chain + +``` +zetacored query fungible gas-stability-pool-balance [chain-id] [flags] +``` + +### Options + +``` + --count-total count total number of records in gas-stability-pool-balance [chain-id] to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for gas-stability-pool-balance + --limit uint pagination limit of gas-stability-pool-balance [chain-id] to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of gas-stability-pool-balance [chain-id] to query for + -o, --output string Output format (text|json) + --page uint pagination page of gas-stability-pool-balance [chain-id] to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of gas-stability-pool-balance [chain-id] to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query fungible](#zetacored-query-fungible) - Querying commands for the fungible module + +## zetacored query fungible gas-stability-pool-balances + +query all gas stability pool balances + +``` +zetacored query fungible gas-stability-pool-balances [flags] +``` + +### Options + +``` + --count-total count total number of records in gas-stability-pool-balances to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for gas-stability-pool-balances + --limit uint pagination limit of gas-stability-pool-balances to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of gas-stability-pool-balances to query for + -o, --output string Output format (text|json) + --page uint pagination page of gas-stability-pool-balances to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of gas-stability-pool-balances to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query fungible](#zetacored-query-fungible) - Querying commands for the fungible module + +## zetacored query fungible list-foreign-coins + +list all ForeignCoins + +``` +zetacored query fungible list-foreign-coins [flags] +``` + +### Options + +``` + --count-total count total number of records in list-foreign-coins to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for list-foreign-coins + --limit uint pagination limit of list-foreign-coins to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of list-foreign-coins to query for + -o, --output string Output format (text|json) + --page uint pagination page of list-foreign-coins to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of list-foreign-coins to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query fungible](#zetacored-query-fungible) - Querying commands for the fungible module + +## zetacored query fungible show-foreign-coins + +shows a ForeignCoins + +``` +zetacored query fungible show-foreign-coins [index] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for show-foreign-coins + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query fungible](#zetacored-query-fungible) - Querying commands for the fungible module + +## zetacored query fungible system-contract + +query system contract + +``` +zetacored query fungible system-contract [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for system-contract + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query fungible](#zetacored-query-fungible) - Querying commands for the fungible module + +## zetacored query gov + +Querying commands for the governance module + +``` +zetacored query gov [flags] +``` + +### Options + +``` + -h, --help help for gov +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query](#zetacored-query) - Querying subcommands +* [zetacored query gov deposit](#zetacored-query-gov-deposit) - Query details of a deposit +* [zetacored query gov deposits](#zetacored-query-gov-deposits) - Query deposits on a proposal +* [zetacored query gov param](#zetacored-query-gov-param) - Query the parameters (voting|tallying|deposit) of the governance process +* [zetacored query gov params](#zetacored-query-gov-params) - Query the parameters of the governance process +* [zetacored query gov proposal](#zetacored-query-gov-proposal) - Query details of a single proposal +* [zetacored query gov proposals](#zetacored-query-gov-proposals) - Query proposals with optional filters +* [zetacored query gov proposer](#zetacored-query-gov-proposer) - Query the proposer of a governance proposal +* [zetacored query gov tally](#zetacored-query-gov-tally) - Get the tally of a proposal vote +* [zetacored query gov vote](#zetacored-query-gov-vote) - Query details of a single vote +* [zetacored query gov votes](#zetacored-query-gov-votes) - Query votes on a proposal + +## zetacored query gov deposit + +Query details of a deposit + +### Synopsis + +Query details for a single proposal deposit on a proposal by its identifier. + +Example: +$ zetacored query gov deposit 1 cosmos1skjwj5whet0lpe65qaq4rpq03hjxlwd9nf39lk + +``` +zetacored query gov deposit [proposal-id] [depositer-addr] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for deposit + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query gov](#zetacored-query-gov) - Querying commands for the governance module + +## zetacored query gov deposits + +Query deposits on a proposal + +### Synopsis + +Query details for all deposits on a proposal. +You can find the proposal-id by running "zetacored query gov proposals". + +Example: +$ zetacored query gov deposits 1 + +``` +zetacored query gov deposits [proposal-id] [flags] +``` + +### Options + +``` + --count-total count total number of records in deposits to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for deposits + --limit uint pagination limit of deposits to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of deposits to query for + -o, --output string Output format (text|json) + --page uint pagination page of deposits to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of deposits to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query gov](#zetacored-query-gov) - Querying commands for the governance module + +## zetacored query gov param + +Query the parameters (voting|tallying|deposit) of the governance process + +### Synopsis + +Query the all the parameters for the governance process. +Example: +$ zetacored query gov param voting +$ zetacored query gov param tallying +$ zetacored query gov param deposit + +``` +zetacored query gov param [param-type] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for param + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query gov](#zetacored-query-gov) - Querying commands for the governance module + +## zetacored query gov params + +Query the parameters of the governance process + +### Synopsis + +Query the all the parameters for the governance process. + +Example: +$ zetacored query gov params + +``` +zetacored query gov params [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for params + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query gov](#zetacored-query-gov) - Querying commands for the governance module + +## zetacored query gov proposal + +Query details of a single proposal + +### Synopsis + +Query details for a proposal. You can find the +proposal-id by running "zetacored query gov proposals". + +Example: +$ zetacored query gov proposal 1 + +``` +zetacored query gov proposal [proposal-id] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for proposal + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query gov](#zetacored-query-gov) - Querying commands for the governance module + +## zetacored query gov proposals + +Query proposals with optional filters + +### Synopsis + +Query for a all paginated proposals that match optional filters: + +Example: +$ zetacored query gov proposals --depositor cosmos1skjwj5whet0lpe65qaq4rpq03hjxlwd9nf39lk +$ zetacored query gov proposals --voter cosmos1skjwj5whet0lpe65qaq4rpq03hjxlwd9nf39lk +$ zetacored query gov proposals --status (DepositPeriod|VotingPeriod|Passed|Rejected) +$ zetacored query gov proposals --page=2 --limit=100 + +``` +zetacored query gov proposals [flags] +``` + +### Options + +``` + --count-total count total number of records in proposals to query for + --depositor string (optional) filter by proposals deposited on by depositor + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for proposals + --limit uint pagination limit of proposals to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of proposals to query for + -o, --output string Output format (text|json) + --page uint pagination page of proposals to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of proposals to query for + --reverse results are sorted in descending order + --status string (optional) filter proposals by proposal status, status: deposit_period/voting_period/passed/rejected + --voter string (optional) filter by proposals voted on by voted +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query gov](#zetacored-query-gov) - Querying commands for the governance module + +## zetacored query gov proposer + +Query the proposer of a governance proposal + +### Synopsis + +Query which address proposed a proposal with a given ID. + +Example: +$ zetacored query gov proposer 1 + +``` +zetacored query gov proposer [proposal-id] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for proposer + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query gov](#zetacored-query-gov) - Querying commands for the governance module + +## zetacored query gov tally + +Get the tally of a proposal vote + +### Synopsis + +Query tally of votes on a proposal. You can find +the proposal-id by running "zetacored query gov proposals". + +Example: +$ zetacored query gov tally 1 + +``` +zetacored query gov tally [proposal-id] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for tally + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query gov](#zetacored-query-gov) - Querying commands for the governance module + +## zetacored query gov vote + +Query details of a single vote + +### Synopsis + +Query details for a single vote on a proposal given its identifier. + +Example: +$ zetacored query gov vote 1 cosmos1skjwj5whet0lpe65qaq4rpq03hjxlwd9nf39lk + +``` +zetacored query gov vote [proposal-id] [voter-addr] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for vote + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query gov](#zetacored-query-gov) - Querying commands for the governance module + +## zetacored query gov votes + +Query votes on a proposal + +### Synopsis + +Query vote details for a single proposal by its identifier. + +Example: +$ zetacored query gov votes 1 +$ zetacored query gov votes 1 --page=2 --limit=100 + +``` +zetacored query gov votes [proposal-id] [flags] +``` + +### Options + +``` + --count-total count total number of records in votes to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for votes + --limit uint pagination limit of votes to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of votes to query for + -o, --output string Output format (text|json) + --page uint pagination page of votes to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of votes to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query gov](#zetacored-query-gov) - Querying commands for the governance module + +## zetacored query group + +Querying commands for the group module + +``` +zetacored query group [flags] +``` + +### Options + +``` + -h, --help help for group +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query](#zetacored-query) - Querying subcommands +* [zetacored query group group-info](#zetacored-query-group-group-info) - Query for group info by group id +* [zetacored query group group-members](#zetacored-query-group-group-members) - Query for group members by group id with pagination flags +* [zetacored query group group-policies-by-admin](#zetacored-query-group-group-policies-by-admin) - Query for group policies by admin account address with pagination flags +* [zetacored query group group-policies-by-group](#zetacored-query-group-group-policies-by-group) - Query for group policies by group id with pagination flags +* [zetacored query group group-policy-info](#zetacored-query-group-group-policy-info) - Query for group policy info by account address of group policy +* [zetacored query group groups](#zetacored-query-group-groups) - Query for groups present in the state +* [zetacored query group groups-by-admin](#zetacored-query-group-groups-by-admin) - Query for groups by admin account address with pagination flags +* [zetacored query group groups-by-member](#zetacored-query-group-groups-by-member) - Query for groups by member address with pagination flags +* [zetacored query group proposal](#zetacored-query-group-proposal) - Query for proposal by id +* [zetacored query group proposals-by-group-policy](#zetacored-query-group-proposals-by-group-policy) - Query for proposals by account address of group policy with pagination flags +* [zetacored query group tally-result](#zetacored-query-group-tally-result) - Query tally result of proposal +* [zetacored query group vote](#zetacored-query-group-vote) - Query for vote by proposal id and voter account address +* [zetacored query group votes-by-proposal](#zetacored-query-group-votes-by-proposal) - Query for votes by proposal id with pagination flags +* [zetacored query group votes-by-voter](#zetacored-query-group-votes-by-voter) - Query for votes by voter account address with pagination flags + +## zetacored query group group-info + +Query for group info by group id + +``` +zetacored query group group-info [id] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for group-info + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query group](#zetacored-query-group) - Querying commands for the group module + +## zetacored query group group-members + +Query for group members by group id with pagination flags + +``` +zetacored query group group-members [id] [flags] +``` + +### Options + +``` + --count-total count total number of records in group-members to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for group-members + --limit uint pagination limit of group-members to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of group-members to query for + -o, --output string Output format (text|json) + --page uint pagination page of group-members to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of group-members to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query group](#zetacored-query-group) - Querying commands for the group module + +## zetacored query group group-policies-by-admin + +Query for group policies by admin account address with pagination flags + +``` +zetacored query group group-policies-by-admin [admin] [flags] +``` + +### Options + +``` + --count-total count total number of records in group-policies-by-admin to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for group-policies-by-admin + --limit uint pagination limit of group-policies-by-admin to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of group-policies-by-admin to query for + -o, --output string Output format (text|json) + --page uint pagination page of group-policies-by-admin to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of group-policies-by-admin to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query group](#zetacored-query-group) - Querying commands for the group module + +## zetacored query group group-policies-by-group + +Query for group policies by group id with pagination flags + +``` +zetacored query group group-policies-by-group [group-id] [flags] +``` + +### Options + +``` + --count-total count total number of records in groups-policies-by-group to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for group-policies-by-group + --limit uint pagination limit of groups-policies-by-group to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of groups-policies-by-group to query for + -o, --output string Output format (text|json) + --page uint pagination page of groups-policies-by-group to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of groups-policies-by-group to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query group](#zetacored-query-group) - Querying commands for the group module + +## zetacored query group group-policy-info + +Query for group policy info by account address of group policy + +``` +zetacored query group group-policy-info [group-policy-account] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for group-policy-info + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query group](#zetacored-query-group) - Querying commands for the group module + +## zetacored query group groups + +Query for groups present in the state + +``` +zetacored query group groups [flags] +``` + +### Options + +``` + --count-total count total number of records in groups to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for groups + --limit uint pagination limit of groups to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of groups to query for + -o, --output string Output format (text|json) + --page uint pagination page of groups to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of groups to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query group](#zetacored-query-group) - Querying commands for the group module + +## zetacored query group groups-by-admin + +Query for groups by admin account address with pagination flags + +``` +zetacored query group groups-by-admin [admin] [flags] +``` + +### Options + +``` + --count-total count total number of records in groups-by-admin to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for groups-by-admin + --limit uint pagination limit of groups-by-admin to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of groups-by-admin to query for + -o, --output string Output format (text|json) + --page uint pagination page of groups-by-admin to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of groups-by-admin to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query group](#zetacored-query-group) - Querying commands for the group module + +## zetacored query group groups-by-member + +Query for groups by member address with pagination flags + +``` +zetacored query group groups-by-member [address] [flags] +``` + +### Options + +``` + --count-total count total number of records in groups-by-members to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for groups-by-member + --limit uint pagination limit of groups-by-members to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of groups-by-members to query for + -o, --output string Output format (text|json) + --page uint pagination page of groups-by-members to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of groups-by-members to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query group](#zetacored-query-group) - Querying commands for the group module + +## zetacored query group proposal + +Query for proposal by id + +``` +zetacored query group proposal [id] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for proposal + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query group](#zetacored-query-group) - Querying commands for the group module + +## zetacored query group proposals-by-group-policy + +Query for proposals by account address of group policy with pagination flags + +``` +zetacored query group proposals-by-group-policy [group-policy-account] [flags] +``` + +### Options + +``` + --count-total count total number of records in proposals-by-group-policy to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for proposals-by-group-policy + --limit uint pagination limit of proposals-by-group-policy to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of proposals-by-group-policy to query for + -o, --output string Output format (text|json) + --page uint pagination page of proposals-by-group-policy to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of proposals-by-group-policy to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query group](#zetacored-query-group) - Querying commands for the group module + +## zetacored query group tally-result + +Query tally result of proposal + +``` +zetacored query group tally-result [proposal-id] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for tally-result + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query group](#zetacored-query-group) - Querying commands for the group module + +## zetacored query group vote + +Query for vote by proposal id and voter account address + +``` +zetacored query group vote [proposal-id] [voter] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for vote + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query group](#zetacored-query-group) - Querying commands for the group module + +## zetacored query group votes-by-proposal + +Query for votes by proposal id with pagination flags + +``` +zetacored query group votes-by-proposal [proposal-id] [flags] +``` + +### Options + +``` + --count-total count total number of records in votes-by-proposal to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for votes-by-proposal + --limit uint pagination limit of votes-by-proposal to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of votes-by-proposal to query for + -o, --output string Output format (text|json) + --page uint pagination page of votes-by-proposal to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of votes-by-proposal to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query group](#zetacored-query-group) - Querying commands for the group module + +## zetacored query group votes-by-voter + +Query for votes by voter account address with pagination flags + +``` +zetacored query group votes-by-voter [voter] [flags] +``` + +### Options + +``` + --count-total count total number of records in votes-by-voter to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for votes-by-voter + --limit uint pagination limit of votes-by-voter to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of votes-by-voter to query for + -o, --output string Output format (text|json) + --page uint pagination page of votes-by-voter to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of votes-by-voter to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query group](#zetacored-query-group) - Querying commands for the group module + +## zetacored query lightclient + +Querying commands for the lightclient module + +``` +zetacored query lightclient [flags] +``` + +### Options + +``` + -h, --help help for lightclient +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query](#zetacored-query) - Querying subcommands +* [zetacored query lightclient list-block-header](#zetacored-query-lightclient-list-block-header) - List all the block headers +* [zetacored query lightclient list-chain-state](#zetacored-query-lightclient-list-chain-state) - List all the chain states +* [zetacored query lightclient show-block-header](#zetacored-query-lightclient-show-block-header) - Show a block header from its hash +* [zetacored query lightclient show-chain-state](#zetacored-query-lightclient-show-chain-state) - Show a chain state from its chain id +* [zetacored query lightclient show-header-enabled-chains](#zetacored-query-lightclient-show-header-enabled-chains) - Show the verification flags + +## zetacored query lightclient list-block-header + +List all the block headers + +``` +zetacored query lightclient list-block-header [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for list-block-header + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query lightclient](#zetacored-query-lightclient) - Querying commands for the lightclient module + +## zetacored query lightclient list-chain-state + +List all the chain states + +``` +zetacored query lightclient list-chain-state [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for list-chain-state + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query lightclient](#zetacored-query-lightclient) - Querying commands for the lightclient module + +## zetacored query lightclient show-block-header + +Show a block header from its hash + +``` +zetacored query lightclient show-block-header [block-hash] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for show-block-header + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query lightclient](#zetacored-query-lightclient) - Querying commands for the lightclient module + +## zetacored query lightclient show-chain-state + +Show a chain state from its chain id + +``` +zetacored query lightclient show-chain-state [chain-id] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for show-chain-state + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query lightclient](#zetacored-query-lightclient) - Querying commands for the lightclient module + +## zetacored query lightclient show-header-enabled-chains + +Show the verification flags + +``` +zetacored query lightclient show-header-enabled-chains [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for show-header-enabled-chains + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query lightclient](#zetacored-query-lightclient) - Querying commands for the lightclient module + +## zetacored query observer + +Querying commands for the observer module + +``` +zetacored query observer [flags] +``` + +### Options + +``` + -h, --help help for observer +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query](#zetacored-query) - Querying subcommands +* [zetacored query observer get-historical-tss-address](#zetacored-query-observer-get-historical-tss-address) - Query tss address by finalized zeta height (for historical tss addresses) +* [zetacored query observer get-tss-address](#zetacored-query-observer-get-tss-address) - Query current tss address +* [zetacored query observer list-ballots](#zetacored-query-observer-list-ballots) - Query all ballots +* [zetacored query observer list-blame](#zetacored-query-observer-list-blame) - Query AllBlameRecords +* [zetacored query observer list-blame-by-msg](#zetacored-query-observer-list-blame-by-msg) - Query AllBlameRecords +* [zetacored query observer list-chain-nonces](#zetacored-query-observer-list-chain-nonces) - list all chainNonces +* [zetacored query observer list-chain-params](#zetacored-query-observer-list-chain-params) - Query GetChainParams +* [zetacored query observer list-chains](#zetacored-query-observer-list-chains) - list all SupportedChains +* [zetacored query observer list-node-account](#zetacored-query-observer-list-node-account) - list all NodeAccount +* [zetacored query observer list-observer-set](#zetacored-query-observer-list-observer-set) - Query observer set +* [zetacored query observer list-pending-nonces](#zetacored-query-observer-list-pending-nonces) - shows a chainNonces +* [zetacored query observer list-tss-funds-migrator](#zetacored-query-observer-list-tss-funds-migrator) - list all tss funds migrators +* [zetacored query observer list-tss-history](#zetacored-query-observer-list-tss-history) - show historical list of TSS +* [zetacored query observer show-ballot](#zetacored-query-observer-show-ballot) - Query BallotByIdentifier +* [zetacored query observer show-blame](#zetacored-query-observer-show-blame) - Query BlameByIdentifier +* [zetacored query observer show-chain-nonces](#zetacored-query-observer-show-chain-nonces) - shows a chainNonces +* [zetacored query observer show-chain-params](#zetacored-query-observer-show-chain-params) - Query GetChainParamsForChain +* [zetacored query observer show-crosschain-flags](#zetacored-query-observer-show-crosschain-flags) - shows the crosschain flags +* [zetacored query observer show-keygen](#zetacored-query-observer-show-keygen) - shows keygen +* [zetacored query observer show-node-account](#zetacored-query-observer-show-node-account) - shows a NodeAccount +* [zetacored query observer show-observer-count](#zetacored-query-observer-show-observer-count) - Query show-observer-count +* [zetacored query observer show-operational-flags](#zetacored-query-observer-show-operational-flags) - shows the operational flags +* [zetacored query observer show-tss](#zetacored-query-observer-show-tss) - shows a TSS +* [zetacored query observer show-tss-funds-migrator](#zetacored-query-observer-show-tss-funds-migrator) - show the tss funds migrator for a chain + +## zetacored query observer get-historical-tss-address + +Query tss address by finalized zeta height (for historical tss addresses) + +``` +zetacored query observer get-historical-tss-address [finalizedZetaHeight] [bitcoinChainId] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for get-historical-tss-address + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query observer](#zetacored-query-observer) - Querying commands for the observer module + +## zetacored query observer get-tss-address + +Query current tss address + +``` +zetacored query observer get-tss-address [bitcoinChainId]] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for get-tss-address + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query observer](#zetacored-query-observer) - Querying commands for the observer module + +## zetacored query observer list-ballots + +Query all ballots + +``` +zetacored query observer list-ballots [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for list-ballots + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query observer](#zetacored-query-observer) - Querying commands for the observer module + +## zetacored query observer list-blame + +Query AllBlameRecords + +``` +zetacored query observer list-blame [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for list-blame + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query observer](#zetacored-query-observer) - Querying commands for the observer module + +## zetacored query observer list-blame-by-msg + +Query AllBlameRecords + +``` +zetacored query observer list-blame-by-msg [chainId] [nonce] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for list-blame-by-msg + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query observer](#zetacored-query-observer) - Querying commands for the observer module + +## zetacored query observer list-chain-nonces + +list all chainNonces + +``` +zetacored query observer list-chain-nonces [flags] +``` + +### Options + +``` + --count-total count total number of records in list-chain-nonces to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for list-chain-nonces + --limit uint pagination limit of list-chain-nonces to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of list-chain-nonces to query for + -o, --output string Output format (text|json) + --page uint pagination page of list-chain-nonces to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of list-chain-nonces to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query observer](#zetacored-query-observer) - Querying commands for the observer module + +## zetacored query observer list-chain-params + +Query GetChainParams + +``` +zetacored query observer list-chain-params [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for list-chain-params + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query observer](#zetacored-query-observer) - Querying commands for the observer module + +## zetacored query observer list-chains + +list all SupportedChains + +``` +zetacored query observer list-chains [flags] +``` + +### Options + +``` + --count-total count total number of records in list-chains to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for list-chains + --limit uint pagination limit of list-chains to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of list-chains to query for + -o, --output string Output format (text|json) + --page uint pagination page of list-chains to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of list-chains to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query observer](#zetacored-query-observer) - Querying commands for the observer module + +## zetacored query observer list-node-account + +list all NodeAccount + +``` +zetacored query observer list-node-account [flags] +``` + +### Options + +``` + --count-total count total number of records in list-node-account to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for list-node-account + --limit uint pagination limit of list-node-account to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of list-node-account to query for + -o, --output string Output format (text|json) + --page uint pagination page of list-node-account to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of list-node-account to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query observer](#zetacored-query-observer) - Querying commands for the observer module + +## zetacored query observer list-observer-set + +Query observer set + +``` +zetacored query observer list-observer-set [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for list-observer-set + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query observer](#zetacored-query-observer) - Querying commands for the observer module + +## zetacored query observer list-pending-nonces + +shows a chainNonces + +``` +zetacored query observer list-pending-nonces [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for list-pending-nonces + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query observer](#zetacored-query-observer) - Querying commands for the observer module + +## zetacored query observer list-tss-funds-migrator + +list all tss funds migrators + +``` +zetacored query observer list-tss-funds-migrator [flags] +``` + +### Options + +``` + --count-total count total number of records in list-tss-funds-migrator to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for list-tss-funds-migrator + --limit uint pagination limit of list-tss-funds-migrator to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of list-tss-funds-migrator to query for + -o, --output string Output format (text|json) + --page uint pagination page of list-tss-funds-migrator to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of list-tss-funds-migrator to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query observer](#zetacored-query-observer) - Querying commands for the observer module + +## zetacored query observer list-tss-history + +show historical list of TSS + +``` +zetacored query observer list-tss-history [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for list-tss-history + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query observer](#zetacored-query-observer) - Querying commands for the observer module + +## zetacored query observer show-ballot + +Query BallotByIdentifier + +``` +zetacored query observer show-ballot [ballot-identifier] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for show-ballot + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query observer](#zetacored-query-observer) - Querying commands for the observer module + +## zetacored query observer show-blame + +Query BlameByIdentifier + +``` +zetacored query observer show-blame [blame-identifier] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for show-blame + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query observer](#zetacored-query-observer) - Querying commands for the observer module + +## zetacored query observer show-chain-nonces + +shows a chainNonces + +``` +zetacored query observer show-chain-nonces [chain-id] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for show-chain-nonces + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query observer](#zetacored-query-observer) - Querying commands for the observer module + +## zetacored query observer show-chain-params + +Query GetChainParamsForChain + +``` +zetacored query observer show-chain-params [chain-id] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for show-chain-params + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query observer](#zetacored-query-observer) - Querying commands for the observer module + +## zetacored query observer show-crosschain-flags + +shows the crosschain flags + +``` +zetacored query observer show-crosschain-flags [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for show-crosschain-flags + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query observer](#zetacored-query-observer) - Querying commands for the observer module + +## zetacored query observer show-keygen + +shows keygen + +``` +zetacored query observer show-keygen [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for show-keygen + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query observer](#zetacored-query-observer) - Querying commands for the observer module + +## zetacored query observer show-node-account + +shows a NodeAccount + +``` +zetacored query observer show-node-account [operator_address] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for show-node-account + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query observer](#zetacored-query-observer) - Querying commands for the observer module + +## zetacored query observer show-observer-count + +Query show-observer-count + +``` +zetacored query observer show-observer-count [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for show-observer-count + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query observer](#zetacored-query-observer) - Querying commands for the observer module + +## zetacored query observer show-operational-flags + +shows the operational flags + +``` +zetacored query observer show-operational-flags [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for show-operational-flags + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query observer](#zetacored-query-observer) - Querying commands for the observer module + +## zetacored query observer show-tss + +shows a TSS + +``` +zetacored query observer show-tss [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for show-tss + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query observer](#zetacored-query-observer) - Querying commands for the observer module + +## zetacored query observer show-tss-funds-migrator + +show the tss funds migrator for a chain + +``` +zetacored query observer show-tss-funds-migrator [chain-id] [flags] +``` + +### Options + +``` + --count-total count total number of records in show-tss-funds-migrator [chain-id] to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for show-tss-funds-migrator + --limit uint pagination limit of show-tss-funds-migrator [chain-id] to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of show-tss-funds-migrator [chain-id] to query for + -o, --output string Output format (text|json) + --page uint pagination page of show-tss-funds-migrator [chain-id] to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of show-tss-funds-migrator [chain-id] to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query observer](#zetacored-query-observer) - Querying commands for the observer module + +## zetacored query params + +Querying commands for the params module + +``` +zetacored query params [flags] +``` + +### Options + +``` + -h, --help help for params +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query](#zetacored-query) - Querying subcommands +* [zetacored query params subspace](#zetacored-query-params-subspace) - Query for raw parameters by subspace and key + +## zetacored query params subspace + +Query for raw parameters by subspace and key + +``` +zetacored query params subspace [subspace] [key] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for subspace + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query params](#zetacored-query-params) - Querying commands for the params module + +## zetacored query slashing + +Querying commands for the slashing module + +``` +zetacored query slashing [flags] +``` + +### Options + +``` + -h, --help help for slashing +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query](#zetacored-query) - Querying subcommands +* [zetacored query slashing params](#zetacored-query-slashing-params) - Query the current slashing parameters +* [zetacored query slashing signing-info](#zetacored-query-slashing-signing-info) - Query a validator's signing information +* [zetacored query slashing signing-infos](#zetacored-query-slashing-signing-infos) - Query signing information of all validators + +## zetacored query slashing params + +Query the current slashing parameters + +### Synopsis + +Query genesis parameters for the slashing module: + +$ zetacored query slashing params + +``` +zetacored query slashing params [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for params + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query slashing](#zetacored-query-slashing) - Querying commands for the slashing module + +## zetacored query slashing signing-info + +Query a validator's signing information + +### Synopsis + +Use a validators' consensus public key to find the signing-info for that validator: + +$ zetacored query slashing signing-info '{"@type":"/cosmos.crypto.ed25519.PubKey","key":"OauFcTKbN5Lx3fJL689cikXBqe+hcp6Y+x0rYUdR9Jk="}' + +``` +zetacored query slashing signing-info [validator-conspub] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for signing-info + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query slashing](#zetacored-query-slashing) - Querying commands for the slashing module + +## zetacored query slashing signing-infos + +Query signing information of all validators + +### Synopsis + +signing infos of validators: + +$ zetacored query slashing signing-infos + +``` +zetacored query slashing signing-infos [flags] +``` + +### Options + +``` + --count-total count total number of records in signing infos to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for signing-infos + --limit uint pagination limit of signing infos to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of signing infos to query for + -o, --output string Output format (text|json) + --page uint pagination page of signing infos to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of signing infos to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query slashing](#zetacored-query-slashing) - Querying commands for the slashing module + +## zetacored query staking + +Querying commands for the staking module + +``` +zetacored query staking [flags] +``` + +### Options + +``` + -h, --help help for staking +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query](#zetacored-query) - Querying subcommands +* [zetacored query staking delegation](#zetacored-query-staking-delegation) - Query a delegation based on address and validator address +* [zetacored query staking delegations](#zetacored-query-staking-delegations) - Query all delegations made by one delegator +* [zetacored query staking delegations-to](#zetacored-query-staking-delegations-to) - Query all delegations made to one validator +* [zetacored query staking historical-info](#zetacored-query-staking-historical-info) - Query historical info at given height +* [zetacored query staking params](#zetacored-query-staking-params) - Query the current staking parameters information +* [zetacored query staking pool](#zetacored-query-staking-pool) - Query the current staking pool values +* [zetacored query staking redelegation](#zetacored-query-staking-redelegation) - Query a redelegation record based on delegator and a source and destination validator address +* [zetacored query staking redelegations](#zetacored-query-staking-redelegations) - Query all redelegations records for one delegator +* [zetacored query staking redelegations-from](#zetacored-query-staking-redelegations-from) - Query all outgoing redelegatations from a validator +* [zetacored query staking unbonding-delegation](#zetacored-query-staking-unbonding-delegation) - Query an unbonding-delegation record based on delegator and validator address +* [zetacored query staking unbonding-delegations](#zetacored-query-staking-unbonding-delegations) - Query all unbonding-delegations records for one delegator +* [zetacored query staking unbonding-delegations-from](#zetacored-query-staking-unbonding-delegations-from) - Query all unbonding delegatations from a validator +* [zetacored query staking validator](#zetacored-query-staking-validator) - Query a validator +* [zetacored query staking validators](#zetacored-query-staking-validators) - Query for all validators + +## zetacored query staking delegation + +Query a delegation based on address and validator address + +### Synopsis + +Query delegations for an individual delegator on an individual validator. + +Example: +$ zetacored query staking delegation zeta1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p zetavaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj + +``` +zetacored query staking delegation [delegator-addr] [validator-addr] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for delegation + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query staking](#zetacored-query-staking) - Querying commands for the staking module + +## zetacored query staking delegations + +Query all delegations made by one delegator + +### Synopsis + +Query delegations for an individual delegator on all validators. + +Example: +$ zetacored query staking delegations zeta1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p + +``` +zetacored query staking delegations [delegator-addr] [flags] +``` + +### Options + +``` + --count-total count total number of records in delegations to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for delegations + --limit uint pagination limit of delegations to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of delegations to query for + -o, --output string Output format (text|json) + --page uint pagination page of delegations to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of delegations to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query staking](#zetacored-query-staking) - Querying commands for the staking module + +## zetacored query staking delegations-to + +Query all delegations made to one validator + +### Synopsis + +Query delegations on an individual validator. + +Example: +$ zetacored query staking delegations-to zetavaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj + +``` +zetacored query staking delegations-to [validator-addr] [flags] +``` + +### Options + +``` + --count-total count total number of records in validator delegations to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for delegations-to + --limit uint pagination limit of validator delegations to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of validator delegations to query for + -o, --output string Output format (text|json) + --page uint pagination page of validator delegations to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of validator delegations to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query staking](#zetacored-query-staking) - Querying commands for the staking module + +## zetacored query staking historical-info + +Query historical info at given height + +### Synopsis + +Query historical info at given height. + +Example: +$ zetacored query staking historical-info 5 + +``` +zetacored query staking historical-info [height] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for historical-info + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query staking](#zetacored-query-staking) - Querying commands for the staking module + +## zetacored query staking params + +Query the current staking parameters information + +### Synopsis + +Query values set as staking parameters. + +Example: +$ zetacored query staking params + +``` +zetacored query staking params [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for params + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query staking](#zetacored-query-staking) - Querying commands for the staking module + +## zetacored query staking pool + +Query the current staking pool values + +### Synopsis + +Query values for amounts stored in the staking pool. + +Example: +$ zetacored query staking pool + +``` +zetacored query staking pool [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for pool + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query staking](#zetacored-query-staking) - Querying commands for the staking module + +## zetacored query staking redelegation + +Query a redelegation record based on delegator and a source and destination validator address + +### Synopsis + +Query a redelegation record for an individual delegator between a source and destination validator. + +Example: +$ zetacored query staking redelegation zeta1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p zetavaloper1l2rsakp388kuv9k8qzq6lrm9taddae7fpx59wm zetavaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj + +``` +zetacored query staking redelegation [delegator-addr] [src-validator-addr] [dst-validator-addr] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for redelegation + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query staking](#zetacored-query-staking) - Querying commands for the staking module + +## zetacored query staking redelegations + +Query all redelegations records for one delegator + +### Synopsis + +Query all redelegation records for an individual delegator. + +Example: +$ zetacored query staking redelegation zeta1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p + +``` +zetacored query staking redelegations [delegator-addr] [flags] +``` + +### Options + +``` + --count-total count total number of records in delegator redelegations to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for redelegations + --limit uint pagination limit of delegator redelegations to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of delegator redelegations to query for + -o, --output string Output format (text|json) + --page uint pagination page of delegator redelegations to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of delegator redelegations to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query staking](#zetacored-query-staking) - Querying commands for the staking module + +## zetacored query staking redelegations-from + +Query all outgoing redelegatations from a validator + +### Synopsis + +Query delegations that are redelegating _from_ a validator. + +Example: +$ zetacored query staking redelegations-from zetavaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj + +``` +zetacored query staking redelegations-from [validator-addr] [flags] +``` + +### Options + +``` + --count-total count total number of records in validator redelegations to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for redelegations-from + --limit uint pagination limit of validator redelegations to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of validator redelegations to query for + -o, --output string Output format (text|json) + --page uint pagination page of validator redelegations to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of validator redelegations to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query staking](#zetacored-query-staking) - Querying commands for the staking module + +## zetacored query staking unbonding-delegation + +Query an unbonding-delegation record based on delegator and validator address + +### Synopsis + +Query unbonding delegations for an individual delegator on an individual validator. + +Example: +$ zetacored query staking unbonding-delegation zeta1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p zetavaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj + +``` +zetacored query staking unbonding-delegation [delegator-addr] [validator-addr] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for unbonding-delegation + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query staking](#zetacored-query-staking) - Querying commands for the staking module + +## zetacored query staking unbonding-delegations + +Query all unbonding-delegations records for one delegator + +### Synopsis + +Query unbonding delegations for an individual delegator. + +Example: +$ zetacored query staking unbonding-delegations zeta1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p + +``` +zetacored query staking unbonding-delegations [delegator-addr] [flags] +``` + +### Options + +``` + --count-total count total number of records in unbonding delegations to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for unbonding-delegations + --limit uint pagination limit of unbonding delegations to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of unbonding delegations to query for + -o, --output string Output format (text|json) + --page uint pagination page of unbonding delegations to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of unbonding delegations to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query staking](#zetacored-query-staking) - Querying commands for the staking module + +## zetacored query staking unbonding-delegations-from + +Query all unbonding delegatations from a validator + +### Synopsis + +Query delegations that are unbonding _from_ a validator. + +Example: +$ zetacored query staking unbonding-delegations-from zetavaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj + +``` +zetacored query staking unbonding-delegations-from [validator-addr] [flags] +``` + +### Options + +``` + --count-total count total number of records in unbonding delegations to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for unbonding-delegations-from + --limit uint pagination limit of unbonding delegations to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of unbonding delegations to query for + -o, --output string Output format (text|json) + --page uint pagination page of unbonding delegations to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of unbonding delegations to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query staking](#zetacored-query-staking) - Querying commands for the staking module + +## zetacored query staking validator + +Query a validator + +### Synopsis + +Query details about an individual validator. + +Example: +$ zetacored query staking validator zetavaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj + +``` +zetacored query staking validator [validator-addr] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for validator + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query staking](#zetacored-query-staking) - Querying commands for the staking module + +## zetacored query staking validators + +Query for all validators + +### Synopsis + +Query details about all validators on a network. + +Example: +$ zetacored query staking validators + +``` +zetacored query staking validators [flags] +``` + +### Options + +``` + --count-total count total number of records in validators to query for + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for validators + --limit uint pagination limit of validators to query for (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + --offset uint pagination offset of validators to query for + -o, --output string Output format (text|json) + --page uint pagination page of validators to query for. This sets offset to a multiple of limit (default 1) + --page-key string pagination page-key of validators to query for + --reverse results are sorted in descending order +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query staking](#zetacored-query-staking) - Querying commands for the staking module + +## zetacored query tendermint-validator-set + +Get the full tendermint validator set at given height + +``` +zetacored query tendermint-validator-set [height] [flags] +``` + +### Options + +``` + -h, --help help for tendermint-validator-set + --limit int Query number of results returned per page (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) + --page int Query a specific page of paginated results (default 1) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query](#zetacored-query) - Querying subcommands + +## zetacored query tx + +Query for a transaction by hash, "[addr]/[seq]" combination or comma-separated signatures in a committed block + +### Synopsis + +Example: +$ zetacored query tx [hash] +$ zetacored query tx --type=acc_seq [addr]/[sequence] +$ zetacored query tx --type=signature [sig1_base64],[sig2_base64...] + +``` +zetacored query tx --type=[hash|acc_seq|signature] [hash|acc_seq|signature] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for tx + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) + --type string The type to be used when querying tx, can be one of "hash", "acc_seq", "signature" +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query](#zetacored-query) - Querying subcommands + +## zetacored query txs + +Query for paginated transactions that match a set of events + +### Synopsis + +Search for transactions that match the exact given events where results are paginated. +Each event takes the form of '{eventType}.{eventAttribute}={value}'. Please refer +to each module's documentation for the full set of events to query for. Each module +documents its respective events under 'xx_events.md'. + +Example: +$ zetacored query txs --events 'message.sender=cosmos1...&message.action=withdraw_delegator_reward' --page 1 --limit 30 + +``` +zetacored query txs [flags] +``` + +### Options + +``` + --events string list of transaction events in the form of {eventType}.{eventAttribute}={value} + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for txs + --limit int Query number of transactions results per page returned (default 100) + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) + --page int Query a specific page of paginated results (default 1) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query](#zetacored-query) - Querying subcommands + +## zetacored query upgrade + +Querying commands for the upgrade module + +### Options + +``` + -h, --help help for upgrade +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query](#zetacored-query) - Querying subcommands +* [zetacored query upgrade applied](#zetacored-query-upgrade-applied) - block header for height at which a completed upgrade was applied +* [zetacored query upgrade module_versions](#zetacored-query-upgrade-module-versions) - get the list of module versions +* [zetacored query upgrade plan](#zetacored-query-upgrade-plan) - get upgrade plan (if one exists) + +## zetacored query upgrade applied + +block header for height at which a completed upgrade was applied + +### Synopsis + +If upgrade-name was previously executed on the chain, this returns the header for the block at which it was applied. +This helps a client determine which binary was valid over a given range of blocks, as well as more context to understand past migrations. + +``` +zetacored query upgrade applied [upgrade-name] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for applied + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query upgrade](#zetacored-query-upgrade) - Querying commands for the upgrade module + +## zetacored query upgrade module_versions + +get the list of module versions + +### Synopsis + +Gets a list of module names and their respective consensus versions. +Following the command with a specific module name will return only +that module's information. + +``` +zetacored query upgrade module_versions [optional module_name] [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for module_versions + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query upgrade](#zetacored-query-upgrade) - Querying commands for the upgrade module + +## zetacored query upgrade plan + +get upgrade plan (if one exists) + +### Synopsis + +Gets the currently scheduled upgrade plan, if one exists + +``` +zetacored query upgrade plan [flags] +``` + +### Options + +``` + --grpc-addr string the gRPC endpoint to use for this chain + --grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS + --height int Use a specific height to query state at (this can error if the node is pruning state) + -h, --help help for plan + --node string [host]:[port] to Tendermint RPC interface for this chain + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored query upgrade](#zetacored-query-upgrade) - Querying commands for the upgrade module + +## zetacored rollback + +rollback cosmos-sdk and tendermint state by one height + +### Synopsis + + +A state rollback is performed to recover from an incorrect application state transition, +when Tendermint has persisted an incorrect app hash and is thus unable to make +progress. Rollback overwrites a state at height n with the state at height n - 1. +The application also rolls back to height n - 1. No blocks are removed, so upon +restarting Tendermint the transactions in block n will be re-executed against the +application. + + +``` +zetacored rollback [flags] +``` + +### Options + +``` + --hard remove last block as well as state + -h, --help help for rollback + --home string The application home directory +``` + +### Options inherited from parent commands + +``` + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored](#zetacored) - Zetacore Daemon (server) + +## zetacored snapshots + +Manage local snapshots + +### Options + +``` + -h, --help help for snapshots +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored](#zetacored) - Zetacore Daemon (server) +* [zetacored snapshots delete](#zetacored-snapshots-delete) - Delete a local snapshot +* [zetacored snapshots dump](#zetacored-snapshots-dump) - Dump the snapshot as portable archive format +* [zetacored snapshots export](#zetacored-snapshots-export) - Export app state to snapshot store +* [zetacored snapshots list](#zetacored-snapshots-list) - List local snapshots +* [zetacored snapshots load](#zetacored-snapshots-load) - Load a snapshot archive file (.tar.gz) into snapshot store +* [zetacored snapshots restore](#zetacored-snapshots-restore) - Restore app state from local snapshot + +## zetacored snapshots delete + +Delete a local snapshot + +``` +zetacored snapshots delete [height] [format] [flags] +``` + +### Options + +``` + -h, --help help for delete +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored snapshots](#zetacored-snapshots) - Manage local snapshots + +## zetacored snapshots dump + +Dump the snapshot as portable archive format + +``` +zetacored snapshots dump [height] [format] [flags] +``` + +### Options + +``` + -h, --help help for dump + -o, --output string output file +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored snapshots](#zetacored-snapshots) - Manage local snapshots + +## zetacored snapshots export + +Export app state to snapshot store + +``` +zetacored snapshots export [flags] +``` + +### Options + +``` + --height int Height to export, default to latest state height + -h, --help help for export +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored snapshots](#zetacored-snapshots) - Manage local snapshots + +## zetacored snapshots list + +List local snapshots + +``` +zetacored snapshots list [flags] +``` + +### Options + +``` + -h, --help help for list +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored snapshots](#zetacored-snapshots) - Manage local snapshots + +## zetacored snapshots load + +Load a snapshot archive file (.tar.gz) into snapshot store + +``` +zetacored snapshots load [archive-file] [flags] +``` + +### Options + +``` + -h, --help help for load +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored snapshots](#zetacored-snapshots) - Manage local snapshots + +## zetacored snapshots restore + +Restore app state from local snapshot + +### Synopsis + +Restore app state from local snapshot + +``` +zetacored snapshots restore [height] [format] [flags] +``` + +### Options + +``` + -h, --help help for restore +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored snapshots](#zetacored-snapshots) - Manage local snapshots + +## zetacored start + +Run the full node + +### Synopsis + +Run the full node application with Tendermint in or out of process. By +default, the application will run with Tendermint in process. + +Pruning options can be provided via the '--pruning' flag or alternatively with '--pruning-keep-recent', +'pruning-keep-every', and 'pruning-interval' together. + +For '--pruning' the options are as follows: + +default: the last 100 states are kept in addition to every 500th state; pruning at 10 block intervals +nothing: all historic states will be saved, nothing will be deleted (i.e. archiving node) +everything: all saved states will be deleted, storing only the current state; pruning at 10 block intervals +custom: allow pruning options to be manually specified through 'pruning-keep-recent', 'pruning-keep-every', and 'pruning-interval' + +Node halting configurations exist in the form of two flags: '--halt-height' and '--halt-time'. During +the ABCI Commit phase, the node will check if the current block height is greater than or equal to +the halt-height or if the current block time is greater than or equal to the halt-time. If so, the +node will attempt to gracefully shutdown and the block will not be committed. In addition, the node +will not be able to commit subsequent blocks. + +For profiling and benchmarking purposes, CPU profiling can be enabled via the '--cpu-profile' flag +which accepts a path for the resulting pprof file. + + +``` +zetacored start [flags] +``` + +### Options + +``` + --abci string specify abci transport (socket | grpc) + --address string Listen address + --api.enable Defines if Cosmos-sdk REST server should be enabled + --api.enabled-unsafe-cors Defines if CORS should be enabled (unsafe - use it at your own risk) + --app-db-backend string The type of database for application and snapshots databases + --block_sync sync the block chain using the blocksync algorithm (default true) + --consensus.create_empty_blocks set this to false to only produce blocks when there are txs or when the AppHash changes (default true) + --consensus.create_empty_blocks_interval string the possible interval between empty blocks + --consensus.double_sign_check_height int how many blocks to look back to check existence of the node's consensus votes before joining consensus + --cpu-profile string Enable CPU profiling and write to the provided file + --db_backend string database backend: goleveldb | cleveldb | boltdb | rocksdb | badgerdb + --db_dir string database directory + --evm.max-tx-gas-wanted uint the gas wanted for each eth tx returned in ante handler in check tx mode + --evm.tracer string the EVM tracer type to collect execution traces from the EVM transaction execution (json|struct|access_list|markdown) + --genesis_hash bytesHex optional SHA-256 hash of the genesis file + --grpc-only Start the node in gRPC query only mode without Tendermint process + --grpc-web.address string The gRPC-Web server address to listen on + --grpc-web.enable Define if the gRPC-Web server should be enabled. (Note: gRPC must also be enabled.) (default true) + --grpc.address string the gRPC server address to listen on + --grpc.enable Define if the gRPC server should be enabled (default true) + --halt-height uint Block height at which to gracefully halt the chain and shutdown the node + --halt-time uint Minimum block time (in Unix seconds) at which to gracefully halt the chain and shutdown the node + -h, --help help for start + --home string The application home directory + --inter-block-cache Enable inter-block caching (default true) + --inv-check-period uint Assert registered invariants every N blocks + --json-rpc.address string the JSON-RPC server address to listen on + --json-rpc.allow-unprotected-txs Allow for unprotected (non EIP155 signed) transactions to be submitted via the node's RPC when the global parameter is disabled + --json-rpc.api strings Defines a list of JSON-RPC namespaces that should be enabled (default [eth,net,web3]) + --json-rpc.block-range-cap eth_getLogs Sets the max block range allowed for eth_getLogs query (default 10000) + --json-rpc.enable Define if the JSON-RPC server should be enabled (default true) + --json-rpc.enable-indexer Enable the custom tx indexer for json-rpc + --json-rpc.evm-timeout duration Sets a timeout used for eth_call (0=infinite) (default 5s) + --json-rpc.filter-cap int32 Sets the global cap for total number of filters that can be created (default 200) + --json-rpc.gas-cap uint Sets a cap on gas that can be used in eth_call/estimateGas unit is aphoton (0=infinite) (default 25000000) + --json-rpc.http-idle-timeout duration Sets a idle timeout for json-rpc http server (0=infinite) (default 2m0s) + --json-rpc.http-timeout duration Sets a read/write timeout for json-rpc http server (0=infinite) (default 30s) + --json-rpc.logs-cap eth_getLogs Sets the max number of results can be returned from single eth_getLogs query (default 10000) + --json-rpc.max-open-connections int Sets the maximum number of simultaneous connections for the server listener + --json-rpc.txfee-cap float Sets a cap on transaction fee that can be sent via the RPC APIs (1 = default 1 photon) (default 1) + --json-rpc.ws-address string the JSON-RPC WS server address to listen on + --metrics Define if EVM rpc metrics server should be enabled + --min-retain-blocks uint Minimum block height offset during ABCI commit to prune Tendermint blocks + --minimum-gas-prices string Minimum gas prices to accept for transactions; Any fee in a tx must meet this minimum (e.g. 0.01photon;0.0001stake) + --moniker string node name + --p2p.external-address string ip:port address to advertise to peers for them to dial + --p2p.laddr string node listen address. (0.0.0.0:0 means any interface, any port) + --p2p.persistent_peers string comma-delimited ID@host:port persistent peers + --p2p.pex enable/disable Peer-Exchange (default true) + --p2p.private_peer_ids string comma-delimited private peer IDs + --p2p.seed_mode enable/disable seed mode + --p2p.seeds string comma-delimited ID@host:port seed nodes + --p2p.unconditional_peer_ids string comma-delimited IDs of unconditional peers + --priv_validator_laddr string socket address to listen on for connections from external priv_validator process + --proxy_app string proxy app address, or one of: 'kvstore', 'persistent_kvstore' or 'noop' for local testing. + --pruning string Pruning strategy (default|nothing|everything|custom) + --pruning-interval uint Height interval at which pruned heights are removed from disk (ignored if pruning is not 'custom') + --pruning-keep-recent uint Number of recent heights to keep on disk (ignored if pruning is not 'custom') + --rpc.grpc_laddr string GRPC listen address (BroadcastTx only). Port required + --rpc.laddr string RPC listen address. Port required + --rpc.pprof_laddr string pprof listen address (https://golang.org/pkg/net/http/pprof) + --rpc.unsafe enabled unsafe rpc methods + --state-sync.snapshot-interval uint State sync snapshot interval + --state-sync.snapshot-keep-recent uint32 State sync snapshot to keep (default 2) + --tls.certificate-path string the cert.pem file path for the server TLS configuration + --tls.key-path string the key.pem file path for the server TLS configuration + --trace Provide full stack traces for errors in ABCI Log + --trace-store string Enable KVStore tracing to an output file + --transport string Transport protocol: socket, grpc + --unsafe-skip-upgrades ints Skip a set of upgrade heights to continue the old binary + --with-tendermint Run abci app embedded in-process with tendermint (default true) + --x-crisis-skip-assert-invariants Skip x/crisis invariants check on startup +``` + +### Options inherited from parent commands + +``` + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs +``` + +### SEE ALSO + +* [zetacored](#zetacored) - Zetacore Daemon (server) + +## zetacored status + +Query remote node for status + +``` +zetacored status [flags] +``` + +### Options + +``` + -h, --help help for status + -n, --node string Node to connect to +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored](#zetacored) - Zetacore Daemon (server) + +## zetacored tendermint + +Tendermint subcommands + +### Options + +``` + -h, --help help for tendermint +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored](#zetacored) - Zetacore Daemon (server) +* [zetacored tendermint reset-state](#zetacored-tendermint-reset-state) - Remove all the data and WAL +* [zetacored tendermint show-address](#zetacored-tendermint-show-address) - Shows this node's tendermint validator consensus address +* [zetacored tendermint show-node-id](#zetacored-tendermint-show-node-id) - Show this node's ID +* [zetacored tendermint show-validator](#zetacored-tendermint-show-validator) - Show this node's tendermint validator info +* [zetacored tendermint unsafe-reset-all](#zetacored-tendermint-unsafe-reset-all) - (unsafe) Remove all the data and WAL, reset this node's validator to genesis state +* [zetacored tendermint version](#zetacored-tendermint-version) - Print tendermint libraries' version + +## zetacored tendermint reset-state + +Remove all the data and WAL + +``` +zetacored tendermint reset-state [flags] +``` + +### Options + +``` + -h, --help help for reset-state +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tendermint](#zetacored-tendermint) - Tendermint subcommands + +## zetacored tendermint show-address + +Shows this node's tendermint validator consensus address + +``` +zetacored tendermint show-address [flags] +``` + +### Options + +``` + -h, --help help for show-address +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tendermint](#zetacored-tendermint) - Tendermint subcommands + +## zetacored tendermint show-node-id + +Show this node's ID + +``` +zetacored tendermint show-node-id [flags] +``` + +### Options + +``` + -h, --help help for show-node-id +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tendermint](#zetacored-tendermint) - Tendermint subcommands + +## zetacored tendermint show-validator + +Show this node's tendermint validator info + +``` +zetacored tendermint show-validator [flags] +``` + +### Options + +``` + -h, --help help for show-validator +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tendermint](#zetacored-tendermint) - Tendermint subcommands + +## zetacored tendermint unsafe-reset-all + +(unsafe) Remove all the data and WAL, reset this node's validator to genesis state + +``` +zetacored tendermint unsafe-reset-all [flags] +``` + +### Options + +``` + -h, --help help for unsafe-reset-all + --keep-addr-book keep the address book intact +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tendermint](#zetacored-tendermint) - Tendermint subcommands + +## zetacored tendermint version + +Print tendermint libraries' version + +### Synopsis + +Print protocols' and libraries' version numbers against which this app has been compiled. + +``` +zetacored tendermint version [flags] +``` + +### Options + +``` + -h, --help help for version +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tendermint](#zetacored-tendermint) - Tendermint subcommands + +## zetacored testnet + +subcommands for starting or configuring local testnets + +``` +zetacored testnet [flags] +``` + +### Options + +``` + -h, --help help for testnet +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored](#zetacored) - Zetacore Daemon (server) +* [zetacored testnet init-files](#zetacored-testnet-init-files) - Initialize config directories & files for a multi-validator testnet running locally via separate processes (e.g. Docker Compose or similar) +* [zetacored testnet start](#zetacored-testnet-start) - Launch an in-process multi-validator testnet + +## zetacored testnet init-files + +Initialize config directories & files for a multi-validator testnet running locally via separate processes (e.g. Docker Compose or similar) + +### Synopsis + +init-files will setup "v" number of directories and populate each with +necessary files (private validator, genesis, config, etc.) for running "v" validator nodes. + +Booting up a network with these validator folders is intended to be used with Docker Compose, +or a similar setup where each node has a manually configurable IP address. + +Note, strict routability for addresses is turned off in the config file. + +Example: + evmosd testnet init-files --v 4 --output-dir ./.testnets --starting-ip-address 192.168.10.2 + + +``` +zetacored testnet init-files [flags] +``` + +### Options + +``` + --chain-id string genesis file chain-id, if left blank will be randomly created + -h, --help help for init-files + --key-type string Key signing algorithm to generate keys for + --keyring-backend string Select keyring's backend (os|file|test) + --minimum-gas-prices string Minimum gas prices to accept for transactions; All fees in a tx must meet this minimum (e.g. 0.01photino,0.001stake) + --node-daemon-home string Home directory of the node's daemon configuration + --node-dir-prefix string Prefix the directory name for each node with (node results in node0, node1, ...) + -o, --output-dir string Directory to store initialization data for the testnet + --starting-ip-address string Starting IP address (192.168.0.1 results in persistent peers list ID0@192.168.0.1:46656, ID1@192.168.0.2:46656, ...) + --v int Number of validators to initialize the testnet with (default 4) +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored testnet](#zetacored-testnet) - subcommands for starting or configuring local testnets + +## zetacored testnet start + +Launch an in-process multi-validator testnet + +### Synopsis + +testnet will launch an in-process multi-validator testnet, +and generate "v" directories, populated with necessary validator configuration files +(private validator, genesis, config, etc.). + +Example: + evmosd testnet --v 4 --output-dir ./.testnets + + +``` +zetacored testnet start [flags] +``` + +### Options + +``` + --api.address string the address to listen on for REST API + --chain-id string genesis file chain-id, if left blank will be randomly created + --enable-logging Enable INFO logging of tendermint validator nodes + --grpc.address string the gRPC server address to listen on + -h, --help help for start + --json-rpc.address string the JSON-RPC server address to listen on + --key-type string Key signing algorithm to generate keys for + --minimum-gas-prices string Minimum gas prices to accept for transactions; All fees in a tx must meet this minimum (e.g. 0.01photino,0.001stake) + -o, --output-dir string Directory to store initialization data for the testnet + --print-mnemonic print mnemonic of first validator to stdout for manual testing (default true) + --rpc.address string the RPC address to listen on + --v int Number of validators to initialize the testnet with (default 4) +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored testnet](#zetacored-testnet) - subcommands for starting or configuring local testnets + +## zetacored tx + +Transactions subcommands + +``` +zetacored tx [flags] +``` + +### Options + +``` + --chain-id string The network chain ID + -h, --help help for tx +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored](#zetacored) - Zetacore Daemon (server) +* [zetacored tx authority](#zetacored-tx-authority) - authority transactions subcommands +* [zetacored tx authz](#zetacored-tx-authz) - Authorization transactions subcommands +* [zetacored tx bank](#zetacored-tx-bank) - Bank transaction subcommands +* [zetacored tx broadcast](#zetacored-tx-broadcast) - Broadcast transactions generated offline +* [zetacored tx crisis](#zetacored-tx-crisis) - Crisis transactions subcommands +* [zetacored tx crosschain](#zetacored-tx-crosschain) - crosschain transactions subcommands +* [zetacored tx decode](#zetacored-tx-decode) - Decode a binary encoded transaction string +* [zetacored tx distribution](#zetacored-tx-distribution) - Distribution transactions subcommands +* [zetacored tx emissions](#zetacored-tx-emissions) - emissions transactions subcommands +* [zetacored tx encode](#zetacored-tx-encode) - Encode transactions generated offline +* [zetacored tx evidence](#zetacored-tx-evidence) - Evidence transaction subcommands +* [zetacored tx evm](#zetacored-tx-evm) - evm transactions subcommands +* [zetacored tx fungible](#zetacored-tx-fungible) - fungible transactions subcommands +* [zetacored tx gov](#zetacored-tx-gov) - Governance transactions subcommands +* [zetacored tx group](#zetacored-tx-group) - Group transaction subcommands +* [zetacored tx lightclient](#zetacored-tx-lightclient) - lightclient transactions subcommands +* [zetacored tx multi-sign](#zetacored-tx-multi-sign) - Generate multisig signatures for transactions generated offline +* [zetacored tx multisign-batch](#zetacored-tx-multisign-batch) - Assemble multisig transactions in batch from batch signatures +* [zetacored tx observer](#zetacored-tx-observer) - observer transactions subcommands +* [zetacored tx sign](#zetacored-tx-sign) - Sign a transaction generated offline +* [zetacored tx sign-batch](#zetacored-tx-sign-batch) - Sign transaction batch files +* [zetacored tx slashing](#zetacored-tx-slashing) - Slashing transaction subcommands +* [zetacored tx staking](#zetacored-tx-staking) - Staking transaction subcommands +* [zetacored tx validate-signatures](#zetacored-tx-validate-signatures) - validate transactions signatures +* [zetacored tx vesting](#zetacored-tx-vesting) - Vesting transaction subcommands + +## zetacored tx authority + +authority transactions subcommands + +``` +zetacored tx authority [flags] +``` + +### Options + +``` + -h, --help help for authority +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx](#zetacored-tx) - Transactions subcommands +* [zetacored tx authority add-authorization](#zetacored-tx-authority-add-authorization) - Add a new authorization or update the policy of an existing authorization. Policy type can be 0 for groupEmergency, 1 for groupOperational, 2 for groupAdmin. +* [zetacored tx authority remove-authorization](#zetacored-tx-authority-remove-authorization) - removes an existing authorization +* [zetacored tx authority remove-chain-info](#zetacored-tx-authority-remove-chain-info) - Remove the chain info for the specified chain id +* [zetacored tx authority update-chain-info](#zetacored-tx-authority-update-chain-info) - Update the chain info +* [zetacored tx authority update-policies](#zetacored-tx-authority-update-policies) - Update policies to values provided in the JSON file. + +## zetacored tx authority add-authorization + +Add a new authorization or update the policy of an existing authorization. Policy type can be 0 for groupEmergency, 1 for groupOperational, 2 for groupAdmin. + +``` +zetacored tx authority add-authorization [msg-url] [authorized-policy] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for add-authorization + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx authority](#zetacored-tx-authority) - authority transactions subcommands + +## zetacored tx authority remove-authorization + +removes an existing authorization + +``` +zetacored tx authority remove-authorization [msg-url] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for remove-authorization + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx authority](#zetacored-tx-authority) - authority transactions subcommands + +## zetacored tx authority remove-chain-info + +Remove the chain info for the specified chain id + +``` +zetacored tx authority remove-chain-info [chain-id] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for remove-chain-info + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx authority](#zetacored-tx-authority) - authority transactions subcommands + +## zetacored tx authority update-chain-info + +Update the chain info + +``` +zetacored tx authority update-chain-info [chain-info-json-file] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for update-chain-info + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx authority](#zetacored-tx-authority) - authority transactions subcommands + +## zetacored tx authority update-policies + +Update policies to values provided in the JSON file. + +``` +zetacored tx authority update-policies [policies-json-file] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for update-policies + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx authority](#zetacored-tx-authority) - authority transactions subcommands + +## zetacored tx authz + +Authorization transactions subcommands + +### Synopsis + +Authorize and revoke access to execute transactions on behalf of your address + +``` +zetacored tx authz [flags] +``` + +### Options + +``` + -h, --help help for authz +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx](#zetacored-tx) - Transactions subcommands +* [zetacored tx authz exec](#zetacored-tx-authz-exec) - execute tx on behalf of granter account +* [zetacored tx authz grant](#zetacored-tx-authz-grant) - Grant authorization to an address +* [zetacored tx authz revoke](#zetacored-tx-authz-revoke) - revoke authorization + +## zetacored tx authz exec + +execute tx on behalf of granter account + +### Synopsis + +execute tx on behalf of granter account: +Example: + $ zetacored tx authz exec tx.json --from grantee + $ zetacored tx bank send [granter] [recipient] --from [granter] --chain-id [chain-id] --generate-only > tx.json && zetacored tx authz exec tx.json --from grantee + +``` +zetacored tx authz exec [tx-json-file] --from [grantee] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for exec + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx authz](#zetacored-tx-authz) - Authorization transactions subcommands + +## zetacored tx authz grant + +Grant authorization to an address + +### Synopsis + +create a new grant authorization to an address to execute a transaction on your behalf: + +Examples: + $ zetacored tx authz grant cosmos1skjw.. send --spend-limit=1000stake --from=cosmos1skl.. + $ zetacored tx authz grant cosmos1skjw.. generic --msg-type=/cosmos.gov.v1.MsgVote --from=cosmos1sk.. + +``` +zetacored tx authz grant [grantee] [authorization_type="send"|"generic"|"delegate"|"unbond"|"redelegate"] --from [granter] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --allow-list strings Allowed addresses grantee is allowed to send funds separated by , + --allowed-validators strings Allowed validators addresses separated by , + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --deny-validators strings Deny validators addresses separated by , + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --expiration int Expire time as Unix timestamp. Set zero (0) for no expiry. Default is 0. + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for grant + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --msg-type string The Msg method name for which we are creating a GenericAuthorization + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --spend-limit string SpendLimit for Send Authorization, an array of Coins allowed spend + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx authz](#zetacored-tx-authz) - Authorization transactions subcommands + +## zetacored tx authz revoke + +revoke authorization + +### Synopsis + +revoke authorization from a granter to a grantee: +Example: + $ zetacored tx authz revoke cosmos1skj.. /cosmos.bank.v1beta1.MsgSend --from=cosmos1skj.. + +``` +zetacored tx authz revoke [grantee] [msg-type-url] --from=[granter] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for revoke + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx authz](#zetacored-tx-authz) - Authorization transactions subcommands + +## zetacored tx bank + +Bank transaction subcommands + +``` +zetacored tx bank [flags] +``` + +### Options + +``` + -h, --help help for bank +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx](#zetacored-tx) - Transactions subcommands +* [zetacored tx bank multi-send](#zetacored-tx-bank-multi-send) - Send funds from one account to two or more accounts. +* [zetacored tx bank send](#zetacored-tx-bank-send) - Send funds from one account to another. + +## zetacored tx bank multi-send + +Send funds from one account to two or more accounts. + +### Synopsis + +Send funds from one account to two or more accounts. +By default, sends the [amount] to each address of the list. +Using the '--split' flag, the [amount] is split equally between the addresses. +Note, the '--from' flag is ignored as it is implied from [from_key_or_address] and +separate addresses with space. +When using '--dry-run' a key name cannot be used, only a bech32 address. + +``` +zetacored tx bank multi-send [from_key_or_address] [to_address_1 to_address_2 ...] [amount] [flags] +``` + +### Examples + +``` +zetacored tx bank multi-send cosmos1... cosmos1... cosmos1... cosmos1... 10stake +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for multi-send + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --split Send the equally split token amount to each address + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx bank](#zetacored-tx-bank) - Bank transaction subcommands + +## zetacored tx bank send + +Send funds from one account to another. + +### Synopsis + +Send funds from one account to another. +Note, the '--from' flag is ignored as it is implied from [from_key_or_address]. +When using '--dry-run' a key name cannot be used, only a bech32 address. + + +``` +zetacored tx bank send [from_key_or_address] [to_address] [amount] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for send + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx bank](#zetacored-tx-bank) - Bank transaction subcommands + +## zetacored tx broadcast + +Broadcast transactions generated offline + +### Synopsis + +Broadcast transactions created with the --generate-only +flag and signed with the sign command. Read a transaction from [file_path] and +broadcast it to a node. If you supply a dash (-) argument in place of an input +filename, the command reads from standard input. + +$ zetacored tx broadcast ./mytxn.json + +``` +zetacored tx broadcast [file_path] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for broadcast + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx](#zetacored-tx) - Transactions subcommands + +## zetacored tx crisis + +Crisis transactions subcommands + +``` +zetacored tx crisis [flags] +``` + +### Options + +``` + -h, --help help for crisis +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx](#zetacored-tx) - Transactions subcommands +* [zetacored tx crisis invariant-broken](#zetacored-tx-crisis-invariant-broken) - Submit proof that an invariant broken to halt the chain + +## zetacored tx crisis invariant-broken + +Submit proof that an invariant broken to halt the chain + +``` +zetacored tx crisis invariant-broken [module-name] [invariant-route] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for invariant-broken + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx crisis](#zetacored-tx-crisis) - Crisis transactions subcommands + +## zetacored tx crosschain + +crosschain transactions subcommands + +``` +zetacored tx crosschain [flags] +``` + +### Options + +``` + -h, --help help for crosschain +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx](#zetacored-tx) - Transactions subcommands +* [zetacored tx crosschain abort-stuck-cctx](#zetacored-tx-crosschain-abort-stuck-cctx) - abort a stuck CCTX +* [zetacored tx crosschain add-inbound-tracker](#zetacored-tx-crosschain-add-inbound-tracker) - Add an inbound tracker + Use 0:Zeta,1:Gas,2:ERC20 +* [zetacored tx crosschain add-outbound-tracker](#zetacored-tx-crosschain-add-outbound-tracker) - Add an outbound tracker +* [zetacored tx crosschain migrate-tss-funds](#zetacored-tx-crosschain-migrate-tss-funds) - Migrate TSS funds to the latest TSS address +* [zetacored tx crosschain refund-aborted](#zetacored-tx-crosschain-refund-aborted) - Refund an aborted tx , the refund address is optional, if not provided, the refund will be sent to the sender/tx origin of the cctx. +* [zetacored tx crosschain remove-outbound-tracker](#zetacored-tx-crosschain-remove-outbound-tracker) - Remove an outbound tracker +* [zetacored tx crosschain update-tss-address](#zetacored-tx-crosschain-update-tss-address) - Create a new TSSVoter +* [zetacored tx crosschain vote-gas-price](#zetacored-tx-crosschain-vote-gas-price) - Broadcast message to vote gas price +* [zetacored tx crosschain vote-inbound](#zetacored-tx-crosschain-vote-inbound) - Broadcast message to vote an inbound +* [zetacored tx crosschain vote-outbound](#zetacored-tx-crosschain-vote-outbound) - Broadcast message to vote an outbound +* [zetacored tx crosschain whitelist-erc20](#zetacored-tx-crosschain-whitelist-erc20) - Add a new erc20 token to whitelist + +## zetacored tx crosschain abort-stuck-cctx + +abort a stuck CCTX + +``` +zetacored tx crosschain abort-stuck-cctx [index] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for abort-stuck-cctx + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx crosschain](#zetacored-tx-crosschain) - crosschain transactions subcommands + +## zetacored tx crosschain add-inbound-tracker + +Add an inbound tracker + Use 0:Zeta,1:Gas,2:ERC20 + +``` +zetacored tx crosschain add-inbound-tracker [chain-id] [tx-hash] [coin-type] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for add-inbound-tracker + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx crosschain](#zetacored-tx-crosschain) - crosschain transactions subcommands + +## zetacored tx crosschain add-outbound-tracker + +Add an outbound tracker + +``` +zetacored tx crosschain add-outbound-tracker [chain] [nonce] [tx-hash] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for add-outbound-tracker + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx crosschain](#zetacored-tx-crosschain) - crosschain transactions subcommands + +## zetacored tx crosschain migrate-tss-funds + +Migrate TSS funds to the latest TSS address + +``` +zetacored tx crosschain migrate-tss-funds [chainID] [amount] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for migrate-tss-funds + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx crosschain](#zetacored-tx-crosschain) - crosschain transactions subcommands + +## zetacored tx crosschain refund-aborted + +Refund an aborted tx , the refund address is optional, if not provided, the refund will be sent to the sender/tx origin of the cctx. + +``` +zetacored tx crosschain refund-aborted [cctx-index] [refund-address] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for refund-aborted + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx crosschain](#zetacored-tx-crosschain) - crosschain transactions subcommands + +## zetacored tx crosschain remove-outbound-tracker + +Remove an outbound tracker + +``` +zetacored tx crosschain remove-outbound-tracker [chain] [nonce] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for remove-outbound-tracker + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx crosschain](#zetacored-tx-crosschain) - crosschain transactions subcommands + +## zetacored tx crosschain update-tss-address + +Create a new TSSVoter + +``` +zetacored tx crosschain update-tss-address [pubkey] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for update-tss-address + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx crosschain](#zetacored-tx-crosschain) - crosschain transactions subcommands + +## zetacored tx crosschain vote-gas-price + +Broadcast message to vote gas price + +``` +zetacored tx crosschain vote-gas-price [chain] [price] [priorityFee] [blockNumber] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for vote-gas-price + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx crosschain](#zetacored-tx-crosschain) - crosschain transactions subcommands + +## zetacored tx crosschain vote-inbound + +Broadcast message to vote an inbound + +``` +zetacored tx crosschain vote-inbound [sender] [senderChainID] [txOrigin] [receiver] [receiverChainID] [amount] [message] [inboundHash] [inBlockHeight] [coinType] [asset] [eventIndex] [protocolContractVersion] [isArbitraryCall] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for vote-inbound + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx crosschain](#zetacored-tx-crosschain) - crosschain transactions subcommands + +## zetacored tx crosschain vote-outbound + +Broadcast message to vote an outbound + +``` +zetacored tx crosschain vote-outbound [sendHash] [outboundHash] [outBlockHeight] [outGasUsed] [outEffectiveGasPrice] [outEffectiveGasLimit] [valueReceived] [Status] [chain] [outTXNonce] [coinType] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for vote-outbound + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx crosschain](#zetacored-tx-crosschain) - crosschain transactions subcommands + +## zetacored tx crosschain whitelist-erc20 + +Add a new erc20 token to whitelist + +``` +zetacored tx crosschain whitelist-erc20 [erc20Address] [chainID] [name] [symbol] [decimals] [gasLimit] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for whitelist-erc20 + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx crosschain](#zetacored-tx-crosschain) - crosschain transactions subcommands + +## zetacored tx decode + +Decode a binary encoded transaction string + +``` +zetacored tx decode [protobuf-byte-string] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for decode + -x, --hex Treat input as hexadecimal instead of base64 + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx](#zetacored-tx) - Transactions subcommands + +## zetacored tx distribution + +Distribution transactions subcommands + +``` +zetacored tx distribution [flags] +``` + +### Options + +``` + -h, --help help for distribution +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx](#zetacored-tx) - Transactions subcommands +* [zetacored tx distribution fund-community-pool](#zetacored-tx-distribution-fund-community-pool) - Funds the community pool with the specified amount +* [zetacored tx distribution set-withdraw-addr](#zetacored-tx-distribution-set-withdraw-addr) - change the default withdraw address for rewards associated with an address +* [zetacored tx distribution withdraw-all-rewards](#zetacored-tx-distribution-withdraw-all-rewards) - withdraw all delegations rewards for a delegator +* [zetacored tx distribution withdraw-rewards](#zetacored-tx-distribution-withdraw-rewards) - Withdraw rewards from a given delegation address, and optionally withdraw validator commission if the delegation address given is a validator operator + +## zetacored tx distribution fund-community-pool + +Funds the community pool with the specified amount + +### Synopsis + +Funds the community pool with the specified amount + +Example: +$ zetacored tx distribution fund-community-pool 100uatom --from mykey + +``` +zetacored tx distribution fund-community-pool [amount] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for fund-community-pool + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx distribution](#zetacored-tx-distribution) - Distribution transactions subcommands + +## zetacored tx distribution set-withdraw-addr + +change the default withdraw address for rewards associated with an address + +### Synopsis + +Set the withdraw address for rewards associated with a delegator address. + +Example: +$ zetacored tx distribution set-withdraw-addr zeta1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p --from mykey + +``` +zetacored tx distribution set-withdraw-addr [withdraw-addr] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for set-withdraw-addr + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx distribution](#zetacored-tx-distribution) - Distribution transactions subcommands + +## zetacored tx distribution withdraw-all-rewards + +withdraw all delegations rewards for a delegator + +### Synopsis + +Withdraw all rewards for a single delegator. +Note that if you use this command with --broadcast-mode=sync or --broadcast-mode=async, the max-msgs flag will automatically be set to 0. + +Example: +$ zetacored tx distribution withdraw-all-rewards --from mykey + +``` +zetacored tx distribution withdraw-all-rewards [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for withdraw-all-rewards + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --max-msgs int Limit the number of messages per tx (0 for unlimited) + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx distribution](#zetacored-tx-distribution) - Distribution transactions subcommands + +## zetacored tx distribution withdraw-rewards + +Withdraw rewards from a given delegation address, and optionally withdraw validator commission if the delegation address given is a validator operator + +### Synopsis + +Withdraw rewards from a given delegation address, +and optionally withdraw validator commission if the delegation address given is a validator operator. + +Example: +$ zetacored tx distribution withdraw-rewards zetavaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj --from mykey +$ zetacored tx distribution withdraw-rewards zetavaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj --from mykey --commission + +``` +zetacored tx distribution withdraw-rewards [validator-addr] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --commission Withdraw the validator's commission in addition to the rewards + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for withdraw-rewards + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx distribution](#zetacored-tx-distribution) - Distribution transactions subcommands + +## zetacored tx emissions + +emissions transactions subcommands + +``` +zetacored tx emissions [flags] +``` + +### Options + +``` + -h, --help help for emissions +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx](#zetacored-tx) - Transactions subcommands +* [zetacored tx emissions withdraw-emission](#zetacored-tx-emissions-withdraw-emission) - create a new withdrawEmission + +## zetacored tx emissions withdraw-emission + +create a new withdrawEmission + +``` +zetacored tx emissions withdraw-emission [amount] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for withdraw-emission + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx emissions](#zetacored-tx-emissions) - emissions transactions subcommands + +## zetacored tx encode + +Encode transactions generated offline + +### Synopsis + +Encode transactions created with the --generate-only flag or signed with the sign command. +Read a transaction from [file], serialize it to the Protobuf wire protocol, and output it as base64. +If you supply a dash (-) argument in place of an input filename, the command reads from standard input. + +``` +zetacored tx encode [file] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for encode + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx](#zetacored-tx) - Transactions subcommands + +## zetacored tx evidence + +Evidence transaction subcommands + +``` +zetacored tx evidence [flags] +``` + +### Options + +``` + -h, --help help for evidence +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx](#zetacored-tx) - Transactions subcommands + +## zetacored tx evm + +evm transactions subcommands + +``` +zetacored tx evm [flags] +``` + +### Options + +``` + -h, --help help for evm +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx](#zetacored-tx) - Transactions subcommands +* [zetacored tx evm raw](#zetacored-tx-evm-raw) - Build cosmos transaction from raw ethereum transaction + +## zetacored tx evm raw + +Build cosmos transaction from raw ethereum transaction + +``` +zetacored tx evm raw TX_HEX [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for raw + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx evm](#zetacored-tx-evm) - evm transactions subcommands + +## zetacored tx fungible + +fungible transactions subcommands + +``` +zetacored tx fungible [flags] +``` + +### Options + +``` + -h, --help help for fungible +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx](#zetacored-tx) - Transactions subcommands +* [zetacored tx fungible deploy-fungible-coin-zrc-4](#zetacored-tx-fungible-deploy-fungible-coin-zrc-4) - Broadcast message DeployFungibleCoinZRC20 +* [zetacored tx fungible deploy-system-contracts](#zetacored-tx-fungible-deploy-system-contracts) - Broadcast message SystemContracts +* [zetacored tx fungible pause-zrc20](#zetacored-tx-fungible-pause-zrc20) - Broadcast message PauseZRC20 +* [zetacored tx fungible remove-foreign-coin](#zetacored-tx-fungible-remove-foreign-coin) - Broadcast message RemoveForeignCoin +* [zetacored tx fungible unpause-zrc20](#zetacored-tx-fungible-unpause-zrc20) - Broadcast message UnpauseZRC20 +* [zetacored tx fungible update-contract-bytecode](#zetacored-tx-fungible-update-contract-bytecode) - Broadcast message UpdateContractBytecode +* [zetacored tx fungible update-gateway-contract](#zetacored-tx-fungible-update-gateway-contract) - Broadcast message UpdateGatewayContract to update the gateway contract address +* [zetacored tx fungible update-system-contract](#zetacored-tx-fungible-update-system-contract) - Broadcast message UpdateSystemContract +* [zetacored tx fungible update-zrc20-liquidity-cap](#zetacored-tx-fungible-update-zrc20-liquidity-cap) - Broadcast message UpdateZRC20LiquidityCap +* [zetacored tx fungible update-zrc20-withdraw-fee](#zetacored-tx-fungible-update-zrc20-withdraw-fee) - Broadcast message UpdateZRC20WithdrawFee + +## zetacored tx fungible deploy-fungible-coin-zrc-4 + +Broadcast message DeployFungibleCoinZRC20 + +``` +zetacored tx fungible deploy-fungible-coin-zrc-4 [erc-20] [foreign-chain] [decimals] [name] [symbol] [coin-type] [gas-limit] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for deploy-fungible-coin-zrc-4 + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx fungible](#zetacored-tx-fungible) - fungible transactions subcommands + +## zetacored tx fungible deploy-system-contracts + +Broadcast message SystemContracts + +``` +zetacored tx fungible deploy-system-contracts [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for deploy-system-contracts + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx fungible](#zetacored-tx-fungible) - fungible transactions subcommands + +## zetacored tx fungible pause-zrc20 + +Broadcast message PauseZRC20 + +``` +zetacored tx fungible pause-zrc20 [contractAddress1, contractAddress2, ...] [flags] +``` + +### Examples + +``` +zetacored tx fungible pause-zrc20 "0xece40cbB54d65282c4623f141c4a8a0bE7D6AdEc, 0xece40cbB54d65282c4623f141c4a8a0bEjgksncf" +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for pause-zrc20 + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx fungible](#zetacored-tx-fungible) - fungible transactions subcommands + +## zetacored tx fungible remove-foreign-coin + +Broadcast message RemoveForeignCoin + +``` +zetacored tx fungible remove-foreign-coin [name] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for remove-foreign-coin + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx fungible](#zetacored-tx-fungible) - fungible transactions subcommands + +## zetacored tx fungible unpause-zrc20 + +Broadcast message UnpauseZRC20 + +``` +zetacored tx fungible unpause-zrc20 [contractAddress1, contractAddress2, ...] [flags] +``` + +### Examples + +``` +zetacored tx fungible unpause-zrc20 "0xece40cbB54d65282c4623f141c4a8a0bE7D6AdEc, 0xece40cbB54d65282c4623f141c4a8a0bEjgksncf" +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for unpause-zrc20 + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx fungible](#zetacored-tx-fungible) - fungible transactions subcommands + +## zetacored tx fungible update-contract-bytecode + +Broadcast message UpdateContractBytecode + +``` +zetacored tx fungible update-contract-bytecode [contract-address] [new-code-hash] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for update-contract-bytecode + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx fungible](#zetacored-tx-fungible) - fungible transactions subcommands + +## zetacored tx fungible update-gateway-contract + +Broadcast message UpdateGatewayContract to update the gateway contract address + +``` +zetacored tx fungible update-gateway-contract [contract-address] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for update-gateway-contract + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx fungible](#zetacored-tx-fungible) - fungible transactions subcommands + +## zetacored tx fungible update-system-contract + +Broadcast message UpdateSystemContract + +``` +zetacored tx fungible update-system-contract [contract-address] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for update-system-contract + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx fungible](#zetacored-tx-fungible) - fungible transactions subcommands + +## zetacored tx fungible update-zrc20-liquidity-cap + +Broadcast message UpdateZRC20LiquidityCap + +``` +zetacored tx fungible update-zrc20-liquidity-cap [zrc20] [liquidity-cap] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for update-zrc20-liquidity-cap + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx fungible](#zetacored-tx-fungible) - fungible transactions subcommands + +## zetacored tx fungible update-zrc20-withdraw-fee + +Broadcast message UpdateZRC20WithdrawFee + +``` +zetacored tx fungible update-zrc20-withdraw-fee [contractAddress] [newWithdrawFee] [newGasLimit] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for update-zrc20-withdraw-fee + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx fungible](#zetacored-tx-fungible) - fungible transactions subcommands + +## zetacored tx gov + +Governance transactions subcommands + +``` +zetacored tx gov [flags] +``` + +### Options + +``` + -h, --help help for gov +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx](#zetacored-tx) - Transactions subcommands +* [zetacored tx gov deposit](#zetacored-tx-gov-deposit) - Deposit tokens for an active proposal +* [zetacored tx gov draft-proposal](#zetacored-tx-gov-draft-proposal) - Generate a draft proposal json file. The generated proposal json contains only one message (skeleton). +* [zetacored tx gov submit-legacy-proposal](#zetacored-tx-gov-submit-legacy-proposal) - Submit a legacy proposal along with an initial deposit +* [zetacored tx gov submit-proposal](#zetacored-tx-gov-submit-proposal) - Submit a proposal along with some messages, metadata and deposit +* [zetacored tx gov vote](#zetacored-tx-gov-vote) - Vote for an active proposal, options: yes/no/no_with_veto/abstain +* [zetacored tx gov weighted-vote](#zetacored-tx-gov-weighted-vote) - Vote for an active proposal, options: yes/no/no_with_veto/abstain + +## zetacored tx gov deposit + +Deposit tokens for an active proposal + +### Synopsis + +Submit a deposit for an active proposal. You can +find the proposal-id by running "zetacored query gov proposals". + +Example: +$ zetacored tx gov deposit 1 10stake --from mykey + +``` +zetacored tx gov deposit [proposal-id] [deposit] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for deposit + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx gov](#zetacored-tx-gov) - Governance transactions subcommands + +## zetacored tx gov draft-proposal + +Generate a draft proposal json file. The generated proposal json contains only one message (skeleton). + +``` +zetacored tx gov draft-proposal [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for draft-proposal + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --skip-metadata skip metadata prompt + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx gov](#zetacored-tx-gov) - Governance transactions subcommands + +## zetacored tx gov submit-legacy-proposal + +Submit a legacy proposal along with an initial deposit + +### Synopsis + +Submit a legacy proposal along with an initial deposit. +Proposal title, description, type and deposit can be given directly or through a proposal JSON file. + +Example: +$ zetacored tx gov submit-legacy-proposal --proposal="path/to/proposal.json" --from mykey + +Where proposal.json contains: + +{ + "title": "Test Proposal", + "description": "My awesome proposal", + "type": "Text", + "deposit": "10test" +} + +Which is equivalent to: + +$ zetacored tx gov submit-legacy-proposal --title="Test Proposal" --description="My awesome proposal" --type="Text" --deposit="10test" --from mykey + +``` +zetacored tx gov submit-legacy-proposal [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --deposit string The proposal deposit + --description string The proposal description + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for submit-legacy-proposal + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + --proposal string Proposal file path (if this path is given, other proposal flags are ignored) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + --title string The proposal title + --type string The proposal Type + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx gov](#zetacored-tx-gov) - Governance transactions subcommands +* [zetacored tx gov submit-legacy-proposal cancel-software-upgrade](#zetacored-tx-gov-submit-legacy-proposal-cancel-software-upgrade) - Cancel the current software upgrade proposal +* [zetacored tx gov submit-legacy-proposal param-change](#zetacored-tx-gov-submit-legacy-proposal-param-change) - Submit a parameter change proposal +* [zetacored tx gov submit-legacy-proposal software-upgrade](#zetacored-tx-gov-submit-legacy-proposal-software-upgrade) - Submit a software upgrade proposal + +## zetacored tx gov submit-legacy-proposal cancel-software-upgrade + +Cancel the current software upgrade proposal + +### Synopsis + +Cancel a software upgrade along with an initial deposit. + +``` +zetacored tx gov submit-legacy-proposal cancel-software-upgrade [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --deposit string deposit of proposal + --description string description of proposal + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for cancel-software-upgrade + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + --title string title of proposal + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx gov submit-legacy-proposal](#zetacored-tx-gov-submit-legacy-proposal) - Submit a legacy proposal along with an initial deposit + +## zetacored tx gov submit-legacy-proposal param-change + +Submit a parameter change proposal + +### Synopsis + +Submit a parameter proposal along with an initial deposit. +The proposal details must be supplied via a JSON file. For values that contains +objects, only non-empty fields will be updated. + +IMPORTANT: Currently parameter changes are evaluated but not validated, so it is +very important that any "value" change is valid (ie. correct type and within bounds) +for its respective parameter, eg. "MaxValidators" should be an integer and not a decimal. + +Proper vetting of a parameter change proposal should prevent this from happening +(no deposits should occur during the governance process), but it should be noted +regardless. + +Example: +$ zetacored tx gov submit-proposal param-change [path/to/proposal.json] --from=[key_or_address] + +Where proposal.json contains: + +{ + "title": "Staking Param Change", + "description": "Update max validators", + "changes": [ + { + "subspace": "staking", + "key": "MaxValidators", + "value": 105 + } + ], + "deposit": "1000stake" +} + +``` +zetacored tx gov submit-legacy-proposal param-change [proposal-file] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for param-change + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx gov submit-legacy-proposal](#zetacored-tx-gov-submit-legacy-proposal) - Submit a legacy proposal along with an initial deposit + +## zetacored tx gov submit-legacy-proposal software-upgrade + +Submit a software upgrade proposal + +### Synopsis + +Submit a software upgrade along with an initial deposit. +Please specify a unique name and height for the upgrade to take effect. +You may include info to reference a binary download link, in a format compatible with: https://github.com/cosmos/cosmos-sdk/tree/main/cosmovisor + +``` +zetacored tx gov submit-legacy-proposal software-upgrade [name] (--upgrade-height [height]) (--upgrade-info [info]) [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --daemon-name string The name of the executable being upgraded (for upgrade-info validation). Default is the DAEMON_NAME env var if set, or else this executable + --deposit string deposit of proposal + --description string description of proposal + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for software-upgrade + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --no-validate Skip validation of the upgrade info + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + --title string title of proposal + --upgrade-height int The height at which the upgrade must happen + --upgrade-info string Info for the upgrade plan such as new version download urls, etc. + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx gov submit-legacy-proposal](#zetacored-tx-gov-submit-legacy-proposal) - Submit a legacy proposal along with an initial deposit + +## zetacored tx gov submit-proposal + +Submit a proposal along with some messages, metadata and deposit + +### Synopsis + +Submit a proposal along with some messages, metadata and deposit. +They should be defined in a JSON file. + +Example: +$ zetacored tx gov submit-proposal path/to/proposal.json + +Where proposal.json contains: + +{ + // array of proto-JSON-encoded sdk.Msgs + "messages": [ + { + "@type": "/cosmos.bank.v1beta1.MsgSend", + "from_address": "cosmos1...", + "to_address": "cosmos1...", + "amount":[{"denom": "stake","amount": "10"}] + } + ], + // metadata can be any of base64 encoded, raw text, stringified json, IPFS link to json + // see below for example metadata + "metadata": "4pIMOgIGx1vZGU=", + "deposit": "10stake", + "title": "My proposal", + "summary": "A short summary of my proposal" +} + +metadata example: +{ + "title": "", + "authors": [""], + "summary": "", + "details": "", + "proposal_forum_url": "", + "vote_option_context": "", +} + +``` +zetacored tx gov submit-proposal [path/to/proposal.json] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for submit-proposal + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx gov](#zetacored-tx-gov) - Governance transactions subcommands + +## zetacored tx gov vote + +Vote for an active proposal, options: yes/no/no_with_veto/abstain + +### Synopsis + +Submit a vote for an active proposal. You can +find the proposal-id by running "zetacored query gov proposals". + +Example: +$ zetacored tx gov vote 1 yes --from mykey + +``` +zetacored tx gov vote [proposal-id] [option] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for vote + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --metadata string Specify metadata of the vote + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx gov](#zetacored-tx-gov) - Governance transactions subcommands + +## zetacored tx gov weighted-vote + +Vote for an active proposal, options: yes/no/no_with_veto/abstain + +### Synopsis + +Submit a vote for an active proposal. You can +find the proposal-id by running "zetacored query gov proposals". + +Example: +$ zetacored tx gov weighted-vote 1 yes=0.6,no=0.3,abstain=0.05,no_with_veto=0.05 --from mykey + +``` +zetacored tx gov weighted-vote [proposal-id] [weighted-options] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for weighted-vote + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --metadata string Specify metadata of the weighted vote + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx gov](#zetacored-tx-gov) - Governance transactions subcommands + +## zetacored tx group + +Group transaction subcommands + +``` +zetacored tx group [flags] +``` + +### Options + +``` + -h, --help help for group +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx](#zetacored-tx) - Transactions subcommands +* [zetacored tx group create-group](#zetacored-tx-group-create-group) - Create a group which is an aggregation of member accounts with associated weights and an administrator account. +* [zetacored tx group create-group-policy](#zetacored-tx-group-create-group-policy) - Create a group policy which is an account associated with a group and a decision policy. Note, the '--from' flag is ignored as it is implied from [admin]. +* [zetacored tx group create-group-with-policy](#zetacored-tx-group-create-group-with-policy) - Create a group with policy which is an aggregation of member accounts with associated weights, an administrator account and decision policy. +* [zetacored tx group draft-proposal](#zetacored-tx-group-draft-proposal) - Generate a draft proposal json file. The generated proposal json contains only one message (skeleton). +* [zetacored tx group exec](#zetacored-tx-group-exec) - Execute a proposal +* [zetacored tx group leave-group](#zetacored-tx-group-leave-group) - Remove member from the group +* [zetacored tx group submit-proposal](#zetacored-tx-group-submit-proposal) - Submit a new proposal +* [zetacored tx group update-group-admin](#zetacored-tx-group-update-group-admin) - Update a group's admin +* [zetacored tx group update-group-members](#zetacored-tx-group-update-group-members) - Update a group's members. Set a member's weight to "0" to delete it. +* [zetacored tx group update-group-metadata](#zetacored-tx-group-update-group-metadata) - Update a group's metadata +* [zetacored tx group update-group-policy-admin](#zetacored-tx-group-update-group-policy-admin) - Update a group policy admin +* [zetacored tx group update-group-policy-decision-policy](#zetacored-tx-group-update-group-policy-decision-policy) - Update a group policy's decision policy +* [zetacored tx group update-group-policy-metadata](#zetacored-tx-group-update-group-policy-metadata) - Update a group policy metadata +* [zetacored tx group vote](#zetacored-tx-group-vote) - Vote on a proposal +* [zetacored tx group withdraw-proposal](#zetacored-tx-group-withdraw-proposal) - Withdraw a submitted proposal + +## zetacored tx group create-group + +Create a group which is an aggregation of member accounts with associated weights and an administrator account. + +### Synopsis + +Create a group which is an aggregation of member accounts with associated weights and an administrator account. +Note, the '--from' flag is ignored as it is implied from [admin]. Members accounts can be given through a members JSON file that contains an array of members. + +``` +zetacored tx group create-group [admin] [metadata] [members-json-file] [flags] +``` + +### Examples + +``` + +zetacored tx group create-group [admin] [metadata] [members-json-file] + +Where members.json contains: + +{ + "members": [ + { + "address": "addr1", + "weight": "1", + "metadata": "some metadata" + }, + { + "address": "addr2", + "weight": "1", + "metadata": "some metadata" + } + ] +} +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for create-group + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx group](#zetacored-tx-group) - Group transaction subcommands + +## zetacored tx group create-group-policy + +Create a group policy which is an account associated with a group and a decision policy. Note, the '--from' flag is ignored as it is implied from [admin]. + +``` +zetacored tx group create-group-policy [admin] [group-id] [metadata] [decision-policy-json-file] [flags] +``` + +### Examples + +``` + +zetacored tx group create-group-policy [admin] [group-id] [metadata] policy.json + +where policy.json contains: + +{ + "@type": "/cosmos.group.v1.ThresholdDecisionPolicy", + "threshold": "1", + "windows": { + "voting_period": "120h", + "min_execution_period": "0s" + } +} + +Here, we can use percentage decision policy when needed, where 0 < percentage <= 1: + +{ + "@type": "/cosmos.group.v1.PercentageDecisionPolicy", + "percentage": "0.5", + "windows": { + "voting_period": "120h", + "min_execution_period": "0s" + } +} +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for create-group-policy + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx group](#zetacored-tx-group) - Group transaction subcommands + +## zetacored tx group create-group-with-policy + +Create a group with policy which is an aggregation of member accounts with associated weights, an administrator account and decision policy. + +### Synopsis + +Create a group with policy which is an aggregation of member accounts with associated weights, +an administrator account and decision policy. Note, the '--from' flag is ignored as it is implied from [admin]. +Members accounts can be given through a members JSON file that contains an array of members. +If group-policy-as-admin flag is set to true, the admin of the newly created group and group policy is set with the group policy address itself. + +``` +zetacored tx group create-group-with-policy [admin] [group-metadata] [group-policy-metadata] [members-json-file] [decision-policy-json-file] [flags] +``` + +### Examples + +``` + +zetacored tx group create-group-with-policy [admin] [group-metadata] [group-policy-metadata] members.json policy.json + +where members.json contains: + +{ + "members": [ + { + "address": "addr1", + "weight": "1", + "metadata": "some metadata" + }, + { + "address": "addr2", + "weight": "1", + "metadata": "some metadata" + } + ] +} + +and policy.json contains: + +{ + "@type": "/cosmos.group.v1.ThresholdDecisionPolicy", + "threshold": "1", + "windows": { + "voting_period": "120h", + "min_execution_period": "0s" + } +} + +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + --group-policy-as-admin Sets admin of the newly created group and group policy with group policy address itself when true + -h, --help help for create-group-with-policy + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx group](#zetacored-tx-group) - Group transaction subcommands + +## zetacored tx group draft-proposal + +Generate a draft proposal json file. The generated proposal json contains only one message (skeleton). + +``` +zetacored tx group draft-proposal [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for draft-proposal + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --skip-metadata skip metadata prompt + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx group](#zetacored-tx-group) - Group transaction subcommands + +## zetacored tx group exec + +Execute a proposal + +``` +zetacored tx group exec [proposal-id] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for exec + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx group](#zetacored-tx-group) - Group transaction subcommands + +## zetacored tx group leave-group + +Remove member from the group + +### Synopsis + +Remove member from the group + +Parameters: + group-id: unique id of the group + member-address: account address of the group member + Note, the '--from' flag is ignored as it is implied from [member-address] + + +``` +zetacored tx group leave-group [member-address] [group-id] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for leave-group + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx group](#zetacored-tx-group) - Group transaction subcommands + +## zetacored tx group submit-proposal + +Submit a new proposal + +### Synopsis + +Submit a new proposal. +Parameters: + msg_tx_json_file: path to json file with messages that will be executed if the proposal is accepted. + +``` +zetacored tx group submit-proposal [proposal_json_file] [flags] +``` + +### Examples + +``` + +zetacored tx group submit-proposal path/to/proposal.json + + Where proposal.json contains: + +{ + "group_policy_address": "cosmos1...", + // array of proto-JSON-encoded sdk.Msgs + "messages": [ + { + "@type": "/cosmos.bank.v1beta1.MsgSend", + "from_address": "cosmos1...", + "to_address": "cosmos1...", + "amount":[{"denom": "stake","amount": "10"}] + } + ], + // metadata can be any of base64 encoded, raw text, stringified json, IPFS link to json + // see below for example metadata + "metadata": "4pIMOgIGx1vZGU=", // base64-encoded metadata + "title": "My proposal", + "summary": "This is a proposal to send 10 stake to cosmos1...", + "proposers": ["cosmos1...", "cosmos1..."], +} + +metadata example: +{ + "title": "", + "authors": [""], + "summary": "", + "details": "", + "proposal_forum_url": "", + "vote_option_context": "", +} + +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --exec string Set to 1 to try to execute proposal immediately after creation (proposers signatures are considered as Yes votes) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for submit-proposal + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx group](#zetacored-tx-group) - Group transaction subcommands + +## zetacored tx group update-group-admin + +Update a group's admin + +``` +zetacored tx group update-group-admin [admin] [group-id] [new-admin] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for update-group-admin + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx group](#zetacored-tx-group) - Group transaction subcommands + +## zetacored tx group update-group-members + +Update a group's members. Set a member's weight to "0" to delete it. + +``` +zetacored tx group update-group-members [admin] [group-id] [members-json-file] [flags] +``` + +### Examples + +``` + +zetacored tx group update-group-members [admin] [group-id] [members-json-file] + +Where members.json contains: + +{ + "members": [ + { + "address": "addr1", + "weight": "1", + "metadata": "some new metadata" + }, + { + "address": "addr2", + "weight": "0", + "metadata": "some metadata" + } + ] +} + +Set a member's weight to "0" to delete it. + +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for update-group-members + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx group](#zetacored-tx-group) - Group transaction subcommands + +## zetacored tx group update-group-metadata + +Update a group's metadata + +``` +zetacored tx group update-group-metadata [admin] [group-id] [metadata] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for update-group-metadata + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx group](#zetacored-tx-group) - Group transaction subcommands + +## zetacored tx group update-group-policy-admin + +Update a group policy admin + +``` +zetacored tx group update-group-policy-admin [admin] [group-policy-account] [new-admin] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for update-group-policy-admin + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx group](#zetacored-tx-group) - Group transaction subcommands + +## zetacored tx group update-group-policy-decision-policy + +Update a group policy's decision policy + +``` +zetacored tx group update-group-policy-decision-policy [admin] [group-policy-account] [decision-policy-json-file] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for update-group-policy-decision-policy + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx group](#zetacored-tx-group) - Group transaction subcommands + +## zetacored tx group update-group-policy-metadata + +Update a group policy metadata + +``` +zetacored tx group update-group-policy-metadata [admin] [group-policy-account] [new-metadata] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for update-group-policy-metadata + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx group](#zetacored-tx-group) - Group transaction subcommands + +## zetacored tx group vote + +Vote on a proposal + +### Synopsis + +Vote on a proposal. + +Parameters: + proposal-id: unique ID of the proposal + voter: voter account addresses. + vote-option: choice of the voter(s) + VOTE_OPTION_UNSPECIFIED: no-op + VOTE_OPTION_NO: no + VOTE_OPTION_YES: yes + VOTE_OPTION_ABSTAIN: abstain + VOTE_OPTION_NO_WITH_VETO: no-with-veto + Metadata: metadata for the vote + + +``` +zetacored tx group vote [proposal-id] [voter] [vote-option] [metadata] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --exec string Set to 1 to try to execute proposal immediately after voting + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for vote + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx group](#zetacored-tx-group) - Group transaction subcommands + +## zetacored tx group withdraw-proposal + +Withdraw a submitted proposal + +### Synopsis + +Withdraw a submitted proposal. + +Parameters: + proposal-id: unique ID of the proposal. + group-policy-admin-or-proposer: either admin of the group policy or one the proposer of the proposal. + Note: --from flag will be ignored here. + + +``` +zetacored tx group withdraw-proposal [proposal-id] [group-policy-admin-or-proposer] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for withdraw-proposal + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx group](#zetacored-tx-group) - Group transaction subcommands + +## zetacored tx lightclient + +lightclient transactions subcommands + +``` +zetacored tx lightclient [flags] +``` + +### Options + +``` + -h, --help help for lightclient +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx](#zetacored-tx) - Transactions subcommands +* [zetacored tx lightclient disable-header-verification](#zetacored-tx-lightclient-disable-header-verification) - Disable header verification for the list of chains separated by comma +* [zetacored tx lightclient enable-header-verification](#zetacored-tx-lightclient-enable-header-verification) - Enable verification for the list of chains separated by comma + +## zetacored tx lightclient disable-header-verification + +Disable header verification for the list of chains separated by comma + +### Synopsis + +Provide a list of chain ids separated by comma to disable block header verification for the specified chain ids. + + Example: + To disable verification flags for chain ids 1 and 56 + zetacored tx lightclient disable-header-verification "1,56" + + +``` +zetacored tx lightclient disable-header-verification [list of chain-id] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for disable-header-verification + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx lightclient](#zetacored-tx-lightclient) - lightclient transactions subcommands + +## zetacored tx lightclient enable-header-verification + +Enable verification for the list of chains separated by comma + +### Synopsis + +Provide a list of chain ids separated by comma to enable block header verification for the specified chain ids. + + Example: + To enable verification flags for chain ids 1 and 56 + zetacored tx lightclient enable-header-verification "1,56" + + +``` +zetacored tx lightclient enable-header-verification [list of chain-id] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for enable-header-verification + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx lightclient](#zetacored-tx-lightclient) - lightclient transactions subcommands + +## zetacored tx multi-sign + +Generate multisig signatures for transactions generated offline + +### Synopsis + +Sign transactions created with the --generate-only flag that require multisig signatures. + +Read one or more signatures from one or more [signature] file, generate a multisig signature compliant to the +multisig key [name], and attach the key name to the transaction read from [file]. + +Example: +$ zetacored tx multisign transaction.json k1k2k3 k1sig.json k2sig.json k3sig.json + +If --signature-only flag is on, output a JSON representation +of only the generated signature. + +If the --offline flag is on, the client will not reach out to an external node. +Account number or sequence number lookups are not performed so you must +set these parameters manually. + +The current multisig implementation defaults to amino-json sign mode. +The SIGN_MODE_DIRECT sign mode is not supported.' + +``` +zetacored tx multi-sign [file] [name] [[signature]...] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --amino Generate Amino-encoded JSON suitable for submitting to the txs REST endpoint + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for multi-sign + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + --output-document string The document is written to the given file instead of STDOUT + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --signature-only Print only the generated signature, then exit + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx](#zetacored-tx) - Transactions subcommands + +## zetacored tx multisign-batch + +Assemble multisig transactions in batch from batch signatures + +### Synopsis + +Assemble a batch of multisig transactions generated by batch sign command. + +Read one or more signatures from one or more [signature] file, generate a multisig signature compliant to the +multisig key [name], and attach the key name to the transaction read from [file]. + +Example: +$ zetacored tx multisign-batch transactions.json multisigk1k2k3 k1sigs.json k2sigs.json k3sig.json + +The current multisig implementation defaults to amino-json sign mode. +The SIGN_MODE_DIRECT sign mode is not supported.' + +``` +zetacored tx multisign-batch [file] [name] [[signature-file]...] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for multisign-batch + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --multisig string Address of the multisig account that the transaction signs on behalf of + --no-auto-increment disable sequence auto increment + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + --output-document string The document is written to the given file instead of STDOUT + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx](#zetacored-tx) - Transactions subcommands + +## zetacored tx observer + +observer transactions subcommands + +``` +zetacored tx observer [flags] +``` + +### Options + +``` + -h, --help help for observer +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx](#zetacored-tx) - Transactions subcommands +* [zetacored tx observer add-observer](#zetacored-tx-observer-add-observer) - Broadcast message add-observer +* [zetacored tx observer disable-cctx](#zetacored-tx-observer-disable-cctx) - Disable inbound and outbound for CCTX +* [zetacored tx observer enable-cctx](#zetacored-tx-observer-enable-cctx) - Enable inbound and outbound for CCTX +* [zetacored tx observer encode](#zetacored-tx-observer-encode) - Encode a json string into hex +* [zetacored tx observer remove-chain-params](#zetacored-tx-observer-remove-chain-params) - Broadcast message to remove chain params +* [zetacored tx observer reset-chain-nonces](#zetacored-tx-observer-reset-chain-nonces) - Broadcast message to reset chain nonces +* [zetacored tx observer update-chain-params](#zetacored-tx-observer-update-chain-params) - Broadcast message updateChainParams +* [zetacored tx observer update-gas-price-increase-flags](#zetacored-tx-observer-update-gas-price-increase-flags) - Update the gas price increase flags +* [zetacored tx observer update-keygen](#zetacored-tx-observer-update-keygen) - command to update the keygen block via a group proposal +* [zetacored tx observer update-observer](#zetacored-tx-observer-update-observer) - Broadcast message add-observer +* [zetacored tx observer update-operational-flags](#zetacored-tx-observer-update-operational-flags) - Broadcast message UpdateOperationalFlags +* [zetacored tx observer vote-blame](#zetacored-tx-observer-vote-blame) - Broadcast message vote-blame +* [zetacored tx observer vote-tss](#zetacored-tx-observer-vote-tss) - Vote for a new TSS creation + +## zetacored tx observer add-observer + +Broadcast message add-observer + +``` +zetacored tx observer add-observer [observer-address] [zetaclient-grantee-pubkey] [add_node_account_only] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for add-observer + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx observer](#zetacored-tx-observer) - observer transactions subcommands + +## zetacored tx observer disable-cctx + +Disable inbound and outbound for CCTX + +``` +zetacored tx observer disable-cctx [disable-inbound] [disable-outbound] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for disable-cctx + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx observer](#zetacored-tx-observer) - observer transactions subcommands + +## zetacored tx observer enable-cctx + +Enable inbound and outbound for CCTX + +``` +zetacored tx observer enable-cctx [enable-inbound] [enable-outbound] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for enable-cctx + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx observer](#zetacored-tx-observer) - observer transactions subcommands + +## zetacored tx observer encode + +Encode a json string into hex + +``` +zetacored tx observer encode [file.json] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for encode + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx observer](#zetacored-tx-observer) - observer transactions subcommands + +## zetacored tx observer remove-chain-params + +Broadcast message to remove chain params + +``` +zetacored tx observer remove-chain-params [chain-id] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for remove-chain-params + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx observer](#zetacored-tx-observer) - observer transactions subcommands + +## zetacored tx observer reset-chain-nonces + +Broadcast message to reset chain nonces + +``` +zetacored tx observer reset-chain-nonces [chain-id] [chain-nonce-low] [chain-nonce-high] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for reset-chain-nonces + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx observer](#zetacored-tx-observer) - observer transactions subcommands + +## zetacored tx observer update-chain-params + +Broadcast message updateChainParams + +``` +zetacored tx observer update-chain-params [chain-id] [client-params.json] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for update-chain-params + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx observer](#zetacored-tx-observer) - observer transactions subcommands + +## zetacored tx observer update-gas-price-increase-flags + +Update the gas price increase flags + +``` +zetacored tx observer update-gas-price-increase-flags [epochLength] [retryInterval] [gasPriceIncreasePercent] [gasPriceIncreaseMax] [maxPendingCctxs] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for update-gas-price-increase-flags + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx observer](#zetacored-tx-observer) - observer transactions subcommands + +## zetacored tx observer update-keygen + +command to update the keygen block via a group proposal + +``` +zetacored tx observer update-keygen [block] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for update-keygen + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx observer](#zetacored-tx-observer) - observer transactions subcommands + +## zetacored tx observer update-observer + +Broadcast message add-observer + +``` +zetacored tx observer update-observer [old-observer-address] [new-observer-address] [update-reason] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for update-observer + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx observer](#zetacored-tx-observer) - observer transactions subcommands + +## zetacored tx observer update-operational-flags + +Broadcast message UpdateOperationalFlags + +``` +zetacored tx observer update-operational-flags [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --file string Path to a JSON file containing OperationalFlags + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for update-operational-flags + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + --restart-height int Height for a coordinated zetaclient restart + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --signer-block-time-offset duration Offset from the zetacore block time to initiate signing + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx observer](#zetacored-tx-observer) - observer transactions subcommands + +## zetacored tx observer vote-blame + +Broadcast message vote-blame + +``` +zetacored tx observer vote-blame [chain-id] [index] [failure-reason] [node-list] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for vote-blame + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx observer](#zetacored-tx-observer) - observer transactions subcommands + +## zetacored tx observer vote-tss + +Vote for a new TSS creation + +``` +zetacored tx observer vote-tss [pubkey] [keygen-block] [status] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for vote-tss + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx observer](#zetacored-tx-observer) - observer transactions subcommands + +## zetacored tx sign + +Sign a transaction generated offline + +### Synopsis + +Sign a transaction created with the --generate-only flag. +It will read a transaction from [file], sign it, and print its JSON encoding. + +If the --signature-only flag is set, it will output the signature parts only. + +The --offline flag makes sure that the client will not reach out to full node. +As a result, the account and sequence number queries will not be performed and +it is required to set such parameters manually. Note, invalid values will cause +the transaction to fail. + +The --multisig=[multisig_key] flag generates a signature on behalf of a multisig account +key. It implies --signature-only. Full multisig signed transactions may eventually +be generated via the 'multisign' command. + + +``` +zetacored tx sign [file] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --amino Generate Amino encoded JSON suitable for submiting to the txs REST endpoint + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for sign + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --multisig string Address or key name of the multisig account on behalf of which the transaction shall be signed + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + --output-document string The document will be written to the given file instead of STDOUT + --overwrite Overwrite existing signatures with a new one. If disabled, new signature will be appended + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --signature-only Print only the signatures + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx](#zetacored-tx) - Transactions subcommands + +## zetacored tx sign-batch + +Sign transaction batch files + +### Synopsis + +Sign batch files of transactions generated with --generate-only. +The command processes list of transactions from a file (one StdTx each line), or multiple files. +Then generates signed transactions or signatures and print their JSON encoding, delimited by '\n'. +As the signatures are generated, the command updates the account and sequence number accordingly. + +If the --signature-only flag is set, it will output the signature parts only. + +The --offline flag makes sure that the client will not reach out to full node. +As a result, the account and the sequence number queries will not be performed and +it is required to set such parameters manually. Note, invalid values will cause +the transaction to fail. The sequence will be incremented automatically for each +transaction that is signed. + +If --account-number or --sequence flag is used when offline=false, they are ignored and +overwritten by the default flag values. + +The --multisig=[multisig_key] flag generates a signature on behalf of a multisig +account key. It implies --signature-only. + + +``` +zetacored tx sign-batch [file] ([file2]...) [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --append Combine all message and generate single signed transaction for broadcast. + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for sign-batch + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --multisig string Address or key name of the multisig account on behalf of which the transaction shall be signed + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + --output-document string The document will be written to the given file instead of STDOUT + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --signature-only Print only the generated signature, then exit + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx](#zetacored-tx) - Transactions subcommands + +## zetacored tx slashing + +Slashing transaction subcommands + +``` +zetacored tx slashing [flags] +``` + +### Options + +``` + -h, --help help for slashing +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx](#zetacored-tx) - Transactions subcommands +* [zetacored tx slashing unjail](#zetacored-tx-slashing-unjail) - unjail validator previously jailed for downtime + +## zetacored tx slashing unjail + +unjail validator previously jailed for downtime + +### Synopsis + +unjail a jailed validator: + +$ zetacored tx slashing unjail --from mykey + + +``` +zetacored tx slashing unjail [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for unjail + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx slashing](#zetacored-tx-slashing) - Slashing transaction subcommands + +## zetacored tx staking + +Staking transaction subcommands + +``` +zetacored tx staking [flags] +``` + +### Options + +``` + -h, --help help for staking +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx](#zetacored-tx) - Transactions subcommands +* [zetacored tx staking cancel-unbond](#zetacored-tx-staking-cancel-unbond) - Cancel unbonding delegation and delegate back to the validator +* [zetacored tx staking create-validator](#zetacored-tx-staking-create-validator) - create new validator initialized with a self-delegation to it +* [zetacored tx staking delegate](#zetacored-tx-staking-delegate) - Delegate liquid tokens to a validator +* [zetacored tx staking edit-validator](#zetacored-tx-staking-edit-validator) - edit an existing validator account +* [zetacored tx staking redelegate](#zetacored-tx-staking-redelegate) - Redelegate illiquid tokens from one validator to another +* [zetacored tx staking unbond](#zetacored-tx-staking-unbond) - Unbond shares from a validator + +## zetacored tx staking cancel-unbond + +Cancel unbonding delegation and delegate back to the validator + +### Synopsis + +Cancel Unbonding Delegation and delegate back to the validator. + +Example: +$ zetacored tx staking cancel-unbond zetavaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj 100stake 2 --from mykey + +``` +zetacored tx staking cancel-unbond [validator-addr] [amount] [creation-height] [flags] +``` + +### Examples + +``` +$ zetacored tx staking cancel-unbond zetavaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj 100stake 2 --from mykey +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for cancel-unbond + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx staking](#zetacored-tx-staking) - Staking transaction subcommands + +## zetacored tx staking create-validator + +create new validator initialized with a self-delegation to it + +``` +zetacored tx staking create-validator [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --amount string Amount of coins to bond + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --commission-max-change-rate string The maximum commission change rate percentage (per day) + --commission-max-rate string The maximum commission rate percentage + --commission-rate string The initial commission rate percentage + --details string The validator's (optional) details + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for create-validator + --identity string The optional identity signature (ex. UPort or Keybase) + --ip string The node's public IP. It takes effect only when used in combination with --generate-only + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --min-self-delegation string The minimum self delegation required on the validator + --moniker string The validator's name + --node string [host]:[port] to tendermint rpc interface for this chain + --node-id string The node's ID + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + --pubkey string The validator's Protobuf JSON encoded public key + --security-contact string The validator's (optional) security contact email + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + --website string The validator's (optional) website + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx staking](#zetacored-tx-staking) - Staking transaction subcommands + +## zetacored tx staking delegate + +Delegate liquid tokens to a validator + +### Synopsis + +Delegate an amount of liquid coins to a validator from your wallet. + +Example: +$ zetacored tx staking delegate zetavaloper1l2rsakp388kuv9k8qzq6lrm9taddae7fpx59wm 1000stake --from mykey + +``` +zetacored tx staking delegate [validator-addr] [amount] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for delegate + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx staking](#zetacored-tx-staking) - Staking transaction subcommands + +## zetacored tx staking edit-validator + +edit an existing validator account + +``` +zetacored tx staking edit-validator [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --commission-rate string The new commission rate percentage + --details string The validator's (optional) details + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for edit-validator + --identity string The (optional) identity signature (ex. UPort or Keybase) + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --min-self-delegation string The minimum self delegation required on the validator + --new-moniker string The validator's name + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + --security-contact string The validator's (optional) security contact email + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + --website string The validator's (optional) website + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx staking](#zetacored-tx-staking) - Staking transaction subcommands + +## zetacored tx staking redelegate + +Redelegate illiquid tokens from one validator to another + +### Synopsis + +Redelegate an amount of illiquid staking tokens from one validator to another. + +Example: +$ zetacored tx staking redelegate zetavaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj zetavaloper1l2rsakp388kuv9k8qzq6lrm9taddae7fpx59wm 100stake --from mykey + +``` +zetacored tx staking redelegate [src-validator-addr] [dst-validator-addr] [amount] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for redelegate + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx staking](#zetacored-tx-staking) - Staking transaction subcommands + +## zetacored tx staking unbond + +Unbond shares from a validator + +### Synopsis + +Unbond an amount of bonded shares from a validator. + +Example: +$ zetacored tx staking unbond zetavaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj 100stake --from mykey + +``` +zetacored tx staking unbond [validator-addr] [amount] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for unbond + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx staking](#zetacored-tx-staking) - Staking transaction subcommands + +## zetacored tx validate-signatures + +validate transactions signatures + +### Synopsis + +Print the addresses that must sign the transaction, those who have already +signed it, and make sure that signatures are in the correct order. + +The command would check whether all required signers have signed the transactions, whether +the signatures were collected in the right order, and if the signature is valid over the +given transaction. If the --offline flag is also set, signature validation over the +transaction will be not be performed as that will require RPC communication with a full node. + + +``` +zetacored tx validate-signatures [file] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for validate-signatures + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx](#zetacored-tx) - Transactions subcommands + +## zetacored tx vesting + +Vesting transaction subcommands + +``` +zetacored tx vesting [flags] +``` + +### Options + +``` + -h, --help help for vesting +``` + +### Options inherited from parent commands + +``` + --chain-id string The network chain ID + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx](#zetacored-tx) - Transactions subcommands +* [zetacored tx vesting create-periodic-vesting-account](#zetacored-tx-vesting-create-periodic-vesting-account) - Create a new vesting account funded with an allocation of tokens. +* [zetacored tx vesting create-permanent-locked-account](#zetacored-tx-vesting-create-permanent-locked-account) - Create a new permanently locked account funded with an allocation of tokens. +* [zetacored tx vesting create-vesting-account](#zetacored-tx-vesting-create-vesting-account) - Create a new vesting account funded with an allocation of tokens. + +## zetacored tx vesting create-periodic-vesting-account + +Create a new vesting account funded with an allocation of tokens. + +### Synopsis + +A sequence of coins and period length in seconds. Periods are sequential, in that the duration of of a period only starts at the end of the previous period. The duration of the first period starts upon account creation. For instance, the following periods.json file shows 20 "test" coins vesting 30 days apart from each other. + Where periods.json contains: + + An array of coin strings and unix epoch times for coins to vest +{ "start_time": 1625204910, +"periods":[ + { + "coins": "10test", + "length_seconds":2592000 //30 days + }, + { + "coins": "10test", + "length_seconds":2592000 //30 days + }, +] + } + + +``` +zetacored tx vesting create-periodic-vesting-account [to_address] [periods_json_file] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for create-periodic-vesting-account + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx vesting](#zetacored-tx-vesting) - Vesting transaction subcommands + +## zetacored tx vesting create-permanent-locked-account + +Create a new permanently locked account funded with an allocation of tokens. + +### Synopsis + +Create a new account funded with an allocation of permanently locked tokens. These +tokens may be used for staking but are non-transferable. Staking rewards will acrue as liquid and transferable +tokens. + +``` +zetacored tx vesting create-permanent-locked-account [to_address] [amount] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for create-permanent-locked-account + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx vesting](#zetacored-tx-vesting) - Vesting transaction subcommands + +## zetacored tx vesting create-vesting-account + +Create a new vesting account funded with an allocation of tokens. + +### Synopsis + +Create a new vesting account funded with an allocation of tokens. The +account can either be a delayed or continuous vesting account, which is determined +by the '--delayed' flag. All vesting accounts created will have their start time +set by the committed block's time. The end_time must be provided as a UNIX epoch +timestamp. + +``` +zetacored tx vesting create-vesting-account [to_address] [amount] [end_time] [flags] +``` + +### Options + +``` + -a, --account-number uint The account number of the signing account (offline mode only) + --aux Generate aux signer data instead of sending a tx + -b, --broadcast-mode string Transaction broadcasting mode (sync|async) + --chain-id string The network chain ID + --delayed Create a delayed vesting account if true + --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible) + --fee-granter string Fee granter grants fees for the transaction + --fee-payer string Fee payer pays fees for the transaction instead of deducting from the signer + --fees string Fees to pay along with transaction; eg: 10uatom + --from string Name or address of private key with which to sign + --gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically. Note: "auto" option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of "fees". (default 200000) + --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) + --gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom) + --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name) + -h, --help help for create-vesting-account + --keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) + --keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used + --ledger Use a connected Ledger device + --node string [host]:[port] to tendermint rpc interface for this chain + --note string Note to add a description to the transaction (previously --memo) + --offline Offline mode (does not allow any online functionality) + -o, --output string Output format (text|json) + -s, --sequence uint The sequence number of the signing account (offline mode only) + --sign-mode string Choose sign mode (direct|amino-json|direct-aux), this is an advanced feature + --timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height + --tip string Tip is the amount that is going to be transferred to the fee payer on the target chain. This flag is only valid when used with --aux, and is ignored if the target chain didn't enable the TipDecorator + -y, --yes Skip tx broadcasting prompt confirmation +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored tx vesting](#zetacored-tx-vesting) - Vesting transaction subcommands + +## zetacored upgrade-handler-version + +Print the default upgrade handler version + +``` +zetacored upgrade-handler-version [flags] +``` + +### Options + +``` + -h, --help help for upgrade-handler-version +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored](#zetacored) - Zetacore Daemon (server) + +## zetacored validate-genesis + +validates the genesis file at the default location or at the location passed as an arg + +``` +zetacored validate-genesis [file] [flags] +``` + +### Options + +``` + -h, --help help for validate-genesis +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored](#zetacored) - Zetacore Daemon (server) + +## zetacored version + +Print the application binary version information + +``` +zetacored version [flags] +``` + +### Options + +``` + -h, --help help for version + --long Print long version information + -o, --output string Output format (text|json) +``` + +### Options inherited from parent commands + +``` + --home string directory for config and data + --log_format string The logging format (json|plain) + --log_level string The logging level (trace|debug|info|warn|error|fatal|panic) + --log_no_color Disable colored logs + --trace print out full stack trace on errors +``` + +### SEE ALSO + +* [zetacored](#zetacored) - Zetacore Daemon (server) + From fc1b7c1ba6a71ee09275c80f43ae529844768167 Mon Sep 17 00:00:00 2001 From: Tanmay Date: Wed, 22 Jan 2025 11:17:41 -0500 Subject: [PATCH 19/22] replace tool with CLI in readme file --- docs/cli/zetatool/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/cli/zetatool/readme.md b/docs/cli/zetatool/readme.md index 544ac97698..105ef8377a 100644 --- a/docs/cli/zetatool/readme.md +++ b/docs/cli/zetatool/readme.md @@ -1,6 +1,6 @@ # ZetaTool -ZetaTool is a utility tool for Zetachain.It currently provides a command to fetch the ballot/cctx identifier from the inbound hash +ZetaTool is a utility CLI for Zetachain.It currently provides a command to fetch the ballot/cctx identifier from the inbound hash ## Installation From e1572d70b867ed0a7e23acd697340593e9aadcaf Mon Sep 17 00:00:00 2001 From: Tanmay Date: Wed, 22 Jan 2025 11:27:56 -0500 Subject: [PATCH 20/22] remove clone and build statement from readme.md --- docs/cli/zetatool/readme.md | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/docs/cli/zetatool/readme.md b/docs/cli/zetatool/readme.md index 105ef8377a..8d522755ab 100644 --- a/docs/cli/zetatool/readme.md +++ b/docs/cli/zetatool/readme.md @@ -3,16 +3,7 @@ ZetaTool is a utility CLI for Zetachain.It currently provides a command to fetch the ballot/cctx identifier from the inbound hash ## Installation - -To install ZetaTool, clone the repository and build the project: - -```sh -git clone https://github.com/zeta-chain/node.git -cd node/cmd/zetatool -go build -o zetatool -``` - -Alternatively you can also use the target `make install-zetatool` +Use the target : `make install-zetatool` ## Usage From e311e5f62a7f3fc5d22d0d71f5efcb2767f29a5b Mon Sep 17 00:00:00 2001 From: Tanmay Date: Fri, 24 Jan 2025 15:08:44 -0500 Subject: [PATCH 21/22] add check for nil logger --- zetaclient/chains/solana/observer/inbound.go | 5 +++++ .../chains/solana/observer/inbound_test.go | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/zetaclient/chains/solana/observer/inbound.go b/zetaclient/chains/solana/observer/inbound.go index 965da635cb..5d1504fb39 100644 --- a/zetaclient/chains/solana/observer/inbound.go +++ b/zetaclient/chains/solana/observer/inbound.go @@ -190,6 +190,9 @@ func FilterSolanaInboundEvents(txResult *rpc.GetTransactionResult, logger *base.ObserverLogger, gatewayID solana.PublicKey, senderChainID int64) ([]*clienttypes.InboundEvent, error) { + if logger == nil { + return nil, errors.New("logger is nil") + } // unmarshal transaction tx, err := txResult.Transaction.GetTransaction() if err != nil { @@ -242,6 +245,8 @@ func FilterSolanaInboundEvents(txResult *rpc.GetTransactionResult, CoinType: coin.CoinType_Gas, Asset: deposit.Asset, }) + logger.Inbound.Info().Msg("FilterInboundEvents: deposit detected") + logger.Inbound.Info(). Msgf("FilterInboundEvents: deposit detected in sig %s instruction %d", tx.Signatures[0], i) } diff --git a/zetaclient/chains/solana/observer/inbound_test.go b/zetaclient/chains/solana/observer/inbound_test.go index 6ac1110404..3ae55c214c 100644 --- a/zetaclient/chains/solana/observer/inbound_test.go +++ b/zetaclient/chains/solana/observer/inbound_test.go @@ -8,6 +8,7 @@ import ( "github.com/zeta-chain/node/pkg/chains" "github.com/zeta-chain/node/pkg/coin" "github.com/zeta-chain/node/pkg/constant" + contracts "github.com/zeta-chain/node/pkg/contracts/solana" "github.com/zeta-chain/node/testutil/sample" "github.com/zeta-chain/node/zetaclient/chains/base" "github.com/zeta-chain/node/zetaclient/chains/solana/observer" @@ -102,6 +103,23 @@ func Test_FilterInboundEvents(t *testing.T) { }) } +func Test_FilterSolanaInboundEvents(t *testing.T) { + // load archived inbound deposit tx result + // https://explorer.solana.com/tx/MS3MPLN7hkbyCZFwKqXcg8fmEvQMD74fN6Ps2LSWXJoRxPW5ehaxBorK9q1JFVbqnAvu9jXm6ertj7kT7HpYw1j?cluster=devnet + txHash := "24GzWsxYCFcwwJ2rzAsWwWC85aYKot6Rz3jWnBP1GvoAg5A9f1WinYyvyKseYM52q6i3EkotZdJuQomGGq5oxRYr" + chain := chains.SolanaDevnet + txResult := testutils.LoadSolanaInboundTxResult(t, TestDataDir, chain.ChainId, txHash, false) + + // parse gateway ID + gatewayID, _, err := contracts.ParseGatewayWithPDA(testutils.OldSolanaGatewayAddressDevnet) + require.NoError(t, err) + + t.Run("should return early if logger is empty", func(t *testing.T) { + _, err = observer.FilterSolanaInboundEvents(txResult, nil, gatewayID, chain.ChainId) + require.ErrorContains(t, err, "logger is nil") + }) +} + func Test_BuildInboundVoteMsgFromEvent(t *testing.T) { // create test observer chain := chains.SolanaDevnet From faef99b5dbfbe00252f3a248d08a13dc514d9ad6 Mon Sep 17 00:00:00 2001 From: Charlie Chen Date: Fri, 24 Jan 2025 14:23:03 -0600 Subject: [PATCH 22/22] add extra arguments to function FilterInboundEvents directly so the debug tool can use it --- cmd/zetatool/inbound/solana.go | 9 +- zetaclient/chains/solana/observer/inbound.go | 100 +++++++++++++++++- .../chains/solana/observer/inbound_test.go | 13 +-- 3 files changed, 103 insertions(+), 19 deletions(-) diff --git a/cmd/zetatool/inbound/solana.go b/cmd/zetatool/inbound/solana.go index 2ec70e7268..54c02a82e5 100644 --- a/cmd/zetatool/inbound/solana.go +++ b/cmd/zetatool/inbound/solana.go @@ -15,7 +15,6 @@ import ( solanacontracts "github.com/zeta-chain/node/pkg/contracts/solana" "github.com/zeta-chain/node/pkg/rpc" crosschaintypes "github.com/zeta-chain/node/x/crosschain/types" - "github.com/zeta-chain/node/zetaclient/chains/base" "github.com/zeta-chain/node/zetaclient/chains/solana/observer" solanarpc "github.com/zeta-chain/node/zetaclient/chains/solana/rpc" clienttypes "github.com/zeta-chain/node/zetaclient/types" @@ -50,14 +49,10 @@ func solanaInboundBallotIdentifier(ctx context.Context, return "", fmt.Errorf("cannot parse gateway address: %s, err: %w", chainParams.GatewayAddress, err) } - observerLogger := &base.ObserverLogger{ - Inbound: logger, - } - - events, err := observer.FilterSolanaInboundEvents(txResult, - observerLogger, + events, err := observer.FilterInboundEvents(txResult, gatewayID, inboundChain.ChainId, + logger, ) if err != nil { diff --git a/zetaclient/chains/solana/observer/inbound.go b/zetaclient/chains/solana/observer/inbound.go index 5d1504fb39..2f41548258 100644 --- a/zetaclient/chains/solana/observer/inbound.go +++ b/zetaclient/chains/solana/observer/inbound.go @@ -158,7 +158,7 @@ func (ob *Observer) ObserveInbound(ctx context.Context) error { // FilterInboundEventsAndVote filters inbound events from a txResult and post a vote. func (ob *Observer) FilterInboundEventsAndVote(ctx context.Context, txResult *rpc.GetTransactionResult) error { // filter inbound events from txResult - events, err := ob.FilterInboundEvents(txResult) + events, err := FilterInboundEvents(txResult, ob.gatewayID, ob.Chain().ChainId, ob.Logger().Inbound) if err != nil { return errors.Wrapf(err, "error FilterInboundEvent") } @@ -177,8 +177,102 @@ func (ob *Observer) FilterInboundEventsAndVote(ctx context.Context, txResult *rp return nil } -func (ob *Observer) FilterInboundEvents(txResult *rpc.GetTransactionResult) ([]*clienttypes.InboundEvent, error) { - return FilterSolanaInboundEvents(txResult, ob.Logger(), ob.gatewayID, ob.Chain().ChainId) +// FilterInboundEvents filters inbound events from a tx result. +// Note: for consistency with EVM chains, this method +// - takes at one event (the first) per token (SOL or SPL) per transaction. +// - takes at most two events (one SOL + one SPL) per transaction. +// - ignores exceeding events. +func FilterInboundEvents( + txResult *rpc.GetTransactionResult, + gatewayID solana.PublicKey, + senderChainID int64, + logger zerolog.Logger, +) ([]*clienttypes.InboundEvent, error) { + // unmarshal transaction + tx, err := txResult.Transaction.GetTransaction() + if err != nil { + return nil, errors.Wrap(err, "error unmarshaling transaction") + } + + // there should be at least one instruction and one account, otherwise skip + if len(tx.Message.Instructions) <= 0 { + return nil, nil + } + + // create event array to collect all events in the transaction + seenDeposit := false + seenDepositSPL := false + events := make([]*clienttypes.InboundEvent, 0) + + // loop through instruction list to filter the 1st valid event + for i, instruction := range tx.Message.Instructions { + // get the program ID + programPk, err := tx.Message.Program(instruction.ProgramIDIndex) + if err != nil { + logger.Err(err). + Msgf("no program found at index %d for sig %s", instruction.ProgramIDIndex, tx.Signatures[0]) + continue + } + + // skip instructions that are irrelevant to the gateway program invocation + if !programPk.Equals(gatewayID) { + continue + } + + // try parsing the instruction as a 'deposit' if not seen yet + if !seenDeposit { + deposit, err := solanacontracts.ParseInboundAsDeposit(tx, i, txResult.Slot) + if err != nil { + return nil, errors.Wrap(err, "error ParseInboundAsDeposit") + } else if deposit != nil { + seenDeposit = true + events = append(events, &clienttypes.InboundEvent{ + SenderChainID: senderChainID, + Sender: deposit.Sender, + Receiver: "", // receiver will be pulled out from memo later + TxOrigin: deposit.Sender, + Amount: deposit.Amount, + Memo: deposit.Memo, + BlockNumber: deposit.Slot, // instead of using block, Solana explorer uses slot for indexing + TxHash: tx.Signatures[0].String(), + Index: 0, // hardcode to 0 for Solana, not a EVM smart contract call + CoinType: coin.CoinType_Gas, + Asset: deposit.Asset, + }) + logger.Info().Msgf("FilterInboundEvents: deposit detected in sig %s instruction %d", tx.Signatures[0], i) + } + } else { + logger.Warn().Msgf("FilterInboundEvents: multiple deposits detected in sig %s instruction %d", tx.Signatures[0], i) + } + + // try parsing the instruction as a 'deposit_spl_token' if not seen yet + if !seenDepositSPL { + deposit, err := solanacontracts.ParseInboundAsDepositSPL(tx, i, txResult.Slot) + if err != nil { + return nil, errors.Wrap(err, "error ParseInboundAsDepositSPL") + } else if deposit != nil { + seenDepositSPL = true + events = append(events, &clienttypes.InboundEvent{ + SenderChainID: senderChainID, + Sender: deposit.Sender, + Receiver: "", // receiver will be pulled out from memo later + TxOrigin: deposit.Sender, + Amount: deposit.Amount, + Memo: deposit.Memo, + BlockNumber: deposit.Slot, // instead of using block, Solana explorer uses slot for indexing + TxHash: tx.Signatures[0].String(), + Index: 0, // hardcode to 0 for Solana, not a EVM smart contract call + CoinType: coin.CoinType_ERC20, + Asset: deposit.Asset, + }) + logger.Info().Msgf("FilterInboundEvents: SPL deposit detected in sig %s instruction %d", tx.Signatures[0], i) + } + } else { + logger.Warn().Msgf("FilterInboundEvents: multiple SPL deposits detected in sig %s instruction %d", tx.Signatures[0], i) + } + } + + return events, nil } // FilterSolanaInboundEvents filters inbound events from a tx result. diff --git a/zetaclient/chains/solana/observer/inbound_test.go b/zetaclient/chains/solana/observer/inbound_test.go index 3ae55c214c..c71e7cd87b 100644 --- a/zetaclient/chains/solana/observer/inbound_test.go +++ b/zetaclient/chains/solana/observer/inbound_test.go @@ -4,6 +4,7 @@ import ( "context" "testing" + "github.com/rs/zerolog" "github.com/stretchr/testify/require" "github.com/zeta-chain/node/pkg/chains" "github.com/zeta-chain/node/pkg/coin" @@ -66,14 +67,8 @@ func Test_FilterInboundEvents(t *testing.T) { chain := chains.SolanaDevnet txResult := testutils.LoadSolanaInboundTxResult(t, TestDataDir, chain.ChainId, txHash, false) - database, err := db.NewFromSqliteInMemory(true) - require.NoError(t, err) - - // create observer - chainParams := sample.ChainParams(chain.ChainId) - chainParams.GatewayAddress = testutils.OldSolanaGatewayAddressDevnet - - ob, err := observer.NewObserver(chain, nil, *chainParams, nil, nil, database, base.DefaultLogger(), nil) + // given gateway ID + gatewayID, _, err := contracts.ParseGatewayWithPDA(testutils.OldSolanaGatewayAddressDevnet) require.NoError(t, err) // expected result @@ -94,7 +89,7 @@ func Test_FilterInboundEvents(t *testing.T) { } t.Run("should filter inbound event deposit SOL", func(t *testing.T) { - events, err := ob.FilterInboundEvents(txResult) + events, err := observer.FilterInboundEvents(txResult, gatewayID, chain.ChainId, zerolog.Nop()) require.NoError(t, err) // check result