import { EVMAccountAddress, BlockchainCommonErrors, ERC20ContractError, EVMContractAddress, TokenAmount, Signature } from "@snickerdoodlelabs/objects"; import { ethers } from "ethers"; import { ResultAsync } from "neverthrow"; import { IBaseContract, IERC7529Contract, IRBCContract, ContractOverrides, WrappedTransactionResponse } from "../interfaces/index.js"; export interface IERC20RewardContract extends IBaseContract, IERC7529Contract, IRBCContract { /** * Returns the name of the ERC20 token */ name(): ResultAsync; /** * Returns the symbol of the ERC20 token */ symbol(): ResultAsync; /** * Returns the decimals of the ERC20 token */ decimals(): ResultAsync; /** * Returns the total supply of the ERC20 token */ totalSupply(): ResultAsync; /** * Returns the token balance of the EOA / contract address * @param address owner address */ balanceOf(address: EVMAccountAddress | EVMContractAddress): ResultAsync; /** * Returns the spending allowance of the EOA / contract address * @param owner owner address * @param spender spender address */ allowance(owner: EVMAccountAddress | EVMContractAddress, spender: EVMAccountAddress | EVMContractAddress): ResultAsync; /** * Allows caller to approve an amount of tokens for spender to transfer * @param spender spender address * @param amount amount of tokens to approve */ approve(spender: EVMAccountAddress | EVMContractAddress, amount: TokenAmount, overrides?: ContractOverrides): ResultAsync; /** * Allows caller to transfer an amount of tokens to a recipient * @param recipient spender address * @param amount amount of tokens to approve */ transfer(recipient: EVMAccountAddress | EVMContractAddress, amount: TokenAmount, overrides?: ContractOverrides): ResultAsync; /** * To transfer an amount of tokens from sender to recipient * @param sender sender address * @param recipient spender address * @param amount amount of tokens to approve */ transferFrom(sender: EVMAccountAddress | EVMContractAddress, recipient: EVMAccountAddress | EVMContractAddress, amount: TokenAmount, overrides?: ContractOverrides): ResultAsync; redeem(account: EVMAccountAddress, amount: TokenAmount, signature: Signature, overrides?: ContractOverrides): ResultAsync; filters: IERC20Filters; } export interface IERC20Filters { Transfer(fromAddress: EVMAccountAddress | null, toAddress: EVMAccountAddress | null): ethers.DeferredTopicFilter; } export declare const IERC20ContractType: unique symbol; //# sourceMappingURL=IERC20RewardContract.d.ts.map