import { Web3LibAdapter, TransactionResponse, TransactionRequest } from "@bosonprotocol/common"; import { BigNumberish } from "@ethersproject/bignumber"; import { BaseCoreSDK } from "./../mixins/base-core-sdk"; import { approve, getAllowance, getDecimals, getSymbol, getName, ensureAllowance, balanceOf, TransferAuthorization } from "./handler"; import { StructuredData } from "../utils/signature"; export declare class ERC20Mixin extends BaseCoreSDK { /** * Approves ERC20 token spending allowance. * This transaction only succeeds if the token contract exists and caller has sufficient balance. * @param args - Approval arguments. * @param overrides - Optional overrides. * @returns Transaction response. */ erc20Approve(args: Omit[0], "web3Lib" | "theGraphStorage" | "metadataStorage">, overrides: Partial<{ contractAddress: string; txRequest: TransactionRequest; returnTxInfo: true; }>): Promise; erc20Approve(args: Omit[0], "web3Lib" | "theGraphStorage" | "metadataStorage">, overrides?: Partial<{ contractAddress: string; txRequest: TransactionRequest; returnTxInfo?: false | undefined; }>): Promise; erc20EnsureAllowance(args: Omit[0], "web3Lib">): Promise>; erc20GetAllowance(args: Omit[0], "web3Lib">): Promise>; erc20GetDecimals(args: Omit[0], "web3Lib">): Promise>; erc20GetSymbol(args: Omit[0], "web3Lib">): Promise>; erc20GetName(args: Omit[0], "web3Lib">): Promise>; erc20BalanceOf(args: Omit[0], "web3Lib">): Promise>; /** * Signs an ERC-3009 `ReceiveWithAuthorization` payload that authorizes the * spender (default: protocol diamond) to pull `value` units of `exchangeToken` * from the signer. Returns a `TransferAuthorization` tagged with strategy * `"ERC3009"`, ready to feed into `relayMetaTransaction` via * `transferAuthorizations`. */ signReceiveWithErc3009Authorization(exchangeToken: string, tokenDomain: { name: string; version: string; }, value: BigNumberish, validAfter: BigNumberish, validBefore: BigNumberish, overrides: Partial<{ spender: string; }> & { returnTypedDataToSign: true; }): Promise; signReceiveWithErc3009Authorization(exchangeToken: string, tokenDomain: { name: string; version: string; }, value: BigNumberish, validAfter: BigNumberish, validBefore: BigNumberish, overrides?: Partial<{ spender: string; returnTypedDataToSign?: false; }>): Promise; /** * Signs an EIP-2612 `Permit` payload that authorizes the spender (default: * protocol diamond) to pull `value` units of `exchangeToken` from the signer * up to `deadline`. Returns a `TransferAuthorization` tagged with strategy * `"EIP2612"`, ready to feed into `relayMetaTransaction` via * `transferAuthorizations`. */ signReceiveWithErc2612Permit(exchangeToken: string, tokenDomain: { name: string; version: string; }, value: BigNumberish, deadline: BigNumberish, overrides: Partial<{ spender: string; }> & { returnTypedDataToSign: true; }): Promise; signReceiveWithErc2612Permit(exchangeToken: string, tokenDomain: { name: string; version: string; }, value: BigNumberish, deadline: BigNumberish, overrides?: Partial<{ spender: string; returnTypedDataToSign?: false; }>): Promise; /** * Signs a Uniswap Permit2 `PermitTransferFrom` payload authorizing the * spender (default: protocol diamond) to pull `value` units of * `exchangeToken` from the signer up to `deadline`. The Permit2 contract * address defaults to `contracts.permit2` from SDK config and can be * overridden via `overrides.permit2Address`. If `overrides.permit2Nonce` * is omitted, a random uint256 is generated. Returns a `TransferAuthorization` * tagged with strategy `"Permit2"`, ready to feed into `relayMetaTransaction` * via `transferAuthorizations`. */ signReceiveWithPermit2(exchangeToken: string, value: BigNumberish, deadline: BigNumberish, overrides: Partial<{ spender: string; permit2Address: string; permit2Nonce: BigNumberish; }> & { returnTypedDataToSign: true; }): Promise; signReceiveWithPermit2(exchangeToken: string, value: BigNumberish, deadline: BigNumberish, overrides?: Partial<{ spender: string; permit2Address: string; permit2Nonce: BigNumberish; returnTypedDataToSign?: false; }>): Promise; /** * Signs a DAI-style `Permit` payload authorizing the spender (default: * protocol diamond) to pull `exchangeToken` from the signer up to `expiry`. * Returns a `TransferAuthorization` tagged with strategy `"DAIPermit"`, * ready to feed into `relayMetaTransaction` via `transferAuthorizations`. */ signReceiveWithDaiPermit(exchangeToken: string, tokenDomain: { name: string; }, value: BigNumberish, expiry: BigNumberish, overrides: Partial<{ spender: string; }> & { returnTypedDataToSign: true; }): Promise; signReceiveWithDaiPermit(exchangeToken: string, tokenDomain: { name: string; }, value: BigNumberish, expiry: BigNumberish, overrides?: Partial<{ spender: string; returnTypedDataToSign?: false; }>): Promise; } //# sourceMappingURL=mixin.d.ts.map