From d7db77a840ce4ecb4ac199d79e8a6f20fd645fae Mon Sep 17 00:00:00 2001 From: indirection42 Date: Sat, 26 Jul 2025 17:43:56 +0800 Subject: [PATCH] simplify entrypoint_list_pools --- guest-examples/swap-info/src/main.rs | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/guest-examples/swap-info/src/main.rs b/guest-examples/swap-info/src/main.rs index 562fa67..99b7d31 100644 --- a/guest-examples/swap-info/src/main.rs +++ b/guest-examples/swap-info/src/main.rs @@ -67,12 +67,19 @@ mod swap_info { } #[program::entrypoint] - fn entrypoint_list_pools() -> alloc::vec::Vec<(AssetId, AssetId)> { - list_pools() - } - - #[program::entrypoint] - fn entrypoint_asset_info(asset: AssetId) -> Option { - asset_info(asset) + fn entrypoint_list_pools() -> alloc::vec::Vec<(AssetInfo, AssetInfo)> { + let pools = list_pools(); + let mut result = alloc::vec::Vec::new(); + for pool in pools { + let asset1_info = asset_info(pool.0); + let asset2_info = asset_info(pool.1); + if asset1_info.is_some() && asset2_info.is_some() { + result.push(( + asset1_info.expect("checked before"), + asset2_info.expect("checked before"), + )); + } + } + result } }