@@ -27,9 +27,39 @@ const {
2727 BSCSCAN_API_KEY ,
2828 ARBISCAN_API_KEY ,
2929 OPTIMISTIC_ETHERSCAN_API_KEY ,
30- ZKSYNC_EXPLORER_API_KEY
30+ ZKSYNC_EXPLORER_API_KEY ,
31+ VERSION ,
32+ ENV
3133} = process . env ;
3234
35+ const version = VERSION ? VERSION . split ( '.' ) [ 0 ] : 'v1' ;
36+
37+ const privateKey : { [ key : string ] : string } = {
38+ v4Prod : PRIVATE_KEY_FOR_V4_CONTRACT_DEPLOYMENT ?? '' ,
39+ v4Test : PRIVATE_KEY_FOR_V4_CONTRACT_DEPLOYMENT ?? '' ,
40+ v2Prod : MAINNET_PRIVATE_KEY_FOR_CONTRACT_DEPLOYMENT ?? '' ,
41+ v2Test : TESTNET_PRIVATE_KEY_FOR_CONTRACT_DEPLOYMENT ?? '' ,
42+ v1ProdTestWallet : PRIVATE_KEY_FOR_V1_WALLET_CONTRACT_DEPLOYMENT ?? '' ,
43+ v1ProdTestForwarder : PRIVATE_KEY_FOR_V4_CONTRACT_DEPLOYMENT_BACKUP ?? ''
44+ } ;
45+
46+ function getPrivateKey ( version : string ) : string [ ] {
47+ switch ( version ) {
48+ case 'v1' :
49+ return [
50+ privateKey [ 'v1ProdTestWallet' ] ,
51+ privateKey [ 'v1ProdTestForwarder' ]
52+ ] ;
53+ case 'v2' :
54+ return ENV === 'TEST' ? [ privateKey [ 'v2Test' ] ] : [ privateKey [ 'v2Prod' ] ] ;
55+ case 'v4' :
56+ return ENV === 'TEST' ? [ privateKey [ 'v4Test' ] ] : [ privateKey [ 'v4Prod' ] ] ;
57+ default :
58+ console . error ( 'Invalid Version Number or Tag' ) ;
59+ process . exit ( 1 ) ;
60+ }
61+ }
62+
3363const config : HardhatUserConfig = {
3464 solidity : {
3565 compilers : [
@@ -67,60 +97,48 @@ const config: HardhatUserConfig = {
6797 } ,
6898 eth : {
6999 url : `https://ethereum-rpc.publicnode.com` ,
70- accounts : [ ` ${ PRIVATE_KEY_FOR_V4_CONTRACT_DEPLOYMENT } ` ]
100+ accounts : getPrivateKey ( version )
71101 } ,
72102 hteth : {
73103 url : `https://rpc.holesky.ethpandaops.io/` ,
74- accounts : [ ` ${ PRIVATE_KEY_FOR_V4_CONTRACT_DEPLOYMENT_BACKUP } ` ]
104+ accounts : getPrivateKey ( version )
75105 } ,
76106 matic : {
77107 url : `https://polygon-rpc.com/` ,
78- accounts : [ ` ${ PRIVATE_KEY_FOR_V4_CONTRACT_DEPLOYMENT } ` ]
108+ accounts : getPrivateKey ( version )
79109 } ,
80110 tmatic : {
81111 // https://polygon-amoy.g.alchemy.com
82112 url : `https://polygon-amoy-bor-rpc.publicnode.com` ,
83- accounts : [ ` ${ PRIVATE_KEY_FOR_V4_CONTRACT_DEPLOYMENT } ` ]
113+ accounts : getPrivateKey ( version )
84114 } ,
85115 bsc : {
86116 url : `https://bsc-dataseed1.binance.org/` ,
87- accounts : [ ` ${ PRIVATE_KEY_FOR_V4_CONTRACT_DEPLOYMENT } ` ]
117+ accounts : getPrivateKey ( version )
88118 } ,
89119 tbsc : {
90120 url : `https://data-seed-prebsc-1-s1.binance.org:8545/` ,
91- accounts : [ ` ${ PRIVATE_KEY_FOR_V4_CONTRACT_DEPLOYMENT } ` ]
121+ accounts : getPrivateKey ( version )
92122 } ,
93123 tarbeth : {
94124 url : `${ QUICKNODE_ARBITRUM_SEPOLIA_API_KEY } ` ,
95- accounts : [
96- `${ PRIVATE_KEY_FOR_V1_WALLET_CONTRACT_DEPLOYMENT } ` ,
97- `${ PRIVATE_KEY_FOR_V4_CONTRACT_DEPLOYMENT_BACKUP } `
98- ]
125+ accounts : getPrivateKey ( version )
99126 } ,
100127 arbeth : {
101128 url : `${ QUICKNODE_ARBITRUM_ONE_API_KEY } ` ,
102- accounts : [
103- `${ PRIVATE_KEY_FOR_V1_WALLET_CONTRACT_DEPLOYMENT } ` ,
104- `${ PRIVATE_KEY_FOR_V4_CONTRACT_DEPLOYMENT_BACKUP } `
105- ]
129+ accounts : getPrivateKey ( version )
106130 } ,
107131 topeth : {
108132 url : `${ QUICKNODE_OPTIMISM_SEPOLIA_API_KEY } ` ,
109- accounts : [
110- `${ PRIVATE_KEY_FOR_V1_WALLET_CONTRACT_DEPLOYMENT } ` ,
111- `${ PRIVATE_KEY_FOR_V4_CONTRACT_DEPLOYMENT_BACKUP } `
112- ]
133+ accounts : getPrivateKey ( version )
113134 } ,
114135 opeth : {
115136 url : `${ QUICKNODE_OPTIMISM_API_KEY } ` ,
116- accounts : [
117- `${ PRIVATE_KEY_FOR_V1_WALLET_CONTRACT_DEPLOYMENT } ` ,
118- `${ PRIVATE_KEY_FOR_V4_CONTRACT_DEPLOYMENT_BACKUP } `
119- ]
137+ accounts : getPrivateKey ( version )
120138 } ,
121139 tzketh : {
122140 url : `${ QUICKNODE_ZKSYNC_SEPOLIA_API_KEY } ` ,
123- accounts : [ ` ${ PRIVATE_KEY_FOR_V4_CONTRACT_DEPLOYMENT } ` ]
141+ accounts : getPrivateKey ( version )
124142 }
125143 } ,
126144 gasReporter : {
0 commit comments