bitbadgesjs-sdk 0.2.0 → 0.2.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.
Files changed (99) hide show
  1. package/README.md +31 -38
  2. package/dist/api-indexer/BitBadgesAddressList.d.ts +7 -1
  3. package/dist/api-indexer/BitBadgesAddressList.d.ts.map +1 -1
  4. package/dist/api-indexer/BitBadgesAddressList.js +12 -2
  5. package/dist/api-indexer/BitBadgesAddressList.js.map +1 -1
  6. package/dist/api-indexer/BitBadgesApi.d.ts +2 -1
  7. package/dist/api-indexer/BitBadgesApi.d.ts.map +1 -1
  8. package/dist/api-indexer/BitBadgesApi.js +3 -0
  9. package/dist/api-indexer/BitBadgesApi.js.map +1 -1
  10. package/dist/api-indexer/docs/interfaces.d.ts +38 -5
  11. package/dist/api-indexer/docs/interfaces.d.ts.map +1 -1
  12. package/dist/api-indexer/requests/blockin.d.ts.map +1 -1
  13. package/dist/api-indexer/requests/blockin.js +5 -0
  14. package/dist/api-indexer/requests/blockin.js.map +1 -1
  15. package/dist/api-indexer/requests/collections.d.ts +1 -1
  16. package/dist/api-indexer/requests/collections.d.ts.map +1 -1
  17. package/dist/api-indexer/requests/requests.d.ts +21 -2
  18. package/dist/api-indexer/requests/requests.d.ts.map +1 -1
  19. package/dist/api-indexer/requests/requests.js +6 -0
  20. package/dist/api-indexer/requests/requests.js.map +1 -1
  21. package/dist/api-indexer/requests/routes.d.ts +1 -0
  22. package/dist/api-indexer/requests/routes.d.ts.map +1 -1
  23. package/dist/api-indexer/requests/routes.js +1 -0
  24. package/dist/api-indexer/requests/routes.js.map +1 -1
  25. package/dist/core/addressLists.spec.d.ts +2 -0
  26. package/dist/core/addressLists.spec.d.ts.map +1 -0
  27. package/dist/core/addressLists.spec.js +117 -0
  28. package/dist/core/addressLists.spec.js.map +1 -0
  29. package/dist/core/approvals.d.ts +1 -19
  30. package/dist/core/approvals.d.ts.map +1 -1
  31. package/dist/core/approvals.js +1 -25
  32. package/dist/core/approvals.js.map +1 -1
  33. package/dist/core/balances.d.ts +1 -0
  34. package/dist/core/balances.d.ts.map +1 -1
  35. package/dist/core/balances.js +55 -39
  36. package/dist/core/balances.js.map +1 -1
  37. package/dist/core/balances.spec.d.ts +2 -0
  38. package/dist/core/balances.spec.d.ts.map +1 -0
  39. package/dist/core/balances.spec.js +187 -0
  40. package/dist/core/balances.spec.js.map +1 -0
  41. package/dist/core/batch-utils.spec.d.ts +2 -0
  42. package/dist/core/batch-utils.spec.d.ts.map +1 -0
  43. package/dist/core/batch-utils.spec.js +145 -0
  44. package/dist/core/batch-utils.spec.js.map +1 -0
  45. package/dist/core/overlaps.d.ts.map +1 -1
  46. package/dist/core/overlaps.js +5 -3
  47. package/dist/core/overlaps.js.map +1 -1
  48. package/dist/core/transfers.d.ts.map +1 -1
  49. package/dist/core/transfers.js +2 -1
  50. package/dist/core/transfers.js.map +1 -1
  51. package/dist/core/transfers.spec.d.ts +2 -0
  52. package/dist/core/transfers.spec.d.ts.map +1 -0
  53. package/dist/core/transfers.spec.js +119 -0
  54. package/dist/core/transfers.spec.js.map +1 -0
  55. package/dist/core/uintRanges.spec.d.ts +2 -0
  56. package/dist/core/uintRanges.spec.d.ts.map +1 -0
  57. package/dist/core/uintRanges.spec.js +63 -0
  58. package/dist/core/uintRanges.spec.js.map +1 -0
  59. package/dist/openapi-utils/combined.d.ts +1 -0
  60. package/dist/openapi-utils/combined.d.ts.map +1 -0
  61. package/dist/openapi-utils/combined.js +2 -0
  62. package/dist/openapi-utils/combined.js.map +1 -0
  63. package/dist/transactions/amino/registry.js +23 -23
  64. package/dist/transactions/amino/registry.js.map +1 -1
  65. package/dist/transactions/messages/base.d.ts +1 -1
  66. package/dist/transactions/messages/base.d.ts.map +1 -1
  67. package/dist/transactions/messages/base.js +2 -2
  68. package/dist/transactions/messages/base.js.map +1 -1
  69. package/dist/transactions/messages/transaction.d.ts +2 -2
  70. package/dist/transactions/messages/transaction.d.ts.map +1 -1
  71. package/dist/transactions/messages/transaction.js +23 -23
  72. package/dist/transactions/messages/transaction.js.map +1 -1
  73. package/dist/tsconfig.build.tsbuildinfo +1 -1
  74. package/package.json +6 -8
  75. package/dist/api-indexer/indexer/index.d.ts +0 -3
  76. package/dist/api-indexer/indexer/index.d.ts.map +0 -1
  77. package/dist/api-indexer/indexer/index.js +0 -30
  78. package/dist/api-indexer/indexer/index.js.map +0 -1
  79. package/dist/api-indexer/indexer/indexer.d.ts +0 -58
  80. package/dist/api-indexer/indexer/indexer.d.ts.map +0 -1
  81. package/dist/api-indexer/indexer/indexer.js +0 -3
  82. package/dist/api-indexer/indexer/indexer.js.map +0 -1
  83. package/dist/api-indexer/indexer/schemas.d.ts +0 -647
  84. package/dist/api-indexer/indexer/schemas.d.ts.map +0 -1
  85. package/dist/api-indexer/indexer/schemas.js +0 -286
  86. package/dist/api-indexer/indexer/schemas.js.map +0 -1
  87. package/dist/package-lock.json +0 -36128
  88. package/dist/package.json +0 -79
  89. package/dist/src/core/balances.d.ts +0 -78
  90. package/dist/src/core/balances.d.ts.map +0 -1
  91. package/dist/src/core/balances.js +0 -534
  92. package/dist/src/core/balances.js.map +0 -1
  93. package/dist/src/core/overlaps.d.ts +0 -89
  94. package/dist/src/core/overlaps.d.ts.map +0 -1
  95. package/dist/src/core/overlaps.js +0 -717
  96. package/dist/src/core/overlaps.js.map +0 -1
  97. package/dist/tsconfig.build.json +0 -27
  98. package/dist/tsconfig.json +0 -9
  99. package/dist/typedoc.json +0 -15
@@ -1,534 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"balances.js","sourceRoot":"","sources":["../../../src/core/balances.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wCAA8F;AAC9F,+CAAiC;AACjC,iDAA6C;AAC7C,yCAAuE;AAEvE,yCAAuD;AAEvD,6DAAgE;AAChE,6CAAyD;AACzD,wDAAuD;AAUvD,MAAa,OAA8B,SAAQ,0BAA+B;IAChF,MAAM,CAAI;IACV,QAAQ,CAAoB;IAC5B,cAAc,CAAoB;IAElC,YAAY,OAAoB;QAC9B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,2BAAc,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,GAAG,2BAAc,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACpE,CAAC;IAED,mBAAmB;QACjB,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,CAAuB,eAAwC;QACpE,OAAO,IAAI,OAAO,CAChB,IAAA,yBAAkB,EAAC;YACjB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;YACpC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAC9D,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;SAC3E,CAAC,CACH,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,0BAAS,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,CAAC,QAAQ,CACb,SAAoB,EACpB,eAAwC,EACxC,OAAkC;QAElC,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC;IAC/F,CAAC;IAED,MAAM,CAAC,cAAc,CACnB,UAAkB,EAClB,eAAwC,EACxC,OAAkC;QAElC,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC;IACtG,CAAC;IAED,MAAM,CAAC,SAAS,CAAuB,IAA0B,EAAE,eAAwC;QACzG,OAAO,IAAI,OAAO,CAAI;YACpB,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5C,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,sBAAS,CAAC,SAAS,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;YAC3E,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,sBAAS,CAAC,SAAS,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;SACxF,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;CACF;AAzDD,0BAyDC;AAUM,MAAM,yBAAyB,GAAG,CACvC,aAA4B,EAC5B,mBAAsB,EACtB,yBAA4B,EAC5B,aAAgB,EAChB,EAAE;IACF,IAAI,gBAAgB,GAAG,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;IAEhE,gBAAgB,GAAG,YAAY,CAAC,IAAI,CAClC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACtB,MAAM,iBAAiB,GAAG,IAAA,qBAAc,EAAC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QACnH,MAAM,uBAAuB,GAAG,IAAA,qBAAc,EAAC,yBAAyB,EAAE,MAAM,CAAC,yBAAyB,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QAErI,OAAO,IAAI,OAAO,CAAC;YACjB,GAAG,CAAC;YACJ,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC7B,OAAO;oBACL,KAAK,EAAE,IAAA,cAAO,EAAC,CAAC,CAAC,KAAK,EAAE,iBAAiB,CAAC;oBAC1C,GAAG,EAAE,IAAA,cAAO,EAAC,CAAC,CAAC,GAAG,EAAE,iBAAiB,CAAC;iBACvC,CAAC;YACJ,CAAC,CAAC;YACF,cAAc,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACzC,OAAO;oBACL,KAAK,EAAE,IAAA,cAAO,EAAC,CAAC,CAAC,KAAK,EAAE,uBAAuB,CAAC;oBAChD,GAAG,EAAE,IAAA,cAAO,EAAC,CAAC,CAAC,GAAG,EAAE,uBAAuB,CAAC;iBAC7C,CAAC;YACJ,CAAC,CAAC;SACH,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC;AAhCW,QAAA,yBAAyB,6BAgCpC;AAaK,MAAM,sBAAsB,GAAG,CAAuB,EAAK,EAAE,IAAO,EAAE,QAAuB,EAAE,EAAE;IACtG,MAAM,eAAe,GAAG,IAAA,2BAAoB,EAAC,EAAE,CAAC,CAAC;IACjD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC,CAAC;AAXW,QAAA,sBAAsB,0BAWjC;AAUF,SAAgB,gBAAgB,CAAuB,OAAU,EAAE,QAAuB;IACxF,MAAM,gBAAgB,GAAoB,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEhE,KAAK,MAAM,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClD,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7C,gBAAgB,CAAC,IAAI,CACnB,IAAI,OAAO,CAAC;gBACV,GAAG,OAAO;gBACV,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;aAC7C,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,gBAAgB,CAAC,KAAK,EAAE,CAAC;AAClC,CAAC;AAfD,4CAeC;AAUD,SAAgB,kBAAkB,CAAuB,IAAO,EAAE,QAAuB;IACvF,MAAM,gBAAgB,GAAoB,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEhE,KAAK,MAAM,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,KAAK,EAAE,CAAC;YACV,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,gBAAgB,CAAC,KAAK,EAAE,CAAC;AAClC,CAAC;AAXD,gDAWC;AAUD,SAAgB,kBAAkB,CAAuB,QAAuB;IAC9E,MAAM,WAAW,GAAoB,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAXD,gDAWC;AAUD,SAAgB,yBAAyB,CAAuB,QAAuB,EAAE,iBAAgC;IAEvH,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEnE,IAAI,CAAC;QACH,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAXD,8DAWC;AAYD,SAAgB,qCAAqC,CACnD,SAAwB,EACxB,KAAoB,EACpB,SAAwB;IAIxB,SAAS,GAAG,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAG1C,MAAM,QAAQ,GAAG,yBAAyB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAhBD,sFAgBC;AAUD,SAAgB,gBAAgB,CAAuB,QAAuB,EAAE,MAAqB,EAAE,iBAA0B;IAC/H,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IAC/C,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;IAE3C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,QAAQ,GAAG,iCAAiC,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,GAAG,iCAAiC,CAAC,MAAM,CAAC,CAAC;IAEnD,IAAI,CAAC;QACH,MAAM,GAAG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAvBD,4CAuBC;AAYD,SAAgB,cAAc,CAAuB,UAAuB,EAAE,QAAuB;IACnG,IAAI,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IAGrD,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IACxF,UAAU,GAAG,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAEhD,OAAO,UAAU,CAAC;AACpB,CAAC;AARD,wCAQC;AAED,SAAS,+BAA+B,CAAuB,OAAoC;IACjG,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACrE,OAAO,IAAA,2BAAoB,EAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC;AAUD,SAAgB,UAAU,CAAuB,gBAA+B,EAAE,YAAyB;IACzG,MAAM,YAAY,GAAG,iBAAiB,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAC7G,IAAI,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;IAE3D,QAAQ,GAAG,cAAc,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAExF,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,OAAO,CAAC,MAAM,GAAG,IAAA,cAAO,EAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QAC9D,QAAQ,GAAG,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAZD,gCAYC;AAUD,SAAgB,WAAW,CAAuB,aAA4B,EAAE,QAAuB;IACrG,IAAI,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IAEtD,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;QACpC,WAAW,GAAG,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AARD,kCAQC;AAYD,SAAgB,eAAe,CAC7B,QAAuB,EACvB,eAA4B,EAC5B,cAAwB;IAExB,MAAM,YAAY,GAAG,iBAAiB,CAAC,eAAe,CAAC,QAAQ,EAAE,eAAe,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAC3G,IAAI,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IAEtD,WAAW,GAAG,cAAc,CAAC,eAAe,CAAC,QAAQ,EAAE,eAAe,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAEpG,KAAK,MAAM,cAAc,IAAI,YAAY,EAAE,CAAC;QAC1C,cAAc,CAAC,MAAM,GAAG,IAAA,mBAAY,EAAC,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACpG,WAAW,GAAG,UAAU,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAhBD,0CAgBC;AAWD,SAAgB,gBAAgB,CAC9B,kBAAiC,EACjC,QAAuB,EACvB,cAAwB;IAExB,IAAI,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IAGtD,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;QACzC,WAAW,GAAG,eAAe,CAAC,WAAW,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAbD,4CAaC;AAYD,SAAS,UAAU,CAAuB,UAAuB,EAAE,QAAuB;IACxF,IAAI,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IAEtD,IAAI,UAAU,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC7B,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7B,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IACzC,WAAW,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAEhD,OAAO,WAAW,CAAC;AACrB,CAAC;AAeD,SAAgB,iBAAiB,CAAuB,QAAyB,EAAE,KAAsB,EAAE,QAAuB;IAChI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,eAAe,GAAG,IAAA,2BAAoB,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAEhE,MAAM,eAAe,GAAyB,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEpE,MAAM,qBAAqB,GAAiC,EAAE,CAAC;IAC/D,KAAK,MAAM,UAAU,IAAI,QAAQ,EAAE,CAAC;QAClC,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC5C,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,cAAc,EAAE,CAAC;gBACjD,qBAAqB,CAAC,IAAI,CAAC;oBACzB,OAAO,EAAE,IAAI,sBAAS,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,0BAAS,CAAC;oBACpD,aAAa,EAAE,IAAI,sBAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,0BAAS,CAAC;oBACzD,YAAY,EAAE,sBAAS,CAAC,SAAS,EAAE;oBACnC,YAAY,EAAE,sBAAS,CAAC,SAAS,EAAE;oBACnC,MAAM,EAAE,0BAAW,CAAC,YAAY,EAAE;oBAClC,QAAQ,EAAE,0BAAW,CAAC,YAAY,EAAE;oBACpC,eAAe,EAAE,0BAAW,CAAC,YAAY,EAAE;oBAC3C,cAAc,EAAE,0BAAW,CAAC,YAAY,EAAE;oBAC1C,mBAAmB,EAAE,0BAAW,CAAC,YAAY,EAAE;oBAC/C,sBAAsB,EAAE,0BAAW,CAAC,YAAY,EAAE;oBAClD,cAAc,EAAE,UAAU,CAAC,MAAM;oBAEjC,yBAAyB,EAAE,2BAAc,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClD,yBAAyB,EAAE,2BAAc,CAAC,IAAI,CAAC,EAAE,CAAC;iBACnD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,wBAAwB,GAAiC,EAAE,CAAC;IAClE,KAAK,MAAM,YAAY,IAAI,QAAQ,EAAE,CAAC;QACpC,KAAK,MAAM,WAAW,IAAI,KAAK,EAAE,CAAC;YAChC,wBAAwB,CAAC,IAAI,CAAC;gBAC5B,OAAO,EAAE,IAAI,sBAAS,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,0BAAS,CAAC;gBACvD,aAAa,EAAE,IAAI,sBAAS,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,0BAAS,CAAC;gBAC5D,YAAY,EAAE,sBAAS,CAAC,SAAS,EAAE;gBACnC,YAAY,EAAE,sBAAS,CAAC,SAAS,EAAE;gBACnC,MAAM,EAAE,0BAAW,CAAC,YAAY,EAAE;gBAClC,QAAQ,EAAE,0BAAW,CAAC,YAAY,EAAE;gBACpC,eAAe,EAAE,0BAAW,CAAC,YAAY,EAAE;gBAC3C,cAAc,EAAE,0BAAW,CAAC,YAAY,EAAE;gBAC1C,mBAAmB,EAAE,0BAAW,CAAC,YAAY,EAAE;gBAC/C,sBAAsB,EAAE,0BAAW,CAAC,YAAY,EAAE;gBAElD,yBAAyB,EAAE,2BAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClD,yBAAyB,EAAE,2BAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClD,cAAc,EAAE,EAAE;aACnB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,CAAC,QAAQ,EAAE,AAAD,EAAG,mBAAmB,CAAC,GAAG,IAAA,oCAAyB,EAAC,qBAAqB,EAAE,wBAAwB,CAAC,CAAC;IAGrH,KAAK,MAAM,aAAa,IAAI,QAAQ,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QAEjE,eAAe,CAAC,IAAI,CAClB,IAAI,OAAO,CAAC;YACV,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;YAC3B,cAAc,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;SACxC,CAAC,CACH,CAAC;IACJ,CAAC;IAGD,KAAK,MAAM,MAAM,IAAI,mBAAmB,EAAE,CAAC;QACzC,eAAe,CAAC,IAAI,CAClB,IAAI,OAAO,CAAC;YACV,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;YAC1B,cAAc,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC;SACvC,CAAC,CACH,CAAC;IACJ,CAAC;IAID,OAAO,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AAClD,CAAC;AArFD,8CAqFC;AAYD,SAAS,cAAc,CACrB,cAA+B,EAC/B,aAA8B,EAC9B,QAAuB;IAEvB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,eAAe,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;IAClE,MAAM,WAAW,GAAyB,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEhE,KAAK,MAAM,UAAU,IAAI,QAAQ,EAAE,CAAC;QAClC,MAAM,qBAAqB,GAAiC,EAAE,CAAC;QAC/D,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC5C,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,cAAc,EAAE,CAAC;gBACjD,qBAAqB,CAAC,IAAI,CAAC;oBACzB,OAAO,EAAE,IAAI,sBAAS,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,0BAAS,CAAC;oBACpD,aAAa,EAAE,IAAI,sBAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,0BAAS,CAAC;oBACzD,YAAY,EAAE,sBAAS,CAAC,SAAS,EAAE;oBACnC,YAAY,EAAE,sBAAS,CAAC,SAAS,EAAE;oBACnC,MAAM,EAAE,0BAAW,CAAC,YAAY,EAAE;oBAClC,QAAQ,EAAE,0BAAW,CAAC,YAAY,EAAE;oBACpC,eAAe,EAAE,0BAAW,CAAC,YAAY,EAAE;oBAC3C,cAAc,EAAE,0BAAW,CAAC,YAAY,EAAE;oBAC1C,mBAAmB,EAAE,0BAAW,CAAC,YAAY,EAAE;oBAC/C,sBAAsB,EAAE,0BAAW,CAAC,YAAY,EAAE;oBAElD,yBAAyB,EAAE,2BAAc,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClD,yBAAyB,EAAE,2BAAc,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClD,cAAc,EAAE,EAAE;iBACnB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,yBAAyB,GAAiC,EAAE,CAAC;QACnE,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;YAC3C,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;gBACzC,yBAAyB,CAAC,IAAI,CAAC;oBAC7B,OAAO,EAAE,IAAI,sBAAS,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,0BAAS,CAAC;oBACxD,aAAa,EAAE,IAAI,sBAAS,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,0BAAS,CAAC;oBAC7D,YAAY,EAAE,sBAAS,CAAC,SAAS,EAAE;oBACnC,YAAY,EAAE,sBAAS,CAAC,SAAS,EAAE;oBACnC,MAAM,EAAE,0BAAW,CAAC,YAAY,EAAE;oBAClC,QAAQ,EAAE,0BAAW,CAAC,YAAY,EAAE;oBACpC,eAAe,EAAE,0BAAW,CAAC,YAAY,EAAE;oBAC3C,cAAc,EAAE,0BAAW,CAAC,YAAY,EAAE;oBAC1C,mBAAmB,EAAE,0BAAW,CAAC,YAAY,EAAE;oBAC/C,sBAAsB,EAAE,0BAAW,CAAC,YAAY,EAAE;oBAElD,yBAAyB,EAAE,2BAAc,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClD,yBAAyB,EAAE,2BAAc,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClD,cAAc,EAAE,EAAE;iBACnB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,CAAC,EAAE,cAAc,CAAC,GAAG,IAAA,oCAAyB,EAAC,qBAAqB,EAAE,yBAAyB,CAAC,CAAC;QACvG,KAAK,MAAM,gBAAgB,IAAI,cAAc,EAAE,CAAC;YAC9C,WAAW,CAAC,IAAI,CACd,IAAI,OAAO,CAAS;gBAClB,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;gBACjC,QAAQ,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC;gBACpC,cAAc,EAAE,CAAC,gBAAgB,CAAC,aAAa,CAAC;aACjD,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC;AAUD,SAAgB,oBAAoB,CAAuB,QAAuB;IAChF,OAAO,YAAY,CAAC,IAAI,CACtB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACrB,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAND,oDAMC;AAOD,SAAgB,aAAa,CAAuB,WAA0B;IAC5E,IAAI,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAChC,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;IACxC,CAAC;IAED,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAG1C,MAAM,WAAW,GAAoB,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAEhC,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAGlC,IAAI,WAAW,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBAE5C,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAChF,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;oBAC9D,UAAU,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;oBACzC,MAAM,GAAG,IAAI,CAAC;oBACd,MAAM;gBACR,CAAC;qBAAM,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;oBACnG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;oBAClD,UAAU,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;oBACnC,MAAM,GAAG,IAAI,CAAC;oBACd,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAzCD,sCAyCC;AASD,SAAgB,oBAAoB,CAAuB,QAAuB;IAChF,QAAQ,GAAG,iCAAiC,CAAC,QAAQ,CAAC,CAAC;IACvD,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACnC,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAE1C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAND,oDAMC;AASD,SAAgB,iCAAiC,CAAuB,QAAuB;IAC7F,IAAI,WAAW,GAAoB,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACvC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC1C,WAAW,CAAC,UAAU,CAAC;oBACrB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,QAAQ,EAAE,CAAC,OAAO,CAAC;oBACnB,cAAc,EAAE,CAAC,IAAI,CAAC;iBACvB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAdD,8EAcC;AAqBD,MAAa,YAAmC,SAAQ,6BAA2C;IACjG,MAAM,CAAC,IAAI,CAAuB,GAAkD;QAClF,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACpD,OAAO,IAAI,YAAY,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IAKD,IAAI,CAAC,GAAG,KAAsC;QAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAKD,IAAI,CAAC,KAAkB,EAAE,KAA0B,EAAE,GAAwB;QAC3E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACpD,CAAC;IAKD,IAAI,CAAC,KAAa,EAAE,KAAkB;QACpC,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC;IAKD,OAAO,CAAC,GAAG,KAAsC;QAC/C,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,CAAuB,eAAwC;QACpE,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,KAAK;QACH,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IAKD,sBAAsB,CAAC,OAAU,EAAE,SAAY;QAC7C,OAAO,IAAA,8BAAsB,EAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAKD,gBAAgB,CAAC,OAAU;QACzB,OAAO,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAKD,kBAAkB,CAAC,SAAY;QAC7B,OAAO,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAKD,kBAAkB;QAChB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/H,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,QAAQ,CAAC,SAA0C;QACjD,OAAO,yBAAyB,CAC9B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,0BAAS,CAAC,CAAC,EACrC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,0BAAS,CAAC,CAAC,CAC9D,CAAC;IACJ,CAAC;IAKD,aAAa,CAAC,KAAsC,EAAE,iBAAiB,GAAG,KAAK;QAC7E,OAAO,gBAAgB,CACrB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,0BAAS,CAAC,CAAC,EACrC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,0BAAS,CAAC,CAAC,EACzD,iBAAiB,CAClB,CAAC;IACJ,CAAC;IAKD,cAAc,CAAC,UAAuB;QACpC,MAAM,WAAW,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,WAAW,CAAC,aAA8C;QACxD,MAAM,WAAW,GAAG,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,UAAU,CAAC,YAAyB;QAClC,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,gBAAgB,CAAC,kBAAmD,EAAE,cAAc,GAAG,KAAK;QAC1F,MAAM,WAAW,GAAG,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC/E,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,eAAe,CAAC,iBAA8B,EAAE,cAAuB;QACrE,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,iBAAiB,CAAC,EAAE,cAAc,CAAC,CAAC;IACpE,CAAC;IAKD,oBAAoB;QAClB,MAAM,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,eAAe,CAAC,mBAAsB,EAAE,yBAA4B,EAAE,aAAgB;QACpF,MAAM,WAAW,GAAG,IAAA,iCAAyB,EAAC,IAAI,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,aAAa,CAAC,CAAC;QACnH,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,cAAc;QACZ,MAAM,QAAQ,GAAG,IAAI,2BAAc,EAAK,CAAC;QACzC,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,QAAQ,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,CAAC;IACzC,CAAC;CACF;AA3KD,oCA2KC"}
@@ -1,89 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"overlaps.d.ts","sourceRoot":"","sources":["../../../src/core/overlaps.ts"],"names":[],"mappings":"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"}