bamm.abi.ts•18.2 kB
export const BAMM_ABI = [
{
inputs: [
{
internalType: "bytes",
name: "_encodedBammConstructorArgs",
type: "bytes",
},
],
stateMutability: "nonpayable",
type: "constructor",
},
{
inputs: [{ internalType: "address", name: "target", type: "address" }],
name: "AddressEmptyCode",
type: "error",
},
{
inputs: [{ internalType: "address", name: "account", type: "address" }],
name: "AddressInsufficientBalance",
type: "error",
},
{ inputs: [], name: "CannotWithdrawToSelf", type: "error" },
{ inputs: [], name: "FailedInnerCall", type: "error" },
{ inputs: [], name: "IncorrectAmountOutMinimum", type: "error" },
{ inputs: [], name: "IncorrectSwapTokens", type: "error" },
{ inputs: [], name: "InsufficientAmount", type: "error" },
{ inputs: [], name: "InvalidRent", type: "error" },
{ inputs: [], name: "InvalidUtilityRate", type: "error" },
{ inputs: [], name: "InvalidVault", type: "error" },
{ inputs: [], name: "NoBAMMTokensMinted", type: "error" },
{ inputs: [], name: "NotFactory", type: "error" },
{ inputs: [], name: "NotSolvent", type: "error" },
{ inputs: [], name: "OraclePriceDeviated", type: "error" },
{ inputs: [], name: "ReentrancyGuardReentrantCall", type: "error" },
{
inputs: [{ internalType: "int256", name: "value", type: "int256" }],
name: "SafeCastOverflowedIntToUint",
type: "error",
},
{
inputs: [{ internalType: "uint256", name: "value", type: "uint256" }],
name: "SafeCastOverflowedUintToInt",
type: "error",
},
{
inputs: [{ internalType: "address", name: "token", type: "address" }],
name: "SafeERC20FailedOperation",
type: "error",
},
{ inputs: [], name: "Solvent", type: "error" },
{ inputs: [], name: "ZeroLiquidityMinted", type: "error" },
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "lender",
type: "address",
},
{
indexed: true,
internalType: "address",
name: "recipient",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "lpIn",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "bammOut",
type: "uint256",
},
],
name: "BAMMMinted",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "lender",
type: "address",
},
{
indexed: true,
internalType: "address",
name: "recipient",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "bammIn",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "lpOut",
type: "uint256",
},
],
name: "BAMMRedeemed",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "uint256",
name: "sqrtRentedReal",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "sqrtBalance",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "rentedMultiplier",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "interestRate",
type: "uint256",
},
],
name: "BAMMState",
type: "event",
},
{
anonymous: false,
inputs: [
{ indexed: true, internalType: "address", name: "user", type: "address" },
{
indexed: false,
internalType: "int256",
name: "token0",
type: "int256",
},
{
indexed: false,
internalType: "int256",
name: "token1",
type: "int256",
},
{ indexed: false, internalType: "int256", name: "rent", type: "int256" },
],
name: "ExecuteAction",
type: "event",
},
{
anonymous: false,
inputs: [
{ indexed: true, internalType: "address", name: "user", type: "address" },
{
indexed: true,
internalType: "address",
name: "liquidator",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "token0Fee",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "token1Fee",
type: "uint256",
},
],
name: "MicroLiquidate",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "uint256",
name: "oldMaxOracleDiff",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "newMaxOracleDiff",
type: "uint256",
},
],
name: "NewMaxOracleDiff",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "previousVariableInterestRate",
type: "address",
},
{
indexed: true,
internalType: "address",
name: "newVariableInterestRate",
type: "address",
},
],
name: "NewVariableInterestRate",
type: "event",
},
{
anonymous: false,
inputs: [
{ indexed: true, internalType: "address", name: "user", type: "address" },
{ indexed: false, internalType: "int256", name: "rent", type: "int256" },
{
indexed: false,
internalType: "uint256",
name: "token0ToAddToLp",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "token1ToAddToLp",
type: "uint256",
},
{
indexed: false,
internalType: "bool",
name: "closePosition",
type: "bool",
},
],
name: "RentRepaid",
type: "event",
},
{
anonymous: false,
inputs: [
{ indexed: true, internalType: "address", name: "user", type: "address" },
{ indexed: false, internalType: "int256", name: "rent", type: "int256" },
{
indexed: false,
internalType: "int256",
name: "token0Amount",
type: "int256",
},
{
indexed: false,
internalType: "int256",
name: "token1Amount",
type: "int256",
},
],
name: "Renting",
type: "event",
},
{
anonymous: false,
inputs: [
{ indexed: true, internalType: "address", name: "user", type: "address" },
{
indexed: false,
internalType: "int256",
name: "token0",
type: "int256",
},
{
indexed: false,
internalType: "int256",
name: "token1",
type: "int256",
},
],
name: "VaultSwap",
type: "event",
},
{
anonymous: false,
inputs: [
{ indexed: true, internalType: "address", name: "user", type: "address" },
{
indexed: false,
internalType: "int256",
name: "token0",
type: "int256",
},
{
indexed: false,
internalType: "int256",
name: "token1",
type: "int256",
},
{ indexed: false, internalType: "int256", name: "rent", type: "int256" },
],
name: "VaultUpdated",
type: "event",
},
{
inputs: [],
name: "FEE_SHARE",
outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "LIQUIDATION_FEE",
outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "MAX_UTILITY_RATE",
outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "MINIMUM_LIQUIDITY",
outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "PRECISION",
outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "SOLVENCY_THRESHOLD_FULL_LIQUIDATION",
outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "SOLVENCY_THRESHOLD_LIQUIDATION",
outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "addInterest",
outputs: [
{ internalType: "uint256", name: "reserve0", type: "uint256" },
{ internalType: "uint256", name: "reserve1", type: "uint256" },
{ internalType: "uint256", name: "totalSupply", type: "uint256" },
{ internalType: "uint256", name: "_rentedMultiplier", type: "uint256" },
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
components: [
{ internalType: "int256", name: "token0Amount", type: "int256" },
{ internalType: "int256", name: "token1Amount", type: "int256" },
{ internalType: "int256", name: "rent", type: "int256" },
{ internalType: "address", name: "to", type: "address" },
{ internalType: "uint256", name: "token0AmountMin", type: "uint256" },
{ internalType: "uint256", name: "token1AmountMin", type: "uint256" },
{ internalType: "bool", name: "closePosition", type: "bool" },
{ internalType: "bool", name: "approveMax", type: "bool" },
{ internalType: "uint8", name: "v", type: "uint8" },
{ internalType: "bytes32", name: "r", type: "bytes32" },
{ internalType: "bytes32", name: "s", type: "bytes32" },
{ internalType: "uint256", name: "deadline", type: "uint256" },
],
internalType: "struct IBAMM.Action",
name: "action",
type: "tuple",
},
],
name: "executeActions",
outputs: [
{
components: [
{ internalType: "int256", name: "token0", type: "int256" },
{ internalType: "int256", name: "token1", type: "int256" },
{ internalType: "int256", name: "rented", type: "int256" },
],
internalType: "struct IBAMM.Vault",
name: "vault",
type: "tuple",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
components: [
{ internalType: "int256", name: "token0Amount", type: "int256" },
{ internalType: "int256", name: "token1Amount", type: "int256" },
{ internalType: "int256", name: "rent", type: "int256" },
{ internalType: "address", name: "to", type: "address" },
{ internalType: "uint256", name: "token0AmountMin", type: "uint256" },
{ internalType: "uint256", name: "token1AmountMin", type: "uint256" },
{ internalType: "bool", name: "closePosition", type: "bool" },
{ internalType: "bool", name: "approveMax", type: "bool" },
{ internalType: "uint8", name: "v", type: "uint8" },
{ internalType: "bytes32", name: "r", type: "bytes32" },
{ internalType: "bytes32", name: "s", type: "bytes32" },
{ internalType: "uint256", name: "deadline", type: "uint256" },
],
internalType: "struct IBAMM.Action",
name: "action",
type: "tuple",
},
{
components: [
{ internalType: "address", name: "tokenIn", type: "address" },
{ internalType: "uint256", name: "amountIn", type: "uint256" },
{ internalType: "address", name: "tokenOut", type: "address" },
{
internalType: "uint256",
name: "amountOutMinimum",
type: "uint256",
},
{ internalType: "address", name: "recipient", 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" },
{ internalType: "bytes", name: "route", type: "bytes" },
],
internalType: "struct IFraxswapRouterMultihop.FraxswapParams",
name: "swapParams",
type: "tuple",
},
],
name: "executeActionsAndSwap",
outputs: [
{
components: [
{ internalType: "int256", name: "token0", type: "int256" },
{ internalType: "int256", name: "token1", type: "int256" },
{ internalType: "int256", name: "rented", type: "int256" },
],
internalType: "struct IBAMM.Vault",
name: "vault",
type: "tuple",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "factory",
outputs: [{ internalType: "address", name: "", type: "address" }],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "fraxswapOracle",
outputs: [
{ internalType: "contract IFraxswapOracle", name: "", type: "address" },
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "fullUtilizationRate",
outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
stateMutability: "view",
type: "function",
},
{
inputs: [
{ internalType: "uint256", name: "tokenIn", type: "uint256" },
{ internalType: "uint256", name: "tokenOut", type: "uint256" },
{ internalType: "uint256", name: "reserveIn", type: "uint256" },
{ internalType: "uint256", name: "reserveOut", type: "uint256" },
],
name: "getMaxSell",
outputs: [{ internalType: "uint256", name: "maxSell", type: "uint256" }],
stateMutability: "pure",
type: "function",
},
{
inputs: [{ internalType: "address", name: "user", type: "address" }],
name: "getUserVault",
outputs: [
{
components: [
{ internalType: "int256", name: "token0", type: "int256" },
{ internalType: "int256", name: "token1", type: "int256" },
{ internalType: "int256", name: "rented", type: "int256" },
],
internalType: "struct IBAMM.Vault",
name: "vault",
type: "tuple",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "iBammErc20",
outputs: [
{ internalType: "contract BAMMERC20", name: "", type: "address" },
],
stateMutability: "view",
type: "function",
},
{
inputs: [{ internalType: "address", name: "", type: "address" }],
name: "isUser",
outputs: [{ internalType: "bool", name: "", type: "bool" }],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "maxOracleDiff",
outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
stateMutability: "view",
type: "function",
},
{
inputs: [{ internalType: "address", name: "user", type: "address" }],
name: "microLiquidate",
outputs: [
{ internalType: "uint256", name: "token0Fee", type: "uint256" },
{ internalType: "uint256", name: "token1Fee", type: "uint256" },
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{ internalType: "address", name: "to", type: "address" },
{ internalType: "uint256", name: "lpIn", type: "uint256" },
],
name: "mint",
outputs: [{ internalType: "uint256", name: "bammOut", type: "uint256" }],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "pair",
outputs: [
{ internalType: "contract IFraxswapPair", name: "", type: "address" },
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "pairFactory",
outputs: [
{ internalType: "contract IFraxswapFactory", name: "", type: "address" },
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{ internalType: "uint256", name: "_utilization", type: "uint256" },
],
name: "previewInterestRate",
outputs: [
{ internalType: "uint256", name: "newRatePerSec", type: "uint256" },
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{ internalType: "address", name: "to", type: "address" },
{ internalType: "uint256", name: "bammIn", type: "uint256" },
],
name: "redeem",
outputs: [{ internalType: "uint256", name: "lpOut", type: "uint256" }],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "rentedMultiplier",
outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "routerMultihop",
outputs: [
{
internalType: "contract IFraxswapRouterMultihop",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [{ internalType: "uint256", name: "newMaxDiff", type: "uint256" }],
name: "setMaxOracleDeviation",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "newVariableInterestRate",
type: "address",
},
],
name: "setVariableInterestRate",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "sqrtRented",
outputs: [{ internalType: "int256", name: "", type: "int256" }],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "timeSinceLastInterestPayment",
outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "token0",
outputs: [
{ internalType: "contract IERC20Metadata", name: "", type: "address" },
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "token1",
outputs: [
{ internalType: "contract IERC20Metadata", name: "", type: "address" },
],
stateMutability: "view",
type: "function",
},
{
inputs: [{ internalType: "address", name: "", type: "address" }],
name: "userVaults",
outputs: [
{ internalType: "int256", name: "token0", type: "int256" },
{ internalType: "int256", name: "token1", type: "int256" },
{ internalType: "int256", name: "rented", type: "int256" },
],
stateMutability: "view",
type: "function",
},
{
inputs: [{ internalType: "uint256", name: "", type: "uint256" }],
name: "users",
outputs: [{ internalType: "address", name: "", type: "address" }],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "usersArray",
outputs: [{ internalType: "address[]", name: "", type: "address[]" }],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "usersLength",
outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "variableInterestRate",
outputs: [
{
internalType: "contract IVariableInterestRate",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "version",
outputs: [
{ internalType: "uint256", name: "_major", type: "uint256" },
{ internalType: "uint256", name: "_minor", type: "uint256" },
{ internalType: "uint256", name: "_patch", type: "uint256" },
],
stateMutability: "pure",
type: "function",
},
] as const;