@lidofinance/lsv-cli 1.0.0-alpha.13 → 1.0.0-alpha.14

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 (141) hide show
  1. package/README.md +243 -120
  2. package/dist/abi/CLProofVerifier.js +279 -0
  3. package/dist/abi/CLProofVerifier.js.map +1 -0
  4. package/dist/abi/Dashboard.js +1060 -942
  5. package/dist/abi/Dashboard.js.map +1 -1
  6. package/dist/abi/Delegation.js +1260 -1129
  7. package/dist/abi/Delegation.js.map +1 -1
  8. package/dist/abi/LidoLocator.js +311 -270
  9. package/dist/abi/LidoLocator.js.map +1 -1
  10. package/dist/abi/PredepositGuarantee.js +1733 -0
  11. package/dist/abi/PredepositGuarantee.js.map +1 -0
  12. package/dist/abi/StakingVault.js +723 -528
  13. package/dist/abi/StakingVault.js.map +1 -1
  14. package/dist/abi/VaultFactory.js +164 -144
  15. package/dist/abi/VaultFactory.js.map +1 -1
  16. package/dist/abi/VaultHubViewer.js +297 -0
  17. package/dist/abi/VaultHubViewer.js.map +1 -0
  18. package/dist/abi/index.js +12 -9
  19. package/dist/abi/index.js.map +1 -1
  20. package/dist/contracts/clProofVerifier.js +29 -0
  21. package/dist/contracts/clProofVerifier.js.map +1 -0
  22. package/dist/contracts/dashboard.js.map +1 -1
  23. package/dist/contracts/index.js +12 -9
  24. package/dist/contracts/index.js.map +1 -1
  25. package/dist/contracts/locator.js +2 -2
  26. package/dist/contracts/locator.js.map +1 -1
  27. package/dist/contracts/pdg.js +17 -0
  28. package/dist/contracts/pdg.js.map +1 -0
  29. package/dist/contracts/vault-factory.js +5 -9
  30. package/dist/contracts/vault-factory.js.map +1 -1
  31. package/dist/contracts/vault-hub-viewer.js +14 -0
  32. package/dist/contracts/vault-hub-viewer.js.map +1 -0
  33. package/dist/features/dashboard-delegation.js +4 -1
  34. package/dist/features/dashboard-delegation.js.map +1 -1
  35. package/dist/features/vault-factory.js +6 -10
  36. package/dist/features/vault-factory.js.map +1 -1
  37. package/dist/features/voting.js +6 -14
  38. package/dist/features/voting.js.map +1 -1
  39. package/dist/index.js +6 -3
  40. package/dist/index.js.map +1 -1
  41. package/dist/programs/account.js +3 -1
  42. package/dist/programs/account.js.map +1 -1
  43. package/dist/programs/dashboard/config.js +65 -0
  44. package/dist/programs/dashboard/config.js.map +1 -0
  45. package/dist/programs/dashboard/index.js +4 -0
  46. package/dist/programs/dashboard/index.js.map +1 -0
  47. package/dist/programs/dashboard/main.js +12 -0
  48. package/dist/programs/dashboard/main.js.map +1 -0
  49. package/dist/programs/dashboard/read.js +25 -0
  50. package/dist/programs/dashboard/read.js.map +1 -0
  51. package/dist/programs/{dashboard.js → dashboard/write.js} +78 -136
  52. package/dist/programs/dashboard/write.js.map +1 -0
  53. package/dist/programs/delegation/config.js +33 -0
  54. package/dist/programs/delegation/config.js.map +1 -0
  55. package/dist/programs/delegation/index.js +4 -0
  56. package/dist/programs/delegation/index.js.map +1 -0
  57. package/dist/programs/delegation/main.js +12 -0
  58. package/dist/programs/delegation/main.js.map +1 -0
  59. package/dist/programs/delegation/read.js +98 -0
  60. package/dist/programs/delegation/read.js.map +1 -0
  61. package/dist/programs/delegation/write.js +327 -0
  62. package/dist/programs/delegation/write.js.map +1 -0
  63. package/dist/programs/index.js +7 -4
  64. package/dist/programs/index.js.map +1 -1
  65. package/dist/programs/pdg/config.js +2 -0
  66. package/dist/programs/pdg/config.js.map +1 -0
  67. package/dist/programs/pdg/index.js +4 -0
  68. package/dist/programs/pdg/index.js.map +1 -0
  69. package/dist/programs/pdg/main.js +12 -0
  70. package/dist/programs/pdg/main.js.map +1 -0
  71. package/dist/programs/pdg/read.js +7 -0
  72. package/dist/programs/pdg/read.js.map +1 -0
  73. package/dist/programs/pdg/write.js +64 -0
  74. package/dist/programs/pdg/write.js.map +1 -0
  75. package/dist/programs/predeposit-guarantee.js +73 -0
  76. package/dist/programs/predeposit-guarantee.js.map +1 -0
  77. package/dist/programs/vault/config.js +66 -0
  78. package/dist/programs/vault/config.js.map +1 -0
  79. package/dist/programs/vault/index.js +4 -0
  80. package/dist/programs/vault/index.js.map +1 -0
  81. package/dist/programs/vault/main.js +10 -0
  82. package/dist/programs/vault/main.js.map +1 -0
  83. package/dist/programs/vault/read.js +53 -0
  84. package/dist/programs/vault/read.js.map +1 -0
  85. package/dist/programs/vault/write.js +123 -0
  86. package/dist/programs/vault/write.js.map +1 -0
  87. package/dist/programs/vault-factory/config.js +2 -0
  88. package/dist/programs/vault-factory/config.js.map +1 -0
  89. package/dist/programs/vault-factory/index.js +4 -0
  90. package/dist/programs/vault-factory/index.js.map +1 -0
  91. package/dist/programs/vault-factory/main.js +12 -0
  92. package/dist/programs/vault-factory/main.js.map +1 -0
  93. package/dist/programs/vault-factory/read.js +26 -0
  94. package/dist/programs/vault-factory/read.js.map +1 -0
  95. package/dist/programs/{vault-factory.js → vault-factory/write.js} +22 -37
  96. package/dist/programs/vault-factory/write.js.map +1 -0
  97. package/dist/programs/vault-hub-viewer.js +52 -0
  98. package/dist/programs/vault-hub-viewer.js.map +1 -0
  99. package/dist/programs/vault-hub.js +20 -52
  100. package/dist/programs/vault-hub.js.map +1 -1
  101. package/dist/programs/voting.js +11 -33
  102. package/dist/programs/voting.js.map +1 -1
  103. package/dist/utils/contract.js +63 -2
  104. package/dist/utils/contract.js.map +1 -1
  105. package/dist/utils/get-commands.js +11 -0
  106. package/dist/utils/get-commands.js.map +1 -0
  107. package/dist/utils/index.js +5 -0
  108. package/dist/utils/index.js.map +1 -1
  109. package/dist/utils/prompts/default.js +17 -0
  110. package/dist/utils/prompts/default.js.map +1 -0
  111. package/dist/utils/prompts/delegation-dashboard.js +29 -0
  112. package/dist/utils/prompts/delegation-dashboard.js.map +1 -0
  113. package/dist/utils/prompts/index.js +4 -0
  114. package/dist/utils/prompts/index.js.map +1 -0
  115. package/dist/utils/prompts/predeposit-guarantee.js +25 -0
  116. package/dist/utils/prompts/predeposit-guarantee.js.map +1 -0
  117. package/dist/utils/proof/create-proof.js +62 -0
  118. package/dist/utils/proof/create-proof.js.map +1 -0
  119. package/dist/utils/proof/first-validator-gindex.js +26 -0
  120. package/dist/utils/proof/first-validator-gindex.js.map +1 -0
  121. package/dist/utils/proof/index.js +4 -0
  122. package/dist/utils/proof/index.js.map +1 -0
  123. package/dist/utils/proof/merkle-utils.js +131 -0
  124. package/dist/utils/proof/merkle-utils.js.map +1 -0
  125. package/dist/utils/proof/proofs.js +52 -0
  126. package/dist/utils/proof/proofs.js.map +1 -0
  127. package/dist/utils/read-programs-by-abi.js +83 -0
  128. package/dist/utils/read-programs-by-abi.js.map +1 -0
  129. package/dist/utils/spinner/index.js +2 -0
  130. package/dist/utils/spinner/index.js.map +1 -0
  131. package/dist/utils/spinner/spinners.js +16 -0
  132. package/dist/utils/spinner/spinners.js.map +1 -0
  133. package/dist/utils/spinner/spinners.json +119 -0
  134. package/dist/version/index.js +1 -1
  135. package/package.json +11 -4
  136. package/dist/programs/dashboard.js.map +0 -1
  137. package/dist/programs/delegation.js +0 -581
  138. package/dist/programs/delegation.js.map +0 -1
  139. package/dist/programs/vault-factory.js.map +0 -1
  140. package/dist/programs/vault.js +0 -375
  141. package/dist/programs/vault.js.map +0 -1
