Skip to main content

StarknetChainInterface

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:53

Main chain interface for interacting with Starknet blockchain

Implements​

Constructors​

Constructor​

new StarknetChainInterface(
chainId,
provider,
wsChannel?,
feeEstimator?,
options?,
bitcoinNetwork?): StarknetChainInterface;

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:81

Parameters​

ParameterType
chainIdStarknetChainId
providerProvider
wsChannel?WebSocketChannel
feeEstimator?StarknetFees
options?StarknetConfig
bitcoinNetwork?BitcoinNetwork

Returns​

StarknetChainInterface

Properties​

Accounts​

readonly Accounts: StarknetAccounts;

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:74


Blocks​

readonly Blocks: StarknetBlocks;

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:75


chainId​

readonly chainId: "STARKNET" = "STARKNET";

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:55

Chain identifier string

Implementation of​

ChainInterface.chainId


config​

readonly config: StarknetConfig;

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:77


Events​

readonly Events: StarknetEvents;

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:73


Fees​

Fees: StarknetFees;

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:69


Signatures​

readonly Signatures: StarknetSignatures;

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:72


starknetChainId​

readonly starknetChainId: StarknetChainId;

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:56


Tokens​

readonly Tokens: StarknetTokens;

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:70


Transactions​

readonly Transactions: StarknetTransactions;

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:71

Methods​

deserializeSignedTx()​

deserializeSignedTx(txData): Promise<StarknetTx>;

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:251

Deserializes a transaction from string

Parameters​

ParameterTypeDescription
txDatastringSerialized transaction data string

Returns​

Promise<StarknetTx>

Implementation of​

ChainInterface.deserializeSignedTx


deserializeTx()​

deserializeTx(txData): Promise<StarknetTx>;

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:237

Deserializes a transaction from string

Parameters​

ParameterTypeDescription
txDatastringSerialized transaction data string

Returns​

Promise<StarknetTx>

Implementation of​

ChainInterface.deserializeTx


getBalance()​

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

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:113

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-starknet/src/starknet/chain/StarknetChainInterface.ts:279

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-starknet/src/starknet/chain/StarknetChainInterface.ts:121

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-starknet/src/starknet/chain/StarknetChainInterface.ts:258

Returns the transaction ID of the signed transaction

Parameters​

ParameterTypeDescription
signedTXStarknetTxSigned 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-starknet/src/starknet/chain/StarknetChainInterface.ts:265

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-starknet/src/starknet/chain/StarknetChainInterface.ts:272

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, lenient?): boolean;

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:135

Checks if a given string is a valid wallet address

Parameters​

ParameterTypeDescription
addressstring
lenient?booleanWhether a lenient parsing should be used (i.e. don't strictly enforce the Starknet address lengths)

Returns​

boolean

Implementation of​

ChainInterface.isValidAddress


isValidToken()​

isValidToken(tokenIdentifier): boolean;

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:128

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-starknet/src/starknet/chain/StarknetChainInterface.ts:142

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-starknet/src/starknet/chain/StarknetChainInterface.ts:151

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-starknet/src/starknet/chain/StarknetChainInterface.ts:170

Parameters​

ParameterType
callback(tx) => Promise<void>

Returns​

boolean

Inherit Doc​


onBeforeTxReplace()​

onBeforeTxReplace(callback): void;

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:158

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-starknet/src/starknet/chain/StarknetChainInterface.ts:163

Parameters​

ParameterType
callback(tx) => Promise<void>

Returns​

void

Inherit Doc​


prepareTxs()​

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

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:222

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

Parameters​

ParameterTypeDescription
txsStarknetTx[]Transactions to prepare

Returns​

Promise<StarknetTx[]>

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-starknet/src/starknet/chain/StarknetChainInterface.ts:177

Returns a random valid wallet address

Returns​

string

Implementation of​

ChainInterface.randomAddress


randomSigner()​

randomSigner(): StarknetSigner;

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:184

Returns randomly generated signer

Returns​

StarknetSigner

Implementation of​

ChainInterface.randomSigner


sendAndConfirm()​

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

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:195

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

Parameters​

ParameterTypeDescription
signerStarknetSignerSigner to use for signing transactions
txsStarknetTx[]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

Returns​

Promise<string[]>

Implementation of​

ChainInterface.sendAndConfirm


sendSignedAndConfirm()​

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

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:209

Sends already signed transactions and optionally waits for their confirmation

Parameters​

ParameterTypeDescription
signedTxsStarknetTx[]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(signedTx): Promise<string>;

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:244

Serializes a given transaction to a string

Parameters​

ParameterTypeDescription
signedTxStarknetTxTransaction to serialize

Returns​

Promise<string>

Implementation of​

ChainInterface.serializeSignedTx


serializeTx()​

serializeTx(tx): Promise<string>;

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:230

Serializes a given transaction to a string

Parameters​

ParameterTypeDescription
txStarknetTxTransaction to serialize

Returns​

Promise<string>

Implementation of​

ChainInterface.serializeTx


transfer()​

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

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:297

Transfers the specific token to a given recipient

Parameters​

ParameterTypeDescription
signerStarknetSignerSigner/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<StarknetTx[]>;

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:290

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<StarknetTx[]>

Implementation of​

ChainInterface.txsTransfer


verifyNetwork()​

verifyNetwork(bitcoinNetwork): Promise<void>;

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:320

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<StarknetSigner>;

Defined in: atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:312

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

Parameters​

ParameterType
signerAccount

Returns​

Promise<StarknetSigner>

Implementation of​

ChainInterface.wrapSigner