Closed dsainati1 closed 2 weeks ago
This branch with compared with the base branch onflow:master commit 58c36c5c6701cd9414615adbbd2402aacdb7b8d2
The command for i in {1..N}; do go test ./... -run=XXX -bench=. -benchmem -shuffle=on; done
was used.
Bench tests were run a total of 7 times on each branch.
old.txt | new.txt | |||
---|---|---|---|---|
time/op | delta | |||
DecodeBatchEventsCCF-4 | 124ms ± 0% | 123ms ± 0% | ~ | (p=1.000 n=1+1) |
DecodeBatchEventsJSON-4 | 361ms ± 0% | 375ms ± 0% | ~ | (p=1.000 n=1+1) |
DecodeCCF/FlowFees.FeesDeducted-4 | 2.73µs ± 0% | 2.71µs ± 0% | ~ | (p=1.000 n=1+1) |
DecodeCCF/FlowFees.TokensWithdrawn-4 | 2.05µs ± 0% | 2.02µs ± 0% | ~ | (p=1.000 n=1+1) |
DecodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-4 | 2.69µs ± 0% | 2.68µs ± 0% | ~ | (p=1.000 n=1+1) |
DecodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-4 | 3.04µs ± 0% | 3.01µs ± 0% | ~ | (p=1.000 n=1+1) |
DecodeCCF/FlowIDTableStaking.NewWeeklyPayout-4 | 2.07µs ± 0% | 2.04µs ± 0% | ~ | (p=1.000 n=1+1) |
DecodeCCF/FlowIDTableStaking.RewardsPaid-4 | 2.42µs ± 0% | 2.39µs ± 0% | ~ | (p=1.000 n=1+1) |
DecodeCCF/FlowToken.TokensDeposited-4 | 2.49µs ± 0% | 2.47µs ± 0% | ~ | (p=1.000 n=1+1) |
DecodeCCF/FlowToken.TokensDeposited_with_nil_receiver-4 | 2.40µs ± 0% | 2.39µs ± 0% | ~ | (p=1.000 n=1+1) |
DecodeCCF/FlowToken.TokensMinted-4 | 2.05µs ± 0% | 2.01µs ± 0% | ~ | (p=1.000 n=1+1) |
DecodeCCF/FlowToken.TokensWithdrawn-4 | 2.50µs ± 0% | 2.49µs ± 0% | ~ | (p=1.000 n=1+1) |
DecodeJSON/FlowFees.FeesDeducted-4 | 9.02µs ± 0% | 9.81µs ± 0% | ~ | (p=1.000 n=1+1) |
DecodeJSON/FlowFees.TokensWithdrawn-4 | 5.14µs ± 0% | 5.15µs ± 0% | ~ | (p=1.000 n=1+1) |
DecodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-4 | 8.65µs ± 0% | 8.14µs ± 0% | ~ | (p=1.000 n=1+1) |
DecodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-4 | 11.3µs ± 0% | 11.4µs ± 0% | ~ | (p=1.000 n=1+1) |
DecodeJSON/FlowIDTableStaking.NewWeeklyPayout-4 | 5.42µs ± 0% | 5.36µs ± 0% | ~ | (p=1.000 n=1+1) |
DecodeJSON/FlowIDTableStaking.RewardsPaid-4 | 6.83µs ± 0% | 6.88µs ± 0% | ~ | (p=1.000 n=1+1) |
DecodeJSON/FlowToken.TokensDeposited-4 | 7.11µs ± 0% | 7.09µs ± 0% | ~ | (p=1.000 n=1+1) |
DecodeJSON/FlowToken.TokensDeposited_with_nil_receiver-4 | 6.45µs ± 0% | 6.49µs ± 0% | ~ | (p=1.000 n=1+1) |
DecodeJSON/FlowToken.TokensMinted-4 | 5.31µs ± 0% | 5.23µs ± 0% | ~ | (p=1.000 n=1+1) |
DecodeJSON/FlowToken.TokensWithdrawn-4 | 7.13µs ± 0% | 7.11µs ± 0% | ~ | (p=1.000 n=1+1) |
EncodeBatchEventsCCF-4 | 83.8ms ± 0% | 83.5ms ± 0% | ~ | (p=1.000 n=1+1) |
EncodeBatchEventsJSON-4 | 101ms ± 0% | 101ms ± 0% | ~ | (p=1.000 n=1+1) |
EncodeCCF/FlowFees.FeesDeducted-4 | 1.85µs ± 0% | 1.84µs ± 0% | ~ | (p=1.000 n=1+1) |
EncodeCCF/FlowFees.TokensWithdrawn-4 | 1.46µs ± 0% | 1.45µs ± 0% | ~ | (p=1.000 n=1+1) |
EncodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-4 | 1.77µs ± 0% | 1.78µs ± 0% | ~ | (p=1.000 n=1+1) |
EncodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-4 | 2.08µs ± 0% | 2.07µs ± 0% | ~ | (p=1.000 n=1+1) |
EncodeCCF/FlowIDTableStaking.NewWeeklyPayout-4 | 1.50µs ± 0% | 1.48µs ± 0% | ~ | (p=1.000 n=1+1) |
EncodeCCF/FlowIDTableStaking.RewardsPaid-4 | 1.63µs ± 0% | 1.62µs ± 0% | ~ | (p=1.000 n=1+1) |
EncodeCCF/FlowToken.TokensDeposited-4 | 1.68µs ± 0% | 1.71µs ± 0% | ~ | (p=1.000 n=1+1) |
EncodeCCF/FlowToken.TokensDeposited_with_nil_receiver-4 | 1.66µs ± 0% | 1.70µs ± 0% | ~ | (p=1.000 n=1+1) |
EncodeCCF/FlowToken.TokensMinted-4 | 1.47µs ± 0% | 1.47µs ± 0% | ~ | (p=1.000 n=1+1) |
EncodeCCF/FlowToken.TokensWithdrawn-4 | 1.68µs ± 0% | 1.71µs ± 0% | ~ | (p=1.000 n=1+1) |
EncodeJSON/FlowFees.FeesDeducted-4 | 2.36µs ± 0% | 2.35µs ± 0% | ~ | (p=1.000 n=1+1) |
EncodeJSON/FlowFees.TokensWithdrawn-4 | 1.36µs ± 0% | 1.35µs ± 0% | ~ | (p=1.000 n=1+1) |
EncodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-4 | 2.15µs ± 0% | 2.12µs ± 0% | ~ | (p=1.000 n=1+1) |
EncodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-4 | 2.94µs ± 0% | 2.94µs ± 0% | ~ | (p=1.000 n=1+1) |
EncodeJSON/FlowIDTableStaking.NewWeeklyPayout-4 | 1.39µs ± 0% | 1.38µs ± 0% | ~ | (p=1.000 n=1+1) |
EncodeJSON/FlowIDTableStaking.RewardsPaid-4 | 1.79µs ± 0% | 1.78µs ± 0% | ~ | (p=1.000 n=1+1) |
EncodeJSON/FlowToken.TokensDeposited-4 | 2.06µs ± 0% | 2.06µs ± 0% | ~ | (p=1.000 n=1+1) |
EncodeJSON/FlowToken.TokensDeposited_with_nil_receiver-4 | 1.60µs ± 0% | 1.61µs ± 0% | ~ | (p=1.000 n=1+1) |
EncodeJSON/FlowToken.TokensMinted-4 | 1.37µs ± 0% | 1.41µs ± 0% | ~ | (p=1.000 n=1+1) |
EncodeJSON/FlowToken.TokensWithdrawn-4 | 2.04µs ± 0% | 2.03µs ± 0% | ~ | (p=1.000 n=1+1) |
ExportType/composite_type-4 | 259ns ± 0% | 260ns ± 0% | ~ | (p=1.000 n=1+1) |
ExportType/simple_type-4 | 81.5ns ± 0% | 77.0ns ± 0% | ~ | (p=1.000 n=1+1) |
InterpretRecursionFib-4 | 1.87ms ± 0% | 1.92ms ± 0% | ~ | (p=1.000 n=1+1) |
NewInterpreter/new_interpreter-4 | 846ns ± 0% | 844ns ± 0% | ~ | (p=1.000 n=1+1) |
NewInterpreter/new_sub-interpreter-4 | 354ns ± 0% | 354ns ± 0% | ~ | (p=1.000 n=1+1) |
ParseArray-4 | 5.98ms ± 1% | 5.95ms ± 2% | ~ | (p=1.000 n=2+2) |
ParseDeploy/byte_array-4 | 9.20ms ± 3% | 8.70ms ± 0% | ~ | (p=0.333 n=2+2) |
ParseDeploy/decode_hex-4 | 1.02ms ± 1% | 1.06ms ± 4% | ~ | (p=0.667 n=2+2) |
ParseFungibleToken/With_memory_metering-4 | 151µs ± 2% | 147µs ± 3% | ~ | (p=0.667 n=2+2) |
ParseFungibleToken/Without_memory_metering-4 | 125µs ± 4% | 118µs ± 5% | ~ | (p=0.667 n=2+2) |
ParseInfix-4 | 5.21µs ± 1% | 5.09µs ± 1% | ~ | (p=0.333 n=2+2) |
QualifiedIdentifierCreation/One_level-4 | 2.17ns ± 0% | 2.17ns ± 0% | ~ | (p=1.000 n=1+1) |
QualifiedIdentifierCreation/Three_levels-4 | 83.0ns ± 0% | 82.7ns ± 0% | ~ | (p=1.000 n=1+1) |
RuntimeScriptNoop-4 | 3.62µs ± 0% | 3.60µs ± 0% | ~ | (p=1.000 n=1+1) |
SuperTypeInference/arrays-4 | 231ns ± 0% | 236ns ± 0% | ~ | (p=1.000 n=1+1) |
SuperTypeInference/composites-4 | 87.3ns ± 0% | 87.8ns ± 0% | ~ | (p=1.000 n=1+1) |
SuperTypeInference/integers-4 | 299ns ± 0% | 298ns ± 0% | ~ | (p=1.000 n=1+1) |
ValueIsSubtypeOfSemaType-4 | 65.0ns ± 0% | 61.5ns ± 0% | ~ | (p=1.000 n=1+1) |
alloc/op | delta | |||
DecodeBatchEventsCCF-4 | 66.5MB ± 0% | 66.5MB ± 0% | ~ | (p=1.000 n=1+1) |
DecodeBatchEventsJSON-4 | 242MB ± 0% | 242MB ± 0% | ~ | (p=1.000 n=1+1) |
DecodeCCF/FlowFees.FeesDeducted-4 | 1.40kB ± 0% | 1.40kB ± 0% | ~ | (all equal) |
DecodeCCF/FlowFees.TokensWithdrawn-4 | 1.21kB ± 0% | 1.21kB ± 0% | ~ | (all equal) |
DecodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-4 | 1.48kB ± 0% | 1.48kB ± 0% | ~ | (all equal) |
DecodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-4 | 1.49kB ± 0% | 1.49kB ± 0% | ~ | (all equal) |
DecodeCCF/FlowIDTableStaking.NewWeeklyPayout-4 | 1.26kB ± 0% | 1.26kB ± 0% | ~ | (all equal) |
DecodeCCF/FlowIDTableStaking.RewardsPaid-4 | 1.38kB ± 0% | 1.38kB ± 0% | ~ | (all equal) |
DecodeCCF/FlowToken.TokensDeposited-4 | 1.32kB ± 0% | 1.32kB ± 0% | ~ | (all equal) |
DecodeCCF/FlowToken.TokensDeposited_with_nil_receiver-4 | 1.30kB ± 0% | 1.30kB ± 0% | ~ | (all equal) |
DecodeCCF/FlowToken.TokensMinted-4 | 1.21kB ± 0% | 1.21kB ± 0% | ~ | (all equal) |
DecodeCCF/FlowToken.TokensWithdrawn-4 | 1.33kB ± 0% | 1.33kB ± 0% | ~ | (all equal) |
DecodeJSON/FlowFees.FeesDeducted-4 | 5.95kB ± 0% | 5.95kB ± 0% | ~ | (all equal) |
DecodeJSON/FlowFees.TokensWithdrawn-4 | 3.55kB ± 0% | 3.55kB ± 0% | ~ | (all equal) |
DecodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-4 | 5.38kB ± 0% | 5.38kB ± 0% | ~ | (all equal) |
DecodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-4 | 7.30kB ± 0% | 7.30kB ± 0% | ~ | (all equal) |
DecodeJSON/FlowIDTableStaking.NewWeeklyPayout-4 | 3.59kB ± 0% | 3.59kB ± 0% | ~ | (all equal) |
DecodeJSON/FlowIDTableStaking.RewardsPaid-4 | 4.49kB ± 0% | 4.49kB ± 0% | ~ | (all equal) |
DecodeJSON/FlowToken.TokensDeposited-4 | 4.83kB ± 0% | 4.83kB ± 0% | ~ | (all equal) |
DecodeJSON/FlowToken.TokensDeposited_with_nil_receiver-4 | 4.41kB ± 0% | 4.41kB ± 0% | ~ | (all equal) |
DecodeJSON/FlowToken.TokensMinted-4 | 3.55kB ± 0% | 3.55kB ± 0% | ~ | (all equal) |
DecodeJSON/FlowToken.TokensWithdrawn-4 | 4.83kB ± 0% | 4.83kB ± 0% | ~ | (all equal) |
EncodeBatchEventsCCF-4 | 63.9MB ± 0% | 63.9MB ± 0% | ~ | (p=1.000 n=1+1) |
EncodeBatchEventsJSON-4 | 40.7MB ± 0% | 40.7MB ± 0% | ~ | (p=1.000 n=1+1) |
EncodeCCF/FlowFees.FeesDeducted-4 | 1.25kB ± 0% | 1.25kB ± 0% | ~ | (all equal) |
EncodeCCF/FlowFees.TokensWithdrawn-4 | 1.20kB ± 0% | 1.20kB ± 0% | ~ | (all equal) |
EncodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-4 | 1.47kB ± 0% | 1.47kB ± 0% | ~ | (all equal) |
EncodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-4 | 1.44kB ± 0% | 1.44kB ± 0% | ~ | (all equal) |
EncodeCCF/FlowIDTableStaking.NewWeeklyPayout-4 | 1.38kB ± 0% | 1.38kB ± 0% | ~ | (all equal) |
EncodeCCF/FlowIDTableStaking.RewardsPaid-4 | 1.46kB ± 0% | 1.46kB ± 0% | ~ | (all equal) |
EncodeCCF/FlowToken.TokensDeposited-4 | 1.25kB ± 0% | 1.25kB ± 0% | ~ | (all equal) |
EncodeCCF/FlowToken.TokensDeposited_with_nil_receiver-4 | 1.23kB ± 0% | 1.23kB ± 0% | ~ | (all equal) |
EncodeCCF/FlowToken.TokensMinted-4 | 1.20kB ± 0% | 1.20kB ± 0% | ~ | (all equal) |
EncodeCCF/FlowToken.TokensWithdrawn-4 | 1.25kB ± 0% | 1.25kB ± 0% | ~ | (all equal) |
EncodeJSON/FlowFees.FeesDeducted-4 | 896B ± 0% | 896B ± 0% | ~ | (all equal) |
EncodeJSON/FlowFees.TokensWithdrawn-4 | 536B ± 0% | 536B ± 0% | ~ | (all equal) |
EncodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-4 | 920B ± 0% | 920B ± 0% | ~ | (all equal) |
EncodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-4 | 1.11kB ± 0% | 1.11kB ± 0% | ~ | (all equal) |
EncodeJSON/FlowIDTableStaking.NewWeeklyPayout-4 | 584B ± 0% | 584B ± 0% | ~ | (all equal) |
EncodeJSON/FlowIDTableStaking.RewardsPaid-4 | 784B ± 0% | 784B ± 0% | ~ | (all equal) |
EncodeJSON/FlowToken.TokensDeposited-4 | 808B ± 0% | 808B ± 0% | ~ | (all equal) |
EncodeJSON/FlowToken.TokensDeposited_with_nil_receiver-4 | 672B ± 0% | 672B ± 0% | ~ | (all equal) |
EncodeJSON/FlowToken.TokensMinted-4 | 544B ± 0% | 544B ± 0% | ~ | (all equal) |
EncodeJSON/FlowToken.TokensWithdrawn-4 | 800B ± 0% | 800B ± 0% | ~ | (all equal) |
ExportType/composite_type-4 | 120B ± 0% | 120B ± 0% | ~ | (all equal) |
ExportType/simple_type-4 | 0.00B | 0.00B | ~ | (all equal) |
InterpretRecursionFib-4 | 1.19MB ± 0% | 1.19MB ± 0% | ~ | (p=1.000 n=1+1) |
NewInterpreter/new_interpreter-4 | 944B ± 0% | 944B ± 0% | ~ | (all equal) |
NewInterpreter/new_sub-interpreter-4 | 200B ± 0% | 200B ± 0% | ~ | (all equal) |
ParseArray-4 | 2.74MB ± 2% | 2.69MB ± 0% | ~ | (p=0.333 n=2+2) |
ParseDeploy/byte_array-4 | 4.20MB ± 0% | 4.13MB ± 2% | ~ | (p=0.333 n=2+2) |
ParseDeploy/decode_hex-4 | 214kB ± 0% | 214kB ± 0% | ~ | (p=0.333 n=2+2) |
ParseFungibleToken/With_memory_metering-4 | 29.8kB ± 0% | 29.8kB ± 0% | ~ | (p=0.667 n=2+2) |
ParseFungibleToken/Without_memory_metering-4 | 29.8kB ± 0% | 29.8kB ± 0% | ~ | (p=1.000 n=2+2) |
ParseInfix-4 | 1.92kB ± 0% | 1.92kB ± 0% | ~ | (p=0.333 n=2+2) |
QualifiedIdentifierCreation/One_level-4 | 0.00B | 0.00B | ~ | (all equal) |
QualifiedIdentifierCreation/Three_levels-4 | 64.0B ± 0% | 64.0B ± 0% | ~ | (all equal) |
RuntimeScriptNoop-4 | 3.36kB ± 0% | 3.36kB ± 0% | ~ | (all equal) |
SuperTypeInference/arrays-4 | 96.0B ± 0% | 96.0B ± 0% | ~ | (all equal) |
SuperTypeInference/composites-4 | 0.00B | 0.00B | ~ | (all equal) |
SuperTypeInference/integers-4 | 0.00B | 0.00B | ~ | (all equal) |
ValueIsSubtypeOfSemaType-4 | 48.0B ± 0% | 48.0B ± 0% | ~ | (all equal) |
allocs/op | delta | |||
DecodeBatchEventsCCF-4 | 1.48M ± 0% | 1.48M ± 0% | ~ | (p=1.000 n=1+1) |
DecodeBatchEventsJSON-4 | 4.60M ± 0% | 4.60M ± 0% | ~ | (p=1.000 n=1+1) |
DecodeCCF/FlowFees.FeesDeducted-4 | 30.0 ± 0% | 30.0 ± 0% | ~ | (all equal) |
DecodeCCF/FlowFees.TokensWithdrawn-4 | 26.0 ± 0% | 26.0 ± 0% | ~ | (all equal) |
DecodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-4 | 30.0 ± 0% | 30.0 ± 0% | ~ | (all equal) |
DecodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-4 | 32.0 ± 0% | 32.0 ± 0% | ~ | (all equal) |
DecodeCCF/FlowIDTableStaking.NewWeeklyPayout-4 | 26.0 ± 0% | 26.0 ± 0% | ~ | (all equal) |
DecodeCCF/FlowIDTableStaking.RewardsPaid-4 | 29.0 ± 0% | 29.0 ± 0% | ~ | (all equal) |
DecodeCCF/FlowToken.TokensDeposited-4 | 31.0 ± 0% | 31.0 ± 0% | ~ | (all equal) |
DecodeCCF/FlowToken.TokensDeposited_with_nil_receiver-4 | 29.0 ± 0% | 29.0 ± 0% | ~ | (all equal) |
DecodeCCF/FlowToken.TokensMinted-4 | 26.0 ± 0% | 26.0 ± 0% | ~ | (all equal) |
DecodeCCF/FlowToken.TokensWithdrawn-4 | 31.0 ± 0% | 31.0 ± 0% | ~ | (all equal) |
DecodeJSON/FlowFees.FeesDeducted-4 | 124 ± 0% | 124 ± 0% | ~ | (all equal) |
DecodeJSON/FlowFees.TokensWithdrawn-4 | 69.0 ± 0% | 69.0 ± 0% | ~ | (all equal) |
DecodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-4 | 100 ± 0% | 100 ± 0% | ~ | (all equal) |
DecodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-4 | 157 ± 0% | 157 ± 0% | ~ | (all equal) |
DecodeJSON/FlowIDTableStaking.NewWeeklyPayout-4 | 68.0 ± 0% | 68.0 ± 0% | ~ | (all equal) |
DecodeJSON/FlowIDTableStaking.RewardsPaid-4 | 85.0 ± 0% | 85.0 ± 0% | ~ | (all equal) |
DecodeJSON/FlowToken.TokensDeposited-4 | 93.0 ± 0% | 93.0 ± 0% | ~ | (all equal) |
DecodeJSON/FlowToken.TokensDeposited_with_nil_receiver-4 | 84.0 ± 0% | 84.0 ± 0% | ~ | (all equal) |
DecodeJSON/FlowToken.TokensMinted-4 | 69.0 ± 0% | 69.0 ± 0% | ~ | (all equal) |
DecodeJSON/FlowToken.TokensWithdrawn-4 | 93.0 ± 0% | 93.0 ± 0% | ~ | (all equal) |
EncodeBatchEventsCCF-4 | 1.00M ± 0% | 1.00M ± 0% | ~ | (p=1.000 n=1+1) |
EncodeBatchEventsJSON-4 | 902k ± 0% | 902k ± 0% | ~ | (p=1.000 n=1+1) |
EncodeCCF/FlowFees.FeesDeducted-4 | 20.0 ± 0% | 20.0 ± 0% | ~ | (all equal) |
EncodeCCF/FlowFees.TokensWithdrawn-4 | 20.0 ± 0% | 20.0 ± 0% | ~ | (all equal) |
EncodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-4 | 20.0 ± 0% | 20.0 ± 0% | ~ | (all equal) |
EncodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-4 | 20.0 ± 0% | 20.0 ± 0% | ~ | (all equal) |
EncodeCCF/FlowIDTableStaking.NewWeeklyPayout-4 | 20.0 ± 0% | 20.0 ± 0% | ~ | (all equal) |
EncodeCCF/FlowIDTableStaking.RewardsPaid-4 | 20.0 ± 0% | 20.0 ± 0% | ~ | (all equal) |
EncodeCCF/FlowToken.TokensDeposited-4 | 21.0 ± 0% | 21.0 ± 0% | ~ | (all equal) |
EncodeCCF/FlowToken.TokensDeposited_with_nil_receiver-4 | 21.0 ± 0% | 21.0 ± 0% | ~ | (all equal) |
EncodeCCF/FlowToken.TokensMinted-4 | 20.0 ± 0% | 20.0 ± 0% | ~ | (all equal) |
EncodeCCF/FlowToken.TokensWithdrawn-4 | 21.0 ± 0% | 21.0 ± 0% | ~ | (all equal) |
EncodeJSON/FlowFees.FeesDeducted-4 | 20.0 ± 0% | 20.0 ± 0% | ~ | (all equal) |
EncodeJSON/FlowFees.TokensWithdrawn-4 | 13.0 ± 0% | 13.0 ± 0% | ~ | (all equal) |
EncodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-4 | 17.0 ± 0% | 17.0 ± 0% | ~ | (all equal) |
EncodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-4 | 26.0 ± 0% | 26.0 ± 0% | ~ | (all equal) |
EncodeJSON/FlowIDTableStaking.NewWeeklyPayout-4 | 13.0 ± 0% | 13.0 ± 0% | ~ | (all equal) |
EncodeJSON/FlowIDTableStaking.RewardsPaid-4 | 16.0 ± 0% | 16.0 ± 0% | ~ | (all equal) |
EncodeJSON/FlowToken.TokensDeposited-4 | 20.0 ± 0% | 20.0 ± 0% | ~ | (all equal) |
EncodeJSON/FlowToken.TokensDeposited_with_nil_receiver-4 | 15.0 ± 0% | 15.0 ± 0% | ~ | (all equal) |
EncodeJSON/FlowToken.TokensMinted-4 | 14.0 ± 0% | 14.0 ± 0% | ~ | (all equal) |
EncodeJSON/FlowToken.TokensWithdrawn-4 | 19.0 ± 0% | 19.0 ± 0% | ~ | (all equal) |
ExportType/composite_type-4 | 3.00 ± 0% | 3.00 ± 0% | ~ | (all equal) |
ExportType/simple_type-4 | 0.00 | 0.00 | ~ | (all equal) |
InterpretRecursionFib-4 | 18.9k ± 0% | 18.9k ± 0% | ~ | (all equal) |
NewInterpreter/new_interpreter-4 | 15.0 ± 0% | 15.0 ± 0% | ~ | (all equal) |
NewInterpreter/new_sub-interpreter-4 | 4.00 ± 0% | 4.00 ± 0% | ~ | (all equal) |
ParseArray-4 | 59.6k ± 0% | 59.6k ± 0% | ~ | (p=0.333 n=2+2) |
ParseDeploy/byte_array-4 | 89.4k ± 0% | 89.4k ± 0% | ~ | (p=0.333 n=2+2) |
ParseDeploy/decode_hex-4 | 63.0 ± 0% | 63.0 ± 0% | ~ | (all equal) |
ParseFungibleToken/With_memory_metering-4 | 773 ± 1% | 773 ± 1% | ~ | (p=1.000 n=2+2) |
ParseFungibleToken/Without_memory_metering-4 | 773 ± 1% | 773 ± 1% | ~ | (p=1.000 n=2+2) |
ParseInfix-4 | 48.0 ± 0% | 48.0 ± 0% | ~ | (all equal) |
QualifiedIdentifierCreation/One_level-4 | 0.00 | 0.00 | ~ | (all equal) |
QualifiedIdentifierCreation/Three_levels-4 | 2.00 ± 0% | 2.00 ± 0% | ~ | (all equal) |
RuntimeScriptNoop-4 | 50.0 ± 0% | 50.0 ± 0% | ~ | (all equal) |
SuperTypeInference/arrays-4 | 3.00 ± 0% | 3.00 ± 0% | ~ | (all equal) |
SuperTypeInference/composites-4 | 0.00 | 0.00 | ~ | (all equal) |
SuperTypeInference/integers-4 | 0.00 | 0.00 | ~ | (all equal) |
ValueIsSubtypeOfSemaType-4 | 1.00 ± 0% | 1.00 ± 0% | ~ | (all equal) |
Closes https://github.com/dapperlabs/cadence-internal/issues/236
The
Identity
entitlement mapping has a codomain (output space) that is theoretically infinite, as any number of possible entitlements can be produced from it. This means that in order to be safe when initializing a field that is mapped with theIdentity
, or a mapping that includes it, the reference used to initialize this field must be authorized to an impossible access, an infinite set of entitlements. Otherwise, theIdentity
mapping could be used to escalate entitlements, as seen in one of the tests added in this PR.This PR introduces a new
None
access to represent this impossible set, and ensures that this permits no other access besides itself (functionally the top type of the access lattice, the same way thatall
is the bottom). Initializing a reference with theIdentity
map type requires this top access value, which can only be obtained via immediately creating a reference to an owned value. This way we ensure thatIdentity
-mapped fields can never be initialized with a reference that has a limited entitlement set.master
branchFiles changed
in the Github PR explorer