bitbadgesjs-sdk 0.31.1 → 0.31.2

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/dist/cjs/api-indexer/BitBadgesCollection.d.ts +1 -0
  2. package/dist/cjs/api-indexer/BitBadgesCollection.d.ts.map +1 -1
  3. package/dist/cjs/api-indexer/BitBadgesCollection.js +4 -1
  4. package/dist/cjs/api-indexer/BitBadgesCollection.js.map +1 -1
  5. package/dist/cjs/core/approval-utils.spec.d.ts +2 -0
  6. package/dist/cjs/core/approval-utils.spec.d.ts.map +1 -0
  7. package/dist/cjs/core/approval-utils.spec.js +240 -0
  8. package/dist/cjs/core/approval-utils.spec.js.map +1 -0
  9. package/dist/cjs/core/approvals.spec.js +96 -0
  10. package/dist/cjs/core/approvals.spec.js.map +1 -1
  11. package/dist/cjs/core/bids.spec.d.ts +2 -0
  12. package/dist/cjs/core/bids.spec.d.ts.map +1 -0
  13. package/dist/cjs/core/bids.spec.js +201 -0
  14. package/dist/cjs/core/bids.spec.js.map +1 -0
  15. package/dist/cjs/core/blockin.spec.d.ts +2 -0
  16. package/dist/cjs/core/blockin.spec.d.ts.map +1 -0
  17. package/dist/cjs/core/blockin.spec.js +163 -0
  18. package/dist/cjs/core/blockin.spec.js.map +1 -0
  19. package/dist/cjs/core/coin.spec.d.ts +2 -0
  20. package/dist/cjs/core/coin.spec.d.ts.map +1 -0
  21. package/dist/cjs/core/coin.spec.js +80 -0
  22. package/dist/cjs/core/coin.spec.js.map +1 -0
  23. package/dist/cjs/core/cosmos-wrappers.spec.d.ts +2 -0
  24. package/dist/cjs/core/cosmos-wrappers.spec.d.ts.map +1 -0
  25. package/dist/cjs/core/cosmos-wrappers.spec.js +623 -0
  26. package/dist/cjs/core/cosmos-wrappers.spec.js.map +1 -0
  27. package/dist/cjs/core/managersplitter.spec.d.ts +2 -0
  28. package/dist/cjs/core/managersplitter.spec.d.ts.map +1 -0
  29. package/dist/cjs/core/managersplitter.spec.js +170 -0
  30. package/dist/cjs/core/managersplitter.spec.js.map +1 -0
  31. package/dist/cjs/core/overlaps.spec.js +201 -0
  32. package/dist/cjs/core/overlaps.spec.js.map +1 -1
  33. package/dist/cjs/core/permission-utils.spec.d.ts +2 -0
  34. package/dist/cjs/core/permission-utils.spec.d.ts.map +1 -0
  35. package/dist/cjs/core/permission-utils.spec.js +192 -0
  36. package/dist/cjs/core/permission-utils.spec.js.map +1 -0
  37. package/dist/cjs/core/permissions.spec.js +1069 -0
  38. package/dist/cjs/core/permissions.spec.js.map +1 -1
  39. package/dist/cjs/core/transfers.spec.js +524 -0
  40. package/dist/cjs/core/transfers.spec.js.map +1 -1
  41. package/dist/cjs/core/userBalances.spec.d.ts +2 -0
  42. package/dist/cjs/core/userBalances.spec.d.ts.map +1 -0
  43. package/dist/cjs/core/userBalances.spec.js +184 -0
  44. package/dist/cjs/core/userBalances.spec.js.map +1 -0
  45. package/dist/cjs/core/validate-utils.spec.d.ts +2 -0
  46. package/dist/cjs/core/validate-utils.spec.d.ts.map +1 -0
  47. package/dist/cjs/core/validate-utils.spec.js +202 -0
  48. package/dist/cjs/core/validate-utils.spec.js.map +1 -0
  49. package/dist/cjs/tsconfig.build.tsbuildinfo +1 -1
  50. package/dist/esm/api-indexer/BitBadgesCollection.d.ts +1 -0
  51. package/dist/esm/api-indexer/BitBadgesCollection.d.ts.map +1 -1
  52. package/dist/esm/api-indexer/BitBadgesCollection.js +4 -1
  53. package/dist/esm/api-indexer/BitBadgesCollection.js.map +1 -1
  54. package/dist/esm/core/approval-utils.spec.d.ts +2 -0
  55. package/dist/esm/core/approval-utils.spec.d.ts.map +1 -0
  56. package/dist/esm/core/approval-utils.spec.js +238 -0
  57. package/dist/esm/core/approval-utils.spec.js.map +1 -0
  58. package/dist/esm/core/approvals.spec.js +97 -1
  59. package/dist/esm/core/approvals.spec.js.map +1 -1
  60. package/dist/esm/core/bids.spec.d.ts +2 -0
  61. package/dist/esm/core/bids.spec.d.ts.map +1 -0
  62. package/dist/esm/core/bids.spec.js +199 -0
  63. package/dist/esm/core/bids.spec.js.map +1 -0
  64. package/dist/esm/core/blockin.spec.d.ts +2 -0
  65. package/dist/esm/core/blockin.spec.d.ts.map +1 -0
  66. package/dist/esm/core/blockin.spec.js +161 -0
  67. package/dist/esm/core/blockin.spec.js.map +1 -0
  68. package/dist/esm/core/coin.spec.d.ts +2 -0
  69. package/dist/esm/core/coin.spec.d.ts.map +1 -0
  70. package/dist/esm/core/coin.spec.js +78 -0
  71. package/dist/esm/core/coin.spec.js.map +1 -0
  72. package/dist/esm/core/cosmos-wrappers.spec.d.ts +2 -0
  73. package/dist/esm/core/cosmos-wrappers.spec.d.ts.map +1 -0
  74. package/dist/esm/core/cosmos-wrappers.spec.js +621 -0
  75. package/dist/esm/core/cosmos-wrappers.spec.js.map +1 -0
  76. package/dist/esm/core/managersplitter.spec.d.ts +2 -0
  77. package/dist/esm/core/managersplitter.spec.d.ts.map +1 -0
  78. package/dist/esm/core/managersplitter.spec.js +168 -0
  79. package/dist/esm/core/managersplitter.spec.js.map +1 -0
  80. package/dist/esm/core/overlaps.spec.js +202 -1
  81. package/dist/esm/core/overlaps.spec.js.map +1 -1
  82. package/dist/esm/core/permission-utils.spec.d.ts +2 -0
  83. package/dist/esm/core/permission-utils.spec.d.ts.map +1 -0
  84. package/dist/esm/core/permission-utils.spec.js +190 -0
  85. package/dist/esm/core/permission-utils.spec.js.map +1 -0
  86. package/dist/esm/core/permissions.spec.js +1069 -0
  87. package/dist/esm/core/permissions.spec.js.map +1 -1
  88. package/dist/esm/core/transfers.spec.js +525 -1
  89. package/dist/esm/core/transfers.spec.js.map +1 -1
  90. package/dist/esm/core/userBalances.spec.d.ts +2 -0
  91. package/dist/esm/core/userBalances.spec.d.ts.map +1 -0
  92. package/dist/esm/core/userBalances.spec.js +182 -0
  93. package/dist/esm/core/userBalances.spec.js.map +1 -0
  94. package/dist/esm/core/validate-utils.spec.d.ts +2 -0
  95. package/dist/esm/core/validate-utils.spec.d.ts.map +1 -0
  96. package/dist/esm/core/validate-utils.spec.js +200 -0
  97. package/dist/esm/core/validate-utils.spec.js.map +1 -0
  98. package/dist/esm/tsconfig-esm.build.tsbuildinfo +1 -1
  99. package/package.json +4 -5
