@coinbase/cdp-hooks 0.0.43 → 0.0.45

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 (276) hide show
  1. package/README.md +92 -0
  2. package/dist/esm/index.js +26 -22
  3. package/dist/esm/index10.js +12 -56
  4. package/dist/esm/index100.js +439 -21
  5. package/dist/esm/index101.js +28 -32
  6. package/dist/esm/index102.js +18 -185
  7. package/dist/esm/index103.js +31 -6
  8. package/dist/esm/index104.js +35 -2
  9. package/dist/esm/index105.js +189 -8
  10. package/dist/esm/index106.js +7 -17
  11. package/dist/esm/index107.js +2 -28
  12. package/dist/esm/index108.js +12 -8
  13. package/dist/esm/index109.js +15 -52
  14. package/dist/esm/index11.js +54 -33
  15. package/dist/esm/index110.js +23 -41
  16. package/dist/esm/index111.js +8 -8
  17. package/dist/esm/index112.js +55 -7
  18. package/dist/esm/index113.js +44 -15
  19. package/dist/esm/index114.js +8 -18
  20. package/dist/esm/index115.js +7 -24
  21. package/dist/esm/index116.js +16 -16
  22. package/dist/esm/index117.js +17 -53
  23. package/dist/esm/index118.js +22 -9
  24. package/dist/esm/index119.js +15 -159
  25. package/dist/esm/index12.js +57 -3
  26. package/dist/esm/index120.js +53 -20
  27. package/dist/esm/index121.js +11 -127
  28. package/dist/esm/index122.js +153 -31
  29. package/dist/esm/index123.js +21 -6
  30. package/dist/esm/index124.js +127 -27
  31. package/dist/esm/index125.js +31 -184
  32. package/dist/esm/index126.js +7 -4
  33. package/dist/esm/index127.js +26 -63
  34. package/dist/esm/index128.js +192 -3
  35. package/dist/esm/index129.js +4 -21
  36. package/dist/esm/index13.js +56 -10
  37. package/dist/esm/index130.js +61 -13
  38. package/dist/esm/index131.js +3 -24
  39. package/dist/esm/index132.js +20 -11
  40. package/dist/esm/index133.js +15 -33
  41. package/dist/esm/index134.js +24 -3
  42. package/dist/esm/index135.js +11 -18
  43. package/dist/esm/index136.js +33 -26
  44. package/dist/esm/index137.js +3 -36
  45. package/dist/esm/index138.js +18 -7
  46. package/dist/esm/index139.js +26 -24
  47. package/dist/esm/index14.js +31 -67
  48. package/dist/esm/index140.js +34 -27
  49. package/dist/esm/index141.js +7 -64
  50. package/dist/esm/index142.js +25 -9
  51. package/dist/esm/index143.js +28 -33
  52. package/dist/esm/index144.js +64 -27
  53. package/dist/esm/index145.js +9 -24
  54. package/dist/esm/index146.js +33 -3
  55. package/dist/esm/index147.js +27 -14
  56. package/dist/esm/index148.js +24 -103
  57. package/dist/esm/index149.js +3 -64
  58. package/dist/esm/index15.js +3 -9
  59. package/dist/esm/index150.js +14 -5
  60. package/dist/esm/index151.js +103 -6
  61. package/dist/esm/index152.js +62 -25
  62. package/dist/esm/index153.js +5 -39
  63. package/dist/esm/index154.js +6 -13
  64. package/dist/esm/index155.js +24 -39
  65. package/dist/esm/index156.js +39 -5
  66. package/dist/esm/index157.js +13 -11
  67. package/dist/esm/index158.js +42 -19
  68. package/dist/esm/index159.js +5 -78
  69. package/dist/esm/index16.js +9 -28
  70. package/dist/esm/index160.js +12 -2
  71. package/dist/esm/index161.js +19 -37
  72. package/dist/esm/index162.js +73 -105
  73. package/dist/esm/index163.js +2 -49
  74. package/dist/esm/index164.js +36 -31
  75. package/dist/esm/index165.js +110 -8
  76. package/dist/esm/index166.js +48 -6
  77. package/dist/esm/index167.js +32 -6
  78. package/dist/esm/index168.js +8 -11
  79. package/dist/esm/index169.js +6 -10
  80. package/dist/esm/index17.js +68 -70
  81. package/dist/esm/index170.js +6 -13
  82. package/dist/esm/index171.js +11 -32
  83. package/dist/esm/index172.js +11 -5
  84. package/dist/esm/index173.js +13 -8
  85. package/dist/esm/index174.js +30 -17
  86. package/dist/esm/index175.js +5 -32
  87. package/dist/esm/index176.js +8 -20
  88. package/dist/esm/index177.js +19 -3
  89. package/dist/esm/index178.js +31 -17
  90. package/dist/esm/index179.js +20 -10
  91. package/dist/esm/index18.js +9 -19
  92. package/dist/esm/index180.js +3 -21
  93. package/dist/esm/index181.js +16 -21
  94. package/dist/esm/index182.js +10 -5
  95. package/dist/esm/index183.js +21 -5
  96. package/dist/esm/index184.js +22 -8
  97. package/dist/esm/index185.js +5 -104
  98. package/dist/esm/index186.js +6 -3
  99. package/dist/esm/index187.js +8 -18
  100. package/dist/esm/index188.js +99 -166
  101. package/dist/esm/index189.js +3 -18
  102. package/dist/esm/index19.js +26 -108
  103. package/dist/esm/index190.js +19 -10
  104. package/dist/esm/index191.js +170 -39
  105. package/dist/esm/index192.js +18 -2
  106. package/dist/esm/index193.js +10 -5
  107. package/dist/esm/index194.js +39 -9
  108. package/dist/esm/index195.js +2 -20
  109. package/dist/esm/index196.js +4 -7
  110. package/dist/esm/index197.js +9 -10
  111. package/dist/esm/index198.js +19 -66
  112. package/dist/esm/index199.js +7 -65
  113. package/dist/esm/index20.js +70 -60
  114. package/dist/esm/index200.js +10 -184
  115. package/dist/esm/index201.js +66 -22
  116. package/dist/esm/index202.js +61 -38
  117. package/dist/esm/index203.js +178 -69
  118. package/dist/esm/index204.js +21 -39
  119. package/dist/esm/index205.js +35 -9
  120. package/dist/esm/index206.js +70 -7
  121. package/dist/esm/index207.js +40 -7
  122. package/dist/esm/index208.js +16 -6
  123. package/dist/esm/index209.js +13 -36
  124. package/dist/esm/index21.js +19 -24
  125. package/dist/esm/index210.js +7 -15
  126. package/dist/esm/index211.js +6 -8
  127. package/dist/esm/index212.js +35 -11
  128. package/dist/esm/index213.js +15 -9
  129. package/dist/esm/index214.js +8 -16
  130. package/dist/esm/index215.js +12 -22
  131. package/dist/esm/index216.js +9 -30
  132. package/dist/esm/index217.js +17 -2
  133. package/dist/esm/index218.js +21 -12
  134. package/dist/esm/index219.js +30 -12
  135. package/dist/esm/index22.js +110 -40
  136. package/dist/esm/index220.js +2 -48
  137. package/dist/esm/index221.js +12 -8
  138. package/dist/esm/index222.js +12 -13
  139. package/dist/esm/index223.js +46 -13
  140. package/dist/esm/index224.js +9 -8
  141. package/dist/esm/index225.js +13 -15
  142. package/dist/esm/index226.js +14 -24
  143. package/dist/esm/index227.js +8 -11
  144. package/dist/esm/index228.js +14 -23
  145. package/dist/esm/index229.js +24 -51
  146. package/dist/esm/index23.js +57 -34
  147. package/dist/esm/index230.js +11 -17
  148. package/dist/esm/index231.js +24 -14
  149. package/dist/esm/index232.js +51 -11
  150. package/dist/esm/index233.js +17 -103
  151. package/dist/esm/index234.js +14 -6
  152. package/dist/esm/index235.js +11 -224
  153. package/dist/esm/index236.js +103 -6
  154. package/dist/esm/index237.js +7 -7
  155. package/dist/esm/index238.js +223 -25
  156. package/dist/esm/index239.js +6 -19
  157. package/dist/esm/index24.js +20 -54
  158. package/dist/esm/index240.js +7 -147
  159. package/dist/esm/index241.js +26 -12
  160. package/dist/esm/index242.js +20 -36
  161. package/dist/esm/index243.js +146 -41
  162. package/dist/esm/index244.js +13 -69
  163. package/dist/esm/index245.js +36 -4
  164. package/dist/esm/index246.js +41 -136
  165. package/dist/esm/index247.js +69 -156
  166. package/dist/esm/index248.js +3 -9
  167. package/dist/esm/index249.js +136 -16
  168. package/dist/esm/index25.js +37 -160
  169. package/dist/esm/index250.js +140 -98
  170. package/dist/esm/index251.js +9 -134
  171. package/dist/esm/index252.js +16 -78
  172. package/dist/esm/index253.js +114 -2
  173. package/dist/esm/index254.js +124 -688
  174. package/dist/esm/index255.js +73 -134
  175. package/dist/esm/index256.js +2 -43
  176. package/dist/esm/index257.js +675 -178
  177. package/dist/esm/index258.js +137 -63
  178. package/dist/esm/index259.js +42 -4
  179. package/dist/esm/index26.js +36 -38
  180. package/dist/esm/index260.js +201 -40
  181. package/dist/esm/index261.js +65 -7
  182. package/dist/esm/index262.js +4 -62
  183. package/dist/esm/index263.js +33 -70
  184. package/dist/esm/index264.js +8 -4
  185. package/dist/esm/index265.js +55 -187
  186. package/dist/esm/index266.js +61 -47
  187. package/dist/esm/index267.js +4 -45
  188. package/dist/esm/index268.js +194 -4
  189. package/dist/esm/index269.js +64 -5
  190. package/dist/esm/index27.js +58 -9
  191. package/dist/esm/index270.js +45 -2
  192. package/dist/esm/index271.js +4 -21
  193. package/dist/esm/index272.js +7 -0
  194. package/dist/esm/index273.js +4 -0
  195. package/dist/esm/index274.js +24 -0
  196. package/dist/esm/index28.js +161 -29
  197. package/dist/esm/index29.js +39 -36
  198. package/dist/esm/index3.js +2 -2
  199. package/dist/esm/index30.js +7 -7
  200. package/dist/esm/index31.js +30 -28
  201. package/dist/esm/index32.js +34 -44
  202. package/dist/esm/index33.js +9 -88
  203. package/dist/esm/index34.js +26 -37
  204. package/dist/esm/index35.js +46 -8
  205. package/dist/esm/index36.js +88 -6
  206. package/dist/esm/index37.js +40 -16
  207. package/dist/esm/index38.js +8 -8
  208. package/dist/esm/index39.js +6 -13
  209. package/dist/esm/index4.js +14 -16
  210. package/dist/esm/index40.js +16 -7
  211. package/dist/esm/index41.js +8 -9
  212. package/dist/esm/index42.js +13 -16
  213. package/dist/esm/index43.js +7 -46
  214. package/dist/esm/index44.js +9 -13
  215. package/dist/esm/index45.js +15 -15
  216. package/dist/esm/index46.js +46 -13
  217. package/dist/esm/index47.js +13 -6
  218. package/dist/esm/index48.js +15 -34
  219. package/dist/esm/index49.js +13 -9
  220. package/dist/esm/index5.js +46 -29
  221. package/dist/esm/index50.js +5 -7
  222. package/dist/esm/index51.js +35 -25
  223. package/dist/esm/index52.js +9 -10
  224. package/dist/esm/index53.js +7 -13
  225. package/dist/esm/index54.js +25 -11
  226. package/dist/esm/index55.js +10 -116
  227. package/dist/esm/index56.js +13 -32
  228. package/dist/esm/index57.js +11 -79
  229. package/dist/esm/index58.js +108 -169
  230. package/dist/esm/index59.js +26 -37
  231. package/dist/esm/index6.js +20 -17
  232. package/dist/esm/index60.js +79 -6
  233. package/dist/esm/index61.js +177 -13
  234. package/dist/esm/index62.js +44 -13
  235. package/dist/esm/index63.js +6 -99
  236. package/dist/esm/index64.js +13 -72
  237. package/dist/esm/index65.js +13 -87
  238. package/dist/esm/index66.js +93 -142
  239. package/dist/esm/index67.js +65 -129
  240. package/dist/esm/index68.js +73 -54
  241. package/dist/esm/index69.js +148 -23
  242. package/dist/esm/index7.js +34 -12
  243. package/dist/esm/index70.js +133 -102
  244. package/dist/esm/index71.js +68 -6
  245. package/dist/esm/index72.js +23 -131
  246. package/dist/esm/index73.js +101 -271
  247. package/dist/esm/index74.js +7 -3
  248. package/dist/esm/index75.js +132 -4
  249. package/dist/esm/index76.js +276 -9
  250. package/dist/esm/index77.js +3 -2
  251. package/dist/esm/index78.js +4 -2
  252. package/dist/esm/index79.js +9 -3
  253. package/dist/esm/index8.js +18 -54
  254. package/dist/esm/index80.js +2 -327
  255. package/dist/esm/index81.js +2 -14
  256. package/dist/esm/index82.js +3 -5
  257. package/dist/esm/index83.js +299 -28
  258. package/dist/esm/index84.js +14 -2
  259. package/dist/esm/index85.js +4 -7
  260. package/dist/esm/index86.js +29 -188
  261. package/dist/esm/index87.js +2 -32
  262. package/dist/esm/index88.js +7 -21
  263. package/dist/esm/index89.js +214 -5
  264. package/dist/esm/index9.js +11 -57
  265. package/dist/esm/index90.js +30 -72
  266. package/dist/esm/index91.js +21 -5
  267. package/dist/esm/index92.js +5 -5
  268. package/dist/esm/index93.js +69 -31
  269. package/dist/esm/index94.js +5 -75
  270. package/dist/esm/index95.js +6 -3
  271. package/dist/esm/index96.js +28 -16
  272. package/dist/esm/index97.js +57 -433
  273. package/dist/esm/index98.js +3 -31
  274. package/dist/esm/index99.js +17 -20
  275. package/dist/types/index.d.ts +36 -0
  276. package/package.json +3 -3
