@kynesyslabs/demosdk 2.12.1 → 3.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 (108) hide show
  1. package/build/abstraction/EvmCoinFinder.js +14 -2
  2. package/build/abstraction/EvmCoinFinder.js.map +1 -1
  3. package/build/abstraction/Identities.js +3 -1
  4. package/build/abstraction/Identities.js.map +1 -1
  5. package/build/bridge/nativeBridgeTypes.d.ts +4 -3
  6. package/build/bridge/nativeBridgeTypes.js.map +1 -1
  7. package/build/d402/client/types.d.ts +6 -3
  8. package/build/d402/server/D402Server.d.ts +25 -0
  9. package/build/d402/server/D402Server.js +63 -2
  10. package/build/d402/server/D402Server.js.map +1 -1
  11. package/build/d402/server/middleware.d.ts +7 -4
  12. package/build/d402/server/middleware.js.map +1 -1
  13. package/build/d402/server/types.d.ts +15 -7
  14. package/build/denomination/conversion.test.js +1 -1
  15. package/build/denomination/conversion.test.js.map +1 -1
  16. package/build/denomination/index.d.ts +3 -0
  17. package/build/denomination/index.js +6 -0
  18. package/build/denomination/index.js.map +1 -1
  19. package/build/denomination/networkInfo.d.ts +69 -0
  20. package/build/denomination/networkInfo.js +38 -0
  21. package/build/denomination/networkInfo.js.map +1 -0
  22. package/build/denomination/networkInfo.test.d.ts +1 -0
  23. package/build/denomination/networkInfo.test.js +28 -0
  24. package/build/denomination/networkInfo.test.js.map +1 -0
  25. package/build/denomination/roundTripHash.test.d.ts +1 -0
  26. package/build/denomination/roundTripHash.test.js +227 -0
  27. package/build/denomination/roundTripHash.test.js.map +1 -0
  28. package/build/denomination/serializerGate.d.ts +46 -0
  29. package/build/denomination/serializerGate.js +283 -0
  30. package/build/denomination/serializerGate.js.map +1 -0
  31. package/build/denomination/serializerGate.test.d.ts +1 -0
  32. package/build/denomination/serializerGate.test.js +245 -0
  33. package/build/denomination/serializerGate.test.js.map +1 -0
  34. package/build/encryption/zK/interactive/index.js +5 -1
  35. package/build/encryption/zK/interactive/index.js.map +1 -1
  36. package/build/escrow/EscrowTransaction.d.ts +36 -5
  37. package/build/escrow/EscrowTransaction.js +91 -10
  38. package/build/escrow/EscrowTransaction.js.map +1 -1
  39. package/build/instant_messaging/L2PSMessagingPeer.js +4 -1
  40. package/build/instant_messaging/L2PSMessagingPeer.js.map +1 -1
  41. package/build/ipfs/IPFSOperations.d.ts +37 -10
  42. package/build/ipfs/IPFSOperations.js +38 -8
  43. package/build/ipfs/IPFSOperations.js.map +1 -1
  44. package/build/storage/StorageProgram.d.ts +16 -8
  45. package/build/storage/StorageProgram.js +16 -8
  46. package/build/storage/StorageProgram.js.map +1 -1
  47. package/build/tlsnotary/TLSNotaryService.d.ts +19 -8
  48. package/build/tlsnotary/TLSNotaryService.js +22 -7
  49. package/build/tlsnotary/TLSNotaryService.js.map +1 -1
  50. package/build/tlsnotary/helpers.d.ts +11 -5
  51. package/build/tlsnotary/helpers.js +17 -5
  52. package/build/tlsnotary/helpers.js.map +1 -1
  53. package/build/types/blockchain/CustomCharges.d.ts +28 -16
  54. package/build/types/blockchain/CustomCharges.js +15 -5
  55. package/build/types/blockchain/CustomCharges.js.map +1 -1
  56. package/build/types/blockchain/GCREdit.d.ts +80 -3
  57. package/build/types/blockchain/NetworkParameters.d.ts +54 -0
  58. package/build/types/blockchain/NetworkParameters.js +9 -0
  59. package/build/types/blockchain/NetworkParameters.js.map +1 -0
  60. package/build/types/blockchain/Transaction.d.ts +21 -3
  61. package/build/types/blockchain/Transaction.js.map +1 -1
  62. package/build/types/blockchain/TransactionSubtypes/D402PaymentTransaction.d.ts +8 -3
  63. package/build/types/blockchain/TransactionSubtypes/NetworkUpgradeTransaction.d.ts +20 -0
  64. package/build/types/blockchain/TransactionSubtypes/NetworkUpgradeTransaction.js +2 -0
  65. package/build/types/blockchain/TransactionSubtypes/NetworkUpgradeTransaction.js.map +1 -0
  66. package/build/types/blockchain/TransactionSubtypes/NetworkUpgradeVoteTransaction.d.ts +13 -0
  67. package/build/types/blockchain/TransactionSubtypes/NetworkUpgradeVoteTransaction.js +2 -0
  68. package/build/types/blockchain/TransactionSubtypes/NetworkUpgradeVoteTransaction.js.map +1 -0
  69. package/build/types/blockchain/TransactionSubtypes/StorageProgramTransaction.d.ts +6 -5
  70. package/build/types/blockchain/TransactionSubtypes/StorageProgramTransaction.js +15 -3
  71. package/build/types/blockchain/TransactionSubtypes/StorageProgramTransaction.js.map +1 -1
  72. package/build/types/blockchain/TransactionSubtypes/ValidatorExitTransaction.d.ts +10 -0
  73. package/build/types/blockchain/TransactionSubtypes/ValidatorExitTransaction.js +2 -0
  74. package/build/types/blockchain/TransactionSubtypes/ValidatorExitTransaction.js.map +1 -0
  75. package/build/types/blockchain/TransactionSubtypes/ValidatorStakeTransaction.d.ts +15 -0
  76. package/build/types/blockchain/TransactionSubtypes/ValidatorStakeTransaction.js +2 -0
  77. package/build/types/blockchain/TransactionSubtypes/ValidatorStakeTransaction.js.map +1 -0
  78. package/build/types/blockchain/TransactionSubtypes/ValidatorUnstakeTransaction.d.ts +10 -0
  79. package/build/types/blockchain/TransactionSubtypes/ValidatorUnstakeTransaction.js +2 -0
  80. package/build/types/blockchain/TransactionSubtypes/ValidatorUnstakeTransaction.js.map +1 -0
  81. package/build/types/blockchain/TransactionSubtypes/index.d.ts +11 -1
  82. package/build/types/blockchain/TransactionSubtypes/index.js +7 -0
  83. package/build/types/blockchain/TransactionSubtypes/index.js.map +1 -1
  84. package/build/types/blockchain/TxFee.d.ts +16 -3
  85. package/build/types/blockchain/address.d.ts +23 -0
  86. package/build/types/blockchain/rawTransaction.d.ts +13 -4
  87. package/build/types/blockchain/statusNative.d.ts +9 -1
  88. package/build/types/bridge/bridgeTradePayload.d.ts +1 -1
  89. package/build/types/gls/StateChange.d.ts +29 -3
  90. package/build/types/index.d.ts +4 -2
  91. package/build/types/index.js.map +1 -1
  92. package/build/types/native/INativePayload.d.ts +6 -1
  93. package/build/types/validator/ValidatorTypes.d.ts +13 -0
  94. package/build/types/validator/ValidatorTypes.js +3 -0
  95. package/build/types/validator/ValidatorTypes.js.map +1 -0
  96. package/build/wallet/Wallet.d.ts +27 -1
  97. package/build/wallet/Wallet.js +30 -17
  98. package/build/wallet/Wallet.js.map +1 -1
  99. package/build/websdk/DemosTransactions.d.ts +78 -4
  100. package/build/websdk/DemosTransactions.js +253 -9
  101. package/build/websdk/DemosTransactions.js.map +1 -1
  102. package/build/websdk/GCRGeneration.d.ts +11 -2
  103. package/build/websdk/GCRGeneration.js +143 -14
  104. package/build/websdk/GCRGeneration.js.map +1 -1
  105. package/build/websdk/demosclass.d.ts +238 -26
  106. package/build/websdk/demosclass.js +434 -54
  107. package/build/websdk/demosclass.js.map +1 -1
  108. package/package.json +1 -1
