StarknetSpvVaultContract
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:54
Starknet SPV vault (UTXO-controlled vault) contract representation
Extends
StarknetContractBase<typeofSpvVaultContractAbi>
Implements
SpvVaultContract<StarknetTx,StarknetSigner,"STARKNET",StarknetSpvWithdrawalData,StarknetSpvVaultData>
Constructors
Constructor
new StarknetSpvVaultContract(
chainInterface,
btcRelay,
bitcoinRpc,
contractAddress,
contractDeploymentHeight?): StarknetSpvVaultContract;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:81
Parameters
| Parameter | Type |
|---|---|
chainInterface | StarknetChainInterface |
btcRelay | StarknetBtcRelay<any> |
bitcoinRpc | BitcoinRpc<any> |
contractAddress | string |
contractDeploymentHeight? | number |
Returns
StarknetSpvVaultContract
Overrides
StarknetContractBase<typeof SpvVaultContractAbi>.constructor
Properties
chainId
readonly chainId: "STARKNET" = "STARKNET";
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:72
Chain identifier string
Implementation of
claimTimeout
readonly claimTimeout: number = 180;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:74
contract
readonly contract: TypedContractV2<T>;
Defined in: atomiq-chain-starknet/src/starknet/contract/StarknetContractBase.ts:11
Inherited from
StarknetContractBase.contract
maxClaimsPerTx
readonly maxClaimsPerTx: number = 10;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:75
Methods
checkWithdrawalTx()
checkWithdrawalTx(tx): Promise<void>;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:190
Checks if given withdrawal tx is valid and correctly parses on-chain, throws error when there is any issue with the validation
Parameters
| Parameter | Type | Description |
|---|---|---|
tx | SpvWithdrawalTransactionData |
Returns
Promise<void>
Implementation of
SpvVaultContract.checkWithdrawalTx
claim()
claim(
signer,
vault,
txs,
synchronizer?,
initAta?,
txOptions?): Promise<string>;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:611
Signs & sends transactions for claiming the funds from a specific vault
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | StarknetSigner | Signer to use for the transaction |
vault | StarknetSpvVaultData | Vault to claim from |
txs | object[] | |
synchronizer? | RelaySynchronizer<any, any, any> | Optiona synchronizer to be used if BTC relay contract is not synced up to the required blockheight |
initAta? | boolean | Whether to initialize a token account if it doesn't exist (applies to e.g. Solana, with token specific ATAs) |
txOptions? | TransactionConfirmationOptions | Transaction options |
Returns
Promise<string>
Implementation of
Claim()
Claim(
signer,
vault,
data,
blockheader,
merkle,
position): StarknetAction;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:165
Returns a StarknetAction that submits the withdrawal data and executes the vault withdrawal
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | A starknet signer's address |
vault | StarknetSpvVaultData | Vault data and configuration |
data | StarknetSpvWithdrawalData | Vault withdrawal transaction data to execute and claim assets based on it |
blockheader | StarknetBtcStoredHeader | A stored and committed bitcoin blockheader where the bitcoin transaction got confirmed |
merkle | Buffer<ArrayBufferLike>[] | Merkle proof for the bitcoin transaction |
position | number | Position of the bitcoin transaction in the block - used for the merkle proof verification |
Returns
StarknetAction
createVaultData()
createVaultData(
owner,
vaultId,
utxo,
confirmations,
tokenData): Promise<StarknetSpvVaultData>;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:202
Creates vault data for a new vault
Parameters
| Parameter | Type | Description |
|---|---|---|
owner | string | Vault owner |
vaultId | bigint | Vault ID |
utxo | string | Utxo on which to assign the vault initially |
confirmations | number | Required number of bitcoin confirmations to be able to withdraw funds from the vault |
tokenData | SpvVaultTokenData[] | Data about the tokens in the vault |
Returns
Promise<StarknetSpvVaultData>
Implementation of
SpvVaultContract.createVaultData
deposit()
deposit(
signer,
vault,
rawAmounts,
txOptions?): Promise<string>;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:620
Signs & sends transactions for depositing funds to a specific spv vault
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | StarknetSigner | Signer to use for the transaction (can be any) |
vault | StarknetSpvVaultData | Vault to deposit to |
rawAmounts | bigint[] | Raw amounts to deposit (these are unscaled) |
txOptions? | TransactionConfirmationOptions | Transaction options |
Returns
Promise<string>
Implementation of
Deposit()
Deposit(
signer,
vault,
rawAmounts): StarknetAction;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:129
Returns a StarknetAction that deposits assets to the spv vault, amounts have to be already scaled! This also doesn't add the approval call!
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | A starknet signer's address |
vault | StarknetSpvVaultData | Vault data and configuration |
rawAmounts | bigint[] | An array of amounts to deposit, since the vault supports 2 tokens, up to 2 amounts are allowed |
Returns
StarknetAction
fromOpReturnData()
static fromOpReturnData(data): object;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:536
Parses withdrawal params from OP_RETURN data
Parameters
| Parameter | Type | Description |
|---|---|---|
data | Buffer | data as specified in the OP_RETURN output of the transaction |
Returns
object
| Name | Type | Defined in |
|---|---|---|
executionHash? | string | atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:536 |
rawAmounts | bigint[] | atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:536 |
recipient | string | atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:536 |
fromOpReturnData()
fromOpReturnData(data): object;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:527
Parses withdrawal params from OP_RETURN data
Parameters
| Parameter | Type | Description |
|---|---|---|
data | Buffer | data as specified in the OP_RETURN output of the transaction |
Returns
object
| Name | Type | Defined in |
|---|---|---|
executionHash? | string | atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:527 |
rawAmounts | bigint[] | atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:527 |
recipient | string | atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:527 |
Implementation of
SpvVaultContract.fromOpReturnData
Front()
Front(
signer,
vault,
data,
withdrawalSequence): StarknetAction;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:145
Returns a StarknetAction that fronts the vault withdrawal. This doesn't add the approval call!
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | A starknet signer's address |
vault | StarknetSpvVaultData | Vault data and configuration |
data | StarknetSpvWithdrawalData | Vault withdrawal transaction data to front |
withdrawalSequence | number | Which withdrawal in sequence is this, used to prevent race conditions when 2 parties were to front at the same time |
Returns
StarknetAction
frontLiquidity()
frontLiquidity(
signer,
vault,
realWithdrawalTx,
withdrawSequence,
txOptions?): Promise<string>;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:629
Signs & sends transactions for fronting liquidity for a specific withdrawal btc transaction
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | StarknetSigner | Signer to use for the transaction (payer of the fronted liquidity) |
vault | StarknetSpvVaultData | Vault to deposit to |
realWithdrawalTx | StarknetSpvWithdrawalData | Real withdrawal transaction data |
withdrawSequence | number | Sequence number of the withdrawal that is being fronted, this used as race condition prevention, such that fronting will not happen if the withdrawal tx is already used in claim() |
txOptions? | TransactionConfirmationOptions | Transaction options |
Returns
Promise<string>
Implementation of
SpvVaultContract.frontLiquidity
getAllVaults()
getAllVaults(owner?): Promise<StarknetSpvVaultData[]>;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:291
Returns all currently opened vaults NOTE: This will take a long time, since the implementation will have to go through all the prior events
Parameters
| Parameter | Type |
|---|---|
owner? | string |
Returns
Promise<StarknetSpvVaultData[]>
Implementation of
getClaimFee()
getClaimFee(
signer,
vault,
withdrawalData,
feeRate?): Promise<bigint>;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:794
Returns the fee in native token base units to claim the swap
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | Signer claiming the swap |
vault | StarknetSpvVaultData | |
withdrawalData | StarknetSpvWithdrawalData | Withdrawal to claim |
feeRate? | string | Optional fee rate (fetched on-demand if not provided) |
Returns
Promise<bigint>
Implementation of
getFronterAddress()
getFronterAddress(
owner,
vaultId,
withdrawal): Promise<string>;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:328
Returns the party which currently fronted the withdrawal transaction
Parameters
| Parameter | Type | Description |
|---|---|---|
owner | string | Owner of the vault |
vaultId | bigint | Vault ID |
withdrawal | StarknetSpvWithdrawalData | Withdrawal transaction to check the fronting for |
Returns
Promise<string>
Implementation of
SpvVaultContract.getFronterAddress
getFronterAddresses()
getFronterAddresses(withdrawals): Promise<{
[btcTxId: string]: string;
}>;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:337
Returns the parties which currently fronted the withdrawal transactions
Parameters
| Parameter | Type | Description |
|---|---|---|
withdrawals | object[] | withdrawals to query |
Returns
Promise<{
[btcTxId: string]: string;
}>
Implementation of
SpvVaultContract.getFronterAddresses
getFrontFee()
getFrontFee(
signer,
vault,
withdrawalData,
feeRate?): Promise<bigint>;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:805
Returns the fee in native token base units to claim the swap
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | Signer claiming the swap |
vault | StarknetSpvVaultData | |
withdrawalData | StarknetSpvWithdrawalData | Withdrawal to claim |
feeRate? | string | Optional fee rate (fetched on-demand if not provided) |
Returns
Promise<bigint>
Implementation of
getHistoricalWithdrawalStates()
getHistoricalWithdrawalStates(recipient, startBlockheight?): Promise<{
latestBlockheight?: number;
withdrawals: {
[btcTxId: string]: SpvWithdrawalFrontedState | SpvWithdrawalClaimedState;
};
}>;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:489
Returns the full history as fetched from the chain for a specific recipient
Parameters
| Parameter | Type | Description |
|---|---|---|
recipient | string | A recipient to check the history for |
startBlockheight? | number |
Returns
Promise<{
latestBlockheight?: number;
withdrawals: {
[btcTxId: string]: SpvWithdrawalFrontedState | SpvWithdrawalClaimedState;
};
}>
Implementation of
SpvVaultContract.getHistoricalWithdrawalStates
getMultipleVaultData()
getMultipleVaultData(vaults): Promise<{
[owner: string]: object;
}>;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:239
Returns current vault data for multiple vaults
Parameters
| Parameter | Type | Description |
|---|---|---|
vaults | object[] | Vault data to query |
Returns
Promise<{
[owner: string]: object;
}>
Implementation of
SpvVaultContract.getMultipleVaultData
getVaultData()
getVaultData(owner, vaultId): Promise<StarknetSpvVaultData>;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:228
Returns current vault data
Parameters
| Parameter | Type | Description |
|---|---|---|
owner | string | Owner of the vault |
vaultId | bigint | Vault ID |
Returns
Promise<StarknetSpvVaultData>
Implementation of
getVaultLatestUtxo()
getVaultLatestUtxo(owner, vaultId): Promise<string>;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:260
Returns the latest utxo of a vault (or null if vault closed or not found)
Parameters
| Parameter | Type | Description |
|---|---|---|
owner | string | Owner of the vault |
vaultId | bigint | Vault ID |
Returns
Promise<string>
Implementation of
SpvVaultContract.getVaultLatestUtxo
getVaultLatestUtxos()
getVaultLatestUtxos(vaults): Promise<{
[owner: string]: object;
}>;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:270
Returns the latest utxos of for multiple vaults (or null if vault closed or not found)
Parameters
| Parameter | Type | Description |
|---|---|---|
vaults | object[] | Vault data to query |
Returns
Promise<{
[owner: string]: object;
}>
Implementation of
SpvVaultContract.getVaultLatestUtxos
getWithdrawalData()
getWithdrawalData(btcTx): Promise<StarknetSpvWithdrawalData>;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:519
Parses withdrawal data from the parsed bitcoin transaction
Parameters
| Parameter | Type | Description |
|---|---|---|
btcTx | BtcTx |
Returns
Promise<StarknetSpvWithdrawalData>
Implementation of
SpvVaultContract.getWithdrawalData
getWithdrawalState()
getWithdrawalState(withdrawalTx, scStartBlockheight?): Promise<SpvWithdrawalState>;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:468
Returns current state of the withdrawal, optionally only check withdrawals from the provided block height
Parameters
| Parameter | Type | Description |
|---|---|---|
withdrawalTx | StarknetSpvWithdrawalData | |
scStartBlockheight? | number |
Returns
Promise<SpvWithdrawalState>
Implementation of
SpvVaultContract.getWithdrawalState
getWithdrawalStates()
getWithdrawalStates(withdrawalTxs): Promise<{
[btcTxId: string]: SpvWithdrawalState;
}>;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:417
Returns current state of the withdrawals, optionally only check withdrawals from the provided block height
Parameters
| Parameter | Type | Description |
|---|---|---|
withdrawalTxs | object[] | Object with the withdrawal tx to check + an optional start blockheight |
Returns
Promise<{
[btcTxId: string]: SpvWithdrawalState;
}>
Implementation of
SpvVaultContract.getWithdrawalStates
open()
open(
signer,
vault,
txOptions?): Promise<string>;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:638
Signs & sends transactions for opening a specific spv vault
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | StarknetSigner | Signer to use for the transaction (must match owner in vault) |
vault | StarknetSpvVaultData | Vault to init |
txOptions? | TransactionConfirmationOptions | Transaction options |
Returns
Promise<string>
Implementation of
Open()
Open(signer, vault): StarknetAction;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:105
Returns a StarknetAction that opens up the spv vault with the passed data
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | A starknet signer's address |
vault | StarknetSpvVaultData | Vault data and configuration |
Returns
StarknetAction
toOpReturnData()
static toOpReturnData(
recipient,
rawAmounts,
executionHash?): Buffer;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:581
Serializes the withdrawal params to the OP_RETURN data
Parameters
| Parameter | Type | Description |
|---|---|---|
recipient | string | Recipient of the withdrawn tokens |
rawAmounts | bigint[] | Raw amount of tokens to withdraw |
executionHash? | string | Optional execution hash of the actions to execute |
Returns
Buffer
toOpReturnData()
toOpReturnData(
recipient,
rawAmounts,
executionHash?): Buffer;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:570
Serializes the withdrawal params to the OP_RETURN data
Parameters
| Parameter | Type | Description |
|---|---|---|
recipient | string | Recipient of the withdrawn tokens |
rawAmounts | bigint[] | Raw amount of tokens to withdraw |
executionHash? | string | Optional execution hash of the actions to execute |
Returns
Buffer
Implementation of
SpvVaultContract.toOpReturnData
txsClaim()
txsClaim(
signer,
vault,
txs,
synchronizer?,
initAta?,
feeRate?): Promise<StarknetTx[]>;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:648
Returns the unsigned transactions for claiming the funds from a specific vault
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | Signer to use for the transaction |
vault | StarknetSpvVaultData | Vault to claim from |
txs | object[] | |
synchronizer? | RelaySynchronizer<any, any, any> | Optiona synchronizer to be used if BTC relay contract is not synced up to the required blockheight |
initAta? | boolean | Whether to initialize a token account if it doesn't exist (applies to e.g. Solana, with token specific ATAs) |
feeRate? | string | Fee rate to use for the transaction |
Returns
Promise<StarknetTx[]>
Implementation of
txsDeposit()
txsDeposit(
signer,
vault,
rawAmounts,
feeRate?): Promise<StarknetTx[]>;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:718
Returns the unsigned transactions for depositing funds to a specific spv vault
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | Signer to use for the transaction (can be any) |
vault | StarknetSpvVaultData | Vault to deposit to |
rawAmounts | bigint[] | Raw amounts to deposit (these are unscaled) |
feeRate? | string | Fee rate to use for the transaction |
Returns
Promise<StarknetTx[]>
Implementation of
txsFrontLiquidity()
txsFrontLiquidity(
signer,
vault,
realWithdrawalTx,
withdrawSequence,
feeRate?): Promise<StarknetTx[]>;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:747
Returns the unsigned transactions for fronting liquidity for a specific withdrawal btc transaction
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | Signer to use for the transaction (payer of the fronted liquidity) |
vault | StarknetSpvVaultData | Vault to deposit to |
realWithdrawalTx | StarknetSpvWithdrawalData | Real withdrawal transaction data |
withdrawSequence | number | Sequence number of the withdrawal that is being fronted, this used as race condition prevention, such that fronting will not happen if the withdrawal tx is already used in claim() |
feeRate? | string | Fee rate to use for the transaction |
Returns
Promise<StarknetTx[]>
Implementation of
SpvVaultContract.txsFrontLiquidity
txsOpen()
txsOpen(
signer,
vault,
feeRate?): Promise<StarknetTx[]>;
Defined in: atomiq-chain-starknet/src/starknet/spv_swap/StarknetSpvVaultContract.ts:778
Returns the unsigned transactions for opening a specific spv vault
Parameters
| Parameter | Type | Description |
|---|---|---|
signer | string | Signer to use for the transaction (must match owner in vault) |
vault | StarknetSpvVaultData | Vault to init |
feeRate? | string | Fee rate to use for the transaction |
Returns
Promise<StarknetTx[]>