Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add tryUpdate method to Account.Contracts #2769

Merged
merged 5 commits into from
Sep 11, 2023

Conversation

SupunS
Copy link
Member

@SupunS SupunS commented Sep 7, 2023

Closes #2700

Description

Adds a tryUpdate method that gracefully handles deployment errors.

struct Account {
    ...
    struct Contracts {
        ...
        access(Contracts | UpdateContract)
        fun tryUpdate(name: String, code: [UInt8]): DeploymentResult
    }
}

access(all) struct DeploymentResult {
    access(all) let deployedContract: DeployedContract?
}

If the update was unsuccessful, DeploymentResult.deployedContract will be nil.

This tryUpdate method handles any user error (syntax errors, semantic errors, etc.) gracefully. Any internal error would still cause the script/transaction to terminate.


  • Targeted PR against master branch
  • Linked to Github issue with discussion and accepted design OR link to spec that describes this work
  • Code follows the standards mentioned here
  • Updated relevant documentation
  • Re-reviewed Files changed in the Github PR explorer
  • Added appropriate labels

@SupunS SupunS added the Feature label Sep 7, 2023
@SupunS SupunS self-assigned this Sep 7, 2023
@github-actions
Copy link

github-actions bot commented Sep 7, 2023

Cadence Benchstat comparison

This branch with compared with the base branch onflow:feature/stable-cadence commit e0407b6
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.

Collapsed results for better readability

old.txtnew.txt
time/opdelta
DecodeBatchEventsCCF-2197ms ± 0%197ms ± 0%~(p=1.000 n=1+1)
DecodeBatchEventsJSON-2582ms ± 0%634ms ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowFees.FeesDeducted-24.18µs ± 0%4.42µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowFees.TokensWithdrawn-23.27µs ± 0%3.17µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-24.33µs ± 0%4.21µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-25.14µs ± 0%4.89µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowIDTableStaking.NewWeeklyPayout-23.50µs ± 0%3.36µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowIDTableStaking.RewardsPaid-24.26µs ± 0%3.96µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowToken.TokensDeposited-24.38µs ± 0%4.03µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowToken.TokensDeposited_with_nil_receiver-24.17µs ± 0%3.91µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowToken.TokensMinted-23.42µs ± 0%3.28µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowToken.TokensWithdrawn-24.53µs ± 0%4.19µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowFees.FeesDeducted-222.5µs ± 0%15.6µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowFees.TokensWithdrawn-213.0µs ± 0%8.6µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-219.9µs ± 0%13.4µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-226.5µs ± 0%19.3µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowIDTableStaking.NewWeeklyPayout-211.7µs ± 0%8.8µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowIDTableStaking.RewardsPaid-211.6µs ± 0%11.5µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowToken.TokensDeposited-213.5µs ± 0%11.9µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowToken.TokensDeposited_with_nil_receiver-210.7µs ± 0%10.8µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowToken.TokensMinted-28.65µs ± 0%8.86µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowToken.TokensWithdrawn-212.2µs ± 0%11.9µs ± 0%~(p=1.000 n=1+1)
EncodeBatchEventsCCF-2157ms ± 0%149ms ± 0%~(p=1.000 n=1+1)
EncodeBatchEventsJSON-2185ms ± 0%174ms ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowFees.FeesDeducted-23.60µs ± 0%5.66µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowFees.TokensWithdrawn-22.50µs ± 0%4.17µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-23.15µs ± 0%4.79µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-24.05µs ± 0%6.87µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowIDTableStaking.NewWeeklyPayout-22.50µs ± 0%4.20µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowIDTableStaking.RewardsPaid-22.67µs ± 0%4.44µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowToken.TokensDeposited-22.94µs ± 0%4.35µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowToken.TokensDeposited_with_nil_receiver-22.90µs ± 0%4.49µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowToken.TokensMinted-22.55µs ± 0%2.50µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowToken.TokensWithdrawn-22.90µs ± 0%2.92µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowFees.FeesDeducted-23.88µs ± 0%4.30µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowFees.TokensWithdrawn-22.38µs ± 0%2.32µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-23.49µs ± 0%3.66µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-25.41µs ± 0%5.31µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowIDTableStaking.NewWeeklyPayout-22.38µs ± 0%2.41µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowIDTableStaking.RewardsPaid-22.97µs ± 0%3.21µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowToken.TokensDeposited-23.39µs ± 0%3.60µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowToken.TokensDeposited_with_nil_receiver-22.59µs ± 0%2.61µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowToken.TokensMinted-22.32µs ± 0%2.68µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowToken.TokensWithdrawn-23.38µs ± 0%3.63µs ± 0%~(p=1.000 n=1+1)
ExportType/composite_type-2532ns ± 0%554ns ± 0%~(p=1.000 n=1+1)
ExportType/simple_type-2122ns ± 0%116ns ± 0%~(p=1.000 n=1+1)
InterpretRecursionFib-23.01ms ± 0%3.02ms ± 0%~(p=1.000 n=1+1)
NewInterpreter/new_interpreter-21.57µs ± 0%1.99µs ± 0%~(p=1.000 n=1+1)
NewInterpreter/new_sub-interpreter-2850ns ± 0%862ns ± 0%~(p=1.000 n=1+1)
ParseArray-29.50ms ± 0%9.55ms ± 0%~(p=1.000 n=1+1)
ParseDeploy/byte_array-215.5ms ± 0%14.3ms ± 0%~(p=1.000 n=1+1)
ParseDeploy/decode_hex-21.58ms ± 0%1.57ms ± 0%~(p=1.000 n=1+1)
ParseFungibleToken/With_memory_metering-2255µs ± 0%274µs ± 0%~(p=1.000 n=1+1)
ParseFungibleToken/Without_memory_metering-2199µs ± 0%200µs ± 0%~(p=1.000 n=1+1)
ParseInfix-28.72µs ± 0%8.38µs ± 0%~(p=1.000 n=1+1)
QualifiedIdentifierCreation/One_level-23.00ns ± 0%3.05ns ± 0%~(p=1.000 n=1+1)
QualifiedIdentifierCreation/Three_levels-2152ns ± 0%152ns ± 0%~(p=1.000 n=1+1)
RuntimeScriptNoop-25.62µs ± 0%5.96µs ± 0%~(p=1.000 n=1+1)
SuperTypeInference/arrays-2411ns ± 0%449ns ± 0%~(p=1.000 n=1+1)
SuperTypeInference/composites-2170ns ± 0%171ns ± 0%~(p=1.000 n=1+1)
SuperTypeInference/integers-2198ns ± 0%204ns ± 0%~(p=1.000 n=1+1)
ValueIsSubtypeOfSemaType-2118ns ± 0%118ns ± 0%~(p=1.000 n=1+1)
 
