@@ -81,31 +81,31 @@ type EpochStart struct {
81
81
type EpochStartEvent flow.Event
82
82
83
83
func (evt EpochStartEvent ) Counter () cadence.UInt64 {
84
- return evt .Value . Fields [ 0 ] .(cadence.UInt64 )
84
+ return cadence . SearchFieldByName ( evt .Value , "counter" ) .(cadence.UInt64 )
85
85
}
86
86
87
87
func (evt EpochStartEvent ) firstView () cadence.UInt64 {
88
- return evt .Value . Fields [ 1 ] .(cadence.UInt64 )
88
+ return cadence . SearchFieldByName ( evt .Value , "firstView" ) .(cadence.UInt64 )
89
89
}
90
90
91
91
func (evt EpochStartEvent ) stakingEndView () cadence.UInt64 {
92
- return evt .Value . Fields [ 2 ] .(cadence.UInt64 )
92
+ return cadence . SearchFieldByName ( evt .Value , "stakingAuctionEndView" ) .(cadence.UInt64 )
93
93
}
94
94
95
95
func (evt EpochStartEvent ) finalView () cadence.UInt64 {
96
- return evt .Value . Fields [ 3 ] .(cadence.UInt64 )
96
+ return cadence . SearchFieldByName ( evt .Value , "finalView" ) .(cadence.UInt64 )
97
97
}
98
98
99
99
func (evt EpochStartEvent ) totalStaked () cadence.UFix64 {
100
- return evt .Value . Fields [ 4 ] .(cadence.UFix64 )
100
+ return cadence . SearchFieldByName ( evt .Value , "totalStaked" ) .(cadence.UFix64 )
101
101
}
102
102
103
103
func (evt EpochStartEvent ) totalSupply () cadence.UFix64 {
104
- return evt .Value . Fields [ 5 ] .(cadence.UFix64 )
104
+ return cadence . SearchFieldByName ( evt .Value , "totalFlowSupply" ) .(cadence.UFix64 )
105
105
}
106
106
107
107
func (evt EpochStartEvent ) rewards () cadence.UFix64 {
108
- return evt .Value . Fields [ 6 ] .(cadence.UFix64 )
108
+ return cadence . SearchFieldByName ( evt .Value , "totalRewards" ) .(cadence.UFix64 )
109
109
}
110
110
111
111
// / Used to verify the EpochSetup event fields in tests
@@ -136,54 +136,54 @@ type EpochCommit struct {
136
136
type EpochSetupEvent flow.Event
137
137
138
138
func (evt EpochSetupEvent ) Counter () cadence.UInt64 {
139
- return evt .Value . Fields [ 0 ] .(cadence.UInt64 )
139
+ return cadence . SearchFieldByName ( evt .Value , "counter" ) .(cadence.UInt64 )
140
140
}
141
141
142
142
func (evt EpochSetupEvent ) NodeInfo () cadence.Array {
143
- return evt .Value . Fields [ 1 ] .(cadence.Array )
143
+ return cadence . SearchFieldByName ( evt .Value , "nodeInfo" ) .(cadence.Array )
144
144
}
145
145
146
146
func (evt EpochSetupEvent ) firstView () cadence.UInt64 {
147
- return evt .Value . Fields [ 2 ] .(cadence.UInt64 )
147
+ return cadence . SearchFieldByName ( evt .Value , "firstView" ) .(cadence.UInt64 )
148
148
}
149
149
150
150
func (evt EpochSetupEvent ) finalView () cadence.UInt64 {
151
- return evt .Value . Fields [ 3 ] .(cadence.UInt64 )
151
+ return cadence . SearchFieldByName ( evt .Value , "finalView" ) .(cadence.UInt64 )
152
152
}
153
153
154
154
func (evt EpochSetupEvent ) collectorClusters () cadence.Array {
155
- return evt .Value . Fields [ 4 ] .(cadence.Array )
155
+ return cadence . SearchFieldByName ( evt .Value , "collectorClusters" ) .(cadence.Array )
156
156
}
157
157
158
158
func (evt EpochSetupEvent ) randomSource () cadence.String {
159
- return evt .Value . Fields [ 5 ] .(cadence.String )
159
+ return cadence . SearchFieldByName ( evt .Value , "randomSource" ) .(cadence.String )
160
160
}
161
161
162
162
func (evt EpochSetupEvent ) dkgFinalViews () (cadence.UInt64 , cadence.UInt64 , cadence.UInt64 ) {
163
- fields := evt .Value . Fields
164
- return fields [6 ].(cadence.UInt64 ), fields [7 ].(cadence.UInt64 ), fields [8 ].(cadence.UInt64 )
163
+ fields := cadence . FieldsMappedByName ( evt .Value )
164
+ return fields ["DKGPhase1FinalView" ].(cadence.UInt64 ), fields ["DKGPhase2FinalView" ].(cadence.UInt64 ), fields ["DKGPhase3FinalView" ].(cadence.UInt64 )
165
165
}
166
166
167
167
func (evt EpochSetupEvent ) targetDuration () cadence.UInt64 {
168
- return evt .Value . Fields [ 9 ] .(cadence.UInt64 )
168
+ return cadence . SearchFieldByName ( evt .Value , "targetDuration" ) .(cadence.UInt64 )
169
169
}
170
170
171
171
func (evt EpochSetupEvent ) targetEndTime () cadence.UInt64 {
172
- return evt .Value . Fields [ 10 ] .(cadence.UInt64 )
172
+ return cadence . SearchFieldByName ( evt .Value , "targetEndTime" ) .(cadence.UInt64 )
173
173
}
174
174
175
175
type EpochCommitEvent flow.Event
176
176
177
177
func (evt EpochCommitEvent ) Counter () cadence.UInt64 {
178
- return evt .Value . Fields [ 0 ] .(cadence.UInt64 )
178
+ return cadence . SearchFieldByName ( evt .Value , "counter" ) .(cadence.UInt64 )
179
179
}
180
180
181
181
func (evt EpochCommitEvent ) clusterQCs () cadence.Array {
182
- return evt .Value . Fields [ 1 ] .(cadence.Array )
182
+ return cadence . SearchFieldByName ( evt .Value , "clusterQCs" ) .(cadence.Array )
183
183
}
184
184
185
185
func (evt EpochCommitEvent ) dkgPubKeys () cadence.Array {
186
- return evt .Value . Fields [ 2 ] .(cadence.Array )
186
+ return cadence . SearchFieldByName ( evt .Value , "dkgPubKeys" ) .(cadence.Array )
187
187
}
188
188
189
189
// / Deploys the Quroum Certificate and Distributed Key Generation contracts to the provided account
@@ -427,13 +427,14 @@ func verifyClusters(
427
427
found := false
428
428
429
429
for _ , actualCluster := range actualClusters {
430
- cluster := actualCluster .(cadence.Struct ).Fields
430
+ cluster := actualCluster .(cadence.Struct )
431
+ clusterFields := cadence .FieldsMappedByName (cluster )
431
432
432
- totalWeight := cluster [ 2 ]
433
+ totalWeight := clusterFields [ "totalWeight" ]
433
434
if cadence .NewUInt64 (expectedCluster .totalWeight ) == totalWeight {
434
435
found = true
435
436
assertEqual (t , cadence .NewUInt64 (expectedCluster .totalWeight ), totalWeight )
436
- size := len (cluster [ 1 ].(cadence.Dictionary ).Pairs )
437
+ size := len (clusterFields [ "nodeWeights" ].(cadence.Dictionary ).Pairs )
437
438
assertEqual (t , cadence .NewUInt16 (expectedCluster .size ), cadence .NewUInt16 (uint16 (size )))
438
439
}
439
440
}
@@ -458,9 +459,10 @@ func verifyClusterQCs(
458
459
i := 0
459
460
for _ , qc := range actualQCs {
460
461
found := false
461
- qcStructSignatures := qc .(cadence.Struct ).Fields [1 ].(cadence.Array ).Values
462
- qcStructMessage := qc .(cadence.Struct ).Fields [2 ].(cadence.String )
463
- qcVoterIDs := qc .(cadence.Struct ).Fields [3 ].(cadence.Array ).Values
462
+ qcStructFields := cadence .FieldsMappedByName (qc .(cadence.Struct ))
463
+ qcStructSignatures := qcStructFields ["voteSignatures" ].(cadence.Array ).Values
464
+ qcStructMessage := qcStructFields ["voteMessage" ].(cadence.String )
465
+ qcVoterIDs := qcStructFields ["voterIDs" ].(cadence.Array ).Values
464
466
465
467
assertEqual (t , len (qcVoterIDs ), len (qcStructSignatures ))
466
468
@@ -494,47 +496,47 @@ func verifyEpochMetadata(
494
496
expectedMetadata EpochMetadata ) {
495
497
496
498
result := executeScriptAndCheck (t , b , templates .GenerateGetEpochMetadataScript (env ), [][]byte {jsoncdc .MustEncode (cadence .UInt64 (expectedMetadata .counter ))})
497
- metadataFields := result .(cadence.Struct ). Fields
499
+ metadataFields := cadence . FieldsMappedByName ( result .(cadence.Struct ))
498
500
499
- counter := metadataFields [0 ]
501
+ counter := metadataFields ["counter" ]
500
502
assertEqual (t , cadence .NewUInt64 (expectedMetadata .counter ), counter )
501
503
502
504
if len (expectedMetadata .seed ) != 0 {
503
- seed := metadataFields [1 ]
505
+ seed := metadataFields ["seed" ]
504
506
cadenceSeed , _ := cadence .NewString (expectedMetadata .seed )
505
507
assertEqual (t , cadenceSeed , seed )
506
508
}
507
509
508
- startView := metadataFields [2 ]
510
+ startView := metadataFields ["startView" ]
509
511
assertEqual (t , cadence .NewUInt64 (expectedMetadata .startView ), startView )
510
512
511
- endView := metadataFields [3 ]
513
+ endView := metadataFields ["endView" ]
512
514
assertEqual (t , cadence .NewUInt64 (expectedMetadata .endView ), endView )
513
515
514
- stakingEndView := metadataFields [4 ]
516
+ stakingEndView := metadataFields ["stakingEndView" ]
515
517
assertEqual (t , cadence .NewUInt64 (expectedMetadata .stakingEndView ), stakingEndView )
516
518
517
- totalRewards := metadataFields [5 ]
519
+ totalRewards := metadataFields ["totalRewards" ]
518
520
assertEqual (t , CadenceUFix64 (expectedMetadata .totalRewards ), totalRewards )
519
521
520
- rewardsArray := metadataFields [6 ].(cadence.Array ).Values
522
+ rewardsArray := metadataFields ["rewardAmounts" ].(cadence.Array ).Values
521
523
if expectedMetadata .rewardsBreakdownArray == 0 {
522
524
assertEqual (t , len (rewardsArray ), 0 )
523
525
}
524
526
525
- rewardsPaid := metadataFields [7 ]
527
+ rewardsPaid := metadataFields ["rewardsPaid" ]
526
528
assertEqual (t , cadence .NewBool (expectedMetadata .rewardsPaid ), rewardsPaid )
527
529
528
530
if expectedMetadata .collectorClusters != nil {
529
- clusters := metadataFields [8 ].(cadence.Array ).Values
531
+ clusters := metadataFields ["collectorClusters" ].(cadence.Array ).Values
530
532
531
533
verifyClusters (t , expectedMetadata .collectorClusters , clusters )
532
534
}
533
535
534
- clusterQCs := metadataFields [9 ].(cadence.Array ).Values
536
+ clusterQCs := metadataFields ["clusterQCs" ].(cadence.Array ).Values
535
537
verifyClusterQCs (t , expectedMetadata .clusterQCs , clusterQCs )
536
538
537
- dkgKeys := metadataFields [10 ].(cadence.Array ).Values
539
+ dkgKeys := metadataFields ["dkgKeys" ].(cadence.Array ).Values
538
540
if expectedMetadata .dkgKeys == nil {
539
541
assert .Empty (t , dkgKeys )
540
542
} else {
@@ -558,12 +560,12 @@ func verifyEpochTimingConfig(
558
560
) {
559
561
560
562
result := executeScriptAndCheck (t , b , templates .GenerateGetEpochTimingConfigScript (env ), nil )
561
- timingConfigFields := result .(cadence.Struct ). Fields
563
+ timingConfigFields := cadence . FieldsMappedByName ( result .(cadence.Struct ))
562
564
563
565
// A default epoch timing config should be set in the constructor
564
- assertEqual (t , cadence .NewUInt64 (expectedConfig .duration ), timingConfigFields [0 ])
565
- assertEqual (t , cadence .NewUInt64 (expectedConfig .refCounter ), timingConfigFields [1 ])
566
- assert .InDelta (t , expectedConfig .refTimestamp , timingConfigFields [2 ]. ToGoValue ().( uint64 ), 30 )
566
+ assertEqual (t , cadence .NewUInt64 (expectedConfig .duration ), timingConfigFields ["duration" ])
567
+ assertEqual (t , cadence .NewUInt64 (expectedConfig .refCounter ), timingConfigFields ["refCounter" ])
568
+ assert .InDelta (t , expectedConfig .refTimestamp , uint64 ( timingConfigFields ["refTimestamp" ].(cadence. UInt64 ) ), 30 )
567
569
}
568
570
569
571
// / Verifies that the configurable epoch metadata is equal to the provided values
@@ -580,16 +582,16 @@ func verifyConfigMetadata(
580
582
assertEqual (t , cadence .NewUInt64 (expectedMetadata .proposedEpochCounter ), result )
581
583
582
584
result = executeScriptAndCheck (t , b , templates .GenerateGetEpochConfigMetadataScript (env ), nil )
583
- metadataFields := result .(cadence.Struct ). Fields
585
+ metadataFields := cadence . FieldsMappedByName ( result .(cadence.Struct ))
584
586
585
- assertEqual (t , cadence .NewUInt64 (expectedMetadata .numViewsInEpoch ), metadataFields [0 ])
586
- assertEqual (t , cadence .NewUInt64 (expectedMetadata .numViewsInStakingAuction ), metadataFields [1 ])
587
- assertEqual (t , cadence .NewUInt64 (expectedMetadata .numViewsInDKGPhase ), metadataFields [2 ])
587
+ assertEqual (t , cadence .NewUInt64 (expectedMetadata .numViewsInEpoch ), metadataFields ["numViewsInEpoch" ])
588
+ assertEqual (t , cadence .NewUInt64 (expectedMetadata .numViewsInStakingAuction ), metadataFields ["numViewsInStakingAuction" ])
589
+ assertEqual (t , cadence .NewUInt64 (expectedMetadata .numViewsInDKGPhase ), metadataFields ["numViewsInDKGPhase" ])
588
590
589
- clusters := metadataFields [3 ]
591
+ clusters := metadataFields ["numCollectorClusters" ]
590
592
assertEqual (t , cadence .NewUInt16 (expectedMetadata .numCollectorClusters ), clusters )
591
593
592
- apy := metadataFields [4 ]
594
+ apy := metadataFields ["FLOWsupplyIncreasePercentage" ]
593
595
assertEqual (t , CadenceUFix64 (expectedMetadata .rewardPercentage ), apy )
594
596
595
597
result = executeScriptAndCheck (t , b , templates .GenerateGetEpochPhaseScript (env ), nil )
@@ -715,10 +717,10 @@ func verifyEpochCommit(
715
717
// expectedTargetEndTime returns the expected `targetEndTime` for the given target epoch,
716
718
// as a second-precision Unix time.
717
719
func expectedTargetEndTime (timingConfig cadence.Value , targetEpoch uint64 ) uint64 {
718
- fields := timingConfig .(cadence.Struct ). Fields
719
- duration := fields [0 ]. ToGoValue ().( uint64 )
720
- refCounter := fields [1 ]. ToGoValue ().( uint64 )
721
- refTimestamp := fields [2 ]. ToGoValue ().( uint64 )
720
+ fields := cadence . FieldsMappedByName ( timingConfig .(cadence.Struct ))
721
+ duration := uint64 ( fields ["duration" ].(cadence. UInt64 ) )
722
+ refCounter := uint64 ( fields ["refCounter" ].(cadence. UInt64 ) )
723
+ refTimestamp := uint64 ( fields ["refTimestamp" ].(cadence. UInt64 ) )
722
724
723
725
return refTimestamp + duration * (targetEpoch - refCounter )
724
726
}
0 commit comments