Documentation ¶
Index ¶
- Variables
- func BuildErc20BalanceOfCallData(address common.Address) []byte
- func BuildErc20TransferCallData(from common.Address, to common.Address, amount *big.Int) []byte
- func CtxAtHeight(height int64) context.Context
- func EvmContractMethodId(signature string) []byte
- func EvmToSdkAddress(addr common.Address) sdk.AccAddress
- func GetAccAddress(privKey cryptotypes.PrivKey) sdk.AccAddress
- func NewGrpcConnection(endpoint string) (*grpc.ClientConn, error)
- func SdkToEvmAddress(addr sdk.AccAddress) common.Address
- func Sign(txConfig sdkclient.TxConfig, privKey cryptotypes.PrivKey, ...) (authsigning.Tx, []byte, error)
- func WaitForEvmTxReceipt(client *ethclient.Client, txHash common.Hash, timeout time.Duration) (*ethtypes.Receipt, error)
- func WaitForProposalStatus(govClient govtypesv1.QueryClient, proposalId uint64, ...) (uint64, error)
- func WaitForSdkTxCommit(txClient txtypes.ServiceClient, txHash string, timeout time.Duration) (*sdk.TxResponse, error)
- type ErrEvmFailedToBroadcast
- type ErrEvmFailedToSign
- type EvmSigner
- type EvmTxRequest
- type EvmTxResponse
- type KavaMsgRequest
- type KavaMsgResponse
- type KavaSigner
Constants ¶
This section is empty.
Variables ¶
var ( ErrEvmBroadcastTimeout = errors.New("timed out waiting for tx to be committed to block") // ErrEvmTxFailed is returned when a tx is committed to a block, but the receipt status is 0. // this means the tx failed. we don't have debug_traceTransaction RPC command so the best way // to determine the problem is to attempt to make the tx manually. ErrEvmTxFailed = errors.New("transaction was committed but failed. likely an execution revert by contract code") )
var (
ErrSdkBroadcastTimeout = errors.New("timed out waiting for tx to be committed to block")
)
Functions ¶
func CtxAtHeight ¶
func EvmContractMethodId ¶
EvmContractMethodId encodes a method signature to the method id used in eth calldata.
func EvmToSdkAddress ¶
func EvmToSdkAddress(addr common.Address) sdk.AccAddress
func GetAccAddress ¶
func GetAccAddress(privKey cryptotypes.PrivKey) sdk.AccAddress
func NewGrpcConnection ¶
func NewGrpcConnection(endpoint string) (*grpc.ClientConn, error)
NewGrpcConnection parses a GRPC endpoint and creates a connection to it
func SdkToEvmAddress ¶
func SdkToEvmAddress(addr sdk.AccAddress) common.Address
func Sign ¶
func Sign( txConfig sdkclient.TxConfig, privKey cryptotypes.PrivKey, txBuilder sdkclient.TxBuilder, signerData authsigning.SignerData, ) (authsigning.Tx, []byte, error)
Sign signs a populated TxBuilder and returns a signed Tx and raw transaction bytes
func WaitForEvmTxReceipt ¶
func WaitForEvmTxReceipt(client *ethclient.Client, txHash common.Hash, timeout time.Duration) (*ethtypes.Receipt, error)
WaitForEvmTxReceipt polls for a tx receipt and errors on timeout. If the receipt comes back, but with status 0 (failed), an error is returned.
func WaitForProposalStatus ¶
func WaitForProposalStatus( govClient govtypesv1.QueryClient, proposalId uint64, status govtypesv1.ProposalStatus, timeout time.Duration, ) (uint64, error)
func WaitForSdkTxCommit ¶
func WaitForSdkTxCommit(txClient txtypes.ServiceClient, txHash string, timeout time.Duration) (*sdk.TxResponse, error)
WaitForSdkTxCommit polls the chain until the tx hash is found or times out. Returns an error immediately if tx hash is empty
Types ¶
type ErrEvmFailedToBroadcast ¶
type ErrEvmFailedToBroadcast struct{ Err error }
func (ErrEvmFailedToBroadcast) Error ¶
func (e ErrEvmFailedToBroadcast) Error() string
type ErrEvmFailedToSign ¶
type ErrEvmFailedToSign struct{ Err error }
func (ErrEvmFailedToSign) Error ¶
func (e ErrEvmFailedToSign) Error() string
type EvmSigner ¶
type EvmSigner struct { Auth *bind.TransactOpts EvmClient *ethclient.Client // contains filtered or unexported fields }
EvmSigner manages signing and broadcasting requests to transfer Erc20 tokens Will work for calling all contracts that have func signature `transfer(address,uint256)`
func NewEvmSigner ¶
func (*EvmSigner) Run ¶
func (s *EvmSigner) Run(requests <-chan EvmTxRequest) <-chan EvmTxResponse
type EvmTxRequest ¶
type EvmTxRequest struct { Tx *ethtypes.Transaction Data interface{} }
type EvmTxResponse ¶
type EvmTxResponse struct { Request EvmTxRequest TxHash common.Hash Err error }
type KavaMsgRequest ¶
type KavaMsgResponse ¶
type KavaMsgResponse struct { Request KavaMsgRequest Tx authsigning.Tx TxBytes []byte Result sdk.TxResponse Err error }
type KavaSigner ¶
type KavaSigner struct {
// contains filtered or unexported fields
}
KavaSigner broadcasts msgs to a single kava node
func NewKavaSigner ¶
func NewKavaSigner( chainID string, encodingConfig params.EncodingConfig, authClient authtypes.QueryClient, txClient txtypes.ServiceClient, privKey cryptotypes.PrivKey, inflightTxLimit uint64) *KavaSigner
func (*KavaSigner) Address ¶
func (s *KavaSigner) Address() sdk.AccAddress
Address returns the address of the Signer
func (*KavaSigner) Run ¶
func (s *KavaSigner) Run(requests <-chan KavaMsgRequest) (<-chan KavaMsgResponse, error)