digirails 0.1.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.
Files changed (135) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +102 -0
  3. package/dist/agent.d.ts +72 -0
  4. package/dist/agent.d.ts.map +1 -0
  5. package/dist/agent.js +176 -0
  6. package/dist/agent.js.map +1 -0
  7. package/dist/config.d.ts +24 -0
  8. package/dist/config.d.ts.map +1 -0
  9. package/dist/config.js +46 -0
  10. package/dist/config.js.map +1 -0
  11. package/dist/crypto/base58.d.ts +9 -0
  12. package/dist/crypto/base58.d.ts.map +1 -0
  13. package/dist/crypto/base58.js +107 -0
  14. package/dist/crypto/base58.js.map +1 -0
  15. package/dist/crypto/bech32.d.ts +9 -0
  16. package/dist/crypto/bech32.d.ts.map +1 -0
  17. package/dist/crypto/bech32.js +141 -0
  18. package/dist/crypto/bech32.js.map +1 -0
  19. package/dist/crypto/index.d.ts +6 -0
  20. package/dist/crypto/index.d.ts.map +1 -0
  21. package/dist/crypto/index.js +22 -0
  22. package/dist/crypto/index.js.map +1 -0
  23. package/dist/crypto/keys.d.ts +25 -0
  24. package/dist/crypto/keys.d.ts.map +1 -0
  25. package/dist/crypto/keys.js +129 -0
  26. package/dist/crypto/keys.js.map +1 -0
  27. package/dist/crypto/script.d.ts +12 -0
  28. package/dist/crypto/script.d.ts.map +1 -0
  29. package/dist/crypto/script.js +105 -0
  30. package/dist/crypto/script.js.map +1 -0
  31. package/dist/crypto/transaction.d.ts +47 -0
  32. package/dist/crypto/transaction.d.ts.map +1 -0
  33. package/dist/crypto/transaction.js +227 -0
  34. package/dist/crypto/transaction.js.map +1 -0
  35. package/dist/discovery/index.d.ts +2 -0
  36. package/dist/discovery/index.d.ts.map +1 -0
  37. package/dist/discovery/index.js +6 -0
  38. package/dist/discovery/index.js.map +1 -0
  39. package/dist/discovery/manifest_client.d.ts +9 -0
  40. package/dist/discovery/manifest_client.d.ts.map +1 -0
  41. package/dist/discovery/manifest_client.js +29 -0
  42. package/dist/discovery/manifest_client.js.map +1 -0
  43. package/dist/exceptions.d.ts +32 -0
  44. package/dist/exceptions.d.ts.map +1 -0
  45. package/dist/exceptions.js +72 -0
  46. package/dist/exceptions.js.map +1 -0
  47. package/dist/index.d.ts +31 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +135 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/models/enums.d.ts +48 -0
  52. package/dist/models/enums.d.ts.map +1 -0
  53. package/dist/models/enums.js +84 -0
  54. package/dist/models/enums.js.map +1 -0
  55. package/dist/models/index.d.ts +4 -0
  56. package/dist/models/index.d.ts.map +1 -0
  57. package/dist/models/index.js +20 -0
  58. package/dist/models/index.js.map +1 -0
  59. package/dist/models/manifest.d.ts +327 -0
  60. package/dist/models/manifest.d.ts.map +1 -0
  61. package/dist/models/manifest.js +47 -0
  62. package/dist/models/manifest.js.map +1 -0
  63. package/dist/models/messages.d.ts +336 -0
  64. package/dist/models/messages.d.ts.map +1 -0
  65. package/dist/models/messages.js +166 -0
  66. package/dist/models/messages.js.map +1 -0
  67. package/dist/network/constants.d.ts +51 -0
  68. package/dist/network/constants.d.ts.map +1 -0
  69. package/dist/network/constants.js +63 -0
  70. package/dist/network/constants.js.map +1 -0
  71. package/dist/network/index.d.ts +3 -0
  72. package/dist/network/index.d.ts.map +1 -0
  73. package/dist/network/index.js +19 -0
  74. package/dist/network/index.js.map +1 -0
  75. package/dist/network/params.d.ts +21 -0
  76. package/dist/network/params.d.ts.map +1 -0
  77. package/dist/network/params.js +57 -0
  78. package/dist/network/params.js.map +1 -0
  79. package/dist/opreturn.d.ts +25 -0
  80. package/dist/opreturn.d.ts.map +1 -0
  81. package/dist/opreturn.js +118 -0
  82. package/dist/opreturn.js.map +1 -0
  83. package/dist/payment/buyer.d.ts +29 -0
  84. package/dist/payment/buyer.d.ts.map +1 -0
  85. package/dist/payment/buyer.js +118 -0
  86. package/dist/payment/buyer.js.map +1 -0
  87. package/dist/payment/flow.d.ts +20 -0
  88. package/dist/payment/flow.d.ts.map +1 -0
  89. package/dist/payment/flow.js +29 -0
  90. package/dist/payment/flow.js.map +1 -0
  91. package/dist/payment/index.d.ts +5 -0
  92. package/dist/payment/index.d.ts.map +1 -0
  93. package/dist/payment/index.js +13 -0
  94. package/dist/payment/index.js.map +1 -0
  95. package/dist/payment/seller.d.ts +27 -0
  96. package/dist/payment/seller.d.ts.map +1 -0
  97. package/dist/payment/seller.js +193 -0
  98. package/dist/payment/seller.js.map +1 -0
  99. package/dist/payment/verification.d.ts +8 -0
  100. package/dist/payment/verification.d.ts.map +1 -0
  101. package/dist/payment/verification.js +89 -0
  102. package/dist/payment/verification.js.map +1 -0
  103. package/dist/rpc/client.d.ts +21 -0
  104. package/dist/rpc/client.d.ts.map +1 -0
  105. package/dist/rpc/client.js +131 -0
  106. package/dist/rpc/client.js.map +1 -0
  107. package/dist/rpc/index.d.ts +2 -0
  108. package/dist/rpc/index.d.ts.map +1 -0
  109. package/dist/rpc/index.js +6 -0
  110. package/dist/rpc/index.js.map +1 -0
  111. package/dist/server.d.ts +24 -0
  112. package/dist/server.d.ts.map +1 -0
  113. package/dist/server.js +104 -0
  114. package/dist/server.js.map +1 -0
  115. package/dist/version.d.ts +2 -0
  116. package/dist/version.d.ts.map +1 -0
  117. package/dist/version.js +5 -0
  118. package/dist/version.js.map +1 -0
  119. package/dist/wallet/index.d.ts +4 -0
  120. package/dist/wallet/index.d.ts.map +1 -0
  121. package/dist/wallet/index.js +14 -0
  122. package/dist/wallet/index.js.map +1 -0
  123. package/dist/wallet/keystore.d.ts +32 -0
  124. package/dist/wallet/keystore.d.ts.map +1 -0
  125. package/dist/wallet/keystore.js +111 -0
  126. package/dist/wallet/keystore.js.map +1 -0
  127. package/dist/wallet/utxo.d.ts +32 -0
  128. package/dist/wallet/utxo.d.ts.map +1 -0
  129. package/dist/wallet/utxo.js +88 -0
  130. package/dist/wallet/utxo.js.map +1 -0
  131. package/dist/wallet/wallet.d.ts +52 -0
  132. package/dist/wallet/wallet.d.ts.map +1 -0
  133. package/dist/wallet/wallet.js +249 -0
  134. package/dist/wallet/wallet.js.map +1 -0
  135. package/package.json +43 -0