@@ -1,13 +1,12 @@
1
- import { getAction as n } from "./index207.js";
2
- import { getBlockNumber as a } from "./index38.js";
3
- import { getTransaction as m } from "./index51.js";
4
- async function f(o, { hash: r, transactionReceipt: e }) {
5
- const [c, i] = await Promise.all([
6
- n(o, a, "getBlockNumber")({}),
7
- r ? n(o, m, "getTransaction")({ hash: r }) : void 0
8
- ]), t = e?.blockNumber || i?.blockNumber;
9
- return t ? c - t + 1n : 0n;
1
+ import { numberToHex as c } from "./index113.js";
2
+ import { formatProof as s } from "./index228.js";
3
+ async function d(t, { address: e, blockNumber: o, blockTag: r, storageKeys: n }) {
4
+ const f = r ?? "latest", a = o !== void 0 ? c(o) : void 0, m = await t.request({
5
+ method: "eth_getProof",
6
+ params: [e, n, a || f]
7
+ });
8
+ return s(m);
10
9
  }
11
10
  export {
12
- f as getTransactionConfirmations
11
+ d as getProof
13
12
  };
@@ -1,17 +1,11 @@
1
- import { hexToNumber as r } from "./index143.js";
2
- import { numberToHex as i } from "./index110.js";
3
- async function m(o, { address: e, blockTag: n = "latest", blockNumber: t }) {
4
- const a = await o.request({
5
- method: "eth_getTransactionCount",
6
- params: [
7
- e,
8
- typeof t == "bigint" ? i(t) : n
9
- ]
10
- }, {
11
- dedupe: !!t
1
+ import { numberToHex as d } from "./index113.js";
2
+ async function i(e, { address: a, blockNumber: t, blockTag: n = "latest", slot: o }) {
3
+ const r = t !== void 0 ? d(t) : void 0;
4
+ return await e.request({
5
+ method: "eth_getStorageAt",
6
+ params: [a, o, r || n]
12
7
  });
13
- return r(a);
14
8
  }
15
9
  export {
16
- m as getTransactionCount
10
+ i as getStorageAt
17
11
  };
@@ -1,14 +1,28 @@
1
- import { TransactionReceiptNotFoundError as o } from "./index94.js";
2
- import { formatTransactionReceipt as a } from "./index144.js";
3
- async function m(t, { hash: r }) {
4
- const e = await t.request({
5
- method: "eth_getTransactionReceipt",
6
- params: [r]
7
- }, { dedupe: !0 });
8
- if (!e)
9
- throw new o({ hash: r });
10
- return (t.chain?.formatters?.transactionReceipt?.format || a)(e);
1
+ import { TransactionNotFoundError as u } from "./index97.js";
2
+ import { numberToHex as s } from "./index113.js";
3
+ import { formatTransaction as f } from "./index120.js";
4
+ async function B(e, { blockHash: a, blockNumber: r, blockTag: i, hash: o, index: n }) {
5
+ const m = i || "latest", d = r !== void 0 ? s(r) : void 0;
6
+ let t = null;
7
+ if (o ? t = await e.request({
8
+ method: "eth_getTransactionByHash",
9
+ params: [o]
10
+ }, { dedupe: !0 }) : a ? t = await e.request({
11
+ method: "eth_getTransactionByBlockHashAndIndex",
12
+ params: [a, s(n)]
13
+ }, { dedupe: !0 }) : t = await e.request({
14
+ method: "eth_getTransactionByBlockNumberAndIndex",
15
+ params: [d || m, s(n)]
16
+ }, { dedupe: !!d }), !t)
17
+ throw new u({
18
+ blockHash: a,
19
+ blockNumber: r,
20
+ blockTag: m,
21
+ hash: o,
22
+ index: n
23
+ });
24
+ return (e.chain?.formatters?.transaction?.format || f)(t);
11
25
  }
12
26
  export {
13
- m as getTransactionReceipt
27
+ B as getTransaction
14
28
  };
@@ -1,119 +1,13 @@
1
- import { multicall3Abi as x } from "./index73.js";
2
- import { AbiDecodingZeroDataError as P } from "./index80.js";
3
- import { BaseError as _ } from "./index83.js";
4
- import { RawContractError as v } from "./index86.js";
5
- import { decodeFunctionResult as q } from "./index131.js";
6
- import { encodeFunctionData as B } from "./index138.js";
7
- import { getChainContractAddress as O } from "./index174.js";
8
- import { getContractError as E } from "./index181.js";
9
- import { getAction as T } from "./index207.js";
10
- import { readContract as Z } from "./index56.js";
11
- async function W(n, w) {
12
- const { account: b, allowFailure: u = !0, batchSize: F, blockNumber: p, blockTag: j, multicallAddress: y, stateOverride: N } = w, d = w.contracts, C = F ?? (typeof n.batch?.multicall == "object" && n.batch.multicall.batchSize || 1024);
13
- let m = y;
14
- if (!m) {
15
- if (!n.chain)
16
- throw new Error("client chain not configured. multicallAddress is required.");
17
- m = O({
18
- blockNumber: p,
19
- chain: n.chain,
20
- contract: "multicall3"
21
- });
22
- }
23
- const e = [[]];
24
- let a = 0, f = 0;
25
- for (let t = 0; t < d.length; t++) {
26
- const { abi: o, address: s, args: r, functionName: i } = d[t];
27
- try {
28
- const c = B({ abi: o, args: r, functionName: i });
29
- f += (c.length - 2) / 2, // Check if batching is enabled.
30
- C > 0 && // Check if the current size of the batch exceeds the size limit.
31
- f > C && // Check if the current chunk is not already empty.
32
- e[a].length > 0 && (a++, f = (c.length - 2) / 2, e[a] = []), e[a] = [
33
- ...e[a],
34
- {
35
- allowFailure: !0,
36
- callData: c,
37
- target: s
38
- }
39
- ];
40
- } catch (c) {
41
- const g = E(c, {
42
- abi: o,
43
- address: s,
44
- args: r,
45
- docsPath: "/docs/contract/multicall",
46
- functionName: i,
47
- sender: b
48
- });
49
- if (!u)
50
- throw g;
51
- e[a] = [
52
- ...e[a],
53
- {
54
- allowFailure: !0,
55
- callData: "0x",
56
- target: s
57
- }
58
- ];
59
- }
60
- }
61
- const A = await Promise.allSettled(e.map((t) => T(n, Z, "readContract")({
62
- abi: x,
63
- account: b,
64
- address: m,
65
- args: [t],
66
- blockNumber: p,
67
- blockTag: j,
68
- functionName: "aggregate3",
69
- stateOverride: N
70
- }))), l = [];
71
- for (let t = 0; t < A.length; t++) {
72
- const o = A[t];
73
- if (o.status === "rejected") {
74
- if (!u)
75
- throw o.reason;
76
- for (let r = 0; r < e[t].length; r++)
77
- l.push({
78
- status: "failure",
79
- error: o.reason,
80
- result: void 0
81
- });
82
- continue;
83
- }
84
- const s = o.value;
85
- for (let r = 0; r < s.length; r++) {
86
- const { returnData: i, success: c } = s[r], { callData: g } = e[t][r], { abi: D, address: R, functionName: S, args: k } = d[l.length];
87
- try {
88
- if (g === "0x")
89
- throw new P();
90
- if (!c)
91
- throw new v({ data: i });
92
- const h = q({
93
- abi: D,
94
- args: k,
95
- data: i,
96
- functionName: S
97
- });
98
- l.push(u ? { result: h, status: "success" } : h);
99
- } catch (h) {
100
- const z = E(h, {
101
- abi: D,
102
- address: R,
103
- args: k,
104
- docsPath: "/docs/contract/multicall",
105
- functionName: S
106
- });
107
- if (!u)
108
- throw z;
109
- l.push({ error: z, result: void 0, status: "failure" });
110
- }
111
- }
112
- }
113
- if (l.length !== d.length)
114
- throw new _("multicall results mismatch");
115
- return l;
1
+ import { getAction as n } from "./index210.js";
2
+ import { getBlockNumber as a } from "./index41.js";
3
+ import { getTransaction as m } from "./index54.js";
4
+ async function f(o, { hash: r, transactionReceipt: e }) {
5
+ const [c, i] = await Promise.all([
6
+ n(o, a, "getBlockNumber")({}),
7
+ r ? n(o, m, "getTransaction")({ hash: r }) : void 0
8
+ ]), t = e?.blockNumber || i?.blockNumber;
9
+ return t ? c - t + 1n : 0n;
116
10
  }
117
11
  export {
118
- W as multicall
12
+ f as getTransactionConfirmations
119
13
  };
@@ -1,36 +1,17 @@
1
- import { decodeFunctionResult as m } from "./index131.js";
2
- import { encodeFunctionData as s } from "./index138.js";
3
- import { getContractError as f } from "./index181.js";
4
- import { getAction as l } from "./index207.js";
5
- import { call as p } from "./index25.js";
6
- async function x(n, e) {
7
- const { abi: t, address: c, args: o, functionName: r, ...d } = e, i = s({
8
- abi: t,
9
- args: o,
10
- functionName: r
1
+ import { hexToNumber as r } from "./index146.js";
2
+ import { numberToHex as i } from "./index113.js";
3
+ async function m(o, { address: e, blockTag: n = "latest", blockNumber: t }) {
4
+ const a = await o.request({
5
+ method: "eth_getTransactionCount",
6
+ params: [
7
+ e,
8
+ typeof t == "bigint" ? i(t) : n
9
+ ]
10
+ }, {
11
+ dedupe: !!t
11
12
  });
12
- try {
13
- const { data: a } = await l(n, p, "call")({
14
- ...d,
15
- data: i,
16
- to: c
17
- });
18
- return m({
19
- abi: t,
20
- args: o,
21
- functionName: r,
22
- data: a || "0x"
23
- });
24
- } catch (a) {
25
- throw f(a, {
26
- abi: t,
27
- address: c,
28
- args: o,
29
- docsPath: "/docs/contract/readContract",
30
- functionName: r
31
- });
32
- }
13
+ return r(a);
33
14
  }
34
15
  export {
35
- x as readContract
16
+ m as getTransactionCount
36
17
  };
@@ -1,82 +1,14 @@
1
- import { toRpc as R } from "./index216.js";
2
- import { parseAccount as q } from "./index12.js";
3
- import { AbiDecodingZeroDataError as D } from "./index80.js";
4
- import { RawContractError as S } from "./index86.js";
5
- import { UnknownNodeError as y } from "./index102.js";
6
- import { decodeFunctionResult as B } from "./index131.js";
7
- import { encodeFunctionData as C } from "./index138.js";
8
- import { concat as F } from "./index114.js";
9
- import { numberToHex as H } from "./index110.js";
10
- import { getContractError as U } from "./index181.js";
11
- import { getNodeError as A } from "./index226.js";
12
- import { formatBlock as _ } from "./index115.js";
13
- import { formatLog as z } from "./index118.js";
14
- import { formatTransactionRequest as I } from "./index145.js";
15
- import { serializeStateOverride as L } from "./index220.js";
16
- import { assertRequest as V } from "./index158.js";
17
- async function nr(p, g) {
18
- const { blockNumber: b, blockTag: x = p.experimental_blockTag ?? "latest", blocks: k, returnFullTransactions: v, traceTransfers: w, validation: N } = g;
19
- try {
20
- const a = [];
21
- for (const o of k) {
22
- const d = o.blockOverrides ? R(o.blockOverrides) : void 0, t = o.calls.map((n) => {
23
- const r = n, i = r.account ? q(r.account) : void 0, m = r.abi ? C(r) : r.data, e = {
24
- ...r,
25
- data: r.dataSuffix ? F([m || "0x", r.dataSuffix]) : m,
26
- from: r.from ?? i?.address
27
- };
28
- return V(e), I(e);
29
- }), l = o.stateOverrides ? L(o.stateOverrides) : void 0;
30
- a.push({
31
- blockOverrides: d,
32
- calls: t,
33
- stateOverrides: l
34
- });
35
- }
36
- const c = (typeof b == "bigint" ? H(b) : void 0) || x;
37
- return (await p.request({
38
- method: "eth_simulateV1",
39
- params: [
40
- { blockStateCalls: a, returnFullTransactions: v, traceTransfers: w, validation: N },
41
- c
42
- ]
43
- })).map((o, d) => ({
44
- ..._(o),
45
- calls: o.calls.map((t, l) => {
46
- const { abi: n, args: r, functionName: i, to: m } = k[d].calls[l], e = t.error?.data ?? t.returnData, O = BigInt(t.gasUsed), h = t.logs?.map((s) => z(s)), u = t.status === "0x1" ? "success" : "failure", T = n && u === "success" && e !== "0x" ? B({
47
- abi: n,
48
- data: e,
49
- functionName: i
50
- }) : null, E = (() => {
51
- if (u === "success")
52
- return;
53
- let s;
54
- if (t.error?.data === "0x" ? s = new D() : t.error && (s = new S(t.error)), !!s)
55
- return U(s, {
56
- abi: n ?? [],
57
- address: m ?? "0x",
58
- args: r,
59
- functionName: i ?? "<unknown>"
60
- });
61
- })();
62
- return {
63
- data: e,
64
- gasUsed: O,
65
- logs: h,
66
- status: u,
67
- ...u === "success" ? {
68
- result: T
69
- } : {
70
- error: E
71
- }
72
- };
73
- })
74
- }));
75
- } catch (a) {
76
- const f = a, c = A(f, {});
77
- throw c instanceof y ? f : c;
78
- }
1
+ import { TransactionReceiptNotFoundError as o } from "./index97.js";
2
+ import { formatTransactionReceipt as a } from "./index147.js";
3
+ async function m(t, { hash: r }) {
4
+ const e = await t.request({
5
+ method: "eth_getTransactionReceipt",
6
+ params: [r]
7
+ }, { dedupe: !0 });
8
+ if (!e)
9
+ throw new o({ hash: r });
10
+ return (t.chain?.formatters?.transactionReceipt?.format || a)(e);
79
11
  }
80
12
  export {
81
- nr as simulateBlocks
13
+ m as getTransactionReceipt
82
14
  };
@@ -1,180 +1,119 @@
1
- import { encode as J, from as K } from "./index227.js";
2
- import { encodeData as M, from as o } from "./index228.js";
3
- import { parseAccount as Q } from "./index12.js";
4
- import { zeroAddress as t, ethAddress as S } from "./index74.js";
5
- import { deploylessCallViaBytecodeBytecode as W } from "./index75.js";
6
- import { BaseError as X } from "./index83.js";
7
- import { encodeFunctionData as Y } from "./index138.js";
8
- import { createAccessList as Z } from "./index26.js";
9
- import { simulateBlocks as ss } from "./index57.js";
10
- import { hexToBigInt as k } from "./index143.js";
11
- const es = "0x6080604052348015600e575f80fd5b5061016d8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f8b2cb4f1461002d575b5f80fd5b610047600480360381019061004291906100db565b61005d565b604051610054919061011e565b60405180910390f35b5f8173ffffffffffffffffffffffffffffffffffffffff16319050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100aa82610081565b9050919050565b6100ba816100a0565b81146100c4575f80fd5b50565b5f813590506100d5816100b1565b92915050565b5f602082840312156100f0576100ef61007d565b5b5f6100fd848285016100c7565b91505092915050565b5f819050919050565b61011881610106565b82525050565b5f6020820190506101315f83018461010f565b9291505056fea26469706673582212203b9fe929fe995c7cf9887f0bdba8a36dd78e8b73f149b17d2d9ad7cd09d2dc6264736f6c634300081a0033";
12
- async function bs(b, r) {
13
- const { blockNumber: g, blockTag: y, calls: h, stateOverrides: u, traceAssetChanges: a, traceTransfers: P, validation: _ } = r, f = r.account ? Q(r.account) : void 0;
14
- if (a && !f)
15
- throw new X("`account` is required when `traceAssetChanges` is true");
16
- const m = f ? J(K("constructor(bytes, bytes)"), {
17
- bytecode: W,
18
- args: [
19
- es,
20
- M(o("function getBalance(address)"), [f.address])
21
- ]
22
- }) : void 0, n = a ? await Promise.all(r.calls.map(async (s) => {
23
- if (!s.data && !s.abi)
24
- return;
25
- const { accessList: e } = await Z(b, {
26
- account: f.address,
27
- ...s,
28
- data: s.abi ? Y(s) : s.data
1
+ import { multicall3Abi as x } from "./index76.js";
2
+ import { AbiDecodingZeroDataError as P } from "./index83.js";
3
+ import { BaseError as _ } from "./index86.js";
4
+ import { RawContractError as v } from "./index89.js";
5
+ import { decodeFunctionResult as q } from "./index134.js";
6
+ import { encodeFunctionData as B } from "./index141.js";
7
+ import { getChainContractAddress as O } from "./index177.js";
8
+ import { getContractError as E } from "./index184.js";
9
+ import { getAction as T } from "./index210.js";
10
+ import { readContract as Z } from "./index59.js";
11
+ async function W(n, w) {
12
+ const { account: b, allowFailure: u = !0, batchSize: F, blockNumber: p, blockTag: j, multicallAddress: y, stateOverride: N } = w, d = w.contracts, C = F ?? (typeof n.batch?.multicall == "object" && n.batch.multicall.batchSize || 1024);
13
+ let m = y;
14
+ if (!m) {
15
+ if (!n.chain)
16
+ throw new Error("client chain not configured. multicallAddress is required.");
17
+ m = O({
18
+ blockNumber: p,
19
+ chain: n.chain,
20
+ contract: "multicall3"
29
21
  });
30
- return e.map(({ address: c, storageKeys: d }) => d.length > 0 ? c : null);
31
- })).then((s) => s.flat().filter(Boolean)) : [], l = await ss(b, {
32
- blockNumber: g,
33
- blockTag: y,
34
- blocks: [
35
- ...a ? [
36
- // ETH pre balances
37
- {
38
- calls: [{ data: m }],
39
- stateOverrides: u
40
- },
41
- // Asset pre balances
22
+ }
23
+ const e = [[]];
24
+ let a = 0, f = 0;
25
+ for (let t = 0; t < d.length; t++) {
26
+ const { abi: o, address: s, args: r, functionName: i } = d[t];
27
+ try {
28
+ const c = B({ abi: o, args: r, functionName: i });
29
+ f += (c.length - 2) / 2, // Check if batching is enabled.
30
+ C > 0 && // Check if the current size of the batch exceeds the size limit.
31
+ f > C && // Check if the current chunk is not already empty.
32
+ e[a].length > 0 && (a++, f = (c.length - 2) / 2, e[a] = []), e[a] = [
33
+ ...e[a],
42
34
  {
43
- calls: n.map((s, e) => ({
44
- abi: [
45
- o("function balanceOf(address) returns (uint256)")
46
- ],
47
- functionName: "balanceOf",
48
- args: [f.address],
49
- to: s,
50
- from: t,
51
- nonce: e
52
- })),
53
- stateOverrides: [
54
- {
55
- address: t,
56
- nonce: 0
57
- }
58
- ]
35
+ allowFailure: !0,
36
+ callData: c,
37
+ target: s
59
38
  }
60
- ] : [],
61
- {
62
- calls: [...h, {}].map((s) => ({
63
- ...s,
64
- from: f?.address
65
- })),
66
- stateOverrides: u
67
- },
68
- ...a ? [
69
- // ETH post balances
70
- {
71
- calls: [{ data: m }]
72
- },
73
- // Asset post balances
74
- {
75
- calls: n.map((s, e) => ({
76
- abi: [
77
- o("function balanceOf(address) returns (uint256)")
78
- ],
79
- functionName: "balanceOf",
80
- args: [f.address],
81
- to: s,
82
- from: t,
83
- nonce: e
84
- })),
85
- stateOverrides: [
86
- {
87
- address: t,
88
- nonce: 0
89
- }
90
- ]
91
- },
92
- // Decimals
39
+ ];
40
+ } catch (c) {
41
+ const g = E(c, {
42
+ abi: o,
43
+ address: s,
44
+ args: r,
45
+ docsPath: "/docs/contract/multicall",
46
+ functionName: i,
47
+ sender: b
48
+ });
49
+ if (!u)
50
+ throw g;
51
+ e[a] = [
52
+ ...e[a],
93
53
  {
94
- calls: n.map((s, e) => ({
95
- to: s,
96
- abi: [
97
- o("function decimals() returns (uint256)")
98
- ],
99
- functionName: "decimals",
100
- from: t,
101
- nonce: e
102
- })),
103
- stateOverrides: [
104
- {
105
- address: t,
106
- nonce: 0
107
- }
108
- ]
109
- },
110
- // Token URI
111
- {
112
- calls: n.map((s, e) => ({
113
- to: s,
114
- abi: [
115
- o("function tokenURI(uint256) returns (string)")
116
- ],
117
- functionName: "tokenURI",
118
- args: [0n],
119
- from: t,
120
- nonce: e
121
- })),
122
- stateOverrides: [
123
- {
124
- address: t,
125
- nonce: 0
126
- }
127
- ]
128
- },
129
- // Symbols
130
- {
131
- calls: n.map((s, e) => ({
132
- to: s,
133
- abi: [o("function symbol() returns (string)")],
134
- functionName: "symbol",
135
- from: t,
136
- nonce: e
137
- })),
138
- stateOverrides: [
139
- {
140
- address: t,
141
- nonce: 0
142
- }
143
- ]
54
+ allowFailure: !0,
55
+ callData: "0x",
56
+ target: s
144
57
  }
145
- ] : []
146
- ],
147
- traceTransfers: P,
148
- validation: _
149
- }), O = a ? l[2] : l[0], [B, v, , A, N, w, C, I] = a ? l : [], { calls: R, ...T } = O, U = R.slice(0, -1) ?? [], D = B?.calls ?? [], E = v?.calls ?? [], L = [...D, ...E].map((s) => s.status === "success" ? k(s.data) : null), q = A?.calls ?? [], z = N?.calls ?? [], F = [...q, ...z].map((s) => s.status === "success" ? k(s.data) : null), H = (w?.calls ?? []).map((s) => s.status === "success" ? s.result : null), V = (I?.calls ?? []).map((s) => s.status === "success" ? s.result : null), $ = (C?.calls ?? []).map((s) => s.status === "success" ? s.result : null), i = [];
150
- for (const [s, e] of F.entries()) {
151
- const c = L[s];
152
- if (typeof e != "bigint" || typeof c != "bigint")
58
+ ];
59
+ }
60
+ }
61
+ const A = await Promise.allSettled(e.map((t) => T(n, Z, "readContract")({
62
+ abi: x,
63
+ account: b,
64
+ address: m,
65
+ args: [t],
66
+ blockNumber: p,
67
+ blockTag: j,
68
+ functionName: "aggregate3",
69
+ stateOverride: N
70
+ }))), l = [];
71
+ for (let t = 0; t < A.length; t++) {
72
+ const o = A[t];
73
+ if (o.status === "rejected") {
74
+ if (!u)
75
+ throw o.reason;
76
+ for (let r = 0; r < e[t].length; r++)
77
+ l.push({
78
+ status: "failure",
79
+ error: o.reason,
80
+ result: void 0
81
+ });
153
82
  continue;
154
- const d = H[s - 1], j = V[s - 1], x = $[s - 1], p = s === 0 ? {
155
- address: S,
156
- decimals: 18,
157
- symbol: "ETH"
158
- } : {
159
- address: n[s - 1],
160
- decimals: x || d ? Number(d ?? 1) : void 0,
161
- symbol: j ?? void 0
162
- };
163
- i.some((G) => G.token.address === p.address) || i.push({
164
- token: p,
165
- value: {
166
- pre: c,
167
- post: e,
168
- diff: e - c
83
+ }
84
+ const s = o.value;
85
+ for (let r = 0; r < s.length; r++) {
86
+ const { returnData: i, success: c } = s[r], { callData: g } = e[t][r], { abi: D, address: R, functionName: S, args: k } = d[l.length];
87
+ try {
88
+ if (g === "0x")
89
+ throw new P();
90
+ if (!c)
91
+ throw new v({ data: i });
92
+ const h = q({
93
+ abi: D,
94
+ args: k,
95
+ data: i,
96
+ functionName: S
97
+ });
98
+ l.push(u ? { result: h, status: "success" } : h);
99
+ } catch (h) {
100
+ const z = E(h, {
101
+ abi: D,
102
+ address: R,
103
+ args: k,
104
+ docsPath: "/docs/contract/multicall",
105
+ functionName: S
106
+ });
107
+ if (!u)
108
+ throw z;
109
+ l.push({ error: z, result: void 0, status: "failure" });
169
110
  }
170
- });
111
+ }
171
112
  }
172
- return {
173
- assetChanges: i,
174
- block: T,
175
- results: U
176
- };
113
+ if (l.length !== d.length)
114
+ throw new _("multicall results mismatch");
115
+ return l;
177
116
  }
178
117
  export {
179
- bs as simulateCalls
118
+ W as multicall
180
119
  };