@hyperscale0/hsx 1.0.0 → 2.0.1
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/CHANGELOG.md +28 -4
- package/README.md +58 -38
- package/dist/src/ast.d.ts +4 -2
- package/dist/src/ast.d.ts.map +1 -1
- package/dist/src/cli.d.ts +1 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/compile.d.ts +8 -2
- package/dist/src/compile.d.ts.map +1 -1
- package/dist/src/compile.js +8 -1
- package/dist/src/compile.js.map +1 -1
- package/dist/src/cost.d.ts +3 -1
- package/dist/src/cost.d.ts.map +1 -1
- package/dist/src/cost.js +124 -94
- package/dist/src/cost.js.map +1 -1
- package/dist/src/diagnostics.d.ts.map +1 -1
- package/dist/src/diagnostics.js +96 -5
- package/dist/src/diagnostics.js.map +1 -1
- package/dist/src/emit.d.ts +3 -1
- package/dist/src/emit.d.ts.map +1 -1
- package/dist/src/emit.js +27 -10
- package/dist/src/emit.js.map +1 -1
- package/dist/src/format.js.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/ir.d.ts.map +1 -1
- package/dist/src/lex.d.ts.map +1 -1
- package/dist/src/lsp/server.js.map +1 -1
- package/dist/src/modules.js +7 -3
- package/dist/src/modules.js.map +1 -1
- package/dist/src/parse.js +3 -3
- package/dist/src/parse.js.map +1 -1
- package/dist/src/std-bundle.js +41 -41
- package/dist/src/std-bundle.js.map +1 -1
- package/dist/src/std-library.js +2 -2
- package/dist/src/typecheck.d.ts.map +1 -1
- package/dist/src/typecheck.js +948 -157
- package/dist/src/typecheck.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/docs/README.md +10 -1
- package/docs/assets/hsx.svg +18 -0
- package/docs/guide/01-first-program.md +1 -1
- package/docs/guide/02-money.md +1 -1
- package/docs/guide/03-instruments.md +44 -3
- package/docs/guide/04-lifecycles.md +18 -3
- package/docs/guide/05-fees-and-splits.md +2 -2
- package/docs/guide/06-schedules.md +1 -1
- package/docs/guide/07-composition.md +8 -2
- package/docs/guide/08-writing-a-module.md +13 -2
- package/docs/guide/09-cost.md +3 -3
- package/docs/guide/10-diagnostics.md +1 -1
- package/docs/llms-full.txt +473 -190
- package/docs/llms.txt +2 -2
- package/docs/playground.md +4 -3
- package/docs/reference/cli.md +2 -2
- package/docs/reference/diagnostics.md +243 -37
- package/docs/reference/grammar.md +2 -2
- package/docs/reference/std/advance.md +2 -2
- package/docs/reference/std/cancellable_booking.md +10 -10
- package/docs/reference/std/captured_payment.md +14 -14
- package/docs/reference/std/conditional_disbursement.md +3 -3
- package/docs/reference/std/credit_facility.md +2 -2
- package/docs/reference/std/held_payment.md +37 -33
- package/docs/reference/std/instant_transfer.md +8 -8
- package/docs/reference/std/metered.md +2 -2
- package/docs/reference/std/pooled_split.md +2 -2
- package/docs/reference/std/premium_forward.md +13 -13
- package/docs/reference/std/reconciled_payout.md +2 -2
- package/docs/reference/std/recurring_collection.md +2 -2
- package/docs/reference/std/rotating_pool.md +2 -2
- package/docs/reference/std/scheduled.md +18 -18
- package/docs/reference/std/security_deposit.md +14 -14
- package/docs/reference/std/settlement_batch.md +2 -2
- package/docs/reference/std/swap.md +18 -18
- package/docs/reference/std/threshold_pool.md +2 -2
- package/docs/reference/std/weighted_distribution.md +2 -2
- package/docs/reference/types.md +1 -1
- package/docs/reference/udl-output.md +1 -1
- package/examples/01-first-program/README.md +1 -1
- package/examples/01-first-program/tip-jar.hsx +1 -1
- package/examples/02-imports-and-archetypes/photo-booth.hsx +1 -1
- package/examples/03-diagnostics/corner-shop-fixed.hsx +1 -1
- package/examples/03-diagnostics/corner-shop.hsx +1 -1
- package/examples/04-complete-product/study-hall.hsx +1 -1
- package/examples/05-watch-club/README.md +0 -3
- package/examples/05-watch-club/watch-club.hsx +1 -1
- package/examples/README.md +35 -4
- package/examples/advance/advance.hsx +1 -1
- package/examples/advance/advance.udl +16 -11
- package/examples/cancellable_booking/cancellable_booking.hsx +1 -1
- package/examples/cancellable_booking/cancellable_booking.udl +13 -11
- package/examples/captured_payment/captured_payment.hsx +1 -1
- package/examples/captured_payment/captured_payment.udl +10 -7
- package/examples/conditional_disbursement/conditional_disbursement.hsx +1 -1
- package/examples/conditional_disbursement/conditional_disbursement.udl +7 -5
- package/examples/cost-table.json +1542 -382
- package/examples/credit_facility/credit_facility.hsx +1 -1
- package/examples/credit_facility/credit_facility.udl +26 -19
- package/examples/held_payment/held_payment.hsx +1 -1
- package/examples/held_payment/held_payment.udl +61 -15
- package/examples/instant_transfer/instant_transfer.hsx +1 -1
- package/examples/instant_transfer/instant_transfer.udl +17 -11
- package/examples/metered/metered.hsx +1 -1
- package/examples/metered/metered.udl +8 -6
- package/examples/pooled_split/pooled_split.hsx +1 -1
- package/examples/pooled_split/pooled_split.udl +16 -13
- package/examples/premium_forward/premium_forward.hsx +1 -1
- package/examples/premium_forward/premium_forward.udl +22 -16
- package/examples/reconciled_payout/reconciled_payout.hsx +1 -1
- package/examples/reconciled_payout/reconciled_payout.udl +4 -2
- package/examples/recurring_collection/recurring_collection.hsx +1 -1
- package/examples/recurring_collection/recurring_collection.udl +20 -15
- package/examples/rotating_pool/rotating_pool.hsx +1 -1
- package/examples/rotating_pool/rotating_pool.udl +92 -82
- package/examples/scheduled/scheduled.hsx +1 -1
- package/examples/scheduled/scheduled.udl +15 -10
- package/examples/security_deposit/security_deposit.hsx +1 -1
- package/examples/security_deposit/security_deposit.udl +19 -5
- package/examples/settlement_batch/settlement_batch.hsx +1 -1
- package/examples/swap/swap.hsx +1 -1
- package/examples/swap/swap.udl +34 -28
- package/examples/threshold_pool/threshold_pool.hsx +1 -1
- package/examples/threshold_pool/threshold_pool.udl +14 -12
- package/examples/weighted_distribution/weighted_distribution.hsx +1 -1
- package/examples/weighted_distribution/weighted_distribution.udl +6 -4
- package/package.json +6 -5
- package/skills/hsx/SKILL.md +26 -26
- package/src/ast.ts +4 -2
- package/src/cli.ts +4 -4
- package/src/compile.ts +14 -3
- package/src/cost.ts +176 -104
- package/src/diagnostics.ts +99 -4
- package/src/emit.ts +32 -18
- package/src/index.ts +2 -1
- package/src/modules.ts +9 -3
- package/src/parse.ts +3 -3
- package/src/std-bundle.ts +41 -41
- package/src/std-library.ts +2 -2
- package/src/typecheck.ts +1251 -235
- package/src/version.ts +1 -1
- package/std/SEMANTICS.md +12 -3
- package/std/{settlements → money_flows}/advance.hsx +1 -1
- package/std/{settlements → money_flows}/cancellable_booking.hsx +4 -3
- package/std/{settlements → money_flows}/captured_payment.hsx +35 -6
- package/std/{settlements → money_flows}/conditional_disbursement.hsx +17 -16
- package/std/{settlements → money_flows}/credit_facility.hsx +1 -2
- package/std/{settlements → money_flows}/held_payment.hsx +61 -25
- package/std/money_flows/index.hsx +3 -0
- package/std/{settlements → money_flows}/instant_transfer.hsx +2 -3
- package/std/{settlements → money_flows}/metered.hsx +1 -1
- package/std/{settlements → money_flows}/pooled_split.hsx +3 -3
- package/std/{settlements → money_flows}/premium_forward.hsx +22 -23
- package/std/{settlements → money_flows}/reconciled_payout.hsx +3 -3
- package/std/{settlements → money_flows}/recurring_collection.hsx +1 -1
- package/std/{settlements → money_flows}/rotating_pool.hsx +8 -6
- package/std/{settlements → money_flows}/scheduled.hsx +22 -27
- package/std/{settlements → money_flows}/security_deposit.hsx +38 -14
- package/std/{settlements → money_flows}/settlement_batch.hsx +3 -3
- package/std/{settlements → money_flows}/swap.hsx +41 -16
- package/std/{settlements → money_flows}/threshold_pool.hsx +5 -5
- package/std/{settlements → money_flows}/weighted_distribution.hsx +6 -6
- package/docs/sessions/2026-09-02-two-instruments.hsx +0 -21
- package/docs/sessions/2026-09-02-two-instruments.md +0 -41
- package/std/settlements/index.hsx +0 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
program credit_facility_example "Credit facility example"
|
|
2
|
-
import { credit_facility, scheduled } from "std/
|
|
2
|
+
import { credit_facility, scheduled } from "std/money_flows"
|
|
3
3
|
party lender: business
|
|
4
4
|
party borrower: business
|
|
5
5
|
party draw_destination: business
|
|
@@ -294,7 +294,8 @@
|
|
|
294
294
|
"installment1Amount": {
|
|
295
295
|
"description": "Stored amount for installment 1 of 2 (carries the integer-division remainder)",
|
|
296
296
|
"pattern": "^[1-9][0-9]{0,17}$",
|
|
297
|
-
"type": "string"
|
|
297
|
+
"type": "string",
|
|
298
|
+
"x-hyperscale-currency": "SAR"
|
|
298
299
|
},
|
|
299
300
|
"installment1DelinquentAfter": {
|
|
300
301
|
"description": "Machine-set marker proving installment 1 reached its stored due date while unpaid",
|
|
@@ -304,7 +305,8 @@
|
|
|
304
305
|
"installment2Amount": {
|
|
305
306
|
"description": "Stored amount for installment 2 of 2",
|
|
306
307
|
"pattern": "^[1-9][0-9]{0,17}$",
|
|
307
|
-
"type": "string"
|
|
308
|
+
"type": "string",
|
|
309
|
+
"x-hyperscale-currency": "SAR"
|
|
308
310
|
},
|
|
309
311
|
"installment2DelinquentAfter": {
|
|
310
312
|
"description": "Machine-set marker proving installment 2 reached its stored due date while unpaid",
|
|
@@ -325,7 +327,8 @@
|
|
|
325
327
|
"principal": {
|
|
326
328
|
"description": "The principal in SAR minor units; the stored installment anchors partition it exactly",
|
|
327
329
|
"pattern": "^[1-9][0-9]{0,17}$",
|
|
328
|
-
"type": "string"
|
|
330
|
+
"type": "string",
|
|
331
|
+
"x-hyperscale-currency": "SAR"
|
|
329
332
|
},
|
|
330
333
|
"repaymentSourceAccountId": {
|
|
331
334
|
"description": "The repayment source account",
|
|
@@ -492,8 +495,8 @@
|
|
|
492
495
|
"path": "fields.amount"
|
|
493
496
|
},
|
|
494
497
|
"currency": {
|
|
495
|
-
"from": "
|
|
496
|
-
"
|
|
498
|
+
"from": "const",
|
|
499
|
+
"value": "SAR"
|
|
497
500
|
},
|
|
498
501
|
"destinationAccountId": {
|
|
499
502
|
"from": "instance",
|
|
@@ -547,7 +550,7 @@
|
|
|
547
550
|
"summary": "Refund this one stored installment 1 payment whole"
|
|
548
551
|
},
|
|
549
552
|
"repay": {
|
|
550
|
-
"agentDescription": "Pay this record's amount toward installment 1. The record must be created and its obligation live. Refused when this amount plus the records already paid against that installment would pass the stored amount. This moves the payer's money. Where a mandate applies,
|
|
553
|
+
"agentDescription": "Pay this record's amount toward installment 1. The record must be created and its obligation live. Refused when this amount plus the records already paid against that installment would pass the stored amount. This moves the payer's money. Where a mandate applies, its declared parties may call it and an evidence reference is required.",
|
|
551
554
|
"effects": {
|
|
552
555
|
"moves": [
|
|
553
556
|
{
|
|
@@ -570,8 +573,8 @@
|
|
|
570
573
|
"path": "fields.amount"
|
|
571
574
|
},
|
|
572
575
|
"currency": {
|
|
573
|
-
"from": "
|
|
574
|
-
"
|
|
576
|
+
"from": "const",
|
|
577
|
+
"value": "SAR"
|
|
575
578
|
},
|
|
576
579
|
"destinationAccountId": {
|
|
577
580
|
"from": "instance",
|
|
@@ -643,7 +646,8 @@
|
|
|
643
646
|
"amount": {
|
|
644
647
|
"description": "Positive payment amount capped with its paid siblings at installment1Amount",
|
|
645
648
|
"pattern": "^[1-9][0-9]{0,17}$",
|
|
646
|
-
"type": "string"
|
|
649
|
+
"type": "string",
|
|
650
|
+
"x-hyperscale-currency": "SAR"
|
|
647
651
|
},
|
|
648
652
|
"currency": {
|
|
649
653
|
"description": "ISO 4217 currency code",
|
|
@@ -779,8 +783,8 @@
|
|
|
779
783
|
"path": "fields.amount"
|
|
780
784
|
},
|
|
781
785
|
"currency": {
|
|
782
|
-
"from": "
|
|
783
|
-
"
|
|
786
|
+
"from": "const",
|
|
787
|
+
"value": "SAR"
|
|
784
788
|
},
|
|
785
789
|
"destinationAccountId": {
|
|
786
790
|
"from": "instance",
|
|
@@ -834,7 +838,7 @@
|
|
|
834
838
|
"summary": "Refund this one stored installment 2 payment whole"
|
|
835
839
|
},
|
|
836
840
|
"repay": {
|
|
837
|
-
"agentDescription": "Pay this record's amount toward installment 2. The record must be created and its obligation live. Refused when this amount plus the records already paid against that installment would pass the stored amount. This moves the payer's money. Where a mandate applies,
|
|
841
|
+
"agentDescription": "Pay this record's amount toward installment 2. The record must be created and its obligation live. Refused when this amount plus the records already paid against that installment would pass the stored amount. This moves the payer's money. Where a mandate applies, its declared parties may call it and an evidence reference is required.",
|
|
838
842
|
"effects": {
|
|
839
843
|
"moves": [
|
|
840
844
|
{
|
|
@@ -857,8 +861,8 @@
|
|
|
857
861
|
"path": "fields.amount"
|
|
858
862
|
},
|
|
859
863
|
"currency": {
|
|
860
|
-
"from": "
|
|
861
|
-
"
|
|
864
|
+
"from": "const",
|
|
865
|
+
"value": "SAR"
|
|
862
866
|
},
|
|
863
867
|
"destinationAccountId": {
|
|
864
868
|
"from": "instance",
|
|
@@ -930,7 +934,8 @@
|
|
|
930
934
|
"amount": {
|
|
931
935
|
"description": "Positive payment amount capped with its paid siblings at installment2Amount",
|
|
932
936
|
"pattern": "^[1-9][0-9]{0,17}$",
|
|
933
|
-
"type": "string"
|
|
937
|
+
"type": "string",
|
|
938
|
+
"x-hyperscale-currency": "SAR"
|
|
934
939
|
},
|
|
935
940
|
"currency": {
|
|
936
941
|
"description": "ISO 4217 currency code",
|
|
@@ -1104,7 +1109,8 @@
|
|
|
1104
1109
|
"facilityLimit": {
|
|
1105
1110
|
"description": "Facility limit in SAR minor units",
|
|
1106
1111
|
"pattern": "^[1-9][0-9]{0,17}$",
|
|
1107
|
-
"type": "string"
|
|
1112
|
+
"type": "string",
|
|
1113
|
+
"x-hyperscale-currency": "SAR"
|
|
1108
1114
|
},
|
|
1109
1115
|
"lenderAccountId": {
|
|
1110
1116
|
"description": "The lender account",
|
|
@@ -1188,8 +1194,8 @@
|
|
|
1188
1194
|
"path": "fields.amount"
|
|
1189
1195
|
},
|
|
1190
1196
|
"currency": {
|
|
1191
|
-
"from": "
|
|
1192
|
-
"
|
|
1197
|
+
"from": "const",
|
|
1198
|
+
"value": "SAR"
|
|
1193
1199
|
},
|
|
1194
1200
|
"destinationAccountId": {
|
|
1195
1201
|
"from": "instance",
|
|
@@ -1290,7 +1296,8 @@
|
|
|
1290
1296
|
"amount": {
|
|
1291
1297
|
"description": "One draw amount",
|
|
1292
1298
|
"pattern": "^[1-9][0-9]{0,17}$",
|
|
1293
|
-
"type": "string"
|
|
1299
|
+
"type": "string",
|
|
1300
|
+
"x-hyperscale-currency": "SAR"
|
|
1294
1301
|
},
|
|
1295
1302
|
"currency": {
|
|
1296
1303
|
"description": "ISO 4217 currency code",
|
|
@@ -7,7 +7,9 @@
|
|
|
7
7
|
"confirm_delivery",
|
|
8
8
|
"release_on_deadline",
|
|
9
9
|
"cancel",
|
|
10
|
-
"abandon"
|
|
10
|
+
"abandon",
|
|
11
|
+
"dispute",
|
|
12
|
+
"resume"
|
|
11
13
|
],
|
|
12
14
|
"actions": {
|
|
13
15
|
"abandon": {
|
|
@@ -47,8 +49,8 @@
|
|
|
47
49
|
"path": "fields.price"
|
|
48
50
|
},
|
|
49
51
|
"currency": {
|
|
50
|
-
"from": "
|
|
51
|
-
"
|
|
52
|
+
"from": "const",
|
|
53
|
+
"value": "SAR"
|
|
52
54
|
},
|
|
53
55
|
"destinationAccountId": {
|
|
54
56
|
"from": "instance",
|
|
@@ -119,8 +121,8 @@
|
|
|
119
121
|
"path": "fields.price"
|
|
120
122
|
},
|
|
121
123
|
"currency": {
|
|
122
|
-
"from": "
|
|
123
|
-
"
|
|
124
|
+
"from": "const",
|
|
125
|
+
"value": "SAR"
|
|
124
126
|
},
|
|
125
127
|
"destinationAccountId": {
|
|
126
128
|
"from": "instance",
|
|
@@ -160,6 +162,7 @@
|
|
|
160
162
|
]
|
|
161
163
|
},
|
|
162
164
|
"publicAction": "confirmDeliverySale",
|
|
165
|
+
"sandboxFailurePoint": "release",
|
|
163
166
|
"steps": [],
|
|
164
167
|
"summary": "Confirm through confirm_delivery and start the release payout"
|
|
165
168
|
},
|
|
@@ -171,8 +174,8 @@
|
|
|
171
174
|
{
|
|
172
175
|
"bind": {
|
|
173
176
|
"currency": {
|
|
174
|
-
"from": "
|
|
175
|
-
"
|
|
177
|
+
"from": "const",
|
|
178
|
+
"value": "SAR"
|
|
176
179
|
},
|
|
177
180
|
"owner.id": {
|
|
178
181
|
"from": "instance",
|
|
@@ -199,6 +202,25 @@
|
|
|
199
202
|
],
|
|
200
203
|
"summary": "Create a sale settlement"
|
|
201
204
|
},
|
|
205
|
+
"dispute": {
|
|
206
|
+
"agentDescription": "Freeze a funded sale so neither release nor refund can run until the parties settle the disagreement. No money moves and the whole balance stays put. Only a funded sale disputes.",
|
|
207
|
+
"deadline": {
|
|
208
|
+
"field": "releaseDueAt"
|
|
209
|
+
},
|
|
210
|
+
"description": "Freezes funded sale, preserving the entire balance while the parties decide what happens next.",
|
|
211
|
+
"effects": {
|
|
212
|
+
"schedules": [
|
|
213
|
+
{
|
|
214
|
+
"signature": "schedules.deadline",
|
|
215
|
+
"source": "deadline"
|
|
216
|
+
}
|
|
217
|
+
]
|
|
218
|
+
},
|
|
219
|
+
"moves": [],
|
|
220
|
+
"publicAction": "disputeSale",
|
|
221
|
+
"steps": [],
|
|
222
|
+
"summary": "Dispute a sale settlement"
|
|
223
|
+
},
|
|
202
224
|
"fund_piece_1": {
|
|
203
225
|
"agentDescription": "Move the buyer's money into this settlement's escrow. Call it after create and before any release. It debits the buyer for real, and where the product charges a payer-side fee that fee is taken on top in the same call. Only a later release or unwind moves the money again.",
|
|
204
226
|
"effects": {
|
|
@@ -221,8 +243,8 @@
|
|
|
221
243
|
"path": "fields.price"
|
|
222
244
|
},
|
|
223
245
|
"currency": {
|
|
224
|
-
"from": "
|
|
225
|
-
"
|
|
246
|
+
"from": "const",
|
|
247
|
+
"value": "SAR"
|
|
226
248
|
},
|
|
227
249
|
"destinationAccountId": {
|
|
228
250
|
"from": "instance",
|
|
@@ -262,8 +284,8 @@
|
|
|
262
284
|
"path": "fields.serviceFeeAmount"
|
|
263
285
|
},
|
|
264
286
|
"currency": {
|
|
265
|
-
"from": "
|
|
266
|
-
"
|
|
287
|
+
"from": "const",
|
|
288
|
+
"value": "SAR"
|
|
267
289
|
},
|
|
268
290
|
"destinationAccountId": {
|
|
269
291
|
"from": "instance",
|
|
@@ -298,6 +320,7 @@
|
|
|
298
320
|
}
|
|
299
321
|
],
|
|
300
322
|
"publicAction": "fundPiece1Sale",
|
|
323
|
+
"sandboxFailurePoint": "funding",
|
|
301
324
|
"steps": [],
|
|
302
325
|
"summary": "Fund piece 1 of the held amount into escrow"
|
|
303
326
|
},
|
|
@@ -327,8 +350,8 @@
|
|
|
327
350
|
"path": "fields.price"
|
|
328
351
|
},
|
|
329
352
|
"currency": {
|
|
330
|
-
"from": "
|
|
331
|
-
"
|
|
353
|
+
"from": "const",
|
|
354
|
+
"value": "SAR"
|
|
332
355
|
},
|
|
333
356
|
"destinationAccountId": {
|
|
334
357
|
"from": "instance",
|
|
@@ -364,6 +387,14 @@
|
|
|
364
387
|
],
|
|
365
388
|
"steps": [],
|
|
366
389
|
"summary": "Release to the seller when releaseDueAt arrives undecided"
|
|
390
|
+
},
|
|
391
|
+
"resume": {
|
|
392
|
+
"agentDescription": "Lift the dispute hold and put the sale back where it was, funded and ready to release. No money moves and the balance was never touched. Only a disputed sale resumes. Use this when the parties settled without a refund.",
|
|
393
|
+
"description": "Ends the dispute hold without moving money and returns the fully funded sale to its first milestone.",
|
|
394
|
+
"moves": [],
|
|
395
|
+
"publicAction": "resumeSale",
|
|
396
|
+
"steps": [],
|
|
397
|
+
"summary": "Resume a sale settlement"
|
|
367
398
|
}
|
|
368
399
|
},
|
|
369
400
|
"agentDescription": "Reach for sale when the buyer must commit money up front and nobody is paid until confirm_delivery fires. Funding moves price into this settlement's own escrow account, where it stays until a release or an unwind pays it out. A straight-through payment with no custody step is a different shape.",
|
|
@@ -415,7 +446,8 @@
|
|
|
415
446
|
"price": {
|
|
416
447
|
"description": "The held amount in SAR minor units, funded and paid out whole",
|
|
417
448
|
"pattern": "^[1-9][0-9]{0,17}$",
|
|
418
|
-
"type": "string"
|
|
449
|
+
"type": "string",
|
|
450
|
+
"x-hyperscale-currency": "SAR"
|
|
419
451
|
},
|
|
420
452
|
"releaseDueAt": {
|
|
421
453
|
"description": "The date an undecided hold releases to the seller on; confirm_delivery and cancellation decide only before it",
|
|
@@ -436,7 +468,8 @@
|
|
|
436
468
|
"serviceFeeAmount": {
|
|
437
469
|
"description": "Machine-owned 1% service fee computed from price; charged on top at funding",
|
|
438
470
|
"pattern": "^[1-9][0-9]{0,17}$",
|
|
439
|
-
"type": "string"
|
|
471
|
+
"type": "string",
|
|
472
|
+
"x-hyperscale-currency": "SAR"
|
|
440
473
|
}
|
|
441
474
|
},
|
|
442
475
|
"id": "sale",
|
|
@@ -446,6 +479,7 @@
|
|
|
446
479
|
"states": [
|
|
447
480
|
"created",
|
|
448
481
|
"funded",
|
|
482
|
+
"disputed",
|
|
449
483
|
"released",
|
|
450
484
|
"cancelled",
|
|
451
485
|
"abandoned"
|
|
@@ -469,6 +503,12 @@
|
|
|
469
503
|
],
|
|
470
504
|
"to": "released"
|
|
471
505
|
},
|
|
506
|
+
"dispute": {
|
|
507
|
+
"from": [
|
|
508
|
+
"funded"
|
|
509
|
+
],
|
|
510
|
+
"to": "disputed"
|
|
511
|
+
},
|
|
472
512
|
"fund_piece_1": {
|
|
473
513
|
"from": [
|
|
474
514
|
"created"
|
|
@@ -480,6 +520,12 @@
|
|
|
480
520
|
"funded"
|
|
481
521
|
],
|
|
482
522
|
"to": "released"
|
|
523
|
+
},
|
|
524
|
+
"resume": {
|
|
525
|
+
"from": [
|
|
526
|
+
"disputed"
|
|
527
|
+
],
|
|
528
|
+
"to": "funded"
|
|
483
529
|
}
|
|
484
530
|
}
|
|
485
531
|
},
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"path": "fields.checkoutFee"
|
|
27
27
|
},
|
|
28
28
|
"currency": {
|
|
29
|
-
"from": "
|
|
30
|
-
"
|
|
29
|
+
"from": "const",
|
|
30
|
+
"value": "SAR"
|
|
31
31
|
},
|
|
32
32
|
"destinationAccountId": {
|
|
33
33
|
"from": "instance",
|
|
@@ -90,8 +90,8 @@
|
|
|
90
90
|
"path": "fields.netOfCarvedFeeAmount"
|
|
91
91
|
},
|
|
92
92
|
"currency": {
|
|
93
|
-
"from": "
|
|
94
|
-
"
|
|
93
|
+
"from": "const",
|
|
94
|
+
"value": "SAR"
|
|
95
95
|
},
|
|
96
96
|
"destinationAccountId": {
|
|
97
97
|
"from": "instance",
|
|
@@ -126,6 +126,7 @@
|
|
|
126
126
|
}
|
|
127
127
|
],
|
|
128
128
|
"publicAction": "payPiece1Transfer",
|
|
129
|
+
"sandboxFailurePoint": "funding",
|
|
129
130
|
"steps": [],
|
|
130
131
|
"summary": "Pay piece 1 of the amount through"
|
|
131
132
|
},
|
|
@@ -147,8 +148,8 @@
|
|
|
147
148
|
"path": "fields.carvedFeeAmount"
|
|
148
149
|
},
|
|
149
150
|
"currency": {
|
|
150
|
-
"from": "
|
|
151
|
-
"
|
|
151
|
+
"from": "const",
|
|
152
|
+
"value": "SAR"
|
|
152
153
|
},
|
|
153
154
|
"destinationAccountId": {
|
|
154
155
|
"from": "instance",
|
|
@@ -233,12 +234,14 @@
|
|
|
233
234
|
"carvedFeeAmount": {
|
|
234
235
|
"description": "The carved platform fee selected from transferAmount",
|
|
235
236
|
"pattern": "^[1-9][0-9]{0,17}$",
|
|
236
|
-
"type": "string"
|
|
237
|
+
"type": "string",
|
|
238
|
+
"x-hyperscale-currency": "SAR"
|
|
237
239
|
},
|
|
238
240
|
"checkoutFee": {
|
|
239
241
|
"description": "Immutable exact customer fee in SAR minor units",
|
|
240
242
|
"pattern": "^[1-9][0-9]{0,17}$",
|
|
241
|
-
"type": "string"
|
|
243
|
+
"type": "string",
|
|
244
|
+
"x-hyperscale-currency": "SAR"
|
|
242
245
|
},
|
|
243
246
|
"currency": {
|
|
244
247
|
"description": "ISO 4217 currency code",
|
|
@@ -261,7 +264,8 @@
|
|
|
261
264
|
"highValueFee": {
|
|
262
265
|
"description": "Immutable exact merchant fee in SAR minor units",
|
|
263
266
|
"pattern": "^[1-9][0-9]{0,17}$",
|
|
264
|
-
"type": "string"
|
|
267
|
+
"type": "string",
|
|
268
|
+
"x-hyperscale-currency": "SAR"
|
|
265
269
|
},
|
|
266
270
|
"merchantAccountId": {
|
|
267
271
|
"description": "The merchant account",
|
|
@@ -277,7 +281,8 @@
|
|
|
277
281
|
"netOfCarvedFeeAmount": {
|
|
278
282
|
"description": "The remainder of transferAmount after the carved platform fee",
|
|
279
283
|
"pattern": "^[1-9][0-9]{0,17}$",
|
|
280
|
-
"type": "string"
|
|
284
|
+
"type": "string",
|
|
285
|
+
"x-hyperscale-currency": "SAR"
|
|
281
286
|
},
|
|
282
287
|
"platformAccountId": {
|
|
283
288
|
"description": "The product fee collection account",
|
|
@@ -295,7 +300,8 @@
|
|
|
295
300
|
"transferAmount": {
|
|
296
301
|
"description": "The gross amount in SAR minor units; the piece fields below partition it exactly",
|
|
297
302
|
"pattern": "^[1-9][0-9]{0,17}$",
|
|
298
|
-
"type": "string"
|
|
303
|
+
"type": "string",
|
|
304
|
+
"x-hyperscale-currency": "SAR"
|
|
299
305
|
}
|
|
300
306
|
},
|
|
301
307
|
"id": "transfer",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"path": "fields.callRate"
|
|
27
27
|
},
|
|
28
28
|
"currency": {
|
|
29
|
-
"from": "
|
|
30
|
-
"
|
|
29
|
+
"from": "const",
|
|
30
|
+
"value": "SAR"
|
|
31
31
|
},
|
|
32
32
|
"destinationAccountId": {
|
|
33
33
|
"from": "instance",
|
|
@@ -83,8 +83,8 @@
|
|
|
83
83
|
"path": "fields.storageRate"
|
|
84
84
|
},
|
|
85
85
|
"currency": {
|
|
86
|
-
"from": "
|
|
87
|
-
"
|
|
86
|
+
"from": "const",
|
|
87
|
+
"value": "SAR"
|
|
88
88
|
},
|
|
89
89
|
"destinationAccountId": {
|
|
90
90
|
"from": "instance",
|
|
@@ -152,7 +152,8 @@
|
|
|
152
152
|
"callRate": {
|
|
153
153
|
"description": "Per-unit price of api call in SAR minor units, committed at period open",
|
|
154
154
|
"pattern": "^[1-9][0-9]{0,17}$",
|
|
155
|
-
"type": "string"
|
|
155
|
+
"type": "string",
|
|
156
|
+
"x-hyperscale-currency": "SAR"
|
|
156
157
|
},
|
|
157
158
|
"currency": {
|
|
158
159
|
"description": "ISO 4217 currency code",
|
|
@@ -191,7 +192,8 @@
|
|
|
191
192
|
"storageRate": {
|
|
192
193
|
"description": "Per-unit price of storage gib in SAR minor units, committed at period open",
|
|
193
194
|
"pattern": "^[1-9][0-9]{0,17}$",
|
|
194
|
-
"type": "string"
|
|
195
|
+
"type": "string",
|
|
196
|
+
"x-hyperscale-currency": "SAR"
|
|
195
197
|
}
|
|
196
198
|
},
|
|
197
199
|
"id": "usage",
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
{
|
|
18
18
|
"bind": {
|
|
19
19
|
"currency": {
|
|
20
|
-
"from": "
|
|
21
|
-
"
|
|
20
|
+
"from": "const",
|
|
21
|
+
"value": "SAR"
|
|
22
22
|
},
|
|
23
23
|
"owner.id": {
|
|
24
24
|
"from": "instance",
|
|
@@ -71,8 +71,8 @@
|
|
|
71
71
|
"path": "fields.firstRecipientShareAmount"
|
|
72
72
|
},
|
|
73
73
|
"currency": {
|
|
74
|
-
"from": "
|
|
75
|
-
"
|
|
74
|
+
"from": "const",
|
|
75
|
+
"value": "SAR"
|
|
76
76
|
},
|
|
77
77
|
"destinationAccountId": {
|
|
78
78
|
"from": "instance",
|
|
@@ -135,8 +135,8 @@
|
|
|
135
135
|
"path": "fields.secondRecipientShareAmount"
|
|
136
136
|
},
|
|
137
137
|
"currency": {
|
|
138
|
-
"from": "
|
|
139
|
-
"
|
|
138
|
+
"from": "const",
|
|
139
|
+
"value": "SAR"
|
|
140
140
|
},
|
|
141
141
|
"destinationAccountId": {
|
|
142
142
|
"from": "instance",
|
|
@@ -191,8 +191,8 @@
|
|
|
191
191
|
"path": "fields.firstRecipientShareAmount"
|
|
192
192
|
},
|
|
193
193
|
"currency": {
|
|
194
|
-
"from": "
|
|
195
|
-
"
|
|
194
|
+
"from": "const",
|
|
195
|
+
"value": "SAR"
|
|
196
196
|
},
|
|
197
197
|
"destinationAccountId": {
|
|
198
198
|
"from": "instance",
|
|
@@ -248,8 +248,8 @@
|
|
|
248
248
|
"path": "fields.secondRecipientShareAmount"
|
|
249
249
|
},
|
|
250
250
|
"currency": {
|
|
251
|
-
"from": "
|
|
252
|
-
"
|
|
251
|
+
"from": "const",
|
|
252
|
+
"value": "SAR"
|
|
253
253
|
},
|
|
254
254
|
"destinationAccountId": {
|
|
255
255
|
"from": "instance",
|
|
@@ -312,7 +312,8 @@
|
|
|
312
312
|
"firstRecipientShareAmount": {
|
|
313
313
|
"description": "60% of poolAmount (carries the integer-division remainder): the first recipient's share. Computed as floor(poolAmount * 6000 / 10000) in SAR minor units",
|
|
314
314
|
"pattern": "^[1-9][0-9]{0,17}$",
|
|
315
|
-
"type": "string"
|
|
315
|
+
"type": "string",
|
|
316
|
+
"x-hyperscale-currency": "SAR"
|
|
316
317
|
},
|
|
317
318
|
"payerAccountId": {
|
|
318
319
|
"description": "The payer account",
|
|
@@ -333,7 +334,8 @@
|
|
|
333
334
|
"poolAmount": {
|
|
334
335
|
"description": "The pooled period total in SAR minor units; the share fields below partition it exactly",
|
|
335
336
|
"pattern": "^[1-9][0-9]{0,17}$",
|
|
336
|
-
"type": "string"
|
|
337
|
+
"type": "string",
|
|
338
|
+
"x-hyperscale-currency": "SAR"
|
|
337
339
|
},
|
|
338
340
|
"secondRecipientAccountId": {
|
|
339
341
|
"description": "The second recipient account",
|
|
@@ -349,7 +351,8 @@
|
|
|
349
351
|
"secondRecipientShareAmount": {
|
|
350
352
|
"description": "40% of poolAmount: the second recipient's share. Computed as floor(poolAmount * 4000 / 10000) in SAR minor units",
|
|
351
353
|
"pattern": "^[1-9][0-9]{0,17}$",
|
|
352
|
-
"type": "string"
|
|
354
|
+
"type": "string",
|
|
355
|
+
"x-hyperscale-currency": "SAR"
|
|
353
356
|
}
|
|
354
357
|
},
|
|
355
358
|
"id": "pool",
|