@@ -0,0 +1,73 @@
1
+ import { program } from '../command/index.js';
2
+ import { getCLProofVerifierContract } from '../contracts/index.js';
3
+ import { createPDGProof, getFirstValidatorGIndex, confirmCreateProof, showSpinner, printError, } from '../utils/index.js';
4
+ const predepositGuaranteeHelpers = program
5
+ .command('pdg-helpers')
6
+ .description('predeposit guarantee helpers');
7
+ predepositGuaranteeHelpers
8
+ .command('create-proof-and-check')
9
+ .option('-i, --index <index>', 'validator index')
10
+ .description('create predeposit proof by validator index and check by test contract')
11
+ .action(async ({ index }) => {
12
+ const validatorIndex = await confirmCreateProof(index);
13
+ if (!validatorIndex)
14
+ return;
15
+ const clProofVerifierContract = getCLProofVerifierContract();
16
+ const hideSpinner = showSpinner();
17
+ try {
18
+ const packageProof = await createPDGProof(Number(validatorIndex));
19
+ hideSpinner();
20
+ const { proof, pubkey, childBlockTimestamp, withdrawalCredentials } = packageProof;
21
+ await clProofVerifierContract.read.TEST_validatePubKeyWCProof([
22
+ { proof, pubkey, validatorIndex, childBlockTimestamp },
23
+ withdrawalCredentials,
24
+ ]);
25
+ console.info('-----------------proof verified-----------------');
26
+ console.info('------------------------------------------------');
27
+ console.info('----------------------proof----------------------');
28
+ console.info(proof);
29
+ console.info('---------------------pubkey---------------------');
30
+ console.table(pubkey);
31
+ console.info('---------------childBlockTimestamp---------------');
32
+ console.table(childBlockTimestamp);
33
+ console.info('--------------withdrawalCredentials--------------');
34
+ console.table(withdrawalCredentials);
35
+ console.info('------------------------------------------------');
36
+ console.info('-----------------------end-----------------------');
37
+ }
38
+ catch (err) {
39
+ hideSpinner();
40
+ printError(err, 'Error when creating proof');
41
+ }
42
+ });
43
+ predepositGuaranteeHelpers
44
+ .command('create-proof')
45
+ .description('create predeposit proof by validator index')
46
+ .option('-i, --index <index>', 'validator index')
47
+ .action(async ({ index }) => {
48
+ const validatorIndex = await confirmCreateProof(index);
49
+ if (!validatorIndex)
50
+ return;
51
+ const packageProof = await createPDGProof(Number(validatorIndex));
52
+ const { proof, pubkey, childBlockTimestamp, withdrawalCredentials } = packageProof;
53
+ console.info('-----------------proof verified-----------------');
54
+ console.info('------------------------------------------------');
55
+ console.info('----------------------proof----------------------');
56
+ console.info(proof);
57
+ console.info('---------------------pubkey---------------------');
58
+ console.table(pubkey);
59
+ console.info('---------------childBlockTimestamp---------------');
60
+ console.table(childBlockTimestamp);
61
+ console.info('--------------withdrawalCredentials--------------');
62
+ console.table(withdrawalCredentials);
63
+ console.info('------------------------------------------------');
64
+ console.info('-----------------------end-----------------------');
65
+ });
66
+ predepositGuaranteeHelpers
67
+ .command('fv-gindex')
68
+ .argument('<forks...>', 'fork name')
69
+ .description('get first validator gindex')
70
+ .action(async (forks) => {
71
+ getFirstValidatorGIndex(forks);
72
+ });
73
+ //# sourceMappingURL=predeposit-guarantee.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predeposit-guarantee.js","sourceRoot":"","sources":["../../programs/predeposit-guarantee.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ export const readCommandConfig = {
2
+ latestReport: {
3
+ name: 'l-report',
4
+ description: 'get latest vault report',
5
+ },
6
+ calculateValidatorWithdrawalFee: {
7
+ name: 'validator-w-fee',
8
+ description: 'get calculated withdrawal fee for a validator',
9
+ arguments: {
10
+ _numberOfKeys: {
11
+ name: 'numberOfKeys',
12
+ description: 'number of validators public keys',
13
+ modifier: (value) => BigInt(value),
14
+ },
15
+ },
16
+ },
17
+ inOutDelta: {
18
+ name: 'delta',
19
+ description: 'get the net difference between deposits and withdrawals',
20
+ },
21
+ beaconChainDepositsPaused: {
22
+ name: 'is-paused',
23
+ description: 'get whether deposits are paused by the vault owner',
24
+ },
25
+ valuation: {
26
+ name: 'valuation',
27
+ description: 'get vault valuation',
28
+ },
29
+ unlocked: {
30
+ name: 'unlocked',
31
+ description: 'get vault unlocked',
32
+ },
33
+ locked: {
34
+ name: 'locked',
35
+ description: 'get vault locked',
36
+ },
37
+ withdrawalCredentials: {
38
+ name: 'wc',
39
+ description: 'get vault withdrawal credentials',
40
+ },
41
+ nodeOperator: {
42
+ name: 'no',
43
+ description: 'get vault node operator',
44
+ },
45
+ DEPOSIT_CONTRACT: {
46
+ name: 'deposit-contract',
47
+ description: 'get vault deposit contract',
48
+ },
49
+ owner: {
50
+ name: 'owner',
51
+ description: 'get vault owner',
52
+ },
53
+ vaultHub: {
54
+ name: 'vault-hub',
55
+ description: 'get vault hub',
56
+ },
57
+ version: {
58
+ name: 'version',
59
+ description: 'get vault version',
60
+ },
61
+ initializedVersion: {
62
+ name: 'i-version',
63
+ description: 'get vault initialized version',
64
+ },
65
+ };
66
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../programs/vault/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iBAAiB,GAA6B;IACzD,YAAY,EAAE;QACZ,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,yBAAyB;KACvC;IACD,+BAA+B,EAAE;QAC/B,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,+CAA+C;QAC5D,SAAS,EAAE;YACT,aAAa,EAAE;gBACb,IAAI,EAAE,cAAc;gBACpB,WAAW,EAAE,kCAAkC;gBAC/C,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;aAC3C;SACF;KACF;IACD,UAAU,EAAE;QACV,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,yDAAyD;KACvE;IACD,yBAAyB,EAAE;QACzB,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,oDAAoD;KAClE;IACD,SAAS,EAAE;QACT,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,qBAAqB;KACnC;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,oBAAoB;KAClC;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,kBAAkB;KAChC;IACD,qBAAqB,EAAE;QACrB,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,kCAAkC;KAChD;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,yBAAyB;KACvC;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,4BAA4B;KAC1C;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,iBAAiB;KAC/B;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,eAAe;KAC7B;IACD,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,mBAAmB;KACjC;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,+BAA+B;KAC7C;CACF,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './main.js';
2
+ export * from './read.js';
3
+ export * from './write.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../programs/vault/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { program } from '../../command/index.js';
2
+ import { Option } from 'commander';
3
+ import { getCommandsJson } from '../../utils/index.js';
4
+ export const vault = program.command('vault').description('vault contract');
5
+ vault.addOption(new Option('-cmd2json'));
6
+ vault.on('option:-cmd2json', function () {
7
+ console.info(getCommandsJson(vault));
8
+ process.exit();
9
+ });
10
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../programs/vault/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAExC,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;AAE5E,KAAK,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AACzC,KAAK,CAAC,EAAE,CAAC,kBAAkB,EAAE;IAC3B,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { getStakingVaultContract } from '../../contracts/index.js';
2
+ import { getPublicClient } from '../../providers/index.js';
3
+ import { StakingVaultAbi } from '../../abi/index.js';
4
+ import { generateReadCommands, isContractAddress, printError } from '../../utils/index.js';
5
+ import { vault } from './main.js';
6
+ import { readCommandConfig } from './config.js';
7
+ vault
8
+ .command('info')
9
+ .description('get vault base info')
10
+ .argument('<address>', 'vault address')
11
+ .action(async (address) => {
12
+ const contract = getStakingVaultContract(address);
13
+ const publicClient = getPublicClient();
14
+ try {
15
+ const withdrawalCredentials = await contract.read.withdrawalCredentials();
16
+ const inOutDelta = await contract.read.inOutDelta();
17
+ const balance = await publicClient.getBalance({ address });
18
+ const valuation = await contract.read.valuation();
19
+ const version = await contract.read.version();
20
+ const initializedVersion = await contract.read.getInitializedVersion();
21
+ const depositContract = await contract.read.DEPOSIT_CONTRACT();
22
+ const vaultHub = await contract.read.vaultHub();
23
+ const nodeOperator = await contract.read.nodeOperator();
24
+ const owner = await contract.read.owner();
25
+ const locked = await contract.read.locked();
26
+ const unlocked = await contract.read.unlocked();
27
+ const isBeaconChainDepositsPaused = await contract.read.beaconChainDepositsPaused();
28
+ const isOwnerContract = await isContractAddress(owner);
29
+ const payload = {
30
+ vault: address,
31
+ withdrawalCredentials,
32
+ inOutDelta,
33
+ balance,
34
+ valuation,
35
+ locked,
36
+ unlocked,
37
+ isBeaconChainDepositsPaused,
38
+ version,
39
+ initializedVersion,
40
+ depositContract,
41
+ vaultHub,
42
+ nodeOperator,
43
+ owner,
44
+ isOwnerContract,
45
+ };
46
+ console.table(payload);
47
+ }
48
+ catch (err) {
49
+ printError(err, 'Error when calling read method "info"');
50
+ }
51
+ });
52
+ generateReadCommands(StakingVaultAbi, getStakingVaultContract, vault, readCommandConfig);
53
+ //# sourceMappingURL=read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../programs/vault/read.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE5E,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,KAAK;KACF,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,qBAAqB,CAAC;KAClC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;KACtC,MAAM,CAAC,KAAK,EAAE,OAAgB,EAAE,EAAE;IACjC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,qBAAqB,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC1E,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9C,MAAM,kBAAkB,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACvE,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC/D,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChD,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QACxD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChD,MAAM,2BAA2B,GAC/B,MAAM,QAAQ,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAClD,MAAM,eAAe,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAEvD,MAAM,OAAO,GAAG;YACd,KAAK,EAAE,OAAO;YACd,qBAAqB;YACrB,UAAU;YACV,OAAO;YACP,SAAS;YACT,MAAM;YACN,QAAQ;YACR,2BAA2B;YAC3B,OAAO;YACP,kBAAkB;YAClB,eAAe;YACf,QAAQ;YACR,YAAY;YACZ,KAAK;YACL,eAAe;SAChB,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,UAAU,CAAC,GAAG,EAAE,uCAAuC,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,oBAAoB,CAClB,eAAe,EACf,uBAAuB,EACvB,KAAK,EACL,iBAAiB,CAClB,CAAC"}
@@ -0,0 +1,123 @@
1
+ import { getStakingVaultContract } from '../../contracts/index.js';
2
+ import { callWriteMethodWithReceipt, confirmFund } from '../../utils/index.js';
3
+ import { vault } from './main.js';
4
+ vault
5
+ .command('fund')
6
+ .description('fund vault')
7
+ .option('-a, --address <address>', 'vault address')
8
+ .option('-e, --ether <ether>', 'amount of ether to be funded (in WEI)')
9
+ .action(async ({ address, ether }) => {
10
+ const { address: vault, amount } = await confirmFund(address, ether);
11
+ if (!vault || !amount)
12
+ return;
13
+ const contract = getStakingVaultContract(address);
14
+ await callWriteMethodWithReceipt(contract, 'fund', [], BigInt(amount));
15
+ });
16
+ // TODO: investigate why only owner can fund vault
17
+ vault
18
+ .command('withdraw')
19
+ .description('withdraw from vault')
20
+ .argument('<address>', 'vault address')
21
+ .argument('<recipient>', 'recipient address')
22
+ .argument('<wei>', 'amount to withdraw (in WEI)')
23
+ .action(async (address, recipient, amount) => {
24
+ const contract = getStakingVaultContract(address);
25
+ await callWriteMethodWithReceipt(contract, 'withdraw', [
26
+ recipient,
27
+ BigInt(amount),
28
+ ]);
29
+ });
30
+ // NOs
31
+ // TODO: get more details
32
+ vault
33
+ .command('no-deposit-beacon')
34
+ .description('deposit to beacon chain')
35
+ .argument('<address>', 'vault address')
36
+ .argument('<amountOfDeposit>', 'amount of deposits')
37
+ .argument('<pubkey>', 'pubkey')
38
+ .argument('<signature>', 'signature')
39
+ .argument('<depositDataRoot>', 'depositDataRoot')
40
+ .action(async (vault, amountOfDeposit, pubkey, signature, depositDataRoot) => {
41
+ const amount = BigInt(amountOfDeposit);
42
+ const contract = getStakingVaultContract(vault);
43
+ const payload = [
44
+ {
45
+ pubkey,
46
+ signature,
47
+ amount,
48
+ depositDataRoot,
49
+ },
50
+ ];
51
+ await callWriteMethodWithReceipt(contract, 'depositToBeaconChain', [
52
+ payload,
53
+ ]);
54
+ });
55
+ // TODO: get more details
56
+ vault
57
+ .command('no-val-exit')
58
+ .description('request to exit validator')
59
+ .argument('<address>', 'vault address')
60
+ .argument('<validatorPublicKey>', 'validator public key')
61
+ .action(async (address, validatorPublicKey) => {
62
+ const contract = getStakingVaultContract(address);
63
+ await callWriteMethodWithReceipt(contract, 'requestValidatorExit', [
64
+ validatorPublicKey,
65
+ ]);
66
+ });
67
+ vault
68
+ .command('bc-resume')
69
+ .description('Resumes deposits to beacon chain')
70
+ .argument('<address>', 'vault address')
71
+ .action(async (address) => {
72
+ const contract = getStakingVaultContract(address);
73
+ await callWriteMethodWithReceipt(contract, 'resumeBeaconChainDeposits', []);
74
+ });
75
+ vault
76
+ .command('bc-pause')
77
+ .description('Pauses deposits to beacon chain')
78
+ .argument('<address>', 'vault address')
79
+ .action(async (address) => {
80
+ const contract = getStakingVaultContract(address);
81
+ await callWriteMethodWithReceipt(contract, 'pauseBeaconChainDeposits', []);
82
+ });
83
+ vault
84
+ .command('report')
85
+ .description('Submits a report containing valuation, inOutDelta, and locked amount')
86
+ .argument('<address>', 'vault address')
87
+ .argument('<valuation>', 'New total valuation: validator balances + StakingVault balance')
88
+ .argument('<inOutDelta>', 'New net difference between funded and withdrawn ether')
89
+ .argument('<locked>', 'New amount of locked ether')
90
+ .action(async (address, valuation, inOutDelta, locked) => {
91
+ const contract = getStakingVaultContract(address);
92
+ await callWriteMethodWithReceipt(contract, 'report', [
93
+ BigInt(valuation),
94
+ BigInt(inOutDelta),
95
+ BigInt(locked),
96
+ ]);
97
+ });
98
+ vault
99
+ .command('rebalance')
100
+ .description('Rebalances the vault')
101
+ .argument('<address>', 'vault address')
102
+ .argument('<amount>', 'amount to rebalance (in WEI)')
103
+ .action(async (address, amount) => {
104
+ const contract = getStakingVaultContract(address);
105
+ await callWriteMethodWithReceipt(contract, 'rebalance', [BigInt(amount)]);
106
+ });
107
+ vault
108
+ .command('trigger-v-w')
109
+ .description('Trigger validator withdrawal')
110
+ .argument('<address>', 'vault address')
111
+ .argument('<pubkeys>', 'validator public keys')
112
+ .argument('<amounts>', 'amounts to withdraw (in WEI)')
113
+ .argument('<refundRecipient>', 'refund recipient address')
114
+ .action(async (address, pubkeys, amount, refundRecipient) => {
115
+ const contract = getStakingVaultContract(address);
116
+ const concatenatedPubkeys = pubkeys.join('');
117
+ await callWriteMethodWithReceipt(contract, 'triggerValidatorWithdrawal', [
118
+ concatenatedPubkeys,
119
+ amount.map((a) => BigInt(a)),
120
+ refundRecipient,
121
+ ]);
122
+ });
123
+ //# sourceMappingURL=write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../../programs/vault/write.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export const readCommandConfig = {};
2
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../programs/vault-factory/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iBAAiB,GAA6B,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './main.js';
2
+ export * from './read.js';
3
+ export * from './write.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../programs/vault-factory/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { program } from '../../command/index.js';
2
+ import { Option } from 'commander';
3
+ import { getCommandsJson } from '../../utils/index.js';
4
+ export const vaultFactory = program
5
+ .command('factory')
6
+ .description('vault factory contract');
7
+ vaultFactory.addOption(new Option('-cmd2json'));
8
+ vaultFactory.on('option:-cmd2json', function () {
9
+ console.info(getCommandsJson(vaultFactory));
10
+ process.exit();
11
+ });
12
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../programs/vault-factory/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAExC,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO;KAChC,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,wBAAwB,CAAC,CAAC;AAEzC,YAAY,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AAChD,YAAY,CAAC,EAAE,CAAC,kBAAkB,EAAE;IAClC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { getVaultFactoryContract } from '../../contracts/index.js';
2
+ import { VaultFactoryAbi } from '../../abi/index.js';
3
+ import { generateReadCommands } from '../../utils/index.js';
4
+ import { vaultFactory } from './main.js';
5
+ import { readCommandConfig } from './config.js';
6
+ vaultFactory
7
+ .command('constants')
8
+ .description('get vault factory constants info')
9
+ .action(async () => {
10
+ const contract = getVaultFactoryContract();
11
+ try {
12
+ const beaconAddress = await contract.read.BEACON();
13
+ const delegationImplAddress = await contract.read.DELEGATION_IMPL();
14
+ console.table({
15
+ beaconAddress,
16
+ delegationImplAddress,
17
+ });
18
+ }
19
+ catch (err) {
20
+ if (err instanceof Error) {
21
+ console.info('Error when getting constants:\n', err.message);
22
+ }
23
+ }
24
+ });
25
+ generateReadCommands(VaultFactoryAbi, getVaultFactoryContract, vaultFactory, readCommandConfig);
26
+ //# sourceMappingURL=read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../programs/vault-factory/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,YAAY;KACT,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,QAAQ,GAAG,uBAAuB,EAAE,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACnD,MAAM,qBAAqB,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QAEpE,OAAO,CAAC,KAAK,CAAC;YACZ,aAAa;YACb,qBAAqB;SACtB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,iCAAiC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,oBAAoB,CAClB,eAAe,EACf,uBAAuB,EACvB,YAAY,EACZ,iBAAiB,CAClB,CAAC"}
@@ -1,45 +1,30 @@
1
- import { program } from '../command/index.js';
2
- import { getVaultFactoryContract } from '../contracts/index.js';
3
- import { createVault } from '../features/index.js';
4
- import { validateAddressMap } from '../utils/index.js';
5
- const vaultFactory = program
6
- .command('factory')
7
- .description('vault factory contract');
8
- vaultFactory
9
- .command('constants')
10
- .description('get vault factory constants info')
11
- .action(async () => {
12
- const { contract } = getVaultFactoryContract();
13
- try {
14
- const beaconAddress = await contract.read.BEACON();
15
- const delegationImplAddress = await contract.read.DELEGATION_IMPL();
16
- console.table({
17
- beaconAddress,
18
- delegationImplAddress,
19
- });
20
- }
21
- catch (err) {
22
- if (err instanceof Error) {
23
- console.info('Error when getting constants:\n', err.message);
24
- }
25
- }
26
- });
1
+ import { program } from '../../command/index.js';
2
+ import { createVault } from '../../features/index.js';
3
+ import { validateAddressMap } from '../../utils/index.js';
4
+ import { vaultFactory } from './main.js';
27
5
  vaultFactory
