butterjs-sdk
Version:
Butter Network SDK
78 lines (77 loc) • 4.2 kB
TypeScript
import { Contract as EthersContract } from 'ethers';
import { Contract as Web3Contract } from 'web3-eth-contract';
import { IMapOmnichainService } from '../interfaces/IMapOmnichainService';
import { ButterTransactionResponse } from '../../types/responseTypes';
import { TransactionOptions } from '../../types';
import { ButterProviderType } from '../../types/paramTypes';
export declare class RelayOmnichainService implements IMapOmnichainService {
contract: EthersContract | Web3Contract;
provider: ButterProviderType;
constructor(contractAddress: string, abi: any, signerOrProvider: ButterProviderType);
/**
* transfer out token(not native coin) from source chain to designated token on target chain
* @param fromAddress
* @param tokenAddress input token address
* @param amount amount in minimal unit
* @param toAddress target chain receiving address
* @param toChainId target chain id
* @param options
*/
doTransferOutToken(fromAddress: string, tokenAddress: string, amount: string, toAddress: string, toChainId: string, options: TransactionOptions): Promise<ButterTransactionResponse>;
/**
* transfer out native coin from source chain to designated token on target chain
* @param fromAddress
* @param toAddress target chain receiving address
* @param toChainId target chain id
* @param amount amount to bridge in minimal unit
* @param options
*/
doTransferOutNative(fromAddress: string, toAddress: string, toChainId: string, amount: string, options: TransactionOptions): Promise<ButterTransactionResponse>;
/**
* transfer out token(not native coin) from source chain to designated token on target chain
* @param fromAddress
* @param tokenAddress input token address
* @param amount amount in minimal unit
* @param toAddress target chain receiving address
* @param toChainId target chain id
* @param swapData
* @param options
*/
doSwapOutToken(fromAddress: string, tokenAddress: string, amount: string, toAddress: string, toChainId: string, swapData: string, options: TransactionOptions): Promise<ButterTransactionResponse>;
/**
* transfer out native coin from source chain to designated token on target chain
* @param fromAddress
* @param toAddress target chain receiving address
* @param toChainId target chain id
* @param amount amount to bridge in minimal unit
* @param swapData
* @param options
*/
doSwapOutNative(fromAddress: string, toAddress: string, toChainId: string, amount: string, swapData: string, options: TransactionOptions): Promise<ButterTransactionResponse>;
gasEstimateTransferOutToken(fromAddress: string, tokenAddress: string, amount: string, toAddress: string, toChainId: string): Promise<string>;
gasEstimateTransferOutNative(fromAddress: string, toAddress: string, toChainId: string, amount: string): Promise<string>;
gasEstimateSwapOutToken(fromAddress: string, tokenAddress: string, amount: string, toAddress: string, toChainId: string, swapData: string): Promise<string>;
gasEstimateSwapOutNative(fromAddress: string, toAddress: string, toChainId: string, amount: string, swapData: string): Promise<string>;
doDepositOutToken(tokenAddress: string, from: string, to: string, amount: string): Promise<string>;
/**
* set id table
* @param chainId
* @param id
*/
/**
* specify token decimal for the convertion of different token on different chain
* @param selfTokenAddress
* @param chainId
* @param decimals
*/
doSetTokenOtherChainDecimals(selfTokenAddress: string, chainId: string, decimals: number): Promise<string>;
doAddAuthToken(tokens: string[]): Promise<string>;
/**
* set accepted bridge address
* @param chainId chain id of the bridge address is residing on
* @param bridgeAddress bridge address
*/
doSetBridgeAddress(chainId: string, bridgeAddress: string): Promise<string>;
setVaultBalance(toChain: number, address: string, amount: string): Promise<string>;
getVaultBalance(toChainId: number, tokenAddress: string): Promise<string>;
}