UNPKG

viem

Version:

TypeScript Interface for Ethereum

1,620 lines (1,619 loc) • 93.4 kB
// Generated with `pnpm gen:abis`. Do not modify manually. export const accountKeychain = [ { name: 'authorizeKey', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'keyId' }, { type: 'uint8', name: 'signatureType' }, { type: 'uint64', name: 'expiry' }, { type: 'bool', name: 'enforceLimits' }, { type: 'tuple[]', name: 'limits', components: [ { type: 'address', name: 'token' }, { type: 'uint256', name: 'amount' }, ], }, ], outputs: [], }, { name: 'authorizeKey', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'keyId' }, { type: 'uint8', name: 'signatureType' }, { type: 'tuple', name: 'config', components: [ { type: 'uint64', name: 'expiry' }, { type: 'bool', name: 'enforceLimits' }, { type: 'tuple[]', name: 'limits', components: [ { type: 'address', name: 'token' }, { type: 'uint256', name: 'amount' }, { type: 'uint64', name: 'period' }, ], }, { type: 'bool', name: 'allowAnyCalls' }, { type: 'tuple[]', name: 'allowedCalls', components: [ { type: 'address', name: 'target' }, { type: 'tuple[]', name: 'selectorRules', components: [ { type: 'bytes4', name: 'selector' }, { type: 'address[]', name: 'recipients' }, ], }, ], }, ], }, ], outputs: [], }, { name: 'authorizeKey', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'keyId' }, { type: 'uint8', name: 'signatureType' }, { type: 'tuple', name: 'config', components: [ { type: 'uint64', name: 'expiry' }, { type: 'bool', name: 'enforceLimits' }, { type: 'tuple[]', name: 'limits', components: [ { type: 'address', name: 'token' }, { type: 'uint256', name: 'amount' }, { type: 'uint64', name: 'period' }, ], }, { type: 'bool', name: 'allowAnyCalls' }, { type: 'tuple[]', name: 'allowedCalls', components: [ { type: 'address', name: 'target' }, { type: 'tuple[]', name: 'selectorRules', components: [ { type: 'bytes4', name: 'selector' }, { type: 'address[]', name: 'recipients' }, ], }, ], }, ], }, { type: 'bytes32', name: 'witness' }, ], outputs: [], }, { name: 'authorizeAdminKey', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'keyId' }, { type: 'uint8', name: 'signatureType' }, { type: 'bytes32', name: 'witness' }, ], outputs: [], }, { name: 'burnKeyAuthorizationWitness', type: 'function', stateMutability: 'nonpayable', inputs: [{ type: 'bytes32', name: 'witness' }], outputs: [], }, { name: 'revokeKey', type: 'function', stateMutability: 'nonpayable', inputs: [{ type: 'address', name: 'keyId' }], outputs: [], }, { name: 'updateSpendingLimit', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'keyId' }, { type: 'address', name: 'token' }, { type: 'uint256', name: 'newLimit' }, ], outputs: [], }, { name: 'setAllowedCalls', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'keyId' }, { type: 'tuple[]', name: 'scopes', components: [ { type: 'address', name: 'target' }, { type: 'tuple[]', name: 'selectorRules', components: [ { type: 'bytes4', name: 'selector' }, { type: 'address[]', name: 'recipients' }, ], }, ], }, ], outputs: [], }, { name: 'removeAllowedCalls', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'keyId' }, { type: 'address', name: 'target' }, ], outputs: [], }, { name: 'getKey', type: 'function', stateMutability: 'view', inputs: [ { type: 'address', name: 'account' }, { type: 'address', name: 'keyId' }, ], outputs: [ { type: 'tuple', components: [ { type: 'uint8', name: 'signatureType' }, { type: 'address', name: 'keyId' }, { type: 'uint64', name: 'expiry' }, { type: 'bool', name: 'enforceLimits' }, { type: 'bool', name: 'isRevoked' }, ], }, ], }, { name: 'getRemainingLimit', type: 'function', stateMutability: 'view', inputs: [ { type: 'address', name: 'account' }, { type: 'address', name: 'keyId' }, { type: 'address', name: 'token' }, ], outputs: [{ type: 'uint256', name: 'remaining' }], }, { name: 'getRemainingLimitWithPeriod', type: 'function', stateMutability: 'view', inputs: [ { type: 'address', name: 'account' }, { type: 'address', name: 'keyId' }, { type: 'address', name: 'token' }, ], outputs: [ { type: 'uint256', name: 'remaining' }, { type: 'uint64', name: 'periodEnd' }, ], }, { name: 'getAllowedCalls', type: 'function', stateMutability: 'view', inputs: [ { type: 'address', name: 'account' }, { type: 'address', name: 'keyId' }, ], outputs: [ { type: 'bool', name: 'isScoped' }, { type: 'tuple[]', name: 'scopes', components: [ { type: 'address', name: 'target' }, { type: 'tuple[]', name: 'selectorRules', components: [ { type: 'bytes4', name: 'selector' }, { type: 'address[]', name: 'recipients' }, ], }, ], }, ], }, { name: 'isKeyAuthorizationWitnessBurned', type: 'function', stateMutability: 'view', inputs: [ { type: 'address', name: 'account' }, { type: 'bytes32', name: 'witness' }, ], outputs: [{ type: 'bool' }], }, { name: 'isAdminKey', type: 'function', stateMutability: 'view', inputs: [ { type: 'address', name: 'account' }, { type: 'address', name: 'keyId' }, ], outputs: [{ type: 'bool' }], }, { name: 'getTransactionKey', type: 'function', stateMutability: 'view', inputs: [], outputs: [{ type: 'address' }], }, { name: 'KeyAuthorized', type: 'event', inputs: [ { type: 'address', name: 'account', indexed: true }, { type: 'address', name: 'publicKey', indexed: true }, { type: 'uint8', name: 'signatureType' }, { type: 'uint64', name: 'expiry' }, ], }, { name: 'AdminKeyAuthorized', type: 'event', inputs: [ { type: 'address', name: 'account', indexed: true }, { type: 'address', name: 'publicKey', indexed: true }, ], }, { name: 'KeyRevoked', type: 'event', inputs: [ { type: 'address', name: 'account', indexed: true }, { type: 'address', name: 'publicKey', indexed: true }, ], }, { name: 'SpendingLimitUpdated', type: 'event', inputs: [ { type: 'address', name: 'account', indexed: true }, { type: 'address', name: 'publicKey', indexed: true }, { type: 'address', name: 'token', indexed: true }, { type: 'uint256', name: 'newLimit' }, ], }, { name: 'AccessKeySpend', type: 'event', inputs: [ { type: 'address', name: 'account', indexed: true }, { type: 'address', name: 'publicKey', indexed: true }, { type: 'address', name: 'token', indexed: true }, { type: 'uint256', name: 'amount' }, { type: 'uint256', name: 'remainingLimit' }, ], }, { name: 'KeyAuthorizationWitness', type: 'event', inputs: [ { type: 'address', name: 'account', indexed: true }, { type: 'bytes32', name: 'witness', indexed: true }, ], }, { name: 'KeyAuthorizationWitnessBurned', type: 'event', inputs: [ { type: 'address', name: 'account', indexed: true }, { type: 'bytes32', name: 'witness', indexed: true }, ], }, { name: 'UnauthorizedCaller', type: 'error', inputs: [] }, { name: 'KeyAlreadyExists', type: 'error', inputs: [] }, { name: 'KeyNotFound', type: 'error', inputs: [] }, { name: 'KeyExpired', type: 'error', inputs: [] }, { name: 'SpendingLimitExceeded', type: 'error', inputs: [] }, { name: 'InvalidSpendingLimit', type: 'error', inputs: [] }, { name: 'InvalidSignatureType', type: 'error', inputs: [] }, { name: 'ZeroPublicKey', type: 'error', inputs: [] }, { name: 'ExpiryInPast', type: 'error', inputs: [] }, { name: 'KeyAlreadyRevoked', type: 'error', inputs: [] }, { name: 'SignatureTypeMismatch', type: 'error', inputs: [ { type: 'uint8', name: 'expected' }, { type: 'uint8', name: 'actual' }, ], }, { name: 'CallNotAllowed', type: 'error', inputs: [] }, { name: 'InvalidCallScope', type: 'error', inputs: [] }, { name: 'InvalidKeyId', type: 'error', inputs: [] }, { name: 'InvalidKeyAuthorizationWitness', type: 'error', inputs: [] }, { name: 'KeyAuthorizationWitnessAlreadyBurned', type: 'error', inputs: [] }, { name: 'LegacyAuthorizeKeySelectorChanged', type: 'error', inputs: [{ type: 'bytes4', name: 'newSelector' }], }, ]; 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: [] }, ]; export const nonce = [ { name: 'getNonce', type: 'function', stateMutability: 'view', inputs: [ { type: 'address', name: 'account' }, { type: 'uint256', name: 'nonceKey' }, ], outputs: [{ type: 'uint64', name: 'nonce' }], }, { name: 'NonceIncremented', type: 'event', inputs: [ { type: 'address', name: 'account', indexed: true }, { type: 'uint256', name: 'nonceKey', indexed: true }, { type: 'uint64', name: 'newNonce' }, ], }, { name: 'ProtocolNonceNotSupported', type: 'error', inputs: [] }, { name: 'InvalidNonceKey', type: 'error', inputs: [] }, { name: 'NonceOverflow', type: 'error', inputs: [] }, { name: 'ExpiringNonceReplay', type: 'error', inputs: [] }, { name: 'ExpiringNonceSetFull', type: 'error', inputs: [] }, { name: 'InvalidExpiringNonceExpiry', type: 'error', inputs: [] }, ]; export const receivePolicyGuard = [ { name: 'balanceOf', type: 'function', stateMutability: 'view', inputs: [{ type: 'bytes', name: 'receipt' }], outputs: [{ type: 'uint256', name: 'amount' }], }, { name: 'claim', type: 'function', stateMutability: 'nonpayable', inputs: [ { type: 'address', name: 'to' }, { type: 'bytes', name: 'receipt' }, ], outputs: [], }, { name: 'burnBlockedReceipt', type: 'function', stateMutability: 'nonpayable', inputs: [{ type: 'bytes', name: 'receipt' }], outputs: [], }, { name: 'TransferBlocked', type: 'event', inputs: [ { type: 'address', name: 'token', indexed: true }, { type: 'address', name: 'receiver', indexed: true }, { type: 'uint64', name: 'blockedNonce', indexed: true }, { type: 'uint256', name: 'amount' }, { type: 'uint8', name: 'receiptVersion' }, { type: 'bytes', name: 'receipt' }, ], }, { name: 'ReceiptClaimed', type: 'event', inputs: [ { type: 'address', name: 'token', indexed: true }, { type: 'address', name: 'receiver', indexed: true }, { type: 'uint64', name: 'blockedNonce', indexed: true }, { type: 'uint64', name: 'blockedAt' }, { type: 'uint8', name: 'receiptVersion' }, { type: 'address', name: 'originator' }, { type: 'address', name: 'recipient' }, { type: 'address', name: 'recoveryAuthority' }, { type: 'address', name: 'caller' }, { type: 'address', name: 'to' }, { type: 'uint256', name: 'amount' }, ], }, { name: 'ReceiptBurned', type: 'event', inputs: [ { type: 'address', name: 'token', indexed: true }, { type: 'address', name: 'receiver', indexed: true }, { type: 'uint64', name: 'blockedNonce', indexed: true }, { type: 'uint64', name: 'blockedAt' }, { type: 'uint8', name: 'receiptVersion' }, { type: 'address', name: 'originator' }, { type: 'address', name: 'recipient' }, { type: 'address', name: 'recoveryAuthority' }, { type: 'address', name: 'caller' }, { type: 'uint256', name: 'amount' }, ], }, { name: 'InvalidReceipt', type: 'error', inputs: [] }, { name: 'InvalidClaimAddress', type: 'error', inputs: [] }, { name: 'UnauthorizedClaimer', type: 'error', inputs: [] }, { name: 'AddressReserved', type: 'error', inputs: [] }, ]; 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: 'verifyKeychain', type: 'function', stateMutability: 'view', inputs: [ { type: 'address', name: 'account' }, { type: 'bytes32', name: 'hash' }, { type: 'bytes', name: 'signature' }, ], outputs: [{ type: 'bool' }], }, { name: 'verifyKeychainAdmin', type: 'function', stateMutability: 'view', inputs: [ { type: 'address', name: 'account' }, { type: 'bytes32', name: 'hash' }, { type: 'bytes', name: 'signature' }, ], outputs: [{ type: 'bool' }], }, { name: 'InvalidFormat', type: 'error', inputs: [] }, { name: 'InvalidSignature', type: 'error', inputs: [] }, ]; 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: 'FlipFailed', type: 'event', inputs: [ { type: 'uint128', name: 'orderId', indexed: true }, { type: 'address', name: 'maker', indexed: true }, { type: 'bytes4', name: 'reason' }, ], }, { 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: [] }, ]; 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: [] }, ]; 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' },