@lidofinance/lsv-cli 1.0.0-alpha.23 → 1.0.0-alpha.24

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 (220) hide show
  1. package/README.md +15 -44
  2. package/dist/abi/BlsHarness.js +232 -0
  3. package/dist/abi/BlsHarness.js.map +1 -0
  4. package/dist/abi/CLProofVerifier.js +47 -79
  5. package/dist/abi/CLProofVerifier.js.map +1 -1
  6. package/dist/abi/Dashboard.js +618 -196
  7. package/dist/abi/Dashboard.js.map +1 -1
  8. package/dist/abi/LidoLocator.js +7 -7
  9. package/dist/abi/LidoLocator.js.map +1 -1
  10. package/dist/abi/{Delegation.js → OperatorGrid.js} +466 -1067
  11. package/dist/abi/OperatorGrid.js.map +1 -0
  12. package/dist/abi/PredepositGuarantee.js +69 -13
  13. package/dist/abi/PredepositGuarantee.js.map +1 -1
  14. package/dist/abi/StEth.js +341 -341
  15. package/dist/abi/StEth.js.map +1 -1
  16. package/dist/abi/StakingVault.js +207 -73
  17. package/dist/abi/StakingVault.js.map +1 -1
  18. package/dist/abi/VaultFactory.js +67 -104
  19. package/dist/abi/VaultFactory.js.map +1 -1
  20. package/dist/abi/VaultHub.js +347 -237
  21. package/dist/abi/VaultHub.js.map +1 -1
  22. package/dist/abi/WstEth.js +478 -0
  23. package/dist/abi/WstEth.js.map +1 -0
  24. package/dist/abi/index.js +5 -2
  25. package/dist/abi/index.js.map +1 -1
  26. package/dist/configs/constants.js +2 -2
  27. package/dist/configs/constants.js.map +1 -1
  28. package/dist/configs/deployed.js +21 -47
  29. package/dist/configs/deployed.js.map +1 -1
  30. package/dist/configs/envs.js +5 -6
  31. package/dist/configs/envs.js.map +1 -1
  32. package/dist/configs/utils.js +4 -8
  33. package/dist/configs/utils.js.map +1 -1
  34. package/dist/contracts/blsHarness.js +24 -0
  35. package/dist/contracts/blsHarness.js.map +1 -0
  36. package/dist/contracts/clProofVerifier.js +4 -10
  37. package/dist/contracts/clProofVerifier.js.map +1 -1
  38. package/dist/contracts/index.js +3 -1
  39. package/dist/contracts/index.js.map +1 -1
  40. package/dist/contracts/locator.js +3 -3
  41. package/dist/contracts/locator.js.map +1 -1
  42. package/dist/contracts/operator-grid.js +17 -0
  43. package/dist/contracts/operator-grid.js.map +1 -0
  44. package/dist/contracts/pdg.js +2 -2
  45. package/dist/contracts/pdg.js.map +1 -1
  46. package/dist/contracts/reportChecker.js +4 -5
  47. package/dist/contracts/reportChecker.js.map +1 -1
  48. package/dist/contracts/steth.js +3 -3
  49. package/dist/contracts/steth.js.map +1 -1
  50. package/dist/contracts/token-manager.js +3 -3
  51. package/dist/contracts/token-manager.js.map +1 -1
  52. package/dist/contracts/vault-factory.js +2 -2
  53. package/dist/contracts/vault-factory.js.map +1 -1
  54. package/dist/contracts/vault-hub.js +3 -3
  55. package/dist/contracts/vault-hub.js.map +1 -1
  56. package/dist/contracts/vault-viewer.js +4 -6
  57. package/dist/contracts/vault-viewer.js.map +1 -1
  58. package/dist/contracts/vault.js +2 -2
  59. package/dist/contracts/vault.js.map +1 -1
  60. package/dist/contracts/voting.js +3 -3
  61. package/dist/contracts/voting.js.map +1 -1
  62. package/dist/contracts/wsteth.js +18 -0
  63. package/dist/contracts/wsteth.js.map +1 -0
  64. package/dist/features/advanced-config.js +3 -2
  65. package/dist/features/advanced-config.js.map +1 -1
  66. package/dist/features/dashboard.js +131 -0
  67. package/dist/features/dashboard.js.map +1 -0
  68. package/dist/features/index.js +8 -4
  69. package/dist/features/index.js.map +1 -1
  70. package/dist/features/operator-grid.js +57 -0
  71. package/dist/features/operator-grid.js.map +1 -0
  72. package/dist/features/pdg.js +79 -0
  73. package/dist/features/pdg.js.map +1 -0
  74. package/dist/features/vault-factory.js +33 -6
  75. package/dist/features/vault-factory.js.map +1 -1
  76. package/dist/features/vault-hub.js +81 -0
  77. package/dist/features/vault-hub.js.map +1 -0
  78. package/dist/features/vault.js +54 -0
  79. package/dist/features/vault.js.map +1 -0
  80. package/dist/features/voting.js +5 -9
  81. package/dist/features/voting.js.map +1 -1
  82. package/dist/index.js +2 -1
  83. package/dist/index.js.map +1 -1
  84. package/dist/programs/account.js +107 -5
  85. package/dist/programs/account.js.map +1 -1
  86. package/dist/programs/config.js +2 -2
  87. package/dist/programs/config.js.map +1 -1
  88. package/dist/programs/dashboard/config.js +63 -17
  89. package/dist/programs/dashboard/config.js.map +1 -1
  90. package/dist/programs/dashboard/main.js +0 -7
  91. package/dist/programs/dashboard/main.js.map +1 -1
  92. package/dist/programs/dashboard/read.js +64 -42
  93. package/dist/programs/dashboard/read.js.map +1 -1
  94. package/dist/programs/dashboard/write.js +259 -155
  95. package/dist/programs/dashboard/write.js.map +1 -1
  96. package/dist/programs/hub/config.js +28 -32
  97. package/dist/programs/hub/config.js.map +1 -1
  98. package/dist/programs/hub/main.js +0 -7
  99. package/dist/programs/hub/main.js.map +1 -1
  100. package/dist/programs/hub/read.js +30 -35
  101. package/dist/programs/hub/read.js.map +1 -1
  102. package/dist/programs/hub/write.js +148 -40
  103. package/dist/programs/hub/write.js.map +1 -1
  104. package/dist/programs/index.js +1 -1
  105. package/dist/programs/index.js.map +1 -1
  106. package/dist/programs/operator-grid/config.js +81 -0
  107. package/dist/programs/operator-grid/config.js.map +1 -0
  108. package/dist/programs/operator-grid/index.js.map +1 -0
  109. package/dist/programs/operator-grid/main.js +5 -0
  110. package/dist/programs/operator-grid/main.js.map +1 -0
  111. package/dist/programs/operator-grid/read.js +24 -0
  112. package/dist/programs/operator-grid/read.js.map +1 -0
  113. package/dist/programs/operator-grid/write.js +109 -0
  114. package/dist/programs/operator-grid/write.js.map +1 -0
  115. package/dist/programs/pdg/config.js +49 -13
  116. package/dist/programs/pdg/config.js.map +1 -1
  117. package/dist/programs/pdg/main.js +0 -7
  118. package/dist/programs/pdg/main.js.map +1 -1
  119. package/dist/programs/pdg/read.js +20 -3
  120. package/dist/programs/pdg/read.js.map +1 -1
  121. package/dist/programs/pdg/write.js +147 -82
  122. package/dist/programs/pdg/write.js.map +1 -1
  123. package/dist/programs/pdg-helpers.js +155 -38
  124. package/dist/programs/pdg-helpers.js.map +1 -1
  125. package/dist/programs/report.js +66 -78
  126. package/dist/programs/report.js.map +1 -1
  127. package/dist/programs/vault/config.js +6 -2
  128. package/dist/programs/vault/config.js.map +1 -1
  129. package/dist/programs/vault/main.js +0 -7
  130. package/dist/programs/vault/main.js.map +1 -1
  131. package/dist/programs/vault/read.js +16 -44
  132. package/dist/programs/vault/read.js.map +1 -1
  133. package/dist/programs/vault/write.js +117 -33
  134. package/dist/programs/vault/write.js.map +1 -1
  135. package/dist/programs/vault-factory/main.js +0 -7
  136. package/dist/programs/vault-factory/main.js.map +1 -1
  137. package/dist/programs/vault-factory/read.js +17 -19
  138. package/dist/programs/vault-factory/read.js.map +1 -1
  139. package/dist/programs/vault-factory/write.js +30 -52
  140. package/dist/programs/vault-factory/write.js.map +1 -1
  141. package/dist/programs/vault-viewer/main.js +2 -2
  142. package/dist/programs/vault-viewer/main.js.map +1 -1
  143. package/dist/programs/voting.js +8 -23
  144. package/dist/programs/voting.js.map +1 -1
  145. package/dist/providers/wallet.js +4 -4
  146. package/dist/providers/wallet.js.map +1 -1
  147. package/dist/utils/arguments.js +44 -1
  148. package/dist/utils/arguments.js.map +1 -1
  149. package/dist/utils/bls.js +101 -0
  150. package/dist/utils/bls.js.map +1 -0
  151. package/dist/utils/commands/dashboard.js +103 -0
  152. package/dist/utils/commands/dashboard.js.map +1 -0
  153. package/dist/utils/commands/index.js +2 -0
  154. package/dist/utils/commands/index.js.map +1 -0
  155. package/dist/utils/contract.js +54 -15
  156. package/dist/utils/contract.js.map +1 -1
  157. package/dist/utils/data-validators.js +7 -22
  158. package/dist/utils/data-validators.js.map +1 -1
  159. package/dist/utils/error-handler.js +5 -2
  160. package/dist/utils/error-handler.js.map +1 -1
  161. package/dist/utils/fetchCL.js +57 -0
  162. package/dist/utils/fetchCL.js.map +1 -0
  163. package/dist/utils/get-deposit-data-root.js +3 -3
  164. package/dist/utils/health.js +69 -7
  165. package/dist/utils/health.js.map +1 -1
  166. package/dist/utils/index.js +6 -1
  167. package/dist/utils/index.js.map +1 -1
  168. package/dist/utils/ipfs.js +54 -0
  169. package/dist/utils/ipfs.js.map +1 -0
  170. package/dist/utils/logging/console.js +23 -0
  171. package/dist/utils/logging/console.js.map +1 -0
  172. package/dist/utils/logging/constants.js +12 -0
  173. package/dist/utils/logging/constants.js.map +1 -0
  174. package/dist/utils/logging/index.js +2 -0
  175. package/dist/utils/logging/index.js.map +1 -0
  176. package/dist/utils/prompts/dashboard.js +63 -0
  177. package/dist/utils/prompts/dashboard.js.map +1 -0
  178. package/dist/utils/prompts/index.js +2 -1
  179. package/dist/utils/prompts/index.js.map +1 -1
  180. package/dist/utils/prompts/operations.js +41 -0
  181. package/dist/utils/prompts/operations.js.map +1 -0
  182. package/dist/utils/prompts/predeposit-guarantee.js +10 -13
  183. package/dist/utils/prompts/predeposit-guarantee.js.map +1 -1
  184. package/dist/utils/prompts/vault.js +4 -1
  185. package/dist/utils/prompts/vault.js.map +1 -1
  186. package/dist/utils/proof/create-proof.js +5 -29
  187. package/dist/utils/proof/create-proof.js.map +1 -1
  188. package/dist/utils/proof/first-validator-gindex.js +2 -1
  189. package/dist/utils/proof/first-validator-gindex.js.map +1 -1
  190. package/dist/utils/proof/merkle-utils.js +15 -3
  191. package/dist/utils/proof/merkle-utils.js.map +1 -1
  192. package/dist/utils/proof/report-proof.js +11 -6
  193. package/dist/utils/proof/report-proof.js.map +1 -1
  194. package/dist/utils/read-programs-by-abi.js +2 -2
  195. package/dist/utils/read-programs-by-abi.js.map +1 -1
  196. package/dist/utils/report.js +17 -17
  197. package/dist/utils/report.js.map +1 -1
  198. package/dist/utils/required-lock.js +21 -0
  199. package/dist/utils/required-lock.js.map +1 -0
  200. package/dist/version/index.js +1 -1
  201. package/package.json +10 -4
  202. package/dist/abi/Delegation.js.map +0 -1
  203. package/dist/contracts/delegation.js +0 -11
  204. package/dist/contracts/delegation.js.map +0 -1
  205. package/dist/features/dashboard-delegation.js +0 -25
  206. package/dist/features/dashboard-delegation.js.map +0 -1
  207. package/dist/programs/delegation/config.js +0 -33
  208. package/dist/programs/delegation/config.js.map +0 -1
  209. package/dist/programs/delegation/index.js.map +0 -1
  210. package/dist/programs/delegation/main.js +0 -12
  211. package/dist/programs/delegation/main.js.map +0 -1
  212. package/dist/programs/delegation/read.js +0 -104
  213. package/dist/programs/delegation/read.js.map +0 -1
  214. package/dist/programs/delegation/write.js +0 -323
  215. package/dist/programs/delegation/write.js.map +0 -1
  216. package/dist/utils/parse-string.js +0 -20
  217. package/dist/utils/parse-string.js.map +0 -1
  218. package/dist/utils/prompts/delegation-dashboard.js +0 -29
  219. package/dist/utils/prompts/delegation-dashboard.js.map +0 -1
  220. /package/dist/programs/{delegation → operator-grid}/index.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../programs/operator-grid/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,gBAAgB,GAAG,YAAY;KAClC,OAAO,CAAC,MAAM,CAAC;KACf,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;KACd,WAAW,CAAC,6BAA6B,CAAC,CAAC;AAE9C,gBAAgB,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AACpD,gBAAgB,CAAC,EAAE,CAAC,kBAAkB,EAAE;IACtC,OAAO,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjD,MAAM,uBAAuB,EAAE,CAAC;AAClC,CAAC,CAAC,CAAC;AAEH,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;IAClD,MAAM,oBAAoB,EAAE,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEH,oBAAoB,CAClB,eAAe,EACf,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,CAClB,CAAC"}
