@coinbase/cdp-hooks 0.0.66 → 0.0.68

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