UNPKG

@biconomy/ecosystem

Version:

Testing infrastructure for abstractjs with ephemeral networks

1 lines 5.22 kB
{"version":3,"sources":["../../src/scripts/duplicate-chain.ts"],"names":["arg"],"mappings":"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","file":"duplicate-chain.mjs","sourcesContent":["import fs from \"node:fs\"\nimport path from \"node:path\"\nimport { argv, exit } from \"node:process\"\n\nconst getArgValue = (argName: string): string | null => {\n const args = argv\n const arg = args.find((arg) => arg.startsWith(`--${argName}=`))\n if (arg) {\n return arg.split(\"=\")[1]\n }\n return null\n}\n\nconst newChainIdString = getArgValue(\"chainId\")\nconst templateDir = getArgValue(\"templateDir\")\nconst outputDir = getArgValue(\"outputDir\")\n\nif (!newChainIdString) {\n console.error(\n \"Error: --chainId argument is missing. Please provide it like --chainId=12345\"\n )\n exit(1)\n}\n\nif (!templateDir) {\n console.error(\n \"Error: --templateDir argument is missing. Please provide it like --templateDir=/path/to/templates\"\n )\n exit(1)\n}\n\nif (!outputDir) {\n console.error(\n \"Error: --outputDir argument is missing. Please provide it like --outputDir=/path/to/output\"\n )\n exit(1)\n}\n\nconst newChainIdNum = Number.parseInt(newChainIdString, 10)\nif (Number.isNaN(newChainIdNum)) {\n console.error(\"Error: --chainId must be a number.\")\n exit(1)\n}\n\n// At this point we know these are strings because we checked above\nconst sourceFilePath = path.join(templateDir, \"84532.json\")\nconst targetFilePath = path.join(outputDir, `${newChainIdString}.json`)\n\nasync function main() {\n try {\n // Ensure output directory exists - we know outputDir is a string at this point\n await fs.promises.mkdir(outputDir as string, { recursive: true })\n\n const sourceContent = await fs.promises.readFile(sourceFilePath, \"utf-8\")\n const chainConfig = JSON.parse(sourceContent)\n\n const originalRpcFromTemplate = chainConfig.rpc\n\n chainConfig.name = newChainIdString\n chainConfig.chainId = newChainIdString\n\n const placeholderRpc = \"<YOUR RPC URL (debug_traceCall enabled)>\"\n if (chainConfig.rpc === placeholderRpc) {\n chainConfig.rpc = `http://host.docker.internal:${newChainIdString}`\n }\n\n const newJsonContent = JSON.stringify(chainConfig, null, 4)\n\n await fs.promises.writeFile(targetFilePath, newJsonContent)\n\n console.log(\n `Successfully duplicated and updated chain config to ${targetFilePath}`\n )\n if (originalRpcFromTemplate !== chainConfig.rpc) {\n console.log(\n `RPC in new file: ${chainConfig.rpc} (changed from: ${originalRpcFromTemplate})`\n )\n } else {\n console.log(\n `RPC in new file: ${chainConfig.rpc} (unchanged from template)`\n )\n }\n } catch (error) {\n if (error instanceof Error) {\n console.error(`An error occurred: ${error.message}`)\n } else {\n console.error(\"An unknown error occurred.\")\n }\n exit(1)\n }\n}\n\nmain()\n"]}