Skip to content

Commit 30c23a6

Browse files
authored
Merge pull request #7 from JustaName-id/angelo/engr-669-sepolia-deployment-script
Angelo/engr 669 sepolia deployment script
2 parents a60e92c + 1fe6a35 commit 30c23a6

File tree

7 files changed

+58
-30
lines changed

7 files changed

+58
-30
lines changed

.env.example

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
INITIAL_SIGNER=
2+
ETH_SEPOLIA_RPC=
3+
BASE_SEPOLIA_RPC=
4+
ETHERSCAN_API_KEY=
5+
BASESCAN_API_KEY=
6+
BASE_SEPOLIA_ACCOUNT=
7+
SEPOLIA_ACCOUNT=
8+
LOCAL_ACCOUNT=

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ out/
99
!/broadcast
1010
/broadcast/*/31337/
1111
/broadcast/**/dry-run/
12+
/broadcast
1213

1314
# Docs
1415
docs/

Makefile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,13 @@ NETWORK_ARGS := --rpc-url http://localhost:8545 --account $(LOCAL_ACCOUNT) --bro
3434

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

3941
deploy-sepolia:
4042
@forge script script/DeployProofOfPassportRegister.s.sol:DeployProofOfPassportRegister $(NETWORK_ARGS)
43+
44+
deploy-base-sepolia:
45+
@forge script script/DeployProofOfPassportRegister.s.sol:DeployProofOfPassportRegister $(NETWORK_ARGS)
46+

