Selaa lähdekoodia

feat(entropy-tester): accept custom endpoint (#2814)

* feat(entropy-tester): accept custom endpoint
Amin Moghaddam 4 kuukautta sitten
vanhempi
sitoutus
c5dacaec86

+ 2 - 1
apps/entropy-tester/config.sample.json

@@ -9,6 +9,7 @@
   },
   {
     "chain-id": "blast",
-    "interval": "10m"
+    "interval": "10m",
+    "rpc-endpoint": "https://rpc.blast.io"
   }
 ]

+ 1 - 1
apps/entropy-tester/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@pythnetwork/entropy-tester",
-  "version": "1.0.2",
+  "version": "1.1.0",
   "description": "Utility to test entropy provider callbacks",
   "private": true,
   "type": "module",

+ 12 - 0
apps/entropy-tester/src/index.ts

@@ -2,6 +2,7 @@ import fs from "node:fs/promises";
 
 import type { PrivateKey } from "@pythnetwork/contract-manager/core/base";
 import { toPrivateKey } from "@pythnetwork/contract-manager/core/base";
+import { EvmChain } from "@pythnetwork/contract-manager/core/chains";
 import { EvmEntropyContract } from "@pythnetwork/contract-manager/core/contracts/evm";
 import { DefaultStore } from "@pythnetwork/contract-manager/node/store";
 import type { Logger } from "pino";
@@ -44,6 +45,7 @@ async function loadConfig(configPath: string): Promise<LoadedConfig[]> {
     z.strictObject({
       "chain-id": z.string(),
       interval: z.string(),
+      "rpc-endpoint": z.string().optional(),
     }),
   );
   const configContent = (await import(configPath, {
@@ -66,6 +68,16 @@ async function loadConfig(configPath: string): Promise<LoadedConfig[]> {
         `Multiple contracts found for chain ${config["chain-id"]}, check contract manager store.`,
       );
     }
+    if (config["rpc-endpoint"]) {
+      const evmChain = firstContract.chain;
+      firstContract.chain = new EvmChain(
+        evmChain.getId(),
+        evmChain.isMainnet(),
+        evmChain.getNativeToken(),
+        config["rpc-endpoint"],
+        evmChain.networkId,
+      );
+    }
     return { contract: firstContract, interval };
   });
   return loadedConfigs;

+ 2 - 2
contract_manager/src/core/chains.ts

@@ -429,8 +429,8 @@ export class EvmChain extends Chain {
     id: string,
     mainnet: boolean,
     nativeToken: TokenId | undefined,
-    private rpcUrl: string,
-    private networkId: number,
+    public rpcUrl: string,
+    public networkId: number,
   ) {
     // On EVM networks we use the chain id as the wormhole chain name
     super(id, mainnet, id, nativeToken);