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