UNPKG

@atomiqlabs/chain-starknet

Version:
109 lines (108 loc) 3.01 kB
import { SpvVaultClaimEvent, SpvVaultCloseEvent, SpvVaultData, SpvVaultDepositEvent, SpvVaultOpenEvent, SpvVaultTokenBalance, SpvVaultTokenData } from "@atomiqlabs/base"; import { BigNumberish } from "starknet"; import { Serialized } from "../../utils/Utils"; import { StarknetSpvWithdrawalData } from "./StarknetSpvWithdrawalData"; export type StarknetSpvVaultDataType = { relay_contract: BigNumberish; token_0: BigNumberish; token_1: BigNumberish; token_0_multiplier: BigNumberish; token_1_multiplier: BigNumberish; utxo: Record<number, boolean | object | BigNumberish>; confirmations: BigNumberish; withdraw_count: BigNumberish; deposit_count: BigNumberish; token_0_amount: BigNumberish; token_1_amount: BigNumberish; }; export type StarknetSpvVaultDataCtorArgs = { owner: string; vaultId: bigint; struct: StarknetSpvVaultDataType; initialUtxo?: string; }; /** * Represents the state of the SPV vault (UTXO-controlled vault) * * @category Swaps */ export declare class StarknetSpvVaultData extends SpvVaultData<StarknetSpvWithdrawalData> { readonly owner: string; readonly vaultId: bigint; readonly relayContract: string; readonly token0: { token: string; multiplier: bigint; rawAmount: bigint; }; readonly token1: { token: string; multiplier: bigint; rawAmount: bigint; }; readonly initialUtxo?: string; readonly confirmations: number; utxo: string; withdrawCount: number; depositCount: number; /** * Creates a new spv vault data based on the provided arguments * * @param args */ constructor(args: StarknetSpvVaultDataCtorArgs); /** * Deserializes the spv vault data from its serialized implementation (returned from {@link StarknetSpvVaultData.serialize}) * * @param data */ constructor(data: (Serialized<StarknetSpvVaultData> & { type: "STARKNET"; })); /** * @inheritDoc */ getBalances(): SpvVaultTokenBalance[]; /** * @inheritDoc */ getConfirmations(): number; /** * @inheritDoc */ getOwner(): string; /** * @inheritDoc */ getTokenData(): SpvVaultTokenData[]; /** * @inheritDoc */ getUtxo(): string; /** * @inheritDoc */ getVaultId(): bigint; /** * @inheritDoc */ getWithdrawalCount(): number; /** * @inheritDoc */ isOpened(): boolean; /** * @inheritDoc */ serialize(): (Serialized<StarknetSpvVaultData> & { type: "STARKNET"; }); /** * @inheritDoc */ updateState(withdrawalTxOrEvent: SpvVaultClaimEvent | SpvVaultCloseEvent | SpvVaultOpenEvent | SpvVaultDepositEvent | StarknetSpvWithdrawalData): void; /** * @inheritDoc */ getDepositCount(): number; }