-
Notifications
You must be signed in to change notification settings - Fork 19
/
Copy pathMakefile
368 lines (274 loc) · 16.9 KB
/
Makefile
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
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
# None of the targets actually build any binaries so we make them all as phony
.PHONY: build deploy configure deploy-sandbox start-sandbox
# To make the code bit more DRY we'll isolate the commonly used stuff into variables
PACKAGE=@stargatefinance/stg-evm-v2
WORKSPACE=pnpm --filter $(PACKAGE)
HARDHAT=$(WORKSPACE) run hardhat
# We define the configuration commands to keep things DRY
TRANSFER_OWNERSHIP=$(HARDHAT) lz:ownable:transfer-ownership
CONFIGURE_ASSET=$(HARDHAT) stg:wire::asset
CONFIGURE_OFT=$(HARDHAT) stg:wire::oft
CONFIGURE_USDC=$(HARDHAT) stg:wire::usdc
CONFIGURE_USDC_SET_ADMIN=$(HARDHAT) stg:wire::usdc:set-admin
CONFIGURE_USDC_INITIALIZE_MINTERS=$(HARDHAT) stg:wire::usdc:initialize-minters
CONFIGURE_CREDIT_MESSAGING=$(HARDHAT) stg:wire::credit-messaging
CONFIGURE_TOKEN_MESSAGING=$(HARDHAT) stg:wire::token-messaging
CONFIGURE_TOKEN_MESSAGING_INITIALIZE_STORAGE=$(HARDHAT) stg:wire::token-messaging:initialize-storage
CONFIGURE_FEELIB_V1=$(HARDHAT) stg:wire::feelib-v1
CONFIGURE_REWARDER=$(HARDHAT) stg:wire::rewarder
CONFIGURE_REWARDER_REWARDS=$(HARDHAT) stg:set::rewards
CONFIGURE_STAKING=$(HARDHAT) stg:wire::staking
CONFIGURE_OFT_WRAPPER=$(HARDHAT) stg:wire::oft-wrapper
CONFIGURE_TREASURER=$(HARDHAT) stg:wire::treasurer
CONFIGURE_MINT_ALLOWANCE=$(HARDHAT) stg:set::mint-allowance
CONFIGURE_LIQUIDITY=$(HARDHAT) stg:add::liquidity
VALIDATE_RPCS = $(HARDHAT) lz:healthcheck:validate:rpcs
SOURCE_TETHER_DIR=packages/stg-evm-v2/TetherTokenV2.sol
ARTIFACTS_DIR=packages/stg-evm-v2/artifacts/
ARTIFACTS_ZK_DIR=packages/stg-evm-v2/artifacts-zk/
# Arguments to be always passed to hardhat lz:deploy devtools command
#
# These allow consumers of this script to pass flags like --ci or --reset
DEPLOY_ARGS_COMMON=
# Specific arguments to be passed to hardhat lz:deploy devtools command
#
# These can be overwritten by specific targets
DEPLOY_ARGS=
# Arguments to be always passed to the configuration tasks
#
# These allow consumers of this script to pass flags like --ci
CONFIGURE_ARGS_COMMON=
#
# This target will build the contracts package and its dependencies
#
build:
pnpm build --filter $(PACKAGE)
#
# This target will deploy contracts for a particular network stage (mainnet,testnet,sandbox)
#
# This is a reusable target and allows customization by other, network-specific targets
# (for example for sandbox we want to reset the existing deployments)
#
deploy:
$(HARDHAT) lz:deploy $(DEPLOY_ARGS_COMMON) $(DEPLOY_ARGS)
#
# This target will start the localnet containers and wait for them to be ready
#
start-sandbox:
$(WORKSPACE) run start --build --wait
#
# This target will deploy the localnet contracts
#
deploy-sandbox: DEPLOY_ARGS=--reset --stage sandbox
deploy-sandbox: build stop-sandbox start-sandbox deploy
#
# This target will configure the sandbox contracts
#
configure-sandbox: CONFIG_BASE_PATH=./devtools/config/sandbox
configure-sandbox:
# First we configure the mock token ownership
$(TRANSFER_OWNERSHIP) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/mocks.oft.config.ts --signer deployer
# Set the admin to secondary role so our calls as owner get through
$(CONFIGURE_USDC_SET_ADMIN) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/usdc-admin.config.ts --signer deployer
# Configure the minters while we are still MasterMinters
$(CONFIGURE_USDC_INITIALIZE_MINTERS) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/usdc-token.config.ts --signer deployer
# Configure everything
$(CONFIGURE_USDC) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/usdc-token.config.ts --signer deployer
# Transfer ownership
$(TRANSFER_OWNERSHIP) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/usdc-token.config.ts --signer deployer
# Now we configure the assets
$(CONFIGURE_ASSET) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/asset.usdc.config.ts --signer deployer
$(CONFIGURE_ASSET) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/asset.usdt.config.ts --signer deployer
# Configure credit messaging
$(CONFIGURE_CREDIT_MESSAGING) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/credit-messaging.config.ts --signer deployer
# Configure token messaging
$(CONFIGURE_TOKEN_MESSAGING) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/token-messaging.config.ts --signer deployer
$(CONFIGURE_TOKEN_MESSAGING) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/token-messaging.planner.config.ts --signer planner
# Configure feelib V1
$(CONFIGURE_FEELIB_V1) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/feelib-v1.usdc.config.ts --signer deployer
$(CONFIGURE_FEELIB_V1) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/feelib-v1.usdt.config.ts --signer deployer
$(CONFIGURE_FEELIB_V1) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/feelib-v1.eth.config.ts --signer deployer
# Configure treasurer
$(CONFIGURE_TREASURER) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/treasurer.config.ts --signer deployer
# Configure staking
$(CONFIGURE_STAKING) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/staking.config.ts --signer deployer
# Configure rewarder
$(CONFIGURE_REWARDER) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/rewarder.config.ts --signer deployer
# Configure mint/allowance for setting rewarder rewards and adding liquidity
$(CONFIGURE_MINT_ALLOWANCE) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/mint.allowance.config.ts --signer deployer
# Configure rewarder rewards
$(CONFIGURE_REWARDER_REWARDS) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/rewarder.rewards.config.ts --signer deployer
# Configure liquidity
$(CONFIGURE_LIQUIDITY) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/deposit.config.ts --signer deployer
#
# This target will start the localnet containers and wait for them to be ready
#
stop-sandbox:
$(WORKSPACE) run stop
#
# This target will take a snapshot of the localnet EVM filesystem
#
snapshot-sandbox:
# This will retrieve the current EVM node state to the local filesystem
$(WORKSPACE) run snapshot:retrieve
#
# This target will build snapshot images from the EVM filesystem snapshots
#
build-and-push-sandbox: snapshot-sandbox
# This will build & publish the snapshot images
$(WORKSPACE) run snapshot:build-and-push
#
# Convenience target that will run the whole snapshot setup
#
sandbox: deploy-sandbox configure-sandbox build-and-push-sandbox
#
# This target will deploy the testnet contracts
#
deploy-testnet: DEPLOY_ARGS=--stage testnet
deploy-testnet: build deploy
#
# This target will configure the testnet contracts
#
configure-testnet: CONFIG_BASE_PATH=./devtools/config/testnet
configure-testnet:
# Validate RPCs
$(VALIDATE_RPCS) --config ./hardhat.config.ts --timeout 5000
# Configure the OFTs
$(CONFIGURE_OFT) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/oft-token.config.ts --signer deployer
# Configure the minters while we are still MasterMinters
$(CONFIGURE_USDC_INITIALIZE_MINTERS) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/usdc-token.config.ts --signer deployer
# Configure everything
$(CONFIGURE_USDC) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/usdc-token.config.ts --signer deployer
# Transfer ownership
$(TRANSFER_OWNERSHIP) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/usdc-token.config.ts --signer deployer
# Copy TetherTokenV2.sol directory to the artifacts directory
cp -r $(SOURCE_TETHER_DIR) $(ARTIFACTS_DIR)
# Copy TetherTokenV2.sol directory to the artifacts-zk directory
cp -r $(SOURCE_TETHER_DIR) $(ARTIFACTS_ZK_DIR)
# Transfer USDT ownership
$(TRANSFER_OWNERSHIP) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/usdt-token.config.ts --signer deployer
# Configure the assets
$(CONFIGURE_ASSET) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/asset.usdc.config.ts --signer deployer
$(CONFIGURE_ASSET) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/asset.usdt.config.ts --signer deployer
$(CONFIGURE_ASSET) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/asset.eth.config.ts --signer deployer
# Configure credit messaging
$(CONFIGURE_CREDIT_MESSAGING) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/credit-messaging.config.ts --signer deployer
# Configure token messaging
$(CONFIGURE_TOKEN_MESSAGING) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/token-messaging.config.ts --signer deployer
# Initialize bus storage for token messaging
# $(CONFIGURE_TOKEN_MESSAGING_INITIALIZE_STORAGE) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/token-messaging.config.ts --signer deployer
# Configure feelib V1
$(CONFIGURE_FEELIB_V1) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/feelib-v1.usdc.config.ts --signer deployer
$(CONFIGURE_FEELIB_V1) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/feelib-v1.usdt.config.ts --signer deployer
$(CONFIGURE_FEELIB_V1) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/feelib-v1.eth.config.ts --signer deployer
# Transfer the feelib V1 ownership
$(TRANSFER_OWNERSHIP) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/feelib-v1.usdc.config.ts --signer deployer
$(TRANSFER_OWNERSHIP) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/feelib-v1.usdt.config.ts --signer deployer
$(TRANSFER_OWNERSHIP) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/feelib-v1.eth.config.ts --signer deployer
# Configure treasurer
$(CONFIGURE_TREASURER) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/treasurer.config.ts --signer deployer
# Configure staking
$(CONFIGURE_STAKING) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/staking.config.ts --signer deployer
# Configure rewarder
$(CONFIGURE_REWARDER) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/rewarder.config.ts --signer deployer
# Configure mint/allowance for setting rewarder rewards and adding liquidity
$(CONFIGURE_MINT_ALLOWANCE) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/mint.allowance.config.ts --signer deployer
# Configure rewarder rewards
$(CONFIGURE_REWARDER_REWARDS) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/rewarder.rewards.config.ts --signer deployer
# Configure liquidity
$(CONFIGURE_LIQUIDITY) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/deposit.config.ts --signer deployer
testnet: deploy-testnet configure-testnet
#
# This target will deploy the mainnet contracts
#
deploy-mainnet: DEPLOY_ARGS=--stage mainnet
deploy-mainnet: build deploy
#
# This target will configure everything that is easier to configure with a hot wallet
#
preconfigure-mainnet: CONFIG_BASE_PATH=./devtools/config/mainnet/01
preconfigure-mainnet:
# Validate RPCs
$(VALIDATE_RPCS) --config ./hardhat.config.ts
# Configure the OFTs
$(CONFIGURE_OFT) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/oft-token.config.ts --signer deployer
# Configure the minters while we are still MasterMinters
$(CONFIGURE_USDC_INITIALIZE_MINTERS) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/usdc-token.config.ts --signer deployer
# Configure everything else for USDC
$(CONFIGURE_USDC) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/usdc-token.config.ts --signer deployer
#
# This target will configure the mainnet contracts
#
configure-mainnet: CONFIG_BASE_PATH=./devtools/config/mainnet/01
configure-mainnet:
# Configure the assets
$(CONFIGURE_ASSET) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/asset.eth.config.ts --signer deployer
$(CONFIGURE_ASSET) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/asset.meth.config.ts --signer deployer
$(CONFIGURE_ASSET) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/asset.metis.config.ts --signer deployer
$(CONFIGURE_ASSET) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/asset.usdc.config.ts --signer deployer
$(CONFIGURE_ASSET) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/asset.usdt.config.ts --signer deployer
# Configure credit messaging
$(CONFIGURE_CREDIT_MESSAGING) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/credit-messaging.config.ts --signer deployer
# Configure token messaging
$(CONFIGURE_TOKEN_MESSAGING) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/token-messaging.config.ts --signer deployer
# Initialize bus storage for token messaging
#
# We want this particular configuration to never be batched as the individual transactions are quite gas-intensive
# LZ_ENABLE_EXPERIMENTAL_BATCHED_SEND="" $(CONFIGURE_TOKEN_MESSAGING_INITIALIZE_STORAGE) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/token-messaging.config.ts --signer deployer
# Configure feelib V1
$(CONFIGURE_FEELIB_V1) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/feelib-v1.eth.config.ts --signer deployer
$(CONFIGURE_FEELIB_V1) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/feelib-v1.meth.config.ts --signer deployer
$(CONFIGURE_FEELIB_V1) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/feelib-v1.metis.config.ts --signer deployer
$(CONFIGURE_FEELIB_V1) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/feelib-v1.usdc.config.ts --signer deployer
$(CONFIGURE_FEELIB_V1) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/feelib-v1.usdt.config.ts --signer deployer
# Configure treasurer
$(CONFIGURE_TREASURER) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/treasurer.config.ts --signer deployer
# Configure staking
$(CONFIGURE_STAKING) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/staking.config.ts --signer deployer
# Configure rewarder
$(CONFIGURE_REWARDER) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/rewarder.config.ts --signer deployer
# Configure OFT Wrapper
$(CONFIGURE_OFT_WRAPPER) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/oft-wrapper.config.ts --signer deployer
transfer-mainnet: CONFIG_BASE_PATH=./devtools/config/mainnet/01
transfer-mainnet:
# The OFTs
$(TRANSFER_OWNERSHIP) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/oft-token.config.ts --signer deployer
# Transfer USDC ownership
$(TRANSFER_OWNERSHIP) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/usdc-token.config.ts --signer deployer
# Copy TetherTokenV2.sol directory to the artifacts directory
cp -r $(SOURCE_TETHER_DIR) $(ARTIFACTS_DIR)
# Copy TetherTokenV2.sol directory to the artifacts-zk directory
cp -r $(SOURCE_TETHER_DIR) $(ARTIFACTS_ZK_DIR)
# Transfer USDT ownership
$(TRANSFER_OWNERSHIP) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/usdt-token.config.ts --signer deployer
# The assets
$(TRANSFER_OWNERSHIP) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/asset.eth.config.ts --signer deployer
$(TRANSFER_OWNERSHIP) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/asset.meth.config.ts --signer deployer
$(TRANSFER_OWNERSHIP) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/asset.metis.config.ts --signer deployer
$(TRANSFER_OWNERSHIP) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/asset.usdc.config.ts --signer deployer
$(TRANSFER_OWNERSHIP) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/asset.usdt.config.ts --signer deployer
# Configure credit messaging
$(TRANSFER_OWNERSHIP) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/credit-messaging.config.ts --signer deployer
# Configure token messaging
$(TRANSFER_OWNERSHIP) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/token-messaging.config.ts --signer deployer
# Transfer the feelib V1 ownership
$(TRANSFER_OWNERSHIP) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/feelib-v1.eth.config.ts --signer deployer
$(TRANSFER_OWNERSHIP) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/feelib-v1.meth.config.ts --signer deployer
$(TRANSFER_OWNERSHIP) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/feelib-v1.metis.config.ts --signer deployer
$(TRANSFER_OWNERSHIP) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/feelib-v1.usdc.config.ts --signer deployer
$(TRANSFER_OWNERSHIP) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/feelib-v1.usdt.config.ts --signer deployer
# Configure treasurer
$(TRANSFER_OWNERSHIP) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/treasurer.config.ts --signer deployer
# Configure staking
$(TRANSFER_OWNERSHIP) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/staking.config.ts --signer deployer
# Configure rewarder
$(TRANSFER_OWNERSHIP) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/rewarder.config.ts --signer deployer
# Configure OFT wrapper
$(TRANSFER_OWNERSHIP) $(CONFIGURE_ARGS_COMMON) --oapp-config $(CONFIG_BASE_PATH)/oft-wrapper.config.ts --signer deployer
# Please be careful with this target, I'd much rather you run the commands one by one
#
# make deploy-mainnet
# make preconfigure-mainnet
# make transfer-mainnet
# make configure-mainnet
mainnet: deploy-mainnet preconfigure-mainnet transfer-mainnet configure-mainnet