28
6
  .command('create-vault')
29
7
  .description('create vault contract')
30
8
  .option('-a, --defaultAdmin <defaultAdmin>', 'default admin address')
31
- .option('-f, --funder <funder>', 'funder role address')
32
- .option('-w, --withdrawer <withdrawer>', 'withdrawer role address')
33
- .option('-m, --minter <minter>', 'minter role address')
34
- .option('-b, --burner <burner>', 'burner role address')
35
- .option('-r, --rebalancer <rebalancer>', 'rebalancer role address')
36
- .option('-p, --depositPauser <depositPauser>', 'depositPauser role address')
37
- .option('-d, --depositResumer <depositResumer>', 'depositResumer role address')
38
- .option('-e, --exitRequester <exitRequester>', 'exitRequester role address')
39
- .option('-u, --disconnecter <disconnecter>', 'disconnecter role address')
40
- .option('-c, --curator <curator>', 'curator address')
41
9
  .option('-n, --nodeOperatorManager <nodeOperatorManager>', 'node operator manager address')
10
+ .option('-ar, --assetRecoverer <assetRecoverer>', 'asset recoverer address')
11
+ .option('-ce, --confirmExpiry <confirmExpiry>', 'confirm expiry')
12
+ .option('-f, --funders <funders>', 'funders role address')
13
+ .option('-w, --withdrawers <withdrawers>', 'withdrawers role address')
14
+ .option('-m, --minters <minters>', 'minters role address')
15
+ .option('-b, --burners <burners>', 'burners role address')
16
+ .option('-r, --rebalancers <rebalancers>', 'rebalancers role address')
17
+ .option('-p, --depositPausers <depositPausers>', 'depositPausers role address')
18
+ .option('-d, --depositResumers <depositResumers>', 'depositResumers role address')
19
+ .option('-e, --exitRequesters <exitRequesters>', 'exitRequesters role address')
20
+ .option('-u, --disconnecters <disconnecters>', 'disconnecters role address')
21
+ .option('-c, --curators <curators>', 'curators role address')
22
+ .option('-ve, --validatorExitRequesters <validatorExitRequesters>', 'validator exit requesters role addresses')
23
+ .option('-vt, --validatorWithdrawalTriggerers <validatorWithdrawalTriggerers>', 'validator withdrawal triggerers role address')
42
24
  .option('-o, --nodeOperatorFeeClaimer <nodeOperatorFeeClaimer>', 'node operator fee claimer address')
