Files
contract/bin/build_force.sh

20 lines
772 B
Bash
Executable File

#!/bin/bash
# this script requires the jq command $(sudo apt install jq)
# first-pass build
forge build --force "$@" || exit 1
# calculate the Vault init code hash using the bytecode generated for Vault
# shellcheck disable=SC2046
VAULT_INIT_CODE_HASH=$(cast keccak $(jq -r .bytecode.object < out/Vault.sol/Vault.json))
# put the hash value into the VaultAddress.sol source file
sed -i "s/bytes32 internal constant VAULT_INIT_CODE_HASH = .*;/bytes32 internal constant VAULT_INIT_CODE_HASH = $VAULT_INIT_CODE_HASH;/" src/VaultAddress.sol
# generate a javascript file with the constant
mkdir gen &> /dev/null
echo "export const VAULT_INIT_CODE_HASH='$VAULT_INIT_CODE_HASH';" > gen/vaultHash.js
# final build after hash values are set
forge build --force "$@" || exit 1