Skip to main content
Glama

MCP-BAMM

by IQAIcom
bamm.abi.ts18.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;

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/IQAIcom/mcp-bamm'

If you have feedback or need assistance with the MCP directory API, please join our Discord server