@@ -0,0 +1,245 @@
1
+ import { describe, test, expect } from "@jest/globals";
2
+ import { serializeTransactionContent } from "./serializerGate.js";
3
+ // REVIEW: P4 commit 2 — load-bearing wire boundary. Tests assert byte
4
+ // identity for the pre-fork branch (must equal legacy `JSON.stringify`)
5
+ // and the canonical post-fork shape (`amount`, `transaction_fee.*`, and
6
+ // targeted `gcr_edits[].amount` carriers as OS strings; key order
7
+ // preserved).
8
+ /**
9
+ * Build a `TransactionContent` fixture in the canonical key order, with
10
+ * a mix of `gcr_edits` entries to exercise the per-variant transformer.
11
+ */
12
+ function buildFixture() {
13
+ const gcr_edits = [
14
+ {
15
+ type: "balance",
16
+ isRollback: false,
17
+ operation: "remove",
18
+ account: "0xsender",
19
+ amount: 100, // legacy DEM number
20
+ txhash: "",
21
+ },
22
+ {
23
+ type: "nonce",
24
+ isRollback: false,
25
+ operation: "add",
26
+ account: "0xsender",
27
+ amount: 1,
28
+ txhash: "",
29
+ },
30
+ {
31
+ type: "balance",
32
+ isRollback: false,
33
+ operation: "add",
34
+ account: "0xreceiver",
35
+ amount: 100,
36
+ txhash: "",
37
+ },
38
+ {
39
+ type: "escrow",
40
+ operation: "deposit",
41
+ account: "0xescrow",
42
+ data: {
43
+ sender: "0xsender",
44
+ platform: "twitter",
45
+ username: "@bob",
46
+ amount: 100, // legacy DEM number — should become OS string post-fork
47
+ expiryDays: 30,
48
+ },
49
+ txhash: "",
50
+ isRollback: false,
51
+ },
52
+ ];
53
+ const content = {
54
+ type: "native",
55
+ from: "0xsender",
56
+ to: "0xreceiver",
57
+ amount: 100, // legacy DEM
58
+ data: [
59
+ "native",
60
+ {
61
+ nativeOperation: "send",
62
+ args: ["0xreceiver", 100],
63
+ },
64
+ ],
65
+ nonce: 1,
66
+ timestamp: 1700000000000,
67
+ transaction_fee: {
68
+ network_fee: 1,
69
+ rpc_fee: 0,
70
+ additional_fee: 0,
71
+ },
72
+ from_ed25519_address: "0xsender",
73
+ gcr_edits,
74
+ };
75
+ return content;
76
+ }
77
+ describe("serializerGate — pre-fork branch", () => {
78
+ test("output is byte-identical to legacy JSON.stringify for current SDK content", () => {
79
+ const content = buildFixture();
80
+ const expected = JSON.stringify(content);
81
+ expect(serializeTransactionContent(content, false)).toBe(expected);
82
+ });
83
+ test("normalises stray bigint amount back to legacy DEM number", () => {
84
+ const content = buildFixture();
85
+ // Simulate an internal bigint OS amount leaking into content.
86
+ // 100 DEM = 100_000_000_000n OS.
87
+ content.amount = 100000000000n;
88
+ const out = serializeTransactionContent(content, false);
89
+ const parsed = JSON.parse(out);
90
+ expect(parsed.amount).toBe(100);
91
+ });
92
+ test("normalises stray OS-string amount back to DEM number", () => {
93
+ const content = buildFixture();
94
+ content.amount = "100000000000";
95
+ const out = serializeTransactionContent(content, false);
96
+ const parsed = JSON.parse(out);
97
+ expect(parsed.amount).toBe(100);
98
+ });
99
+ test("normalises bigint balance edit back to DEM number", () => {
100
+ const content = buildFixture();
101
+ content.gcr_edits[0].amount = 100000000000n;
102
+ const out = serializeTransactionContent(content, false);
103
+ const parsed = JSON.parse(out);
104
+ expect(parsed.gcr_edits[0].amount).toBe(100);
105
+ });
106
+ });
107
+ describe("serializerGate — post-fork branch", () => {
108
+ test("amount becomes OS string", () => {
109
+ const content = buildFixture();
110
+ const out = serializeTransactionContent(content, true);
111
+ const parsed = JSON.parse(out);
112
+ expect(parsed.amount).toBe("100000000000");
113
+ });
114
+ test("transaction_fee fields all become OS strings", () => {
115
+ const content = buildFixture();
116
+ const out = serializeTransactionContent(content, true);
117
+ const parsed = JSON.parse(out);
118
+ expect(parsed.transaction_fee.network_fee).toBe("1000000000");
119
+ expect(parsed.transaction_fee.rpc_fee).toBe("0");
120
+ expect(parsed.transaction_fee.additional_fee).toBe("0");
121
+ });
122
+ test("gcr_edits balance amounts become OS strings; nonce stays a number", () => {
123
+ const content = buildFixture();
124
+ const out = serializeTransactionContent(content, true);
125
+ const parsed = JSON.parse(out);
126
+ expect(parsed.gcr_edits[0].amount).toBe("100000000000");
127
+ expect(parsed.gcr_edits[1].amount).toBe(1); // nonce — counter, untouched
128
+ expect(parsed.gcr_edits[2].amount).toBe("100000000000");
129
+ });
130
+ test("escrow nested amount becomes OS string", () => {
131
+ const content = buildFixture();
132
+ const out = serializeTransactionContent(content, true);
133
+ const parsed = JSON.parse(out);
134
+ expect(parsed.gcr_edits[3].data.amount).toBe("100000000000");
135
+ });
136
+ test("post-fork output preserves canonical top-level key order", () => {
137
+ const content = buildFixture();
138
+ const out = serializeTransactionContent(content, true);
139
+ const parsed = JSON.parse(out);
140
+ // Canonical order from SPEC_P4 §3.5.
141
+ expect(Object.keys(parsed)).toEqual([
142
+ "type",
143
+ "from",
144
+ "to",
145
+ "amount",
146
+ "data",
147
+ "nonce",
148
+ "timestamp",
149
+ "transaction_fee",
150
+ "from_ed25519_address",
151
+ "gcr_edits",
152
+ ]);
153
+ });
154
+ test("post-fork output preserves transaction_fee key order", () => {
155
+ const content = buildFixture();
156
+ const out = serializeTransactionContent(content, true);
157
+ const parsed = JSON.parse(out);
158
+ expect(Object.keys(parsed.transaction_fee)).toEqual([
159
+ "network_fee",
160
+ "rpc_fee",
161
+ "additional_fee",
162
+ ]);
163
+ });
164
+ test("non-canonical OS string is normalised", () => {
165
+ const content = buildFixture();
166
+ // "00100" must become "100" after re-emit.
167
+ content.amount = "00100";
168
+ const out = serializeTransactionContent(content, true);
169
+ const parsed = JSON.parse(out);
170
+ expect(parsed.amount).toBe("100");
171
+ });
172
+ test("bigint amount round-trips through the wire", () => {
173
+ const content = buildFixture();
174
+ content.amount = 1500000000n;
175
+ const out = serializeTransactionContent(content, true);
176
+ const parsed = JSON.parse(out);
177
+ expect(parsed.amount).toBe("1500000000");
178
+ });
179
+ test("sub-DEM precision preserved via OS string", () => {
180
+ const content = buildFixture();
181
+ // 0.000000001 DEM = 1n OS.
182
+ content.amount = 1n;
183
+ const out = serializeTransactionContent(content, true);
184
+ const parsed = JSON.parse(out);
185
+ expect(parsed.amount).toBe("1");
186
+ });
187
+ });
188
+ describe("serializerGate — input invariance", () => {
189
+ test("does not mutate the input content object", () => {
190
+ const content = buildFixture();
191
+ const before = JSON.stringify(content);
192
+ serializeTransactionContent(content, true);
193
+ expect(JSON.stringify(content)).toBe(before);
194
+ });
195
+ });
196
+ describe("serializerGate — transaction_fee key order (myc#19)", () => {
197
+ test("post-fork preserves non-canonical fee insertion order", () => {
198
+ const content = buildFixture();
199
+ // Construct fee with `additional_fee` first to break the old
200
+ // hard-coded literal order.
201
+ content.transaction_fee = {
202
+ additional_fee: 0,
203
+ rpc_fee: 0,
204
+ network_fee: 1,
205
+ };
206
+ const out = serializeTransactionContent(content, true);
207
+ const parsed = JSON.parse(out);
208
+ expect(Object.keys(parsed.transaction_fee)).toEqual([
209
+ "additional_fee",
210
+ "rpc_fee",
211
+ "network_fee",
212
+ ]);
213
+ });
214
+ test("pre-fork preserves non-canonical fee insertion order", () => {
215
+ const content = buildFixture();
216
+ content.transaction_fee = {
217
+ additional_fee: 0,
218
+ rpc_fee: 0,
219
+ network_fee: 1,
220
+ };
221
+ const out = serializeTransactionContent(content, false);
222
+ const parsed = JSON.parse(out);
223
+ expect(Object.keys(parsed.transaction_fee)).toEqual([
224
+ "additional_fee",
225
+ "rpc_fee",
226
+ "network_fee",
227
+ ]);
228
+ });
229
+ test("post-fork passes through unknown extra fee fields verbatim", () => {
230
+ const content = buildFixture();
231
+ content.transaction_fee = {
232
+ network_fee: 1,
233
+ rpc_fee: 0,
234
+ additional_fee: 0,
235
+ // Future extension field the SDK doesn't know about — must
236
+ // not be dropped (consensus would diverge if the node knows
237
+ // it and we strip it).
238
+ future_field: "abc",
239
+ };
240
+ const out = serializeTransactionContent(content, true);
241
+ const parsed = JSON.parse(out);
242
+ expect(parsed.transaction_fee.future_field).toBe("abc");
243
+ });
244
+ });
245
+ //# sourceMappingURL=serializerGate.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializerGate.test.js","sourceRoot":"","sources":["../../../src/denomination/serializerGate.test.ts"],"names":[],"mappings":"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"}
@@ -19,8 +19,12 @@ export class Verifier {
19
19
  this.modulus = modulus;
20
20
  }
