Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

core: cosmos & starknet LOOPP mode only #16039

Draft
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

jmank88
Copy link
Contributor

@jmank88 jmank88 commented Jan 22, 2025

WIP

@jmank88 jmank88 added the wip label Jan 22, 2025
Copy link
Contributor

I see you updated files related to core. Please run pnpm changeset in the root directory to add a changeset as well as in the text include at least one of the following tags:

  • #added For any new functionality added.
  • #breaking_change For any functionality that requires manual action for the node to boot.
  • #bugfix For bug fixes.
  • #changed For any change to the existing functionality.
  • #db_update For any feature that introduces updates to database schema.
  • #deprecation_notice For any upcoming deprecation functionality.
  • #internal For changesets that need to be excluded from the final changelog.
  • #nops For any feature that is NOP facing and needs to be in the official Release Notes for the release.
  • #removed For any functionality/config that is removed.
  • #updated For any functionality that is updated.
  • #wip For any change that is not ready yet and external communication about it should be held off till it is feature complete.

🎖️ No JIRA issue number found in: PR title, commit message, or branch name. Please include the issue ID in one of these.

Copy link
Contributor

Flakeguard Summary

Ran new or updated tests between develop and d48c741 (loopp-only-cosmos-starknet).

View Flaky Detector Details | Compare Changes

Found Flaky Tests ❌

Name Pass Ratio Panicked? Timed Out? Race? Runs Successes Failures Skips Package Package Panicked? Avg Duration Code Owners
TestConfig_Marshal 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/services/chainlink false 40ms Unknown
TestConfig_Marshal/Cosmos 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/services/chainlink false 0s Unknown
TestConfig_Marshal/Starknet 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/services/chainlink false 0s Unknown
TestConfig_Marshal/full 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/services/chainlink false 10ms Unknown
TestConfig_Marshal/multi-chain 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/services/chainlink false 0s Unknown
TestConfig_SetFrom 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/services/chainlink false 23.333333ms Unknown
TestConfig_SetFrom/empty-full 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/services/chainlink false 10ms Unknown
TestConfig_SetFrom/empty-multi 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/services/chainlink false 0s Unknown
TestConfig_SetFrom/full-empty 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/services/chainlink false 10ms Unknown
TestConfig_SetFrom/multi-empty 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/services/chainlink false 0s Unknown
TestConfig_Validate 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/services/chainlink false 10ms Unknown
TestConfig_Validate/invalid 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/services/chainlink false 10ms Unknown
TestCoreRelayerChainInteroperators 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/services/chainlink false 10ms Unknown
TestCoreRelayerChainInteroperators/2_cosmos_chains_with_2_nodes 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/services/chainlink false 0s Unknown
TestCoreRelayerChainInteroperators/2_starknet_chain_with_4_nodes 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/services/chainlink false 0s Unknown
TestCoreRelayerChainInteroperators/all_chains 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/services/chainlink false 20ms Unknown
Test_generalConfig_LogConfiguration 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/services/chainlink false 30ms Unknown
Test_generalConfig_LogConfiguration/full 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/services/chainlink false 20ms Unknown
Test_generalConfig_LogConfiguration/multi-chain 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/services/chainlink false 10ms Unknown
TestHealthController_Health_body 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/web false 9.3s Unknown
TestHealthController_Health_body/.txt 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/web false 940ms Unknown
TestHealthController_Health_body/default 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/web false 923.333333ms Unknown
TestHealthController_Health_body/html 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/web false 940ms Unknown
TestHealthController_Health_body/json 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/web false 920ms Unknown
TestHealthController_Health_body/text 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/web false 926.666666ms Unknown
Test_CosmosChainsController_Index 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/web false 1.276666666s Unknown
Test_CosmosChainsController_Show 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/web false 0s Unknown
Test_CosmosChainsController_Show/success 0.00% false false false 3 0 3 0 github.com/smartcontractkit/chainlink/v2/core/web false 1.243333333s Unknown

Artifacts

For detailed logs of the failed tests, please refer to the artifact failed-test-results-with-logs.json.

Copy link
Contributor

AER Report: CI Core

aer_workflow , commit , Clean Go Tidy & Generate , Detect Changes , Scheduled Run Frequency , test-scripts , GolangCI Lint (core/scripts) , Core Tests (go_core_tests) , GolangCI Lint (.) , Core Tests (go_core_tests_integration) , GolangCI Lint (integration-tests/load) , Core Tests (go_core_ccip_deployment_tests) , GolangCI Lint (integration-tests) , Core Tests (go_core_fuzz) , GolangCI Lint (deployment) , Core Tests (go_core_race_tests) , lint , SonarQube Scan

