@coinbase/cdp-hooks 0.0.52 → 0.0.53

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