Documentation ¶
Index ¶
Constants ¶
View Source
const Alias = "C"
Variables ¶
This section is empty.
Functions ¶
func SignUnsignedAtomic ¶
func SignUnsignedAtomic(ctx stdcontext.Context, signer Signer, utx evm.UnsignedAtomicTx) (*evm.Tx, error)
Types ¶
type Backend ¶
type Backend interface { common.ChainUTXOs BuilderBackend SignerBackend AcceptAtomicTx(ctx stdcontext.Context, tx *evm.Tx) error }
Backend defines the full interface required to support a C-chain wallet.
func NewBackend ¶
type Builder ¶
type Builder interface { // GetBalance calculates the amount of AVAX that this builder has control // over. GetBalance( options ...common.Option, ) (*big.Int, error) // GetImportableBalance calculates the amount of AVAX that this builder // could import from the provided chain. // // - [chainID] specifies the chain the funds are from. GetImportableBalance( chainID ids.ID, options ...common.Option, ) (uint64, error) // NewImportTx creates an import transaction that attempts to consume all // the available UTXOs and import the funds to [to]. // // - [chainID] specifies the chain to be importing funds from. // - [to] specifies where to send the imported funds to. // - [baseFee] specifies the fee price willing to be paid by this tx. NewImportTx( chainID ids.ID, to ethcommon.Address, baseFee *big.Int, options ...common.Option, ) (*evm.UnsignedImportTx, error) // NewExportTx creates an export transaction that attempts to send all the // provided [outputs] to the requested [chainID]. // // - [chainID] specifies the chain to be exporting the funds to. // - [outputs] specifies the outputs to send to the [chainID]. // - [baseFee] specifies the fee price willing to be paid by this tx. NewExportTx( chainID ids.ID, outputs []*secp256k1fx.TransferOutput, baseFee *big.Int, options ...common.Option, ) (*evm.UnsignedExportTx, error) }
Builder provides a convenient interface for building unsigned C-chain transactions.
func NewBuilder ¶
func NewBuilder( avaxAddrs set.Set[ids.ShortID], ethAddrs set.Set[ethcommon.Address], backend BuilderBackend, ) Builder
NewBuilder returns a new transaction builder.
- [avaxAddrs] is the set of addresses in the AVAX format that the builder assumes can be used when signing the transactions in the future.
- [ethAddrs] is the set of addresses in the Eth format that the builder assumes can be used when signing the transactions in the future.
- [backend] provides the required access to the chain's context and state to build out the transactions.
func NewBuilderWithOptions ¶
NewBuilderWithOptions returns a new transaction builder that will use the given options by default.
- [builder] is the builder that will be called to perform the underlying operations.
- [options] will be provided to the builder in addition to the options provided in the method calls.
type BuilderBackend ¶
type BuilderBackend interface { Context UTXOs(ctx stdcontext.Context, sourceChainID ids.ID) ([]*avax.UTXO, error) Balance(ctx stdcontext.Context, addr ethcommon.Address) (*big.Int, error) Nonce(ctx stdcontext.Context, addr ethcommon.Address) (uint64, error) }
BuilderBackend specifies the required information needed to build unsigned C-chain transactions.
type Context ¶
func NewContext ¶
func NewContextFromClients ¶
func NewContextFromURI ¶
func NewContextFromURI(ctx stdcontext.Context, uri string) (Context, error)
type EthKeychain ¶
type Signer ¶
type Signer interface { // SignAtomic adds as many missing signatures as possible to the provided // transaction. // // If there are already some signatures on the transaction, those signatures // will not be removed. // // If the signer doesn't have the ability to provide a required signature, // the signature slot will be skipped without reporting an error. SignAtomic(ctx stdcontext.Context, tx *evm.Tx) error }
func NewSigner ¶
func NewSigner(avaxKC keychain.Keychain, ethKC EthKeychain, backend SignerBackend) Signer
type SignerBackend ¶
type Wallet ¶
type Wallet interface { Context // Builder returns the builder that will be used to create the transactions. Builder() Builder // Signer returns the signer that will be used to sign the transactions. Signer() Signer // IssueImportTx creates, signs, and issues an import transaction that // attempts to consume all the available UTXOs and import the funds to [to]. // // - [chainID] specifies the chain to be importing funds from. // - [to] specifies where to send the imported funds to. IssueImportTx( chainID ids.ID, to ethcommon.Address, options ...common.Option, ) (*evm.Tx, error) // IssueExportTx creates, signs, and issues an export transaction that // attempts to send all the provided [outputs] to the requested [chainID]. // // - [chainID] specifies the chain to be exporting the funds to. // - [outputs] specifies the outputs to send to the [chainID]. IssueExportTx( chainID ids.ID, outputs []*secp256k1fx.TransferOutput, options ...common.Option, ) (*evm.Tx, error) // IssueUnsignedTx signs and issues the unsigned tx. IssueUnsignedAtomicTx( utx evm.UnsignedAtomicTx, options ...common.Option, ) (*evm.Tx, error) // IssueAtomicTx issues the signed tx. IssueAtomicTx( tx *evm.Tx, options ...common.Option, ) error }
Click to show internal directories.
Click to hide internal directories.