@coinbase/cdp-hooks 0.0.75 → 0.0.77

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 (307) hide show
  1. package/README.md +199 -5
  2. package/dist/esm/index.js +38 -32
  3. package/dist/esm/index10.js +1 -1
  4. package/dist/esm/index100.js +276 -9
  5. package/dist/esm/index101.js +3 -2
  6. package/dist/esm/index102.js +4 -2
  7. package/dist/esm/index103.js +9 -3
  8. package/dist/esm/index104.js +2 -327
  9. package/dist/esm/index105.js +2 -14
  10. package/dist/esm/index106.js +3 -5
  11. package/dist/esm/index107.js +299 -28
  12. package/dist/esm/index108.js +14 -2
  13. package/dist/esm/index109.js +4 -7
  14. package/dist/esm/index11.js +1 -1
  15. package/dist/esm/index110.js +29 -188
  16. package/dist/esm/index111.js +2 -32
  17. package/dist/esm/index112.js +7 -21
  18. package/dist/esm/index113.js +214 -5
  19. package/dist/esm/index114.js +30 -72
  20. package/dist/esm/index115.js +21 -5
  21. package/dist/esm/index116.js +5 -5
  22. package/dist/esm/index117.js +69 -31
  23. package/dist/esm/index118.js +5 -75
  24. package/dist/esm/index119.js +6 -3
  25. package/dist/esm/index12.js +1 -1
  26. package/dist/esm/index120.js +28 -16
  27. package/dist/esm/index121.js +57 -433
  28. package/dist/esm/index122.js +3 -31
  29. package/dist/esm/index123.js +17 -20
  30. package/dist/esm/index124.js +439 -21
  31. package/dist/esm/index125.js +28 -32
  32. package/dist/esm/index126.js +18 -185
  33. package/dist/esm/index127.js +31 -6
  34. package/dist/esm/index128.js +35 -2
  35. package/dist/esm/index129.js +189 -8
  36. package/dist/esm/index13.js +1 -1
  37. package/dist/esm/index130.js +7 -17
  38. package/dist/esm/index131.js +2 -28
  39. package/dist/esm/index132.js +12 -8
  40. package/dist/esm/index133.js +15 -52
  41. package/dist/esm/index134.js +23 -41
  42. package/dist/esm/index135.js +8 -8
  43. package/dist/esm/index136.js +55 -7
  44. package/dist/esm/index137.js +44 -15
  45. package/dist/esm/index138.js +8 -18
  46. package/dist/esm/index139.js +7 -24
  47. package/dist/esm/index14.js +1 -1
  48. package/dist/esm/index140.js +16 -16
  49. package/dist/esm/index141.js +17 -53
  50. package/dist/esm/index142.js +22 -9
  51. package/dist/esm/index143.js +15 -159
  52. package/dist/esm/index144.js +53 -20
  53. package/dist/esm/index145.js +11 -127
  54. package/dist/esm/index146.js +153 -31
  55. package/dist/esm/index147.js +21 -6
  56. package/dist/esm/index148.js +127 -27
  57. package/dist/esm/index149.js +31 -184
  58. package/dist/esm/index15.js +1 -1
  59. package/dist/esm/index150.js +7 -4
  60. package/dist/esm/index151.js +26 -63
  61. package/dist/esm/index152.js +192 -3
  62. package/dist/esm/index153.js +4 -21
  63. package/dist/esm/index154.js +61 -13
  64. package/dist/esm/index155.js +3 -24
  65. package/dist/esm/index156.js +20 -11
  66. package/dist/esm/index157.js +15 -33
  67. package/dist/esm/index158.js +24 -3
  68. package/dist/esm/index159.js +11 -18
  69. package/dist/esm/index16.js +1 -1
  70. package/dist/esm/index160.js +33 -26
  71. package/dist/esm/index161.js +3 -36
  72. package/dist/esm/index162.js +18 -7
  73. package/dist/esm/index163.js +26 -24
  74. package/dist/esm/index164.js +34 -27
  75. package/dist/esm/index165.js +7 -64
  76. package/dist/esm/index166.js +25 -9
  77. package/dist/esm/index167.js +28 -33
  78. package/dist/esm/index168.js +64 -27
  79. package/dist/esm/index169.js +9 -24
  80. package/dist/esm/index17.js +36 -5
  81. package/dist/esm/index170.js +33 -3
  82. package/dist/esm/index171.js +27 -14
  83. package/dist/esm/index172.js +24 -103
  84. package/dist/esm/index173.js +3 -64
  85. package/dist/esm/index174.js +14 -5
  86. package/dist/esm/index175.js +103 -6
  87. package/dist/esm/index176.js +62 -25
  88. package/dist/esm/index177.js +5 -38
  89. package/dist/esm/index178.js +6 -13
  90. package/dist/esm/index179.js +24 -39
  91. package/dist/esm/index18.js +28 -7
  92. package/dist/esm/index180.js +38 -5
  93. package/dist/esm/index181.js +13 -11
  94. package/dist/esm/index182.js +42 -19
  95. package/dist/esm/index183.js +5 -78
  96. package/dist/esm/index184.js +12 -2
  97. package/dist/esm/index185.js +19 -37
  98. package/dist/esm/index186.js +73 -105
  99. package/dist/esm/index187.js +2 -49
  100. package/dist/esm/index188.js +36 -31
  101. package/dist/esm/index189.js +110 -8
  102. package/dist/esm/index19.js +7 -6
  103. package/dist/esm/index190.js +48 -6
  104. package/dist/esm/index191.js +32 -6
  105. package/dist/esm/index192.js +8 -11
  106. package/dist/esm/index193.js +6 -10
  107. package/dist/esm/index194.js +6 -13
  108. package/dist/esm/index195.js +11 -32
  109. package/dist/esm/index196.js +11 -5
  110. package/dist/esm/index197.js +13 -8
  111. package/dist/esm/index198.js +30 -17
  112. package/dist/esm/index199.js +5 -32
  113. package/dist/esm/index2.js +2 -2
  114. package/dist/esm/index20.js +4 -7
  115. package/dist/esm/index200.js +8 -20
  116. package/dist/esm/index201.js +19 -3
  117. package/dist/esm/index202.js +31 -17
  118. package/dist/esm/index203.js +20 -10
  119. package/dist/esm/index204.js +3 -21
  120. package/dist/esm/index205.js +16 -21
  121. package/dist/esm/index206.js +10 -5
  122. package/dist/esm/index207.js +21 -5
  123. package/dist/esm/index208.js +22 -8
  124. package/dist/esm/index209.js +5 -104
  125. package/dist/esm/index21.js +5 -5
  126. package/dist/esm/index210.js +6 -3
  127. package/dist/esm/index211.js +8 -18
  128. package/dist/esm/index212.js +99 -166
  129. package/dist/esm/index213.js +3 -18
  130. package/dist/esm/index214.js +19 -10
  131. package/dist/esm/index215.js +171 -38
  132. package/dist/esm/index216.js +18 -2
  133. package/dist/esm/index217.js +10 -70
  134. package/dist/esm/index218.js +37 -33
  135. package/dist/esm/index219.js +2 -15
  136. package/dist/esm/index22.js +5 -5
  137. package/dist/esm/index220.js +70 -2
  138. package/dist/esm/index221.js +34 -40
  139. package/dist/esm/index222.js +15 -2
  140. package/dist/esm/index223.js +40 -4
  141. package/dist/esm/index224.js +2 -11
  142. package/dist/esm/index225.js +4 -19
  143. package/dist/esm/index226.js +10 -7
  144. package/dist/esm/index227.js +18 -10
  145. package/dist/esm/index228.js +7 -66
  146. package/dist/esm/index229.js +9 -63
  147. package/dist/esm/index23.js +5 -5
  148. package/dist/esm/index230.js +56 -175
  149. package/dist/esm/index231.js +63 -20
  150. package/dist/esm/index232.js +180 -37
  151. package/dist/esm/index233.js +21 -75
  152. package/dist/esm/index234.js +22 -20
  153. package/dist/esm/index235.js +69 -9
  154. package/dist/esm/index236.js +34 -7
  155. package/dist/esm/index237.js +16 -7
  156. package/dist/esm/index238.js +13 -6
  157. package/dist/esm/index239.js +7 -36
  158. package/dist/esm/index24.js +6 -55
  159. package/dist/esm/index240.js +6 -15
  160. package/dist/esm/index241.js +36 -8
  161. package/dist/esm/index242.js +15 -12
  162. package/dist/esm/index243.js +8 -9
  163. package/dist/esm/index244.js +12 -16
  164. package/dist/esm/index245.js +9 -22
  165. package/dist/esm/index246.js +16 -30
  166. package/dist/esm/index247.js +23 -2
  167. package/dist/esm/index248.js +30 -13
  168. package/dist/esm/index249.js +2 -13
  169. package/dist/esm/index25.js +7 -8
  170. package/dist/esm/index250.js +13 -47
  171. package/dist/esm/index251.js +12 -9
  172. package/dist/esm/index252.js +47 -13
  173. package/dist/esm/index253.js +9 -14
  174. package/dist/esm/index254.js +13 -8
  175. package/dist/esm/index255.js +14 -15
  176. package/dist/esm/index256.js +8 -24
  177. package/dist/esm/index257.js +14 -10
  178. package/dist/esm/index258.js +24 -24
  179. package/dist/esm/index259.js +11 -51
  180. package/dist/esm/index26.js +8 -34
  181. package/dist/esm/index260.js +24 -17
  182. package/dist/esm/index261.js +48 -11
  183. package/dist/esm/index262.js +17 -11
  184. package/dist/esm/index263.js +13 -102
  185. package/dist/esm/index264.js +11 -5
  186. package/dist/esm/index265.js +101 -221
  187. package/dist/esm/index266.js +5 -6
  188. package/dist/esm/index267.js +224 -7
  189. package/dist/esm/index268.js +6 -26
  190. package/dist/esm/index269.js +7 -20
  191. package/dist/esm/index27.js +57 -18
  192. package/dist/esm/index270.js +24 -143
  193. package/dist/esm/index271.js +19 -12
  194. package/dist/esm/index272.js +145 -35
  195. package/dist/esm/index273.js +12 -41
  196. package/dist/esm/index274.js +35 -68
  197. package/dist/esm/index275.js +41 -3
  198. package/dist/esm/index276.js +2 -137
  199. package/dist/esm/index277.js +69 -156
  200. package/dist/esm/index278.js +134 -7
  201. package/dist/esm/index279.js +3 -16
  202. package/dist/esm/index28.js +8 -11
  203. package/dist/esm/index280.js +140 -98
  204. package/dist/esm/index281.js +9 -134
  205. package/dist/esm/index282.js +16 -78
  206. package/dist/esm/index283.js +114 -2
  207. package/dist/esm/index284.js +124 -687
  208. package/dist/esm/index285.js +73 -133
  209. package/dist/esm/index286.js +2 -43
  210. package/dist/esm/index287.js +675 -178
  211. package/dist/esm/index288.js +138 -3
  212. package/dist/esm/index289.js +40 -63
  213. package/dist/esm/index29.js +34 -12
  214. package/dist/esm/index290.js +200 -4
  215. package/dist/esm/index291.js +3 -40
  216. package/dist/esm/index292.js +65 -7
  217. package/dist/esm/index293.js +4 -62
  218. package/dist/esm/index294.js +33 -70
  219. package/dist/esm/index295.js +8 -4
  220. package/dist/esm/index296.js +55 -187
  221. package/dist/esm/index297.js +61 -47
  222. package/dist/esm/index298.js +4 -45
  223. package/dist/esm/index299.js +194 -4
  224. package/dist/esm/index3.js +1 -1
  225. package/dist/esm/index30.js +18 -54
  226. package/dist/esm/index300.js +64 -5
  227. package/dist/esm/index301.js +45 -2
  228. package/dist/esm/index302.js +4 -21
  229. package/dist/esm/index303.js +7 -0
  230. package/dist/esm/index304.js +4 -0
  231. package/dist/esm/index305.js +24 -0
  232. package/dist/esm/index31.js +11 -57
  233. package/dist/esm/index32.js +12 -56
  234. package/dist/esm/index33.js +54 -5
  235. package/dist/esm/index34.js +57 -47
  236. package/dist/esm/index35.js +56 -33
  237. package/dist/esm/index36.js +5 -4
  238. package/dist/esm/index37.js +46 -8
  239. package/dist/esm/index38.js +31 -67
  240. package/dist/esm/index39.js +3 -9
  241. package/dist/esm/index40.js +9 -28
  242. package/dist/esm/index41.js +68 -70
  243. package/dist/esm/index42.js +9 -19
  244. package/dist/esm/index43.js +26 -108
  245. package/dist/esm/index44.js +70 -60
  246. package/dist/esm/index45.js +19 -24
  247. package/dist/esm/index46.js +110 -40
  248. package/dist/esm/index47.js +57 -34
  249. package/dist/esm/index48.js +20 -54
  250. package/dist/esm/index49.js +37 -160
  251. package/dist/esm/index5.js +3 -3
  252. package/dist/esm/index50.js +36 -38
  253. package/dist/esm/index51.js +58 -9
  254. package/dist/esm/index52.js +161 -29
  255. package/dist/esm/index53.js +39 -36
  256. package/dist/esm/index54.js +7 -7
  257. package/dist/esm/index55.js +30 -28
  258. package/dist/esm/index56.js +34 -44
  259. package/dist/esm/index57.js +9 -88
  260. package/dist/esm/index58.js +26 -37
  261. package/dist/esm/index59.js +46 -8
  262. package/dist/esm/index6.js +2 -2
  263. package/dist/esm/index60.js +88 -6
  264. package/dist/esm/index61.js +40 -16
  265. package/dist/esm/index62.js +8 -8
  266. package/dist/esm/index63.js +6 -13
  267. package/dist/esm/index64.js +16 -7
  268. package/dist/esm/index65.js +8 -9
  269. package/dist/esm/index66.js +13 -16
  270. package/dist/esm/index67.js +7 -46
  271. package/dist/esm/index68.js +9 -13
  272. package/dist/esm/index69.js +15 -15
  273. package/dist/esm/index7.js +1 -1
  274. package/dist/esm/index70.js +46 -13
  275. package/dist/esm/index71.js +13 -6
  276. package/dist/esm/index72.js +15 -34
  277. package/dist/esm/index73.js +13 -9
  278. package/dist/esm/index74.js +5 -7
  279. package/dist/esm/index75.js +35 -25
  280. package/dist/esm/index76.js +9 -10
  281. package/dist/esm/index77.js +7 -13
  282. package/dist/esm/index78.js +25 -11
  283. package/dist/esm/index79.js +10 -116
  284. package/dist/esm/index8.js +2 -2
  285. package/dist/esm/index80.js +13 -32
  286. package/dist/esm/index81.js +11 -79
  287. package/dist/esm/index82.js +108 -169
  288. package/dist/esm/index83.js +26 -37
  289. package/dist/esm/index84.js +79 -6
  290. package/dist/esm/index85.js +177 -13
  291. package/dist/esm/index86.js +44 -13
  292. package/dist/esm/index87.js +6 -99
  293. package/dist/esm/index88.js +13 -72
  294. package/dist/esm/index89.js +13 -87
  295. package/dist/esm/index9.js +1 -1
  296. package/dist/esm/index90.js +93 -142
  297. package/dist/esm/index91.js +65 -129
  298. package/dist/esm/index92.js +73 -54
  299. package/dist/esm/index93.js +148 -23
  300. package/dist/esm/index94.js +133 -102
  301. package/dist/esm/index95.js +68 -6
  302. package/dist/esm/index96.js +23 -131
  303. package/dist/esm/index97.js +101 -271
  304. package/dist/esm/index98.js +7 -3
  305. package/dist/esm/index99.js +132 -4
  306. package/dist/types/index.d.ts +23 -1
  307. package/package.json +3 -3
