Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions packages/scripts/build-wasm.sh
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ esac
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PACKAGE_DIR="$(dirname "$SCRIPT_DIR")/$PACKAGE_NAME"
REPO_ROOT="$(dirname "$(dirname "$SCRIPT_DIR")")"
CARGO_OUT_DIR="${CARGO_TARGET_DIR:-$REPO_ROOT/target}"

# --- Pre-flight: verify wasm-bindgen-cli version matches the crate dependency ---
REQUIRED_WB_VERSION=$(awk '/^name = "wasm-bindgen"$/{getline; print}' "$REPO_ROOT/Cargo.lock" | head -1 | sed 's/version = "//;s/"//')
Expand Down Expand Up @@ -178,8 +179,8 @@ else

# Run wasm-snip if available
if command -v wasm-snip &> /dev/null; then
wasm-snip "../../target/wasm32-unknown-unknown/release/${PACKAGE_NAME//-/_}.wasm" \
-o "../../target/wasm32-unknown-unknown/release/${PACKAGE_NAME//-/_}.wasm" \
wasm-snip "$CARGO_OUT_DIR/wasm32-unknown-unknown/release/${PACKAGE_NAME//-/_}.wasm" \
-o "$CARGO_OUT_DIR/wasm32-unknown-unknown/release/${PACKAGE_NAME//-/_}.wasm" \
--snip-rust-fmt-code \
--snip-rust-panicking-code
fi
Expand All @@ -196,7 +197,7 @@ else
--out-dir=pkg \
--target="$TARGET_TYPE" \
--omit-default-module-path \
"../../target/wasm32-unknown-unknown/release/${PACKAGE_NAME//-/_}.wasm"
"$CARGO_OUT_DIR/wasm32-unknown-unknown/release/${PACKAGE_NAME//-/_}.wasm"
fi

# Optimize the WASM file
Expand Down
4 changes: 3 additions & 1 deletion packages/wasm-dpp/scripts/build-wasm.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,10 @@ fi
OUTPUT_DIR="${PWD}/wasm"
# shellcheck disable=SC2034
OUTPUT_FILE="${OUTPUT_DIR}/wasm_dpp_bg.wasm"
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && pwd)"
CARGO_OUT_DIR="${CARGO_TARGET_DIR:-$REPO_ROOT/target}"
BUILD_COMMAND="cargo build --config net.git-fetch-with-cli=true --target=${TARGET} ${PROFILE_ARG}"
BINDGEN_COMMAND="wasm-bindgen --out-dir=${OUTPUT_DIR} --target=web --omit-default-module-path ../../target/${TARGET}/${PROFILE}/wasm_dpp.wasm"
BINDGEN_COMMAND="wasm-bindgen --out-dir=${OUTPUT_DIR} --target=web --omit-default-module-path ${CARGO_OUT_DIR}/${TARGET}/${PROFILE}/wasm_dpp.wasm"

if ! [[ -d ${OUTPUT_DIR} ]]; then
mkdir -p "${OUTPUT_DIR}"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ set -euo pipefail
# Always run from the package root
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$SCRIPT_DIR"
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && pwd)"
CARGO_OUT_DIR="${CARGO_TARGET_DIR:-$REPO_ROOT/target}"

echo "=== Module Combination Analysis ==="
echo "Building different feature combinations to analyze bundle sizes..."
Expand Down Expand Up @@ -57,7 +59,7 @@ build_combination() {
local out_dir="${RESULTS_DIR}/${name}"
mkdir -p "${out_dir}"

wasm-bindgen ../../target/wasm32-unknown-unknown/release/wasm_drive_verify.wasm \
wasm-bindgen "$CARGO_OUT_DIR/wasm32-unknown-unknown/release/wasm_drive_verify.wasm" \
--out-dir "${out_dir}" \
--target web \
--out-name "bundle" > /dev/null 2>&1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ set -euo pipefail
# Always run from the package root
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$SCRIPT_DIR"
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && pwd)"
CARGO_OUT_DIR="${CARGO_TARGET_DIR:-$REPO_ROOT/target}"

echo "Building separate WASM modules for wasm-drive-verify..."

