@lidofinance/lsv-cli 1.0.0-alpha.2 → 1.0.0-alpha.20

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 (211) hide show
  1. package/README.md +542 -1
  2. package/dist/abi/CLProofVerifier.js +279 -0
  3. package/dist/abi/CLProofVerifier.js.map +1 -0
  4. package/dist/abi/Dashboard.js +1498 -0
  5. package/dist/abi/Dashboard.js.map +1 -0
  6. package/dist/abi/Delegation.js +1786 -0
  7. package/dist/abi/Delegation.js.map +1 -0
  8. package/dist/abi/LidoLocator.js +426 -0
  9. package/dist/abi/LidoLocator.js.map +1 -0
  10. package/dist/abi/PredepositGuarantee.js +1733 -0
  11. package/dist/abi/PredepositGuarantee.js.map +1 -0
  12. package/dist/abi/StEth.js +493 -0
  13. package/dist/abi/StEth.js.map +1 -0
  14. package/dist/abi/StakingVault.js +978 -0
  15. package/dist/abi/StakingVault.js.map +1 -0
  16. package/dist/abi/TokenManager.js +756 -0
  17. package/dist/abi/TokenManager.js.map +1 -0
  18. package/dist/abi/VaultFactory.js +246 -0
  19. package/dist/abi/VaultFactory.js.map +1 -0
  20. package/dist/abi/VaultHub.js +1138 -439
  21. package/dist/abi/VaultHub.js.map +1 -1
  22. package/dist/abi/VaultHubViewer.js +297 -0
  23. package/dist/abi/VaultHubViewer.js.map +1 -0
  24. package/dist/abi/Voting.js +884 -0
  25. package/dist/abi/Voting.js.map +1 -0
  26. package/dist/abi/index.js +13 -0
  27. package/dist/abi/index.js.map +1 -0
  28. package/dist/command/index.js +4 -5
  29. package/dist/command/index.js.map +1 -1
  30. package/dist/configs/constants.js +3 -0
  31. package/dist/configs/constants.js.map +1 -0
  32. package/dist/configs/deployed.js +114 -53
  33. package/dist/configs/deployed.js.map +1 -1
  34. package/dist/configs/envs.js +10 -28
  35. package/dist/configs/envs.js.map +1 -1
  36. package/dist/configs/index.js +3 -18
  37. package/dist/configs/index.js.map +1 -1
  38. package/dist/configs/utils.js +26 -0
  39. package/dist/configs/utils.js.map +1 -0
  40. package/dist/contracts/clProofVerifier.js +29 -0
  41. package/dist/contracts/clProofVerifier.js.map +1 -0
  42. package/dist/contracts/dashboard.js +11 -0
  43. package/dist/contracts/dashboard.js.map +1 -0
  44. package/dist/contracts/delegation.js +11 -0
  45. package/dist/contracts/delegation.js.map +1 -0
  46. package/dist/contracts/index.js +12 -17
  47. package/dist/contracts/index.js.map +1 -1
  48. package/dist/contracts/locator.js +16 -0
  49. package/dist/contracts/locator.js.map +1 -0
  50. package/dist/contracts/pdg.js +17 -0
  51. package/dist/contracts/pdg.js.map +1 -0
  52. package/dist/contracts/steth.js +15 -0
  53. package/dist/contracts/steth.js.map +1 -0
  54. package/dist/contracts/token-manager.js +16 -0
  55. package/dist/contracts/token-manager.js.map +1 -0
  56. package/dist/contracts/vault-factory.js +14 -0
  57. package/dist/contracts/vault-factory.js.map +1 -0
  58. package/dist/contracts/vault-hub-viewer.js +14 -0
  59. package/dist/contracts/vault-hub-viewer.js.map +1 -0
  60. package/dist/contracts/vault-hub.js +14 -17
  61. package/dist/contracts/vault-hub.js.map +1 -1
  62. package/dist/contracts/vault.js +14 -0
  63. package/dist/contracts/vault.js.map +1 -0
  64. package/dist/contracts/voting.js +18 -0
  65. package/dist/contracts/voting.js.map +1 -0
  66. package/dist/features/advanced-config.js +16 -0
  67. package/dist/features/advanced-config.js.map +1 -0
  68. package/dist/features/dashboard-delegation.js +25 -0
  69. package/dist/features/dashboard-delegation.js.map +1 -0
  70. package/dist/features/index.js +5 -0
  71. package/dist/features/index.js.map +1 -0
  72. package/dist/features/token-manager.js +7 -0
  73. package/dist/features/token-manager.js.map +1 -0
  74. package/dist/features/vault-factory.js +25 -0
  75. package/dist/features/vault-factory.js.map +1 -0
  76. package/dist/features/voting.js +125 -0
  77. package/dist/features/voting.js.map +1 -0
  78. package/dist/index.js +6 -5
  79. package/dist/index.js.map +1 -1
  80. package/dist/programs/account.js +29 -0
  81. package/dist/programs/account.js.map +1 -0
  82. package/dist/programs/config.js +31 -0
  83. package/dist/programs/config.js.map +1 -0
  84. package/dist/programs/dashboard/config.js +65 -0
  85. package/dist/programs/dashboard/config.js.map +1 -0
  86. package/dist/programs/dashboard/index.js +4 -0
  87. package/dist/programs/dashboard/index.js.map +1 -0
  88. package/dist/programs/dashboard/main.js +12 -0
  89. package/dist/programs/dashboard/main.js.map +1 -0
  90. package/dist/programs/dashboard/read.js +25 -0
  91. package/dist/programs/dashboard/read.js.map +1 -0
  92. package/dist/programs/dashboard/write.js +302 -0
  93. package/dist/programs/dashboard/write.js.map +1 -0
  94. package/dist/programs/delegation/config.js +33 -0
  95. package/dist/programs/delegation/config.js.map +1 -0
  96. package/dist/programs/delegation/index.js +4 -0
  97. package/dist/programs/delegation/index.js.map +1 -0
  98. package/dist/programs/delegation/main.js +12 -0
  99. package/dist/programs/delegation/main.js.map +1 -0
  100. package/dist/programs/delegation/read.js +98 -0
  101. package/dist/programs/delegation/read.js.map +1 -0
  102. package/dist/programs/delegation/write.js +327 -0
  103. package/dist/programs/delegation/write.js.map +1 -0
  104. package/dist/programs/hub/config.js +127 -0
  105. package/dist/programs/hub/config.js.map +1 -0
  106. package/dist/programs/hub/index.js +4 -0
  107. package/dist/programs/hub/index.js.map +1 -0
  108. package/dist/programs/hub/main.js +12 -0
  109. package/dist/programs/hub/main.js.map +1 -0
  110. package/dist/programs/hub/read.js +62 -0
  111. package/dist/programs/hub/read.js.map +1 -0
  112. package/dist/programs/hub/write.js +109 -0
  113. package/dist/programs/hub/write.js.map +1 -0
  114. package/dist/programs/index.js +10 -17
  115. package/dist/programs/index.js.map +1 -1
  116. package/dist/programs/pdg/config.js +97 -0
  117. package/dist/programs/pdg/config.js.map +1 -0
  118. package/dist/programs/pdg/index.js +4 -0
  119. package/dist/programs/pdg/index.js.map +1 -0
  120. package/dist/programs/pdg/main.js +12 -0
  121. package/dist/programs/pdg/main.js.map +1 -0
  122. package/dist/programs/pdg/read.js +7 -0
  123. package/dist/programs/pdg/read.js.map +1 -0
  124. package/dist/programs/pdg/write.js +114 -0
  125. package/dist/programs/pdg/write.js.map +1 -0
  126. package/dist/programs/pdg-helpers.js +73 -0
  127. package/dist/programs/pdg-helpers.js.map +1 -0
  128. package/dist/programs/vault/config.js +66 -0
  129. package/dist/programs/vault/config.js.map +1 -0
  130. package/dist/programs/vault/index.js +4 -0
  131. package/dist/programs/vault/index.js.map +1 -0
  132. package/dist/programs/vault/main.js +10 -0
  133. package/dist/programs/vault/main.js.map +1 -0
  134. package/dist/programs/vault/read.js +53 -0
  135. package/dist/programs/vault/read.js.map +1 -0
  136. package/dist/programs/vault/write.js +123 -0
  137. package/dist/programs/vault/write.js.map +1 -0
  138. package/dist/programs/vault-factory/config.js +2 -0
  139. package/dist/programs/vault-factory/config.js.map +1 -0
  140. package/dist/programs/vault-factory/index.js +4 -0
  141. package/dist/programs/vault-factory/index.js.map +1 -0
  142. package/dist/programs/vault-factory/main.js +12 -0
  143. package/dist/programs/vault-factory/main.js.map +1 -0
  144. package/dist/programs/vault-factory/read.js +26 -0
  145. package/dist/programs/vault-factory/read.js.map +1 -0
  146. package/dist/programs/vault-factory/write.js +110 -0
  147. package/dist/programs/vault-factory/write.js.map +1 -0
  148. package/dist/programs/vault-hub-viewer.js +52 -0
  149. package/dist/programs/vault-hub-viewer.js.map +1 -0
  150. package/dist/programs/voting.js +33 -0
  151. package/dist/programs/voting.js.map +1 -0
  152. package/dist/providers/index.js +1 -17
  153. package/dist/providers/index.js.map +1 -1
  154. package/dist/providers/wallet.js +20 -32
  155. package/dist/providers/wallet.js.map +1 -1
  156. package/dist/types/common.js +2 -0
  157. package/dist/types/common.js.map +1 -0
  158. package/dist/types/config.js +2 -0
  159. package/dist/types/config.js.map +1 -0
  160. package/dist/types/index.js +3 -0
  161. package/dist/types/index.js.map +1 -0
  162. package/dist/utils/contract.js +98 -0
  163. package/dist/utils/contract.js.map +1 -0
  164. package/dist/utils/data-validators.js +69 -0
  165. package/dist/utils/data-validators.js.map +1 -0
  166. package/dist/utils/error-handler.js +7 -0
  167. package/dist/utils/error-handler.js.map +1 -0
  168. package/dist/utils/get-commands.js +11 -0
  169. package/dist/utils/get-commands.js.map +1 -0
  170. package/dist/utils/get-value.js +5 -11
  171. package/dist/utils/get-value.js.map +1 -1
  172. package/dist/utils/index.js +12 -17
  173. package/dist/utils/index.js.map +1 -1
  174. package/dist/utils/parse-string.js +20 -0
  175. package/dist/utils/parse-string.js.map +1 -0
  176. package/dist/utils/prompts/default.js +17 -0
  177. package/dist/utils/prompts/default.js.map +1 -0
  178. package/dist/utils/prompts/delegation-dashboard.js +29 -0
  179. package/dist/utils/prompts/delegation-dashboard.js.map +1 -0
  180. package/dist/utils/prompts/index.js +5 -0
  181. package/dist/utils/prompts/index.js.map +1 -0
  182. package/dist/utils/prompts/predeposit-guarantee.js +25 -0
  183. package/dist/utils/prompts/predeposit-guarantee.js.map +1 -0
  184. package/dist/utils/prompts/vault.js +11 -0
  185. package/dist/utils/prompts/vault.js.map +1 -0
  186. package/dist/utils/proof/create-proof.js +62 -0
  187. package/dist/utils/proof/create-proof.js.map +1 -0
  188. package/dist/utils/proof/first-validator-gindex.js +26 -0
  189. package/dist/utils/proof/first-validator-gindex.js.map +1 -0
  190. package/dist/utils/proof/index.js +4 -0
  191. package/dist/utils/proof/index.js.map +1 -0
  192. package/dist/utils/proof/merkle-utils.js +131 -0
  193. package/dist/utils/proof/merkle-utils.js.map +1 -0
  194. package/dist/utils/proof/proofs.js +52 -0
  195. package/dist/utils/proof/proofs.js.map +1 -0
  196. package/dist/utils/read-programs-by-abi.js +87 -0
  197. package/dist/utils/read-programs-by-abi.js.map +1 -0
  198. package/dist/utils/resolve-path.js +10 -0
  199. package/dist/utils/resolve-path.js.map +1 -0
  200. package/dist/utils/sleep.js +4 -0
  201. package/dist/utils/sleep.js.map +1 -0
  202. package/dist/utils/spinner/index.js +2 -0
  203. package/dist/utils/spinner/index.js.map +1 -0
  204. package/dist/utils/spinner/spinners.js +16 -0
  205. package/dist/utils/spinner/spinners.js.map +1 -0
  206. package/dist/utils/spinner/spinners.json +119 -0
  207. package/dist/version/index.js +1 -0
  208. package/dist/version/index.js.map +1 -0
  209. package/package.json +52 -7
  210. package/dist/programs/vault-hub.js +0 -137
  211. package/dist/programs/vault-hub.js.map +0 -1
