@subasshrestha/zebec-wormhole-sdk
Version:
This sdk can be use to transfer assets across chains and to interact with the Zebec's xchain bridge smart contracts for passing message from EVM chain to solana specially to utilize the features of Zebec Streaming and Zebec Multisig Streaming protocol.
62 lines (61 loc) • 3.17 kB
TypeScript
import { BigNumber, ContractReceipt, ethers } from "ethers";
import { EVMChainId } from "@certusone/wormhole-sdk";
import { IZebecEthBridgeClient } from "./definitions";
/**
* A client implementation for zebec evm bridge contract
*/
export declare class ZebecEthBridgeClient implements IZebecEthBridgeClient {
readonly ArbitaryFee: BigNumber;
/**
* Chain id of zebec eth bridge client
*/
private _chainId;
/**
* Contract of zebec eth bridge client
*/
private _contract;
/**
* Constructs an client instance to interact with evm bridge contract
* @param contractAddress address of the bridge contract address
* @param signer evm signer
* @param sourceChain wormhole chain id of deployed evm contract
*/
constructor(contractAddress: string, signer: ethers.Signer, sourceChain: EVMChainId);
registerUser(address: string, overrides?: ethers.Overrides): Promise<ContractReceipt>;
createTokenAccount(owner: string, tokenMint: string, overrides?: ethers.Overrides): Promise<ContractReceipt>;
initStream(startTime: string, endTime: string, amount: string, receiver: string, sender: string, canCancel: boolean, canUpdate: boolean, tokenMint: string, overrides?: ethers.Overrides): Promise<ContractReceipt>;
deposit(amount: string, depositor: string, tokenMint: string, overrides?: ethers.Overrides): Promise<ethers.ContractReceipt>;
withdraw(amount: string, sender: string, tokenMint: string, overrides?: ethers.Overrides): Promise<ContractReceipt>;
updateStream(startTime: string, endTime: string, amount: string, receiver: string, sender: string, tokenMint: string, streamDataAccount: string, overrides?: ethers.Overrides): Promise<ethers.ContractReceipt>;
withdrawStreamed(sender: string, withdrawer: string, tokenMint: string, streamDataAccount: string, overrides?: ethers.Overrides): Promise<ContractReceipt>;
cancelStream(sender: string, receiver: string, tokenMint: string, streamDataAccount: string, overrides?: ethers.Overrides): Promise<ContractReceipt>;
pauseResumeStream(sender: string, receiver: string, tokenMint: string, streamDataAccount: string, overrides?: ethers.Overrides): Promise<ContractReceipt>;
instantTransfer(amount: string, sender: string, withdrawer: string, tokenMint: string, overrides?: ethers.Overrides): Promise<ContractReceipt>;
directTransfer(amount: string, sender: string, tokenMint: string, receiver: string, overrides?: ethers.Overrides): Promise<ContractReceipt>;
/**
* Checks if given amount is valid
* @param amount
* @returns
*/
private checkAmount;
/**
* Checks if given address is valid evm address
* @param address
* @param chainId
* @returns
*/
private checkEthAddress;
/**
* Checks if given address is valid solana address
* @param address
* @returns
*/
private checkSolanaAddress;
/**
* Checks if given start time and end time are valid
* @param startTime
* @param endTime
* @returns
*/
private checkStartTimeAndEndTime;
}