bitbadgesjs-sdk 0.1.86 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,534 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.BalanceArray = exports.handleDuplicateBadgeIdsInBalances = exports.sortAndMergeBalances = exports.cleanBalances = exports.sortBalancesByAmount = exports.getBalancesForIds = exports.subtractBalances = exports.subtractBalance = exports.addBalances = exports.addBalance = exports.updateBalances = exports.areBalancesEqual = exports.addBalancesAndCheckIfExceedsThreshold = exports.doBalancesExceedThreshold = exports.filterZeroBalances = exports.getBalancesForTime = exports.getBalancesForId = exports.getBalanceForIdAndTime = exports.applyIncrementsToBalances = exports.Balance = void 0;
27
+ const base_1 = require("../../common/base");
28
+ const proto = __importStar(require("../../proto"));
29
+ const addressLists_1 = require("./addressLists");
30
+ const math_1 = require("../common/math");
31
+ const overlaps_1 = require("./overlaps");
32
+ const string_numbers_1 = require("../common/string-numbers");
33
+ const uintRanges_1 = require("./uintRanges");
34
+ const typed_arrays_1 = require("../../common/typed-arrays");
35
+ class Balance extends base_1.BaseNumberTypeClass {
36
+ amount;
37
+ badgeIds;
38
+ ownershipTimes;
39
+ constructor(balance) {
40
+ super();
41
+ this.amount = balance.amount;
42
+ this.badgeIds = uintRanges_1.UintRangeArray.From(balance.badgeIds);
43
+ this.ownershipTimes = uintRanges_1.UintRangeArray.From(balance.ownershipTimes);
44
+ }
45
+ getNumberFieldNames() {
46
+ return ['amount'];
47
+ }
48
+ convert(convertFunction) {
49
+ return new Balance((0, base_1.deepCopyPrimitives)({
50
+ amount: convertFunction(this.amount),
51
+ badgeIds: this.badgeIds.map((b) => b.convert(convertFunction)),
52
+ ownershipTimes: this.ownershipTimes.map((b) => b.convert(convertFunction))
53
+ }));
54
+ }
55
+ toProto() {
56
+ return new proto.badges.Balance(this.convert(string_numbers_1.Stringify));
57
+ }
58
+ static fromJson(jsonValue, convertFunction, options) {
59
+ return Balance.fromProto(proto.badges.Balance.fromJson(jsonValue, options), convertFunction);
60
+ }
61
+ static fromJsonString(jsonString, convertFunction, options) {
62
+ return Balance.fromProto(proto.badges.Balance.fromJsonString(jsonString, options), convertFunction);
63
+ }
64
+ static fromProto(item, convertFunction) {
65
+ return new Balance({
66
+ amount: convertFunction(BigInt(item.amount)),
67
+ badgeIds: item.badgeIds.map((b) => uintRanges_1.UintRange.fromProto(b, convertFunction)),
68
+ ownershipTimes: item.ownershipTimes.map((b) => uintRanges_1.UintRange.fromProto(b, convertFunction))
69
+ });
70
+ }
71
+ toArray() {
72
+ return BalanceArray.From([this.clone()]);
73
+ }
74
+ }
75
+ exports.Balance = Balance;
76
+ const applyIncrementsToBalances = (startBalances, incrementBadgeIdsBy, incrementOwnershipTimesBy, numIncrements) => {
77
+ let balancesToReturn = BalanceArray.From(startBalances).clone();
78
+ balancesToReturn = BalanceArray.From(startBalances.map((x) => {
79
+ const badgeIdsIncrement = (0, math_1.castNumberType)(incrementBadgeIdsBy, BigInt(incrementBadgeIdsBy) * BigInt(numIncrements));
80
+ const ownershipTimesIncrement = (0, math_1.castNumberType)(incrementOwnershipTimesBy, BigInt(incrementOwnershipTimesBy) * BigInt(numIncrements));
81
+ return new Balance({
82
+ ...x,
83
+ badgeIds: x.badgeIds.map((y) => {
84
+ return {
85
+ start: (0, math_1.safeAdd)(y.start, badgeIdsIncrement),
86
+ end: (0, math_1.safeAdd)(y.end, badgeIdsIncrement)
87
+ };
88
+ }),
89
+ ownershipTimes: x.ownershipTimes.map((y) => {
90
+ return {
91
+ start: (0, math_1.safeAdd)(y.start, ownershipTimesIncrement),
92
+ end: (0, math_1.safeAdd)(y.end, ownershipTimesIncrement)
93
+ };
94
+ })
95
+ });
96
+ }));
97
+ return balancesToReturn;
98
+ };
99
+ exports.applyIncrementsToBalances = applyIncrementsToBalances;
100
+ const getBalanceForIdAndTime = (id, time, balances) => {
101
+ const convertFunction = (0, base_1.getConverterFunction)(id);
102
+ let amount = 0n;
103
+ for (const balance of BalanceArray.From(balances)) {
104
+ const found = balance.badgeIds.searchIfExists(id);
105
+ const foundTime = balance.ownershipTimes.searchIfExists(time);
106
+ if (found && foundTime) {
107
+ amount += BigInt(balance.amount);
108
+ }
109
+ }
110
+ return convertFunction(amount);
111
+ };
112
+ exports.getBalanceForIdAndTime = getBalanceForIdAndTime;
113
+ function getBalancesForId(badgeId, balances) {
114
+ const matchingBalances = BalanceArray.From([]);
115
+ for (const balance of BalanceArray.From(balances)) {
116
+ if (balance.badgeIds.searchIfExists(badgeId)) {
117
+ matchingBalances.push(new Balance({
118
+ ...balance,
119
+ badgeIds: [{ start: badgeId, end: badgeId }]
120
+ }));
121
+ }
122
+ }
123
+ return matchingBalances.clone();
124
+ }
125
+ exports.getBalancesForId = getBalancesForId;
126
+ function getBalancesForTime(time, balances) {
127
+ const matchingBalances = BalanceArray.From([]);
128
+ for (const balance of BalanceArray.From(balances)) {
129
+ const found = balance.ownershipTimes.searchIfExists(time);
130
+ if (found) {
131
+ matchingBalances.push(balance);
132
+ }
133
+ }
134
+ return matchingBalances.clone();
135
+ }
136
+ exports.getBalancesForTime = getBalancesForTime;
137
+ function filterZeroBalances(balances) {
138
+ const newBalances = BalanceArray.From([]);
139
+ const balanceArr = BalanceArray.From(balances);
140
+ for (let i = 0; i < balanceArr.length; i++) {
141
+ const balance = balanceArr[i];
142
+ if (BigInt(balance.amount) > 0 && balance.badgeIds.length > 0 && balance.ownershipTimes.length > 0) {
143
+ newBalances.push(balance);
144
+ }
145
+ }
146
+ return newBalances;
147
+ }
148
+ exports.filterZeroBalances = filterZeroBalances;
149
+ function doBalancesExceedThreshold(balances, thresholdBalances) {
150
+ const thresholdCopy = BalanceArray.From(thresholdBalances).clone();
151
+ try {
152
+ subtractBalances(balances, thresholdCopy);
153
+ }
154
+ catch (e) {
155
+ return true;
156
+ }
157
+ return false;
158
+ }
159
+ exports.doBalancesExceedThreshold = doBalancesExceedThreshold;
160
+ function addBalancesAndCheckIfExceedsThreshold(currTally, toAdd, threshold) {
161
+ currTally = addBalances(toAdd, currTally);
162
+ const doExceed = doBalancesExceedThreshold(currTally, threshold);
163
+ if (doExceed) {
164
+ return true;
165
+ }
166
+ return false;
167
+ }
168
+ exports.addBalancesAndCheckIfExceedsThreshold = addBalancesAndCheckIfExceedsThreshold;
169
+ function areBalancesEqual(expected, actual, checkZeroBalances) {
170
+ expected = BalanceArray.From(expected).clone();
171
+ actual = BalanceArray.From(actual).clone();
172
+ if (!checkZeroBalances) {
173
+ expected = filterZeroBalances(expected);
174
+ actual = filterZeroBalances(actual);
175
+ }
176
+ expected = handleDuplicateBadgeIdsInBalances(expected);
177
+ actual = handleDuplicateBadgeIdsInBalances(actual);
178
+ try {
179
+ actual = subtractBalances(expected, actual, false);
180
+ }
181
+ catch (e) {
182
+ return false;
183
+ }
184
+ if (actual.length !== 0) {
185
+ return false;
186
+ }
187
+ return true;
188
+ }
189
+ exports.areBalancesEqual = areBalancesEqual;
190
+ function updateBalances(newBalance, balances) {
191
+ let balanceArr = BalanceArray.From(balances).clone();
192
+ balanceArr = deleteBalances(newBalance.badgeIds, newBalance.ownershipTimes, balanceArr);
193
+ balanceArr = setBalance(newBalance, balanceArr);
194
+ return balanceArr;
195
+ }
196
+ exports.updateBalances = updateBalances;
197
+ function getConverterFunctionForBalances(balance) {
198
+ if (Array.isArray(balance) && balance.length === 0) {
199
+ throw new Error('invalid balance');
200
+ }
201
+ const balanceToCheck = Array.isArray(balance) ? balance[0] : balance;
202
+ return (0, base_1.getConverterFunction)(balanceToCheck.amount);
203
+ }
204
+ function addBalance(existingBalances, balanceToAdd) {
205
+ const currBalances = getBalancesForIds(balanceToAdd.badgeIds, balanceToAdd.ownershipTimes, existingBalances);
206
+ let existing = BalanceArray.From(existingBalances).clone();
207
+ existing = deleteBalances(balanceToAdd.badgeIds, balanceToAdd.ownershipTimes, existing);
208
+ for (const balance of currBalances) {
209
+ balance.amount = (0, math_1.safeAdd)(balance.amount, balanceToAdd.amount);
210
+ existing = setBalance(balance, existing);
211
+ }
212
+ return existing;
213
+ }
214
+ exports.addBalance = addBalance;
215
+ function addBalances(balancesToAdd, balances) {
216
+ let balancesArr = BalanceArray.From(balances).clone();
217
+ for (const balance of balancesToAdd) {
218
+ balancesArr = addBalance(balancesArr, balance);
219
+ }
220
+ return balancesArr;
221
+ }
222
+ exports.addBalances = addBalances;
223
+ function subtractBalance(balances, balanceToRemove, allowUnderflow) {
224
+ const currBalances = getBalancesForIds(balanceToRemove.badgeIds, balanceToRemove.ownershipTimes, balances);
225
+ let balancesArr = BalanceArray.From(balances).clone();
226
+ balancesArr = deleteBalances(balanceToRemove.badgeIds, balanceToRemove.ownershipTimes, balancesArr);
227
+ for (const currBalanceObj of currBalances) {
228
+ currBalanceObj.amount = (0, math_1.safeSubtract)(currBalanceObj.amount, balanceToRemove.amount, allowUnderflow);
229
+ balancesArr = setBalance(currBalanceObj, balancesArr);
230
+ }
231
+ return balancesArr;
232
+ }
233
+ exports.subtractBalance = subtractBalance;
234
+ function subtractBalances(balancesToSubtract, balances, allowUnderflow) {
235
+ let newBalances = BalanceArray.From(balances).clone();
236
+ for (const balance of balancesToSubtract) {
237
+ newBalances = subtractBalance(newBalances, balance, allowUnderflow);
238
+ }
239
+ return newBalances;
240
+ }
241
+ exports.subtractBalances = subtractBalances;
242
+ function setBalance(newBalance, balances) {
243
+ let newBalances = BalanceArray.From(balances).clone();
244
+ if (newBalance.amount === 0n) {
245
+ return newBalances;
246
+ }
247
+ newBalances.push(newBalance);
248
+ newBalances = cleanBalances(newBalances);
249
+ newBalances = sortBalancesByAmount(newBalances);
250
+ return newBalances;
251
+ }
252
+ function getBalancesForIds(idRanges, times, balances) {
253
+ if (idRanges.length === 0) {
254
+ throw new Error('invalid idRanges');
255
+ }
256
+ const convertFunction = (0, base_1.getConverterFunction)(idRanges[0].start);
257
+ const fetchedBalances = BalanceArray.From([]);
258
+ const currPermissionDetails = [];
259
+ for (const balanceObj of balances) {
260
+ for (const currRange of balanceObj.badgeIds) {
261
+ for (const currTime of balanceObj.ownershipTimes) {
262
+ currPermissionDetails.push({
263
+ badgeId: new uintRanges_1.UintRange(currRange).convert(string_numbers_1.BigIntify),
264
+ ownershipTime: new uintRanges_1.UintRange(currTime).convert(string_numbers_1.BigIntify),
265
+ transferTime: uintRanges_1.UintRange.FullRange(),
266
+ timelineTime: uintRanges_1.UintRange.FullRange(),
267
+ toList: addressLists_1.AddressList.AllAddresses(),
268
+ fromList: addressLists_1.AddressList.AllAddresses(),
269
+ initiatedByList: addressLists_1.AddressList.AllAddresses(),
270
+ approvalIdList: addressLists_1.AddressList.AllAddresses(),
271
+ amountTrackerIdList: addressLists_1.AddressList.AllAddresses(),
272
+ challengeTrackerIdList: addressLists_1.AddressList.AllAddresses(),
273
+ arbitraryValue: balanceObj.amount,
274
+ permanentlyPermittedTimes: uintRanges_1.UintRangeArray.From([]),
275
+ permanentlyForbiddenTimes: uintRanges_1.UintRangeArray.From([])
276
+ });
277
+ }
278
+ }
279
+ }
280
+ const toFetchPermissionDetails = [];
281
+ for (const rangeToFetch of idRanges) {
282
+ for (const timeToFetch of times) {
283
+ toFetchPermissionDetails.push({
284
+ badgeId: new uintRanges_1.UintRange(rangeToFetch).convert(string_numbers_1.BigIntify),
285
+ ownershipTime: new uintRanges_1.UintRange(timeToFetch).convert(string_numbers_1.BigIntify),
286
+ transferTime: uintRanges_1.UintRange.FullRange(),
287
+ timelineTime: uintRanges_1.UintRange.FullRange(),
288
+ toList: addressLists_1.AddressList.AllAddresses(),
289
+ fromList: addressLists_1.AddressList.AllAddresses(),
290
+ initiatedByList: addressLists_1.AddressList.AllAddresses(),
291
+ approvalIdList: addressLists_1.AddressList.AllAddresses(),
292
+ amountTrackerIdList: addressLists_1.AddressList.AllAddresses(),
293
+ challengeTrackerIdList: addressLists_1.AddressList.AllAddresses(),
294
+ permanentlyPermittedTimes: uintRanges_1.UintRangeArray.From([]),
295
+ permanentlyForbiddenTimes: uintRanges_1.UintRangeArray.From([]),
296
+ arbitraryValue: 0n
297
+ });
298
+ }
299
+ }
300
+ const [overlaps, , inSecondButNotFirst] = (0, overlaps_1.getOverlapsAndNonOverlaps)(currPermissionDetails, toFetchPermissionDetails);
301
+ for (const overlapObject of overlaps) {
302
+ const overlap = overlapObject.overlap;
303
+ const amount = BigInt(overlapObject.firstDetails.arbitraryValue);
304
+ fetchedBalances.push(new Balance({
305
+ amount: amount,
306
+ badgeIds: [overlap.badgeId],
307
+ ownershipTimes: [overlap.ownershipTime]
308
+ }));
309
+ }
310
+ for (const detail of inSecondButNotFirst) {
311
+ fetchedBalances.push(new Balance({
312
+ amount: 0n,
313
+ badgeIds: [detail.badgeId],
314
+ ownershipTimes: [detail.ownershipTime]
315
+ }));
316
+ }
317
+ return fetchedBalances.convert(convertFunction);
318
+ }
319
+ exports.getBalancesForIds = getBalancesForIds;
320
+ function deleteBalances(rangesToDelete, timesToDelete, balances) {
321
+ if (balances.length === 0) {
322
+ return BalanceArray.From([]);
323
+ }
324
+ const convertFunction = getConverterFunctionForBalances(balances);
325
+ const newBalances = BalanceArray.From([]);
326
+ for (const balanceObj of balances) {
327
+ const currPermissionDetails = [];
328
+ for (const currRange of balanceObj.badgeIds) {
329
+ for (const currTime of balanceObj.ownershipTimes) {
330
+ currPermissionDetails.push({
331
+ badgeId: new uintRanges_1.UintRange(currRange).convert(string_numbers_1.BigIntify),
332
+ ownershipTime: new uintRanges_1.UintRange(currTime).convert(string_numbers_1.BigIntify),
333
+ transferTime: uintRanges_1.UintRange.FullRange(),
334
+ timelineTime: uintRanges_1.UintRange.FullRange(),
335
+ toList: addressLists_1.AddressList.AllAddresses(),
336
+ fromList: addressLists_1.AddressList.AllAddresses(),
337
+ initiatedByList: addressLists_1.AddressList.AllAddresses(),
338
+ approvalIdList: addressLists_1.AddressList.AllAddresses(),
339
+ amountTrackerIdList: addressLists_1.AddressList.AllAddresses(),
340
+ challengeTrackerIdList: addressLists_1.AddressList.AllAddresses(),
341
+ permanentlyPermittedTimes: uintRanges_1.UintRangeArray.From([]),
342
+ permanentlyForbiddenTimes: uintRanges_1.UintRangeArray.From([]),
343
+ arbitraryValue: 0n
344
+ });
345
+ }
346
+ }
347
+ const toDeletePermissionDetails = [];
348
+ for (const rangeToDelete of rangesToDelete) {
349
+ for (const timeToDelete of timesToDelete) {
350
+ toDeletePermissionDetails.push({
351
+ badgeId: new uintRanges_1.UintRange(rangeToDelete).convert(string_numbers_1.BigIntify),
352
+ ownershipTime: new uintRanges_1.UintRange(timeToDelete).convert(string_numbers_1.BigIntify),
353
+ transferTime: uintRanges_1.UintRange.FullRange(),
354
+ timelineTime: uintRanges_1.UintRange.FullRange(),
355
+ toList: addressLists_1.AddressList.AllAddresses(),
356
+ fromList: addressLists_1.AddressList.AllAddresses(),
357
+ initiatedByList: addressLists_1.AddressList.AllAddresses(),
358
+ approvalIdList: addressLists_1.AddressList.AllAddresses(),
359
+ amountTrackerIdList: addressLists_1.AddressList.AllAddresses(),
360
+ challengeTrackerIdList: addressLists_1.AddressList.AllAddresses(),
361
+ permanentlyPermittedTimes: uintRanges_1.UintRangeArray.From([]),
362
+ permanentlyForbiddenTimes: uintRanges_1.UintRangeArray.From([]),
363
+ arbitraryValue: 0n
364
+ });
365
+ }
366
+ }
367
+ const [, inOldButNotNew] = (0, overlaps_1.getOverlapsAndNonOverlaps)(currPermissionDetails, toDeletePermissionDetails);
368
+ for (const remainingBalance of inOldButNotNew) {
369
+ newBalances.push(new Balance({
370
+ amount: BigInt(balanceObj.amount),
371
+ badgeIds: [remainingBalance.badgeId],
372
+ ownershipTimes: [remainingBalance.ownershipTime]
373
+ }));
374
+ }
375
+ }
376
+ return BalanceArray.From(newBalances.map((x) => x.convert(convertFunction)));
377
+ }
378
+ function sortBalancesByAmount(balances) {
379
+ return BalanceArray.From(balances.sort((a, b) => {
380
+ return a.amount > b.amount ? 1 : -1;
381
+ }));
382
+ }
383
+ exports.sortBalancesByAmount = sortBalancesByAmount;
384
+ function cleanBalances(balancesArr) {
385
+ let balances = BalanceArray.From(balancesArr);
386
+ for (const balance of balances) {
387
+ balance.badgeIds.sortAndMerge();
388
+ balance.ownershipTimes.sortAndMerge();
389
+ }
390
+ balances = sortBalancesByAmount(balances);
391
+ const newBalances = BalanceArray.From([]);
392
+ for (let i = 0; i < balances.length; i++) {
393
+ const currBalance = balances[i];
394
+ let merged = false;
395
+ for (let j = 0; j < newBalances.length; j++) {
396
+ const newBalance = newBalances[j];
397
+ if (currBalance.amount == newBalance.amount) {
398
+ if (JSON.stringify(currBalance.badgeIds) == JSON.stringify(newBalance.badgeIds)) {
399
+ newBalance.ownershipTimes.push(...currBalance.ownershipTimes);
400
+ newBalance.ownershipTimes.sortAndMerge();
401
+ merged = true;
402
+ break;
403
+ }
404
+ else if (JSON.stringify(currBalance.ownershipTimes) == JSON.stringify(newBalance.ownershipTimes)) {
405
+ newBalance.badgeIds.push(...currBalance.badgeIds);
406
+ newBalance.badgeIds.sortAndMerge();
407
+ merged = true;
408
+ break;
409
+ }
410
+ }
411
+ }
412
+ if (!merged) {
413
+ newBalances.push(currBalance);
414
+ }
415
+ }
416
+ return newBalances;
417
+ }
418
+ exports.cleanBalances = cleanBalances;
419
+ function sortAndMergeBalances(balances) {
420
+ balances = handleDuplicateBadgeIdsInBalances(balances);
421
+ balances = cleanBalances(balances);
422
+ balances = sortBalancesByAmount(balances);
423
+ return balances;
424
+ }
425
+ exports.sortAndMergeBalances = sortAndMergeBalances;
426
+ function handleDuplicateBadgeIdsInBalances(balances) {
427
+ let newBalances = BalanceArray.From([]);
428
+ for (const balance of balances) {
429
+ for (const badgeId of balance.badgeIds) {
430
+ for (const time of balance.ownershipTimes) {
431
+ newBalances.addBalance({
432
+ amount: balance.amount,
433
+ badgeIds: [badgeId],
434
+ ownershipTimes: [time]
435
+ });
436
+ }
437
+ }
438
+ }
439
+ return newBalances;
440
+ }
441
+ exports.handleDuplicateBadgeIdsInBalances = handleDuplicateBadgeIdsInBalances;
442
+ class BalanceArray extends typed_arrays_1.BaseTypedArray {
443
+ static From(arr) {
444
+ const wrappedArr = Array.isArray(arr) ? arr : [arr];
445
+ return new BalanceArray(...wrappedArr.map((x) => new Balance(x)));
446
+ }
447
+ push(...items) {
448
+ return super.push(...items.map((i) => new Balance(i)));
449
+ }
450
+ fill(value, start, end) {
451
+ return super.fill(new Balance(value), start, end);
452
+ }
453
+ with(index, value) {
454
+ return super.with(index, new Balance(value));
455
+ }
456
+ unshift(...items) {
457
+ return super.unshift(...items.map((i) => new Balance(i)));
458
+ }
459
+ convert(convertFunction) {
460
+ return BalanceArray.From(this.map((x) => x.convert(convertFunction)));
461
+ }
462
+ clone() {
463
+ return BalanceArray.From(this.map((x) => x.clone()));
464
+ }
465
+ getBalanceForIdAndTime(badgeId, ownedTime) {
466
+ return (0, exports.getBalanceForIdAndTime)(badgeId, ownedTime, this);
467
+ }
468
+ getBalancesForId(badgeId) {
469
+ return getBalancesForId(badgeId, this);
470
+ }
471
+ getBalancesForTime(ownedTime) {
472
+ return getBalancesForTime(ownedTime, this);
473
+ }
474
+ filterZeroBalances() {
475
+ const newBalances = this.filter((x) => BigInt(x.amount) !== BigInt(0) && x.badgeIds.length > 0 && x.ownershipTimes.length > 0);
476
+ this.length = 0;
477
+ this.push(...newBalances);
478
+ return this;
479
+ }
480
+ subsetOf(threshold) {
481
+ return doBalancesExceedThreshold(this.map((x) => x.convert(string_numbers_1.BigIntify)), BalanceArray.From(threshold).map((x) => x.convert(string_numbers_1.BigIntify)));
482
+ }
483
+ equalBalances(other, checkZeroBalances = false) {
484
+ return areBalancesEqual(this.map((x) => x.convert(string_numbers_1.BigIntify)), BalanceArray.From(other).map((x) => x.convert(string_numbers_1.BigIntify)), checkZeroBalances);
485
+ }
486
+ updateBalances(newBalance) {
487
+ const newBalances = updateBalances(newBalance, this);
488
+ this.length = 0;
489
+ this.push(...newBalances);
490
+ return this;
491
+ }
492
+ addBalances(balancesToAdd) {
493
+ const newBalances = addBalances(balancesToAdd, this);
494
+ this.length = 0;
495
+ this.push(...newBalances);
496
+ return this;
497
+ }
498
+ addBalance(balanceToAdd) {
499
+ const newBalances = addBalance(this, balanceToAdd);
500
+ this.length = 0;
501
+ this.push(...newBalances);
502
+ return this;
503
+ }
504
+ subtractBalances(balancesToSubtract, allowNegatives = false) {
505
+ const newBalances = subtractBalances(balancesToSubtract, this, allowNegatives);
506
+ this.length = 0;
507
+ this.push(...newBalances);
508
+ return this;
509
+ }
510
+ subtractBalance(balanceToSubtract, allowUnderflow) {
511
+ return this.subtractBalances([balanceToSubtract], allowUnderflow);
512
+ }
513
+ sortBalancesByAmount() {
514
+ const newBalances = sortBalancesByAmount(this);
515
+ this.length = 0;
516
+ this.push(...newBalances);
517
+ return this;
518
+ }
519
+ applyIncrements(incrementBadgeIdsBy, incrementOwnershipTimesBy, numIncrements) {
520
+ const newBalances = (0, exports.applyIncrementsToBalances)(this, incrementBadgeIdsBy, incrementOwnershipTimesBy, numIncrements);
521
+ this.length = 0;
522
+ this.push(...newBalances);
523
+ return this;
524
+ }
525
+ getAllBadgeIds() {
526
+ const badgeIds = new uintRanges_1.UintRangeArray();
527
+ for (const balance of this) {
528
+ badgeIds.push(...balance.badgeIds);
529
+ }
530
+ return badgeIds.clone().sortAndMerge();
531
+ }
532
+ }
533
+ exports.BalanceArray = BalanceArray;
534
+ //# sourceMappingURL=balances.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balances.js","sourceRoot":"","sources":["../../../src/core/balances.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ import { AddressList } from './addressLists';
2
+ import { UintRange, UintRangeArray } from './uintRanges';
3
+ export interface UniversalPermission {
4
+ badgeIds: UintRangeArray<bigint>;
5
+ timelineTimes: UintRangeArray<bigint>;
6
+ transferTimes: UintRangeArray<bigint>;
7
+ ownershipTimes: UintRangeArray<bigint>;
8
+ toList: AddressList;
9
+ fromList: AddressList;
10
+ initiatedByList: AddressList;
11
+ approvalIdList: AddressList;
12
+ amountTrackerIdList: AddressList;
13
+ challengeTrackerIdList: AddressList;
14
+ permanentlyPermittedTimes: UintRangeArray<bigint>;
15
+ permanentlyForbiddenTimes: UintRangeArray<bigint>;
16
+ usesBadgeIds: boolean;
17
+ usesTimelineTimes: boolean;
18
+ usesTransferTimes: boolean;
19
+ usesToList: boolean;
20
+ usesFromList: boolean;
21
+ usesInitiatedByList: boolean;
22
+ usesOwnershipTimes: boolean;
23
+ usesApprovalIdList: boolean;
24
+ usesAmountTrackerIdList: boolean;
25
+ usesChallengeTrackerIdList: boolean;
26
+ arbitraryValue: any;
27
+ }
28
+ export interface UniversalPermissionDetails {
29
+ badgeId: UintRange<bigint>;
30
+ timelineTime: UintRange<bigint>;
31
+ transferTime: UintRange<bigint>;
32
+ ownershipTime: UintRange<bigint>;
33
+ toList: AddressList;
34
+ fromList: AddressList;
35
+ initiatedByList: AddressList;
36
+ approvalIdList: AddressList;
37
+ amountTrackerIdList: AddressList;
38
+ challengeTrackerIdList: AddressList;
39
+ permanentlyPermittedTimes: UintRangeArray<bigint>;
40
+ permanentlyForbiddenTimes: UintRangeArray<bigint>;
41
+ arbitraryValue: any;
42
+ }
43
+ export interface Overlap {
44
+ overlap: UniversalPermissionDetails;
45
+ firstDetails: UniversalPermissionDetails;
46
+ secondDetails: UniversalPermissionDetails;
47
+ }
48
+ export declare function getOverlapsAndNonOverlaps(firstDetails: UniversalPermissionDetails[], secondDetails: UniversalPermissionDetails[]): [Overlap[], UniversalPermissionDetails[], UniversalPermissionDetails[]];
49
+ export declare function universalRemoveOverlapFromValues(handled: UniversalPermissionDetails, valuesToCheck: UniversalPermissionDetails[]): [UniversalPermissionDetails[], UniversalPermissionDetails[]];
50
+ export declare function universalRemoveOverlaps(handled: UniversalPermissionDetails, valueToCheck: UniversalPermissionDetails): [UniversalPermissionDetails[], UniversalPermissionDetails[]];
51
+ export declare function GetUintRangesWithOptions(_ranges: UintRangeArray<bigint>, uses: boolean): UintRangeArray<bigint>;
52
+ export declare function GetListIdWithOptions(listId: string, uses?: boolean): string;
53
+ export declare function GetListWithOptions(_list: AddressList, uses: boolean): AddressList;
54
+ export interface UsedFlags {
55
+ usesBadgeIds: boolean;
56
+ usesTimelineTimes: boolean;
57
+ usesTransferTimes: boolean;
58
+ usesToList: boolean;
59
+ usesFromList: boolean;
60
+ usesInitiatedByList: boolean;
61
+ usesOwnershipTimes: boolean;
62
+ usesApprovalIdList: boolean;
63
+ usesAmountTrackerIdList: boolean;
64
+ usesChallengeTrackerIdList: boolean;
65
+ }
66
+ export declare const ActionPermissionUsedFlags: UsedFlags;
67
+ export declare const TimedUpdatePermissionUsedFlags: UsedFlags;
68
+ export declare const TimedUpdateWithBadgeIdsPermissionUsedFlags: UsedFlags;
69
+ export declare const BalancesActionPermissionUsedFlags: UsedFlags;
70
+ export declare const ApprovalPermissionUsedFlags: UsedFlags;
71
+ export declare function GetFirstMatchOnly(permissions: UniversalPermission[], handleAllPossibleCombinations?: boolean, usesFlags?: UsedFlags): UniversalPermissionDetails[];
72
+ export interface MergedUniversalPermissionDetails {
73
+ badgeIds: UintRangeArray<bigint>;
74
+ timelineTimes: UintRangeArray<bigint>;
75
+ transferTimes: UintRangeArray<bigint>;
76
+ ownershipTimes: UintRangeArray<bigint>;
77
+ toList: AddressList;
78
+ fromList: AddressList;
79
+ initiatedByList: AddressList;
80
+ approvalIdList: AddressList;
81
+ amountTrackerIdList: AddressList;
82
+ challengeTrackerIdList: AddressList;
83
+ permanentlyPermittedTimes: UintRangeArray<bigint>;
84
+ permanentlyForbiddenTimes: UintRangeArray<bigint>;
85
+ arbitraryValue: any;
86
+ }
87
+ export declare function MergeUniversalPermissionDetails(permissions: UniversalPermissionDetails[], doNotMerge?: boolean): MergedUniversalPermissionDetails[];
88
+ export declare function ValidateUniversalPermissionUpdate(oldPermissions: UniversalPermissionDetails[], newPermissions: UniversalPermissionDetails[]): Error | null;
89
+ //# sourceMappingURL=overlaps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlaps.d.ts","sourceRoot":"","sources":["../../../src/core/overlaps.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAazD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACjC,aAAa,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,aAAa,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,WAAW,CAAC;IACtB,eAAe,EAAE,WAAW,CAAC;IAE7B,cAAc,EAAE,WAAW,CAAC;IAC5B,mBAAmB,EAAE,WAAW,CAAC;IACjC,sBAAsB,EAAE,WAAW,CAAC;IAEpC,yBAAyB,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAClD,yBAAyB,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAElD,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,uBAAuB,EAAE,OAAO,CAAC;IACjC,0BAA0B,EAAE,OAAO,CAAC;IAEpC,cAAc,EAAE,GAAG,CAAC;CACrB;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3B,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,WAAW,CAAC;IACtB,eAAe,EAAE,WAAW,CAAC;IAE7B,cAAc,EAAE,WAAW,CAAC;IAC5B,mBAAmB,EAAE,WAAW,CAAC;IACjC,sBAAsB,EAAE,WAAW,CAAC;IAEpC,yBAAyB,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAClD,yBAAyB,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAElD,cAAc,EAAE,GAAG,CAAC;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,0BAA0B,CAAC;IACpC,YAAY,EAAE,0BAA0B,CAAC;IACzC,aAAa,EAAE,0BAA0B,CAAC;CAC3C;AAED,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,0BAA0B,EAAE,EAC1C,aAAa,EAAE,0BAA0B,EAAE,GAC1C,CAAC,OAAO,EAAE,EAAE,0BAA0B,EAAE,EAAE,0BAA0B,EAAE,CAAC,CA0BzE;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,0BAA0B,EACnC,aAAa,EAAE,0BAA0B,EAAE,GAC1C,CAAC,0BAA0B,EAAE,EAAE,0BAA0B,EAAE,CAAC,CAU9D;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,0BAA0B,EACnC,YAAY,EAAE,0BAA0B,GACvC,CAAC,0BAA0B,EAAE,EAAE,0BAA0B,EAAE,CAAC,CAoQ9D;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAS/G;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAM3E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,GAAG,WAAW,CASjF;AAID,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,uBAAuB,EAAE,OAAO,CAAC;IACjC,0BAA0B,EAAE,OAAO,CAAC;CACrC;AAED,eAAO,MAAM,yBAAyB,EAAE,SAWvC,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,SAW5C,CAAC;AAEF,eAAO,MAAM,0CAA0C,EAAE,SAWxD,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,SAW/C,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,SAWzC,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,mBAAmB,EAAE,EAClC,6BAA6B,CAAC,EAAE,OAAO,EACvC,SAAS,CAAC,EAAE,SAAS,GACpB,0BAA0B,EAAE,CA8F9B;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACjC,aAAa,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,aAAa,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,WAAW,CAAC;IACtB,eAAe,EAAE,WAAW,CAAC;IAE7B,cAAc,EAAE,WAAW,CAAC;IAC5B,mBAAmB,EAAE,WAAW,CAAC;IACjC,sBAAsB,EAAE,WAAW,CAAC;IAEpC,yBAAyB,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAClD,yBAAyB,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAElD,cAAc,EAAE,GAAG,CAAC;CACrB;AAED,wBAAgB,+BAA+B,CAAC,WAAW,EAAE,0BAA0B,EAAE,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,gCAAgC,EAAE,CA4LnJ;AA6ED,wBAAgB,iCAAiC,CAC/C,cAAc,EAAE,0BAA0B,EAAE,EAC5C,cAAc,EAAE,0BAA0B,EAAE,GAC3C,KAAK,GAAG,IAAI,CAoDd"}