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 Parameter | Default type |
|---|---|
ChainId extends string | string |
Implements
ChainInterface<EVMTx,SignedEVMTx,EVMSigner,ChainId,Signer>
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
| Parameter | Type |
|---|---|
chainId | ChainId |
evmChainId | number |
provider | JsonRpcApiProvider |
config | EVMConfiguration |
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
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
| Parameter | Type | Description |
|---|---|---|
txData | string | Serialized 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
| Parameter | Type | Description |
|---|---|---|
txData | string | Serialized transaction data string |
Returns
Promise<TransactionRequest>
Implementation of
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
| Parameter | Type | Description |
|---|---|---|
signer | string | Address to check the balance of |
tokenAddress | string | Token |
Returns
Promise<bigint>
Implementation of
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
| Parameter | Type | Description |
|---|---|---|
signedTX | Transaction | Signed transaction to get the transaction ID of |
Returns
Promise<string>
Implementation of
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
| Parameter | Type | Description |
|---|---|---|
txId | string | Transaction ID |
Returns
Promise<"not_found" | "pending" | "success" | "reverted">
Implementation of
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
| Parameter | Type | Description |
|---|---|---|
tx | string | Serialized transaction |
Returns
Promise<"not_found" | "pending" | "success" | "reverted">
Implementation of
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
| Parameter | Type | Description |
|---|---|---|
address | string |
Returns
boolean
Implementation of
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
| Parameter | Type | Description |
|---|---|---|
tokenIdentifier | string |
Returns
boolean
Implementation of
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
| Parameter | Type | Description |
|---|---|---|
address | string |
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
| Parameter | Type | Description |
|---|---|---|
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
| Parameter | Type |
|---|---|
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
| Parameter | Type | Description |
|---|---|---|
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
| Parameter | Type |
|---|---|
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
| Parameter | Type | Description |
|---|---|---|
txs | TransactionRequest[] | Transactions to prepare |
Returns
Promise<TransactionRequest[]>
Remarks
Ensure that all transactions are using the same signer, else this function might throw!
Implementation of
randomAddress()
randomAddress(): string;
Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:230
Returns a random valid wallet address
Returns
string
Implementation of
randomSigner()
randomSigner(): EVMSigner;
Defined in: atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:237
Returns randomly generated signer
Returns
Implementation of
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
| Parameter | Type | Description |
|---|---|---|
signer | EVMSigner | Signer to use for signing transactions |
txs | TransactionRequest[] | Transactions to send |
waitForConfirmation? | boolean | Whether to wait for transaction confirmation (if parallel is not specified, every transaction's confirmation except the last one is awaited) |
abortSignal? | AbortSignal | Abort signal |
parallel? | boolean | Whether 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
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
| Parameter | Type | Description |
|---|---|---|
signedTxs | Transaction[] | Signed transactions to be sent |
waitForConfirmation? | boolean | Whether to wait for transaction confirmation (if parallel is not specified, every transaction's confirmation except the last one is awaited) |
abortSignal? | AbortSignal | Abort signal |
parallel? | boolean | Whether 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
| Parameter | Type | Description |
|---|---|---|
tx | Transaction | Transaction 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
| Parameter | Type | Description |
|---|---|---|
tx | TransactionRequest | Transaction to serialize |
Returns
Promise<string>
Implementation of
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
| Parameter | Type | Description |
|---|---|---|
signer | EVMSigner | Signer/owner of the tokens |
token | string | Token to transfer |
amount | bigint | Amount of token to transfer |
dstAddress | string | Destination address of the transfer |
txOptions? | TransactionConfirmationOptions | Transaction options |
Returns
Promise<string>
Implementation of
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
| Parameter | Type | Description |
|---|---|---|
signer | string | Signer/owner of the tokens |
token | string | Token to transfer |
amount | bigint | Amount of token to transfer |
dstAddress | string | Destination address of the transfer |
feeRate? | string | Optional fee rate to use for the transaction (fetched on-demand if not provided) |
Returns
Promise<TransactionRequest[]>
Implementation of
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
| Parameter | Type |
|---|---|
bitcoinNetwork | BitcoinNetwork |
Returns
Promise<void>
Throws
When the underlying network doesn't match
Implementation of
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
| Parameter | Type |
|---|---|
signer | Signer |
Returns
Promise<EVMSigner>