Acala mainnet deploy
This commit is contained in:
parent
6a7fba9b04
commit
dcce155f43
|
@ -108,6 +108,7 @@ For example, to submit a guardian set upgrade on all chains, simply run:
|
|||
worm submit $(cat guardian-upgrade.txt) --network mainnet --chain aurora
|
||||
worm submit $(cat guardian-upgrade.txt) --network mainnet --chain fantom
|
||||
worm submit $(cat guardian-upgrade.txt) --network mainnet --chain karura
|
||||
worm submit $(cat guardian-upgrade.txt) --network mainnet --chain acala
|
||||
worm submit $(cat guardian-upgrade.txt) --network mainnet --chain klaytn
|
||||
worm submit $(cat guardian-upgrade.txt) --network mainnet --chain avalanche
|
||||
worm submit $(cat guardian-upgrade.txt) --network mainnet --chain polygon
|
||||
|
|
|
@ -39,7 +39,7 @@ export async function execute_governance_evm(
|
|||
// NOTE: some of these might have only been tested on mainnet. If it fails in
|
||||
// testnet (or devnet), they might require additional guards
|
||||
let overrides: ethers.Overrides = {}
|
||||
if (chain === "karura") {
|
||||
if (chain === "karura" || chain == "acala") {
|
||||
overrides = await getKaruraGasParams(n.rpc)
|
||||
} else if (chain === "polygon") {
|
||||
let feeData = await provider.getFeeData();
|
||||
|
|
|
@ -67,7 +67,7 @@ const MAINNET = {
|
|||
key: get_env_var("ETH_KEY"),
|
||||
},
|
||||
acala: {
|
||||
rpc: undefined,
|
||||
rpc: "https://eth-rpc-acala.aca-api.network/",
|
||||
key: get_env_var("ETH_KEY"),
|
||||
},
|
||||
klaytn: {
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
# Acala mainnet env
|
||||
# Rename to .env to use with truffle migrations
|
||||
|
||||
# Wormhole Core Migrations
|
||||
INIT_SIGNERS=["0x58CC3AE5C097b213cE3c81979e1B9f9570746AA5"]
|
||||
INIT_CHAIN_ID=0xc
|
||||
INIT_GOV_CHAIN_ID=0x1
|
||||
INIT_GOV_CONTRACT=0x0000000000000000000000000000000000000000000000000000000000000004
|
||||
|
||||
# Bridge Migrations
|
||||
BRIDGE_INIT_CHAIN_ID=0xc
|
||||
BRIDGE_INIT_GOV_CHAIN_ID=0x1
|
||||
BRIDGE_INIT_GOV_CONTRACT=0x0000000000000000000000000000000000000000000000000000000000000004
|
||||
# There is no WETH on Acala.
|
||||
BRIDGE_INIT_WETH=0x0000000000000000000000000000000000000000
|
|
@ -193,6 +193,19 @@ module.exports = {
|
|||
gasLimit: 117096000,
|
||||
gas: 117096000,
|
||||
},
|
||||
acala: {
|
||||
provider: () => {
|
||||
return new HDWalletProvider(
|
||||
process.env.MNEMONIC,
|
||||
// To use this local host, needed to run this: ENDPOINT_URL=wss://acala-rpc-0.aca-api.network npx @acala-network/eth-rpc-adapter@latest
|
||||
//"http://localhost:8545"
|
||||
"https://eth-rpc-acala.aca-api.network/"
|
||||
);
|
||||
},
|
||||
network_id: 787,
|
||||
gasPrice: "0x2f25eb03ea",
|
||||
gas: "0x6fc3540",
|
||||
},
|
||||
acala_testnet: {
|
||||
provider: () => {
|
||||
return new HDWalletProvider(
|
||||
|
|
|
@ -106,13 +106,13 @@ func runListNodes(cmd *cobra.Command, args []string) {
|
|||
{"Aurora", vaa.ChainIDAurora},
|
||||
{"Fantom", vaa.ChainIDFantom},
|
||||
{"Karura", vaa.ChainIDKarura},
|
||||
{"Acala", vaa.ChainIDAcala},
|
||||
{"Klaytn", vaa.ChainIDKlaytn},
|
||||
{"Celo", vaa.ChainIDCelo},
|
||||
}
|
||||
|
||||
if isTestnet {
|
||||
networks = append(networks, network{"Ropsten", vaa.ChainIDEthereumRopsten})
|
||||
networks = append(networks, network{"Acala", vaa.ChainIDAcala})
|
||||
networks = append(networks, network{"Moonbeam", vaa.ChainIDMoonbeam})
|
||||
}
|
||||
|
||||
|
|
|
@ -329,12 +329,12 @@ func runNode(cmd *cobra.Command, args []string) {
|
|||
readiness.RegisterComponent(common.ReadinessAuroraSyncing)
|
||||
readiness.RegisterComponent(common.ReadinessFantomSyncing)
|
||||
readiness.RegisterComponent(common.ReadinessKaruraSyncing)
|
||||
readiness.RegisterComponent(common.ReadinessAcalaSyncing)
|
||||
readiness.RegisterComponent(common.ReadinessKlaytnSyncing)
|
||||
readiness.RegisterComponent(common.ReadinessCeloSyncing)
|
||||
|
||||
if *testnetMode {
|
||||
readiness.RegisterComponent(common.ReadinessEthRopstenSyncing)
|
||||
readiness.RegisterComponent(common.ReadinessAcalaSyncing)
|
||||
readiness.RegisterComponent(common.ReadinessMoonbeamSyncing)
|
||||
}
|
||||
|
||||
|
@ -445,6 +445,12 @@ func runNode(cmd *cobra.Command, args []string) {
|
|||
if *karuraContract == "" && !*unsafeDevMode {
|
||||
logger.Fatal("Please specify --karuraContract")
|
||||
}
|
||||
if *acalaRPC == "" {
|
||||
logger.Fatal("Please specify --acalaRPC")
|
||||
}
|
||||
if *acalaContract == "" && !*unsafeDevMode {
|
||||
logger.Fatal("Please specify --acalaContract")
|
||||
}
|
||||
if *klaytnRPC == "" {
|
||||
logger.Fatal("Please specify --klaytnRPC")
|
||||
}
|
||||
|
@ -464,12 +470,6 @@ func runNode(cmd *cobra.Command, args []string) {
|
|||
if *ethRopstenContract == "" {
|
||||
logger.Fatal("Please specify --ethRopstenContract")
|
||||
}
|
||||
if *acalaRPC == "" {
|
||||
logger.Fatal("Please specify --acalaRPC")
|
||||
}
|
||||
if *acalaContract == "" {
|
||||
logger.Fatal("Please specify --acalaContract")
|
||||
}
|
||||
if *moonbeamRPC == "" {
|
||||
logger.Fatal("Please specify --moonbeamRPC")
|
||||
}
|
||||
|
@ -483,12 +483,6 @@ func runNode(cmd *cobra.Command, args []string) {
|
|||
if *ethRopstenContract != "" {
|
||||
logger.Fatal("Please do not specify --ethRopstenContract in non-testnet mode")
|
||||
}
|
||||
if *acalaRPC != "" && !*unsafeDevMode {
|
||||
logger.Fatal("Please do not specify --acalaRPC")
|
||||
}
|
||||
if *acalaContract != "" && !*unsafeDevMode {
|
||||
logger.Fatal("Please do not specify --acalaContract")
|
||||
}
|
||||
if *moonbeamRPC != "" && !*unsafeDevMode {
|
||||
logger.Fatal("Please do not specify --moonbeamRPC")
|
||||
}
|
||||
|
@ -679,10 +673,10 @@ func runNode(cmd *cobra.Command, args []string) {
|
|||
chainObsvReqC[vaa.ChainIDAurora] = make(chan *gossipv1.ObservationRequest)
|
||||
chainObsvReqC[vaa.ChainIDFantom] = make(chan *gossipv1.ObservationRequest)
|
||||
chainObsvReqC[vaa.ChainIDKarura] = make(chan *gossipv1.ObservationRequest)
|
||||
chainObsvReqC[vaa.ChainIDAcala] = make(chan *gossipv1.ObservationRequest)
|
||||
chainObsvReqC[vaa.ChainIDKlaytn] = make(chan *gossipv1.ObservationRequest)
|
||||
chainObsvReqC[vaa.ChainIDCelo] = make(chan *gossipv1.ObservationRequest)
|
||||
if *testnetMode {
|
||||
chainObsvReqC[vaa.ChainIDAcala] = make(chan *gossipv1.ObservationRequest)
|
||||
chainObsvReqC[vaa.ChainIDMoonbeam] = make(chan *gossipv1.ObservationRequest)
|
||||
chainObsvReqC[vaa.ChainIDEthereumRopsten] = make(chan *gossipv1.ObservationRequest)
|
||||
}
|
||||
|
@ -834,6 +828,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 {
|
||||
return err
|
||||
}
|
||||
if err := supervisor.Run(ctx, "acalawatch",
|
||||
ethereum.NewEthWatcher(*acalaRPC, acalaContractAddr, "acala", common.ReadinessAcalaSyncing, vaa.ChainIDAcala, lockC, nil, 1, chainObsvReqC[vaa.ChainIDAcala], *unsafeDevMode).Run); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := supervisor.Run(ctx, "klaytnwatch",
|
||||
ethereum.NewEthWatcher(*klaytnRPC, klaytnContractAddr, "klaytn", common.ReadinessKlaytnSyncing, vaa.ChainIDKlaytn, lockC, nil, 1, chainObsvReqC[vaa.ChainIDKlaytn], *unsafeDevMode).Run); err != nil {
|
||||
return err
|
||||
|
@ -848,10 +846,6 @@ func runNode(cmd *cobra.Command, args []string) {
|
|||
ethereum.NewEthWatcher(*ethRopstenRPC, ethRopstenContractAddr, "ethropsten", common.ReadinessEthRopstenSyncing, vaa.ChainIDEthereumRopsten, lockC, nil, 1, chainObsvReqC[vaa.ChainIDEthereumRopsten], *unsafeDevMode).Run); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := supervisor.Run(ctx, "acalawatch",
|
||||
ethereum.NewEthWatcher(*acalaRPC, acalaContractAddr, "acala", common.ReadinessAcalaSyncing, vaa.ChainIDAcala, lockC, nil, 1, chainObsvReqC[vaa.ChainIDAcala], *unsafeDevMode).Run); err != nil {
|
||||
return err
|
||||
}
|
||||
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 {
|
||||
return err
|
||||
|
|
|
@ -36,6 +36,7 @@ var etherscanAPIMap = map[vaa.ChainID]string{
|
|||
vaa.ChainIDAurora: "https://explorer.mainnet.aurora.dev/api",
|
||||
vaa.ChainIDFantom: "https://api.ftmscan.com/api",
|
||||
vaa.ChainIDKarura: "https://blockscout.karura.network/api",
|
||||
vaa.ChainIDAcala: "https://blockscout.acala.network/api",
|
||||
// NOTE: Not sure what should be here for Klaytn, since they use: https://scope.klaytn.com/
|
||||
vaa.ChainIDCelo: "https://celoscan.xyz/api",
|
||||
}
|
||||
|
@ -49,6 +50,7 @@ var coreContractMap = map[vaa.ChainID]string{
|
|||
vaa.ChainIDAurora: "0xa321448d90d4e5b0a732867c18ea198e75cac48e",
|
||||
vaa.ChainIDFantom: strings.ToLower("0x126783A6Cb203a3E35344528B26ca3a0489a1485"),
|
||||
vaa.ChainIDKarura: strings.ToLower("0xa321448d90d4e5b0A732867c18eA198e75CAC48E"),
|
||||
vaa.ChainIDAcala: strings.ToLower("0xa321448d90d4e5b0A732867c18eA198e75CAC48E"),
|
||||
vaa.ChainIDKlaytn: strings.ToLower("0x0C21603c4f3a6387e241c0091A7EA39E43E90bb7"),
|
||||
vaa.ChainIDCelo: strings.ToLower("0xa321448d90d4e5b0A732867c18eA198e75CAC48E"),
|
||||
}
|
||||
|
@ -79,7 +81,7 @@ func addUserAgent(req *http.Request) *http.Request {
|
|||
}
|
||||
|
||||
func usesBlockscout(chainId vaa.ChainID) bool {
|
||||
return chainId == vaa.ChainIDOasis || chainId == vaa.ChainIDAurora || chainId == vaa.ChainIDKarura
|
||||
return chainId == vaa.ChainIDOasis || chainId == vaa.ChainIDAurora || chainId == vaa.ChainIDKarura || chainId == vaa.ChainIDAcala
|
||||
}
|
||||
|
||||
func getAdminClient(ctx context.Context, addr string) (*grpc.ClientConn, error, nodev1.NodePrivilegedServiceClient) {
|
||||
|
|
|
@ -45,6 +45,8 @@ var KnownEmitters = []struct {
|
|||
{vaa.ChainIDFantom, "000000000000000000000000A9c7119aBDa80d4a4E0C06C8F4d8cF5893234535"}, // 10 Fantom NFT Bridge
|
||||
{vaa.ChainIDKarura, "000000000000000000000000ae9d7fe007b3327AA64A32824Aaac52C42a6E624"}, // 11 Karura Token Bridge
|
||||
{vaa.ChainIDKarura, "000000000000000000000000b91e3638F82A1fACb28690b37e3aAE45d2c33808"}, // 11 Karura NFT Bridge
|
||||
{vaa.ChainIDAcala, "000000000000000000000000ae9d7fe007b3327AA64A32824Aaac52C42a6E624"}, // 12 Acala Token Bridge
|
||||
{vaa.ChainIDAcala, "000000000000000000000000b91e3638F82A1fACb28690b37e3aAE45d2c33808"}, // 12 Acala NFT Bridge
|
||||
{vaa.ChainIDKlaytn, "0000000000000000000000005b08ac39EAED75c0439FC750d9FE7E1F9dD0193F"}, // 13 Klaytn Token Bridge
|
||||
{vaa.ChainIDKlaytn, "0000000000000000000000003c3c561757BAa0b78c5C025CdEAa4ee24C1dFfEf"}, // 13 Klaytn NFT Bridge
|
||||
{vaa.ChainIDCelo, "000000000000000000000000796Dff6D74F3E27060B71255Fe517BFb23C93eed"}, // 14 Celo Token Bridge
|
||||
|
|
|
@ -144,6 +144,11 @@ case "$chain_name" in
|
|||
explorer="https://blockscout.karura.network/address/"
|
||||
evm=true
|
||||
;;
|
||||
acala)
|
||||
chain=11
|
||||
explorer="https://blockscout.acala.network/address/"
|
||||
evm=true
|
||||
;;
|
||||
klaytn)
|
||||
chain=13
|
||||
explorer="https://scope.klaytn.com/account/"
|
||||
|
|
|
@ -113,9 +113,9 @@ const MAINNET = {
|
|||
nft_bridge: "0xb91e3638F82A1fACb28690b37e3aAE45d2c33808",
|
||||
},
|
||||
acala: {
|
||||
core: undefined,
|
||||
token_bridge: undefined,
|
||||
nft_bridge: undefined,
|
||||
core: "0xa321448d90d4e5b0A732867c18eA198e75CAC48E",
|
||||
token_bridge: "0xae9d7fe007b3327AA64A32824Aaac52C42a6E624",
|
||||
nft_bridge: "0xb91e3638F82A1fACb28690b37e3aAE45d2c33808",
|
||||
},
|
||||
klaytn: {
|
||||
core: "0x0C21603c4f3a6387e241c0091A7EA39E43E90bb7",
|
||||
|
|
Loading…
Reference in New Issue