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

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 (50) hide show
  1. package/dist/abi/ReportChecker.js +109 -0
  2. package/dist/abi/ReportChecker.js.map +1 -0
  3. package/dist/abi/index.js +1 -0
  4. package/dist/abi/index.js.map +1 -1
  5. package/dist/contracts/index.js +1 -0
  6. package/dist/contracts/index.js.map +1 -1
  7. package/dist/contracts/reportChecker.js +24 -0
  8. package/dist/contracts/reportChecker.js.map +1 -0
  9. package/dist/contracts/steth.js +6 -3
  10. package/dist/contracts/steth.js.map +1 -1
  11. package/dist/features/voting.js +5 -1
  12. package/dist/features/voting.js.map +1 -1
  13. package/dist/programs/dashboard/read.js +40 -2
  14. package/dist/programs/dashboard/read.js.map +1 -1
  15. package/dist/programs/dashboard/write.js +29 -27
  16. package/dist/programs/dashboard/write.js.map +1 -1
  17. package/dist/programs/delegation/read.js +26 -20
  18. package/dist/programs/delegation/read.js.map +1 -1
  19. package/dist/programs/delegation/write.js +11 -15
  20. package/dist/programs/delegation/write.js.map +1 -1
  21. package/dist/programs/hub/write.js +3 -3
  22. package/dist/programs/hub/write.js.map +1 -1
  23. package/dist/programs/index.js +1 -0
  24. package/dist/programs/index.js.map +1 -1
  25. package/dist/programs/pdg/write.js +10 -12
  26. package/dist/programs/pdg/write.js.map +1 -1
  27. package/dist/programs/report.js +101 -0
  28. package/dist/programs/report.js.map +1 -0
  29. package/dist/programs/vault/write.js +16 -20
  30. package/dist/programs/vault/write.js.map +1 -1
  31. package/dist/programs/vault-factory/write.js +5 -21
  32. package/dist/programs/vault-factory/write.js.map +1 -1
  33. package/dist/utils/arguments.js +24 -0
  34. package/dist/utils/arguments.js.map +1 -0
  35. package/dist/utils/contract.js +1 -0
  36. package/dist/utils/contract.js.map +1 -1
  37. package/dist/utils/error-handler.js +3 -0
  38. package/dist/utils/error-handler.js.map +1 -1
  39. package/dist/utils/health.js +18 -0
  40. package/dist/utils/health.js.map +1 -0
  41. package/dist/utils/index.js +3 -0
  42. package/dist/utils/index.js.map +1 -1
  43. package/dist/utils/proof/index.js +1 -0
  44. package/dist/utils/proof/index.js.map +1 -1
  45. package/dist/utils/proof/report-proof.js +21 -0
  46. package/dist/utils/proof/report-proof.js.map +1 -0
  47. package/dist/utils/report.js +68 -0
  48. package/dist/utils/report.js.map +1 -0
  49. package/dist/version/index.js +1 -1
  50. package/package.json +2 -4
@@ -11,4 +11,7 @@ export * from './read-programs-by-abi.js';
11
11
  export * from './get-commands.js';
12
12
  export * from './parse-string.js';
13
13
  export * from './get-deposit-data-root.js';
14
+ export * from './arguments.js';
15
+ export * from './report.js';
16
+ export * from './health.js';
14
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export * from './merkle-utils.js';
2
2
  export * from './create-proof.js';
3
3
  export * from './first-validator-gindex.js';
