@plasma-fi/sdk
Version:
🛠An SDK for building dapp on PlasmaSwap.
3,362 lines (3,354 loc) • 230 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var JSBI = _interopDefault(require('jsbi'));
var Big$2 = _interopDefault(require('big.js'));
var invariant = _interopDefault(require('tiny-invariant'));
var toFormat = _interopDefault(require('toformat'));
var address = require('@ethersproject/address');
var warning = _interopDefault(require('tiny-warning'));
var _Decimal = _interopDefault(require('decimal.js-light'));
var solidity = require('@ethersproject/solidity');
var keccak256 = require('@ethersproject/keccak256');
var bytes = require('@ethersproject/bytes');
var bignumber = require('@ethersproject/bignumber');
var abi = require('@ethersproject/abi');
var erc20 = [
{
constant: true,
inputs: [
],
name: "name",
outputs: [
{
name: "",
type: "string"
}
],
payable: false,
stateMutability: "view",
type: "function"
},
{
constant: false,
inputs: [
{
name: "_spender",
type: "address"
},
{
name: "_value",
type: "uint256"
}
],
name: "approve",
outputs: [
{
name: "",
type: "bool"
}
],
payable: false,
stateMutability: "nonpayable",
type: "function"
},
{
constant: true,
inputs: [
],
name: "totalSupply",
outputs: [
{
name: "",
type: "uint256"
}
],
payable: false,
stateMutability: "view",
type: "function"
},
{
constant: false,
inputs: [
{
name: "_from",
type: "address"
},
{
name: "_to",
type: "address"
},
{
name: "_value",
type: "uint256"
}
],
name: "transferFrom",
outputs: [
{
name: "",
type: "bool"
}
],
payable: false,
stateMutability: "nonpayable",
type: "function"
},
{
constant: true,
inputs: [
],
name: "decimals",
outputs: [
{
name: "",
type: "uint8"
}
],
payable: false,
stateMutability: "view",
type: "function"
},
{
constant: true,
inputs: [
{
name: "_owner",
type: "address"
}
],
name: "balanceOf",
outputs: [
{
name: "balance",
type: "uint256"
}
],
payable: false,
stateMutability: "view",
type: "function"
},
{
constant: true,
inputs: [
],
name: "symbol",
outputs: [
{
name: "",
type: "string"
}
],
payable: false,
stateMutability: "view",
type: "function"
},
{
constant: false,
inputs: [
{
name: "_to",
type: "address"
},
{
name: "_value",
type: "uint256"
}
],
name: "transfer",
outputs: [
{
name: "",
type: "bool"
}
],
payable: false,
stateMutability: "nonpayable",
type: "function"
},
{
constant: true,
inputs: [
{
name: "_owner",
type: "address"
},
{
name: "_spender",
type: "address"
}
],
name: "allowance",
outputs: [
{
name: "",
type: "uint256"
}
],
payable: false,
stateMutability: "view",
type: "function"
},
{
payable: true,
stateMutability: "payable",
type: "fallback"
},
{
anonymous: false,
inputs: [
{
indexed: true,
name: "owner",
type: "address"
},
{
indexed: true,
name: "spender",
type: "address"
},
{
indexed: false,
name: "value",
type: "uint256"
}
],
name: "Approval",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
name: "from",
type: "address"
},
{
indexed: true,
name: "to",
type: "address"
},
{
indexed: false,
name: "value",
type: "uint256"
}
],
name: "Transfer",
type: "event"
}
];
var swapPair = [
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "owner",
type: "address"
},
{
indexed: true,
internalType: "address",
name: "spender",
type: "address"
},
{
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}
],
name: "Approval",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "sender",
type: "address"
},
{
indexed: false,
internalType: "uint256",
name: "amount0",
type: "uint256"
},
{
indexed: false,
internalType: "uint256",
name: "amount1",
type: "uint256"
},
{
indexed: true,
internalType: "address",
name: "to",
type: "address"
}
],
name: "Burn",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "sender",
type: "address"
},
{
indexed: false,
internalType: "uint256",
name: "amount0",
type: "uint256"
},
{
indexed: false,
internalType: "uint256",
name: "amount1",
type: "uint256"
}
],
name: "Mint",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "sender",
type: "address"
},
{
indexed: false,
internalType: "uint256",
name: "amount0In",
type: "uint256"
},
{
indexed: false,
internalType: "uint256",
name: "amount1In",
type: "uint256"
},
{
indexed: false,
internalType: "uint256",
name: "amount0Out",
type: "uint256"
},
{
indexed: false,
internalType: "uint256",
name: "amount1Out",
type: "uint256"
},
{
indexed: true,
internalType: "address",
name: "to",
type: "address"
}
],
name: "Swap",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "uint112",
name: "reserve0",
type: "uint112"
},
{
indexed: false,
internalType: "uint112",
name: "reserve1",
type: "uint112"
}
],
name: "Sync",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "from",
type: "address"
},
{
indexed: true,
internalType: "address",
name: "to",
type: "address"
},
{
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}
],
name: "Transfer",
type: "event"
},
{
constant: true,
inputs: [
],
name: "DOMAIN_SEPARATOR",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32"
}
],
payable: false,
stateMutability: "view",
type: "function"
},
{
constant: true,
inputs: [
],
name: "MINIMUM_LIQUIDITY",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256"
}
],
payable: false,
stateMutability: "pure",
type: "function"
},
{
constant: true,
inputs: [
],
name: "PERMIT_TYPEHASH",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32"
}
],
payable: false,
stateMutability: "pure",
type: "function"
},
{
constant: true,
inputs: [
{
internalType: "address",
name: "owner",
type: "address"
},
{
internalType: "address",
name: "spender",
type: "address"
}
],
name: "allowance",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256"
}
],
payable: false,
stateMutability: "view",
type: "function"
},
{
constant: false,
inputs: [
{
internalType: "address",
name: "spender",
type: "address"
},
{
internalType: "uint256",
name: "value",
type: "uint256"
}
],
name: "approve",
outputs: [
{
internalType: "bool",
name: "",
type: "bool"
}
],
payable: false,
stateMutability: "nonpayable",
type: "function"
},
{
constant: true,
inputs: [
{
internalType: "address",
name: "owner",
type: "address"
}
],
name: "balanceOf",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256"
}
],
payable: false,
stateMutability: "view",
type: "function"
},
{
constant: false,
inputs: [
{
internalType: "address",
name: "to",
type: "address"
}
],
name: "burn",
outputs: [
{
internalType: "uint256",
name: "amount0",
type: "uint256"
},
{
internalType: "uint256",
name: "amount1",
type: "uint256"
}
],
payable: false,
stateMutability: "nonpayable",
type: "function"
},
{
constant: true,
inputs: [
],
name: "decimals",
outputs: [
{
internalType: "uint8",
name: "",
type: "uint8"
}
],
payable: false,
stateMutability: "pure",
type: "function"
},
{
constant: true,
inputs: [
],
name: "factory",
outputs: [
{
internalType: "address",
name: "",
type: "address"
}
],
payable: false,
stateMutability: "view",
type: "function"
},
{
constant: true,
inputs: [
],
name: "getReserves",
outputs: [
{
internalType: "uint112",
name: "reserve0",
type: "uint112"
},
{
internalType: "uint112",
name: "reserve1",
type: "uint112"
},
{
internalType: "uint32",
name: "blockTimestampLast",
type: "uint32"
}
],
payable: false,
stateMutability: "view",
type: "function"
},
{
constant: false,
inputs: [
{
internalType: "address",
name: "",
type: "address"
},
{
internalType: "address",
name: "",
type: "address"
}
],
name: "initialize",
outputs: [
],
payable: false,
stateMutability: "nonpayable",
type: "function"
},
{
constant: true,
inputs: [
],
name: "kLast",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256"
}
],
payable: false,
stateMutability: "view",
type: "function"
},
{
constant: false,
inputs: [
{
internalType: "address",
name: "to",
type: "address"
}
],
name: "mint",
outputs: [
{
internalType: "uint256",
name: "liquidity",
type: "uint256"
}
],
payable: false,
stateMutability: "nonpayable",
type: "function"
},
{
constant: true,
inputs: [
],
name: "name",
outputs: [
{
internalType: "string",
name: "",
type: "string"
}
],
payable: false,
stateMutability: "pure",
type: "function"
},
{
constant: true,
inputs: [
{
internalType: "address",
name: "owner",
type: "address"
}
],
name: "nonces",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256"
}
],
payable: false,
stateMutability: "view",
type: "function"
},
{
constant: false,
inputs: [
{
internalType: "address",
name: "owner",
type: "address"
},
{
internalType: "address",
name: "spender",
type: "address"
},
{
internalType: "uint256",
name: "value",
type: "uint256"
},
{
internalType: "uint256",
name: "deadline",
type: "uint256"
},
{
internalType: "uint8",
name: "v",
type: "uint8"
},
{
internalType: "bytes32",
name: "r",
type: "bytes32"
},
{
internalType: "bytes32",
name: "s",
type: "bytes32"
}
],
name: "permit",
outputs: [
],
payable: false,
stateMutability: "nonpayable",
type: "function"
},
{
constant: true,
inputs: [
],
name: "price0CumulativeLast",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256"
}
],
payable: false,
stateMutability: "view",
type: "function"
},
{
constant: true,
inputs: [
],
name: "price1CumulativeLast",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256"
}
],
payable: false,
stateMutability: "view",
type: "function"
},
{
constant: false,
inputs: [
{
internalType: "address",
name: "to",
type: "address"
}
],
name: "skim",
outputs: [
],
payable: false,
stateMutability: "nonpayable",
type: "function"
},
{
constant: false,
inputs: [
{
internalType: "uint256",
name: "amount0Out",
type: "uint256"
},
{
internalType: "uint256",
name: "amount1Out",
type: "uint256"
},
{
internalType: "address",
name: "to",
type: "address"
},
{
internalType: "bytes",
name: "data",
type: "bytes"
}
],
name: "swap",
outputs: [
],
payable: false,
stateMutability: "nonpayable",
type: "function"
},
{
constant: true,
inputs: [
],
name: "symbol",
outputs: [
{
internalType: "string",
name: "",
type: "string"
}
],
payable: false,
stateMutability: "pure",
type: "function"
},
{
constant: false,
inputs: [
],
name: "sync",
outputs: [
],
payable: false,
stateMutability: "nonpayable",
type: "function"
},
{
constant: true,
inputs: [
],
name: "token0",
outputs: [
{
internalType: "address",
name: "",
type: "address"
}
],
payable: false,
stateMutability: "view",
type: "function"
},
{
constant: true,
inputs: [
],
name: "token1",
outputs: [
{
internalType: "address",
name: "",
type: "address"
}
],
payable: false,
stateMutability: "view",
type: "function"
},
{
constant: true,
inputs: [
],
name: "totalSupply",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256"
}
],
payable: false,
stateMutability: "view",
type: "function"
},
{
constant: false,
inputs: [
{
internalType: "address",
name: "to",
type: "address"
},
{
internalType: "uint256",
name: "value",
type: "uint256"
}
],
name: "transfer",
outputs: [
{
internalType: "bool",
name: "",
type: "bool"
}
],
payable: false,
stateMutability: "nonpayable",
type: "function"
},
{
constant: false,
inputs: [
{
internalType: "address",
name: "from",
type: "address"
},
{
internalType: "address",
name: "to",
type: "address"
},
{
internalType: "uint256",
name: "value",
type: "uint256"
}
],
name: "transferFrom",
outputs: [
{
internalType: "bool",
name: "",
type: "bool"
}
],
payable: false,
stateMutability: "nonpayable",
type: "function"
}
];
var swapRouter = [
{
inputs: [
],
name: "WETH",
outputs: [
{
internalType: "address",
name: "",
type: "address"
}
],
stateMutability: "pure",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "tokenA",
type: "address"
},
{
internalType: "address",
name: "tokenB",
type: "address"
},
{
internalType: "uint256",
name: "amountADesired",
type: "uint256"
},
{
internalType: "uint256",
name: "amountBDesired",
type: "uint256"
},
{
internalType: "uint256",
name: "amountAMin",
type: "uint256"
},
{
internalType: "uint256",
name: "amountBMin",
type: "uint256"
},
{
internalType: "address",
name: "to",
type: "address"
},
{
internalType: "uint256",
name: "deadline",
type: "uint256"
}
],
name: "addLiquidity",
outputs: [
{
internalType: "uint256",
name: "amountA",
type: "uint256"
},
{
internalType: "uint256",
name: "amountB",
type: "uint256"
},
{
internalType: "uint256",
name: "liquidity",
type: "uint256"
}
],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "token",
type: "address"
},
{
internalType: "uint256",
name: "amountTokenDesired",
type: "uint256"
},
{
internalType: "uint256",
name: "amountTokenMin",
type: "uint256"
},
{
internalType: "uint256",
name: "amountETHMin",
type: "uint256"
},
{
internalType: "address",
name: "to",
type: "address"
},
{
internalType: "uint256",
name: "deadline",
type: "uint256"
}
],
name: "addLiquidityETH",
outputs: [
{
internalType: "uint256",
name: "amountToken",
type: "uint256"
},
{
internalType: "uint256",
name: "amountETH",
type: "uint256"
},
{
internalType: "uint256",
name: "liquidity",
type: "uint256"
}
],
stateMutability: "payable",
type: "function"
},
{
inputs: [
],
name: "factory",
outputs: [
{
internalType: "address",
name: "",
type: "address"
}
],
stateMutability: "pure",
type: "function"
},
{
inputs: [
{
internalType: "uint256",
name: "amountOut",
type: "uint256"
},
{
internalType: "uint256",
name: "reserveIn",
type: "uint256"
},
{
internalType: "uint256",
name: "reserveOut",
type: "uint256"
}
],
name: "getAmountIn",
outputs: [
{
internalType: "uint256",
name: "amountIn",
type: "uint256"
}
],
stateMutability: "pure",
type: "function"
},
{
inputs: [
{
internalType: "uint256",
name: "amountIn",
type: "uint256"
},
{
internalType: "uint256",
name: "reserveIn",
type: "uint256"
},
{
internalType: "uint256",
name: "reserveOut",
type: "uint256"
}
],
name: "getAmountOut",
outputs: [
{
internalType: "uint256",
name: "amountOut",
type: "uint256"
}
],
stateMutability: "pure",
type: "function"
},
{
inputs: [
{
internalType: "uint256",
name: "amountOut",
type: "uint256"
},
{
internalType: "address[]",
name: "path",
type: "address[]"
}
],
name: "getAmountsIn",
outputs: [
{
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "uint256",
name: "amountIn",
type: "uint256"
},
{
internalType: "address[]",
name: "path",
type: "address[]"
}
],
name: "getAmountsOut",
outputs: [
{
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "uint256",
name: "amountA",
type: "uint256"
},
{
internalType: "uint256",
name: "reserveA",
type: "uint256"
},
{
internalType: "uint256",
name: "reserveB",
type: "uint256"
}
],
name: "quote",
outputs: [
{
internalType: "uint256",
name: "amountB",
type: "uint256"
}
],
stateMutability: "pure",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "tokenA",
type: "address"
},
{
internalType: "address",
name: "tokenB",
type: "address"
},
{
internalType: "uint256",
name: "liquidity",
type: "uint256"
},
{
internalType: "uint256",
name: "amountAMin",
type: "uint256"
},
{
internalType: "uint256",
name: "amountBMin",
type: "uint256"
},
{
internalType: "address",
name: "to",
type: "address"
},
{
internalType: "uint256",
name: "deadline",
type: "uint256"
}
],
name: "removeLiquidity",
outputs: [
{
internalType: "uint256",
name: "amountA",
type: "uint256"
},
{
internalType: "uint256",
name: "amountB",
type: "uint256"
}
],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "token",
type: "address"
},
{
internalType: "uint256",
name: "liquidity",
type: "uint256"
},
{
internalType: "uint256",
name: "amountTokenMin",
type: "uint256"
},
{
internalType: "uint256",
name: "amountETHMin",
type: "uint256"
},
{
internalType: "address",
name: "to",
type: "address"
},
{
internalType: "uint256",
name: "deadline",
type: "uint256"
}
],
name: "removeLiquidityETH",
outputs: [
{
internalType: "uint256",
name: "amountToken",
type: "uint256"
},
{
internalType: "uint256",
name: "amountETH",
type: "uint256"
}
],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "token",
type: "address"
},
{
internalType: "uint256",
name: "liquidity",
type: "uint256"
},
{
internalType: "uint256",
name: "amountTokenMin",
type: "uint256"
},
{
internalType: "uint256",
name: "amountETHMin",
type: "uint256"
},
{
internalType: "address",
name: "to",
type: "address"
},
{
internalType: "uint256",
name: "deadline",
type: "uint256"
}
],
name: "removeLiquidityETHSupportingFeeOnTransferTokens",
outputs: [
{
internalType: "uint256",
name: "amountETH",
type: "uint256"
}
],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "token",
type: "address"
},
{
internalType: "uint256",
name: "liquidity",
type: "uint256"
},
{
internalType: "uint256",
name: "amountTokenMin",
type: "uint256"
},
{
internalType: "uint256",
name: "amountETHMin",
type: "uint256"
},
{
internalType: "address",
name: "to",
type: "address"
},
{
internalType: "uint256",
name: "deadline",
type: "uint256"
},
{
internalType: "bool",
name: "approveMax",
type: "bool"
},
{
internalType: "uint8",
name: "v",
type: "uint8"
},
{
internalType: "bytes32",
name: "r",
type: "bytes32"
},
{
internalType: "bytes32",
name: "s",
type: "bytes32"
}
],
name: "removeLiquidityETHWithPermit",
outputs: [
{
internalType: "uint256",
name: "amountToken",
type: "uint256"
},
{
internalType: "uint256",
name: "amountETH",
type: "uint256"
}
],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "token",
type: "address"
},
{
internalType: "uint256",
name: "liquidity",
type: "uint256"
},
{
internalType: "uint256",
name: "amountTokenMin",
type: "uint256"
},
{
internalType: "uint256",
name: "amountETHMin",
type: "uint256"
},
{
internalType: "address",
name: "to",
type: "address"
},
{
internalType: "uint256",
name: "deadline",
type: "uint256"
},
{
internalType: "bool",
name: "approveMax",
type: "bool"
},
{
internalType: "uint8",
name: "v",
type: "uint8"
},
{
internalType: "bytes32",
name: "r",
type: "bytes32"
},
{
internalType: "bytes32",
name: "s",
type: "bytes32"
}
],
name: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens",
outputs: [
{
internalType: "uint256",
name: "amountETH",
type: "uint256"
}
],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "tokenA",
type: "address"
},
{
internalType: "address",
name: "tokenB",
type: "address"
},
{
internalType: "uint256",
name: "liquidity",
type: "uint256"
},
{
internalType: "uint256",
name: "amountAMin",
type: "uint256"
},
{
internalType: "uint256",
name: "amountBMin",
type: "uint256"
},
{
internalType: "address",
name: "to",
type: "address"
},
{
internalType: "uint256",
name: "deadline",
type: "uint256"
},
{
internalType: "bool",
name: "approveMax",
type: "bool"
},
{
internalType: "uint8",
name: "v",
type: "uint8"
},
{
internalType: "bytes32",
name: "r",
type: "bytes32"
},
{
internalType: "bytes32",
name: "s",
type: "bytes32"
}
],
name: "removeLiquidityWithPermit",
outputs: [
{
internalType: "uint256",
name: "amountA",
type: "uint256"
},
{
internalType: "uint256",
name: "amountB",
type: "uint256"
}
],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "uint256",
name: "amountOut",
type: "uint256"
},
{
internalType: "address[]",
name: "path",
type: "address[]"
},
{
internalType: "address",
name: "to",
type: "address"
},
{
internalType: "uint256",
name: "deadline",
type: "uint256"
}
],
name: "swapETHForExactTokens",
outputs: [
{
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}
],
stateMutability: "payable",
type: "function"
},
{
inputs: [
{
internalType: "uint256",
name: "amountOutMin",
type: "uint256"
},
{
internalType: "address[]",
name: "path",
type: "address[]"
},
{
internalType: "address",
name: "to",
type: "address"
},
{
internalType: "uint256",
name: "deadline",
type: "uint256"
}
],
name: "swapExactETHForTokens",
outputs: [
{
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}
],
stateMutability: "payable",
type: "function"
},
{
inputs: [
{
internalType: "uint256",
name: "amountOutMin",
type: "uint256"
},
{
internalType: "address[]",
name: "path",
type: "address[]"
},
{
internalType: "address",
name: "to",
type: "address"
},
{
internalType: "uint256",
name: "deadline",
type: "uint256"
}
],
name: "swapExactETHForTokensSupportingFeeOnTransferTokens",
outputs: [
],
stateMutability: "payable",
type: "function"
},
{
inputs: [
{
internalType: "uint256",
name: "amountIn",
type: "uint256"
},
{
internalType: "uint256",
name: "amountOutMin",
type: "uint256"
},
{
internalType: "address[]",
name: "path",
type: "address[]"
},
{
internalType: "address",
name: "to",
type: "address"
},
{
internalType: "uint256",
name: "deadline",
type: "uint256"
}
],
name: "swapExactTokensForETH",
outputs: [
{
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}
],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "uint256",
name: "amountIn",
type: "uint256"
},
{
internalType: "uint256",
name: "amountOutMin",
type: "uint256"
},
{
internalType: "address[]",
name: "path",
type: "address[]"
},
{
internalType: "address",
name: "to",
type: "address"
},
{
internalType: "uint256",
name: "deadline",
type: "uint256"
}
],
name: "swapExactTokensForETHSupportingFeeOnTransferTokens",
outputs: [
],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "uint256",
name: "amountIn",
type: "uint256"
},
{
internalType: "uint256",
name: "amountOutMin",
type: "uint256"
},
{
internalType: "address[]",
name: "path",
type: "address[]"
},
{
internalType: "address",
name: "to",
type: "address"
},
{
internalType: "uint256",
name: "deadline",
type: "uint256"
}
],
name: "swapExactTokensForTokens",
outputs: [
{
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}
],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "uint256",
name: "amountIn",
type: "uint256"
},
{
internalType: "uint256",
name: "amountOutMin",
type: "uint256"
},
{
internalType: "address[]",
name: "path",
type: "address[]"
},
{
internalType: "address",
name: "to",
type: "address"
},
{
internalType: "uint256",
name: "deadline",
type: "uint256"
}
],
name: "swapExactTokensForTokensSupportingFeeOnTransferTokens",
outputs: [
],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "uint256",
name: "amountOut",
type: "uint256"
},
{
internalType: "uint256",
name: "amountInMax",
type: "uint256"
},
{
internalType: "address[]",
name: "path",
type: "address[]"
},
{
internalType: "address",
name: "to",
type: "address"
},
{
internalType: "uint256",
name: "deadline",
type: "uint256"
}
],
name: "swapTokensForExactETH",
outputs: [
{
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}
],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "uint256",
name: "amountOut",
type: "uint256"
},
{
internalType: "uint256",
name: "amountInMax",
type: "uint256"
},
{
internalType: "address[]",
name: "path",
type: "address[]"
},
{
internalType: "address",
name: "to",
type: "address"
},
{
internalType: "uint256",
name: "deadline",
type: "uint256"
}
],
name: "swapTokensForExactTokens",
outputs: [
{
internalType: "uint256[]",
name: "amounts",
type: "uint256[]"
}
],
stateMutability: "nonpayable",
type: "function"
}
];
var zeroExProxy = [
{
anonymous: false,
inputs: [
{
name: "orderHash",
type: "bytes32",
indexed: false
},
{
name: "maker",
type: "address",
indexed: false
},
{
name: "expiry",
type: "uint64",
indexed: false
}
],
name: "ExpiredRfqOrder",
outputs: [
],
type: "event"
},
{
anonymous: false,
inputs: [
{
name: "orderHash",
type: "bytes32",
indexed: false
},
{
name: "maker",
type: "address",
indexed: false
},
{
name: "taker",
type: "address",
indexed: false
},
{
name: "feeRecipient",
type: "address",
indexed: false
},
{
name: "makerToken",
type: "address",
indexed: false
},
{
name: "takerToken",
type: "address",
indexed: false
},
{
name: "takerTokenFilledAmount",
type: "uint128",
indexed: false
},
{
name: "makerTokenFilledAmount",
type: "uint128",
indexed: false
},
{
name: "takerTokenFeeFilledAmount",
type: "uint128",
indexed: false
},
{
name: "protocolFeePaid",
type: "uint256",
indexed: false
},
{
name: "pool",
type: "bytes32",
indexed: false
}
],
name: "LimitOrderFilled",
outputs: [
],
type: "event"
},
{
anonymous: false,
inputs: [
{
name: "inputToken",
type: "address",
indexed: false
},
{
name: "outputToken",
type: "address",
indexed: false
},
{
name: "inputTokenAmount",
type: "uint256",
indexed: false
},
{
name: "outputTokenAmount",
type: "uint256",
indexed: false
},
{
name: "provider",
type: "address",
indexed: false
},
{
name: "recipient",
type: "address",
indexed: false
}
],
name: "LiquidityProviderSwap",
outputs: [
],
type: "event"
},
{
anonymous: false,
inputs: [
{
name: "hash",
type: "bytes32",
indexed: false
},
{
name: "selector",
type: "bytes4",
indexed: true
},
{
name: "signer",
type: "address",
indexed: false
},
{
name: "sender",
type: "address",
indexed: false
}
],
name: "MetaTransactionExecuted",
outputs: [
],
type: "event"
},
{
anonymous: false,
inputs: [
{
name: "caller",
type: "address",
indexed: false
},
{
name: "migrator",
type: "address",
indexed: false
},
{
name: "newOwner",
type: "address",
indexed: false
}
],
name: "Migrated",
outputs: [
],
type: "event"
},
{
anonymous: false,
inputs: [
{
name: "orderHash",
type: "bytes32",
indexed: false
},
{
name: "maker",
type: "address",
indexed: false
}
],
name: "OrderCancelled",
outputs: [
],
type: "event"
},
{
anonymous: false,
inputs: [
{
name: "maker",
type: "address",
indexed: false
},
{
name: "signer",
type: "address",
indexed: false
},
{
name: "allowed",
type: "bool",
indexed: false
}
],
name: "OrderSignerRegistered",
outputs: [
],
type: "event"
},
{
anonymous: false,
inputs: [
{
name: "orderHash",
type: "bytes32",
indexed: false
},
{
name: "maker",
type: "address",
indexed: false
},
{
name: "taker",
type: "address",
indexed: false
},
{
name: "makerToken",
type: "address",
indexed: false
},
{
name: "takerToken",
type: "address",
indexed: false
},
{
name: "takerTokenFilledAmount",
type: "uint128",
indexed: false
},
{
name: "makerTokenFilledAmount",
type: "uint128",
indexed: false
}
],
name: "OtcOrderFilled",
outputs: [
],
type: "event"
},
{
anonymous: false,
inputs: [
{
name: "previousOwner",
type: "address",
indexed: true
},
{
name: "newOwner",
type: "address",
indexed: true
}
],
name: "OwnershipTransferred",
outputs: [
],
type: "event"
},
{
anonymous: false,
inputs: [
{
name: "maker",
type: "address",
indexed: false
},
{
name: "makerToken",
type: "address",
indexed: false
},
{
name: "takerToken",
type: "address",
indexed: false
},
{
name: "minValidSalt",
type: "uint256",
indexed: false
}
],
name: "PairCancelledLimitOrders",
outputs: [
],
type: "event"
},
{
anonymous: false,
inputs: [
{
name: "maker",
type: "address",
indexed: false
},
{
name: "makerToken",
type: "address",
indexed: false
},
{
name: "takerToken",
type: "address",
indexed: false
},
{
name: "minValidSalt",
type: "uint256",
indexed: false
}
],
name: "PairCancelledRfqOrders",
outputs: [
],
type: "event"
},
{
anonymous: false,
inputs: [
{
name: "selector",
type: "bytes4",
indexed: true
},
{
name: "oldImpl",
type: "address",
indexed: false
},
{
name: "newImpl",
type: "address",
indexed: false
}
],
name: "ProxyFunctionUpdated",
outputs: [
],
type: "event"
},
{
anonymous: false,
inputs: [
{
name: "quoteSigner",
type: "address",
indexed: false
}
],
name: "QuoteSignerUpdated",
outputs: [
],
type: "event"
},
{
anonymous: false,
inputs: [
{
name: "orderHash",
type: "bytes32",
indexed: false
},
{
name: "maker",
type: "address",
indexed: false
},
{
name: "taker",
type: "address",
indexed: false
},
{
name: "makerToken",
type: "address",
indexed: false
},
{
name: "takerToken",
type: "address",
indexed: false
},
{
name: "takerTokenFilledAmount",
type: "uint128",
indexed: false
},
{
name: "makerTokenFilledAmount",
type: "uint128",
indexed: false
},
{
name: "pool",
type: "bytes32",
indexed: false
}
],
name: "RfqOrderFilled",
outputs: [
],
type: "event"
},
{
anonymous: false,
inputs: [
{
name: "origin",
type: "address",
indexed: false
},
{
name: "addrs",
type: "address[]",
indexed: false
},
{
name: "allowed",
type: "bool",
indexed: false
}
],
name: "RfqOrderOriginsAllowed",
outputs: [
],
type: "event"
},
{
anonymous: false,
inputs: [
{
name: "taker",
type: "address",
indexed: true
},
{
name: "inputToken",
type: "address",
indexed: false
},
{
name: "outputToken",
type: "address",
indexed: false
},
{
name: "inputTokenAmount",
type: "uint256",
indexed: false
},
{
name: "outputTokenAmount",
type: "uint256",
indexed: false
}
],
name: "TransformedERC20",
outputs: [
],
type: "event"
},
{
anonymous: false,
inputs: [
{
name: "transformerDeployer",
type: "address",
indexed: false
}
],
name: "TransformerDeployerUpdated",
outputs: [
],
type: "event"
},
{
inputs: [
{
name: "order",
type: "tuple",
components: [
{
name: "makerToken",
type: "address"
},
{
name: "takerToken",
type: "address"
},
{
name: "makerAmount",
type: "uint128"
},
{
name: "takerAmount",
type: "uint128"
},
{
name: "takerTokenFeeAmount",
type: "uint128"
},
{
name: "maker",
type: "address"
},
{
name: "taker",
type: "address"
},
{
name: "sender",
type: "address"
},
{
name: "feeRecipient",
type: "address"
},
{
name: "pool",
type: "bytes32"
},
{
name: "expiry",
type: "uint64"
},
{
name: "salt",
type: "uint256"
}
]
},
{
name: "signature",
type: "tuple",
components: [
{
name: "signatureType",
type: "uint8"
},
{
name: "v",
type: "uint8"
},
{
name: "r",
type: "bytes32"
},
{
name: "s",
type: "bytes32"
}
]
},
{
name: "takerTokenFillAmount",
type: "uint128"
},
{
name: "taker",
type: "address"
},
{
name: "sender",
type: "address"
}
],
name: "_fillLimitOrder",
outputs: [
{
name: "takerTokenFilledAmount",
type: "uint128"
},
{
name: "makerTokenFilledAmount",
type: "uint128"
}
],
stateMutability: "payable",
type: "function"
},
{
inputs: [
{
name: "order",
type: "tuple",
components: [
{
name: "makerToken",
type: "address"
},
{
name: "takerToken",
type: "address"
},
{
name: "makerAmount",
type: "uint128"
},
{
name: "takerAmount",
type: "uint128"
},
{
name: "maker",
type: "address"
},
{
name: "taker",
type: "address"
},
{
name: "txOrigin",
type: "address"
},
{
name: "pool",
type: "bytes32"
},
{
name: "expiry",
type: "uint64"
},
{
name: "salt",
type: "uint256"
}
]
},
{
name: "signature",
type: "tuple",
components: [
{
name: "signatureType",
type: "uint8"
},
{
name: "v",
type: "uint8"
},
{
name: "r",
type: "bytes32"
},
{
name: "s",
type: "bytes32"
}
]
},
{
name: "takerTokenFillAmount",
type: "uint128"
},
{
name: "taker",
type: "address"
}
],
name: "_fillRfqOrder",
outputs: [
{
name: "takerTokenFilledAmount",
type: "uint128"
},
{
name: "makerTokenFilledAmount",
type: "uint128"
}
],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
name: "args",
type: "tuple",
components: [
{
name: "taker",
type: "address"
},
{
name: "inputToken",
type: "address"
},
{
name: "outputToken",
type: "address"
},
{
name: "inputTokenAmount",
type: "uint256"
},
{
name: "minOutputTokenAmount",
type: "uint256"
},
{
name: "transformations",
type: "tuple[]",
components: [
{
name: "deploymentNonce",
type: "uint32"
},
{
name: "data",
type: "bytes"
}
]
}
]
}
],
name: "_transformERC20",
outputs: [
{
name: "outputTokenAmount",
type: "uint256"
}
],
stateMutability: "payable",
type: "function"
},
{
inputs: [
{
name: "orders",
type: "tuple[]",
components: [
{
name: "makerToken",
type: "address"
},
{
name: "takerToken",
type: "address"
},
{
name: "makerAmount",
type: "uint128"
},
{
name: "takerAmount",
type: "uint128"
},
{
name: "takerTokenFeeAmount",
type: "uint128"
},
{
name: "maker",
type: "address"
},
{
name: "taker",
type: "address"
},
{
name: "sender",
type: "address"
},
{
name: "feeRecipient",
type: "address"
},
{
name: "pool",
type: "bytes32"
},
{
name: "expiry",
type: "uint64"
},
{
name: "salt",
type: "uint256"
}
]
}
],
name: "batchCancelLimitOrders",
outputs: [
],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
name: "makerTokens",
type: "address[]"
},
{
name: "takerTokens",
type: "address[]"
},
{
name: "minValidSalts",
type: "uint256[]"
}
],
name: "batchCancelPairLimitOrders",
outputs: [
],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
name: "maker",
type: "address"
},
{
name: "makerTokens",
type: "address[]"
},
{
name: "takerTokens",
type: "address[]"
},
{
name: "minValidSalts",
type: "uint256[]"
}
],
name: "batchCancelPairLimitOrdersWithSigner",
outputs: [
],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
name: "makerTokens",
type: "address[]"
},
{
name: "takerTokens",
type: "address[]"
},
{
name: "minValidSalts",
type: "uint256[]"
}
],
name: "batchCancelPairRfqOrders",
outputs: [
],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
name: "maker",
type: "address"
},
{
name: "makerTokens",
type: "address[]"
},
{
name: "takerTokens",
type: "address[]"
},
{
name: "minValidSalts",
type: "uint256[]"
}
],
name: "batchCancelPairRfqOrdersWithSigner",
outputs: [
],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
name: "orders",
type: "tuple[]",
components: [
{
name: "makerToken",
type: "address"
},
{
name: "takerToken",
type: "address"
},
{
name: "makerAmount",
type: "uint128"
},
{
name: "takerAmount",
type: "uint128"
},
{
name: "maker",
type: "address"
},
{
name: "taker",
type: "address"
},
{
name: "txOrigin",
type: "address"
},
{
name: "pool",
type: "bytes32"
},
{
name: "expiry",
type: "uint64"
},
{
name: "salt",
type: "uint256"
}
]
}
],
name: "batchCancelRfqOrders",
outputs: [
],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
name: "mtxs",
type: "tuple[]",
components: [
{
name: "signer",
type: "address"
},
{
name: "sender",
type: "address"
},
{
name: "minGasPrice",
type: "uint256"
},
{
name: "maxGasPrice",
type: "uint256"
},
{
name: "expirationTimeSeconds",
type: "uint256"
},
{
name: "salt",
type: "uint256"
},
{
name: "callData",
type: "bytes"
},
{
name: "value",
type: "uint256"
},
{
name: "feeToken",
type: "address"
},
{
name: "feeAmount",
type: "uint256"
}
]
},
{
name: "signatures",
type: "tuple[]",
components: [
{
name: "signatureType",
type: "uint8"
},
{
name: "v",
type: "uint8"
},
{
name: "r",
type: "bytes32"
},
{
name: "s",
type: "bytes32"
}
]
}
],
name: "batchExecuteMetaTransactions",
outputs: [
{
name: "returnResults",
type: "bytes[]"
}
],
stateMutability: "payable",
type: "function"
},
{
inputs: [
{
name: "fillData",
type: "tuple",
components: [
{
name: "inputToken",
type: "address"
},
{
name: "outputToken",
type: "address"
},
{
name: "sellAmount",
type: "uint256"
},
{
name: "calls",
type: "tuple[]",
components: [
{
name: "selector",
type: "bytes4"
},
{
name: "sellAmount",
type: "uint256"
},
{
name: "data",
type: "bytes"
}
]
}
]
},
{
name: "minBuyAmount",
type: "uint256"
}
],
name: "batchFill",
outputs: [
{
name: "outputTokenAmount",
type: "uint256"
}
],
stateMutability: "payable",
type: "function"
},
{
inputs: [
{
name: "orders",
type: "tuple[]",
components: [
{
name: "makerToken",
type: "address"
},
{
name: "takerToken",
type: "address"
},
{
name: "makerAmount",
type: "uint128"
},
{
name: "takerAmount",
type: "uint128"
},
{
name: "takerTokenFeeAmount",
type: "uint128"
},
{
name: "maker",
type: "address"
},
{
name: "taker",
type: "address"
},
{
name: "sender",
type: "address"
},
{
name: "feeRecipient",
type: "address"
},
{
name: "pool",
type: "bytes32"
},
{
name: "expiry",
type: "uint64"
},
{
name: "salt",
type: "uint256"
}
]
},
{
name: "signatures",
type: "tuple[]",
components: [
{
name: "signatureType",
type: "uint8"
},
{
name: "v",
type: "uint8"
},
{
name: "r",
type: "bytes32"
},
{
name: "s",
type: "bytes32"
}
]
},
{
name: "takerTokenFillAmounts",
type: "uint128[]"
},
{
name: "revertIfIncomplete",
type: "bool"
}
],
name: "batchFillLimitOrders",
outputs: [
{
name: "takerTokenFilledAmounts",
type: "uint128[]"
},
{
name: "makerTokenFilledAmounts",
type: "uint128[]"
}
],
stateMutability: "payable",
type: "function"
},
{
inputs: [
{
name: "orders",
type: "tuple[]",
components: [
{
name: "makerToken",
type: "address"
},
{
name: "takerToken",
type: "address"
},
{
name: "makerAmount",
type: "uint128"
},
{
name: "takerAmount",
type: "uint128"
},
{
name: "maker",
type: "address"
},
{
name: "taker",
type: "address"
},
{
name: "txOrigin",
type: "address"
},
{
name: "pool",
type: "bytes32"
},
{
name: "expiry",
type: "uint64"
},
{
name: "salt",
type: "uint256"
}
]
},
{
name: "signatures",
type: "tuple[]",
components: [
{
name: "signatureType",
type: "uint8"
},
{
name: "v",
type: "uint8"
},
{
name: "r",
type: "bytes32"
},
{
name: "s",
type: "bytes32"
}
]
},
{
name: "takerTokenFillAmounts",
type: "uint128[]"
},
{
name: "revertIfIncomplete",
type: "bool"
}
],
name: "batchFillRfqOrders",
outputs: [
{
name: "takerTokenFilledAmounts",
type: "uint128[]"
},
{
name: "makerTokenFilledAmounts",
type: "uint128[]"
}
],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
name: "orders",
type: "tuple[]",
components: [
{
name: "makerToken",
type: "address"
},
{
name: "takerToken",
type: "address"
},
{
name: "makerAmount",
type: "uint128"
},
{
name: "takerAmount",
type: "uint128"
},
{
name: "takerTokenFeeAmount",
type: "uint128"
},
{
name: "maker",
type: "address"
},
{
name: "taker",
type: "address"
},
{
name: "sender",
type: "address"
},
{
name: "feeRecipient",
type: "address"
},
{
name: "pool",
type: "bytes32"
},
{
name: "expiry",
type: "uint64"
},
{
name: "salt",
type: "uint256"
}
]
},
{
name: "signatures",
type: "tuple[]",
components: [
{
name: "signatureType",
type: "uint8"
},
{
name: "v",
type: "uint8"
},
{
name: "r",
type: "bytes32"
},
{
name: "s",
type: "bytes32"
}
]
}
],
name: "batchGetLimitOrderRelevantStates",
outputs: [
{
name: "orderInfos",
type: "tuple[]",
components: [
{
name: "orderHash",
type: "bytes32"
},
{
name: "status",
type: "uint8"
},
{
name: "takerTokenFilledAmount",
type: "uint128"
}
]
},
{
name: "actualFillableTakerTokenAmounts",
type: "uint128[]"
},
{
name: "isSignatureValids",
type: "bool[]"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
name: "orders",
type: "tuple[]",
components: [
{
name: "makerToken",
type: "address"
},
{
name: "takerToken",
type: "address"
},
{
name: "makerAmount",
type: "uint128"
},
{
name: "takerAmount",
type: "uint128"
},
{
name: "maker",