@0xpolygonid/js-sdk 1.12.0 → 1.13.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.
@@ -0,0 +1,100 @@
1
+ import { BasicMessage, IPackageManager, PackerParams } from '../types';
2
+ import { DID } from '@iden3/js-iden3-core';
3
+ import { AbstractMessageHandler, IProtocolMessageHandler } from './message-handler';
4
+ import { PaymentInfo, PaymentMessage, PaymentRequestDataInfo, PaymentRequestInfo, PaymentRequestMessage } from '../types/protocol/payment';
5
+ /**
6
+ * @beta
7
+ * createPaymentRequest is a function to create protocol payment-request message
8
+ * @param {DID} sender - sender did
9
+ * @param {DID} receiver - receiver did
10
+ * @param {string} agent - agent URL
11
+ * @param {PaymentRequestInfo[]} payments - payments
12
+ * @returns `PaymentRequestMessage`
13
+ */
14
+ export declare function createPaymentRequest(sender: DID, receiver: DID, agent: string, payments: PaymentRequestInfo[]): PaymentRequestMessage;
15
+ /**
16
+ * @beta
17
+ * createPayment is a function to create protocol payment message
18
+ * @param {DID} sender - sender did
19
+ * @param {DID} receiver - receiver did
20
+ * @param {PaymentInfo[]} payments - payments
21
+ * @returns `PaymentMessage`
22
+ */
23
+ export declare function createPayment(sender: DID, receiver: DID, payments: PaymentInfo[]): PaymentMessage;
24
+ /**
25
+ * @beta
26
+ * Interface that allows the processing of the payment-request and payment protocol messages
27
+ *
28
+ * @interface IPaymentHandler
29
+ */
30
+ export interface IPaymentHandler {
31
+ /**
32
+ * @beta
33
+ * unpacks payment-request
34
+ * @param {Uint8Array} request - raw byte message
35
+ * @returns `Promise<PaymentRequestMessage>`
36
+ */
37
+ parsePaymentRequest(request: Uint8Array): Promise<PaymentRequestMessage>;
38
+ /**
39
+ * @beta
40
+ * handle payment-request
41
+ * @param {Uint8Array} request - raw byte message
42
+ * @param {PaymentRequestMessageHandlerOptions} opts - handler options
43
+ * @returns {Promise<Uint8Array>} - agent message or null
44
+ */
45
+ handlePaymentRequest(request: Uint8Array, opts: PaymentRequestMessageHandlerOptions): Promise<Uint8Array | null>;
46
+ /**
47
+ * @beta
48
+ * handle payment protocol message
49
+ * @param {PaymentMessage} payment - payment message
50
+ * @param {PaymentHandlerOptions} opts - options
51
+ * @returns `Promise<void>`
52
+ */
53
+ handlePayment(payment: PaymentMessage, opts: PaymentHandlerOptions): Promise<void>;
54
+ }
55
+ /** @beta PaymentRequestMessageHandlerOptions represents payment-request handler options */
56
+ export type PaymentRequestMessageHandlerOptions = {
57
+ paymentHandler: (data: PaymentRequestDataInfo) => Promise<string>;
58
+ };
59
+ /** @beta PaymentHandlerOptions represents payment handler options */
60
+ export type PaymentHandlerOptions = {
61
+ paymentRequest: PaymentRequestMessage;
62
+ paymentValidationHandler: (txId: string, data: PaymentRequestDataInfo) => Promise<void>;
63
+ };
64
+ /** @beta PaymentHandlerParams represents payment handler params */
65
+ export type PaymentHandlerParams = {
66
+ packerParams: PackerParams;
67
+ };
68
+ /**
69
+ *
70
+ * Allows to process PaymentRequest protocol message
71
+ * @beta
72
+ * @class PaymentHandler
73
+ * @implements implements IPaymentHandler interface
74
+ */
75
+ export declare class PaymentHandler extends AbstractMessageHandler implements IPaymentHandler, IProtocolMessageHandler {
76
+ private readonly _packerMgr;
77
+ private readonly _params;
78
+ /**
79
+ * @beta Creates an instance of PaymentHandler.
80
+ * @param {IPackageManager} _packerMgr - package manager to unpack message envelope
81
+ * @param {PaymentHandlerParams} _params - payment handler params
82
+ *
83
+ */
84
+ constructor(_packerMgr: IPackageManager, _params: PaymentHandlerParams);
85
+ handle(message: BasicMessage, context: PaymentRequestMessageHandlerOptions | PaymentHandlerOptions): Promise<BasicMessage | null>;
86
+ /**
87
+ * @inheritdoc IPaymentHandler#parsePaymentRequest
88
+ */
89
+ parsePaymentRequest(request: Uint8Array): Promise<PaymentRequestMessage>;
90
+ private handlePaymentRequestMessage;
91
+ /**
92
+ * @inheritdoc IPaymentHandler#handlePaymentRequest
93
+ */
94
+ handlePaymentRequest(request: Uint8Array, opts: PaymentRequestMessageHandlerOptions): Promise<Uint8Array | null>;
95
+ /**
96
+ * @inheritdoc IPaymentHandler#handlePayment
97
+ */
98
+ handlePayment(payment: PaymentMessage, opts: PaymentHandlerOptions): Promise<void>;
99
+ private packMessage;
100
+ }
@@ -5,5 +5,6 @@ export * from './protocol/proof';
5
5
  export * from './protocol/revocation';
6
6
  export * from './protocol/contract-request';
7
7
  export * from './protocol/proposal-request';
8
+ export * from './protocol/payment';
8
9
  export * from './packer';
9
10
  export * from './packageManager';
@@ -0,0 +1,47 @@
1
+ import { BasicMessage } from '../';
2
+ import { PaymentRequestDataType, PaymentRequestType, PaymentType } from '../../../verifiable';
3
+ /** @beta PaymentRequestMessage is struct the represents payment-request message */
4
+ export type PaymentRequestMessage = BasicMessage & {
5
+ body?: PaymentRequestMessageBody;
6
+ };
7
+ /** @beta PaymentRequestMessageBody is struct the represents body for payment-request */
8
+ export type PaymentRequestMessageBody = {
9
+ agent: string;
10
+ payments: PaymentRequestInfo[];
11
+ };
12
+ /** @beta PaymentRequestInfo is struct the represents payment info for payment-request */
13
+ export type PaymentRequestInfo = {
14
+ credentials: {
15
+ type: string;
16
+ context: string;
17
+ }[];
18
+ type: PaymentRequestType;
19
+ data: PaymentRequestDataInfo;
20
+ expiration: number;
21
+ description: string;
22
+ };
23
+ /** @beta PaymentRequestDataInfo is struct the represents payment data info for payment-request */
24
+ export type PaymentRequestDataInfo = {
25
+ type: PaymentRequestDataType;
26
+ amount: string;
27
+ id: number;
28
+ chainId: number;
29
+ address: string;
30
+ signature?: string;
31
+ };
32
+ /** @beta PaymentMessage is struct the represents payment message */
33
+ export type PaymentMessage = BasicMessage & {
34
+ body?: PaymentMessageBody;
35
+ };
36
+ /** @beta PaymentMessageBody is struct the represents body for payment message */
37
+ export type PaymentMessageBody = {
38
+ payments: PaymentInfo[];
39
+ };
40
+ /** @beta PaymentInfo is struct the represents payment info for payment */
41
+ export type PaymentInfo = {
42
+ id: number;
43
+ type: PaymentType;
44
+ paymentData: {
45
+ txId: string;
46
+ };
47
+ };
@@ -85,3 +85,27 @@ export declare enum SubjectPosition {
85
85
  export declare enum RefreshServiceType {
86
86
  Iden3RefreshService2023 = "Iden3RefreshService2023"
87
87
  }
88
+ /**
89
+ * PaymentRequestType type for payment requests
90
+ *
91
+ * @enum {string}
92
+ */
93
+ export declare enum PaymentRequestType {
94
+ PaymentRequest = "PaymentRequest"
95
+ }
96
+ /**
97
+ * PaymentRequestDataType type for payment requests
98
+ *
99
+ * @enum {string}
100
+ */
101
+ export declare enum PaymentRequestDataType {
102
+ Iden3PaymentRequestCryptoV1 = "Iden3PaymentRequestCryptoV1"
103
+ }
104
+ /**
105
+ * PaymentType type for payment responses
106
+ *
107
+ * @enum {string}
108
+ */
109
+ export declare enum PaymentType {
110
+ Iden3PaymentCryptoV1 = "Iden3PaymentCryptoV1"
111
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xpolygonid/js-sdk",
3
- "version": "1.12.0",
3
+ "version": "1.13.0",
4
4
  "description": "SDK to work with Polygon ID",
5
5
  "main": "dist/node/cjs/index.js",
6
6
  "module": "dist/node/esm/index.js",