alloc/opdelta
DecodeBatchEventsCCF-266.1MB ± 0%66.1MB ± 0%~(p=1.000 n=1+1)
DecodeBatchEventsJSON-2244MB ± 0%244MB ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowFees.FeesDeducted-21.39kB ± 0%1.39kB ± 0%~(all equal)
DecodeCCF/FlowFees.TokensWithdrawn-21.20kB ± 0%1.20kB ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-21.47kB ± 0%1.47kB ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-21.48kB ± 0%1.48kB ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.NewWeeklyPayout-21.25kB ± 0%1.25kB ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.RewardsPaid-21.37kB ± 0%1.37kB ± 0%~(all equal)
DecodeCCF/FlowToken.TokensDeposited-21.31kB ± 0%1.31kB ± 0%~(all equal)
DecodeCCF/FlowToken.TokensDeposited_with_nil_receiver-21.30kB ± 0%1.30kB ± 0%~(all equal)
DecodeCCF/FlowToken.TokensMinted-21.20kB ± 0%1.20kB ± 0%~(all equal)
DecodeCCF/FlowToken.TokensWithdrawn-21.32kB ± 0%1.32kB ± 0%~(all equal)
DecodeJSON/FlowFees.FeesDeducted-26.00kB ± 0%6.00kB ± 0%~(all equal)
DecodeJSON/FlowFees.TokensWithdrawn-23.60kB ± 0%3.60kB ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-25.43kB ± 0%5.43kB ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-27.35kB ± 0%7.35kB ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.NewWeeklyPayout-23.64kB ± 0%3.64kB ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.RewardsPaid-24.54kB ± 0%4.54kB ± 0%~(all equal)
DecodeJSON/FlowToken.TokensDeposited-24.88kB ± 0%4.88kB ± 0%~(all equal)
DecodeJSON/FlowToken.TokensDeposited_with_nil_receiver-24.46kB ± 0%4.46kB ± 0%~(all equal)
DecodeJSON/FlowToken.TokensMinted-23.60kB ± 0%3.60kB ± 0%~(all equal)
DecodeJSON/FlowToken.TokensWithdrawn-24.88kB ± 0%4.88kB ± 0%~(all equal)
EncodeBatchEventsCCF-262.4MB ± 0%62.4MB ± 0%~(p=1.000 n=1+1)
EncodeBatchEventsJSON-239.1MB ± 0%39.1MB ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowFees.FeesDeducted-21.22kB ± 0%1.22kB ± 0%~(all equal)
EncodeCCF/FlowFees.TokensWithdrawn-21.17kB ± 0%1.17kB ± 0%~(all equal)
EncodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-21.44kB ± 0%1.44kB ± 0%~(all equal)
EncodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-21.41kB ± 0%1.41kB ± 0%~(all equal)
EncodeCCF/FlowIDTableStaking.NewWeeklyPayout-21.34kB ± 0%1.34kB ± 0%~(all equal)
EncodeCCF/FlowIDTableStaking.RewardsPaid-21.42kB ± 0%1.42kB ± 0%~(all equal)
EncodeCCF/FlowToken.TokensDeposited-21.22kB ± 0%1.22kB ± 0%~(all equal)
EncodeCCF/FlowToken.TokensDeposited_with_nil_receiver-21.20kB ± 0%1.20kB ± 0%~(all equal)
EncodeCCF/FlowToken.TokensMinted-21.17kB ± 0%1.17kB ± 0%~(all equal)
EncodeCCF/FlowToken.TokensWithdrawn-21.22kB ± 0%1.22kB ± 0%~(all equal)
EncodeJSON/FlowFees.FeesDeducted-2864B ± 0%864B ± 0%~(all equal)
EncodeJSON/FlowFees.TokensWithdrawn-2504B ± 0%504B ± 0%~(all equal)
EncodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-2888B ± 0%888B ± 0%~(all equal)
EncodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-21.08kB ± 0%1.08kB ± 0%~(all equal)
EncodeJSON/FlowIDTableStaking.NewWeeklyPayout-2552B ± 0%552B ± 0%~(all equal)
EncodeJSON/FlowIDTableStaking.RewardsPaid-2752B ± 0%752B ± 0%~(all equal)
EncodeJSON/FlowToken.TokensDeposited-2776B ± 0%776B ± 0%~(all equal)
EncodeJSON/FlowToken.TokensDeposited_with_nil_receiver-2640B ± 0%640B ± 0%~(all equal)
EncodeJSON/FlowToken.TokensMinted-2512B ± 0%512B ± 0%~(all equal)
EncodeJSON/FlowToken.TokensWithdrawn-2768B ± 0%768B ± 0%~(all equal)
ExportType/composite_type-2120B ± 0%120B ± 0%~(all equal)
ExportType/simple_type-20.00B 0.00B ~(all equal)
InterpretRecursionFib-21.00MB ± 0%1.00MB ± 0%~(p=1.000 n=1+1)
NewInterpreter/new_interpreter-2928B ± 0%928B ± 0%~(all equal)
NewInterpreter/new_sub-interpreter-2200B ± 0%200B ± 0%~(all equal)
ParseArray-22.74MB ± 0%2.65MB ± 0%~(p=1.000 n=1+1)
ParseDeploy/byte_array-24.09MB ± 0%4.32MB ± 0%~(p=1.000 n=1+1)
ParseDeploy/decode_hex-2214kB ± 0%214kB ± 0%~(p=1.000 n=1+1)
ParseFungibleToken/With_memory_metering-229.7kB ± 0%29.7kB ± 0%~(p=1.000 n=1+1)
ParseFungibleToken/Without_memory_metering-229.7kB ± 0%29.7kB ± 0%~(p=1.000 n=1+1)
ParseInfix-21.91kB ± 0%1.91kB ± 0%~(p=1.000 n=1+1)
QualifiedIdentifierCreation/One_level-20.00B 0.00B ~(all equal)
QualifiedIdentifierCreation/Three_levels-264.0B ± 0%64.0B ± 0%~(all equal)
RuntimeScriptNoop-23.21kB ± 0%3.21kB ± 0%~(all equal)
SuperTypeInference/arrays-296.0B ± 0%96.0B ± 0%~(all equal)
SuperTypeInference/composites-20.00B 0.00B ~(all equal)
SuperTypeInference/integers-20.00B 0.00B ~(all equal)
ValueIsSubtypeOfSemaType-248.0B ± 0%48.0B ± 0%~(all equal)
 
