diff --git a/packages/pl-api/lib/client.ts b/packages/pl-api/lib/client.ts index 4f4982490..23be2b895 100644 --- a/packages/pl-api/lib/client.ts +++ b/packages/pl-api/lib/client.ts @@ -5849,7 +5849,7 @@ class PlApiClient { * @param recipientId - Recipient ID. */ findSubscription: async(senderId: string, recipientId: string) => { - const response = await this.request('/api/v1/subscriptions/find', { method: 'POST', body: { sender_id: senderId, recipient_id: recipientId } }); + const response = await this.request('/api/v1/subscriptions/find', { params: { sender_id: senderId, recipient_id: recipientId } }); return v.parse(subscriptionDetailsSchema, response.json); }, diff --git a/packages/pl-api/lib/entities/instance.ts b/packages/pl-api/lib/entities/instance.ts index 4945ba9c0..cf03caf22 100644 --- a/packages/pl-api/lib/entities/instance.ts +++ b/packages/pl-api/lib/entities/instance.ts @@ -423,6 +423,17 @@ const instanceSchema = v.pipe( title: v.fallback(v.string(), ''), usage: usageSchema, version: v.pipe(v.fallback(v.string(), '0.0.0'), v.transform(fixVersion)), + blockchains: v.fallback(v.optional(filteredArray(v.object({ + chain_id: v.fallback(v.nullable(v.string()), null), + chain_metadata: coerceObject({ + is_forwarding_required: v.fallback(v.boolean(), false), + description: v.fallback(v.string(), ''), + payment_amount_min: v.number(), + }), + features: coerceObject({ + subscriptions: v.fallback(v.boolean(), false), + }), + }))), undefined), }), ); diff --git a/packages/pl-api/lib/entities/subscription-invoice.ts b/packages/pl-api/lib/entities/subscription-invoice.ts index 6646de27e..47aa4e283 100644 --- a/packages/pl-api/lib/entities/subscription-invoice.ts +++ b/packages/pl-api/lib/entities/subscription-invoice.ts @@ -7,7 +7,7 @@ import { datetimeSchema } from './utils'; */ const subscriptionInvoiceSchema = v.object({ /** Invoice ID. */ - invoice_id: v.string(), + id: v.string(), /** The ID of the sender. */ sender_id: v.string(), /** The ID of the recipient. */ @@ -21,9 +21,9 @@ const subscriptionInvoiceSchema = v.object({ /** Invoice status. */ status: v.picklist(['open', 'paid', 'forwarded', 'timeout', 'cancelled', 'underpaid', 'completed', 'failed']), /** The date when invoice was created. */ - created_at: v.fallback(datetimeSchema, new Date().toISOString()), + created_at: datetimeSchema, /** The date when invoice times out. */ - invoice_expires_at: v.fallback(datetimeSchema, new Date().toISOString()), + invoice_expires_at: datetimeSchema, }); /** diff --git a/packages/pl-api/lib/entities/subscription-option.ts b/packages/pl-api/lib/entities/subscription-option.ts index 156a994fc..9b1ba02a4 100644 --- a/packages/pl-api/lib/entities/subscription-option.ts +++ b/packages/pl-api/lib/entities/subscription-option.ts @@ -3,16 +3,18 @@ import * as v from 'valibot'; /** * @category Schemas */ -const subscriptionOptionSchema = v.object({ - /** Subscription type */ - type: v.picklist(['monero']), - /** CAIP-2 chain ID. */ - chain_id: v.fallback(v.string(), ''), - /** Subscription price (only for Monero) */ - price: v.fallback(v.nullable(v.number()), null), - /** Payout address (only for Monero) */ - payout_address: v.fallback(v.string(), ''), -}); +const subscriptionOptionSchema = v.variant('type', [ + v.object({ + /** Subscription type */ + type: v.literal('monero'), + /** CAIP-2 chain ID. */ + chain_id: v.string(), + /** Subscription price */ + price: v.nullable(v.number()), + /** Payout address */ + payout_address: v.string(), + }), +]); /** * @category Entity types