@@ -1,119 +1,13 @@
1
- import { multicall3Abi as x } from "./index97.js";
2
- import { AbiDecodingZeroDataError as P } from "./index104.js";
3
- import { BaseError as _ } from "./index107.js";
4
- import { RawContractError as v } from "./index110.js";
5
- import { decodeFunctionResult as q } from "./index155.js";
6
- import { encodeFunctionData as B } from "./index162.js";
7
- import { getChainContractAddress as O } from "./index198.js";
8
- import { getContractError as E } from "./index205.js";
9
- import { getAction as T } from "./index237.js";
10
- import { readContract as Z } from "./index80.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 "./index239.js";
2
+ import { getBlockNumber as a } from "./index65.js";
3
+ import { getTransaction as m } from "./index78.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,9 +1,9 @@
1
1
  import { revokeSpendPermission as i } from "@coinbase/cdp-core";
2
2
  import "./index2.js";
3
- import { useSendHookCallOnce as p } from "./index25.js";
3
+ import { useSendHookCallOnce as p } from "./index28.js";
4
4
  import { useState as d } from "react";
5
5
  import { useCurrentUser as v, useWaitForUserOperation as S, useEnforceAuthenticated as k } from "./index5.js";
6
- import { validateUserOwnsSmartAccount as O } from "./index28.js";
6
+ import { validateUserOwnsSmartAccount as O } from "./index31.js";
7
7
  const C = () => {
8
8
  p("use_revoke_spend_permission");
9
9
  const { currentUser: r } = v(), [o, n] = d(
@@ -1,36 +1,17 @@
1
- import { decodeFunctionResult as m } from "./index155.js";
2
- import { encodeFunctionData as s } from "./index162.js";
3
- import { getContractError as f } from "./index205.js";
4
- import { getAction as l } from "./index237.js";
5
- import { call as p } from "./index49.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 "./index170.js";
2
+ import { numberToHex as i } from "./index137.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 "./index246.js";
2
- import { parseAccount as q } from "./index36.js";
3
- import { AbiDecodingZeroDataError as D } from "./index104.js";
4
- import { RawContractError as S } from "./index110.js";
5
- import { UnknownNodeError as y } from "./index126.js";
6
- import { decodeFunctionResult as B } from "./index155.js";
7
- import { encodeFunctionData as C } from "./index162.js";
8
- import { concat as F } from "./index138.js";
9
- import { numberToHex as H } from "./index134.js";
10
- import { getContractError as U } from "./index205.js";
11
- import { getNodeError as A } from "./index256.js";
12
- import { formatBlock as _ } from "./index139.js";
13
- import { formatLog as z } from "./index142.js";
14
- import { formatTransactionRequest as I } from "./index169.js";
15
- import { serializeStateOverride as L } from "./index250.js";
16
- import { assertRequest as V } from "./index182.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 "./index121.js";
2
+ import { formatTransactionReceipt as a } from "./index171.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 "./index257.js";
2
- import { encodeData as M, from as o } from "./index258.js";
3
- import { parseAccount as Q } from "./index36.js";
4
- import { zeroAddress as t, ethAddress as S } from "./index98.js";
5
- import { deploylessCallViaBytecodeBytecode as W } from "./index99.js";
6
- import { BaseError as X } from "./index107.js";
7
- import { encodeFunctionData as Y } from "./index162.js";
8
- import { createAccessList as Z } from "./index50.js";
9
- import { simulateBlocks as ss } from "./index81.js";
10
- import { hexToBigInt as k } from "./index167.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 "./index100.js";
2
+ import { AbiDecodingZeroDataError as P } from "./index107.js";
3
+ import { BaseError as _ } from "./index110.js";
4
+ import { RawContractError as v } from "./index113.js";
5
+ import { decodeFunctionResult as q } from "./index158.js";
6
+ import { encodeFunctionData as B } from "./index165.js";
7
+ import { getChainContractAddress as O } from "./index201.js";
8
+ import { getContractError as E } from "./index208.js";
9
+ import { getAction as T } from "./index239.js";
10
+ import { readContract as Z } from "./index83.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
  };
@@ -1,47 +1,36 @@
1
- import { parseAccount as p } from "./index36.js";
2
- import { decodeFunctionResult as h } from "./index155.js";
3
- import { encodeFunctionData as x } from "./index162.js";
4
- import { getContractError as b } from "./index205.js";
5
- import { getAction as g } from "./index237.js";
6
- import { call as A } from "./index49.js";
7
- async function R(s, m) {
8
- const { abi: t, address: r, args: o, dataSuffix: n, functionName: a, ...c } = m, e = c.account ? p(c.account) : s.account, d = x({ abi: t, args: o, functionName: a });
1
+ import { decodeFunctionResult as m } from "./index158.js";
2
+ import { encodeFunctionData as s } from "./index165.js";
3
+ import { getContractError as f } from "./index208.js";
4
+ import { getAction as l } from "./index239.js";
5
+ import { call as p } from "./index52.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
11
+ });
9
12
  try {
10
- const { data: i } = await g(s, A, "call")({
11
- batch: !1,
12
- data: `${d}${n ? n.replace("0x", "") : ""}`,
13
- to: r,
14
- ...c,
15
- account: e
16
- }), l = h({
13
+ const { data: a } = await l(n, p, "call")({
14
+ ...d,
15
+ data: i,
16
+ to: c
17
+ });
18
+ return m({
17
19
  abi: t,
18
20
  args: o,
19
- functionName: a,
20
- data: i || "0x"
21
- }), f = t.filter((u) => "name" in u && u.name === m.functionName);
22
- return {
23
- result: l,
24
- request: {
25
- abi: f,
26
- address: r,
27
- args: o,
28
- dataSuffix: n,
29
- functionName: a,
30
- ...c,
31
- account: e
32
- }
33
- };
34
- } catch (i) {
35
- throw b(i, {
21
+ functionName: r,
22
+ data: a || "0x"
23
+ });
24
+ } catch (a) {
25
+ throw f(a, {
36
26
  abi: t,
37
- address: r,
27
+ address: c,
38
28
  args: o,
39
- docsPath: "/docs/contract/simulateContract",
40
- functionName: a,
41
- sender: e?.address
29
+ docsPath: "/docs/contract/readContract",
30
+ functionName: r
42
31
  });
43
32
  }
44
33
  }
45
34
  export {
46
- R as simulateContract
35
+ x as readContract
47
36
  };