@@ -0,0 +1,109 @@
1
+ import { getVaultHubContract } from '../../contracts/index.js';
2
+ import { callWriteMethodWithReceipt } from '../../utils/index.js';
3
+ import { vaultHub } from './main.js';
4
+ vaultHub
5
+ .command('add-codehash')
6
+ .description('add vault proxy codehash to allowed list')
7
+ .argument('<codehash>', 'codehash vault proxy codehash')
8
+ .action(async (codehash) => {
9
+ const contract = await getVaultHubContract();
10
+ await callWriteMethodWithReceipt(contract, 'addVaultProxyCodehash', [
11
+ codehash,
12
+ ]);
13
+ });
14
+ // TODO: replace by voting
15
+ vaultHub
16
+ .command('v-connect')
17
+ .description('connects a vault to the hub (vault master role needed)')
18
+ .argument('<address>', 'vault address')
19
+ .argument('<shareLimit>', 'maximum number of stETH shares that can be minted by the vault')
20
+ .argument('<reserveRatio>', 'minimum Reserve ratio in basis points')
21
+ .argument('<reserveRatioThreshold>', 'reserve ratio that makes possible to force rebalance on the vault (in basis points)')
22
+ .argument('<treasuryFeeBP>', 'treasury fee in basis points')
23
+ .action(async (address, shareLimit, reserveRatio, reserveRatioThreshold, treasuryFeeBP) => {
24
+ const contract = await getVaultHubContract();
25
+ await callWriteMethodWithReceipt(contract, 'connectVault', [
26
+ address,
27
+ shareLimit,
28
+ reserveRatio,
29
+ reserveRatioThreshold,
30
+ treasuryFeeBP,
31
+ ]);
32
+ });
33
+ vaultHub
34
+ .command('v-update-share-limit')
35
+ .description('updates share limit for the vault')
36
+ .argument('<address>', 'vault address')
37
+ .argument('<shareLimit>', 'vault address')
38
+ .action(async (address, shareLimit) => {
39
+ const contract = await getVaultHubContract();
40
+ await callWriteMethodWithReceipt(contract, 'updateShareLimit', [
41
+ address,
42
+ BigInt(shareLimit),
43
+ ]);
44
+ });
45
+ vaultHub
46
+ .command('v-disconnect')
47
+ .description('force disconnects a vault from the hub')
48
+ .argument('<address>', 'vault address')
49
+ .action(async (address) => {
50
+ const contract = await getVaultHubContract();
51
+ await callWriteMethodWithReceipt(contract, 'disconnect', [address]);
52
+ });
53
+ vaultHub
54
+ .command('v-owner-disconnect')
55
+ .description("disconnects a vault from the hub, msg.sender should be vault's owner")
56
+ .argument('<address>', 'vault address')
57
+ .action(async (address) => {
58
+ const contract = await getVaultHubContract();
59
+ await callWriteMethodWithReceipt(contract, 'voluntaryDisconnect', [
60
+ address,
61
+ ]);
62
+ });
63
+ vaultHub
64
+ .command('v-mint')
65
+ .description(' mint StETH shares backed by vault external balance to the receiver address')
66
+ .argument('<address>', 'vault address')
67
+ .argument('<recipient>', 'address of the receiver')
68
+ .argument('<amountOfShares>', 'amount of stETH shares to mint')
69
+ .action(async (address, recipient, amountOfShares) => {
70
+ const contract = await getVaultHubContract();
71
+ await callWriteMethodWithReceipt(contract, 'mintShares', [
72
+ address,
73
+ recipient,
74
+ BigInt(amountOfShares),
75
+ ]);
76
+ });
77
+ vaultHub
78
+ .command('v-burn')
79
+ .description('burn steth shares from the balance of the VaultHub contract')
80
+ .argument('<address>', 'vault address')
81
+ .argument('<amountOfShares>', 'amount of stETH shares to mint')
82
+ .action(async (address, amountOfShares) => {
83
+ const contract = await getVaultHubContract();
84
+ await callWriteMethodWithReceipt(contract, 'burnShares', [
85
+ address,
86
+ BigInt(amountOfShares),
87
+ ]);
88
+ });
89
+ vaultHub
90
+ .command('v-transfer-and-burn')
91
+ .description('separate burn function for EOA vault owners; requires vaultHub to be approved to transfer stETH')
92
+ .argument('<address>', 'vault address')
93
+ .argument('<amountOfShares>', 'amount of stETH shares to mint')
94
+ .action(async (address, amountOfShares) => {
95
+ const contract = await getVaultHubContract();
96
+ await callWriteMethodWithReceipt(contract, 'transferAndBurnShares', [
97
+ address,
98
+ BigInt(amountOfShares),
99
+ ]);
100
+ });
101
+ vaultHub
102
+ .command('v-force-rebalance')
103
+ .description('force rebalance of the vault to have sufficient reserve ratio')
104
+ .argument('<address>', 'vault address')
105
+ .action(async (address) => {
106
+ const contract = await getVaultHubContract();
107
+ await callWriteMethodWithReceipt(contract, 'forceRebalance', [address]);
108
+ });
109
+ //# sourceMappingURL=write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../../programs/hub/write.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,11 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
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("./vault-hub"), exports);
1
+ export * from './voting.js';
2
+ export * from './account.js';
3
+ export * from './vault-hub-viewer.js';
4
+ export * from './pdg-helpers.js';
5
+ export * from './vault/index.js';
6
+ export * from './dashboard/index.js';
7
+ export * from './vault-factory/index.js';
8
+ export * from './delegation/index.js';
9
+ export * from './pdg/index.js';
10
+ export * from './hub/index.js';
18
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../programs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../programs/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,97 @@
1
+ export const readCommandConfig = {
2
+ BEACON_ROOTS: {
3
+ name: 'beacon-roots',
4
+ description: 'get beacon roots address',
5
+ },
6
+ DEFAULT_ADMIN_ROLE: {
7
+ name: 'd-admin-r',
8
+ description: 'get default admin role',
9
+ },
10
+ GI_FIRST_VALIDATOR: {
11
+ name: 'fv-gi',
12
+ description: 'get first validator gIndex',
13
+ },
14
+ GI_FIRST_VALIDATOR_AFTER_CHANGE: {
15
+ name: 'fv-gi-ac',
16
+ description: 'get first validator gIndex after change',
17
+ },
18
+ SLOT_CHANGE_GI_FIRST_VALIDATOR: {
19
+ name: 'fv-gi-sc',
20
+ description: 'get slot change first validator gIndex',
21
+ },
22
+ GI_PUBKEY_WC_PARENT: {
23
+ name: 'pw-gi',
24
+ description: 'get pubkey wc parent gIndex',
25
+ },
26
+ GI_STATE_ROOT: {
27
+ name: 'sr-gi',
28
+ description: 'get state root gIndex',
29
+ },
30
+ MAX_SUPPORTED_WC_VERSION: {
31
+ name: 'max-wc',
32
+ description: 'get max supported wc version',
33
+ },
34
+ MIN_SUPPORTED_WC_VERSION: {
35
+ name: 'min-wc',
36
+ description: 'get min supported wc version',
37
+ },
38
+ isPaused: {
39
+ name: 'is-paused',
40
+ description: 'get is paused boolean',
41
+ },
42
+ nodeOperatorBalance: {
43
+ name: 'no-bal',
44
+ description: 'get node operator balance by address',
45
+ arguments: {
46
+ _nodeOperator: {
47
+ name: 'address',
48
+ description: 'address of the node operator',
49
+ },
50
+ },
51
+ },
52
+ unlockedBalance: {
53
+ name: 'ub-bal',
54
+ description: 'get unlocked balance',
55
+ arguments: {
56
+ _nodeOperator: {
57
+ name: 'address',
58
+ description: 'address of the node operator',
59
+ },
60
+ },
61
+ },
62
+ nodeOperatorGuarantor: {
63
+ name: 'no-g',
64
+ description: 'get node operator guarantor',
65
+ arguments: {
66
+ _nodeOperator: {
67
+ name: 'address',
68
+ description: 'address of the node operator',
69
+ },
70
+ },
71
+ },
72
+ validatorStatus: {
73
+ name: 'v-status',
74
+ description: 'get validator status',
75
+ arguments: {
76
+ _validatorPubkey: {
77
+ name: 'pubkey',
78
+ description: 'validator pubkey',
79
+ },
80
+ },
81
+ },
82
+ getResumeSinceTimestamp: {
83
+ name: 'resume-since-ts',
84
+ description: 'get resume since timestamp',
85
+ },
86
+ claimableRefund: {
87
+ name: 'claimable-r',
88
+ description: 'get claimable refund',
89
+ arguments: {
90
+ _guarantor: {
91
+ name: 'guarantor',
92
+ description: 'guarantor address',
93
+ },
94
+ },
95
+ },
96
+ };
97
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../programs/pdg/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iBAAiB,GAA6B;IACzD,YAAY,EAAE;QACZ,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,0BAA0B;KACxC;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,wBAAwB;KACtC;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,4BAA4B;KAC1C;IACD,+BAA+B,EAAE;QAC/B,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,yCAAyC;KACvD;IACD,8BAA8B,EAAE;QAC9B,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,wCAAwC;KACtD;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,6BAA6B;KAC3C;IACD,aAAa,EAAE;QACb,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,uBAAuB;KACrC;IACD,wBAAwB,EAAE;QACxB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,8BAA8B;KAC5C;IACD,wBAAwB,EAAE;QACxB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,8BAA8B;KAC5C;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,uBAAuB;KACrC;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,sCAAsC;QACnD,SAAS,EAAE;YACT,aAAa,EAAE;gBACb,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,8BAA8B;aAC5C;SACF;KACF;IACD,eAAe,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,sBAAsB;QACnC,SAAS,EAAE;YACT,aAAa,EAAE;gBACb,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,8BAA8B;aAC5C;SACF;KACF;IACD,qBAAqB,EAAE;QACrB,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,6BAA6B;QAC1C,SAAS,EAAE;YACT,aAAa,EAAE;gBACb,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,8BAA8B;aAC5C;SACF;KACF;IACD,eAAe,EAAE;QACf,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,sBAAsB;QACnC,SAAS,EAAE;YACT,gBAAgB,EAAE;gBAChB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kBAAkB;aAChC;SACF;KACF;IACD,uBAAuB,EAAE;QACvB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,4BAA4B;KAC1C;IACD,eAAe,EAAE;QACf,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,sBAAsB;QACnC,SAAS,EAAE;YACT,UAAU,EAAE;gBACV,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,mBAAmB;aACjC;SACF;KACF;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/pdg/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 pdg = program
5
+ .command('pdg')
6
+ .description('predeposit guarantee contract');
7
+ pdg.addOption(new Option('-cmd2json'));
8
+ pdg.on('option:-cmd2json', function () {
9
+ console.info(getCommandsJson(pdg));
10
+ process.exit();
11
+ });
12
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../programs/pdg/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,GAAG,GAAG,OAAO;KACvB,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,+BAA+B,CAAC,CAAC;AAEhD,GAAG,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AACvC,GAAG,CAAC,EAAE,CAAC,kBAAkB,EAAE;IACzB,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { generateReadCommands } from '../../utils/index.js';
2
+ import { PredepositGuaranteeAbi } from '../../abi/index.js';
3
+ import { pdg } from './main.js';
4
+ import { readCommandConfig } from './config.js';
5
+ import { getPredepositGuaranteeContract } from '../../contracts/index.js';
6
+ generateReadCommands(PredepositGuaranteeAbi, getPredepositGuaranteeContract, pdg, readCommandConfig);
7
+ //# sourceMappingURL=read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../programs/pdg/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,KAAK,CAAC;AAE7C,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAC;AAE3D,oBAAoB,CAClB,sBAAsB,EACtB,8BAA8B,EAC9B,GAAG,EACH,iBAAiB,CAClB,CAAC"}
@@ -0,0 +1,114 @@
1
+ import { parseEther } from 'viem';
2
+ import { getPredepositGuaranteeContract } from '../../contracts/index.js';
3
+ import { callWriteMethodWithReceipt, confirmCreateProof, createPDGProof, showSpinner, printError, parseObjectsArray, } from '../../utils/index.js';
4
+ import { pdg } from './main.js';
5
+ pdg
6
+ .command('predeposit')
7
+ .description('predeposit')
8
+ .argument('<vault>', 'vault address')
9
+ .argument('<deposits>', 'deposits')
10
+ .action(async (vault, deposits) => {
11
+ const pdgContract = await getPredepositGuaranteeContract();
12
+ const parsedDeposits = parseObjectsArray(deposits);
13
+ await callWriteMethodWithReceipt(pdgContract, 'predeposit', [
14
+ vault,
15
+ parsedDeposits,
16
+ ]);
17
+ });
18
+ pdg
19
+ .command('create-proof-and-prove')
20
+ .description('create proof and prove')
21
+ .argument('<index>', 'validator index')
22
+ .action(async (index) => {
23
+ const pdgContract = await getPredepositGuaranteeContract();
24
+ const validatorIndex = await confirmCreateProof(index);
25
+ if (!validatorIndex)
26
+ return;
27
+ const hideSpinner = showSpinner({
28
+ type: 'bouncingBar',
29
+ message: 'Creating proof...',
30
+ });
31
+ try {
32
+ const packageProof = await createPDGProof(Number(validatorIndex));
33
+ hideSpinner();
34
+ const { proof, pubkey, childBlockTimestamp, withdrawalCredentials } = packageProof;
35
+ console.info('----------------------proof----------------------');
36
+ console.info(proof);
37
+ console.info('---------------------pubkey---------------------');
38
+ console.table(pubkey);
39
+ console.info('---------------childBlockTimestamp---------------');
40
+ console.table(childBlockTimestamp);
41
+ console.info('--------------withdrawalCredentials--------------');
42
+ console.table(withdrawalCredentials);
43
+ console.info('------------------------------------------------');
44
+ console.info('-----------------------end-----------------------');
45
+ await callWriteMethodWithReceipt(pdgContract, 'proveValidatorWC', [
46
+ { proof, pubkey, validatorIndex, childBlockTimestamp },
47
+ ]);
48
+ }
49
+ catch (err) {
50
+ hideSpinner();
51
+ printError(err, 'Error when creating proof');
52
+ }
53
+ });
54
+ pdg
55
+ .command('deposit-to-beacon-chain')
56
+ .description('deposit to beacon chain')
57
+ .argument('<vault>', 'vault address')
58
+ .argument('<deposits>', 'deposits')
59
+ .action(async (vault, deposits) => {
60
+ const pdgContract = await getPredepositGuaranteeContract();
61
+ const parsedDeposits = parseObjectsArray(deposits);
62
+ await callWriteMethodWithReceipt(pdgContract, 'depositToBeaconChain', [
63
+ vault,
64
+ parsedDeposits,
65
+ ]);
66
+ });
67
+ pdg
68
+ .command('top-up')
69
+ .description('top up no balance')
70
+ .argument('<nodeOperator>', 'node operator address')
71
+ .argument('<amount>', 'amount in ETH')
72
+ .action(async (nodeOperator, amount) => {
73
+ const pdgContract = await getPredepositGuaranteeContract();
74
+ await callWriteMethodWithReceipt(pdgContract, 'topUpNodeOperatorBalance', [nodeOperator], parseEther(amount, 'wei'));
75
+ });
76
+ pdg
77
+ .command('prove-unknown-validator')
78
+ .description('prove unknown validator')
79
+ .argument('<index>', 'validator index')
80
+ .argument('<vault>', 'vault address')
81
+ .action(async (index, vault) => {
82
+ const pdgContract = await getPredepositGuaranteeContract();
83
+ const validatorIndex = await confirmCreateProof(index);
84
+ if (!validatorIndex)
85
+ return;
86
+ const hideSpinner = showSpinner({
87
+ type: 'bouncingBar',
88
+ message: 'Creating proof...',
89
+ });
90
+ try {
91
+ const packageProof = await createPDGProof(Number(validatorIndex));
92
+ hideSpinner();
93
+ const { proof, pubkey, childBlockTimestamp, withdrawalCredentials } = packageProof;
94
+ console.info('----------------------proof----------------------');
95
+ console.info(proof);
96
+ console.info('---------------------pubkey---------------------');
97
+ console.table(pubkey);
98
+ console.info('---------------childBlockTimestamp---------------');
99
+ console.table(childBlockTimestamp);
100
+ console.info('--------------withdrawalCredentials--------------');
101
+ console.table(withdrawalCredentials);
102
+ console.info('------------------------------------------------');
103
+ console.info('-----------------------end-----------------------');
104
+ await callWriteMethodWithReceipt(pdgContract, 'proveUnknownValidator', [
105
+ { proof, pubkey, validatorIndex, childBlockTimestamp },
106
+ vault,
107
+ ]);
108
+ }
109
+ catch (err) {
110
+ hideSpinner();
111
+ printError(err, 'Error when proving unknown validator');
112
+ }
113
+ });
114
+ //# sourceMappingURL=write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../../programs/pdg/write.ts"],"names":[],"mappings":"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"}
@@ -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=pdg-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdg-helpers.js","sourceRoot":"","sources":["../../programs/pdg-helpers.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