Skip to content

Commit 4ca67fe

Browse files
Merge pull request #824 from 0xsend/dev
deploy
2 parents add3d86 + 5cb6ae4 commit 4ca67fe

14 files changed

+1299
-670
lines changed

apps/distributor/src/distributorv2.test.ts

+9
Original file line numberDiff line numberDiff line change
@@ -214,49 +214,58 @@ describe('Distributor V2 Worker', () => {
214214
{
215215
user_id,
216216
type: 'tag_referral',
217+
weight: 1,
217218
},
218219

219220
{
220221
user_id,
221222
type: 'tag_registration',
223+
weight: 1,
222224
},
223225
{
224226
user_id,
225227
type: 'send_ten',
228+
weight: 1,
226229
},
227230
{
228231
user_id,
229232
type: 'send_one_hundred',
233+
weight: 1,
230234
},
231235
{
232236
user_id,
233237
type: 'total_tag_referrals',
234238
metadata: {
235239
value: 2,
236240
},
241+
weight: 2,
237242
},
238243
{
239244
user_id: user_id,
240245
type: 'send_streak',
241246
metadata: {
242247
value: 5,
243248
},
249+
weight: 5,
244250
},
245251
// alice only has tag_registration
246252
{
247253
user_id: user_id2,
248254
type: 'tag_registration',
255+
weight: 1,
249256
},
250257
{
251258
user_id: user_id2,
252259
type: 'send_ten',
260+
weight: 1,
253261
},
254262
{
255263
user_id: user_id2,
256264
type: 'total_tag_referrals',
257265
metadata: {
258266
value: 5,
259267
},
268+
weight: 5,
260269
},
261270
],
262271
count: 10,

apps/distributor/src/distributorv2.ts

+29-45
Original file line numberDiff line numberDiff line change
@@ -303,10 +303,11 @@ export class DistributorV2Worker {
303303
for (const verification of verifications) {
304304
const verificationValue = verificationValues[verification.type]
305305
if (!verificationValue) continue
306+
306307
// Initialize or update multiplier info
307308
if (
308309
!multipliers[verification.type] &&
309-
(verificationValue.multiplier_step > 0 || verificationValue.multiplier_min > 0)
310+
(verificationValue.multiplier_step > 0 || verificationValue.multiplier_min > 0) //@todo: should have a better way to tell if multipliers are enabled
310311
) {
311312
multipliers[verification.type] = {
312313
value: undefined,
@@ -317,50 +318,33 @@ export class DistributorV2Worker {
317318
}
318319
const multiplierInfo = multipliers[verification.type]
319320

320-
switch (verificationValue.mode) {
321-
case 'individual':
322-
// Calculate fixed amount
323-
if (verificationValue.fixedValue) {
324-
userFixedAmount += verificationValue.fixedValue
325-
}
326-
if (!multiplierInfo) {
327-
break
328-
}
329-
if (multiplierInfo.value === undefined) {
330-
multiplierInfo.value = multiplierInfo.min
331-
break
332-
}
333-
if (multiplierInfo.value > multiplierInfo.max) {
334-
multiplierInfo.value = multiplierInfo.max
335-
break
336-
}
337-
if (multiplierInfo.value < multiplierInfo.max) {
338-
multiplierInfo.value += multiplierInfo.step
339-
}
340-
break
341-
case 'aggregate': {
342-
// @ts-expect-error this is json
343-
const value = verification.metadata?.value ?? 0
344-
if (verificationValue.fixedValue) {
345-
userFixedAmount += verificationValue.fixedValue * BigInt(value)
346-
}
347-
348-
if (!multiplierInfo) {
349-
break
350-
}
351-
// Minus 1 from the value so 1 = multiplier min
352-
if (value > 0) {
353-
multiplierInfo.value = Math.min(
354-
multiplierInfo.min + (value - 1) * multiplierInfo.step,
355-
multiplierInfo.max
356-
)
357-
} else {
358-
multiplierInfo.value = 1.0
359-
}
360-
break
321+
const weight = verification.weight
322+
323+
// Calculate fixed amount
324+
if (verificationValue.fixedValue) {
325+
userFixedAmount += verificationValue.fixedValue * BigInt(weight)
326+
}
327+
328+
if (!multiplierInfo) {
329+
continue
330+
}
331+
332+
if (weight === 1) {
333+
// Individual behavior
334+
if (multiplierInfo.value === undefined) {
335+
multiplierInfo.value = multiplierInfo.min
336+
} else if (multiplierInfo.value < multiplierInfo.max) {
337+
multiplierInfo.value = Math.min(
338+
multiplierInfo.value + multiplierInfo.step,
339+
multiplierInfo.max
340+
)
361341
}
362-
default:
363-
throw new Error(`Unknown verification value mode: ${verificationValue.mode}`)
342+
} else {
343+
// Aggregate behavior
344+
multiplierInfo.value = Math.min(
345+
multiplierInfo.min + (weight - 1) * multiplierInfo.step,
346+
multiplierInfo.max
347+
)
364348
}
365349
}
366350

@@ -504,7 +488,7 @@ export class DistributorV2Worker {
504488
} catch (error) {
505489
this.log.error(error, `Error processing block. ${(error as Error).message}`)
506490
}
507-
await sleep(60_000)
491+
await sleep(21_600_000)
508492
}
509493

510494
this.log.info('Distributor stopped.')

packages/app/features/account/rewards/activity/__snapshots__/screen.test.tsx.snap

+2-43
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@ exports[`ActivityRewardsScreen renders: ActivityRewardsScreen 1`] = `
315315
}
316316
suppressHighlighting={true}
317317
>
318-
Min. Balance
318+
Sendtag Registered
319319
</Text>
320320
<RNSVGSvgView
321321
align="xMidYMid"
@@ -457,7 +457,7 @@ exports[`ActivityRewardsScreen renders: ActivityRewardsScreen 1`] = `
457457
}
458458
suppressHighlighting={true}
459459
>
460-
Sendtag Registered
460+
Min. Balance
461461
</Text>
462462
<RNSVGSvgView
463463
align="xMidYMid"
@@ -621,47 +621,6 @@ exports[`ActivityRewardsScreen renders: ActivityRewardsScreen 1`] = `
621621
}
622622
/>
623623
</View>
624-
<View
625-
style={
626-
{
627-
"flex": 1,
628-
"flexDirection": "column",
629-
"gap": 24,
630-
"width": "100%",
631-
}
632-
}
633-
>
634-
<Text
635-
accessibilityRole="header"
636-
style={
637-
{
638-
"color": "#FFFFFF",
639-
"fontFamily": "System",
640-
"fontSize": 23,
641-
"fontWeight": "600",
642-
"lineHeight": 27,
643-
"marginBottom": 0,
644-
"marginLeft": 0,
645-
"marginRight": 0,
646-
"marginTop": 0,
647-
"textTransform": "none",
648-
"userSelect": "auto",
649-
}
650-
}
651-
suppressHighlighting={true}
652-
>
653-
Multiplier
654-
</Text>
655-
<View
656-
style={
657-
{
658-
"flexDirection": "row",
659-
"flexWrap": "wrap",
660-
"gap": 24,
661-
}
662-
}
663-
/>
664-
</View>
665624
<View
666625
style={
667626
{

0 commit comments

Comments
 (0)