@@ -1084,6 +1084,7 @@ async fn open_channel(
10841084 None ,
10851085 None ,
10861086 None ,
1087+ None ,
10871088 true ,
10881089 )
10891090 . await
@@ -1098,6 +1099,7 @@ async fn open_channel_with_retry(
10981099 push_msat : Option < u64 > ,
10991100 asset_amount : Option < u64 > ,
11001101 asset_id : Option < & str > ,
1102+ push_asset_amount : Option < u64 > ,
11011103 max_retries : u32 ,
11021104) -> Channel {
11031105 let mut attempt = 0 ;
@@ -1111,6 +1113,7 @@ async fn open_channel_with_retry(
11111113 push_msat,
11121114 asset_amount,
11131115 asset_id,
1116+ push_asset_amount,
11141117 None ,
11151118 None ,
11161119 None ,
@@ -1146,6 +1149,7 @@ async fn open_channel_raw(
11461149 push_msat : Option < u64 > ,
11471150 asset_amount : Option < u64 > ,
11481151 asset_id : Option < & str > ,
1152+ push_asset_amount : Option < u64 > ,
11491153 fee_base_msat : Option < u32 > ,
11501154 fee_proportional_millionths : Option < u32 > ,
11511155 temporary_channel_id : Option < & str > ,
@@ -1180,6 +1184,7 @@ async fn open_channel_raw(
11801184 push_msat : push_msat. unwrap_or ( 0 ) ,
11811185 asset_amount,
11821186 asset_id : asset_id. map ( |a| a. to_string ( ) ) ,
1187+ push_asset_amount,
11831188 public : true ,
11841189 with_anchors,
11851190 fee_base_msat,
@@ -1207,10 +1212,18 @@ async fn open_channel_raw(
12071212 tokio:: time:: sleep ( std:: time:: Duration :: from_secs ( 1 ) ) . await ;
12081213 let channels = list_channels ( node_address) . await ;
12091214 if let Some ( channel) = channels. iter ( ) . find ( |c| {
1215+ let asset_amounts_match = if asset_id. is_some ( ) {
1216+ let local_amount = asset_amount. unwrap_or ( 0 ) - push_asset_amount. unwrap_or ( 0 ) ;
1217+ let remote_amount = push_asset_amount. unwrap_or ( 0 ) ;
1218+ c. asset_local_amount == Some ( local_amount)
1219+ && c. asset_remote_amount == Some ( remote_amount)
1220+ } else {
1221+ c. asset_local_amount . is_none ( ) && c. asset_remote_amount . is_none ( )
1222+ } ;
12101223 !c. ready
12111224 && c. peer_pubkey == dest_peer_pubkey
12121225 && c. asset_id == asset_id. map ( |id| id. to_string ( ) )
1213- && c . asset_local_amount == asset_amount
1226+ && asset_amounts_match
12141227 } ) {
12151228 if let Some ( txid) = & channel. funding_txid {
12161229 let txout = _get_txout ( txid) ;
@@ -1254,6 +1267,7 @@ async fn open_channel_with_custom_data(
12541267 push_msat : Option < u64 > ,
12551268 asset_amount : Option < u64 > ,
12561269 asset_id : Option < & str > ,
1270+ push_asset_amount : Option < u64 > ,
12571271 fee_base_msat : Option < u32 > ,
12581272 fee_proportional_millionths : Option < u32 > ,
12591273 temporary_channel_id : Option < & str > ,
@@ -1267,6 +1281,7 @@ async fn open_channel_with_custom_data(
12671281 push_msat,
12681282 asset_amount,
12691283 asset_id,
1284+ push_asset_amount,
12701285 fee_base_msat,
12711286 fee_proportional_millionths,
12721287 temporary_channel_id,
@@ -1870,6 +1885,7 @@ mod multi_open_close;
18701885mod open_after_double_send;
18711886mod openchannel_fail;
18721887mod openchannel_optional_addr;
1888+ mod openchannel_push_asset_amount;
18731889mod payment;
18741890mod refuse_high_fees;
18751891mod restart;
0 commit comments