viem
Version:
1,872 lines (1,863 loc) • 80 kB
text/typescript
// 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' }],
},
] 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 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: [] },
] as const
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: [] },
] 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: '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: [] },
] 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: '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: [] },
] 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 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 tip20Factory = [
{
name: 'createToken',
type: 'function',
stateMutability: 'nonpayable',
inputs: [
{ type: 'string', name: 'name' },
{ type: 'string', name: 'symbol' },
{ type: 'string', name: 'currency' },
{ type: 'address', name: 'quoteToken' },
{ type: 'address', name: 'admin' },
{ type: 'bytes32', name: 'salt' },
],
outputs: [{ type: 'address' }],
},
{
name: 'createToken',
type: 'function',
stateMutability: 'nonpayable',
inputs: [
{ type: 'str