@coinbase/cdp-hooks 0.0.70 → 0.0.72

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