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?): EVMChainInterface<ChainId>;

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

Parameters

ParameterType
chainIdChainId
evmChainIdnumber
providerJsonRpcApiProvider
configEVMConfiguration
retryPolicy?EVMRetryPolicy
evmFeeEstimator?EVMFees

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:291

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:277

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:162

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:312

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:170

Returns the token address of the native currency of the chain

Returns

string

Implementation of

ChainInterface.getNativeCurrencyAddress


getTxIdStatus()

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

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

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:305

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:184

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:177

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:191

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:200

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:218

Parameters

ParameterType
callback(tx) => Promise<void>

Returns

boolean

Inherit Doc


onBeforeTxReplace()

onBeforeTxReplace(callback): void;

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

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:211

Parameters

ParameterType
callback(tx) => Promise<void>

Returns

void

Inherit Doc


randomAddress()

randomAddress(): string;

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

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:232

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:242

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:257

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:284

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:270

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:330

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:323

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


wrapSigner()

wrapSigner(signer): Promise<EVMSigner>;

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

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

Parameters

ParameterType
signerSigner

Returns

Promise<EVMSigner>

Implementation of

ChainInterface.wrapSigner