Expand All @@ -29,7 +31,7 @@ build_module() {
mkdir -p "${out_dir}"

# Run wasm-bindgen
wasm-bindgen ../../target/wasm32-unknown-unknown/release/wasm_drive_verify.wasm \
wasm-bindgen "$CARGO_OUT_DIR/wasm32-unknown-unknown/release/wasm_drive_verify.wasm" \
--out-dir "${out_dir}" \
--target web \
--out-name "wasm_drive_verify_${module_name}"
Expand Down
4 changes: 3 additions & 1 deletion packages/wasm-drive-verify/scripts/build-wasm.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,10 @@ fi
OUTPUT_DIR="${PWD}/wasm"
# shellcheck disable=SC2034
OUTPUT_FILE="${OUTPUT_DIR}/wasm_drive_verify_bg.wasm"
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && pwd)"
CARGO_OUT_DIR="${CARGO_TARGET_DIR:-$REPO_ROOT/target}"
BUILD_COMMAND="cargo build --config net.git-fetch-with-cli=true --target=${TARGET} ${PROFILE_ARG}"
BINDGEN_COMMAND="wasm-bindgen --out-dir=${OUTPUT_DIR} --target=web --omit-default-module-path ../../target/${TARGET}/${PROFILE}/wasm_drive_verify.wasm"
BINDGEN_COMMAND="wasm-bindgen --out-dir=${OUTPUT_DIR} --target=web --omit-default-module-path ${CARGO_OUT_DIR}/${TARGET}/${PROFILE}/wasm_drive_verify.wasm"
Comment on lines +19 to +22
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Quote CARGO_OUT_DIR to avoid word-splitting. If CARGO_TARGET_DIR contains spaces, the current string-based command will break. Consider using an array.

🛠️ Suggested fix
-BINDGEN_COMMAND="wasm-bindgen --out-dir=${OUTPUT_DIR} --target=web --omit-default-module-path ${CARGO_OUT_DIR}/${TARGET}/${PROFILE}/wasm_drive_verify.wasm"
+BINDGEN_COMMAND=(wasm-bindgen --out-dir="${OUTPUT_DIR}" --target=web --omit-default-module-path "${CARGO_OUT_DIR}/${TARGET}/${PROFILE}/wasm_drive_verify.wasm")
@@
-  AR=${AR_PATH} CC=${CLANG_PATH} ${BINDGEN_COMMAND}
+  AR=${AR_PATH} CC=${CLANG_PATH} "${BINDGEN_COMMAND[@]}"
@@
-  ${BINDGEN_COMMAND}
+  "${BINDGEN_COMMAND[@]}"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/wasm-drive-verify/scripts/build-wasm.sh` around lines 19 - 22, The
BUILD_COMMAND and BINDGEN_COMMAND strings use unquoted CARGO_OUT_DIR (and other
vars) which will break if CARGO_TARGET_DIR contains spaces; change these to
build command arrays or ensure each variable is properly quoted/expanded when
constructing/executing the command (update BUILD_COMMAND and BINDGEN_COMMAND
usage to use arrays or wrap
"${CARGO_OUT_DIR}/${TARGET}/${PROFILE}/wasm_drive_verify.wasm" and other
variables in quotes) so word-splitting is avoided when running the commands.


if ! [[ -d ${OUTPUT_DIR} ]]; then
mkdir -p "${OUTPUT_DIR}"
Expand Down
4 changes: 3 additions & 1 deletion packages/wasm-drive-verify/scripts/quick-size-check.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$SCRIPT_DIR"
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && pwd)"
CARGO_OUT_DIR="${CARGO_TARGET_DIR:-$REPO_ROOT/target}"

echo "=== Quick Module Size Check ==="
echo
Expand Down Expand Up @@ -53,7 +55,7 @@ for name in "${!COMBOS[@]}"; do
OUT_DIR="$TEMP_DIR/$name"
mkdir -p "$OUT_DIR"

if wasm-bindgen ../../target/wasm32-unknown-unknown/release/wasm_drive_verify.wasm \
if wasm-bindgen "$CARGO_OUT_DIR/wasm32-unknown-unknown/release/wasm_drive_verify.wasm" \
--out-dir "$OUT_DIR" \
--target web \
--out-name bundle >/dev/null 2>&1; then
Expand Down
Loading