UNPKG

viem

Version:

TypeScript Interface for Ethereum

1,897 lines (1,889 loc) • 73.4 kB
// Generated with `pnpm gen:abis`. Do not modify manually. export const tip20ChannelReserve = [ { name: 'CLOSE_GRACE_PERIOD', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'uint64' }], }, { name: 'VOUCHER_TYPEHASH', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'bytes32' }], }, { name: 'open', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'payee' }, { type: 'address', name: 'operator' }, { type: 'address', name: 'token' }, { type: 'uint96', name: 'deposit' }, { type: 'bytes32', name: 'salt' }, { type: 'address', name: 'authorizedSigner' }, ], outputs: [{ type: 'bytes32', name: 'channelId' }], }, { name: 'settle', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'tuple', name: 'descriptor', components: [ { type: 'address', name: 'payer' }, { type: 'address', name: 'payee' }, { type: 'address', name: 'operator' }, { type: 'address', name: 'token' }, { type: 'bytes32', name: 'salt' }, { type: 'address', name: 'authorizedSigner' }, { type: 'bytes32', name: 'expiringNonceHash' }, ], }, { type: 'uint96', name: 'cumulativeAmount' }, { type: 'bytes', name: 'signature' }, ], outputs: [], }, { name: 'topUp', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'tuple', name: 'descriptor', components: [ { type: 'address', name: 'payer' }, { type: 'address', name: 'payee' }, { type: 'address', name: 'operator' }, { type: 'address', name: 'token' }, { type: 'bytes32', name: 'salt' }, { type: 'address', name: 'authorizedSigner' }, { type: 'bytes32', name: 'expiringNonceHash' }, ], }, { type: 'uint96', name: 'additionalDeposit' }, ], outputs: [], }, { name: 'close', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'tuple', name: 'descriptor', components: [ { type: 'address', name: 'payer' }, { type: 'address', name: 'payee' }, { type: 'address', name: 'operator' }, { type: 'address', name: 'token' }, { type: 'bytes32', name: 'salt' }, { type: 'address', name: 'authorizedSigner' }, { type: 'bytes32', name: 'expiringNonceHash' }, ], }, { type: 'uint96', name: 'cumulativeAmount' }, { type: 'uint96', name: 'captureAmount' }, { type: 'bytes', name: 'signature' }, ], outputs: [], }, { name: 'requestClose', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'tuple', name: 'descriptor', components: [ { type: 'address', name: 'payer' }, { type: 'address', name: 'payee' }, { type: 'address', name: 'operator' }, { type: 'address', name: 'token' }, { type: 'bytes32', name: 'salt' }, { type: 'address', name: 'authorizedSigner' }, { type: 'bytes32', name: 'expiringNonceHash' }, ], }, ], outputs: [], }, { name: 'withdraw', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'tuple', name: 'descriptor', components: [ { type: 'address', name: 'payer' }, { type: 'address', name: 'payee' }, { type: 'address', name: 'operator' }, { type: 'address', name: 'token' }, { type: 'bytes32', name: 'salt' }, { type: 'address', name: 'authorizedSigner' }, { type: 'bytes32', name: 'expiringNonceHash' }, ], }, ], outputs: [], }, { name: 'getChannel', type: 'function', stateMutability: 'view', inputs: [ { type: 'tuple', name: 'descriptor', components: [ { type: 'address', name: 'payer' }, { type: 'address', name: 'payee' }, { type: 'address', name: 'operator' }, { type: 'address', name: 'token' }, { type: 'bytes32', name: 'salt' }, { type: 'address', name: 'authorizedSigner' }, { type: 'bytes32', name: 'expiringNonceHash' }, ], }, ], outputs: [ { type: 'tuple', components: [ { type: 'tuple', name: 'descriptor', components: [ { type: 'address', name: 'payer' }, { type: 'address', name: 'payee' }, { type: 'address', name: 'operator' }, { type: 'address', name: 'token' }, { type: 'bytes32', name: 'salt' }, { type: 'address', name: 'authorizedSigner' }, { type: 'bytes32', name: 'expiringNonceHash' }, ], }, { type: 'tuple', name: 'state', components: [ { type: 'uint96', name: 'settled' }, { type: 'uint96', name: 'deposit' }, { type: 'uint32', name: 'closeRequestedAt' }, ], }, ], }, ], }, { name: 'getChannelState', type: 'function', stateMutability: 'view', inputs: [{ type: 'bytes32', name: 'channelId' }], outputs: [ { type: 'tuple', components: [ { type: 'uint96', name: 'settled' }, { type: 'uint96', name: 'deposit' }, { type: 'uint32', name: 'closeRequestedAt' }, ], }, ], }, { name: 'getChannelStatesBatch', type: 'function', stateMutability: 'view', inputs: [{ type: 'bytes32[]', name: 'channelIds' }], outputs: [ { type: 'tuple[]', components: [ { type: 'uint96', name: 'settled' }, { type: 'uint96', name: 'deposit' }, { type: 'uint32', name: 'closeRequestedAt' }, ], }, ], }, { name: 'computeChannelId', type: 'function', stateMutability: 'view', inputs: [ { type: 'address', name: 'payer' }, { type: 'address', name: 'payee' }, { type: 'address', name: 'operator' }, { type: 'address', name: 'token' }, { type: 'bytes32', name: 'salt' }, { type: 'address', name: 'authorizedSigner' }, { type: 'bytes32', name: 'expiringNonceHash' }, ], outputs: [{ type: 'bytes32' }], }, { name: 'getVoucherDigest', type: 'function', stateMutability: 'view', inputs: [ { type: 'bytes32', name: 'channelId' }, { type: 'uint96', name: 'cumulativeAmount' }, ], outputs: [{ type: 'bytes32' }], }, { name: 'domainSeparator', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'bytes32' }], }, { name: 'ChannelOpened', type: 'event', inputs: [ { type: 'bytes32', name: 'channelId', indexed: true }, { type: 'address', name: 'payer', indexed: true }, { type: 'address', name: 'payee', indexed: true }, { type: 'address', name: 'operator' }, { type: 'address', name: 'token' }, { type: 'address', name: 'authorizedSigner' }, { type: 'bytes32', name: 'salt' }, { type: 'bytes32', name: 'expiringNonceHash' }, { type: 'uint96', name: 'deposit' }, ], }, { name: 'Settled', type: 'event', inputs: [ { type: 'bytes32', name: 'channelId', indexed: true }, { type: 'address', name: 'payer', indexed: true }, { type: 'address', name: 'payee', indexed: true }, { type: 'uint96', name: 'cumulativeAmount' }, { type: 'uint96', name: 'deltaPaid' }, { type: 'uint96', name: 'newSettled' }, ], }, { name: 'TopUp', type: 'event', inputs: [ { type: 'bytes32', name: 'channelId', indexed: true }, { type: 'address', name: 'payer', indexed: true }, { type: 'address', name: 'payee', indexed: true }, { type: 'uint96', name: 'additionalDeposit' }, { type: 'uint96', name: 'newDeposit' }, ], }, { name: 'CloseRequested', type: 'event', inputs: [ { type: 'bytes32', name: 'channelId', indexed: true }, { type: 'address', name: 'payer', indexed: true }, { type: 'address', name: 'payee', indexed: true }, { type: 'uint256', name: 'closeGraceEnd' }, ], }, { name: 'ChannelClosed', type: 'event', inputs: [ { type: 'bytes32', name: 'channelId', indexed: true }, { type: 'address', name: 'payer', indexed: true }, { type: 'address', name: 'payee', indexed: true }, { type: 'uint96', name: 'settledToPayee' }, { type: 'uint96', name: 'refundedToPayer' }, ], }, { name: 'CloseRequestCancelled', type: 'event', inputs: [ { type: 'bytes32', name: 'channelId', indexed: true }, { type: 'address', name: 'payer', indexed: true }, { type: 'address', name: 'payee', indexed: true }, ], }, { name: 'ChannelAlreadyExists', type: 'error', inputs: [] }, { name: 'ChannelNotFound', type: 'error', inputs: [] }, { name: 'NotPayer', type: 'error', inputs: [] }, { name: 'NotPayeeOrOperator', type: 'error', inputs: [] }, { name: 'InvalidPayee', type: 'error', inputs: [] }, { name: 'ZeroDeposit', type: 'error', inputs: [] }, { name: 'ExpiringNonceHashNotSet', type: 'error', inputs: [] }, { name: 'InvalidSignature', type: 'error', inputs: [] }, { name: 'AmountExceedsDeposit', type: 'error', inputs: [] }, { name: 'AmountNotIncreasing', type: 'error', inputs: [] }, { name: 'CaptureAmountInvalid', type: 'error', inputs: [] }, { name: 'CloseNotReady', type: 'error', inputs: [] }, { name: 'DepositOverflow', type: 'error', inputs: [] }, ] as const export const tip20 = [ { name: 'name', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'string' }], }, { name: 'symbol', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'string' }], }, { name: 'decimals', type: 'function', stateMutability: 'pure', inputs: [], outputs: [{ type: 'uint8' }], }, { name: 'totalSupply', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'uint256' }], }, { name: 'quoteToken', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'address' }], }, { name: 'nextQuoteToken', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'address' }], }, { name: 'balanceOf', type: 'function', stateMutability: 'view', inputs: [{ type: 'address', name: 'account' }], outputs: [{ type: 'uint256' }], }, { name: 'transfer', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'to' }, { type: 'uint256', name: 'amount' }, ], outputs: [{ type: 'bool' }], }, { name: 'approve', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'spender' }, { type: 'uint256', name: 'amount' }, ], outputs: [{ type: 'bool' }], }, { name: 'allowance', type: 'function', stateMutability: 'view', inputs: [ { type: 'address', name: 'owner' }, { type: 'address', name: 'spender' }, ], outputs: [{ type: 'uint256' }], }, { name: 'transferFrom', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'from' }, { type: 'address', name: 'to' }, { type: 'uint256', name: 'amount' }, ], outputs: [{ type: 'bool' }], }, { name: 'mint', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'to' }, { type: 'uint256', name: 'amount' }, ], outputs: [], }, { name: 'burn', type: 'function', stateMutability: 'nonpayable', inputs: [{ type: 'uint256', name: 'amount' }], outputs: [], }, { name: 'currency', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'string' }], }, { name: 'supplyCap', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'uint256' }], }, { name: 'paused', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'bool' }], }, { name: 'transferPolicyId', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'uint64' }], }, { name: 'logoURI', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'string' }], }, { name: 'setLogoURI', type: 'function', stateMutability: 'nonpayable', inputs: [{ type: 'string', name: 'newLogoURI' }], outputs: [], }, { name: 'burnBlocked', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'from' }, { type: 'uint256', name: 'amount' }, ], outputs: [], }, { name: 'mintWithMemo', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'to' }, { type: 'uint256', name: 'amount' }, { type: 'bytes32', name: 'memo' }, ], outputs: [], }, { name: 'burnWithMemo', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'uint256', name: 'amount' }, { type: 'bytes32', name: 'memo' }, ], outputs: [], }, { name: 'transferWithMemo', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'to' }, { type: 'uint256', name: 'amount' }, { type: 'bytes32', name: 'memo' }, ], outputs: [], }, { name: 'transferFromWithMemo', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'from' }, { type: 'address', name: 'to' }, { type: 'uint256', name: 'amount' }, { type: 'bytes32', name: 'memo' }, ], outputs: [{ type: 'bool' }], }, { name: 'changeTransferPolicyId', type: 'function', stateMutability: 'nonpayable', inputs: [{ type: 'uint64', name: 'newPolicyId' }], outputs: [], }, { name: 'setSupplyCap', type: 'function', stateMutability: 'nonpayable', inputs: [{ type: 'uint256', name: 'newSupplyCap' }], outputs: [], }, { name: 'pause', type: 'function', stateMutability: 'nonpayable', inputs: [], outputs: [], }, { name: 'unpause', type: 'function', stateMutability: 'nonpayable', inputs: [], outputs: [], }, { name: 'setNextQuoteToken', type: 'function', stateMutability: 'nonpayable', inputs: [{ type: 'address', name: 'newQuoteToken' }], outputs: [], }, { name: 'completeQuoteTokenUpdate', type: 'function', stateMutability: 'nonpayable', inputs: [], outputs: [], }, { name: 'PAUSE_ROLE', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'bytes32' }], }, { name: 'UNPAUSE_ROLE', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'bytes32' }], }, { name: 'ISSUER_ROLE', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'bytes32' }], }, { name: 'BURN_BLOCKED_ROLE', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'bytes32' }], }, { name: 'permit', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'owner' }, { type: 'address', name: 'spender' }, { type: 'uint256', name: 'value' }, { type: 'uint256', name: 'deadline' }, { type: 'uint8', name: 'v' }, { type: 'bytes32', name: 'r' }, { type: 'bytes32', name: 's' }, ], outputs: [], }, { name: 'nonces', type: 'function', stateMutability: 'view', inputs: [{ type: 'address', name: 'owner' }], outputs: [{ type: 'uint256' }], }, { name: 'DOMAIN_SEPARATOR', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'bytes32' }], }, { name: 'distributeReward', type: 'function', stateMutability: 'nonpayable', inputs: [{ type: 'uint256', name: 'amount' }], outputs: [], }, { name: 'setRewardRecipient', type: 'function', stateMutability: 'nonpayable', inputs: [{ type: 'address', name: 'recipient' }], outputs: [], }, { name: 'claimRewards', type: 'function', stateMutability: 'nonpayable', inputs: [], outputs: [{ type: 'uint256' }], }, { name: 'optedInSupply', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'uint128' }], }, { name: 'globalRewardPerToken', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'uint256' }], }, { name: 'userRewardInfo', type: 'function', stateMutability: 'view', inputs: [{ type: 'address', name: 'account' }], outputs: [ { type: 'tuple', components: [ { type: 'address', name: 'rewardRecipient' }, { type: 'uint256', name: 'rewardPerToken' }, { type: 'uint256', name: 'rewardBalance' }, ], }, ], }, { name: 'getPendingRewards', type: 'function', stateMutability: 'view', inputs: [{ type: 'address', name: 'account' }], outputs: [{ type: 'uint128' }], }, { name: 'Transfer', type: 'event', inputs: [ { type: 'address', name: 'from', indexed: true }, { type: 'address', name: 'to', indexed: true }, { type: 'uint256', name: 'amount' }, ], }, { name: 'Approval', type: 'event', inputs: [ { type: 'address', name: 'owner', indexed: true }, { type: 'address', name: 'spender', indexed: true }, { type: 'uint256', name: 'amount' }, ], }, { name: 'Mint', type: 'event', inputs: [ { type: 'address', name: 'to', indexed: true }, { type: 'uint256', name: 'amount' }, ], }, { name: 'Burn', type: 'event', inputs: [ { type: 'address', name: 'from', indexed: true }, { type: 'uint256', name: 'amount' }, ], }, { name: 'BurnBlocked', type: 'event', inputs: [ { type: 'address', name: 'from', indexed: true }, { type: 'uint256', name: 'amount' }, ], }, { name: 'TransferWithMemo', type: 'event', inputs: [ { type: 'address', name: 'from', indexed: true }, { type: 'address', name: 'to', indexed: true }, { type: 'uint256', name: 'amount' }, { type: 'bytes32', name: 'memo', indexed: true }, ], }, { name: 'TransferPolicyUpdate', type: 'event', inputs: [ { type: 'address', name: 'updater', indexed: true }, { type: 'uint64', name: 'newPolicyId', indexed: true }, ], }, { name: 'SupplyCapUpdate', type: 'event', inputs: [ { type: 'address', name: 'updater', indexed: true }, { type: 'uint256', name: 'newSupplyCap', indexed: true }, ], }, { name: 'PauseStateUpdate', type: 'event', inputs: [ { type: 'address', name: 'updater', indexed: true }, { type: 'bool', name: 'isPaused' }, ], }, { name: 'NextQuoteTokenSet', type: 'event', inputs: [ { type: 'address', name: 'updater', indexed: true }, { type: 'address', name: 'nextQuoteToken', indexed: true }, ], }, { name: 'QuoteTokenUpdate', type: 'event', inputs: [ { type: 'address', name: 'updater', indexed: true }, { type: 'address', name: 'newQuoteToken', indexed: true }, ], }, { name: 'RewardDistributed', type: 'event', inputs: [ { type: 'address', name: 'funder', indexed: true }, { type: 'uint256', name: 'amount' }, ], }, { name: 'RewardRecipientSet', type: 'event', inputs: [ { type: 'address', name: 'holder', indexed: true }, { type: 'address', name: 'recipient', indexed: true }, ], }, { name: 'LogoURIUpdated', type: 'event', inputs: [ { type: 'address', name: 'updater', indexed: true }, { type: 'string', name: 'newLogoURI' }, ], }, { name: 'InsufficientBalance', type: 'error', inputs: [ { type: 'uint256', name: 'available' }, { type: 'uint256', name: 'required' }, { type: 'address', name: 'token' }, ], }, { name: 'InsufficientAllowance', type: 'error', inputs: [] }, { name: 'SupplyCapExceeded', type: 'error', inputs: [] }, { name: 'InvalidSupplyCap', type: 'error', inputs: [] }, { name: 'InvalidPayload', type: 'error', inputs: [] }, { name: 'PolicyForbids', type: 'error', inputs: [] }, { name: 'InvalidRecipient', type: 'error', inputs: [] }, { name: 'ContractPaused', type: 'error', inputs: [] }, { name: 'InvalidCurrency', type: 'error', inputs: [] }, { name: 'InvalidQuoteToken', type: 'error', inputs: [] }, { name: 'InvalidAmount', type: 'error', inputs: [] }, { name: 'NoOptedInSupply', type: 'error', inputs: [] }, { name: 'Unauthorized', type: 'error', inputs: [] }, { name: 'ProtectedAddress', type: 'error', inputs: [] }, { name: 'InvalidToken', type: 'error', inputs: [] }, { name: 'Uninitialized', type: 'error', inputs: [] }, { name: 'InvalidTransferPolicyId', type: 'error', inputs: [] }, { name: 'PermitExpired', type: 'error', inputs: [] }, { name: 'InvalidSignature', type: 'error', inputs: [] }, { name: 'LogoURITooLong', type: 'error', inputs: [] }, { name: 'InvalidLogoURI', type: 'error', inputs: [] }, { name: 'hasRole', type: 'function', stateMutability: 'view', inputs: [ { type: 'address', name: 'account' }, { type: 'bytes32', name: 'role' }, ], outputs: [{ type: 'bool' }], }, { name: 'getRoleAdmin', type: 'function', stateMutability: 'view', inputs: [{ type: 'bytes32', name: 'role' }], outputs: [{ type: 'bytes32' }], }, { name: 'grantRole', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'bytes32', name: 'role' }, { type: 'address', name: 'account' }, ], outputs: [], }, { name: 'revokeRole', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'bytes32', name: 'role' }, { type: 'address', name: 'account' }, ], outputs: [], }, { name: 'renounceRole', type: 'function', stateMutability: 'nonpayable', inputs: [{ type: 'bytes32', name: 'role' }], outputs: [], }, { name: 'setRoleAdmin', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'bytes32', name: 'role' }, { type: 'bytes32', name: 'adminRole' }, ], outputs: [], }, { name: 'RoleMembershipUpdated', type: 'event', inputs: [ { type: 'bytes32', name: 'role', indexed: true }, { type: 'address', name: 'account', indexed: true }, { type: 'address', name: 'sender', indexed: true }, { type: 'bool', name: 'hasRole' }, ], }, { name: 'RoleAdminUpdated', type: 'event', inputs: [ { type: 'bytes32', name: 'role', indexed: true }, { type: 'bytes32', name: 'newAdminRole', indexed: true }, { type: 'address', name: 'sender', indexed: true }, ], }, { name: 'Unauthorized', type: 'error', inputs: [] }, ] as const export const validatorConfigV2 = [ { name: 'getActiveValidators', type: 'function', stateMutability: 'view', inputs: [], outputs: [ { type: 'tuple[]', name: 'validators', components: [ { type: 'bytes32', name: 'publicKey' }, { type: 'address', name: 'validatorAddress' }, { type: 'string', name: 'ingress' }, { type: 'string', name: 'egress' }, { type: 'address', name: 'feeRecipient' }, { type: 'uint64', name: 'index' }, { type: 'uint64', name: 'addedAtHeight' }, { type: 'uint64', name: 'deactivatedAtHeight' }, ], }, ], }, { name: 'getInitializedAtHeight', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'uint64' }], }, { name: 'owner', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'address' }], }, { name: 'validatorCount', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'uint64' }], }, { name: 'validatorByIndex', type: 'function', stateMutability: 'view', inputs: [{ type: 'uint64', name: 'index' }], outputs: [ { type: 'tuple', components: [ { type: 'bytes32', name: 'publicKey' }, { type: 'address', name: 'validatorAddress' }, { type: 'string', name: 'ingress' }, { type: 'string', name: 'egress' }, { type: 'address', name: 'feeRecipient' }, { type: 'uint64', name: 'index' }, { type: 'uint64', name: 'addedAtHeight' }, { type: 'uint64', name: 'deactivatedAtHeight' }, ], }, ], }, { name: 'validatorByAddress', type: 'function', stateMutability: 'view', inputs: [{ type: 'address', name: 'validatorAddress' }], outputs: [ { type: 'tuple', components: [ { type: 'bytes32', name: 'publicKey' }, { type: 'address', name: 'validatorAddress' }, { type: 'string', name: 'ingress' }, { type: 'string', name: 'egress' }, { type: 'address', name: 'feeRecipient' }, { type: 'uint64', name: 'index' }, { type: 'uint64', name: 'addedAtHeight' }, { type: 'uint64', name: 'deactivatedAtHeight' }, ], }, ], }, { name: 'validatorByPublicKey', type: 'function', stateMutability: 'view', inputs: [{ type: 'bytes32', name: 'publicKey' }], outputs: [ { type: 'tuple', components: [ { type: 'bytes32', name: 'publicKey' }, { type: 'address', name: 'validatorAddress' }, { type: 'string', name: 'ingress' }, { type: 'string', name: 'egress' }, { type: 'address', name: 'feeRecipient' }, { type: 'uint64', name: 'index' }, { type: 'uint64', name: 'addedAtHeight' }, { type: 'uint64', name: 'deactivatedAtHeight' }, ], }, ], }, { name: 'getNextNetworkIdentityRotationEpoch', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'uint64' }], }, { name: 'isInitialized', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'bool' }], }, { name: 'addValidator', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'validatorAddress' }, { type: 'bytes32', name: 'publicKey' }, { type: 'string', name: 'ingress' }, { type: 'string', name: 'egress' }, { type: 'address', name: 'feeRecipient' }, { type: 'bytes', name: 'signature' }, ], outputs: [{ type: 'uint64', name: 'index' }], }, { name: 'deactivateValidator', type: 'function', stateMutability: 'nonpayable', inputs: [{ type: 'uint64', name: 'idx' }], outputs: [], }, { name: 'rotateValidator', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'uint64', name: 'idx' }, { type: 'bytes32', name: 'publicKey' }, { type: 'string', name: 'ingress' }, { type: 'string', name: 'egress' }, { type: 'bytes', name: 'signature' }, ], outputs: [], }, { name: 'setFeeRecipient', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'uint64', name: 'idx' }, { type: 'address', name: 'feeRecipient' }, ], outputs: [], }, { name: 'setIpAddresses', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'uint64', name: 'idx' }, { type: 'string', name: 'ingress' }, { type: 'string', name: 'egress' }, ], outputs: [], }, { name: 'transferValidatorOwnership', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'uint64', name: 'idx' }, { type: 'address', name: 'newAddress' }, ], outputs: [], }, { name: 'transferOwnership', type: 'function', stateMutability: 'nonpayable', inputs: [{ type: 'address', name: 'newOwner' }], outputs: [], }, { name: 'setNetworkIdentityRotationEpoch', type: 'function', stateMutability: 'nonpayable', inputs: [{ type: 'uint64', name: 'epoch' }], outputs: [], }, { name: 'migrateValidator', type: 'function', stateMutability: 'nonpayable', inputs: [{ type: 'uint64', name: 'idx' }], outputs: [], }, { name: 'initializeIfMigrated', type: 'function', stateMutability: 'nonpayable', inputs: [], outputs: [], }, { name: 'ValidatorAdded', type: 'event', inputs: [ { type: 'uint64', name: 'index', indexed: true }, { type: 'address', name: 'validatorAddress', indexed: true }, { type: 'bytes32', name: 'publicKey' }, { type: 'string', name: 'ingress' }, { type: 'string', name: 'egress' }, { type: 'address', name: 'feeRecipient' }, ], }, { name: 'ValidatorDeactivated', type: 'event', inputs: [ { type: 'uint64', name: 'index', indexed: true }, { type: 'address', name: 'validatorAddress', indexed: true }, ], }, { name: 'ValidatorRotated', type: 'event', inputs: [ { type: 'uint64', name: 'index', indexed: true }, { type: 'uint64', name: 'deactivatedIndex', indexed: true }, { type: 'address', name: 'validatorAddress', indexed: true }, { type: 'bytes32', name: 'oldPublicKey' }, { type: 'bytes32', name: 'newPublicKey' }, { type: 'string', name: 'ingress' }, { type: 'string', name: 'egress' }, { type: 'address', name: 'caller' }, ], }, { name: 'FeeRecipientUpdated', type: 'event', inputs: [ { type: 'uint64', name: 'index', indexed: true }, { type: 'address', name: 'feeRecipient' }, { type: 'address', name: 'caller' }, ], }, { name: 'IpAddressesUpdated', type: 'event', inputs: [ { type: 'uint64', name: 'index', indexed: true }, { type: 'string', name: 'ingress' }, { type: 'string', name: 'egress' }, { type: 'address', name: 'caller' }, ], }, { name: 'ValidatorOwnershipTransferred', type: 'event', inputs: [ { type: 'uint64', name: 'index', indexed: true }, { type: 'address', name: 'oldAddress', indexed: true }, { type: 'address', name: 'newAddress', indexed: true }, { type: 'address', name: 'caller' }, ], }, { name: 'OwnershipTransferred', type: 'event', inputs: [ { type: 'address', name: 'oldOwner', indexed: true }, { type: 'address', name: 'newOwner', indexed: true }, ], }, { name: 'ValidatorMigrated', type: 'event', inputs: [ { type: 'uint64', name: 'index', indexed: true }, { type: 'address', name: 'validatorAddress', indexed: true }, { type: 'bytes32', name: 'publicKey' }, ], }, { name: 'NetworkIdentityRotationEpochSet', type: 'event', inputs: [ { type: 'uint64', name: 'previousEpoch', indexed: true }, { type: 'uint64', name: 'nextEpoch', indexed: true }, ], }, { name: 'Initialized', type: 'event', inputs: [{ type: 'uint64', name: 'height' }], }, { name: 'SkippedValidatorMigration', type: 'event', inputs: [ { type: 'uint64', name: 'index', indexed: true }, { type: 'address', name: 'validatorAddress', indexed: true }, { type: 'bytes32', name: 'publicKey' }, ], }, { name: 'AlreadyInitialized', type: 'error', inputs: [] }, { name: 'IngressAlreadyExists', type: 'error', inputs: [{ type: 'string', name: 'ingress' }], }, { name: 'EmptyV1ValidatorSet', type: 'error', inputs: [] }, { name: 'InvalidMigrationIndex', type: 'error', inputs: [] }, { name: 'InvalidOwner', type: 'error', inputs: [] }, { name: 'InvalidPublicKey', type: 'error', inputs: [] }, { name: 'InvalidSignature', type: 'error', inputs: [] }, { name: 'InvalidSignatureFormat', type: 'error', inputs: [] }, { name: 'InvalidValidatorAddress', type: 'error', inputs: [] }, { name: 'MigrationNotComplete', type: 'error', inputs: [] }, { name: 'NotInitialized', type: 'error', inputs: [] }, { name: 'NotIp', type: 'error', inputs: [ { type: 'string', name: 'input' }, { type: 'string', name: 'backtrace' }, ], }, { name: 'NotIpPort', type: 'error', inputs: [ { type: 'string', name: 'input' }, { type: 'string', name: 'backtrace' }, ], }, { name: 'PublicKeyAlreadyExists', type: 'error', inputs: [] }, { name: 'Unauthorized', type: 'error', inputs: [] }, { name: 'AddressAlreadyHasValidator', type: 'error', inputs: [] }, { name: 'ValidatorAlreadyDeactivated', type: 'error', inputs: [] }, { name: 'ValidatorNotFound', type: 'error', inputs: [] }, ] as const export const signatureVerifier = [ { name: 'recover', type: 'function', stateMutability: 'view', inputs: [ { type: 'bytes32', name: 'hash' }, { type: 'bytes', name: 'signature' }, ], outputs: [{ type: 'address', name: 'signer' }], }, { name: 'verify', type: 'function', stateMutability: 'view', inputs: [ { type: 'address', name: 'signer' }, { type: 'bytes32', name: 'hash' }, { type: 'bytes', name: 'signature' }, ], outputs: [{ type: 'bool' }], }, { name: 'InvalidFormat', type: 'error', inputs: [] }, { name: 'InvalidSignature', type: 'error', inputs: [] }, ] as const export const stablecoinDex = [ { name: 'createPair', type: 'function', stateMutability: 'nonpayable', inputs: [{ type: 'address', name: 'base' }], outputs: [{ type: 'bytes32', name: 'key' }], }, { name: 'place', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'token' }, { type: 'uint128', name: 'amount' }, { type: 'bool', name: 'isBid' }, { type: 'int16', name: 'tick' }, ], outputs: [{ type: 'uint128', name: 'orderId' }], }, { name: 'placeFlip', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'token' }, { type: 'uint128', name: 'amount' }, { type: 'bool', name: 'isBid' }, { type: 'int16', name: 'tick' }, { type: 'int16', name: 'flipTick' }, ], outputs: [{ type: 'uint128', name: 'orderId' }], }, { name: 'cancel', type: 'function', stateMutability: 'nonpayable', inputs: [{ type: 'uint128', name: 'orderId' }], outputs: [], }, { name: 'cancelStaleOrder', type: 'function', stateMutability: 'nonpayable', inputs: [{ type: 'uint128', name: 'orderId' }], outputs: [], }, { name: 'swapExactAmountIn', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'tokenIn' }, { type: 'address', name: 'tokenOut' }, { type: 'uint128', name: 'amountIn' }, { type: 'uint128', name: 'minAmountOut' }, ], outputs: [{ type: 'uint128', name: 'amountOut' }], }, { name: 'swapExactAmountOut', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'tokenIn' }, { type: 'address', name: 'tokenOut' }, { type: 'uint128', name: 'amountOut' }, { type: 'uint128', name: 'maxAmountIn' }, ], outputs: [{ type: 'uint128', name: 'amountIn' }], }, { name: 'quoteSwapExactAmountIn', type: 'function', stateMutability: 'view', inputs: [ { type: 'address', name: 'tokenIn' }, { type: 'address', name: 'tokenOut' }, { type: 'uint128', name: 'amountIn' }, ], outputs: [{ type: 'uint128', name: 'amountOut' }], }, { name: 'quoteSwapExactAmountOut', type: 'function', stateMutability: 'view', inputs: [ { type: 'address', name: 'tokenIn' }, { type: 'address', name: 'tokenOut' }, { type: 'uint128', name: 'amountOut' }, ], outputs: [{ type: 'uint128', name: 'amountIn' }], }, { name: 'balanceOf', type: 'function', stateMutability: 'view', inputs: [ { type: 'address', name: 'user' }, { type: 'address', name: 'token' }, ], outputs: [{ type: 'uint128' }], }, { name: 'withdraw', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'token' }, { type: 'uint128', name: 'amount' }, ], outputs: [], }, { name: 'getOrder', type: 'function', stateMutability: 'view', inputs: [{ type: 'uint128', name: 'orderId' }], outputs: [ { type: 'tuple', components: [ { type: 'uint128', name: 'orderId' }, { type: 'address', name: 'maker' }, { type: 'bytes32', name: 'bookKey' }, { type: 'bool', name: 'isBid' }, { type: 'int16', name: 'tick' }, { type: 'uint128', name: 'amount' }, { type: 'uint128', name: 'remaining' }, { type: 'uint128', name: 'prev' }, { type: 'uint128', name: 'next' }, { type: 'bool', name: 'isFlip' }, { type: 'int16', name: 'flipTick' }, ], }, ], }, { name: 'getTickLevel', type: 'function', stateMutability: 'view', inputs: [ { type: 'address', name: 'base' }, { type: 'int16', name: 'tick' }, { type: 'bool', name: 'isBid' }, ], outputs: [ { type: 'uint128', name: 'head' }, { type: 'uint128', name: 'tail' }, { type: 'uint128', name: 'totalLiquidity' }, ], }, { name: 'pairKey', type: 'function', stateMutability: 'pure', inputs: [ { type: 'address', name: 'tokenA' }, { type: 'address', name: 'tokenB' }, ], outputs: [{ type: 'bytes32' }], }, { name: 'nextOrderId', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'uint128' }], }, { name: 'books', type: 'function', stateMutability: 'view', inputs: [{ type: 'bytes32', name: 'pairKey' }], outputs: [ { type: 'tuple', components: [ { type: 'address', name: 'base' }, { type: 'address', name: 'quote' }, { type: 'int16', name: 'bestBidTick' }, { type: 'int16', name: 'bestAskTick' }, ], }, ], }, { name: 'MIN_TICK', type: 'function', stateMutability: 'pure', inputs: [], outputs: [{ type: 'int16' }], }, { name: 'MAX_TICK', type: 'function', stateMutability: 'pure', inputs: [], outputs: [{ type: 'int16' }], }, { name: 'TICK_SPACING', type: 'function', stateMutability: 'pure', inputs: [], outputs: [{ type: 'int16' }], }, { name: 'PRICE_SCALE', type: 'function', stateMutability: 'pure', inputs: [], outputs: [{ type: 'uint32' }], }, { name: 'MIN_ORDER_AMOUNT', type: 'function', stateMutability: 'pure', inputs: [], outputs: [{ type: 'uint128' }], }, { name: 'MIN_PRICE', type: 'function', stateMutability: 'pure', inputs: [], outputs: [{ type: 'uint32' }], }, { name: 'MAX_PRICE', type: 'function', stateMutability: 'pure', inputs: [], outputs: [{ type: 'uint32' }], }, { name: 'tickToPrice', type: 'function', stateMutability: 'pure', inputs: [{ type: 'int16', name: 'tick' }], outputs: [{ type: 'uint32', name: 'price' }], }, { name: 'priceToTick', type: 'function', stateMutability: 'pure', inputs: [{ type: 'uint32', name: 'price' }], outputs: [{ type: 'int16', name: 'tick' }], }, { name: 'PairCreated', type: 'event', inputs: [ { type: 'bytes32', name: 'key', indexed: true }, { type: 'address', name: 'base', indexed: true }, { type: 'address', name: 'quote', indexed: true }, ], }, { name: 'OrderPlaced', type: 'event', inputs: [ { type: 'uint128', name: 'orderId', indexed: true }, { type: 'address', name: 'maker', indexed: true }, { type: 'address', name: 'token', indexed: true }, { type: 'uint128', name: 'amount' }, { type: 'bool', name: 'isBid' }, { type: 'int16', name: 'tick' }, { type: 'bool', name: 'isFlipOrder' }, { type: 'int16', name: 'flipTick' }, ], }, { name: 'OrderFilled', type: 'event', inputs: [ { type: 'uint128', name: 'orderId', indexed: true }, { type: 'address', name: 'maker', indexed: true }, { type: 'address', name: 'taker', indexed: true }, { type: 'uint128', name: 'amountFilled' }, { type: 'bool', name: 'partialFill' }, ], }, { name: 'OrderFlipped', type: 'event', inputs: [ { type: 'uint128', name: 'orderId', indexed: true }, { type: 'address', name: 'maker', indexed: true }, { type: 'address', name: 'token', indexed: true }, { type: 'uint128', name: 'amount' }, { type: 'bool', name: 'isBid' }, { type: 'int16', name: 'tick' }, { type: 'int16', name: 'flipTick' }, ], }, { name: 'OrderCancelled', type: 'event', inputs: [{ type: 'uint128', name: 'orderId', indexed: true }], }, { name: 'Unauthorized', type: 'error', inputs: [] }, { name: 'PairDoesNotExist', type: 'error', inputs: [] }, { name: 'PairAlreadyExists', type: 'error', inputs: [] }, { name: 'OrderDoesNotExist', type: 'error', inputs: [] }, { name: 'IdenticalTokens', type: 'error', inputs: [] }, { name: 'InvalidToken', type: 'error', inputs: [] }, { name: 'TickOutOfBounds', type: 'error', inputs: [{ type: 'int16', name: 'tick' }], }, { name: 'InvalidTick', type: 'error', inputs: [] }, { name: 'InvalidFlipTick', type: 'error', inputs: [] }, { name: 'InsufficientBalance', type: 'error', inputs: [] }, { name: 'InsufficientLiquidity', type: 'error', inputs: [] }, { name: 'InsufficientOutput', type: 'error', inputs: [] }, { name: 'MaxInputExceeded', type: 'error', inputs: [] }, { name: 'BelowMinimumOrderSize', type: 'error', inputs: [{ type: 'uint128', name: 'amount' }], }, { name: 'InvalidBaseToken', type: 'error', inputs: [] }, { name: 'OrderNotStale', type: 'error', inputs: [] }, ] as const export const addressRegistry = [ { name: 'registerVirtualMaster', type: 'function', stateMutability: 'nonpayable', inputs: [{ type: 'bytes32', name: 'salt' }], outputs: [{ type: 'bytes4', name: 'masterId' }], }, { name: 'getMaster', type: 'function', stateMutability: 'view', inputs: [{ type: 'bytes4', name: 'masterId' }], outputs: [{ type: 'address' }], }, { name: 'resolveRecipient', type: 'function', stateMutability: 'view', inputs: [{ type: 'address', name: 'to' }], outputs: [{ type: 'address', name: 'effectiveRecipient' }], }, { name: 'resolveVirtualAddress', type: 'function', stateMutability: 'view', inputs: [{ type: 'address', name: 'virtualAddr' }], outputs: [{ type: 'address', name: 'master' }], }, { name: 'isVirtualAddress', type: 'function', stateMutability: 'pure', inputs: [{ type: 'address', name: 'addr' }], outputs: [{ type: 'bool' }], }, { name: 'decodeVirtualAddress', type: 'function', stateMutability: 'pure', inputs: [{ type: 'address', name: 'addr' }], outputs: [ { type: 'bool', name: 'isVirtual' }, { type: 'bytes4', name: 'masterId' }, { type: 'bytes6', name: 'userTag' }, ], }, { name: 'isImplicitlyApproved', type: 'function', stateMutability: 'view', inputs: [{ type: 'address', name: 'addr' }], outputs: [{ type: 'bool' }], }, { name: 'MasterRegistered', type: 'event', inputs: [ { type: 'bytes4', name: 'masterId', indexed: true }, { type: 'address', name: 'masterAddress', indexed: true }, ], }, { name: 'MasterIdCollision', type: 'error', inputs: [{ type: 'address', name: 'master' }], }, { name: 'InvalidMasterAddress', type: 'error', inputs: [] }, { name: 'ProofOfWorkFailed', type: 'error', inputs: [] }, { name: 'VirtualAddressUnregistered', type: 'error', inputs: [] }, ] as const export const feeManager = [ { name: 'userTokens', type: 'function', stateMutability: 'view', inputs: [{ type: 'address', name: 'user' }], outputs: [{ type: 'address' }], }, { name: 'validatorTokens', type: 'function', stateMutability: 'view', inputs: [{ type: 'address', name: 'validator' }], outputs: [{ type: 'address' }], }, { name: 'setUserToken', type: 'function', stateMutability: 'nonpayable', inputs: [{ type: 'address', name: 'token' }], outputs: [], }, { name: 'setValidatorToken', type: 'function', stateMutability: 'nonpayable', inputs: [{ type: 'address', name: 'token' }], outputs: [], }, { name: 'distributeFees', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'validator' }, { type: 'address', name: 'token' }, ], outputs: [], }, { name: 'collectedFees', type: 'function', stateMutability: 'view', inputs: [ { type: 'address', name: 'validator' }, { type: 'address', name: 'token' }, ], outputs: [{ type: 'uint256' }], }, { name: 'UserTokenSet', type: 'event', inputs: [ { type: 'address', name: 'user', indexed: true }, { type: 'address', name: 'token', indexed: true }, ], }, { name: 'ValidatorTokenSet', type: 'event', inputs: [ { type: 'address', name: 'validator', indexed: true }, { type: 'address', name: 'token', indexed: true }, ], }, { name: 'FeesDistributed', type: 'event', inputs: [ { type: 'address', name: 'validator', indexed: true }, { type: 'address', name: 'token', indexed: true }, { type: 'uint256', name: 'amount' }, ], }, { name: 'InvalidToken', type: 'error', inputs: [] }, { name: 'InsufficientFeeTokenBalance', type: 'error', inputs: [] }, { name: 'CannotChangeWithinBlock', type: 'error', inputs: [] }, ] as const export const feeAmm = [ { name: 'M', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'uint256' }], }, { name: 'N', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'uint256' }], }, { name: 'SCALE', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'uint256' }], }, { name: 'MIN_LIQUIDITY', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'uint256' }], }, { name: 'getPoolId', type: 'function', stateMutability: 'pure', inputs: [ { type: 'address', name: 'userToken' }, { type: 'address', name: 'validatorToken' }, ], outputs: [{ type: 'bytes32' }], }, { name: 'getPool', type: 'function', stateMutability: 'view', inputs: [ { type: 'address', name: 'userToken' }, { type: 'address', name: 'validatorToken' }, ], outputs: [ { type: 'tuple', components: [ { type: 'uint128', name: 'reserveUserToken' }, { type: 'uint128', name: 'reserveValidatorToken' }, ], }, ], }, { name: 'pools', type: 'function', stateMutability: 'view', inputs: [{ type: 'bytes32', name: 'poolId' }], outputs: [ { type: 'tuple', components: [ { type: 'uint128', name: 'reserveUserToken' }, { type: 'uint128', name: 'reserveValidatorToken' }, ], }, ], }, { name: 'mint', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'userToken' }, { type: 'address', name: 'validatorToken' }, { type: 'uint256', name: 'amountValidatorToken' }, { type: 'address', name: 'to' }, ], outputs: [{ type: 'uint256', name: 'liquidity' }], }, { name: 'burn', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'userToken' }, { type: 'address', name: 'validatorToken' }, { type: 'uint256', name: 'liquidity' }, { type: 'address', name: 'to' }, ], outputs: [ { type: 'uint256', name: 'amountUserToken' }, { type: 'uint256', name: 'amountValidatorToken' }, ], }, { name: 'totalSupply', type: 'function', stateMutability: 'view', inputs: [{ type: 'bytes32', name: 'poolId' }], outputs: [{ type: 'uint256' }], }, { name: 'liquidityBalances', type: 'function', stateMutability: 'view', inputs: [ { type: 'bytes32', name: 'poolId' }, { type: 'address', name: 'user' }, ], outputs: [{ type: 'uint256' }], }, { name: 'rebalanceSwap', type: 'functio