@funkit/fun-relay
Version:
317 lines • 10.5 kB
TypeScript
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