viem 2.12.5 → 2.13.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (283) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/_cjs/accounts/index.js.map +1 -1
  3. package/_cjs/accounts/privateKeyToAccount.js +0 -4
  4. package/_cjs/accounts/privateKeyToAccount.js.map +1 -1
  5. package/_cjs/accounts/toAccount.js +0 -1
  6. package/_cjs/accounts/toAccount.js.map +1 -1
  7. package/_cjs/actions/index.js.map +1 -1
  8. package/_cjs/celo/index.js.map +1 -1
  9. package/_cjs/chains/definitions/redstone.js +23 -0
  10. package/_cjs/chains/definitions/redstone.js.map +1 -0
  11. package/_cjs/chains/definitions/scrollSepolia.js +3 -3
  12. package/_cjs/chains/definitions/scrollSepolia.js.map +1 -1
  13. package/_cjs/chains/definitions/taiko.js +32 -0
  14. package/_cjs/chains/definitions/taiko.js.map +1 -0
  15. package/_cjs/chains/index.js +7 -5
  16. package/_cjs/chains/index.js.map +1 -1
  17. package/_cjs/chains/utils.js.map +1 -1
  18. package/_cjs/ens/index.js.map +1 -1
  19. package/_cjs/errors/version.js +1 -1
  20. package/_cjs/experimental/erc7715/actions/issuePermissions.js +74 -0
  21. package/_cjs/experimental/erc7715/actions/issuePermissions.js.map +1 -0
  22. package/_cjs/experimental/erc7715/decorators/erc7715.js +13 -0
  23. package/_cjs/experimental/erc7715/decorators/erc7715.js.map +1 -0
  24. package/_cjs/experimental/erc7715/types/permission.js +3 -0
  25. package/_cjs/experimental/erc7715/types/permission.js.map +1 -0
  26. package/_cjs/experimental/erc7715/types/signer.js +3 -0
  27. package/_cjs/experimental/erc7715/types/signer.js.map +1 -0
  28. package/_cjs/experimental/index.js +5 -15
  29. package/_cjs/experimental/index.js.map +1 -1
  30. package/_cjs/index.js.map +1 -1
  31. package/_cjs/node/index.js.map +1 -1
  32. package/_cjs/op-stack/chains.js.map +1 -1
  33. package/_cjs/op-stack/index.js.map +1 -1
  34. package/_cjs/siwe/index.js.map +1 -1
  35. package/_cjs/utils/accounts.js.map +1 -1
  36. package/_cjs/utils/hash/toEventHash.js.map +1 -1
  37. package/_cjs/utils/hash/toEventSignature.js.map +1 -1
  38. package/_cjs/utils/hash/toFunctionHash.js.map +1 -1
  39. package/_cjs/utils/hash/toFunctionSignature.js.map +1 -1
  40. package/_cjs/utils/index.js.map +1 -1
  41. package/_cjs/utils/promise/withTimeout.js.map +1 -1
  42. package/_cjs/zksync/chains.js.map +1 -1
  43. package/_cjs/zksync/index.js.map +1 -1
  44. package/_esm/accounts/index.js +1 -0
  45. package/_esm/accounts/index.js.map +1 -1
  46. package/_esm/accounts/privateKeyToAccount.js +0 -4
  47. package/_esm/accounts/privateKeyToAccount.js.map +1 -1
  48. package/_esm/accounts/toAccount.js +0 -1
  49. package/_esm/accounts/toAccount.js.map +1 -1
  50. package/_esm/actions/index.js +1 -0
  51. package/_esm/actions/index.js.map +1 -1
  52. package/_esm/celo/index.js +1 -0
  53. package/_esm/celo/index.js.map +1 -1
  54. package/_esm/chains/definitions/redstone.js +20 -0
  55. package/_esm/chains/definitions/redstone.js.map +1 -0
  56. package/_esm/chains/definitions/scrollSepolia.js +3 -3
  57. package/_esm/chains/definitions/scrollSepolia.js.map +1 -1
  58. package/_esm/chains/definitions/taiko.js +29 -0
  59. package/_esm/chains/definitions/taiko.js.map +1 -0
  60. package/_esm/chains/index.js +3 -1
  61. package/_esm/chains/index.js.map +1 -1
  62. package/_esm/chains/utils.js +1 -0
  63. package/_esm/chains/utils.js.map +1 -1
  64. package/_esm/ens/index.js +1 -0
  65. package/_esm/ens/index.js.map +1 -1
  66. package/_esm/errors/version.js +1 -1
  67. package/_esm/experimental/erc7715/actions/issuePermissions.js +107 -0
  68. package/_esm/experimental/erc7715/actions/issuePermissions.js.map +1 -0
  69. package/_esm/experimental/erc7715/decorators/erc7715.js +26 -0
  70. package/_esm/experimental/erc7715/decorators/erc7715.js.map +1 -0
  71. package/_esm/experimental/erc7715/types/permission.js +2 -0
  72. package/_esm/experimental/erc7715/types/permission.js.map +1 -0
  73. package/_esm/experimental/erc7715/types/signer.js +2 -0
  74. package/_esm/experimental/erc7715/types/signer.js.map +1 -0
  75. package/_esm/experimental/index.js +3 -7
  76. package/_esm/experimental/index.js.map +1 -1
  77. package/_esm/index.js +1 -0
  78. package/_esm/index.js.map +1 -1
  79. package/_esm/node/index.js +1 -0
  80. package/_esm/node/index.js.map +1 -1
  81. package/_esm/op-stack/chains.js +1 -0
  82. package/_esm/op-stack/chains.js.map +1 -1
  83. package/_esm/op-stack/index.js +2 -0
  84. package/_esm/op-stack/index.js.map +1 -1
  85. package/_esm/siwe/index.js +1 -0
  86. package/_esm/siwe/index.js.map +1 -1
  87. package/_esm/utils/accounts.js +1 -0
  88. package/_esm/utils/accounts.js.map +1 -1
  89. package/_esm/utils/hash/toEventHash.js +1 -0
  90. package/_esm/utils/hash/toEventHash.js.map +1 -1
  91. package/_esm/utils/hash/toEventSignature.js +1 -0
  92. package/_esm/utils/hash/toEventSignature.js.map +1 -1
  93. package/_esm/utils/hash/toFunctionHash.js +1 -0
  94. package/_esm/utils/hash/toFunctionHash.js.map +1 -1
  95. package/_esm/utils/hash/toFunctionSignature.js +1 -0
  96. package/_esm/utils/hash/toFunctionSignature.js.map +1 -1
  97. package/_esm/utils/index.js +1 -0
  98. package/_esm/utils/index.js.map +1 -1
  99. package/_esm/utils/promise/withTimeout.js.map +1 -1
  100. package/_esm/zksync/chains.js +1 -0
  101. package/_esm/zksync/chains.js.map +1 -1
  102. package/_esm/zksync/index.js +1 -0
  103. package/_esm/zksync/index.js.map +1 -1
  104. package/_types/accounts/index.d.ts.map +1 -1
  105. package/_types/accounts/privateKeyToAccount.d.ts.map +1 -1
  106. package/_types/accounts/toAccount.d.ts.map +1 -1
  107. package/_types/accounts/types.d.ts +2 -4
  108. package/_types/accounts/types.d.ts.map +1 -1
  109. package/_types/actions/index.d.ts.map +1 -1
  110. package/_types/celo/chainConfig.d.ts +76 -76
  111. package/_types/celo/formatters.d.ts +38 -38
  112. package/_types/celo/index.d.ts.map +1 -1
  113. package/_types/chains/definitions/ancient8.d.ts +30 -30
  114. package/_types/chains/definitions/ancient8Sepolia.d.ts +30 -30
  115. package/_types/chains/definitions/base.d.ts +30 -30
  116. package/_types/chains/definitions/baseGoerli.d.ts +30 -30
  117. package/_types/chains/definitions/baseSepolia.d.ts +30 -30
  118. package/_types/chains/definitions/celo.d.ts +76 -76
  119. package/_types/chains/definitions/celoAlfajores.d.ts +76 -76
  120. package/_types/chains/definitions/fraxtal.d.ts +30 -30
  121. package/_types/chains/definitions/fraxtalTestnet.d.ts +30 -30
  122. package/_types/chains/definitions/funkiSepolia.d.ts +30 -30
  123. package/_types/chains/definitions/liskSepolia.d.ts +30 -30
  124. package/_types/chains/definitions/metalL2.d.ts +30 -30
  125. package/_types/chains/definitions/optimism.d.ts +30 -30
  126. package/_types/chains/definitions/optimismGoerli.d.ts +30 -30
  127. package/_types/chains/definitions/optimismSepolia.d.ts +30 -30
  128. package/_types/chains/definitions/pgn.d.ts +30 -30
  129. package/_types/chains/definitions/pgnTestnet.d.ts +30 -30
  130. package/_types/chains/definitions/{scrollTestnet.d.ts → redstone.d.ts} +10 -11
  131. package/_types/chains/definitions/redstone.d.ts.map +1 -0
  132. package/_types/chains/definitions/rss3.d.ts +30 -30
  133. package/_types/chains/definitions/rss3Sepolia.d.ts +30 -30
  134. package/_types/chains/definitions/scrollSepolia.d.ts +3 -3
  135. package/_types/chains/definitions/taiko.d.ts +34 -0
  136. package/_types/chains/definitions/taiko.d.ts.map +1 -0
  137. package/_types/chains/definitions/zora.d.ts +30 -30
  138. package/_types/chains/definitions/zoraSepolia.d.ts +30 -30
  139. package/_types/chains/definitions/zoraTestnet.d.ts +30 -30
  140. package/_types/chains/index.d.ts +2 -1
  141. package/_types/chains/index.d.ts.map +1 -1
  142. package/_types/chains/utils.d.ts.map +1 -1
  143. package/_types/ens/index.d.ts.map +1 -1
  144. package/_types/errors/version.d.ts +1 -1
  145. package/_types/experimental/erc7715/actions/issuePermissions.d.ts +73 -0
  146. package/_types/experimental/erc7715/actions/issuePermissions.d.ts.map +1 -0
  147. package/_types/experimental/erc7715/decorators/erc7715.d.ts +61 -0
  148. package/_types/experimental/erc7715/decorators/erc7715.d.ts.map +1 -0
  149. package/_types/experimental/erc7715/types/permission.d.ts +36 -0
  150. package/_types/experimental/erc7715/types/permission.d.ts.map +1 -0
  151. package/_types/experimental/erc7715/types/signer.d.ts +22 -0
  152. package/_types/experimental/erc7715/types/signer.d.ts.map +1 -0
  153. package/_types/experimental/index.d.ts +2 -7
  154. package/_types/experimental/index.d.ts.map +1 -1
  155. package/_types/index.d.ts +1 -1
  156. package/_types/index.d.ts.map +1 -1
  157. package/_types/node/index.d.ts.map +1 -1
  158. package/_types/op-stack/chainConfig.d.ts +30 -30
  159. package/_types/op-stack/chains.d.ts.map +1 -1
  160. package/_types/op-stack/formatters.d.ts +30 -30
  161. package/_types/op-stack/index.d.ts.map +1 -1
  162. package/_types/siwe/index.d.ts.map +1 -1
  163. package/_types/types/eip1193.d.ts +38 -0
  164. package/_types/types/eip1193.d.ts.map +1 -1
  165. package/_types/utils/accounts.d.ts.map +1 -1
  166. package/_types/utils/formatters/transaction.d.ts +1 -1
  167. package/_types/utils/hash/toEventHash.d.ts.map +1 -1
  168. package/_types/utils/hash/toEventSignature.d.ts.map +1 -1
  169. package/_types/utils/hash/toFunctionHash.d.ts.map +1 -1
  170. package/_types/utils/hash/toFunctionSignature.d.ts.map +1 -1
  171. package/_types/utils/index.d.ts.map +1 -1
  172. package/_types/zksync/chains.d.ts.map +1 -1
  173. package/_types/zksync/index.d.ts.map +1 -1
  174. package/accounts/index.ts +2 -0
  175. package/accounts/privateKeyToAccount.ts +0 -4
  176. package/accounts/toAccount.ts +0 -1
  177. package/accounts/types.ts +2 -9
  178. package/actions/index.ts +1 -0
  179. package/celo/index.ts +1 -0
  180. package/chains/definitions/redstone.ts +20 -0
  181. package/chains/definitions/scrollSepolia.ts +3 -3
  182. package/chains/definitions/taiko.ts +29 -0
  183. package/chains/index.ts +3 -1
  184. package/chains/utils.ts +1 -0
  185. package/ens/index.ts +1 -0
  186. package/errors/version.ts +1 -1
  187. package/experimental/erc7715/actions/issuePermissions.ts +161 -0
  188. package/experimental/erc7715/decorators/erc7715.ts +80 -0
  189. package/experimental/erc7715/types/permission.ts +46 -0
  190. package/experimental/erc7715/types/signer.ts +25 -0
  191. package/experimental/index.ts +11 -44
  192. package/index.ts +3 -0
  193. package/node/index.ts +1 -0
  194. package/op-stack/chains.ts +1 -0
  195. package/op-stack/index.ts +2 -0
  196. package/package.json +1 -1
  197. package/siwe/index.ts +1 -0
  198. package/types/eip1193.ts +44 -0
  199. package/utils/accounts.ts +2 -0
  200. package/utils/hash/toEventHash.ts +1 -0
  201. package/utils/hash/toEventSignature.ts +1 -0
  202. package/utils/hash/toFunctionHash.ts +1 -0
  203. package/utils/hash/toFunctionSignature.ts +1 -0
  204. package/utils/index.ts +1 -0
  205. package/utils/promise/withTimeout.ts +1 -1
  206. package/zksync/chains.ts +1 -0
  207. package/zksync/index.ts +1 -0
  208. package/_cjs/chains/definitions/scrollTestnet.js +0 -24
  209. package/_cjs/chains/definitions/scrollTestnet.js.map +0 -1
  210. package/_cjs/experimental/eip3074/actions/signAuthMessage.js +0 -29
  211. package/_cjs/experimental/eip3074/actions/signAuthMessage.js.map +0 -1
  212. package/_cjs/experimental/eip3074/constants/abis.js +0 -123
  213. package/_cjs/experimental/eip3074/constants/abis.js.map +0 -1
  214. package/_cjs/experimental/eip3074/decorators/eip3074.js +0 -13
  215. package/_cjs/experimental/eip3074/decorators/eip3074.js.map +0 -1
  216. package/_cjs/experimental/eip3074/invokers/coders/batchInvokerCoder.js +0 -26
  217. package/_cjs/experimental/eip3074/invokers/coders/batchInvokerCoder.js.map +0 -1
  218. package/_cjs/experimental/eip3074/invokers/coders/defineInvokerCoder.js +0 -8
  219. package/_cjs/experimental/eip3074/invokers/coders/defineInvokerCoder.js.map +0 -1
  220. package/_cjs/experimental/eip3074/invokers/getInvoker.js +0 -64
  221. package/_cjs/experimental/eip3074/invokers/getInvoker.js.map +0 -1
  222. package/_cjs/experimental/eip3074/utils/recoverAuthMessageAddress.js +0 -12
  223. package/_cjs/experimental/eip3074/utils/recoverAuthMessageAddress.js.map +0 -1
  224. package/_cjs/experimental/eip3074/utils/signAuthMessage.js +0 -17
  225. package/_cjs/experimental/eip3074/utils/signAuthMessage.js.map +0 -1
  226. package/_cjs/experimental/eip3074/utils/toAuthMessage.js +0 -17
  227. package/_cjs/experimental/eip3074/utils/toAuthMessage.js.map +0 -1
  228. package/_cjs/experimental/eip3074/utils/verifyAuthMessage.js +0 -11
  229. package/_cjs/experimental/eip3074/utils/verifyAuthMessage.js.map +0 -1
  230. package/_esm/chains/definitions/scrollTestnet.js +0 -21
  231. package/_esm/chains/definitions/scrollTestnet.js.map +0 -1
  232. package/_esm/experimental/eip3074/actions/signAuthMessage.js +0 -78
  233. package/_esm/experimental/eip3074/actions/signAuthMessage.js.map +0 -1
  234. package/_esm/experimental/eip3074/constants/abis.js +0 -120
  235. package/_esm/experimental/eip3074/constants/abis.js.map +0 -1
  236. package/_esm/experimental/eip3074/decorators/eip3074.js +0 -26
  237. package/_esm/experimental/eip3074/decorators/eip3074.js.map +0 -1
  238. package/_esm/experimental/eip3074/invokers/coders/batchInvokerCoder.js +0 -22
  239. package/_esm/experimental/eip3074/invokers/coders/batchInvokerCoder.js.map +0 -1
  240. package/_esm/experimental/eip3074/invokers/coders/defineInvokerCoder.js +0 -4
  241. package/_esm/experimental/eip3074/invokers/coders/defineInvokerCoder.js.map +0 -1
  242. package/_esm/experimental/eip3074/invokers/getInvoker.js +0 -60
  243. package/_esm/experimental/eip3074/invokers/getInvoker.js.map +0 -1
  244. package/_esm/experimental/eip3074/utils/recoverAuthMessageAddress.js +0 -8
  245. package/_esm/experimental/eip3074/utils/recoverAuthMessageAddress.js.map +0 -1
  246. package/_esm/experimental/eip3074/utils/signAuthMessage.js +0 -16
  247. package/_esm/experimental/eip3074/utils/signAuthMessage.js.map +0 -1
  248. package/_esm/experimental/eip3074/utils/toAuthMessage.js +0 -16
  249. package/_esm/experimental/eip3074/utils/toAuthMessage.js.map +0 -1
  250. package/_esm/experimental/eip3074/utils/verifyAuthMessage.js +0 -13
  251. package/_esm/experimental/eip3074/utils/verifyAuthMessage.js.map +0 -1
  252. package/_types/chains/definitions/scrollTestnet.d.ts.map +0 -1
  253. package/_types/experimental/eip3074/actions/signAuthMessage.d.ts +0 -82
  254. package/_types/experimental/eip3074/actions/signAuthMessage.d.ts.map +0 -1
  255. package/_types/experimental/eip3074/constants/abis.d.ts +0 -91
  256. package/_types/experimental/eip3074/constants/abis.d.ts.map +0 -1
  257. package/_types/experimental/eip3074/decorators/eip3074.d.ts +0 -27
  258. package/_types/experimental/eip3074/decorators/eip3074.d.ts.map +0 -1
  259. package/_types/experimental/eip3074/invokers/coders/batchInvokerCoder.d.ts +0 -11
  260. package/_types/experimental/eip3074/invokers/coders/batchInvokerCoder.d.ts.map +0 -1
  261. package/_types/experimental/eip3074/invokers/coders/defineInvokerCoder.d.ts +0 -14
  262. package/_types/experimental/eip3074/invokers/coders/defineInvokerCoder.d.ts.map +0 -1
  263. package/_types/experimental/eip3074/invokers/getInvoker.d.ts +0 -48
  264. package/_types/experimental/eip3074/invokers/getInvoker.d.ts.map +0 -1
  265. package/_types/experimental/eip3074/utils/recoverAuthMessageAddress.d.ts +0 -12
  266. package/_types/experimental/eip3074/utils/recoverAuthMessageAddress.d.ts.map +0 -1
  267. package/_types/experimental/eip3074/utils/signAuthMessage.d.ts +0 -16
  268. package/_types/experimental/eip3074/utils/signAuthMessage.d.ts.map +0 -1
  269. package/_types/experimental/eip3074/utils/toAuthMessage.d.ts +0 -20
  270. package/_types/experimental/eip3074/utils/toAuthMessage.d.ts.map +0 -1
  271. package/_types/experimental/eip3074/utils/verifyAuthMessage.d.ts +0 -19
  272. package/_types/experimental/eip3074/utils/verifyAuthMessage.d.ts.map +0 -1
  273. package/chains/definitions/scrollTestnet.ts +0 -21
  274. package/experimental/eip3074/actions/signAuthMessage.ts +0 -151
  275. package/experimental/eip3074/constants/abis.ts +0 -119
  276. package/experimental/eip3074/decorators/eip3074.ts +0 -58
  277. package/experimental/eip3074/invokers/coders/batchInvokerCoder.ts +0 -46
  278. package/experimental/eip3074/invokers/coders/defineInvokerCoder.ts +0 -20
  279. package/experimental/eip3074/invokers/getInvoker.ts +0 -192
  280. package/experimental/eip3074/utils/recoverAuthMessageAddress.ts +0 -29
  281. package/experimental/eip3074/utils/signAuthMessage.ts +0 -40
  282. package/experimental/eip3074/utils/toAuthMessage.ts +0 -50
  283. package/experimental/eip3074/utils/verifyAuthMessage.ts +0 -46
