/// import { AbiItem, BurnAndReleaseTransaction, LockAndMintTransaction, LockChain, Logger, MintChain, RenNetwork, RenNetworkDetails, RenNetworkString, TxStatus } from "@renproject/interfaces"; import { Provider } from "@renproject/provider"; import BigNumber from "bignumber.js"; import { AbstractRenVMProvider } from "../abstract"; import { ParamsQueryBlock, ParamsQueryBlocks, ParamsQueryTx, ParamsQueryTxs, ParamsSubmitBurn, ParamsSubmitMint, RenVMParams, RenVMResponses } from "./methods"; export declare const generateMintTxHash: (selector: string, encodedID: string, deposit: string, logger?: Logger) => Buffer; export declare class RenVMProvider implements AbstractRenVMProvider { version: () => number; private readonly network; readonly provider: Provider; sendMessage: RenVMProvider["provider"]["sendMessage"]; private readonly logger; constructor(network: RenNetwork | RenNetworkString | RenNetworkDetails, provider?: Provider, logger?: Logger); selector: ({ asset, from, to, }: { asset: string; from: LockChain | MintChain; to: LockChain | MintChain; }) => string; queryBlock: (blockHeight: ParamsQueryBlock["blockHeight"], retry?: number | undefined) => Promise; queryBlocks: (blockHeight: ParamsQueryBlocks["blockHeight"], n: ParamsQueryBlocks["n"], retry?: number | undefined) => Promise; submitTx: (tx: ParamsSubmitBurn["tx"] | ParamsSubmitMint["tx"], retry?: number | undefined) => Promise; queryTx: (txHash: ParamsQueryTx["txHash"], retry?: number | undefined) => Promise; queryTxs: (tags: ParamsQueryTxs["tags"], page?: number | undefined, pageSize?: number | undefined, txStatus?: ParamsQueryTxs["txStatus"], retry?: number | undefined) => Promise; queryNumPeers: (retry?: number | undefined) => Promise; queryPeers: (retry?: number | undefined) => Promise; queryShards: (retry?: number | undefined) => Promise; queryStat: (retry?: number | undefined) => Promise; queryFees: (retry?: number | undefined) => Promise; getFees: () => Promise; mintTxHash: ({ selector, gHash, outputHashFormat, }: { selector: string; gHash: Buffer; outputHashFormat: string; }) => Buffer; submitMint: ({ selector, nonce, output, payload, to, token, fn, fnABI, tags, }: { selector: string; nonce: Buffer; output: { txindex: string; txid: Buffer; }; payload: Buffer; to: string; token: string; fn: string; fnABI: AbiItem[]; tags: [string] | []; }) => Promise; submitBurn: (params: { selector: string; tags: [string] | []; burnNonce: BigNumber; }) => Promise; readonly queryMintOrBurn: (_selector: string, utxoTxHash: Buffer, retries?: number | undefined) => Promise; readonly waitForTX: (selector: string, utxoTxHash: Buffer, onStatus?: ((status: TxStatus) => void) | undefined, _cancelRequested?: (() => boolean) | undefined, timeout?: number | undefined) => Promise; /** * selectPublicKey fetches the public key for the RenVM shard handling * the provided contract. * * @param asset The asset for which the public key should be fetched. * @returns The public key hash (20 bytes) as a string. */ readonly selectPublicKey: (_selector: string, asset: string) => Promise; getNetwork: (_selector: string) => Promise; getConfirmationTarget: (selector: string, _chain: { name: string; }) => Promise<2 | 6 | 12 | 15 | 24 | 30 | undefined>; estimateTransactionFee: (_asset: string, _lockChain: { name: string; legacyName?: string; }, hostChain: { name: string; legacyName?: string; }) => Promise<{ lock: BigNumber; release: BigNumber; mint: number; burn: number; }>; }