viem 2.12.4 → 2.13.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (289) hide show
  1. package/CHANGELOG.md +22 -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/utils/typedData.js +0 -1
  43. package/_cjs/utils/typedData.js.map +1 -1
  44. package/_cjs/zksync/chains.js.map +1 -1
  45. package/_cjs/zksync/index.js.map +1 -1
  46. package/_esm/accounts/index.js +1 -0
  47. package/_esm/accounts/index.js.map +1 -1
  48. package/_esm/accounts/privateKeyToAccount.js +0 -4
  49. package/_esm/accounts/privateKeyToAccount.js.map +1 -1
  50. package/_esm/accounts/toAccount.js +0 -1
  51. package/_esm/accounts/toAccount.js.map +1 -1
  52. package/_esm/actions/index.js +1 -0
  53. package/_esm/actions/index.js.map +1 -1
  54. package/_esm/celo/index.js +1 -0
  55. package/_esm/celo/index.js.map +1 -1
  56. package/_esm/chains/definitions/redstone.js +20 -0
  57. package/_esm/chains/definitions/redstone.js.map +1 -0
  58. package/_esm/chains/definitions/scrollSepolia.js +3 -3
  59. package/_esm/chains/definitions/scrollSepolia.js.map +1 -1
  60. package/_esm/chains/definitions/taiko.js +29 -0
  61. package/_esm/chains/definitions/taiko.js.map +1 -0
  62. package/_esm/chains/index.js +3 -1
  63. package/_esm/chains/index.js.map +1 -1
  64. package/_esm/chains/utils.js +1 -0
  65. package/_esm/chains/utils.js.map +1 -1
  66. package/_esm/ens/index.js +1 -0
  67. package/_esm/ens/index.js.map +1 -1
  68. package/_esm/errors/version.js +1 -1
  69. package/_esm/experimental/erc7715/actions/issuePermissions.js +107 -0
  70. package/_esm/experimental/erc7715/actions/issuePermissions.js.map +1 -0
  71. package/_esm/experimental/erc7715/decorators/erc7715.js +26 -0
  72. package/_esm/experimental/erc7715/decorators/erc7715.js.map +1 -0
  73. package/_esm/experimental/erc7715/types/permission.js +2 -0
  74. package/_esm/experimental/erc7715/types/permission.js.map +1 -0
  75. package/_esm/experimental/erc7715/types/signer.js +2 -0
  76. package/_esm/experimental/erc7715/types/signer.js.map +1 -0
  77. package/_esm/experimental/index.js +3 -7
  78. package/_esm/experimental/index.js.map +1 -1
  79. package/_esm/index.js +1 -0
  80. package/_esm/index.js.map +1 -1
  81. package/_esm/node/index.js +1 -0
  82. package/_esm/node/index.js.map +1 -1
  83. package/_esm/op-stack/chains.js +1 -0
  84. package/_esm/op-stack/chains.js.map +1 -1
  85. package/_esm/op-stack/index.js +2 -0
  86. package/_esm/op-stack/index.js.map +1 -1
  87. package/_esm/siwe/index.js +1 -0
  88. package/_esm/siwe/index.js.map +1 -1
  89. package/_esm/utils/accounts.js +1 -0
  90. package/_esm/utils/accounts.js.map +1 -1
  91. package/_esm/utils/hash/toEventHash.js +1 -0
  92. package/_esm/utils/hash/toEventHash.js.map +1 -1
  93. package/_esm/utils/hash/toEventSignature.js +1 -0
  94. package/_esm/utils/hash/toEventSignature.js.map +1 -1
  95. package/_esm/utils/hash/toFunctionHash.js +1 -0
  96. package/_esm/utils/hash/toFunctionHash.js.map +1 -1
  97. package/_esm/utils/hash/toFunctionSignature.js +1 -0
  98. package/_esm/utils/hash/toFunctionSignature.js.map +1 -1
  99. package/_esm/utils/index.js +1 -0
  100. package/_esm/utils/index.js.map +1 -1
  101. package/_esm/utils/promise/withTimeout.js.map +1 -1
  102. package/_esm/utils/typedData.js +0 -1
  103. package/_esm/utils/typedData.js.map +1 -1
  104. package/_esm/zksync/chains.js +1 -0
  105. package/_esm/zksync/chains.js.map +1 -1
  106. package/_esm/zksync/index.js +1 -0
  107. package/_esm/zksync/index.js.map +1 -1
  108. package/_types/accounts/index.d.ts.map +1 -1
  109. package/_types/accounts/privateKeyToAccount.d.ts.map +1 -1
  110. package/_types/accounts/toAccount.d.ts.map +1 -1
  111. package/_types/accounts/types.d.ts +2 -4
  112. package/_types/accounts/types.d.ts.map +1 -1
  113. package/_types/actions/index.d.ts.map +1 -1
  114. package/_types/celo/chainConfig.d.ts +76 -76
  115. package/_types/celo/formatters.d.ts +38 -38
  116. package/_types/celo/index.d.ts.map +1 -1
  117. package/_types/chains/definitions/ancient8.d.ts +30 -30
  118. package/_types/chains/definitions/ancient8Sepolia.d.ts +30 -30
  119. package/_types/chains/definitions/base.d.ts +30 -30
  120. package/_types/chains/definitions/baseGoerli.d.ts +30 -30
  121. package/_types/chains/definitions/baseSepolia.d.ts +30 -30
  122. package/_types/chains/definitions/celo.d.ts +76 -76
  123. package/_types/chains/definitions/celoAlfajores.d.ts +76 -76
  124. package/_types/chains/definitions/fraxtal.d.ts +30 -30
  125. package/_types/chains/definitions/fraxtalTestnet.d.ts +30 -30
  126. package/_types/chains/definitions/funkiSepolia.d.ts +30 -30
  127. package/_types/chains/definitions/liskSepolia.d.ts +30 -30
  128. package/_types/chains/definitions/metalL2.d.ts +30 -30
  129. package/_types/chains/definitions/optimism.d.ts +30 -30
  130. package/_types/chains/definitions/optimismGoerli.d.ts +30 -30
  131. package/_types/chains/definitions/optimismSepolia.d.ts +30 -30
  132. package/_types/chains/definitions/pgn.d.ts +30 -30
  133. package/_types/chains/definitions/pgnTestnet.d.ts +30 -30
  134. package/_types/chains/definitions/{scrollTestnet.d.ts → redstone.d.ts} +10 -11
  135. package/_types/chains/definitions/redstone.d.ts.map +1 -0
  136. package/_types/chains/definitions/rss3.d.ts +30 -30
  137. package/_types/chains/definitions/rss3Sepolia.d.ts +30 -30
  138. package/_types/chains/definitions/scrollSepolia.d.ts +3 -3
  139. package/_types/chains/definitions/taiko.d.ts +34 -0
  140. package/_types/chains/definitions/taiko.d.ts.map +1 -0
  141. package/_types/chains/definitions/zora.d.ts +30 -30
  142. package/_types/chains/definitions/zoraSepolia.d.ts +30 -30
  143. package/_types/chains/definitions/zoraTestnet.d.ts +30 -30
  144. package/_types/chains/index.d.ts +2 -1
  145. package/_types/chains/index.d.ts.map +1 -1
  146. package/_types/chains/utils.d.ts.map +1 -1
  147. package/_types/ens/index.d.ts.map +1 -1
  148. package/_types/errors/version.d.ts +1 -1
  149. package/_types/experimental/erc7715/actions/issuePermissions.d.ts +73 -0
  150. package/_types/experimental/erc7715/actions/issuePermissions.d.ts.map +1 -0
  151. package/_types/experimental/erc7715/decorators/erc7715.d.ts +61 -0
  152. package/_types/experimental/erc7715/decorators/erc7715.d.ts.map +1 -0
  153. package/_types/experimental/erc7715/types/permission.d.ts +36 -0
  154. package/_types/experimental/erc7715/types/permission.d.ts.map +1 -0
  155. package/_types/experimental/erc7715/types/signer.d.ts +22 -0
  156. package/_types/experimental/erc7715/types/signer.d.ts.map +1 -0
  157. package/_types/experimental/index.d.ts +2 -7
  158. package/_types/experimental/index.d.ts.map +1 -1
  159. package/_types/index.d.ts +1 -1
  160. package/_types/index.d.ts.map +1 -1
  161. package/_types/node/index.d.ts.map +1 -1
  162. package/_types/op-stack/chainConfig.d.ts +30 -30
  163. package/_types/op-stack/chains.d.ts.map +1 -1
  164. package/_types/op-stack/formatters.d.ts +30 -30
  165. package/_types/op-stack/index.d.ts.map +1 -1
  166. package/_types/siwe/index.d.ts.map +1 -1
  167. package/_types/types/eip1193.d.ts +38 -0
  168. package/_types/types/eip1193.d.ts.map +1 -1
  169. package/_types/utils/accounts.d.ts.map +1 -1
  170. package/_types/utils/formatters/transaction.d.ts +1 -1
  171. package/_types/utils/hash/toEventHash.d.ts.map +1 -1
  172. package/_types/utils/hash/toEventSignature.d.ts.map +1 -1
  173. package/_types/utils/hash/toFunctionHash.d.ts.map +1 -1
  174. package/_types/utils/hash/toFunctionSignature.d.ts.map +1 -1
  175. package/_types/utils/index.d.ts.map +1 -1
  176. package/_types/utils/typedData.d.ts.map +1 -1
  177. package/_types/zksync/chains.d.ts.map +1 -1
  178. package/_types/zksync/index.d.ts.map +1 -1
  179. package/accounts/index.ts +2 -0
  180. package/accounts/privateKeyToAccount.ts +0 -4
  181. package/accounts/toAccount.ts +0 -1
  182. package/accounts/types.ts +2 -9
  183. package/actions/index.ts +1 -0
  184. package/celo/index.ts +1 -0
  185. package/chains/definitions/redstone.ts +20 -0
  186. package/chains/definitions/scrollSepolia.ts +3 -3
  187. package/chains/definitions/taiko.ts +29 -0
  188. package/chains/index.ts +3 -1
  189. package/chains/utils.ts +1 -0
  190. package/ens/index.ts +1 -0
  191. package/errors/version.ts +1 -1
  192. package/experimental/erc7715/actions/issuePermissions.ts +161 -0
  193. package/experimental/erc7715/decorators/erc7715.ts +80 -0
  194. package/experimental/erc7715/types/permission.ts +46 -0
  195. package/experimental/erc7715/types/signer.ts +25 -0
  196. package/experimental/index.ts +11 -44
  197. package/index.ts +3 -0
  198. package/node/index.ts +1 -0
  199. package/op-stack/chains.ts +1 -0
  200. package/op-stack/index.ts +2 -0
  201. package/package.json +1 -1
  202. package/siwe/index.ts +1 -0
  203. package/types/eip1193.ts +44 -0
  204. package/utils/accounts.ts +2 -0
  205. package/utils/hash/toEventHash.ts +1 -0
  206. package/utils/hash/toEventSignature.ts +1 -0
  207. package/utils/hash/toFunctionHash.ts +1 -0
  208. package/utils/hash/toFunctionSignature.ts +1 -0
  209. package/utils/index.ts +1 -0
  210. package/utils/promise/withTimeout.ts +1 -1
  211. package/utils/typedData.ts +0 -2
  212. package/zksync/chains.ts +1 -0
  213. package/zksync/index.ts +1 -0
  214. package/_cjs/chains/definitions/scrollTestnet.js +0 -24
  215. package/_cjs/chains/definitions/scrollTestnet.js.map +0 -1
  216. package/_cjs/experimental/eip3074/actions/signAuthMessage.js +0 -29
  217. package/_cjs/experimental/eip3074/actions/signAuthMessage.js.map +0 -1
  218. package/_cjs/experimental/eip3074/constants/abis.js +0 -123
  219. package/_cjs/experimental/eip3074/constants/abis.js.map +0 -1
  220. package/_cjs/experimental/eip3074/decorators/eip3074.js +0 -13
  221. package/_cjs/experimental/eip3074/decorators/eip3074.js.map +0 -1
  222. package/_cjs/experimental/eip3074/invokers/coders/batchInvokerCoder.js +0 -26
  223. package/_cjs/experimental/eip3074/invokers/coders/batchInvokerCoder.js.map +0 -1
  224. package/_cjs/experimental/eip3074/invokers/coders/defineInvokerCoder.js +0 -8
  225. package/_cjs/experimental/eip3074/invokers/coders/defineInvokerCoder.js.map +0 -1
  226. package/_cjs/experimental/eip3074/invokers/getInvoker.js +0 -64
  227. package/_cjs/experimental/eip3074/invokers/getInvoker.js.map +0 -1
  228. package/_cjs/experimental/eip3074/utils/recoverAuthMessageAddress.js +0 -12
  229. package/_cjs/experimental/eip3074/utils/recoverAuthMessageAddress.js.map +0 -1
  230. package/_cjs/experimental/eip3074/utils/signAuthMessage.js +0 -17
  231. package/_cjs/experimental/eip3074/utils/signAuthMessage.js.map +0 -1
  232. package/_cjs/experimental/eip3074/utils/toAuthMessage.js +0 -17
  233. package/_cjs/experimental/eip3074/utils/toAuthMessage.js.map +0 -1
  234. package/_cjs/experimental/eip3074/utils/verifyAuthMessage.js +0 -11
  235. package/_cjs/experimental/eip3074/utils/verifyAuthMessage.js.map +0 -1
  236. package/_esm/chains/definitions/scrollTestnet.js +0 -21
  237. package/_esm/chains/definitions/scrollTestnet.js.map +0 -1
  238. package/_esm/experimental/eip3074/actions/signAuthMessage.js +0 -78
  239. package/_esm/experimental/eip3074/actions/signAuthMessage.js.map +0 -1
  240. package/_esm/experimental/eip3074/constants/abis.js +0 -120
  241. package/_esm/experimental/eip3074/constants/abis.js.map +0 -1
  242. package/_esm/experimental/eip3074/decorators/eip3074.js +0 -26
  243. package/_esm/experimental/eip3074/decorators/eip3074.js.map +0 -1
  244. package/_esm/experimental/eip3074/invokers/coders/batchInvokerCoder.js +0 -22
  245. package/_esm/experimental/eip3074/invokers/coders/batchInvokerCoder.js.map +0 -1
  246. package/_esm/experimental/eip3074/invokers/coders/defineInvokerCoder.js +0 -4
  247. package/_esm/experimental/eip3074/invokers/coders/defineInvokerCoder.js.map +0 -1
  248. package/_esm/experimental/eip3074/invokers/getInvoker.js +0 -60
  249. package/_esm/experimental/eip3074/invokers/getInvoker.js.map +0 -1
  250. package/_esm/experimental/eip3074/utils/recoverAuthMessageAddress.js +0 -8
  251. package/_esm/experimental/eip3074/utils/recoverAuthMessageAddress.js.map +0 -1
  252. package/_esm/experimental/eip3074/utils/signAuthMessage.js +0 -16
  253. package/_esm/experimental/eip3074/utils/signAuthMessage.js.map +0 -1
  254. package/_esm/experimental/eip3074/utils/toAuthMessage.js +0 -16
  255. package/_esm/experimental/eip3074/utils/toAuthMessage.js.map +0 -1
  256. package/_esm/experimental/eip3074/utils/verifyAuthMessage.js +0 -13
  257. package/_esm/experimental/eip3074/utils/verifyAuthMessage.js.map +0 -1
  258. package/_types/chains/definitions/scrollTestnet.d.ts.map +0 -1
  259. package/_types/experimental/eip3074/actions/signAuthMessage.d.ts +0 -82
  260. package/_types/experimental/eip3074/actions/signAuthMessage.d.ts.map +0 -1
  261. package/_types/experimental/eip3074/constants/abis.d.ts +0 -91
  262. package/_types/experimental/eip3074/constants/abis.d.ts.map +0 -1
  263. package/_types/experimental/eip3074/decorators/eip3074.d.ts +0 -27
  264. package/_types/experimental/eip3074/decorators/eip3074.d.ts.map +0 -1
  265. package/_types/experimental/eip3074/invokers/coders/batchInvokerCoder.d.ts +0 -11
  266. package/_types/experimental/eip3074/invokers/coders/batchInvokerCoder.d.ts.map +0 -1
  267. package/_types/experimental/eip3074/invokers/coders/defineInvokerCoder.d.ts +0 -14
  268. package/_types/experimental/eip3074/invokers/coders/defineInvokerCoder.d.ts.map +0 -1
  269. package/_types/experimental/eip3074/invokers/getInvoker.d.ts +0 -48
  270. package/_types/experimental/eip3074/invokers/getInvoker.d.ts.map +0 -1
  271. package/_types/experimental/eip3074/utils/recoverAuthMessageAddress.d.ts +0 -12
  272. package/_types/experimental/eip3074/utils/recoverAuthMessageAddress.d.ts.map +0 -1
  273. package/_types/experimental/eip3074/utils/signAuthMessage.d.ts +0 -16
  274. package/_types/experimental/eip3074/utils/signAuthMessage.d.ts.map +0 -1
  275. package/_types/experimental/eip3074/utils/toAuthMessage.d.ts +0 -20
  276. package/_types/experimental/eip3074/utils/toAuthMessage.d.ts.map +0 -1
  277. package/_types/experimental/eip3074/utils/verifyAuthMessage.d.ts +0 -19
  278. package/_types/experimental/eip3074/utils/verifyAuthMessage.d.ts.map +0 -1
  279. package/chains/definitions/scrollTestnet.ts +0 -21
  280. package/experimental/eip3074/actions/signAuthMessage.ts +0 -151
  281. package/experimental/eip3074/constants/abis.ts +0 -119
  282. package/experimental/eip3074/decorators/eip3074.ts +0 -58
  283. package/experimental/eip3074/invokers/coders/batchInvokerCoder.ts +0 -46
  284. package/experimental/eip3074/invokers/coders/defineInvokerCoder.ts +0 -20
  285. package/experimental/eip3074/invokers/getInvoker.ts +0 -192
  286. package/experimental/eip3074/utils/recoverAuthMessageAddress.ts +0 -29
  287. package/experimental/eip3074/utils/signAuthMessage.ts +0 -40
  288. package/experimental/eip3074/utils/toAuthMessage.ts +0 -50
  289. package/experimental/eip3074/utils/verifyAuthMessage.ts +0 -46
