Kaynağa Gözat

Klaytn mainnet deploy (#1185)

* Klaytn mainnet deploy
bruce-riley 3 yıl önce
ebeveyn
işleme
018908a420

+ 1 - 0
clients/js/README.md

@@ -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

+ 1 - 1
clients/js/networks.ts

@@ -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: {

+ 15 - 0
ethereum/.env.klaytn.mainnet

@@ -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

Dosya farkı çok büyük olduğundan ihmal edildi
+ 212 - 215
ethereum/package-lock.json


+ 3 - 1
ethereum/package.json

@@ -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"
   }
 }

+ 29 - 2
ethereum/truffle-config.js

@@ -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(

+ 1 - 1
node/cmd/guardiand/adminnodes.go

@@ -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})
 	}
 

+ 12 - 18
node/cmd/guardiand/node.go

@@ -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

+ 3 - 1
node/hack/repair_eth/repair_eth.go

@@ -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"),
 }
 

+ 2 - 0
node/pkg/common/mainnet_consts.go

@@ -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
 }

+ 1 - 1
sdk/js/CHANGELOG.md

@@ -4,7 +4,7 @@
 
 ### Added
 
-Celo Mainnet support
+Klaytn and Celo mainnet support
 
 ## 0.3.1
 

+ 3 - 3
sdk/js/src/utils/consts.ts

@@ -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",

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor