Skip to main content

EVMChainInterface<ChainId>

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:104

Main chain interface for interacting with EVM-compatible blockchains

Type Parameters

Type ParameterDefault type
ChainId extends stringstring

Implements

Constructors

Constructor

new EVMChainInterface<ChainId>(
chainId,
evmChainId,
provider,
config,
retryPolicy?,
evmFeeEstimator?,
bitcoinNetwork?): EVMChainInterface<ChainId>;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:133

Parameters

ParameterType
chainIdChainId
evmChainIdnumber
providerJsonRpcApiProvider
configEVMConfiguration
retryPolicy?EVMRetryPolicy
evmFeeEstimator?EVMFees
bitcoinNetwork?BitcoinNetwork

Returns

EVMChainInterface<ChainId>

Properties

Blocks

Blocks: EVMBlocks;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:124


chainId

readonly chainId: ChainId;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:106

Chain identifier string

Implementation of

ChainInterface.chainId


Events

Events: EVMEvents;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:123


evmChainId

readonly evmChainId: number;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:108


Fees

Fees: EVMFees;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:119


provider

readonly provider: JsonRpcApiProvider;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:107


Signatures

Signatures: EVMSignatures;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:122


Tokens

Tokens: EVMTokens;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:120


Transactions

Transactions: EVMTransactions;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:121

Methods

deserializeSignedTx()

deserializeSignedTx(txData): Promise<Transaction>;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:304

Deserializes a transaction from string

Parameters

ParameterTypeDescription
txDatastringSerialized transaction data string

Returns

Promise<Transaction>

Implementation of

ChainInterface.deserializeSignedTx


deserializeTx()

deserializeTx(txData): Promise<TransactionRequest>;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:290

Deserializes a transaction from string

Parameters

ParameterTypeDescription
txDatastringSerialized transaction data string

Returns

Promise<TransactionRequest>

Implementation of

ChainInterface.deserializeTx


getBalance()

getBalance(signer, tokenAddress): Promise<bigint>;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:167

Returns the token balance of a specific address

Parameters

ParameterTypeDescription
signerstringAddress to check the balance of
tokenAddressstringToken

Returns

Promise<bigint>

Implementation of

ChainInterface.getBalance


getFinalizedBlock()

getFinalizedBlock(): Promise<{
blockHash: string;
height: number;
}>;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:334

Returns the latest known finalized block data (this is a block with 100% certainty of not getting re-org, i.e. a block already committed on L1)

Returns

Promise<{ blockHash: string; height: number; }>

Implementation of

ChainInterface.getFinalizedBlock


getNativeCurrencyAddress()

getNativeCurrencyAddress(): string;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:175

Returns the token address of the native currency of the chain

Returns

string

Implementation of

ChainInterface.getNativeCurrencyAddress


getTxId()

getTxId(signedTX): Promise<string>;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:318

Returns the transaction ID of the signed transaction

Parameters

ParameterTypeDescription
signedTXTransactionSigned transaction to get the transaction ID of

Returns

Promise<string>

Implementation of

ChainInterface.getTxId


getTxIdStatus()

getTxIdStatus(txId): Promise<"not_found" | "pending" | "success" | "reverted">;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:311