@@ -0,0 +1,109 @@
1
+ import { Option } from 'commander';
2
+ import { getOperatorGridContract } from '../../contracts/index.js';
3
+ import { callWriteMethodWithReceipt, confirmOperation, stringToBigInt, callReadMethod, parseTiers, parseTier, logInfo, getCommandsJson, } from '../../utils/index.js';
4
+ import { operatorGrid } from './main.js';
5
+ const operatorGridWrite = operatorGrid
6
+ .command('write')
7
+ .aliases(['w'])
8
+ .description('operator grid write commands');
9
+ operatorGridWrite.addOption(new Option('-cmd2json'));
10
+ operatorGridWrite.on('option:-cmd2json', function () {
11
+ logInfo(getCommandsJson(operatorGridWrite));
12
+ process.exit();
13
+ });
14
+ operatorGridWrite
15
+ .command('register-group')
16
+ .alias('rg')
17
+ .description('register a group')
18
+ .argument('<nodeOperator>', 'node operator address')
19
+ .argument('<shareLimit>', 'share limit', stringToBigInt)
20
+ .action(async (nodeOperator, shareLimit) => {
21
+ const operatorGridContract = await getOperatorGridContract();
22
+ const confirm = await confirmOperation(`Are you sure you want to register group with node operator ${nodeOperator} and share limit ${shareLimit}?`);
23
+ if (!confirm)
24
+ return;
25
+ await callWriteMethodWithReceipt(operatorGridContract, 'registerGroup', [
26
+ nodeOperator,
27
+ shareLimit,
28
+ ]);
29
+ });
30
+ operatorGridWrite
31
+ .command('update-group-share-limit')
32
+ .alias('update-sl')
33
+ .description('update group share limit')
34
+ .argument('<nodeOperator>', 'node operator address')
35
+ .argument('<shareLimit>', 'share limit', stringToBigInt)
36
+ .action(async (nodeOperator, shareLimit) => {
37
+ const operatorGridContract = await getOperatorGridContract();
38
+ const group = await callReadMethod(operatorGridContract, 'group', [
39
+ nodeOperator,
40
+ ]);
41
+ const confirm = await confirmOperation(`Are you sure you want to update group share limit for group node operator ${nodeOperator} to ${shareLimit}? Old share limit: ${group.shareLimit}`);
42
+ if (!confirm)
43
+ return;
44
+ await callWriteMethodWithReceipt(operatorGridContract, 'updateGroupShareLimit', [nodeOperator, shareLimit]);
45
+ });
46
+ operatorGridWrite
47
+ .command('register-tiers')
48
+ .alias('rt')
49
+ .description('register new tiers')
50
+ .argument('<nodeOperator>', 'node operator address')
51
+ .argument('<tiers>', 'tiers', parseTiers)
52
+ .action(async (nodeOperator, tiers) => {
53
+ const operatorGridContract = await getOperatorGridContract();
54
+ await callReadMethod(operatorGridContract, 'group', [nodeOperator]);
55
+ const confirm = await confirmOperation(`Are you sure you want to register tiers for node operator ${nodeOperator} group?`);
56
+ if (!confirm)
57
+ return;
58
+ await callWriteMethodWithReceipt(operatorGridContract, 'registerTiers', [
59
+ nodeOperator,
60
+ tiers,
61
+ ]);
62
+ });
63
+ operatorGridWrite
64
+ .command('alter-tier')
65
+ .alias('at')
66
+ .description('alter tier')
67
+ .argument('<tierId>', 'tier id', stringToBigInt)
68
+ .argument('<tier>', 'tier', parseTier)
69
+ .action(async (tierId, tier) => {
70
+ const operatorGridContract = await getOperatorGridContract();
71
+ await callReadMethod(operatorGridContract, 'tier', [tierId]);
72
+ const confirm = await confirmOperation(`Are you sure you want to alter tier ${tierId}?
73
+ New tier: ${JSON.stringify(tier)}`);
74
+ if (!confirm)
75
+ return;
76
+ await callWriteMethodWithReceipt(operatorGridContract, 'alterTier', [
77
+ tierId,
78
+ tier,
79
+ ]);
80
+ });
81
+ operatorGridWrite
82
+ .command('request-tier-change')
83
+ .alias('rtc')
84
+ .description('request tier change')
85
+ .argument('<vault>', 'vault address')
86
+ .argument('<tierId>', 'tier id', stringToBigInt)
87
+ .action(async (vault, tierId) => {
88
+ const operatorGridContract = await getOperatorGridContract();
89
+ await callReadMethod(operatorGridContract, 'tier', [tierId]);
90
+ const confirm = await confirmOperation(`Are you sure you want to request change tier ${tierId} for vault ${vault}?`);
91
+ if (!confirm)
92
+ return;
93
+ await callWriteMethodWithReceipt(operatorGridContract, 'requestTierChange', [vault, tierId]);
94
+ });
95
+ operatorGridWrite
96
+ .command('confirm-tier-change')
97
+ .alias('ctc')
98
+ .description('confirm tier change')
99
+ .argument('<vault>', 'vault address')
100
+ .argument('<tierId>', 'tier id to confirm', stringToBigInt)
101
+ .action(async (vault, tierId) => {
102
+ const operatorGridContract = await getOperatorGridContract();
103
+ await callReadMethod(operatorGridContract, 'tier', [tierId]);
104
+ const confirm = await confirmOperation(`Are you sure you want to confirm tier ${tierId} change for vault ${vault}?`);
105
+ if (!confirm)
106
+ return;
107
+ await callWriteMethodWithReceipt(operatorGridContract, 'confirmTierChange', [vault, tierId]);
108
+ });
109
+ //# sourceMappingURL=write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../../programs/operator-grid/write.ts"],"names":[],"mappings":"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"}
@@ -1,40 +1,76 @@
1
1
  export const readCommandConfig = {
2
- BEACON_ROOTS: {
3
- name: 'beacon-roots',
4
- description: 'get beacon roots address',
5
- },
6
2
  DEFAULT_ADMIN_ROLE: {
7
- name: 'd-admin-r',
3
+ name: 'DEFAULT_ADMIN_ROLE',
8
4
  description: 'get default admin role',
9
5
  },
6
+ BEACON_ROOTS: {
7
+ name: 'BEACON_ROOTS',
8
+ description: 'get beacon roots address',
9
+ },
10
10
  GI_FIRST_VALIDATOR: {
11
- name: 'fv-gi',
11
+ name: 'GI_FIRST_VALIDATOR',
12
12
  description: 'get first validator gIndex',
13
13
  },
14
14
  GI_FIRST_VALIDATOR_AFTER_CHANGE: {
15
- name: 'fv-gi-ac',
15
+ name: 'GI_FIRST_VALIDATOR_AFTER_CHANGE',
16
16
  description: 'get first validator gIndex after change',
17
17
  },
18
18
  SLOT_CHANGE_GI_FIRST_VALIDATOR: {
19
- name: 'fv-gi-sc',
19
+ name: 'SLOT_CHANGE_GI_FIRST_VALIDATOR',
20
20
  description: 'get slot change first validator gIndex',
21
21
  },
22
22
  GI_PUBKEY_WC_PARENT: {
23
- name: 'pw-gi',
23
+ name: 'GI_PUBKEY_WC_PARENT',
24
24
  description: 'get pubkey wc parent gIndex',
25
25
  },
26
26
  GI_STATE_ROOT: {
27
- name: 'sr-gi',
27
+ name: 'GI_STATE_ROOT',
28
28
  description: 'get state root gIndex',
29
29
  },
30
30
  MAX_SUPPORTED_WC_VERSION: {
31
- name: 'max-wc',
31
+ name: 'MAX_SUPPORTED_WC_VERSION',
32
32
  description: 'get max supported wc version',
33
33
  },
34
34
  MIN_SUPPORTED_WC_VERSION: {
35
- name: 'min-wc',
35
+ name: 'MIN_SUPPORTED_WC_VERSION',
36
36
  description: 'get min supported wc version',
37
37
  },
38
+ PAUSE_INFINITELY: {
39
+ name: 'PAUSE_INFINITELY',
40
+ description: 'get special value for the infinite pause',
41
+ },
42
+ PAUSE_ROLE: {
43
+ name: 'PAUSE_ROLE',
44
+ description: 'get pause role',
45
+ },
46
+ RESUME_ROLE: {
47
+ name: 'RESUME_ROLE',
48
+ description: 'get resume role',
49
+ },
50
+ PREDEPOSIT_AMOUNT: {
51
+ name: 'PREDEPOSIT_AMOUNT',
52
+ description: 'get amount of ether that is predeposited with each validator',
53
+ },
54
+ PREDEPOSIT_ROLE: {
55
+ name: 'PREDEPOSIT_ROLE',
56
+ description: 'get predeposit role',
57
+ },
58
+ STATE_ROOT_DEPTH: {
59
+ name: 'STATE_ROOT_DEPTH',
60
+ description: 'get state root depth',
61
+ },
62
+ STATE_ROOT_POSITION: {
63
+ name: 'STATE_ROOT_POSITION',
64
+ description: 'get state root position',
65
+ },
66
+ WC_PUBKEY_PARENT_DEPTH: {
67
+ name: 'WC_PUBKEY_PARENT_DEPTH',
68
+ description: 'get wc pubkey parent depth',
69
+ },
70
+ WC_PUBKEY_PARENT_POSITION: {
71
+ name: 'WC_PUBKEY_PARENT_POSITION',
72
+ description: 'get wc pubkey parent position',
73
+ },
38
74
  isPaused: {
39
75
  name: 'is-paused',
40
76
  description: 'get is paused boolean',
@@ -50,7 +86,7 @@ export const readCommandConfig = {
50
86
  },
51
87
  },
52
88
  unlockedBalance: {
53
- name: 'ub-bal',
89
+ name: 'un-bal',
54
90
  description: 'get unlocked balance',
55
91
  arguments: {
56
92
  _nodeOperator: {
@@ -1 +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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../programs/pdg/config.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,5 @@
1
1
  import { program } from '../../command/index.js';
2
- import { Option } from 'commander';
3
- import { getCommandsJson } from '../../utils/index.js';
4
2
  export const pdg = program
5
3
  .command('pdg')
6
4
  .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
5
  //# sourceMappingURL=main.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../programs/pdg/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,CAAC,MAAM,GAAG,GAAG,OAAO;KACvB,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,+BAA+B,CAAC,CAAC"}
@@ -1,7 +1,24 @@
1
- import { generateReadCommands } from '../../utils/index.js';
1
+ import { Option } from 'commander';
2
+ import { generateReadCommands, getCommandsJson, logInfo } from '../../utils/index.js';
3
+ import { getPredepositGuaranteeContract } from '../../contracts/index.js';
2
4
  import { PredepositGuaranteeAbi } from '../../abi/index.js';
5
+ import { getPdgBaseInfo, getPdgRoles } from '../../features/index.js';
3
6
  import { pdg } from './main.js';
4
7
  import { readCommandConfig } from './config.js';
5
- import { getPredepositGuaranteeContract } from '../../contracts/index.js';
6
- generateReadCommands(PredepositGuaranteeAbi, getPredepositGuaranteeContract, pdg, readCommandConfig);
8
+ const pdgRead = pdg
9
+ .command('read')
10
+ .aliases(['r'])
11
+ .description('pdg read commands');
12
+ pdgRead.addOption(new Option('-cmd2json'));
13
+ pdgRead.on('option:-cmd2json', function () {
14
+ logInfo(getCommandsJson(pdgRead));
15
+ process.exit();
16
+ });
17
+ pdgRead.command('info').action(async () => {
18
+ await getPdgBaseInfo();
19
+ });
20
+ pdgRead.command('roles').action(async () => {
21
+ await getPdgRoles();
22
+ });
23
+ generateReadCommands(PredepositGuaranteeAbi, getPredepositGuaranteeContract, pdgRead, readCommandConfig);
7
24
  //# sourceMappingURL=read.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../programs/pdg/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,KAAK,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvD,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,OAAO,GAAG,GAAG;KAChB,OAAO,CAAC,MAAM,CAAC;KACf,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;KACd,WAAW,CAAC,mBAAmB,CAAC,CAAC;AAEpC,OAAO,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AAC3C,OAAO,CAAC,EAAE,CAAC,kBAAkB,EAAE;IAC7B,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;IACxC,MAAM,cAAc,EAAE,CAAC;AACzB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;IACzC,MAAM,WAAW,EAAE,CAAC;AACtB,CAAC,CAAC,CAAC;AAEH,oBAAoB,CAClB,sBAAsB,EACtB,8BAA8B,EAC9B,OAAO,EACP,iBAAiB,CAClB,CAAC"}