 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
Constants ¶
      View Source
      
  
const Alias = "C"
    Variables ¶
This section is empty.
Functions ¶
func SignUnsignedAtomic ¶ added in v1.11.0
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.