11-include .env
22
3- .PHONY : help build test test-verbose test-match deploy-vincent deploy-vincent-datil get-abis update-facet
3+ .PHONY : help build test test-verbose test-match deploy-vincent-datil deploy-vincent-base-sepolia deploy-vincent-base-mainnet update-facet set-trusted-forwarder set-ecdsa-validator get-abis
44
55help : # # Display this help screen
66 @grep -h -E ' ^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST ) | awk ' BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
@@ -30,12 +30,18 @@ deploy-vincent-datil: ## Deploy the Vincent Diamond contract to Datil network on
3030 echo " Error: VINCENT_DEPLOYER_PRIVATE_KEY is not set in .env" ; \
3131 exit 1; \
3232 fi
33+ @if [ -z " $( VINCENT_ECDSA_VALIDATOR_ADDRESS) " ]; then \
34+ echo " Error: VINCENT_ECDSA_VALIDATOR_ADDRESS is not set in .env" ; \
35+ echo " This address is required for smart account owner verification" ; \
36+ exit 1; \
37+ fi
3338 @echo " Deploying Vincent Diamond to Datil network ($( VINCENT_DEPLOYMENT_RPC_URL) )..."
3439 @if [ -n " $( VINCENT_GELATO_FORWARDER_ADDRESS) " ]; then \
3540 echo " Using Gelato forwarder: $( VINCENT_GELATO_FORWARDER_ADDRESS) " ; \
3641 else \
3742 echo " Gelato forwarder not set (EIP-2771 disabled)" ; \
3843 fi
44+ @echo " Using ECDSA validator: $( VINCENT_ECDSA_VALIDATOR_ADDRESS) "
3945 @forge script script/DeployVincentDiamond.sol:DeployVincentDiamond --sig " deployToDatil()" -vvv \
4046 --broadcast \
4147 --private-key $(VINCENT_DEPLOYER_PRIVATE_KEY ) \
@@ -50,12 +56,18 @@ deploy-vincent-base-sepolia: ## Deploy the Vincent Diamond contract to Base Sepo
5056 echo " Error: VINCENT_DEPLOYER_PRIVATE_KEY is not set in .env" ; \
5157 exit 1; \
5258 fi
59+ @if [ -z " $( VINCENT_ECDSA_VALIDATOR_ADDRESS) " ]; then \
60+ echo " Error: VINCENT_ECDSA_VALIDATOR_ADDRESS is not set in .env" ; \
61+ echo " This address is required for smart account owner verification" ; \
62+ exit 1; \
63+ fi
5364 @echo " Deploying Vincent Diamond to Base Sepolia ($( BASE_SEPOLIA_RPC_URL) )..."
5465 @if [ -n " $( VINCENT_GELATO_FORWARDER_ADDRESS) " ]; then \
5566 echo " Using Gelato forwarder: $( VINCENT_GELATO_FORWARDER_ADDRESS) " ; \
5667 else \
5768 echo " Gelato forwarder not set (EIP-2771 disabled)" ; \
5869 fi
70+ @echo " Using ECDSA validator: $( VINCENT_ECDSA_VALIDATOR_ADDRESS) "
5971 @forge script script/DeployVincentDiamond.sol:DeployVincentDiamond --sig " deployToBaseSepolia()" -vvv \
6072 --broadcast \
6173 --private-key $(VINCENT_DEPLOYER_PRIVATE_KEY ) \
@@ -70,12 +82,18 @@ deploy-vincent-base-mainnet: ## Deploy the Vincent Diamond contract to Base Main
7082 echo " Error: VINCENT_DEPLOYER_PRIVATE_KEY is not set in .env" ; \
7183 exit 1; \
7284 fi
85+ @if [ -z " $( VINCENT_ECDSA_VALIDATOR_ADDRESS) " ]; then \
86+ echo " Error: VINCENT_ECDSA_VALIDATOR_ADDRESS is not set in .env" ; \
87+ echo " This address is required for smart account owner verification" ; \
88+ exit 1; \
89+ fi
7390 @echo " Deploying Vincent Diamond to Base Mainnet ($( BASE_MAINNET_RPC_URL) )..."
7491 @if [ -n " $( VINCENT_GELATO_FORWARDER_ADDRESS) " ]; then \
7592 echo " Using Gelato forwarder: $( VINCENT_GELATO_FORWARDER_ADDRESS) " ; \
7693 else \
7794 echo " Gelato forwarder not set (EIP-2771 disabled)" ; \
7895 fi
96+ @echo " Using ECDSA validator: $( VINCENT_ECDSA_VALIDATOR_ADDRESS) "
7997 @forge script script/DeployVincentDiamond.sol:DeployVincentDiamond --sig " deployToBaseMainnet()" -vvv \
8098 --broadcast \
8199 --private-key $(VINCENT_DEPLOYER_PRIVATE_KEY ) \
@@ -89,7 +107,7 @@ update-facet: ## Update a specific facet in the Vincent Diamond contract. Usage:
89107 @if [ -z " $( FACET_NAME) " ]; then \
90108 echo " Error: FACET_NAME parameter is required." ; \
91109 echo " Usage: make update-facet FACET_NAME=VincentAppViewFacet NETWORK=datil|base-sepolia|base-mainnet" ; \
92- echo " Available facets: VincentAppFacet, VincentAppViewFacet, VincentUserFacet, VincentUserViewFacet, VincentERC2771Facet" ; \
110+ echo " Available facets: VincentAppFacet, VincentAppViewFacet, VincentUserFacet, VincentUserViewFacet, VincentERC2771Facet, VincentZeroDevConfigFacet " ; \
93111 exit 1; \
94112 fi
95113 @if [ -z " $( NETWORK) " ]; then \
@@ -151,6 +169,40 @@ set-trusted-forwarder: ## Set the trusted forwarder address for EIP-2771 meta-tr
151169 --private-key $(VINCENT_DEPLOYER_PRIVATE_KEY ) \
152170 --rpc-url $(RPC_URL )
153171
172+ set-ecdsa-validator : # # Set the ECDSA validator address for smart account owner verification. Usage: make set-ecdsa-validator VALIDATOR_ADDRESS=0x... NETWORK=datil|base-sepolia|base-mainnet
173+ @if [ -z " $( VINCENT_DEPLOYER_PRIVATE_KEY) " ]; then \
174+ echo " Error: VINCENT_DEPLOYER_PRIVATE_KEY is not set in .env" ; \
175+ exit 1; \
176+ fi
177+ @if [ -z " $( VALIDATOR_ADDRESS) " ]; then \
178+ echo " Error: VALIDATOR_ADDRESS parameter is required." ; \
179+ echo " Usage: make set-ecdsa-validator VALIDATOR_ADDRESS=0x... NETWORK=datil|base-sepolia|base-mainnet" ; \
180+ exit 1; \
181+ fi
182+ @if [ -z " $( NETWORK) " ]; then \
183+ echo " Error: NETWORK parameter is required." ; \
184+ echo " Usage: make set-ecdsa-validator VALIDATOR_ADDRESS=0x... NETWORK=datil|base-sepolia|base-mainnet" ; \
185+ exit 1; \
186+ fi
187+ @if [ " $( NETWORK) " != " datil" ] && [ " $( NETWORK) " != " base-sepolia" ] && [ " $( NETWORK) " != " base-mainnet" ]; then \
188+ echo " Error: NETWORK must be one of: datil, base-sepolia, base-mainnet" ; \
189+ exit 1; \
190+ fi
191+ @if [ -z " $( RPC_URL) " ]; then \
192+ echo " Error: RPC_URL is not set in .env" ; \
193+ exit 1; \
194+ fi
195+ @if [ -z " $( VINCENT_DIAMOND_ADDRESS) " ]; then \
196+ echo " Error: VINCENT_DIAMOND_ADDRESS is not set in .env" ; \
197+ exit 1; \
198+ fi
199+ @echo " Setting ECDSA validator to $( VALIDATOR_ADDRESS) on $( NETWORK) ..."
200+ @echo " Using diamond address: $( VINCENT_DIAMOND_ADDRESS) "
201+ @ECDSA_VALIDATOR_ADDRESS=$(VALIDATOR_ADDRESS ) VINCENT_DIAMOND_ADDRESS=$(VINCENT_DIAMOND_ADDRESS ) forge script script/SetEcdsaValidatorAddress.sol:SetEcdsaValidatorAddress -vvv \
202+ --broadcast \
203+ --private-key $(VINCENT_DEPLOYER_PRIVATE_KEY ) \
204+ --rpc-url $(RPC_URL )
205+
154206get-abis : # # Get human-readable ABIs for all facets
155207 @mkdir -p abis
156208 # @echo "Getting ABI for DiamondCutFacet..."
@@ -169,6 +221,8 @@ get-abis: ## Get human-readable ABIs for all facets
169221 @forge inspect VincentUserViewFacet abi --json > abis/VincentUserViewFacet.abi.json
170222 @echo " Getting ABI for VincentERC2771Facet..."
171223 @forge inspect VincentERC2771Facet abi --json > abis/VincentERC2771Facet.abi.json
224+ @echo " Getting ABI for VincentZeroDevConfigFacet..."
225+ @forge inspect VincentZeroDevConfigFacet abi --json > abis/VincentZeroDevConfigFacet.abi.json
172226
173227 @echo "Merging facet ABIs into abis/FeeDiamond.abi.json..."
174228 @jq -s '[.[].abi] | add | unique_by(.type, .name, ((.inputs // []) | map(.type) | join(",")))' \
0 commit comments