4
+ export * from './report-proof.js';
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../utils/proof/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../utils/proof/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { encodeAbiParameters, keccak256 } from 'viem';
2
+ const encoding = [
3
+ { type: 'address', name: 'vault_address' },
4
+ { type: 'uint256', name: 'valuation_wei' },
5
+ { type: 'uint256', name: 'in_out_delta' },
6
+ { type: 'uint256', name: 'fee' },
7
+ { type: 'uint256', name: 'shares_minted' },
8
+ ];
9
+ const getLeafInput = (vault) => [
10
+ vault.vault_address,
11
+ BigInt(vault.valuation_wei),
12
+ BigInt(vault.in_out_delta),
13
+ BigInt(vault.fee),
14
+ BigInt(vault.shares_minted),
15
+ ];
16
+ export const getReportLeaf = (input) => {
17
+ const encoded = encodeAbiParameters(encoding, getLeafInput(input));
18
+ const leaf = keccak256(keccak256(encoded));
19
+ return leaf;
20
+ };
21
+ //# sourceMappingURL=report-proof.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report-proof.js","sourceRoot":"","sources":["../../../utils/proof/report-proof.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAO,SAAS,EAAE,MAAM,MAAM,CAAC;AAG3D,MAAM,QAAQ,GAAG;IACf,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE;IAC1C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE;IAC1C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE;IACzC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE;IAChC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE;CAC3C,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,KAAqB,EAAE,EAAE,CAAC;IAC9C,KAAK,CAAC,aAAa;IACnB,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC;IAC3B,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;IAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;IACjB,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC;CAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAqB,EAAO,EAAE;IAC1D,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAEnE,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
@@ -0,0 +1,68 @@
1
+ // TODO: change to the general IPFS gateway
2
+ const IPFS_GATEWAY = 'https://emerald-characteristic-yak-701.mypinata.cloud/ipfs';
3
+ export const getReport = async (CID, url = IPFS_GATEWAY) => {
4
+ const ipfsUrl = `${url}/${CID}`;
5
+ console.info('Fetching report from', ipfsUrl);
6
+ const response = await fetch(ipfsUrl);
7
+ if (!response.ok) {
8
+ throw new Error(`Failed to fetch IPFS report: ${response.statusText}`);
9
+ }
10
+ const data = await response.json();
11
+ return data;
12
+ };
13
+ export const getVaultReport = async (vault, cid, url = IPFS_GATEWAY) => {
14
+ const report = await getReport(cid, url);
15
+ const vaultData = getVaultData(report, vault);
16
+ return vaultData;
17
+ };
18
+ const getVaultData = (report, vault) => {
19
+ const match = report.values.find((entry) => entry.value[0]?.toLowerCase() === vault.toLowerCase());
20
+ if (!match)
21
+ throw new Error('Vault not found');
22
+ const leaf = report.tree[match.treeIndex];
23
+ if (!leaf)
24
+ throw new Error('Leaf not found');
25
+ const data = {
26
+ vault_address: '',
27
+ valuation_wei: '',
28
+ in_out_delta: '',
29
+ fee: '',
30
+ shares_minted: '',
31
+ };
32
+ for (const [index, fieldName] of Object.entries(report.leafIndexToData)) {
33
+ const value = match.value[Number(index)];
34
+ if (value === undefined) {
35
+ throw new Error(`Missing value at index ${index} for field "${fieldName}"`);
36
+ }
37
+ data[fieldName] = value.toString();
38
+ }
39
+ return {
40
+ data,
41
+ leaf,
42
+ refSlof: report.refSlof,
43
+ blockNumber: report.blockNumber,
44
+ proofsCID: report.proofsCID,
45
+ merkleTreeRoot: report.merkleTreeRoot,
46
+ };
47
+ };
48
+ export const getReportProof = async (vault, cid) => {
49
+ const report = await getReport(cid);
50
+ const proof = report.proofsCID;
51
+ const url = `${IPFS_GATEWAY}/${proof}`;
52
+ console.info('Fetching proof from', url);
53
+ const response = await fetch(url);
54
+ if (!response.ok) {
55
+ throw new Error(`Failed to fetch IPFS proof: ${response.statusText}`);
56
+ }
57
+ const data = await response.json();
58
+ const proofByVault = data.proofs[vault];
59
+ if (!proofByVault)
60
+ throw new Error('Proof not found');
61
+ return proofByVault;
62
+ };
63
+ export const getAllVaultsReports = async (CID, url = IPFS_GATEWAY) => {
64
+ const report = await getReport(CID, url);
65
+ const vaultReports = report.values.map((value) => getVaultData(report, value.value[0]).data);
66
+ return vaultReports;
67
+ };
68
+ //# sourceMappingURL=report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../utils/report.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export const version = 'v1.0.0-alpha.22'
1
+ export const version = 'v1.0.0-alpha.23'
package/package.json CHANGED
@@ -1,14 +1,12 @@
1
1
  {
2
2
  "name": "@lidofinance/lsv-cli",
3
- "version": "1.0.0-alpha.22",
3
+ "version": "1.0.0-alpha.23",
4
4
  "main": "dist/index.js",
5
5
  "files": [
6
6
  "dist"
7
7
  ],
8
8
  "type": "module",
9
- "bin": {
10
- "lsv-cli": "dist/index.js"
11
- },
9
+ "bin": "dist/index.js",
12
10
  "scripts": {
13
11
  "start": "ts-node ./index.ts",
14
12
  "build": "npx tsc && tsc-alias",