biconomy-hyphen
Version:
Hyphen SDK to enable instant and seamless cross-chain deposits & withdrawals
132 lines (131 loc) • 3.37 kB
TypeScript
import { Contract } from "@ethersproject/contracts";
import { ethers } from "ethers";
import { config } from "./config";
export declare type Config = {
hyphenBaseUrl: object;
initiateExitPath: string;
getSupportedTokensPath: string;
checkRequestStatusPath: string;
checkTransferStatusPath: string;
getPoolInfoPath: string;
liquidityPoolManagerABI: object[];
erc20TokenABI: object[];
defaultSupportedTokens: Map<number, SupportedToken[]>;
supportedNetworkIds: number[];
defaultExitCheckInterval: number;
maxDepositCheckCallbackCount: number;
erc20ABIByNetworkId: Map<number, object>;
};
export declare type CheckStatusRequest = {
tokenAddress: string;
amount: string;
fromChainId: number;
toChainId: number;
userAddress: string;
};
export declare type CheckStatusResponse = {
code: number;
message: string;
};
export declare type SupportedToken = {
tokenSymbol: string;
decimal: number;
address: string;
};
export declare type Options = {
defaultAccount?: string;
debug?: boolean;
environment?: keyof typeof config.hyphenBaseUrl;
signatureType?: string;
infiniteApproval?: boolean;
exitCheckInterval?: number;
onFundsTransfered?: (data: ExitResponse) => void;
biconomy?: BiconomyOption;
walletProvider?: object;
};
export declare type InternalBiconomyOption = {
apiKey: string;
debug: boolean;
walletProvider?: object;
};
export declare type BiconomyOption = {
enable: boolean;
apiKey: string;
debug: boolean;
};
export declare type FetchOption = {
body?: string;
method: string;
headers: any;
};
export declare type ExitRequest = {
sender: string;
receiver: string;
tokenAddress: string;
amount: string;
fromChainId?: number;
toChainId?: number;
};
export declare type CheckDepositStatusRequest = {
depositHash: string;
fromChainId: number;
};
export declare type ExitResponse = {
code: number;
message: string;
statusCode: number;
fromChainId: number;
toChainId: number;
amount: string;
tokenAddress: string;
depositHash: string;
exitHash: string;
};
export declare type DepositRequest = {
sender: string;
receiver: string;
tokenAddress: string;
depositContractAddress: string;
amount: string;
fromChainId: number;
toChainId: number;
useBiconomy: boolean;
};
export declare type ERC20ApproveRequest = {
contract: Contract;
abi: ethers.ContractInterface;
domainType: object;
metaTransactionType: object;
userAddress: string;
spender: string;
amount: string;
name: string;
version: string;
address: string;
salt: string;
};
export declare type ManualExitResponse = {
code: number;
message: string;
exitHash: string;
};
export declare type TransactionResponse = {
hash: string;
wait: (confirmations?: number) => ethers.providers.TransactionReceipt;
};
export declare type Transaction = {
from: string;
data?: string;
to: string;
signatureType?: string;
value: string;
};
export declare type PoolInformationResponse = {
code: number;
message: string;
minDepositAmount: string;
maxDepositAmount: string;
availableLiquidity: string;
fromLPManagerAddress: string;
toLPManagerAddress: string;
};