diff --git a/guest-examples/swap-info/src/main.rs b/guest-examples/swap-info/src/main.rs index 562fa67..8143a47 100644 --- a/guest-examples/swap-info/src/main.rs +++ b/guest-examples/swap-info/src/main.rs @@ -67,12 +67,16 @@ 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.clone()); + let asset2_info = asset_info(pool.1.clone()); + if let (Some(a1), Some(a2)) = (asset1_info, asset2_info) { + result.push((a1, a2)); + } + } + result } } diff --git a/pvq-test-runner/src/lib.rs b/pvq-test-runner/src/lib.rs index 4897dda..8c51b62 100644 --- a/pvq-test-runner/src/lib.rs +++ b/pvq-test-runner/src/lib.rs @@ -18,6 +18,7 @@ pub enum ExtensionFungiblesFunctions { #[extensions_impl] pub mod extensions { use parity_scale_codec::Decode; + #[extensions_impl::impl_struct] pub struct ExtensionsImpl;