[{"type": "constructor", "inputs": [{"name": "owner_", "type": "address", "internalType": "address"}, {"name": "verifier_", "type": "address", "internalType": "address"}, {"name": "feeRecipient_", "type": "address", "internalType": "address"}, {"name": "uniFactory_", "type": "address", "internalType": "address"}, {"name": "weth_", "type": "address", "internalType": "address"}, {"name": "lpLocker_", "type": "address", "internalType": "address"}, {"name": "params_", "type": "tuple", "internalType": "struct AgentPad.CurveParams", "components": [{"name": "virtualEth", "type": "uint128", "internalType": "uint128"}, {"name": "virtualTokens", "type": "uint128", "internalType": "uint128"}, {"name": "curveSupply", "type": "uint128", "internalType": "uint128"}, {"name": "totalSupply", "type": "uint128", "internalType": "uint128"}]}], "stateMutability": "nonpayable"}, {"type": "receive", "stateMutability": "payable"}, {"type": "function", "name": "BPS", "inputs": [], "outputs": [{"name": "", "type": "uint256", "internalType": "uint256"}], "stateMutability": "view"}, {"type": "function", "name": "DEAD", "inputs": [], "outputs": [{"name": "", "type": "address", "internalType": "address"}], "stateMutability": "view"}, {"type": "function", "name": "MAX_GRAD_FEE_BPS", "inputs": [], "outputs": [{"name": "", "type": "uint256", "internalType": "uint256"}], "stateMutability": "view"}, {"type": "function", "name": "MAX_TRADE_FEE_BPS", "inputs": [], "outputs": [{"name": "", "type": "uint256", "internalType": "uint256"}], "stateMutability": "view"}, {"type": "function", "name": "PASS_TYPEHASH", "inputs": [], "outputs": [{"name": "", "type": "bytes32", "internalType": "bytes32"}], "stateMutability": "view"}, {"type": "function", "name": "acceptOwnership", "inputs": [], "outputs": [], "stateMutability": "nonpayable"}, {"type": "function", "name": "accruedFees", "inputs": [], "outputs": [{"name": "", "type": "uint256", "internalType": "uint256"}], "stateMutability": "view"}, {"type": "function", "name": "agentRefOf", "inputs": [{"name": "", "type": "address", "internalType": "address"}], "outputs": [{"name": "", "type": "bytes32", "internalType": "bytes32"}], "stateMutability": "view"}, {"type": "function", "name": "allTokens", "inputs": [{"name": "", "type": "uint256", "internalType": "uint256"}], "outputs": [{"name": "", "type": "address", "internalType": "address"}], "stateMutability": "view"}, {"type": "function", "name": "buy", "inputs": [{"name": "token", "type": "address", "internalType": "address"}, {"name": "minTokensOut", "type": "uint256", "internalType": "uint256"}, {"name": "deadline", "type": "uint256", "internalType": "uint256"}], "outputs": [{"name": "tokensOut", "type": "uint256", "internalType": "uint256"}], "stateMutability": "payable"}, {"type": "function", "name": "claim", "inputs": [], "outputs": [{"name": "amt", "type": "uint256", "internalType": "uint256"}], "stateMutability": "nonpayable"}, {"type": "function", "name": "claimable", "inputs": [{"name": "", "type": "address", "internalType": "address"}], "outputs": [{"name": "", "type": "uint256", "internalType": "uint256"}], "stateMutability": "view"}, {"type": "function", "name": "creatorFeeBps", "inputs": [], "outputs": [{"name": "", "type": "uint16", "internalType": "uint16"}], "stateMutability": "view"}, {"type": "function", "name": "creatorReferrerFeeBps", "inputs": [], "outputs": [{"name": "", "type": "uint16", "internalType": "uint16"}], "stateMutability": "view"}, {"type": "function", "name": "curves", "inputs": [{"name": "", "type": "address", "internalType": "address"}], "outputs": [{"name": "creator", "type": "address", "internalType": "address"}, {"name": "graduated", "type": "bool", "internalType": "bool"}, {"name": "vEth", "type": "uint128", "internalType": "uint128"}, {"name": "vTok", "type": "uint128", "internalType": "uint128"}, {"name": "realEth", "type": "uint128", "internalType": "uint128"}, {"name": "tokensLeft", "type": "uint128", "internalType": "uint128"}, {"name": "reserveTokens", "type": "uint128", "internalType": "uint128"}, {"name": "k", "type": "uint256", "internalType": "uint256"}, {"name": "pair", "type": "address", "internalType": "address"}, {"name": "launchedAt", "type": "uint64", "internalType": "uint64"}], "stateMutability": "view"}, {"type": "function", "name": "defaultParams", "inputs": [], "outputs": [{"name": "virtualEth", "type": "uint128", "internalType": "uint128"}, {"name": "virtualTokens", "type": "uint128", "internalType": "uint128"}, {"name": "curveSupply", "type": "uint128", "internalType": "uint128"}, {"name": "totalSupply", "type": "uint128", "internalType": "uint128"}], "stateMutability": "view"}, {"type": "function", "name": "eip712Domain", "inputs": [], "outputs": [{"name": "fields", "type": "bytes1", "internalType": "bytes1"}, {"name": "name", "type": "string", "internalType": "string"}, {"name": "version", "type": "string", "internalType": "string"}, {"name": "chainId", "type": "uint256", "internalType": "uint256"}, {"name": "verifyingContract", "type": "address", "internalType": "address"}, {"name": "salt", "type": "bytes32", "internalType": "bytes32"}, {"name": "extensions", "type": "uint256[]", "internalType": "uint256[]"}], "stateMutability": "view"}, {"type": "function", "name": "erc8004PassDuration", "inputs": [], "outputs": [{"name": "", "type": "uint64", "internalType": "uint64"}], "stateMutability": "view"}, {"type": "function", "name": "erc8004Registry", "inputs": [], "outputs": [{"name": "", "type": "address", "internalType": "address"}], "stateMutability": "view"}, {"type": "function", "name": "ethToGraduate", "inputs": [{"name": "token", "type": "address", "internalType": "address"}], "outputs": [{"name": "", "type": "uint256", "internalType": "uint256"}], "stateMutability": "view"}, {"type": "function", "name": "feeRecipient", "inputs": [], "outputs": [{"name": "", "type": "address", "internalType": "address"}], "stateMutability": "view"}, {"type": "function", "name": "getCurve", "inputs": [{"name": "token", "type": "address", "internalType": "address"}], "outputs": [{"name": "", "type": "tuple", "internalType": "struct AgentPad.Curve", "components": [{"name": "creator", "type": "address", "internalType": "address"}, {"name": "graduated", "type": "bool", "internalType": "bool"}, {"name": "vEth", "type": "uint128", "internalType": "uint128"}, {"name": "vTok", "type": "uint128", "internalType": "uint128"}, {"name": "realEth", "type": "uint128", "internalType": "uint128"}, {"name": "tokensLeft", "type": "uint128", "internalType": "uint128"}, {"name": "reserveTokens", "type": "uint128", "internalType": "uint128"}, {"name": "k", "type": "uint256", "internalType": "uint256"}, {"name": "pair", "type": "address", "internalType": "address"}, {"name": "launchedAt", "type": "uint64", "internalType": "uint64"}]}], "stateMutability": "view"}, {"type": "function", "name": "gradFeeBps", "inputs": [], "outputs": [{"name": "", "type": "uint16", "internalType": "uint16"}], "stateMutability": "view"}, {"type": "function", "name": "isAgent", "inputs": [{"name": "a", "type": "address", "internalType": "address"}], "outputs": [{"name": "", "type": "bool", "internalType": "bool"}], "stateMutability": "view"}, {"type": "function", "name": "launch", "inputs": [{"name": "name", "type": "string", "internalType": "string"}, {"name": "symbol", "type": "string", "internalType": "string"}, {"name": "metadataURI", "type": "string", "internalType": "string"}, {"name": "minTokensOut", "type": "uint256", "internalType": "uint256"}, {"name": "deadline", "type": "uint256", "internalType": "uint256"}], "outputs": [{"name": "token", "type": "address", "internalType": "address"}], "stateMutability": "payable"}, {"type": "function", "name": "launchFee", "inputs": [], "outputs": [{"name": "", "type": "uint256", "internalType": "uint256"}], "stateMutability": "view"}, {"type": "function", "name": "lpLocker", "inputs": [], "outputs": [{"name": "", "type": "address", "internalType": "contract ILPLocker"}], "stateMutability": "view"}, {"type": "function", "name": "owner", "inputs": [], "outputs": [{"name": "", "type": "address", "internalType": "address"}], "stateMutability": "view"}, {"type": "function", "name": "passDigest", "inputs": [{"name": "wallet", "type": "address", "internalType": "address"}, {"name": "agentRef", "type": "bytes32", "internalType": "bytes32"}, {"name": "referrer", "type": "address", "internalType": "address"}, {"name": "expiry", "type": "uint64", "internalType": "uint64"}, {"name": "nonce", "type": "uint256", "internalType": "uint256"}], "outputs": [{"name": "", "type": "bytes32", "internalType": "bytes32"}], "stateMutability": "view"}, {"type": "function", "name": "passExpiry", "inputs": [{"name": "", "type": "address", "internalType": "address"}], "outputs": [{"name": "", "type": "uint64", "internalType": "uint64"}], "stateMutability": "view"}, {"type": "function", "name": "passNonce", "inputs": [{"name": "", "type": "address", "internalType": "address"}], "outputs": [{"name": "", "type": "uint256", "internalType": "uint256"}], "stateMutability": "view"}, {"type": "function", "name": "paused", "inputs": [], "outputs": [{"name": "", "type": "bool", "internalType": "bool"}], "stateMutability": "view"}, {"type": "function", "name": "pendingOwner", "inputs": [], "outputs": [{"name": "", "type": "address", "internalType": "address"}], "stateMutability": "view"}, {"type": "function", "name": "postGradCreatorShareBps", "inputs": [], "outputs": [{"name": "", "type": "uint16", "internalType": "uint16"}], "stateMutability": "view"}, {"type": "function", "name": "priceWei", "inputs": [{"name": "token", "type": "address", "internalType": "address"}], "outputs": [{"name": "", "type": "uint256", "internalType": "uint256"}], "stateMutability": "view"}, {"type": "function", "name": "quoteBuy", "inputs": [{"name": "token", "type": "address", "internalType": "address"}, {"name": "ethIn", "type": "uint256", "internalType": "uint256"}], "outputs": [{"name": "tokensOut", "type": "uint256", "internalType": "uint256"}, {"name": "fee", "type": "uint256", "internalType": "uint256"}, {"name": "refund", "type": "uint256", "internalType": "uint256"}], "stateMutability": "view"}, {"type": "function", "name": "quoteSell", "inputs": [{"name": "token", "type": "address", "internalType": "address"}, {"name": "tokenAmount", "type": "uint256", "internalType": "uint256"}], "outputs": [{"name": "ethOut", "type": "uint256", "internalType": "uint256"}, {"name": "fee", "type": "uint256", "internalType": "uint256"}], "stateMutability": "view"}, {"type": "function", "name": "referralCount", "inputs": [{"name": "", "type": "address", "internalType": "address"}], "outputs": [{"name": "", "type": "uint256", "internalType": "uint256"}], "stateMutability": "view"}, {"type": "function", "name": "referrerFeeBps", "inputs": [], "outputs": [{"name": "", "type": "uint16", "internalType": "uint16"}], "stateMutability": "view"}, {"type": "function", "name": "referrerOf", "inputs": [{"name": "", "type": "address", "internalType": "address"}], "outputs": [{"name": "", "type": "address", "internalType": "address"}], "stateMutability": "view"}, {"type": "function", "name": "registerAgent", "inputs": [{"name": "agentRef", "type": "bytes32", "internalType": "bytes32"}, {"name": "referrer", "type": "address", "internalType": "address"}, {"name": "expiry", "type": "uint64", "internalType": "uint64"}, {"name": "sig", "type": "bytes", "internalType": "bytes"}], "outputs": [], "stateMutability": "nonpayable"}, {"type": "function", "name": "registerViaERC8004", "inputs": [{"name": "agentId", "type": "uint256", "internalType": "uint256"}, {"name": "referrer", "type": "address", "internalType": "address"}], "outputs": [], "stateMutability": "nonpayable"}, {"type": "function", "name": "renounceOwnership", "inputs": [], "outputs": [], "stateMutability": "nonpayable"}, {"type": "function", "name": "revokeAgent", "inputs": [{"name": "wallet", "type": "address", "internalType": "address"}], "outputs": [], "stateMutability": "nonpayable"}, {"type": "function", "name": "sell", "inputs": [{"name": "token", "type": "address", "internalType": "address"}, {"name": "tokenAmount", "type": "uint256", "internalType": "uint256"}, {"name": "minEthOut", "type": "uint256", "internalType": "uint256"}, {"name": "deadline", "type": "uint256", "internalType": "uint256"}], "outputs": [{"name": "ethOut", "type": "uint256", "internalType": "uint256"}], "stateMutability": "nonpayable"}, {"type": "function", "name": "setERC8004", "inputs": [{"name": "registry", "type": "address", "internalType": "address"}, {"name": "duration", "type": "uint64", "internalType": "uint64"}], "outputs": [], "stateMutability": "nonpayable"}, {"type": "function", "name": "setFeeRecipient", "inputs": [{"name": "f", "type": "address", "internalType": "address"}], "outputs": [], "stateMutability": "nonpayable"}, {"type": "function", "name": "setFeeSplit", "inputs": [{"name": "creatorBps", "type": "uint16", "internalType": "uint16"}, {"name": "refBps", "type": "uint16", "internalType": "uint16"}, {"name": "creatorRefBps", "type": "uint16", "internalType": "uint16"}, {"name": "postGradCreatorBps", "type": "uint16", "internalType": "uint16"}], "outputs": [], "stateMutability": "nonpayable"}, {"type": "function", "name": "setFees", "inputs": [{"name": "tradeBps", "type": "uint16", "internalType": "uint16"}, {"name": "gradBps", "type": "uint16", "internalType": "uint16"}, {"name": "launchFeeWei", "type": "uint256", "internalType": "uint256"}], "outputs": [], "stateMutability": "nonpayable"}, {"type": "function", "name": "setLPLocker", "inputs": [{"name": "locker", "type": "address", "internalType": "address"}], "outputs": [], "stateMutability": "nonpayable"}, {"type": "function", "name": "setParams", "inputs": [{"name": "p", "type": "tuple", "internalType": "struct AgentPad.CurveParams", "components": [{"name": "virtualEth", "type": "uint128", "internalType": "uint128"}, {"name": "virtualTokens", "type": "uint128", "internalType": "uint128"}, {"name": "curveSupply", "type": "uint128", "internalType": "uint128"}, {"name": "totalSupply", "type": "uint128", "internalType": "uint128"}]}], "outputs": [], "stateMutability": "nonpayable"}, {"type": "function", "name": "setPaused", "inputs": [{"name": "p", "type": "bool", "internalType": "bool"}], "outputs": [], "stateMutability": "nonpayable"}, {"type": "function", "name": "setVerifier", "inputs": [{"name": "v", "type": "address", "internalType": "address"}], "outputs": [], "stateMutability": "nonpayable"}, {"type": "function", "name": "tokenCount", "inputs": [], "outputs": [{"name": "", "type": "uint256", "internalType": "uint256"}], "stateMutability": "view"}, {"type": "function", "name": "totalEarned", "inputs": [{"name": "", "type": "address", "internalType": "address"}], "outputs": [{"name": "", "type": "uint256", "internalType": "uint256"}], "stateMutability": "view"}, {"type": "function", "name": "totalFeesEarned", "inputs": [], "outputs": [{"name": "", "type": "uint256", "internalType": "uint256"}], "stateMutability": "view"}, {"type": "function", "name": "totalVolumeEth", "inputs": [], "outputs": [{"name": "", "type": "uint256", "internalType": "uint256"}], "stateMutability": "view"}, {"type": "function", "name": "tradeFeeBps", "inputs": [], "outputs": [{"name": "", "type": "uint16", "internalType": "uint16"}], "stateMutability": "view"}, {"type": "function", "name": "transferOwnership", "inputs": [{"name": "newOwner", "type": "address", "internalType": "address"}], "outputs": [], "stateMutability": "nonpayable"}, {"type": "function", "name": "uniFactory", "inputs": [], "outputs": [{"name": "", "type": "address", "internalType": "contract IUniswapV2Factory"}], "stateMutability": "view"}, {"type": "function", "name": "verifier", "inputs": [], "outputs": [{"name": "", "type": "address", "internalType": "address"}], "stateMutability": "view"}, {"type": "function", "name": "weth", "inputs": [], "outputs": [{"name": "", "type": "address", "internalType": "contract IWETH"}], "stateMutability": "view"}, {"type": "function", "name": "withdrawFees", "inputs": [], "outputs": [], "stateMutability": "nonpayable"}, {"type": "event", "name": "AgentRegistered", "inputs": [{"name": "wallet", "type": "address", "indexed": true, "internalType": "address"}, {"name": "agentRef", "type": "bytes32", "indexed": true, "internalType": "bytes32"}, {"name": "expiry", "type": "uint64", "indexed": false, "internalType": "uint64"}, {"name": "method", "type": "uint8", "indexed": false, "internalType": "uint8"}], "anonymous": false}, {"type": "event", "name": "AgentRevoked", "inputs": [{"name": "wallet", "type": "address", "indexed": true, "internalType": "address"}], "anonymous": false}, {"type": "event", "name": "Claimed", "inputs": [{"name": "agent", "type": "address", "indexed": true, "internalType": "address"}, {"name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256"}], "anonymous": false}, {"type": "event", "name": "ConfigChanged", "inputs": [{"name": "what", "type": "string", "indexed": false, "internalType": "string"}], "anonymous": false}, {"type": "event", "name": "EIP712DomainChanged", "inputs": [], "anonymous": false}, {"type": "event", "name": "FeeSplit", "inputs": [{"name": "token", "type": "address", "indexed": true, "internalType": "address"}, {"name": "trader", "type": "address", "indexed": true, "internalType": "address"}, {"name": "platform", "type": "uint256", "indexed": false, "internalType": "uint256"}, {"name": "creator", "type": "address", "indexed": false, "internalType": "address"}, {"name": "creatorAmt", "type": "uint256", "indexed": false, "internalType": "uint256"}, {"name": "referrer", "type": "address", "indexed": false, "internalType": "address"}, {"name": "referrerAmt", "type": "uint256", "indexed": false, "internalType": "uint256"}, {"name": "creatorReferrer", "type": "address", "indexed": false, "internalType": "address"}, {"name": "creatorReferrerAmt", "type": "uint256", "indexed": false, "internalType": "uint256"}], "anonymous": false}, {"type": "event", "name": "FeesAccrued", "inputs": [{"name": "token", "type": "address", "indexed": true, "internalType": "address"}, {"name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256"}, {"name": "kind", "type": "uint8", "indexed": false, "internalType": "uint8"}], "anonymous": false}, {"type": "event", "name": "FeesWithdrawn", "inputs": [{"name": "to", "type": "address", "indexed": true, "internalType": "address"}, {"name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256"}], "anonymous": false}, {"type": "event", "name": "Graduated", "inputs": [{"name": "token", "type": "address", "indexed": true, "internalType": "address"}, {"name": "pair", "type": "address", "indexed": true, "internalType": "address"}, {"name": "ethToPool", "type": "uint256", "indexed": false, "internalType": "uint256"}, {"name": "tokensToPool", "type": "uint256", "indexed": false, "internalType": "uint256"}, {"name": "tokensBurned", "type": "uint256", "indexed": false, "internalType": "uint256"}, {"name": "lpBurned", "type": "uint256", "indexed": false, "internalType": "uint256"}, {"name": "gradFee", "type": "uint256", "indexed": false, "internalType": "uint256"}], "anonymous": false}, {"type": "event", "name": "OwnershipTransferStarted", "inputs": [{"name": "previousOwner", "type": "address", "indexed": true, "internalType": "address"}, {"name": "newOwner", "type": "address", "indexed": true, "internalType": "address"}], "anonymous": false}, {"type": "event", "name": "OwnershipTransferred", "inputs": [{"name": "previousOwner", "type": "address", "indexed": true, "internalType": "address"}, {"name": "newOwner", "type": "address", "indexed": true, "internalType": "address"}], "anonymous": false}, {"type": "event", "name": "ReferrerSet", "inputs": [{"name": "agent", "type": "address", "indexed": true, "internalType": "address"}, {"name": "referrer", "type": "address", "indexed": true, "internalType": "address"}], "anonymous": false}, {"type": "event", "name": "TokenLaunched", "inputs": [{"name": "token", "type": "address", "indexed": true, "internalType": "address"}, {"name": "creator", "type": "address", "indexed": true, "internalType": "address"}, {"name": "name", "type": "string", "indexed": false, "internalType": "string"}, {"name": "symbol", "type": "string", "indexed": false, "internalType": "string"}, {"name": "metadataURI", "type": "string", "indexed": false, "internalType": "string"}, {"name": "virtualEth", "type": "uint256", "indexed": false, "internalType": "uint256"}, {"name": "virtualTokens", "type": "uint256", "indexed": false, "internalType": "uint256"}, {"name": "curveSupply", "type": "uint256", "indexed": false, "internalType": "uint256"}, {"name": "totalSupply", "type": "uint256", "indexed": false, "internalType": "uint256"}], "anonymous": false}, {"type": "event", "name": "Trade", "inputs": [{"name": "token", "type": "address", "indexed": true, "internalType": "address"}, {"name": "trader", "type": "address", "indexed": true, "internalType": "address"}, {"name": "isBuy", "type": "bool", "indexed": false, "internalType": "bool"}, {"name": "ethAmount", "type": "uint256", "indexed": false, "internalType": "uint256"}, {"name": "tokenAmount", "type": "uint256", "indexed": false, "internalType": "uint256"}, {"name": "fee", "type": "uint256", "indexed": false, "internalType": "uint256"}, {"name": "vEth", "type": "uint256", "indexed": false, "internalType": "uint256"}, {"name": "vTok", "type": "uint256", "indexed": false, "internalType": "uint256"}, {"name": "realEth", "type": "uint256", "indexed": false, "internalType": "uint256"}], "anonymous": false}, {"type": "error", "name": "AlreadyGraduated", "inputs": []}, {"type": "error", "name": "BadParams", "inputs": []}, {"type": "error", "name": "BadPass", "inputs": []}, {"type": "error", "name": "DeadlinePassed", "inputs": []}, {"type": "error", "name": "Disabled", "inputs": []}, {"type": "error", "name": "ECDSAInvalidSignature", "inputs": []}, {"type": "error", "name": "ECDSAInvalidSignatureLength", "inputs": [{"name": "length", "type": "uint256", "internalType": "uint256"}]}, {"type": "error", "name": "ECDSAInvalidSignatureS", "inputs": [{"name": "s", "type": "bytes32", "internalType": "bytes32"}]}, {"type": "error", "name": "EthTransferFailed", "inputs": []}, {"type": "error", "name": "FeeTooHigh", "inputs": []}, {"type": "error", "name": "InvalidShortString", "inputs": []}, {"type": "error", "name": "NotAgent", "inputs": []}, {"type": "error", "name": "OwnableInvalidOwner", "inputs": [{"name": "owner", "type": "address", "internalType": "address"}]}, {"type": "error", "name": "OwnableUnauthorizedAccount", "inputs": [{"name": "account", "type": "address", "internalType": "address"}]}, {"type": "error", "name": "PassExpired", "inputs": []}, {"type": "error", "name": "Paused", "inputs": []}, {"type": "error", "name": "ReentrancyGuardReentrantCall", "inputs": []}, {"type": "error", "name": "Slippage", "inputs": []}, {"type": "error", "name": "StringTooLong", "inputs": [{"name": "str", "type": "string", "internalType": "string"}]}, {"type": "error", "name": "UnknownToken", "inputs": []}, {"type": "error", "name": "ZeroAmount", "inputs": []}]