@coinbase/cdp-hooks 0.0.81 → 0.0.82

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