UNPKG

@funkit/fun-relay

Version:
317 lines 10.5 kB
import { type Address } from 'viem'; import type { DynamicRoute, DynamicRouteConfig, DynamicRoutePath, DynamicRoutingConfig, IndexedDynamicRoutingConfig } from './types'; export declare const createPath: (config: DynamicRoutePath) => DynamicRoutePath; export declare const createRoute: (config: DynamicRouteConfig) => DynamicRoute; export declare const initDynamicRouting: (dynamicRoutes: DynamicRoute[], dynamicRoutingConfig: DynamicRoutingConfig) => IndexedDynamicRoutingConfig; export declare const MAX_APPROVAL = "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"; /** * Returns args for the approve function call. * @param tokenAddress - The address of the token to approve * @param spenderAddress - The address of the spender to approve * @param amount - The amount of tokens to approve */ export declare const getApprovalCalldata: ({ tokenAddress, spenderAddress, amount, }: { tokenAddress: Address; spenderAddress: Address; amount: string; }) => { contractAbi: readonly [{ readonly type: "event"; readonly name: "Approval"; readonly inputs: readonly [{ readonly indexed: true; readonly name: "owner"; readonly type: "address"; }, { readonly indexed: true; readonly name: "spender"; readonly type: "address"; }, { readonly indexed: false; readonly name: "value"; readonly type: "uint256"; }]; }, { readonly type: "event"; readonly name: "Transfer"; readonly inputs: readonly [{ readonly indexed: true; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly name: "value"; readonly type: "uint256"; }]; }, { readonly type: "function"; readonly name: "allowance"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly name: "owner"; readonly type: "address"; }, { readonly name: "spender"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly type: "uint256"; }]; }, { readonly type: "function"; readonly name: "approve"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "spender"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly type: "bool"; }]; }, { readonly type: "function"; readonly name: "balanceOf"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly name: "account"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly type: "uint256"; }]; }, { readonly type: "function"; readonly name: "decimals"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "uint8"; }]; }, { readonly type: "function"; readonly name: "name"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "string"; }]; }, { readonly type: "function"; readonly name: "symbol"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "string"; }]; }, { readonly type: "function"; readonly name: "totalSupply"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "uint256"; }]; }, { readonly type: "function"; readonly name: "transfer"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "recipient"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly type: "bool"; }]; }, { readonly type: "function"; readonly name: "transferFrom"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "sender"; readonly type: "address"; }, { readonly name: "recipient"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly type: "bool"; }]; }]; contractAddress: `0x${string}`; functionName: "approve"; functionArgs: string[]; }; /** * Returns args for the approve function call to reset the approval to 0. * @param tokenAddress - The address of the token to reset the approval for * @param spenderAddress - The address of the spender to reset the approval for */ export declare const getResetApprovalCalldata: ({ tokenAddress, spenderAddress, }: { tokenAddress: Address; spenderAddress: Address; }) => { contractAbi: readonly [{ readonly type: "event"; readonly name: "Approval"; readonly inputs: readonly [{ readonly indexed: true; readonly name: "owner"; readonly type: "address"; }, { readonly indexed: true; readonly name: "spender"; readonly type: "address"; }, { readonly indexed: false; readonly name: "value"; readonly type: "uint256"; }]; }, { readonly type: "event"; readonly name: "Transfer"; readonly inputs: readonly [{ readonly indexed: true; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly name: "value"; readonly type: "uint256"; }]; }, { readonly type: "function"; readonly name: "allowance"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly name: "owner"; readonly type: "address"; }, { readonly name: "spender"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly type: "uint256"; }]; }, { readonly type: "function"; readonly name: "approve"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "spender"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly type: "bool"; }]; }, { readonly type: "function"; readonly name: "balanceOf"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly name: "account"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly type: "uint256"; }]; }, { readonly type: "function"; readonly name: "decimals"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "uint8"; }]; }, { readonly type: "function"; readonly name: "name"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "string"; }]; }, { readonly type: "function"; readonly name: "symbol"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "string"; }]; }, { readonly type: "function"; readonly name: "totalSupply"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "uint256"; }]; }, { readonly type: "function"; readonly name: "transfer"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "recipient"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly type: "bool"; }]; }, { readonly type: "function"; readonly name: "transferFrom"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "sender"; readonly type: "address"; }, { readonly name: "recipient"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly type: "bool"; }]; }]; contractAddress: `0x${string}`; functionName: "approve"; functionArgs: string[]; }; /** * These tokens have a brain dead implementation of the approve function. * They require the approval to be reset to 0 before the approval can be set to a new value. */ export declare const RESET_APPROVAL_TOKENS: string[]; /** * Checks if a token requires approval reset before approval can be set to a new value due to non-standard implementation of the approve function. * * @param tokenAddress - The address of the token to check if it requires approval reset before approval can be set to a new value. * @returns true if the token requires approval reset before approval can be set to a new value, false otherwise. */ export declare const shouldResetApproval: (tokenAddress: Address) => boolean; //# sourceMappingURL=utils.d.ts.map