viem 2.22.4 → 2.22.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +8 -2
  3. package/_cjs/celo/fees.js +14 -3
  4. package/_cjs/celo/fees.js.map +1 -1
  5. package/_cjs/chains/definitions/abstractTestnet.js +1 -1
  6. package/_cjs/chains/definitions/abstractTestnet.js.map +1 -1
  7. package/_cjs/chains/definitions/berachainTestnetbArtio.js +8 -0
  8. package/_cjs/chains/definitions/berachainTestnetbArtio.js.map +1 -1
  9. package/_cjs/chains/definitions/flowMainnet.js +1 -1
  10. package/_cjs/chains/definitions/flowMainnet.js.map +1 -1
  11. package/_cjs/chains/definitions/flowTestnet.js +2 -1
  12. package/_cjs/chains/definitions/flowTestnet.js.map +1 -1
  13. package/_cjs/chains/definitions/huddle01Mainnet.js +29 -0
  14. package/_cjs/chains/definitions/huddle01Mainnet.js.map +1 -0
  15. package/_cjs/chains/definitions/huddle01Testnet.js +29 -0
  16. package/_cjs/chains/definitions/huddle01Testnet.js.map +1 -0
  17. package/_cjs/chains/definitions/kroma.js +6 -0
  18. package/_cjs/chains/definitions/kroma.js.map +1 -1
  19. package/_cjs/chains/definitions/kromaSepolia.js +6 -0
  20. package/_cjs/chains/definitions/kromaSepolia.js.map +1 -1
  21. package/_cjs/chains/definitions/ternoa.js +22 -0
  22. package/_cjs/chains/definitions/ternoa.js.map +1 -0
  23. package/_cjs/chains/index.js +13 -7
  24. package/_cjs/chains/index.js.map +1 -1
  25. package/_cjs/errors/version.js +1 -1
  26. package/_cjs/experimental/eip7702/actions/prepareAuthorization.js +9 -8
  27. package/_cjs/experimental/eip7702/actions/prepareAuthorization.js.map +1 -1
  28. package/_cjs/op-stack/actions/estimateFinalizeWithdrawalGas.js +11 -4
  29. package/_cjs/op-stack/actions/estimateFinalizeWithdrawalGas.js.map +1 -1
  30. package/_cjs/op-stack/actions/finalizeWithdrawal.js +11 -4
  31. package/_cjs/op-stack/actions/finalizeWithdrawal.js.map +1 -1
  32. package/_esm/celo/fees.js +14 -3
  33. package/_esm/celo/fees.js.map +1 -1
  34. package/_esm/chains/definitions/abstractTestnet.js +1 -1
  35. package/_esm/chains/definitions/abstractTestnet.js.map +1 -1
  36. package/_esm/chains/definitions/berachainTestnetbArtio.js +8 -0
  37. package/_esm/chains/definitions/berachainTestnetbArtio.js.map +1 -1
  38. package/_esm/chains/definitions/flowMainnet.js +1 -1
  39. package/_esm/chains/definitions/flowMainnet.js.map +1 -1
  40. package/_esm/chains/definitions/flowTestnet.js +2 -1
  41. package/_esm/chains/definitions/flowTestnet.js.map +1 -1
  42. package/_esm/chains/definitions/huddle01Mainnet.js +26 -0
  43. package/_esm/chains/definitions/huddle01Mainnet.js.map +1 -0
  44. package/_esm/chains/definitions/huddle01Testnet.js +26 -0
  45. package/_esm/chains/definitions/huddle01Testnet.js.map +1 -0
  46. package/_esm/chains/definitions/kroma.js +6 -0
  47. package/_esm/chains/definitions/kroma.js.map +1 -1
  48. package/_esm/chains/definitions/kromaSepolia.js +6 -0
  49. package/_esm/chains/definitions/kromaSepolia.js.map +1 -1
  50. package/_esm/chains/definitions/ternoa.js +19 -0
  51. package/_esm/chains/definitions/ternoa.js.map +1 -0
  52. package/_esm/chains/index.js +3 -0
  53. package/_esm/chains/index.js.map +1 -1
  54. package/_esm/errors/version.js +1 -1
  55. package/_esm/experimental/eip7702/actions/prepareAuthorization.js +9 -8
  56. package/_esm/experimental/eip7702/actions/prepareAuthorization.js.map +1 -1
  57. package/_esm/op-stack/actions/estimateFinalizeWithdrawalGas.js +12 -5
  58. package/_esm/op-stack/actions/estimateFinalizeWithdrawalGas.js.map +1 -1
  59. package/_esm/op-stack/actions/finalizeWithdrawal.js +12 -5
  60. package/_esm/op-stack/actions/finalizeWithdrawal.js.map +1 -1
  61. package/_types/celo/fees.d.ts.map +1 -1
  62. package/_types/chains/definitions/abstractTestnet.d.ts +1 -1
  63. package/_types/chains/definitions/berachainTestnetbArtio.d.ts +8 -0
  64. package/_types/chains/definitions/berachainTestnetbArtio.d.ts.map +1 -1
  65. package/_types/chains/definitions/flowMainnet.d.ts +1 -1
  66. package/_types/chains/definitions/flowTestnet.d.ts +2 -2
  67. package/_types/chains/definitions/flowTestnet.d.ts.map +1 -1
  68. package/_types/chains/definitions/huddle01Mainnet.d.ts +39 -0
  69. package/_types/chains/definitions/huddle01Mainnet.d.ts.map +1 -0
  70. package/_types/chains/definitions/huddle01Testnet.d.ts +39 -0
  71. package/_types/chains/definitions/huddle01Testnet.d.ts.map +1 -0
  72. package/_types/chains/definitions/kroma.d.ts +6 -10
  73. package/_types/chains/definitions/kroma.d.ts.map +1 -1
  74. package/_types/chains/definitions/kromaSepolia.d.ts +6 -10
  75. package/_types/chains/definitions/kromaSepolia.d.ts.map +1 -1
  76. package/_types/chains/definitions/ternoa.d.ts +37 -0
  77. package/_types/chains/definitions/ternoa.d.ts.map +1 -0
  78. package/_types/chains/index.d.ts +3 -0
  79. package/_types/chains/index.d.ts.map +1 -1
  80. package/_types/errors/version.d.ts +1 -1
  81. package/_types/experimental/eip7702/actions/prepareAuthorization.d.ts +5 -1
  82. package/_types/experimental/eip7702/actions/prepareAuthorization.d.ts.map +1 -1
  83. package/_types/op-stack/actions/estimateFinalizeWithdrawalGas.d.ts +5 -0
  84. package/_types/op-stack/actions/estimateFinalizeWithdrawalGas.d.ts.map +1 -1
  85. package/_types/op-stack/actions/finalizeWithdrawal.d.ts +5 -0
  86. package/_types/op-stack/actions/finalizeWithdrawal.d.ts.map +1 -1
  87. package/celo/fees.ts +15 -4
  88. package/chains/definitions/abstractTestnet.ts +1 -1
  89. package/chains/definitions/berachainTestnetbArtio.ts +8 -0
  90. package/chains/definitions/flowMainnet.ts +1 -1
  91. package/chains/definitions/flowTestnet.ts +2 -1
  92. package/chains/definitions/huddle01Mainnet.ts +27 -0
  93. package/chains/definitions/huddle01Testnet.ts +27 -0
  94. package/chains/definitions/kroma.ts +6 -0
  95. package/chains/definitions/kromaSepolia.ts +6 -0
  96. package/chains/definitions/ternoa.ts +19 -0
  97. package/chains/index.ts +3 -0
  98. package/errors/version.ts +1 -1
  99. package/experimental/eip7702/actions/prepareAuthorization.ts +11 -7
  100. package/op-stack/actions/estimateFinalizeWithdrawalGas.ts +20 -8
  101. package/op-stack/actions/finalizeWithdrawal.ts +18 -4
  102. package/package.json +1 -1