21
21
  generateChallenge(commitment) {
22
+ // CSPRNG: a predictable challenge breaks the soundness of the
23
+ // interactive ZK proof.
22
24
  this.commitment = commitment;
23
- return Math.round(Math.random());
25
+ const buf = new Uint8Array(1);
26
+ crypto.getRandomValues(buf);
27
+ return buf[0] & 1;
24
28
  }
25
29
  verifyResponse(response, challenge) {
26
30
  const responseSquared = response.modPow(2, this.modulus);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/encryption/zK/interactive/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAGhC,MAAM,OAAO,MAAM;IAKf,YAAY,MAAW,EAAE,MAAW,EAAE,MAAyB;QAC3D,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;QAClE,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IACnD,CAAC;IAED,kBAAkB,CAAC,SAAiB;QAChC,OAAO,SAAS,KAAK,CAAC;YAClB,CAAC,CAAC,IAAI,CAAC,WAAW;YAClB,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAClE,CAAC;CACJ;AAED,MAAM,OAAO,QAAQ;IAIjB,YAAY,OAAY;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IAC1B,CAAC;IAED,iBAAiB,CAAC,UAAe;QAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;IACpC,CAAC;IAED,cAAc,CAAC,QAAa,EAAE,SAAiB;QAC3C,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QACxD,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAClD,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACnD,CAAC;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/encryption/zK/interactive/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAGhC,MAAM,OAAO,MAAM;IAKf,YAAY,MAAW,EAAE,MAAW,EAAE,MAAyB;QAC3D,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;QAClE,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IACnD,CAAC;IAED,kBAAkB,CAAC,SAAiB;QAChC,OAAO,SAAS,KAAK,CAAC;YAClB,CAAC,CAAC,IAAI,CAAC,WAAW;YAClB,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAClE,CAAC;CACJ;AAED,MAAM,OAAO,QAAQ;IAIjB,YAAY,OAAY;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IAC1B,CAAC;IAED,iBAAiB,CAAC,UAAe;QAC7B,8DAA8D;QAC9D,wBAAwB;QACxB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;QAC7B,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;QAC3B,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACrB,CAAC;IAED,cAAc,CAAC,QAAa,EAAE,SAAiB;QAC3C,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QACxD,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAClD,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACnD,CAAC;IACL,CAAC;CACJ"}
@@ -15,31 +15,62 @@ export declare class EscrowTransaction {
15
15
  */
16
16
  static getEscrowAddress(platform: string, username: string): string;
17
17
  /**
18
- * Creates a transaction to send DEM to a social identity escrow
18
+ * Creates a transaction to send DEM to a social identity escrow.
19
+ *
20
+ * P4 dual-input:
21
+ * - `bigint` (preferred, post-v3): OS amount.
22
+ * - `number` (deprecated, v2 callers): DEM amount, auto-converted.
23
+ *
24
+ * Internal carrier in `tx.content.amount` and `gcr_edits[].amount`
25
+ * is bigint OS; the serializerGate (called from `demos.sign`)
26
+ * picks the wire shape per fork status. Sub-DEM precision against
27
+ * a pre-fork node throws `SubDemPrecisionError`.
19
28
  *
20
29
  * @example
21
30
  * ```typescript
31
+ * import { denomination } from "@kynesyslabs/demosdk"
22
32
  * const tx = await EscrowTransaction.sendToIdentity(
23
33
  * demos,
24
34
  * "twitter",
25
35
  * "@bob",
26
- * 100,
36
+ * denomination.demToOs(100), // 100 DEM
27
37
  * { expiryDays: 30, message: "Welcome to Demos!" }
28
38
  * )
29
- * await demos.submitTransaction(tx)
39
+ * await demos.confirm(tx)
30
40
  * ```
31
41
  *
32
42
  * @param demos - Demos SDK instance (must have keypair set)
33
43
  * @param platform - Social platform ("twitter", "github", "telegram")
34
44
  * @param username - Username on that platform
35
- * @param amount - Amount of DEM to send (number)
45
+ * @param amount - DEM `number` (legacy) or OS `bigint` (preferred).
36
46
  * @param options - Optional parameters
37
47
  * @returns Signed transaction ready to submit
38
48
  */
39
- static sendToIdentity(demos: Demos, platform: "twitter" | "github" | "telegram", username: string, amount: number, options?: {
49
+ static sendToIdentity(demos: Demos, platform: "twitter" | "github" | "telegram", username: string, amount: number | bigint, options?: {
40
50
  expiryDays?: number;
41
51
  message?: string;
42
52
  }): Promise<Transaction>;
53
+ /**
54
+ * Normalise a public-API amount input (`number` legacy DEM or
55
+ * `bigint` OS) into both forms. Used at every boundary that needs
56
+ * dual-shape support during the pre-/post-fork rollout.
57
+ *
58
+ * - `number` input: must be a non-negative integer DEM amount;
59
+ * converted to OS via `OS_PER_DEM`. Fractional DEM `number` is
60
+ * rejected — silently flooring (the previous behaviour) discarded
61
+ * up to ~10^9 OS per call. Callers who need sub-DEM precision
62
+ * must pass a `bigint` OS amount (e.g. `denomination.demToOs("1.5")`).
63
+ * - `bigint` input: treated as OS; DEM form is the integer division
64
+ * `amountOs / OS_PER_DEM`. The pre-fork sub-DEM precision rejection
65
+ * lives in `Demos._assertAmountAcceptableOnTargetNode` (called by
66
+ * `sendToIdentity` before this helper runs).
67
+ *
68
+ * @internal Exposed only to keep the migration paths discoverable.
69
+ */
70
+ static normalizeAmountInput(amount: number | bigint): {
71
+ amountDem: number;
72
+ amountOs: bigint;
73
+ };
43
74
  /**
44
75
  * Creates a transaction to claim escrowed funds
45
76
  *
@@ -11,6 +11,7 @@ KyneSys Labs: https://www.kynesys.xyz/
11
11
  import { Hashing } from "../encryption/Hashing.js";
12
12
  import { uint8ArrayToHex } from "../encryption/unifiedCrypto.js";
13
13
  import * as skeletons from "../websdk/utils/skeletons.js";
14
+ import { OS_PER_DEM } from "../denomination/index.js";
14
15
  /**
15
16
  * High-level API for creating escrow transactions
16
17
  * Enables trustless sending of DEM to unclaimed social identities
@@ -31,28 +32,51 @@ export class EscrowTransaction {
31
32
  return Hashing.sha3_256(identity);
32
33
  }
33
34
  /**
34
- * Creates a transaction to send DEM to a social identity escrow
35
+ * Creates a transaction to send DEM to a social identity escrow.
36
+ *
37
+ * P4 dual-input:
38
+ * - `bigint` (preferred, post-v3): OS amount.
39
+ * - `number` (deprecated, v2 callers): DEM amount, auto-converted.
40
+ *
41
+ * Internal carrier in `tx.content.amount` and `gcr_edits[].amount`
42
+ * is bigint OS; the serializerGate (called from `demos.sign`)
43
+ * picks the wire shape per fork status. Sub-DEM precision against
44
+ * a pre-fork node throws `SubDemPrecisionError`.
35
45
  *
36
46
  * @example
37
47
  * ```typescript
48
+ * import { denomination } from "@kynesyslabs/demosdk"
38
49
  * const tx = await EscrowTransaction.sendToIdentity(
39
50
  * demos,
40
51
  * "twitter",
41
52
  * "@bob",
42
- * 100,
53
+ * denomination.demToOs(100), // 100 DEM
43
54
  * { expiryDays: 30, message: "Welcome to Demos!" }
44
55
  * )
45
- * await demos.submitTransaction(tx)
56
+ * await demos.confirm(tx)
46
57
  * ```
47
58
  *
48
59
  * @param demos - Demos SDK instance (must have keypair set)
49
60
  * @param platform - Social platform ("twitter", "github", "telegram")
50
61
  * @param username - Username on that platform
51
- * @param amount - Amount of DEM to send (number)
62
+ * @param amount - DEM `number` (legacy) or OS `bigint` (preferred).
52
63
  * @param options - Optional parameters
53
64
  * @returns Signed transaction ready to submit
54
65
  */
55
66
  static async sendToIdentity(demos, platform, username, amount, options) {
67
+ // P4 commit 3: bigint OS is the canonical internal carrier; the
68
+ // serializerGate (run via demos.sign) emits the right wire shape
69
+ // per the connected node's fork status.
70
+ const { amountOs } = EscrowTransaction.normalizeAmountInput(amount);
71
+ // Sub-DEM precision guard — runs before tx construction so the
72
+ // caller never produces a tx that a pre-fork node will silently
73
+ // truncate. Calls into the cached `getNetworkInfo` fork status.
74
+ // The helper is `private` on Demos but reachable at runtime;
75
+ // cast through `any` to bypass the access modifier (escrow is
76
+ // package-internal — the alternative is to widen Demos's
77
+ // public surface, which we don't want).
78
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
79
+ await demos._assertAmountAcceptableOnTargetNode(amountOs);
56
80
  // Get sender address from demos instance
57
81
  const { publicKey } = await demos.crypto.getIdentity("ed25519");
58
82
  const sender = uint8ArrayToHex(publicKey);
@@ -62,14 +86,25 @@ export class EscrowTransaction {
62
86
  const nonce = await demos.getAddressNonce(sender);
63
87
  // Create empty transaction
64
88
  let tx = structuredClone(skeletons.transaction);
65
- // Build GCREdits
89
+ // Build GCREdits. NOTE: `demos.sign()` calls `GCRGeneration.generate`
90
+ // which currently overwrites `gcr_edits` with edits derived from
91
+ // the tx content; the inline edits here are dead code today
92
+ // (flagged in SPEC_P4 §2.1). Kept type-correct so they still
93
+ // match the (now-widened) `GCREditBalance.amount` type if/when
94
+ // the dead-code path is wired up.
95
+ //
96
+ // P4 commit 3: edits carry bigint OS internally. The
97
+ // serializerGate normalises them to the right wire shape per
98
+ // fork status. The `GCREditBalance.amount` static type is
99
+ // `number | string`; bigints are passed through `unknown` to
100
+ // satisfy TS — the runtime serializer handles all three shapes.
66
101
  const gcrEdits = [
67
102
  // 1. Deduct from sender's balance
68
103
  {
69
104
  type: "balance",
70
105
  operation: "remove",
71
106
  account: sender,
72
- amount: amount,
107
+ amount: amountOs,
73
108
  txhash: "",
74
109
  isRollback: false,
75
110
  },
@@ -82,7 +117,7 @@ export class EscrowTransaction {
82
117
  sender,
83
118
  platform,
84
119
  username,
85
- amount: amount,
120
+ amount: amountOs,
86
121
  expiryDays: options?.expiryDays || 30,
87
122
  message: options?.message,
88
123
  },
@@ -90,11 +125,13 @@ export class EscrowTransaction {
90
125
  isRollback: false,
91
126
  },
92
127
  ];
93
- // Fill transaction content
128
+ // Fill transaction content. Internal carrier is bigint OS; the
129
+ // serializerGate emits the right wire shape (DEM number pre-fork,
130
+ // OS string post-fork) when `demos.sign` hashes.
94
131
  tx.content.from = sender;
95
132
  tx.content.to = escrowAddress;
96
133
  tx.content.nonce = nonce + 1;
97
- tx.content.amount = amount;
134
+ tx.content.amount = amountOs;
98
135
  tx.content.type = "escrow";
99
136
  tx.content.timestamp = Date.now();
100
137
  tx.content.gcr_edits = gcrEdits;
@@ -103,13 +140,57 @@ export class EscrowTransaction {
103
140
  {
104
141
  platform,
105
142
  username,
106
- amount: amount.toString(),
143
+ // The escrow payload's `amount` is a free-form string here;
144
+ // emit canonical OS for forward compatibility with the
145
+ // post-fork node's escrow handler. Pre-fork node tolerates
146
+ // arbitrary strings on this nested field.
147
+ amount: amountOs.toString(),
107
148
  operation: "deposit",
108
149
  },
109
150
  ];
110
151
  // Sign transaction
111
152
  return await demos.sign(tx);
112
153
  }
154
+ /**
155
+ * Normalise a public-API amount input (`number` legacy DEM or
156
+ * `bigint` OS) into both forms. Used at every boundary that needs
157
+ * dual-shape support during the pre-/post-fork rollout.
158
+ *
159
+ * - `number` input: must be a non-negative integer DEM amount;
160
+ * converted to OS via `OS_PER_DEM`. Fractional DEM `number` is
161
+ * rejected — silently flooring (the previous behaviour) discarded
162
+ * up to ~10^9 OS per call. Callers who need sub-DEM precision
163
+ * must pass a `bigint` OS amount (e.g. `denomination.demToOs("1.5")`).
164
+ * - `bigint` input: treated as OS; DEM form is the integer division
165
+ * `amountOs / OS_PER_DEM`. The pre-fork sub-DEM precision rejection
166
+ * lives in `Demos._assertAmountAcceptableOnTargetNode` (called by
167
+ * `sendToIdentity` before this helper runs).
168
+ *
169
+ * @internal Exposed only to keep the migration paths discoverable.
170
+ */
171
+ static normalizeAmountInput(amount) {
172
+ if (typeof amount === "bigint") {
173
+ if (amount < 0n) {
174
+ throw new Error(`[EscrowTransaction] amount must be non-negative, got ${amount}`);
175
+ }
176
+ const amountOs = amount;
177
+ // Sub-DEM precision is allowed at the bigint level — the
178
+ // public API rejection lives in `_assertAmountAcceptableOnTargetNode`,
179
+ // gated on pre-fork node detection. The `amountDem` returned
180
+ // here is integer-truncated; callers that need exact DEM
181
+ // should branch on `amountOs % OS_PER_DEM === 0n` first.
182
+ const amountDem = Number(amountOs / OS_PER_DEM);
183
+ return { amountDem, amountOs };
184
+ }
185
+ if (!Number.isFinite(amount) || amount < 0) {
186
+ throw new Error(`[EscrowTransaction] amount must be a non-negative finite number or bigint, got ${amount}`);
187
+ }
188
+ if (!Number.isInteger(amount)) {
189
+ throw new Error(`[EscrowTransaction] fractional DEM not supported on the number path (got ${amount}); pass a bigint OS amount via denomination.demToOs("${amount}") instead`);
190
+ }
191
+ const amountOs = BigInt(amount) * OS_PER_DEM;
192
+ return { amountDem: amount, amountOs };
193
+ }
113
194
  /**
114
195
  * Creates a transaction to claim escrowed funds
115
196
  *
@@ -1 +1 @@
1
- {"version":3,"file":"EscrowTransaction.js","sourceRoot":"","sources":["../../../src/escrow/EscrowTransaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;EASE;AAIF,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAA;AAGrD;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IAC1B;;;;;;;OAOG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAgB,EAAE,QAAgB;QACtD,gDAAgD;QAChD,MAAM,QAAQ,GAAG,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAA;QACxD,oDAAoD;QACpD,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACrC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,KAAK,CAAC,cAAc,CACvB,KAAY,EACZ,QAA2C,EAC3C,QAAgB,EAChB,MAAc,EACd,OAGC;QAED,yCAAyC;QACzC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QAC/D,MAAM,MAAM,GAAG,eAAe,CAAC,SAAuB,CAAC,CAAA;QAEvD,yBAAyB;QACzB,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAE/D,YAAY;QACZ,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QAEjD,2BAA2B;QAC3B,IAAI,EAAE,GAAG,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QAE/C,iBAAiB;QACjB,MAAM,QAAQ,GAAc;YACxB,kCAAkC;YAClC;gBACI,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,MAAM;gBACf,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,KAAK;aACpB;YAED,uBAAuB;YACvB;gBACI,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,aAAa;gBACtB,IAAI,EAAE;oBACF,MAAM;oBACN,QAAQ;oBACR,QAAQ;oBACR,MAAM,EAAE,MAAM;oBACd,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,EAAE;oBACrC,OAAO,EAAE,OAAO,EAAE,OAAO;iBAC5B;gBACD,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,KAAK;aACpB;SACJ,CAAA;QAED,2BAA2B;QAC3B,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,MAAM,CAAA;QACxB,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,aAAa,CAAA;QAC7B,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAA;QAC5B,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;QAC1B,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAA;QAC1B,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACjC,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAA;QAC/B,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG;YACd,QAAQ;YACR;gBACI,QAAQ;gBACR,QAAQ;gBACR,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;gBACzB,SAAS,EAAE,SAAS;aACvB;SACJ,CAAA;QAED,mBAAmB;QACnB,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC/B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,CACpB,KAAY,EACZ,QAA2C,EAC3C,QAAgB;QAEhB,2CAA2C;QAC3C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QAC/D,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAuB,CAAC,CAAA;QAEzD,yBAAyB;QACzB,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAE/D,YAAY;QACZ,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;QAEnD,2BAA2B;QAC3B,IAAI,EAAE,GAAG,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QAE/C,iBAAiB;QACjB,MAAM,QAAQ,GAAc;YACxB,gEAAgE;YAChE;gBACI,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,OAAO;gBAClB,OAAO,EAAE,aAAa;gBACtB,IAAI,EAAE;oBACF,QAAQ;oBACR,QAAQ;oBACR,QAAQ;iBACX;gBACD,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,KAAK;aACpB;YAED,+BAA+B;YAC/B,8EAA8E;YAC9E;gBACI,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,QAAQ;gBACjB,MAAM,EAAE,CAAC,EAAE,iDAAiD;gBAC5D,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,KAAK;aACpB;SACJ,CAAA;QAED,2BAA2B;QAC3B,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAA;QAC1B,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,aAAa,CAAA;QAC7B,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAA;QAC5B,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA,CAAE,wBAAwB;QAC/C,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAA;QAC1B,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACjC,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAA;QAC/B,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG;YACd,QAAQ;YACR;gBACI,QAAQ;gBACR,QAAQ;gBACR,SAAS,EAAE,OAAO;aACrB;SACJ,CAAA;QAED,mBAAmB;QACnB,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC/B,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAC5B,KAAY,EACZ,QAA2C,EAC3C,QAAgB;QAEhB,2CAA2C;QAC3C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QAC/D,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAuB,CAAC,CAAA;QAEzD,yBAAyB;QACzB,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAE/D,YAAY;QACZ,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;QAEnD,2BAA2B;QAC3B,IAAI,EAAE,GAAG,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QAE/C,iBAAiB;QACjB,MAAM,QAAQ,GAAc;YACxB,8DAA8D;YAC9D;gBACI,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,aAAa;gBACtB,IAAI,EAAE;oBACF,QAAQ;oBACR,QAAQ;oBACR,QAAQ;iBACX;gBACD,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,KAAK;aACpB;YAED,sCAAsC;YACtC;gBACI,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,QAAQ;gBACjB,MAAM,EAAE,CAAC,EAAE,iDAAiD;gBAC5D,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,KAAK;aACpB;SACJ,CAAA;QAED,2BAA2B;QAC3B,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAA;QAC1B,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,aAAa,CAAA;QAC7B,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAA;QAC5B,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA,CAAE,wBAAwB;QAC/C,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAA;QAC1B,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACjC,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAA;QAC/B,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG;YACd,QAAQ;YACR;gBACI,QAAQ;gBACR,QAAQ;gBACR,SAAS,EAAE,QAAQ;aACtB;SACJ,CAAA;QAED,mBAAmB;QACnB,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC/B,CAAC;CACJ"}
1
+ {"version":3,"file":"EscrowTransaction.js","sourceRoot":"","sources":["../../../src/escrow/EscrowTransaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;EASE;AAIF,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IAC1B;;;;;;;OAOG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAgB,EAAE,QAAgB;QACtD,gDAAgD;QAChD,MAAM,QAAQ,GAAG,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAA;QACxD,oDAAoD;QACpD,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACrC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,MAAM,CAAC,KAAK,CAAC,cAAc,CACvB,KAAY,EACZ,QAA2C,EAC3C,QAAgB,EAChB,MAAuB,EACvB,OAGC;QAED,gEAAgE;QAChE,iEAAiE;QACjE,wCAAwC;QACxC,MAAM,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;QAEnE,+DAA+D;QAC/D,gEAAgE;QAChE,gEAAgE;QAChE,6DAA6D;QAC7D,8DAA8D;QAC9D,yDAAyD;QACzD,wCAAwC;QACxC,8DAA8D;QAC9D,MAAO,KAAa,CAAC,mCAAmC,CAAC,QAAQ,CAAC,CAAA;QAElE,yCAAyC;QACzC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QAC/D,MAAM,MAAM,GAAG,eAAe,CAAC,SAAuB,CAAC,CAAA;QAEvD,yBAAyB;QACzB,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAE/D,YAAY;QACZ,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QAEjD,2BAA2B;QAC3B,IAAI,EAAE,GAAG,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QAE/C,sEAAsE;QACtE,iEAAiE;QACjE,4DAA4D;QAC5D,6DAA6D;QAC7D,+DAA+D;QAC/D,kCAAkC;QAClC,EAAE;QACF,qDAAqD;QACrD,6DAA6D;QAC7D,0DAA0D;QAC1D,6DAA6D;QAC7D,gEAAgE;QAChE,MAAM,QAAQ,GAAc;YACxB,kCAAkC;YAClC;gBACI,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,MAAM;gBACf,MAAM,EAAE,QAA6B;gBACrC,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,KAAK;aACpB;YAED,uBAAuB;YACvB;gBACI,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,aAAa;gBACtB,IAAI,EAAE;oBACF,MAAM;oBACN,QAAQ;oBACR,QAAQ;oBACR,MAAM,EAAE,QAA6B;oBACrC,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,EAAE;oBACrC,OAAO,EAAE,OAAO,EAAE,OAAO;iBAC5B;gBACD,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,KAAK;aACpB;SACJ,CAAA;QAED,+DAA+D;QAC/D,kEAAkE;QAClE,iDAAiD;QACjD,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,MAAM,CAAA;QACxB,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,aAAa,CAAA;QAC7B,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAA;QAC5B,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,QAA6B,CAAA;QACjD,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAA;QAC1B,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACjC,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAA;QAC/B,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG;YACd,QAAQ;YACR;gBACI,QAAQ;gBACR,QAAQ;gBACR,4DAA4D;gBAC5D,uDAAuD;gBACvD,2DAA2D;gBAC3D,0CAA0C;gBAC1C,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE;gBAC3B,SAAS,EAAE,SAAS;aACvB;SACJ,CAAA;QAED,mBAAmB;QACnB,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC/B,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,oBAAoB,CACvB,MAAuB;QAEvB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CACX,wDAAwD,MAAM,EAAE,CACnE,CAAA;YACL,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,CAAA;YACvB,yDAAyD;YACzD,uEAAuE;YACvE,6DAA6D;YAC7D,yDAAyD;YACzD,yDAAyD;YACzD,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAA;YAC/C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAA;QAClC,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CACX,kFAAkF,MAAM,EAAE,CAC7F,CAAA;QACL,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACX,4EAA4E,MAAM,wDAAwD,MAAM,YAAY,CAC/J,CAAA;QACL,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,CAAA;QAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;IAC1C,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,CACpB,KAAY,EACZ,QAA2C,EAC3C,QAAgB;QAEhB,2CAA2C;QAC3C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QAC/D,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAuB,CAAC,CAAA;QAEzD,yBAAyB;QACzB,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAE/D,YAAY;QACZ,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;QAEnD,2BAA2B;QAC3B,IAAI,EAAE,GAAG,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QAE/C,iBAAiB;QACjB,MAAM,QAAQ,GAAc;YACxB,gEAAgE;YAChE;gBACI,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,OAAO;gBAClB,OAAO,EAAE,aAAa;gBACtB,IAAI,EAAE;oBACF,QAAQ;oBACR,QAAQ;oBACR,QAAQ;iBACX;gBACD,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,KAAK;aACpB;YAED,+BAA+B;YAC/B,8EAA8E;YAC9E;gBACI,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,QAAQ;gBACjB,MAAM,EAAE,CAAC,EAAE,iDAAiD;gBAC5D,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,KAAK;aACpB;SACJ,CAAA;QAED,2BAA2B;QAC3B,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAA;QAC1B,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,aAAa,CAAA;QAC7B,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAA;QAC5B,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA,CAAE,wBAAwB;QAC/C,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAA;QAC1B,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACjC,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAA;QAC/B,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG;YACd,QAAQ;YACR;gBACI,QAAQ;gBACR,QAAQ;gBACR,SAAS,EAAE,OAAO;aACrB;SACJ,CAAA;QAED,mBAAmB;QACnB,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC/B,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAC5B,KAAY,EACZ,QAA2C,EAC3C,QAAgB;QAEhB,2CAA2C;QAC3C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QAC/D,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAuB,CAAC,CAAA;QAEzD,yBAAyB;QACzB,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAE/D,YAAY;QACZ,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;QAEnD,2BAA2B;QAC3B,IAAI,EAAE,GAAG,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QAE/C,iBAAiB;QACjB,MAAM,QAAQ,GAAc;YACxB,8DAA8D;YAC9D;gBACI,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,aAAa;gBACtB,IAAI,EAAE;oBACF,QAAQ;oBACR,QAAQ;oBACR,QAAQ;iBACX;gBACD,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,KAAK;aACpB;YAED,sCAAsC;YACtC;gBACI,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,QAAQ;gBACjB,MAAM,EAAE,CAAC,EAAE,iDAAiD;gBAC5D,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,KAAK;aACpB;SACJ,CAAA;QAED,2BAA2B;QAC3B,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAA;QAC1B,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,aAAa,CAAA;QAC7B,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAA;QAC5B,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA,CAAE,wBAAwB;QAC/C,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAA;QAC1B,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACjC,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAA;QAC/B,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG;YACd,QAAQ;YACR;gBACI,QAAQ;gBACR,QAAQ;gBACR,SAAS,EAAE,QAAQ;aACtB;SACJ,CAAA;QAED,mBAAmB;QACnB,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC/B,CAAC;CACJ"}
@@ -403,7 +403,10 @@ export class L2PSMessagingPeer {
403
403
  this.connectionStateHandlers.forEach(h => h(state));
404
404
  }
405
405
  generateRequestId() {
406
- return `req_${Date.now()}_${Math.random().toString(36).substring(2, 11)}`;
406
+ const buf = new Uint8Array(5);
407
+ crypto.getRandomValues(buf);
408
+ const rand = Array.from(buf, b => b.toString(16).padStart(2, "0")).join("");
409
+ return `req_${Date.now()}_${rand}`;
407
410
  }
408
411
  }
409
412
  //# sourceMappingURL=L2PSMessagingPeer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"L2PSMessagingPeer.js","sourceRoot":"","sources":["../../../src/instant_messaging/L2PSMessagingPeer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"L2PSMessagingPeer.js","sourceRoot":"","sources":["../../../src/instant_messaging/L2PSMessagingPeer.ts"],"names":[],"mappings":"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"}