Skip to content

Commit 5e193bf

Browse files
committed
feat: Base setup and BCAT prep
1 parent f28f8aa commit 5e193bf

File tree

8 files changed

+46
-7
lines changed

8 files changed

+46
-7
lines changed

.env.example

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,6 @@ POLYGONSCAN_API_KEY=""
1212
FANTOMSCAN_API_KEY=""
1313
OPTIMISM_API_KEY=""
1414
ARBISCAN_API_KEY=""
15+
BASESCAN_API_KEY=""
1516

1617
#ETHERSCAN_API_KEY="" # hardhat-deploy uses this for _all_ networks, better avoid setting it

README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Beam Omnichain Tokens
22

3-
[LayerZero](https://layerzero.gitbook.io/docs/) is an omnichain interoperability protocol that connects Beam to other networks.
3+
[LayerZero](https://docs.layerzero.network/v1/) is an omnichain interoperability protocol that connects Beam to other networks.
44
It enables everyone to build **Omnichain tokens and NFTs on Beam** that can be transferred cross-chain, and bridge existing assets from other networks.
55

66
Merit Circle's [LayerZero contracts repository](https://github.com/Merit-Circle/layerzero-contracts) is forked from
@@ -255,8 +255,8 @@ npx hardhat --network avalanche etherscan-verify
255255

256256
## Supported networks
257257

258-
The LayerZero protocol is active on a wide selection of [test](https://layerzero.gitbook.io/docs/technical-reference/testnet/testnet-addresses)- and
259-
[mainnets](https://layerzero.gitbook.io/docs/technical-reference/mainnet/supported-chain-ids), though not all chains are interconnected by default.
258+
The LayerZero protocol is active on a wide selection of [test](https://docs.layerzero.network/v1/developers/technical-reference/testnet/testnet-addresses)- and
259+
[mainnets](https://docs.layerzero.network/v1/developers/technical-reference/mainnet/mainnet-addresses), though not all chains are interconnected by default.
260260

261261
Currently, both Beam test- and mainnet connect to
262262

@@ -265,5 +265,6 @@ Currently, both Beam test- and mainnet connect to
265265
- BNB Smart Chain
266266
- Fantom
267267
- Arbitrum
268+
- Base
268269

269270
If your project requires interconnectivity with another network, [the Beam team](mailto:[email protected]) is happy to help!

constants/chainIds.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
"optimism": 111,
88
"fantom": 112,
99
"beam": 198,
10+
"base": 184,
1011

1112
"goerli": 10121,
1213
"sepolia": 10161,
@@ -18,5 +19,6 @@
1819
"fantom-testnet": 10112,
1920
"meter-testnet": 10156,
2021
"zksync-testnet": 10165,
21-
"beam-testnet": 10178
22+
"beam-testnet": 10178,
23+
"base-testnet": 10245
2224
}

constants/environments.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
"arbitrum",
88
"optimism",
99
"fantom",
10-
"beam"
10+
"beam",
11+
"base"
1112
],
1213
"testnet": [
1314
"goerli",
@@ -18,6 +19,7 @@
1819
"arbitrum-goerli",
1920
"optimism-goerli",
2021
"fantom-testnet",
21-
"beam-testnet"
22+
"beam-testnet",
23+
"base-testnet"
2224
]
2325
}

constants/layerzeroEndpoints.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
"optimism": "0x3c2269811836af69497E5F486A85D7316753cf62",
88
"fantom": "0xb6319cC6c8c27A8F5dAF0dD3DF91EA35C4720dd7",
99
"beam": "0xb6319cC6c8c27A8F5dAF0dD3DF91EA35C4720dd7",
10+
"base:": "0xb6319cC6c8c27A8F5dAF0dD3DF91EA35C4720dd7",
1011

1112
"goerli": "0xbfD2135BFfbb0B5378b56643c2Df8a87552Bfa23",
1213
"sepolia": "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1",
@@ -18,5 +19,6 @@
1819
"fantom-testnet": "0x7dcAD72640F835B0FA36EFD3D6d3ec902C7E5acf",
1920
"meter-testnet": "0x3De2f3D1Ac59F18159ebCB422322Cb209BA96aAD",
2021
"zksync-testnet": "0x093D2CF57f764f09C3c2Ac58a42A2601B8C79281",
21-
"beam-testnet": "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1"
22+
"beam-testnet": "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1",
23+
"base-testnet": "0x55370E0fBB5f5b8dAeD978BA1c075a499eB107B8"
2224
}

constants/tokenConfig.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@ module.exports = {
5959
symbol: "ETH",
6060
withFee: true,
6161
},
62+
BeamcatProxyOFT: {
63+
address: "0xEeee2A2E650697d2A8e8BC990C2f3d04203bE06f",
64+
withFee: true,
65+
},
6266
},
6367
"beam-testnet": {
6468
BeamNativeOFT: {
@@ -201,4 +205,11 @@ module.exports = {
201205
withFee: true,
202206
},
203207
},
208+
base: {
209+
BeamcatOFT: {
210+
name: "BEAMCAT",
211+
symbol: "BCAT",
212+
withFee: true,
213+
},
214+
},
204215
}

contracts/contracts-upgradable/examples/OFTPermit.sol

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,7 @@ contract ForgottenPlaylandProxyOFT is ProxyOFTWithFeeUpgradeable {}
1212
contract CastleOfBlackwaterOFT is OFTWithFeePermitUpgradeable {}
1313

1414
contract CastleOfBlackwaterProxyOFT is ProxyOFTWithFeeUpgradeable {}
15+
16+
contract BeamcatOFT is OFTWithFeePermitUpgradeable {}
17+
18+
contract BeamcatProxyOFT is ProxyOFTWithFeeUpgradeable {}

hardhat.config.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ const apiKey = {
6464
arbitrum: process.env.ARBISCAN_API_KEY || "",
6565
"imtbl-zkevm-testnet": "a",
6666
"imtbl-zkevm": "a",
67+
base: process.env.BASESCAN_API_KEY || "",
68+
"base-testnet": process.env.BASESCAN_API_KEY || "",
6769
}
6870

6971
const apiUrl = {
@@ -84,6 +86,8 @@ const apiUrl = {
8486
"arbitrum-goerli": "https://api-goerli.arbiscan.io",
8587
"imtbl-zkevm-testnet": "https://explorer.testnet.immutable.com/api",
8688
"imtbl-zkevm": "https://explorer.immutable.com/api",
89+
base: "https://basescan.org",
90+
"base-testnet": "https://sepolia.basescan.org",
8791
}
8892

8993
// `hardhat-deploy etherscan-verify` network config
@@ -167,6 +171,12 @@ const networks = {
167171
chainId: 13371,
168172
accounts: accounts(),
169173
},
174+
base: {
175+
url: "https://mainnet.base.org",
176+
chainId: 8453,
177+
accounts: accounts(),
178+
verify: verifyChain("base"),
179+
},
170180

171181
// testnets
172182
goerli: {
@@ -227,6 +237,12 @@ const networks = {
227237
chainId: 13473,
228238
accounts: accounts(),
229239
},
240+
"base-testnet": {
241+
url: "https://sepolia.base.org",
242+
chainId: 84532,
243+
accounts: accounts(),
244+
verify: verifyChain("base-testnet"),
245+
},
230246
}
231247

232248
// You need to export an object to set up your config

0 commit comments

Comments
 (0)