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

Feature/support non fungibles in execution trace #2042

Open
wants to merge 4 commits into
base: develop
Choose a base branch
from

Conversation

lrubasze
Copy link
Contributor

Summary

  • Add support for non-fungible resources in ExecutionTrace resource changes
  • Removed support for Recall operations in ExecutionTrace resource changes
    With recall it is not possible to determine the account the resources are recalled from, because recall operates with internal vault.

Testing

Relevant tests added

With `recall` it is not possible to determine the account the
resources are recalled from, because recall operates with internal vault.
@lrubasze lrubasze force-pushed the feature/support_non_fungibles_in_execution_trace branch from c2b367a to 041d7ee Compare December 18, 2024 11:59
Copy link

github-actions bot commented Dec 18, 2024

Docker tags
docker.io/radixdlt/private-scrypto-builder:b7d7f93256

Copy link

github-actions bot commented Dec 18, 2024

Benchmark for b7d7f93

Click to view benchmark
Test Base PR %
costing::bench_prepare_wasm 44.7±0.33ms 44.5±0.08ms -0.45%
costing::decode_encoded_i8_array_to_manifest_raw_value 19.7±0.04ms 19.3±0.02ms -2.03%
costing::decode_encoded_i8_array_to_manifest_value 41.4±0.06ms 42.2±0.07ms +1.93%
costing::decode_encoded_tuple_array_to_manifest_raw_value 71.2±0.16ms 72.2±0.16ms +1.40%
costing::decode_encoded_tuple_array_to_manifest_value 98.7±0.18ms 98.2±0.13ms -0.51%
costing::decode_encoded_u8_array_to_manifest_raw_value 32.2±0.12µs 25.8±0.04µs -19.88%
costing::decode_encoded_u8_array_to_manifest_value 41.5±0.06ms 42.2±0.04ms +1.69%
costing::decode_rpd_to_manifest_raw_value 14.7±0.03µs 14.5±0.03µs -1.36%
costing::decode_rpd_to_manifest_value 10.9±0.02µs 11.0±0.02µs +0.92%
costing::deserialize_wasm 1209.1±3.16µs 1224.6±4.06µs +1.28%
costing::execute_transaction_creating_big_vec_substates 698.7±9.07ms 699.6±10.21ms +0.13%
costing::execute_transaction_reading_big_vec_substates 567.1±1.44ms 643.0±1.04ms +13.38%
costing::instantiate_flash_loan 877.9±314.28µs 867.7±289.79µs -1.16%
costing::instantiate_radiswap 1244.5±2744.25µs 968.2±864.07µs -22.20%
costing::scrypto_malloc 668.4±1.25ms 673.0±1.41ms +0.69%
costing::scrypto_sbor_decode 663.2±2.11ms 660.3±1.33ms -0.44%
costing::scrypto_sha256 590.0±0.72ms 586.3±1.17ms -0.63%
costing::spin_loop_v1 508.1±0.73ms 524.6±0.77ms +3.25%
costing::spin_loop_v2 596.5±0.67ms 605.3±1.48ms +1.48%
costing::validate_sbor_payload 29.1±0.05µs 30.1±0.08µs +3.44%
costing::validate_sbor_payload_bytes 256.6±0.94ns 247.9±1.18ns -3.39%
costing::validate_secp256k1 76.7±0.07µs 76.6±0.05µs -0.13%
costing::validate_wasm 33.6±0.03ms 33.4±0.03ms -0.60%
decimal::add/0 8.4±0.00ns 8.4±0.00ns 0.00%
decimal::add/rust-native 9.8±0.00ns 9.8±0.00ns 0.00%
decimal::add/wasmi 312.7±2.50ns 313.5±1.28ns +0.26%
decimal::add/wasmi-call-native 3.0±0.01µs 3.0±0.02µs 0.00%
decimal::div/0 168.9±0.26ns 168.6±0.28ns -0.18%
decimal::from_string/0 155.9±0.08ns 165.5±0.16ns +6.16%
decimal::mul/0 129.3±0.06ns 129.3±0.10ns 0.00%
decimal::mul/rust-native 126.8±0.11ns 126.5±0.08ns -0.24%
decimal::mul/wasmi 19.3±0.10µs 19.9±0.12µs +3.11%
decimal::mul/wasmi-call-native 3.2±0.01µs 3.2±0.00µs 0.00%
decimal::pow/0 592.0±0.44ns 591.8±0.12ns -0.03%
decimal::pow/rust-native 590.8±0.31ns 590.9±0.41ns +0.02%
decimal::pow/wasmi 89.6±0.11µs 93.8±0.16µs +4.69%
decimal::pow/wasmi-call-native 4.8±0.02µs 4.9±0.01µs +2.08%
decimal::root/0 8.2±0.01µs 8.1±0.01µs -1.22%
decimal::sub/0 8.3±0.01ns 8.4±0.01ns +1.20%
decimal::to_string/0 440.7±0.48ns 442.1±0.55ns +0.32%
large_transaction_processing::prepare 2.6±0.00ms 2.6±0.00ms 0.00%
large_transaction_processing::prepare_and_decompile 6.2±0.02ms 6.3±0.01ms +1.61%
large_transaction_processing::prepare_and_decompile_and_recompile 25.6±1.59ms 30.4±1.64ms +18.75%
metadata_validation::validate_urls 5.2±0.11µs 5.1±0.03µs -1.92%
precise_decimal::add/0 8.7±0.05ns 8.7±0.04ns 0.00%
precise_decimal::add/rust-native 10.7±0.02ns 10.8±0.11ns +0.93%
precise_decimal::add/wasmi 411.2±1.91ns 417.6±2.11ns +1.56%
precise_decimal::add/wasmi-call-native 3.9±0.01µs 3.8±0.01µs -2.56%
precise_decimal::div/0 303.8±1.71ns 302.3±1.60ns -0.49%
precise_decimal::from_string/0 204.6±0.21ns 204.2±0.32ns -0.20%
precise_decimal::mul/0 344.9±2.22ns 344.0±2.19ns -0.26%
precise_decimal::mul/rust-native 287.3±0.22ns 287.2±0.36ns -0.03%
precise_decimal::mul/wasmi 46.9±0.17µs 48.7±0.16µs +3.84%
precise_decimal::mul/wasmi-call-native 4.2±0.00µs 4.1±0.01µs -2.38%
precise_decimal::pow/0 1758.4±2.42ns 1736.2±3.66ns -1.26%
precise_decimal::pow/rust-native 1362.4±0.56ns 1357.1±2.58ns -0.39%
precise_decimal::pow/wasmi 223.8±0.69µs 232.6±1.39µs +3.93%
precise_decimal::pow/wasmi-call-native 7.4±0.02µs 7.4±0.03µs 0.00%
precise_decimal::root/0 57.8±0.03µs 58.2±0.06µs +0.69%
precise_decimal::sub/0 8.9±0.14ns 8.9±0.09ns 0.00%
precise_decimal::to_string/0 710.2±3.66ns 708.1±4.12ns -0.30%
schema::validate_payload 387.7±0.47µs 384.5±0.43µs -0.83%
transaction::radiswap 4.9±0.02ms 5.1±0.03ms +4.08%
transaction::transfer 1822.8±4.56µs 1802.8±2.36µs -1.10%
transaction_validation::validate_manifest 43.4±0.05µs 43.1±0.05µs -0.69%
transaction_validation::verify_bls_2KB 1055.1±28.66µs 1001.1±4.70µs -5.12%
transaction_validation::verify_bls_32B 1010.1±13.84µs 1000.3±8.16µs -0.97%
transaction_validation::verify_ecdsa 74.6±0.06µs 74.6±0.08µs 0.00%
transaction_validation::verify_ed25519 44.6±0.06µs 44.3±0.06µs -0.67%

@lrubasze lrubasze force-pushed the feature/support_non_fungibles_in_execution_trace branch from 2a38ea3 to a4629ce Compare December 18, 2024 17:39
Copy link
Contributor

@dhedey dhedey left a comment

Choose a reason for hiding this comment

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

Great work, thanks :)

TakeAdvanced(ResourceAddress, Decimal),
Recall(ResourceAddress, Decimal),
Copy link
Contributor

Choose a reason for hiding this comment

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

Is it worth mentioning that Recall is not supported (and why)?
And perhaps (somewhere) that this feature isn't comprehensive/a good abstraction, and will be deprecated in the node's Core API at Dugong, with the intention to have it removed at a later point?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants