@lidofinance/lsv-cli 1.9.0 → 1.10.0-alpha.1

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 (54) hide show
  1. package/dist/features/consolidation.d.ts +2 -3
  2. package/dist/features/consolidation.js +60 -32
  3. package/dist/features/consolidation.js.map +1 -1
  4. package/dist/programs/use-cases/consolidation/write.js +4 -4
  5. package/dist/programs/use-cases/consolidation/write.js.map +1 -1
  6. package/dist/programs/use-cases/metrics/read.js +4 -4
  7. package/dist/programs/use-cases/metrics/read.js.map +1 -1
  8. package/dist/programs/use-cases/report/read.js +4 -4
  9. package/dist/programs/use-cases/report/read.js.map +1 -1
  10. package/dist/tests/fixtures/consolidation-fixtures.js +1 -0
  11. package/dist/tests/fixtures/consolidation-fixtures.js.map +1 -1
  12. package/dist/tests/utils/consolidation-fee-exemption-calc.test.d.ts +1 -0
  13. package/dist/tests/utils/consolidation-fee-exemption-calc.test.js +145 -0
  14. package/dist/tests/utils/consolidation-fee-exemption-calc.test.js.map +1 -0
  15. package/dist/tests/utils/consolidation-fee-exemption-confirm.test.d.ts +1 -0
  16. package/dist/tests/utils/consolidation-fee-exemption-confirm.test.js +118 -0
  17. package/dist/tests/utils/consolidation-fee-exemption-confirm.test.js.map +1 -0
  18. package/dist/tests/utils/consolidation-fee-exemption.test.d.ts +1 -0
  19. package/dist/tests/utils/consolidation-fee-exemption.test.js +168 -0
  20. package/dist/tests/utils/consolidation-fee-exemption.test.js.map +1 -0
  21. package/dist/tests/utils/first-validator-gindex.test.d.ts +1 -0
  22. package/dist/tests/utils/first-validator-gindex.test.js +48 -0
  23. package/dist/tests/utils/first-validator-gindex.test.js.map +1 -0
  24. package/dist/tests/utils/ipfs-security.test.js +1 -1
  25. package/dist/tests/utils/ipfs-security.test.js.map +1 -1
  26. package/dist/tests/utils/ipfs.test.js +32 -4
  27. package/dist/tests/utils/ipfs.test.js.map +1 -1
  28. package/dist/utils/consolidation/confirms.js +19 -8
  29. package/dist/utils/consolidation/confirms.js.map +1 -1
  30. package/dist/utils/consolidation/fee-exemption.d.ts +19 -0
  31. package/dist/utils/consolidation/fee-exemption.js +70 -0
  32. package/dist/utils/consolidation/fee-exemption.js.map +1 -0
  33. package/dist/utils/consolidation/index.d.ts +1 -0
  34. package/dist/utils/consolidation/index.js +1 -0
  35. package/dist/utils/consolidation/index.js.map +1 -1
  36. package/dist/utils/consolidation/pubkeys.js +2 -0
  37. package/dist/utils/consolidation/pubkeys.js.map +1 -1
  38. package/dist/utils/consolidation/types.d.ts +1 -0
  39. package/dist/utils/consolidation/validator-info.d.ts +2 -1
  40. package/dist/utils/consolidation/validator-info.js +6 -0
  41. package/dist/utils/consolidation/validator-info.js.map +1 -1
  42. package/dist/utils/ipfs.d.ts +6 -1
  43. package/dist/utils/ipfs.js +34 -17
  44. package/dist/utils/ipfs.js.map +1 -1
  45. package/dist/utils/proof/constants.d.ts +1 -0
  46. package/dist/utils/proof/constants.js +1 -0
  47. package/dist/utils/proof/constants.js.map +1 -1
  48. package/dist/utils/proof/first-validator-gindex.js +27 -13
  49. package/dist/utils/proof/first-validator-gindex.js.map +1 -1
  50. package/dist/utils/proof/proofs.d.ts +1 -1
  51. package/dist/utils/proof/proofs.js +1 -1
  52. package/dist/utils/proof/proofs.js.map +1 -1
  53. package/dist/version/index.js +1 -1
  54. package/package.json +13 -9
