diff --git a/packages/snap/README.md b/packages/snap/README.md index 5c1d9b1..c6e0556 100644 --- a/packages/snap/README.md +++ b/packages/snap/README.md @@ -30,12 +30,17 @@ For local development, you need to add `http://localhost:3000` to the `allowedOr - **`yarn build`** - Standard build for production (only allows production origins) - **`yarn build:local`** - Build for local development (automatically adds localhost:3000 to allowedOrigins) +- **`yarn build:prePublish`** - Pre-publish build that ensures `allowedOrigins` is reset to `["https://webzjs.chainsafe.dev"]` and then runs `mm-snap build` The `build:local` script will: 1. Create a backup of the original `snap.manifest.json` 2. Modify the manifest to include `http://localhost:3000` in allowedOrigins 3. Run the build process +The `build:prePublish` script will: +1. Overwrite `allowedOrigins` in `snap.manifest.json` to only `["https://webzjs.chainsafe.dev"]` +2. Run the production build via `mm-snap build` + ### Development Steps 1. Install dependencies with `yarn install` diff --git a/packages/snap/build_prePublish.sh b/packages/snap/build_prePublish.sh new file mode 100644 index 0000000..5950498 --- /dev/null +++ b/packages/snap/build_prePublish.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# Ensure allowedOrigins only contains the production URL, then build the snap. + +set -euo pipefail + +MANIFEST_FILE="snap.manifest.json" + +echo "Ensuring allowedOrigins only contains https://webzjs.chainsafe.dev..." + +jq '.initialPermissions."endowment:rpc".allowedOrigins = ["https://webzjs.chainsafe.dev"]' "$MANIFEST_FILE" > "$MANIFEST_FILE.tmp" +mv "$MANIFEST_FILE.tmp" "$MANIFEST_FILE" + +echo "Running mm-snap build..." +mm-snap build + +echo "build_prePublish completed." + + diff --git a/packages/snap/package.json b/packages/snap/package.json index 959297c..a99690e 100644 --- a/packages/snap/package.json +++ b/packages/snap/package.json @@ -17,6 +17,7 @@ "allow-scripts": "yarn workspace root allow-scripts", "build": "mm-snap build", "build:clean": "yarn clean && yarn build", + "build:prePublish": "bash ./build_prePublish.sh", "build:local": "./build_local.sh", "clean": "rimraf dist", "lint": "eslint --color --ext .ts src/", diff --git a/packages/snap/snap.manifest.json b/packages/snap/snap.manifest.json index 4689441..be58df2 100644 --- a/packages/snap/snap.manifest.json +++ b/packages/snap/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/ChainSafe/WebZjs.git" }, "source": { - "shasum": "m7tPwL0uBJEK4GoRksJUBkDixneKcyYOY8oxoZGmY5k=", + "shasum": "wTPZl0jiwxyFr3cUhss5/b0WjFGdZP9y/VIPafGtDAM=", "location": { "npm": { "filePath": "dist/bundle.js", @@ -22,7 +22,9 @@ "endowment:lifecycle-hooks": {}, "endowment:webassembly": {}, "endowment:rpc": { - "allowedOrigins": ["https://webzjs.chainsafe.dev"] + "allowedOrigins": [ + "https://webzjs.chainsafe.dev" + ] }, "snap_getBip44Entropy": [ {