@lidofinance/lsv-cli 1.0.0-alpha.2 → 1.0.0-alpha.21
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 +578 -1
- package/dist/abi/CLProofVerifier.js +279 -0
- package/dist/abi/CLProofVerifier.js.map +1 -0
- package/dist/abi/Dashboard.js +1498 -0
- package/dist/abi/Dashboard.js.map +1 -0
- package/dist/abi/Delegation.js +1786 -0
- package/dist/abi/Delegation.js.map +1 -0
- package/dist/abi/LidoLocator.js +426 -0
- package/dist/abi/LidoLocator.js.map +1 -0
- package/dist/abi/PredepositGuarantee.js +1733 -0
- package/dist/abi/PredepositGuarantee.js.map +1 -0
- package/dist/abi/StEth.js +493 -0
- package/dist/abi/StEth.js.map +1 -0
- package/dist/abi/StakingVault.js +978 -0
- package/dist/abi/StakingVault.js.map +1 -0
- package/dist/abi/TokenManager.js +756 -0
- package/dist/abi/TokenManager.js.map +1 -0
- package/dist/abi/VaultFactory.js +246 -0
- package/dist/abi/VaultFactory.js.map +1 -0
- package/dist/abi/VaultHub.js +1138 -439
- package/dist/abi/VaultHub.js.map +1 -1
- package/dist/abi/VaultViewer.js +297 -0
- package/dist/abi/VaultViewer.js.map +1 -0
- package/dist/abi/Voting.js +884 -0
- package/dist/abi/Voting.js.map +1 -0
- package/dist/abi/index.js +13 -0
- package/dist/abi/index.js.map +1 -0
- package/dist/command/index.js +4 -5
- package/dist/command/index.js.map +1 -1
- package/dist/configs/constants.js +3 -0
- package/dist/configs/constants.js.map +1 -0
- package/dist/configs/deployed.js +114 -53
- package/dist/configs/deployed.js.map +1 -1
- package/dist/configs/envs.js +10 -28
- package/dist/configs/envs.js.map +1 -1
- package/dist/configs/index.js +3 -18
- package/dist/configs/index.js.map +1 -1
- package/dist/configs/utils.js +26 -0
- package/dist/configs/utils.js.map +1 -0
- package/dist/contracts/clProofVerifier.js +29 -0
- package/dist/contracts/clProofVerifier.js.map +1 -0
- package/dist/contracts/dashboard.js +11 -0
- package/dist/contracts/dashboard.js.map +1 -0
- package/dist/contracts/delegation.js +11 -0
- package/dist/contracts/delegation.js.map +1 -0
- package/dist/contracts/index.js +12 -17
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/locator.js +16 -0
- package/dist/contracts/locator.js.map +1 -0
- package/dist/contracts/pdg.js +17 -0
- package/dist/contracts/pdg.js.map +1 -0
- package/dist/contracts/steth.js +15 -0
- package/dist/contracts/steth.js.map +1 -0
- package/dist/contracts/token-manager.js +16 -0
- package/dist/contracts/token-manager.js.map +1 -0
- package/dist/contracts/vault-factory.js +14 -0
- package/dist/contracts/vault-factory.js.map +1 -0
- package/dist/contracts/vault-hub.js +14 -17
- package/dist/contracts/vault-hub.js.map +1 -1
- package/dist/contracts/vault-viewer.js +25 -0
- package/dist/contracts/vault-viewer.js.map +1 -0
- package/dist/contracts/vault.js +14 -0
- package/dist/contracts/vault.js.map +1 -0
- package/dist/contracts/voting.js +18 -0
- package/dist/contracts/voting.js.map +1 -0
- package/dist/features/advanced-config.js +16 -0
- package/dist/features/advanced-config.js.map +1 -0
- package/dist/features/dashboard-delegation.js +25 -0
- package/dist/features/dashboard-delegation.js.map +1 -0
- package/dist/features/index.js +5 -0
- package/dist/features/index.js.map +1 -0
- package/dist/features/token-manager.js +7 -0
- package/dist/features/token-manager.js.map +1 -0
- package/dist/features/vault-factory.js +25 -0
- package/dist/features/vault-factory.js.map +1 -0
- package/dist/features/voting.js +125 -0
- package/dist/features/voting.js.map +1 -0
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/dist/programs/account.js +29 -0
- package/dist/programs/account.js.map +1 -0
- package/dist/programs/config.js +31 -0
- package/dist/programs/config.js.map +1 -0
- package/dist/programs/dashboard/config.js +65 -0
- package/dist/programs/dashboard/config.js.map +1 -0
- package/dist/programs/dashboard/index.js +4 -0
- package/dist/programs/dashboard/index.js.map +1 -0
- package/dist/programs/dashboard/main.js +12 -0
- package/dist/programs/dashboard/main.js.map +1 -0
- package/dist/programs/dashboard/read.js +25 -0
- package/dist/programs/dashboard/read.js.map +1 -0
- package/dist/programs/dashboard/write.js +302 -0
- package/dist/programs/dashboard/write.js.map +1 -0
- package/dist/programs/delegation/config.js +33 -0
- package/dist/programs/delegation/config.js.map +1 -0
- package/dist/programs/delegation/index.js +4 -0
- package/dist/programs/delegation/index.js.map +1 -0
- package/dist/programs/delegation/main.js +12 -0
- package/dist/programs/delegation/main.js.map +1 -0
- package/dist/programs/delegation/read.js +98 -0
- package/dist/programs/delegation/read.js.map +1 -0
- package/dist/programs/delegation/write.js +327 -0
- package/dist/programs/delegation/write.js.map +1 -0
- package/dist/programs/hub/config.js +127 -0
- package/dist/programs/hub/config.js.map +1 -0
- package/dist/programs/hub/index.js +4 -0
- package/dist/programs/hub/index.js.map +1 -0
- package/dist/programs/hub/main.js +12 -0
- package/dist/programs/hub/main.js.map +1 -0
- package/dist/programs/hub/read.js +62 -0
- package/dist/programs/hub/read.js.map +1 -0
- package/dist/programs/hub/write.js +109 -0
- package/dist/programs/hub/write.js.map +1 -0
- package/dist/programs/index.js +10 -17
- package/dist/programs/index.js.map +1 -1
- package/dist/programs/pdg/config.js +97 -0
- package/dist/programs/pdg/config.js.map +1 -0
- package/dist/programs/pdg/index.js +4 -0
- package/dist/programs/pdg/index.js.map +1 -0
- package/dist/programs/pdg/main.js +12 -0
- package/dist/programs/pdg/main.js.map +1 -0
- package/dist/programs/pdg/read.js +7 -0
- package/dist/programs/pdg/read.js.map +1 -0
- package/dist/programs/pdg/write.js +114 -0
- package/dist/programs/pdg/write.js.map +1 -0
- package/dist/programs/pdg-helpers.js +90 -0
- package/dist/programs/pdg-helpers.js.map +1 -0
- package/dist/programs/vault/config.js +66 -0
- package/dist/programs/vault/config.js.map +1 -0
- package/dist/programs/vault/index.js +4 -0
- package/dist/programs/vault/index.js.map +1 -0
- package/dist/programs/vault/main.js +10 -0
- package/dist/programs/vault/main.js.map +1 -0
- package/dist/programs/vault/read.js +53 -0
- package/dist/programs/vault/read.js.map +1 -0
- package/dist/programs/vault/write.js +123 -0
- package/dist/programs/vault/write.js.map +1 -0
- package/dist/programs/vault-factory/config.js +2 -0
- package/dist/programs/vault-factory/config.js.map +1 -0
- package/dist/programs/vault-factory/index.js +4 -0
- package/dist/programs/vault-factory/index.js.map +1 -0
- package/dist/programs/vault-factory/main.js +12 -0
- package/dist/programs/vault-factory/main.js.map +1 -0
- package/dist/programs/vault-factory/read.js +26 -0
- package/dist/programs/vault-factory/read.js.map +1 -0
- package/dist/programs/vault-factory/write.js +110 -0
- package/dist/programs/vault-factory/write.js.map +1 -0
- package/dist/programs/vault-viewer/config.js +85 -0
- package/dist/programs/vault-viewer/config.js.map +1 -0
- package/dist/programs/vault-viewer/index.js +3 -0
- package/dist/programs/vault-viewer/index.js.map +1 -0
- package/dist/programs/vault-viewer/main.js +10 -0
- package/dist/programs/vault-viewer/main.js.map +1 -0
- package/dist/programs/vault-viewer/read.js +55 -0
- package/dist/programs/vault-viewer/read.js.map +1 -0
- package/dist/programs/voting.js +33 -0
- package/dist/programs/voting.js.map +1 -0
- package/dist/providers/index.js +1 -17
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/wallet.js +20 -32
- package/dist/providers/wallet.js.map +1 -1
- package/dist/types/common.js +2 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/config.js +2 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/contract.js +98 -0
- package/dist/utils/contract.js.map +1 -0
- package/dist/utils/data-validators.js +69 -0
- package/dist/utils/data-validators.js.map +1 -0
- package/dist/utils/error-handler.js +7 -0
- package/dist/utils/error-handler.js.map +1 -0
- package/dist/utils/get-commands.js +11 -0
- package/dist/utils/get-commands.js.map +1 -0
- package/dist/utils/get-deposit-data-root.js +40 -0
- package/dist/utils/get-deposit-data-root.js.map +1 -0
- package/dist/utils/get-value.js +5 -11
- package/dist/utils/get-value.js.map +1 -1
- package/dist/utils/index.js +13 -17
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/parse-string.js +20 -0
- package/dist/utils/parse-string.js.map +1 -0
- package/dist/utils/prompts/default.js +17 -0
- package/dist/utils/prompts/default.js.map +1 -0
- package/dist/utils/prompts/delegation-dashboard.js +29 -0
- package/dist/utils/prompts/delegation-dashboard.js.map +1 -0
- package/dist/utils/prompts/index.js +5 -0
- package/dist/utils/prompts/index.js.map +1 -0
- package/dist/utils/prompts/predeposit-guarantee.js +25 -0
- package/dist/utils/prompts/predeposit-guarantee.js.map +1 -0
- package/dist/utils/prompts/vault.js +11 -0
- package/dist/utils/prompts/vault.js.map +1 -0
- package/dist/utils/proof/create-proof.js +62 -0
- package/dist/utils/proof/create-proof.js.map +1 -0
- package/dist/utils/proof/first-validator-gindex.js +26 -0
- package/dist/utils/proof/first-validator-gindex.js.map +1 -0
- package/dist/utils/proof/index.js +4 -0
- package/dist/utils/proof/index.js.map +1 -0
- package/dist/utils/proof/merkle-utils.js +161 -0
- package/dist/utils/proof/merkle-utils.js.map +1 -0
- package/dist/utils/proof/proofs.js +52 -0
- package/dist/utils/proof/proofs.js.map +1 -0
- package/dist/utils/read-programs-by-abi.js +87 -0
- package/dist/utils/read-programs-by-abi.js.map +1 -0
- package/dist/utils/resolve-path.js +10 -0
- package/dist/utils/resolve-path.js.map +1 -0
- package/dist/utils/sleep.js +4 -0
- package/dist/utils/sleep.js.map +1 -0
- package/dist/utils/spinner/index.js +2 -0
- package/dist/utils/spinner/index.js.map +1 -0
- package/dist/utils/spinner/spinners.js +16 -0
- package/dist/utils/spinner/spinners.js.map +1 -0
- package/dist/utils/spinner/spinners.json +119 -0
- package/dist/version/index.js +1 -0
- package/dist/version/index.js.map +1 -0
- package/package.json +52 -7
- package/dist/programs/vault-hub.js +0 -137
- package/dist/programs/vault-hub.js.map +0 -1
package/dist/providers/wallet.js
CHANGED
|
@@ -1,39 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const currentChainId = chainId ?? process.env.CHAIN_ID;
|
|
9
|
-
const rpcUrl = _configs_1.envs?.[`RPC_URL_${currentChainId}`];
|
|
10
|
-
const client = (0, viem_1.createWalletClient)({
|
|
11
|
-
chain: chainId,
|
|
12
|
-
transport: (0, viem_1.http)(rpcUrl),
|
|
13
|
-
});
|
|
14
|
-
return client;
|
|
15
|
-
};
|
|
16
|
-
exports.getWalletClient = getWalletClient;
|
|
17
|
-
const getAccount = (chainId) => {
|
|
18
|
-
const currentChainId = chainId ?? process.env.CHAIN_ID;
|
|
19
|
-
const privateKey = _configs_1.envs?.[`PRIVATE_KEY_${currentChainId}`];
|
|
1
|
+
import { createPublicClient, createWalletClient, http } from 'viem';
|
|
2
|
+
import { privateKeyToAccount } from 'viem/accounts';
|
|
3
|
+
import { envs, getConfig, getChainId, getRpcUrl, getChain } from '../configs/index.js';
|
|
4
|
+
export const getAccount = () => {
|
|
5
|
+
const config = getConfig();
|
|
6
|
+
const id = getChainId();
|
|
7
|
+
const privateKey = config?.privateKey ?? envs?.[`PRIVATE_KEY_${id}`];
|
|
20
8
|
if (!privateKey) {
|
|
21
|
-
throw new Error(`
|
|
9
|
+
throw new Error(`Private key for ${id} chain is not set`);
|
|
22
10
|
}
|
|
23
|
-
|
|
24
|
-
|
|
11
|
+
return privateKeyToAccount(privateKey);
|
|
12
|
+
};
|
|
13
|
+
export const getPublicClient = () => {
|
|
14
|
+
return createPublicClient({
|
|
15
|
+
chain: getChain(),
|
|
16
|
+
transport: http(getRpcUrl()),
|
|
17
|
+
});
|
|
25
18
|
};
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
const rpcUrl = _configs_1.envs?.[`RPC_URL_${currentChainId}`];
|
|
30
|
-
const account = (0, exports.getAccount)(chainId);
|
|
31
|
-
const client = (0, viem_1.createWalletClient)({
|
|
19
|
+
export const getWalletWithAccount = () => {
|
|
20
|
+
const account = getAccount();
|
|
21
|
+
return createWalletClient({
|
|
32
22
|
account,
|
|
33
|
-
chain:
|
|
34
|
-
transport:
|
|
23
|
+
chain: getChain(),
|
|
24
|
+
transport: http(getRpcUrl()),
|
|
35
25
|
});
|
|
36
|
-
return { client, account };
|
|
37
26
|
};
|
|
38
|
-
exports.getWalletWithAccount = getWalletWithAccount;
|
|
39
27
|
//# sourceMappingURL=wallet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../providers/wallet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../providers/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,kBAAkB,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE3E,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE;IAC7B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;IACxB,MAAM,UAAU,GAAG,MAAM,EAAE,UAAU,IAAI,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAErE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,mBAAmB,CAAC,UAAqB,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,OAAO,kBAAkB,CAAC;QACxB,KAAK,EAAE,QAAQ,EAAE;QACjB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;KAC7B,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACvC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,OAAO,kBAAkB,CAAC;QACxB,OAAO;QACP,KAAK,EAAE,QAAQ,EAAE;QACjB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;KAC7B,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../types/common.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../types/config.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { printError } from './index.js';
|
|
2
|
+
import { getAccount, getPublicClient } from '../providers/index.js';
|
|
3
|
+
import { getChain } from '../configs/index.js';
|
|
4
|
+
import { showSpinner } from '../utils/index.js';
|
|
5
|
+
import { waitForTransactionReceipt } from 'viem/actions';
|
|
6
|
+
export const callSimulateWriteMethod = async (contract, methodName, payload, value) => {
|
|
7
|
+
const hideSpinner = showSpinner({
|
|
8
|
+
type: 'bouncingBall',
|
|
9
|
+
message: 'Simulating...',
|
|
10
|
+
});
|
|
11
|
+
try {
|
|
12
|
+
const method = contract.simulate[methodName];
|
|
13
|
+
const result = await method?.(payload, {
|
|
14
|
+
account: getAccount(),
|
|
15
|
+
chain: getChain(),
|
|
16
|
+
value,
|
|
17
|
+
});
|
|
18
|
+
hideSpinner();
|
|
19
|
+
return result;
|
|
20
|
+
}
|
|
21
|
+
catch (err) {
|
|
22
|
+
hideSpinner();
|
|
23
|
+
printError(err, `Error when simulating write method "${methodName}"`);
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
export const callWriteMethod = async (contract, methodName, payload, value) => {
|
|
28
|
+
const simulateResult = await callSimulateWriteMethod(contract, methodName, payload, value);
|
|
29
|
+
if (!simulateResult) {
|
|
30
|
+
printError(new Error('Simulation failed'), `Error when simulating write method "${methodName}"`);
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const hideSpinner = showSpinner();
|
|
34
|
+
try {
|
|
35
|
+
const method = contract.write[methodName];
|
|
36
|
+
const tx = await method?.(payload, {
|
|
37
|
+
account: getAccount(),
|
|
38
|
+
chain: getChain(),
|
|
39
|
+
value,
|
|
40
|
+
});
|
|
41
|
+
hideSpinner();
|
|
42
|
+
console.table({ Transaction: tx });
|
|
43
|
+
return tx;
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
hideSpinner();
|
|
47
|
+
printError(err, `Error when calling write method "${methodName}"`);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
export const callReadMethod = async (contract, methodName, ...payload) => {
|
|
52
|
+
const hideSpinner = showSpinner();
|
|
53
|
+
try {
|
|
54
|
+
const method = contract.read[methodName];
|
|
55
|
+
const result = await method?.(payload[0]);
|
|
56
|
+
hideSpinner();
|
|
57
|
+
// TODO: do message better or show in called place
|
|
58
|
+
console.table({ Result: result });
|
|
59
|
+
return result;
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
hideSpinner();
|
|
63
|
+
printError(err, `Error when calling read method "${methodName}"`);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
export const isContractAddress = async (address) => {
|
|
67
|
+
const publicClient = getPublicClient();
|
|
68
|
+
const bytecode = await publicClient.getCode({
|
|
69
|
+
address: address,
|
|
70
|
+
});
|
|
71
|
+
return bytecode !== undefined;
|
|
72
|
+
};
|
|
73
|
+
export const callWriteMethodWithReceipt = async (contract, methodName, payload, value) => {
|
|
74
|
+
const publicClient = getPublicClient();
|
|
75
|
+
const tx = await callWriteMethod(contract, methodName, payload, value);
|
|
76
|
+
if (!tx)
|
|
77
|
+
return;
|
|
78
|
+
const hideSpinner = showSpinner({
|
|
79
|
+
type: 'bouncingBar',
|
|
80
|
+
message: 'Waiting for transaction receipt...',
|
|
81
|
+
});
|
|
82
|
+
try {
|
|
83
|
+
const receipt = await waitForTransactionReceipt(publicClient, { hash: tx });
|
|
84
|
+
hideSpinner();
|
|
85
|
+
console.table({
|
|
86
|
+
'Transaction status': receipt.status,
|
|
87
|
+
'Transaction block number': Number(receipt.blockNumber),
|
|
88
|
+
'Transaction gas used': Number(receipt.gasUsed),
|
|
89
|
+
});
|
|
90
|
+
return { receipt, tx };
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
hideSpinner();
|
|
94
|
+
printError(err, 'Error when waiting for transaction receipt');
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../utils/contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { isAddress } from 'viem';
|
|
2
|
+
export const validateConfig = (config) => {
|
|
3
|
+
const errors = {};
|
|
4
|
+
if (!isValidUrl(config.rpcLink)) {
|
|
5
|
+
errors.rpcLink = 'Invalid rpcLink: must be a valid URL.';
|
|
6
|
+
}
|
|
7
|
+
if (typeof config.privateKey !== 'string' || !config.privateKey) {
|
|
8
|
+
errors.privateKey = 'Invalid privateKey: must be a non-empty string.';
|
|
9
|
+
}
|
|
10
|
+
if (typeof config.chainId !== 'number' || isNaN(config.chainId)) {
|
|
11
|
+
errors.chainId = 'Invalid chainId: must be a string representing a number.';
|
|
12
|
+
}
|
|
13
|
+
if (typeof config.lidoLocator !== 'string' ||
|
|
14
|
+
!isAddress(config.lidoLocator)) {
|
|
15
|
+
errors.lidoLocator =
|
|
16
|
+
'Invalid lidoLocator: must be a valid Ethereum address.';
|
|
17
|
+
}
|
|
18
|
+
if (typeof config.accounting !== 'string' || !isAddress(config.accounting)) {
|
|
19
|
+
errors.accounting = 'Invalid accounting: must be a valid Ethereum address.';
|
|
20
|
+
}
|
|
21
|
+
return errors;
|
|
22
|
+
};
|
|
23
|
+
export const isValidUrl = (value) => {
|
|
24
|
+
if (!value) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
if ('canParse' in URL) {
|
|
28
|
+
return URL.canParse(value);
|
|
29
|
+
}
|
|
30
|
+
try {
|
|
31
|
+
// used global here to avid types issue
|
|
32
|
+
new global.URL(value);
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
export const transformAddressesToArray = (payload, extraKeys = []) => {
|
|
40
|
+
return [...Object.keys(payload), ...extraKeys].reduce((acc, key) => {
|
|
41
|
+
if (!payload[key]) {
|
|
42
|
+
acc[key] = [];
|
|
43
|
+
return acc;
|
|
44
|
+
}
|
|
45
|
+
const value = payload[key].split(',');
|
|
46
|
+
acc[key] = value.map((item) => item.trim());
|
|
47
|
+
return acc;
|
|
48
|
+
}, {});
|
|
49
|
+
};
|
|
50
|
+
export const validateAddressesMap = (payload) => {
|
|
51
|
+
return Object.keys(payload).reduce((acc, key) => {
|
|
52
|
+
payload[key].forEach((item) => {
|
|
53
|
+
if (!isAddress(item)) {
|
|
54
|
+
acc.push(`${key}: ${item} is not a valid address`);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
return acc;
|
|
58
|
+
}, []);
|
|
59
|
+
};
|
|
60
|
+
export const validateAddressMap = (payload) => {
|
|
61
|
+
return Object.keys(payload).reduce((acc, key) => {
|
|
62
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
63
|
+
if (!isAddress(payload[key])) {
|
|
64
|
+
acc.push(`${key} is not a valid address`);
|
|
65
|
+
}
|
|
66
|
+
return acc;
|
|
67
|
+
}, []);
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=data-validators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-validators.js","sourceRoot":"","sources":["../../utils/data-validators.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../utils/error-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAY,EAAE,OAAe,EAAE,EAAE;IAC1D,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,OAAO,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export const getCommandsJson = (program) => {
|
|
2
|
+
return JSON.stringify(program.commands.map((x) => {
|
|
3
|
+
const command = `${x.name()} ${x.alias() !== undefined ? x.alias() : ''}${x.registeredArguments?.map((y) => `\\<${y.name()}>`).join(' ') ||
|
|
4
|
+
''}`;
|
|
5
|
+
return {
|
|
6
|
+
Command: command,
|
|
7
|
+
Description: x.description(),
|
|
8
|
+
};
|
|
9
|
+
}));
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=get-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-commands.js","sourceRoot":"","sources":["../../utils/get-commands.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAgB,EAAE,EAAE;IAClD,OAAO,IAAI,CAAC,SAAS,CACnB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;QAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GACrE,CAAC,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YACnE,EACF,EAAE,CAAC;QACH,OAAO;YACL,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE;SAC7B,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { fromHex, sha256Concat, encodeGweiAsLittleEndian8, } from './proof/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* - pubkey: bytes
|
|
4
|
+
* - withdrawalCredentials: bytes
|
|
5
|
+
* - signature: bytes
|
|
6
|
+
* - amountWei: bigint или string (в wei)
|
|
7
|
+
*/
|
|
8
|
+
export const computeDepositDataRoot = (pubkey, withdrawalCredentials, signature, amountWei) => {
|
|
9
|
+
const pubkeyBytes = fromHex(pubkey);
|
|
10
|
+
const withdrawalCredentialsBytes = fromHex(withdrawalCredentials);
|
|
11
|
+
const signatureBytes = fromHex(signature);
|
|
12
|
+
// 1) Convert amount from wei to gwei
|
|
13
|
+
const amountWeiBN = typeof amountWei === 'string' ? BigInt(amountWei) : amountWei;
|
|
14
|
+
const amountGwei = amountWeiBN / 1000000000n;
|
|
15
|
+
// 2) Get 8 bytes little-endian
|
|
16
|
+
const amountLE64 = encodeGweiAsLittleEndian8(amountGwei);
|
|
17
|
+
// 3) pubkeyRoot = sha256(pubkey + 16 zero bytes)
|
|
18
|
+
const pubkeyRoot = sha256Concat(pubkeyBytes, new Uint8Array(16));
|
|
19
|
+
// 4) signatureRoot
|
|
20
|
+
// - sigSlice1Root = sha256(signature[0..64])
|
|
21
|
+
// - sigSlice2Root = sha256(signature[64..end] + 32 zero bytes)
|
|
22
|
+
// - signatureRoot = sha256(sigSlice1Root + sigSlice2Root)
|
|
23
|
+
const sigSlice1 = signatureBytes.slice(0, 64); // first 64 bytes
|
|
24
|
+
const sigSlice2 = signatureBytes.slice(64); // remaining (usually 32 bytes)
|
|
25
|
+
const sigSlice1Root = sha256Concat(sigSlice1);
|
|
26
|
+
const sigSlice2Root = sha256Concat(sigSlice2, new Uint8Array(32));
|
|
27
|
+
const signatureRoot = sha256Concat(sigSlice1Root, sigSlice2Root);
|
|
28
|
+
// 5) Sum all, as in Solidity:
|
|
29
|
+
// depositDataRoot = sha256(
|
|
30
|
+
// sha256(pubkeyRoot, withdrawalCredentials),
|
|
31
|
+
// sha256(amountLE64, 24 нулевых байт, signatureRoot)
|
|
32
|
+
// )
|
|
33
|
+
const part1 = sha256Concat(pubkeyRoot, withdrawalCredentialsBytes);
|
|
34
|
+
const part2 = sha256Concat(amountLE64, new Uint8Array(24), // 24 нулевых
|
|
35
|
+
signatureRoot);
|
|
36
|
+
const depositDataRoot = sha256Concat(part1, part2);
|
|
37
|
+
// Return in hex-string format '0x...'
|
|
38
|
+
return '0x' + Buffer.from(depositDataRoot).toString('hex');
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=get-deposit-data-root.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-deposit-data-root.js","sourceRoot":"","sources":["../../utils/get-deposit-data-root.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,YAAY,EACZ,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAE1B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,MAAc,EACd,qBAA6B,EAC7B,SAAiB,EACjB,SAA0B,EAClB,EAAE;IACV,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,0BAA0B,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAClE,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1C,qCAAqC;IACrC,MAAM,WAAW,GACf,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,MAAM,UAAU,GAAG,WAAW,GAAG,WAAc,CAAC;IAEhD,+BAA+B;IAC/B,MAAM,UAAU,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;IAEzD,iDAAiD;IACjD,MAAM,UAAU,GAAG,YAAY,CAC7B,WAAW,EACX,IAAI,UAAU,CAAC,EAAE,CAAC,CACnB,CAAC;IAEF,mBAAmB;IACnB,gDAAgD;IAChD,kEAAkE;IAClE,6DAA6D;IAC7D,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB;IAChE,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,+BAA+B;IAC3E,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAC9C,MAAM,aAAa,GAAG,YAAY,CAChC,SAAS,EACT,IAAI,UAAU,CAAC,EAAE,CAAC,CACnB,CAAC;IACF,MAAM,aAAa,GAAG,YAAY,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAEjE,8BAA8B;IAC9B,+BAA+B;IAC/B,mDAAmD;IACnD,2DAA2D;IAC3D,OAAO;IACP,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,EAAE,0BAA0B,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,YAAY,CACxB,UAAU,EACV,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,aAAa;IACjC,aAAa,CACd,CAAC;IACF,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAEnD,sCAAsC;IACtC,OAAO,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC,CAAC"}
|
package/dist/utils/get-value.js
CHANGED
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.getValueByPath = void 0;
|
|
4
|
-
const getValueByPath = (obj, path) => {
|
|
5
|
-
const segments = path.split(".");
|
|
1
|
+
export const getValueByPath = (obj, path) => {
|
|
2
|
+
const segments = path.split('.');
|
|
6
3
|
let current = obj;
|
|
7
|
-
for (
|
|
8
|
-
if (typeof current ===
|
|
9
|
-
current
|
|
10
|
-
segments[i] in current) {
|
|
11
|
-
current = current[segments[i]];
|
|
4
|
+
for (const segment of segments) {
|
|
5
|
+
if (typeof current === 'object' && current !== null && segment in current) {
|
|
6
|
+
current = current[segment];
|
|
12
7
|
}
|
|
13
8
|
else {
|
|
14
9
|
return undefined;
|
|
@@ -16,5 +11,4 @@ const getValueByPath = (obj, path) => {
|
|
|
16
11
|
}
|
|
17
12
|
return current;
|
|
18
13
|
};
|
|
19
|
-
exports.getValueByPath = getValueByPath;
|
|
20
14
|
//# sourceMappingURL=get-value.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-value.js","sourceRoot":"","sources":["../../utils/get-value.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-value.js","sourceRoot":"","sources":["../../utils/get-value.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,GAAM,EACN,IAAY,EACZ,EAAE;IACF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,OAAO,GAAY,GAAG,CAAC;IAE3B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;YAC1E,OAAO,GAAI,OAAa,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./get-value"), exports);
|
|
1
|
+
export * from './get-value.js';
|
|
2
|
+
export * from './data-validators.js';
|
|
3
|
+
export * from './resolve-path.js';
|
|
4
|
+
export * from './sleep.js';
|
|
5
|
+
export * from './error-handler.js';
|
|
6
|
+
export * from './contract.js';
|
|
7
|
+
export * from './proof/index.js';
|
|
8
|
+
export * from './prompts/index.js';
|
|
9
|
+
export * from './spinner/index.js';
|
|
10
|
+
export * from './read-programs-by-abi.js';
|
|
11
|
+
export * from './get-commands.js';
|
|
12
|
+
export * from './parse-string.js';
|
|
13
|
+
export * from './get-deposit-data-root.js';
|
|
18
14
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export const parseObjectsArray = (str) => {
|
|
2
|
+
const trimmed = str.trim();
|
|
3
|
+
if (!trimmed) {
|
|
4
|
+
return [];
|
|
5
|
+
}
|
|
6
|
+
const parts = trimmed.split('},').map((part) => part.trim());
|
|
7
|
+
const normalizedParts = parts.map((part) => {
|
|
8
|
+
return part.endsWith('}') ? part : part + '}';
|
|
9
|
+
});
|
|
10
|
+
const jsonStrings = normalizedParts.map((chunk) => {
|
|
11
|
+
const withQuotedKeys = chunk.replace(/(\w+)\s*:/g, '"$1":');
|
|
12
|
+
const replacedQuotes = withQuotedKeys.replace(/'/g, '"');
|
|
13
|
+
return replacedQuotes;
|
|
14
|
+
});
|
|
15
|
+
const result = jsonStrings.map((jsonStr) => {
|
|
16
|
+
return JSON.parse(jsonStr);
|
|
17
|
+
});
|
|
18
|
+
return result;
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=parse-string.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-string.js","sourceRoot":"","sources":["../../utils/parse-string.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAyB,EAAE;IACtE,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAE7D,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACzC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAChD,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC5D,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAEzD,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACzC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import prompts from 'prompts';
|
|
2
|
+
export const textPrompt = (message, name) => {
|
|
3
|
+
return prompts({
|
|
4
|
+
type: 'text',
|
|
5
|
+
name,
|
|
6
|
+
message,
|
|
7
|
+
});
|
|
8
|
+
};
|
|
9
|
+
export const confirmPrompt = (message, name) => {
|
|
10
|
+
return prompts({
|
|
11
|
+
type: 'confirm',
|
|
12
|
+
name,
|
|
13
|
+
message,
|
|
14
|
+
initial: false,
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=default.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.js","sourceRoot":"","sources":["../../../utils/prompts/default.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,OAAe,EACf,IAAO,EACsB,EAAE;IAC/B,OAAO,OAAO,CAAC;QACb,IAAI,EAAE,MAAM;QACZ,IAAI;QACJ,OAAO;KACR,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,OAAe,EACf,IAAO,EACsB,EAAE;IAC/B,OAAO,OAAO,CAAC;QACb,IAAI,EAAE,SAAS;QACf,IAAI;QACJ,OAAO;QACP,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { confirmPrompt, textPrompt } from './default.js';
|
|
2
|
+
export const dashboardAddressPrompt = async () => {
|
|
3
|
+
return await textPrompt('Enter dashboard address', 'address');
|
|
4
|
+
};
|
|
5
|
+
export const amountWeiPrompt = async () => {
|
|
6
|
+
return await textPrompt('Enter amount in wei', 'amountWei');
|
|
7
|
+
};
|
|
8
|
+
export const confirmContractAndAmount = async (dashboard, amountWei) => {
|
|
9
|
+
return await confirmPrompt(`Do you want to fund the dashboard ${dashboard} with ${amountWei} wei?`, 'confirm');
|
|
10
|
+
};
|
|
11
|
+
export const confirmFund = async (address, amountWei) => {
|
|
12
|
+
let contractAddress = address;
|
|
13
|
+
let amount = amountWei;
|
|
14
|
+
if (!contractAddress) {
|
|
15
|
+
const answerDashboardAddress = await dashboardAddressPrompt();
|
|
16
|
+
contractAddress = answerDashboardAddress.address;
|
|
17
|
+
}
|
|
18
|
+
if (!amount) {
|
|
19
|
+
const answerAmount = await amountWeiPrompt();
|
|
20
|
+
amount = answerAmount.amountWei;
|
|
21
|
+
}
|
|
22
|
+
const { confirm } = await confirmContractAndAmount(contractAddress, amount);
|
|
23
|
+
if (!confirm) {
|
|
24
|
+
console.info('Command cancelled');
|
|
25
|
+
return { address: null, amount: null };
|
|
26
|
+
}
|
|
27
|
+
return { address: contractAddress, amount: amount };
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=delegation-dashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegation-dashboard.js","sourceRoot":"","sources":["../../../utils/prompts/delegation-dashboard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,IAAI,EAAE;IAC/C,OAAO,MAAM,UAAU,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAC;AAChE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;IACxC,OAAO,MAAM,UAAU,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;AAC9D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAC3C,SAAkB,EAClB,SAAiB,EACjB,EAAE;IACF,OAAO,MAAM,aAAa,CACxB,qCAAqC,SAAS,SAAS,SAAS,OAAO,EACvE,SAAS,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,OAAgB,EAAE,SAAiB,EAAE,EAAE;IACvE,IAAI,eAAe,GAAmB,OAAO,CAAC;IAC9C,IAAI,MAAM,GAAkB,SAAS,CAAC;IAEtC,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,sBAAsB,GAAG,MAAM,sBAAsB,EAAE,CAAC;QAC9D,eAAe,GAAG,sBAAsB,CAAC,OAAkB,CAAC;IAC9D,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,YAAY,GAAG,MAAM,eAAe,EAAE,CAAC;QAC7C,MAAM,GAAG,YAAY,CAAC,SAAmB,CAAC;IAC5C,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,wBAAwB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAE5E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACtD,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../utils/prompts/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { textPrompt, confirmPrompt } from './default.js';
|
|
2
|
+
export const validatorIndexPrompt = async () => {
|
|
3
|
+
return await textPrompt('Enter validator index', 'validatorIndex');
|
|
4
|
+
};
|
|
5
|
+
export const confirmValidatorIndex = async (validatorIndex) => {
|
|
6
|
+
return await confirmPrompt(`Do you want to create proof for validator ${validatorIndex}?`, 'confirm');
|
|
7
|
+
};
|
|
8
|
+
export const confirmCreateProof = async (index) => {
|
|
9
|
+
let validatorIndex = index;
|
|
10
|
+
if (!validatorIndex) {
|
|
11
|
+
const answerValidatorIndex = await validatorIndexPrompt();
|
|
12
|
+
validatorIndex = answerValidatorIndex.validatorIndex;
|
|
13
|
+
if (!validatorIndex) {
|
|
14
|
+
console.info('Command cancelled');
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
const { confirm } = await confirmValidatorIndex(validatorIndex);
|
|
19
|
+
if (!confirm) {
|
|
20
|
+
console.info('Command cancelled');
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
return validatorIndex;
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=predeposit-guarantee.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"predeposit-guarantee.js","sourceRoot":"","sources":["../../../utils/prompts/predeposit-guarantee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,IAAI,EAAE;IAC7C,OAAO,MAAM,UAAU,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,CAAC;AACrE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,cAAsB,EAAE,EAAE;IACpE,OAAO,MAAM,aAAa,CACxB,6CAA6C,cAAc,GAAG,EAC9D,SAAS,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;IACxD,IAAI,cAAc,GAAW,KAAK,CAAC;IAEnC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,oBAAoB,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAC1D,cAAc,GAAG,oBAAoB,CAAC,cAAc,CAAC;QAErD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,qBAAqB,CAAC,cAAc,CAAC,CAAC;IAEhE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { confirmPrompt } from './default.js';
|
|
2
|
+
export const confirmCreateVaultParams = async (payload) => {
|
|
3
|
+
return await confirmPrompt(`Do you want to create a vault with the following parameters?
|
|
4
|
+
${JSON.stringify(payload, (_key, value) => {
|
|
5
|
+
if (typeof value === 'bigint') {
|
|
6
|
+
return value.toString();
|
|
7
|
+
}
|
|
8
|
+
return value;
|
|
9
|
+
}, 2)}`, 'confirm');
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=vault.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault.js","sourceRoot":"","sources":["../../../utils/prompts/vault.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,OAA2B,EAAE,EAAE;IAC5E,OAAO,MAAM,aAAa,CACxB;MACE,IAAI,CAAC,SAAS,CACd,OAAO,EACP,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACd,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC1B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,EACD,CAAC,CACF,EAAE,EACH,SAAS,CACV,CAAC;AACJ,CAAC,CAAC"}
|