mirror of
https://github.com/luxfhe/research-ocp-fhe.git
synced 2026-10-30 17:09:36 +00:00
79 lines
2.8 KiB
Bash
Executable File
79 lines
2.8 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
# Processes command line arguments
|
|
# Example: ./verify_simple.sh --env=dev
|
|
while [[ "$#" -gt 0 ]]; do
|
|
case $1 in
|
|
--env=*) ENVIRONMENT="${1#*=}" ;; # Extracts value after --env=
|
|
*) echo "Unknown parameter: $1"; exit 1 ;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
|
|
# Constructs env file path based on environment
|
|
# Example: .env.local, .env.dev, .env.prod
|
|
USE_ENV_FILE=".env.${ENVIRONMENT}"
|
|
|
|
# Exits if the environment file doesn't exist
|
|
[ ! -f "$USE_ENV_FILE" ] && echo "Error: $USE_ENV_FILE does not exist" && exit 1
|
|
|
|
# Loads environment variables from the env file
|
|
# set -a: automatically exports all variables
|
|
# source: loads the env file
|
|
# set +a: stops auto-exporting
|
|
set -a
|
|
source "$USE_ENV_FILE"
|
|
set +a
|
|
|
|
# Changes to chain directory and runs the forge deploy script
|
|
cd chain
|
|
|
|
CHAIN_ID=$(cast chain-id --rpc-url "$RPC_URL")
|
|
echo "RPC_URL=$RPC_URL"
|
|
echo "CHAIN_ID=$CHAIN_ID"
|
|
|
|
env | grep "DIAMOND"
|
|
env | grep "ADDRESS"
|
|
env | grep "FACET"
|
|
|
|
verify_contract() {
|
|
local address=$1
|
|
local src_spec=$2
|
|
shift 2
|
|
|
|
# Choose blockscout vs etherscan based on chain
|
|
if [[ "$CHAIN_ID" == "98867" || "$CHAIN_ID" == "98866" ]]; then
|
|
verifier_flags="--rpc-url $RPC_URL --verifier blockscout --verifier-url $VERIFY_URL"
|
|
else
|
|
verifier_flags="--chain-id $CHAIN_ID --etherscan-api-key $ETHERSCAN_API_KEY"
|
|
fi
|
|
|
|
# set -x
|
|
forge verify-contract "$address" "$src_spec" $verifier_flags "$@" --watch -vvvv
|
|
# set +x
|
|
}
|
|
|
|
verify_contract $DIAMOND_CUT_FACET lib/diamond-3-hardhat/contracts/facets/DiamondCutFacet.sol:DiamondCutFacet
|
|
verify_contract $DIAMOND_LOUPE_FACET lib/diamond-3-hardhat/contracts/facets/DiamondLoupeFacet.sol:DiamondLoupeFacet
|
|
|
|
verify_contract $FACTORY_ADDRESS src/core/CapTableFactory.sol:CapTableFactory \
|
|
--constructor-args $(cast abi-encode "constructor(address)" $REFERENCE_DIAMOND)
|
|
|
|
verify_contract $REFERENCE_DIAMOND src/core/CapTable.sol:CapTable \
|
|
--constructor-args $(cast abi-encode "constructor(address,address)" $FACTORY_ADDRESS $DIAMOND_CUT_FACET)
|
|
|
|
verify_contract $ISSUER_FACET src/facets/IssuerFacet.sol:IssuerFacet
|
|
verify_contract $STAKEHOLDER_FACET src/facets/StakeholderFacet.sol:StakeholderFacet
|
|
verify_contract $STOCK_CLASS_FACET src/facets/StockClassFacet.sol:StockClassFacet
|
|
verify_contract $STOCK_FACET src/facets/StockFacet.sol:StockFacet
|
|
verify_contract $CONVERTIBLES_FACET src/facets/ConvertiblesFacet.sol:ConvertiblesFacet
|
|
verify_contract $EQUITY_COMPENSATION_FACET src/facets/EquityCompensationFacet.sol:EquityCompensationFacet
|
|
verify_contract $STOCK_PLAN_FACET src/facets/StockPlanFacet.sol:StockPlanFacet
|
|
verify_contract $WARRANT_FACET src/facets/WarrantFacet.sol:WarrantFacet
|
|
verify_contract $STAKEHOLDER_NFT_FACET src/facets/StakeholderNFTFacet.sol:StakeholderNFTFacet
|
|
verify_contract $ACCESS_CONTROL_FACET src/facets/AccessControlFacet.sol:AccessControlFacet
|
|
|
|
echo "Verification complete!"
|