From 376dad0351c51b1b18eaee478abf9c714fae9cfb Mon Sep 17 00:00:00 2001 From: ruhil6789 Date: Thu, 15 Jan 2026 22:20:20 +0530 Subject: [PATCH 1/4] fix(koios): add cursor support to fetchCollectionAssets (#618) --- packages/mesh-provider/src/koios.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/mesh-provider/src/koios.ts b/packages/mesh-provider/src/koios.ts index 168e93fa2..b4d9793d9 100644 --- a/packages/mesh-provider/src/koios.ts +++ b/packages/mesh-provider/src/koios.ts @@ -283,23 +283,30 @@ export class KoiosProvider * @param cursor The cursor for pagination * @returns The list of assets and the next cursor */ - async fetchCollectionAssets(policyId: string): Promise<{ assets: Asset[] }> { + async fetchCollectionAssets( + policyId: string, + cursor?: number | string, + ): Promise<{ assets: Asset[]; next?: string | number | null }> { try { + // Note: Koios API doesn't support pagination for policy_asset_info endpoint + // We return all assets and set next to null to match the interface const { data, status } = await this._axiosInstance.get( `policy_asset_info?_asset_policy=${policyId}`, ); - if (status === 200) + if (status === 200) { return { assets: data.map((asset: KoiosAsset) => ({ unit: `${asset.policy_id}${asset.asset_name}`, quantity: asset.total_supply, })), + next: null, // Koios doesn't support pagination for this endpoint }; + } throw parseHttpError(data); } catch (error) { - throw parseHttpError(error); + return { assets: [], next: null }; } } From 70b033103422c2aa9469fc5815d705cf995ee26e Mon Sep 17 00:00:00 2001 From: ruhil6789 Date: Thu, 15 Jan 2026 22:20:35 +0530 Subject: [PATCH 2/4] docs(koios): document governance proposal limitation (#618) --- packages/mesh-provider/src/koios.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/mesh-provider/src/koios.ts b/packages/mesh-provider/src/koios.ts index b4d9793d9..e1104c667 100644 --- a/packages/mesh-provider/src/koios.ts +++ b/packages/mesh-provider/src/koios.ts @@ -460,7 +460,9 @@ export class KoiosProvider txHash: string, certIndex: number, ): Promise { - throw new Error("Method not implemented"); + // Koios API doesn't currently support governance proposal queries + // This is consistent with other providers like Maestro, Yaci, and U5C + throw new Error("Governance proposal queries are not supported by Koios API"); } /** From 294eb5c0180f28058f2e7286dd64fc46105c74fa Mon Sep 17 00:00:00 2001 From: ruhil6789 Date: Thu, 15 Jan 2026 22:35:35 +0530 Subject: [PATCH 3/4] fix(koios): correct evaluateTx response handling for Ogmios endpoint (#610) --- packages/mesh-provider/src/koios.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/mesh-provider/src/koios.ts b/packages/mesh-provider/src/koios.ts index e1104c667..44c58df3e 100644 --- a/packages/mesh-provider/src/koios.ts +++ b/packages/mesh-provider/src/koios.ts @@ -659,11 +659,13 @@ export class KoiosProvider }); if (status === 200 || status === 202) { - if (!data.result || !data.result.length) { + if (!data.result) { return []; } - return data.result.map((val: any) => { + // Koios Ogmios endpoint returns result as an object, not an array + // Use Object.values() to convert to array, matching Ogmios provider behavior + return Object.values(data.result).map((val: any) => { if (!val.validator || !val.budget) { throw new Error("Invalid response format"); } From 0397ff25f88e3f66b69974d2e91c1ac3d84bece7 Mon Sep 17 00:00:00 2001 From: ruhil6789 Date: Thu, 15 Jan 2026 22:42:37 +0530 Subject: [PATCH 4/4] fix(koios): add _datums parameter to fetchUTxOs for inline datum support (#612) --- packages/mesh-provider/src/koios.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/mesh-provider/src/koios.ts b/packages/mesh-provider/src/koios.ts index 44c58df3e..55f156753 100644 --- a/packages/mesh-provider/src/koios.ts +++ b/packages/mesh-provider/src/koios.ts @@ -437,6 +437,7 @@ export class KoiosProvider _assets: true, _scripts: true, _bytecode: true, + _datums: true, }); if (status === 200) {