genius-bridge-sdk
Version:
SDK for the Genius Bridge Protocol (GBP)
103 lines • 2.52 kB
TypeScript
import { ChainIdEnum } from './types/enums';
import { ILogger } from './utils/logger';
export type GeniusBridgeConfig = {
geniusBridgeBaseUrl?: string;
logger?: ILogger;
debug?: boolean;
};
export type PermitDetails = {
token: string;
amount: string;
expiration: number;
nonce: number;
};
export type PermitSingle = {
details: PermitDetails;
spender: string;
sigDeadline: string;
};
export type PermitBatch = {
details: PermitDetails[];
spender: string;
sigDeadline: string;
};
export type PermitSignatureParams = {
types: unknown;
domain: {
name: string;
number: number;
verifyingContract: string;
};
message: PermitBatch;
};
export type Permit = {
signature: string;
permitBatch: PermitBatch;
};
export type Authority = {
networkInAddress: string;
networkOutAddress: string;
};
export type GeniusBridgePriceParams = {
networkIn: number;
networkOut: number;
tokenIn: string;
tokenOut: string;
amountIn: string;
slippage: number;
from: string;
callTarget?: string;
callData?: string;
};
export type GeniusBridgeQuoteParams = GeniusBridgePriceParams & {
priceResponse?: GeniusBridgePriceResponse;
to?: string;
authority?: Authority;
permit?: Permit;
};
export type EvmArbitraryCall = {
from?: string;
to: string;
data: string;
value: string;
gasPrice?: string;
gasLimit?: string;
};
export type GeniusBridgeFeesBreakdown = {
base: string;
bps: string;
insurance: string;
swapOut?: string;
call?: string;
total: string;
};
export type ApprovalRequired = {
spender: string;
amount: string;
payload: EvmArbitraryCall;
};
export type GeniusBaseBridgeResponse = {
tokenIn: string;
tokenOut: string;
networkIn: ChainIdEnum;
networkOut: ChainIdEnum;
amountIn: string;
amountOut: string;
minAmountOut: string;
slippage: number;
fee: string;
feesDetails: GeniusBridgeFeesBreakdown;
arbitraryCall?: EvmArbitraryCall;
};
export type GeniusBridgePriceResponse = GeniusBaseBridgeResponse & {
swapInAmountOut?: string;
swapOutAmountOut?: string;
permit2ToSign?: PermitSignatureParams;
};
export type GeniusBridgeQuoteResponse = GeniusBaseBridgeResponse & {
seed: string;
evmExecutionPayload?: EvmArbitraryCall;
svmExecutionPayload?: string[];
approvalRequired?: ApprovalRequired | null;
};
//# sourceMappingURL=genius-bridge.types.d.ts.map