@lidofinance/lsv-cli 1.0.0-alpha.28 → 1.0.0-alpha.29

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 (154) hide show
  1. package/dist/abi/BlsHarness.d.ts +178 -0
  2. package/dist/abi/CLProofVerifier.d.ts +188 -0
  3. package/dist/abi/Dashboard.d.ts +1486 -0
  4. package/dist/abi/LidoLocator.d.ts +330 -0
  5. package/dist/abi/OperatorGrid.d.ts +914 -0
  6. package/dist/abi/PredepositGuarantee.d.ts +1382 -0
  7. package/dist/abi/ReportChecker.d.ts +83 -0
  8. package/dist/abi/StEth.d.ts +372 -0
  9. package/dist/abi/StakingVault.d.ts +864 -0
  10. package/dist/abi/TokenManager.d.ts +577 -0
  11. package/dist/abi/VaultFactory.d.ts +160 -0
  12. package/dist/abi/VaultHub.d.ts +1309 -0
  13. package/dist/abi/VaultViewer.d.ts +223 -0
  14. package/dist/abi/Voting.d.ts +676 -0
  15. package/dist/abi/WstEth.d.ts +362 -0
  16. package/dist/abi/index.d.ts +15 -0
  17. package/dist/command/index.d.ts +2 -0
  18. package/dist/configs/constants.d.ts +36 -0
  19. package/dist/configs/deployed.d.ts +17 -0
  20. package/dist/configs/envs.d.ts +2 -0
  21. package/dist/configs/index.d.ts +3 -0
  22. package/dist/configs/utils.d.ts +4 -0
  23. package/dist/contracts/blsHarness.d.ts +947 -0
  24. package/dist/contracts/clProofVerifier.d.ts +2647 -0
  25. package/dist/contracts/dashboard.d.ts +4 -0
  26. package/dist/contracts/dashboard.js +1 -1
  27. package/dist/contracts/dashboard.js.map +1 -1
  28. package/dist/contracts/index.d.ts +15 -0
  29. package/dist/contracts/locator.d.ts +6935 -0
  30. package/dist/contracts/operator-grid.d.ts +3 -0
  31. package/dist/contracts/operator-grid.js +1 -1
  32. package/dist/contracts/operator-grid.js.map +1 -1
  33. package/dist/contracts/pdg.d.ts +3 -0
  34. package/dist/contracts/pdg.js +1 -1
  35. package/dist/contracts/pdg.js.map +1 -1
  36. package/dist/contracts/reportChecker.d.ts +758 -0
  37. package/dist/contracts/steth.d.ts +27706 -0
  38. package/dist/contracts/token-manager.d.ts +3 -0
  39. package/dist/contracts/token-manager.js +4 -7
  40. package/dist/contracts/token-manager.js.map +1 -1
  41. package/dist/contracts/vault-factory.d.ts +2678 -0
  42. package/dist/contracts/vault-hub.d.ts +3 -0
  43. package/dist/contracts/vault-hub.js +1 -1
  44. package/dist/contracts/vault-hub.js.map +1 -1
  45. package/dist/contracts/vault-viewer.d.ts +2681 -0
  46. package/dist/contracts/vault.d.ts +3 -0
  47. package/dist/contracts/vault.js +3 -6
  48. package/dist/contracts/vault.js.map +1 -1
  49. package/dist/contracts/voting.d.ts +6 -0
  50. package/dist/contracts/voting.js +1 -1
  51. package/dist/contracts/voting.js.map +1 -1
  52. package/dist/contracts/wsteth.d.ts +24690 -0
  53. package/dist/features/advanced-config.d.ts +5 -0
  54. package/dist/features/dashboard.d.ts +5 -0
  55. package/dist/features/index.d.ts +8 -0
  56. package/dist/features/operator-grid.d.ts +2 -0
  57. package/dist/features/pdg.d.ts +2 -0
  58. package/dist/features/token-manager.d.ts +1 -0
  59. package/dist/features/vault-factory.d.ts +8 -0
  60. package/dist/features/vault-hub.d.ts +2 -0
  61. package/dist/features/vault.d.ts +2 -0
  62. package/dist/features/voting.d.ts +7 -0
  63. package/dist/index.d.ts +3 -0
  64. package/dist/index.js +1 -0
  65. package/dist/index.js.map +1 -1
  66. package/dist/programs/account.d.ts +1 -0
  67. package/dist/programs/account.js +5 -1
  68. package/dist/programs/account.js.map +1 -1
  69. package/dist/programs/config.d.ts +1 -0
  70. package/dist/programs/dashboard/config.d.ts +2 -0
  71. package/dist/programs/dashboard/index.d.ts +3 -0
  72. package/dist/programs/dashboard/main.d.ts +1 -0
  73. package/dist/programs/dashboard/read.d.ts +1 -0
  74. package/dist/programs/dashboard/write.d.ts +1 -0
  75. package/dist/programs/hub/config.d.ts +2 -0
  76. package/dist/programs/hub/index.d.ts +3 -0
  77. package/dist/programs/hub/main.d.ts +1 -0
  78. package/dist/programs/hub/read.d.ts +1 -0
  79. package/dist/programs/hub/write.d.ts +1 -0
  80. package/dist/programs/index.d.ts +11 -0
  81. package/dist/programs/operator-grid/config.d.ts +2 -0
  82. package/dist/programs/operator-grid/index.d.ts +3 -0
  83. package/dist/programs/operator-grid/main.d.ts +1 -0
  84. package/dist/programs/operator-grid/read.d.ts +1 -0
  85. package/dist/programs/operator-grid/write.d.ts +1 -0
  86. package/dist/programs/pdg/config.d.ts +2 -0
  87. package/dist/programs/pdg/index.d.ts +3 -0
  88. package/dist/programs/pdg/main.d.ts +1 -0
  89. package/dist/programs/pdg/read.d.ts +1 -0
  90. package/dist/programs/pdg/write.d.ts +1 -0
  91. package/dist/programs/pdg-helpers.d.ts +1 -0
  92. package/dist/programs/report.d.ts +1 -0
  93. package/dist/programs/vault/config.d.ts +2 -0
  94. package/dist/programs/vault/index.d.ts +3 -0
  95. package/dist/programs/vault/main.d.ts +1 -0
  96. package/dist/programs/vault/read.d.ts +1 -0
  97. package/dist/programs/vault/write.d.ts +1 -0
  98. package/dist/programs/vault-factory/config.d.ts +2 -0
  99. package/dist/programs/vault-factory/index.d.ts +3 -0
  100. package/dist/programs/vault-factory/main.d.ts +1 -0
  101. package/dist/programs/vault-factory/read.d.ts +1 -0
  102. package/dist/programs/vault-factory/write.d.ts +1 -0
  103. package/dist/programs/vault-viewer/config.d.ts +2 -0
  104. package/dist/programs/vault-viewer/index.d.ts +2 -0
  105. package/dist/programs/vault-viewer/main.d.ts +1 -0
  106. package/dist/programs/vault-viewer/read.d.ts +1 -0
  107. package/dist/programs/voting.d.ts +1 -0
  108. package/dist/providers/index.d.ts +1 -0
  109. package/dist/providers/wallet.d.ts +6897 -0
  110. package/dist/providers/wallet.js +1 -1
  111. package/dist/providers/wallet.js.map +1 -1
  112. package/dist/types/common.d.ts +31 -0
  113. package/dist/types/config.d.ts +23 -0
  114. package/dist/types/index.d.ts +2 -0
  115. package/dist/utils/arguments.d.ts +13 -0
  116. package/dist/utils/bls.d.ts +21 -0
  117. package/dist/utils/calculate-overview.d.ts +19 -0
  118. package/dist/utils/commands/dashboard.d.ts +6 -0
  119. package/dist/utils/commands/index.d.ts +1 -0
  120. package/dist/utils/contract.d.ts +25 -0
  121. package/dist/utils/data-validators.d.ts +6 -0
  122. package/dist/utils/error-handler.d.ts +1 -0
  123. package/dist/utils/fetchCL.d.ts +14 -0
  124. package/dist/utils/get-commands.d.ts +2 -0
  125. package/dist/utils/get-deposit-data-root.d.ts +7 -0
  126. package/dist/utils/get-value.d.ts +1 -0
  127. package/dist/utils/health.d.ts +27748 -0
  128. package/dist/utils/index.d.ts +22 -0
  129. package/dist/utils/ipfs.d.ts +6 -0
  130. package/dist/utils/logging/console.d.ts +7 -0
  131. package/dist/utils/logging/constants.d.ts +2 -0
  132. package/dist/utils/logging/index.d.ts +1 -0
  133. package/dist/utils/prompts/dashboard.d.ts +29 -0
  134. package/dist/utils/prompts/default.d.ts +3 -0
  135. package/dist/utils/prompts/index.d.ts +5 -0
  136. package/dist/utils/prompts/operations.d.ts +9 -0
  137. package/dist/utils/prompts/predeposit-guarantee.d.ts +3 -0
  138. package/dist/utils/prompts/vault.d.ts +2 -0
  139. package/dist/utils/proof/create-proof.d.ts +12 -0
  140. package/dist/utils/proof/first-validator-gindex.d.ts +1 -0
  141. package/dist/utils/proof/index.d.ts +4 -0
  142. package/dist/utils/proof/merkle-utils.d.ts +55 -0
  143. package/dist/utils/proof/proofs.d.ts +305 -0
  144. package/dist/utils/proof/report-proof.d.ts +5 -0
  145. package/dist/utils/read-programs-by-abi.d.ts +18 -0
  146. package/dist/utils/report.d.ts +75 -0
  147. package/dist/utils/required-lock.d.ts +5 -0
  148. package/dist/utils/resolve-path.d.ts +1 -0
  149. package/dist/utils/sleep.d.ts +1 -0
  150. package/dist/utils/spinner/index.d.ts +1 -0
  151. package/dist/utils/spinner/spinners.d.ts +7 -0
  152. package/dist/version/index.d.ts +1 -0
  153. package/dist/version/index.js +1 -1
  154. package/package.json +1 -1
