MCPcopy Create free account
hub / github.com/consensus-shipyard/ipc / create_relayer

Method create_relayer

fendermint/testing/materializer/src/docker/mod.rs:1030–1074  ·  view source on GitHub ↗
(
        &'s mut self,
        parent_submit_config: &SubmitConfig<'a, DockerMaterials>,
        relayer_name: &RelayerName,
        relayer_config: RelayerConfig<'a, DockerMaterials>,
    )

Source from the content-addressed store, hash-verified

1028 }
1029
1030 async fn create_relayer<'s, 'a>(
1031 &'s mut self,
1032 parent_submit_config: &SubmitConfig<'a, DockerMaterials>,
1033 relayer_name: &RelayerName,
1034 relayer_config: RelayerConfig<'a, DockerMaterials>,
1035 ) -> anyhow::Result<DockerRelayer>
1036 where
1037 's: 'a,
1038 {
1039 let network_name = relayer_config
1040 .follow_config
1041 .find_node(|n| Some(n.network_name().clone()), |_| None);
1042
1043 // Add the parent subnet to the config.toml
1044 self.ipc_cli_config_add_subnet(parent_submit_config)?;
1045
1046 // Add the child subnet to the config.toml
1047 self.ipc_cli_config_add_subnet(relayer_config.follow_config)?;
1048
1049 // Add the submitter to the IPC wallet
1050 Self::ipc_cli_wallet_import(
1051 &self.ipc_cli_runner(&parent_submit_config.subnet.name.testnet(), None)?,
1052 relayer_config.submitter,
1053 )
1054 .await?;
1055
1056 // Create the relayer
1057 let relayer = DockerRelayer::get_or_create(
1058 &self.dir,
1059 self.docker.clone(),
1060 self.drop_chute.clone(),
1061 &self.drop_policy,
1062 relayer_name,
1063 relayer_config.follow_config.subnet,
1064 relayer_config.submitter,
1065 network_name,
1066 relayer_config.env,
1067 )
1068 .await?;
1069
1070 // Start the relayer
1071 relayer.start().await?;
1072
1073 Ok(relayer)
1074 }
1075}
1076
1077/// The `ipc-cli` puts the output in a human readable log instead of printing JSON.

Callers

nothing calls this directly

Calls 5

find_nodeMethod · 0.80
ipc_cli_runnerMethod · 0.80
network_nameMethod · 0.45
startMethod · 0.45

Tested by

no test coverage detected