@@ -25,13 +25,17 @@ export type PrepareAuthorizationParameters<
25
25
  account extends Account | undefined = Account | undefined,
26
26
  > = GetAccountParameter<account> &
27
27
  PartialBy<Authorization, 'chainId' | 'nonce'> & {
28
+ /**
29
+ * @deprecated Use `sponsor` instead.
30
+ */
31
+ delegate?: true | Address | Account | undefined
28
32
  /**
29
33
  * Whether the EIP-7702 Transaction will be executed by another Account.
30
34
  *
31
35
  * If not specified, it will be assumed that the EIP-7702 Transaction will
32
36
  * be executed by the Account that signed the Authorization.
33
37
  */
34
- delegate?: true | Address | Account | undefined
38
+ sponsor?: true | Address | Account | undefined
35
39
  }
36
40
 
37
41
  export type PrepareAuthorizationReturnType = Authorization
@@ -95,7 +99,6 @@ export async function prepareAuthorization<
95
99
  contractAddress,
96
100
  chainId,
97
101
  nonce,
98
- delegate: delegate_,
99
102
  } = parameters
100
103
 
101
104
  if (!account_)
@@ -104,9 +107,10 @@ export async function prepareAuthorization<
104
107
  })
105
108
  const account = parseAccount(account_)
106
109
 
107
- const delegate = (() => {
108
- if (typeof delegate_ === 'boolean') return delegate_
109
- if (delegate_) return parseAccount(delegate_)
110
+ const sponsor = (() => {
111
+ const sponsor_ = parameters.sponsor ?? parameters.delegate
112
+ if (typeof sponsor_ === 'boolean') return sponsor_
113
+ if (sponsor_) return parseAccount(sponsor_)
110
114
  return undefined
111
115
  })()
112
116
 
@@ -131,8 +135,8 @@ export async function prepareAuthorization<
131
135
  blockTag: 'pending',
132
136
  })
133
137
  if (
134
- !delegate ||
135
- (delegate !== true && isAddressEqual(account.address, delegate.address))
138
+ !sponsor ||
139
+ (sponsor !== true && isAddressEqual(account.address, sponsor.address))
136
140
  )
137
141
  authorization.nonce += 1
138
142
  }
@@ -15,7 +15,7 @@ import type {
15
15
  } from '../../types/chain.js'
16
16
  import type { UnionEvaluate, UnionOmit } from '../../types/utils.js'
17
17
  import type { FormattedTransactionRequest } from '../../utils/formatters/transactionRequest.js'
18
- import { portalAbi } from '../abis.js'
18
+ import { portal2Abi, portalAbi } from '../abis.js'
19
19
  import type { GetContractAddressParameter } from '../types/contract.js'
20
20
  import type { Withdrawal } from '../types/withdrawal.js'
21
21
 
@@ -42,6 +42,11 @@ export type EstimateFinalizeWithdrawalGasParameters<
42
42
  GetContractAddressParameter<_derivedChain, 'portal'> & {
43
43
  /** Gas limit for transaction execution on the L2. */
44
44
  gas?: bigint | undefined
45
+ /**
46
+ * Finalize against a specific proof submitter.
47
+ * If unspecified, the sending account is the default.
48
+ */
49
+ proofSubmitter?: Address | null | undefined
45
50
  withdrawal: Withdrawal
46
51
  }
47
52
  export type EstimateFinalizeWithdrawalGasReturnType = bigint
@@ -93,6 +98,7 @@ export async function estimateFinalizeWithdrawalGas<
93
98
  maxFeePerGas,
94
99
  maxPriorityFeePerGas,
95
100
  nonce,
101
+ proofSubmitter,
96
102
  targetChain,
97
103
  withdrawal,
98
104
  } = parameters
@@ -103,12 +109,20 @@ export async function estimateFinalizeWithdrawalGas<
103
109
  return Object.values(targetChain!.contracts.portal)[0].address
104
110
  })()
105
111
 
112
+ const [functionName, args, abi] = proofSubmitter
113
+ ? [
114
+ 'finalizeWithdrawalTransactionExternalProof',
115
+ [withdrawal, proofSubmitter],
116
+ portal2Abi,
117
+ ]
118
+ : ['finalizeWithdrawalTransaction', [withdrawal], portalAbi]
119
+
106
120
  const params = {
107
121
  account,
108
- abi: portalAbi,
122
+ abi,
109
123
  address: portalAddress,
110
- functionName: 'finalizeWithdrawalTransaction',
111
- args: [withdrawal],
124
+ functionName,
125
+ args,
112
126
  gas,
113
127
  maxFeePerGas,
114
128
  maxPriorityFeePerGas,
@@ -117,9 +131,7 @@ export async function estimateFinalizeWithdrawalGas<
117
131
  // in `estimateContractGas` or `estimateGas`
118
132
  // @ts-ignore
119
133
  chain,
120
- } satisfies EstimateContractGasParameters<
121
- typeof portalAbi,
122
- 'finalizeWithdrawalTransaction'
123
- >
134
+ } satisfies EstimateContractGasParameters
135
+
124
136
  return estimateContractGas(client, params as any)
125
137
  }
@@ -16,7 +16,7 @@ import type {
16
16
  import type { Hash } from '../../types/misc.js'
17
17
  import type { UnionEvaluate, UnionOmit } from '../../types/utils.js'
18
18
  import type { FormattedTransactionRequest } from '../../utils/formatters/transactionRequest.js'
19
- import { portalAbi } from '../abis.js'
19
+ import { portal2Abi, portalAbi } from '../abis.js'
20
20
  import type { GetContractAddressParameter } from '../types/contract.js'
21
21
  import type { Withdrawal } from '../types/withdrawal.js'
22
22
  import {
@@ -51,6 +51,11 @@ export type FinalizeWithdrawalParameters<
51
51
  * `null` to skip gas estimation & defer calculation to signer.
52
52
  */
53
53
  gas?: bigint | null | undefined
54
+ /**
55
+ * Finalize against a provided proof submitter.
56
+ * If unspecified, the sending account is the default.
57
+ */
58
+ proofSubmitter?: Address | null | undefined
54
59
  withdrawal: Withdrawal
55
60
  }
56
61
  export type FinalizeWithdrawalReturnType = Hash
@@ -98,6 +103,7 @@ export async function finalizeWithdrawal<
98
103
  maxFeePerGas,
99
104
  maxPriorityFeePerGas,
100
105
  nonce,
106
+ proofSubmitter,
101
107
  targetChain,
102
108
  withdrawal,
103
109
  } = parameters
@@ -116,13 +122,21 @@ export async function finalizeWithdrawal<
116
122
  )
117
123
  : undefined
118
124
 
125
+ const [functionName, args, abi] = proofSubmitter
126
+ ? [
127
+ 'finalizeWithdrawalTransactionExternalProof',
128
+ [withdrawal, proofSubmitter],
129
+ portal2Abi,
130
+ ]
131
+ : ['finalizeWithdrawalTransaction', [withdrawal], portalAbi]
132
+
119
133
  return writeContract(client, {
120
134
  account: account!,
121
- abi: portalAbi,
135
+ abi,
122
136
  address: portalAddress,
123
137
  chain,
124
- functionName: 'finalizeWithdrawalTransaction',
125
- args: [withdrawal],
138
+ functionName,
139
+ args,
126
140
  gas: gas_,
127
141
  maxFeePerGas,
128
142
  maxPriorityFeePerGas,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "viem",
3
3
  "description": "TypeScript Interface for Ethereum",
4
- "version": "2.22.4",
4
+ "version": "2.22.6",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
7
7
  "types": "./_types/index.d.ts",