Documentation ¶
Overview ¶
Package interfaces provides interfaces for clients and signers for the chain to interact with
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BTCRPCClient ¶
type BTCRPCClient interface { GetNetworkInfo() (*btcjson.GetNetworkInfoResult, error) CreateWallet(name string, opts ...rpcclient.CreateWalletOpt) (*btcjson.CreateWalletResult, error) GetNewAddress(account string) (btcutil.Address, error) GenerateToAddress(numBlocks int64, address btcutil.Address, maxTries *int64) ([]*chainhash.Hash, error) GetBalance(account string) (btcutil.Amount, error) SendRawTransaction(tx *wire.MsgTx, allowHighFees bool) (*chainhash.Hash, error) ListUnspent() ([]btcjson.ListUnspentResult, error) ListUnspentMinMaxAddresses(minConf int, maxConf int, addrs []btcutil.Address) ([]btcjson.ListUnspentResult, error) EstimateSmartFee(confTarget int64, mode *btcjson.EstimateSmartFeeMode) (*btcjson.EstimateSmartFeeResult, error) GetTransaction(txHash *chainhash.Hash) (*btcjson.GetTransactionResult, error) GetRawTransaction(txHash *chainhash.Hash) (*btcutil.Tx, error) GetRawTransactionVerbose(txHash *chainhash.Hash) (*btcjson.TxRawResult, error) GetBlockCount() (int64, error) GetBlockHash(blockHeight int64) (*chainhash.Hash, error) GetBlockVerbose(blockHash *chainhash.Hash) (*btcjson.GetBlockVerboseResult, error) GetBlockVerboseTx(blockHash *chainhash.Hash) (*btcjson.GetBlockVerboseTxResult, error) GetBlockHeader(blockHash *chainhash.Hash) (*wire.BlockHeader, error) }
BTCRPCClient is the interface for BTC RPC client
type ChainObserver ¶
type ChainObserver interface { Start(ctx context.Context) Stop() IsOutboundProcessed( ctx context.Context, cctx *crosschaintypes.CrossChainTx, logger zerolog.Logger, ) (bool, bool, error) SetChainParams(observertypes.ChainParams) GetChainParams() observertypes.ChainParams GetTxID(nonce uint64) string WatchInboundTracker(ctx context.Context) error }
ChainObserver is the interface for chain observer
type ChainSigner ¶
type ChainSigner interface { TryProcessOutbound( ctx context.Context, cctx *crosschaintypes.CrossChainTx, outboundProc *outboundprocessor.Processor, outboundID string, observer ChainObserver, zetacoreClient ZetacoreClient, height uint64, ) SetZetaConnectorAddress(address ethcommon.Address) SetERC20CustodyAddress(address ethcommon.Address) GetZetaConnectorAddress() ethcommon.Address GetERC20CustodyAddress() ethcommon.Address }
ChainSigner is the interface to sign transactions for a chain
type EVMJSONRPCClient ¶
type EVMJSONRPCClient interface { EthGetBlockByNumber(number int, withTransactions bool) (*ethrpc.Block, error) EthGetTransactionByHash(hash string) (*ethrpc.Transaction, error) }
EVMJSONRPCClient is the interface for EVM JSON RPC client
type EVMRPCClient ¶
type EVMRPCClient interface { bind.ContractBackend SendTransaction(ctx context.Context, tx *ethtypes.Transaction) error SuggestGasPrice(ctx context.Context) (*big.Int, error) BlockNumber(ctx context.Context) (uint64, error) BlockByNumber(ctx context.Context, number *big.Int) (*ethtypes.Block, error) HeaderByNumber(ctx context.Context, number *big.Int) (*ethtypes.Header, error) TransactionByHash(ctx context.Context, hash ethcommon.Hash) (tx *ethtypes.Transaction, isPending bool, err error) TransactionReceipt(ctx context.Context, txHash ethcommon.Hash) (*ethtypes.Receipt, error) TransactionSender( ctx context.Context, tx *ethtypes.Transaction, block ethcommon.Hash, index uint, ) (ethcommon.Address, error) }
EVMRPCClient is the interface for EVM RPC client
type TSSSigner ¶
type TSSSigner interface { Pubkey() []byte // Sign signs the data // Note: it specifies optionalPubkey to use a different pubkey than the current pubkey set during keygen // TODO: check if optionalPubkey is needed // https://github.com/zeta-chain/node/issues/2085 Sign( ctx context.Context, data []byte, height uint64, nonce uint64, chainID int64, optionalPubkey string, ) ([65]byte, error) // SignBatch signs the data in batch SignBatch(ctx context.Context, digests [][]byte, height uint64, nonce uint64, chainID int64) ([][65]byte, error) EVMAddress() ethcommon.Address EVMAddressList() []ethcommon.Address BTCAddress() string BTCAddressWitnessPubkeyHash() *btcutil.AddressWitnessPubKeyHash PubKeyCompressedBytes() []byte }
TSSSigner is the interface for TSS signer
type ZetacoreClient ¶
type ZetacoreClient interface { ZetacoreVoter Chain() chains.Chain GetLogger() *zerolog.Logger GetKeys() keyinterfaces.ObserverKeys GetKeyGen(ctx context.Context) (*observertypes.Keygen, error) GetBlockHeight(ctx context.Context) (int64, error) GetBlockHeaderChainState(ctx context.Context, chainID int64) (*lightclienttypes.ChainState, error) ListPendingCCTX(ctx context.Context, chainID int64) ([]*crosschaintypes.CrossChainTx, uint64, error) ListPendingCCTXWithinRateLimit( ctx context.Context, ) (*crosschaintypes.QueryListPendingCctxWithinRateLimitResponse, error) GetRateLimiterInput(ctx context.Context, window int64) (*crosschaintypes.QueryRateLimiterInputResponse, error) GetPendingNoncesByChain(ctx context.Context, chainID int64) (observertypes.PendingNonces, error) GetCctxByNonce(ctx context.Context, chainID int64, nonce uint64) (*crosschaintypes.CrossChainTx, error) GetOutboundTracker(ctx context.Context, chain chains.Chain, nonce uint64) (*crosschaintypes.OutboundTracker, error) GetAllOutboundTrackerByChain( ctx context.Context, chainID int64, order Order, ) ([]crosschaintypes.OutboundTracker, error) GetCrosschainFlags(ctx context.Context) (observertypes.CrosschainFlags, error) GetRateLimiterFlags(ctx context.Context) (crosschaintypes.RateLimiterFlags, error) GetObserverList(ctx context.Context) ([]string, error) GetBTCTSSAddress(ctx context.Context, chainID int64) (string, error) GetZetaHotKeyBalance(ctx context.Context) (sdkmath.Int, error) GetInboundTrackersForChain(ctx context.Context, chainID int64) ([]crosschaintypes.InboundTracker, error) // todo(revamp): refactor input to struct AddOutboundTracker( ctx context.Context, chainID int64, nonce uint64, txHash string, proof *proofs.Proof, blockHash string, txIndex int64, ) (string, error) Stop() OnBeforeStop(callback func()) }
ZetacoreClient is the client interface to interact with zetacore
type ZetacoreVoter ¶
type ZetacoreVoter interface { PostVoteBlockHeader( ctx context.Context, chainID int64, txhash []byte, height int64, header proofs.HeaderData, ) (string, error) PostVoteGasPrice( ctx context.Context, chain chains.Chain, gasPrice uint64, supply string, blockNum uint64, ) (string, error) PostVoteInbound( ctx context.Context, gasLimit, retryGasLimit uint64, msg *crosschaintypes.MsgVoteInbound, ) (string, string, error) PostVoteOutbound( ctx context.Context, gasLimit, retryGasLimit uint64, msg *crosschaintypes.MsgVoteOutbound, ) (string, string, error) PostVoteBlameData(ctx context.Context, blame *blame.Blame, chainID int64, index string) (string, error) }
ZetacoreVoter represents voter interface.
Click to show internal directories.
Click to hide internal directories.