foundry.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
[profile.default]
22
src = "src"
33
out = "out"
4+
solc = "0.8.20"
45
libs = ["lib"]
56
remappings = [
67
'@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/',

script/DeployProofOfPassportRegister.s.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ contract DeployProofOfPassportRegister is Script, CodeConstants {
1111
HelperConfig helperConfig = new HelperConfig();
1212
HelperConfig.NetworkConfig memory config = helperConfig.getConfig();
1313

14-
vm.startBroadcast(config.deployerKey);
14+
vm.startBroadcast();
1515
ProofOfPassportRegister register = new ProofOfPassportRegister(
1616
config.signatureAlgorithms, config.verifiers, config.nullifiersIndexesInPubSigArray, config.signers
1717
);

script/HelperConfig.s.sol

Lines changed: 39 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@ pragma solidity ^0.8.20;
33

44
import {Script, console} from "forge-std/Script.sol";
55
import {VerifierProveRSA65537SHA256} from "../src/verifiers/prove/Verifier_prove_rsa_65537_sha256.sol";
6+
import {VerifierProveRSA65537SHA1} from "../src/verifiers/prove/Verifier_prove_rsa_65537_sha1.sol";
7+
import {VerifierProveRSAPSS65537SHA256} from "../src/verifiers/prove/Verifier_prove_rsapss_65537_sha256.sol";
68
import {IProofOfPassportRegister} from "../src/interfaces/IProofOfPassportRegister.sol";
79

810
abstract contract CodeConstants {
911
uint256 public constant MAINNET_ETH_CHAIN_ID = 1;
12+
uint256 public constant BASE_SEPOLIA_CHAIN_ID = 84532;
1013
uint256 public constant ETH_SEPOLIA_CHAIN_ID = 11155111;
1114
uint256 public constant LOCAL_CHAIN_ID = 31337;
1215

@@ -22,9 +25,6 @@ abstract contract CodeConstants {
2225
address[] public initialVerifiers;
2326
uint256[] public initialNullifiersIndexesInPubSigArray;
2427
address[] public initialSigners;
25-
26-
uint256 public DEFAULT_ANVIL_KEY = 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80;
27-
address public DEFAULT_ANVIL_ADDRESS = 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266;
2828
}
2929

3030
contract HelperConfig is CodeConstants, Script {
@@ -35,21 +35,15 @@ contract HelperConfig is CodeConstants, Script {
3535
address[] verifiers;
3636
uint256[] nullifiersIndexesInPubSigArray;
3737
address[] signers;
38-
uint256 deployerKey;
39-
}
40-
41-
NetworkConfig public networkConfig;
42-
mapping(uint256 => NetworkConfig) public networkConfigs;
43-
44-
constructor() {
45-
networkConfigs[LOCAL_CHAIN_ID] = getOrCreateAnvilEthConfig();
4638
}
4739

4840
function getConfigByChainId(uint256 chainId) public returns (NetworkConfig memory) {
49-
if (networkConfig.verifiers.length > 0 && networkConfigs[chainId].verifiers[0] != address(0)) {
50-
return networkConfigs[chainId];
51-
} else if (chainId == LOCAL_CHAIN_ID) {
41+
if (chainId == LOCAL_CHAIN_ID) {
5242
return getOrCreateAnvilEthConfig();
43+
} else if (chainId == ETH_SEPOLIA_CHAIN_ID) {
44+
return getOrCreateSepoliaConfig();
45+
} else if (chainId == BASE_SEPOLIA_CHAIN_ID) {
46+
return getOrCreateSepoliaConfig();
5347
} else {
5448
revert HelperConfig__InvalidChainId();
5549
}
@@ -60,11 +54,6 @@ contract HelperConfig is CodeConstants, Script {
6054
}
6155

6256
function getOrCreateAnvilEthConfig() public returns (NetworkConfig memory) {
63-
// Check to see if we set an active network config
64-
if (networkConfig.verifiers.length > 0 && networkConfig.verifiers[0] != address(0)) {
65-
return networkConfig;
66-
}
67-
6857
initialSignatureAlgorithms.push(SIGNATURE_ALGORITHM_RSA_65537_SHA256);
6958

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

8170
initialVerifiers.push(address(verifierProveRSA65537SHA256));
8271

83-
networkConfig = NetworkConfig({
72+
return NetworkConfig({
8473
signatureAlgorithms: initialSignatureAlgorithms,
8574
verifiers: initialVerifiers,
8675
nullifiersIndexesInPubSigArray: initialNullifiersIndexesInPubSigArray,
87-
signers: initialSigners,
88-
deployerKey: DEFAULT_ANVIL_KEY
76+
signers: initialSigners
8977
});
78+
}
79+
80+
function getOrCreateSepoliaConfig() public returns (NetworkConfig memory) {
81+
vm.startBroadcast();
82+
VerifierProveRSA65537SHA256 verifierProveRSA65537SHA256 = new VerifierProveRSA65537SHA256();
83+
VerifierProveRSA65537SHA1 verifierProveRSA65537SHA1 = new VerifierProveRSA65537SHA1();
84+
VerifierProveRSAPSS65537SHA256 verifierProveRSA65537PSSSHA256 = new VerifierProveRSAPSS65537SHA256();
85+
vm.stopBroadcast();
86+
87+
initialSignatureAlgorithms.push(SIGNATURE_ALGORITHM_RSA_65537_SHA256);
88+
initialSignatureAlgorithms.push(SIGNATURE_ALGORITHM_RSA_65537_SHA1);
89+
initialSignatureAlgorithms.push(SIGNATURE_ALGORITHM_RSA_PSS_65537_SHA256);
90+
91+
initialVerifiers.push(address(verifierProveRSA65537SHA256));
92+
initialVerifiers.push(address(verifierProveRSA65537SHA1));
93+
initialVerifiers.push(address(verifierProveRSA65537PSSSHA256));
94+
95+
initialNullifiersIndexesInPubSigArray.push(NULLIFIER_INDEX_IN_PUB_SIGNAL);
96+
initialNullifiersIndexesInPubSigArray.push(NULLIFIER_INDEX_IN_PUB_SIGNAL);
97+
initialNullifiersIndexesInPubSigArray.push(NULLIFIER_INDEX_IN_PUB_SIGNAL);
98+
99+
address INITIAL_SIGNER = vm.envAddress("INITIAL_SIGNER");
100+
initialSigners.push(INITIAL_SIGNER);
90101

91-
return networkConfig;
102+
return NetworkConfig({
103+
signatureAlgorithms: initialSignatureAlgorithms,
104+
verifiers: initialVerifiers,
105+
nullifiersIndexesInPubSigArray: initialNullifiersIndexesInPubSigArray,
106+
signers: initialSigners
107+
});
92108
}
93109
}

test/unit/TestProofOfPassportRegister.t.sol

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,17 +71,13 @@ contract TestProofOfPassportRegister is Test, Script, CodeConstants {
7171
address verifier = proofOfPassportRegister.getVerifier(SIGNATURE_ALGORITHM_RSA_65537_SHA256);
7272
uint256 nullifierIndex = proofOfPassportRegister.getNullifierIndex(SIGNATURE_ALGORITHM_RSA_65537_SHA256);
7373
uint256 signatureAlgorithmIndexInPubSignals = proofOfPassportRegister.SIGNATURE_ALGORITHM_INDEX_IN_PUB_SIGNALS();
74-
address owner = proofOfPassportRegister.owner();
74+
// address owner = proofOfPassportRegister.owner();
7575

7676
assertEq(isSigner, true);
77-
// change those to test against the deployed values
77+
// TODO: change this to test against the deployed values
7878
assertNotEq(verifier, address(0));
7979
assertEq(nullifierIndex, NULLIFIER_INDEX_IN_PUB_SIGNAL);
8080
assertEq(signatureAlgorithmIndexInPubSignals, SIGNATURE_ALGORITHM_INDEX_IN_PUB_SIGNALS);
81-
82-
if (block.chainid == LOCAL_CHAIN_ID) {
83-
assertEq(owner, DEFAULT_ANVIL_ADDRESS);
84-
}
8581
}
8682

8783
/*//////////////////////////////////////////////////////////////

0 commit comments

Comments
 (0)