@coinbase/cdp-hooks 0.0.25 → 0.0.26

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