@@ -1051,7 +1051,11 @@ impl ChainConf {
10511051 let ism = h_radix:: RadixIsm :: new ( provider, & locator, conf) ?;
10521052 Ok ( Box :: new ( ism) as Box < dyn InterchainSecurityModule > )
10531053 }
1054- ChainConnectionConf :: Tron ( _) => todo ! ( ) ,
1054+ ChainConnectionConf :: Tron ( conf) => {
1055+ let provider = build_tron_provider ( self , conf, metrics, & locator, None ) ?;
1056+ let ism = h_tron:: TronInterchainSecurityModule :: new ( provider, & locator) ;
1057+ Ok ( Box :: new ( ism) as Box < dyn InterchainSecurityModule > )
1058+ }
10551059 #[ cfg( feature = "aleo" ) ]
10561060 ChainConnectionConf :: Aleo ( conf) => {
10571061 let provider = build_aleo_provider ( self , conf, metrics, & locator, None ) ?;
@@ -1112,7 +1116,11 @@ impl ChainConf {
11121116 let ism = h_radix:: RadixIsm :: new ( provider, & locator, conf) ?;
11131117 Ok ( Box :: new ( ism) as Box < dyn MultisigIsm > )
11141118 }
1115- ChainConnectionConf :: Tron ( _) => todo ! ( ) ,
1119+ ChainConnectionConf :: Tron ( conf) => {
1120+ let provider = build_tron_provider ( self , conf, metrics, & locator, None ) ?;
1121+ let ism = h_tron:: TronMultisigIsm :: new ( provider, & locator) ;
1122+ Ok ( Box :: new ( ism) as Box < dyn MultisigIsm > )
1123+ }
11161124 #[ cfg( feature = "aleo" ) ]
11171125 ChainConnectionConf :: Aleo ( conf) => {
11181126 let provider = build_aleo_provider ( self , conf, metrics, & locator, None ) ?;
@@ -1168,7 +1176,11 @@ impl ChainConf {
11681176 let ism = h_radix:: RadixIsm :: new ( provider, & locator, conf) ?;
11691177 Ok ( Box :: new ( ism) as Box < dyn RoutingIsm > )
11701178 }
1171- ChainConnectionConf :: Tron ( _) => todo ! ( ) ,
1179+ ChainConnectionConf :: Tron ( conf) => {
1180+ let provider = build_tron_provider ( self , conf, metrics, & locator, None ) ?;
1181+ let ism = h_tron:: TronRoutingIsm :: new ( provider, & locator) ;
1182+ Ok ( Box :: new ( ism) as Box < dyn RoutingIsm > )
1183+ }
11721184 #[ cfg( feature = "aleo" ) ]
11731185 ChainConnectionConf :: Aleo ( conf) => {
11741186 let provider = build_aleo_provider ( self , conf, metrics, & locator, None ) ?;
@@ -1224,7 +1236,11 @@ impl ChainConf {
12241236 ChainConnectionConf :: Radix ( _) => {
12251237 todo ! ( "Radix aggregation ISM not yet implemented" )
12261238 }
1227- ChainConnectionConf :: Tron ( _) => todo ! ( ) ,
1239+ ChainConnectionConf :: Tron ( conf) => {
1240+ let provider = build_tron_provider ( self , conf, metrics, & locator, None ) ?;
1241+ let ism = h_tron:: TronAggregationIsm :: new ( provider, & locator) ;
1242+ Ok ( Box :: new ( ism) as Box < dyn AggregationIsm > )
1243+ }
12281244 #[ cfg( feature = "aleo" ) ]
12291245 ChainConnectionConf :: Aleo ( _) => Err ( eyre ! ( "Aleo support missing" ) ) . context ( ctx) ,
12301246 }
0 commit comments