1. Type mismatch in assignment:go_core_tests_integration

Source of Error:
core/cmd/shell_test.go:491:16: cannot use stkcfg.TOMLConfigs{…} (value of type "github.com/smartcontractkit/chainlink-starknet/relayer/pkg/chainlink/config".TOMLConfigs) as chainlink.RawConfigs value in assignment
core/cmd/shell_test.go:517:16: cannot use stkcfg.TOMLConfigs{…} (value of type "github.com/smartcontractkit/chainlink-starknet/relayer/pkg/chainlink/config".TOMLConfigs) as chainlink.RawConfigs value in assignment
core/cmd/shell_test.go:555:16: cannot use stkcfg.TOMLConfigs{…} (value of type "github.com/smartcontractkit/chainlink-starknet/relayer/pkg/chainlink/config".TOMLConfigs) as chainlink.RawConfigs value in assignment

Why: The error occurs because stkcfg.TOMLConfigs is being used where chainlink.RawConfigs is expected. The types are incompatible.

Suggested fix: Ensure that stkcfg.TOMLConfigs implements or is converted to chainlink.RawConfigs before assignment.

2. Error in health check test:go_core_tests

Source of Error:
health_controller_test.go:170: 
	Error Trace:	/home/runner/work/chainlink/chainlink/core/web/health_controller_test.go:170
	Error: 	Not equal: 
	 	expected: "ok Cosmos.Foo.Chain\nok Cosmos.Foo.Relayer\nok Cosmos.Foo.Txm\nok EVM.0\nok EVM.0.BalanceMonitor\nok EVM.0.HeadBroadcaster\nok EVM.0.HeadTracker\n! EVM.0.HeadTracker.HeadListener\n\tListener is not connected\nok EVM.0.LogBroadcaster\nok EVM.0.Relayer\nok EVM.0.Txm\nok EVM.0.Txm.BlockHistoryEstimator\nok EVM.0.Txm.Broadcaster\nok EVM.0.Txm.Confirmer\nok EVM.0.Txm.Finalizer\nok EVM.0.Txm.WrappedEvmEstimator\nok HeadReporter\nok Heartbeat\nok JobSpawner\nok Mailbox.Monitor\nok Mercury.WSRPCPool\nok Mercury.WSRPCPool.CacheSet\nok PipelineORM\nok PipelineRunner\nok PipelineRunner.BridgeCache\nok RetirementReportCache\nok Solana.Bar.Chain\nok Solana.Bar.Chain.BalanceMonitor\nok Solana.Bar.Chain.Txm\nok Solana.Bar.Relayer\nok StarkNet.Baz.Chain\nok StarkNet.Baz.Chain.Txm\nok StarkNet.Baz.Relayer\nok TelemetryManager\nok WorkflowDBStore"
	 	actual : "ok EVM.0\nok EVM.0.BalanceMonitor\nok EVM.0.HeadBroadcaster\nok EVM.0.HeadTracker\n! EVM.0.HeadTracker.HeadListener\n\tListener is not connected\nok EVM.0.LogBroadcaster\nok EVM.0.Relayer\nok EVM.0.Txm\nok EVM.0.Txm.BlockHistoryEstimator\nok EVM.0.Txm.Broadcaster\nok EVM.0.Txm.Confirmer\nok EVM.0.Txm.Finalizer\nok EVM.0.Txm.WrappedEvmEstimator\nok HeadReporter\nok Heartbeat\nok JobSpawner\nok Mailbox.Monitor\nok Mercury.WSRPCPool\nok Mercury.WSRPCPool.CacheSet\nok PipelineORM\nok PipelineRunner\nok PipelineRunner.BridgeCache\nok RetirementReportCache\nok Solana.Bar.Chain\nok Solana.Bar.Chain.BalanceMonitor\nok Solana.Bar.Chain.Txm\nok Solana.Bar.Relayer\nok TelemetryManager\nok WorkflowDBStore"

Why: The expected health check output includes services related to Cosmos and StarkNet chains, but the actual output does not.

Suggested fix: Ensure that the Cosmos and StarkNet services are correctly initialized and included in the health check.

3. Error in Cosmos chains controller test:go_core_tests

Source of Error:
chains_controller_test.go:338: 
	Error Trace:	/home/runner/work/chainlink/chainlink/core/web/chains_controller_test.go:338
	Error: 	Not equal: 
	 	expected: 2
	 	actual : 0
	Test: 	Test_CosmosChainsController_Index

Why: The test expects 2 Cosmos chains to be returned, but none are found.

