Skip to content

Commit 669bf42

Browse files
authored
Merge pull request #249 from gnosisguild/add-chains
Roll out to additional chains
2 parents 2719ec8 + 0705e2f commit 669bf42

File tree

14 files changed

+152
-104
lines changed

14 files changed

+152
-104
lines changed

.github/workflows/prod-release-deploy.yaml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,6 @@ env:
88
VITE_INFURA_ID: ${{ secrets.VITE_INFURA_ID }}
99
VITE_MULTI_SEND_CONTRACT: "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761"
1010
VITE_BACKEND_API_URL: "https://api.zodiac.gnosisguild.org/api"
11-
VITE_ETHERSCAN_KEY: ${{ secrets.VITE_ETHERSCAN_KEY }}
12-
VITE_GNOSISSCAN_KEY: ${{ secrets.VITE_GNOSISSCAN_KEY }}
13-
VITE_POLYGONSCAN_KEY: ${{ secrets.VITE_POLYGONSCAN_KEY }}
14-
VITE_BSCSCAN_KEY: ${{ secrets.VITE_BSCSCAN_KEY }}
15-
VITE_OPTIMISTIC_ETHERSCAN_KEY: ${{ secrets.VITE_OPTIMISTIC_ETHERSCAN_KEY }}
16-
VITE_ARBISCAN_KEY: ${{ secrets.VITE_ARBISCAN_KEY }}
17-
VITE_SNOWTRACE_KEY: ${{ secrets.VITE_SNOWTRACE_KEY }}
18-
VITE_BASESCAN_KEY: ${{ secrets.VITE_BASESCAN_KEY }}
1911

2012
jobs:
2113
deploy:

packages/app/.env.sample

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,3 @@ HTTPS=true
33
VITE_INFURA_ID=
44
VITE_MULTI_SEND_CONTRACT=0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761
55
VITE_BACKEND_API_URL=http://localhost:3001/api
6-
7-
# Blockchain explorers
8-
VITE_ETHERSCAN_KEY=
9-
VITE_GNOSISSCAN_KEY=
10-
VITE_POLYGONSCAN_KEY=
11-
VITE_BSCSCAN_KEY=
12-
VITE_OPTIMISTIC_ETHERSCAN_KEY=
13-
VITE_ARBISCAN_KEY=
14-
VITE_SNOWTRACE_KEY=
15-
VITE_BASESCAN_KEY=

packages/app/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"@gnosis.pm/safe-apps-react-sdk": "4.6.2",
1111
"@gnosis.pm/safe-deployments": "^1.19.0",
1212
"@gnosis.pm/safe-react-components": "^1.2.0",
13-
"@gnosis.pm/zodiac": "^4.0.3",
13+
"@gnosis-guild/zodiac": "^4.1.0",
1414
"@material-ui/core": "^4.12.4",
1515
"@material-ui/icons": "^4.11.3",
1616
"@material-ui/lab": "^4.0.0-alpha.61",
@@ -91,4 +91,4 @@
9191
]
9292
},
9393
"packageManager": "yarn@1.22.19"
94-
}
94+
}

packages/app/src/services/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
getModuleFactoryAndMasterCopy,
77
getModuleInstance,
88
KnownContracts,
9-
} from '@gnosis.pm/zodiac'
9+
} from '@gnosis-guild/zodiac'
1010
import { AddressOne, buildTransaction, SafeAbi } from './helpers'
1111
import { BaseTransaction } from '@gnosis.pm/safe-apps-sdk'
1212
import { getNetworkExplorerInfo } from '../utils/explorers'

packages/app/src/store/modules/helpers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
getModuleInstance,
77
KnownContracts,
88
SupportedNetworks,
9-
} from '@gnosis.pm/zodiac'
9+
} from '@gnosis-guild/zodiac'
1010
import { getModuleData } from '../../utils/contracts'
1111
import {
1212
DataDecoded,

packages/app/src/store/modules/models.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ContractAbis, KnownContracts } from '@gnosis.pm/zodiac'
1+
import { ContractAbis, KnownContracts } from '@gnosis-guild/zodiac'
22
import { Interface, InterfaceAbi } from 'ethers'
33

44
export enum ModuleType {

packages/app/src/utils/explorers.ts

Lines changed: 64 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,5 @@
11
import { NETWORK } from './networks'
22

3-
const isDev = import.meta.env.MODE === 'development'
4-
const VITE_ETHERSCAN_KEY = import.meta.env.VITE_ETHERSCAN_KEY
5-
if (!VITE_ETHERSCAN_KEY) {
6-
throw new Error('VITE_ETHERSCAN_KEY is not set')
7-
}
8-
9-
const VITE_GNOSISSCAN_KEY = import.meta.env.VITE_GNOSISSCAN_KEY
10-
if (!isDev && !VITE_GNOSISSCAN_KEY) {
11-
throw new Error('VITE_GNOSISSCAN_KEY is not set')
12-
}
13-
14-
const VITE_POLYGONSCAN_KEY = import.meta.env.VITE_POLYGONSCAN_KEY
15-
if (!isDev && !VITE_POLYGONSCAN_KEY) {
16-
throw new Error('VITE_POLYGONSCAN_KEY is not set')
17-
}
18-
19-
const VITE_BSCSCAN_KEY = import.meta.env.VITE_BSCSCAN_KEY
20-
if (!isDev && !VITE_BSCSCAN_KEY) {
21-
throw new Error('VITE_BSCSCAN_KEY is not set')
22-
}
23-
24-
const VITE_OPTIMISTIC_ETHERSCAN_KEY = import.meta.env.VITE_OPTIMISTIC_ETHERSCAN_KEY
25-
if (!isDev && !VITE_OPTIMISTIC_ETHERSCAN_KEY) {
26-
throw new Error('VITE_OPTIMISTIC_ETHERSCAN_KEY is not set')
27-
}
28-
29-
const VITE_ARBISCAN_KEY = import.meta.env.VITE_ARBISCAN_KEY
30-
if (!isDev && !VITE_ARBISCAN_KEY) {
31-
throw new Error('VITE_ARBISCAN_KEY is not set')
32-
}
33-
34-
const VITE_SNOWTRACE_KEY = import.meta.env.VITE_SNOWTRACE_KEY
35-
if (!isDev && !VITE_SNOWTRACE_KEY) {
36-
throw new Error('VITE_SNOWTRACE_KEY is not set')
37-
}
38-
39-
const VITE_BASESCAN_KEY = import.meta.env.VITE_BASESCAN_KEY
40-
if (!isDev && !VITE_BASESCAN_KEY) {
41-
throw new Error('VITE_BASESCAN_KEY is not set')
42-
}
43-
443
interface ExplorerData {
454
networkExplorerName: string
465
networkExplorerUrl: string
@@ -59,7 +18,7 @@ export const EXPLORERS_CONFIG: Record<NETWORK, ExplorerData> = {
5918
safeTransactionApi: 'https://safe-transaction-mainnet.safe.global/',
6019
safeUrl: 'https://app.safe.global/eth:',
6120
verifyContractUrl: 'https://etherscan.io/verifyContract',
62-
explorerApiKey: VITE_ETHERSCAN_KEY,
21+
explorerApiKey: '6RJ8KT4B1S9V7E3CIYECNY7HFW8IPWQ3C4',
6322
},
6423
[NETWORK.GNOSIS_CHAIN]: {
6524
networkExplorerName: 'GnosisScan',
@@ -68,7 +27,7 @@ export const EXPLORERS_CONFIG: Record<NETWORK, ExplorerData> = {
6827
safeUrl: 'https://app.safe.global/gno:',
6928
safeTransactionApi: 'https://safe-transaction-gnosis-chain.safe.global/',
7029
verifyContractUrl: 'https://gnosisscan.io/verifyContract',
71-
explorerApiKey: VITE_GNOSISSCAN_KEY,
30+
explorerApiKey: 'ZWZWSHX4X7K8G1ZFRETI4DERP2ZI5Y2QGF',
7231
},
7332
[NETWORK.POLYGON]: {
7433
networkExplorerName: 'Polygonscan',
@@ -77,16 +36,25 @@ export const EXPLORERS_CONFIG: Record<NETWORK, ExplorerData> = {
7736
safeUrl: 'https://app.safe.global/matic:',
7837
safeTransactionApi: 'https://safe-transaction-polygon.safe.global/',
7938
verifyContractUrl: 'https://polygonscan.com/verifyContract',
80-
explorerApiKey: VITE_POLYGONSCAN_KEY,
39+
explorerApiKey: 'NM937M1IZXVQ6QVDXS73XMF8JSAB677JWQ',
40+
},
41+
[NETWORK.ZKEVM]: {
42+
networkExplorerName: 'Polygonscan',
43+
networkExplorerUrl: 'https://zkevm.polygonscan.com',
44+
networkExplorerApiUrl: 'https://api-zkevm.polygonscan.com/api',
45+
safeTransactionApi: 'https://safe-transaction-zkevm.safe.global/',
46+
safeUrl: 'https://app.safe.global/zkevm:',
47+
verifyContractUrl: 'https://zkevm.polygonscan.com/verifyContract',
48+
explorerApiKey: 'NM937M1IZXVQ6QVDXS73XMF8JSAB677JWQ',
8149
},
8250
[NETWORK.BSC]: {
83-
networkExplorerName: 'Bscscan',
51+
networkExplorerName: 'BscScan',
8452
networkExplorerUrl: 'https://bscscan.com/',
8553
networkExplorerApiUrl: 'https://api.bscscan.com/api',
8654
safeUrl: 'https://app.safe.global/bsc:',
8755
safeTransactionApi: 'https://safe-transaction-bsc.safe.global/',
8856
verifyContractUrl: 'https://bscscan.com/verifyContract',
89-
explorerApiKey: VITE_BSCSCAN_KEY,
57+
explorerApiKey: 'AMXEAU3N9P7RJHFSZ7KAJDRY5MFJ1N29D6',
9058
},
9159
[NETWORK.OPTIMISM]: {
9260
networkExplorerName: 'Optimism',
@@ -95,7 +63,7 @@ export const EXPLORERS_CONFIG: Record<NETWORK, ExplorerData> = {
9563
safeTransactionApi: 'https://safe-transaction-optimism.safe.global/',
9664
safeUrl: 'https://app.safe.global/oeth:',
9765
verifyContractUrl: 'https://optimistic.etherscan.io/verifyContract',
98-
explorerApiKey: VITE_OPTIMISTIC_ETHERSCAN_KEY,
66+
explorerApiKey: 'IG8IW3N3CKCZPV5U14HQ56K9TEPX9SWXX4',
9967
},
10068
[NETWORK.ARBITRUM]: {
10169
networkExplorerName: 'Arbiscan',
@@ -104,7 +72,7 @@ export const EXPLORERS_CONFIG: Record<NETWORK, ExplorerData> = {
10472
safeTransactionApi: 'https://safe-transaction-arbitrum.safe.global/',
10573
safeUrl: 'https://app.safe.global/arb1:',
10674
verifyContractUrl: 'https://arbiscan.io/verifyContract',
107-
explorerApiKey: VITE_ARBISCAN_KEY,
75+
explorerApiKey: 'CSITWCYI9UDAJ7QS92FNVJ2XQP5B23P4J9',
10876
},
10977
[NETWORK.AVALANCHE]: {
11078
networkExplorerName: 'Snowtrace',
@@ -113,7 +81,7 @@ export const EXPLORERS_CONFIG: Record<NETWORK, ExplorerData> = {
11381
safeTransactionApi: 'https://safe-transaction-avalanche.safe.global/',
11482
safeUrl: 'https://app.safe.global/avax:',
11583
verifyContractUrl: 'https://snowtrace.io/verifyContract',
116-
explorerApiKey: VITE_SNOWTRACE_KEY,
84+
explorerApiKey: 'IAST9REKWMIW1QSE2M7K2IKKAZVNQPHC1U',
11785
},
11886
[NETWORK.SEPOLIA]: {
11987
networkExplorerName: 'Etherscan',
@@ -122,7 +90,16 @@ export const EXPLORERS_CONFIG: Record<NETWORK, ExplorerData> = {
12290
safeTransactionApi: 'https://safe-transaction-sepolia.safe.global/',
12391
safeUrl: 'https://app.safe.global/sep:',
12492
verifyContractUrl: 'https://sepolia.etherscan.io/verifyContract',
125-
explorerApiKey: VITE_ETHERSCAN_KEY,
93+
explorerApiKey: '6RJ8KT4B1S9V7E3CIYECNY7HFW8IPWQ3C4',
94+
},
95+
[NETWORK.BASE_SEPOLIA]: {
96+
networkExplorerName: 'BaseScan',
97+
networkExplorerUrl: 'https://sepolia.basescan.org',
98+
networkExplorerApiUrl: 'https://api-sepolia.basescan.org/api',
99+
safeTransactionApi: 'https://safe-transaction-base-sepolia.safe.global/',
100+
safeUrl: 'https://app.safe.global/basesep:',
101+
verifyContractUrl: 'https://sepolia.basescan.org/verifyContract',
102+
explorerApiKey: 'ZSBW5JZVFZIB19V7YBG14KQFTUXFT8BDNS',
126103
},
127104
[NETWORK.BASE]: {
128105
networkExplorerName: 'Basescan',
@@ -131,7 +108,43 @@ export const EXPLORERS_CONFIG: Record<NETWORK, ExplorerData> = {
131108
safeTransactionApi: 'https://safe-transaction-base.safe.global',
132109
safeUrl: 'https://app.safe.global/base:',
133110
verifyContractUrl: 'https://basescan.org/verifyContract',
134-
explorerApiKey: VITE_BASESCAN_KEY,
111+
explorerApiKey: 'ZSBW5JZVFZIB19V7YBG14KQFTUXFT8BDNS',
112+
},
113+
// [NETWORK.MANTLE]: {
114+
// networkExplorerName: 'Mantlescan',
115+
// networkExplorerUrl: 'https://mantlescan.xyz',
116+
// networkExplorerApiUrl: 'https://api.mantlescan.xyz/api',
117+
// safeTransactionApi: 'https://safe-transaction-mantle.safe.global/',
118+
// safeUrl: 'https://app.safe.global/mantle:',
119+
// verifyContractUrl: 'https://mantlescan.xyz/verifyContract',
120+
// explorerApiKey: 'XGKTSFD523UP64KEFWD5EDA5W1N6BBXZFT',
121+
// },
122+
[NETWORK.BERACHAIN]: {
123+
networkExplorerName: 'Berascan',
124+
networkExplorerUrl: 'https://berascan.com',
125+
networkExplorerApiUrl: 'https://api.berascan.com/api',
126+
safeTransactionApi: 'https://safe-transaction-berachain.safe.global/',
127+
safeUrl: 'https://app.safe.global/berachain:',
128+
verifyContractUrl: 'https://berascan.com/verifyContract',
129+
explorerApiKey: 'X39RQV6MWGUB3W4NC4VI6YM4MTYMCFN8Y9',
130+
},
131+
[NETWORK.SONIC]: {
132+
networkExplorerName: 'Sonicscan',
133+
networkExplorerUrl: 'https://sonicscan.org',
134+
networkExplorerApiUrl: 'https://api.sonicscan.org/api',
135+
safeTransactionApi: 'https://safe-transaction-sonic.safe.global/',
136+
safeUrl: 'https://app.safe.global/sonic:',
137+
verifyContractUrl: 'https://sonicscan.org/verifyContract',
138+
explorerApiKey: '4PKXQYT2DGQXHSINRFY4UM8RUFJHR9V1TX',
139+
},
140+
[NETWORK.CELO]: {
141+
networkExplorerName: 'Celoscan',
142+
networkExplorerUrl: 'https://celoscan.io',
143+
networkExplorerApiUrl: 'https://api.celoscan.io/api',
144+
safeTransactionApi: 'https://safe-transaction-celo.safe.global/',
145+
safeUrl: 'https://app.safe.global/celo:',
146+
verifyContractUrl: 'https://celoscan.io/verifyContract',
147+
explorerApiKey: '8ME8R1XQAGXK15UXPAFI46JTPP5NQ7WEMC',
135148
},
136149
}
137150

packages/app/src/utils/networks.ts

Lines changed: 55 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,16 @@ export enum NETWORK {
44
BSC = 56,
55
GNOSIS_CHAIN = 100,
66
POLYGON = 137,
7+
ZKEVM = 1101,
78
ARBITRUM = 42161,
89
AVALANCHE = 43114,
910
SEPOLIA = 11155111,
1011
BASE = 8453,
12+
BASE_SEPOLIA = 84532,
13+
// MANTLE = 5000,
14+
BERACHAIN = 80094,
15+
SONIC = 146,
16+
CELO = 42220,
1117
}
1218

1319
export interface Coin {
@@ -25,9 +31,13 @@ interface Network {
2531
export const NATIVE_ASSET: Record<string, Coin> = {
2632
ETH: { symbol: 'ETH', decimals: 18 },
2733
XDAI: { symbol: 'xDai', decimals: 18 },
28-
MATIC: { symbol: 'MATIC', decimals: 18 },
34+
POL: { symbol: 'POL', decimals: 18 },
2935
BNB: { symbol: 'BNB', decimals: 18 },
3036
AVAX: { symbol: 'AVAX', decimals: 18 },
37+
MNT: { symbol: 'MNT', decimals: 18 },
38+
S: { symbol: 'S', decimals: 18 },
39+
BERA: { symbol: 'BERA', decimals: 18 },
40+
CELO: { symbol: 'CELO', decimals: 18 },
3141
}
3242

3343
export const NETWORKS: Record<NETWORK, Network> = {
@@ -59,7 +69,13 @@ export const NETWORKS: Record<NETWORK, Network> = {
5969
chainId: NETWORK.POLYGON,
6070
name: 'polygon',
6171
shortName: 'matic',
62-
nativeAsset: NATIVE_ASSET.MATIC,
72+
nativeAsset: NATIVE_ASSET.POL,
73+
},
74+
[NETWORK.ZKEVM]: {
75+
chainId: NETWORK.ZKEVM,
76+
name: 'zkevm',
77+
shortName: 'zkevm',
78+
nativeAsset: NATIVE_ASSET.ETH,
6379
},
6480
[NETWORK.ARBITRUM]: {
6581
chainId: NETWORK.ARBITRUM,
@@ -85,16 +101,52 @@ export const NETWORKS: Record<NETWORK, Network> = {
85101
shortName: 'base',
86102
nativeAsset: NATIVE_ASSET.ETH,
87103
},
104+
[NETWORK.BASE_SEPOLIA]: {
105+
chainId: NETWORK.BASE_SEPOLIA,
106+
name: 'base_sepolia',
107+
shortName: 'basesep',
108+
nativeAsset: NATIVE_ASSET.ETH,
109+
},
110+
// [NETWORK.MANTLE]: {
111+
// chainId: NETWORK.MANTLE,
112+
// name: 'mantle',
113+
// shortName: 'mantle',
114+
// nativeAsset: NATIVE_ASSET.MNT,
115+
// },
116+
[NETWORK.BERACHAIN]: {
117+
chainId: NETWORK.BERACHAIN,
118+
name: 'berachain',
119+
shortName: 'berachain',
120+
nativeAsset: NATIVE_ASSET.BERA,
121+
},
122+
[NETWORK.SONIC]: {
123+
chainId: NETWORK.SONIC,
124+
name: 'sonic',
125+
shortName: 'sonic',
126+
nativeAsset: NATIVE_ASSET.S,
127+
},
128+
[NETWORK.CELO]: {
129+
chainId: NETWORK.CELO,
130+
name: 'celo',
131+
shortName: 'celo',
132+
nativeAsset: NATIVE_ASSET.CELO,
133+
},
88134
}
89135

90136
export const NETWORK_NATIVE_ASSET: Record<NETWORK, Coin> = {
91137
[NETWORK.MAINNET]: NATIVE_ASSET.ETH,
92138
[NETWORK.OPTIMISM]: NATIVE_ASSET.ETH,
93139
[NETWORK.GNOSIS_CHAIN]: NATIVE_ASSET.XDAI,
94-
[NETWORK.POLYGON]: NATIVE_ASSET.MATIC,
140+
[NETWORK.POLYGON]: NATIVE_ASSET.POL,
141+
[NETWORK.ZKEVM]: NATIVE_ASSET.ETH,
95142
[NETWORK.BSC]: NATIVE_ASSET.BNB,
96143
[NETWORK.ARBITRUM]: NATIVE_ASSET.ETH,
97144
[NETWORK.AVALANCHE]: NATIVE_ASSET.AVAX,
98145
[NETWORK.SEPOLIA]: NATIVE_ASSET.ETH,
99146
[NETWORK.BASE]: NATIVE_ASSET.ETH,
147+
[NETWORK.BASE_SEPOLIA]: NATIVE_ASSET.ETH,
148+
// [NETWORK.MANTLE]: NATIVE_ASSET.MNT,
149+
[NETWORK.SONIC]: NATIVE_ASSET.S,
150+
[NETWORK.CELO]: NATIVE_ASSET.CELO,
151+
[NETWORK.BERACHAIN]: NATIVE_ASSET.BERA,
100152
}

packages/app/src/views/AddModule/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import {
1919
ContractAddresses as AllContractAddresses,
2020
KnownContracts,
2121
SupportedNetworks,
22-
} from '@gnosis.pm/zodiac'
22+
} from '@gnosis-guild/zodiac'
2323

2424
const useStyles = makeStyles((theme) => ({
2525
root: {

0 commit comments

Comments
 (0)