From f2f1247098d5dbe1ffc968e517a3e3b3a42ce132 Mon Sep 17 00:00:00 2001 From: friedger Date: Sat, 16 Mar 2024 13:26:12 +0100 Subject: [PATCH] chore: add replace address script --- package.json | 22 ++++++++++++++-------- scripts/replace-address.ts | 26 ++++++++++++++++++++++++++ scripts/replace-mainnet-address.ts | 3 +++ scripts/replace-testnet-address.ts | 3 +++ 4 files changed, 46 insertions(+), 8 deletions(-) create mode 100644 scripts/replace-address.ts create mode 100644 scripts/replace-mainnet-address.ts create mode 100644 scripts/replace-testnet-address.ts diff --git a/package.json b/package.json index f351c10..d26eda0 100644 --- a/package.json +++ b/package.json @@ -12,22 +12,28 @@ "multisig-analyse": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./scripts/analyse-multisig-deployment-plan.ts", "get-keys": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./scripts/get-secret-pubkeys.ts", "generate-secret": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./scripts/generate-secret.ts", + "replace:mainnet": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./scripts/replace-mainnet-address.ts", + "replace:testnet": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./scripts/replace-testnet-address.ts", "setup:clarity": "./scripts/clarinet_manager.sh clean && ./scripts/clarinet_manager.sh install", - "test": "vitest run", - "test:report": "vitest run -- --coverage --costs", - "test:watch": "chokidar \"tests/**/*.ts\" \"contracts/**/*.clar\" -c \"npm run test:report\"" + "test": "npm run replace:mainnet && vitest run && npm run replace:testnet", + "test:report": "npm run replace:testnet && vitest run -- --coverage --costs && npm run replace:testnet", + "test:watch": "chokidar \"tests/**/*.ts\" \"contracts/**/*.clar\" -c \"npm run test:report\"", + "generate:report": "genhtml --branch-coverage -o coverage lcov.info" }, "author": "", "license": "BSL", + "prettier": "@stacks/prettier-config", "dependencies": { - "@hirosystems/clarinet-sdk": "^1.0.0", + "@hirosystems/clarinet-sdk": "2.4.0-beta2", + "@stacks/stacking": "6.11.4-pr.36558cf.0", + "@stacks/prettier-config": "^0.0.10", "@stacks/transactions": "^6.9.0", "chokidar-cli": "^3.0.0", "ts-node": "^10.9.2", "typescript": "^5.2.2", - "vite": "^4.4.9", - "vitest": "^0.34.4", - "vitest-environment-clarinet": "^1.0.0", + "vite": "^5.1.4", + "vitest": "^1.3.1", + "vitest-environment-clarinet": "^2.0.0", "yaml": "^2.4.1" } -} \ No newline at end of file +} diff --git a/scripts/replace-address.ts b/scripts/replace-address.ts new file mode 100644 index 0000000..d7c42d3 --- /dev/null +++ b/scripts/replace-address.ts @@ -0,0 +1,26 @@ +import { readdirSync, readFileSync, writeFileSync, lstatSync } from 'fs'; + +export function replaceAddress(mainnetToTestnet: boolean) { + replaceInDir('./.cache', mainnetToTestnet); + replaceInDir('./contracts', mainnetToTestnet); +} + +function replaceInDir(path: string, mainnetToTestnet: boolean) { + for (let filename of readdirSync(path)) { + const file = `${path}/${filename}`; + if (lstatSync(file).isDirectory()) { + replaceInDir(file, mainnetToTestnet); + } else { + replaceAddressInFile(file, mainnetToTestnet); + } + } +} +function replaceAddressInFile(file: string, mainnetToTestnet: boolean) { + const content = readFileSync(file).toString(); + const newContent = mainnetToTestnet + ? content.replace(/SP000000000000000000002Q6VF78/g, 'ST000000000000000000002AMW42H') + : content.replace(/ST000000000000000000002AMW42H/g, 'SP000000000000000000002Q6VF78'); + if (content !== newContent) { + writeFileSync(file, newContent); + } +} diff --git a/scripts/replace-mainnet-address.ts b/scripts/replace-mainnet-address.ts new file mode 100644 index 0000000..69ef1ca --- /dev/null +++ b/scripts/replace-mainnet-address.ts @@ -0,0 +1,3 @@ +import { replaceAddress } from './replace-address.ts'; + +replaceAddress(true); diff --git a/scripts/replace-testnet-address.ts b/scripts/replace-testnet-address.ts new file mode 100644 index 0000000..68de17f --- /dev/null +++ b/scripts/replace-testnet-address.ts @@ -0,0 +1,3 @@ +import { replaceAddress } from './replace-address.ts'; + +replaceAddress(false);