@novasamatech/host-api 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -31,7 +31,7 @@ export { NotificationId, PushNotification, PushNotificationError } from './proto
31
31
  export { NavigateToErr } from './protocol/v1/navigation.js';
32
32
  export { PreimageKey, PreimageSubmitErr, PreimageValue } from './protocol/v1/preimage.js';
33
33
  export { AllocatableResource, AllocationOutcome, ResourceAllocationErr } from './protocol/v1/resourceAllocation.js';
34
- export { PaymentBalance, PaymentBalanceErr, PaymentId, PaymentReceipt, PaymentRequestErr, PaymentStatus, PaymentStatusErr, PaymentTopUpErr, PaymentTopUpId, PaymentTopUpSource, PaymentTopUpStatus, PaymentTopUpStatusErr, } from './protocol/v1/payments.js';
34
+ export { PaymentBalance, PaymentBalanceErr, PaymentId, PaymentRequestErr, PaymentStatus, PaymentStatusErr, PaymentTopUpErr, PaymentTopUpId, PaymentTopUpSource, PaymentTopUpStatus, PaymentTopUpStatusErr, } from './protocol/v1/payments.js';
35
35
  export { Arrangement, BorderStyle, ButtonVariant, ColorToken, ContentAlignment, CustomRendererNode, Dimensions, HorizontalAlignment, Modifier, Shape, Size, TypographyStyle, VerticalAlignment, } from './protocol/v1/customRenderer.js';
36
36
  export { ChainHeadEvent, ChainHeadFollowV1_start, ChainIdentifier, ChainInfoErr, OperationStartedResult, RuntimeType, StorageQueryItem, StorageQueryType, StorageResultItem, TransactionBroadcastV1_request, TransactionBroadcastV1_response, TransactionStopV1_request, TransactionStopV1_response, } from './protocol/v1/chainInteraction.js';
37
37
  export { CoinPaymentBalance, CoinPaymentCheque, CoinPaymentErr, CoinPaymentListenForItem, CoinPaymentPurseId, CoinPaymentPurseInfo, CoinPaymentReceivable, CoinPaymentStatus, CoinPaymentTransmissionChannel, } from './protocol/v1/coinPayment.js';
package/dist/index.js CHANGED
@@ -23,7 +23,7 @@ export { NotificationId, PushNotification, PushNotificationError } from './proto
23
23
  export { NavigateToErr } from './protocol/v1/navigation.js';
24
24
  export { PreimageKey, PreimageSubmitErr, PreimageValue } from './protocol/v1/preimage.js';
25
25
  export { AllocatableResource, AllocationOutcome, ResourceAllocationErr } from './protocol/v1/resourceAllocation.js';
26
- export { PaymentBalance, PaymentBalanceErr, PaymentId, PaymentReceipt, PaymentRequestErr, PaymentStatus, PaymentStatusErr, PaymentTopUpErr, PaymentTopUpId, PaymentTopUpSource, PaymentTopUpStatus, PaymentTopUpStatusErr, } from './protocol/v1/payments.js';
26
+ export { PaymentBalance, PaymentBalanceErr, PaymentId, PaymentRequestErr, PaymentStatus, PaymentStatusErr, PaymentTopUpErr, PaymentTopUpId, PaymentTopUpSource, PaymentTopUpStatus, PaymentTopUpStatusErr, } from './protocol/v1/payments.js';
27
27
  export { Arrangement, BorderStyle, ButtonVariant, ColorToken, ContentAlignment, CustomRendererNode, Dimensions, HorizontalAlignment, Modifier, Shape, Size, TypographyStyle, VerticalAlignment, } from './protocol/v1/customRenderer.js';
28
28
  export { ChainHeadEvent, ChainHeadFollowV1_start, ChainIdentifier, ChainInfoErr, OperationStartedResult, RuntimeType, StorageQueryItem, StorageQueryType, StorageResultItem, TransactionBroadcastV1_request, TransactionBroadcastV1_response, TransactionStopV1_request, TransactionStopV1_response, } from './protocol/v1/chainInteraction.js';
