@@ -610,7 +610,17 @@ func TestContextualScheduler_NoPrivacyWithdraw(t *testing.T) {
610
610
}
611
611
}
612
612
613
- forceSimulateFeePayment := func (env * schedulerTestEnv , transfer * fulfillment.Record , fulfillmentRecords []* fulfillment.Record ) {
613
+ forceSimulateOneFeePayments := func (env * schedulerTestEnv , transfer * fulfillment.Record , fulfillmentRecords []* fulfillment.Record ) {
614
+ for _ , fulfillmentRecord := range fulfillmentRecords {
615
+ if fulfillmentRecord .FulfillmentType == fulfillment .NoPrivacyTransferWithAuthority && fulfillmentRecord .Source == transfer .Source {
616
+ fulfillmentRecord .State = fulfillment .StateConfirmed
617
+ env .data .UpdateFulfillment (env .ctx , fulfillmentRecord )
618
+ break
619
+ }
620
+ }
621
+ }
622
+
623
+ forceSimulateAllFeePayments := func (env * schedulerTestEnv , transfer * fulfillment.Record , fulfillmentRecords []* fulfillment.Record ) {
614
624
for _ , fulfillmentRecord := range fulfillmentRecords {
615
625
if fulfillmentRecord .FulfillmentType == fulfillment .NoPrivacyTransferWithAuthority && fulfillmentRecord .Source == transfer .Source {
616
626
fulfillmentRecord .State = fulfillment .StateConfirmed
@@ -632,7 +642,7 @@ func TestContextualScheduler_NoPrivacyWithdraw(t *testing.T) {
632
642
simulation : func (env * schedulerTestEnv , transfer * fulfillment.Record , fulfillmentRecords []* fulfillment.Record ) {
633
643
simulateOpeningSourceAccount (env , transfer , fulfillmentRecords )
634
644
simulateOpeningDestinationAccount (env , transfer , fulfillmentRecords )
635
- forceSimulateFeePayment (env , transfer , fulfillmentRecords )
645
+ forceSimulateAllFeePayments (env , transfer , fulfillmentRecords )
636
646
},
637
647
expected : false ,
638
648
},
@@ -642,7 +652,7 @@ func TestContextualScheduler_NoPrivacyWithdraw(t *testing.T) {
642
652
simulateOpeningSourceAccount (env , transfer , fulfillmentRecords )
643
653
simulateOpeningDestinationAccount (env , transfer , fulfillmentRecords )
644
654
simulateOneTreasuryPayment (env , transfer , fulfillmentRecords )
645
- forceSimulateFeePayment (env , transfer , fulfillmentRecords )
655
+ forceSimulateAllFeePayments (env , transfer , fulfillmentRecords )
646
656
},
647
657
expected : false ,
648
658
},
@@ -651,21 +661,21 @@ func TestContextualScheduler_NoPrivacyWithdraw(t *testing.T) {
651
661
simulation : func (env * schedulerTestEnv , transfer * fulfillment.Record , fulfillmentRecords []* fulfillment.Record ) {
652
662
simulateOpeningSourceAccount (env , transfer , fulfillmentRecords )
653
663
simulateAllTreasuryPayments (env , transfer , fulfillmentRecords )
654
- forceSimulateFeePayment (env , transfer , fulfillmentRecords )
664
+ forceSimulateAllFeePayments (env , transfer , fulfillmentRecords )
655
665
},
656
666
expected : false ,
657
667
},
658
668
{
659
669
// Source user account not opened
660
670
simulation : func (env * schedulerTestEnv , transfer * fulfillment.Record , fulfillmentRecords []* fulfillment.Record ) {
661
671
forceSimulateAllTreasuryPayments (env , transfer , fulfillmentRecords )
662
- forceSimulateFeePayment (env , transfer , fulfillmentRecords )
672
+ forceSimulateAllFeePayments (env , transfer , fulfillmentRecords )
663
673
simulateOpeningDestinationAccount (env , transfer , fulfillmentRecords )
664
674
},
665
675
expected : false ,
666
676
},
667
677
{
668
- // Fee payment not confirmed
678
+ // All fee payments not confirmed
669
679
simulation : func (env * schedulerTestEnv , transfer * fulfillment.Record , fulfillmentRecords []* fulfillment.Record ) {
670
680
simulateOpeningSourceAccount (env , transfer , fulfillmentRecords )
671
681
simulateOpeningDestinationAccount (env , transfer , fulfillmentRecords )
@@ -674,11 +684,21 @@ func TestContextualScheduler_NoPrivacyWithdraw(t *testing.T) {
674
684
expected : false ,
675
685
},
676
686
{
687
+ // Subset of fee payments not confirmed
677
688
simulation : func (env * schedulerTestEnv , transfer * fulfillment.Record , fulfillmentRecords []* fulfillment.Record ) {
678
689
simulateOpeningSourceAccount (env , transfer , fulfillmentRecords )
679
690
simulateOpeningDestinationAccount (env , transfer , fulfillmentRecords )
680
691
simulateAllTreasuryPayments (env , transfer , fulfillmentRecords )
681
- forceSimulateFeePayment (env , transfer , fulfillmentRecords )
692
+ forceSimulateOneFeePayments (env , transfer , fulfillmentRecords )
693
+ },
694
+ expected : false ,
695
+ },
696
+ {
697
+ simulation : func (env * schedulerTestEnv , transfer * fulfillment.Record , fulfillmentRecords []* fulfillment.Record ) {
698
+ simulateOpeningSourceAccount (env , transfer , fulfillmentRecords )
699
+ simulateOpeningDestinationAccount (env , transfer , fulfillmentRecords )
700
+ simulateAllTreasuryPayments (env , transfer , fulfillmentRecords )
701
+ forceSimulateAllFeePayments (env , transfer , fulfillmentRecords )
682
702
},
683
703
expected : true ,
684
704
},
@@ -2306,14 +2326,21 @@ func (e *schedulerTestEnv) setupSchedulerTest(t *testing.T, intentRecords []*int
2306
2326
bucketActionRecords = append (bucketActionRecords , bucketReorganization )
2307
2327
}
2308
2328
2309
- var feePaymentAction * action.Record
2329
+ var feePaymentActions [] * action.Record
2310
2330
if intentRecord .SendPrivatePaymentMetadata .IsMicroPayment {
2311
- feePaymentAction = & action.Record {
2312
- ActionType : action .NoPrivacyTransfer ,
2313
-
2314
- Source : fmt .Sprintf ("%s-outgoing-%d" , intentRecord .InitiatorOwnerAccount , currentOutgoingByUser [intentRecord .InitiatorOwnerAccount ]),
2315
- Destination : & codeFeeCollector ,
2316
- Quantity : & feeAmount ,
2331
+ feePaymentActions = []* action.Record {
2332
+ {
2333
+ ActionType : action .NoPrivacyTransfer ,
2334
+ Source : fmt .Sprintf ("%s-outgoing-%d" , intentRecord .InitiatorOwnerAccount , currentOutgoingByUser [intentRecord .InitiatorOwnerAccount ]),
2335
+ Destination : & codeFeeCollector ,
2336
+ Quantity : & feeAmount ,
2337
+ },
2338
+ {
2339
+ ActionType : action .NoPrivacyTransfer ,
2340
+ Source : fmt .Sprintf ("%s-outgoing-%d" , intentRecord .InitiatorOwnerAccount , currentOutgoingByUser [intentRecord .InitiatorOwnerAccount ]),
2341
+ Destination : pointer .String (testutil .NewRandomAccount (t ).PublicKey ().ToBase58 ()),
2342
+ Quantity : & feeAmount ,
2343
+ },
2317
2344
}
2318
2345
}
2319
2346
@@ -2343,8 +2370,8 @@ func (e *schedulerTestEnv) setupSchedulerTest(t *testing.T, intentRecords []*int
2343
2370
newActionRecords ,
2344
2371
bucketActionRecords ... ,
2345
2372
)
2346
- if feePaymentAction != nil {
2347
- newActionRecords = append (newActionRecords , feePaymentAction )
2373
+ if feePaymentActions != nil {
2374
+ newActionRecords = append (newActionRecords , feePaymentActions ... )
2348
2375
}
2349
2376
newActionRecords = append (
2350
2377
newActionRecords ,
0 commit comments