@@ -0,0 +1,70 @@
1
+ import { formatEther } from 'viem';
2
+ import { getPublicClient } from '../../providers/index.js';
3
+ import { DashboardAbi } from '../../abi/index.js';
4
+ import { bigIntMax, bigIntMin } from '../big-int.js';
5
+ const AVG_BLOCK_TIME_SEC = 12n;
6
+ // providers commonly cap eth_getLogs at 10k blocks
7
+ const MAX_LOG_RANGE_BLOCKS = 10000n;
8
+ // retries happen within hours; a wider window matches the previous batch's
9
+ // exemption instead, since batch amounts are round and repeat
10
+ export const FEE_EXEMPTION_DUPLICATE_LOOKBACK_SEC = 24n * 60n * 60n; // 24 hours
11
+ // disburseFee also emits SettledGrowthSet; only corrections emit CorrectionTimestampUpdated
12
+ export const matchFeeExemptionLogs = (settledGrowthLogs, correctionTxHashes, amount) => settledGrowthLogs
13
+ .filter((log) => correctionTxHashes.has(log.transactionHash))
14
+ .map((log) => ({
15
+ txHash: log.transactionHash,
16
+ blockNumber: log.blockNumber,
17
+ delta: log.args.newSettledGrowth - log.args.oldSettledGrowth,
18
+ }))
19
+ .filter((match) => match.delta === amount);
20
+ // viem does not validate log envelope fields at runtime
21
+ export const formatFeeExemptionMatch = (match) => {
22
+ const txHash = /^0x[0-9a-fA-F]{64}$/.test(match.txHash)
23
+ ? match.txHash
24
+ : '<invalid tx hash from RPC>';
25
+ const timestampMs = Number(match.timestamp) * 1000;
26
+ const at = Number.isSafeInteger(timestampMs)
27
+ ? new Date(timestampMs).toISOString()
28
+ : '<invalid timestamp from RPC>';
29
+ return `${formatEther(match.delta)} ETH in tx ${txHash} at ${at}`;
30
+ };
31
+ export const findRecentFeeExemptions = async (dashboard, amount, lookbackSec = FEE_EXEMPTION_DUPLICATE_LOOKBACK_SEC) => {
32
+ const publicClient = await getPublicClient();
33
+ const currentBlock = await publicClient.getBlockNumber();
34
+ const lookbackBlocks = lookbackSec / AVG_BLOCK_TIME_SEC;
35
+ const fromBlock = bigIntMax(currentBlock - lookbackBlocks, 0n);
36
+ const settledGrowthLogs = [];
37
+ const correctionLogs = [];
38
+ for (let chunkStart = fromBlock; chunkStart <= currentBlock; chunkStart += MAX_LOG_RANGE_BLOCKS) {
39
+ const toBlock = bigIntMin(chunkStart + MAX_LOG_RANGE_BLOCKS - 1n, currentBlock);
40
+ const [chunkSettledGrowthLogs, chunkCorrectionLogs] = await Promise.all([
41
+ publicClient.getContractEvents({
42
+ address: dashboard,
43
+ abi: DashboardAbi,
44
+ eventName: 'SettledGrowthSet',
45
+ fromBlock: chunkStart,
46
+ toBlock,
47
+ strict: true,
48
+ }),
49
+ publicClient.getContractEvents({
50
+ address: dashboard,
51
+ abi: DashboardAbi,
52
+ eventName: 'CorrectionTimestampUpdated',
53
+ fromBlock: chunkStart,
54
+ toBlock,
55
+ strict: true,
56
+ }),
57
+ ]);
58
+ settledGrowthLogs.push(...chunkSettledGrowthLogs);
59
+ correctionLogs.push(...chunkCorrectionLogs);
60
+ }
61
+ const correctionTxHashes = new Set(correctionLogs.map((log) => log.transactionHash));
62
+ const matches = matchFeeExemptionLogs(settledGrowthLogs, correctionTxHashes, amount);
63
+ return Promise.all(matches.map(async (match) => {
64
+ const block = await publicClient.getBlock({
65
+ blockNumber: match.blockNumber,
66
+ });
67
+ return { ...match, timestamp: block.timestamp };
68
+ }));
69
+ };
70
+ //# sourceMappingURL=fee-exemption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fee-exemption.js","sourceRoot":"","sources":["../../../utils/consolidation/fee-exemption.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,5 @@ export * from './validators-checks.js';
3
3
  export * from './validator-info.js';
4
4
  export * from './logs.js';
5
5
  export * from './confirms.js';
6
+ export * from './fee-exemption.js';
6
7
  export * from './pubkeys.js';
@@ -3,5 +3,6 @@ export * from './validators-checks.js';
3
3
  export * from './validator-info.js';
4
4
  export * from './logs.js';
5
5
  export * from './confirms.js';
6
+ export * from './fee-exemption.js';
6
7
  export * from './pubkeys.js';
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../utils/consolidation/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../utils/consolidation/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC"}
@@ -25,6 +25,7 @@ export const addDummyTargetAndSourceValidator = (targetAndSourceValidators, feeE
25
25
  balance: feeExemption,
26
26
  index: '0',
27
27
  effectiveBalance: feeExemption,
28
+ slashed: false,
28
29
  },
29
30
  sourceValidators: new Map([
30
31
  [
@@ -34,6 +35,7 @@ export const addDummyTargetAndSourceValidator = (targetAndSourceValidators, feeE
34
35
  balance: feeExemption,
35
36
  index: '0',
36
37
  effectiveBalance: feeExemption,
38
+ slashed: false,
37
39
  },
38
40
  ],
39
41
  ]),