29
29
  export { CoinPaymentBalance, CoinPaymentCheque, CoinPaymentErr, CoinPaymentListenForItem, CoinPaymentPurseId, CoinPaymentPurseInfo, CoinPaymentReceivable, CoinPaymentStatus, CoinPaymentTransmissionChannel, } from './protocol/v1/coinPayment.js';
@@ -952,14 +952,13 @@ export declare const hostApiProtocol: {
952
952
  from: number | undefined;
953
953
  amount: bigint;
954
954
  destination: Uint8Array<ArrayBufferLike>;
955
- }>, Codec<import("./callError.js").CallResultValue<{
956
- id: string;
957
- }, import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::Rejected"> | import("@novasamatech/scale").CodecError<{
955
+ id: Uint8Array<ArrayBufferLike>;
956
+ }>, Codec<import("./callError.js").CallResultValue<undefined, import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::Rejected"> | import("@novasamatech/scale").CodecError<{
958
957
  reason: string;
959
- }, "PaymentRequestErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::InsufficientBalance">>>];
958
+ }, "PaymentRequestErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::AlreadyExists"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::InsufficientBalance">>>];
960
959
  }>;
961
960
  readonly host_payment_status_subscribe: VersionedProtocolSubscription<{
962
- readonly v1: [Codec<string>, Codec<{
961
+ readonly v1: [import("@novasamatech/scale").BytesCodec<number>, Codec<{
963
962
  tag: "Failed";
964
963
  value: string;
965
964
  } | {
@@ -968,6 +967,9 @@ export declare const hostApiProtocol: {
968
967
  } | {
969
968
  tag: "Completed";
970
969
  value: undefined;
970
+ } | {
971
+ tag: "PartiallyClaimed";
972
+ value: bigint;
971
973
  }>, [import("scale-ts").Encoder<import("@novasamatech/scale").CodecError<{
972
974
  reason: string;
973
975
  }, "PaymentStatusErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "PaymentStatusErr::PaymentNotFound">>, import("scale-ts").Decoder<import("@novasamatech/scale").CodecError<{
@@ -1006,15 +1006,14 @@ export declare const MessagePayload: EnumCodec<Record<"host_handshake_request",
1006
1006
  from: number | undefined;
1007
1007
  amount: bigint;
1008
1008
  destination: Uint8Array<ArrayBufferLike>;
1009
+ id: Uint8Array<ArrayBufferLike>;
1009
1010
  }>;
1010
1011
  }>> & Record<"host_payment_request_response", EnumCodec<{
1011
- readonly v1: Codec<import("./callError.js").CallResultValue<{
1012
- id: string;
1013
- }, import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::Rejected"> | import("@novasamatech/scale").CodecError<{
1012
+ readonly v1: Codec<import("./callError.js").CallResultValue<undefined, import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::Rejected"> | import("@novasamatech/scale").CodecError<{
1014
1013
  reason: string;
1015
- }, "PaymentRequestErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::InsufficientBalance">>>;
1014
+ }, "PaymentRequestErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::AlreadyExists"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::InsufficientBalance">>>;
1016
1015
  }>> & Record<"host_payment_status_subscribe_start", EnumCodec<{
1017
- readonly v1: Codec<string>;
1016
+ readonly v1: import("@novasamatech/scale").BytesCodec<number>;
1018
1017
  }>> & Record<"host_payment_status_subscribe_receive", EnumCodec<{
1019
1018
  readonly v1: Codec<{
1020
1019
  tag: "Failed";
@@ -1025,6 +1024,9 @@ export declare const MessagePayload: EnumCodec<Record<"host_handshake_request",
1025
1024
  } | {
1026
1025
  tag: "Completed";
1027
1026
  value: undefined;
1027
+ } | {
1028
+ tag: "PartiallyClaimed";
1029
+ value: bigint;
1028
1030
  }>;
1029
1031
  }>> & Record<"host_payment_status_subscribe_interrupt", EnumCodec<{
1030
1032
  readonly v1: [import("scale-ts").Encoder<import("@novasamatech/scale").CodecError<{
@@ -3069,23 +3071,22 @@ export declare const Message: Codec<{
3069
3071
  from: number | undefined;
3070
3072
  amount: bigint;
3071
3073
  destination: Uint8Array<ArrayBufferLike>;
3074
+ id: Uint8Array<ArrayBufferLike>;
3072
3075
  };
3073
3076
  };
3074
3077
  } | {
3075
3078
  tag: "host_payment_request_response";
3076
3079
  value: {
3077
3080
  tag: "v1";
3078
- value: import("./callError.js").CallResultValue<{
3079
- id: string;
3080
- }, import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::Rejected"> | import("@novasamatech/scale").CodecError<{
3081
+ value: import("./callError.js").CallResultValue<undefined, import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::Rejected"> | import("@novasamatech/scale").CodecError<{
3081
3082
  reason: string;
3082
- }, "PaymentRequestErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::InsufficientBalance">>;
3083
+ }, "PaymentRequestErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::AlreadyExists"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::InsufficientBalance">>;
3083
3084
  };
3084
3085
  } | {
3085
3086
  tag: "host_payment_status_subscribe_start";
3086
3087
  value: {
3087
3088
  tag: "v1";
3088
- value: string;
3089
+ value: Uint8Array<ArrayBufferLike>;
3089
3090
  };
3090
3091
  } | {
3091
3092
  tag: "host_payment_status_subscribe_receive";
@@ -3100,6 +3101,9 @@ export declare const Message: Codec<{
3100
3101
  } | {
3101
3102
  tag: "Completed";
3102
3103
  value: undefined;
3104
+ } | {
3105
+ tag: "PartiallyClaimed";
3106
+ value: bigint;
3103
3107
  };
3104
3108
  };
3105
3109
  } | {
@@ -1,5 +1,6 @@
1
1
  export declare const Sr25519SecretKey: import("@novasamatech/scale").BytesCodec<number>;
2
- export declare const PaymentId: import("scale-ts").Codec<string>;
2
+ /** Product-supplied, opaque 32-byte idempotency key for a payment request. */
3
+ export declare const PaymentId: import("@novasamatech/scale").BytesCodec<number>;
3
4
  /** Product-supplied, opaque 32-byte idempotency key for a top up. */
4
5
  export declare const PaymentTopUpId: import("@novasamatech/scale").BytesCodec<number>;
5
6
  export declare const CoinPaymentPurseId: import("scale-ts").Codec<number>;
@@ -22,9 +23,6 @@ export declare const PaymentTopUpSource: import("scale-ts").Codec<{
22
23
  export declare const PaymentBalance: import("scale-ts").Codec<{
23
24
  available: bigint;
24
25
  }>;
25
- export declare const PaymentReceipt: import("scale-ts").Codec<{
26
- id: string;
27
- }>;
28
26
  export declare const PaymentStatus: import("scale-ts").Codec<{
29
27
  tag: "Failed";
30
28
  value: string;
@@ -34,6 +32,9 @@ export declare const PaymentStatus: import("scale-ts").Codec<{
34
32
  } | {
35
33
  tag: "Completed";
36
34
  value: undefined;
35
+ } | {
36
+ tag: "PartiallyClaimed";
37
+ value: bigint;
37
38
  }>;
38
39
  export declare const PaymentTopUpStatus: import("scale-ts").Codec<{
39
40
  tag: "Detecting";
@@ -122,16 +123,17 @@ export declare const PaymentTopUpStatusErr: [import("scale-ts").Encoder<import("
122
123
  };
123
124
  export declare const PaymentRequestErr: [import("scale-ts").Encoder<import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::Rejected"> | import("@novasamatech/scale").CodecError<{
124
125
  reason: string;
125
- }, "PaymentRequestErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::InsufficientBalance">>, import("scale-ts").Decoder<import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::Rejected"> | import("@novasamatech/scale").CodecError<{
126
+ }, "PaymentRequestErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::AlreadyExists"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::InsufficientBalance">>, import("scale-ts").Decoder<import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::Rejected"> | import("@novasamatech/scale").CodecError<{
126
127
  reason: string;
127
- }, "PaymentRequestErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::InsufficientBalance">>] & {
128
+ }, "PaymentRequestErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::AlreadyExists"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::InsufficientBalance">>] & {
128
129
  enc: import("scale-ts").Encoder<import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::Rejected"> | import("@novasamatech/scale").CodecError<{
129
130
  reason: string;
130
- }, "PaymentRequestErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::InsufficientBalance">>;
131
+ }, "PaymentRequestErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::AlreadyExists"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::InsufficientBalance">>;
131
132
  dec: import("scale-ts").Decoder<import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::Rejected"> | import("@novasamatech/scale").CodecError<{
132
133
  reason: string;
133
- }, "PaymentRequestErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::InsufficientBalance">>;
134
+ }, "PaymentRequestErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::AlreadyExists"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::InsufficientBalance">>;
134
135
  } & {
136
+ readonly AlreadyExists: import("@novasamatech/scale").ErrCodec<undefined, "PaymentRequestErr::AlreadyExists">;
135
137
  readonly Rejected: import("@novasamatech/scale").ErrCodec<undefined, "PaymentRequestErr::Rejected">;
136
138
  readonly InsufficientBalance: import("@novasamatech/scale").ErrCodec<undefined, "PaymentRequestErr::InsufficientBalance">;
137
139
  readonly Unknown: import("@novasamatech/scale").ErrCodec<{
@@ -140,7 +142,7 @@ export declare const PaymentRequestErr: [import("scale-ts").Encoder<import("@nov
140
142
  } & {
141
143
  [Symbol.hasInstance](v: unknown): v is import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::Rejected"> | import("@novasamatech/scale").CodecError<{
142
144
  reason: string;
143
- }, "PaymentRequestErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::InsufficientBalance">;
145
+ }, "PaymentRequestErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::AlreadyExists"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::InsufficientBalance">;
144
146
  };
145
147
  export declare const PaymentStatusErr: [import("scale-ts").Encoder<import("@novasamatech/scale").CodecError<{
146
148
  reason: string;
@@ -218,13 +220,12 @@ export declare const PaymentRequestV1_request: import("scale-ts").Codec<{
218
220
  from: number | undefined;
219
221
  amount: bigint;
220
222
  destination: Uint8Array<ArrayBufferLike>;
223
+ id: Uint8Array<ArrayBufferLike>;
221
224
  }>;
222
- export declare const PaymentRequestV1_response: import("scale-ts").Codec<import("../callError.js").CallResultValue<{
223
- id: string;
224
- }, import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::Rejected"> | import("@novasamatech/scale").CodecError<{
225
+ export declare const PaymentRequestV1_response: import("scale-ts").Codec<import("../callError.js").CallResultValue<undefined, import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::Rejected"> | import("@novasamatech/scale").CodecError<{
225
226
  reason: string;
226
- }, "PaymentRequestErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::InsufficientBalance">>>;
227
- export declare const PaymentStatusSubscribeV1_start: import("scale-ts").Codec<string>;
227
+ }, "PaymentRequestErr::Unknown"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::AlreadyExists"> | import("@novasamatech/scale").CodecError<undefined, "PaymentRequestErr::InsufficientBalance">>>;
228
+ export declare const PaymentStatusSubscribeV1_start: import("@novasamatech/scale").BytesCodec<number>;
228
229
  export declare const PaymentStatusSubscribeV1_receive: import("scale-ts").Codec<{
229
230
  tag: "Failed";
230
231
  value: string;
@@ -234,6 +235,9 @@ export declare const PaymentStatusSubscribeV1_receive: import("scale-ts").Codec<
234
235
  } | {
235
236
  tag: "Completed";
236
237
  value: undefined;
238
+ } | {
239
+ tag: "PartiallyClaimed";
240
+ value: bigint;
237
241
  }>;
238
242
  export declare const PaymentStatusSubscribeV1_interrupt: [import("scale-ts").Encoder<import("@novasamatech/scale").CodecError<{
239
243
  reason: string;
@@ -5,7 +5,8 @@ import { GenericErr } from '../commonCodecs.js';
5
5
  import { DerivationIndex } from './accounts.js';
6
6
  // common types
7
7
  export const Sr25519SecretKey = Bytes(64);
8
- export const PaymentId = str;
8
+ /** Product-supplied, opaque 32-byte idempotency key for a payment request. */
9
+ export const PaymentId = Bytes(32);
9
10
  /** Product-supplied, opaque 32-byte idempotency key for a top up. */
10
11
  export const PaymentTopUpId = Bytes(32);
11
12
  // Optional purse selector (RFC 0017). `undefined` (None) targets MAIN_PURSE.
@@ -19,13 +20,17 @@ export const PaymentTopUpSource = Enum({
19
20
  export const PaymentBalance = Struct({
20
21
  available: u128,
21
22
  });
22
- export const PaymentReceipt = Struct({
23
- id: PaymentId,
24
- });
23
+ // A status never advances once it reaches a terminal variant (`Completed`,
24
+ // `Failed`, `PartiallyClaimed`); the host takes no further action and keeps the
25
+ // status readable indefinitely.
25
26
  export const PaymentStatus = Enum({
26
27
  Processing: _void,
28
+ // Terminal: the full amount reached the destination.
27
29
  Completed: _void,
30
+ // Terminal: the payment did not go through; carries the reason.
28
31
  Failed: str,
32
+ // Terminal: only this amount reached the destination, less than requested.
33
+ PartiallyClaimed: u128,
29
34
  });
30
35
  // A status never advances once it reaches a terminal variant (`Claimed` with
31
36
  // `finalized`, `ClaimedPartially`, `NotClaimed`); the host takes no further
@@ -64,6 +69,7 @@ export const PaymentTopUpStatusErr = ErrEnum('PaymentTopUpStatusErr', {
64
69
  Unknown: [GenericErr, 'unknown error'],
65
70
  });
66
71
  export const PaymentRequestErr = ErrEnum('PaymentRequestErr', {
72
+ AlreadyExists: [_void, 'a payment with this id already exists'],
67
73
  Rejected: [_void, 'rejected'],
68
74
  InsufficientBalance: [_void, 'insufficient balance'],
69
75
  Unknown: [GenericErr, 'unknown error'],
@@ -91,8 +97,9 @@ export const PaymentRequestV1_request = Struct({
91
97
  from: Option(CoinPaymentPurseId),
92
98
  amount: u128,
93
99
  destination: Bytes(32),
100
+ id: PaymentId,
94
101
  });
95
- export const PaymentRequestV1_response = CallResult(PaymentReceipt, PaymentRequestErr);
102
+ export const PaymentRequestV1_response = CallResult(_void, PaymentRequestErr);
96
103
  // host_payment_status_subscribe
97
104
  export const PaymentStatusSubscribeV1_start = PaymentId;
98
105
  export const PaymentStatusSubscribeV1_receive = PaymentStatus;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@novasamatech/host-api",
3
3
  "type": "module",
4
- "version": "0.11.0",
4
+ "version": "0.12.0",
5
5
  "description": "Host API: transport implementation for host - product integration.",
6
6
  "license": "Apache-2.0",
7
7
  "repository": {
@@ -22,7 +22,7 @@
22
22
  "README.md"
23
23
  ],
24
24
  "dependencies": {
25
- "@novasamatech/scale": "0.11.0",
25
+ "@novasamatech/scale": "0.12.0",
26
26
  "nanoevents": "10.0.0",
27
27
  "nanoid": "6.0.1",
28
28
  "neverthrow": "^8.2.0",