import { BigNumber, BigNumberish, Signer } from "ethers"; import { Chain } from "./Chain"; import { Contract } from "./Contract"; export declare enum ERC { COIN = 0, ERC20 = 1, ERC721 = 2, ERC1155 = 3 } interface Callback { (name: string, state: number, event: string): void; } export declare class Token { erc: ERC; token: string; id: BigNumber; amount: BigNumber; price: BigNumber; owner: string; constructor(erc: number, token: string, id: BigNumber, amount: BigNumber, owner: string, price?: BigNumber); load(obj: Object): this; static newERC(erc: number, token: string, id: number, amount: BigNumber, owner: string, price?: BigNumber): Token; static newERC20(token: string, amount: BigNumber, price?: BigNumber): Token; static newERC721(token: string, id: number, price?: BigNumber): Token; static newERC1155(token: string, id: number, amount: BigNumber, price?: BigNumber): Token; desc(): string; } export declare class TokenUtil { mainCoinAddress: string; owner: Signer; hubChain: Chain; hubContract: Contract; constructor(providerUrl: string, owner: Signer); load(mainCoinAddress: string): Promise; static mintERC20(providerUrl: string, minter: Signer, contractAddress: string, amount: BigNumberish, toAddr: string, log?: { name: string; }): Promise; static mintERC721(providerUrl: string, minter: Signer, contractAddress: string, toAddr: string, log?: { name: string; }): Promise; static claimERC721(providerUrl: string, minter: Signer, contractAddress: string, id: number, toAddr: string, log?: { name: string; }): Promise; static mintERC1155(providerUrl: string, minter: Signer, contractAddress: string, id: number, amount: BigNumberish, toAddr: string, log?: { name: string; }): Promise; static mint(providerUrl: string, minter: Signer, erc: ERC, contractAddress: string, id: number, amount: BigNumberish, toAddr: string, log?: { name: string; }): Promise; /** * get contract instance by contractAddress. * this method is better for debugging ,because it cost too much time. * @param providerUrl * @param signer * @param contractAddress * @param log * return value : contract; * contract.erc == -1 NONE * contract.erc == 0 ERC20 * contract.erc == 1 ERC721 * contract.erc == 2 ERC1155 */ static getTokenContract(providerUrl: string, signer: Signer, contractAddress: string, log?: { name: string; }): Promise<{}>; static getTokenContractMint(providerUrl: string, signer: Signer, contractAddress: string, log?: { name: string; }): Promise; static getTokenHoldingFuzzy(providerUrl: string, signer: Signer, contractAddress: string, ids?: [], addrs?: [], log?: { name: string; }): Promise; /** * get signer's token holdings * this method is better for debugging ,because it cost too much time. * @param providerUrl * @param signer * @param erc -1 getTokenContract fuzzily * @param contractAddress * @param ids * ids == [] or undefined monitor top 50 ids to check * ids == [-15] monitor top 15 ids to check * ids == [3,6] monitor 3,6 id's token * @param addrs * addrs == undefined monitor signer's address , * addrs = [] monitor all users (ERC721), ERC1155 return signer's tokenList, * addrs = ['0x123'] monitor 0x123 tokens (ERC721,ERC1155) * @param log */ static getTokenHolding(providerUrl: string, signer: Signer, erc: ERC, contractAddress: string, ids?: [], addrs?: string[], log?: { name: string; }): Promise; checkApprovalTokenList(user: Signer, tokenList: Token[], approvalAddress: string, approve: boolean, callBack?: Callback): Promise; checkBalanceTokenList(user: Signer, tokenList: Token[]): string; } export {}; //# sourceMappingURL=TokenUtil.d.ts.map