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.
- package/dist/api-indexer/BitBadgesAddressList.d.ts +1 -0
- package/dist/api-indexer/BitBadgesAddressList.d.ts.map +1 -1
- package/dist/api-indexer/BitBadgesAddressList.js +50 -0
- package/dist/api-indexer/BitBadgesAddressList.js.map +1 -1
- package/dist/common/types.js +8 -8
- package/dist/core/balances.d.ts.map +1 -1
- package/dist/core/balances.js +4 -2
- package/dist/core/balances.js.map +1 -1
- package/dist/package-lock.json +36128 -0
- package/dist/package.json +79 -0
- package/dist/src/core/balances.d.ts +78 -0
- package/dist/src/core/balances.d.ts.map +1 -0
- package/dist/src/core/balances.js +534 -0
- package/dist/src/core/balances.js.map +1 -0
- package/dist/src/core/overlaps.d.ts +89 -0
- package/dist/src/core/overlaps.d.ts.map +1 -0
- package/dist/src/core/overlaps.js +717 -0
- package/dist/src/core/overlaps.js.map +1 -0
- package/dist/tsconfig.build.json +27 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/tsconfig.json +9 -0
- package/dist/typedoc.json +15 -0
- package/package.json +5 -3
|
@@ -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":"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"}
|