UNPKG

@mantleio/sdk

Version:
60 lines (59 loc) 2.77 kB
import { Contract, Overrides, Signer, BigNumber, CallOverrides, PayableOverrides } from 'ethers'; import { BlockTag, TransactionRequest, TransactionResponse } from '@ethersproject/abstract-provider'; import { NumberLike, AddressLike, TokenBridgeMessage } from './types'; import { CrossChainMessenger } from '../cross-chain-messenger'; export interface IERC721BridgeAdapter { messenger: CrossChainMessenger; l1Bridge: Contract; l2Bridge: Contract; supportsTokenPair(l1Token: AddressLike, l2Token: AddressLike): Promise<boolean>; approval(l1Token: AddressLike, l2Token: AddressLike, signer: Signer): Promise<boolean>; approve(l1Token: AddressLike, l2Token: AddressLike, signer: Signer, opts?: { overrides?: Overrides; }): Promise<TransactionResponse>; deposit(l1Token: AddressLike, l2Token: AddressLike, tokenId: NumberLike, signer: Signer, opts?: { recipient?: AddressLike; l2GasLimit?: NumberLike; overrides?: Overrides; }): Promise<TransactionResponse>; getWithdrawalsByAddress(address: AddressLike, opts?: { fromBlock?: BlockTag; toBlock?: BlockTag; }): Promise<TokenBridgeMessage[]>; getDepositsByAddress(address: AddressLike, opts?: { fromBlock?: BlockTag; toBlock?: BlockTag; }): Promise<TokenBridgeMessage[]>; withdraw(l1Token: AddressLike, l2Token: AddressLike, tokenId: NumberLike, signer: Signer, opts?: { recipient?: AddressLike; overrides?: Overrides; }): Promise<TransactionResponse>; populateTransaction: { approve(l1Token: AddressLike, l2Token: AddressLike, opts?: { overrides?: Overrides; }): Promise<TransactionRequest>; deposit(l1Token: AddressLike, l2Token: AddressLike, tokenId: NumberLike, opts?: { recipient?: AddressLike; l2GasLimit?: NumberLike; overrides?: PayableOverrides; }): Promise<TransactionRequest>; withdraw(l1Token: AddressLike, l2Token: AddressLike, tokenId: NumberLike, opts?: { recipient?: AddressLike; overrides?: Overrides; }): Promise<TransactionRequest>; }; estimateGas: { approve(l1Token: AddressLike, l2Token: AddressLike, opts?: { overrides?: CallOverrides; }): Promise<BigNumber>; deposit(l1Token: AddressLike, l2Token: AddressLike, tokenId: NumberLike, opts?: { recipient?: AddressLike; l2GasLimit?: NumberLike; overrides?: CallOverrides; }): Promise<BigNumber>; withdraw(l1Token: AddressLike, l2Token: AddressLike, tokenId: NumberLike, opts?: { recipient?: AddressLike; overrides?: CallOverrides; }): Promise<BigNumber>; }; }