Suggested fix: Verify that the Cosmos chains are correctly set up and indexed in the test environment.

4. Error in Cosmos chains controller show test:go_core_tests

Source of Error:
chains_controller_test.go:292: 
	Error Trace:	/home/runner/work/chainlink/chainlink/core/web/chains_controller_test.go:292
	Error: 	Not equal: 
	 	expected: 200
	 	actual : 400
	Test: 	Test_CosmosChainsController_Show/success

Why: The test expects a 200 OK response but receives a 400 Bad Request.

Suggested fix: Ensure that the Cosmos chain with ID Chainlink-12 exists and is accessible in the test environment.

5. Error in config resolver test:go_core_tests

Source of Error:
testing.go:82: got: {"configv2":{"effective":"InsecureFastScrypt = true\nRootDir = 'test/root/dir'\nShutdownGracePeriod = '10s'\n\n[Feature]\nFeedsManager = true\nLogPoller = true\nUICSAKeys = true\nCCIP = true\nMultiFeedsManagers = false\n\n[Database]\nDefaultIdleInTxSessionTimeout = '1m0s'\nDefaultLockTimeout = '1h0m0s'\nDefaultQueryTimeout = '1s'\nLogQueries = true\nMaxIdleConns = 7\nMaxOpenConns = 13\nMigrateOnStartup = true\n\n[Database.Backup]\nDir = 'test/backup/dir'\nFrequency = '1h0m0s'\nMode = 'full'\nOnVersionUpgrade = true\n\n[Database.Listener]\nMaxReconnectDuration = '1m0s'\nMinReconnectInterval = '5m0s'\nFallbackPollInterval = '2m0s'\n\n[Database.Lock]\nEnabled = false\nLeaseDuration = '1m0s'\nLeaseRefreshInterval = '1s'\n\n[TelemetryIngress]\nUniConn = false\nLogging = true\nBufferSize = 1234\nMaxBatchSize = 4321\nSendInterval = '1m0s'\nSendTimeout = '5s'\nUseBatchSend = true\n\n[[TelemetryIngress.Endpoints]]\nNetwork = 'EVM'\nChainID = '1'\nURL = 'endpoint-1.test'\nServerPubKey = 'test-pub-key-1'\n\n[AuditLogger]\nEnabled = true\nForwardToUrl = 'http://localhost:9898'\nJsonWrapperKey = 'event'\nHeaders = ['Authorization: token', 'X-SomeOther-Header: value with spaces | and a bar+*']\n\n[Log]\nLevel = 'crit'\nJSONConsole = true\nUnixTS = true\n\n[Log.File]\nDir = 'log/file/dir'\nMaxSize = '100.00gb'\nMaxAgeDays = 17\nMaxBackups = 9\n\n[WebServer]\nAuthenticationMethod = 'local'\nAllowOrigins = '*'\nBridgeResponseURL = 'https://bridge.response'\nBridgeCacheTTL = '10s'\nHTTPWriteTimeout = '1m0s'\nHTTPPort = 56\nSecureCookies = true\nSessionTimeout = '1h0m0s'\nSessionReaperExpiration = '168h0m0s'\nHTTPMaxSize = '32.77kb'\nStartTimeout = '15s'\nListenIP = '192.158.1.37'\n\n[WebServer.LDAP]\nServerTLS = true\nSessionTimeout = '15m0s'\nQueryTimeout = '2m0s'\nBaseUserAttr = 'uid'\nBaseDN = ''\nUsersDN = 'ou=users'\nGroupsDN = 'ou=groups'\nActiveAttribute = ''\nActiveAttributeAllowedValue = ''\nAdminUserGroupCN = 'NodeAdmins'\nEditUserGroupCN = 'NodeEditors'\nRunUserGroupCN = 'NodeRunners'\nReadUserGroupCN = 'NodeReadOnly'\nUserApiTokenEnabled = false\nUserAPITokenDuration = '240h0m0s'\nUpstreamSyncInterval = '0s'\nUpstreamSyncRateLimit = '2m0s'\n\n[WebServer.MFA]\nRPID = 'test-rpid'\nRPOrigin = 'test-rp-origin'\n\n[WebServer.RateLimit]\nAuthenticated = 42\nAuthenticatedPeriod = '1s'\nUnauthenticated = 7\nUnauthenticatedPeriod = '1m0s'\n\n[WebServer.TLS]\nCertPath = 'tls/cert/path'\nForceRedirect = true\nHost = 'tls-host'\nHTTPSPort = 6789\nKeyPath = 'tls/key/path'\nListenIP = '192.158.1.37'\n\n[JobPipeline]\nExternalInitiatorsEnabled = true\nMaxRunDuration = '1h0m0s'\nMaxSuccessfulRuns = 123456\nReaperInterval = '4h0m0s'\nReaperThreshold = '168h0m0s'\nResultWriteQueueDepth = 10\nVerboseLogging = false\n\n[JobPipeline.HTTPRequest]\nDefaultTimeout = '1m0s'\nMaxSize = '100.00mb'\n\n[FluxMonitor]\nDefaultTransactionQueueDepth = 100\nSimulateTransactions = true\n\n[OCR2]\nEnabled = true\nContractConfirmations = 11\nBlockchainTimeout = '3s'\nContractPollInterval = '1h0m0s'\nContractSubscribeInterval = '1m0s'\nContractTransmitterTransmitTimeout = '1m0s'\nDatabaseTimeout = '8s'\nKeyBundleID = '7a5f66bbe6594259325bf2b4f5b1a9c900000000000000000000000000000000'\nCaptureEATelemetry = false\nCaptureAutomationCustomTelemetry = true\nDefaultTransactionQueueDepth = 1\nSimulateTransactions = false\nTraceLogging = false\n\n[OCR]\nEnabled = true\nObservationTimeout = '11s'\nBlockchainTimeout = '3s'\nContractPollInterval = '1h0m0s'\nContractSubscribeInterval = '1m0s'\nDefaultTransactionQueueDepth = 12\nKeyBundleID = 'acdd42797a8b921b2910497badc5000600000000000000000000000000000000'\nSimulateTransactions = true\nTransmitterAddress = '0xa0788FC17B1dEe36f057c42B6F373A34B014687e'\nCaptureEATelemetry = false\nTraceLogging = false\n\n[P2P]\nIncomingMessageBufferSize = 13\nOutgoingMessageBufferSize = 17\nPeerID = '12D3KooWMoejJznyDuEk5aX6GvbjaG12UzeornPCBNzMRqdwrFJw'\nTraceLogging = true\n\n[P2P.V2]\nEnabled = false\nAnnounceAddresses = ['a', 'b', 'c']\nDefaultBootstrappers = ['12D3KooWMoejJznyDuEk5aX6GvbjaG12UzeornPCBNzMRqdwrFJw@foo:42/bar:10', '12D3KooWMoejJznyDuEk5aX6GvbjaG12UzeornPCBNzMRqdwrFJw@test:99']\nDeltaDial = '1m0s'\nDeltaReconcile = '1s'\nListenAddresses = ['foo', 'bar']\n\n[Keeper]\nDefaultTransactionQueueDepth = 17\nGasPriceBufferPercent = 12\nGasTipCapBufferPercent = 43\nBaseFeeBufferPercent = 89\nMaxGracePeriod = 31\nTurnLookBack = 91\n\n[Keeper.Registry]\nCheckGasOverhead = 90\nPerformGasOverhead = 4294967295\nMaxPerformDataSize = 5000\nSyncInterval = '1h0m0s'\nSyncUpkeepQueueSize = 31\n\n[AutoPprof]\nEnabled = true\nProfileRoot = 'prof/root'\nPollInterval = '1m0s'\nGatherDuration = '12s'\nGatherTraceDuration = '13s'\nMaxProfileSize = '1.00gb'\nCPUProfileRate = 7\nMemProfileRate = 9\nBlockProfileRate = 5\nMutexProfileFraction = 2\nMemThreshold = '1.00gb'\nGoroutineThreshold = 999\n\n[Pyroscope]\nServerAddress = 'http://localhost:4040'\nEnvironment = 'tests'\n\n[Sentry]\nDebug = true\nDSN = 'sentry-dsn'\nEnvironment = 'dev'\nRelease = 'v1.2.3'\n\n[Insecure]\nDevWebServer = false\nOCRDevelopmentMode = false\nInfiniteDepthQueries = false\nDisableRateLimiting = false\n\n[Tracing]\nEnabled = false\nCollectorTarget = 'localhost:4317'\nNodeID = 'NodeID'\nSamplingRatio = 1.0\nMode = 'tls'\nTLSCertPath = '/path/to/cert.pem'\n\n[Tracing.Attributes]\nenv = 'dev'\ntest = 'load'\n\n[Mercury]\nVerboseLogging = true\n\n[Mercury.Cache]\nLatestReportTTL = '1m40s'\nMaxStaleAge = '1m41s'\nLatestReportDeadline = '1m42s'\n\n[Mercury.TLS]\nCertFile = ''\n\n[Mercury.Transmitter]\nProtocol = 'grpc'\nTransmitQueueMaxSize = 123\nTransmitTimeout = '3m54s'\nTransmitConcurrency = 456\n\n[Capabilities]\n[Capabilities.RateLimit]\nGlobalRPS = 200.0\nGlobalBurst = 200\nPerSenderRPS = 100.0\nPerSenderBurst = 100\n\n[Capabilities.Peering]\nIncomingMessageBufferSize = 13\nOutgoingMessageBufferSize = 17\nPeerID = '12D3KooWMoejJznyDuEk5aX6GvbjaG12UzeornPCBNzMRqdwrFJw'\nTraceLogging = true\n\n[Capabilities.Peering.V2]\nEnabled = false\nAnnounceAddresses = ['a', 'b', 'c']\nDefaultBootstrappers = ['12D3KooWMoejJznyDuEk5aX6GvbjaG12UzeornPCBNzMRqdwrFJw@foo:42/bar:10', '12D3KooWMoejJznyDuEk5aX6GvbjaG12UzeornPCBNzMRqdwrFJw@test:99']\nDeltaDial = '1m0s'\nDeltaReconcile = '2s'\nListenAddresses = ['foo', 'bar']\n\n[Capabilities.Dispatcher]\nSupportedVersion = 1\nReceiverBufferSize = 10000\n\n[Capabilities.Dispatcher.RateLimit]\nGlobalRPS = 800.0\nGlobalBurst = 1000\nPerSenderRPS = 10.0\nPerSenderBurst = 50\n\n[Capabilities.ExternalRegistry]\nAddress = ''\nNetworkID = 'evm'\nChainID = '1'\n\n[Capabilities.WorkflowRegistry]\nAddress = ''\nNetworkID = 'evm'\nChainID = '1'\nMaxBinarySize = '20.00mb'\nMaxEncryptedSecretsSize = '26.40kb'\nMaxConfigSize = '50.00kb'\n\n[Capabilities.GatewayConnector]\nChainIDForNodeKey = '11155111'\nNodeAddress = '0x68902d681c28119f9b2531473a417088bf008e59'\nDonID = 'example_don'\nWSHandshakeTimeoutMillis = 100\nAuthMinChallengeLen = 10\nAuthTimestampToleranceSec = 10\n\n[[Capabilities.GatewayConnector.Gateways]]\nID = 'example_gateway'\nURL = 'wss://localhost:8081/node'\n\n[Telemetry]\nEnabled = true\nCACertFile = 'cert-file'\nEndpoint = 'example.com/collector'\nInsecureConnection = true\nTraceSampleRatio = 0.01\nEmitterBatchProcessor = true\nEmitterExportTimeout = '1s'\n\n[Telemetry.ResourceAttributes]\nBaz = 'test'\nFoo = 'bar'\n\n[[EVM]]\nChainID = '1'\nEnabled = false\nAutoCreateKey = false\nBlockBackfillDepth = 100\nBlockBackfillSkip = true\nChainType = 'Optimism'\nFinalityDepth = 42\nFinalityTagEnabled = true\nFlagsContractAddress = '0xae4E781a6218A8031764928E88d457937A954fC3'\nLinkContractAddress = '0x538aAaB4ea120b2bC2fe5D296852D948F07D849e'\nLogBackfillBatchSize = 17\nLogPollInterval = '1m0s'\nLogKeepBlocksDepth = 100000\nLogPrunePageSize = 0\nBackupLogPollerBlockDelay = 100\nMinIncomingConfirmations = 13\nMinContractPayment = '9.223372036854775807 link'\nNonceAutoSync = true\nNoNewHeadsThreshold = '1m0s'\nOperatorFactoryAddress = '0xa5B85635Be42F21f94F28034B7DA440EeFF0F418'\nLogBroadcasterEnabled = true\nRPCDefaultBatchSize = 17\nRPCBlockQueryDelay
</cicore>

TOMLConfigs RawConfigs
func (r *RelayerFactory) NewCosmos(ks keystore.Cosmos, chainCfgs RawConfigs) (map[types.RelayID]loop.Relayer, error) {
loopKs := &keystore.CosmosLoopKeystore{Cosmos: ks}
return r.NewLOOPRelayer("Aptos", relay.NetworkCosmos, env.CosmosPlugin, loopKs, chainCfgs)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
return r.NewLOOPRelayer("Aptos", relay.NetworkCosmos, env.CosmosPlugin, loopKs, chainCfgs)
return r.NewLOOPRelayer("Cosmos", relay.NetworkCosmos, env.CosmosPlugin, loopKs, chainCfgs)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants