-
Notifications
You must be signed in to change notification settings - Fork 101
Expand file tree
/
Copy path.env.example
More file actions
167 lines (125 loc) · 6.89 KB
/
.env.example
File metadata and controls
167 lines (125 loc) · 6.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
PRIVATE_KEY="<your private key>"
# All network RPCs (ETH_NODE_URI_*) for .env file can be populated with the newest and most reliable RPCs fetched from MongoDB
# These values are stored to share the most up-to-date RPCs that work, ensuring consistency across all team members and github actions
# If MongoDB is unavailable, RPCs will fall back to public endpoints from networks.json
# To populate all RPCs, please run "bun fetch-rpcs"
# To add a new RPC for a specific network, run: "bun add-network-rpc --network {networkName} --rpcUrl {rpcUrl}"
# Mainnet Explorer API Keys
MAINNET_ETHERSCAN_API_KEY=
ABSTRACT_ETHERSCAN_API_KEY=
BOBA_ETHERSCAN_API_KEY=
FUSE_ETHERSCAN_API_KEY=
GRAVITY_ETHERSCAN_API_KEY=
IMMUTABLEZKEVM_ETHERSCAN_API_KEY=
KAIA_ETHERSCAN_API_KEY=
LISK_ETHERSCAN_API_KEY=
MANTLE_ETHERSCAN_API_KEY=
METIS_ETHERSCAN_API_KEY=
MODE_ETHERSCAN_API_KEY=
OPBNB_ETHERSCAN_API_KEY=
ROOTSTOCK_ETHERSCAN_API_KEY=
SEI_ETHERSCAN_API_KEY=
UNICHAIN_ETHERSCAN_API_KEY=
XLAYER_ETHERSCAN_API_KEY=
ZKSYNC_ETHERSCAN_API_KEY=
ZKSYNC_NATIVE_VERIFIER=
TRONGRID_API_KEY=
PHAROS_SOCIALSCAN_API_KEY=
# Testnet Explorer API Keys
GOERLI_ETHERSCAN_API_KEY=
LINEATEST_ETHERSCAN_API_KEY=
MUMBAI_ETHERSCAN_API_KEY=
SEPOLIA_ETHERSCAN_API_KEY=
# ================= MongoDB Configuration =================
# Old MongoDB cluster - Used for:
# - Default database (deployment logs, RPC endpoints)
MONGODB_URI=""
# New MongoDB cluster - Used for:
# - sc_private.pendingTransactions (Safe transaction tracking)
SC_MONGODB_URI=""
# MongoDB Configuration Note:
# MONGODB_URI is required for deployment logging
# All deployment logs are stored in MongoDB (database: contract-deployments)
# Safe Transaction Signing Configuration
# Enable Safe transaction hash signing (set to true to enable, false to disable)
# When enabled, uses eth_sign to sign the Safe tx hash instead of EIP-712 typed data
# This is useful for hardware wallets (e.g. Ledger) that may reject large EIP-712 payloads
ENABLE_SAFE_TX_HASH_SIGNING=false
# ================= Deployment Configuration =================
# defines the environment (true=production, false=staging)
PRODUCTION=false
# the maximum time in seconds that the script will wait for blockchain to sync contract deployment
# we use this as double check to make sure that a contract was actually deployed
MAX_WAITING_TIME_FOR_BLOCKCHAIN_SYNC=60
# the maximum number of attempts to deploy a single contract
MAX_ATTEMPTS_PER_CONTRACT_DEPLOYMENT=10
# the maximum number of attempts to verify contract
MAX_ATTEMPTS_PER_CONTRACT_VERIFICATION=5
# the maximum number of attempts to execute a script (e.g. diamondUpdate)
MAX_ATTEMPTS_PER_SCRIPT_EXECUTION=5
# the maximum number of MongoDB query retries (e.g. getContractVersionFromMasterLog,
# getHighestDeployedContractVersionFromMasterLog, getConstructorArgsFromMasterLog).
# Used by helperFunctions.sh for deployment-log queries.
MONGO_MAX_RETRIES=3
# number of max jobs that scripts will do in parallel (e.g. when interacting with multiple networks)
MAX_CONCURRENT_JOBS=100
# the root directory of all contract src files
CONTRACT_DIRECTORY="src/"
# the directory of all deploy and update script
DEPLOY_SCRIPT_DIRECTORY="script/deploy/facets/"
# the directory of all task script
TASKS_SCRIPT_DIRECTORY="script/tasks/"
# the directory of all (facet) config script
CONFIG_SCRIPT_DIRECTORY="script/tasks/solidity/"
# the path of the JSON file that contains the target state
TARGET_STATE_PATH="script/deploy/_targetState.json"
# the path of the JSON file that contains the deployment log file
LOG_FILE_PATH="deployments/_deployments_log_file.json"
# the path of the JSON file that contains the bytecode storage file
BYTECODE_STORAGE_PATH="deployments/_bytecode_storage.json"
# the path of the JSON file that contains contract-specific reminders
CONTRACT_REMINDERS="script/deploy/resources/contractSpecificReminders.sh"
# the path of the JSON file that contains deploy requirements per contract
DEPLOY_REQUIREMENTS_PATH="script/deploy/resources/deployRequirements.json"
# the path of the JSON files that contains deploy configuration per contract
DEPLOY_CONFIG_FILE_PATH="config/"
# any networks listed here will be excluded from actions that are applied to "all networks"
# exclude all test networks: EXCLUDE_NETWORKS="bsctest,goerli,sepolia,mumbai,lineatest,localanvil"
# exclude all production networks: EXCLUDE_NETWORKS="mainnet,polygon,bsc,gnosis,okx,avalanche,arbitrum,optimism,moonbeam,celo,fuse,cronos,velas,boba,nova"
EXCLUDE_NETWORKS="bsc-testnet,goerli,sepolia,mumbai,lineatest,localanvil,velas"
# will output more detailed information for debugging purposes
DEBUG=true
# defines if newly deployed contracts should be verified or not
VERIFY_CONTRACTS=true
# contract verification will be deactivated for any network listed here
DO_NOT_VERIFY_IN_THESE_NETWORKS="gnosis,testNetwork,localanvil"
# script will use all periphery contracts by default, unless excluded here (must match exact filename without .sol, comma-separated without space)
EXCLUDE_PERIPHERY_CONTRACTS=""
# scripts will use all facet contracts by default, unless excluded here (must match exact filename without .sol, comma-separated without space)
EXCLUDE_FACET_CONTRACTS=""
# enable/disable notification sounds for long-running scripts
NOTIFICATION_SOUNDS=true
# if this flag is set to true, "LiFiDiamond" will be deployed to address 0x1231DEB6f5749EF6cE6943a275A1D3E7486F4EaE
DEPLOY_TO_DEFAULT_DIAMOND_ADDRESS=true
# fixed salt that is used to deploy a mutable diamond to our established 0x123.. address - DO NOT CHANGE THIS VALUE !!!
DEFAULT_DIAMOND_ADDRESS_DEPLOYSALT=0xc726deb4bf42c6ef5d0b4e3080ace43aed9b270938861f7cacf900eba890fa66
# Defines the maximum gas price for mainnet transactions (otherwise the script will wait until gas price is down)
MAINNET_MAXIMUM_GAS_PRICE=50000000000
# Gas estimate multiplier as a percentage (default: 130, which is Foundry's default = 30% buffer on top of estimate).
# Used by Foundry scripts (--gas-estimate-multiplier) and TypeScript Safe executors alike.
# Increase for chains where eth_estimateGas under-counts actual execution cost (e.g. set to 200 to double the estimate).
GAS_ESTIMATE_MULTIPLIER=130
# contains the ID of the production target state Google spreadsheet
TARGET_STATE_SPREADSHEET_ID_PRODUCTION=""
TARGET_STATE_SPREADSHEET_ID_STAGING=""
# used to start a local (Foundry) anvil network with the same private keys for testing purposes
MNEMONIC="test test test test test test test test test test test junk"
PRIVATE_KEY_ANVIL=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80
START_LOCAL_ANVIL_NETWORK_ON_SCRIPT_STARTUP=false
END_LOCAL_ANVIL_NETWORK_ON_SCRIPT_COMPLETION=true
# if this flag is set to false, the scriptMaster will not compile on start (helpful for zksync/abstract to avoid constant recompilations)
COMPILE_ON_STARTUP=false
# webhook URL for sending messages to Slack 'dev-sc-general' channel
SLACK_WEBHOOK_SC_GENERAL=
# the path to the foundry.toml file
FOUNDRY_TOML_FILE_PATH="foundry.toml"