diff --git a/package.json b/package.json index 62c4aa9b..6d1165c0 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ }, "devDependencies": { "@offchainlabs/prettier-config": "0.2.1", - "@wagmi/cli": "^1.5.2", + "@wagmi/cli": "^2.1.4", "dotenv": "^16.3.1", "patch-package": "^8.0.0", "postinstall-postinstall": "^2.1.0", diff --git a/patches/@wagmi+cli+1.5.2.patch b/patches/@wagmi+cli+1.5.2.patch deleted file mode 100644 index 4af5be65..00000000 --- a/patches/@wagmi+cli+1.5.2.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff --git a/node_modules/@wagmi/cli/dist/plugins/index.d.ts b/node_modules/@wagmi/cli/dist/plugins/index.d.ts -index 04a78d1..1574961 100644 ---- a/node_modules/@wagmi/cli/dist/plugins/index.d.ts -+++ b/node_modules/@wagmi/cli/dist/plugins/index.d.ts -@@ -114,12 +114,15 @@ declare const apiUrls: { - 1: string; - 5: string; - 11155111: string; -+ 17000: string; - 10: string; - 420: string; - 137: string; - 80001: string; - 42161: string; -+ 42170: string; - 421613: string; -+ 421614: string; - 56: string; - 97: string; - 128: string; -diff --git a/node_modules/@wagmi/cli/dist/plugins/index.js b/node_modules/@wagmi/cli/dist/plugins/index.js -index 8e23da2..4cc878a 100644 ---- a/node_modules/@wagmi/cli/dist/plugins/index.js -+++ b/node_modules/@wagmi/cli/dist/plugins/index.js -@@ -1381,12 +1381,15 @@ var apiUrls = { - [1]: "https://api.etherscan.io/api", - [5]: "https://api-goerli.etherscan.io/api", - [11155111]: "https://api-sepolia.etherscan.io/api", -+ [17000]: "https://api-holesky.etherscan.io/api", - [10]: "https://api-optimistic.etherscan.io/api", - [420]: "https://api-goerli-optimistic.etherscan.io/api", - [137]: "https://api.polygonscan.com/api", - [80001]: "https://api-testnet.polygonscan.com/api", - [42161]: "https://api.arbiscan.io/api", -+ [42170]: "https://api-nova.arbiscan.io/api", - [421613]: "https://api-goerli.arbiscan.io/api", -+ [421614]: "https://api-sepolia.arbiscan.io/api", - [56]: "https://api.bscscan.com/api", - [97]: "https://api-testnet.bscscan.com/api", - [128]: "https://api.hecoinfo.com/api", diff --git a/src/abi/erc20ABI.ts b/src/abi/erc20ABI.ts new file mode 100644 index 00000000..8ac7150f --- /dev/null +++ b/src/abi/erc20ABI.ts @@ -0,0 +1,116 @@ +export const erc20ABI = [ + { + type: 'event', + inputs: [ + { name: 'owner', type: 'address', indexed: true }, + { name: 'spender', type: 'address', indexed: true }, + { name: 'value', type: 'uint256', indexed: false }, + ], + name: 'Approval', + }, + { + type: 'event', + inputs: [ + { name: 'from', type: 'address', indexed: true }, + { name: 'to', type: 'address', indexed: true }, + { name: 'value', type: 'uint256', indexed: false }, + ], + name: 'Transfer', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'owner', type: 'address' }, + { name: 'spender', type: 'address' }, + ], + name: 'allowance', + outputs: [{ type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'spender', type: 'address' }, + { name: 'amount', type: 'uint256' }, + ], + name: 'approve', + outputs: [{ type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'account', type: 'address' }], + name: 'balanceOf', + outputs: [{ type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'decimals', + outputs: [{ type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'name', + outputs: [{ type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'symbol', + outputs: [{ type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalSupply', + outputs: [{ type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'recipient', type: 'address' }, + { name: 'amount', type: 'uint256' }, + ], + name: 'transfer', + outputs: [{ type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'sender', type: 'address' }, + { name: 'recipient', type: 'address' }, + { name: 'amount', type: 'uint256' }, + ], + name: 'transferFrom', + outputs: [{ type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'spender', type: 'address' }, + { name: 'addedValue', type: 'uint256' }, + ], + name: 'increaseAllowance', + outputs: [{ type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'spender', type: 'address' }, + { name: 'subtractedValue', type: 'uint256' }, + ], + name: 'decreaseAllowance', + outputs: [{ type: 'bool' }], + }, +] as const; diff --git a/src/arbGasInfoReadContract.ts b/src/arbGasInfoReadContract.ts index 13db05d1..57d39536 100644 --- a/src/arbGasInfoReadContract.ts +++ b/src/arbGasInfoReadContract.ts @@ -1,30 +1,40 @@ -import { Chain, GetFunctionArgs, PublicClient, ReadContractReturnType, Transport } from 'viem'; +import { + Chain, + PublicClient, + Transport, + ContractFunctionArgs, + ReadContractParameters, + ReadContractReturnType, +} from 'viem'; import { arbGasInfo } from './contracts'; -import { GetFunctionName } from './types/utils'; +import { GetReadContractFunctionName } from './types/utils'; export type ArbGasInfoAbi = typeof arbGasInfo.abi; -export type ArbGasInfoFunctionName = GetFunctionName; +export type ArbGasInfoFunctionName = GetReadContractFunctionName; +type ArbGasInfoReadContractArgs = + ContractFunctionArgs; -export type ArbGasInfoReadContractParameters = { - functionName: TFunctionName; -} & GetFunctionArgs; - -export type ArbGasInfoReadContractReturnType = - ReadContractReturnType; +export type ArbGasInfoReadContractParameters< + TFunctionName extends ArbGasInfoFunctionName, + TArgs extends ArbGasInfoReadContractArgs = ArbGasInfoReadContractArgs, +> = Omit, 'abi' | 'address'>; +export type ArbGasInfoReadContractReturnType< + TFunctionName extends ArbGasInfoFunctionName, + TArgs extends ArbGasInfoReadContractArgs = ArbGasInfoReadContractArgs, +> = ReadContractReturnType; export function arbGasInfoReadContract< - TChain extends Chain | undefined, TFunctionName extends ArbGasInfoFunctionName, + TChain extends Chain | undefined, >( client: PublicClient, params: ArbGasInfoReadContractParameters, -): Promise> { - // @ts-ignore (todo: fix viem type issue) +) { return client.readContract({ address: arbGasInfo.address, abi: arbGasInfo.abi, functionName: params.functionName, args: params.args, - }); + } as ReadContractParameters>); } diff --git a/src/arbOwnerPrepareTransactionRequest.ts b/src/arbOwnerPrepareTransactionRequest.ts index b48005c8..eecc7b09 100644 --- a/src/arbOwnerPrepareTransactionRequest.ts +++ b/src/arbOwnerPrepareTransactionRequest.ts @@ -5,45 +5,57 @@ import { Address, Chain, Transport, + PrepareTransactionRequestReturnType, + EncodeFunctionDataReturnType, + ContractFunctionArgs, } from 'viem'; import { arbOwner } from './contracts'; import { upgradeExecutorEncodeFunctionData } from './upgradeExecutor'; -import { GetFunctionName } from './types/utils'; +import { GetPrepareTransactionRequestParams } from './types/utils'; type ArbOwnerAbi = typeof arbOwner.abi; -export type ArbOwnerPrepareTransactionRequestFunctionName = GetFunctionName; -export type ArbOwnerEncodeFunctionDataParameters< - TFunctionName extends ArbOwnerPrepareTransactionRequestFunctionName, -> = EncodeFunctionDataParameters; +export type ArbOwnerFunctionName = GetPrepareTransactionRequestParams; +type ArbOwnerPrepareTransactionRequestArgs = + ContractFunctionArgs; -function arbOwnerEncodeFunctionData< - TFunctionName extends ArbOwnerPrepareTransactionRequestFunctionName, ->({ functionName, abi, args }: ArbOwnerEncodeFunctionDataParameters) { +type ArbOwnerEncodeFunctionDataParameters< + TFunctionName extends ArbOwnerFunctionName, + TArgs extends ArbOwnerPrepareTransactionRequestArgs = ArbOwnerPrepareTransactionRequestArgs, +> = EncodeFunctionDataParameters & { + args: TArgs; +}; + +function arbOwnerEncodeFunctionData({ + functionName, + abi, + args, +}: ArbOwnerEncodeFunctionDataParameters): EncodeFunctionDataReturnType { return encodeFunctionData({ abi, functionName, args, - }); + } as EncodeFunctionDataParameters); } -type ArbOwnerPrepareFunctionDataParameters< - TFunctionName extends ArbOwnerPrepareTransactionRequestFunctionName, -> = ArbOwnerEncodeFunctionDataParameters & { - upgradeExecutor: Address | false; - abi: ArbOwnerAbi; +type ArbOwnerPrepareFunctionDataReturnType = { + to: Address; + data: `0x${string}`; + value: BigInt; }; -function arbOwnerPrepareFunctionData< - TFunctionName extends ArbOwnerPrepareTransactionRequestFunctionName, ->(params: ArbOwnerPrepareFunctionDataParameters) { +type ArbOwnerPrepareFunctionDataParameters = + ArbOwnerEncodeFunctionDataParameters & { + upgradeExecutor: Address | false; + }; +function arbOwnerPrepareFunctionData( + params: ArbOwnerPrepareFunctionDataParameters, +): ArbOwnerPrepareFunctionDataReturnType { const { upgradeExecutor } = params; if (!upgradeExecutor) { return { to: arbOwner.address, - data: arbOwnerEncodeFunctionData( - params as ArbOwnerEncodeFunctionDataParameters, - ), + data: arbOwnerEncodeFunctionData(params), value: BigInt(0), }; } @@ -54,7 +66,7 @@ function arbOwnerPrepareFunctionData< functionName: 'executeCall', args: [ arbOwner.address, // target - arbOwnerEncodeFunctionData(params as ArbOwnerEncodeFunctionDataParameters), // targetCallData + arbOwnerEncodeFunctionData(params), // targetCallData ], }), value: BigInt(0), @@ -62,23 +74,25 @@ function arbOwnerPrepareFunctionData< } export type ArbOwnerPrepareTransactionRequestParameters< - TFunctionName extends ArbOwnerPrepareTransactionRequestFunctionName, -> = Omit, 'abi'> & { + TFunctionName extends ArbOwnerFunctionName, +> = Omit, 'abi' | 'functionName'> & { account: Address; + functionName: TFunctionName; }; +export type ArbOwnerPrepareTransactionRequestReturnType = + PrepareTransactionRequestReturnType; export async function arbOwnerPrepareTransactionRequest< - TFunctionName extends ArbOwnerPrepareTransactionRequestFunctionName, - TChain extends Chain | undefined, + TFunctionName extends ArbOwnerFunctionName, + TChain extends Chain | undefined = Chain | undefined, >( client: PublicClient, params: ArbOwnerPrepareTransactionRequestParameters, -) { +): Promise> { if (typeof client.chain === 'undefined') { throw new Error('[arbOwnerPrepareTransactionRequest] client.chain is undefined'); } - // params is extending ArbOwnerPrepareFunctionDataParameters, it's safe to cast const { to, data, value } = arbOwnerPrepareFunctionData({ ...params, abi: arbOwner.abi, @@ -93,5 +107,8 @@ export async function arbOwnerPrepareTransactionRequest< account: params.account, }); - return { ...request, chainId: client.chain.id }; + return { + ...request, + chainId: client.chain.id, + } as unknown as Promise>; } diff --git a/src/arbOwnerReadContract.ts b/src/arbOwnerReadContract.ts index 62a5ff15..cdc99e46 100644 --- a/src/arbOwnerReadContract.ts +++ b/src/arbOwnerReadContract.ts @@ -1,30 +1,37 @@ -import { Chain, GetFunctionArgs, PublicClient, ReadContractReturnType, Transport } from 'viem'; +import { + Chain, + PublicClient, + Transport, + ContractFunctionArgs, + ReadContractParameters, + ReadContractReturnType, +} from 'viem'; import { arbOwnerPublic } from './contracts'; -import { GetFunctionName } from './types/utils'; +import { GetReadContractFunctionName } from './types/utils'; -export type ArbOwnerPublicAbi = typeof arbOwnerPublic.abi; -export type ArbOwnerPublicFunctionName = GetFunctionName; +type ArbOwnerPublicAbi = typeof arbOwnerPublic.abi; +export type ArbOwnerPublicFunctionName = GetReadContractFunctionName; +type ArbOwnerReadContractArgs = + ContractFunctionArgs; -export type ArbOwnerReadContractParameters = { - functionName: TFunctionName; -} & GetFunctionArgs; - -export type ArbOwnerReadContractReturnType = - ReadContractReturnType; +export type ArbOwnerReadContractParameters< + TFunctionName extends ArbOwnerPublicFunctionName, + TArgs extends ArbOwnerReadContractArgs = ArbOwnerReadContractArgs, +> = Omit, 'abi' | 'address'>; +export type ArbOwnerReadContractReturnType< + TFunctionName extends ArbOwnerPublicFunctionName, + TArgs extends ArbOwnerReadContractArgs = ArbOwnerReadContractArgs, +> = ReadContractReturnType; export function arbOwnerReadContract< - TChain extends Chain | undefined, TFunctionName extends ArbOwnerPublicFunctionName, ->( - client: PublicClient, - params: ArbOwnerReadContractParameters, -): Promise> { - // @ts-ignore (todo: fix viem type issue) + TChain extends Chain | undefined, +>(client: PublicClient, params: ArbOwnerReadContractParameters) { return client.readContract({ address: arbOwnerPublic.address, abi: arbOwnerPublic.abi, functionName: params.functionName, args: params.args, - }); + } as ReadContractParameters>); } diff --git a/src/contracts.ts b/src/contracts.ts index 53997932..718a0515 100644 --- a/src/contracts.ts +++ b/src/contracts.ts @@ -1,7 +1,6 @@ import { parseAbi } from 'viem'; import { - erc20ABI, arbOwnerConfig, arbOwnerPublicConfig, rollupCreatorConfig, @@ -9,6 +8,7 @@ import { arbGasInfoConfig, } from './generated'; import { sequencerInboxABI } from './abi/sequencerInboxABI'; +import { erc20ABI } from './abi/erc20ABI'; export const erc20 = { abi: erc20ABI, diff --git a/src/decorators/arbGasInfoPublicActions.ts b/src/decorators/arbGasInfoPublicActions.ts index 972dbf4f..8ac54ffe 100644 --- a/src/decorators/arbGasInfoPublicActions.ts +++ b/src/decorators/arbGasInfoPublicActions.ts @@ -7,7 +7,7 @@ import { ArbGasInfoReadContractReturnType, } from '../arbGasInfoReadContract'; -export type ArbGasInfoPublicActions = { +export type ArbGasInfoPublicActions = { arbGasInfoReadContract: ( args: ArbGasInfoReadContractParameters, ) => Promise>; @@ -16,7 +16,7 @@ export type ArbGasInfoPublicActions(client: PublicClient): ArbGasInfoPublicActions { +>(client: PublicClient): ArbGasInfoPublicActions { return { arbGasInfoReadContract: (args) => arbGasInfoReadContract(client, args), }; diff --git a/src/decorators/arbOwnerPublicActions.ts b/src/decorators/arbOwnerPublicActions.ts index 0776fb17..e2fe36d1 100644 --- a/src/decorators/arbOwnerPublicActions.ts +++ b/src/decorators/arbOwnerPublicActions.ts @@ -2,14 +2,15 @@ import { Transport, Chain, PrepareTransactionRequestReturnType, PublicClient } f import { arbOwnerReadContract, - ArbOwnerPublicFunctionName, ArbOwnerReadContractParameters, ArbOwnerReadContractReturnType, + ArbOwnerPublicFunctionName, } from '../arbOwnerReadContract'; import { arbOwnerPrepareTransactionRequest, - ArbOwnerPrepareTransactionRequestFunctionName, ArbOwnerPrepareTransactionRequestParameters, + ArbOwnerPrepareTransactionRequestReturnType, + ArbOwnerFunctionName, } from '../arbOwnerPrepareTransactionRequest'; export type ArbOwnerPublicActions = { @@ -17,11 +18,9 @@ export type ArbOwnerPublicActions, ) => Promise>; - arbOwnerPrepareTransactionRequest: < - TFunctionName extends ArbOwnerPrepareTransactionRequestFunctionName, - >( + arbOwnerPrepareTransactionRequest: ( args: ArbOwnerPrepareTransactionRequestParameters, - ) => Promise & { chainId: number }>; + ) => Promise>; }; export function arbOwnerPublicActions< diff --git a/src/decorators/rollupAdminLogicPublicActions.ts b/src/decorators/rollupAdminLogicPublicActions.ts index 8d3512da..a90176cf 100644 --- a/src/decorators/rollupAdminLogicPublicActions.ts +++ b/src/decorators/rollupAdminLogicPublicActions.ts @@ -1,4 +1,4 @@ -import { Transport, Chain, PrepareTransactionRequestReturnType, PublicClient, Address } from 'viem'; +import { Transport, Chain, PublicClient, Address } from 'viem'; import { rollupAdminLogicReadContract, @@ -9,6 +9,8 @@ import { import { rollupAdminLogicPrepareTransactionRequest, RollupAdminLogicPrepareTransactionRequestParameters, + RollupAdminLogicPrepareTransactionRequestReturnType, + RollupAdminLogicPrepareTransactionRequestFunctionName, } from '../rollupAdminLogicPrepareTransactionRequest'; type RollupAdminLogicReadContractArgs< @@ -21,7 +23,7 @@ type RollupAdminLogicReadContractArgs< : RollupAdminLogicReadContractParameters; type rollupAdminLogicPrepareTransactionRequestArgs< TRollupAdminLogic extends Address | undefined, - TFunctionName extends RollupAdminLogicFunctionName, + TFunctionName extends RollupAdminLogicPrepareTransactionRequestFunctionName, > = TRollupAdminLogic extends Address ? Omit, 'rollup'> & { rollup?: Address; @@ -36,9 +38,11 @@ export type RollupAdminLogicActions< args: RollupAdminLogicReadContractArgs, ) => Promise>; - rollupAdminLogicPrepareTransactionRequest: ( + rollupAdminLogicPrepareTransactionRequest: < + TFunctionName extends RollupAdminLogicPrepareTransactionRequestFunctionName, + >( args: rollupAdminLogicPrepareTransactionRequestArgs, - ) => Promise & { chainId: number }>; + ) => Promise>; }; export function rollupAdminLogicPublicActions< @@ -59,17 +63,17 @@ export function rollupAdminLogicPublicActions< ) => { return rollupAdminLogicReadContract(client, { ...args, - rollup: rollup || args.rollup, + rollup: args.rollup || rollup, } as RollupAdminLogicReadContractParameters); }, rollupAdminLogicPrepareTransactionRequest: < - TFunctionName extends RollupAdminLogicFunctionName, + TFunctionName extends RollupAdminLogicPrepareTransactionRequestFunctionName, >( args: rollupAdminLogicPrepareTransactionRequestArgs, ) => { return rollupAdminLogicPrepareTransactionRequest(client, { ...args, - rollup: rollup || args.rollup, + rollup: args.rollup || rollup, } as RollupAdminLogicPrepareTransactionRequestParameters); }, }; diff --git a/src/decorators/sequencerInboxActions.ts b/src/decorators/sequencerInboxActions.ts index b1586d7c..ce79442b 100644 --- a/src/decorators/sequencerInboxActions.ts +++ b/src/decorators/sequencerInboxActions.ts @@ -1,14 +1,16 @@ -import { Transport, Chain, PrepareTransactionRequestReturnType, PublicClient, Address } from 'viem'; +import { Transport, Chain, PublicClient, Address } from 'viem'; import { sequencerInboxReadContract, + SequencerInboxFunctionName, SequencerInboxReadContractParameters, SequencerInboxReadContractReturnType, } from '../sequencerInboxReadContract'; import { - SequencerInboxFunctionName, sequencerInboxPrepareTransactionRequest, SequencerInboxPrepareTransactionRequestParameters, + SequencerInboxPrepareTransactionRequestReturnType, + SequencerInboxPrepareTransactionRequestFunctionName, } from '../sequencerInboxPrepareTransactionRequest'; type SequencerInboxReadContractArgs< @@ -19,9 +21,9 @@ type SequencerInboxReadContractArgs< sequencerInbox?: Address; } : SequencerInboxReadContractParameters; -type SequencerInboxPrepareTransactionRequestArgs< +type sequencerInboxPrepareTransactionRequestArgs< TSequencerInbox extends Address | undefined, - TFunctionName extends SequencerInboxFunctionName, + TFunctionName extends SequencerInboxPrepareTransactionRequestFunctionName, > = TSequencerInbox extends Address ? Omit, 'sequencerInbox'> & { sequencerInbox?: Address; @@ -36,9 +38,11 @@ export type SequencerInboxActions< args: SequencerInboxReadContractArgs, ) => Promise>; - sequencerInboxPrepareTransactionRequest: ( - args: SequencerInboxPrepareTransactionRequestArgs, - ) => Promise & { chainId: number }>; + sequencerInboxPrepareTransactionRequest: < + TFunctionName extends SequencerInboxPrepareTransactionRequestFunctionName, + >( + args: sequencerInboxPrepareTransactionRequestArgs, + ) => Promise>; }; /** @@ -67,13 +71,16 @@ export type SequencerInboxActions< * sequencerInbox: contractAddress.anotherSequencerInbox * }); */ - export function sequencerInboxActions< TParams extends { sequencerInbox?: Address }, TTransport extends Transport = Transport, - TChain extends Chain | undefined = Chain | undefined, ->({ sequencerInbox }: TParams) { - return function sequencerInboxActionsWithSequencerInbox( + TChain extends Chain | undefined = Chain, +>({ + sequencerInbox, +}: TParams): ( + client: PublicClient, +) => SequencerInboxActions { + return function sequencerInboxActionsWithSequencerInboxAddress( client: PublicClient, ) { const sequencerInboxExtensions: SequencerInboxActions = { @@ -85,8 +92,10 @@ export function sequencerInboxActions< sequencerInbox: args.sequencerInbox || sequencerInbox, } as SequencerInboxReadContractParameters); }, - sequencerInboxPrepareTransactionRequest: ( - args: SequencerInboxPrepareTransactionRequestArgs, + sequencerInboxPrepareTransactionRequest: < + TFunctionName extends SequencerInboxPrepareTransactionRequestFunctionName, + >( + args: sequencerInboxPrepareTransactionRequestArgs, ) => { return sequencerInboxPrepareTransactionRequest(client, { ...args, diff --git a/src/generated.ts b/src/generated.ts index abc9a115..394aa76a 100644 --- a/src/generated.ts +++ b/src/generated.ts @@ -3,25 +3,24 @@ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * [__View Contract on Arbitrum Sepolia Blockscout__](https://sepolia-explorer.arbitrum.io/address/0x000000000000000000000000000000000000006c) + * [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x000000000000000000000000000000000000006c) */ -export const arbGasInfoABI = [ +export const arbGasInfoAbi = [ { - stateMutability: 'view', type: 'function', inputs: [], name: 'getAmortizedCostCapBips', outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getCurrentTxL1GasFees', outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getGasAccountingParams', @@ -30,121 +29,121 @@ export const arbGasInfoABI = [ { name: '', internalType: 'uint256', type: 'uint256' }, { name: '', internalType: 'uint256', type: 'uint256' }, ], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getGasBacklog', outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getGasBacklogTolerance', outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getL1BaseFeeEstimate', outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getL1BaseFeeEstimateInertia', outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getL1FeesAvailable', outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getL1GasPriceEstimate', outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getL1PricingEquilibrationUnits', outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getL1PricingFundsDueForRewards', outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getL1PricingSurplus', outputs: [{ name: '', internalType: 'int256', type: 'int256' }], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getL1PricingUnitsSinceUpdate', outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getL1RewardRate', outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getL1RewardRecipient', outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getLastL1PricingSurplus', outputs: [{ name: '', internalType: 'int256', type: 'int256' }], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getLastL1PricingUpdateTime', outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getMinimumGasPrice', outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getPerBatchGasCharge', outputs: [{ name: '', internalType: 'int64', type: 'int64' }], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getPricesInArbGas', @@ -153,9 +152,9 @@ export const arbGasInfoABI = [ { name: '', internalType: 'uint256', type: 'uint256' }, { name: '', internalType: 'uint256', type: 'uint256' }, ], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [{ name: 'aggregator', internalType: 'address', type: 'address' }], name: 'getPricesInArbGasWithAggregator', @@ -164,9 +163,9 @@ export const arbGasInfoABI = [ { name: '', internalType: 'uint256', type: 'uint256' }, { name: '', internalType: 'uint256', type: 'uint256' }, ], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getPricesInWei', @@ -178,9 +177,9 @@ export const arbGasInfoABI = [ { name: '', internalType: 'uint256', type: 'uint256' }, { name: '', internalType: 'uint256', type: 'uint256' }, ], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [{ name: 'aggregator', internalType: 'address', type: 'address' }], name: 'getPricesInWeiWithAggregator', @@ -192,97 +191,109 @@ export const arbGasInfoABI = [ { name: '', internalType: 'uint256', type: 'uint256' }, { name: '', internalType: 'uint256', type: 'uint256' }, ], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getPricingInertia', outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + stateMutability: 'view', }, -] as const; +] as const /** - * [__View Contract on Arbitrum Sepolia Blockscout__](https://sepolia-explorer.arbitrum.io/address/0x000000000000000000000000000000000000006c) + * [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x000000000000000000000000000000000000006c) */ export const arbGasInfoAddress = { 421614: '0x000000000000000000000000000000000000006C', -} as const; +} as const /** - * [__View Contract on Arbitrum Sepolia Blockscout__](https://sepolia-explorer.arbitrum.io/address/0x000000000000000000000000000000000000006c) + * [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x000000000000000000000000000000000000006c) */ -export const arbGasInfoConfig = { address: arbGasInfoAddress, abi: arbGasInfoABI } as const; +export const arbGasInfoConfig = { + address: arbGasInfoAddress, + abi: arbGasInfoAbi, +} as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // ArbOwner ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * [__View Contract on Arbitrum Sepolia Blockscout__](https://sepolia-explorer.arbitrum.io/address/0x0000000000000000000000000000000000000070) + * [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x0000000000000000000000000000000000000070) */ -export const arbOwnerABI = [ +export const arbOwnerAbi = [ { type: 'event', anonymous: false, inputs: [ { name: 'method', internalType: 'bytes4', type: 'bytes4', indexed: true }, - { name: 'owner', internalType: 'address', type: 'address', indexed: true }, + { + name: 'owner', + internalType: 'address', + type: 'address', + indexed: true, + }, { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, ], name: 'OwnerActs', }, { - stateMutability: 'nonpayable', type: 'function', inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], name: 'addChainOwner', outputs: [], + stateMutability: 'nonpayable', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getAllChainOwners', outputs: [{ name: '', internalType: 'address[]', type: 'address[]' }], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getInfraFeeAccount', outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getNetworkFeeAccount', outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], name: 'isChainOwner', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', }, { - stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: 'maxWeiToRelease', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: 'maxWeiToRelease', internalType: 'uint256', type: 'uint256' }, + ], name: 'releaseL1PricerSurplusFunds', outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + stateMutability: 'nonpayable', }, { - stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: 'ownerToRemove', internalType: 'address', type: 'address' }], + inputs: [ + { name: 'ownerToRemove', internalType: 'address', type: 'address' }, + ], name: 'removeChainOwner', outputs: [], + stateMutability: 'nonpayable', }, { - stateMutability: 'nonpayable', type: 'function', inputs: [ { name: 'newVersion', internalType: 'uint64', type: 'uint64' }, @@ -290,191 +301,213 @@ export const arbOwnerABI = [ ], name: 'scheduleArbOSUpgrade', outputs: [], + stateMutability: 'nonpayable', }, { - stateMutability: 'nonpayable', type: 'function', inputs: [{ name: 'cap', internalType: 'uint64', type: 'uint64' }], name: 'setAmortizedCostCapBips', outputs: [], + stateMutability: 'nonpayable', }, { - stateMutability: 'nonpayable', type: 'function', inputs: [{ name: 'level', internalType: 'uint64', type: 'uint64' }], name: 'setBrotliCompressionLevel', outputs: [], + stateMutability: 'nonpayable', }, { - stateMutability: 'nonpayable', type: 'function', inputs: [{ name: 'chainConfig', internalType: 'string', type: 'string' }], name: 'setChainConfig', outputs: [], + stateMutability: 'nonpayable', }, { - stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: 'newInfraFeeAccount', internalType: 'address', type: 'address' }], + inputs: [ + { name: 'newInfraFeeAccount', internalType: 'address', type: 'address' }, + ], name: 'setInfraFeeAccount', outputs: [], + stateMutability: 'nonpayable', }, { - stateMutability: 'nonpayable', type: 'function', inputs: [{ name: 'inertia', internalType: 'uint64', type: 'uint64' }], name: 'setL1BaseFeeEstimateInertia', outputs: [], + stateMutability: 'nonpayable', }, { - stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: 'pricePerUnit', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: 'pricePerUnit', internalType: 'uint256', type: 'uint256' }, + ], name: 'setL1PricePerUnit', outputs: [], + stateMutability: 'nonpayable', }, { - stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: 'equilibrationUnits', internalType: 'uint256', type: 'uint256' }], + inputs: [ + { name: 'equilibrationUnits', internalType: 'uint256', type: 'uint256' }, + ], name: 'setL1PricingEquilibrationUnits', outputs: [], + stateMutability: 'nonpayable', }, { - stateMutability: 'nonpayable', type: 'function', inputs: [{ name: 'inertia', internalType: 'uint64', type: 'uint64' }], name: 'setL1PricingInertia', outputs: [], + stateMutability: 'nonpayable', }, { - stateMutability: 'nonpayable', type: 'function', inputs: [{ name: 'weiPerUnit', internalType: 'uint64', type: 'uint64' }], name: 'setL1PricingRewardRate', outputs: [], + stateMutability: 'nonpayable', }, { - stateMutability: 'nonpayable', type: 'function', inputs: [{ name: 'recipient', internalType: 'address', type: 'address' }], name: 'setL1PricingRewardRecipient', outputs: [], + stateMutability: 'nonpayable', }, { - stateMutability: 'nonpayable', type: 'function', inputs: [{ name: 'priceInWei', internalType: 'uint256', type: 'uint256' }], name: 'setL2BaseFee', outputs: [], + stateMutability: 'nonpayable', }, { - stateMutability: 'nonpayable', type: 'function', inputs: [{ name: 'sec', internalType: 'uint64', type: 'uint64' }], name: 'setL2GasBacklogTolerance', outputs: [], + stateMutability: 'nonpayable', }, { - stateMutability: 'nonpayable', type: 'function', inputs: [{ name: 'sec', internalType: 'uint64', type: 'uint64' }], name: 'setL2GasPricingInertia', outputs: [], + stateMutability: 'nonpayable', }, { - stateMutability: 'nonpayable', type: 'function', inputs: [{ name: 'limit', internalType: 'uint64', type: 'uint64' }], name: 'setMaxTxGasLimit', outputs: [], + stateMutability: 'nonpayable', }, { - stateMutability: 'nonpayable', type: 'function', inputs: [{ name: 'priceInWei', internalType: 'uint256', type: 'uint256' }], name: 'setMinimumL2BaseFee', outputs: [], + stateMutability: 'nonpayable', }, { - stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: 'newNetworkFeeAccount', internalType: 'address', type: 'address' }], + inputs: [ + { + name: 'newNetworkFeeAccount', + internalType: 'address', + type: 'address', + }, + ], name: 'setNetworkFeeAccount', outputs: [], + stateMutability: 'nonpayable', }, { - stateMutability: 'nonpayable', type: 'function', inputs: [{ name: 'cost', internalType: 'int64', type: 'int64' }], name: 'setPerBatchGasCharge', outputs: [], + stateMutability: 'nonpayable', }, { - stateMutability: 'nonpayable', type: 'function', inputs: [{ name: 'limit', internalType: 'uint64', type: 'uint64' }], name: 'setSpeedLimit', outputs: [], + stateMutability: 'nonpayable', }, -] as const; +] as const /** - * [__View Contract on Arbitrum Sepolia Blockscout__](https://sepolia-explorer.arbitrum.io/address/0x0000000000000000000000000000000000000070) + * [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x0000000000000000000000000000000000000070) */ export const arbOwnerAddress = { 421614: '0x0000000000000000000000000000000000000070', -} as const; +} as const /** - * [__View Contract on Arbitrum Sepolia Blockscout__](https://sepolia-explorer.arbitrum.io/address/0x0000000000000000000000000000000000000070) + * [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x0000000000000000000000000000000000000070) */ -export const arbOwnerConfig = { address: arbOwnerAddress, abi: arbOwnerABI } as const; +export const arbOwnerConfig = { + address: arbOwnerAddress, + abi: arbOwnerAbi, +} as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // ArbOwnerPublic ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * [__View Contract on Arbitrum Sepolia Blockscout__](https://sepolia-explorer.arbitrum.io/address/0x000000000000000000000000000000000000006b) + * [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x000000000000000000000000000000000000006b) */ -export const arbOwnerPublicABI = [ +export const arbOwnerPublicAbi = [ { type: 'event', anonymous: false, - inputs: [{ name: 'rectifiedOwner', internalType: 'address', type: 'address', indexed: false }], + inputs: [ + { + name: 'rectifiedOwner', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], name: 'ChainOwnerRectified', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getAllChainOwners', outputs: [{ name: '', internalType: 'address[]', type: 'address[]' }], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getBrotliCompressionLevel', outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getInfraFeeAccount', outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getNetworkFeeAccount', outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'getScheduledUpgrade', @@ -482,158 +515,40 @@ export const arbOwnerPublicABI = [ { name: 'arbosVersion', internalType: 'uint64', type: 'uint64' }, { name: 'scheduledForTimestamp', internalType: 'uint64', type: 'uint64' }, ], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], name: 'isChainOwner', outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + stateMutability: 'view', }, { - stateMutability: 'nonpayable', type: 'function', - inputs: [{ name: 'ownerToRectify', internalType: 'address', type: 'address' }], + inputs: [ + { name: 'ownerToRectify', internalType: 'address', type: 'address' }, + ], name: 'rectifyChainOwner', outputs: [], + stateMutability: 'nonpayable', }, -] as const; +] as const /** - * [__View Contract on Arbitrum Sepolia Blockscout__](https://sepolia-explorer.arbitrum.io/address/0x000000000000000000000000000000000000006b) + * [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x000000000000000000000000000000000000006b) */ export const arbOwnerPublicAddress = { 421614: '0x000000000000000000000000000000000000006b', -} as const; +} as const /** - * [__View Contract on Arbitrum Sepolia Blockscout__](https://sepolia-explorer.arbitrum.io/address/0x000000000000000000000000000000000000006b) + * [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x000000000000000000000000000000000000006b) */ export const arbOwnerPublicConfig = { address: arbOwnerPublicAddress, - abi: arbOwnerPublicABI, -} as const; - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// ERC20 -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const erc20ABI = [ - { - type: 'event', - inputs: [ - { name: 'owner', type: 'address', indexed: true }, - { name: 'spender', type: 'address', indexed: true }, - { name: 'value', type: 'uint256', indexed: false }, - ], - name: 'Approval', - }, - { - type: 'event', - inputs: [ - { name: 'from', type: 'address', indexed: true }, - { name: 'to', type: 'address', indexed: true }, - { name: 'value', type: 'uint256', indexed: false }, - ], - name: 'Transfer', - }, - { - stateMutability: 'view', - type: 'function', - inputs: [ - { name: 'owner', type: 'address' }, - { name: 'spender', type: 'address' }, - ], - name: 'allowance', - outputs: [{ type: 'uint256' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: 'spender', type: 'address' }, - { name: 'amount', type: 'uint256' }, - ], - name: 'approve', - outputs: [{ type: 'bool' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [{ name: 'account', type: 'address' }], - name: 'balanceOf', - outputs: [{ type: 'uint256' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'decimals', - outputs: [{ type: 'uint8' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'name', - outputs: [{ type: 'string' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'symbol', - outputs: [{ type: 'string' }], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'totalSupply', - outputs: [{ type: 'uint256' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: 'recipient', type: 'address' }, - { name: 'amount', type: 'uint256' }, - ], - name: 'transfer', - outputs: [{ type: 'bool' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: 'sender', type: 'address' }, - { name: 'recipient', type: 'address' }, - { name: 'amount', type: 'uint256' }, - ], - name: 'transferFrom', - outputs: [{ type: 'bool' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: 'spender', type: 'address' }, - { name: 'addedValue', type: 'uint256' }, - ], - name: 'increaseAllowance', - outputs: [{ type: 'bool' }], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: 'spender', type: 'address' }, - { name: 'subtractedValue', type: 'uint256' }, - ], - name: 'decreaseAllowance', - outputs: [{ type: 'bool' }], - }, -] as const; + abi: arbOwnerPublicAbi, +} as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // RollupCreator @@ -642,20 +557,30 @@ export const erc20ABI = [ /** * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x90d68b056c411015eae3ec0b98ad94e2c91419f1) * - - * - + * - [__View Contract on Holesky Etherscan__](https://holesky.etherscan.io/address/0xB512078282F462Ba104231ad856464Ceb0a7747e) * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x9CAd81628aB7D8e239F1A5B497313341578c5F71) * - [__View Contract on Arbitrum Nova Arbiscan__](https://nova.arbiscan.io/address/0x9CAd81628aB7D8e239F1A5B497313341578c5F71) - * - [__View Contract on Arbitrum Sepolia Blockscout__](https://sepolia-explorer.arbitrum.io/address/0x06E341073b2749e0Bb9912461351f716DeCDa9b0) + * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x06E341073b2749e0Bb9912461351f716DeCDa9b0) * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0xfbd0b034e6305788007f6e0123cc5eae701a5751) */ -export const rollupCreatorABI = [ - { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, +export const rollupCreatorAbi = [ + { type: 'constructor', inputs: [], stateMutability: 'nonpayable' }, { type: 'event', anonymous: false, inputs: [ - { name: 'previousOwner', internalType: 'address', type: 'address', indexed: true }, - { name: 'newOwner', internalType: 'address', type: 'address', indexed: true }, + { + name: 'previousOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'newOwner', + internalType: 'address', + type: 'address', + indexed: true, + }, ], name: 'OwnershipTransferred', }, @@ -663,38 +588,101 @@ export const rollupCreatorABI = [ type: 'event', anonymous: false, inputs: [ - { name: 'rollupAddress', internalType: 'address', type: 'address', indexed: true }, - { name: 'nativeToken', internalType: 'address', type: 'address', indexed: true }, - { name: 'inboxAddress', internalType: 'address', type: 'address', indexed: false }, - { name: 'outbox', internalType: 'address', type: 'address', indexed: false }, - { name: 'rollupEventInbox', internalType: 'address', type: 'address', indexed: false }, - { name: 'challengeManager', internalType: 'address', type: 'address', indexed: false }, - { name: 'adminProxy', internalType: 'address', type: 'address', indexed: false }, - { name: 'sequencerInbox', internalType: 'address', type: 'address', indexed: false }, - { name: 'bridge', internalType: 'address', type: 'address', indexed: false }, - { name: 'upgradeExecutor', internalType: 'address', type: 'address', indexed: false }, - { name: 'validatorUtils', internalType: 'address', type: 'address', indexed: false }, - { name: 'validatorWalletCreator', internalType: 'address', type: 'address', indexed: false }, + { + name: 'rollupAddress', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'nativeToken', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'inboxAddress', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'outbox', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'rollupEventInbox', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'challengeManager', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'adminProxy', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'sequencerInbox', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'bridge', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'upgradeExecutor', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'validatorUtils', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'validatorWalletCreator', + internalType: 'address', + type: 'address', + indexed: false, + }, ], name: 'RollupCreated', }, { type: 'event', anonymous: false, inputs: [], name: 'TemplatesUpdated' }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'bridgeCreator', - outputs: [{ name: '', internalType: 'contract BridgeCreator', type: 'address' }], + outputs: [ + { name: '', internalType: 'contract BridgeCreator', type: 'address' }, + ], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'challengeManagerTemplate', - outputs: [{ name: '', internalType: 'contract IChallengeManager', type: 'address' }], + outputs: [ + { name: '', internalType: 'contract IChallengeManager', type: 'address' }, + ], + stateMutability: 'view', }, { - stateMutability: 'payable', type: 'function', inputs: [ { @@ -707,25 +695,61 @@ export const rollupCreatorABI = [ internalType: 'struct Config', type: 'tuple', components: [ - { name: 'confirmPeriodBlocks', internalType: 'uint64', type: 'uint64' }, - { name: 'extraChallengeTimeBlocks', internalType: 'uint64', type: 'uint64' }, + { + name: 'confirmPeriodBlocks', + internalType: 'uint64', + type: 'uint64', + }, + { + name: 'extraChallengeTimeBlocks', + internalType: 'uint64', + type: 'uint64', + }, { name: 'stakeToken', internalType: 'address', type: 'address' }, { name: 'baseStake', internalType: 'uint256', type: 'uint256' }, - { name: 'wasmModuleRoot', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'wasmModuleRoot', + internalType: 'bytes32', + type: 'bytes32', + }, { name: 'owner', internalType: 'address', type: 'address' }, - { name: 'loserStakeEscrow', internalType: 'address', type: 'address' }, + { + name: 'loserStakeEscrow', + internalType: 'address', + type: 'address', + }, { name: 'chainId', internalType: 'uint256', type: 'uint256' }, { name: 'chainConfig', internalType: 'string', type: 'string' }, - { name: 'genesisBlockNum', internalType: 'uint64', type: 'uint64' }, + { + name: 'genesisBlockNum', + internalType: 'uint64', + type: 'uint64', + }, { name: 'sequencerInboxMaxTimeVariation', internalType: 'struct ISequencerInbox.MaxTimeVariation', type: 'tuple', components: [ - { name: 'delayBlocks', internalType: 'uint256', type: 'uint256' }, - { name: 'futureBlocks', internalType: 'uint256', type: 'uint256' }, - { name: 'delaySeconds', internalType: 'uint256', type: 'uint256' }, - { name: 'futureSeconds', internalType: 'uint256', type: 'uint256' }, + { + name: 'delayBlocks', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'futureBlocks', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'delaySeconds', + internalType: 'uint256', + type: 'uint256', + }, + { + name: 'futureSeconds', + internalType: 'uint256', + type: 'uint256', + }, ], }, ], @@ -735,114 +759,161 @@ export const rollupCreatorABI = [ { name: 'maxDataSize', internalType: 'uint256', type: 'uint256' }, { name: 'nativeToken', internalType: 'address', type: 'address' }, { name: 'deployFactoriesToL2', internalType: 'bool', type: 'bool' }, - { name: 'maxFeePerGasForRetryables', internalType: 'uint256', type: 'uint256' }, + { + name: 'maxFeePerGasForRetryables', + internalType: 'uint256', + type: 'uint256', + }, ], }, ], name: 'createRollup', outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'payable', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'l2FactoriesDeployer', - outputs: [{ name: '', internalType: 'contract DeployHelper', type: 'address' }], + outputs: [ + { name: '', internalType: 'contract DeployHelper', type: 'address' }, + ], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'osp', - outputs: [{ name: '', internalType: 'contract IOneStepProofEntry', type: 'address' }], + outputs: [ + { + name: '', + internalType: 'contract IOneStepProofEntry', + type: 'address', + }, + ], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'owner', outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', }, { - stateMutability: 'nonpayable', type: 'function', inputs: [], name: 'renounceOwnership', outputs: [], + stateMutability: 'nonpayable', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'rollupAdminLogic', - outputs: [{ name: '', internalType: 'contract IRollupAdmin', type: 'address' }], + outputs: [ + { name: '', internalType: 'contract IRollupAdmin', type: 'address' }, + ], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'rollupUserLogic', - outputs: [{ name: '', internalType: 'contract IRollupUser', type: 'address' }], + outputs: [ + { name: '', internalType: 'contract IRollupUser', type: 'address' }, + ], + stateMutability: 'view', }, { - stateMutability: 'nonpayable', type: 'function', inputs: [ - { name: '_bridgeCreator', internalType: 'contract BridgeCreator', type: 'address' }, - { name: '_osp', internalType: 'contract IOneStepProofEntry', type: 'address' }, + { + name: '_bridgeCreator', + internalType: 'contract BridgeCreator', + type: 'address', + }, + { + name: '_osp', + internalType: 'contract IOneStepProofEntry', + type: 'address', + }, { name: '_challengeManagerLogic', internalType: 'contract IChallengeManager', type: 'address', }, - { name: '_rollupAdminLogic', internalType: 'contract IRollupAdmin', type: 'address' }, - { name: '_rollupUserLogic', internalType: 'contract IRollupUser', type: 'address' }, - { name: '_upgradeExecutorLogic', internalType: 'contract IUpgradeExecutor', type: 'address' }, + { + name: '_rollupAdminLogic', + internalType: 'contract IRollupAdmin', + type: 'address', + }, + { + name: '_rollupUserLogic', + internalType: 'contract IRollupUser', + type: 'address', + }, + { + name: '_upgradeExecutorLogic', + internalType: 'contract IUpgradeExecutor', + type: 'address', + }, { name: '_validatorUtils', internalType: 'address', type: 'address' }, - { name: '_validatorWalletCreator', internalType: 'address', type: 'address' }, - { name: '_l2FactoriesDeployer', internalType: 'contract DeployHelper', type: 'address' }, + { + name: '_validatorWalletCreator', + internalType: 'address', + type: 'address', + }, + { + name: '_l2FactoriesDeployer', + internalType: 'contract DeployHelper', + type: 'address', + }, ], name: 'setTemplates', outputs: [], + stateMutability: 'nonpayable', }, { - stateMutability: 'nonpayable', type: 'function', inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], name: 'transferOwnership', outputs: [], + stateMutability: 'nonpayable', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'upgradeExecutorLogic', - outputs: [{ name: '', internalType: 'contract IUpgradeExecutor', type: 'address' }], + outputs: [ + { name: '', internalType: 'contract IUpgradeExecutor', type: 'address' }, + ], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'validatorUtils', outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', }, { - stateMutability: 'view', type: 'function', inputs: [], name: 'validatorWalletCreator', outputs: [{ name: '', internalType: 'address', type: 'address' }], + stateMutability: 'view', }, - { stateMutability: 'payable', type: 'receive' }, -] as const; + { type: 'receive', stateMutability: 'payable' }, +] as const /** * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x90d68b056c411015eae3ec0b98ad94e2c91419f1) * - - * - + * - [__View Contract on Holesky Etherscan__](https://holesky.etherscan.io/address/0xB512078282F462Ba104231ad856464Ceb0a7747e) * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x9CAd81628aB7D8e239F1A5B497313341578c5F71) * - [__View Contract on Arbitrum Nova Arbiscan__](https://nova.arbiscan.io/address/0x9CAd81628aB7D8e239F1A5B497313341578c5F71) - * - [__View Contract on Arbitrum Sepolia Blockscout__](https://sepolia-explorer.arbitrum.io/address/0x06E341073b2749e0Bb9912461351f716DeCDa9b0) + * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x06E341073b2749e0Bb9912461351f716DeCDa9b0) * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0xfbd0b034e6305788007f6e0123cc5eae701a5751) */ export const rollupCreatorAddress = { @@ -851,25 +922,24 @@ export const rollupCreatorAddress = { 17000: '0xB512078282F462Ba104231ad856464Ceb0a7747e', 42161: '0x9CAd81628aB7D8e239F1A5B497313341578c5F71', 42170: '0x9CAd81628aB7D8e239F1A5B497313341578c5F71', - 333333: '0x0000000000000000000000000000000000000000', 412346: '0x3BaF9f08bAD68869eEdEa90F2Cc546Bd80F1A651', 421614: '0x06E341073b2749e0Bb9912461351f716DeCDa9b0', 11155111: '0xfBD0B034e6305788007f6e0123cc5EaE701a5751', -} as const; +} as const /** * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x90d68b056c411015eae3ec0b98ad94e2c91419f1) * - - * - + * - [__View Contract on Holesky Etherscan__](https://holesky.etherscan.io/address/0xB512078282F462Ba104231ad856464Ceb0a7747e) * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x9CAd81628aB7D8e239F1A5B497313341578c5F71) * - [__View Contract on Arbitrum Nova Arbiscan__](https://nova.arbiscan.io/address/0x9CAd81628aB7D8e239F1A5B497313341578c5F71) - * - [__View Contract on Arbitrum Sepolia Blockscout__](https://sepolia-explorer.arbitrum.io/address/0x06E341073b2749e0Bb9912461351f716DeCDa9b0) + * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x06E341073b2749e0Bb9912461351f716DeCDa9b0) * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0xfbd0b034e6305788007f6e0123cc5eae701a5751) */ export const rollupCreatorConfig = { address: rollupCreatorAddress, - abi: rollupCreatorABI, -} as const; + abi: rollupCreatorAbi, +} as const ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // TokenBridgeCreator @@ -878,54 +948,78 @@ export const rollupCreatorConfig = { /** * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x60D9A46F24D5a35b95A78Dd3E793e55D94EE0660) * - - * - + * - [__View Contract on Holesky Etherscan__](https://holesky.etherscan.io/address/0xac890ED9bC2494C053cE701F138958df95966d94) * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x2f5624dc8800dfA0A82AC03509Ef8bb8E7Ac000e) * - [__View Contract on Arbitrum Nova Arbiscan__](https://nova.arbiscan.io/address/0x8B9D9490a68B1F16ac8A21DdAE5Fd7aB9d708c14) - * - [__View Contract on Arbitrum Sepolia Blockscout__](https://sepolia-explorer.arbitrum.io/address/0x56C486D3786fA26cc61473C499A36Eb9CC1FbD8E) + * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x56C486D3786fA26cc61473C499A36Eb9CC1FbD8E) * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x7edb2dfBeEf9417e0454A80c51EE0C034e45a570) */ -export const tokenBridgeCreatorABI = [ +export const tokenBridgeCreatorAbi = [ { - stateMutability: 'payable', type: 'constructor', inputs: [ { name: '_logic', internalType: 'address', type: 'address' }, { name: 'admin_', internalType: 'address', type: 'address' }, { name: '_data', internalType: 'bytes', type: 'bytes' }, ], + stateMutability: 'payable', }, { type: 'event', anonymous: false, inputs: [ - { name: 'previousAdmin', internalType: 'address', type: 'address', indexed: false }, - { name: 'newAdmin', internalType: 'address', type: 'address', indexed: false }, + { + name: 'previousAdmin', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'newAdmin', + internalType: 'address', + type: 'address', + indexed: false, + }, ], name: 'AdminChanged', }, { type: 'event', anonymous: false, - inputs: [{ name: 'beacon', internalType: 'address', type: 'address', indexed: true }], + inputs: [ + { + name: 'beacon', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], name: 'BeaconUpgraded', }, { type: 'event', anonymous: false, - inputs: [{ name: 'implementation', internalType: 'address', type: 'address', indexed: true }], + inputs: [ + { + name: 'implementation', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], name: 'Upgraded', }, - { stateMutability: 'payable', type: 'fallback' }, - { stateMutability: 'payable', type: 'receive' }, -] as const; + { type: 'fallback', stateMutability: 'payable' }, + { type: 'receive', stateMutability: 'payable' }, +] as const /** * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x60D9A46F24D5a35b95A78Dd3E793e55D94EE0660) * - - * - + * - [__View Contract on Holesky Etherscan__](https://holesky.etherscan.io/address/0xac890ED9bC2494C053cE701F138958df95966d94) * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x2f5624dc8800dfA0A82AC03509Ef8bb8E7Ac000e) * - [__View Contract on Arbitrum Nova Arbiscan__](https://nova.arbiscan.io/address/0x8B9D9490a68B1F16ac8A21DdAE5Fd7aB9d708c14) - * - [__View Contract on Arbitrum Sepolia Blockscout__](https://sepolia-explorer.arbitrum.io/address/0x56C486D3786fA26cc61473C499A36Eb9CC1FbD8E) + * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x56C486D3786fA26cc61473C499A36Eb9CC1FbD8E) * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x7edb2dfBeEf9417e0454A80c51EE0C034e45a570) */ export const tokenBridgeCreatorAddress = { @@ -934,22 +1028,21 @@ export const tokenBridgeCreatorAddress = { 17000: '0xac890ED9bC2494C053cE701F138958df95966d94', 42161: '0x2f5624dc8800dfA0A82AC03509Ef8bb8E7Ac000e', 42170: '0x8B9D9490a68B1F16ac8A21DdAE5Fd7aB9d708c14', - 333333: '0x0000000000000000000000000000000000000000', 412346: '0x38F35Af53bF913c439eaB06A367e09D6eb253492', 421614: '0x56C486D3786fA26cc61473C499A36Eb9CC1FbD8E', 11155111: '0x7edb2dfBeEf9417e0454A80c51EE0C034e45a570', -} as const; +} as const /** * - [__View Contract on Ethereum Etherscan__](https://etherscan.io/address/0x60D9A46F24D5a35b95A78Dd3E793e55D94EE0660) * - - * - + * - [__View Contract on Holesky Etherscan__](https://holesky.etherscan.io/address/0xac890ED9bC2494C053cE701F138958df95966d94) * - [__View Contract on Arbitrum One Arbiscan__](https://arbiscan.io/address/0x2f5624dc8800dfA0A82AC03509Ef8bb8E7Ac000e) * - [__View Contract on Arbitrum Nova Arbiscan__](https://nova.arbiscan.io/address/0x8B9D9490a68B1F16ac8A21DdAE5Fd7aB9d708c14) - * - [__View Contract on Arbitrum Sepolia Blockscout__](https://sepolia-explorer.arbitrum.io/address/0x56C486D3786fA26cc61473C499A36Eb9CC1FbD8E) + * - [__View Contract on Arbitrum Sepolia Arbiscan__](https://sepolia.arbiscan.io/address/0x56C486D3786fA26cc61473C499A36Eb9CC1FbD8E) * - [__View Contract on Sepolia Etherscan__](https://sepolia.etherscan.io/address/0x7edb2dfBeEf9417e0454A80c51EE0C034e45a570) */ export const tokenBridgeCreatorConfig = { address: tokenBridgeCreatorAddress, - abi: tokenBridgeCreatorABI, -} as const; + abi: tokenBridgeCreatorAbi, +} as const diff --git a/src/package.json b/src/package.json index 3427a0d0..b6c1b935 100644 --- a/src/package.json +++ b/src/package.json @@ -48,7 +48,7 @@ "author": "Offchain Labs, Inc.", "license": "Apache-2.0", "peerDependencies": { - "viem": "^1.20.0" + "viem": "^2.9.32" }, "dependencies": { "@arbitrum/sdk": "^3.3.2", diff --git a/src/rollupAdminLogicPrepareTransactionRequest.ts b/src/rollupAdminLogicPrepareTransactionRequest.ts index 599e9323..bde5cb74 100644 --- a/src/rollupAdminLogicPrepareTransactionRequest.ts +++ b/src/rollupAdminLogicPrepareTransactionRequest.ts @@ -3,52 +3,68 @@ import { encodeFunctionData, EncodeFunctionDataParameters, Address, - Transport, Chain, + Transport, + PrepareTransactionRequestReturnType, + EncodeFunctionDataReturnType, + ContractFunctionArgs, } from 'viem'; import { rollupAdminLogicABI } from './abi/rollupAdminLogicABI'; import { upgradeExecutorEncodeFunctionData } from './upgradeExecutor'; -import { GetFunctionName } from './types/utils'; import { validateParentChainPublicClient } from './types/ParentChain'; +import { GetPrepareTransactionRequestParams } from './types/utils'; -export type RollupAdminLogicAbi = typeof rollupAdminLogicABI; -export type RollupAdminLogicFunctionName = GetFunctionName; +type RollupAdminLogicAbi = typeof rollupAdminLogicABI; +export type RollupAdminLogicPrepareTransactionRequestFunctionName = + GetPrepareTransactionRequestParams; +type RollupAdminLogicPrepareTransactionRequestArgs< + TFunctionName extends RollupAdminLogicPrepareTransactionRequestFunctionName, +> = ContractFunctionArgs; type RollupAdminLogicEncodeFunctionDataParameters< - TFunctionName extends RollupAdminLogicFunctionName, -> = EncodeFunctionDataParameters; + TFunctionName extends RollupAdminLogicPrepareTransactionRequestFunctionName, + TArgs extends RollupAdminLogicPrepareTransactionRequestArgs = RollupAdminLogicPrepareTransactionRequestArgs, +> = EncodeFunctionDataParameters & { + args: TArgs; +}; -function rollupAdminLogicEncodeFunctionData({ - abi, +function rollupAdminLogicEncodeFunctionData< + TFunctionName extends RollupAdminLogicPrepareTransactionRequestFunctionName, +>({ functionName, + abi, args, -}: RollupAdminLogicEncodeFunctionDataParameters) { +}: RollupAdminLogicEncodeFunctionDataParameters): EncodeFunctionDataReturnType { return encodeFunctionData({ abi, functionName, args, - }); + } as EncodeFunctionDataParameters); } +type RollupAdminLogicPrepareFunctionDataReturnType = { + to: Address; + data: `0x${string}`; + value: BigInt; +}; type RollupAdminLogicPrepareFunctionDataParameters< - TFunctionName extends RollupAdminLogicFunctionName, + TFunctionName extends RollupAdminLogicPrepareTransactionRequestFunctionName, > = RollupAdminLogicEncodeFunctionDataParameters & { upgradeExecutor: Address | false; - abi: RollupAdminLogicAbi; rollup: Address; }; -function rollupAdminLogicPrepareFunctionData( +function rollupAdminLogicPrepareFunctionData< + TFunctionName extends RollupAdminLogicPrepareTransactionRequestFunctionName, +>( params: RollupAdminLogicPrepareFunctionDataParameters, -) { +): RollupAdminLogicPrepareFunctionDataReturnType { const { upgradeExecutor } = params; if (!upgradeExecutor) { return { to: params.rollup, - data: rollupAdminLogicEncodeFunctionData( - params as RollupAdminLogicEncodeFunctionDataParameters, - ), + data: rollupAdminLogicEncodeFunctionData(params), value: BigInt(0), }; } @@ -59,9 +75,7 @@ function rollupAdminLogicPrepareFunctionData, - ), // targetCallData + rollupAdminLogicEncodeFunctionData(params), // targetCallData ], }), value: BigInt(0), @@ -69,19 +83,22 @@ function rollupAdminLogicPrepareFunctionData = Omit, 'abi'> & { + TFunctionName extends RollupAdminLogicPrepareTransactionRequestFunctionName, +> = Omit, 'abi' | 'functionName'> & { account: Address; + functionName: TFunctionName; }; +export type RollupAdminLogicPrepareTransactionRequestReturnType = + PrepareTransactionRequestReturnType; export async function rollupAdminLogicPrepareTransactionRequest< - TFunctionName extends RollupAdminLogicFunctionName, + TFunctionName extends RollupAdminLogicPrepareTransactionRequestFunctionName, TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, >( client: PublicClient, params: RollupAdminLogicPrepareTransactionRequestParameters, -) { +): Promise> { const validatedPublicClient = validateParentChainPublicClient(client); // params is extending RollupAdminLogicPrepareFunctionDataParameters, it's safe to cast @@ -99,5 +116,7 @@ export async function rollupAdminLogicPrepareTransactionRequest< account: params.account, }); - return { ...request, chainId: validatedPublicClient.chain.id }; + return { ...request, chainId: validatedPublicClient.chain.id } as unknown as Promise< + RollupAdminLogicPrepareTransactionRequestReturnType + >; } diff --git a/src/rollupAdminLogicReadContract.ts b/src/rollupAdminLogicReadContract.ts index 8c0ae01f..cdd47191 100644 --- a/src/rollupAdminLogicReadContract.ts +++ b/src/rollupAdminLogicReadContract.ts @@ -1,30 +1,33 @@ import { Address, Chain, - GetFunctionArgs, + ContractFunctionArgs, PublicClient, ReadContractParameters, ReadContractReturnType, Transport, } from 'viem'; - -import { GetFunctionName } from './types/utils'; import { RollupAdminLogic__factory } from '@arbitrum/sdk/dist/lib/abi/factories/RollupAdminLogic__factory'; + +import { GetReadContractFunctionName } from './types/utils'; import { rollupAdminLogicABI } from './abi/rollupAdminLogicABI'; export type RollupAdminLogicAbi = typeof rollupAdminLogicABI; -export type RollupAdminLogicFunctionName = GetFunctionName; +export type RollupAdminLogicFunctionName = GetReadContractFunctionName; + +type RollupAdminLogicContractArgs = + ContractFunctionArgs; export type RollupAdminLogicReadContractParameters< TFunctionName extends RollupAdminLogicFunctionName, -> = { - functionName: TFunctionName; + TArgs extends RollupAdminLogicContractArgs = RollupAdminLogicContractArgs, +> = Omit, 'abi' | 'address'> & { rollup: Address; -} & GetFunctionArgs; - +}; export type RollupAdminLogicReadContractReturnType< TFunctionName extends RollupAdminLogicFunctionName, -> = ReadContractReturnType; + TArgs extends RollupAdminLogicContractArgs = RollupAdminLogicContractArgs, +> = ReadContractReturnType; export function rollupAdminLogicReadContract< TChain extends Chain | undefined, diff --git a/src/sequencerInboxPrepareTransactionRequest.ts b/src/sequencerInboxPrepareTransactionRequest.ts index 52ed60a5..16b4b703 100644 --- a/src/sequencerInboxPrepareTransactionRequest.ts +++ b/src/sequencerInboxPrepareTransactionRequest.ts @@ -3,50 +3,68 @@ import { encodeFunctionData, EncodeFunctionDataParameters, Address, - Transport, Chain, + Transport, + PrepareTransactionRequestReturnType, + EncodeFunctionDataReturnType, + ContractFunctionArgs, } from 'viem'; import { sequencerInbox } from './contracts'; import { upgradeExecutorEncodeFunctionData } from './upgradeExecutor'; -import { GetFunctionName } from './types/utils'; import { validateParentChainPublicClient } from './types/ParentChain'; +import { GetPrepareTransactionRequestParams } from './types/utils'; -export type SequencerInboxAbi = typeof sequencerInbox.abi; -export type SequencerInboxFunctionName = GetFunctionName; +type SequencerInboxABI = typeof sequencerInbox.abi; +export type SequencerInboxPrepareTransactionRequestFunctionName = + GetPrepareTransactionRequestParams; +type SequencerInboxPrepareTransactionRequestArgs< + TFunctionName extends SequencerInboxPrepareTransactionRequestFunctionName, +> = ContractFunctionArgs; -type SequencerInboxEncodeFunctionDataParameters = - EncodeFunctionDataParameters; +type SequencerInboxEncodeFunctionDataParameters< + TFunctionName extends SequencerInboxPrepareTransactionRequestFunctionName, + TArgs extends SequencerInboxPrepareTransactionRequestArgs = SequencerInboxPrepareTransactionRequestArgs, +> = EncodeFunctionDataParameters & { + args: TArgs; +}; -function sequencerInboxEncodeFunctionData({ - abi, +function sequencerInboxEncodeFunctionData< + TFunctionName extends SequencerInboxPrepareTransactionRequestFunctionName, +>({ functionName, + abi, args, -}: SequencerInboxEncodeFunctionDataParameters) { +}: SequencerInboxEncodeFunctionDataParameters): EncodeFunctionDataReturnType { return encodeFunctionData({ abi, functionName, args, - }); + } as EncodeFunctionDataParameters); } -type SequencerInboxPrepareFunctionDataParameters = - SequencerInboxEncodeFunctionDataParameters & { - upgradeExecutor: Address | false; - abi: SequencerInboxAbi; - sequencerInbox: Address; - }; -function sequencerInboxPrepareFunctionData( +type SequencerInboxPrepareFunctionDataReturnType = { + to: Address; + data: `0x${string}`; + value: BigInt; +}; +type SequencerInboxPrepareFunctionDataParameters< + TFunctionName extends SequencerInboxPrepareTransactionRequestFunctionName, +> = SequencerInboxEncodeFunctionDataParameters & { + upgradeExecutor: Address | false; + sequencerInbox: Address; +}; +function sequencerInboxPrepareFunctionData< + TFunctionName extends SequencerInboxPrepareTransactionRequestFunctionName, +>( params: SequencerInboxPrepareFunctionDataParameters, -) { +): SequencerInboxPrepareFunctionDataReturnType { const { upgradeExecutor } = params; if (!upgradeExecutor) { return { to: params.sequencerInbox, - data: sequencerInboxEncodeFunctionData( - params as SequencerInboxEncodeFunctionDataParameters, - ), + data: sequencerInboxEncodeFunctionData(params), value: BigInt(0), }; } @@ -57,9 +75,7 @@ function sequencerInboxPrepareFunctionData, - ), // targetCallData + sequencerInboxEncodeFunctionData(params), // targetCallData ], }), value: BigInt(0), @@ -67,19 +83,22 @@ function sequencerInboxPrepareFunctionData = Omit, 'abi'> & { + TFunctionName extends SequencerInboxPrepareTransactionRequestFunctionName, +> = Omit, 'abi' | 'functionName'> & { account: Address; + functionName: TFunctionName; }; +export type SequencerInboxPrepareTransactionRequestReturnType = + PrepareTransactionRequestReturnType; export async function sequencerInboxPrepareTransactionRequest< - TFunctionName extends SequencerInboxFunctionName, + TFunctionName extends SequencerInboxPrepareTransactionRequestFunctionName, TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, >( client: PublicClient, params: SequencerInboxPrepareTransactionRequestParameters, -) { +): Promise> { const validatedPublicClient = validateParentChainPublicClient(client); // params is extending SequencerInboxPrepareFunctionDataParameters, it's safe to cast @@ -97,5 +116,7 @@ export async function sequencerInboxPrepareTransactionRequest< account: params.account, }); - return { ...request, chainId: validatedPublicClient.chain.id }; + return { ...request, chainId: validatedPublicClient.chain.id } as unknown as Promise< + SequencerInboxPrepareTransactionRequestReturnType + >; } diff --git a/src/sequencerInboxReadContract.ts b/src/sequencerInboxReadContract.ts index 7b2b607d..0a740fd5 100644 --- a/src/sequencerInboxReadContract.ts +++ b/src/sequencerInboxReadContract.ts @@ -1,27 +1,33 @@ import { Address, Chain, - GetFunctionArgs, + ContractFunctionArgs, PublicClient, + ReadContractParameters, ReadContractReturnType, Transport, } from 'viem'; import { sequencerInbox } from './contracts'; -import { - SequencerInboxAbi, - SequencerInboxFunctionName, -} from './sequencerInboxPrepareTransactionRequest'; -export type SequencerInboxReadContractParameters = - { - functionName: TFunctionName; - // SequencerInbox address is different for each rollup, so user needs to pass it as a parameter - sequencerInbox: Address; - } & GetFunctionArgs; +import { GetReadContractFunctionName } from './types/utils'; + +export type SequencerInboxAbi = typeof sequencerInbox.abi; +export type SequencerInboxFunctionName = GetReadContractFunctionName; + +type SequencerInboxContractArgs = + ContractFunctionArgs; -export type SequencerInboxReadContractReturnType = - ReadContractReturnType; +export type SequencerInboxReadContractParameters< + TFunctionName extends SequencerInboxFunctionName, + TArgs extends SequencerInboxContractArgs = SequencerInboxContractArgs, +> = Omit, 'abi' | 'address'> & { + sequencerInbox: Address; +}; +export type SequencerInboxReadContractReturnType< + TFunctionName extends SequencerInboxFunctionName, + TArgs extends SequencerInboxContractArgs = SequencerInboxContractArgs, +> = ReadContractReturnType; export function sequencerInboxReadContract< TChain extends Chain | undefined, @@ -30,11 +36,10 @@ export function sequencerInboxReadContract< client: PublicClient, params: SequencerInboxReadContractParameters, ): Promise> { - // @ts-ignore (todo: fix viem type issue) return client.readContract({ address: params.sequencerInbox, abi: sequencerInbox.abi, functionName: params.functionName, args: params.args, - }); + } as unknown as ReadContractParameters); } diff --git a/src/types/createRollupTypes.ts b/src/types/createRollupTypes.ts index 966e6879..9d38cb48 100644 --- a/src/types/createRollupTypes.ts +++ b/src/types/createRollupTypes.ts @@ -1,11 +1,12 @@ -import { Address, GetFunctionArgs } from 'viem'; +import { AbiStateMutability, Address, ContractFunctionArgs } from 'viem'; import { rollupCreator } from '../contracts'; -export type CreateRollupFunctionInputs = GetFunctionArgs< +export type CreateRollupFunctionInputs = ContractFunctionArgs< typeof rollupCreator.abi, + AbiStateMutability, 'createRollup' ->['args']; +>; type RequiredKeys = 'config' | 'batchPoster' | 'validators'; diff --git a/src/types/utils.ts b/src/types/utils.ts index d968f1d0..abb2a407 100644 --- a/src/types/utils.ts +++ b/src/types/utils.ts @@ -1,8 +1,15 @@ -import { Abi } from 'viem'; +import { Abi, ContractFunctionName } from 'viem'; // https://twitter.com/mattpocockuk/status/1622730173446557697 export type Prettify = { [K in keyof T]: T[K]; } & {}; -export type GetFunctionName = Extract['name']; +export type GetReadContractFunctionName = ContractFunctionName< + TAbi, + 'pure' | 'view' +>; +export type GetPrepareTransactionRequestParams = ContractFunctionName< + TAbi, + 'nonpayable' | 'payable' +>; diff --git a/src/upgradeExecutor.ts b/src/upgradeExecutor.ts index 9e88ce32..bfb2f108 100644 --- a/src/upgradeExecutor.ts +++ b/src/upgradeExecutor.ts @@ -1,11 +1,11 @@ import { encodeFunctionData, EncodeFunctionDataParameters } from 'viem'; import { upgradeExecutor } from './contracts'; -import { GetFunctionName, Prettify } from './types/utils'; +import { GetPrepareTransactionRequestParams, Prettify } from './types/utils'; export type UpgradeExecutorAbi = typeof upgradeExecutor.abi; -export type UpgradeExecutorFunctionName = GetFunctionName; +export type UpgradeExecutorFunctionName = GetPrepareTransactionRequestParams; export type UpgradeExecutorEncodeFunctionDataParameters< TFunctionName extends UpgradeExecutorFunctionName, @@ -14,10 +14,9 @@ export type UpgradeExecutorEncodeFunctionDataParameters< export function upgradeExecutorEncodeFunctionData< TFunctionName extends UpgradeExecutorFunctionName, >({ functionName, args }: UpgradeExecutorEncodeFunctionDataParameters) { - // @ts-ignore (todo: fix viem type issue) return encodeFunctionData({ abi: upgradeExecutor.abi, functionName, args, - }); + } as EncodeFunctionDataParameters); } diff --git a/wagmi.config.ts b/wagmi.config.ts index 33719139..28543f63 100644 --- a/wagmi.config.ts +++ b/wagmi.config.ts @@ -1,4 +1,4 @@ -import { erc, etherscan } from '@wagmi/cli/plugins'; +import { etherscan } from '@wagmi/cli/plugins'; import { hashMessage } from 'viem'; import dotenv from 'dotenv'; @@ -193,11 +193,6 @@ export default async function () { return { out: 'src/generated.ts', plugins: [ - erc({ - 20: true, - 721: false, - 4626: false, - }), etherscan({ chainId: arbitrumSepolia.id, apiKey: arbiscanApiKey, diff --git a/yarn.lock b/yarn.lock index f35132cf..134690ae 100644 --- a/yarn.lock +++ b/yarn.lock @@ -40,226 +40,231 @@ optionalDependencies: "@openzeppelin/upgrades-core" "^1.24.1" -"@esbuild/android-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz#cf91e86df127aa3d141744edafcba0abdc577d23" - integrity sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg== +"@esbuild/aix-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" + integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== "@esbuild/android-arm64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== -"@esbuild/android-arm@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz#025b6246d3f68b7bbaa97069144fb5fb70f2fff2" - integrity sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw== +"@esbuild/android-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" + integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== "@esbuild/android-arm@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== -"@esbuild/android-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz#c820e0fef982f99a85c4b8bfdd582835f04cd96e" - integrity sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ== +"@esbuild/android-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" + integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== "@esbuild/android-x64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== -"@esbuild/darwin-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz#edef4487af6b21afabba7be5132c26d22379b220" - integrity sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w== +"@esbuild/android-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" + integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== "@esbuild/darwin-arm64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== -"@esbuild/darwin-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz#42829168730071c41ef0d028d8319eea0e2904b4" - integrity sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg== +"@esbuild/darwin-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e" + integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== "@esbuild/darwin-x64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== -"@esbuild/freebsd-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz#1f4af488bfc7e9ced04207034d398e793b570a27" - integrity sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw== +"@esbuild/darwin-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" + integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== "@esbuild/freebsd-arm64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== -"@esbuild/freebsd-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz#636306f19e9bc981e06aa1d777302dad8fddaf72" - integrity sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug== +"@esbuild/freebsd-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" + integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== "@esbuild/freebsd-x64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== -"@esbuild/linux-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz#a003f7ff237c501e095d4f3a09e58fc7b25a4aca" - integrity sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g== +"@esbuild/freebsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" + integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== "@esbuild/linux-arm64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== -"@esbuild/linux-arm@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz#b591e6a59d9c4fe0eeadd4874b157ab78cf5f196" - integrity sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ== +"@esbuild/linux-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" + integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== "@esbuild/linux-arm@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== -"@esbuild/linux-ia32@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz#24333a11027ef46a18f57019450a5188918e2a54" - integrity sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg== +"@esbuild/linux-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" + integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== "@esbuild/linux-ia32@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== -"@esbuild/linux-loong64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz#d5ad459d41ed42bbd4d005256b31882ec52227d8" - integrity sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ== +"@esbuild/linux-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" + integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== "@esbuild/linux-loong64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== -"@esbuild/linux-mips64el@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz#4e5967a665c38360b0a8205594377d4dcf9c3726" - integrity sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw== +"@esbuild/linux-loong64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" + integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== "@esbuild/linux-mips64el@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== -"@esbuild/linux-ppc64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz#206443a02eb568f9fdf0b438fbd47d26e735afc8" - integrity sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g== +"@esbuild/linux-mips64el@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" + integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== "@esbuild/linux-ppc64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== -"@esbuild/linux-riscv64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz#c351e433d009bf256e798ad048152c8d76da2fc9" - integrity sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw== +"@esbuild/linux-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" + integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== "@esbuild/linux-riscv64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== -"@esbuild/linux-s390x@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz#661f271e5d59615b84b6801d1c2123ad13d9bd87" - integrity sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w== +"@esbuild/linux-riscv64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" + integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== "@esbuild/linux-s390x@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== -"@esbuild/linux-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz#e4ba18e8b149a89c982351443a377c723762b85f" - integrity sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw== +"@esbuild/linux-s390x@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" + integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== "@esbuild/linux-x64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== -"@esbuild/netbsd-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz#7d4f4041e30c5c07dd24ffa295c73f06038ec775" - integrity sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA== +"@esbuild/linux-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78" + integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== "@esbuild/netbsd-x64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== -"@esbuild/openbsd-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz#970fa7f8470681f3e6b1db0cc421a4af8060ec35" - integrity sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg== +"@esbuild/netbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" + integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== "@esbuild/openbsd-x64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== -"@esbuild/sunos-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz#abc60e7c4abf8b89fb7a4fe69a1484132238022c" - integrity sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw== +"@esbuild/openbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" + integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== "@esbuild/sunos-x64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== -"@esbuild/win32-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz#7b0ff9e8c3265537a7a7b1fd9a24e7bd39fcd87a" - integrity sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw== +"@esbuild/sunos-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" + integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== "@esbuild/win32-arm64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== -"@esbuild/win32-ia32@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz#e90fe5267d71a7b7567afdc403dfd198c292eb09" - integrity sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig== +"@esbuild/win32-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" + integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== "@esbuild/win32-ia32@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== -"@esbuild/win32-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz#c5a1a4bfe1b57f0c3e61b29883525c6da3e5c091" - integrity sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q== +"@esbuild/win32-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" + integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== "@esbuild/win32-x64@0.18.20": version "0.18.20" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== +"@esbuild/win32-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" + integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== + "@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" @@ -824,55 +829,45 @@ loupe "^2.3.6" pretty-format "^29.5.0" -"@wagmi/cli@^1.5.2": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@wagmi/cli/-/cli-1.5.2.tgz#11e767b8c5d1cfb5045b6ec63df6fa5001189bc4" - integrity sha512-UfLMYhW6mQBCjR8A5s01Chf9GpHzdpcuuBuzJ36QGXcMSJAxylz5ImVZWfCRV0ct1UruydjKVSW1QSI6azNxRQ== +"@wagmi/cli@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@wagmi/cli/-/cli-2.1.4.tgz#a5427d3f11a52473eba1811b23b498305af03378" + integrity sha512-vamvEo/GeBjFxb5oZCvby4YZDOrK/RqD+tcWb5X0pqmJDyWbN2Mkv9DYTtVB+OtfVUzFKciN/8Vhw8luMtOJbw== dependencies: - abitype "0.8.7" - abort-controller "^3.0.0" - bundle-require "^3.1.2" - cac "^6.7.12" + abitype "^0.9.8" + bundle-require "^4.0.2" + cac "^6.7.14" change-case "^4.1.2" chokidar "^3.5.3" dedent "^0.7.0" - detect-package-manager "^2.0.1" - dotenv "^16.0.3" + dotenv "^16.3.1" dotenv-expand "^10.0.0" - esbuild "0.16.17" - execa "^6.1.0" + esbuild "^0.19.0" + execa "^8.0.1" find-up "^6.3.0" - fs-extra "^10.1.0" - globby "^13.1.3" - node-fetch "^3.3.0" - ora "^6.1.2" - pathe "^1.0.0" + fs-extra "^11.1.1" + globby "^13.2.2" + ora "^6.3.1" + pathe "^1.1.1" picocolors "^1.0.0" - prettier "^2.8.1" - viem "^1.0.0" - zod "^3.21.4" + prettier "^3.0.3" + viem "2.*" + zod "^3.22.2" "@yarnpkg/lockfile@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== -abitype@0.8.7: - version "0.8.7" - resolved "https://registry.yarnpkg.com/abitype/-/abitype-0.8.7.tgz#e4b3f051febd08111f486c0cc6a98fa72d033622" - integrity sha512-wQ7hV8Yg/yKmGyFpqrNZufCxbszDe5es4AZGYPBitocfSqXtjrTG9JMWFcc4N30ukl2ve48aBTwt7NJxVQdU3w== - -abitype@0.9.8: - version "0.9.8" - resolved "https://registry.yarnpkg.com/abitype/-/abitype-0.9.8.tgz#1f120b6b717459deafd213dfbf3a3dd1bf10ae8c" - integrity sha512-puLifILdm+8sjyss4S+fsUN09obiT1g2YW6CtcQF+QDzxR0euzgEB29MZujC6zMk2a6SVmtttq1fc6+YFA7WYQ== +abitype@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/abitype/-/abitype-1.0.0.tgz#237176dace81d90d018bebf3a45cb42f2a2d9e97" + integrity sha512-NMeMah//6bJ56H5XRj8QCV4AwuW6hB6zqz2LnhhLdcWVQOsXki6/Pn3APeqxCma62nXIcmZWdu1DlHWS74umVQ== -abort-controller@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== - dependencies: - event-target-shim "^5.0.0" +abitype@^0.9.8: + version "0.9.10" + resolved "https://registry.yarnpkg.com/abitype/-/abitype-0.9.10.tgz#fa6fa30a6465da98736f98b6c601a02ed49f6eec" + integrity sha512-FIS7U4n7qwAT58KibwYig5iFG4K61rbhAqaQh/UWj8v1Y8mjX3F8TC9gd8cz9yT1TYel9f8nS5NO5kZp2RW0jQ== acorn-walk@^8.2.0: version "8.3.0" @@ -1087,14 +1082,14 @@ buffer@^6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" -bundle-require@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bundle-require/-/bundle-require-3.1.2.tgz#1374a7bdcb8b330a7ccc862ccbf7c137cc43ad27" - integrity sha512-Of6l6JBAxiyQ5axFxUM6dYeP/W7X2Sozeo/4EYB9sJhL+dqL7TKjg+shwxp6jlu/6ZSERfsYtIpSJ1/x3XkAEA== +bundle-require@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bundle-require/-/bundle-require-4.1.0.tgz#3d5fcd19d5160d4cbac5e95ed5a394d1ecd40ce6" + integrity sha512-FeArRFM+ziGkRViKRnSTbHZc35dgmR9yNog05Kn0+ItI59pOAISGvnnIwW1WgFZQW59IxD9QpJnUPkdIPfZuXg== dependencies: - load-tsconfig "^0.2.0" + load-tsconfig "^0.2.3" -cac@^6.7.12, cac@^6.7.14: +cac@^6.7.14: version "6.7.14" resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== @@ -1312,11 +1307,6 @@ cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -data-uri-to-buffer@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" - integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== - debug@^4.1.1, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" @@ -1361,13 +1351,6 @@ define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: has-property-descriptors "^1.0.0" object-keys "^1.1.1" -detect-package-manager@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/detect-package-manager/-/detect-package-manager-2.0.1.tgz#6b182e3ae5e1826752bfef1de9a7b828cffa50d8" - integrity sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A== - dependencies: - execa "^5.1.1" - diff-sequences@^29.4.3: version "29.6.3" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" @@ -1393,7 +1376,7 @@ dotenv-expand@^10.0.0: resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-10.0.0.tgz#12605d00fb0af6d0a592e6558585784032e4ef37" integrity sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A== -dotenv@^16.0.3, dotenv@^16.3.1: +dotenv@^16.3.1: version "16.3.1" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e" integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== @@ -1481,34 +1464,6 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild@0.16.17: - version "0.16.17" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.17.tgz#fc2c3914c57ee750635fee71b89f615f25065259" - integrity sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg== - optionalDependencies: - "@esbuild/android-arm" "0.16.17" - "@esbuild/android-arm64" "0.16.17" - "@esbuild/android-x64" "0.16.17" - "@esbuild/darwin-arm64" "0.16.17" - "@esbuild/darwin-x64" "0.16.17" - "@esbuild/freebsd-arm64" "0.16.17" - "@esbuild/freebsd-x64" "0.16.17" - "@esbuild/linux-arm" "0.16.17" - "@esbuild/linux-arm64" "0.16.17" - "@esbuild/linux-ia32" "0.16.17" - "@esbuild/linux-loong64" "0.16.17" - "@esbuild/linux-mips64el" "0.16.17" - "@esbuild/linux-ppc64" "0.16.17" - "@esbuild/linux-riscv64" "0.16.17" - "@esbuild/linux-s390x" "0.16.17" - "@esbuild/linux-x64" "0.16.17" - "@esbuild/netbsd-x64" "0.16.17" - "@esbuild/openbsd-x64" "0.16.17" - "@esbuild/sunos-x64" "0.16.17" - "@esbuild/win32-arm64" "0.16.17" - "@esbuild/win32-ia32" "0.16.17" - "@esbuild/win32-x64" "0.16.17" - esbuild@^0.18.10: version "0.18.20" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" @@ -1537,6 +1492,35 @@ esbuild@^0.18.10: "@esbuild/win32-ia32" "0.18.20" "@esbuild/win32-x64" "0.18.20" +esbuild@^0.19.0: + version "0.19.12" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.12.tgz#dc82ee5dc79e82f5a5c3b4323a2a641827db3e04" + integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== + optionalDependencies: + "@esbuild/aix-ppc64" "0.19.12" + "@esbuild/android-arm" "0.19.12" + "@esbuild/android-arm64" "0.19.12" + "@esbuild/android-x64" "0.19.12" + "@esbuild/darwin-arm64" "0.19.12" + "@esbuild/darwin-x64" "0.19.12" + "@esbuild/freebsd-arm64" "0.19.12" + "@esbuild/freebsd-x64" "0.19.12" + "@esbuild/linux-arm" "0.19.12" + "@esbuild/linux-arm64" "0.19.12" + "@esbuild/linux-ia32" "0.19.12" + "@esbuild/linux-loong64" "0.19.12" + "@esbuild/linux-mips64el" "0.19.12" + "@esbuild/linux-ppc64" "0.19.12" + "@esbuild/linux-riscv64" "0.19.12" + "@esbuild/linux-s390x" "0.19.12" + "@esbuild/linux-x64" "0.19.12" + "@esbuild/netbsd-x64" "0.19.12" + "@esbuild/openbsd-x64" "0.19.12" + "@esbuild/sunos-x64" "0.19.12" + "@esbuild/win32-arm64" "0.19.12" + "@esbuild/win32-ia32" "0.19.12" + "@esbuild/win32-x64" "0.19.12" + ethereum-cryptography@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" @@ -1605,11 +1589,6 @@ ethers@^5.1.0, ethers@^5.7.2: "@ethersproject/web" "5.7.1" "@ethersproject/wordlists" "5.7.0" -event-target-shim@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== - evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" @@ -1618,34 +1597,19 @@ evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -execa@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== +execa@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" + integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== dependencies: cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -execa@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" - integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^3.0.1" + get-stream "^8.0.1" + human-signals "^5.0.0" is-stream "^3.0.0" merge-stream "^2.0.0" npm-run-path "^5.1.0" onetime "^6.0.0" - signal-exit "^3.0.7" + signal-exit "^4.1.0" strip-final-newline "^3.0.0" fast-glob@^3.3.0, fast-glob@^3.3.2: @@ -1666,14 +1630,6 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" -fetch-blob@^3.1.2, fetch-blob@^3.1.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" - integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== - dependencies: - node-domexception "^1.0.0" - web-streams-polyfill "^3.0.3" - fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -1703,17 +1659,10 @@ for-each@^0.3.3: dependencies: is-callable "^1.1.3" -formdata-polyfill@^4.0.10: - version "4.0.10" - resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" - integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== - dependencies: - fetch-blob "^3.1.2" - -fs-extra@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" - integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== +fs-extra@^11.1.1: + version "11.2.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" + integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" @@ -1774,10 +1723,10 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@ has-symbols "^1.0.3" hasown "^2.0.0" -get-stream@^6.0.0, get-stream@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== +get-stream@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" + integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== get-symbol-description@^1.0.0: version "1.0.0" @@ -1813,7 +1762,7 @@ globalthis@^1.0.3: dependencies: define-properties "^1.1.3" -globby@^13.1.3: +globby@^13.2.2: version "13.2.2" resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592" integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== @@ -1911,15 +1860,10 @@ hmac-drbg@^1.0.1: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -human-signals@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" - integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== +human-signals@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" + integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== ieee754@^1.2.1: version "1.2.1" @@ -2057,11 +2001,6 @@ is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - is-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" @@ -2117,10 +2056,10 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -isows@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/isows/-/isows-1.0.3.tgz#93c1cf0575daf56e7120bab5c8c448b0809d0d74" - integrity sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg== +isows@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/isows/-/isows-1.0.4.tgz#810cd0d90cc4995c26395d2aa4cfa4037ebdf061" + integrity sha512-hEzjY+x9u9hPmBom9IIAqdJCwNLax+xrPb51vEPpERoFlIxgmZcHzsT5jKG06nvInKOBGvReAVz80Umed5CczQ== js-sha3@0.8.0: version "0.8.0" @@ -2172,7 +2111,7 @@ klaw-sync@^6.0.0: dependencies: graceful-fs "^4.1.11" -load-tsconfig@^0.2.0: +load-tsconfig@^0.2.3: version "0.2.5" resolved "https://registry.yarnpkg.com/load-tsconfig/-/load-tsconfig-0.2.5.tgz#453b8cd8961bfb912dea77eb6c168fe8cca3d3a1" integrity sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg== @@ -2334,20 +2273,6 @@ node-addon-api@^2.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== -node-domexception@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" - integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== - -node-fetch@^3.3.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.2.tgz#d1e889bacdf733b4ff3b2b243eb7a12866a0b78b" - integrity sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA== - dependencies: - data-uri-to-buffer "^4.0.0" - fetch-blob "^3.1.4" - formdata-polyfill "^4.0.10" - node-gyp-build@^4.2.0: version "4.7.1" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.7.1.tgz#cd7d2eb48e594874053150a9418ac85af83ca8f7" @@ -2363,13 +2288,6 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - npm-run-path@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" @@ -2404,7 +2322,7 @@ once@^1.3.0: dependencies: wrappy "1" -onetime@^5.1.0, onetime@^5.1.2: +onetime@^5.1.0: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== @@ -2426,7 +2344,7 @@ open@^7.4.2: is-docker "^2.0.0" is-wsl "^2.1.1" -ora@^6.1.2: +ora@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/ora/-/ora-6.3.1.tgz#a4e9e5c2cf5ee73c259e8b410273e706a2ad3ed6" integrity sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ== @@ -2545,7 +2463,7 @@ path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== -path-key@^3.0.0, path-key@^3.1.0: +path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== @@ -2560,7 +2478,7 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pathe@^1.0.0, pathe@^1.1.0, pathe@^1.1.1: +pathe@^1.1.0, pathe@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.1.tgz#1dd31d382b974ba69809adc9a7a347e65d84829a" integrity sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q== @@ -2614,11 +2532,16 @@ postinstall-postinstall@^2.1.0: resolved "https://registry.yarnpkg.com/postinstall-postinstall/-/postinstall-postinstall-2.1.0.tgz#4f7f77441ef539d1512c40bd04c71b06a4704ca3" integrity sha512-7hQX6ZlZXIoRiWNrbMQaLzUUfH+sSx39u8EJ9HYuDc1kLo9IXKWjM5RSquZN1ad5GnH8CGFM78fsAAQi3OKEEQ== -prettier@^2.8.1, prettier@^2.8.3: +prettier@^2.8.3: version "2.8.8" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== +prettier@^3.0.3: + version "3.2.5" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" + integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== + pretty-format@^29.5.0: version "29.7.0" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" @@ -2862,11 +2785,16 @@ siginfo@^2.0.0: resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== -signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: +signal-exit@^3.0.2: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +signal-exit@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + slash@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" @@ -2955,11 +2883,6 @@ strip-ansi@^7.0.1: dependencies: ansi-regex "^6.0.1" -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - strip-final-newline@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" @@ -3114,18 +3037,18 @@ util-deprecate@^1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -viem@^1.0.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/viem/-/viem-1.20.0.tgz#25cb019831f46aeecf2c8c5cdbad41e4f79b2e32" - integrity sha512-yPjV9pJr10xi28C/9LEvs5zdZNEMiru3Kz7nufghVYABJAfeSkoZQXb6b23n7MscS7c55JO5nmUI3xKkd9g6Yg== +viem@2.*: + version "2.10.8" + resolved "https://registry.yarnpkg.com/viem/-/viem-2.10.8.tgz#31be422498eb20bc0d9a355bd0e001a2f2822b3f" + integrity sha512-ttCXlDmjjcZ8M/eJezXFzDtHj+RFOjEQ3elmXnCC7suXo/y8CuIM1LrIoyUFk7LKIE5E+bzmWUErS4u/MQBtpQ== dependencies: "@adraffy/ens-normalize" "1.10.0" "@noble/curves" "1.2.0" "@noble/hashes" "1.3.2" "@scure/bip32" "1.3.2" "@scure/bip39" "1.2.1" - abitype "0.9.8" - isows "1.0.3" + abitype "1.0.0" + isows "1.0.4" ws "8.13.0" vite-node@0.34.6: @@ -3188,11 +3111,6 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" -web-streams-polyfill@^3.0.3: - version "3.2.1" - resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" - integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== - which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -3272,7 +3190,7 @@ yocto-queue@^1.0.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== -zod@^3.21.4: - version "3.22.4" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.4.tgz#f31c3a9386f61b1f228af56faa9255e845cf3fff" - integrity sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg== +zod@^3.22.2: + version "3.23.8" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d" + integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==