@lidofinance/lsv-cli 1.0.0-alpha.60 → 1.0.0-alpha.61
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.
- package/README.md +25 -13
- package/dist/abi/LazyOracle.d.ts +14 -26
- package/dist/abi/LazyOracle.js +18 -34
- package/dist/abi/LazyOracle.js.map +1 -1
- package/dist/abi/VaultViewer.d.ts +173 -86
- package/dist/abi/VaultViewer.js +212 -100
- package/dist/abi/VaultViewer.js.map +1 -1
- package/dist/command/index.js +2 -0
- package/dist/command/index.js.map +1 -1
- package/dist/configs/constants.d.ts +1 -0
- package/dist/contracts/vault-viewer.d.ts +3651 -1529
- package/dist/contracts/vault-viewer.js +1 -1
- package/dist/features/deposits/no-pdg.js +5 -5
- package/dist/features/deposits/no-pdg.js.map +1 -1
- package/dist/features/mint-burn/allowance.js +1 -1
- package/dist/features/mint-burn/allowance.js.map +1 -1
- package/dist/features/utils/get-address.js +1 -1
- package/dist/features/utils/get-address.js.map +1 -1
- package/dist/features/vault-operations/create-vault.js +2 -2
- package/dist/features/vault-operations/create-vault.js.map +1 -1
- package/dist/features/vault-operations/vault-roles.js +4 -2
- package/dist/features/vault-operations/vault-roles.js.map +1 -1
- package/dist/features/vault-operations/vaults-by-role.d.ts +0 -2
- package/dist/features/vault-operations/vaults-by-role.js +8 -6
- package/dist/features/vault-operations/vaults-by-role.js.map +1 -1
- package/dist/programs/account/read.js +3 -3
- package/dist/programs/account/read.js.map +1 -1
- package/dist/programs/account/write.js +13 -5
- package/dist/programs/account/write.js.map +1 -1
- package/dist/programs/contracts/dashboard/read.js +1 -1
- package/dist/programs/contracts/dashboard/read.js.map +1 -1
- package/dist/programs/contracts/dashboard/write.js +18 -1
- package/dist/programs/contracts/dashboard/write.js.map +1 -1
- package/dist/programs/contracts/index.d.ts +1 -0
- package/dist/programs/contracts/index.js +1 -0
- package/dist/programs/contracts/index.js.map +1 -1
- package/dist/programs/contracts/lazy-oracle/config.d.ts +3 -0
- package/dist/programs/contracts/lazy-oracle/config.js +57 -0
- package/dist/programs/contracts/lazy-oracle/config.js.map +1 -0
- package/dist/programs/contracts/lazy-oracle/index.d.ts +2 -0
- package/dist/programs/contracts/lazy-oracle/index.js +3 -0
- package/dist/programs/contracts/lazy-oracle/index.js.map +1 -0
- package/dist/programs/contracts/lazy-oracle/main.d.ts +1 -0
- package/dist/programs/contracts/lazy-oracle/main.js +5 -0
- package/dist/programs/contracts/lazy-oracle/main.js.map +1 -0
- package/dist/programs/contracts/lazy-oracle/read.d.ts +1 -0
- package/dist/programs/contracts/lazy-oracle/read.js +17 -0
- package/dist/programs/contracts/lazy-oracle/read.js.map +1 -0
- package/dist/programs/contracts/operator-grid/write.js +4 -4
- package/dist/programs/contracts/operator-grid/write.js.map +1 -1
- package/dist/programs/contracts/pdg/write.js +2 -2
- package/dist/programs/contracts/pdg/write.js.map +1 -1
- package/dist/programs/contracts/vault-viewer/read.js +4 -4
- package/dist/programs/contracts/vault-viewer/read.js.map +1 -1
- package/dist/programs/use-cases/deposits/read.js +1 -1
- package/dist/programs/use-cases/deposits/read.js.map +1 -1
- package/dist/programs/use-cases/metrics/read.js +64 -6
- package/dist/programs/use-cases/metrics/read.js.map +1 -1
- package/dist/programs/use-cases/report/write.js +43 -62
- package/dist/programs/use-cases/report/write.js.map +1 -1
- package/dist/programs/use-cases/vault-operations/write.js +30 -8
- package/dist/programs/use-cases/vault-operations/write.js.map +1 -1
- package/dist/providers/wallet.d.ts +7670 -3
- package/dist/providers/wallet.js +25 -5
- package/dist/providers/wallet.js.map +1 -1
- package/dist/tests/utils/ipfs.test.js +22 -10
- package/dist/tests/utils/ipfs.test.js.map +1 -1
- package/dist/types/config.d.ts +1 -0
- package/dist/utils/charts/blessed/datasets/prepare-metrics.d.ts +4 -0
- package/dist/utils/charts/blessed/datasets/prepare-metrics.js +15 -1
- package/dist/utils/charts/blessed/datasets/prepare-metrics.js.map +1 -1
- package/dist/utils/commands/confirmations.d.ts +2 -2
- package/dist/utils/commands/confirmations.js +3 -4
- package/dist/utils/commands/confirmations.js.map +1 -1
- package/dist/utils/csv-file.d.ts +6 -0
- package/dist/utils/csv-file.js +48 -0
- package/dist/utils/csv-file.js.map +1 -0
- package/dist/utils/index.d.ts +3 -1
- package/dist/utils/index.js +3 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/ipfs.js +1 -1
- package/dist/utils/ipfs.js.map +1 -1
- package/dist/utils/logging/console.d.ts +1 -0
- package/dist/utils/logging/console.js +9 -1
- package/dist/utils/logging/console.js.map +1 -1
- package/dist/utils/report/report-proof.d.ts +3 -0
- package/dist/utils/report/report-proof.js +2 -2
- package/dist/utils/report/report-proof.js.map +1 -1
- package/dist/utils/report/report.d.ts +1 -1
- package/dist/utils/report/report.js +5 -4
- package/dist/utils/report/report.js.map +1 -1
- package/dist/utils/report/types.d.ts +1 -0
- package/dist/utils/timestamp.d.ts +1 -1
- package/dist/utils/timestamp.js +9 -2
- package/dist/utils/timestamp.js.map +1 -1
- package/dist/utils/transactions/index.d.ts +3 -0
- package/dist/utils/transactions/index.js +4 -0
- package/dist/utils/transactions/index.js.map +1 -0
- package/dist/utils/transactions/tx-private-key.d.ts +26 -0
- package/dist/utils/{contract.js → transactions/tx-private-key.js} +105 -9
- package/dist/utils/transactions/tx-private-key.js.map +1 -0
- package/dist/utils/transactions/tx-wc.d.ts +34 -0
- package/dist/utils/transactions/tx-wc.js +174 -0
- package/dist/utils/transactions/tx-wc.js.map +1 -0
- package/dist/utils/transactions/types.d.ts +40 -0
- package/dist/utils/transactions/types.js +2 -0
- package/dist/utils/transactions/types.js.map +1 -0
- package/dist/utils/wallet-connect.d.ts +7677 -0
- package/dist/utils/wallet-connect.js +179 -0
- package/dist/utils/wallet-connect.js.map +1 -0
- package/dist/version/index.js +1 -1
- package/package.json +9 -5
- package/dist/utils/contract.d.ts +0 -59
- package/dist/utils/contract.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../../utils/report/report.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AASvE,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,IAAqB,EACrB,KAAK,GAAG,IAAI,EACU,EAAE;IACxB,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,GAAG,YAAY,EAAE,aAAa,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC;IAE9E,MAAM,MAAM,GAAG,MAAM,SAAS,CAC5B;QACE,GAAG;QACH,OAAO;QACP,aAAa;KACd,EACD,KAAK,CACN,CAAC;IACF,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../../utils/report/report.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const formatTimestamp: (ts: number, format?: string) => string;
|
|
1
|
+
export declare const formatTimestamp: (ts: number, format?: string, timeZone?: string) => string;
|
package/dist/utils/timestamp.js
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
|
-
export const formatTimestamp = (ts, format = 'dd.mm.yyyy hh:mm') => {
|
|
1
|
+
export const formatTimestamp = (ts, format = 'dd.mm.yyyy hh:mm', timeZone = 'UTC') => {
|
|
2
2
|
const d = new Date(ts * 1000);
|
|
3
|
-
|
|
3
|
+
if (timeZone === 'UTC') {
|
|
4
|
+
d.setHours(d.getHours() + d.getTimezoneOffset() / 60);
|
|
5
|
+
}
|
|
6
|
+
else {
|
|
7
|
+
d.setHours(d.getHours());
|
|
8
|
+
}
|
|
9
|
+
const date = format
|
|
4
10
|
.replace('dd', String(d.getDate()).padStart(2, '0'))
|
|
5
11
|
.replace('mm', String(d.getMonth() + 1).padStart(2, '0'))
|
|
6
12
|
.replace('yyyy', String(d.getFullYear()))
|
|
7
13
|
.replace('hh', String(d.getHours()).padStart(2, '0'))
|
|
8
14
|
.replace('mm', String(d.getMinutes()).padStart(2, '0'));
|
|
15
|
+
return `${date} ${timeZone}`;
|
|
9
16
|
};
|
|
10
17
|
//# sourceMappingURL=timestamp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timestamp.js","sourceRoot":"","sources":["../../utils/timestamp.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,EAAU,EACV,MAAM,GAAG,kBAAkB,
|
|
1
|
+
{"version":3,"file":"timestamp.js","sourceRoot":"","sources":["../../utils/timestamp.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,EAAU,EACV,MAAM,GAAG,kBAAkB,EAC3B,QAAQ,GAAG,KAAK,EACR,EAAE;IACV,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAE9B,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACvB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,IAAI,GAAG,MAAM;SAChB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACnD,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACxD,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;SACxC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACpD,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAE1D,OAAO,GAAG,IAAI,IAAI,QAAQ,EAAE,CAAC;AAC/B,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../utils/transactions/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Address, SimulateContractReturnType, TransactionReceipt } from 'viem';
|
|
2
|
+
import { PartialContract, ReadContract, Writeable, GetFirst, PopulatedTx, BatchTxArgs, WriteTxArgs } from './types.js';
|
|
3
|
+
export declare const callSimulateWriteMethod: <T extends PartialContract, M extends keyof T["simulate"] & string>(args: WriteTxArgs<T, M>) => Promise<SimulateContractReturnType>;
|
|
4
|
+
export declare const callWriteMethod: <T extends PartialContract, M extends keyof T["write"] & string>(args: WriteTxArgs<T, M>) => Promise<Address>;
|
|
5
|
+
export declare const callReadMethod: <T extends ReadContract, M extends keyof T["read"] & string>(contract: T, methodName: M, ...payload: [...Parameters<T["read"][M]>, {
|
|
6
|
+
silent?: boolean;
|
|
7
|
+
}?]) => Promise<ReturnType<T["read"][M]>>;
|
|
8
|
+
export declare const callReadMethodSilent: <T extends ReadContract, M extends keyof T["read"] & string>(contract: T, methodName: M, ...payload: Parameters<T["read"][M]>) => Promise<ReturnType<T["read"][M]>>;
|
|
9
|
+
export declare const isContractAddress: (address: Address) => Promise<boolean>;
|
|
10
|
+
export declare const populateWriteTx: <T extends PartialContract, M extends keyof T["write"] & string>(args: {
|
|
11
|
+
contract: T;
|
|
12
|
+
methodName: M;
|
|
13
|
+
payload: Writeable<GetFirst<Parameters<T["write"][M]>>> | never[];
|
|
14
|
+
value?: bigint;
|
|
15
|
+
}) => PopulatedTx;
|
|
16
|
+
export declare const callWriteMethodWithReceipt: <T extends PartialContract, M extends keyof T["write"] & string>(args: WriteTxArgs<T, M>) => Promise<{
|
|
17
|
+
receipt: TransactionReceipt;
|
|
18
|
+
tx: Address;
|
|
19
|
+
}>;
|
|
20
|
+
export declare const callWriteMethodWithReceiptBatchCalls: (args: {
|
|
21
|
+
calls: PopulatedTx[];
|
|
22
|
+
withSpinner?: boolean;
|
|
23
|
+
silent?: boolean;
|
|
24
|
+
skipError?: boolean;
|
|
25
|
+
}) => Promise<void>;
|
|
26
|
+
export declare const callWriteMethodWithReceiptBatchPayloads: <T extends PartialContract, M extends keyof T["write"] & string>(args: BatchTxArgs<T, M>) => Promise<void>;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { encodeFunctionData, } from 'viem';
|
|
2
2
|
import { waitForTransactionReceipt } from 'viem/actions';
|
|
3
|
-
import { program } from '
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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,174 @@
|
|
|
1
|
+
import { encodeFunctionData } from 'viem';
|
|
2
|
+
import { waitForTransactionReceipt } from 'viem/actions';
|
|
3
|
+
import { getPublicClient, getWalletConnectClient } from '../../providers/index.js';
|
|
4
|
+
import { showSpinner, printError, logResult, disconnectWalletConnect, } from '../index.js';
|
|
5
|
+
export const PROVIDER_POLLING_INTERVAL = 12_000;
|
|
6
|
+
export const AA_TX_POLLING_TIMEOUT = 180_000; // 3 minutes
|
|
7
|
+
export const simulateWCWriteTx = async (args) => {
|
|
8
|
+
const { calls, withSpinner = true, skipError = false } = args;
|
|
9
|
+
const publicClient = getPublicClient();
|
|
10
|
+
const hideSpinner = withSpinner
|
|
11
|
+
? showSpinner({
|
|
12
|
+
type: 'bouncingBall',
|
|
13
|
+
message: 'Simulating...',
|
|
14
|
+
})
|
|
15
|
+
: () => { };
|
|
16
|
+
try {
|
|
17
|
+
const walletConnectClient = await getWalletConnectClient();
|
|
18
|
+
const simulateResult = await publicClient.simulateCalls({
|
|
19
|
+
account: walletConnectClient.account,
|
|
20
|
+
calls,
|
|
21
|
+
});
|
|
22
|
+
if (simulateResult.results.some((r) => r.error)) {
|
|
23
|
+
throw new Error('Simulation failed');
|
|
24
|
+
}
|
|
25
|
+
hideSpinner();
|
|
26
|
+
return simulateResult;
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
hideSpinner();
|
|
30
|
+
if (!skipError)
|
|
31
|
+
printError(err, 'Error when simulating write method');
|
|
32
|
+
throw err;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
export const callWCWriteMethodWithReceipt = async (args) => {
|
|
36
|
+
const { calls, withSpinner = true, silent = false, skipError = false } = args;
|
|
37
|
+
const walletConnectClient = await getWalletConnectClient();
|
|
38
|
+
if (!walletConnectClient || !walletConnectClient.account) {
|
|
39
|
+
throw new Error('No wallet connect client found. Check your wallet and try again.');
|
|
40
|
+
}
|
|
41
|
+
const result = await callWalletConnectSendCalls({
|
|
42
|
+
calls,
|
|
43
|
+
withSpinner,
|
|
44
|
+
silent,
|
|
45
|
+
skipError,
|
|
46
|
+
});
|
|
47
|
+
!silent &&
|
|
48
|
+
logResult({
|
|
49
|
+
data: [
|
|
50
|
+
['Batch calls', calls.length],
|
|
51
|
+
['Batch ID', result.id],
|
|
52
|
+
['Batch status', result.callStatus.status],
|
|
53
|
+
['Transaction', result.txHash],
|
|
54
|
+
['Transaction status', result.receipt.status],
|
|
55
|
+
['Transaction block number', Number(result.receipt.blockNumber)],
|
|
56
|
+
['Transaction gas used', Number(result.receipt.gasUsed)],
|
|
57
|
+
],
|
|
58
|
+
});
|
|
59
|
+
return result;
|
|
60
|
+
};
|
|
61
|
+
export const callWCWriteMethodWithReceiptPayloads = async (args) => {
|
|
62
|
+
const { contract, methodName, payloads, values, withSpinner = true, silent = false, skipError = false, } = args;
|
|
63
|
+
if (!Array.isArray(payloads) || payloads.length === 0) {
|
|
64
|
+
throw new Error('payloads must be a non-empty array');
|
|
65
|
+
}
|
|
66
|
+
const calls = payloads.map((p, i) => ({
|
|
67
|
+
to: contract.address,
|
|
68
|
+
data: encodeFunctionData({
|
|
69
|
+
abi: contract.abi,
|
|
70
|
+
functionName: methodName,
|
|
71
|
+
args: p,
|
|
72
|
+
}),
|
|
73
|
+
value: values?.[i] ?? 0n,
|
|
74
|
+
}));
|
|
75
|
+
const result = await callWalletConnectSendCalls({
|
|
76
|
+
calls,
|
|
77
|
+
withSpinner,
|
|
78
|
+
silent,
|
|
79
|
+
skipError,
|
|
80
|
+
});
|
|
81
|
+
!silent &&
|
|
82
|
+
logResult({
|
|
83
|
+
data: [
|
|
84
|
+
['Method name', methodName],
|
|
85
|
+
['Contract', contract.address],
|
|
86
|
+
['Batch calls', payloads.length],
|
|
87
|
+
['Batch ID', result.id],
|
|
88
|
+
['Batch status', result.callStatus.status],
|
|
89
|
+
['Transaction', result.txHash],
|
|
90
|
+
['Transaction status', result.receipt.status],
|
|
91
|
+
['Transaction block number', Number(result.receipt.blockNumber)],
|
|
92
|
+
['Transaction gas used', Number(result.receipt.gasUsed)],
|
|
93
|
+
],
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
const callWalletConnectSendCalls = async (args) => {
|
|
97
|
+
const { calls, withSpinner = true, skipError = false } = args;
|
|
98
|
+
const isBatch = calls.length > 1;
|
|
99
|
+
if (!Array.isArray(calls) || calls.length === 0) {
|
|
100
|
+
throw new Error('calls must be a non-empty array');
|
|
101
|
+
}
|
|
102
|
+
try {
|
|
103
|
+
const walletConnectClient = await getWalletConnectClient();
|
|
104
|
+
if (!walletConnectClient || !walletConnectClient.account) {
|
|
105
|
+
throw new Error('No wallet connect client found. Check your wallet and try again.');
|
|
106
|
+
}
|
|
107
|
+
await simulateWCWriteTx({
|
|
108
|
+
calls,
|
|
109
|
+
withSpinner,
|
|
110
|
+
skipError,
|
|
111
|
+
});
|
|
112
|
+
const hideSubmitSpinner = withSpinner
|
|
113
|
+
? showSpinner({
|
|
114
|
+
type: 'bouncingBar',
|
|
115
|
+
message: isBatch
|
|
116
|
+
? 'Submitting batch...'
|
|
117
|
+
: 'Submitting transaction...',
|
|
118
|
+
})
|
|
119
|
+
: () => { };
|
|
120
|
+
const result = await walletConnectClient.sendCalls({
|
|
121
|
+
account: walletConnectClient.account.address,
|
|
122
|
+
calls,
|
|
123
|
+
experimental_fallback: true, // fallback to legacy sendTransaction if sendCalls is not supported
|
|
124
|
+
});
|
|
125
|
+
hideSubmitSpinner();
|
|
126
|
+
const hideStatusSpinner = withSpinner
|
|
127
|
+
? showSpinner({
|
|
128
|
+
type: 'bouncingBar',
|
|
129
|
+
message: isBatch
|
|
130
|
+
? 'Waiting for batch status...'
|
|
131
|
+
: 'Waiting for transaction status...',
|
|
132
|
+
})
|
|
133
|
+
: () => { };
|
|
134
|
+
const callStatus = await walletConnectClient.waitForCallsStatus({
|
|
135
|
+
id: result.id,
|
|
136
|
+
pollingInterval: PROVIDER_POLLING_INTERVAL,
|
|
137
|
+
timeout: AA_TX_POLLING_TIMEOUT,
|
|
138
|
+
});
|
|
139
|
+
hideStatusSpinner();
|
|
140
|
+
if (callStatus.status === 'failure') {
|
|
141
|
+
throw new Error('Transaction failed. Check your wallet for details.');
|
|
142
|
+
}
|
|
143
|
+
if (callStatus.receipts?.find((receipt) => receipt.status === 'reverted')) {
|
|
144
|
+
throw new Error('Some operation were reverted. Check your wallet for details.');
|
|
145
|
+
}
|
|
146
|
+
// extract last receipt if there was no atomic batch
|
|
147
|
+
const txHash = callStatus.receipts
|
|
148
|
+
? callStatus?.receipts[callStatus.receipts.length - 1]?.transactionHash
|
|
149
|
+
: undefined;
|
|
150
|
+
if (!txHash) {
|
|
151
|
+
throw new Error('Could not locate TX hash.Check your wallet for details.');
|
|
152
|
+
}
|
|
153
|
+
const hideReceiptSpinner = withSpinner
|
|
154
|
+
? showSpinner({
|
|
155
|
+
type: 'bouncingBar',
|
|
156
|
+
message: 'Waiting for transaction receipt...',
|
|
157
|
+
})
|
|
158
|
+
: () => { };
|
|
159
|
+
const publicClient = getPublicClient();
|
|
160
|
+
const receipt = await waitForTransactionReceipt(publicClient, {
|
|
161
|
+
hash: txHash,
|
|
162
|
+
confirmations: 3,
|
|
163
|
+
});
|
|
164
|
+
hideReceiptSpinner();
|
|
165
|
+
return { id: result.id, callStatus, txHash, receipt };
|
|
166
|
+
}
|
|
167
|
+
catch (err) {
|
|
168
|
+
await disconnectWalletConnect();
|
|
169
|
+
if (!skipError)
|
|
170
|
+
printError(err, 'Error when sending batch calls');
|
|
171
|
+
throw err;
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
//# 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 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../utils/transactions/types.ts"],"names":[],"mappings":""}
|