get_entropy_registration.ts 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import yargs from "yargs";
  2. import { hideBin } from "yargs/helpers";
  3. import { DefaultStore } from "../src";
  4. function deserializeCommitmentMetadata(data: Buffer) {
  5. const seed = Uint8Array.from(data.subarray(0, 32));
  6. const chainLength = data.readBigInt64LE(32);
  7. return {
  8. seed,
  9. chainLength,
  10. };
  11. }
  12. const parser = yargs(hideBin(process.argv))
  13. .usage("Usage: $0")
  14. .options({
  15. testnet: {
  16. type: "boolean",
  17. default: false,
  18. desc: "Fetch the provider registration data for the testnet contracts.",
  19. },
  20. });
  21. async function main() {
  22. const argv = await parser.argv;
  23. for (const contract of Object.values(DefaultStore.entropy_contracts)) {
  24. if (contract.getChain().isMainnet() === argv.testnet) continue;
  25. let provider;
  26. let providerInfo;
  27. try {
  28. provider = await contract.getDefaultProvider();
  29. providerInfo = await contract.getProviderInfo(provider);
  30. } catch (e) {
  31. console.error(`Error fetching info for ${contract.getId()}`, e);
  32. continue;
  33. }
  34. const commitmentMetadata = providerInfo.commitmentMetadata.replace(
  35. "0x",
  36. ""
  37. );
  38. // const binaryData = hexToBytes(commitmentMetadata);
  39. const metadata = deserializeCommitmentMetadata(
  40. Buffer.from(commitmentMetadata, "hex")
  41. );
  42. console.log("=".repeat(100));
  43. console.log(`Fetched info for ${contract.getId()}`);
  44. console.log(`chain : ${contract.getChain().getId()}`);
  45. console.log(`contract : ${contract.address}`);
  46. console.log(`provider : ${provider}`);
  47. console.log(`commitment data : ${commitmentMetadata}`);
  48. console.log(`chainLength : ${metadata.chainLength}`);
  49. console.log(`seed : [${metadata.seed}]`);
  50. console.log(
  51. `original seq no : ${providerInfo.originalCommitmentSequenceNumber}`
  52. );
  53. }
  54. }
  55. main();