@@ -1 +1 @@
1
- {"version":3,"file":"pubkeys.js","sourceRoot":"","sources":["../../../utils/consolidation/pubkeys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAO,UAAU,EAAE,MAAM,MAAM,CAAC;AAInD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,yBAAoD,EACnC,EAAE;IACnB,MAAM,aAAa,GAAG,CAAC,GAAG,yBAAyB,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5D,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAClC,MAAM,SAAS,GAAG,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,mBAAmB,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;aAClD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;aAChC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEZ,OAAO,KAAK,MAAM,EAAE,CAAC;IACvB,CAAC,CAAoB,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wCAAwC,GAAG,CACtD,WAAgB,EAC0B,EAAE;IAC5C,MAAM,gBAAgB,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACjD,MAAM,YAAY,GAAG,UAAU,CAC7B,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CACvD,CAAC;IACF,MAAM,YAAY,GAAG,UAAU,CAC7B,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CACpD,CAAC;IAEF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,yBAAoD,EACpD,YAAoB,EACpB,EAAE;IACF,yBAAyB,CAAC,GAAG,CAC3B,oGAAoG,EACpG;QACE,IAAI,EAAE;YACJ,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,GAAG;YACV,gBAAgB,EAAE,YAAY;SAC/B;QACD,gBAAgB,EAAE,IAAI,GAAG,CAAC;YACxB;gBACE,oGAAoG;gBACpG;oBACE,MAAM,EAAE,gBAAgB;oBACxB,OAAO,EAAE,YAAY;oBACrB,KAAK,EAAE,GAAG;oBACV,gBAAgB,EAAE,YAAY;iBAC/B;aACF;SACF,CAAC;KACH,CACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"pubkeys.js","sourceRoot":"","sources":["../../../utils/consolidation/pubkeys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAO,UAAU,EAAE,MAAM,MAAM,CAAC;AAInD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,yBAAoD,EACnC,EAAE;IACnB,MAAM,aAAa,GAAG,CAAC,GAAG,yBAAyB,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5D,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAClC,MAAM,SAAS,GAAG,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,mBAAmB,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;aAClD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;aAChC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEZ,OAAO,KAAK,MAAM,EAAE,CAAC;IACvB,CAAC,CAAoB,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wCAAwC,GAAG,CACtD,WAAgB,EAC0B,EAAE;IAC5C,MAAM,gBAAgB,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACjD,MAAM,YAAY,GAAG,UAAU,CAC7B,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CACvD,CAAC;IACF,MAAM,YAAY,GAAG,UAAU,CAC7B,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CACpD,CAAC;IAEF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,yBAAoD,EACpD,YAAoB,EACpB,EAAE;IACF,yBAAyB,CAAC,GAAG,CAC3B,oGAAoG,EACpG;QACE,IAAI,EAAE;YACJ,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,GAAG;YACV,gBAAgB,EAAE,YAAY;YAC9B,OAAO,EAAE,KAAK;SACf;QACD,gBAAgB,EAAE,IAAI,GAAG,CAAC;YACxB;gBACE,oGAAoG;gBACpG;oBACE,MAAM,EAAE,gBAAgB;oBACxB,OAAO,EAAE,YAAY;oBACrB,KAAK,EAAE,GAAG;oBACV,gBAAgB,EAAE,YAAY;oBAC9B,OAAO,EAAE,KAAK;iBACf;aACF;SACF,CAAC;KACH,CACF,CAAC;AACJ,CAAC,CAAC"}
@@ -4,6 +4,7 @@ export type ValidatorInfo = {
4
4
  balance: bigint;
5
5
  index: string;
6
6
  effectiveBalance: bigint;
7
+ slashed: boolean;
7
8
  };
8
9
  export type PubkeyMap = Record<Hex, Hex[]>;
9
10
  export type TargetAndSourceValidators = Map<Hex, {
@@ -1,4 +1,5 @@
1
1
  import { Hex } from 'viem';
2
2
  import { ValidatorsInfo } from '../fetch-cl.js';
3
- import { TargetAndSourceValidators } from './types.js';
3
+ import { TargetAndSourceValidators, ValidatorInfo } from './types.js';
4
+ export declare const consolidatedBalance: (info: ValidatorInfo) => bigint;
4
5
  export declare const getTargetAndSourceValidatorsInfo: (targetPubkeys: Hex[], targetValidatorsInfo: ValidatorsInfo, sourcePubkeys: Hex[][], sourceValidatorsInfo: ValidatorsInfo) => TargetAndSourceValidators;
@@ -1,4 +1,8 @@
1
1
  import { parseGwei } from 'viem';
2
+ import { bigIntMin } from '../big-int.js';
3
+ // what process_pending_consolidations moves to the target:
4
+ // min(balance, effective_balance), and nothing at all for a slashed source
5
+ export const consolidatedBalance = (info) => info.slashed ? 0n : bigIntMin(info.balance, info.effectiveBalance);
2
6
  export const getTargetAndSourceValidatorsInfo = (targetPubkeys, targetValidatorsInfo, sourcePubkeys, sourceValidatorsInfo) => {
3
7
  const targetAndSourceValidatorsInfo = new Map();
4
8
  for (const [i, targetPubkey] of targetPubkeys.entries()) {
@@ -12,6 +16,7 @@ export const getTargetAndSourceValidatorsInfo = (targetPubkeys, targetValidators
12
16
  balance: parseGwei(targetValidatorInfo.balance),
13
17
  index: targetValidatorInfo.index,
14
18
  effectiveBalance: parseGwei(targetValidatorInfo.validator.effective_balance),
19
+ slashed: targetValidatorInfo.validator.slashed,
15
20
  },
16
21
  sourceValidators: new Map(),
17
22
  });
@@ -28,6 +33,7 @@ export const getTargetAndSourceValidatorsInfo = (targetPubkeys, targetValidators
28
33
  balance: parseGwei(sourceValidatorInfo.balance),
29
34
  index: sourceValidatorInfo.index,
30
35
  effectiveBalance: parseGwei(sourceValidatorInfo.validator.effective_balance),
36
+ slashed: sourceValidatorInfo.validator.slashed,
31
37
  });
32
38
  }
33
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validator-info.js","sourceRoot":"","sources":["../../../utils/consolidation/validator-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,SAAS,EAAE,MAAM,MAAM,CAAC;AAMtC,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,aAAoB,EACpB,oBAAoC,EACpC,aAAsB,EACtB,oBAAoC,EACT,EAAE;IAC7B,MAAM,6BAA6B,GAA8B,IAAI,GAAG,EAAE,CAAC;IAC3E,KAAK,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;QACxD,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CACxD,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,KAAK,YAAY,CAC3D,CAAC;QACF,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,gCAAgC,YAAY,YAAY,CAAC,CAAC;QAC5E,CAAC;QACD,6BAA6B,CAAC,GAAG,CAAC,YAAY,EAAE;YAC9C,IAAI,EAAE;gBACJ,MAAM,EAAE,mBAAmB,CAAC,MAAM;gBAClC,OAAO,EAAE,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC;gBAC/C,KAAK,EAAE,mBAAmB,CAAC,KAAK;gBAChC,gBAAgB,EAAE,SAAS,CACzB,mBAAmB,CAAC,SAAS,CAAC,iBAAiB,CAChD;aACF;YACD,gBAAgB,EAAE,IAAI,GAAG,EAAE;SAC5B,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClD,KAAK,MAAM,YAAY,IAAI,kBAAkB,EAAE,CAAC;YAC9C,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CACxD,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,KAAK,YAAY,CAC3D,CAAC;YACF,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CACb,gCAAgC,YAAY,YAAY,CACzD,CAAC;YACJ,CAAC;YACD,6BAA6B;iBAC1B,GAAG,CAAC,YAAY,CAAC;gBAClB,EAAE,gBAAgB,CAAC,GAAG,CAAC,YAAY,EAAE;gBACnC,MAAM,EAAE,mBAAmB,CAAC,MAAM;gBAClC,OAAO,EAAE,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC;gBAC/C,KAAK,EAAE,mBAAmB,CAAC,KAAK;gBAChC,gBAAgB,EAAE,SAAS,CACzB,mBAAmB,CAAC,SAAS,CAAC,iBAAiB,CAChD;aACF,CAAC,CAAC;QACP,CAAC;IACH,CAAC;IACD,OAAO,6BAA6B,CAAC;AACvC,CAAC,CAAC"}
1
+ {"version":3,"file":"validator-info.js","sourceRoot":"","sources":["../../../utils/consolidation/validator-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,SAAS,EAAE,MAAM,MAAM,CAAC;AAGtC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI1C,2DAA2D;AAC3D,2EAA2E;AAC3E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAmB,EAAU,EAAE,CACjE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,aAAoB,EACpB,oBAAoC,EACpC,aAAsB,EACtB,oBAAoC,EACT,EAAE;IAC7B,MAAM,6BAA6B,GAA8B,IAAI,GAAG,EAAE,CAAC;IAC3E,KAAK,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;QACxD,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CACxD,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,KAAK,YAAY,CAC3D,CAAC;QACF,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,gCAAgC,YAAY,YAAY,CAAC,CAAC;QAC5E,CAAC;QACD,6BAA6B,CAAC,GAAG,CAAC,YAAY,EAAE;YAC9C,IAAI,EAAE;gBACJ,MAAM,EAAE,mBAAmB,CAAC,MAAM;gBAClC,OAAO,EAAE,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC;gBAC/C,KAAK,EAAE,mBAAmB,CAAC,KAAK;gBAChC,gBAAgB,EAAE,SAAS,CACzB,mBAAmB,CAAC,SAAS,CAAC,iBAAiB,CAChD;gBACD,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,OAAO;aAC/C;YACD,gBAAgB,EAAE,IAAI,GAAG,EAAE;SAC5B,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClD,KAAK,MAAM,YAAY,IAAI,kBAAkB,EAAE,CAAC;YAC9C,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CACxD,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,KAAK,YAAY,CAC3D,CAAC;YACF,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CACb,gCAAgC,YAAY,YAAY,CACzD,CAAC;YACJ,CAAC;YACD,6BAA6B;iBAC1B,GAAG,CAAC,YAAY,CAAC;gBAClB,EAAE,gBAAgB,CAAC,GAAG,CAAC,YAAY,EAAE;gBACnC,MAAM,EAAE,mBAAmB,CAAC,MAAM;gBAClC,OAAO,EAAE,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC;gBAC/C,KAAK,EAAE,mBAAmB,CAAC,KAAK;gBAChC,gBAAgB,EAAE,SAAS,CACzB,mBAAmB,CAAC,SAAS,CAAC,iBAAiB,CAChD;gBACD,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,OAAO;aAC/C,CAAC,CAAC;QACP,CAAC;IACH,CAAC;IACD,OAAO,6BAA6B,CAAC;AACvC,CAAC,CAAC"}
@@ -1,5 +1,10 @@
1
1
  import { CID, Version } from 'multiformats/cid';
2
- export declare const IPFS_GATEWAY = "https://ipfs.io/ipfs";
2
+ export declare const IPFS_GATEWAYS: {
3
+ readonly ipfsIo: "https://ipfs.io/ipfs";
4
+ readonly filebase: "https://ipfs.filebase.io/ipfs";
5
+ readonly pinata: "https://gateway.pinata.cloud/ipfs";
6
+ };
7
+ export declare const IPFS_GATEWAY: string;
3
8
  export declare const DEFAULT_IPFS_MAX_CONTENT_BYTES: number;
4
9
  export type BigNumberType = 'bigint' | 'string';
5
10
  export type ReportFetchArgs = {
@@ -7,7 +7,12 @@ import path from 'node:path';
7
7
  import { logInfo, logTable } from './logging/console.js';
8
8
  import { assertSafeUrl } from './data-validators.js';
9
9
  import { parseEnvInt } from './env.js';
10
- export const IPFS_GATEWAY = 'https://ipfs.io/ipfs';
10
+ export const IPFS_GATEWAYS = {
11
+ ipfsIo: 'https://ipfs.io/ipfs',
12
+ filebase: 'https://ipfs.filebase.io/ipfs',
13
+ pinata: 'https://gateway.pinata.cloud/ipfs',
14
+ };
15
+ export const IPFS_GATEWAY = IPFS_GATEWAYS.ipfsIo;
11
16
  // Max IPFS content size — guards against OOM from an oversized CID.
12
17
  // Override: maxBytes arg > IPFS_MAX_CONTENT_BYTES env > this default.
13
18
  export const DEFAULT_IPFS_MAX_CONTENT_BYTES = 20 * 1024 * 1024;
@@ -72,6 +77,30 @@ const readBodyWithLimit = async (response, maxBytes) => {
72
77
  }
73
78
  return streamBodyWithLimit(response.body, maxBytes);
74
79
  };
80
+ const fetchFromIPFSGateways = async (cid, gateway) => {
81
+ const gateways = [
82
+ ...new Set([gateway, ...Object.values(IPFS_GATEWAYS)].filter(Boolean)),
83
+ ];
84
+ for (const currentGateway of gateways) {
85
+ assertSafeUrl(currentGateway, 'IPFS gateway');
86
+ }
87
+ const errors = [];
88
+ for (const currentGateway of gateways) {
89
+ const ipfsUrl = `${currentGateway}/${cid}`;
90
+ logInfo('Fetching content from', ipfsUrl);
91
+ try {
92
+ const response = await fetch(ipfsUrl);
93
+ if (response.ok)
94
+ return response;
95
+ errors.push(`${ipfsUrl}: ${response.status} ${response.statusText}`);
96
+ }
97
+ catch (error) {
98
+ const message = error instanceof Error ? error.message : String(error);
99
+ errors.push(`${ipfsUrl}: ${message}`);
100
+ }
101
+ }
102
+ throw new Error(`Failed to fetch IPFS content from all gateways: ${errors.join('; ')}`);
103
+ };
75
104
  export const fetchIPFS = async (args, cache = true) => {
76
105
  const { cid, gateway = IPFS_GATEWAY, maxBytes } = args;
77
106
  if (cache)
@@ -81,15 +110,9 @@ export const fetchIPFS = async (args, cache = true) => {
81
110
  };
82
111
  // Fetching content by CID through IPFS gateway
83
112
  export const fetchIPFSDirect = async (args) => {
84
- const { cid, gateway = IPFS_GATEWAY, bigNumberType = 'string' } = args;
85
- assertSafeUrl(gateway, 'IPFS gateway');
113
+ const { cid, gateway, bigNumberType = 'string' } = args;
86
114
  const maxBytes = resolveMaxBytes(args.maxBytes);
87
- const ipfsUrl = `${gateway}/${cid}`;
88
- logInfo('Fetching content from', ipfsUrl);
89
- const response = await fetch(ipfsUrl);
90
- if (!response.ok) {
91
- throw new Error(`Failed to fetch IPFS content: ${response.statusText}`);
92
- }
115
+ const response = await fetchFromIPFSGateways(cid, gateway);
93
116
  const raw = new TextDecoder().decode(await readBodyWithLimit(response, maxBytes));
94
117
  const params = bigNumberType === 'bigint'
95
118
  ? { useNativeBigInt: true }
@@ -99,15 +122,9 @@ export const fetchIPFSDirect = async (args) => {
99
122
  };
100
123
  // Fetching buffer content by CID through IPFS gateway
101
124
  export const fetchIPFSBuffer = async (args) => {
102
- const { cid, gateway = IPFS_GATEWAY } = args;
103
- assertSafeUrl(gateway, 'IPFS gateway');
125
+ const { cid, gateway } = args;
104
126
  const maxBytes = resolveMaxBytes(args.maxBytes);
105
- const ipfsUrl = `${gateway}/${cid}`;
106
- logInfo('Fetching content from', ipfsUrl);
107
- const response = await fetch(ipfsUrl);
108
- if (!response.ok) {
109
- throw new Error(`Failed to fetch IPFS content: ${response.statusText}`);
110
- }
127
+ const response = await fetchFromIPFSGateways(cid, gateway);
111
128
  return readBodyWithLimit(response, maxBytes);
112
129
  };
113
130
  // Recalculate CID using full UnixFS logic (like `ipfs add`)
@@ -1 +1 @@
1
- {"version":3,"file":"ipfs.js","sourceRoot":"","sources":["../../utils/ipfs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAW,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,CAAC,MAAM,YAAY,GAAG,sBAAsB,CAAC;AAEnD,oEAAoE;AACpE,sEAAsE;AACtE,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAU/D,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAElD,sBAAsB;AACtB,MAAM,eAAe,GAAG,CAAC,QAAiB,EAAU,EAAE;IACpD,IACE,OAAO,QAAQ,KAAK,QAAQ;QAC5B,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACzB,QAAQ,GAAG,CAAC,EACZ,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CACb,CAAC,EACD,WAAW,CACT,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAClC,8BAA8B,CAC/B,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,8EAA8E;AAC9E,MAAM,8BAA8B,GAAG,CACrC,QAAkB,EAClB,QAAgB,EACV,EAAE;IACR,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEjE,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,QAAQ,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CACb,2BAA2B,QAAQ,2BAA2B,QAAQ,QAAQ,CAC/E,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,mDAAmD;AACnD,MAAM,YAAY,GAAG,CAAC,MAAoB,EAAE,KAAa,EAAc,EAAE;IACvE,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC;IAC7B,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,6EAA6E;AAC7E,MAAM,mBAAmB,GAAG,KAAK,EAC/B,IAAgC,EAChC,QAAgB,EACK,EAAE;IACvB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAChC,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI;gBAAE,MAAM;YAChB,IAAI,CAAC,KAAK;gBAAE,SAAS;YAErB,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC;YAC1B,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;gBACrB,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,sCAAsC,QAAQ,QAAQ,CAAC,CAAC;YAC1E,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;IACzB,CAAC;IAED,OAAO,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF,uEAAuE;AACvE,4EAA4E;AAC5E,MAAM,iBAAiB,GAAG,KAAK,EAC7B,QAAkB,EAClB,QAAgB,EACK,EAAE;IACvB,8BAA8B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAEnD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,IAAqB,EACrB,KAAK,GAAG,IAAI,EACA,EAAE;IACd,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,YAAY,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAEvD,IAAI,KAAK;QAAE,OAAO,2BAA2B,CAAI,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAEzE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,wBAAwB,CAAI,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3E,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,+CAA+C;AAC/C,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAK,IAAqB,EAAc,EAAE;IAC5E,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,YAAY,EAAE,aAAa,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC;IACvE,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,GAAG,OAAO,IAAI,GAAG,EAAE,CAAC;IAEpC,OAAO,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IAE1C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAClC,MAAM,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAC5C,CAAC;IACF,MAAM,MAAM,GACV,aAAa,KAAK,QAAQ;QACxB,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE;QAC3B,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE7C,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,sDAAsD;AACtD,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,IAAqB,EACA,EAAE;IACvB,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,YAAY,EAAE,GAAG,IAAI,CAAC;IAC7C,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,GAAG,OAAO,IAAI,GAAG,EAAE,CAAC;IACpC,OAAO,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IAE1C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,4DAA4D;AAC5D,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,WAAuB,EACvB,UAAmB,CAAC,EACN,EAAE;IAChB,MAAM,UAAU,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAE1C,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE;QAC/D,UAAU,EAAE,OAAO;QACnB,sCAAsC;QACtC,SAAS,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;KAC7C,CAAC,CAAC;IAEH,IAAI,OAAO,GAAe,IAAI,CAAC;IAC/B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAClC,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC;IACtB,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,wDAAwD;AACxD,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAC3C,GAAW,EACX,OAAO,GAAG,YAAY,EACtB,QAAiB,EAC8B,EAAE;IACjD,IAAI,WAAgB,CAAC;IACrB,IAAI,CAAC;QACH,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAC7C,WAAW,EACX,WAAW,CAAC,OAAO,CACpB,CAAC;IAEF,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,kCAAkC,WAAW,aAAa,aAAa,EAAE,CAC1E,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC;QACP,IAAI,EAAE;YACJ,CAAC,wCAAwC,CAAC;YAC1C,CAAC,gBAAgB,WAAW,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC/D,CAAC,kBAAkB,aAAa,CAAC,OAAO,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC;SACtE;QACD,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;SACtB;KACF,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAM,CAAC;IACpE,OAAO;QACL,WAAW;QACX,IAAI;KACL,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,EAC9C,GAAW,EACX,OAAO,GAAG,YAAY,EACtB,QAAiB,EACL,EAAE;IACd,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC;IAE3D,IAAI,CAAC;QACH,OAAO,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,gCAAgC;QAChC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,wBAAwB,CAAI,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC3E,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAUF,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,EAC9B,WAAW,EACX,QAAQ,GAAG,WAAW,EACtB,mBAAmB,EACnB,SAAS,GACK,EAAgB,EAAE;IAChC,aAAa,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE;QACtC,IAAI,EAAE,kBAAkB;KACzB,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE9B,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE;QAC3C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,GAAG,CAAC,mBAAmB;gBACrB,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,mBAAmB,EAAE,EAAE;gBACpD,CAAC,CAAC,EAAE,CAAC;SACR;QAED,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;IAEH,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,4DAA4D,SAAS,aAAa,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,UAAU,EAAE,CACrI,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;IAChD,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC"}
1
+ {"version":3,"file":"ipfs.js","sourceRoot":"","sources":["../../utils/ipfs.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,5 @@ export declare const SupportedFork: {
3
3
  deneb: string;
4
4
  electra: string;
5
5
  fulu: string;
6
+ gloas: string;
6
7
  };
@@ -3,5 +3,6 @@ export const SupportedFork = {
3
3
  deneb: 'deneb',
4
4
  electra: 'electra',
5
5
  fulu: 'fulu',
6
+ gloas: 'gloas',
6
7
  };
7
8
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../utils/proof/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;CACb,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../utils/proof/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;CACf,CAAC"}
@@ -1,25 +1,39 @@
1
1
  import { ssz } from '@lodestar/types';
2
+ import { ListCompositeType, ProgressiveListCompositeType, } from '@chainsafe/ssz';
2
3
  import { logResult } from '../index.js';
4
+ // Verifier constructor arg each gindex feeds, see CLProofVerifier.sol
5
+ const PRE_GLOAS_PARAM = 'gIFirstValidatorPreGloas';
6
+ const GLOAS_PARAM = 'gIValidators';
3
7
  export const getFirstValidatorGIndex = (forks) => {
4
- const gIndexes = {};
5
- for (const fork of forks) {
8
+ const rows = forks.map((fork) => {
6
9
  const Fork = ssz[fork];
7
- const Validators = Fork.BeaconState.getPathInfo(['validators']).type;
8
- const gI = pack(Fork.BeaconState.getPathInfo(['validators', 0]).gindex,
9
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
10
- // @ts-ignore
11
- Validators.limit);
12
- gIndexes[fork] = toBytes32String(gI);
13
- }
10
+ if (!Fork)
11
+ throw new Error(`Fork name [${fork}] is not supported`);
12
+ const validators = Fork.BeaconState.getPathInfo(['validators']);
13
+ // Gloas: the list is progressive, so it has no fixed depth to pack. The
14
+ // verifier takes the validators field itself and derives each node.
15
+ if (validators.type instanceof ProgressiveListCompositeType) {
16
+ return [fork, toBytes32String(pack(validators.gindex, 0n)), GLOAS_PARAM];
17
+ }
18
+ if (!(validators.type instanceof ListCompositeType)) {
19
+ throw new TypeError(`Unexpected validators type for fork [${fork}]`);
20
+ }
21
+ const gI = Fork.BeaconState.getPathInfo(['validators', 0]).gindex;
22
+ return [
23
+ fork,
24
+ toBytes32String(pack(gI, widthOf(validators.type.limit))),
25
+ PRE_GLOAS_PARAM,
26
+ ];
27
+ });
14
28
  logResult({
15
- data: Object.entries(gIndexes).map(([fork, gIndex]) => [fork, gIndex]),
29
+ data: rows,
16
30
  params: {
17
- head: ['Fork', 'GIndex'],
31
+ head: ['Fork', 'GIndex', 'Deploy param'],
18
32
  },
19
33
  });
20
34
  };
21
- const pack = (gI, limit) => {
22
- const width = limit ? BigInt(Math.log2(limit)) : 0n;
35
+ const widthOf = (limit) => (limit ? BigInt(Math.log2(limit)) : 0n);
36
+ const pack = (gI, width) => {
23
37
  return (gI << 8n) | width;
24
38
  };
25
39
  const toBytes32String = (gI) => {
@@ -1 +1 @@
1
- {"version":3,"file":"first-validator-gindex.js","sourceRoot":"","sources":["../../../utils/proof/first-validator-gindex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIlC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAe,EAAE,EAAE;IACzD,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAkC,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QAErE,MAAM,EAAE,GAAG,IAAI,CACb,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM;QACtD,6DAA6D;QAC7D,aAAa;QACb,UAAU,CAAC,KAAK,CACjB,CAAC;QACF,QAAQ,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,SAAS,CAAC;QACR,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtE,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;SACzB;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,KAAa,EAAE,EAAE;IACzC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,EAAU,EAAE,EAAE;IACrC,OAAO,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;AAClD,CAAC,CAAC"}
1
+ {"version":3,"file":"first-validator-gindex.js","sourceRoot":"","sources":["../../../utils/proof/first-validator-gindex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EACL,iBAAiB,EACjB,4BAA4B,GAC7B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIlC,sEAAsE;AACtE,MAAM,eAAe,GAAG,0BAA0B,CAAC;AACnD,MAAM,WAAW,GAAG,cAAc,CAAC;AAEnC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAe,EAAE,EAAE;IACzD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAkC,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,oBAAoB,CAAC,CAAC;QAEnE,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;QAEhE,wEAAwE;QACxE,oEAAoE;QACpE,IAAI,UAAU,CAAC,IAAI,YAAY,4BAA4B,EAAE,CAAC;YAC5D,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,YAAY,iBAAiB,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,SAAS,CAAC,wCAAwC,IAAI,GAAG,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAClE,OAAO;YACL,IAAI;YACJ,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACzD,eAAe;SAChB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC;QACR,IAAI,EAAE,IAAI;QACV,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,CAAC;SACzC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAE3E,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,KAAa,EAAE,EAAE;IACzC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,EAAU,EAAE,EAAE;IACrC,OAAO,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;AAClD,CAAC,CAAC"}
@@ -6,7 +6,7 @@ import { SupportedFork } from './constants.js';
6
6
  export type SupportedStateView = {
7
7
  [K in keyof typeof SupportedFork]: ContainerTreeViewType<(typeof ssz)[K]['BeaconState']['fields']>;
8
8
  }[keyof typeof SupportedFork];
9
- type Validator = ReturnType<SupportedStateView['validators']['getReadonly']>;
9
+ type Validator = ReturnType<SupportedStateView['validators']['get']>;
10
10
  export type BeaconHeaderResponse = {
11
11
  slot: number;
12
12
  proposer_index: number;
@@ -20,7 +20,7 @@ export const createStateProof = async (validatorIndex, bodyBytes, forkName) => {
20
20
  const stateView = ssz[forkName].BeaconState.deserializeToView(new Uint8Array(bodyBytes));
21
21
  if (validatorIndex >= stateView.validators.length)
22
22
  throw new Error(`ValidatorIndex ${validatorIndex} out of range`);
23
- const validator = stateView.validators.getReadonly(Number(validatorIndex));
23
+ const validator = stateView.validators.get(Number(validatorIndex));
24
24
  const gIValidator = stateView.type.getPathInfo([
25
25
  'validators',
26
26
  Number(validatorIndex),
@@ -1 +1 @@
1
- {"version":3,"file":"proofs.js","sourceRoot":"","sources":["../../../utils/proof/proofs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proofs.js","sourceRoot":"","sources":["../../../utils/proof/proofs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export const version = 'v1.9.0'
1
+ export const version = 'v1.10.0-alpha.1'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lidofinance/lsv-cli",
3
- "version": "1.9.0",
3
+ "version": "1.10.0-alpha.1",
4
4
  "main": "dist/index.js",
5
5
  "files": [
6
6
  "dist"
@@ -36,9 +36,9 @@
36
36
  },
37
37
  "dependencies": {
38
38
  "@chainsafe/blst": "^2.2.0",
39
- "@chainsafe/persistent-merkle-tree": "^1.0.1",
40
- "@chainsafe/ssz": "^1.2.2",
41
- "@lodestar/types": "^1.35.0",
39
+ "@chainsafe/persistent-merkle-tree": "^1.3.0",
40
+ "@chainsafe/ssz": "^1.6.2",
41
+ "@lodestar/types": "^1.46.0",
42
42
  "@openzeppelin/merkle-tree": "^1.0.8",
43
43
  "@walletconnect/sign-client": "^2.22.3",
44
44
  "blessed": "^0.1.81",
@@ -60,16 +60,16 @@
60
60
  "viem": "^2.55.10"
61
61
  },
62
62
  "devDependencies": {
63
- "@commitlint/cli": "^20.5.0",
64
- "@commitlint/config-conventional": "^17.4.4",
65
- "@commitlint/prompt": "^19.8.1",
63
+ "@commitlint/cli": "^21.2.2",
64
+ "@commitlint/config-conventional": "^21.2.2",
65
+ "@commitlint/prompt": "^21.2.2",
66
66
  "@swc/core": "^1.11.21",
67
67
  "@types/blessed": "^0.1.25",
68
68
  "@types/cli-progress": "^3.11.6",
69
69
  "@types/fs-extra": "^11.0.4",
70
70
  "@types/json-bigint": "^1.0.4",
71
71
  "@types/log-update": "^3.1.0",
72
- "@types/node": "^22.14.1",
72
+ "@types/node": "^24.13.3",
73
73
  "@types/prompts": "^2.4.9",
74
74
  "@types/qrcode-terminal": "^0.12.2",
75
75
  "@viem/anvil": "^0.0.10",
@@ -99,7 +99,11 @@
99
99
  "tar": "^7.5.8",
100
100
  "@scure/bip32": "1.7.0",
101
101
  "lodash": "4.18.1",
102
- "uuid": "14.0.0"
102
+ "uuid": "14.0.0",
103
+ "browserslist": "^4.28.7",
104
+ "fast-uri": "^3.1.6",
105
+ "js-yaml": "^4.3.1",
106
+ "@humanfs/node": "^0.16.8"
103
107
  },
104
108
  "lint-staged": {
105
109
  "{!(docs)/**/*.{ts,tsx},*.{ts,tsx}}": [