SolanaChainInterface
Defined in: atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:44
Main chain interface for interacting with Solana blockchain
Implements
ChainInterface<SolanaTx,SignedSolanaTx,SolanaSigner,"SOLANA",Wallet>
Constructors
Constructor
new SolanaChainInterface(
connection,
retryPolicy?,
solanaFeeEstimator?): SolanaChainInterface;
Defined in: atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:112
Parameters
| Parameter | Type |
|---|---|
connection | Connection |
retryPolicy? | SolanaRetryPolicy |
solanaFeeEstimator? | SolanaFees |
Returns
SolanaChainInterface
Properties
Blocks
readonly Blocks: SolanaBlocks;
Defined in: atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:81
Block-related read module.
chainId
readonly chainId: "SOLANA" = "SOLANA";
Defined in: atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:54
Chain identifier string
Implementation of
Events
readonly Events: SolanaEvents;
Defined in: atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:105
Event/log scanning module.
Fees
Fees: SolanaFees;
Defined in: atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:85
Fee estimation and fee-rate module.
Signatures
readonly Signatures: SolanaSignatures;
Defined in: atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:101
Signature utilities module.
Slots
readonly Slots: SolanaSlots;
Defined in: atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:89
Slot-related read module.
Tokens
readonly Tokens: SolanaTokens;
Defined in: atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:93
Token operations module.
Transactions
readonly Transactions: SolanaTransactions;
Defined in: atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:97
Transaction send/confirm/serialization module.
Methods
deserializeSignedTx()
deserializeSignedTx(txData): Promise<Transaction>;
Defined in: atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:243
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<SolanaTx>;
Defined in: atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:229
Deserializes a transaction from string
Parameters
| Parameter | Type | Description |
|---|---|---|
txData | string | Serialized transaction data string |
Returns
Promise<SolanaTx>
Implementation of
getBalance()
getBalance(signer, tokenAddress): Promise<bigint>;
Defined in: atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:132
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-solana/src/solana/chain/SolanaChainInterface.ts:264
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-solana/src/solana/chain/SolanaChainInterface.ts:163
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-solana/src/solana/chain/SolanaChainInterface.ts:250
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-solana/src/solana/chain/SolanaChainInterface.ts:257
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-solana/src/solana/chain/SolanaChainInterface.ts:149
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-solana/src/solana/chain/SolanaChainInterface.ts:322
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-solana/src/solana/chain/SolanaChainInterface.ts:156
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-solana/src/solana/chain/SolanaChainInterface.ts:278
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-solana/src/solana/chain/SolanaChainInterface.ts:297
Parameters
| Parameter | Type |
|---|---|
callback | (tx) => Promise<void> |
Returns
boolean
Inherit Doc
offSendTransaction()
offSendTransaction(callback): boolean;
Defined in: atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:315
Unregisters a previously registered transaction sender override hook.
Parameters
| Parameter | Type | Description |
|---|---|---|
callback | (tx, options?) => Promise<string> | Previously registered callback |
Returns
boolean
onBeforeTxReplace()
onBeforeTxReplace(callback): void;
Defined in: atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:285
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-solana/src/solana/chain/SolanaChainInterface.ts:290
Parameters
| Parameter | Type |
|---|---|
callback | (tx) => Promise<void> |
Returns
void
Inherit Doc
onSendTransaction()
onSendTransaction(callback): void;
Defined in: atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:306
Registers a low-level transaction sender override hook.
Parameters
| Parameter | Type | Description |
|---|---|---|
callback | (tx, options?) => Promise<string> | Callback used for raw transaction publishing |
Returns
void
randomAddress()
randomAddress(): string;
Defined in: atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:334
Returns a random valid wallet address
Returns
string
Implementation of
randomSigner()
randomSigner(): SolanaSigner;
Defined in: atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:341
Returns randomly generated signer
Returns
Implementation of
sendAndConfirm()
sendAndConfirm(
signer,
txs,
waitForConfirmation?,
abortSignal?,
parallel?,
onBeforePublish?): Promise<string[]>;
Defined in: atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:195
Signs, sends a batch of transaction and optionally waits for their confirmation
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | SolanaSigner | Signer to use for signing transactions |
txs | SolanaTx[] | 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 |
Returns
Promise<string[]>
Implementation of
sendSignedAndConfirm()
sendSignedAndConfirm(
txs,
waitForConfirmation?,
abortSignal?,
parallel?,
onBeforePublish?): Promise<string[]>;
Defined in: atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:209
Sends already signed transactions and optionally waits for their confirmation
Parameters
| Parameter | Type | Description |
|---|---|---|
txs | 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-solana/src/solana/chain/SolanaChainInterface.ts:236
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-solana/src/solana/chain/SolanaChainInterface.ts:222
Serializes a given transaction to a string
Parameters
| Parameter | Type | Description |
|---|---|---|
tx | SolanaTx | Transaction to serialize |
Returns
Promise<string>
Implementation of
transfer()
transfer(
signer,
token,
amount,
dstAddress,
txOptions?): Promise<string>;
Defined in: atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:177
Transfers the specific token to a given recipient
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | SolanaSigner | 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<SolanaTx[]>;
Defined in: atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:170
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<SolanaTx[]>
Implementation of
wrapSigner()
wrapSigner(signer): Promise<SolanaSigner>;
Defined in: atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:350
Wraps a native chain signer object to an atomiq-understandable AbstractSigner
Parameters
| Parameter | Type |
|---|---|
signer | Wallet |
Returns
Promise<SolanaSigner>