@@ -179,6 +179,13 @@ module initia_std::vip_reward {
179
179
remaining_reward: u64 ,
180
180
initial_reward: u64
181
181
}
182
+
183
+ struct VestingChange has drop , store {
184
+ vesting_start_stage: u64 ,
185
+ initial_reward: u64 ,
186
+ remaining_reward: u64 ,
187
+ }
188
+
182
189
//
183
190
// Events
184
191
//
@@ -194,10 +201,10 @@ module initia_std::vip_reward {
194
201
vesting_reward_amount: u64 ,
195
202
// accumulated claimed vesting reward that was previously distributed.
196
203
vested_reward_amount: u64 ,
197
- // reward coin metadata
198
- metadata: Object <Metadata >,
199
204
// l2 score
200
205
l2_score: u64 ,
206
+ // vesting changes
207
+ vesting_changes: vector <VestingChange >,
201
208
}
202
209
203
210
struct FundEvent has drop , store {
@@ -207,15 +214,6 @@ module initia_std::vip_reward {
207
214
reward_amount: u64 ,
208
215
}
209
216
210
- struct VestingEvent has drop , store {
211
- account: address ,
212
- bridge_id: u64 ,
213
- claim_stage: u64 ,
214
- vesting_start_stage: u64 ,
215
- initial_reward: u64 ,
216
- remaining_reward: u64 ,
217
- }
218
-
219
217
//
220
218
// Heldper Functions
221
219
//
@@ -419,12 +417,11 @@ module initia_std::vip_reward {
419
417
}
420
418
421
419
fun vest_reward (
422
- account: address ,
423
- bridge_id: u64 ,
424
420
stage: u64 ,
425
421
l2_score: u64 ,
426
422
vestings: &mut table::Table <vector <u8 >, VestingScore >,
427
423
vestings_finalized: &mut table::Table <vector <u8 >, VestingScore >,
424
+ vesting_changes: &mut vector <VestingChange >,
428
425
) : u64 {
429
426
let vested_reward = 0u64 ;
430
427
let iter = table::iter_mut (vestings, option::none (), option::none (), 1 );
@@ -451,22 +448,16 @@ module initia_std::vip_reward {
451
448
//
452
449
// vest_ratio = max_ratio * score_ratio
453
450
// vest_amount = value.initial_reward * vest_ratio
454
-
455
451
let vest_amount = calculate_vest (value, l2_score);
456
452
457
453
vested_reward = vested_reward + vest_amount;
458
454
value.remaining_reward = value.remaining_reward - vest_amount;
459
455
460
- event::emit (
461
- VestingEvent {
462
- account,
463
- bridge_id,
464
- claim_stage: stage,
465
- vesting_start_stage: value.start_stage,
466
- initial_reward: value.initial_reward,
467
- remaining_reward: value.remaining_reward,
468
- }
469
- );
456
+ vector ::push_back (vesting_changes, VestingChange {
457
+ vesting_start_stage: value.start_stage,
458
+ initial_reward: value.initial_reward,
459
+ remaining_reward: value.remaining_reward,
460
+ });
470
461
};
471
462
vested_reward
472
463
}
@@ -518,13 +509,13 @@ module initia_std::vip_reward {
518
509
519
510
// Vest previous vesting rewards.
520
511
let reward_signer = &object::generate_signer_for_extending (&reward_store.extend_ref);
512
+ let vesting_changes = vector ::empty <VestingChange >();
521
513
let amount = vest_reward (
522
- account_addr,
523
- bridge_id,
524
514
stage,
525
515
l2_score,
526
516
&mut vesting_store.vestings,
527
517
&mut vesting_store.vestings_finalized,
518
+ &mut vesting_changes,
528
519
);
529
520
let vested_reward = fungible_asset::withdraw (reward_signer, reward_store.reward, amount);
530
521
@@ -555,8 +546,8 @@ module initia_std::vip_reward {
555
546
stage,
556
547
vesting_reward_amount,
557
548
vested_reward_amount: fungible_asset::amount (&vested_reward),
558
- metadata: reward_metadata () ,
559
- l2_score
549
+ l2_score ,
550
+ vesting_changes,
560
551
}
561
552
);
562
553
0 commit comments