allocs/opdelta
DecodeBatchEventsCCF-21.48M ± 0%1.48M ± 0%~(p=1.000 n=1+1)
DecodeBatchEventsJSON-24.70M ± 0%4.70M ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowFees.FeesDeducted-230.0 ± 0%30.0 ± 0%~(all equal)
DecodeCCF/FlowFees.TokensWithdrawn-226.0 ± 0%26.0 ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-230.0 ± 0%30.0 ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-232.0 ± 0%32.0 ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.NewWeeklyPayout-226.0 ± 0%26.0 ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.RewardsPaid-229.0 ± 0%29.0 ± 0%~(all equal)
DecodeCCF/FlowToken.TokensDeposited-231.0 ± 0%31.0 ± 0%~(all equal)
DecodeCCF/FlowToken.TokensDeposited_with_nil_receiver-229.0 ± 0%29.0 ± 0%~(all equal)
DecodeCCF/FlowToken.TokensMinted-226.0 ± 0%26.0 ± 0%~(all equal)
DecodeCCF/FlowToken.TokensWithdrawn-231.0 ± 0%31.0 ± 0%~(all equal)
DecodeJSON/FlowFees.FeesDeducted-2126 ± 0%126 ± 0%~(all equal)
DecodeJSON/FlowFees.TokensWithdrawn-271.0 ± 0%71.0 ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-2102 ± 0%102 ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-2159 ± 0%159 ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.NewWeeklyPayout-270.0 ± 0%70.0 ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.RewardsPaid-287.0 ± 0%87.0 ± 0%~(all equal)
DecodeJSON/FlowToken.TokensDeposited-295.0 ± 0%95.0 ± 0%~(all equal)
DecodeJSON/FlowToken.TokensDeposited_with_nil_receiver-286.0 ± 0%86.0 ± 0%~(all equal)
DecodeJSON/FlowToken.TokensMinted-271.0 ± 0%71.0 ± 0%~(all equal)
DecodeJSON/FlowToken.TokensWithdrawn-295.0 ± 0%95.0 ± 0%~(all equal)
EncodeBatchEventsCCF-2950k ± 0%950k ± 0%~(p=1.000 n=1+1)
EncodeBatchEventsJSON-2853k ± 0%853k ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowFees.FeesDeducted-219.0 ± 0%19.0 ± 0%~(all equal)
EncodeCCF/FlowFees.TokensWithdrawn-219.0 ± 0%19.0 ± 0%~(all equal)
EncodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-219.0 ± 0%19.0 ± 0%~(all equal)
EncodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-219.0 ± 0%19.0 ± 0%~(all equal)
EncodeCCF/FlowIDTableStaking.NewWeeklyPayout-219.0 ± 0%19.0 ± 0%~(all equal)
EncodeCCF/FlowIDTableStaking.RewardsPaid-219.0 ± 0%19.0 ± 0%~(all equal)
EncodeCCF/FlowToken.TokensDeposited-220.0 ± 0%20.0 ± 0%~(all equal)
EncodeCCF/FlowToken.TokensDeposited_with_nil_receiver-220.0 ± 0%20.0 ± 0%~(all equal)
EncodeCCF/FlowToken.TokensMinted-219.0 ± 0%19.0 ± 0%~(all equal)
EncodeCCF/FlowToken.TokensWithdrawn-220.0 ± 0%20.0 ± 0%~(all equal)
EncodeJSON/FlowFees.FeesDeducted-219.0 ± 0%19.0 ± 0%~(all equal)
EncodeJSON/FlowFees.TokensWithdrawn-212.0 ± 0%12.0 ± 0%~(all equal)
EncodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-216.0 ± 0%16.0 ± 0%~(all equal)
EncodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-225.0 ± 0%25.0 ± 0%~(all equal)
EncodeJSON/FlowIDTableStaking.NewWeeklyPayout-212.0 ± 0%12.0 ± 0%~(all equal)
EncodeJSON/FlowIDTableStaking.RewardsPaid-215.0 ± 0%15.0 ± 0%~(all equal)
EncodeJSON/FlowToken.TokensDeposited-219.0 ± 0%19.0 ± 0%~(all equal)
EncodeJSON/FlowToken.TokensDeposited_with_nil_receiver-214.0 ± 0%14.0 ± 0%~(all equal)
EncodeJSON/FlowToken.TokensMinted-213.0 ± 0%13.0 ± 0%~(all equal)
EncodeJSON/FlowToken.TokensWithdrawn-218.0 ± 0%18.0 ± 0%~(all equal)
ExportType/composite_type-23.00 ± 0%3.00 ± 0%~(all equal)
ExportType/simple_type-20.00 0.00 ~(all equal)
InterpretRecursionFib-218.9k ± 0%18.9k ± 0%~(all equal)
NewInterpreter/new_interpreter-215.0 ± 0%15.0 ± 0%~(all equal)
NewInterpreter/new_sub-interpreter-24.00 ± 0%4.00 ± 0%~(all equal)
ParseArray-259.6k ± 0%59.6k ± 0%~(p=1.000 n=1+1)
ParseDeploy/byte_array-289.4k ± 0%89.4k ± 0%~(p=1.000 n=1+1)
ParseDeploy/decode_hex-263.0 ± 0%63.0 ± 0%~(all equal)
ParseFungibleToken/With_memory_metering-2778 ± 0%778 ± 0%~(all equal)
ParseFungibleToken/Without_memory_metering-2778 ± 0%778 ± 0%~(all equal)
ParseInfix-248.0 ± 0%48.0 ± 0%~(all equal)
QualifiedIdentifierCreation/One_level-20.00 0.00 ~(all equal)
QualifiedIdentifierCreation/Three_levels-22.00 ± 0%2.00 ± 0%~(all equal)
RuntimeScriptNoop-251.0 ± 0%51.0 ± 0%~(all equal)
SuperTypeInference/arrays-23.00 ± 0%3.00 ± 0%~(all equal)
SuperTypeInference/composites-20.00 0.00 ~(all equal)
SuperTypeInference/integers-20.00 0.00 ~(all equal)
ValueIsSubtypeOfSemaType-21.00 ± 0%1.00 ± 0%~(all equal)
 

