Skip to content

Commit

Permalink
Merge pull request #7 from JustaName-id/angelo/engr-669-sepolia-deplo…
Browse files Browse the repository at this point in the history
…yment-script

Angelo/engr 669 sepolia deployment script
  • Loading branch information
Ghadi8 authored Oct 18, 2024
2 parents a60e92c + 1fe6a35 commit 30c23a6
Show file tree
Hide file tree
Showing 7 changed files with 58 additions and 30 deletions.
8 changes: 8 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
INITIAL_SIGNER=
ETH_SEPOLIA_RPC=
BASE_SEPOLIA_RPC=
ETHERSCAN_API_KEY=
BASESCAN_API_KEY=
BASE_SEPOLIA_ACCOUNT=
SEPOLIA_ACCOUNT=
LOCAL_ACCOUNT=
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ out/
!/broadcast
/broadcast/*/31337/
/broadcast/**/dry-run/
/broadcast

# Docs
docs/
Expand Down
6 changes: 6 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,13 @@ NETWORK_ARGS := --rpc-url http://localhost:8545 --account $(LOCAL_ACCOUNT) --bro

ifeq ($(findstring --network sepolia,$(ARGS)),--network sepolia)
NETWORK_ARGS := --rpc-url $(SEPOLIA_RPC_URL) --account $(SEPOLIA_ACCOUNT) --broadcast --verify --etherscan-api-key $(ETHERSCAN_API_KEY) -vvvv
else ifeq ($(findstring --network base-sepolia,$(ARGS)),--network base-sepolia)
NETWORK_ARGS := --rpc-url $(BASE_SEPOLIA_RPC_URL) --account $(BASE_SEPOLIA_ACCOUNT) --broadcast --verify --etherscan-api-key $(BASESCAN_API_KEY) -vvvv
endif

deploy-sepolia:
@forge script script/DeployProofOfPassportRegister.s.sol:DeployProofOfPassportRegister $(NETWORK_ARGS)

deploy-base-sepolia:
@forge script script/DeployProofOfPassportRegister.s.sol:DeployProofOfPassportRegister $(NETWORK_ARGS)