@@ -0,0 +1,336 @@
1
+ /**
2
+ * DR-Pay protocol message models with Zod validation.
3
+ * Maps directly to the Python SDK's Pydantic models.
4
+ */
5
+ import { z } from 'zod';
6
+ declare const RefundInfoSchema: z.ZodObject<{
7
+ txid: z.ZodString;
8
+ amount: z.ZodString;
9
+ }, "strip", z.ZodTypeAny, {
10
+ amount: string;
11
+ txid: string;
12
+ }, {
13
+ amount: string;
14
+ txid: string;
15
+ }>;
16
+ export declare const PaymentRequestSchema: z.ZodObject<{
17
+ protocol: z.ZodDefault<z.ZodLiteral<"drpay">>;
18
+ version: z.ZodDefault<z.ZodString>;
19
+ type: z.ZodDefault<z.ZodLiteral<"payment_request">>;
20
+ id: z.ZodString;
21
+ timestamp: z.ZodNumber;
22
+ from: z.ZodObject<{
23
+ address: z.ZodString;
24
+ }, "strip", z.ZodTypeAny, {
25
+ address: string;
26
+ }, {
27
+ address: string;
28
+ }>;
29
+ to: z.ZodObject<{
30
+ address: z.ZodString;
31
+ }, "strip", z.ZodTypeAny, {
32
+ address: string;
33
+ }, {
34
+ address: string;
35
+ }>;
36
+ service: z.ZodObject<{
37
+ id: z.ZodString;
38
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
39
+ }, "strip", z.ZodTypeAny, {
40
+ id: string;
41
+ params?: Record<string, unknown> | undefined;
42
+ }, {
43
+ id: string;
44
+ params?: Record<string, unknown> | undefined;
45
+ }>;
46
+ payment: z.ZodObject<{
47
+ currency: z.ZodDefault<z.ZodString>;
48
+ max_amount: z.ZodString;
49
+ confirmation_tier: z.ZodDefault<z.ZodString>;
50
+ }, "strip", z.ZodTypeAny, {
51
+ currency: string;
52
+ max_amount: string;
53
+ confirmation_tier: string;
54
+ }, {
55
+ max_amount: string;
56
+ currency?: string | undefined;
57
+ confirmation_tier?: string | undefined;
58
+ }>;
59
+ }, "strip", z.ZodTypeAny, {
60
+ type: "payment_request";
61
+ id: string;
62
+ protocol: "drpay";
63
+ version: string;
64
+ timestamp: number;
65
+ from: {
66
+ address: string;
67
+ };
68
+ to: {
69
+ address: string;
70
+ };
71
+ service: {
72
+ id: string;
73
+ params?: Record<string, unknown> | undefined;
74
+ };
75
+ payment: {
76
+ currency: string;
77
+ max_amount: string;
78
+ confirmation_tier: string;
79
+ };
80
+ }, {
81
+ id: string;
82
+ timestamp: number;
83
+ from: {
84
+ address: string;
85
+ };
86
+ to: {
87
+ address: string;
88
+ };
89
+ service: {
90
+ id: string;
91
+ params?: Record<string, unknown> | undefined;
92
+ };
93
+ payment: {
94
+ max_amount: string;
95
+ currency?: string | undefined;
96
+ confirmation_tier?: string | undefined;
97
+ };
98
+ type?: "payment_request" | undefined;
99
+ protocol?: "drpay" | undefined;
100
+ version?: string | undefined;
101
+ }>;
102
+ export declare const PaymentInvoiceSchema: z.ZodObject<{
103
+ protocol: z.ZodDefault<z.ZodLiteral<"drpay">>;
104
+ version: z.ZodDefault<z.ZodString>;
105
+ type: z.ZodDefault<z.ZodLiteral<"payment_invoice">>;
106
+ id: z.ZodString;
107
+ request_id: z.ZodString;
108
+ timestamp: z.ZodNumber;
109
+ payment: z.ZodObject<{
110
+ address: z.ZodString;
111
+ amount: z.ZodString;
112
+ currency: z.ZodDefault<z.ZodString>;
113
+ expires_at: z.ZodNumber;
114
+ memo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
115
+ }, "strip", z.ZodTypeAny, {
116
+ amount: string;
117
+ address: string;
118
+ currency: string;
119
+ expires_at: number;
120
+ memo?: string | null | undefined;
121
+ }, {
122
+ amount: string;
123
+ address: string;
124
+ expires_at: number;
125
+ currency?: string | undefined;
126
+ memo?: string | null | undefined;
127
+ }>;
128
+ terms: z.ZodObject<{
129
+ confirmation_tier: z.ZodString;
130
+ delivery: z.ZodDefault<z.ZodString>;
131
+ refund_policy: z.ZodOptional<z.ZodNullable<z.ZodString>>;
132
+ }, "strip", z.ZodTypeAny, {
133
+ confirmation_tier: string;
134
+ delivery: string;
135
+ refund_policy?: string | null | undefined;
136
+ }, {
137
+ confirmation_tier: string;
138
+ delivery?: string | undefined;
139
+ refund_policy?: string | null | undefined;
140
+ }>;
141
+ }, "strip", z.ZodTypeAny, {
142
+ type: "payment_invoice";
143
+ id: string;
144
+ protocol: "drpay";
145
+ version: string;
146
+ timestamp: number;
147
+ payment: {
148
+ amount: string;
149
+ address: string;
150
+ currency: string;
151
+ expires_at: number;
152
+ memo?: string | null | undefined;
153
+ };
154
+ request_id: string;
155
+ terms: {
156
+ confirmation_tier: string;
157
+ delivery: string;
158
+ refund_policy?: string | null | undefined;
159
+ };
160
+ }, {
161
+ id: string;
162
+ timestamp: number;
163
+ payment: {
164
+ amount: string;
165
+ address: string;
166
+ expires_at: number;
167
+ currency?: string | undefined;
168
+ memo?: string | null | undefined;
169
+ };
170
+ request_id: string;
171
+ terms: {
172
+ confirmation_tier: string;
173
+ delivery?: string | undefined;
174
+ refund_policy?: string | null | undefined;
175
+ };
176
+ type?: "payment_invoice" | undefined;
177
+ protocol?: "drpay" | undefined;
178
+ version?: string | undefined;
179
+ }>;
180
+ export declare const PaymentBroadcastSchema: z.ZodObject<{
181
+ protocol: z.ZodDefault<z.ZodLiteral<"drpay">>;
182
+ version: z.ZodDefault<z.ZodString>;
183
+ type: z.ZodDefault<z.ZodLiteral<"payment_broadcast">>;
184
+ invoice_id: z.ZodString;
185
+ txid: z.ZodString;
186
+ vout: z.ZodNumber;
187
+ raw_tx: z.ZodOptional<z.ZodString>;
188
+ }, "strip", z.ZodTypeAny, {
189
+ txid: string;
190
+ vout: number;
191
+ type: "payment_broadcast";
192
+ protocol: "drpay";
193
+ version: string;
194
+ invoice_id: string;
195
+ raw_tx?: string | undefined;
196
+ }, {
197
+ txid: string;
198
+ vout: number;
199
+ invoice_id: string;
200
+ type?: "payment_broadcast" | undefined;
201
+ protocol?: "drpay" | undefined;
202
+ version?: string | undefined;
203
+ raw_tx?: string | undefined;
204
+ }>;
205
+ export declare const ServiceDeliverySchema: z.ZodObject<{
206
+ protocol: z.ZodDefault<z.ZodLiteral<"drpay">>;
207
+ version: z.ZodDefault<z.ZodString>;
208
+ type: z.ZodDefault<z.ZodLiteral<"service_delivery">>;
209
+ invoice_id: z.ZodString;
210
+ status: z.ZodDefault<z.ZodEnum<["complete", "partial", "error"]>>;
211
+ result: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
212
+ }, "strip", z.ZodTypeAny, {
213
+ type: "service_delivery";
214
+ status: "complete" | "partial" | "error";
215
+ protocol: "drpay";
216
+ version: string;
217
+ invoice_id: string;
218
+ result?: Record<string, unknown> | null | undefined;
219
+ }, {
220
+ invoice_id: string;
221
+ type?: "service_delivery" | undefined;
222
+ status?: "complete" | "partial" | "error" | undefined;
223
+ protocol?: "drpay" | undefined;
224
+ version?: string | undefined;
225
+ result?: Record<string, unknown> | null | undefined;
226
+ }>;
227
+ export declare const ErrorResponseSchema: z.ZodObject<{
228
+ protocol: z.ZodDefault<z.ZodLiteral<"drpay">>;
229
+ version: z.ZodDefault<z.ZodString>;
230
+ type: z.ZodDefault<z.ZodLiteral<"error">>;
231
+ request_id: z.ZodOptional<z.ZodString>;
232
+ error: z.ZodObject<{
233
+ code: z.ZodString;
234
+ message: z.ZodString;
235
+ retry: z.ZodDefault<z.ZodBoolean>;
236
+ refund: z.ZodOptional<z.ZodObject<{
237
+ txid: z.ZodString;
238
+ amount: z.ZodString;
239
+ }, "strip", z.ZodTypeAny, {
240
+ amount: string;
241
+ txid: string;
242
+ }, {
243
+ amount: string;
244
+ txid: string;
245
+ }>>;
246
+ }, "strip", z.ZodTypeAny, {
247
+ code: string;
248
+ message: string;
249
+ retry: boolean;
250
+ refund?: {
251
+ amount: string;
252
+ txid: string;
253
+ } | undefined;
254
+ }, {
255
+ code: string;
256
+ message: string;
257
+ retry?: boolean | undefined;
258
+ refund?: {
259
+ amount: string;
260
+ txid: string;
261
+ } | undefined;
262
+ }>;
263
+ }, "strip", z.ZodTypeAny, {
264
+ type: "error";
265
+ protocol: "drpay";
266
+ version: string;
267
+ error: {
268
+ code: string;
269
+ message: string;
270
+ retry: boolean;
271
+ refund?: {
272
+ amount: string;
273
+ txid: string;
274
+ } | undefined;
275
+ };
276
+ request_id?: string | undefined;
277
+ }, {
278
+ error: {
279
+ code: string;
280
+ message: string;
281
+ retry?: boolean | undefined;
282
+ refund?: {
283
+ amount: string;
284
+ txid: string;
285
+ } | undefined;
286
+ };
287
+ type?: "error" | undefined;
288
+ protocol?: "drpay" | undefined;
289
+ version?: string | undefined;
290
+ request_id?: string | undefined;
291
+ }>;
292
+ export type PaymentRequest = z.infer<typeof PaymentRequestSchema>;
293
+ export type PaymentInvoice = z.infer<typeof PaymentInvoiceSchema>;
294
+ export type PaymentBroadcast = z.infer<typeof PaymentBroadcastSchema>;
295
+ export type ServiceDelivery = z.infer<typeof ServiceDeliverySchema>;
296
+ export type ErrorResponse = z.infer<typeof ErrorResponseSchema>;
297
+ export declare function createPaymentRequest(params: {
298
+ fromAddress: string;
299
+ toAddress: string;
300
+ serviceId: string;
301
+ serviceParams?: Record<string, unknown>;
302
+ maxAmount?: string;
303
+ confirmationTier?: string;
304
+ }): PaymentRequest;
305
+ export declare function createPaymentInvoice(params: {
306
+ requestId: string;
307
+ paymentAddress: string;
308
+ amount: string;
309
+ confirmationTier: string;
310
+ expiresInSeconds?: number;
311
+ memo?: string;
312
+ }): PaymentInvoice;
313
+ export declare function createPaymentBroadcast(params: {
314
+ invoiceId: string;
315
+ txid: string;
316
+ vout: number;
317
+ rawTx?: string;
318
+ }): PaymentBroadcast;
319
+ export declare function createServiceDelivery(params: {
320
+ invoiceId: string;
321
+ status?: 'complete' | 'partial' | 'error';
322
+ result?: Record<string, unknown>;
323
+ }): ServiceDelivery;
324
+ export type RefundInfo = z.infer<typeof RefundInfoSchema>;
325
+ export declare function createErrorResponse(params: {
326
+ requestId?: string;
327
+ code: string;
328
+ message: string;
329
+ retry?: boolean;
330
+ refund?: {
331
+ txid: string;
332
+ amount: string;
333
+ };
334
+ }): ErrorResponse;
335
+ export {};
336
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/models/messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ErrorResponseSchema = exports.ServiceDeliverySchema = exports.PaymentBroadcastSchema = exports.PaymentInvoiceSchema = exports.PaymentRequestSchema = void 0;
4
+ exports.createPaymentRequest = createPaymentRequest;
5
+ exports.createPaymentInvoice = createPaymentInvoice;
6
+ exports.createPaymentBroadcast = createPaymentBroadcast;
7
+ exports.createServiceDelivery = createServiceDelivery;
8
+ exports.createErrorResponse = createErrorResponse;
9
+ /**
10
+ * DR-Pay protocol message models with Zod validation.
11
+ * Maps directly to the Python SDK's Pydantic models.
12
+ */
13
+ const zod_1 = require("zod");
14
+ const constants_1 = require("../network/constants");
15
+ // ---------- Sub-schemas ----------
16
+ const AddressField = zod_1.z.object({
17
+ address: zod_1.z.string(),
18
+ });
19
+ const ServiceParams = zod_1.z.object({
20
+ id: zod_1.z.string(),
21
+ params: zod_1.z.record(zod_1.z.unknown()).optional(),
22
+ });
23
+ const RequestPayment = zod_1.z.object({
24
+ currency: zod_1.z.string().default('DGB'),
25
+ max_amount: zod_1.z.string(),
26
+ confirmation_tier: zod_1.z.string().default('mempool'),
27
+ });
28
+ const InvoicePayment = zod_1.z.object({
29
+ address: zod_1.z.string(),
30
+ amount: zod_1.z.string(),
31
+ currency: zod_1.z.string().default('DGB'),
32
+ expires_at: zod_1.z.number(),
33
+ memo: zod_1.z.string().nullable().optional(),
34
+ });
35
+ const InvoiceTerms = zod_1.z.object({
36
+ confirmation_tier: zod_1.z.string(),
37
+ delivery: zod_1.z.string().default('immediate'),
38
+ refund_policy: zod_1.z.string().nullable().optional(),
39
+ });
40
+ const RefundInfoSchema = zod_1.z.object({
41
+ txid: zod_1.z.string(),
42
+ amount: zod_1.z.string(),
43
+ });
44
+ const ErrorDetail = zod_1.z.object({
45
+ code: zod_1.z.string(),
46
+ message: zod_1.z.string(),
47
+ retry: zod_1.z.boolean().default(false),
48
+ refund: RefundInfoSchema.optional(),
49
+ });
50
+ // ---------- Message schemas ----------
51
+ exports.PaymentRequestSchema = zod_1.z.object({
52
+ protocol: zod_1.z.literal('drpay').default('drpay'),
53
+ version: zod_1.z.string().default(constants_1.PROTOCOL_VERSION),
54
+ type: zod_1.z.literal('payment_request').default('payment_request'),
55
+ id: zod_1.z.string(),
56
+ timestamp: zod_1.z.number(),
57
+ from: AddressField,
58
+ to: AddressField,
59
+ service: ServiceParams,
60
+ payment: RequestPayment,
61
+ });
62
+ exports.PaymentInvoiceSchema = zod_1.z.object({
63
+ protocol: zod_1.z.literal('drpay').default('drpay'),
64
+ version: zod_1.z.string().default(constants_1.PROTOCOL_VERSION),
65
+ type: zod_1.z.literal('payment_invoice').default('payment_invoice'),
66
+ id: zod_1.z.string(),
67
+ request_id: zod_1.z.string(),
68
+ timestamp: zod_1.z.number(),
69
+ payment: InvoicePayment,
70
+ terms: InvoiceTerms,
71
+ });
72
+ exports.PaymentBroadcastSchema = zod_1.z.object({
73
+ protocol: zod_1.z.literal('drpay').default('drpay'),
74
+ version: zod_1.z.string().default(constants_1.PROTOCOL_VERSION),
75
+ type: zod_1.z.literal('payment_broadcast').default('payment_broadcast'),
76
+ invoice_id: zod_1.z.string(),
77
+ txid: zod_1.z.string(),
78
+ vout: zod_1.z.number(),
79
+ raw_tx: zod_1.z.string().optional(),
80
+ });
81
+ exports.ServiceDeliverySchema = zod_1.z.object({
82
+ protocol: zod_1.z.literal('drpay').default('drpay'),
83
+ version: zod_1.z.string().default(constants_1.PROTOCOL_VERSION),
84
+ type: zod_1.z.literal('service_delivery').default('service_delivery'),
85
+ invoice_id: zod_1.z.string(),
86
+ status: zod_1.z.enum(['complete', 'partial', 'error']).default('complete'),
87
+ result: zod_1.z.record(zod_1.z.unknown()).nullable().optional(),
88
+ });
89
+ exports.ErrorResponseSchema = zod_1.z.object({
90
+ protocol: zod_1.z.literal('drpay').default('drpay'),
91
+ version: zod_1.z.string().default(constants_1.PROTOCOL_VERSION),
92
+ type: zod_1.z.literal('error').default('error'),
93
+ request_id: zod_1.z.string().optional(),
94
+ error: ErrorDetail,
95
+ });
96
+ // ---------- Helper constructors ----------
97
+ let _requestCounter = 0;
98
+ let _invoiceCounter = 0;
99
+ function generateId(prefix) {
100
+ const ts = Date.now().toString(36);
101
+ const rand = Math.random().toString(36).slice(2, 8);
102
+ return `${prefix}_${ts}${rand}`;
103
+ }
104
+ function createPaymentRequest(params) {
105
+ return exports.PaymentRequestSchema.parse({
106
+ id: generateId('req'),
107
+ timestamp: Math.floor(Date.now() / 1000),
108
+ from: { address: params.fromAddress },
109
+ to: { address: params.toAddress },
110
+ service: {
111
+ id: params.serviceId,
112
+ params: params.serviceParams,
113
+ },
114
+ payment: {
115
+ currency: 'DGB',
116
+ max_amount: params.maxAmount ?? '0.01',
117
+ confirmation_tier: params.confirmationTier ?? 'mempool',
118
+ },
119
+ });
120
+ }
121
+ function createPaymentInvoice(params) {
122
+ const now = Math.floor(Date.now() / 1000);
123
+ return exports.PaymentInvoiceSchema.parse({
124
+ id: generateId('inv'),
125
+ request_id: params.requestId,
126
+ timestamp: now,
127
+ payment: {
128
+ address: params.paymentAddress,
129
+ amount: params.amount,
130
+ currency: 'DGB',
131
+ expires_at: now + (params.expiresInSeconds ?? 300),
132
+ memo: params.memo,
133
+ },
134
+ terms: {
135
+ confirmation_tier: params.confirmationTier,
136
+ delivery: 'immediate',
137
+ },
138
+ });
139
+ }
140
+ function createPaymentBroadcast(params) {
141
+ return exports.PaymentBroadcastSchema.parse({
142
+ invoice_id: params.invoiceId,
143
+ txid: params.txid,
144
+ vout: params.vout,
145
+ raw_tx: params.rawTx,
146
+ });
147
+ }
148
+ function createServiceDelivery(params) {
149
+ return exports.ServiceDeliverySchema.parse({
150
+ invoice_id: params.invoiceId,
151
+ status: params.status ?? 'complete',
152
+ result: params.result,
153
+ });
154
+ }
155
+ function createErrorResponse(params) {
156
+ return exports.ErrorResponseSchema.parse({
157
+ request_id: params.requestId,
158
+ error: {
159
+ code: params.code,
160
+ message: params.message,
161
+ retry: params.retry ?? false,
162
+ refund: params.refund,
163
+ },
164
+ });
165
+ }
166
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/models/messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * DigiRails protocol constants.
3
+ */
4
+ /** Magic prefix identifying DigiRails OP_RETURN data: ASCII "DR" */
5
+ export declare const DR_MAGIC = 17490;
6
+ export declare const DR_MAGIC_BYTES: Buffer<ArrayBuffer>;
7
+ /** DigiRails on-chain header version (lower 7 bits; bit 7 is the test flag) */
8
+ export declare const DR_VERSION = 1;
9
+ /** Test flag: bit 7 of the version byte marks test/integration transactions */
10
+ export declare const DR_TEST_FLAG = 128;
11
+ /** DR-Pay JSON protocol version */
12
+ export declare const PROTOCOL_VERSION = "0.3.0";
13
+ /** Maximum OP_RETURN payload in DigiByte (bytes) */
14
+ export declare const OP_RETURN_MAX_BYTES = 80;
15
+ /** DR header size: magic(2) + version(1) + sub-protocol(1) + type(1) */
16
+ export declare const DR_HEADER_SIZE = 5;
17
+ /** Max payload after header */
18
+ export declare const DR_MAX_PAYLOAD: number;
19
+ /** DigiByte block time in seconds */
20
+ export declare const BLOCK_TIME_SECONDS = 15;
21
+ /** Default escrow timeout in blocks (~2 hours) */
22
+ export declare const DEFAULT_ESCROW_TIMEOUT_BLOCKS = 480;
23
+ /** Satoshis per DGB */
24
+ export declare const SATOSHIS_PER_DGB = 100000000n;
25
+ /** Dust threshold in satoshis */
26
+ export declare const DUST_THRESHOLD = 546n;
27
+ /** Sub-protocol identifiers */
28
+ export declare enum SubProtocol {
29
+ DR_CORE = 0,
30
+ DR_PAY = 1,
31
+ DR_REP = 2,
32
+ EXPERIMENTAL = 255
33
+ }
34
+ /** DR-Core message types */
35
+ export declare enum CoreMessageType {
36
+ IDENTITY_DECLARATION = 1,
37
+ IDENTITY_TRANSFER = 2
38
+ }
39
+ /** DR-Pay message types */
40
+ export declare enum PayMessageType {
41
+ SERVICE_DECLARATION = 1,
42
+ PAYMENT_MEMO = 2,
43
+ REFUND_MEMO = 3
44
+ }
45
+ /** DR-Rep message types */
46
+ export declare enum RepMessageType {
47
+ ATTESTATION = 1
48
+ }
49
+ /** Confirmation tier definitions: [confirmations, maxDgb (null = unlimited)] */
50
+ export declare const CONFIRMATION_TIERS: Record<string, [number, number | null]>;
51
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/network/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,oEAAoE;AACpE,eAAO,MAAM,QAAQ,QAAS,CAAC;AAC/B,eAAO,MAAM,cAAc,qBAA4B,CAAC;AAExD,+EAA+E;AAC/E,eAAO,MAAM,UAAU,IAAO,CAAC;AAE/B,+EAA+E;AAC/E,eAAO,MAAM,YAAY,MAAO,CAAC;AAEjC,mCAAmC;AACnC,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAExC,oDAAoD;AACpD,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,wEAAwE;AACxE,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,+BAA+B;AAC/B,eAAO,MAAM,cAAc,QAAuC,CAAC;AAEnE,qCAAqC;AACrC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,kDAAkD;AAClD,eAAO,MAAM,6BAA6B,MAAM,CAAC;AAEjD,uBAAuB;AACvB,eAAO,MAAM,gBAAgB,aAAe,CAAC;AAE7C,iCAAiC;AACjC,eAAO,MAAM,cAAc,OAAO,CAAC;AAEnC,+BAA+B;AAC/B,oBAAY,WAAW;IACrB,OAAO,IAAO;IACd,MAAM,IAAO;IACb,MAAM,IAAO;IACb,YAAY,MAAO;CACpB;AAED,4BAA4B;AAC5B,oBAAY,eAAe;IACzB,oBAAoB,IAAO;IAC3B,iBAAiB,IAAO;CACzB;AAED,2BAA2B;AAC3B,oBAAY,cAAc;IACxB,mBAAmB,IAAO;IAC1B,YAAY,IAAO;IACnB,WAAW,IAAO;CACnB;AAED,2BAA2B;AAC3B,oBAAY,cAAc;IACxB,WAAW,IAAO;CACnB;AAED,gFAAgF;AAChF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAKtE,CAAC"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ /**
3
+ * DigiRails protocol constants.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CONFIRMATION_TIERS = exports.RepMessageType = exports.PayMessageType = exports.CoreMessageType = exports.SubProtocol = exports.DUST_THRESHOLD = exports.SATOSHIS_PER_DGB = exports.DEFAULT_ESCROW_TIMEOUT_BLOCKS = exports.BLOCK_TIME_SECONDS = exports.DR_MAX_PAYLOAD = exports.DR_HEADER_SIZE = exports.OP_RETURN_MAX_BYTES = exports.PROTOCOL_VERSION = exports.DR_TEST_FLAG = exports.DR_VERSION = exports.DR_MAGIC_BYTES = exports.DR_MAGIC = void 0;
7
+ /** Magic prefix identifying DigiRails OP_RETURN data: ASCII "DR" */
8
+ exports.DR_MAGIC = 0x4452;
9
+ exports.DR_MAGIC_BYTES = Buffer.from([0x44, 0x52]);
10
+ /** DigiRails on-chain header version (lower 7 bits; bit 7 is the test flag) */
11
+ exports.DR_VERSION = 0x01;
12
+ /** Test flag: bit 7 of the version byte marks test/integration transactions */
13
+ exports.DR_TEST_FLAG = 0x80;
14
+ /** DR-Pay JSON protocol version */
15
+ exports.PROTOCOL_VERSION = '0.3.0';
16
+ /** Maximum OP_RETURN payload in DigiByte (bytes) */
17
+ exports.OP_RETURN_MAX_BYTES = 80;
18
+ /** DR header size: magic(2) + version(1) + sub-protocol(1) + type(1) */
19
+ exports.DR_HEADER_SIZE = 5;
20
+ /** Max payload after header */
21
+ exports.DR_MAX_PAYLOAD = exports.OP_RETURN_MAX_BYTES - exports.DR_HEADER_SIZE; // 75
22
+ /** DigiByte block time in seconds */
23
+ exports.BLOCK_TIME_SECONDS = 15;
24
+ /** Default escrow timeout in blocks (~2 hours) */
25
+ exports.DEFAULT_ESCROW_TIMEOUT_BLOCKS = 480;
26
+ /** Satoshis per DGB */
27
+ exports.SATOSHIS_PER_DGB = 100000000n;
28
+ /** Dust threshold in satoshis */
29
+ exports.DUST_THRESHOLD = 546n;
30
+ /** Sub-protocol identifiers */
31
+ var SubProtocol;
32
+ (function (SubProtocol) {
33
+ SubProtocol[SubProtocol["DR_CORE"] = 0] = "DR_CORE";
34
+ SubProtocol[SubProtocol["DR_PAY"] = 1] = "DR_PAY";
35
+ SubProtocol[SubProtocol["DR_REP"] = 2] = "DR_REP";
36
+ SubProtocol[SubProtocol["EXPERIMENTAL"] = 255] = "EXPERIMENTAL";
37
+ })(SubProtocol || (exports.SubProtocol = SubProtocol = {}));
38
+ /** DR-Core message types */
39
+ var CoreMessageType;
40
+ (function (CoreMessageType) {
41
+ CoreMessageType[CoreMessageType["IDENTITY_DECLARATION"] = 1] = "IDENTITY_DECLARATION";
42
+ CoreMessageType[CoreMessageType["IDENTITY_TRANSFER"] = 2] = "IDENTITY_TRANSFER";
43
+ })(CoreMessageType || (exports.CoreMessageType = CoreMessageType = {}));
44
+ /** DR-Pay message types */
45
+ var PayMessageType;
46
+ (function (PayMessageType) {
47
+ PayMessageType[PayMessageType["SERVICE_DECLARATION"] = 1] = "SERVICE_DECLARATION";
48
+ PayMessageType[PayMessageType["PAYMENT_MEMO"] = 2] = "PAYMENT_MEMO";
49
+ PayMessageType[PayMessageType["REFUND_MEMO"] = 3] = "REFUND_MEMO";
50
+ })(PayMessageType || (exports.PayMessageType = PayMessageType = {}));
51
+ /** DR-Rep message types */
52
+ var RepMessageType;
53
+ (function (RepMessageType) {
54
+ RepMessageType[RepMessageType["ATTESTATION"] = 1] = "ATTESTATION";
55
+ })(RepMessageType || (exports.RepMessageType = RepMessageType = {}));
56
+ /** Confirmation tier definitions: [confirmations, maxDgb (null = unlimited)] */
57
+ exports.CONFIRMATION_TIERS = {
58
+ mempool: [0, 1],
59
+ flash: [1, 100],
60
+ standard: [4, 10_000],
61
+ secure: [10, null],
62
+ };
63
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/network/constants.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,oEAAoE;AACvD,QAAA,QAAQ,GAAG,MAAM,CAAC;AAClB,QAAA,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAExD,+EAA+E;AAClE,QAAA,UAAU,GAAG,IAAI,CAAC;AAE/B,+EAA+E;AAClE,QAAA,YAAY,GAAG,IAAI,CAAC;AAEjC,mCAAmC;AACtB,QAAA,gBAAgB,GAAG,OAAO,CAAC;AAExC,oDAAoD;AACvC,QAAA,mBAAmB,GAAG,EAAE,CAAC;AAEtC,wEAAwE;AAC3D,QAAA,cAAc,GAAG,CAAC,CAAC;AAEhC,+BAA+B;AAClB,QAAA,cAAc,GAAG,2BAAmB,GAAG,sBAAc,CAAC,CAAC,KAAK;AAEzE,qCAAqC;AACxB,QAAA,kBAAkB,GAAG,EAAE,CAAC;AAErC,kDAAkD;AACrC,QAAA,6BAA6B,GAAG,GAAG,CAAC;AAEjD,uBAAuB;AACV,QAAA,gBAAgB,GAAG,UAAY,CAAC;AAE7C,iCAAiC;AACpB,QAAA,cAAc,GAAG,IAAI,CAAC;AAEnC,+BAA+B;AAC/B,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,mDAAc,CAAA;IACd,iDAAa,CAAA;IACb,iDAAa,CAAA;IACb,+DAAmB,CAAA;AACrB,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAED,4BAA4B;AAC5B,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,qFAA2B,CAAA;IAC3B,+EAAwB,CAAA;AAC1B,CAAC,EAHW,eAAe,+BAAf,eAAe,QAG1B;AAED,2BAA2B;AAC3B,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,iFAA0B,CAAA;IAC1B,mEAAmB,CAAA;IACnB,iEAAkB,CAAA;AACpB,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB;AAED,2BAA2B;AAC3B,IAAY,cAEX;AAFD,WAAY,cAAc;IACxB,iEAAkB,CAAA;AACpB,CAAC,EAFW,cAAc,8BAAd,cAAc,QAEzB;AAED,gFAAgF;AACnE,QAAA,kBAAkB,GAA4C;IACzE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC;IACf,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;CACnB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './constants';
2
+ export * from './params';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/network/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./constants"), exports);
18
+ __exportStar(require("./params"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/network/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,2CAAyB"}