@@ -0,0 +1,80 @@
1
+ import type { Client } from '../../../clients/createClient.js'
2
+ import type { Transport } from '../../../clients/transports/createTransport.js'
3
+ import type { Account } from '../../../types/account.js'
4
+ import type { Chain } from '../../../types/chain.js'
5
+ import {
6
+ type IssuePermissionsParameters,
7
+ type IssuePermissionsReturnType,
8
+ issuePermissions,
9
+ } from '../actions/issuePermissions.js'
10
+
11
+ export type WalletActionsErc7715 = {
12
+ /**
13
+ * Request permissions from a wallet to perform actions on behalf of a user.
14
+ *
15
+ * - Docs: https://viem.sh/experimental/erc7715/issuePermissions
16
+ *
17
+ * @example
18
+ * import { createWalletClient, custom } from 'viem'
19
+ * import { mainnet } from 'viem/chains'
20
+ * import { walletActionsErc7715 } from 'viem/experimental'
21
+ *
22
+ * const client = createWalletClient({
23
+ * chain: mainnet,
24
+ * transport: custom(window.ethereum),
25
+ * }).extend(walletActionsErc7715())
26
+ *
27
+ * const result = await client.issuePermissions({
28
+ * expiry: 1716846083638,
29
+ * permissions: [
30
+ * {
31
+ * type: 'contract-call',
32
+ * data: {
33
+ * address: '0x0000000000000000000000000000000000000000',
34
+ * },
35
+ * },
36
+ * {
37
+ * type: 'native-token-limit',
38
+ * data: {
39
+ * amount: 69420n,
40
+ * },
41
+ * required: true,
42
+ * },
43
+ * ],
44
+ * })
45
+ */
46
+ issuePermissions: (
47
+ parameters: IssuePermissionsParameters,
48
+ ) => Promise<IssuePermissionsReturnType>
49
+ }
50
+
51
+ /**
52
+ * A suite of ERC-7715 Wallet Actions.
53
+ *
54
+ * - Docs: https://viem.sh/experimental
55
+ *
56
+ * @example
57
+ * import { createPublicClient, createWalletClient, http } from 'viem'
58
+ * import { mainnet } from 'viem/chains'
59
+ * import { walletActionsErc7715 } from 'viem/experimental'
60
+ *
61
+ * const walletClient = createWalletClient({
62
+ * chain: mainnet,
63
+ * transport: http(),
64
+ * }).extend(walletActionsErc7715())
65
+ *
66
+ * const result = await walletClient.issuePermissions({...})
67
+ */
68
+ export function walletActionsErc7715() {
69
+ return <
70
+ transport extends Transport,
71
+ chain extends Chain | undefined = Chain | undefined,
72
+ account extends Account | undefined = Account | undefined,
73
+ >(
74
+ client: Client<transport, chain, account>,
75
+ ): WalletActionsErc7715 => {
76
+ return {
77
+ issuePermissions: (parameters) => issuePermissions(client, parameters),
78
+ }
79
+ }
80
+ }
@@ -0,0 +1,46 @@
1
+ import type { Address } from 'abitype'
2
+
3
+ import type { OneOf } from '../../../types/utils.js'
4
+
5
+ export type NativeTokenLimitPermission<amount = bigint> = {
6
+ type: 'native-token-limit'
7
+ data: {
8
+ amount: amount
9
+ }
10
+ }
11
+
12
+ export type Erc20LimitPermission<amount = bigint> = {
13
+ type: 'erc20-limit'
14
+ data: {
15
+ erc20Address: Address
16
+ amount: amount
17
+ }
18
+ }
19
+
20
+ export type GasLimitPermission<amount = bigint> = {
21
+ type: 'gas-limit'
22
+ data: {
23
+ amount: amount
24
+ }
25
+ }
26
+
27
+ export type ContractCallPermission = {
28
+ type: 'contract-call'
29
+ data: unknown
30
+ }
31
+
32
+ export type RateLimitPermission = {
33
+ type: 'rate-limit'
34
+ data: {
35
+ count: number
36
+ interval: number
37
+ }
38
+ }
39
+
40
+ export type Permission<amount = bigint> = OneOf<
41
+ | NativeTokenLimitPermission<amount>
42
+ | Erc20LimitPermission<amount>
43
+ | GasLimitPermission<amount>
44
+ | ContractCallPermission
45
+ | RateLimitPermission
46
+ > & { required?: boolean | undefined }
@@ -0,0 +1,25 @@
1
+ import type { Address } from 'abitype'
2
+ import type { OneOf } from '../../../types/utils.js'
3
+
4
+ export type AccountSigner = {
5
+ type: 'account'
6
+ data: {
7
+ id: Address
8
+ }
9
+ }
10
+
11
+ export type KeySigner = {
12
+ type: 'key'
13
+ data: {
14
+ id: string
15
+ }
16
+ }
17
+
18
+ export type MultiKeySigner = {
19
+ type: 'keys'
20
+ data: {
21
+ ids: string[]
22
+ }
23
+ }
24
+
25
+ export type Signer = OneOf<AccountSigner | KeySigner | MultiKeySigner>
@@ -1,47 +1,4 @@
1
- export {
2
- type SignAuthMessageErrorType,
3
- type SignAuthMessageParameters,
4
- type SignAuthMessageReturnType,
5
- signAuthMessage,
6
- } from './eip3074/actions/signAuthMessage.js'
7
- export {
8
- type RecoverAuthMessageAddressParameters,
9
- type RecoverAuthMessageAddressReturnType,
10
- type RecoverAuthMessageAddressErrorType,
11
- recoverAuthMessageAddress,
12
- } from './eip3074/utils/recoverAuthMessageAddress.js'
13
- export {
14
- type VerifyAuthMessageParameters,
15
- type VerifyAuthMessageReturnType,
16
- type VerifyAuthMessageErrorType,
17
- verifyAuthMessage,
18
- } from './eip3074/utils/verifyAuthMessage.js'
19
- export {
20
- type WalletActionsEip3074,
21
- walletActionsEip3074,
22
- } from './eip3074/decorators/eip3074.js'
23
- export {
24
- type GetInvokerErrorType,
25
- type GetInvokerParameters,
26
- type Invoker,
27
- type InvokerArgs,
28
- type InvokerExecuteErrorType,
29
- type InvokerExecuteParameters,
30
- type InvokerSignErrorType,
31
- type InvokerSignParameters,
32
- getInvoker,
33
- } from './eip3074/invokers/getInvoker.js'
34
- export {
35
- type BatchInvokerArgs,
36
- batchInvokerCoder,
37
- } from './eip3074/invokers/coders/batchInvokerCoder.js'
38
- export {
39
- type DefineInvokerCoderParameters,
40
- type DefineInvokerCoderReturnType,
41
- type InvokerCoder,
42
- defineInvokerCoder,
43
- } from './eip3074/invokers/coders/defineInvokerCoder.js'
44
-
1
+ // biome-ignore lint/performance/noBarrelFile: entrypoint module
45
2
  export {
46
3
  type GetCapabilitiesParameters,
47
4
  type GetCapabilitiesErrorType,
@@ -95,3 +52,13 @@ export {
95
52
  type SerializeErc6492SignatureReturnType,
96
53
  serializeErc6492Signature,
97
54
  } from './erc6492/serializeErc6492Signature.js'
55
+
56
+ export {
57
+ type IssuePermissionsParameters,
58
+ type IssuePermissionsReturnType,
59
+ issuePermissions,
60
+ } from './erc7715/actions/issuePermissions.js'
61
+ export {
62
+ type WalletActionsErc7715,
63
+ walletActionsErc7715,
64
+ } from './erc7715/decorators/erc7715.js'
package/index.ts CHANGED
@@ -1,3 +1,4 @@
1
+ // biome-ignore lint/performance/noBarrelFile: entrypoint module
1
2
  export {
2
3
  type Abi,
3
4
  type AbiFunction,
@@ -1005,6 +1006,8 @@ export type {
1005
1006
  WalletCapabilitiesRecord,
1006
1007
  WalletCallReceipt,
1007
1008
  WalletGetCallsStatusReturnType,
1009
+ WalletIssuePermissionsParameters,
1010
+ WalletIssuePermissionsReturnType,
1008
1011
  WalletSendCallsParameters,
1009
1012
  WalletPermissionCaveat,
1010
1013
  WalletPermission,
package/node/index.ts CHANGED
@@ -1,3 +1,4 @@
1
+ // biome-ignore lint/performance/noBarrelFile: entrypoint module
1
2
  export {
2
3
  type IpcTransport,
3
4
  type IpcTransportConfig,
@@ -1,3 +1,4 @@
1
+ // biome-ignore lint/performance/noBarrelFile: entrypoint module
1
2
  export { ancient8 } from '../chains/definitions/ancient8.js'
2
3
  export { ancient8Sepolia } from '../chains/definitions/ancient8Sepolia.js'
3
4
  export { base } from '../chains/definitions/base.js'
package/op-stack/index.ts CHANGED
@@ -1,3 +1,4 @@
1
+ // biome-ignore lint/performance/noBarrelFile: entrypoint module
1
2
  export {
2
3
  buildDepositTransaction,
3
4
  type BuildDepositTransactionErrorType,
@@ -175,6 +176,7 @@ export {
175
176
 
176
177
  export { chainConfig } from './chainConfig.js'
177
178
 
179
+ // biome-ignore lint/performance/noReExportAll: intentionally re-exporting
178
180
  export * from './chains.js'
179
181
 
180
182
  export {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "viem",
3
3
  "description": "TypeScript Interface for Ethereum",
4
- "version": "2.12.5",
4
+ "version": "2.13.1",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
7
7
  "types": "./_types/index.d.ts",
package/siwe/index.ts CHANGED
@@ -1,3 +1,4 @@
1
+ // biome-ignore lint/performance/noBarrelFile: entrypoint module
1
2
  export {
2
3
  verifySiweMessage,
3
4
  type VerifySiweMessageParameters,
package/types/eip1193.ts CHANGED
@@ -131,6 +131,38 @@ export type WalletCallReceipt<quantity = Hex, status = Hex> = {
131
131
  transactionHash: Hex
132
132
  }
133
133
 
134
+ export type WalletIssuePermissionsParameters = {
135
+ signer?:
136
+ | {
137
+ type: string
138
+ data: unknown
139
+ }
140
+ | undefined
141
+ permissions: readonly {
142
+ type: string
143
+ data: unknown
144
+ required: boolean
145
+ }[]
146
+ expiry: number
147
+ }
148
+
149
+ export type WalletIssuePermissionsReturnType = {
150
+ expiry: number
151
+ factory?: `0x${string}` | undefined
152
+ factoryData?: string | undefined
153
+ grantedPermissions: readonly {
154
+ type: string
155
+ data: any
156
+ }[]
157
+ permissionsContext: string
158
+ signerData?:
159
+ | {
160
+ userOpBuilder?: `0x${string}` | undefined
161
+ submitToAddress?: `0x${string}` | undefined
162
+ }
163
+ | undefined
164
+ }
165
+
134
166
  export type WalletGetCallsStatusReturnType<quantity = Hex, status = Hex> = {
135
167
  status: 'PENDING' | 'CONFIRMED'
136
168
  receipts?: WalletCallReceipt<quantity, status>[] | undefined
@@ -1368,6 +1400,18 @@ export type WalletRpcSchema = [
1368
1400
  Parameters?: undefined
1369
1401
  ReturnType: WalletPermission[]
1370
1402
  },
1403
+ /**
1404
+ * @description Requests permissions from a wallet
1405
+ * @link https://eips.ethereum.org/EIPS/eip-7715
1406
+ * @example
1407
+ * provider.request({ method: 'wallet_issuePermissions', params: [{ ... }] })
1408
+ * // => { ... }
1409
+ */
1410
+ {
1411
+ Method: 'wallet_issuePermissions'
1412
+ Parameters?: [WalletIssuePermissionsParameters]
1413
+ ReturnType: Prettify<WalletIssuePermissionsReturnType>
1414
+ },
1371
1415
  /**
1372
1416
  * @description Requests the given permissions from the user.
1373
1417
  * @link https://eips.ethereum.org/EIPS/eip-2255
package/utils/accounts.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  // Tree-shaking doesn't work well when we import from an index entrypoint. We don't
2
2
  // want to bundle libs like `@noble/curves`, etc within the `/accounts` entrypoint
3
3
  // as that will dramatically increase bundle size. So we export the modules directly.
4
+
5
+ // biome-ignore lint/performance/noBarrelFile: entrypoint module
4
6
  export { parseAccount } from '../accounts/utils/parseAccount.js'
5
7
  export { publicKeyToAddress } from '../accounts/utils/publicKeyToAddress.js'
@@ -1,3 +1,4 @@
1
+ // biome-ignore lint/performance/noBarrelFile: intentional
1
2
  export {
2
3
  type ToSignatureHashErrorType as ToEventHashErrorType,
3
4
  toSignatureHash as toEventHash,
@@ -1,3 +1,4 @@
1
+ // biome-ignore lint/performance/noBarrelFile: intentional
1
2
  export {
2
3
  type ToSignatureErrorType as ToEventSignatureErrorType,
3
4
  toSignature as toEventSignature,
@@ -1,3 +1,4 @@
1
+ // biome-ignore lint/performance/noBarrelFile: intentional
1
2
  export {
2
3
  type ToSignatureHashErrorType as ToFunctionHashErrorType,
3
4
  toSignatureHash as toFunctionHash,
@@ -1,3 +1,4 @@
1
+ // biome-ignore lint/performance/noBarrelFile: intentional
1
2
  export {
2
3
  type ToSignatureErrorType as ToFunctionSignatureErrorType,
3
4
  toSignature as toFunctionSignature,
package/utils/index.ts CHANGED
@@ -1,3 +1,4 @@
1
+ // biome-ignore lint/performance/noBarrelFile: entrypoint module
1
2
  export {
2
3
  type RequestErrorType,
3
4
  buildRequest,
@@ -21,7 +21,7 @@ export function withTimeout<TData>(
21
21
  ): Promise<TData> {
22
22
  return new Promise((resolve, reject) => {
23
23
  ;(async () => {
24
- let timeoutId!: NodeJS.Timeout
24
+ let timeoutId!: Timer
25
25
  try {
26
26
  const controller = new AbortController()
27
27
  if (timeout > 0) {
package/zksync/chains.ts CHANGED
@@ -1,3 +1,4 @@
1
+ // biome-ignore lint/performance/noBarrelFile: entrypoint module
1
2
  export { zkSync } from '../chains/definitions/zkSync.js'
2
3
  export { zkSyncTestnet } from '../chains/definitions/zkSyncTestnet.js'
3
4
  export { zkSyncSepoliaTestnet } from '../chains/definitions/zkSyncSepoliaTestnet.js'
package/zksync/index.ts CHANGED
@@ -1,3 +1,4 @@
1
+ // biome-ignore lint/performance/noBarrelFile: entrypoint module
1
2
  export {
2
3
  type DeployContractErrorType,
3
4
  type DeployContractParameters,
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.scrollTestnet = void 0;
4
- const defineChain_js_1 = require("../../utils/chain/defineChain.js");
5
- exports.scrollTestnet = (0, defineChain_js_1.defineChain)({
6
- id: 534_353,
7
- name: 'Scroll Testnet',
8
- nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
9
- rpcUrls: {
10
- default: {
11
- http: ['https://alpha-rpc.scroll.io/l2'],
12
- webSocket: ['wss://alpha-rpc.scroll.io/l2/ws'],
13
- },
14
- },
15
- blockExplorers: {
16
- default: {
17
- name: 'Blockscout',
18
- url: 'https://blockscout.scroll.io',
19
- apiUrl: 'https://blockscout.scroll.io/api',
20
- },
21
- },
22
- testnet: true,
23
- });
24
- //# sourceMappingURL=scrollTestnet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scrollTestnet.js","sourceRoot":"","sources":["../../../chains/definitions/scrollTestnet.ts"],"names":[],"mappings":";;;AAAA,qEAA8D;AAEjD,QAAA,aAAa,GAAiB,IAAA,4BAAW,EAAC;IACrD,EAAE,EAAE,OAAO;IACX,IAAI,EAAE,gBAAgB;IACtB,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC9D,OAAO,EAAE;QACP,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,gCAAgC,CAAC;YACxC,SAAS,EAAE,CAAC,iCAAiC,CAAC;SAC/C;KACF;IACD,cAAc,EAAE;QACd,OAAO,EAAE;YACP,IAAI,EAAE,YAAY;YAClB,GAAG,EAAE,8BAA8B;YACnC,MAAM,EAAE,kCAAkC;SAC3C;KACF;IACD,OAAO,EAAE,IAAI;CACd,CAAC,CAAA"}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.signAuthMessage = void 0;
4
- const getTransactionCount_js_1 = require("../../../actions/public/getTransactionCount.js");
5
- const account_js_1 = require("../../../errors/account.js");
6
- const getAction_js_1 = require("../../../utils/getAction.js");
7
- async function signAuthMessage(client, parameters) {
8
- const { account = client.account, chain = client.chain, commit, invokerAddress, } = parameters;
9
- if (!account)
10
- throw new account_js_1.AccountNotFoundError({
11
- docsPath: '/experimental/eip5792/signAuthMessage',
12
- });
13
- const nonce = await (() => {
14
- if (typeof parameters.nonce === 'number')
15
- return parameters.nonce;
16
- return (0, getAction_js_1.getAction)(client, getTransactionCount_js_1.getTransactionCount, 'getTransactionCount')({
17
- address: account.address,
18
- blockTag: 'pending',
19
- });
20
- })();
21
- return account.experimental_signAuthMessage({
22
- chainId: chain.id,
23
- commit,
24
- invokerAddress,
25
- nonce,
26
- });
27
- }
28
- exports.signAuthMessage = signAuthMessage;
29
- //# sourceMappingURL=signAuthMessage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signAuthMessage.js","sourceRoot":"","sources":["../../../../experimental/eip3074/actions/signAuthMessage.ts"],"names":[],"mappings":";;;AACA,2FAAoF;AAGpF,2DAAiE;AAUjE,8DAAuD;AA4FhD,KAAK,UAAU,eAAe,CAMnC,MAAyC,EACzC,UAKC;IAED,MAAM,EACJ,OAAO,GAAG,MAAM,CAAC,OAAO,EACxB,KAAK,GAAG,MAAM,CAAC,KAAK,EACpB,MAAM,EACN,cAAc,GACf,GAAG,UAAU,CAAA;IAEd,IAAI,CAAC,OAAO;QACV,MAAM,IAAI,iCAAoB,CAAC;YAC7B,QAAQ,EAAE,uCAAuC;SAClD,CAAC,CAAA;IAEJ,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,EAAE;QACxB,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO,UAAU,CAAC,KAAK,CAAA;QACjE,OAAO,IAAA,wBAAS,EACd,MAAM,EACN,4CAAmB,EACnB,qBAAqB,CACtB,CAAC;YACA,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAA;IACJ,CAAC,CAAC,EAAE,CAAA;IAEJ,OAAO,OAAO,CAAC,4BAA6B,CAAC;QAC3C,OAAO,EAAE,KAAM,CAAC,EAAE;QAClB,MAAM;QACN,cAAc;QACd,KAAK;KACN,CAAC,CAAA;AACJ,CAAC;AA5CD,0CA4CC"}
@@ -1,123 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.invokerAbi = void 0;
4
- exports.invokerAbi = [
5
- {
6
- type: 'function',
7
- name: 'execute',
8
- inputs: [
9
- {
10
- name: 'execData',
11
- type: 'bytes',
12
- internalType: 'bytes',
13
- },
14
- {
15
- name: 'signature',
16
- type: 'tuple',
17
- internalType: 'struct Auth.Signature',
18
- components: [
19
- {
20
- name: 'signer',
21
- type: 'address',
22
- internalType: 'address',
23
- },
24
- {
25
- name: 'yParity',
26
- type: 'uint8',
27
- internalType: 'uint8',
28
- },
29
- {
30
- name: 'r',
31
- type: 'bytes32',
32
- internalType: 'bytes32',
33
- },
34
- {
35
- name: 's',
36
- type: 'bytes32',
37
- internalType: 'bytes32',
38
- },
39
- ],
40
- },
41
- ],
42
- outputs: [],
43
- stateMutability: 'nonpayable',
44
- },
45
- {
46
- type: 'function',
47
- name: 'getDigest',
48
- inputs: [
49
- {
50
- name: 'execData',
51
- type: 'bytes',
52
- internalType: 'bytes',
53
- },
54
- {
55
- name: 'nonce',
56
- type: 'uint256',
57
- internalType: 'uint256',
58
- },
59
- ],
60
- outputs: [
61
- {
62
- name: 'digest',
63
- type: 'bytes32',
64
- internalType: 'bytes32',
65
- },
66
- ],
67
- stateMutability: 'view',
68
- },
69
- {
70
- type: 'function',
71
- name: 'multiSend',
72
- inputs: [
73
- {
74
- name: 'transactions',
75
- type: 'bytes',
76
- internalType: 'bytes',
77
- },
78
- ],
79
- outputs: [],
80
- stateMutability: 'payable',
81
- },
82
- {
83
- type: 'function',
84
- name: 'nextNonce',
85
- inputs: [
86
- {
87
- name: '',
88
- type: 'address',
89
- internalType: 'address',
90
- },
91
- ],
92
- outputs: [
93
- {
94
- name: '',
95
- type: 'uint256',
96
- internalType: 'uint256',
97
- },
98
- ],
99
- stateMutability: 'view',
100
- },
101
- {
102
- type: 'error',
103
- name: 'BadAuth',
104
- inputs: [],
105
- },
106
- {
107
- type: 'error',
108
- name: 'InvalidNonce',
109
- inputs: [
110
- {
111
- name: 'authority',
112
- type: 'address',
113
- internalType: 'address',
114
- },
115
- {
116
- name: 'attempted',
117
- type: 'uint256',
118
- internalType: 'uint256',
119
- },
120
- ],
121
- },
122
- ];
123
- //# sourceMappingURL=abis.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"abis.js","sourceRoot":"","sources":["../../../../experimental/eip3074/constants/abis.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG;IACxB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,OAAO;aACtB;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,uBAAuB;gBACrC,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,SAAS;wBACf,YAAY,EAAE,SAAS;qBACxB;oBACD;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,OAAO;wBACb,YAAY,EAAE,OAAO;qBACtB;oBACD;wBACE,IAAI,EAAE,GAAG;wBACT,IAAI,EAAE,SAAS;wBACf,YAAY,EAAE,SAAS;qBACxB;oBACD;wBACE,IAAI,EAAE,GAAG;wBACT,IAAI,EAAE,SAAS;wBACf,YAAY,EAAE,SAAS;qBACxB;iBACF;aACF;SACF;QACD,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;KAC9B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,OAAO;aACtB;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;gBACf,YAAY,EAAE,SAAS;aACxB;SACF;QACD,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;gBACf,YAAY,EAAE,SAAS;aACxB;SACF;QACD,eAAe,EAAE,MAAM;KACxB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,OAAO;aACtB;SACF;QACD,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,SAAS;KAC3B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;gBACf,YAAY,EAAE,SAAS;aACxB;SACF;QACD,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;gBACf,YAAY,EAAE,SAAS;aACxB;SACF;QACD,eAAe,EAAE,MAAM;KACxB;IACD;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,EAAE;KACX;IACD;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;gBACf,YAAY,EAAE,SAAS;aACxB;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;gBACf,YAAY,EAAE,SAAS;aACxB;SACF;KACF;CACO,CAAA"}
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.walletActionsEip3074 = void 0;
4
- const signAuthMessage_js_1 = require("../actions/signAuthMessage.js");
5
- function walletActionsEip3074() {
6
- return (client) => {
7
- return {
8
- signAuthMessage: (parameters) => (0, signAuthMessage_js_1.signAuthMessage)(client, parameters),
9
- };
10
- };
11
- }
12
- exports.walletActionsEip3074 = walletActionsEip3074;
13
- //# sourceMappingURL=eip3074.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eip3074.js","sourceRoot":"","sources":["../../../../experimental/eip3074/decorators/eip3074.ts"],"names":[],"mappings":";;;AAIA,sEAIsC;AAoCtC,SAAgB,oBAAoB;IAClC,OAAO,CAKL,MAAyC,EACH,EAAE;QACxC,OAAO;YACL,eAAe,EAAE,CAAC,UAAU,EAAE,EAAE,CAC9B,IAAA,oCAAe,EAAC,MAAa,EAAE,UAAU,CAAC;SAC7C,CAAA;IACH,CAAC,CAAA;AACH,CAAC;AAbD,oDAaC"}
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.batchInvokerCoder = void 0;
4
- const readContract_js_1 = require("../../../../actions/public/readContract.js");
5
- const encodeAbiParameters_js_1 = require("../../../../utils/abi/encodeAbiParameters.js");
6
- const encodePacked_js_1 = require("../../../../utils/abi/encodePacked.js");
7
- const concat_js_1 = require("../../../../utils/data/concat.js");
8
- const size_js_1 = require("../../../../utils/data/size.js");
9
- const abis_js_1 = require("../../constants/abis.js");
10
- const defineInvokerCoder_js_1 = require("./defineInvokerCoder.js");
11
- function batchInvokerCoder() {
12
- return (0, defineInvokerCoder_js_1.defineInvokerCoder)({
13
- async toExecData(args, { authority, client, invokerAddress }) {
14
- const nonce = await (0, readContract_js_1.readContract)(client, {
15
- abi: abis_js_1.invokerAbi,
16
- address: invokerAddress,
17
- functionName: 'nextNonce',
18
- args: [authority],
19
- });
20
- const calls = (0, concat_js_1.concat)(args.map(({ data = '0x', to, value = 0n }) => (0, encodePacked_js_1.encodePacked)(['uint8', 'address', 'uint256', 'uint256', 'bytes'], [2, to, value, BigInt((0, size_js_1.size)(data)), data])));
21
- return (0, encodeAbiParameters_js_1.encodeAbiParameters)([{ type: 'uint256' }, { type: 'bytes' }], [nonce, calls]);
22
- },
23
- });
24
- }
25
- exports.batchInvokerCoder = batchInvokerCoder;
26
- //# sourceMappingURL=batchInvokerCoder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"batchInvokerCoder.js","sourceRoot":"","sources":["../../../../../experimental/eip3074/invokers/coders/batchInvokerCoder.ts"],"names":[],"mappings":";;;AACA,gFAAyE;AAEzE,yFAAkF;AAClF,2EAAoE;AACpE,gEAAyD;AACzD,4DAAqD;AACrD,qDAAoD;AACpD,mEAA4D;AAU5D,SAAgB,iBAAiB;IAC/B,OAAO,IAAA,0CAAkB,EAAC;QACxB,KAAK,CAAC,UAAU,CACd,IAAsB,EACtB,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE;YAErC,MAAM,KAAK,GAAG,MAAM,IAAA,8BAAY,EAAC,MAAM,EAAE;gBACvC,GAAG,EAAE,oBAAU;gBACf,OAAO,EAAE,cAAc;gBACvB,YAAY,EAAE,WAAW;gBACzB,IAAI,EAAE,CAAC,SAAS,CAAC;aAClB,CAAC,CAAA;YAEF,MAAM,KAAK,GAAG,IAAA,kBAAM,EAClB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,EAAE,CAC3C,IAAA,8BAAY,EACV,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,EACnD,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAA,cAAI,EAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CACzC,CACF,CACF,CAAA;YACD,OAAO,IAAA,4CAAmB,EACxB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EACxC,CAAC,KAAK,EAAE,KAAK,CAAC,CACf,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AA3BD,8CA2BC"}
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defineInvokerCoder = void 0;
4
- function defineInvokerCoder(parameters) {
5
- return parameters;
6
- }
7
- exports.defineInvokerCoder = defineInvokerCoder;
8
- //# sourceMappingURL=defineInvokerCoder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defineInvokerCoder.js","sourceRoot":"","sources":["../../../../../experimental/eip3074/invokers/coders/defineInvokerCoder.ts"],"names":[],"mappings":";;;AAeA,SAAgB,kBAAkB,CAChC,UAA8C;IAE9C,OAAO,UAAU,CAAA;AACnB,CAAC;AAJD,gDAIC"}