25
+ .option('-cfs, --curatorFeeSetters <curatorFeeSetters>', 'curator fee setters role addresses')
26
+ .option('-cfc, --curatorFeeClaimers <curatorFeeClaimers>', 'curator fee claimers role addresses')
27
+ .option('-nofc, --nodeOperatorFeeClaimers <nodeOperatorFeeClaimers>', 'node operator fee claimers role addresses')
43
28
  .argument('<curatorFeeBP>', 'Vault curator fee, for e.g. 100 == 1%')
44
29
  .argument('<nodeOperatorFeeBP>', 'Node operator fee, for e.g. 100 == 1%')
45
30
  .argument('[quantity]', 'quantity of vaults to create, default 1', '1')
@@ -84,4 +69,4 @@ vaultFactory
84
69
  }
85
70
  }
86
71
  });
87
- //# sourceMappingURL=vault-factory.js.map
72
+ //# sourceMappingURL=write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../../programs/vault-factory/write.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import { program } from '../command/index.js';
2
+ import { getVaultHubViewerContract } from '../contracts/index.js';
3
+ import { getAccount } from '../providers/index.js';
4
+ import { callReadMethod } from '../utils/index.js';
5
+ // TODO: move to config
6
+ const ADDRESS = '0x5D73Eec220C7428eEAa26aF0F6d65B4dD1bb95aA';
7
+ // TODO: add methods with pagination
8
+ const vaultHubViewer = program
9
+ .command('hub-viewer')
10
+ .description('vault hub viewer');
11
+ vaultHubViewer
12
+ .command('connected')
13
+ .description('get vaults connected to vault hub')
14
+ .action(async () => {
15
+ const contract = getVaultHubViewerContract(ADDRESS);
16
+ await callReadMethod(contract, 'vaultsConnected');
17
+ });
18
+ vaultHubViewer
19
+ .command('my')
20
+ .description('get my vaults')
21
+ .action(async () => {
22
+ const contract = getVaultHubViewerContract(ADDRESS);
23
+ const account = getAccount();
24
+ await callReadMethod(contract, 'vaultsByOwner', [account.address]);
25
+ });
26
+ vaultHubViewer
27
+ .command('by-owner')
28
+ .description('get vaults by owner')
29
+ .argument('<address>', 'owner address')
30
+ .action(async (address) => {
31
+ const contract = getVaultHubViewerContract(ADDRESS);
32
+ await callReadMethod(contract, 'vaultsByOwner', [address]);
33
+ });
34
+ vaultHubViewer
35
+ .command('by-role')
36
+ .description('get vaults by role')
37
+ .argument('<role>', 'role')
38
+ .action(async (role) => {
39
+ const contract = getVaultHubViewerContract(ADDRESS);
40
+ const account = getAccount();
41
+ await callReadMethod(contract, 'vaultsByRole', [role, account.address]);
42
+ });
43
+ vaultHubViewer
44
+ .command('by-role-and-address')
45
+ .description('get vaults by role and address')
46
+ .argument('<role>', 'role')
47
+ .argument('<address>', 'address')
48
+ .action(async (role, address) => {
49
+ const contract = getVaultHubViewerContract(ADDRESS);
50
+ await callReadMethod(contract, 'vaultsByRole', [role, address]);
51
+ });
52
+ //# sourceMappingURL=vault-hub-viewer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault-hub-viewer.js","sourceRoot":"","sources":["../../programs/vault-hub-viewer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEvC,uBAAuB;AACvB,MAAM,OAAO,GAAG,4CAA4C,CAAC;AAE7D,oCAAoC;AAEpC,MAAM,cAAc,GAAG,OAAO;KAC3B,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CAAC,kBAAkB,CAAC,CAAC;AAEnC,cAAc;KACX,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,QAAQ,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAEpD,MAAM,cAAc,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC;AAEL,cAAc;KACX,OAAO,CAAC,IAAI,CAAC;KACb,WAAW,CAAC,eAAe,CAAC;KAC5B,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,QAAQ,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,MAAM,cAAc,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AACrE,CAAC,CAAC,CAAC;AAEL,cAAc;KACX,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,qBAAqB,CAAC;KAClC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;KACtC,MAAM,CAAC,KAAK,EAAE,OAAgB,EAAE,EAAE;IACjC,MAAM,QAAQ,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAEpD,MAAM,cAAc,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC,CAAC;AAEL,cAAc;KACX,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,oBAAoB,CAAC;KACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;KAC1B,MAAM,CAAC,KAAK,EAAE,IAAa,EAAE,EAAE;IAC9B,MAAM,QAAQ,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,MAAM,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1E,CAAC,CAAC,CAAC;AAEL,cAAc;KACX,OAAO,CAAC,qBAAqB,CAAC;KAC9B,WAAW,CAAC,gCAAgC,CAAC;KAC7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;KAC1B,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;KAChC,MAAM,CAAC,KAAK,EAAE,IAAa,EAAE,OAAgB,EAAE,EAAE;IAChD,MAAM,QAAQ,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAEpD,MAAM,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAClE,CAAC,CAAC,CAAC"}