import { TransactionRequest } from 'ethers'; import { Datatoken } from './Datatoken.js'; import { SmartContractWithAddress } from './SmartContractWithAddress.js'; import { DispenserToken, ReceiptOrEstimate, AbiItem } from '../@types/index.js'; export declare class Dispenser extends SmartContractWithAddress { getDefaultAbi(): AbiItem[]; /** * Get information about a datatoken dispenser * @param {String} dtAddress * @return {Promise} */ status(dtAddress: string): Promise; /** * Creates a new Dispenser * @param {String} dtAddress Datatoken address * @param {String} address Owner address * @param {String} maxTokens max tokens to dispense * @param {String} maxBalance max balance of requester * @param {String} allowedSwapper only account that can ask tokens. set address(0) if not required * @param {Boolean} estimateGas if True, return gas estimate * @return {Promise} transactionId */ create(dtAddress: string, address: string, maxTokens: string, maxBalance: string, allowedSwapper: string, estimateGas?: G): Promise>; createTx(dtAddress: string, address: string, maxTokens: string, maxBalance: string, allowedSwapper: string): Promise; /** * Activates a dispener. * @param {String} dtAddress refers to datatoken address. * @param {Number} maxTokens max amount of tokens to dispense * @param {Number} maxBalance max balance of user. If user balance is >, then dispense will be rejected * @param {Boolean} estimateGas if True, return gas estimate * @return {Promise} TransactionReceipt */ activate(dtAddress: string, maxTokens: string, maxBalance: string, estimateGas?: G): Promise>; activateTx(dtAddress: string, maxTokens: string, maxBalance: string): Promise; /** * Deactivate an existing dispenser. * @param {String} dtAddress refers to datatoken address. * @param {Boolean} estimateGas if True, return gas estimate * @return {Promise} TransactionReceipt */ deactivate(dtAddress: string, estimateGas?: G): Promise>; deactivateTx(dtAddress: string): Promise; /** * Sets a new allowed swapper. * @param {String} dtAddress Datatoken address. * @param {String} newAllowedSwapper The address of the new allowed swapper. * @param {Boolean} estimateGas if True, return gas estimate * @return {Promise} */ setAllowedSwapper(dtAddress: string, newAllowedSwapper: string, estimateGas?: G): Promise>; setAllowedSwapperTx(dtAddress: string, newAllowedSwapper: string): Promise; /** * Dispense datatokens to caller. * The dispenser must be active, hold enough datatokens (or be able to mint more) * and respect maxTokens/maxBalance requirements * @param {String} dtAddress Datatoken address. * @param {String} amount Amount of datatokens required. * @param {String} destination address of tokens receiver * @param {Boolean} estimateGas if True, return gas estimate * @return {Promise} */ dispense(dtAddress: string, amount: string, destination: string, estimateGas?: G): Promise>; dispenseTx(dtAddress: string, amount: string, destination: string): Promise; /** * Withdraw all tokens from the dispenser * @param {String} dtAddress Datatoken address. * @param {Boolean} estimateGas if True, return gas estimate * @return {Promise} */ ownerWithdraw(dtAddress: string, estimateGas?: G): Promise>; ownerWithdrawTx(dtAddress: string): Promise; /** * Check if tokens can be dispensed * @param {String} dtAddress Datatoken address * @param {String} address User address that will receive datatokens * @param {String} amount amount of datatokens required. * @return {Promise} */ isDispensable(dtAddress: string, datatoken: Datatoken, address: string, amount?: string): Promise; }