@@ -1,64 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getInvoker = void 0;
4
- const getTransactionCount_js_1 = require("../../../actions/public/getTransactionCount.js");
5
- const writeContract_js_1 = require("../../../actions/wallet/writeContract.js");
6
- const accounts_js_1 = require("../../../utils/accounts.js");
7
- const isAddressEqual_js_1 = require("../../../utils/address/isAddressEqual.js");
8
- const getAction_js_1 = require("../../../utils/getAction.js");
9
- const keccak256_js_1 = require("../../../utils/hash/keccak256.js");
10
- const parseSignature_js_1 = require("../../../utils/signature/parseSignature.js");
11
- const signAuthMessage_js_1 = require("../actions/signAuthMessage.js");
12
- const abis_js_1 = require("../constants/abis.js");
13
- function getInvoker(parameters) {
14
- const { address, client, coder } = parameters;
15
- return {
16
- address,
17
- async execute(parameters) {
18
- const { executor: executor_ = client.account, authority: authority_, args, chain = client.chain, signature, } = parameters;
19
- const authority = (0, accounts_js_1.parseAccount)(authority_);
20
- const executor = (0, accounts_js_1.parseAccount)(executor_);
21
- const execData = await coder.toExecData(args, {
22
- authority: authority.address,
23
- client,
24
- invokerAddress: address,
25
- });
26
- const { r, s, yParity } = (0, parseSignature_js_1.parseSignature)(signature);
27
- return (0, getAction_js_1.getAction)(client, writeContract_js_1.writeContract, 'writeContract')({
28
- abi: abis_js_1.invokerAbi,
29
- address,
30
- account: executor,
31
- chain,
32
- functionName: 'execute',
33
- args: [execData, { signer: authority.address, r, s, yParity }],
34
- });
35
- },
36
- async sign(parameters) {
37
- const { args, authority, executor: executor_ = client.account, chain = client.chain, } = parameters;
38
- const executor = (0, accounts_js_1.parseAccount)(executor_);
39
- const [execData, nonce] = await Promise.all([
40
- await coder.toExecData(args, {
41
- authority: authority.address,
42
- client,
43
- invokerAddress: address,
44
- }),
45
- (0, getAction_js_1.getAction)(client, getTransactionCount_js_1.getTransactionCount, 'getTransactionCount')({
46
- address: authority.address,
47
- blockTag: 'pending',
48
- }),
49
- ]);
50
- const signature = await (0, getAction_js_1.getAction)(client, signAuthMessage_js_1.signAuthMessage, 'signAuthMessage')({
51
- account: authority,
52
- chain,
53
- commit: (0, keccak256_js_1.keccak256)(execData),
54
- invokerAddress: address,
55
- nonce: (0, isAddressEqual_js_1.isAddressEqual)(authority.address, executor.address)
56
- ? nonce + 1
57
- : nonce,
58
- });
59
- return signature;
60
- },
61
- };
62
- }
63
- exports.getInvoker = getInvoker;
64
- //# sourceMappingURL=getInvoker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getInvoker.js","sourceRoot":"","sources":["../../../../experimental/eip3074/invokers/getInvoker.ts"],"names":[],"mappings":";;;AACA,2FAGuD;AACvD,+EAGiD;AAQjD,4DAAyD;AACzD,gFAGiD;AACjD,8DAAuD;AACvD,mEAGyC;AACzC,kFAGmD;AACnD,sEAGsC;AACtC,kDAAiD;AA6EjD,SAAgB,UAAU,CAKxB,UAAsD;IAEtD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAA;IAC7C,OAAO;QACL,OAAO;QACP,KAAK,CAAC,OAAO,CAAC,UAAU;YACtB,MAAM,EACJ,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC,OAAO,EACpC,SAAS,EAAE,UAAU,EACrB,IAAI,EACJ,KAAK,GAAG,MAAM,CAAC,KAAK,EACpB,SAAS,GACV,GAAG,UAAU,CAAA;YACd,MAAM,SAAS,GAAG,IAAA,0BAAY,EAAC,UAAW,CAAC,CAAA;YAC3C,MAAM,QAAQ,GAAG,IAAA,0BAAY,EAAC,SAAU,CAAC,CAAA;YAEzC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE;gBAC5C,SAAS,EAAE,SAAS,CAAC,OAAO;gBAC5B,MAAM;gBACN,cAAc,EAAE,OAAO;aACxB,CAAC,CAAA;YAEF,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,IAAA,kCAAc,EAAC,SAAS,CAAC,CAAA;YACnD,OAAO,IAAA,wBAAS,EACd,MAAM,EACN,gCAAa,EACb,eAAe,CAChB,CAAC;gBACA,GAAG,EAAE,oBAAU;gBACf,OAAO;gBACP,OAAO,EAAE,QAAQ;gBACjB,KAAK;gBACL,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;aAC/D,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,UAAU;YACnB,MAAM,EACJ,IAAI,EACJ,SAAS,EACT,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC,OAAO,EACpC,KAAK,GAAG,MAAM,CAAC,KAAK,GACrB,GAAG,UAAU,CAAA;YACd,MAAM,QAAQ,GAAG,IAAA,0BAAY,EAAC,SAAU,CAAC,CAAA;YACzC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC1C,MAAM,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE;oBAC3B,SAAS,EAAE,SAAS,CAAC,OAAO;oBAC5B,MAAM;oBACN,cAAc,EAAE,OAAO;iBACxB,CAAC;gBACF,IAAA,wBAAS,EACP,MAAM,EACN,4CAAmB,EACnB,qBAAqB,CACtB,CAAC;oBACA,OAAO,EAAE,SAAS,CAAC,OAAO;oBAC1B,QAAQ,EAAE,SAAS;iBACpB,CAAC;aACH,CAAC,CAAA;YACF,MAAM,SAAS,GAAG,MAAM,IAAA,wBAAS,EAC/B,MAAM,EACN,oCAAe,EACf,iBAAiB,CAClB,CAAC;gBACA,OAAO,EAAE,SAAS;gBAClB,KAAK;gBACL,MAAM,EAAE,IAAA,wBAAS,EAAC,QAAQ,CAAC;gBAC3B,cAAc,EAAE,OAAO;gBACvB,KAAK,EAAE,IAAA,kCAAc,EAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC;oBACxD,CAAC,CAAC,KAAK,GAAG,CAAC;oBACX,CAAC,CAAC,KAAK;aACV,CAAC,CAAA;YACF,OAAO,SAAS,CAAA;QAClB,CAAC;KACF,CAAA;AACH,CAAC;AAhFD,gCAgFC"}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.recoverAuthMessageAddress = void 0;
4
- const keccak256_js_1 = require("../../../utils/hash/keccak256.js");
5
- const recoverAddress_js_1 = require("../../../utils/signature/recoverAddress.js");
6
- const toAuthMessage_js_1 = require("./toAuthMessage.js");
7
- async function recoverAuthMessageAddress({ signature, ...parameters }) {
8
- const hash = (0, keccak256_js_1.keccak256)((0, toAuthMessage_js_1.toAuthMessage)(parameters));
9
- return (0, recoverAddress_js_1.recoverAddress)({ hash, signature });
10
- }
11
- exports.recoverAuthMessageAddress = recoverAuthMessageAddress;
12
- //# sourceMappingURL=recoverAuthMessageAddress.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recoverAuthMessageAddress.js","sourceRoot":"","sources":["../../../../experimental/eip3074/utils/recoverAuthMessageAddress.ts"],"names":[],"mappings":";;;AAKA,mEAA4D;AAC5D,kFAGmD;AACnD,yDAAgF;AAYzE,KAAK,UAAU,yBAAyB,CAAC,EAC9C,SAAS,EACT,GAAG,UAAU,EACuB;IACpC,MAAM,IAAI,GAAG,IAAA,wBAAS,EAAC,IAAA,gCAAa,EAAC,UAAU,CAAC,CAAC,CAAA;IACjD,OAAO,IAAA,kCAAc,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AAC5C,CAAC;AAND,8DAMC"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.signAuthMessage = void 0;
4
- const sign_js_1 = require("../../../accounts/utils/sign.js");
5
- const keccak256_js_1 = require("../../../utils/hash/keccak256.js");
6
- const serializeSignature_js_1 = require("../../../utils/signature/serializeSignature.js");
7
- const toAuthMessage_js_1 = require("./toAuthMessage.js");
8
- async function signAuthMessage(parameters) {
9
- const { privateKey } = parameters;
10
- const signature = await (0, sign_js_1.sign)({
11
- hash: (0, keccak256_js_1.keccak256)((0, toAuthMessage_js_1.toAuthMessage)(parameters)),
12
- privateKey,
13
- });
14
- return (0, serializeSignature_js_1.serializeSignature)(signature);
15
- }
16
- exports.signAuthMessage = signAuthMessage;
17
- //# sourceMappingURL=signAuthMessage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signAuthMessage.js","sourceRoot":"","sources":["../../../../experimental/eip3074/utils/signAuthMessage.ts"],"names":[],"mappings":";;;AAAA,6DAA0E;AAG1E,mEAA4D;AAC5D,0FAGuD;AACvD,yDAI2B;AAkBpB,KAAK,UAAU,eAAe,CACnC,UAAqC;IAErC,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAAA;IACjC,MAAM,SAAS,GAAG,MAAM,IAAA,cAAI,EAAC;QAC3B,IAAI,EAAE,IAAA,wBAAS,EAAC,IAAA,gCAAa,EAAC,UAAU,CAAC,CAAC;QAC1C,UAAU;KACX,CAAC,CAAA;IACF,OAAO,IAAA,0CAAkB,EAAC,SAAS,CAAC,CAAA;AACtC,CAAC;AATD,0CASC"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toAuthMessage = void 0;
4
- const encodePacked_js_1 = require("../../../utils/abi/encodePacked.js");
5
- const pad_js_1 = require("../../../utils/data/pad.js");
6
- const toHex_js_1 = require("../../../utils/encoding/toHex.js");
7
- function toAuthMessage({ chainId, commit, invokerAddress, nonce, }) {
8
- return (0, encodePacked_js_1.encodePacked)(['uint8', 'bytes32', 'uint256', 'bytes32', 'bytes32'], [
9
- 0x04,
10
- (0, toHex_js_1.numberToHex)(chainId, { size: 32 }),
11
- BigInt(nonce),
12
- (0, pad_js_1.padHex)(invokerAddress, { size: 32 }),
13
- commit,
14
- ]);
15
- }
16
- exports.toAuthMessage = toAuthMessage;
17
- //# sourceMappingURL=toAuthMessage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toAuthMessage.js","sourceRoot":"","sources":["../../../../experimental/eip3074/utils/toAuthMessage.ts"],"names":[],"mappings":";;;AAGA,wEAG2C;AAC3C,uDAAyE;AACzE,+DAGyC;AAsBzC,SAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,MAAM,EACN,cAAc,EACd,KAAK,GACmB;IACxB,OAAO,IAAA,8BAAY,EACjB,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EACrD;QACE,IAAI;QACJ,IAAA,sBAAW,EAAC,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC;QACb,IAAA,eAAM,EAAC,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACpC,MAAM;KACP,CACF,CAAA;AACH,CAAC;AAhBD,sCAgBC"}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.verifyAuthMessage = void 0;
4
- const getAddress_js_1 = require("../../../utils/address/getAddress.js");
5
- const isAddressEqual_js_1 = require("../../../utils/address/isAddressEqual.js");
6
- const recoverAuthMessageAddress_js_1 = require("./recoverAuthMessageAddress.js");
7
- async function verifyAuthMessage({ address, ...parameters }) {
8
- return (0, isAddressEqual_js_1.isAddressEqual)((0, getAddress_js_1.getAddress)(address), await (0, recoverAuthMessageAddress_js_1.recoverAuthMessageAddress)(parameters));
9
- }
10
- exports.verifyAuthMessage = verifyAuthMessage;
11
- //# sourceMappingURL=verifyAuthMessage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verifyAuthMessage.js","sourceRoot":"","sources":["../../../../experimental/eip3074/utils/verifyAuthMessage.ts"],"names":[],"mappings":";;;AAGA,wEAG6C;AAC7C,gFAGiD;AACjD,iFAIuC;AAsBhC,KAAK,UAAU,iBAAiB,CAAC,EACtC,OAAO,EACP,GAAG,UAAU,EACe;IAC5B,OAAO,IAAA,kCAAc,EACnB,IAAA,0BAAU,EAAC,OAAO,CAAC,EACnB,MAAM,IAAA,wDAAyB,EAAC,UAAU,CAAC,CAC5C,CAAA;AACH,CAAC;AARD,8CAQC"}
@@ -1,21 +0,0 @@
1
- import { defineChain } from '../../utils/chain/defineChain.js';
2
- export const scrollTestnet = /*#__PURE__*/ defineChain({
3
- id: 534_353,
4
- name: 'Scroll Testnet',
5
- nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
6
- rpcUrls: {
7
- default: {
8
- http: ['https://alpha-rpc.scroll.io/l2'],
9
- webSocket: ['wss://alpha-rpc.scroll.io/l2/ws'],
10
- },
11
- },
12
- blockExplorers: {
13
- default: {
14
- name: 'Blockscout',
15
- url: 'https://blockscout.scroll.io',
16
- apiUrl: 'https://blockscout.scroll.io/api',
17
- },
18
- },
19
- testnet: true,
20
- });
21
- //# sourceMappingURL=scrollTestnet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scrollTestnet.js","sourceRoot":"","sources":["../../../chains/definitions/scrollTestnet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAE9D,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,CAAC;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,78 +0,0 @@
1
- import { getTransactionCount } from '../../../actions/public/getTransactionCount.js';
2
- import { AccountNotFoundError } from '../../../errors/account.js';
3
- import { getAction } from '../../../utils/getAction.js';
4
- /**
5
- * Calculates an [EIP-3074](https://eips.ethereum.org/EIPS/eip-3074) auth signature.
6
- *
7
- * With the calculated signature, you can:
8
- * - pass it to an EIP-3074 compatible invoker contract,
9
- * - use [`verifyAuthMessage`](/experimental/eip3074/verifyAuthMessage) to verify the signature,
10
- * - use [`recoverAuthMessageAddress`](/experimental/eip3074/recoverAuthMessageAddress) to recover the signing address from a signature.
11
- *
12
- * @param client - Client to use
13
- * @param parameters - {@link SignAuthMessageParameters}
14
- * @returns The signed auth message. {@link SignAuthMessageReturnType}
15
- *
16
- * @example
17
- * import { createWalletClient, http } from 'viem'
18
- * import { privateKeyToAccount } from 'viem/accounts'
19
- * import { mainnet } from 'viem/chains'
20
- * import { signAuthMessage } from 'viem/experimental'
21
- *
22
- * const account = privateKeyToAccount('0x...')
23
- *
24
- * const client = createWalletClient({
25
- * chain: mainnet,
26
- * transport: http(),
27
- * })
28
- *
29
- * const signature = await signAuthMessage(client, {
30
- * account,
31
- * chainId: 1,
32
- * commit: keccak256('0x1234'),
33
- * invokerAddress: '0x0000000000000000000000000000000000000000',
34
- * nonce: 69,
35
- * })
36
- *
37
- * @example
38
- * // Account Hoisting
39
- * import { createWalletClient, http } from 'viem'
40
- * import { privateKeyToAccount } from 'viem/accounts'
41
- * import { mainnet } from 'viem/chains'
42
- * import { signAuthMessage } from 'viem/experimental'
43
- *
44
- * const client = createWalletClient({
45
- * account: privateKeyToAccount('0x…'),
46
- * chain: mainnet,
47
- * transport: http(),
48
- * })
49
- *
50
- * const signature = await signAuthMessage(client, {
51
- * chainId: 1,
52
- * commit: keccak256('0x1234'),
53
- * invokerAddress: '0x0000000000000000000000000000000000000000',
54
- * nonce: 69,
55
- * })
56
- */
57
- export async function signAuthMessage(client, parameters) {
58
- const { account = client.account, chain = client.chain, commit, invokerAddress, } = parameters;
59
- if (!account)
60
- throw new AccountNotFoundError({
61
- docsPath: '/experimental/eip5792/signAuthMessage',
62
- });
63
- const nonce = await (() => {
64
- if (typeof parameters.nonce === 'number')
65
- return parameters.nonce;
66
- return getAction(client, getTransactionCount, 'getTransactionCount')({
67
- address: account.address,
68
- blockTag: 'pending',
69
- });
70
- })();
71
- return account.experimental_signAuthMessage({
72
- chainId: chain.id,
73
- commit,
74
- invokerAddress,
75
- nonce,
76
- });
77
- }
78
- //# sourceMappingURL=signAuthMessage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signAuthMessage.js","sourceRoot":"","sources":["../../../../experimental/eip3074/actions/signAuthMessage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAA;AAGpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAUjE,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAuCvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,MAAM,CAAC,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,oBAAoB,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,SAAS,CACd,MAAM,EACN,mBAAmB,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"}
@@ -1,120 +0,0 @@
1
- export const invokerAbi = [
2
- {
3
- type: 'function',
4
- name: 'execute',
5
- inputs: [
6
- {
7
- name: 'execData',
8
- type: 'bytes',
9
- internalType: 'bytes',
10
- },
11
- {
12
- name: 'signature',
13
- type: 'tuple',
14
- internalType: 'struct Auth.Signature',
15
- components: [
16
- {
17
- name: 'signer',
18
- type: 'address',
19
- internalType: 'address',
20
- },
21
- {
22
- name: 'yParity',
23
- type: 'uint8',
24
- internalType: 'uint8',
25
- },
26
- {
27
- name: 'r',
28
- type: 'bytes32',
29
- internalType: 'bytes32',
30
- },
31
- {
32
- name: 's',
33
- type: 'bytes32',
34
- internalType: 'bytes32',
35
- },
36
- ],
37
- },
38
- ],
39
- outputs: [],
40
- stateMutability: 'nonpayable',
41
- },
42
- {
43
- type: 'function',
44
- name: 'getDigest',
45
- inputs: [
46
- {
47
- name: 'execData',
48
- type: 'bytes',
49
- internalType: 'bytes',
50
- },
51
- {
52
- name: 'nonce',
53
- type: 'uint256',
54
- internalType: 'uint256',
55
- },
56
- ],
57
- outputs: [
58
- {
59
- name: 'digest',
60
- type: 'bytes32',
61
- internalType: 'bytes32',
62
- },
63
- ],
64
- stateMutability: 'view',
65
- },
66
- {
67
- type: 'function',
68
- name: 'multiSend',
69
- inputs: [
70
- {
71
- name: 'transactions',
72
- type: 'bytes',
73
- internalType: 'bytes',
74
- },
75
- ],
76
- outputs: [],
77
- stateMutability: 'payable',
78
- },
79
- {
80
- type: 'function',
81
- name: 'nextNonce',
82
- inputs: [
83
- {
84
- name: '',
85
- type: 'address',
86
- internalType: 'address',
87
- },
88
- ],
89
- outputs: [
90
- {
91
- name: '',
92
- type: 'uint256',
93
- internalType: 'uint256',
94
- },
95
- ],
96
- stateMutability: 'view',
97
- },
98
- {
99
- type: 'error',
100
- name: 'BadAuth',
101
- inputs: [],
102
- },
103
- {
104
- type: 'error',
105
- name: 'InvalidNonce',
106
- inputs: [
107
- {
108
- name: 'authority',
109
- type: 'address',
110
- internalType: 'address',
111
- },
112
- {
113
- name: 'attempted',
114
- type: 'uint256',
115
- internalType: 'uint256',
116
- },
117
- ],
118
- },
119
- ];
120
- //# sourceMappingURL=abis.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"abis.js","sourceRoot":"","sources":["../../../../experimental/eip3074/constants/abis.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,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,26 +0,0 @@
1
- import { signAuthMessage, } from '../actions/signAuthMessage.js';
2
- /**
3
- * A suite of EIP-3074 Wallet Actions.
4
- *
5
- * - Docs: https://viem.sh/experimental
6
- *
7
- * @example
8
- * import { createPublicClient, createWalletClient, http } from 'viem'
9
- * import { mainnet } from 'viem/chains'
10
- * import { walletActionsEip3074 } from 'viem/experimental'
11
- *
12
- * const walletClient = createWalletClient({
13
- * chain: mainnet,
14
- * transport: http(),
15
- * }).extend(walletActionsEip3074())
16
- *
17
- * const signature = await walletClient.signAuthMessage({...})
18
- */
19
- export function walletActionsEip3074() {
20
- return (client) => {
21
- return {
22
- signAuthMessage: (parameters) => signAuthMessage(client, parameters),
23
- };
24
- };
25
- }
26
- //# sourceMappingURL=eip3074.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eip3074.js","sourceRoot":"","sources":["../../../../experimental/eip3074/decorators/eip3074.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,eAAe,GAChB,MAAM,+BAA+B,CAAA;AAmBtC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,CAKL,MAAyC,EACH,EAAE;QACxC,OAAO;YACL,eAAe,EAAE,CAAC,UAAU,EAAE,EAAE,CAC9B,eAAe,CAAC,MAAa,EAAE,UAAU,CAAC;SAC7C,CAAA;IACH,CAAC,CAAA;AACH,CAAC"}
@@ -1,22 +0,0 @@
1
- import { readContract } from '../../../../actions/public/readContract.js';
2
- import { encodeAbiParameters } from '../../../../utils/abi/encodeAbiParameters.js';
3
- import { encodePacked } from '../../../../utils/abi/encodePacked.js';
4
- import { concat } from '../../../../utils/data/concat.js';
5
- import { size } from '../../../../utils/data/size.js';
6
- import { invokerAbi } from '../../constants/abis.js';
7
- import { defineInvokerCoder } from './defineInvokerCoder.js';
8
- export function batchInvokerCoder() {
9
- return defineInvokerCoder({
10
- async toExecData(args, { authority, client, invokerAddress }) {
11
- const nonce = await readContract(client, {
12
- abi: invokerAbi,
13
- address: invokerAddress,
14
- functionName: 'nextNonce',
15
- args: [authority],
16
- });
17
- const calls = concat(args.map(({ data = '0x', to, value = 0n }) => encodePacked(['uint8', 'address', 'uint256', 'uint256', 'bytes'], [2, to, value, BigInt(size(data)), data])));
18
- return encodeAbiParameters([{ type: 'uint256' }, { type: 'bytes' }], [nonce, calls]);
19
- },
20
- });
21
- }
22
- //# sourceMappingURL=batchInvokerCoder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"batchInvokerCoder.js","sourceRoot":"","sources":["../../../../../experimental/eip3074/invokers/coders/batchInvokerCoder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAA;AAEzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAA;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAA;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAU5D,MAAM,UAAU,iBAAiB;IAC/B,OAAO,kBAAkB,CAAC;QACxB,KAAK,CAAC,UAAU,CACd,IAAsB,EACtB,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE;YAErC,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE;gBACvC,GAAG,EAAE,UAAU;gBACf,OAAO,EAAE,cAAc;gBACvB,YAAY,EAAE,WAAW;gBACzB,IAAI,EAAE,CAAC,SAAS,CAAC;aAClB,CAAC,CAAA;YAEF,MAAM,KAAK,GAAG,MAAM,CAClB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,EAAE,CAC3C,YAAY,CACV,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,EACnD,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CACzC,CACF,CACF,CAAA;YACD,OAAO,mBAAmB,CACxB,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"}
@@ -1,4 +0,0 @@
1
- export function defineInvokerCoder(parameters) {
2
- return parameters;
3
- }
4
- //# sourceMappingURL=defineInvokerCoder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defineInvokerCoder.js","sourceRoot":"","sources":["../../../../../experimental/eip3074/invokers/coders/defineInvokerCoder.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,kBAAkB,CAChC,UAA8C;IAE9C,OAAO,UAAU,CAAA;AACnB,CAAC"}
@@ -1,60 +0,0 @@
1
- import { getTransactionCount, } from '../../../actions/public/getTransactionCount.js';
2
- import { writeContract, } from '../../../actions/wallet/writeContract.js';
3
- import { parseAccount } from '../../../utils/accounts.js';
4
- import { isAddressEqual, } from '../../../utils/address/isAddressEqual.js';
5
- import { getAction } from '../../../utils/getAction.js';
6
- import { keccak256, } from '../../../utils/hash/keccak256.js';
7
- import { parseSignature, } from '../../../utils/signature/parseSignature.js';
8
- import { signAuthMessage, } from '../actions/signAuthMessage.js';
9
- import { invokerAbi } from '../constants/abis.js';
10
- export function getInvoker(parameters) {
11
- const { address, client, coder } = parameters;
12
- return {
13
- address,
14
- async execute(parameters) {
15
- const { executor: executor_ = client.account, authority: authority_, args, chain = client.chain, signature, } = parameters;
16
- const authority = parseAccount(authority_);
17
- const executor = parseAccount(executor_);
18
- const execData = await coder.toExecData(args, {
19
- authority: authority.address,
20
- client,
21
- invokerAddress: address,
22
- });
23
- const { r, s, yParity } = parseSignature(signature);
24
- return getAction(client, writeContract, 'writeContract')({
25
- abi: invokerAbi,
26
- address,
27
- account: executor,
28
- chain,
29
- functionName: 'execute',
30
- args: [execData, { signer: authority.address, r, s, yParity }],
31
- });
32
- },
33
- async sign(parameters) {
34
- const { args, authority, executor: executor_ = client.account, chain = client.chain, } = parameters;
35
- const executor = parseAccount(executor_);
36
- const [execData, nonce] = await Promise.all([
37
- await coder.toExecData(args, {
38
- authority: authority.address,
39
- client,
40
- invokerAddress: address,
41
- }),
42
- getAction(client, getTransactionCount, 'getTransactionCount')({
43
- address: authority.address,
44
- blockTag: 'pending',
45
- }),
46
- ]);
47
- const signature = await getAction(client, signAuthMessage, 'signAuthMessage')({
48
- account: authority,
49
- chain,
50
- commit: keccak256(execData),
51
- invokerAddress: address,
52
- nonce: isAddressEqual(authority.address, executor.address)
53
- ? nonce + 1
54
- : nonce,
55
- });
56
- return signature;
57
- },
58
- };
59
- }
60
- //# sourceMappingURL=getInvoker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getInvoker.js","sourceRoot":"","sources":["../../../../experimental/eip3074/invokers/getInvoker.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,mBAAmB,GACpB,MAAM,gDAAgD,CAAA;AACvD,OAAO,EAEL,aAAa,GACd,MAAM,0CAA0C,CAAA;AAQjD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAEL,cAAc,GACf,MAAM,0CAA0C,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AACvD,OAAO,EAEL,SAAS,GACV,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAEL,cAAc,GACf,MAAM,4CAA4C,CAAA;AACnD,OAAO,EAEL,eAAe,GAChB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AA6EjD,MAAM,UAAU,UAAU,CAKxB,UAAsD;IAEtD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAA;IAC7C,OAAO;QACL,OAAO;QACP,KAAK,CAAC,OAAO,CAAC,UAAU;YACtB,MAAM,EACJ,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC,OAAO,EACpC,SAAS,EAAE,UAAU,EACrB,IAAI,EACJ,KAAK,GAAG,MAAM,CAAC,KAAK,EACpB,SAAS,GACV,GAAG,UAAU,CAAA;YACd,MAAM,SAAS,GAAG,YAAY,CAAC,UAAW,CAAC,CAAA;YAC3C,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAU,CAAC,CAAA;YAEzC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE;gBAC5C,SAAS,EAAE,SAAS,CAAC,OAAO;gBAC5B,MAAM;gBACN,cAAc,EAAE,OAAO;aACxB,CAAC,CAAA;YAEF,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;YACnD,OAAO,SAAS,CACd,MAAM,EACN,aAAa,EACb,eAAe,CAChB,CAAC;gBACA,GAAG,EAAE,UAAU;gBACf,OAAO;gBACP,OAAO,EAAE,QAAQ;gBACjB,KAAK;gBACL,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;aAC/D,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,UAAU;YACnB,MAAM,EACJ,IAAI,EACJ,SAAS,EACT,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC,OAAO,EACpC,KAAK,GAAG,MAAM,CAAC,KAAK,GACrB,GAAG,UAAU,CAAA;YACd,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAU,CAAC,CAAA;YACzC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC1C,MAAM,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE;oBAC3B,SAAS,EAAE,SAAS,CAAC,OAAO;oBAC5B,MAAM;oBACN,cAAc,EAAE,OAAO;iBACxB,CAAC;gBACF,SAAS,CACP,MAAM,EACN,mBAAmB,EACnB,qBAAqB,CACtB,CAAC;oBACA,OAAO,EAAE,SAAS,CAAC,OAAO;oBAC1B,QAAQ,EAAE,SAAS;iBACpB,CAAC;aACH,CAAC,CAAA;YACF,MAAM,SAAS,GAAG,MAAM,SAAS,CAC/B,MAAM,EACN,eAAe,EACf,iBAAiB,CAClB,CAAC;gBACA,OAAO,EAAE,SAAS;gBAClB,KAAK;gBACL,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC;gBAC3B,cAAc,EAAE,OAAO;gBACvB,KAAK,EAAE,cAAc,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC;oBACxD,CAAC,CAAC,KAAK,GAAG,CAAC;oBACX,CAAC,CAAC,KAAK;aACV,CAAC,CAAA;YACF,OAAO,SAAS,CAAA;QAClB,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -1,8 +0,0 @@
1
- import { keccak256 } from '../../../utils/hash/keccak256.js';
2
- import { recoverAddress, } from '../../../utils/signature/recoverAddress.js';
3
- import { toAuthMessage } from './toAuthMessage.js';
4
- export async function recoverAuthMessageAddress({ signature, ...parameters }) {
5
- const hash = keccak256(toAuthMessage(parameters));
6
- return recoverAddress({ hash, signature });
7
- }
8
- //# sourceMappingURL=recoverAuthMessageAddress.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recoverAuthMessageAddress.js","sourceRoot":"","sources":["../../../../experimental/eip3074/utils/recoverAuthMessageAddress.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAC5D,OAAO,EAEL,cAAc,GACf,MAAM,4CAA4C,CAAA;AACnD,OAAO,EAAgC,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAYhF,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,EAC9C,SAAS,EACT,GAAG,UAAU,EACuB;IACpC,MAAM,IAAI,GAAG,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAA;IACjD,OAAO,cAAc,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AAC5C,CAAC"}
@@ -1,16 +0,0 @@
1
- import { sign } from '../../../accounts/utils/sign.js';
2
- import { keccak256 } from '../../../utils/hash/keccak256.js';
3
- import { serializeSignature, } from '../../../utils/signature/serializeSignature.js';
4
- import { toAuthMessage, } from './toAuthMessage.js';
5
- /**
6
- * Computes a EIP-3074 authorization signature in format: `keccak256(MAGIC || chainId || nonce || invokerAddress || commit))`.
7
- */
8
- export async function signAuthMessage(parameters) {
9
- const { privateKey } = parameters;
10
- const signature = await sign({
11
- hash: keccak256(toAuthMessage(parameters)),
12
- privateKey,
13
- });
14
- return serializeSignature(signature);
15
- }
16
- //# sourceMappingURL=signAuthMessage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signAuthMessage.js","sourceRoot":"","sources":["../../../../experimental/eip3074/utils/signAuthMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,IAAI,EAAE,MAAM,iCAAiC,CAAA;AAG1E,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAC5D,OAAO,EAEL,kBAAkB,GACnB,MAAM,gDAAgD,CAAA;AACvD,OAAO,EAGL,aAAa,GACd,MAAM,oBAAoB,CAAA;AAe3B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAAqC;IAErC,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAAA;IACjC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC;QAC3B,IAAI,EAAE,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC1C,UAAU;KACX,CAAC,CAAA;IACF,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAA;AACtC,CAAC"}
@@ -1,16 +0,0 @@
1
- import { encodePacked, } from '../../../utils/abi/encodePacked.js';
2
- import { padHex } from '../../../utils/data/pad.js';
3
- import { numberToHex, } from '../../../utils/encoding/toHex.js';
4
- /**
5
- * Returns the message to be signed for EIP-3074 authorization.
6
- */
7
- export function toAuthMessage({ chainId, commit, invokerAddress, nonce, }) {
8
- return encodePacked(['uint8', 'bytes32', 'uint256', 'bytes32', 'bytes32'], [
9
- 0x04, // MAGIC
10
- numberToHex(chainId, { size: 32 }),
11
- BigInt(nonce),
12
- padHex(invokerAddress, { size: 32 }),
13
- commit,
14
- ]);
15
- }
16
- //# sourceMappingURL=toAuthMessage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toAuthMessage.js","sourceRoot":"","sources":["../../../../experimental/eip3074/utils/toAuthMessage.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,YAAY,GACb,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAwB,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EAEL,WAAW,GACZ,MAAM,kCAAkC,CAAA;AAmBzC;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,OAAO,EACP,MAAM,EACN,cAAc,EACd,KAAK,GACmB;IACxB,OAAO,YAAY,CACjB,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EACrD;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC;QACb,MAAM,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACpC,MAAM;KACP,CACF,CAAA;AACH,CAAC"}
@@ -1,13 +0,0 @@
1
- import { getAddress, } from '../../../utils/address/getAddress.js';
2
- import { isAddressEqual, } from '../../../utils/address/isAddressEqual.js';
3
- import { recoverAuthMessageAddress, } from './recoverAuthMessageAddress.js';
4
- /**
5
- * Verify that a auth message was signed by the provided address.
6
- *
7
- * @param parameters - {@link VerifyAuthMessageParameters}
8
- * @returns Whether or not the signature is valid. {@link VerifyAuthMessageReturnType}
9
- */
10
- export async function verifyAuthMessage({ address, ...parameters }) {
11
- return isAddressEqual(getAddress(address), await recoverAuthMessageAddress(parameters));
12
- }
13
- //# sourceMappingURL=verifyAuthMessage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verifyAuthMessage.js","sourceRoot":"","sources":["../../../../experimental/eip3074/utils/verifyAuthMessage.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,UAAU,GACX,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAEL,cAAc,GACf,MAAM,0CAA0C,CAAA;AACjD,OAAO,EAGL,yBAAyB,GAC1B,MAAM,gCAAgC,CAAA;AAgBvC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EACtC,OAAO,EACP,GAAG,UAAU,EACe;IAC5B,OAAO,cAAc,CACnB,UAAU,CAAC,OAAO,CAAC,EACnB,MAAM,yBAAyB,CAAC,UAAU,CAAC,CAC5C,CAAA;AACH,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"scrollTestnet.d.ts","sourceRoot":"","sources":["../../../chains/definitions/scrollTestnet.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkBxB,CAAA"}