1 change: 1 addition & 0 deletions foundry.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
[profile.default]
src = "src"
out = "out"
solc = "0.8.20"
libs = ["lib"]
remappings = [
'@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/',
Expand Down
2 changes: 1 addition & 1 deletion script/DeployProofOfPassportRegister.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ contract DeployProofOfPassportRegister is Script, CodeConstants {
HelperConfig helperConfig = new HelperConfig();
HelperConfig.NetworkConfig memory config = helperConfig.getConfig();

vm.startBroadcast(config.deployerKey);
vm.startBroadcast();
ProofOfPassportRegister register = new ProofOfPassportRegister(
config.signatureAlgorithms, config.verifiers, config.nullifiersIndexesInPubSigArray, config.signers
);
Expand Down
62 changes: 39 additions & 23 deletions script/HelperConfig.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,13 @@ pragma solidity ^0.8.20;

import {Script, console} from "forge-std/Script.sol";
import {VerifierProveRSA65537SHA256} from "../src/verifiers/prove/Verifier_prove_rsa_65537_sha256.sol";
import {VerifierProveRSA65537SHA1} from "../src/verifiers/prove/Verifier_prove_rsa_65537_sha1.sol";
import {VerifierProveRSAPSS65537SHA256} from "../src/verifiers/prove/Verifier_prove_rsapss_65537_sha256.sol";
import {IProofOfPassportRegister} from "../src/interfaces/IProofOfPassportRegister.sol";

abstract contract CodeConstants {
uint256 public constant MAINNET_ETH_CHAIN_ID = 1;
uint256 public constant BASE_SEPOLIA_CHAIN_ID = 84532;
uint256 public constant ETH_SEPOLIA_CHAIN_ID = 11155111;
uint256 public constant LOCAL_CHAIN_ID = 31337;

Expand All @@ -22,9 +25,6 @@ abstract contract CodeConstants {
address[] public initialVerifiers;
uint256[] public initialNullifiersIndexesInPubSigArray;
address[] public initialSigners;

uint256 public DEFAULT_ANVIL_KEY = 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80;
address public DEFAULT_ANVIL_ADDRESS = 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266;
}

contract HelperConfig is CodeConstants, Script {
Expand All @@ -35,21 +35,15 @@ contract HelperConfig is CodeConstants, Script {
address[] verifiers;
uint256[] nullifiersIndexesInPubSigArray;
address[] signers;
uint256 deployerKey;
}

NetworkConfig public networkConfig;
mapping(uint256 => NetworkConfig) public networkConfigs;

constructor() {
networkConfigs[LOCAL_CHAIN_ID] = getOrCreateAnvilEthConfig();
}

function getConfigByChainId(uint256 chainId) public returns (NetworkConfig memory) {
if (networkConfig.verifiers.length > 0 && networkConfigs[chainId].verifiers[0] != address(0)) {
return networkConfigs[chainId];
} else if (chainId == LOCAL_CHAIN_ID) {
if (chainId == LOCAL_CHAIN_ID) {
return getOrCreateAnvilEthConfig();
} else if (chainId == ETH_SEPOLIA_CHAIN_ID) {
return getOrCreateSepoliaConfig();
} else if (chainId == BASE_SEPOLIA_CHAIN_ID) {
return getOrCreateSepoliaConfig();
} else {
revert HelperConfig__InvalidChainId();
}
Expand All @@ -60,11 +54,6 @@ contract HelperConfig is CodeConstants, Script {
}

function getOrCreateAnvilEthConfig() public returns (NetworkConfig memory) {
// Check to see if we set an active network config
if (networkConfig.verifiers.length > 0 && networkConfig.verifiers[0] != address(0)) {
return networkConfig;
}

initialSignatureAlgorithms.push(SIGNATURE_ALGORITHM_RSA_65537_SHA256);

// Get Signer
Expand All @@ -80,14 +69,41 @@ contract HelperConfig is CodeConstants, Script {

initialVerifiers.push(address(verifierProveRSA65537SHA256));

networkConfig = NetworkConfig({
return NetworkConfig({
signatureAlgorithms: initialSignatureAlgorithms,
verifiers: initialVerifiers,
nullifiersIndexesInPubSigArray: initialNullifiersIndexesInPubSigArray,
signers: initialSigners,
deployerKey: DEFAULT_ANVIL_KEY
signers: initialSigners
});
}

function getOrCreateSepoliaConfig() public returns (NetworkConfig memory) {
vm.startBroadcast();
VerifierProveRSA65537SHA256 verifierProveRSA65537SHA256 = new VerifierProveRSA65537SHA256();
VerifierProveRSA65537SHA1 verifierProveRSA65537SHA1 = new VerifierProveRSA65537SHA1();
VerifierProveRSAPSS65537SHA256 verifierProveRSA65537PSSSHA256 = new VerifierProveRSAPSS65537SHA256();
vm.stopBroadcast();

initialSignatureAlgorithms.push(SIGNATURE_ALGORITHM_RSA_65537_SHA256);
initialSignatureAlgorithms.push(SIGNATURE_ALGORITHM_RSA_65537_SHA1);
initialSignatureAlgorithms.push(SIGNATURE_ALGORITHM_RSA_PSS_65537_SHA256);

initialVerifiers.push(address(verifierProveRSA65537SHA256));
initialVerifiers.push(address(verifierProveRSA65537SHA1));
initialVerifiers.push(address(verifierProveRSA65537PSSSHA256));

initialNullifiersIndexesInPubSigArray.push(NULLIFIER_INDEX_IN_PUB_SIGNAL);
initialNullifiersIndexesInPubSigArray.push(NULLIFIER_INDEX_IN_PUB_SIGNAL);
initialNullifiersIndexesInPubSigArray.push(NULLIFIER_INDEX_IN_PUB_SIGNAL);

address INITIAL_SIGNER = vm.envAddress("INITIAL_SIGNER");
initialSigners.push(INITIAL_SIGNER);

return networkConfig;
return NetworkConfig({
signatureAlgorithms: initialSignatureAlgorithms,
verifiers: initialVerifiers,
nullifiersIndexesInPubSigArray: initialNullifiersIndexesInPubSigArray,
signers: initialSigners
});
}
}
8 changes: 2 additions & 6 deletions test/unit/TestProofOfPassportRegister.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -71,17 +71,13 @@ contract TestProofOfPassportRegister is Test, Script, CodeConstants {
address verifier = proofOfPassportRegister.getVerifier(SIGNATURE_ALGORITHM_RSA_65537_SHA256);
uint256 nullifierIndex = proofOfPassportRegister.getNullifierIndex(SIGNATURE_ALGORITHM_RSA_65537_SHA256);
uint256 signatureAlgorithmIndexInPubSignals = proofOfPassportRegister.SIGNATURE_ALGORITHM_INDEX_IN_PUB_SIGNALS();
address owner = proofOfPassportRegister.owner();
// address owner = proofOfPassportRegister.owner();

assertEq(isSigner, true);
// change those to test against the deployed values
// TODO: change this to test against the deployed values
assertNotEq(verifier, address(0));
assertEq(nullifierIndex, NULLIFIER_INDEX_IN_PUB_SIGNAL);
assertEq(signatureAlgorithmIndexInPubSignals, SIGNATURE_ALGORITHM_INDEX_IN_PUB_SIGNALS);

if (block.chainid == LOCAL_CHAIN_ID) {
assertEq(owner, DEFAULT_ANVIL_ADDRESS);
}
}

/*//////////////////////////////////////////////////////////////
Expand Down

0 comments on commit 30c23a6

Please sign in to comment.