@codecov
Copy link

codecov bot commented Sep 7, 2023

Codecov Report

Patch coverage: 91.96% and project coverage change: +0.07% 🎉

Comparison is base (f9de789) 79.65% compared to head (dede475) 79.72%.
Report is 25 commits behind head on feature/stable-cadence.

Additional details and impacted files
@@                    Coverage Diff                     @@
##           feature/stable-cadence    #2769      +/-   ##
==========================================================
+ Coverage                   79.65%   79.72%   +0.07%     
==========================================================
  Files                         339      341       +2     
  Lines                       80623    80864     +241     
==========================================================
+ Hits                        64219    64471     +252     
+ Misses                      14104    14090      -14     
- Partials                     2300     2303       +3     
Flag Coverage Δ
unittests 79.72% <91.96%> (+0.07%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files Changed Coverage Δ
runtime/sema/gen/main.go 88.40% <82.35%> (+0.22%) ⬆️
runtime/stdlib/account.go 89.67% <92.23%> (+0.28%) ⬆️
runtime/interpreter/value_account_contracts.go 78.94% <100.00%> (+0.56%) ⬆️
runtime/interpreter/value_deployment_result.go 100.00% <100.00%> (ø)
runtime/sema/account.gen.go 100.00% <100.00%> (ø)
runtime/sema/deployment_result.gen.go 100.00% <100.00%> (ø)
runtime/sema/type.go 89.23% <100.00%> (+0.07%) ⬆️

... and 16 files with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

runtime/stdlib/account.go Show resolved Hide resolved
runtime/stdlib/account.go Show resolved Hide resolved
@SupunS SupunS marked this pull request as ready for review September 7, 2023 22:31
@bluesign
Copy link
Contributor

bluesign commented Sep 8, 2023

should we unset TemporarilyRecordCode (set original code) on failure here ?

@SupunS
Copy link
Member Author

SupunS commented Sep 8, 2023

@bluesign That's a good point!
The code that is being set in TemporarilyRecordCode is only used for error pretty-printing/debugging. Since errors are not reported for the deploying contract during the transaction, it has no impact for now. There is also a plan to remove codes and programs from the errors, so this will go away soon.

turbolent
turbolent previously approved these changes Sep 11, 2023
Copy link
Member

@turbolent turbolent left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!

@turbolent turbolent dismissed their stale review September 11, 2023 18:13

had some additional feedback

Copy link
Member

@turbolent turbolent left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

Good idea of just generating a CompositeType.

Just one concern (optional wrapping) and some more tests would be good to cover all cases.

runtime/contract_test.go Outdated Show resolved Hide resolved
Copy link
Member

@turbolent turbolent left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👌

@SupunS SupunS force-pushed the supun/contract-update-func branch from 41e9f5a to c0e7084 Compare September 11, 2023 18:41
@SupunS SupunS force-pushed the supun/contract-update-func branch from c0e7084 to dede475 Compare September 11, 2023 18:41
@SupunS SupunS merged commit 9a146ab into feature/stable-cadence Sep 11, 2023
8 of 11 checks passed
@SupunS SupunS deleted the supun/contract-update-func branch September 11, 2023 19:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants