@lidofinance/lsv-cli 1.0.0-alpha.60 → 1.0.0-alpha.62

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 (237) hide show
  1. package/README.md +26 -14
  2. package/dist/abi/Dashboard.d.ts +706 -445
  3. package/dist/abi/Dashboard.js +331 -300
  4. package/dist/abi/Dashboard.js.map +1 -1
  5. package/dist/abi/LazyOracle.d.ts +286 -47
  6. package/dist/abi/LazyOracle.js +357 -48
  7. package/dist/abi/LazyOracle.js.map +1 -1
  8. package/dist/abi/LidoLocator.d.ts +28 -0
  9. package/dist/abi/LidoLocator.js +36 -0
  10. package/dist/abi/LidoLocator.js.map +1 -1
  11. package/dist/abi/OperatorGrid.d.ts +166 -1
  12. package/dist/abi/OperatorGrid.js +174 -1
  13. package/dist/abi/OperatorGrid.js.map +1 -1
  14. package/dist/abi/PredepositGuarantee.d.ts +181 -139
  15. package/dist/abi/PredepositGuarantee.js +191 -166
  16. package/dist/abi/PredepositGuarantee.js.map +1 -1
  17. package/dist/abi/StEth.d.ts +1 -1
  18. package/dist/abi/StEth.js +1 -1
  19. package/dist/abi/StEth.js.map +1 -1
  20. package/dist/abi/StakingVault.d.ts +184 -32
  21. package/dist/abi/StakingVault.js +203 -37
  22. package/dist/abi/StakingVault.js.map +1 -1
  23. package/dist/abi/VaultFactory.d.ts +470 -72
  24. package/dist/abi/VaultFactory.js +24 -1
  25. package/dist/abi/VaultFactory.js.map +1 -1
  26. package/dist/abi/VaultHub.d.ts +416 -420
  27. package/dist/abi/VaultHub.js +349 -398
  28. package/dist/abi/VaultHub.js.map +1 -1
  29. package/dist/abi/VaultViewer.d.ts +215 -96
  30. package/dist/abi/VaultViewer.js +258 -106
  31. package/dist/abi/VaultViewer.js.map +1 -1
  32. package/dist/abi/index.d.ts +0 -2
  33. package/dist/abi/index.js +0 -2
  34. package/dist/abi/index.js.map +1 -1
  35. package/dist/command/index.js +2 -0
  36. package/dist/command/index.js.map +1 -1
  37. package/dist/configs/constants.d.ts +1 -0
  38. package/dist/contracts/index.d.ts +0 -1
  39. package/dist/contracts/index.js +0 -1
  40. package/dist/contracts/index.js.map +1 -1
  41. package/dist/contracts/locator.d.ts +1428 -12
  42. package/dist/contracts/steth.d.ts +74 -74
  43. package/dist/contracts/vault-factory.d.ts +15731 -5838
  44. package/dist/contracts/vault-viewer.d.ts +4458 -1744
  45. package/dist/contracts/vault-viewer.js +1 -1
  46. package/dist/features/deposits/no-pdg.js +5 -5
  47. package/dist/features/deposits/no-pdg.js.map +1 -1
  48. package/dist/features/index.d.ts +1 -0
  49. package/dist/features/index.js +1 -0
  50. package/dist/features/index.js.map +1 -1
  51. package/dist/features/lazy-oracle.d.ts +1 -0
  52. package/dist/features/lazy-oracle.js +42 -0
  53. package/dist/features/lazy-oracle.js.map +1 -0
  54. package/dist/features/mint-burn/allowance.js +1 -1
  55. package/dist/features/mint-burn/allowance.js.map +1 -1
  56. package/dist/features/utils/get-address.js +1 -1
  57. package/dist/features/utils/get-address.js.map +1 -1
  58. package/dist/features/vault-hub.js +0 -4
  59. package/dist/features/vault-hub.js.map +1 -1
  60. package/dist/features/vault-operations/create-vault.js +2 -2
  61. package/dist/features/vault-operations/create-vault.js.map +1 -1
  62. package/dist/features/vault-operations/dashboard-by-vault.d.ts +2 -1
  63. package/dist/features/vault-operations/dashboard-by-vault.js +3 -1
  64. package/dist/features/vault-operations/dashboard-by-vault.js.map +1 -1
  65. package/dist/features/vault-operations/vault-health.js +2 -2
  66. package/dist/features/vault-operations/vault-health.js.map +1 -1
  67. package/dist/features/vault-operations/vault-info.js +29 -32
  68. package/dist/features/vault-operations/vault-info.js.map +1 -1
  69. package/dist/features/vault-operations/vault-overview.js +35 -28
  70. package/dist/features/vault-operations/vault-overview.js.map +1 -1
  71. package/dist/features/vault-operations/vault-roles.d.ts +1 -1
  72. package/dist/features/vault-operations/vault-roles.js +10 -8
  73. package/dist/features/vault-operations/vault-roles.js.map +1 -1
  74. package/dist/features/vault-operations/vaults-by-role.d.ts +0 -2
  75. package/dist/features/vault-operations/vaults-by-role.js +8 -6
  76. package/dist/features/vault-operations/vaults-by-role.js.map +1 -1
  77. package/dist/features/vault.js +4 -2
  78. package/dist/features/vault.js.map +1 -1
  79. package/dist/index.js +8 -3
  80. package/dist/index.js.map +1 -1
  81. package/dist/programs/account/read.js +3 -3
  82. package/dist/programs/account/read.js.map +1 -1
  83. package/dist/programs/account/write.js +13 -5
  84. package/dist/programs/account/write.js.map +1 -1
  85. package/dist/programs/contracts/dashboard/config.js +49 -40
  86. package/dist/programs/contracts/dashboard/config.js.map +1 -1
  87. package/dist/programs/contracts/dashboard/read.js +38 -3
  88. package/dist/programs/contracts/dashboard/read.js.map +1 -1
  89. package/dist/programs/contracts/dashboard/write.js +128 -74
  90. package/dist/programs/contracts/dashboard/write.js.map +1 -1
  91. package/dist/programs/contracts/hub/config.js +7 -17
  92. package/dist/programs/contracts/hub/config.js.map +1 -1
  93. package/dist/programs/contracts/hub/write.js +7 -69
  94. package/dist/programs/contracts/hub/write.js.map +1 -1
  95. package/dist/programs/contracts/index.d.ts +1 -0
  96. package/dist/programs/contracts/index.js +1 -0
  97. package/dist/programs/contracts/index.js.map +1 -1
  98. package/dist/programs/contracts/lazy-oracle/config.d.ts +3 -0
  99. package/dist/programs/contracts/lazy-oracle/config.js +62 -0
  100. package/dist/programs/contracts/lazy-oracle/config.js.map +1 -0
  101. package/dist/programs/contracts/lazy-oracle/index.d.ts +2 -0
  102. package/dist/programs/contracts/lazy-oracle/index.js +3 -0
  103. package/dist/programs/contracts/lazy-oracle/index.js.map +1 -0
  104. package/dist/programs/contracts/lazy-oracle/main.d.ts +1 -0
  105. package/dist/programs/contracts/lazy-oracle/main.js +5 -0
  106. package/dist/programs/contracts/lazy-oracle/main.js.map +1 -0
  107. package/dist/programs/contracts/lazy-oracle/read.d.ts +1 -0
  108. package/dist/programs/contracts/lazy-oracle/read.js +24 -0
  109. package/dist/programs/contracts/lazy-oracle/read.js.map +1 -0
  110. package/dist/programs/contracts/operator-grid/config.js +21 -10
  111. package/dist/programs/contracts/operator-grid/config.js.map +1 -1
  112. package/dist/programs/contracts/operator-grid/read.js +21 -1
  113. package/dist/programs/contracts/operator-grid/read.js.map +1 -1
  114. package/dist/programs/contracts/operator-grid/write.js +51 -9
  115. package/dist/programs/contracts/operator-grid/write.js.map +1 -1
  116. package/dist/programs/contracts/pdg/config.js +9 -2
  117. package/dist/programs/contracts/pdg/config.js.map +1 -1
  118. package/dist/programs/contracts/pdg/read.js +16 -1
  119. package/dist/programs/contracts/pdg/read.js.map +1 -1
  120. package/dist/programs/contracts/pdg/write.js +28 -91
  121. package/dist/programs/contracts/pdg/write.js.map +1 -1
  122. package/dist/programs/contracts/vault/config.js +12 -0
  123. package/dist/programs/contracts/vault/config.js.map +1 -1
  124. package/dist/programs/contracts/vault/write.js +84 -20
  125. package/dist/programs/contracts/vault/write.js.map +1 -1
  126. package/dist/programs/contracts/vault-viewer/read.js +4 -4
  127. package/dist/programs/contracts/vault-viewer/read.js.map +1 -1
  128. package/dist/programs/use-cases/deposits/read.js +20 -3
  129. package/dist/programs/use-cases/deposits/read.js.map +1 -1
  130. package/dist/programs/use-cases/deposits/write.js +22 -32
  131. package/dist/programs/use-cases/deposits/write.js.map +1 -1
  132. package/dist/programs/use-cases/metrics/read.js +70 -11
  133. package/dist/programs/use-cases/metrics/read.js.map +1 -1
  134. package/dist/programs/use-cases/report/read.js +14 -7
  135. package/dist/programs/use-cases/report/read.js.map +1 -1
  136. package/dist/programs/use-cases/report/write.js +47 -64
  137. package/dist/programs/use-cases/report/write.js.map +1 -1
  138. package/dist/programs/use-cases/vault-operations/create-vault.js +6 -2
  139. package/dist/programs/use-cases/vault-operations/create-vault.js.map +1 -1
  140. package/dist/programs/use-cases/vault-operations/write.js +127 -15
  141. package/dist/programs/use-cases/vault-operations/write.js.map +1 -1
  142. package/dist/providers/wallet.d.ts +7690 -23
  143. package/dist/providers/wallet.js +25 -5
  144. package/dist/providers/wallet.js.map +1 -1
  145. package/dist/tests/utils/calculate-overview.test.js +1 -1
  146. package/dist/tests/utils/calculate-overview.test.js.map +1 -1
  147. package/dist/tests/utils/health.test.js +2 -2
  148. package/dist/tests/utils/health.test.js.map +1 -1
  149. package/dist/tests/utils/ipfs.test.js +22 -10
  150. package/dist/tests/utils/ipfs.test.js.map +1 -1
  151. package/dist/types/common.d.ts +4 -0
  152. package/dist/types/config.d.ts +1 -0
  153. package/dist/utils/arguments.d.ts +3 -1
  154. package/dist/utils/arguments.js +39 -0
  155. package/dist/utils/arguments.js.map +1 -1
  156. package/dist/utils/calculate-overview-v2.d.ts +4 -2
  157. package/dist/utils/calculate-overview-v2.js +5 -8
  158. package/dist/utils/calculate-overview-v2.js.map +1 -1
  159. package/dist/utils/calculate-overview.d.ts +1 -1
  160. package/dist/utils/calculate-overview.js +2 -2
  161. package/dist/utils/calculate-overview.js.map +1 -1
  162. package/dist/utils/charts/blessed/charts-apr.js +2 -1
  163. package/dist/utils/charts/blessed/charts-apr.js.map +1 -1
  164. package/dist/utils/charts/blessed/charts-rewards.js +2 -1
  165. package/dist/utils/charts/blessed/charts-rewards.js.map +1 -1
  166. package/dist/utils/charts/blessed/datasets/prepare-metrics.d.ts +4 -0
  167. package/dist/utils/charts/blessed/datasets/prepare-metrics.js +15 -1
  168. package/dist/utils/charts/blessed/datasets/prepare-metrics.js.map +1 -1
  169. package/dist/utils/charts/overview.d.ts +1 -1
  170. package/dist/utils/charts/overview.js +1 -1
  171. package/dist/utils/charts/overview.js.map +1 -1
  172. package/dist/utils/charts/simple/simple-charts.js +2 -1
  173. package/dist/utils/charts/simple/simple-charts.js.map +1 -1
  174. package/dist/utils/commands/confirmations.d.ts +9 -5
  175. package/dist/utils/commands/confirmations.js +42 -33
  176. package/dist/utils/commands/confirmations.js.map +1 -1
  177. package/dist/utils/commands/report.js +2 -1
  178. package/dist/utils/commands/report.js.map +1 -1
  179. package/dist/utils/csv-file.d.ts +6 -0
  180. package/dist/utils/csv-file.js +48 -0
  181. package/dist/utils/csv-file.js.map +1 -0
  182. package/dist/utils/health/calculate-health.d.ts +1 -1
  183. package/dist/utils/health/calculate-health.js +2 -2
  184. package/dist/utils/health/calculate-health.js.map +1 -1
  185. package/dist/utils/health/health-utils.d.ts +77 -77
  186. package/dist/utils/health/health-utils.js +11 -10
  187. package/dist/utils/health/health-utils.js.map +1 -1
  188. package/dist/utils/index.d.ts +3 -1
  189. package/dist/utils/index.js +3 -1
  190. package/dist/utils/index.js.map +1 -1
  191. package/dist/utils/ipfs.js +1 -1
  192. package/dist/utils/ipfs.js.map +1 -1
  193. package/dist/utils/logging/console.d.ts +1 -0
  194. package/dist/utils/logging/console.js +9 -1
  195. package/dist/utils/logging/console.js.map +1 -1
  196. package/dist/utils/report/report-proof.d.ts +3 -0
  197. package/dist/utils/report/report-proof.js +2 -2
  198. package/dist/utils/report/report-proof.js.map +1 -1
  199. package/dist/utils/report/report.d.ts +1 -1
  200. package/dist/utils/report/report.js +6 -4
  201. package/dist/utils/report/report.js.map +1 -1
  202. package/dist/utils/report/statistic-data.js +2 -2
  203. package/dist/utils/report/statistic-data.js.map +1 -1
  204. package/dist/utils/report/types.d.ts +11 -2
  205. package/dist/utils/statistic/report-statistic.js +13 -14
  206. package/dist/utils/statistic/report-statistic.js.map +1 -1
  207. package/dist/utils/timestamp.d.ts +1 -1
  208. package/dist/utils/timestamp.js +9 -2
  209. package/dist/utils/timestamp.js.map +1 -1
  210. package/dist/utils/transactions/index.d.ts +3 -0
  211. package/dist/utils/transactions/index.js +4 -0
  212. package/dist/utils/transactions/index.js.map +1 -0
  213. package/dist/utils/transactions/tx-private-key.d.ts +26 -0
  214. package/dist/utils/{contract.js → transactions/tx-private-key.js} +105 -9
  215. package/dist/utils/transactions/tx-private-key.js.map +1 -0
  216. package/dist/utils/transactions/tx-wc.d.ts +34 -0
  217. package/dist/utils/transactions/tx-wc.js +187 -0
  218. package/dist/utils/transactions/tx-wc.js.map +1 -0
  219. package/dist/utils/transactions/types.d.ts +40 -0
  220. package/dist/utils/transactions/types.js +2 -0
  221. package/dist/utils/transactions/types.js.map +1 -0
  222. package/dist/utils/wallet-connect.d.ts +7677 -0
  223. package/dist/utils/wallet-connect.js +179 -0
  224. package/dist/utils/wallet-connect.js.map +1 -0
  225. package/dist/version/index.js +1 -1
  226. package/package.json +19 -5
  227. package/dist/abi/TokenManager.d.ts +0 -577
  228. package/dist/abi/TokenManager.js +0 -756
  229. package/dist/abi/TokenManager.js.map +0 -1
  230. package/dist/abi/Voting.d.ts +0 -676
  231. package/dist/abi/Voting.js +0 -884
  232. package/dist/abi/Voting.js.map +0 -1
  233. package/dist/contracts/token-manager.d.ts +0 -3
  234. package/dist/contracts/token-manager.js +0 -13
  235. package/dist/contracts/token-manager.js.map +0 -1
  236. package/dist/utils/contract.d.ts +0 -59
  237. package/dist/utils/contract.js.map +0 -1
@@ -1,9 +1,11 @@
1
1
  import { encodeFunctionData, } from 'viem';
2
2
  import { waitForTransactionReceipt } from 'viem/actions';
3
- import { program } from '../command/index.js';
4
- import { getAccount, getPublicClient } from '../providers/index.js';
5
- import { getChain } from '../configs/index.js';
6
- import { showSpinner, printError, logResult, logInfo } from './index.js';
3
+ import { program } from '../../command/index.js';
4
+ import cliProgress from 'cli-progress';
5
+ import { getAccount, getPublicClient, getWalletWithAccount } from '../../providers/index.js';
6
+ import { getChain } from '../../configs/index.js';
7
+ import { showSpinner, printError, logResult, logInfo } from '../index.js';
8
+ import { callWCWriteMethodWithReceipt, callWCWriteMethodWithReceiptPayloads, } from './tx-wc.js';
7
9
  export const callSimulateWriteMethod = async (args) => {
8
10
  const { contract, methodName, payload, value, withSpinner = true, skipError = false, } = args;
9
11
  const hideSpinner = withSpinner
@@ -15,7 +17,7 @@ export const callSimulateWriteMethod = async (args) => {
15
17
  try {
16
18
  const method = contract.simulate[methodName];
17
19
  const result = await method?.(payload, {
18
- account: getAccount(),
20
+ account: await getAccount(),
19
21
  chain: getChain(),
20
22
  value,
21
23
  });
@@ -52,7 +54,7 @@ export const callWriteMethod = async (args) => {
52
54
  try {
53
55
  const method = contract.write[methodName];
54
56
  const tx = await method?.(payload, {
55
- account: getAccount(),
57
+ account: await getAccount(),
56
58
  chain: getChain(),
57
59
  value,
58
60
  });
@@ -139,7 +141,7 @@ export const isContractAddress = async (address) => {
139
141
  });
140
142
  return bytecode !== undefined && bytecode !== '0x';
141
143
  };
142
- export const populateWriteTx = async (args) => {
144
+ export const populateWriteTx = (args) => {
143
145
  const { contract, methodName, payload, value } = args;
144
146
  return {
145
147
  to: contract.address,
@@ -154,7 +156,7 @@ export const populateWriteTx = async (args) => {
154
156
  export const callWriteMethodWithReceipt = async (args) => {
155
157
  const { contract, methodName, payload, value, withSpinner = true, silent = false, skipError = false, } = args;
156
158
  if (program.opts().populateTx) {
157
- const data = await populateWriteTx({
159
+ const data = populateWriteTx({
158
160
  contract,
159
161
  methodName,
160
162
  payload,
@@ -170,6 +172,22 @@ export const callWriteMethodWithReceipt = async (args) => {
170
172
  });
171
173
  return { receipt: undefined, tx: data };
172
174
  }
175
+ if (program.opts().walletConnect) {
176
+ const data = await callWCWriteMethodWithReceipt({
177
+ calls: [
178
+ populateWriteTx({
179
+ contract,
180
+ methodName,
181
+ payload,
182
+ value,
183
+ }),
184
+ ],
185
+ withSpinner,
186
+ silent,
187
+ skipError,
188
+ });
189
+ return { receipt: data.receipt, tx: data.txHash };
190
+ }
173
191
  const publicClient = getPublicClient();
174
192
  const tx = await callWriteMethod({
175
193
  contract,
@@ -211,4 +229,82 @@ export const callWriteMethodWithReceipt = async (args) => {
211
229
  throw err;
212
230
  }
213
231
  };
214
- //# sourceMappingURL=contract.js.map
232
+ export const callWriteMethodWithReceiptBatchCalls = async (args) => {
233
+ const { calls, withSpinner = true, silent = false, skipError = false } = args;
234
+ if (program.opts().walletConnect) {
235
+ await callWCWriteMethodWithReceipt({
236
+ calls,
237
+ withSpinner,
238
+ silent,
239
+ skipError,
240
+ });
241
+ return;
242
+ }
243
+ const publicClient = getPublicClient();
244
+ const walletClient = await getWalletWithAccount();
245
+ if (!walletClient.account) {
246
+ throw new Error('No account found');
247
+ }
248
+ const simulateResult = await publicClient.simulateCalls({
249
+ account: walletClient.account,
250
+ calls,
251
+ });
252
+ if (simulateResult.results.some((r) => r.error)) {
253
+ throw new Error('Simulation failed');
254
+ }
255
+ for (const call of calls) {
256
+ const tx = await walletClient.sendTransaction({
257
+ account: walletClient.account,
258
+ chain: getChain(),
259
+ to: call.to,
260
+ data: call.data,
261
+ value: call.value,
262
+ });
263
+ const hideSpinner = withSpinner
264
+ ? showSpinner({
265
+ type: 'bouncingBar',
266
+ message: 'Waiting for transaction receipt...',
267
+ })
268
+ : () => { };
269
+ const receipt = await waitForTransactionReceipt(publicClient, {
270
+ hash: tx,
271
+ confirmations: 3,
272
+ });
273
+ hideSpinner();
274
+ !silent &&
275
+ logResult({
276
+ data: [
277
+ ['Call data', call.data],
278
+ ['Contract', call.to],
279
+ ['Transaction status', receipt.status],
280
+ ['Transaction block number', Number(receipt.blockNumber)],
281
+ ['Transaction gas used', Number(receipt.gasUsed)],
282
+ ],
283
+ });
284
+ }
285
+ };
286
+ export const callWriteMethodWithReceiptBatchPayloads = async (args) => {
287
+ const { contract, methodName, payloads, values, withSpinner = true, silent = false, skipError = false, } = args;
288
+ if (program.opts().walletConnect) {
289
+ await callWCWriteMethodWithReceiptPayloads(args);
290
+ return;
291
+ }
292
+ const progressBar = new cliProgress.SingleBar({
293
+ format: 'Progress |{bar}| {percentage}% || {value}/{total} Vaults Updated',
294
+ }, cliProgress.Presets.shades_classic);
295
+ progressBar.start(payloads.length, 0);
296
+ for (const [index, payload] of payloads.entries()) {
297
+ await callWriteMethodWithReceipt({
298
+ contract,
299
+ methodName,
300
+ payload,
301
+ value: values?.[index] ?? 0n,
302
+ withSpinner,
303
+ silent,
304
+ skipError,
305
+ });
306
+ progressBar.increment();
307
+ }
308
+ progressBar.stop();
309
+ };
310
+ //# sourceMappingURL=tx-private-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tx-private-key.js","sourceRoot":"","sources":["../../../utils/transactions/tx-private-key.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { Hex, SimulateCallsReturnType } from 'viem';
2
+ import { PartialContract, PopulatedTx, BatchTxArgs } from './types.js';
3
+ export declare const PROVIDER_POLLING_INTERVAL = 12000;
4
+ export declare const AA_TX_POLLING_TIMEOUT = 180000;
5
+ export declare const simulateWCWriteTx: (args: {
6
+ calls: PopulatedTx[];
7
+ withSpinner?: boolean;
8
+ skipError?: boolean;
9
+ }) => Promise<SimulateCallsReturnType<PopulatedTx[]>>;
10
+ export declare const callWCWriteMethodWithReceipt: (args: {
11
+ calls: PopulatedTx[];
12
+ withSpinner?: boolean;
13
+ silent?: boolean;
14
+ skipError?: boolean;
15
+ }) => Promise<{
16
+ id: Hex;
17
+ callStatus: {
18
+ version: string;
19
+ atomic: boolean;
20
+ capabilities?: {
21
+ [key: string]: any;
22
+ } | {
23
+ [x: string]: any;
24
+ } | undefined;
25
+ chainId: number;
26
+ id: string;
27
+ receipts?: import("viem").WalletCallReceipt<bigint, "success" | "reverted">[] | undefined;
28
+ statusCode: number;
29
+ status: "pending" | "success" | "failure" | undefined;
30
+ };
31
+ txHash: `0x${string}`;
32
+ receipt: import("viem").TransactionReceipt;
33
+ }>;
34
+ export declare const callWCWriteMethodWithReceiptPayloads: <T extends PartialContract, M extends keyof T["write"] & string>(args: BatchTxArgs<T, M>) => Promise<void>;
@@ -0,0 +1,187 @@
1
+ import { decodeErrorResult, encodeFunctionData, } from 'viem';
2
+ import { waitForTransactionReceipt } from 'viem/actions';
3
+ import { DashboardAbi } from '../../abi/Dashboard.js';
4
+ import { getPublicClient, getWalletConnectClient } from '../../providers/index.js';
5
+ import { showSpinner, printError, logResult, disconnectWalletConnect, } from '../index.js';
6
+ export const PROVIDER_POLLING_INTERVAL = 12_000;
7
+ export const AA_TX_POLLING_TIMEOUT = 180_000; // 3 minutes
8
+ export const simulateWCWriteTx = async (args) => {
9
+ const { calls, withSpinner = true, skipError = false } = args;
10
+ const publicClient = getPublicClient();
11
+ const hideSpinner = withSpinner
12
+ ? showSpinner({
13
+ type: 'bouncingBall',
14
+ message: 'Simulating...',
15
+ })
16
+ : () => { };
17
+ try {
18
+ const walletConnectClient = await getWalletConnectClient();
19
+ const simulateResult = await publicClient.simulateCalls({
20
+ account: walletConnectClient.account,
21
+ calls,
22
+ });
23
+ if (simulateResult.results.some((r) => r.error)) {
24
+ const error = simulateResult.results.find((r) => r.error)?.error;
25
+ const cause = error?.cause;
26
+ const data = cause?.data ?? cause?.raw;
27
+ if (data) {
28
+ const { errorName, args } = decodeErrorResult({
29
+ abi: DashboardAbi,
30
+ data,
31
+ });
32
+ const errorMessage = `${errorName}: ${args.map((a) => a.toString()).join(', ')}`;
33
+ printError(new Error(errorMessage), 'Simulation failed');
34
+ }
35
+ const shortMessage = cause?.shortMessage;
36
+ printError(error, shortMessage);
37
+ }
38
+ hideSpinner();
39
+ return simulateResult;
40
+ }
41
+ catch (err) {
42
+ hideSpinner();
43
+ if (!skipError)
44
+ printError(err, 'Error when simulating write method');
45
+ throw err;
46
+ }
47
+ };
48
+ export const callWCWriteMethodWithReceipt = async (args) => {
49
+ const { calls, withSpinner = true, silent = false, skipError = false } = args;
50
+ const walletConnectClient = await getWalletConnectClient();
51
+ if (!walletConnectClient || !walletConnectClient.account) {
52
+ throw new Error('No wallet connect client found. Check your wallet and try again.');
53
+ }
54
+ const result = await callWalletConnectSendCalls({
55
+ calls,
56
+ withSpinner,
57
+ silent,
58
+ skipError,
59
+ });
60
+ !silent &&
61
+ logResult({
62
+ data: [
63
+ ['Batch calls', calls.length],
64
+ ['Batch ID', result.id],
65
+ ['Batch status', result.callStatus.status],
66
+ ['Transaction', result.txHash],
67
+ ['Transaction status', result.receipt.status],
68
+ ['Transaction block number', Number(result.receipt.blockNumber)],
69
+ ['Transaction gas used', Number(result.receipt.gasUsed)],
70
+ ],
71
+ });
72
+ return result;
73
+ };
74
+ export const callWCWriteMethodWithReceiptPayloads = async (args) => {
75
+ const { contract, methodName, payloads, values, withSpinner = true, silent = false, skipError = false, } = args;
76
+ if (!Array.isArray(payloads) || payloads.length === 0) {
77
+ throw new Error('payloads must be a non-empty array');
78
+ }
79
+ const calls = payloads.map((p, i) => ({
80
+ to: contract.address,
81
+ data: encodeFunctionData({
82
+ abi: contract.abi,
83
+ functionName: methodName,
84
+ args: p,
85
+ }),
86
+ value: values?.[i] ?? 0n,
87
+ }));
88
+ const result = await callWalletConnectSendCalls({
89
+ calls,
90
+ withSpinner,
91
+ silent,
92
+ skipError,
93
+ });
94
+ !silent &&
95
+ logResult({
96
+ data: [
97
+ ['Method name', methodName],
98
+ ['Contract', contract.address],
99
+ ['Batch calls', payloads.length],
100
+ ['Batch ID', result.id],
101
+ ['Batch status', result.callStatus.status],
102
+ ['Transaction', result.txHash],
103
+ ['Transaction status', result.receipt.status],
104
+ ['Transaction block number', Number(result.receipt.blockNumber)],
105
+ ['Transaction gas used', Number(result.receipt.gasUsed)],
106
+ ],
107
+ });
108
+ };
109
+ const callWalletConnectSendCalls = async (args) => {
110
+ const { calls, withSpinner = true, skipError = false } = args;
111
+ const isBatch = calls.length > 1;
112
+ if (!Array.isArray(calls) || calls.length === 0) {
113
+ throw new Error('calls must be a non-empty array');
114
+ }
115
+ try {
116
+ const walletConnectClient = await getWalletConnectClient();
117
+ if (!walletConnectClient || !walletConnectClient.account) {
118
+ throw new Error('No wallet connect client found. Check your wallet and try again.');
119
+ }
120
+ await simulateWCWriteTx({
121
+ calls,
122
+ withSpinner,
123
+ skipError,
124
+ });
125
+ const hideSubmitSpinner = withSpinner
126
+ ? showSpinner({
127
+ type: 'bouncingBar',
128
+ message: isBatch
129
+ ? 'Submitting batch...'
130
+ : 'Submitting transaction...',
131
+ })
132
+ : () => { };
133
+ const result = await walletConnectClient.sendCalls({
134
+ account: walletConnectClient.account.address,
135
+ calls,
136
+ experimental_fallback: true, // fallback to legacy sendTransaction if sendCalls is not supported
137
+ });
138
+ hideSubmitSpinner();
139
+ const hideStatusSpinner = withSpinner
140
+ ? showSpinner({
141
+ type: 'bouncingBar',
142
+ message: isBatch
143
+ ? 'Waiting for batch status...'
144
+ : 'Waiting for transaction status...',
145
+ })
146
+ : () => { };
147
+ const callStatus = await walletConnectClient.waitForCallsStatus({
148
+ id: result.id,
149
+ pollingInterval: PROVIDER_POLLING_INTERVAL,
150
+ timeout: AA_TX_POLLING_TIMEOUT,
151
+ });
152
+ hideStatusSpinner();
153
+ if (callStatus.status === 'failure') {
154
+ throw new Error('Transaction failed. Check your wallet for details.');
155
+ }
156
+ if (callStatus.receipts?.find((receipt) => receipt.status === 'reverted')) {
157
+ throw new Error('Some operation were reverted. Check your wallet for details.');
158
+ }
159
+ // extract last receipt if there was no atomic batch
160
+ const txHash = callStatus.receipts
161
+ ? callStatus?.receipts[callStatus.receipts.length - 1]?.transactionHash
162
+ : undefined;
163
+ if (!txHash) {
164
+ throw new Error('Could not locate TX hash.Check your wallet for details.');
165
+ }
166
+ const hideReceiptSpinner = withSpinner
167
+ ? showSpinner({
168
+ type: 'bouncingBar',
169
+ message: 'Waiting for transaction receipt...',
170
+ })
171
+ : () => { };
172
+ const publicClient = getPublicClient();
173
+ const receipt = await waitForTransactionReceipt(publicClient, {
174
+ hash: txHash,
175
+ confirmations: 3,
176
+ });
177
+ hideReceiptSpinner();
178
+ return { id: result.id, callStatus, txHash, receipt };
179
+ }
180
+ catch (err) {
181
+ await disconnectWalletConnect();
182
+ if (!skipError)
183
+ printError(err, 'Error when sending batch calls');
184
+ throw err;
185
+ }
186
+ };
187
+ //# sourceMappingURL=tx-wc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tx-wc.js","sourceRoot":"","sources":["../../../utils/transactions/tx-wc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { Hex, type Abi, type Address } from 'viem';
2
+ export type ReadContract = {
3
+ address: Address;
4
+ read: Record<string, (...args: any[]) => Promise<any>>;
5
+ };
6
+ export type PartialContract = ReadContract & {
7
+ simulate: Record<string, (...args: any[]) => Promise<any>>;
8
+ write: Record<string, (...args: any[]) => Promise<any>>;
9
+ abi: Abi;
10
+ };
11
+ export type Writeable<T> = {
12
+ -readonly [P in keyof T]: T[P];
13
+ };
14
+ export type GetFirst<T extends unknown[]> = T extends [
15
+ infer First,
16
+ infer _Second
17
+ ] ? First : T extends any ? [] : T;
18
+ export type PopulatedTx = {
19
+ to: Address;
20
+ value: bigint;
21
+ data: Hex;
22
+ };
23
+ export type BatchTxArgs<T extends PartialContract, M extends keyof T['write'] & string> = {
24
+ contract: T;
25
+ methodName: M;
26
+ payloads: Writeable<GetFirst<Parameters<T['write'][M]>>>[];
27
+ values?: bigint[];
28
+ withSpinner?: boolean;
29
+ silent?: boolean;
30
+ skipError?: boolean;
31
+ };
32
+ export type WriteTxArgs<T extends PartialContract, M extends keyof T['write'] & string> = {
33
+ contract: T;
34
+ methodName: M;
35
+ payload: Writeable<GetFirst<Parameters<T['write'][M]>>> | never[];
36
+ value?: bigint;
37
+ withSpinner?: boolean;
38
+ silent?: boolean;
39
+ skipError?: boolean;
40
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../utils/transactions/types.ts"],"names":[],"mappings":""}