@@ -0,0 +1,22 @@
1
+ export * from './get-value.js';
2
+ export * from './data-validators.js';
3
+ export * from './resolve-path.js';
4
+ export * from './sleep.js';
5
+ export * from './error-handler.js';
6
+ export * from './contract.js';
7
+ export * from './proof/index.js';
8
+ export * from './prompts/index.js';
9
+ export * from './spinner/index.js';
10
+ export * from './read-programs-by-abi.js';
11
+ export * from './get-commands.js';
12
+ export * from './get-deposit-data-root.js';
13
+ export * from './arguments.js';
14
+ export * from './report.js';
15
+ export * from './health.js';
16
+ export * from './logging/index.js';
17
+ export * from './fetchCL.js';
18
+ export * from './ipfs.js';
19
+ export * from './commands/index.js';
20
+ export * from './bls.js';
21
+ export * from './required-lock.js';
22
+ export * from './calculate-overview.js';
@@ -0,0 +1,6 @@
1
+ import { CID } from 'multiformats/cid';
2
+ export declare const IPFS_GATEWAY = "https://ipfs.io/ipfs";
3
+ export declare const fetchIPFS: (CID: string, url?: string) => Promise<any>;
4
+ export declare const fetchIPFSBuffer: (cid: string, gateway?: string) => Promise<Uint8Array>;
5
+ export declare const calculateIPFSAddCID: (fileContent: Uint8Array) => Promise<CID>;
6
+ export declare const fetchAndVerifyFile: (cid: string, gateway?: string) => Promise<Uint8Array>;
@@ -0,0 +1,7 @@
1
+ import { HeadMessage } from './constants.js';
2
+ export declare const createConsole: (headMessage: HeadMessage, type?: "info" | "error" | "table" | "bold") => <T, U>(...args: T[] | U[]) => void;
3
+ export declare const logInfo: <T, U>(...args: T[] | U[]) => void;
4
+ export declare const logError: <T, U>(...args: T[] | U[]) => void;
5
+ export declare const logResult: <T, U>(...args: T[] | U[]) => void;
6
+ export declare const logBold: <T, U>(...args: T[] | U[]) => void;
7
+ export declare const logCancel: <T, U>(...args: T[] | U[]) => void;
@@ -0,0 +1,2 @@
1
+ export type HeadMessage = 'Error' | 'LOG' | 'Result' | 'Bold' | 'Cancel';
2
+ export declare const getColoredLog: <T>(type: HeadMessage, message: T) => string;
@@ -0,0 +1 @@
1
+ export * from './console.js';
@@ -0,0 +1,29 @@
1
+ import { Address } from 'viem';
2
+ type ConfirmMintProps = {
3
+ vaultAddress: Address;
4
+ recipient: Address;
5
+ amountOfMint: bigint;
6
+ amountOfMintInStethWei: bigint;
7
+ newLiabilityShares: bigint;
8
+ currentLiabilityShares: bigint;
9
+ newHealthRatio: number;
10
+ currentHealthRatio: number;
11
+ newIsHealthy: boolean;
12
+ currentIsHealthy: boolean;
13
+ type: 'shares' | 'stETH' | 'wstETH';
14
+ };
15
+ type ConfirmBurnProps = {
16
+ vaultAddress: Address;
17
+ amountOfBurn: bigint;
18
+ amountOfBurnInStethWei: bigint;
19
+ newLiabilityShares: bigint;
20
+ currentLiabilityShares: bigint;
21
+ newHealthRatio: number;
22
+ currentHealthRatio: number;
23
+ newIsHealthy: boolean;
24
+ currentIsHealthy: boolean;
25
+ type: 'shares' | 'stETH' | 'wstETH';
26
+ };
27
+ export declare const confirmMint: (props: ConfirmMintProps) => Promise<boolean>;
28
+ export declare const confirmBurn: (props: ConfirmBurnProps) => Promise<boolean>;
29
+ export {};
@@ -0,0 +1,3 @@
1
+ import prompts from 'prompts';
2
+ export declare const textPrompt: <T extends string>(message: string, name: T) => Promise<prompts.Answers<T>>;
3
+ export declare const confirmPrompt: <T extends string>(message: string, name: T) => Promise<prompts.Answers<T>>;
@@ -0,0 +1,5 @@
1
+ export * from './default.js';
2
+ export * from './predeposit-guarantee.js';
3
+ export * from './vault.js';
4
+ export * from './operations.js';
5
+ export * from './dashboard.js';
@@ -0,0 +1,9 @@
1
+ import { Address } from 'viem';
2
+ export declare const enterContractAddress: (name?: string) => Promise<import("prompts").Answers<"address">>;
3
+ export declare const confirmContractAndAmount: (contract: Address, amountETH: string) => Promise<import("prompts").Answers<"confirm">>;
4
+ export declare const enterAmountETH: () => Promise<import("prompts").Answers<"amountETH">>;
5
+ export declare const confirmFund: (address: Address, amountETH: string, name: string) => Promise<{
6
+ address: `0x${string}`;
7
+ amount: string;
8
+ }>;
9
+ export declare const confirmOperation: (message: string) => Promise<boolean>;
@@ -0,0 +1,3 @@
1
+ export declare const enterValidatorIndex: () => Promise<import("prompts").Answers<"validatorIndex">>;
2
+ export declare const confirmValidatorIndex: (validatorIndex: bigint) => Promise<import("prompts").Answers<"confirm">>;
3
+ export declare const confirmMakeProof: (index: bigint) => Promise<bigint | void>;
@@ -0,0 +1,2 @@
1
+ import { RoleAssignment, VaultWithDashboard } from '../../types/index.js';
2
+ export declare const confirmCreateVaultParams: (payload: VaultWithDashboard, otherRoles: RoleAssignment[]) => Promise<import("prompts").Answers<"confirm">>;
@@ -0,0 +1,12 @@
1
+ import { Hex } from 'viem';
2
+ export interface ValidatorWitness {
3
+ proof: Hex[];
4
+ pubkey: Hex;
5
+ validatorIndex: bigint;
6
+ childBlockTimestamp: bigint;
7
+ }
8
+ interface ValidatorWitnessWithWC extends ValidatorWitness {
9
+ withdrawalCredentials: Hex;
10
+ }
11
+ export declare const createPDGProof: (validatorIndex: number, clURL?: string) => Promise<ValidatorWitnessWithWC>;
12
+ export {};
@@ -0,0 +1 @@
1
+ export declare const getFirstValidatorGIndex: (forks: string[]) => void;
@@ -0,0 +1,4 @@
1
+ export * from './merkle-utils.js';
2
+ export * from './create-proof.js';
3
+ export * from './first-validator-gindex.js';
4
+ export * from './report-proof.js';
@@ -0,0 +1,55 @@
1
+ type Validator = {
2
+ pubkey: Uint8Array<ArrayBufferLike>;
3
+ withdrawalCredentials: Uint8Array<ArrayBufferLike>;
4
+ effectiveBalance: number;
5
+ slashed: boolean;
6
+ activationEligibilityEpoch: number;
7
+ activationEpoch: number;
8
+ exitEpoch: number | typeof Infinity;
9
+ withdrawableEpoch: number | typeof Infinity;
10
+ };
11
+ type BeaconBlockHeader = {
12
+ slot: number;
13
+ proposer_index: number;
14
+ parent_root: string;
15
+ state_root: string;
16
+ body_root: string;
17
+ };
18
+ /** Hex -> bytes */
19
+ export declare const fromHex: (hex: string) => Uint8Array;
20
+ /** anything -> hex */
21
+ export declare const toHex: (value: unknown) => string;
22
+ /** sha256(32+32) => 32 */
23
+ export declare const sha256Pair: (left: Uint8Array, right: Uint8Array) => Uint8Array;
24
+ /**
25
+ * Helper for SHA-256 over multiple Uint8Array chunks.
26
+ * Returns a 32-byte hash (Uint8Array of length 32).
27
+ */
28
+ export declare const sha256Concat: (...chunks: Uint8Array[]) => Uint8Array;
29
+ /** 48 => 64 padded => sha256 => 32 */
30
+ export declare const pubkeyRoot: (pubkey48: Uint8Array) => Uint8Array;
31
+ /** uint64 => little-endian => pad => 32 */
32
+ export declare const uint64To32LE: (val: bigint) => Uint8Array;
33
+ /**
34
+ * Converts BigInt (gwei) to 8 bytes (big-endian), then reverses it to little-endian.
35
+ * Returns Uint8Array[8].
36
+ */
37
+ export declare const encodeGweiAsLittleEndian8: (amountGwei: bigint) => Uint8Array;
38
+ /** bool => 1 byte => 32 */
39
+ export declare const boolTo32: (b: boolean) => Uint8Array;
40
+ /**
41
+ * If value == Infinity, treat it as 2^64-1 (18446744073709551615)
42
+ * sentinel "Infinity" => max uint64
43
+ */
44
+ export declare const safeUint64: (value: number) => bigint;
45
+ export declare const manualSubProofPubkeyWC: (validator: Validator) => {
46
+ leafPubkeyWC: Uint8Array<ArrayBufferLike>;
47
+ root: Uint8Array<ArrayBufferLike>;
48
+ siblings: Uint8Array<ArrayBufferLike>[];
49
+ };
50
+ export declare const manualSubProofBeaconBlockHeader: (blockHeader: BeaconBlockHeader) => {
51
+ root: Uint8Array<ArrayBufferLike>;
52
+ siblings: Uint8Array<ArrayBufferLike>[];
53
+ };
54
+ export declare const getPubkeyWCParentGIndex: () => bigint;
55
+ export {};
@@ -0,0 +1,305 @@
1
+ import { Hex } from 'viem';
2
+ import { SingleProof, Node } from '@chainsafe/persistent-merkle-tree';
3
+ declare const SupportedFork: {
4
+ capella: string;
5
+ deneb: string;
6
+ electra: string;
7
+ };
8
+ type BeaconHeaderResponse = {
9
+ slot: number;
10
+ proposer_index: number;
11
+ parent_root: Hex;
12
+ state_root: Hex;
13
+ body_root: Hex;
14
+ };
15
+ export declare const createPubkeyWCProof: (validatorNode: Node) => Promise<{
16
+ proof: SingleProof;
17
+ }>;
18
+ export declare const createStateProof: (validatorIndex: number, bodyBytes: ArrayBuffer, forkName: keyof typeof SupportedFork) => Promise<{
19
+ proof: SingleProof;
20
+ validator: import("@chainsafe/ssz/lib/view/container.js").ContainerTreeViewType<{
21
+ pubkey: import("@chainsafe/ssz").ByteVectorType;
22
+ withdrawalCredentials: import("@chainsafe/ssz").ByteVectorType;
23
+ effectiveBalance: import("@chainsafe/ssz").UintNumberType;
24
+ slashed: import("@chainsafe/ssz").BooleanType;
25
+ activationEligibilityEpoch: import("@chainsafe/ssz").UintNumberType;
26
+ activationEpoch: import("@chainsafe/ssz").UintNumberType;
27
+ exitEpoch: import("@chainsafe/ssz").UintNumberType;
28
+ withdrawableEpoch: import("@chainsafe/ssz").UintNumberType;
29
+ }>;
30
+ view: import("@chainsafe/ssz/lib/view/container.js").ContainerTreeViewType<{
31
+ genesisTime: import("@chainsafe/ssz").UintNumberType;
32
+ genesisValidatorsRoot: import("@chainsafe/ssz").ByteVectorType;
33
+ slot: import("@chainsafe/ssz").UintNumberType;
34
+ fork: import("@chainsafe/ssz").ContainerType<{
35
+ previousVersion: import("@chainsafe/ssz").ByteVectorType;
36
+ currentVersion: import("@chainsafe/ssz").ByteVectorType;
37
+ epoch: import("@chainsafe/ssz").UintNumberType;
38
+ }>;
39
+ latestBlockHeader: import("@chainsafe/ssz").ContainerType<{
40
+ slot: import("@chainsafe/ssz").UintNumberType;
41
+ proposerIndex: import("@chainsafe/ssz").UintNumberType;
42
+ parentRoot: import("@chainsafe/ssz").ByteVectorType;
43
+ stateRoot: import("@chainsafe/ssz").ByteVectorType;
44
+ bodyRoot: import("@chainsafe/ssz").ByteVectorType;
45
+ }>;
46
+ blockRoots: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
47
+ stateRoots: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
48
+ historicalRoots: import("@chainsafe/ssz").ListCompositeType<import("@chainsafe/ssz").ByteVectorType>;
49
+ eth1Data: import("@chainsafe/ssz").ContainerType<{
50
+ depositRoot: import("@chainsafe/ssz").ByteVectorType;
51
+ depositCount: import("@chainsafe/ssz").UintNumberType;
52
+ blockHash: import("@chainsafe/ssz").ByteVectorType;
53
+ }>;
54
+ eth1DataVotes: import("@chainsafe/ssz").ListCompositeType<import("@chainsafe/ssz").ContainerType<{
55
+ depositRoot: import("@chainsafe/ssz").ByteVectorType;
56
+ depositCount: import("@chainsafe/ssz").UintNumberType;
57
+ blockHash: import("@chainsafe/ssz").ByteVectorType;
58
+ }>>;
59
+ eth1DepositIndex: import("@chainsafe/ssz").UintNumberType;
60
+ validators: import("@chainsafe/ssz").ListCompositeType<import("node_modules/@lodestar/types/lib/phase0/validator.js").ValidatorNodeStructType>;
61
+ balances: import("@chainsafe/ssz").ListUintNum64Type;
62
+ randaoMixes: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
63
+ slashings: import("@chainsafe/ssz").VectorBasicType<import("@chainsafe/ssz").UintNumberType>;
64
+ previousEpochParticipation: import("@chainsafe/ssz").ListBasicType<import("@chainsafe/ssz").UintNumberType>;
65
+ currentEpochParticipation: import("@chainsafe/ssz").ListBasicType<import("@chainsafe/ssz").UintNumberType>;
66
+ justificationBits: import("@chainsafe/ssz").BitVectorType;
67
+ previousJustifiedCheckpoint: import("@chainsafe/ssz").ContainerType<{
68
+ epoch: import("@chainsafe/ssz").UintNumberType;
69
+ root: import("@chainsafe/ssz").ByteVectorType;
70
+ }>;
71
+ currentJustifiedCheckpoint: import("@chainsafe/ssz").ContainerType<{
72
+ epoch: import("@chainsafe/ssz").UintNumberType;
73
+ root: import("@chainsafe/ssz").ByteVectorType;
74
+ }>;
75
+ finalizedCheckpoint: import("@chainsafe/ssz").ContainerType<{
76
+ epoch: import("@chainsafe/ssz").UintNumberType;
77
+ root: import("@chainsafe/ssz").ByteVectorType;
78
+ }>;
79
+ inactivityScores: import("@chainsafe/ssz").ListBasicType<import("@chainsafe/ssz").UintNumberType>;
80
+ currentSyncCommittee: import("@chainsafe/ssz").ContainerType<{
81
+ pubkeys: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
82
+ aggregatePubkey: import("@chainsafe/ssz").ByteVectorType;
83
+ }>;
84
+ nextSyncCommittee: import("@chainsafe/ssz").ContainerType<{
85
+ pubkeys: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
86
+ aggregatePubkey: import("@chainsafe/ssz").ByteVectorType;
87
+ }>;
88
+ latestExecutionPayloadHeader: import("@chainsafe/ssz").ContainerType<{
89
+ withdrawalsRoot: import("@chainsafe/ssz").ByteVectorType;
90
+ transactionsRoot: import("@chainsafe/ssz").ByteVectorType;
91
+ parentHash: import("@chainsafe/ssz").ByteVectorType;
92
+ feeRecipient: import("node_modules/@lodestar/types/lib/utils/executionAddress.js").ExecutionAddressType;
93
+ stateRoot: import("@chainsafe/ssz").ByteVectorType;
94
+ receiptsRoot: import("@chainsafe/ssz").ByteVectorType;
95
+ logsBloom: import("@chainsafe/ssz").ByteVectorType;
96
+ prevRandao: import("@chainsafe/ssz").ByteVectorType;
97
+ blockNumber: import("@chainsafe/ssz").UintNumberType;
98
+ gasLimit: import("@chainsafe/ssz").UintNumberType;
99
+ gasUsed: import("@chainsafe/ssz").UintNumberType;
100
+ timestamp: import("@chainsafe/ssz").UintNumberType;
101
+ extraData: import("@chainsafe/ssz").ByteListType;
102
+ baseFeePerGas: import("@chainsafe/ssz").UintBigintType;
103
+ blockHash: import("@chainsafe/ssz").ByteVectorType;
104
+ }>;
105
+ nextWithdrawalIndex: import("@chainsafe/ssz").UintNumberType;
106
+ nextWithdrawalValidatorIndex: import("@chainsafe/ssz").UintNumberType;
107
+ historicalSummaries: import("@chainsafe/ssz").ListCompositeType<import("@chainsafe/ssz").ContainerType<{
108
+ blockSummaryRoot: import("@chainsafe/ssz").ByteVectorType;
109
+ stateSummaryRoot: import("@chainsafe/ssz").ByteVectorType;
110
+ }>>;
111
+ }> | import("@chainsafe/ssz/lib/view/container.js").ContainerTreeViewType<{
112
+ genesisTime: import("@chainsafe/ssz").UintNumberType;
113
+ genesisValidatorsRoot: import("@chainsafe/ssz").ByteVectorType;
114
+ slot: import("@chainsafe/ssz").UintNumberType;
115
+ fork: import("@chainsafe/ssz").ContainerType<{
116
+ previousVersion: import("@chainsafe/ssz").ByteVectorType;
117
+ currentVersion: import("@chainsafe/ssz").ByteVectorType;
118
+ epoch: import("@chainsafe/ssz").UintNumberType;
119
+ }>;
120
+ latestBlockHeader: import("@chainsafe/ssz").ContainerType<{
121
+ slot: import("@chainsafe/ssz").UintNumberType;
122
+ proposerIndex: import("@chainsafe/ssz").UintNumberType;
123
+ parentRoot: import("@chainsafe/ssz").ByteVectorType;
124
+ stateRoot: import("@chainsafe/ssz").ByteVectorType;
125
+ bodyRoot: import("@chainsafe/ssz").ByteVectorType;
126
+ }>;
127
+ blockRoots: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
128
+ stateRoots: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
129
+ historicalRoots: import("@chainsafe/ssz").ListCompositeType<import("@chainsafe/ssz").ByteVectorType>;
130
+ eth1Data: import("@chainsafe/ssz").ContainerType<{
131
+ depositRoot: import("@chainsafe/ssz").ByteVectorType;
132
+ depositCount: import("@chainsafe/ssz").UintNumberType;
133
+ blockHash: import("@chainsafe/ssz").ByteVectorType;
134
+ }>;
135
+ eth1DataVotes: import("@chainsafe/ssz").ListCompositeType<import("@chainsafe/ssz").ContainerType<{
136
+ depositRoot: import("@chainsafe/ssz").ByteVectorType;
137
+ depositCount: import("@chainsafe/ssz").UintNumberType;
138
+ blockHash: import("@chainsafe/ssz").ByteVectorType;
139
+ }>>;
140
+ eth1DepositIndex: import("@chainsafe/ssz").UintNumberType;
141
+ validators: import("@chainsafe/ssz").ListCompositeType<import("node_modules/@lodestar/types/lib/phase0/validator.js").ValidatorNodeStructType>;
142
+ balances: import("@chainsafe/ssz").ListUintNum64Type;
143
+ randaoMixes: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
144
+ slashings: import("@chainsafe/ssz").VectorBasicType<import("@chainsafe/ssz").UintNumberType>;
145
+ previousEpochParticipation: import("@chainsafe/ssz").ListBasicType<import("@chainsafe/ssz").UintNumberType>;
146
+ currentEpochParticipation: import("@chainsafe/ssz").ListBasicType<import("@chainsafe/ssz").UintNumberType>;
147
+ justificationBits: import("@chainsafe/ssz").BitVectorType;
148
+ previousJustifiedCheckpoint: import("@chainsafe/ssz").ContainerType<{
149
+ epoch: import("@chainsafe/ssz").UintNumberType;
150
+ root: import("@chainsafe/ssz").ByteVectorType;
151
+ }>;
152
+ currentJustifiedCheckpoint: import("@chainsafe/ssz").ContainerType<{
153
+ epoch: import("@chainsafe/ssz").UintNumberType;
154
+ root: import("@chainsafe/ssz").ByteVectorType;
155
+ }>;
156
+ finalizedCheckpoint: import("@chainsafe/ssz").ContainerType<{
157
+ epoch: import("@chainsafe/ssz").UintNumberType;
158
+ root: import("@chainsafe/ssz").ByteVectorType;
159
+ }>;
160
+ inactivityScores: import("@chainsafe/ssz").ListBasicType<import("@chainsafe/ssz").UintNumberType>;
161
+ currentSyncCommittee: import("@chainsafe/ssz").ContainerType<{
162
+ pubkeys: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
163
+ aggregatePubkey: import("@chainsafe/ssz").ByteVectorType;
164
+ }>;
165
+ nextSyncCommittee: import("@chainsafe/ssz").ContainerType<{
166
+ pubkeys: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
167
+ aggregatePubkey: import("@chainsafe/ssz").ByteVectorType;
168
+ }>;
169
+ latestExecutionPayloadHeader: import("@chainsafe/ssz").ContainerType<{
170
+ blobGasUsed: import("@chainsafe/ssz").UintBigintType;
171
+ excessBlobGas: import("@chainsafe/ssz").UintBigintType;
172
+ withdrawalsRoot: import("@chainsafe/ssz").ByteVectorType;
173
+ transactionsRoot: import("@chainsafe/ssz").ByteVectorType;
174
+ parentHash: import("@chainsafe/ssz").ByteVectorType;
175
+ feeRecipient: import("node_modules/@lodestar/types/lib/utils/executionAddress.js").ExecutionAddressType;
176
+ stateRoot: import("@chainsafe/ssz").ByteVectorType;
177
+ receiptsRoot: import("@chainsafe/ssz").ByteVectorType;
178
+ logsBloom: import("@chainsafe/ssz").ByteVectorType;
179
+ prevRandao: import("@chainsafe/ssz").ByteVectorType;
180
+ blockNumber: import("@chainsafe/ssz").UintNumberType;
181
+ gasLimit: import("@chainsafe/ssz").UintNumberType;
182
+ gasUsed: import("@chainsafe/ssz").UintNumberType;
183
+ timestamp: import("@chainsafe/ssz").UintNumberType;
184
+ extraData: import("@chainsafe/ssz").ByteListType;
185
+ baseFeePerGas: import("@chainsafe/ssz").UintBigintType;
186
+ blockHash: import("@chainsafe/ssz").ByteVectorType;
187
+ }>;
188
+ nextWithdrawalIndex: import("@chainsafe/ssz").UintNumberType;
189
+ nextWithdrawalValidatorIndex: import("@chainsafe/ssz").UintNumberType;
190
+ historicalSummaries: import("@chainsafe/ssz").ListCompositeType<import("@chainsafe/ssz").ContainerType<{
191
+ blockSummaryRoot: import("@chainsafe/ssz").ByteVectorType;
192
+ stateSummaryRoot: import("@chainsafe/ssz").ByteVectorType;
193
+ }>>;
194
+ }> | import("@chainsafe/ssz/lib/view/container.js").ContainerTreeViewType<{
195
+ genesisTime: import("@chainsafe/ssz").UintNumberType;
196
+ genesisValidatorsRoot: import("@chainsafe/ssz").ByteVectorType;
197
+ slot: import("@chainsafe/ssz").UintNumberType;
198
+ fork: import("@chainsafe/ssz").ContainerType<{
199
+ previousVersion: import("@chainsafe/ssz").ByteVectorType;
200
+ currentVersion: import("@chainsafe/ssz").ByteVectorType;
201
+ epoch: import("@chainsafe/ssz").UintNumberType;
202
+ }>;
203
+ latestBlockHeader: import("@chainsafe/ssz").ContainerType<{
204
+ slot: import("@chainsafe/ssz").UintNumberType;
205
+ proposerIndex: import("@chainsafe/ssz").UintNumberType;
206
+ parentRoot: import("@chainsafe/ssz").ByteVectorType;
207
+ stateRoot: import("@chainsafe/ssz").ByteVectorType;
208
+ bodyRoot: import("@chainsafe/ssz").ByteVectorType;
209
+ }>;
210
+ blockRoots: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
211
+ stateRoots: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
212
+ historicalRoots: import("@chainsafe/ssz").ListCompositeType<import("@chainsafe/ssz").ByteVectorType>;
213
+ eth1Data: import("@chainsafe/ssz").ContainerType<{
214
+ depositRoot: import("@chainsafe/ssz").ByteVectorType;
215
+ depositCount: import("@chainsafe/ssz").UintNumberType;
216
+ blockHash: import("@chainsafe/ssz").ByteVectorType;
217
+ }>;
218
+ eth1DataVotes: import("@chainsafe/ssz").ListCompositeType<import("@chainsafe/ssz").ContainerType<{
219
+ depositRoot: import("@chainsafe/ssz").ByteVectorType;
220
+ depositCount: import("@chainsafe/ssz").UintNumberType;
221
+ blockHash: import("@chainsafe/ssz").ByteVectorType;
222
+ }>>;
223
+ eth1DepositIndex: import("@chainsafe/ssz").UintNumberType;
224
+ validators: import("@chainsafe/ssz").ListCompositeType<import("node_modules/@lodestar/types/lib/phase0/validator.js").ValidatorNodeStructType>;
225
+ balances: import("@chainsafe/ssz").ListUintNum64Type;
226
+ randaoMixes: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
227
+ slashings: import("@chainsafe/ssz").VectorBasicType<import("@chainsafe/ssz").UintNumberType>;
228
+ previousEpochParticipation: import("@chainsafe/ssz").ListBasicType<import("@chainsafe/ssz").UintNumberType>;
229
+ currentEpochParticipation: import("@chainsafe/ssz").ListBasicType<import("@chainsafe/ssz").UintNumberType>;
230
+ justificationBits: import("@chainsafe/ssz").BitVectorType;
231
+ previousJustifiedCheckpoint: import("@chainsafe/ssz").ContainerType<{
232
+ epoch: import("@chainsafe/ssz").UintNumberType;
233
+ root: import("@chainsafe/ssz").ByteVectorType;
234
+ }>;
235
+ currentJustifiedCheckpoint: import("@chainsafe/ssz").ContainerType<{
236
+ epoch: import("@chainsafe/ssz").UintNumberType;
237
+ root: import("@chainsafe/ssz").ByteVectorType;
238
+ }>;
239
+ finalizedCheckpoint: import("@chainsafe/ssz").ContainerType<{
240
+ epoch: import("@chainsafe/ssz").UintNumberType;
241
+ root: import("@chainsafe/ssz").ByteVectorType;
242
+ }>;
243
+ inactivityScores: import("@chainsafe/ssz").ListBasicType<import("@chainsafe/ssz").UintNumberType>;
244
+ currentSyncCommittee: import("@chainsafe/ssz").ContainerType<{
245
+ pubkeys: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
246
+ aggregatePubkey: import("@chainsafe/ssz").ByteVectorType;
247
+ }>;
248
+ nextSyncCommittee: import("@chainsafe/ssz").ContainerType<{
249
+ pubkeys: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
250
+ aggregatePubkey: import("@chainsafe/ssz").ByteVectorType;
251
+ }>;
252
+ latestExecutionPayloadHeader: import("@chainsafe/ssz").ContainerType<{
253
+ blobGasUsed: import("@chainsafe/ssz").UintBigintType;
254
+ excessBlobGas: import("@chainsafe/ssz").UintBigintType;
255
+ withdrawalsRoot: import("@chainsafe/ssz").ByteVectorType;
256
+ transactionsRoot: import("@chainsafe/ssz").ByteVectorType;
257
+ parentHash: import("@chainsafe/ssz").ByteVectorType;
258
+ feeRecipient: import("node_modules/@lodestar/types/lib/utils/executionAddress.js").ExecutionAddressType;
259
+ stateRoot: import("@chainsafe/ssz").ByteVectorType;
260
+ receiptsRoot: import("@chainsafe/ssz").ByteVectorType;
261
+ logsBloom: import("@chainsafe/ssz").ByteVectorType;
262
+ prevRandao: import("@chainsafe/ssz").ByteVectorType;
263
+ blockNumber: import("@chainsafe/ssz").UintNumberType;
264
+ gasLimit: import("@chainsafe/ssz").UintNumberType;
265
+ gasUsed: import("@chainsafe/ssz").UintNumberType;
266
+ timestamp: import("@chainsafe/ssz").UintNumberType;
267
+ extraData: import("@chainsafe/ssz").ByteListType;
268
+ baseFeePerGas: import("@chainsafe/ssz").UintBigintType;
269
+ blockHash: import("@chainsafe/ssz").ByteVectorType;
270
+ }>;
271
+ nextWithdrawalIndex: import("@chainsafe/ssz").UintNumberType;
272
+ nextWithdrawalValidatorIndex: import("@chainsafe/ssz").UintNumberType;
273
+ historicalSummaries: import("@chainsafe/ssz").ListCompositeType<import("@chainsafe/ssz").ContainerType<{
274
+ blockSummaryRoot: import("@chainsafe/ssz").ByteVectorType;
275
+ stateSummaryRoot: import("@chainsafe/ssz").ByteVectorType;
276
+ }>>;
277
+ depositRequestsStartIndex: import("@chainsafe/ssz").UintBigintType;
278
+ depositBalanceToConsume: import("@chainsafe/ssz").UintBigintType;
279
+ exitBalanceToConsume: import("@chainsafe/ssz").UintBigintType;
280
+ earliestExitEpoch: import("@chainsafe/ssz").UintNumberType;
281
+ consolidationBalanceToConsume: import("@chainsafe/ssz").UintBigintType;
282
+ earliestConsolidationEpoch: import("@chainsafe/ssz").UintNumberType;
283
+ pendingDeposits: import("@chainsafe/ssz").ListCompositeType<import("@chainsafe/ssz").ContainerType<{
284
+ pubkey: import("@chainsafe/ssz").ByteVectorType;
285
+ withdrawalCredentials: import("@chainsafe/ssz").ByteVectorType;
286
+ amount: import("@chainsafe/ssz").UintNumberType;
287
+ signature: import("@chainsafe/ssz").ByteVectorType;
288
+ slot: import("@chainsafe/ssz").UintNumberType;
289
+ }>>;
290
+ pendingPartialWithdrawals: import("@chainsafe/ssz").ListCompositeType<import("@chainsafe/ssz").ContainerType<{
291
+ validatorIndex: import("@chainsafe/ssz").UintNumberType;
292
+ amount: import("@chainsafe/ssz").UintBigintType;
293
+ withdrawableEpoch: import("@chainsafe/ssz").UintNumberType;
294
+ }>>;
295
+ pendingConsolidations: import("@chainsafe/ssz").ListCompositeType<import("@chainsafe/ssz").ContainerType<{
296
+ sourceIndex: import("@chainsafe/ssz").UintNumberType;
297
+ targetIndex: import("@chainsafe/ssz").UintNumberType;
298
+ }>>;
299
+ }>;
300
+ }>;
301
+ export declare const createBeaconHeaderProof: (beaconHeader: BeaconHeaderResponse) => Promise<{
302
+ proof: SingleProof;
303
+ root: `0x${string}`;
304
+ }>;
305
+ export {};
@@ -0,0 +1,5 @@
1
+ import { Hex } from 'viem';
2
+ import { LeafDataFields } from '../index.js';
3
+ export declare const DOUBLE_HASH: (data: Hex) => Hex;
4
+ export declare const hashNode: (a: Hex, b: Hex) => Hex;
5
+ export declare const getReportLeaf: (input: LeafDataFields) => Hex;
@@ -0,0 +1,18 @@
1
+ import { Command } from 'commander';
2
+ import { Abi } from 'viem';
3
+ import { ReadContract } from './index.js';
4
+ export type ReadProgramCommandConfig = {
5
+ [fnName: string]: {
6
+ name?: string;
7
+ description?: string;
8
+ arguments?: {
9
+ [argName: string]: {
10
+ name?: string;
11
+ description?: string;
12
+ modifier?: (value: string) => any;
13
+ };
14
+ };
15
+ };
16
+ };
17
+ export declare function generateReadCommands<T>(abi: Abi, createContract: (address: T) => ReadContract, command: Command, commandConfig: ReadProgramCommandConfig): Command;
18
+ export declare function generateReadCommands(abi: Abi, createContractAsync: () => Promise<ReadContract>, command: Command, commandConfig: ReadProgramCommandConfig): Command;
@@ -0,0 +1,75 @@
1
+ import { Address } from 'viem';
2
+ export type LeafDataFields = {
3
+ vault_address: string;
4
+ total_value_wei: string;
5
+ in_out_delta: string;
6
+ fee: string;
7
+ liability_shares: string;
8
+ };
9
+ export type Report = {
10
+ format: string;
11
+ leafEncoding: string[];
12
+ tree: string[];
13
+ values: {
14
+ value: string[];
15
+ treeIndex: number;
16
+ }[];
17
+ merkleTreeRoot: string;
18
+ refSlot: number;
19
+ timestamp: number;
20
+ blockNumber: number;
21
+ proofsCID: string;
22
+ prevTreeCID: string;
23
+ leafIndexToData: {
24
+ [key: string]: keyof LeafDataFields;
25
+ };
26
+ };
27
+ export type VaultReport = {
28
+ data: LeafDataFields;
29
+ leaf: string;
30
+ refSlot: number;
31
+ blockNumber: number;
32
+ timestamp: number;
33
+ proofsCID: string;
34
+ prevTreeCID: string;
35
+ merkleTreeRoot: string;
36
+ };
37
+ export type ReportProofData = {
38
+ merkleTreeRoot: string;
39
+ refSlot: number;
40
+ proofs: {
41
+ [key: string]: {
42
+ id: number;
43
+ totalValueWei: bigint;
44
+ inOutDelta: bigint;
45
+ fee: bigint;
46
+ liabilityShares: bigint;
47
+ leaf: string;
48
+ proof: string[];
49
+ };
50
+ };
51
+ block_number: number;
52
+ timestamp: number;
53
+ prevTreeCID: string;
54
+ };
55
+ export declare const getReport: (CID: string, url?: string) => Promise<Report>;
56
+ export declare const getVaultReport: (vault: Address, cid: string, url?: string) => Promise<VaultReport>;
57
+ export declare const getReportProofByVault: (vault: Address, cid: string) => Promise<{
58
+ id: number;
59
+ totalValueWei: bigint;
60
+ inOutDelta: bigint;
61
+ fee: bigint;
62
+ liabilityShares: bigint;
63
+ leaf: string;
64
+ proof: string[];
65
+ }>;
66
+ export declare const getReportProofByCid: (vault: Address, proofCID: string) => Promise<{
67
+ id: number;
68
+ totalValueWei: bigint;
69
+ inOutDelta: bigint;
70
+ fee: bigint;
71
+ liabilityShares: bigint;
72
+ leaf: string;
73
+ proof: string[];
74
+ }>;
75
+ export declare const getAllVaultsReports: (CID: string, url?: string) => Promise<VaultReport["data"][]>;
@@ -0,0 +1,5 @@
1
+ import { Address } from 'viem';
2
+ export declare const getRequiredLockByShares: (address: Address, newShares: string) => Promise<{
3
+ requiredLock: bigint;
4
+ currentLock: bigint;
5
+ }>;
@@ -0,0 +1 @@
1
+ export declare const resolvePath: (pathString: string) => string;
@@ -0,0 +1 @@
1
+ export declare const sleep: (ms: number) => Promise<unknown>;
@@ -0,0 +1 @@
1
+ export * from './spinners.js';
@@ -0,0 +1,7 @@
1
+ import spinners from './spinners.json';
2
+ type args = {
3
+ type?: keyof typeof spinners;
4
+ message?: string;
5
+ };
6
+ export declare const showSpinner: (args?: args) => () => void;
7
+ export {};
@@ -0,0 +1 @@
1
+ export declare const version = "version_replace";
@@ -1 +1 @@
1
- export const version = 'v1.0.0-alpha.28'
1
+ export const version = 'v1.0.0-alpha.29'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lidofinance/lsv-cli",
3
- "version": "1.0.0-alpha.28",
3
+ "version": "1.0.0-alpha.29",
4
4
  "main": "dist/index.js",
5
5
  "files": [
6
6
  "dist"