// LockItIn Contract ABI - Base Mainnet (v1.0) // Protocol contract: CONFIG.CONTRACT_ADDRESS (see code/php/variables.php) // LOCKIT Token: 0x309456d4F1e321dCdf9a8f9245bC660bBA3f30A0 // Governor: 0x0C60e429900Aa91995c337772Ca6711a6CA699D4 // Timelock: 0x10DD0b5A0E79a5399AE8d8DD6f3562250696112F // v1.0 - Commitment terminology, governance integration, referrer support const LOCKITIN_ABI = [{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"uint64","name":"_subscriptionId","type":"uint64"},{"internalType":"bytes32","name":"_donId","type":"bytes32"},{"internalType":"address","name":"_usdcAddress","type":"address"},{"internalType":"address","name":"_lockitToken","type":"address"},{"internalType":"address","name":"_daoTreasury","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"BelowMinimumStake","type":"error"},{"inputs":[],"name":"CannotAcceptOwnCommitment","type":"error"},{"inputs":[],"name":"CannotRescueUSDC","type":"error"},{"inputs":[],"name":"CommitmentCreatedAfterOracleUpdate","type":"error"},{"inputs":[],"name":"CommitmentExpired","type":"error"},{"inputs":[],"name":"CommitmentNotLocked","type":"error"},{"inputs":[],"name":"CommitmentNotOpen","type":"error"},{"inputs":[],"name":"DiscountOutOfBounds","type":"error"},{"inputs":[],"name":"EmptyArgs","type":"error"},{"inputs":[],"name":"EmptySource","type":"error"},{"inputs":[],"name":"EndpointEmpty","type":"error"},{"inputs":[],"name":"EndpointTooLong","type":"error"},{"inputs":[],"name":"FeeOutOfBounds","type":"error"},{"inputs":[],"name":"InvalidCommitmentId","type":"error"},{"inputs":[],"name":"InvalidDonId","type":"error"},{"inputs":[],"name":"InvalidLockitToken","type":"error"},{"inputs":[],"name":"InvalidRouter","type":"error"},{"inputs":[],"name":"InvalidSubscriptionId","type":"error"},{"inputs":[],"name":"InvalidTreasury","type":"error"},{"inputs":[],"name":"InvalidUSDCAddress","type":"error"},{"inputs":[],"name":"ModelEmpty","type":"error"},{"inputs":[],"name":"ModelNameTooLong","type":"error"},{"inputs":[],"name":"ModelNotApproved","type":"error"},{"inputs":[],"name":"NoInlineSecrets","type":"error"},{"inputs":[],"name":"NoOracleUpdatePending","type":"error"},{"inputs":[],"name":"NoTokensToRescue","type":"error"},{"inputs":[],"name":"NotAwaitingResolution","type":"error"},{"inputs":[],"name":"NotParticipant","type":"error"},{"inputs":[],"name":"NotTargetAcceptor","type":"error"},{"inputs":[],"name":"OnlyCreatorCanCancel","type":"error"},{"inputs":[],"name":"OnlyRouterCanFulfill","type":"error"},{"inputs":[],"name":"OracleUpdateAlreadyPending","type":"error"},{"inputs":[],"name":"OracleUpdateTooEarly","type":"error"},{"inputs":[],"name":"PermitDeadlineExpired","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"inputs":[],"name":"ResolutionAlreadyRequested","type":"error"},{"inputs":[],"name":"ResolutionMustBeInFuture","type":"error"},{"inputs":[],"name":"RotatorCannotDisableSecrets","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[],"name":"SecretsNotConfigured","type":"error"},{"inputs":[],"name":"SourceEmpty","type":"error"},{"inputs":[],"name":"SourceTooLong","type":"error"},{"inputs":[],"name":"StatementEmpty","type":"error"},{"inputs":[],"name":"StatementTooLong","type":"error"},{"inputs":[],"name":"TemperatureEmpty","type":"error"},{"inputs":[],"name":"TemperatureTooLong","type":"error"},{"inputs":[],"name":"TooEarlyForEmergencyVoid","type":"error"},{"inputs":[],"name":"TooEarlyForTimeoutVoid","type":"error"},{"inputs":[],"name":"TooEarlyToResolve","type":"error"},{"inputs":[],"name":"UnauthorizedSecretsUpdate","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"commitmentId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"refundAmount","type":"uint256"}],"name":"CommitmentCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"commitmentId","type":"uint256"},{"indexed":true,"internalType":"address","name":"partyA","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountA","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"resolveAfter","type":"uint256"},{"indexed":false,"internalType":"address","name":"targetAcceptor","type":"address"},{"indexed":false,"internalType":"address","name":"creatorReferrer","type":"address"}],"name":"CommitmentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"commitmentId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"refundA","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"refundB","type":"uint256"}],"name":"CommitmentVoided","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"commitmentId","type":"uint256"},{"indexed":true,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"string","name":"feeType","type":"string"},{"indexed":false,"internalType":"uint256","name":"originalFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"discountedFee","type":"uint256"}],"name":"DiscountApplied","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldThreshold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"oldDiscountBps","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newThreshold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newDiscountBps","type":"uint256"}],"name":"DiscountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"commitmentId","type":"uint256"}],"name":"EmergencyVoidExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldCreationFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"oldResolutionFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"oldDaoFeeBps","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newCreationFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newResolutionFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newDaoFeeBps","type":"uint256"}],"name":"FeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"modelName","type":"string"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ModelApprovalUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"commitmentId","type":"uint256"}],"name":"MutualExitCompleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"commitmentId","type":"uint256"},{"indexed":true,"internalType":"address","name":"party","type":"address"}],"name":"MutualExitRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"commitmentId","type":"uint256"},{"indexed":true,"internalType":"address","name":"exitingParty","type":"address"}],"name":"OracleChangeExitExecuted","type":"event"},{"anonymous":false,"inputs":[],"name":"OracleUpdateCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"oldSource","type":"string"},{"indexed":false,"internalType":"string","name":"oldEndpoint","type":"string"},{"indexed":false,"internalType":"string","name":"oldDefaultModel","type":"string"},{"indexed":false,"internalType":"string","name":"oldOracleTemperature","type":"string"},{"indexed":false,"internalType":"bytes32","name":"oldDonId","type":"bytes32"},{"indexed":false,"internalType":"string","name":"newSource","type":"string"},{"indexed":false,"internalType":"string","name":"newEndpoint","type":"string"},{"indexed":false,"internalType":"string","name":"newDefaultModel","type":"string"},{"indexed":false,"internalType":"string","name":"newOracleTemperature","type":"string"},{"indexed":false,"internalType":"bytes32","name":"newDonId","type":"bytes32"}],"name":"OracleUpdateExecuted","type":"event"},{"anonymous":false,"inputs":[],"name":"OracleUpdateExpired","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"newSource","type":"string"},{"indexed":false,"internalType":"string","name":"newEndpoint","type":"string"},{"indexed":false,"internalType":"string","name":"newDefaultModel","type":"string"},{"indexed":false,"internalType":"string","name":"newOracleTemperature","type":"string"},{"indexed":false,"internalType":"bytes32","name":"newDonId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"executeAfter","type":"uint256"}],"name":"OracleUpdateScheduled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"fallbackRecipient","type":"address"}],"name":"PaymentFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"RequestFulfilled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"RequestSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"commitmentId","type":"uint256"},{"indexed":true,"internalType":"bytes32","name":"requestId","type":"bytes32"}],"name":"ResolutionRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldRotator","type":"address"},{"indexed":true,"internalType":"address","name":"newRotator","type":"address"}],"name":"SecretsRotatorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"slotId","type":"uint8"},{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"},{"indexed":true,"internalType":"address","name":"updatedBy","type":"address"}],"name":"SecretsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"commitmentId","type":"uint256"},{"indexed":true,"internalType":"address","name":"favoredParty","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"SettlementDistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"commitmentId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"outcome","type":"uint8"}],"name":"StatementResolved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"oldId","type":"uint64"},{"indexed":false,"internalType":"uint64","name":"newId","type":"uint64"}],"name":"SubscriptionIdUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"commitmentId","type":"uint256"},{"indexed":true,"internalType":"address","name":"partyB","type":"address"},{"indexed":false,"internalType":"address","name":"acceptorReferrer","type":"address"}],"name":"TermsAccepted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"commitmentId","type":"uint256"}],"name":"TimeoutVoidExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokensRescued","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldTreasury","type":"address"},{"indexed":true,"internalType":"address","name":"newTreasury","type":"address"}],"name":"TreasuryUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"commitmentId","type":"uint256"},{"indexed":true,"internalType":"address","name":"creatorReferrer","type":"address"},{"indexed":true,"internalType":"address","name":"acceptorReferrer","type":"address"},{"indexed":false,"internalType":"uint256","name":"totalFee","type":"uint256"}],"name":"TxBuilderFeeDistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldFeeBps","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newFeeBps","type":"uint256"}],"name":"TxBuilderFeeUpdated","type":"event"},{"inputs":[],"name":"EMERGENCY_VOID_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GAS_LIMIT","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_CREATION_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_DAO_FEE_BPS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_DISCOUNT_BPS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_ENDPOINT_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_MODEL_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_RESOLUTION_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_SOURCE_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_STATEMENT_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_TEMPERATURE_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_TX_BUILDER_FEE_BPS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_DAO_FEE_BPS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_RESOLUTION_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_STAKE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ORACLE_UPDATE_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ORACLE_UPDATE_GRACE_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYSTEM_PROMPT","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TIMEOUT_VOID_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_commitmentId","type":"uint256"},{"internalType":"address","name":"_acceptorReferrer","type":"address"}],"name":"acceptTerms","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_commitmentId","type":"uint256"},{"internalType":"address","name":"_acceptorReferrer","type":"address"},{"components":[{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct LockItIn.PermitParams","name":"_permit","type":"tuple"}],"name":"acceptTermsWithPermit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"apiEndpoint","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"approvedModels","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_commitmentId","type":"uint256"}],"name":"cancelCommitment","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelOracleUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"commitmentCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"commitmentToRequest","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"commitments","outputs":[{"internalType":"address","name":"partyA","type":"address"},{"internalType":"address","name":"partyB","type":"address"},{"internalType":"address","name":"targetAcceptor","type":"address"},{"internalType":"address","name":"creatorReferrer","type":"address"},{"internalType":"address","name":"acceptorReferrer","type":"address"},{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"},{"internalType":"string","name":"statement","type":"string"},{"internalType":"string","name":"modelName","type":"string"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"resolveAfter","type":"uint256"},{"internalType":"uint256","name":"resolutionRequestedAt","type":"uint256"},{"internalType":"enum LockItIn.CommitmentState","name":"state","type":"uint8"},{"internalType":"enum LockItIn.Outcome","name":"outcome","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_statement","type":"string"},{"internalType":"uint256","name":"_resolveAfter","type":"uint256"},{"internalType":"uint256","name":"_amountA","type":"uint256"},{"internalType":"uint256","name":"_amountB","type":"uint256"},{"internalType":"string","name":"_modelName","type":"string"},{"internalType":"address","name":"_targetAcceptor","type":"address"},{"internalType":"address","name":"_creatorReferrer","type":"address"}],"name":"createCommitment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_statement","type":"string"},{"internalType":"uint256","name":"_resolveAfter","type":"uint256"},{"internalType":"uint256","name":"_amountA","type":"uint256"},{"internalType":"uint256","name":"_amountB","type":"uint256"},{"internalType":"string","name":"_modelName","type":"string"},{"internalType":"address","name":"_targetAcceptor","type":"address"},{"internalType":"address","name":"_creatorReferrer","type":"address"},{"components":[{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct LockItIn.PermitParams","name":"_permit","type":"tuple"}],"name":"createCommitmentWithPermit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"creationFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"daoFeeBps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"daoTreasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultModel","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"discountBps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"discountThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"donId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_commitmentId","type":"uint256"}],"name":"emergencyVoid","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"executeOracleUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_commitmentId","type":"uint256"}],"name":"getCommitment","outputs":[{"components":[{"internalType":"address","name":"partyA","type":"address"},{"internalType":"address","name":"partyB","type":"address"},{"internalType":"address","name":"targetAcceptor","type":"address"},{"internalType":"address","name":"creatorReferrer","type":"address"},{"internalType":"address","name":"acceptorReferrer","type":"address"},{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"},{"internalType":"string","name":"statement","type":"string"},{"internalType":"string","name":"modelName","type":"string"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"resolveAfter","type":"uint256"},{"internalType":"uint256","name":"resolutionRequestedAt","type":"uint256"},{"internalType":"enum LockItIn.CommitmentState","name":"state","type":"uint8"},{"internalType":"enum LockItIn.Outcome","name":"outcome","type":"uint8"}],"internalType":"struct LockItIn.Commitment","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPendingOracleUpdate","outputs":[{"internalType":"string","name":"newGrokSource","type":"string"},{"internalType":"string","name":"newApiEndpoint","type":"string"},{"internalType":"string","name":"newDefaultModel","type":"string"},{"internalType":"string","name":"newOracleTemperature","type":"string"},{"internalType":"bytes32","name":"newDonId","type":"bytes32"},{"internalType":"uint256","name":"executeAfter","type":"uint256"},{"internalType":"bool","name":"active","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"grokSource","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"bytes","name":"response","type":"bytes"},{"internalType":"bytes","name":"err","type":"bytes"}],"name":"handleOracleFulfillment","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastSecretsUpdate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockitToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"mutualExitVotes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_commitmentId","type":"uint256"}],"name":"oracleChangeExit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"oracleTemperature","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOracleUpdate","outputs":[{"internalType":"string","name":"grokSource","type":"string"},{"internalType":"string","name":"apiEndpoint","type":"string"},{"internalType":"string","name":"defaultModel","type":"string"},{"internalType":"string","name":"oracleTemperature","type":"string"},{"internalType":"bytes32","name":"newDonId","type":"bytes32"},{"internalType":"uint256","name":"executeAfter","type":"uint256"},{"internalType":"bool","name":"active","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_commitmentId","type":"uint256"}],"name":"requestMutualExit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_commitmentId","type":"uint256"}],"name":"requestResolution","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"requestToCommitment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resolutionFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_newSource","type":"string"},{"internalType":"string","name":"_newEndpoint","type":"string"},{"internalType":"string","name":"_newDefaultModel","type":"string"},{"internalType":"string","name":"_newOracleTemperature","type":"string"},{"internalType":"bytes32","name":"_newDonId","type":"bytes32"}],"name":"scheduleOracleUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"secretsRotator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"secretsSlotId","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"secretsVersion","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"},{"internalType":"uint256","name":"_discountBps","type":"uint256"}],"name":"setDiscount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_creationFee","type":"uint256"},{"internalType":"uint256","name":"_resolutionFee","type":"uint256"},{"internalType":"uint256","name":"_daoFeeBps","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_modelName","type":"string"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setModelApproval","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_slotId","type":"uint8"},{"internalType":"uint64","name":"_version","type":"uint64"}],"name":"setSecrets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rotator","type":"address"}],"name":"setSecretsRotator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"_newSubscriptionId","type":"uint64"}],"name":"setSubscriptionId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newTreasury","type":"address"}],"name":"setTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_feeBps","type":"uint256"}],"name":"setTxBuilderFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"subscriptionId","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_commitmentId","type":"uint256"}],"name":"timeoutVoid","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"txBuilderFeeBps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"usdc","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"}]; // LockItIn Protocol ABI (minimal, matches code/sol/lockitin_protocol.sol) // NOTE: `LOCKITIN_ABI` above is legacy and may not match current deployments. const LOCKITIN_PROTOCOL_ABI = [ // Core reads "function commitmentCount() view returns (uint256)", "function creationFee() view returns (uint256)", "function resolutionFee() view returns (uint256)", "function daoFeeBps() view returns (uint256)", "function txBuilderFeeBps() view returns (uint256)", "function secretsVersion() view returns (uint64)", "function systemPrompt() view returns (string)", "function mutualExitVotes(uint256 commitmentId, address party) view returns (bool)", // Commitment lifecycle "function createCommitment(string statement,uint256 resolveAfter,uint256 amountA,uint256 amountB,string modelName,address targetAcceptor,address creatorReferrer) returns (uint256 commitmentId)", "function createCommitmentWithPermit(string statement,uint256 resolveAfter,uint256 amountA,uint256 amountB,string modelName,address targetAcceptor,address creatorReferrer,(uint256 deadline,uint8 v,bytes32 r,bytes32 s) permit) returns (uint256 commitmentId)", "function acceptTerms(uint256 commitmentId,address acceptorReferrer)", "function acceptTermsWithPermit(uint256 commitmentId,address acceptorReferrer,(uint256 deadline,uint8 v,bytes32 r,bytes32 s) permit) returns (uint256 acceptedCommitmentId)", "function cancelCommitment(uint256 commitmentId)", "function requestMutualExit(uint256 commitmentId)", "function requestResolution(uint256 commitmentId) returns (bytes32 requestId)", "function emergencyVoid(uint256 commitmentId)", "function timeoutVoid(uint256 commitmentId)", // Stack-safe chunked getters "function getCommitmentParties(uint256 commitmentId) view returns (address partyA, address partyB, address targetAcceptor, address creatorReferrer, address acceptorReferrer)", "function getCommitmentAmounts(uint256 commitmentId) view returns (uint256 amountA, uint256 amountB)", "function getCommitmentTiming(uint256 commitmentId) view returns (uint256 createdAt, uint256 resolveAfter, uint256 resolutionRequestedAt)", "function getCommitmentStatus(uint256 commitmentId) view returns (uint8 state, uint8 outcome)", "function getCommitmentStatement(uint256 commitmentId) view returns (string statement)", "function getCommitmentModel(uint256 commitmentId) view returns (string modelName)", // Events (used for resolution polling + UI updates) "event CommitmentCreated(uint256 indexed commitmentId, address indexed partyA, uint256 amountA, uint256 amountB, uint256 resolveAfter, address targetAcceptor, address creatorReferrer)", "event TermsAccepted(uint256 indexed commitmentId, address indexed partyB, address acceptorReferrer)", "event CommitmentCancelled(uint256 indexed commitmentId, uint256 refundAmount)", "event ResolutionRequested(uint256 indexed commitmentId, bytes32 indexed requestId)", "event StatementResolved(uint256 indexed commitmentId, uint8 outcome)", "event SettlementDistributed(uint256 indexed commitmentId, address indexed favoredParty, address indexed paidTo, uint256 amount)", "event CommitmentVoided(uint256 indexed commitmentId, uint256 refundA, uint256 refundB, address paidToA, address paidToB)", // Common custom errors (decoded for friendlier UX) "error BelowMinimumStake()", "error ResolutionMustBeInFuture()", "error StatementEmpty()", "error StatementTooLong()", "error ModelEmpty()", "error ModelNameTooLong()", "error CommitmentNotOpen()", "error CannotAcceptOwnCommitment()", "error CommitmentExpired()", "error OnlyCreatorCanCancel()", "error NotParticipant()", "error CommitmentNotLocked()", "error TooEarlyToResolve()", "error TooEarlyForTimeoutVoid()", "error ResolutionAlreadyRequested()", "error NotAwaitingResolution()", "error TooEarlyForEmergencyVoid()", "error InvalidTreasury()", "error InvalidUSDCAddress()", "error InvalidLockitToken()", "error InvalidRouter()", "error InvalidSubscriptionId()", "error InvalidDonId()", "error FeeOutOfBounds()", "error DiscountOutOfBounds()", "error InvalidCommitmentId()", "error VeroUpdateAlreadyPending()", "error NoVeroUpdatePending()", "error VeroUpdateTooEarly()", "error VeroTimelockAlreadyActive()", "error PermitDeadlineExpired()", "error UnauthorizedSecretsUpdate()", "error RotatorCannotDisableSecrets()", "error RotatorCannotChangeSlot()", "error SecretsNotConfigured()", "error NoTokensToRescue()", "error CannotRescueUSDC()", "error EndpointEmpty()", "error EndpointTooLong()", "error SourceEmpty()", "error SourceTooLong()", "error TemperatureEmpty()", "error TemperatureTooLong()", "error SystemPromptEmpty()", "error SystemPromptTooLong()", "error OracleRequestFailed()", "error NotTargetAcceptor()", "error ModelNotApproved()", "error ReentrancyGuardReentrantCall()", "error SafeERC20FailedOperation(address token)", ]; const USDC_ABI = [ "function balanceOf(address owner) view returns (uint256)", "function decimals() view returns (uint8)", "function symbol() view returns (string)", "function transfer(address to, uint amount) returns (bool)", "function allowance(address owner, address spender) view returns (uint256)", "function approve(address spender, uint256 amount) returns (bool)", "function nonces(address owner) view returns (uint256)", "function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)" ]; // Governor (OpenZeppelin) – minimal ABI for common DAO actions const GOVERNOR_ABI = [ "function name() view returns (string)", "function version() view returns (string)", "function COUNTING_MODE() view returns (string)", "function clock() view returns (uint48)", "function CLOCK_MODE() view returns (string)", "function votingDelay() view returns (uint256)", "function votingPeriod() view returns (uint256)", "function proposalThreshold() view returns (uint256)", "function quorum(uint256 timepoint) view returns (uint256)", "function quorumDenominator() view returns (uint256)", "function state(uint256 proposalId) view returns (uint8)", "function proposalSnapshot(uint256 proposalId) view returns (uint256)", "function proposalDeadline(uint256 proposalId) view returns (uint256)", "function proposalEta(uint256 proposalId) view returns (uint256)", "function proposalProposer(uint256 proposalId) view returns (address)", "function proposalNeedsQueuing(uint256 proposalId) view returns (bool)", "function proposalVotes(uint256 proposalId) view returns (uint256 againstVotes, uint256 forVotes, uint256 abstainVotes)", "function hashProposal(address[] targets, uint256[] values, bytes[] calldatas, bytes32 descriptionHash) view returns (uint256)", "function propose(address[] targets, uint256[] values, bytes[] calldatas, string description) returns (uint256)", "function castVote(uint256 proposalId, uint8 support) returns (uint256)", "function castVoteWithReason(uint256 proposalId, uint8 support, string reason) returns (uint256)", "function queue(address[] targets, uint256[] values, bytes[] calldatas, bytes32 descriptionHash) returns (uint256)", "function execute(address[] targets, uint256[] values, bytes[] calldatas, bytes32 descriptionHash) payable returns (uint256)" ]; // TimelockController (OpenZeppelin) – reads + operation hashing const TIMELOCK_ABI = [ "function getMinDelay() view returns (uint256)", "function hashOperation(address target, uint256 value, bytes data, bytes32 predecessor, bytes32 salt) pure returns (bytes32)", "function hashOperationBatch(address[] targets, uint256[] values, bytes[] datas, bytes32 predecessor, bytes32 salt) pure returns (bytes32)", "function getTimestamp(bytes32 id) view returns (uint256)", "function isOperation(bytes32 id) view returns (bool)", "function isOperationPending(bytes32 id) view returns (bool)", "function isOperationReady(bytes32 id) view returns (bool)", "function isOperationDone(bytes32 id) view returns (bool)", "function PROPOSER_ROLE() view returns (bytes32)", "function EXECUTOR_ROLE() view returns (bytes32)", "function CANCELLER_ROLE() view returns (bytes32)", "function DEFAULT_ADMIN_ROLE() view returns (bytes32)", "function hasRole(bytes32 role, address account) view returns (bool)" ]; // LOCKIT Token ABI (ERC20 + EIP-2612 Permit + ERC20Votes) const LOCKIT_ABI = [{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"CheckpointUnorderedInsertion","type":"error"},{"inputs":[],"name":"ECDSAInvalidSignature","type":"error"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"name":"ECDSAInvalidSignatureLength","type":"error"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"ECDSAInvalidSignatureS","type":"error"},{"inputs":[{"internalType":"uint256","name":"increasedSupply","type":"uint256"},{"internalType":"uint256","name":"cap","type":"uint256"}],"name":"ERC20ExceededSafeSupply","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"ERC2612ExpiredSignature","type":"error"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC2612InvalidSigner","type":"error"},{"inputs":[{"internalType":"uint256","name":"timepoint","type":"uint256"},{"internalType":"uint48","name":"clock","type":"uint48"}],"name":"ERC5805FutureLookup","type":"error"},{"inputs":[],"name":"ERC6372InconsistentClock","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"currentNonce","type":"uint256"}],"name":"InvalidAccountNonce","type":"error"},{"inputs":[],"name":"InvalidShortString","type":"error"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintDowncast","type":"error"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"name":"StringTooLong","type":"error"},{"inputs":[{"internalType":"uint256","name":"expiry","type":"uint256"}],"name":"VotesExpiredSignature","type":"error"},{"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":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousVotes","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotes","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[],"name":"EIP712DomainChanged","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"},{"inputs":[],"name":"CLOCK_MODE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOTAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint32","name":"pos","type":"uint32"}],"name":"checkpoints","outputs":[{"components":[{"internalType":"uint48","name":"_key","type":"uint48"},{"internalType":"uint208","name":"_value","type":"uint208"}],"internalType":"struct Checkpoints.Checkpoint208","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clock","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"timepoint","type":"uint256"}],"name":"getPastTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"timepoint","type":"uint256"}],"name":"getPastVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"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":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"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"}],"stateMutability":"nonpayable","type":"function"}];