UNPKG

@cowprotocol/cow-sdk

Version:

## 📚 [Docs website](https://docs.cow.fi/)

268 lines (267 loc) • 7.58 kB
export type SupportedBridge = 'across' | 'cctp'; export interface BungeeQuoteAPIRequest { userAddress: string; originChainId: string; destinationChainId: string; inputToken: string; inputAmount: string; receiverAddress: string; outputToken: string; enableManual: true; disableSwapping: true; disableAuto: true; includeBridges?: SupportedBridge[]; } export interface BungeeQuoteAPIResponse { success: boolean; statusCode: number; result: { originChainId: number; destinationChainId: number; userAddress: string; receiverAddress: string; input: { token: { chainId: number; address: string; name: string; symbol: string; decimals: number; logoURI: string; icon: string; }; amount: string; priceInUsd: number; valueInUsd: number; }; destinationExec: unknown; autoRoute: unknown; manualRoutes: Array<{ quoteId: string; quoteExpiry: number; output: { token: { chainId: number; address: string; name: string; symbol: string; decimals: number; logoURI: string; icon: string; }; amount: string; priceInUsd: number; valueInUsd: number; minAmountOut: string; effectiveReceivedInUsd: number; }; affiliateFee: unknown; approvalData: { spenderAddress: string; amount: string; tokenAddress: string; userAddress: string; }; gasFee: { gasToken: { chainId: number; address: string; symbol: string; name: string; decimals: number; icon: string; logoURI: string; chainAgnosticId: unknown; }; gasLimit: string; gasPrice: string; estimatedFee: string; feeInUsd: number; }; slippage: number; estimatedTime: number; routeDetails: { name: string; logoURI: string; routeFee: { token: { chainId: number; address: string; name: string; symbol: string; decimals: number; logoURI: string; icon: string; }; amount: string; feeInUsd: number; priceInUsd: number; }; dexDetails: unknown; }; refuel: unknown; }>; }; } export declare enum BungeeBridge { 'Across' = "across", 'CircleCCTP' = "cctp" } export declare const BungeeBridgeNames: Record<string, BungeeBridge>; export interface BungeeQuote { originChainId: number; destinationChainId: number; userAddress: string; receiverAddress: string; input: BungeeQuoteAPIResponse['result']['input']; route: BungeeQuoteAPIResponse['result']['manualRoutes'][0]; routeBridge: BungeeBridge; quoteTimestamp: number; } export type BungeeQuoteWithBuildTx = { bungeeQuote: BungeeQuote; buildTx: BungeeBuildTx; }; export interface BungeeBuildTxAPIResponse { success: boolean; statusCode: number; result: { approvalData: { spenderAddress: string; amount: string; tokenAddress: string; userAddress: string; }; txData: { data: string; to: string; chainId: number; value: string; }; userOp: string; }; } export type BungeeBuildTx = BungeeBuildTxAPIResponse['result']; export interface InputAmountTxDataBytesIndices { inputAmount: { bytes_startIndex: number; bytes_length: number; bytesString_startIndex: number; bytesString_length: number; }; } export interface OutputAmountTxDataBytesIndices { outputAmount: { bytes_startIndex: number; bytes_length: number; bytesString_startIndex: number; bytesString_length: number; }; } export interface InputOutputAmountTxDataBytesIndices extends InputAmountTxDataBytesIndices, OutputAmountTxDataBytesIndices { } export type BungeeTxDataBytesIndicesType = { [K in BungeeBridge]: { [functionSelector: string]: K extends BungeeBridge.Across ? InputOutputAmountTxDataBytesIndices : InputAmountTxDataBytesIndices; }; }; export type SocketRequest = { amount: string; recipient: string; toChainId: string; token: string; signature: string; }; export type UserRequestValidation = { routeId: string; socketRequest: SocketRequest; }; export declare enum BungeeEventStatus { COMPLETED = "COMPLETED", PENDING = "PENDING" } export declare enum BungeeBridgeName { ACROSS = "across", CCTP = "cctp" } export type BungeeEvent = { identifier: string; srcTransactionHash?: string; bridgeName: BungeeBridgeName; fromChainId: number; gasUsed: string; isCowswapTrade: boolean; isSocketTx: boolean; metadata: string; orderId: string; recipient: string; sender: string; socketContractVersion: string; srcAmount: string; srcBlockHash: string; srcBlockNumber: number; srcBlockTimeStamp: number; srcTokenAddress: string; srcTokenDecimals: number; srcTokenLogoURI: string; srcTokenName: string; srcTokenSymbol: string; to: string; toChainId: number; destTransactionHash?: string; destAmount?: string; destBlockHash: string; destBlockNumber: number; destBlockTimeStamp: number; destTokenAddress: string; destTokenDecimals: number; destTokenLogoURI: string; destTokenName: string; destTokenSymbol: string; srcTxStatus: BungeeEventStatus; destTxStatus: BungeeEventStatus; }; export type BungeeEventsAPIResponse = { success: boolean; result: Array<BungeeEvent>; }; export interface AcrossStatusAPIResponse { status: 'filled' | 'pending' | 'expired' | 'refunded' | 'slowFillRequested'; originChainId: string; depositId: string; depositTxHash?: string; fillTx?: string; destinationChainId?: string; depositRefundTxHash?: string; pagination?: { currentIndex: number; maxIndex: number; }; } export type AcrossStatus = AcrossStatusAPIResponse['status']; export type BungeeBuyTokensAPIResponse = { success: boolean; statusCode: number; result: Array<{ chainId: number; address: string; decimals: number; name?: string; symbol?: string; logoURI?: string; icon?: string; }>; }; export type BungeeIntermediateTokensAPIResponse = { success: boolean; statusCode: number; result: Array<{ chainId: number; address: string; name: string; symbol: string; decimals: number; logoURI: string; icon: string; }>; };