Returns the status of the given transactionId (use getTxStatus whenever possible, it's more reliable)

Parameters

ParameterTypeDescription
txIdstringTransaction ID

Returns

Promise<"not_found" | "pending" | "success" | "reverted">

Implementation of

ChainInterface.getTxIdStatus


getTxStatus()

getTxStatus(tx): Promise<"not_found" | "pending" | "success" | "reverted">;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:327

Returns the status of the given serialized transaction

Parameters

ParameterTypeDescription
txstringSerialized transaction

Returns

Promise<"not_found" | "pending" | "success" | "reverted">

Implementation of

ChainInterface.getTxStatus


isValidAddress()

isValidAddress(address): boolean;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:189

Checks if a given string is a valid wallet address

Parameters

ParameterTypeDescription
addressstring

Returns

boolean

Implementation of

ChainInterface.isValidAddress


isValidToken()

isValidToken(tokenIdentifier): boolean;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:182

Checks if a given string is a valid token identifier

Parameters

ParameterTypeDescription
tokenIdentifierstring

Returns

boolean

Implementation of

ChainInterface.isValidToken


normalizeAddress()

normalizeAddress(address): string;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:196

Normalizes a given address i.e. pads it to the specific size

Parameters

ParameterTypeDescription
addressstring

Returns

string

Implementation of

ChainInterface.normalizeAddress


offBeforeTxReplace()

offBeforeTxReplace(callback): boolean;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:205

Remove tx replace callback

Parameters

ParameterTypeDescription
callback(oldTx, oldTxId, newTx, newTxId) => Promise<void>

Returns

boolean

Implementation of

ChainInterface.offBeforeTxReplace


offBeforeTxSigned()

offBeforeTxSigned(callback): boolean;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:223

Parameters

ParameterType
callback(tx) => Promise<void>

Returns

boolean

Inherit Doc


onBeforeTxReplace()

onBeforeTxReplace(callback): void;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:211

Callback called when transaction is being replaced (used for EVM, when fee is bumped on an unconfirmed tx)

Parameters

ParameterTypeDescription
callback(oldTx, oldTxId, newTx, newTxId) => Promise<void>

Returns

void

Implementation of

ChainInterface.onBeforeTxReplace


onBeforeTxSigned()

onBeforeTxSigned(callback): void;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:216

Parameters

ParameterType
callback(tx) => Promise<void>

Returns

void

Inherit Doc


prepareTxs()

prepareTxs(txs): Promise<TransactionRequest[]>;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:275

Prepares transaction for signing, by assigning a nonce, or a last valid blockhash

Parameters

ParameterTypeDescription
txsTransactionRequest[]Transactions to prepare

Returns

Promise<TransactionRequest[]>

Remarks

Ensure that all transactions are using the same signer, else this function might throw!

Implementation of

ChainInterface.prepareTxs


randomAddress()

randomAddress(): string;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:230

Returns a random valid wallet address

Returns

string

Implementation of

ChainInterface.randomAddress


randomSigner()

randomSigner(): EVMSigner;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:237

Returns randomly generated signer

Returns

EVMSigner

Implementation of

ChainInterface.randomSigner


sendAndConfirm()

sendAndConfirm(
signer,
txs,
waitForConfirmation?,
abortSignal?,
parallel?,
onBeforePublish?,
useAccessLists?): Promise<string[]>;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:247

Signs, sends a batch of transaction and optionally waits for their confirmation

Parameters

ParameterTypeDescription
signerEVMSignerSigner to use for signing transactions
txsTransactionRequest[]Transactions to send
waitForConfirmation?booleanWhether to wait for transaction confirmation (if parallel is not specified, every transaction's confirmation except the last one is awaited)
abortSignal?AbortSignalAbort signal
parallel?booleanWhether to send all transactions in parallel or one by one (always waiting for the previous TX to confirm)
onBeforePublish?(txId, rawTx) => Promise<void>Callback called before a tx is broadcast
useAccessLists?boolean-

Returns

Promise<string[]>

Implementation of

ChainInterface.sendAndConfirm


sendSignedAndConfirm()

sendSignedAndConfirm(
signedTxs,
waitForConfirmation?,
abortSignal?,
parallel?,
onBeforePublish?): Promise<string[]>;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:262

Sends already signed transactions and optionally waits for their confirmation

Parameters

ParameterTypeDescription
signedTxsTransaction[]Signed transactions to be sent
waitForConfirmation?booleanWhether to wait for transaction confirmation (if parallel is not specified, every transaction's confirmation except the last one is awaited)
abortSignal?AbortSignalAbort signal
parallel?booleanWhether to send all transactions in parallel or one by one (always waiting for the previous TX to confirm)
onBeforePublish?(txId, rawTx) => Promise<void>Callback called before a tx is broadcast

Returns

Promise<string[]>

Implementation of

ChainInterface.sendSignedAndConfirm


serializeSignedTx()

serializeSignedTx(tx): Promise<string>;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:297

Serializes a given transaction to a string

Parameters

ParameterTypeDescription
txTransactionTransaction to serialize

Returns

Promise<string>

Implementation of

ChainInterface.serializeSignedTx


serializeTx()

serializeTx(tx): Promise<string>;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:283

Serializes a given transaction to a string

Parameters

ParameterTypeDescription
txTransactionRequestTransaction to serialize

Returns

Promise<string>

Implementation of

ChainInterface.serializeTx


transfer()

transfer(
signer,
token,
amount,
dstAddress,
txOptions?): Promise<string>;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:352

Transfers the specific token to a given recipient

Parameters

ParameterTypeDescription
signerEVMSignerSigner/owner of the tokens
tokenstringToken to transfer
amountbigintAmount of token to transfer
dstAddressstringDestination address of the transfer
txOptions?TransactionConfirmationOptionsTransaction options

Returns

Promise<string>

Implementation of

ChainInterface.transfer


txsTransfer()

txsTransfer(
signer,
token,
amount,
dstAddress,
feeRate?): Promise<TransactionRequest[]>;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:345

Returns transactions for transferring a specific token to a given recipient

Parameters

ParameterTypeDescription
signerstringSigner/owner of the tokens
tokenstringToken to transfer
amountbigintAmount of token to transfer
dstAddressstringDestination address of the transfer
feeRate?stringOptional fee rate to use for the transaction (fetched on-demand if not provided)

Returns

Promise<TransactionRequest[]>

Implementation of

ChainInterface.txsTransfer


verifyNetwork()

verifyNetwork(bitcoinNetwork): Promise<void>;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:375

Verifies whether the set network of this chain interface matches the passed bitcoin network (i.e. mainnet should use mainnet networks and testnets should use testnet networks)

Parameters

ParameterType
bitcoinNetworkBitcoinNetwork

Returns

Promise<void>

Throws

When the underlying network doesn't match

Implementation of

ChainInterface.verifyNetwork


wrapSigner()

wrapSigner(signer): Promise<EVMSigner>;

Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:367

Wraps a native chain signer object to an atomiq-understandable AbstractSigner

Parameters

ParameterType
signerSigner

Returns

Promise<EVMSigner>

Implementation of

ChainInterface.wrapSigner