diff --git a/.gitignore b/.gitignore index bb2aa32..d68d448 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,4 @@ yarn.lock # coverage stuff coverage/ lcov.info +**/*.env diff --git a/config/.gitkeep b/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/config/tnsgd/.gitkeep b/config/tnsgd/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/config/tnusd/.gitkeep b/config/tnusd/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/package.json b/package.json index 1191cd0..a603e3d 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,9 @@ "scripts": { "lint": "solhint 'src/**/*.sol' && solhint --config .solhint.test.json 'test/**/*.t.sol'", "test": "forge test", - "coverage": "forge coverage --report lcov && lcov --remove ./lcov.info --rc derive_function_end_line=0 -o ./lcov.info 'test/*' 'script/*' && genhtml lcov.info --rc derive_function_end_line=0 --ignore-errors category --output-dir coverage && open coverage/index.html" + "coverage": "forge coverage --report lcov && lcov --remove ./lcov.info --rc derive_function_end_line=0 -o ./lcov.info 'test/*' 'script/*' && genhtml lcov.info --rc derive_function_end_line=0 --ignore-errors category --output-dir coverage && open coverage/index.html", + "deploy": "bash script/deploy.sh", + "upgrade": "bash script/upgrade.sh" }, "devDependencies": { "solhint": "^5.0.3" diff --git a/script/deploy.sh b/script/deploy.sh new file mode 100644 index 0000000..61eb44e --- /dev/null +++ b/script/deploy.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +# Check for arguments +if [ -z "$1" ] || [ -z "$2" ] ; then + echo "Usage: npm run deploy -- " + # Example: + # npm run deploy -- tnusd eth-mainnet + # npm run deploy -- tnsgd eth-sepolia + # npm run deploy -- tnusd op-mainnet + # npm run deploy -- tnusd op-sepolia + exit 1 +fi + +# Assign arguments to variables +TOKEN=$1 +CHAIN=$2 +ENV_FILE="config/${TOKEN}/${CHAIN}.env" +ROOT_ENV_FILE="./.env" + +# Load environment variables from .env file +if [ -f "$ENV_FILE" ]; then + source $ENV_FILE + + # Copy the .env file to the current directory + cp "$ENV_FILE" "$ROOT_ENV_FILE" + + # Confirm the copy was successful + if [[ -f "$ROOT_ENV_FILE" ]]; then + echo "File '.env' has been successfully copied to the current folder." + else + echo "Error: Failed to copy '.env' to the current folder." + fi +else + echo "$ENV_FILE file not found!" + exit 1 +fi + +if [[ -n "${ETHERSCAN_API_KEY}" ]]; then + echo "The environment variable ETHERSCAN_API_KEY has a value: ${ETHERSCAN_API_KEY}" + # with verify + forge script script/DeployFiatToken.s.sol:DeployFiatToken --rpc-url $RPC_URL --ledger --hd-paths $DERIVATION_PATH --sender $DEFAULT_ADMIN_ADDRESS --broadcast --verify --ffi -vvvv +else + echo "The environment variable ETHERSCAN_API_KEY is not set or is empty." + # no verify + forge script script/DeployFiatToken.s.sol:DeployFiatToken --rpc-url $RPC_URL --ledger --hd-paths $DERIVATION_PATH --sender $DEFAULT_ADMIN_ADDRESS --broadcast --ffi -vvvv +fi diff --git a/script/upgrade.sh b/script/upgrade.sh new file mode 100644 index 0000000..eb16717 --- /dev/null +++ b/script/upgrade.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +# Check for arguments +if [ -z "$1" ] || [ -z "$2" ] ; then + echo "Usage: npm run deploy -- " + # Example: + # npm run deploy -- tnusd eth-mainnet + # npm run deploy -- tnsgd eth-sepolia + # npm run deploy -- tnusd op-mainnet + # npm run deploy -- tnusd op-sepolia + exit 1 +fi + +# Assign arguments to variables +TOKEN=$1 +CHAIN=$2 +ENV_FILE="config/${TOKEN}/${CHAIN}.env" +ROOT_ENV_FILE="./.env" + +# Load environment variables from .env file +if [ -f "$ENV_FILE" ]; then + source $ENV_FILE + + # Copy the .env file to the current directory + cp "$ENV_FILE" "$ROOT_ENV_FILE" + + # Confirm the copy was successful + if [[ -f "$ROOT_ENV_FILE" ]]; then + echo "File '.env' has been successfully copied to the current folder." + else + echo "Error: Failed to copy '.env' to the current folder." + fi +else + echo "$ENV_FILE file not found!" + exit 1 +fi + +if [[ -n "${ETHERSCAN_API_KEY}" ]]; then + echo "The environment variable ETHERSCAN_API_KEY has a value: ${ETHERSCAN_API_KEY}" + # with verify + forge script script/UpgradeFiatToken.s.sol:UpgradeFiatToken --rpc-url $RPC_URL --ledger --hd-paths $DERIVATION_PATH --sender $DEFAULT_ADMIN_ADDRESS --broadcast --verify --ffi -vvvv +else + echo "The environment variable ETHERSCAN_API_KEY is not set or is empty." + # no verify + forge script script/UpgradeFiatToken.s.sol:UpgradeFiatToken --rpc-url $RPC_URL --ledger --hd-paths $DERIVATION_PATH --sender $DEFAULT_ADMIN_ADDRESS --broadcast --ffi -vvvv +fi