dexorder
This commit is contained in:
48
bin/build
Executable file
48
bin/build
Executable file
@@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
# this script requires the jq command $(sudo apt install jq)
|
||||
|
||||
# build_args=$(echo "$@" | sed 's/--debug//')
|
||||
build_args=$(echo "$@")
|
||||
|
||||
## force full rebuild
|
||||
#echo Full build, not incremental...
|
||||
#rm -rf out/ broadcast/ cache/ gen/
|
||||
|
||||
# first-pass build
|
||||
echo Building...
|
||||
forge build $build_args || exit 1
|
||||
|
||||
# Debug print
|
||||
# if echo "$@" | grep -wqe "--debug"; then
|
||||
# echo Orderlib.sol should be first, if not then build --force should be triggered
|
||||
# date
|
||||
# OrderLib_deps
|
||||
# fi
|
||||
|
||||
# Rebuild --force if OrderLib dependencies not built due to bug in forge
|
||||
# if [ "./src/OrderLib.sol" != $(OrderLib_deps | head -n 1 | colrm 1 36) ]; then
|
||||
# echo Rebuild --force because OrderLib dependencies not built due to forge bug...
|
||||
# rm -rf out
|
||||
# forge build --force "$@" || exit 1
|
||||
# fi
|
||||
|
||||
# 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/VAULT_INIT_CODE_HASH = .*;/VAULT_INIT_CODE_HASH = $VAULT_INIT_CODE_HASH;/" src/more/VaultAddress.sol
|
||||
|
||||
# final build after init code hash is set
|
||||
echo Build VaultAddress.sol...
|
||||
forge build $build_args || exit 1
|
||||
|
||||
# Debug print
|
||||
|
||||
# if echo "$@" | grep -wqe "--debug"; then
|
||||
# echo all compiled files:
|
||||
# dated_flist "./out/*/*.json"
|
||||
# dated_flist ./src/OrderLib.sol
|
||||
# fi
|
||||
|
||||
echo Contracts built successfully.
|
||||
Reference in New Issue
Block a user