Celo mainnet deploy changes

This commit is contained in:
Bruce Riley 2022-05-12 16:12:40 +00:00 committed by Evan Gray
parent 4d43eb5552
commit d266438654
10 changed files with 34 additions and 29 deletions

View File

@ -114,5 +114,6 @@ For example, to submit a guardian set upgrade on all chains, simply run:
worm submit $(cat guardian-upgrade.txt) --network mainnet --chain solana worm submit $(cat guardian-upgrade.txt) --network mainnet --chain solana
worm submit $(cat guardian-upgrade.txt) --network mainnet --chain terra worm submit $(cat guardian-upgrade.txt) --network mainnet --chain terra
worm submit $(cat guardian-upgrade.txt) --network mainnet --chain ethereum worm submit $(cat guardian-upgrade.txt) --network mainnet --chain ethereum
worm submit $(cat guardian-upgrade.txt) --network mainnet --chain celo
The VAA payload type (guardian set upgrade) specifies that this VAA should go to the core bridge, and the tool directs it there. The VAA payload type (guardian set upgrade) specifies that this VAA should go to the core bridge, and the tool directs it there.

View File

@ -75,7 +75,7 @@ const MAINNET = {
key: get_env_var("ETH_KEY"), key: get_env_var("ETH_KEY"),
}, },
celo: { celo: {
rpc: undefined, rpc: "https://forno.celo.org",
key: get_env_var("ETH_KEY"), key: get_env_var("ETH_KEY"),
}, },
near: { near: {

View File

@ -11,5 +11,5 @@ INIT_GOV_CONTRACT=0x000000000000000000000000000000000000000000000000000000000000
BRIDGE_INIT_CHAIN_ID=0xE BRIDGE_INIT_CHAIN_ID=0xE
BRIDGE_INIT_GOV_CHAIN_ID=0x1 BRIDGE_INIT_GOV_CHAIN_ID=0x1
BRIDGE_INIT_GOV_CONTRACT=0x0000000000000000000000000000000000000000000000000000000000000004 BRIDGE_INIT_GOV_CONTRACT=0x0000000000000000000000000000000000000000000000000000000000000004
# WCELO # There is no WCELO.
BRIDGE_INIT_WETH=0x3Ad443d769A07f287806874F8E5405cE3Ac902b9 BRIDGE_INIT_WETH=0x0000000000000000000000000000000000000000

View File

@ -222,6 +222,8 @@ module.exports = {
) )
}, },
network_id: 42220, network_id: 42220,
gas: 8000000,
gasPrice: null
}, },
celo_alfajores_testnet: { celo_alfajores_testnet: {
provider: () => { provider: () => {

View File

@ -106,13 +106,13 @@ func runListNodes(cmd *cobra.Command, args []string) {
{"Aurora", vaa.ChainIDAurora}, {"Aurora", vaa.ChainIDAurora},
{"Fantom", vaa.ChainIDFantom}, {"Fantom", vaa.ChainIDFantom},
{"Karura", vaa.ChainIDKarura}, {"Karura", vaa.ChainIDKarura},
{"Celo", vaa.ChainIDCelo},
} }
if isTestnet { if isTestnet {
networks = append(networks, network{"Ropsten", vaa.ChainIDEthereumRopsten}) networks = append(networks, network{"Ropsten", vaa.ChainIDEthereumRopsten})
networks = append(networks, network{"Acala", vaa.ChainIDAcala}) networks = append(networks, network{"Acala", vaa.ChainIDAcala})
networks = append(networks, network{"Klaytn", vaa.ChainIDKlaytn}) networks = append(networks, network{"Klaytn", vaa.ChainIDKlaytn})
networks = append(networks, network{"Celo", vaa.ChainIDCelo})
networks = append(networks, network{"Moonbeam", vaa.ChainIDMoonbeam}) networks = append(networks, network{"Moonbeam", vaa.ChainIDMoonbeam})
} }

View File

@ -328,12 +328,12 @@ func runNode(cmd *cobra.Command, args []string) {
readiness.RegisterComponent(common.ReadinessAuroraSyncing) readiness.RegisterComponent(common.ReadinessAuroraSyncing)
readiness.RegisterComponent(common.ReadinessFantomSyncing) readiness.RegisterComponent(common.ReadinessFantomSyncing)
readiness.RegisterComponent(common.ReadinessKaruraSyncing) readiness.RegisterComponent(common.ReadinessKaruraSyncing)
readiness.RegisterComponent(common.ReadinessCeloSyncing)
if *testnetMode { if *testnetMode {
readiness.RegisterComponent(common.ReadinessEthRopstenSyncing) readiness.RegisterComponent(common.ReadinessEthRopstenSyncing)
readiness.RegisterComponent(common.ReadinessAcalaSyncing) readiness.RegisterComponent(common.ReadinessAcalaSyncing)
readiness.RegisterComponent(common.ReadinessKlaytnSyncing) readiness.RegisterComponent(common.ReadinessKlaytnSyncing)
readiness.RegisterComponent(common.ReadinessCeloSyncing)
readiness.RegisterComponent(common.ReadinessMoonbeamSyncing) readiness.RegisterComponent(common.ReadinessMoonbeamSyncing)
} }
@ -443,6 +443,12 @@ func runNode(cmd *cobra.Command, args []string) {
if *karuraContract == "" && !*unsafeDevMode { if *karuraContract == "" && !*unsafeDevMode {
logger.Fatal("Please specify --karuraContract") logger.Fatal("Please specify --karuraContract")
} }
if *celoRPC == "" {
logger.Fatal("Please specify --celoRPC")
}
if *celoContract == "" && !*unsafeDevMode {
logger.Fatal("Please specify --celoContract")
}
if *testnetMode { if *testnetMode {
if *ethRopstenRPC == "" { if *ethRopstenRPC == "" {
logger.Fatal("Please specify --ethRopstenRPC") logger.Fatal("Please specify --ethRopstenRPC")
@ -462,12 +468,6 @@ func runNode(cmd *cobra.Command, args []string) {
if *klaytnContract == "" { if *klaytnContract == "" {
logger.Fatal("Please specify --klaytnContract") logger.Fatal("Please specify --klaytnContract")
} }
if *celoRPC == "" {
logger.Fatal("Please specify --celoRPC")
}
if *celoContract == "" {
logger.Fatal("Please specify --celoContract")
}
if *moonbeamRPC == "" { if *moonbeamRPC == "" {
logger.Fatal("Please specify --moonbeamRPC") logger.Fatal("Please specify --moonbeamRPC")
} }
@ -493,12 +493,6 @@ func runNode(cmd *cobra.Command, args []string) {
if *klaytnContract != "" && !*unsafeDevMode { if *klaytnContract != "" && !*unsafeDevMode {
logger.Fatal("Please do not specify --klaytnContract") logger.Fatal("Please do not specify --klaytnContract")
} }
if *celoRPC != "" && !*unsafeDevMode {
logger.Fatal("Please do not specify --celoRPC")
}
if *celoContract != "" && !*unsafeDevMode {
logger.Fatal("Please do not specify --celoContract")
}
if *moonbeamRPC != "" && !*unsafeDevMode { if *moonbeamRPC != "" && !*unsafeDevMode {
logger.Fatal("Please do not specify --moonbeamRPC") logger.Fatal("Please do not specify --moonbeamRPC")
} }
@ -689,10 +683,10 @@ func runNode(cmd *cobra.Command, args []string) {
chainObsvReqC[vaa.ChainIDAurora] = make(chan *gossipv1.ObservationRequest) chainObsvReqC[vaa.ChainIDAurora] = make(chan *gossipv1.ObservationRequest)
chainObsvReqC[vaa.ChainIDFantom] = make(chan *gossipv1.ObservationRequest) chainObsvReqC[vaa.ChainIDFantom] = make(chan *gossipv1.ObservationRequest)
chainObsvReqC[vaa.ChainIDKarura] = make(chan *gossipv1.ObservationRequest) chainObsvReqC[vaa.ChainIDKarura] = make(chan *gossipv1.ObservationRequest)
chainObsvReqC[vaa.ChainIDCelo] = make(chan *gossipv1.ObservationRequest)
if *testnetMode { if *testnetMode {
chainObsvReqC[vaa.ChainIDAcala] = make(chan *gossipv1.ObservationRequest) chainObsvReqC[vaa.ChainIDAcala] = make(chan *gossipv1.ObservationRequest)
chainObsvReqC[vaa.ChainIDKlaytn] = make(chan *gossipv1.ObservationRequest) chainObsvReqC[vaa.ChainIDKlaytn] = make(chan *gossipv1.ObservationRequest)
chainObsvReqC[vaa.ChainIDCelo] = make(chan *gossipv1.ObservationRequest)
chainObsvReqC[vaa.ChainIDMoonbeam] = make(chan *gossipv1.ObservationRequest) chainObsvReqC[vaa.ChainIDMoonbeam] = make(chan *gossipv1.ObservationRequest)
chainObsvReqC[vaa.ChainIDEthereumRopsten] = make(chan *gossipv1.ObservationRequest) chainObsvReqC[vaa.ChainIDEthereumRopsten] = make(chan *gossipv1.ObservationRequest)
} }
@ -844,6 +838,10 @@ func runNode(cmd *cobra.Command, args []string) {
ethereum.NewEthWatcher(*karuraRPC, karuraContractAddr, "karura", common.ReadinessKaruraSyncing, vaa.ChainIDKarura, lockC, nil, 1, chainObsvReqC[vaa.ChainIDKarura], *unsafeDevMode).Run); err != nil { ethereum.NewEthWatcher(*karuraRPC, karuraContractAddr, "karura", common.ReadinessKaruraSyncing, vaa.ChainIDKarura, lockC, nil, 1, chainObsvReqC[vaa.ChainIDKarura], *unsafeDevMode).Run); err != nil {
return err return err
} }
if err := supervisor.Run(ctx, "celowatch",
ethereum.NewEthWatcher(*celoRPC, celoContractAddr, "celo", common.ReadinessCeloSyncing, vaa.ChainIDCelo, lockC, nil, 1, chainObsvReqC[vaa.ChainIDCelo], *unsafeDevMode).Run); err != nil {
return err
}
if *testnetMode { if *testnetMode {
if err := supervisor.Run(ctx, "ethropstenwatch", if err := supervisor.Run(ctx, "ethropstenwatch",
@ -858,10 +856,6 @@ func runNode(cmd *cobra.Command, args []string) {
ethereum.NewEthWatcher(*klaytnRPC, klaytnContractAddr, "klaytn", common.ReadinessKlaytnSyncing, vaa.ChainIDKlaytn, lockC, nil, 1, chainObsvReqC[vaa.ChainIDKlaytn], *unsafeDevMode).Run); err != nil { ethereum.NewEthWatcher(*klaytnRPC, klaytnContractAddr, "klaytn", common.ReadinessKlaytnSyncing, vaa.ChainIDKlaytn, lockC, nil, 1, chainObsvReqC[vaa.ChainIDKlaytn], *unsafeDevMode).Run); err != nil {
return err return err
} }
if err := supervisor.Run(ctx, "celowatch",
ethereum.NewEthWatcher(*celoRPC, celoContractAddr, "celo", common.ReadinessCeloSyncing, vaa.ChainIDCelo, lockC, nil, 1, chainObsvReqC[vaa.ChainIDCelo], *unsafeDevMode).Run); err != nil {
return err
}
if err := supervisor.Run(ctx, "moonbeamwatch", if err := supervisor.Run(ctx, "moonbeamwatch",
ethereum.NewEthWatcher(*moonbeamRPC, moonbeamContractAddr, "moonbeam", common.ReadinessMoonbeamSyncing, vaa.ChainIDMoonbeam, lockC, nil, 1, chainObsvReqC[vaa.ChainIDMoonbeam], *unsafeDevMode).Run); err != nil { ethereum.NewEthWatcher(*moonbeamRPC, moonbeamContractAddr, "moonbeam", common.ReadinessMoonbeamSyncing, vaa.ChainIDMoonbeam, lockC, nil, 1, chainObsvReqC[vaa.ChainIDMoonbeam], *unsafeDevMode).Run); err != nil {
return err return err

View File

@ -36,7 +36,7 @@ var etherscanAPIMap = map[vaa.ChainID]string{
vaa.ChainIDAurora: "https://explorer.mainnet.aurora.dev/api", vaa.ChainIDAurora: "https://explorer.mainnet.aurora.dev/api",
vaa.ChainIDFantom: "https://api.ftmscan.com/api", vaa.ChainIDFantom: "https://api.ftmscan.com/api",
vaa.ChainIDKarura: "https://blockscout.karura.network/api", vaa.ChainIDKarura: "https://blockscout.karura.network/api",
vaa.ChainIDCelo: "https://explorer.celo.org/api", vaa.ChainIDCelo: "https://celoscan.xyz/api",
} }
var coreContractMap = map[vaa.ChainID]string{ var coreContractMap = map[vaa.ChainID]string{
@ -47,8 +47,8 @@ var coreContractMap = map[vaa.ChainID]string{
vaa.ChainIDOasis: "0xfe8cd454b4a1ca468b57d79c0cc77ef5b6f64585", // <- converted to all lower case for easy compares vaa.ChainIDOasis: "0xfe8cd454b4a1ca468b57d79c0cc77ef5b6f64585", // <- converted to all lower case for easy compares
vaa.ChainIDAurora: "0xa321448d90d4e5b0a732867c18ea198e75cac48e", vaa.ChainIDAurora: "0xa321448d90d4e5b0a732867c18ea198e75cac48e",
vaa.ChainIDFantom: strings.ToLower("0x126783A6Cb203a3E35344528B26ca3a0489a1485"), vaa.ChainIDFantom: strings.ToLower("0x126783A6Cb203a3E35344528B26ca3a0489a1485"),
vaa.ChainIDCelo: strings.ToLower("0x88505117ca88e7dd2eC6ea1e13f0948db2d50d56"), // This needs to be the mainnet wormhole address
vaa.ChainIDKarura: strings.ToLower("0xa321448d90d4e5b0A732867c18eA198e75CAC48E"), vaa.ChainIDKarura: strings.ToLower("0xa321448d90d4e5b0A732867c18eA198e75CAC48E"),
vaa.ChainIDCelo: strings.ToLower("0xa321448d90d4e5b0A732867c18eA198e75CAC48E"),
} }
var ( var (
@ -77,7 +77,7 @@ func addUserAgent(req *http.Request) *http.Request {
} }
func usesBlockscout(chainId vaa.ChainID) bool { func usesBlockscout(chainId vaa.ChainID) bool {
return chainId == vaa.ChainIDOasis || chainId == vaa.ChainIDAurora || chainId == vaa.ChainIDKarura || chainId == vaa.ChainIDCelo return chainId == vaa.ChainIDOasis || chainId == vaa.ChainIDAurora || chainId == vaa.ChainIDKarura
} }
func getAdminClient(ctx context.Context, addr string) (*grpc.ClientConn, error, nodev1.NodePrivilegedServiceClient) { func getAdminClient(ctx context.Context, addr string) (*grpc.ClientConn, error, nodev1.NodePrivilegedServiceClient) {

View File

@ -44,5 +44,7 @@ var KnownEmitters = []struct {
{vaa.ChainIDFantom, "0000000000000000000000007C9Fc5741288cDFdD83CeB07f3ea7e22618D79D2"}, // 10 Fantom Token Bridge {vaa.ChainIDFantom, "0000000000000000000000007C9Fc5741288cDFdD83CeB07f3ea7e22618D79D2"}, // 10 Fantom Token Bridge
{vaa.ChainIDFantom, "000000000000000000000000A9c7119aBDa80d4a4E0C06C8F4d8cF5893234535"}, // 10 Fantom NFT Bridge {vaa.ChainIDFantom, "000000000000000000000000A9c7119aBDa80d4a4E0C06C8F4d8cF5893234535"}, // 10 Fantom NFT Bridge
{vaa.ChainIDKarura, "000000000000000000000000ae9d7fe007b3327AA64A32824Aaac52C42a6E624"}, // 11 Karura Token Bridge {vaa.ChainIDKarura, "000000000000000000000000ae9d7fe007b3327AA64A32824Aaac52C42a6E624"}, // 11 Karura Token Bridge
{vaa.ChainIDKarura, "000000000000000000000000b91e3638F82A1fACb28690b37e3aAE45d2c33808"}, // 11 Karura NFT Bridge {vaa.ChainIDKarura, "000000000000000000000000b91e3638F82A1fACb28690b37e3aAE45d2c33808"}, // 11 Karura NFT Bridge
{vaa.ChainIDCelo, "000000000000000000000000796Dff6D74F3E27060B71255Fe517BFb23C93eed"}, // 14 Celo Token Bridge
{vaa.ChainIDCelo, "000000000000000000000000A6A377d75ca5c9052c9a77ED1e865Cc25Bd97bf3"}, // 14 Celo NFT Bridge
} }

View File

@ -1,5 +1,11 @@
# Changelog # Changelog
## 0.3.2
### Added
Celo Mainnet support
## 0.3.1 ## 0.3.1
### Added ### Added

View File

@ -123,9 +123,9 @@ const MAINNET = {
nft_bridge: undefined, nft_bridge: undefined,
}, },
celo: { celo: {
core: undefined, core: "0xa321448d90d4e5b0A732867c18eA198e75CAC48E",
token_bridge: undefined, token_bridge: "0x796Dff6D74F3E27060B71255Fe517BFb23C93eed",
nft_bridge: undefined, nft_bridge: "0xA6A377d75ca5c9052c9a77ED1e865Cc25Bd97bf3",
}, },
near: { near: {
core: undefined, core: undefined,