UNPKG

@atomiqlabs/chain-starknet

Version:
100 lines (99 loc) 3.37 kB
import { constants, Provider, WebSocketChannel } from "starknet"; import { StarknetFees } from "./chain/modules/StarknetFees"; import { StarknetConfig } from "./chain/StarknetChainInterface"; import { BaseTokenType, BitcoinNetwork, BitcoinRpc, ChainData, ChainInitializer, ChainSwapType } from "@atomiqlabs/base"; import { StarknetChainType } from "./StarknetChainType"; /** * Token assets available on Starknet * * @category Chain Interface */ export type StarknetAssetsType = BaseTokenType<"ETH" | "STRK" | "WBTC" | "TBTC" | "USDC" | "USDT" | "strkBTC" | "_TESTNET_WBTC_VESU" | "_TESTNET_strkBTC">; /** * Configuration options for initializing Starknet chain * * @category Chain Interface */ export type StarknetOptions = { /** * Starknet RPC URL or {@link Provider} object to use for Starknet network access */ rpcUrl: string | Provider; /** * Optional WebSocket URL or {@link WebSocketChannel} object to use for realtime events subscriptions */ wsUrl?: string | WebSocketChannel; /** * Retry policy for the RPC calls */ retryPolicy?: { maxRetries?: number; delay?: number; exponential?: boolean; }; /** * Starknet chain ID: mainnet or sepolia */ chainId?: constants.StarknetChainId; /** * Contract address of the Escrow Manager contract, uses canonical deployment by default */ swapContract?: string; /** * Optional Escrow Manager contract deployment height, which acts as genesis when querying events */ swapContractDeploymentHeight?: number; /** * Contract address of the BTC Relay contract, uses canonical deployment by default */ btcRelayContract?: string; /** * Optional BTC Relay contract deployment height, which acts as genesis when querying events */ btcRelayContractDeploymentHeight?: number; /** * Contract address of the UTXO-controlled vault (SPV Vault manager) contract, uses canonical deployment by default */ spvVaultContract?: string; /** * Optional UTXO-controlled vault (SPV Vault manager) contract deployment height, which acts as genesis when querying events */ spvVaultContractDeploymentHeight?: number; /** * Contract addresses of the refund and claim handlers, uses canonical deployment by default */ handlerContracts?: { refund?: { timelock?: string; }; claim?: { [type in ChainSwapType]?: string; }; }; /** * Starknet network fee API */ fees?: StarknetFees; /** * Starknet configuration */ starknetConfig?: StarknetConfig; }; /** * Initialize Starknet chain integration * * @category Chain Interface */ export declare function initializeStarknet(options: StarknetOptions, bitcoinRpc: BitcoinRpc<any>, network: BitcoinNetwork): ChainData<StarknetChainType>; /** * Type definition for the Starknet chain initializer * * @category Chain Interface */ export type StarknetInitializerType = ChainInitializer<StarknetOptions, StarknetChainType, StarknetAssetsType>; /** * Starknet chain initializer instance * * @category Chain Interface */ export declare const StarknetInitializer: StarknetInitializerType;