@atomiqlabs/chain-starknet
Version:
Starknet specific base implementation
100 lines (99 loc) • 3.37 kB
TypeScript
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;