Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions cli/commands/bridge/relays/ibc.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,30 @@ func startIbcRelay(diveContext *common.DiveContext, enclaveContext *enclaves.Enc
}

}

if chainA == "icon" {
startIbcRelayIconToCosmos(diveContext, enclaveContext, common.RelayServiceNameIconToCosmos)
}

return starlarkExecutionResponse
}

func startIbcRelayIconToCosmos(diveContext *common.DiveContext, enclaveContext *enclaves.EnclaveContext, serviceName string) (string, error) {
params := fmt.Sprintf(`{"service_name": "%s"}`, serviceName)

executionData, _, err := enclaveContext.RunStarlarkRemotePackage(diveContext.Ctx, common.DiveRemotePackagePath, "services/bridges/ibc/src/bridge.star", "start_relay", params, false, 4, []kurtosis_core_rpc_api_bindings.KurtosisFeatureFlag{})

executionSerializedData, services, _, err := diveContext.GetSerializedData(executionData)

if err != nil {
diveContext.StopServices(services)
return "", err

}

return executionSerializedData, nil
}

func startCosmosChainsAndSetupIbcRelay(diveContext *common.DiveContext, enclaveCtx *enclaves.EnclaveContext, chains *Chains) (string, error) {

params := chains.getIbcRelayParams()
Expand Down
1 change: 1 addition & 0 deletions cli/common/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ const (
DiveArchwayNodeScript = "services/cosmvm/archway/src/node-setup/start_node.star"
DiveArchwayDefaultNodeScript = "services/cosmvm/archway/archway.star"
DiveNeutronNodeScript = "services/cosmvm/neutron/src/node-setup/start_node.star"
RelayServiceNameIconToCosmos = "ibc-relayer"
DiveNeutronDefaultNodeScript = "services/cosmvm/neutron/neutron.star"
DiveBridgeScript = "main.star"
DiveDryRun = false
Expand Down
13 changes: 11 additions & 2 deletions main.star
Original file line number Diff line number Diff line change
Expand Up @@ -313,7 +313,7 @@ def run_cosmos_ibc_relay_for_already_running_chains(plan, src_chain_config, dst_
}

# Open BTP network on ICON chain
icon_setup_node.open_btp_network(plan, src_chain_service_name, src_data, src_chain_config["endpoint"], src_chain_config["keystore_path"], src_chain_config["keypassword"], src_chain_config["nid"])
tx_result_open_btp_network = icon_setup_node.open_btp_network(plan, src_chain_service_name, src_data, src_chain_config["endpoint"], src_chain_config["keystore_path"], src_chain_config["keypassword"], src_chain_config["nid"])

icon_bind_port = icon_relay_setup.bindPort(plan, src_chain_service_name, deploy_icon_contracts["xcall_connection"], src_chain_config["keystore_path"], src_chain_config["keypassword"], src_chain_config["nid"], src_chain_config["endpoint"], deploy_icon_contracts["ibc_core"], "xcall")

Expand All @@ -333,11 +333,20 @@ def run_cosmos_ibc_relay_for_already_running_chains(plan, src_chain_config, dst_
config_data["contracts"][src_chain_service_name] = deploy_icon_contracts
config_data["contracts"][dst_chain_service_name] = deploy_cosmos_contracts

src_chain_id = src_chain_config["network_name"].split('-', 1)[1]

network_id = icon_setup_node.hex_to_int(plan, src_chain_service_name, src_chain_config["nid"])
btp_network_id = icon_setup_node.hex_to_int(plan, src_chain_service_name, tx_result_open_btp_network["extract.network_id"])
btp_network_type_id = icon_setup_node.hex_to_int(plan, src_chain_service_name, tx_result_open_btp_network["extract.network_type_id"])

src_chain_data = {
"chain_id": "0xacbc4e",
"chain_id": src_chain_id,
"rpc_address": src_chain_config["endpoint"],
"ibc_address": deploy_icon_contracts["ibc_core"],
"password": src_chain_config["keypassword"],
"network_id": network_id,
"btp_network_id": btp_network_id,
"btp_network_type_id": btp_network_type_id
}

dst_chain_data = {
Expand Down
5 changes: 4 additions & 1 deletion services/bridges/ibc/src/bridge.star
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,9 @@ def start_cosmos_relay_for_icon_to_cosmos(plan, src_chain_config, dst_chain_conf
"CHAINID": src_chain_config["chain_id"],
"RPCADDRESS": src_chain_config["rpc_address"],
"IBCADDRESS": src_chain_config["ibc_address"],
"ICONNETWORKNID": src_chain_config["network_id"],
"BTPNETWORKID": src_chain_config["btp_network_id"],
"BTPNETWORKTYPEID": src_chain_config["btp_network_type_id"]
}

plan.render_templates(
Expand Down Expand Up @@ -247,4 +250,4 @@ def start_channel(plan, service_name, path_name, src_port, dst_port):

def start_relay(plan, service_name):
plan.print("Starting Relay")
plan.exec(service_name = service_name, recipe = ExecRecipe(command = ["/bin/sh", "-c", "ln -sf /proc/1/fd/1 /root/.relayer/relay.log && rly start 1>&2"]))
plan.exec(service_name = service_name, recipe = ExecRecipe(command = ["/bin/sh", "-c", "ln -sf /proc/1/fd/1 /root/.relayer/relay.log && rly start 1>&2 &"]))
6 changes: 3 additions & 3 deletions services/bridges/ibc/static-files/config/icon.json.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
"timeout": "30s",
"keystore": "keystore",
"password": "gochain",
"icon-network-id": 3,
"btp-network-id": 1,
"btp-network-type-id": 1,
"icon-network-id": {{.ICONNETWORKNID}},
"btp-network-id": {{.BTPNETWORKID}},
"btp-network-type-id": {{.BTPNETWORKTYPEID}},
"start-height": 0,
"ibc-handler-address":"{{.IBCADDRESS}}",
"first-retry-block-after": 0,
Expand Down
2 changes: 1 addition & 1 deletion test/functional/dive_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -374,7 +374,7 @@ var _ = ginkgo.Describe("DIVE CLI App", func() {
ginkgo.It("should start IBC relay between already running custom icon and neutron chain", func() {
dive.RunCustomIconNode()
dive.RunNeutronNode()
cmd.Args = append(cmd.Args, "bridge", "ibc", "--chainA", "icon", "--chainB", "neutron", "--chainAServiceName", "icon-node-0xacbc4e", "--chainBServiceName", "neutron-node-test-chain1")
cmd.Args = append(cmd.Args, "bridge", "ibc", "--chainA", "icon", "--chainB", "neutron", "--chainAServiceName", "icon-node-0x42f1f3", "--chainBServiceName", "neutron-node-test-chain1")
err := cmd.Run()
gomega.Expect(err).NotTo(gomega.HaveOccurred())
})
Expand Down