parent
ec6428ed2d
commit
018908a420
|
@ -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 klaytn
|
||||
worm submit $(cat guardian-upgrade.txt) --network mainnet --chain avalanche
|
||||
worm submit $(cat guardian-upgrade.txt) --network mainnet --chain polygon
|
||||
worm submit $(cat guardian-upgrade.txt) --network mainnet --chain bsc
|
||||
|
|
|
@ -71,7 +71,7 @@ const MAINNET = {
|
|||
key: get_env_var("ETH_KEY"),
|
||||
},
|
||||
klaytn: {
|
||||
rpc: undefined,
|
||||
rpc: "https://public-node-api.klaytnapi.com/v1/cypress",
|
||||
key: get_env_var("ETH_KEY"),
|
||||
},
|
||||
celo: {
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
# Klaytn mainnet env
|
||||
# Rename to .env to use with truffle migrations
|
||||
|
||||
# Wormhole Core Migrations
|
||||
INIT_SIGNERS=["0x58CC3AE5C097b213cE3c81979e1B9f9570746AA5"]
|
||||
INIT_CHAIN_ID=0xd
|
||||
INIT_GOV_CHAIN_ID=0x1
|
||||
INIT_GOV_CONTRACT=0x0000000000000000000000000000000000000000000000000000000000000004
|
||||
|
||||
# Bridge Migrations
|
||||
BRIDGE_INIT_CHAIN_ID=0xd
|
||||
BRIDGE_INIT_GOV_CHAIN_ID=0x1
|
||||
BRIDGE_INIT_GOV_CONTRACT=0x0000000000000000000000000000000000000000000000000000000000000004
|
||||
# WKLAY
|
||||
BRIDGE_INIT_WETH=0xe4f05a66ec68b54a58b17c22107b02e0232cc817
|
File diff suppressed because it is too large
Load Diff
|
@ -30,10 +30,12 @@
|
|||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"caver-js": "^1.8.1",
|
||||
"dotenv": "^10.0.0",
|
||||
"elliptic": "^6.5.2",
|
||||
"ganache-cli": "^6.12.1",
|
||||
"jsonfile": "^4.0.0",
|
||||
"solc": "^0.8.4"
|
||||
"solc": "^0.8.4",
|
||||
"truffle-hdwallet-provider-klaytn": "^1.4.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
require("dotenv").config({ path: ".env" });
|
||||
const HDWalletProvider = require("@truffle/hdwallet-provider");
|
||||
const KLAYHDWalletProvider = require("truffle-hdwallet-provider-klaytn");
|
||||
const Caver = require("caver-js");
|
||||
|
||||
module.exports = {
|
||||
networks: {
|
||||
|
@ -186,7 +188,7 @@ module.exports = {
|
|||
"http://103.253.145.222:8545"
|
||||
);
|
||||
},
|
||||
network_id: 686,
|
||||
network_id: 596,
|
||||
gasPrice: 202184721385,
|
||||
gasLimit: 117096000,
|
||||
gas: 117096000,
|
||||
|
@ -198,11 +200,36 @@ module.exports = {
|
|||
"http://157.245.252.103:8545"
|
||||
);
|
||||
},
|
||||
network_id: 787,
|
||||
network_id: 597,
|
||||
gasPrice: 202184721385,
|
||||
gasLimit: 213192000,
|
||||
gas: 213192000,
|
||||
},
|
||||
klaytn: { // Note that Klaytn works with version 5.3.14 of truffle, but not some of the newer versions.
|
||||
provider: () => {
|
||||
const option = {
|
||||
headers: [
|
||||
{
|
||||
name: 'Authorization',
|
||||
value:
|
||||
'Basic ' +
|
||||
Buffer.from(process.env.KLAY_ACCESS_ID + ':' + process.env.KLAY_SECURITY_KEY).toString('base64'),
|
||||
},
|
||||
{ name: 'x-chain-id', value: '8217' },
|
||||
],
|
||||
keepAlive: false,
|
||||
}
|
||||
return new KLAYHDWalletProvider(
|
||||
process.env.MNEMONIC,
|
||||
new Caver.providers.HttpProvider('https://node-api.klaytnapi.com/v1/klaytn', option)
|
||||
)
|
||||
},
|
||||
network_id: 8217, //Klaytn mainnet's network id
|
||||
gas: '8000000',
|
||||
gasPrice: '750000000000',
|
||||
disableConfirmationListener: true,
|
||||
pollingInterval: 1800000,
|
||||
},
|
||||
klaytn_testnet: { // Note that Klaytn works with version 5.3.14 of truffle, but not some of the newer versions.
|
||||
provider: () => {
|
||||
return new HDWalletProvider(
|
||||
|
|
|
@ -106,13 +106,13 @@ func runListNodes(cmd *cobra.Command, args []string) {
|
|||
{"Aurora", vaa.ChainIDAurora},
|
||||
{"Fantom", vaa.ChainIDFantom},
|
||||
{"Karura", vaa.ChainIDKarura},
|
||||
{"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{"Klaytn", vaa.ChainIDKlaytn})
|
||||
networks = append(networks, network{"Moonbeam", vaa.ChainIDMoonbeam})
|
||||
}
|
||||
|
||||
|
|
|
@ -328,12 +328,12 @@ func runNode(cmd *cobra.Command, args []string) {
|
|||
readiness.RegisterComponent(common.ReadinessAuroraSyncing)
|
||||
readiness.RegisterComponent(common.ReadinessFantomSyncing)
|
||||
readiness.RegisterComponent(common.ReadinessKaruraSyncing)
|
||||
readiness.RegisterComponent(common.ReadinessKlaytnSyncing)
|
||||
readiness.RegisterComponent(common.ReadinessCeloSyncing)
|
||||
|
||||
if *testnetMode {
|
||||
readiness.RegisterComponent(common.ReadinessEthRopstenSyncing)
|
||||
readiness.RegisterComponent(common.ReadinessAcalaSyncing)
|
||||
readiness.RegisterComponent(common.ReadinessKlaytnSyncing)
|
||||
readiness.RegisterComponent(common.ReadinessMoonbeamSyncing)
|
||||
}
|
||||
|
||||
|
@ -443,6 +443,12 @@ func runNode(cmd *cobra.Command, args []string) {
|
|||
if *karuraContract == "" && !*unsafeDevMode {
|
||||
logger.Fatal("Please specify --karuraContract")
|
||||
}
|
||||
if *klaytnRPC == "" {
|
||||
logger.Fatal("Please specify --klaytnRPC")
|
||||
}
|
||||
if *klaytnContract == "" && !*unsafeDevMode {
|
||||
logger.Fatal("Please specify --klaytnContract")
|
||||
}
|
||||
if *celoRPC == "" {
|
||||
logger.Fatal("Please specify --celoRPC")
|
||||
}
|
||||
|
@ -462,12 +468,6 @@ func runNode(cmd *cobra.Command, args []string) {
|
|||
if *acalaContract == "" {
|
||||
logger.Fatal("Please specify --acalaContract")
|
||||
}
|
||||
if *klaytnRPC == "" {
|
||||
logger.Fatal("Please specify --klaytnRPC")
|
||||
}
|
||||
if *klaytnContract == "" {
|
||||
logger.Fatal("Please specify --klaytnContract")
|
||||
}
|
||||
if *moonbeamRPC == "" {
|
||||
logger.Fatal("Please specify --moonbeamRPC")
|
||||
}
|
||||
|
@ -487,12 +487,6 @@ func runNode(cmd *cobra.Command, args []string) {
|
|||
if *acalaContract != "" && !*unsafeDevMode {
|
||||
logger.Fatal("Please do not specify --acalaContract")
|
||||
}
|
||||
if *klaytnRPC != "" && !*unsafeDevMode {
|
||||
logger.Fatal("Please do not specify --klaytnRPC")
|
||||
}
|
||||
if *klaytnContract != "" && !*unsafeDevMode {
|
||||
logger.Fatal("Please do not specify --klaytnContract")
|
||||
}
|
||||
if *moonbeamRPC != "" && !*unsafeDevMode {
|
||||
logger.Fatal("Please do not specify --moonbeamRPC")
|
||||
}
|
||||
|
@ -683,10 +677,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.ChainIDKlaytn] = make(chan *gossipv1.ObservationRequest)
|
||||
chainObsvReqC[vaa.ChainIDCelo] = make(chan *gossipv1.ObservationRequest)
|
||||
if *testnetMode {
|
||||
chainObsvReqC[vaa.ChainIDAcala] = make(chan *gossipv1.ObservationRequest)
|
||||
chainObsvReqC[vaa.ChainIDKlaytn] = make(chan *gossipv1.ObservationRequest)
|
||||
chainObsvReqC[vaa.ChainIDMoonbeam] = make(chan *gossipv1.ObservationRequest)
|
||||
chainObsvReqC[vaa.ChainIDEthereumRopsten] = make(chan *gossipv1.ObservationRequest)
|
||||
}
|
||||
|
@ -838,6 +832,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, "klaytnwatch",
|
||||
ethereum.NewEthWatcher(*klaytnRPC, klaytnContractAddr, "klaytn", common.ReadinessKlaytnSyncing, vaa.ChainIDKlaytn, lockC, nil, 1, chainObsvReqC[vaa.ChainIDKlaytn], *unsafeDevMode).Run); err != nil {
|
||||
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
|
||||
|
@ -852,10 +850,6 @@ func runNode(cmd *cobra.Command, args []string) {
|
|||
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
|
||||
}
|
||||
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,7 +36,8 @@ 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.ChainIDCelo: "https://celoscan.xyz/api",
|
||||
// NOTE: Not sure what should be here for Klaytn, since they use: https://scope.klaytn.com/
|
||||
vaa.ChainIDCelo: "https://celoscan.xyz/api",
|
||||
}
|
||||
|
||||
var coreContractMap = map[vaa.ChainID]string{
|
||||
|
@ -48,6 +49,7 @@ var coreContractMap = map[vaa.ChainID]string{
|
|||
vaa.ChainIDAurora: "0xa321448d90d4e5b0a732867c18ea198e75cac48e",
|
||||
vaa.ChainIDFantom: strings.ToLower("0x126783A6Cb203a3E35344528B26ca3a0489a1485"),
|
||||
vaa.ChainIDKarura: strings.ToLower("0xa321448d90d4e5b0A732867c18eA198e75CAC48E"),
|
||||
vaa.ChainIDKlaytn: strings.ToLower("0x0C21603c4f3a6387e241c0091A7EA39E43E90bb7"),
|
||||
vaa.ChainIDCelo: strings.ToLower("0xa321448d90d4e5b0A732867c18eA198e75CAC48E"),
|
||||
}
|
||||
|
||||
|
|
|
@ -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.ChainIDKlaytn, "0000000000000000000000005b08ac39EAED75c0439FC750d9FE7E1F9dD0193F"}, // 13 Klaytn Token Bridge
|
||||
{vaa.ChainIDKlaytn, "0000000000000000000000003c3c561757BAa0b78c5C025CdEAa4ee24C1dFfEf"}, // 13 Klaytn NFT Bridge
|
||||
{vaa.ChainIDCelo, "000000000000000000000000796Dff6D74F3E27060B71255Fe517BFb23C93eed"}, // 14 Celo Token Bridge
|
||||
{vaa.ChainIDCelo, "000000000000000000000000A6A377d75ca5c9052c9a77ED1e865Cc25Bd97bf3"}, // 14 Celo NFT Bridge
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
### Added
|
||||
|
||||
Celo Mainnet support
|
||||
Klaytn and Celo mainnet support
|
||||
|
||||
## 0.3.1
|
||||
|
||||
|
|
|
@ -118,9 +118,9 @@ const MAINNET = {
|
|||
nft_bridge: undefined,
|
||||
},
|
||||
klaytn: {
|
||||
core: undefined,
|
||||
token_bridge: undefined,
|
||||
nft_bridge: undefined,
|
||||
core: "0x0C21603c4f3a6387e241c0091A7EA39E43E90bb7",
|
||||
token_bridge: "0x5b08ac39EAED75c0439FC750d9FE7E1F9dD0193F",
|
||||
nft_bridge: "0x3c3c561757BAa0b78c5C025CdEAa4ee24C1dFfEf",
|
||||
},
|
||||
celo: {
|
||||
core: "0xa321448d90d4e5b0A732867c18eA198e75CAC48E",
|
||||
|
|
Loading…
Reference in New Issue