Files
tycho-protocol-sdk/evm/scripts/buildRuntime.sh
Florian Pellissier bc2cd6bab2 refactor(testing): miscellaneous improvements and bugfixes
Includes bugfix on `tycho-indexer-client` and `protosim_py`, a script to simplify setting up testing python env and cli improvements. Also add support for building runtime for SwapAdapters with many args that was bugged before.
2024-08-19 11:56:52 +02:00

50 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
set -e
# Initialize our own variables
CONTRACT_NAME=""
CONSTRUCTOR_SIGNATURE=""
CONSTRUCTOR_ARGUMENTS=""
# Function to display usage
usage() {
echo "Usage: $0 -c contract_name [-s constructor_signature -a constructor_arguments]" 1>&2; exit 1;
}
while getopts ":c:s:a:" opt; do
case "${opt}" in
c)
CONTRACT_NAME=${OPTARG};;
s)
CONSTRUCTOR_SIGNATURE=${OPTARG};;
a)
CONSTRUCTOR_ARGUMENTS=${OPTARG};;
*)
usage;;
esac
done
shift $((OPTIND-1))
echo "CONTRACT_NAME: $CONTRACT_NAME"
echo "CONSTRUCTOR_SIGNATURE: $CONSTRUCTOR_SIGNATURE"
echo "CONSTRUCTOR_ARGUMENTS: $CONSTRUCTOR_ARGUMENTS"
# Perform operations if CONSTRUCTOR_SIGNATURE and CONSTRUCTOR_ARGUMENTS are set
if [[ ! -z "$CONSTRUCTOR_SIGNATURE" && ! -z "$CONSTRUCTOR_ARGUMENTS" ]]; then
# Split the CONSTRUCTOR_ARGUMENTS by commas into an array
IFS=',' read -r -a ARG_ARRAY <<< "$CONSTRUCTOR_ARGUMENTS"
# Create the cast abi-encode command with the arguments
ENCODED_ARGS=$(cast abi-encode "$CONSTRUCTOR_SIGNATURE" "${ARG_ARRAY[@]}")
# Export the encoded arguments
export __PROPELLER_DEPLOY_ARGS=$ENCODED_ARGS
echo "$ENCODED_ARGS"
fi
export __PROPELLER_CONTRACT="$CONTRACT_NAME.sol:$CONTRACT_NAME"
export __PROPELLER_OUT_FILE="out/$CONTRACT_NAME.sol/$CONTRACT_NAME.evm.runtime"
forge script scripts/_buildRuntime.s.sol -v
echo "Write: $__PROPELLER_OUT_FILE"