@@ -0,0 +1,621 @@
1
+ import { AddressList } from './addressLists.js';
2
+ import { CollectionApprovalWithDetails } from './approvals.js';
3
+ import { UintRange } from './uintRanges.js';
4
+ import { ConversionWithoutDenom, PathMetadata } from './ibc-wrappers.js';
5
+ import { CosmosCoinWrapperPath } from './misc.js';
6
+ import { isWrapperApproval, isUnwrapperApproval, approvalCriteriaHasNoAdditionalRestrictions, approvalCriteriaHasNoAmountRestrictions, approvalCriteriaUsesPredeterminedBalances, approvalHasApprovalAmounts, approvalHasMaxNumTransfers, isAutoScannable } from './cosmos-wrappers.js';
7
+ BigInt.prototype.toJSON = function () {
8
+ return this.toString();
9
+ };
10
+ const WRAPPER_ADDRESS = 'bb1wrapperaddressxxxxxxxxxxxxxxxxxxxxx';
11
+ function makePathObj(overrides) {
12
+ return new CosmosCoinWrapperPath({
13
+ address: overrides?.address ?? WRAPPER_ADDRESS,
14
+ denom: 'ubadge',
15
+ conversion: new ConversionWithoutDenom({
16
+ sideA: { amount: 1000n },
17
+ sideB: [
18
+ {
19
+ amount: 1n,
20
+ tokenIds: [{ start: 1n, end: 1n }],
21
+ ownershipTimes: [{ start: 1n, end: 100n }]
22
+ }
23
+ ]
24
+ }),
25
+ symbol: 'BADGE',
26
+ denomUnits: [],
27
+ allowOverrideWithAnyValidToken: overrides?.allowOverride ?? false,
28
+ metadata: new PathMetadata({ uri: '', customData: '' })
29
+ });
30
+ }
31
+ function makeApproval(overrides) {
32
+ const toListId = overrides?.toListId ?? 'custom-to';
33
+ const fromListId = overrides?.fromListId ?? 'All';
34
+ return new CollectionApprovalWithDetails({
35
+ fromListId,
36
+ toListId,
37
+ initiatedByListId: 'All',
38
+ approvalId: 'test-wrapper-approval',
39
+ fromList: overrides?.fromListAddresses
40
+ ? new AddressList({
41
+ listId: fromListId,
42
+ addresses: overrides.fromListAddresses,
43
+ whitelist: overrides.fromListWhitelist ?? true,
44
+ createdBy: '',
45
+ uri: '',
46
+ customData: ''
47
+ })
48
+ : AddressList.AllAddresses(),
49
+ toList: new AddressList({
50
+ listId: toListId,
51
+ addresses: overrides?.toListAddresses ?? [WRAPPER_ADDRESS],
52
+ whitelist: overrides?.toListWhitelist ?? true,
53
+ createdBy: '',
54
+ uri: '',
55
+ customData: ''
56
+ }),
57
+ initiatedByList: AddressList.AllAddresses(),
58
+ transferTimes: [UintRange.FullRange()],
59
+ tokenIds: overrides?.tokenIds ?? [{ start: 1n, end: 1n }],
60
+ ownershipTimes: overrides?.ownershipTimes ?? [{ start: 1n, end: 100n }],
61
+ version: 0n,
62
+ approvalCriteria: overrides?.approvalCriteria
63
+ });
64
+ }
65
+ describe('approvalCriteriaHasNoAdditionalRestrictions', () => {
66
+ it('should return true when approvalCriteria is undefined', () => {
67
+ expect(approvalCriteriaHasNoAdditionalRestrictions(undefined)).toBe(true);
68
+ });
69
+ it('should return true when approvalCriteria has no restrictions', () => {
70
+ expect(approvalCriteriaHasNoAdditionalRestrictions({
71
+ requireFromEqualsInitiatedBy: false,
72
+ requireFromDoesNotEqualInitiatedBy: false,
73
+ requireToEqualsInitiatedBy: false,
74
+ requireToDoesNotEqualInitiatedBy: false,
75
+ overridesFromOutgoingApprovals: false,
76
+ overridesToIncomingApprovals: false,
77
+ merkleChallenges: [],
78
+ coinTransfers: [],
79
+ mustOwnTokens: [],
80
+ dynamicStoreChallenges: [],
81
+ ethSignatureChallenges: []
82
+ })).toBe(true);
83
+ });
84
+ it('should return false when requireFromEqualsInitiatedBy is true', () => {
85
+ expect(approvalCriteriaHasNoAdditionalRestrictions({
86
+ requireFromEqualsInitiatedBy: true,
87
+ requireFromDoesNotEqualInitiatedBy: false,
88
+ requireToEqualsInitiatedBy: false,
89
+ requireToDoesNotEqualInitiatedBy: false,
90
+ overridesFromOutgoingApprovals: false,
91
+ overridesToIncomingApprovals: false,
92
+ merkleChallenges: [],
93
+ coinTransfers: [],
94
+ mustOwnTokens: [],
95
+ dynamicStoreChallenges: [],
96
+ ethSignatureChallenges: []
97
+ })).toBe(false);
98
+ });
99
+ it('should return false when requireToDoesNotEqualInitiatedBy is true', () => {
100
+ expect(approvalCriteriaHasNoAdditionalRestrictions({
101
+ requireFromEqualsInitiatedBy: false,
102
+ requireFromDoesNotEqualInitiatedBy: false,
103
+ requireToEqualsInitiatedBy: false,
104
+ requireToDoesNotEqualInitiatedBy: true,
105
+ overridesFromOutgoingApprovals: false,
106
+ overridesToIncomingApprovals: false,
107
+ merkleChallenges: [],
108
+ coinTransfers: [],
109
+ mustOwnTokens: [],
110
+ dynamicStoreChallenges: [],
111
+ ethSignatureChallenges: []
112
+ })).toBe(false);
113
+ });
114
+ it('should return false when merkleChallenges is non-empty', () => {
115
+ expect(approvalCriteriaHasNoAdditionalRestrictions({
116
+ requireFromEqualsInitiatedBy: false,
117
+ requireFromDoesNotEqualInitiatedBy: false,
118
+ requireToEqualsInitiatedBy: false,
119
+ requireToDoesNotEqualInitiatedBy: false,
120
+ overridesFromOutgoingApprovals: false,
121
+ overridesToIncomingApprovals: false,
122
+ merkleChallenges: [{ root: 'abc' }],
123
+ coinTransfers: [],
124
+ mustOwnTokens: [],
125
+ dynamicStoreChallenges: [],
126
+ ethSignatureChallenges: []
127
+ })).toBe(false);
128
+ });
129
+ it('should return false when coinTransfers is non-empty', () => {
130
+ expect(approvalCriteriaHasNoAdditionalRestrictions({
131
+ requireFromEqualsInitiatedBy: false,
132
+ requireFromDoesNotEqualInitiatedBy: false,
133
+ requireToEqualsInitiatedBy: false,
134
+ requireToDoesNotEqualInitiatedBy: false,
135
+ overridesFromOutgoingApprovals: false,
136
+ overridesToIncomingApprovals: false,
137
+ merkleChallenges: [],
138
+ coinTransfers: [{ to: 'addr', coins: [] }],
139
+ mustOwnTokens: [],
140
+ dynamicStoreChallenges: [],
141
+ ethSignatureChallenges: []
142
+ })).toBe(false);
143
+ });
144
+ it('should return false when mustOwnTokens is non-empty', () => {
145
+ expect(approvalCriteriaHasNoAdditionalRestrictions({
146
+ requireFromEqualsInitiatedBy: false,
147
+ requireFromDoesNotEqualInitiatedBy: false,
148
+ requireToEqualsInitiatedBy: false,
149
+ requireToDoesNotEqualInitiatedBy: false,
150
+ overridesFromOutgoingApprovals: false,
151
+ overridesToIncomingApprovals: false,
152
+ merkleChallenges: [],
153
+ coinTransfers: [],
154
+ mustOwnTokens: [{ collectionId: 1n }],
155
+ dynamicStoreChallenges: [],
156
+ ethSignatureChallenges: []
157
+ })).toBe(false);
158
+ });
159
+ it('should return false when overridesFromOutgoingApprovals is true and allowMintOverrides is false', () => {
160
+ expect(approvalCriteriaHasNoAdditionalRestrictions({
161
+ requireFromEqualsInitiatedBy: false,
162
+ requireFromDoesNotEqualInitiatedBy: false,
163
+ requireToEqualsInitiatedBy: false,
164
+ requireToDoesNotEqualInitiatedBy: false,
165
+ overridesFromOutgoingApprovals: true,
166
+ overridesToIncomingApprovals: false,
167
+ merkleChallenges: [],
168
+ coinTransfers: [],
169
+ mustOwnTokens: [],
170
+ dynamicStoreChallenges: [],
171
+ ethSignatureChallenges: []
172
+ }, false, false)).toBe(false);
173
+ });
174
+ it('should return true when overridesFromOutgoingApprovals is true but allowMintOverrides is true', () => {
175
+ expect(approvalCriteriaHasNoAdditionalRestrictions({
176
+ requireFromEqualsInitiatedBy: false,
177
+ requireFromDoesNotEqualInitiatedBy: false,
178
+ requireToEqualsInitiatedBy: false,
179
+ requireToDoesNotEqualInitiatedBy: false,
180
+ overridesFromOutgoingApprovals: true,
181
+ overridesToIncomingApprovals: false,
182
+ merkleChallenges: [],
183
+ coinTransfers: [],
184
+ mustOwnTokens: [],
185
+ dynamicStoreChallenges: [],
186
+ ethSignatureChallenges: []
187
+ }, true, false)).toBe(true);
188
+ });
189
+ it('should return true when overridesToIncomingApprovals is true but allowToOverrides is true', () => {
190
+ expect(approvalCriteriaHasNoAdditionalRestrictions({
191
+ requireFromEqualsInitiatedBy: false,
192
+ requireFromDoesNotEqualInitiatedBy: false,
193
+ requireToEqualsInitiatedBy: false,
194
+ requireToDoesNotEqualInitiatedBy: false,
195
+ overridesFromOutgoingApprovals: false,
196
+ overridesToIncomingApprovals: true,
197
+ merkleChallenges: [],
198
+ coinTransfers: [],
199
+ mustOwnTokens: [],
200
+ dynamicStoreChallenges: [],
201
+ ethSignatureChallenges: []
202
+ }, false, true)).toBe(true);
203
+ });
204
+ it('should return false when ethSignatureChallenges is non-empty', () => {
205
+ expect(approvalCriteriaHasNoAdditionalRestrictions({
206
+ requireFromEqualsInitiatedBy: false,
207
+ requireFromDoesNotEqualInitiatedBy: false,
208
+ requireToEqualsInitiatedBy: false,
209
+ requireToDoesNotEqualInitiatedBy: false,
210
+ overridesFromOutgoingApprovals: false,
211
+ overridesToIncomingApprovals: false,
212
+ merkleChallenges: [],
213
+ coinTransfers: [],
214
+ mustOwnTokens: [],
215
+ dynamicStoreChallenges: [],
216
+ ethSignatureChallenges: [{ signer: '0x...' }]
217
+ })).toBe(false);
218
+ });
219
+ it('should return false when userRoyalties has non-zero percentage', () => {
220
+ expect(approvalCriteriaHasNoAdditionalRestrictions({
221
+ requireFromEqualsInitiatedBy: false,
222
+ requireFromDoesNotEqualInitiatedBy: false,
223
+ requireToEqualsInitiatedBy: false,
224
+ requireToDoesNotEqualInitiatedBy: false,
225
+ overridesFromOutgoingApprovals: false,
226
+ overridesToIncomingApprovals: false,
227
+ merkleChallenges: [],
228
+ coinTransfers: [],
229
+ mustOwnTokens: [],
230
+ dynamicStoreChallenges: [],
231
+ ethSignatureChallenges: [],
232
+ userRoyalties: { percentage: 5n, payoutAddress: 'bb1abc' }
233
+ })).toBe(false);
234
+ });
235
+ });
236
+ describe('approvalHasApprovalAmounts', () => {
237
+ it('should return false for undefined', () => {
238
+ expect(approvalHasApprovalAmounts(undefined)).toBe(false);
239
+ });
240
+ it('should return false when all amounts are zero', () => {
241
+ expect(approvalHasApprovalAmounts({
242
+ overallApprovalAmount: 0n,
243
+ perFromAddressApprovalAmount: 0n,
244
+ perToAddressApprovalAmount: 0n,
245
+ perInitiatedByAddressApprovalAmount: 0n
246
+ })).toBe(false);
247
+ });
248
+ it('should return true when overallApprovalAmount is non-zero', () => {
249
+ expect(approvalHasApprovalAmounts({
250
+ overallApprovalAmount: 100n,
251
+ perFromAddressApprovalAmount: 0n,
252
+ perToAddressApprovalAmount: 0n,
253
+ perInitiatedByAddressApprovalAmount: 0n
254
+ })).toBe(true);
255
+ });
256
+ it('should return true when perToAddressApprovalAmount is non-zero', () => {
257
+ expect(approvalHasApprovalAmounts({
258
+ overallApprovalAmount: 0n,
259
+ perFromAddressApprovalAmount: 0n,
260
+ perToAddressApprovalAmount: 50n,
261
+ perInitiatedByAddressApprovalAmount: 0n
262
+ })).toBe(true);
263
+ });
264
+ it('should return true when perInitiatedByAddressApprovalAmount is non-zero', () => {
265
+ expect(approvalHasApprovalAmounts({
266
+ overallApprovalAmount: 0n,
267
+ perFromAddressApprovalAmount: 0n,
268
+ perToAddressApprovalAmount: 0n,
269
+ perInitiatedByAddressApprovalAmount: 1n
270
+ })).toBe(true);
271
+ });
272
+ });
273
+ describe('approvalHasMaxNumTransfers', () => {
274
+ it('should return false for undefined', () => {
275
+ expect(approvalHasMaxNumTransfers(undefined)).toBe(false);
276
+ });
277
+ it('should return false when all max nums are zero', () => {
278
+ expect(approvalHasMaxNumTransfers({
279
+ overallMaxNumTransfers: 0n,
280
+ perFromAddressMaxNumTransfers: 0n,
281
+ perToAddressMaxNumTransfers: 0n,
282
+ perInitiatedByAddressMaxNumTransfers: 0n
283
+ })).toBe(false);
284
+ });
285
+ it('should return true when overallMaxNumTransfers is non-zero', () => {
286
+ expect(approvalHasMaxNumTransfers({
287
+ overallMaxNumTransfers: 5n,
288
+ perFromAddressMaxNumTransfers: 0n,
289
+ perToAddressMaxNumTransfers: 0n,
290
+ perInitiatedByAddressMaxNumTransfers: 0n
291
+ })).toBe(true);
292
+ });
293
+ it('should return true when perFromAddressMaxNumTransfers is non-zero', () => {
294
+ expect(approvalHasMaxNumTransfers({
295
+ overallMaxNumTransfers: 0n,
296
+ perFromAddressMaxNumTransfers: 1n,
297
+ perToAddressMaxNumTransfers: 0n,
298
+ perInitiatedByAddressMaxNumTransfers: 0n
299
+ })).toBe(true);
300
+ });
301
+ });
302
+ describe('approvalCriteriaUsesPredeterminedBalances', () => {
303
+ it('should return false for undefined criteria', () => {
304
+ expect(approvalCriteriaUsesPredeterminedBalances(undefined)).toBe(false);
305
+ });
306
+ it('should return false when predeterminedBalances is undefined', () => {
307
+ expect(approvalCriteriaUsesPredeterminedBalances({})).toBe(false);
308
+ });
309
+ it('should return false when both startBalances and manualBalances are empty', () => {
310
+ expect(approvalCriteriaUsesPredeterminedBalances({
311
+ predeterminedBalances: {
312
+ incrementedBalances: { startBalances: [] },
313
+ manualBalances: []
314
+ }
315
+ })).toBe(false);
316
+ });
317
+ it('should return true when startBalances is non-empty', () => {
318
+ expect(approvalCriteriaUsesPredeterminedBalances({
319
+ predeterminedBalances: {
320
+ incrementedBalances: { startBalances: [{ amount: 1n }] },
321
+ manualBalances: []
322
+ }
323
+ })).toBe(true);
324
+ });
325
+ it('should return true when manualBalances is non-empty', () => {
326
+ expect(approvalCriteriaUsesPredeterminedBalances({
327
+ predeterminedBalances: {
328
+ incrementedBalances: { startBalances: [] },
329
+ manualBalances: [{ balances: [] }]
330
+ }
331
+ })).toBe(true);
332
+ });
333
+ });
334
+ describe('approvalCriteriaHasNoAmountRestrictions', () => {
335
+ it('should return true for undefined criteria', () => {
336
+ expect(approvalCriteriaHasNoAmountRestrictions(undefined)).toBe(true);
337
+ });
338
+ it('should return true when no amounts, no max transfers, no predetermined', () => {
339
+ expect(approvalCriteriaHasNoAmountRestrictions({
340
+ approvalAmounts: undefined,
341
+ maxNumTransfers: undefined,
342
+ predeterminedBalances: undefined
343
+ })).toBe(true);
344
+ });
345
+ it('should return false when approval amounts are set', () => {
346
+ expect(approvalCriteriaHasNoAmountRestrictions({
347
+ approvalAmounts: {
348
+ overallApprovalAmount: 100n,
349
+ perFromAddressApprovalAmount: 0n,
350
+ perToAddressApprovalAmount: 0n,
351
+ perInitiatedByAddressApprovalAmount: 0n
352
+ },
353
+ maxNumTransfers: undefined,
354
+ predeterminedBalances: undefined
355
+ })).toBe(false);
356
+ });
357
+ it('should return false when max num transfers are set', () => {
358
+ expect(approvalCriteriaHasNoAmountRestrictions({
359
+ approvalAmounts: undefined,
360
+ maxNumTransfers: {
361
+ overallMaxNumTransfers: 1n,
362
+ perFromAddressMaxNumTransfers: 0n,
363
+ perToAddressMaxNumTransfers: 0n,
364
+ perInitiatedByAddressMaxNumTransfers: 0n
365
+ },
366
+ predeterminedBalances: undefined
367
+ })).toBe(false);
368
+ });
369
+ it('should return false when predetermined balances are set', () => {
370
+ expect(approvalCriteriaHasNoAmountRestrictions({
371
+ approvalAmounts: undefined,
372
+ maxNumTransfers: undefined,
373
+ predeterminedBalances: {
374
+ incrementedBalances: { startBalances: [{ amount: 1n }] },
375
+ manualBalances: []
376
+ }
377
+ })).toBe(false);
378
+ });
379
+ });
380
+ describe('isAutoScannable', () => {
381
+ it('should return true for undefined criteria', () => {
382
+ expect(isAutoScannable(undefined)).toBe(true);
383
+ });
384
+ it('should return true when approval has no side effects', () => {
385
+ expect(isAutoScannable({
386
+ mustPrioritize: false,
387
+ coinTransfers: [],
388
+ merkleChallenges: [],
389
+ ethSignatureChallenges: [],
390
+ predeterminedBalances: undefined
391
+ })).toBe(true);
392
+ });
393
+ it('should return false when mustPrioritize is true', () => {
394
+ expect(isAutoScannable({
395
+ mustPrioritize: true,
396
+ coinTransfers: [],
397
+ merkleChallenges: [],
398
+ ethSignatureChallenges: []
399
+ })).toBe(false);
400
+ });
401
+ it('should return false when coinTransfers is non-empty', () => {
402
+ expect(isAutoScannable({
403
+ mustPrioritize: false,
404
+ coinTransfers: [{ to: 'addr', coins: [] }],
405
+ merkleChallenges: [],
406
+ ethSignatureChallenges: []
407
+ })).toBe(false);
408
+ });
409
+ it('should return false when merkleChallenges is non-empty', () => {
410
+ expect(isAutoScannable({
411
+ mustPrioritize: false,
412
+ coinTransfers: [],
413
+ merkleChallenges: [{ root: 'abc' }],
414
+ ethSignatureChallenges: []
415
+ })).toBe(false);
416
+ });
417
+ it('should return false when ethSignatureChallenges is non-empty', () => {
418
+ expect(isAutoScannable({
419
+ mustPrioritize: false,
420
+ coinTransfers: [],
421
+ merkleChallenges: [],
422
+ ethSignatureChallenges: [{ signer: '0x...' }]
423
+ })).toBe(false);
424
+ });
425
+ it('should return false when predeterminedBalances has non-nil incremented balances', () => {
426
+ expect(isAutoScannable({
427
+ mustPrioritize: false,
428
+ coinTransfers: [],
429
+ merkleChallenges: [],
430
+ ethSignatureChallenges: [],
431
+ predeterminedBalances: {
432
+ incrementedBalances: {
433
+ startBalances: [{ amount: 1n }],
434
+ allowOverrideWithAnyValidToken: false,
435
+ allowOverrideTimestamp: false,
436
+ incrementTokenIdsBy: 0n,
437
+ incrementOwnershipTimesBy: 0n,
438
+ durationFromTimestamp: 0n,
439
+ recurringOwnershipTimes: { startTime: 0n, intervalLength: 0n }
440
+ },
441
+ manualBalances: [],
442
+ orderCalculationMethod: {}
443
+ }
444
+ })).toBe(false);
445
+ });
446
+ });
447
+ describe('isWrapperApproval', () => {
448
+ it('should return true for a valid wrapper approval', () => {
449
+ const approval = makeApproval();
450
+ const pathObj = makePathObj();
451
+ expect(isWrapperApproval(approval, pathObj)).toBe(true);
452
+ });
453
+ it('should return false when sideB has more than 1 balance', () => {
454
+ const pathObj = new CosmosCoinWrapperPath({
455
+ address: WRAPPER_ADDRESS,
456
+ denom: 'ubadge',
457
+ conversion: new ConversionWithoutDenom({
458
+ sideA: { amount: 1000n },
459
+ sideB: [
460
+ { amount: 1n, tokenIds: [{ start: 1n, end: 1n }], ownershipTimes: [{ start: 1n, end: 100n }] },
461
+ { amount: 2n, tokenIds: [{ start: 2n, end: 2n }], ownershipTimes: [{ start: 1n, end: 100n }] }
462
+ ]
463
+ }),
464
+ symbol: 'BADGE',
465
+ denomUnits: [],
466
+ allowOverrideWithAnyValidToken: false,
467
+ metadata: new PathMetadata({ uri: '', customData: '' })
468
+ });
469
+ const approval = makeApproval();
470
+ expect(isWrapperApproval(approval, pathObj)).toBe(false);
471
+ });
472
+ it('should return false when toList does not contain wrapper address', () => {
473
+ const approval = makeApproval({
474
+ toListAddresses: ['bb1someotheraddress'],
475
+ toListWhitelist: true
476
+ });
477
+ const pathObj = makePathObj();
478
+ expect(isWrapperApproval(approval, pathObj)).toBe(false);
479
+ });
480
+ it('should return false when tokenIds do not match', () => {
481
+ const approval = makeApproval({
482
+ tokenIds: [{ start: 5n, end: 10n }]
483
+ });
484
+ const pathObj = makePathObj();
485
+ expect(isWrapperApproval(approval, pathObj)).toBe(false);
486
+ });
487
+ it('should return false when ownershipTimes length does not match', () => {
488
+ const approval = makeApproval({
489
+ ownershipTimes: [
490
+ { start: 1n, end: 50n },
491
+ { start: 51n, end: 100n }
492
+ ]
493
+ });
494
+ const pathObj = makePathObj();
495
+ expect(isWrapperApproval(approval, pathObj)).toBe(false);
496
+ });
497
+ it('should return false when ownershipTimes values do not match', () => {
498
+ const approval = makeApproval({
499
+ ownershipTimes: [{ start: 1n, end: 200n }]
500
+ });
501
+ const pathObj = makePathObj();
502
+ expect(isWrapperApproval(approval, pathObj)).toBe(false);
503
+ });
504
+ it('should return false when overridesToIncomingApprovals is true', () => {
505
+ const approval = makeApproval({
506
+ approvalCriteria: { overridesToIncomingApprovals: true }
507
+ });
508
+ const pathObj = makePathObj();
509
+ expect(isWrapperApproval(approval, pathObj)).toBe(false);
510
+ });
511
+ it('should return false when allowSpecialWrapping is false', () => {
512
+ const approval = makeApproval({
513
+ approvalCriteria: { allowSpecialWrapping: false }
514
+ });
515
+ const pathObj = makePathObj();
516
+ expect(isWrapperApproval(approval, pathObj)).toBe(false);
517
+ });
518
+ it('should return false when approval has additional restrictions (merkleChallenges)', () => {
519
+ const approval = makeApproval();
520
+ approval.approvalCriteria = { merkleChallenges: [{ root: 'abc' }], coinTransfers: [], mustOwnTokens: [], dynamicStoreChallenges: [], ethSignatureChallenges: [] };
521
+ const pathObj = makePathObj();
522
+ expect(isWrapperApproval(approval, pathObj)).toBe(false);
523
+ });
524
+ it('should skip path validation when skipPathValidation is true', () => {
525
+ const approval = makeApproval({
526
+ toListAddresses: ['bb1someotheraddress'],
527
+ toListWhitelist: true,
528
+ tokenIds: [{ start: 999n, end: 999n }]
529
+ });
530
+ const pathObj = makePathObj();
531
+ expect(isWrapperApproval(approval, pathObj, { skipPathValidation: true })).toBe(true);
532
+ });
533
+ it('should use validTokenIds when allowOverrideWithAnyValidToken is true', () => {
534
+ const pathObj = makePathObj({ allowOverride: true });
535
+ const approval = makeApproval({
536
+ tokenIds: [{ start: 1n, end: 50n }]
537
+ });
538
+ expect(isWrapperApproval(approval, pathObj, { validTokenIds: [{ start: 1n, end: 50n }] })).toBe(true);
539
+ });
540
+ it('should return false when allowOverride is true and validTokenIds do not match', () => {
541
+ const pathObj = makePathObj({ allowOverride: true });
542
+ const approval = makeApproval({
543
+ tokenIds: [{ start: 1n, end: 50n }]
544
+ });
545
+ expect(isWrapperApproval(approval, pathObj, { validTokenIds: [{ start: 1n, end: 100n }] })).toBe(false);
546
+ });
547
+ });
548
+ describe('isUnwrapperApproval', () => {
549
+ it('should return true for a valid unwrapper approval', () => {
550
+ const approval = makeApproval({
551
+ fromListId: 'custom-from',
552
+ fromListAddresses: [WRAPPER_ADDRESS],
553
+ fromListWhitelist: true
554
+ });
555
+ const pathObj = makePathObj();
556
+ expect(isUnwrapperApproval(approval, pathObj)).toBe(true);
557
+ });
558
+ it('should return false when fromList does not contain wrapper address', () => {
559
+ const approval = makeApproval({
560
+ fromListId: 'custom-from',
561
+ fromListAddresses: ['bb1someotheraddress'],
562
+ fromListWhitelist: true
563
+ });
564
+ const pathObj = makePathObj();
565
+ expect(isUnwrapperApproval(approval, pathObj)).toBe(false);
566
+ });
567
+ it('should return false when overridesFromOutgoingApprovals is true', () => {
568
+ const approval = makeApproval({
569
+ fromListId: 'custom-from',
570
+ fromListAddresses: [WRAPPER_ADDRESS],
571
+ fromListWhitelist: true,
572
+ approvalCriteria: { overridesFromOutgoingApprovals: true }
573
+ });
574
+ const pathObj = makePathObj();
575
+ expect(isUnwrapperApproval(approval, pathObj)).toBe(false);
576
+ });
577
+ it('should return false when allowSpecialWrapping is false', () => {
578
+ const approval = makeApproval({
579
+ fromListId: 'custom-from',
580
+ fromListAddresses: [WRAPPER_ADDRESS],
581
+ fromListWhitelist: true,
582
+ approvalCriteria: { allowSpecialWrapping: false }
583
+ });
584
+ const pathObj = makePathObj();
585
+ expect(isUnwrapperApproval(approval, pathObj)).toBe(false);
586
+ });
587
+ it('should skip path validation when skipPathValidation is true', () => {
588
+ const approval = makeApproval({
589
+ fromListId: 'custom-from',
590
+ fromListAddresses: ['bb1someotheraddress'],
591
+ fromListWhitelist: true,
592
+ tokenIds: [{ start: 999n, end: 999n }]
593
+ });
594
+ const pathObj = makePathObj();
595
+ expect(isUnwrapperApproval(approval, pathObj, { skipPathValidation: true })).toBe(true);
596
+ });
597
+ it('should return false when sideB has more than 1 balance (unwrapper)', () => {
598
+ const pathObj = new CosmosCoinWrapperPath({
599
+ address: WRAPPER_ADDRESS,
600
+ denom: 'ubadge',
601
+ conversion: new ConversionWithoutDenom({
602
+ sideA: { amount: 1000n },
603
+ sideB: [
604
+ { amount: 1n, tokenIds: [{ start: 1n, end: 1n }], ownershipTimes: [{ start: 1n, end: 100n }] },
605
+ { amount: 2n, tokenIds: [{ start: 2n, end: 2n }], ownershipTimes: [{ start: 1n, end: 100n }] }
606
+ ]
607
+ }),
608
+ symbol: 'BADGE',
609
+ denomUnits: [],
610
+ allowOverrideWithAnyValidToken: false,
611
+ metadata: new PathMetadata({ uri: '', customData: '' })
612
+ });
613
+ const approval = makeApproval({
614
+ fromListId: 'custom-from',
615
+ fromListAddresses: [WRAPPER_ADDRESS],
616
+ fromListWhitelist: true
617
+ });
618
+ expect(isUnwrapperApproval(approval, pathObj)).toBe(false);
619
+ });
620
+ });
621
+ //# sourceMappingURL=cosmos-wrappers.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cosmos-wrappers.spec.js","sourceRoot":"","sources":["../../../src/core/cosmos-wrappers.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=managersplitter.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managersplitter.spec.d.ts","sourceRoot":"","sources":["../../../src/core/managersplitter.spec.ts"],"names":[],"mappings":""}