Browse Source

node: Injective mainnet support (#2084)

kev1n-peters 3 years ago
parent
commit
c94ad13c8c

+ 20 - 27
node/cmd/guardiand/node.go

@@ -620,15 +620,6 @@ func runNode(cmd *cobra.Command, args []string) {
 		if *neonContract == "" {
 		if *neonContract == "" {
 			logger.Fatal("Please specify --neonContract")
 			logger.Fatal("Please specify --neonContract")
 		}
 		}
-		if *injectiveWS == "" {
-			logger.Fatal("Please specify --injectiveWS")
-		}
-		if *injectiveLCD == "" {
-			logger.Fatal("Please specify --injectiveLCD")
-		}
-		if *injectiveContract == "" {
-			logger.Fatal("Please specify --injectiveContract")
-		}
 	} else {
 	} else {
 		if *neonRPC != "" && !*unsafeDevMode {
 		if *neonRPC != "" && !*unsafeDevMode {
 			logger.Fatal("Please do not specify --neonRPC")
 			logger.Fatal("Please do not specify --neonRPC")
@@ -636,15 +627,6 @@ func runNode(cmd *cobra.Command, args []string) {
 		if *neonContract != "" && !*unsafeDevMode {
 		if *neonContract != "" && !*unsafeDevMode {
 			logger.Fatal("Please do not specify --neonContract")
 			logger.Fatal("Please do not specify --neonContract")
 		}
 		}
-		if *injectiveWS != "" && !*unsafeDevMode {
-			logger.Fatal("Please do not specify --injectiveWS")
-		}
-		if *injectiveLCD != "" && !*unsafeDevMode {
-			logger.Fatal("Please do not specify --injectiveLCD")
-		}
-		if *injectiveContract != "" && !*unsafeDevMode {
-			logger.Fatal("Please do not specify --injectiveContract")
-		}
 	}
 	}
 	if *nodeName == "" {
 	if *nodeName == "" {
 		logger.Fatal("Please specify --nodeName")
 		logger.Fatal("Please specify --nodeName")
@@ -699,6 +681,16 @@ func runNode(cmd *cobra.Command, args []string) {
 		if *pythnetRPC == "" {
 		if *pythnetRPC == "" {
 			logger.Fatal("Please specify --pythnetRPC")
 			logger.Fatal("Please specify --pythnetRPC")
 		}
 		}
+
+		if *injectiveWS == "" {
+			logger.Fatal("Please specify --injectiveWS")
+		}
+		if *injectiveLCD == "" {
+			logger.Fatal("Please specify --injectiveLCD")
+		}
+		if *injectiveContract == "" {
+			logger.Fatal("Please specify --injectiveContract")
+		}
 	}
 	}
 
 
 	if *bigTablePersistenceEnabled {
 	if *bigTablePersistenceEnabled {
@@ -1208,6 +1200,16 @@ func runNode(cmd *cobra.Command, args []string) {
 			}
 			}
 		}
 		}
 
 
+		if shouldStart(injectiveWS) {
+			logger.Info("Starting Injective watcher")
+			readiness.RegisterComponent(common.ReadinessInjectiveSyncing)
+			chainObsvReqC[vaa.ChainIDInjective] = make(chan *gossipv1.ObservationRequest, observationRequestBufferSize)
+			if err := supervisor.Run(ctx, "injectivewatch",
+				cosmwasm.NewWatcher(*injectiveWS, *injectiveLCD, *injectiveContract, lockC, chainObsvReqC[vaa.ChainIDInjective], common.ReadinessInjectiveSyncing, vaa.ChainIDInjective).Run); err != nil {
+				return err
+			}
+		}
+
 		if *testnetMode {
 		if *testnetMode {
 			if shouldStart(neonRPC) {
 			if shouldStart(neonRPC) {
 				if solanaFinalizedWatcher == nil {
 				if solanaFinalizedWatcher == nil {
@@ -1222,15 +1224,6 @@ func runNode(cmd *cobra.Command, args []string) {
 					return err
 					return err
 				}
 				}
 			}
 			}
-			if shouldStart(injectiveWS) {
-				logger.Info("Starting Injective watcher")
-				readiness.RegisterComponent(common.ReadinessInjectiveSyncing)
-				chainObsvReqC[vaa.ChainIDInjective] = make(chan *gossipv1.ObservationRequest, observationRequestBufferSize)
-				if err := supervisor.Run(ctx, "injectivewatch",
-					cosmwasm.NewWatcher(*injectiveWS, *injectiveLCD, *injectiveContract, lockC, chainObsvReqC[vaa.ChainIDInjective], common.ReadinessInjectiveSyncing, vaa.ChainIDInjective).Run); err != nil {
-					return err
-				}
-			}
 		}
 		}
 		go handleReobservationRequests(rootCtx, clock.New(), logger, obsvReqC, chainObsvReqC)
 		go handleReobservationRequests(rootCtx, clock.New(), logger, obsvReqC, chainObsvReqC)
 
 

+ 1 - 0
node/pkg/governor/mainnet_chains.go

@@ -25,6 +25,7 @@ func chainList() []chainConfigEntry {
 		chainConfigEntry{emitterChainID: vaa.ChainIDKlaytn, dailyLimit: 5_000_000, bigTransactionSize: 500_000},
 		chainConfigEntry{emitterChainID: vaa.ChainIDKlaytn, dailyLimit: 5_000_000, bigTransactionSize: 500_000},
 		chainConfigEntry{emitterChainID: vaa.ChainIDCelo, dailyLimit: 5_000_000, bigTransactionSize: 500_000},
 		chainConfigEntry{emitterChainID: vaa.ChainIDCelo, dailyLimit: 5_000_000, bigTransactionSize: 500_000},
 		chainConfigEntry{emitterChainID: vaa.ChainIDNear, dailyLimit: 5_000_000, bigTransactionSize: 500_000},
 		chainConfigEntry{emitterChainID: vaa.ChainIDNear, dailyLimit: 5_000_000, bigTransactionSize: 500_000},
+		chainConfigEntry{emitterChainID: vaa.ChainIDInjective, dailyLimit: 200_000, bigTransactionSize: 20_000},
 		chainConfigEntry{emitterChainID: vaa.ChainIDTerra2, dailyLimit: 500_000, bigTransactionSize: 50_000},
 		chainConfigEntry{emitterChainID: vaa.ChainIDTerra2, dailyLimit: 500_000, bigTransactionSize: 50_000},
 		chainConfigEntry{emitterChainID: vaa.ChainIDMoonbeam, dailyLimit: 5_000_000, bigTransactionSize: 500_000},
 		chainConfigEntry{emitterChainID: vaa.ChainIDMoonbeam, dailyLimit: 5_000_000, bigTransactionSize: 500_000},
 		chainConfigEntry{emitterChainID: vaa.ChainIDArbitrum, dailyLimit: 200_000, bigTransactionSize: 20_000},
 		chainConfigEntry{emitterChainID: vaa.ChainIDArbitrum, dailyLimit: 200_000, bigTransactionSize: 20_000},

+ 1 - 1
node/pkg/governor/mainnet_tokens_test.go

@@ -14,7 +14,7 @@ func TestTokenListSize(t *testing.T) {
 
 
 	/* Assuming that governed tokens will need to be updated every time
 	/* Assuming that governed tokens will need to be updated every time
 	   we regenerate it */
 	   we regenerate it */
-	assert.Equal(t, 133, len(tokenConfigEntries))
+	assert.Equal(t, 134, len(tokenConfigEntries))
 }
 }
 
 
 func TestTokenListAddressSize(t *testing.T) {
 func TestTokenListAddressSize(t *testing.T) {

+ 1 - 0
node/pkg/governor/manual_tokens.go

@@ -15,6 +15,7 @@ func manualTokenList() []tokenConfigEntry {
 		tokenConfigEntry{chain: 13, addr: "0000000000000000000000005096db80b21ef45230c9e423c373f1fc9c0198dd", symbol: "WEMIX", coinGeckoId: "wemix-token", decimals: 8, price: 1.74},
 		tokenConfigEntry{chain: 13, addr: "0000000000000000000000005096db80b21ef45230c9e423c373f1fc9c0198dd", symbol: "WEMIX", coinGeckoId: "wemix-token", decimals: 8, price: 1.74},
 		tokenConfigEntry{chain: 13, addr: "0000000000000000000000005c74070fdea071359b86082bd9f9b3deaafbe32b", symbol: "KDAI", coinGeckoId: "dai", decimals: 8, price: 1.00},
 		tokenConfigEntry{chain: 13, addr: "0000000000000000000000005c74070fdea071359b86082bd9f9b3deaafbe32b", symbol: "KDAI", coinGeckoId: "dai", decimals: 8, price: 1.00},
 		tokenConfigEntry{chain: 15, addr: "0000000000000000000000000000000000000000000000000000000000000000", symbol: "NEAR", coinGeckoId: "near", decimals: 8, price: 3.85},
 		tokenConfigEntry{chain: 15, addr: "0000000000000000000000000000000000000000000000000000000000000000", symbol: "NEAR", coinGeckoId: "near", decimals: 8, price: 3.85},
+		tokenConfigEntry{chain: 19, addr: "017038850bf3af746c36803cce35009268f00d22ae2b55ffb59ac5f2a6add40b", symbol: "INJ", coinGeckoId: "injective-protocol", decimals: 8, price: 1.64},
 		tokenConfigEntry{chain: 24, addr: "0000000000000000000000004200000000000000000000000000000000000042", symbol: "OP", coinGeckoId: "optimism", decimals: 8, price: 1.31},
 		tokenConfigEntry{chain: 24, addr: "0000000000000000000000004200000000000000000000000000000000000042", symbol: "OP", coinGeckoId: "optimism", decimals: 8, price: 1.31},
 	}
 	}
 }
 }

+ 1 - 0
sdk/mainnet_consts.go

@@ -117,6 +117,7 @@ var knownTokenbridgeEmitters = map[vaa.ChainID]string{
 	vaa.ChainIDArbitrum:  "0000000000000000000000000b2402144Bb366A632D14B83F244D2e0e21bD39c",
 	vaa.ChainIDArbitrum:  "0000000000000000000000000b2402144Bb366A632D14B83F244D2e0e21bD39c",
 	vaa.ChainIDOptimism:  "0000000000000000000000001D68124e65faFC907325e3EDbF8c4d84499DAa8b",
 	vaa.ChainIDOptimism:  "0000000000000000000000001D68124e65faFC907325e3EDbF8c4d84499DAa8b",
 	vaa.ChainIDXpla:      "8f9cf727175353b17a5f574270e370776123d90fd74956ae4277962b4fdee24c",
 	vaa.ChainIDXpla:      "8f9cf727175353b17a5f574270e370776123d90fd74956ae4277962b4fdee24c",
+	vaa.ChainIDInjective: "00000000000000000000000045dbea4617971d93188eda21530bc6503d153313",
 }
 }
 
 
 // KnownNFTBridgeEmitters is a list of well-known mainnet emitters for the NFT bridge.
 // KnownNFTBridgeEmitters is a list of well-known mainnet emitters for the NFT bridge.

+ 1 - 0
sdk/testnet_consts.go

@@ -30,6 +30,7 @@ var knownTestnetTokenbridgeEmitters = map[vaa.ChainID]string{
 	vaa.ChainIDOptimism:  "000000000000000000000000C7A204bDBFe983FCD8d8E61D02b475D4073fF97e",
 	vaa.ChainIDOptimism:  "000000000000000000000000C7A204bDBFe983FCD8d8E61D02b475D4073fF97e",
 	vaa.ChainIDNeon:      "000000000000000000000000c7a204bdbfe983fcd8d8e61d02b475d4073ff97e",
 	vaa.ChainIDNeon:      "000000000000000000000000c7a204bdbfe983fcd8d8e61d02b475d4073ff97e",
 	vaa.ChainIDXpla:      "b66da121bd3621c8d2604c08c82965640fe682d606af26a302ee09094f5e62cf",
 	vaa.ChainIDXpla:      "b66da121bd3621c8d2604c08c82965640fe682d606af26a302ee09094f5e62cf",
+	vaa.ChainIDInjective: "00000000000000000000000003f3e7b2e363f51cf6e57ef85f43a2b91dbce501",
 }
 }
 
 
 // KnownTestnetNFTBridgeEmitters is a map  of known NFT emitters on the various L1 testnets.
 // KnownTestnetNFTBridgeEmitters is a map  of known NFT emitters on the various L1 testnets.