From bb6ff5d27b6e32b16b57dad7fca804079e5573ec Mon Sep 17 00:00:00 2001 From: Olga Kunyavskaya Date: Mon, 22 Jul 2024 12:18:16 +0300 Subject: [PATCH] Stabilize NEP-488 (Host Functions for BLS12-381 Curve Operations) (#11818) Stabilize NEP-488: Host Functions for BLS12-381 Curve Operations * NEP-488: https://github.com/near/NEPs/pull/488 * Implementation: https://github.com/near/nearcore/pull/9317 --- CHANGELOG.md | 1 + core/parameters/Cargo.toml | 2 - core/parameters/res/runtime_configs/141.yaml | 18 - core/parameters/res/runtime_configs/69.yaml | 20 +- .../res/runtime_configs/parameters.snap | 36 +- core/parameters/src/config_store.rs | 1 - core/parameters/src/cost.rs | 54 --- ...rameters__config_store__tests__0.json.snap | 20 +- ...meters__config_store__tests__129.json.snap | 20 +- ...ameters__config_store__tests__35.json.snap | 20 +- ...ameters__config_store__tests__42.json.snap | 20 +- ...ameters__config_store__tests__46.json.snap | 20 +- ...ameters__config_store__tests__48.json.snap | 20 +- ...ameters__config_store__tests__49.json.snap | 20 +- ...ameters__config_store__tests__50.json.snap | 20 +- ...ameters__config_store__tests__52.json.snap | 20 +- ...ameters__config_store__tests__53.json.snap | 20 +- ...ameters__config_store__tests__55.json.snap | 20 +- ...ameters__config_store__tests__57.json.snap | 20 +- ...ameters__config_store__tests__59.json.snap | 20 +- ...ameters__config_store__tests__61.json.snap | 20 +- ...ameters__config_store__tests__62.json.snap | 20 +- ...ameters__config_store__tests__63.json.snap | 20 +- ...ameters__config_store__tests__64.json.snap | 20 +- ...ameters__config_store__tests__66.json.snap | 20 +- ...ameters__config_store__tests__67.json.snap | 20 +- ...ameters__config_store__tests__68.json.snap | 20 +- ...ameters__config_store__tests__69.json.snap | 20 +- ...ameters__config_store__tests__70.json.snap | 20 +- ...__config_store__tests__testnet_0.json.snap | 20 +- ...config_store__tests__testnet_129.json.snap | 20 +- ..._config_store__tests__testnet_35.json.snap | 20 +- ..._config_store__tests__testnet_42.json.snap | 20 +- ..._config_store__tests__testnet_46.json.snap | 20 +- ..._config_store__tests__testnet_48.json.snap | 20 +- ..._config_store__tests__testnet_49.json.snap | 20 +- ..._config_store__tests__testnet_50.json.snap | 20 +- ..._config_store__tests__testnet_52.json.snap | 20 +- ..._config_store__tests__testnet_53.json.snap | 20 +- ..._config_store__tests__testnet_55.json.snap | 20 +- ..._config_store__tests__testnet_57.json.snap | 20 +- ..._config_store__tests__testnet_59.json.snap | 20 +- ..._config_store__tests__testnet_61.json.snap | 20 +- ..._config_store__tests__testnet_62.json.snap | 20 +- ..._config_store__tests__testnet_63.json.snap | 20 +- ..._config_store__tests__testnet_64.json.snap | 20 +- ..._config_store__tests__testnet_66.json.snap | 20 +- ..._config_store__tests__testnet_67.json.snap | 20 +- ..._config_store__tests__testnet_68.json.snap | 20 +- ..._config_store__tests__testnet_69.json.snap | 20 +- ..._config_store__tests__testnet_70.json.snap | 20 +- ...ers__view__tests__runtime_config_view.snap | 20 +- core/parameters/src/view.rs | 54 --- core/primitives-core/Cargo.toml | 2 - core/primitives-core/src/version.rs | 5 +- core/primitives/src/profile_data_v3.rs | 92 +++-- ...__views__tests__exec_metadata_v2_view.snap | 90 ++++ ...__views__tests__exec_metadata_v3_view.snap | 90 ++++ ...es__views__tests__runtime_config_view.snap | 20 +- .../estimator-contract/Cargo.toml | 2 - .../estimator-contract/src/lib.rs | 18 - runtime/near-vm-runner/Cargo.toml | 7 +- runtime/near-vm-runner/src/imports.rs | 18 +- runtime/near-vm-runner/src/logic/bls12381.rs | 1 - runtime/near-vm-runner/src/logic/errors.rs | 98 +++-- runtime/near-vm-runner/src/logic/logic.rs | 386 +++++++++--------- runtime/near-vm-runner/src/logic/mod.rs | 1 - runtime/near-vm-runner/src/logic/tests/mod.rs | 1 - runtime/near-vm-runner/src/profile.rs | 92 +++-- .../src/tests/compile_errors.rs | 2 +- runtime/runtime-params-estimator/Cargo.toml | 2 - runtime/runtime-params-estimator/src/cost.rs | 18 - .../src/costs_to_runtime_config.rs | 18 - runtime/runtime-params-estimator/src/lib.rs | 36 -- 74 files changed, 1476 insertions(+), 609 deletions(-) delete mode 100644 core/parameters/res/runtime_configs/141.yaml diff --git a/CHANGELOG.md b/CHANGELOG.md index be7ecca6627..dabd4c1c3fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ * Congestion Control [NEP-0539](https://github.com/near/NEPs/pull/539) * Stateless Validation [NEP-0509](https://github.com/near/NEPs/pull/509) * Eth-Implicit Accounts [NEP-0518](https://github.com/near/NEPs/pull/518) +* Host Functions for BLS12-381 Curve Operations [NEP-0488](https://github.com/near/NEPs/pull/488) ### Non-protocol Changes diff --git a/core/parameters/Cargo.toml b/core/parameters/Cargo.toml index 1c8ab735150..62bc4f4e25c 100644 --- a/core/parameters/Cargo.toml +++ b/core/parameters/Cargo.toml @@ -35,7 +35,6 @@ insta.workspace = true nightly = [ "near-primitives-core/nightly", "nightly_protocol", - "protocol_feature_bls12381", ] nightly_protocol = [ "near-primitives-core/nightly_protocol", @@ -44,4 +43,3 @@ statelessnet_protocol = [ "near-primitives-core/statelessnet_protocol", ] calimero_zero_storage = [] -protocol_feature_bls12381 = [] diff --git a/core/parameters/res/runtime_configs/141.yaml b/core/parameters/res/runtime_configs/141.yaml deleted file mode 100644 index caec7d37418..00000000000 --- a/core/parameters/res/runtime_configs/141.yaml +++ /dev/null @@ -1,18 +0,0 @@ -wasm_bls12381_p1_sum_base: { old: 300_000_000_000_000, new: 16_500_000_000 } -wasm_bls12381_p1_sum_element: { old: 300_000_000_000_000, new: 6_000_000_000 } -wasm_bls12381_p2_sum_base: { old: 300_000_000_000_000, new: 18_600_000_000 } -wasm_bls12381_p2_sum_element: { old: 300_000_000_000_000, new: 15_000_000_000 } -wasm_bls12381_g1_multiexp_base: { old: 300_000_000_000_000, new: 16_500_000_000 } -wasm_bls12381_g1_multiexp_element: { old: 300_000_000_000_000, new: 930_000_000_000 } -wasm_bls12381_g2_multiexp_base: { old: 300_000_000_000_000, new: 18_600_000_000 } -wasm_bls12381_g2_multiexp_element: { old: 300_000_000_000_000, new: 1_995_000_000_000 } -wasm_bls12381_map_fp_to_g1_base: { old: 300_000_000_000_000, new: 1_500_000_000 } -wasm_bls12381_map_fp_to_g1_element: { old: 300_000_000_000_000, new: 252_000_000_000 } -wasm_bls12381_map_fp2_to_g2_base: { old: 300_000_000_000_000, new: 1_500_000_000 } -wasm_bls12381_map_fp2_to_g2_element: { old: 300_000_000_000_000, new: 900_000_000_000 } -wasm_bls12381_pairing_base: { old: 300_000_000_000_000, new: 2_130_000_000_000 } -wasm_bls12381_pairing_element: { old: 300_000_000_000_000, new: 2_130_000_000_000 } -wasm_bls12381_p1_decompress_base: { old: 300_000_000_000_000, new: 15_000_000_000 } -wasm_bls12381_p1_decompress_element: { old: 300_000_000_000_000, new: 81_000_000_000 } -wasm_bls12381_p2_decompress_base: { old: 300_000_000_000_000, new: 15_000_000_000 } -wasm_bls12381_p2_decompress_element: { old: 300_000_000_000_000, new: 165_000_000_000 } diff --git a/core/parameters/res/runtime_configs/69.yaml b/core/parameters/res/runtime_configs/69.yaml index 16b426fd9b4..adeb68d21dd 100644 --- a/core/parameters/res/runtime_configs/69.yaml +++ b/core/parameters/res/runtime_configs/69.yaml @@ -70,4 +70,22 @@ data_receipt_creation_per_byte: { wasm_yield_resume_byte: { old: 17_212_011, new: 47_683_715 -} \ No newline at end of file +} +wasm_bls12381_p1_sum_base: { old: 300_000_000_000_000, new: 16_500_000_000 } +wasm_bls12381_p1_sum_element: { old: 300_000_000_000_000, new: 6_000_000_000 } +wasm_bls12381_p2_sum_base: { old: 300_000_000_000_000, new: 18_600_000_000 } +wasm_bls12381_p2_sum_element: { old: 300_000_000_000_000, new: 15_000_000_000 } +wasm_bls12381_g1_multiexp_base: { old: 300_000_000_000_000, new: 16_500_000_000 } +wasm_bls12381_g1_multiexp_element: { old: 300_000_000_000_000, new: 930_000_000_000 } +wasm_bls12381_g2_multiexp_base: { old: 300_000_000_000_000, new: 18_600_000_000 } +wasm_bls12381_g2_multiexp_element: { old: 300_000_000_000_000, new: 1_995_000_000_000 } +wasm_bls12381_map_fp_to_g1_base: { old: 300_000_000_000_000, new: 1_500_000_000 } +wasm_bls12381_map_fp_to_g1_element: { old: 300_000_000_000_000, new: 252_000_000_000 } +wasm_bls12381_map_fp2_to_g2_base: { old: 300_000_000_000_000, new: 1_500_000_000 } +wasm_bls12381_map_fp2_to_g2_element: { old: 300_000_000_000_000, new: 900_000_000_000 } +wasm_bls12381_pairing_base: { old: 300_000_000_000_000, new: 2_130_000_000_000 } +wasm_bls12381_pairing_element: { old: 300_000_000_000_000, new: 2_130_000_000_000 } +wasm_bls12381_p1_decompress_base: { old: 300_000_000_000_000, new: 15_000_000_000 } +wasm_bls12381_p1_decompress_element: { old: 300_000_000_000_000, new: 81_000_000_000 } +wasm_bls12381_p2_decompress_base: { old: 300_000_000_000_000, new: 15_000_000_000 } +wasm_bls12381_p2_decompress_element: { old: 300_000_000_000_000, new: 165_000_000_000 } diff --git a/core/parameters/res/runtime_configs/parameters.snap b/core/parameters/res/runtime_configs/parameters.snap index db7436857fd..c5bd1829046 100644 --- a/core/parameters/res/runtime_configs/parameters.snap +++ b/core/parameters/res/runtime_configs/parameters.snap @@ -146,24 +146,24 @@ wasm_yield_create_base 153_411_779_276 wasm_yield_create_byte 15_643_988 wasm_yield_resume_base 1_195_627_285_210 wasm_yield_resume_byte 47_683_715 -wasm_bls12381_p1_sum_base 300_000_000_000_000 -wasm_bls12381_p1_sum_element 300_000_000_000_000 -wasm_bls12381_p2_sum_base 300_000_000_000_000 -wasm_bls12381_p2_sum_element 300_000_000_000_000 -wasm_bls12381_g1_multiexp_base 300_000_000_000_000 -wasm_bls12381_g1_multiexp_element 300_000_000_000_000 -wasm_bls12381_g2_multiexp_base 300_000_000_000_000 -wasm_bls12381_g2_multiexp_element 300_000_000_000_000 -wasm_bls12381_map_fp_to_g1_base 300_000_000_000_000 -wasm_bls12381_map_fp_to_g1_element 300_000_000_000_000 -wasm_bls12381_map_fp2_to_g2_base 300_000_000_000_000 -wasm_bls12381_map_fp2_to_g2_element 300_000_000_000_000 -wasm_bls12381_pairing_base 300_000_000_000_000 -wasm_bls12381_pairing_element 300_000_000_000_000 -wasm_bls12381_p1_decompress_base 300_000_000_000_000 -wasm_bls12381_p1_decompress_element 300_000_000_000_000 -wasm_bls12381_p2_decompress_base 300_000_000_000_000 -wasm_bls12381_p2_decompress_element 300_000_000_000_000 +wasm_bls12381_p1_sum_base 16_500_000_000 +wasm_bls12381_p1_sum_element 6_000_000_000 +wasm_bls12381_p2_sum_base 18_600_000_000 +wasm_bls12381_p2_sum_element 15_000_000_000 +wasm_bls12381_g1_multiexp_base 16_500_000_000 +wasm_bls12381_g1_multiexp_element 930_000_000_000 +wasm_bls12381_g2_multiexp_base 18_600_000_000 +wasm_bls12381_g2_multiexp_element 1_995_000_000_000 +wasm_bls12381_map_fp_to_g1_base 1_500_000_000 +wasm_bls12381_map_fp_to_g1_element 252_000_000_000 +wasm_bls12381_map_fp2_to_g2_base 1_500_000_000 +wasm_bls12381_map_fp2_to_g2_element 900_000_000_000 +wasm_bls12381_pairing_base 2_130_000_000_000 +wasm_bls12381_pairing_element 2_130_000_000_000 +wasm_bls12381_p1_decompress_base 15_000_000_000 +wasm_bls12381_p1_decompress_element 81_000_000_000 +wasm_bls12381_p2_decompress_base 15_000_000_000 +wasm_bls12381_p2_decompress_element 165_000_000_000 max_gas_burnt 300_000_000_000_000 max_gas_burnt_view 300_000_000_000_000 max_stack_height 262_144 diff --git a/core/parameters/src/config_store.rs b/core/parameters/src/config_store.rs index f6c0a38ab0a..b900d66e054 100644 --- a/core/parameters/src/config_store.rs +++ b/core/parameters/src/config_store.rs @@ -46,7 +46,6 @@ static CONFIG_DIFFS: &[(ProtocolVersion, &str)] = &[ // Introduce ETH-implicit accounts. (70, include_config!("70.yaml")), (129, include_config!("129.yaml")), - (141, include_config!("141.yaml")), ]; /// Testnet parameters for versions <= 29, which (incorrectly) differed from mainnet parameters diff --git a/core/parameters/src/cost.rs b/core/parameters/src/cost.rs index a5769982730..2d70c6b6e72 100644 --- a/core/parameters/src/cost.rs +++ b/core/parameters/src/cost.rs @@ -130,41 +130,23 @@ impl ExtCostsConfig { ExtCosts::alt_bn128_pairing_check_element => 5_102_000_000_000, ExtCosts::alt_bn128_g1_sum_base => 3_000_000_000, ExtCosts::alt_bn128_g1_sum_element => 5_000_000_000, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p1_sum_base => SAFETY_MULTIPLIER * 5_500_000_000, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p1_sum_element => SAFETY_MULTIPLIER * 2_000_000_000, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p2_sum_base => SAFETY_MULTIPLIER * 6_200_000_000, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p2_sum_element => SAFETY_MULTIPLIER * 5_000_000_000, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_g1_multiexp_base => SAFETY_MULTIPLIER * 5_500_000_000, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_g1_multiexp_element => SAFETY_MULTIPLIER * 310_000_000_000, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_g2_multiexp_base => SAFETY_MULTIPLIER * 6_200_000_000, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_g2_multiexp_element => SAFETY_MULTIPLIER * 665_000_000_000, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_map_fp_to_g1_base => SAFETY_MULTIPLIER * 500_000_000, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_map_fp_to_g1_element => SAFETY_MULTIPLIER * 84_000_000_000, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_map_fp2_to_g2_base => SAFETY_MULTIPLIER * 500_000_000, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_map_fp2_to_g2_element => SAFETY_MULTIPLIER * 300_000_000_000, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_pairing_base => SAFETY_MULTIPLIER * 710_000_000_000, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_pairing_element => SAFETY_MULTIPLIER * 710_000_000_000, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p1_decompress_base => SAFETY_MULTIPLIER * 500_000_000, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p1_decompress_element => SAFETY_MULTIPLIER * 27_000_000_000, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p2_decompress_base => SAFETY_MULTIPLIER * 500_000_000, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p2_decompress_element => SAFETY_MULTIPLIER * 55_000_000_000, // TODO(yield/resume): replicate fees here after estimation ExtCosts::yield_create_base => 300_000_000_000_000, @@ -266,41 +248,23 @@ pub enum ExtCosts { yield_create_byte = 62, yield_resume_base = 63, yield_resume_byte = 64, - #[cfg(feature = "protocol_feature_bls12381")] bls12381_p1_sum_base = 65, - #[cfg(feature = "protocol_feature_bls12381")] bls12381_p1_sum_element = 66, - #[cfg(feature = "protocol_feature_bls12381")] bls12381_p2_sum_base = 67, - #[cfg(feature = "protocol_feature_bls12381")] bls12381_p2_sum_element = 68, - #[cfg(feature = "protocol_feature_bls12381")] bls12381_g1_multiexp_base = 69, - #[cfg(feature = "protocol_feature_bls12381")] bls12381_g1_multiexp_element = 70, - #[cfg(feature = "protocol_feature_bls12381")] bls12381_g2_multiexp_base = 71, - #[cfg(feature = "protocol_feature_bls12381")] bls12381_g2_multiexp_element = 72, - #[cfg(feature = "protocol_feature_bls12381")] bls12381_map_fp_to_g1_base = 73, - #[cfg(feature = "protocol_feature_bls12381")] bls12381_map_fp_to_g1_element = 74, - #[cfg(feature = "protocol_feature_bls12381")] bls12381_map_fp2_to_g2_base = 75, - #[cfg(feature = "protocol_feature_bls12381")] bls12381_map_fp2_to_g2_element = 76, - #[cfg(feature = "protocol_feature_bls12381")] bls12381_pairing_base = 77, - #[cfg(feature = "protocol_feature_bls12381")] bls12381_pairing_element = 78, - #[cfg(feature = "protocol_feature_bls12381")] bls12381_p1_decompress_base = 79, - #[cfg(feature = "protocol_feature_bls12381")] bls12381_p1_decompress_element = 80, - #[cfg(feature = "protocol_feature_bls12381")] bls12381_p2_decompress_base = 81, - #[cfg(feature = "protocol_feature_bls12381")] bls12381_p2_decompress_element = 82, } @@ -414,41 +378,23 @@ impl ExtCosts { ExtCosts::yield_create_byte => Parameter::WasmYieldCreateByte, ExtCosts::yield_resume_base => Parameter::WasmYieldResumeBase, ExtCosts::yield_resume_byte => Parameter::WasmYieldResumeBase, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p1_sum_base => Parameter::WasmBls12381P1SumBase, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p1_sum_element => Parameter::WasmBls12381P1SumElement, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p2_sum_base => Parameter::WasmBls12381P2SumBase, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p2_sum_element => Parameter::WasmBls12381P2SumElement, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_g1_multiexp_base => Parameter::WasmBls12381G1MultiexpBase, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_g1_multiexp_element => Parameter::WasmBls12381G1MultiexpElement, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_g2_multiexp_base => Parameter::WasmBls12381G2MultiexpBase, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_g2_multiexp_element => Parameter::WasmBls12381G2MultiexpElement, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_map_fp_to_g1_base => Parameter::WasmBls12381MapFpToG1Base, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_map_fp_to_g1_element => Parameter::WasmBls12381MapFpToG1Element, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_map_fp2_to_g2_base => Parameter::WasmBls12381MapFp2ToG2Base, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_map_fp2_to_g2_element => Parameter::WasmBls12381MapFp2ToG2Element, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_pairing_base => Parameter::WasmBls12381PairingBase, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_pairing_element => Parameter::WasmBls12381PairingElement, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p1_decompress_base => Parameter::WasmBls12381P1DecompressBase, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p1_decompress_element => Parameter::WasmBls12381P1DecompressElement, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p2_decompress_base => Parameter::WasmBls12381P2DecompressBase, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p2_decompress_element => Parameter::WasmBls12381P2DecompressElement, } } diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__0.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__0.json.snap index 5d8a5b7bea8..ae8e3f1099d 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__0.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__0.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 3856371, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__129.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__129.json.snap index 95c758b474a..c1347cf785a 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__129.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__129.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 153411779276, "yield_create_byte": 15643988, "yield_resume_base": 1195627285210, - "yield_resume_byte": 1195627285210 + "yield_resume_byte": 1195627285210, + "bls12381_p1_sum_base": 16500000000, + "bls12381_p1_sum_element": 6000000000, + "bls12381_p2_sum_base": 18600000000, + "bls12381_p2_sum_element": 15000000000, + "bls12381_g1_multiexp_base": 16500000000, + "bls12381_g1_multiexp_element": 930000000000, + "bls12381_g2_multiexp_base": 18600000000, + "bls12381_g2_multiexp_element": 1995000000000, + "bls12381_map_fp_to_g1_base": 1500000000, + "bls12381_map_fp_to_g1_element": 252000000000, + "bls12381_map_fp2_to_g2_base": 1500000000, + "bls12381_map_fp2_to_g2_element": 900000000000, + "bls12381_pairing_base": 2130000000000, + "bls12381_pairing_element": 2130000000000, + "bls12381_p1_decompress_base": 15000000000, + "bls12381_p1_decompress_element": 81000000000, + "bls12381_p2_decompress_base": 15000000000, + "bls12381_p2_decompress_element": 165000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__35.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__35.json.snap index d9d62de95c5..30ac71b5126 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__35.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__35.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 3856371, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__42.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__42.json.snap index d567eff8240..a8d4c2b762a 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__42.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__42.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 3856371, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__46.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__46.json.snap index 82ced427f72..e822762d150 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__46.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__46.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 3856371, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__48.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__48.json.snap index efce85d058f..15fbe27adc7 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__48.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__48.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 2207874, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__49.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__49.json.snap index 1980e66c625..bcdba46a9b9 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__49.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__49.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__50.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__50.json.snap index ac2e65f3b25..eab9620755f 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__50.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__50.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__52.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__52.json.snap index 98eceb06c16..da7e74cc7d6 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__52.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__52.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__53.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__53.json.snap index 7f0700671bc..a21b3335e5e 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__53.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__53.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__55.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__55.json.snap index df56cc68edd..5d8d299d487 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__55.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__55.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__57.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__57.json.snap index df08bd74aaa..dd0f2648544 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__57.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__57.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__59.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__59.json.snap index 5973eac4430..ccbe1dcbaf4 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__59.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__59.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__61.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__61.json.snap index dc38f33c3c3..28f332e587d 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__61.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__61.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__62.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__62.json.snap index 71f5052d7ef..9548d786a25 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__62.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__62.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__63.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__63.json.snap index 9d9bcf1cc6d..9ef63c04c38 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__63.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__63.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__64.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__64.json.snap index 92c11f5bc86..3d2d6808f2e 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__64.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__64.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__66.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__66.json.snap index 74a9b04e788..4cc699faaa4 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__66.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__66.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__67.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__67.json.snap index a07a9038777..d1cc888a825 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__67.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__67.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 153411779276, "yield_create_byte": 15643988, "yield_resume_base": 1195627285210, - "yield_resume_byte": 1195627285210 + "yield_resume_byte": 1195627285210, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__68.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__68.json.snap index 5ada6643ee4..dc6e882bea1 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__68.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__68.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 153411779276, "yield_create_byte": 15643988, "yield_resume_base": 1195627285210, - "yield_resume_byte": 1195627285210 + "yield_resume_byte": 1195627285210, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__69.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__69.json.snap index b366f1c5540..0991f045587 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__69.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__69.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 153411779276, "yield_create_byte": 15643988, "yield_resume_base": 1195627285210, - "yield_resume_byte": 1195627285210 + "yield_resume_byte": 1195627285210, + "bls12381_p1_sum_base": 16500000000, + "bls12381_p1_sum_element": 6000000000, + "bls12381_p2_sum_base": 18600000000, + "bls12381_p2_sum_element": 15000000000, + "bls12381_g1_multiexp_base": 16500000000, + "bls12381_g1_multiexp_element": 930000000000, + "bls12381_g2_multiexp_base": 18600000000, + "bls12381_g2_multiexp_element": 1995000000000, + "bls12381_map_fp_to_g1_base": 1500000000, + "bls12381_map_fp_to_g1_element": 252000000000, + "bls12381_map_fp2_to_g2_base": 1500000000, + "bls12381_map_fp2_to_g2_element": 900000000000, + "bls12381_pairing_base": 2130000000000, + "bls12381_pairing_element": 2130000000000, + "bls12381_p1_decompress_base": 15000000000, + "bls12381_p1_decompress_element": 81000000000, + "bls12381_p2_decompress_base": 15000000000, + "bls12381_p2_decompress_element": 165000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__70.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__70.json.snap index f57d6c95304..2bfdd31fc33 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__70.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__70.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 153411779276, "yield_create_byte": 15643988, "yield_resume_base": 1195627285210, - "yield_resume_byte": 1195627285210 + "yield_resume_byte": 1195627285210, + "bls12381_p1_sum_base": 16500000000, + "bls12381_p1_sum_element": 6000000000, + "bls12381_p2_sum_base": 18600000000, + "bls12381_p2_sum_element": 15000000000, + "bls12381_g1_multiexp_base": 16500000000, + "bls12381_g1_multiexp_element": 930000000000, + "bls12381_g2_multiexp_base": 18600000000, + "bls12381_g2_multiexp_element": 1995000000000, + "bls12381_map_fp_to_g1_base": 1500000000, + "bls12381_map_fp_to_g1_element": 252000000000, + "bls12381_map_fp2_to_g2_base": 1500000000, + "bls12381_map_fp2_to_g2_element": 900000000000, + "bls12381_pairing_base": 2130000000000, + "bls12381_pairing_element": 2130000000000, + "bls12381_p1_decompress_base": 15000000000, + "bls12381_p1_decompress_element": 81000000000, + "bls12381_p2_decompress_base": 15000000000, + "bls12381_p2_decompress_element": 165000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_0.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_0.json.snap index 5d8a5b7bea8..ae8e3f1099d 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_0.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_0.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 3856371, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_129.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_129.json.snap index 95c758b474a..c1347cf785a 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_129.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_129.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 153411779276, "yield_create_byte": 15643988, "yield_resume_base": 1195627285210, - "yield_resume_byte": 1195627285210 + "yield_resume_byte": 1195627285210, + "bls12381_p1_sum_base": 16500000000, + "bls12381_p1_sum_element": 6000000000, + "bls12381_p2_sum_base": 18600000000, + "bls12381_p2_sum_element": 15000000000, + "bls12381_g1_multiexp_base": 16500000000, + "bls12381_g1_multiexp_element": 930000000000, + "bls12381_g2_multiexp_base": 18600000000, + "bls12381_g2_multiexp_element": 1995000000000, + "bls12381_map_fp_to_g1_base": 1500000000, + "bls12381_map_fp_to_g1_element": 252000000000, + "bls12381_map_fp2_to_g2_base": 1500000000, + "bls12381_map_fp2_to_g2_element": 900000000000, + "bls12381_pairing_base": 2130000000000, + "bls12381_pairing_element": 2130000000000, + "bls12381_p1_decompress_base": 15000000000, + "bls12381_p1_decompress_element": 81000000000, + "bls12381_p2_decompress_base": 15000000000, + "bls12381_p2_decompress_element": 165000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_35.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_35.json.snap index d9d62de95c5..30ac71b5126 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_35.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_35.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 3856371, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_42.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_42.json.snap index d567eff8240..a8d4c2b762a 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_42.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_42.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 3856371, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_46.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_46.json.snap index 82ced427f72..e822762d150 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_46.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_46.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 3856371, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_48.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_48.json.snap index efce85d058f..15fbe27adc7 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_48.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_48.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 2207874, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_49.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_49.json.snap index 1980e66c625..bcdba46a9b9 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_49.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_49.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_50.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_50.json.snap index ac2e65f3b25..eab9620755f 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_50.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_50.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_52.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_52.json.snap index 98eceb06c16..da7e74cc7d6 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_52.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_52.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_53.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_53.json.snap index 7f0700671bc..a21b3335e5e 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_53.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_53.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_55.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_55.json.snap index df56cc68edd..5d8d299d487 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_55.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_55.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_57.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_57.json.snap index df08bd74aaa..dd0f2648544 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_57.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_57.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_59.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_59.json.snap index 5973eac4430..ccbe1dcbaf4 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_59.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_59.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_61.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_61.json.snap index dc38f33c3c3..28f332e587d 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_61.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_61.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_62.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_62.json.snap index 71f5052d7ef..9548d786a25 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_62.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_62.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_63.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_63.json.snap index 9d9bcf1cc6d..9ef63c04c38 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_63.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_63.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_64.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_64.json.snap index 92c11f5bc86..3d2d6808f2e 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_64.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_64.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_66.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_66.json.snap index 74a9b04e788..4cc699faaa4 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_66.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_66.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 300000000000000, "yield_create_byte": 300000000000000, "yield_resume_base": 300000000000000, - "yield_resume_byte": 300000000000000 + "yield_resume_byte": 300000000000000, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_67.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_67.json.snap index a07a9038777..d1cc888a825 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_67.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_67.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 153411779276, "yield_create_byte": 15643988, "yield_resume_base": 1195627285210, - "yield_resume_byte": 1195627285210 + "yield_resume_byte": 1195627285210, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_68.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_68.json.snap index 5ada6643ee4..dc6e882bea1 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_68.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_68.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 153411779276, "yield_create_byte": 15643988, "yield_resume_base": 1195627285210, - "yield_resume_byte": 1195627285210 + "yield_resume_byte": 1195627285210, + "bls12381_p1_sum_base": 300000000000000, + "bls12381_p1_sum_element": 300000000000000, + "bls12381_p2_sum_base": 300000000000000, + "bls12381_p2_sum_element": 300000000000000, + "bls12381_g1_multiexp_base": 300000000000000, + "bls12381_g1_multiexp_element": 300000000000000, + "bls12381_g2_multiexp_base": 300000000000000, + "bls12381_g2_multiexp_element": 300000000000000, + "bls12381_map_fp_to_g1_base": 300000000000000, + "bls12381_map_fp_to_g1_element": 300000000000000, + "bls12381_map_fp2_to_g2_base": 300000000000000, + "bls12381_map_fp2_to_g2_element": 300000000000000, + "bls12381_pairing_base": 300000000000000, + "bls12381_pairing_element": 300000000000000, + "bls12381_p1_decompress_base": 300000000000000, + "bls12381_p1_decompress_element": 300000000000000, + "bls12381_p2_decompress_base": 300000000000000, + "bls12381_p2_decompress_element": 300000000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_69.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_69.json.snap index b366f1c5540..0991f045587 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_69.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_69.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 153411779276, "yield_create_byte": 15643988, "yield_resume_base": 1195627285210, - "yield_resume_byte": 1195627285210 + "yield_resume_byte": 1195627285210, + "bls12381_p1_sum_base": 16500000000, + "bls12381_p1_sum_element": 6000000000, + "bls12381_p2_sum_base": 18600000000, + "bls12381_p2_sum_element": 15000000000, + "bls12381_g1_multiexp_base": 16500000000, + "bls12381_g1_multiexp_element": 930000000000, + "bls12381_g2_multiexp_base": 18600000000, + "bls12381_g2_multiexp_element": 1995000000000, + "bls12381_map_fp_to_g1_base": 1500000000, + "bls12381_map_fp_to_g1_element": 252000000000, + "bls12381_map_fp2_to_g2_base": 1500000000, + "bls12381_map_fp2_to_g2_element": 900000000000, + "bls12381_pairing_base": 2130000000000, + "bls12381_pairing_element": 2130000000000, + "bls12381_p1_decompress_base": 15000000000, + "bls12381_p1_decompress_element": 81000000000, + "bls12381_p2_decompress_base": 15000000000, + "bls12381_p2_decompress_element": 165000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_70.json.snap b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_70.json.snap index f57d6c95304..2bfdd31fc33 100644 --- a/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_70.json.snap +++ b/core/parameters/src/snapshots/near_parameters__config_store__tests__testnet_70.json.snap @@ -172,7 +172,25 @@ expression: config_view "yield_create_base": 153411779276, "yield_create_byte": 15643988, "yield_resume_base": 1195627285210, - "yield_resume_byte": 1195627285210 + "yield_resume_byte": 1195627285210, + "bls12381_p1_sum_base": 16500000000, + "bls12381_p1_sum_element": 6000000000, + "bls12381_p2_sum_base": 18600000000, + "bls12381_p2_sum_element": 15000000000, + "bls12381_g1_multiexp_base": 16500000000, + "bls12381_g1_multiexp_element": 930000000000, + "bls12381_g2_multiexp_base": 18600000000, + "bls12381_g2_multiexp_element": 1995000000000, + "bls12381_map_fp_to_g1_base": 1500000000, + "bls12381_map_fp_to_g1_element": 252000000000, + "bls12381_map_fp2_to_g2_base": 1500000000, + "bls12381_map_fp2_to_g2_element": 900000000000, + "bls12381_pairing_base": 2130000000000, + "bls12381_pairing_element": 2130000000000, + "bls12381_p1_decompress_base": 15000000000, + "bls12381_p1_decompress_element": 81000000000, + "bls12381_p2_decompress_base": 15000000000, + "bls12381_p2_decompress_element": 165000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/snapshots/near_parameters__view__tests__runtime_config_view.snap b/core/parameters/src/snapshots/near_parameters__view__tests__runtime_config_view.snap index dea8c4c6fd0..7eac5d1298f 100644 --- a/core/parameters/src/snapshots/near_parameters__view__tests__runtime_config_view.snap +++ b/core/parameters/src/snapshots/near_parameters__view__tests__runtime_config_view.snap @@ -172,7 +172,25 @@ expression: "&view" "yield_create_base": 153411779276, "yield_create_byte": 15643988, "yield_resume_base": 1195627285210, - "yield_resume_byte": 1195627285210 + "yield_resume_byte": 1195627285210, + "bls12381_p1_sum_base": 16500000000, + "bls12381_p1_sum_element": 6000000000, + "bls12381_p2_sum_base": 18600000000, + "bls12381_p2_sum_element": 15000000000, + "bls12381_g1_multiexp_base": 16500000000, + "bls12381_g1_multiexp_element": 930000000000, + "bls12381_g2_multiexp_base": 18600000000, + "bls12381_g2_multiexp_element": 1995000000000, + "bls12381_map_fp_to_g1_base": 1500000000, + "bls12381_map_fp_to_g1_element": 252000000000, + "bls12381_map_fp2_to_g2_base": 1500000000, + "bls12381_map_fp2_to_g2_element": 900000000000, + "bls12381_pairing_base": 2130000000000, + "bls12381_pairing_element": 2130000000000, + "bls12381_p1_decompress_base": 15000000000, + "bls12381_p1_decompress_element": 81000000000, + "bls12381_p2_decompress_base": 15000000000, + "bls12381_p2_decompress_element": 165000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/core/parameters/src/view.rs b/core/parameters/src/view.rs index c0e960d8d1e..f2c5960ab4e 100644 --- a/core/parameters/src/view.rs +++ b/core/parameters/src/view.rs @@ -464,41 +464,23 @@ pub struct ExtCostsConfigView { pub yield_resume_base: Gas, /// Per byte cost of resume payload. pub yield_resume_byte: Gas, - #[cfg(feature = "protocol_feature_bls12381")] pub bls12381_p1_sum_base: Gas, - #[cfg(feature = "protocol_feature_bls12381")] pub bls12381_p1_sum_element: Gas, - #[cfg(feature = "protocol_feature_bls12381")] pub bls12381_p2_sum_base: Gas, - #[cfg(feature = "protocol_feature_bls12381")] pub bls12381_p2_sum_element: Gas, - #[cfg(feature = "protocol_feature_bls12381")] pub bls12381_g1_multiexp_base: Gas, - #[cfg(feature = "protocol_feature_bls12381")] pub bls12381_g1_multiexp_element: Gas, - #[cfg(feature = "protocol_feature_bls12381")] pub bls12381_g2_multiexp_base: Gas, - #[cfg(feature = "protocol_feature_bls12381")] pub bls12381_g2_multiexp_element: Gas, - #[cfg(feature = "protocol_feature_bls12381")] pub bls12381_map_fp_to_g1_base: Gas, - #[cfg(feature = "protocol_feature_bls12381")] pub bls12381_map_fp_to_g1_element: Gas, - #[cfg(feature = "protocol_feature_bls12381")] pub bls12381_map_fp2_to_g2_base: Gas, - #[cfg(feature = "protocol_feature_bls12381")] pub bls12381_map_fp2_to_g2_element: Gas, - #[cfg(feature = "protocol_feature_bls12381")] pub bls12381_pairing_base: Gas, - #[cfg(feature = "protocol_feature_bls12381")] pub bls12381_pairing_element: Gas, - #[cfg(feature = "protocol_feature_bls12381")] pub bls12381_p1_decompress_base: Gas, - #[cfg(feature = "protocol_feature_bls12381")] pub bls12381_p1_decompress_element: Gas, - #[cfg(feature = "protocol_feature_bls12381")] pub bls12381_p2_decompress_base: Gas, - #[cfg(feature = "protocol_feature_bls12381")] pub bls12381_p2_decompress_element: Gas, } @@ -574,43 +556,25 @@ impl From for ExtCostsConfigView { yield_create_byte: config.gas_cost(ExtCosts::yield_create_byte), yield_resume_base: config.gas_cost(ExtCosts::yield_resume_base), yield_resume_byte: config.gas_cost(ExtCosts::yield_resume_byte), - #[cfg(feature = "protocol_feature_bls12381")] bls12381_p1_sum_base: config.gas_cost(ExtCosts::bls12381_p1_sum_base), - #[cfg(feature = "protocol_feature_bls12381")] bls12381_p1_sum_element: config.gas_cost(ExtCosts::bls12381_p1_sum_element), - #[cfg(feature = "protocol_feature_bls12381")] bls12381_p2_sum_base: config.gas_cost(ExtCosts::bls12381_p2_sum_base), - #[cfg(feature = "protocol_feature_bls12381")] bls12381_p2_sum_element: config.gas_cost(ExtCosts::bls12381_p2_sum_element), - #[cfg(feature = "protocol_feature_bls12381")] bls12381_g1_multiexp_base: config.gas_cost(ExtCosts::bls12381_g1_multiexp_base), - #[cfg(feature = "protocol_feature_bls12381")] bls12381_g1_multiexp_element: config.gas_cost(ExtCosts::bls12381_g1_multiexp_element), - #[cfg(feature = "protocol_feature_bls12381")] bls12381_g2_multiexp_base: config.gas_cost(ExtCosts::bls12381_g2_multiexp_base), - #[cfg(feature = "protocol_feature_bls12381")] bls12381_g2_multiexp_element: config.gas_cost(ExtCosts::bls12381_g2_multiexp_element), - #[cfg(feature = "protocol_feature_bls12381")] bls12381_map_fp_to_g1_base: config.gas_cost(ExtCosts::bls12381_map_fp_to_g1_base), - #[cfg(feature = "protocol_feature_bls12381")] bls12381_map_fp_to_g1_element: config.gas_cost(ExtCosts::bls12381_map_fp_to_g1_element), - #[cfg(feature = "protocol_feature_bls12381")] bls12381_map_fp2_to_g2_base: config.gas_cost(ExtCosts::bls12381_map_fp2_to_g2_base), - #[cfg(feature = "protocol_feature_bls12381")] bls12381_map_fp2_to_g2_element: config .gas_cost(ExtCosts::bls12381_map_fp2_to_g2_element), - #[cfg(feature = "protocol_feature_bls12381")] bls12381_pairing_base: config.gas_cost(ExtCosts::bls12381_pairing_base), - #[cfg(feature = "protocol_feature_bls12381")] bls12381_pairing_element: config.gas_cost(ExtCosts::bls12381_pairing_element), - #[cfg(feature = "protocol_feature_bls12381")] bls12381_p1_decompress_base: config.gas_cost(ExtCosts::bls12381_p1_decompress_base), - #[cfg(feature = "protocol_feature_bls12381")] bls12381_p1_decompress_element: config .gas_cost(ExtCosts::bls12381_p1_decompress_element), - #[cfg(feature = "protocol_feature_bls12381")] bls12381_p2_decompress_base: config.gas_cost(ExtCosts::bls12381_p2_decompress_base), - #[cfg(feature = "protocol_feature_bls12381")] bls12381_p2_decompress_element: config .gas_cost(ExtCosts::bls12381_p2_decompress_element), // removed parameters @@ -688,41 +652,23 @@ impl From for crate::ExtCostsConfig { ExtCosts::yield_create_byte => view.yield_create_byte, ExtCosts::yield_resume_base => view.yield_resume_base, ExtCosts::yield_resume_byte => view.yield_resume_byte, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p1_sum_base => view.bls12381_p1_sum_base, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p1_sum_element => view.bls12381_p1_sum_element, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p2_sum_base => view.bls12381_p2_sum_base, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p2_sum_element => view.bls12381_p2_sum_element, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_g1_multiexp_base => view.bls12381_g1_multiexp_base, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_g1_multiexp_element => view.bls12381_g1_multiexp_element, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_g2_multiexp_base => view.bls12381_g2_multiexp_base, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_g2_multiexp_element => view.bls12381_g2_multiexp_element, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_map_fp_to_g1_base => view.bls12381_map_fp_to_g1_base, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_map_fp_to_g1_element => view.bls12381_map_fp_to_g1_element, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_map_fp2_to_g2_base => view.bls12381_map_fp2_to_g2_base, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_map_fp2_to_g2_element => view.bls12381_map_fp2_to_g2_element, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_pairing_base => view.bls12381_pairing_base, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_pairing_element => view.bls12381_pairing_element, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p1_decompress_base => view.bls12381_p1_decompress_base, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p1_decompress_element => view.bls12381_p1_decompress_element, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p2_decompress_base => view.bls12381_p2_decompress_base, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p2_decompress_element => view.bls12381_p2_decompress_element, } .map(|_, value| ParameterCost { gas: value, compute: value }); diff --git a/core/primitives-core/Cargo.toml b/core/primitives-core/Cargo.toml index ad7b75c6c4b..2587f48f31a 100644 --- a/core/primitives-core/Cargo.toml +++ b/core/primitives-core/Cargo.toml @@ -38,11 +38,9 @@ protocol_feature_fix_staking_threshold = [] protocol_feature_fix_contract_loading_cost = [] protocol_feature_reject_blocks_with_outdated_protocol_version = [] protocol_feature_nonrefundable_transfer_nep491 = [] -protocol_feature_bls12381 = [] nightly = [ "nightly_protocol", - "protocol_feature_bls12381", "protocol_feature_fix_contract_loading_cost", "protocol_feature_fix_staking_threshold", "protocol_feature_nonrefundable_transfer_nep491", diff --git a/core/primitives-core/src/version.rs b/core/primitives-core/src/version.rs index a9bda5efc10..14dc797b85c 100644 --- a/core/primitives-core/src/version.rs +++ b/core/primitives-core/src/version.rs @@ -132,7 +132,6 @@ pub enum ProtocolFeature { #[cfg(feature = "protocol_feature_nonrefundable_transfer_nep491")] NonrefundableStorage, // NEP: https://github.com/near/NEPs/pull/488 - #[cfg(feature = "protocol_feature_bls12381")] BLS12381, RestrictTla, /// Increases the number of chunk producers. @@ -209,7 +208,7 @@ impl ProtocolFeature { ProtocolFeature::YieldExecution => 67, ProtocolFeature::CongestionControl | ProtocolFeature::RemoveAccountWithLongStorageKey => 68, - ProtocolFeature::StatelessValidation => 69, + ProtocolFeature::BLS12381 | ProtocolFeature::StatelessValidation => 69, ProtocolFeature::EthImplicitAccounts => 70, // This protocol version is reserved for use in resharding tests. An extra resharding @@ -226,8 +225,6 @@ impl ProtocolFeature { ProtocolFeature::RejectBlocksWithOutdatedProtocolVersions => 132, #[cfg(feature = "protocol_feature_nonrefundable_transfer_nep491")] ProtocolFeature::NonrefundableStorage => 140, - #[cfg(feature = "protocol_feature_bls12381")] - ProtocolFeature::BLS12381 => 141, // TODO(#11201): When stabilizing this feature in mainnet, also remove the temporary code // that always enables this for mocknet (see config_mocknet function). ProtocolFeature::ShuffleShardAssignments => 143, diff --git a/core/primitives/src/profile_data_v3.rs b/core/primitives/src/profile_data_v3.rs index 270c367d2eb..ac164cebdcd 100644 --- a/core/primitives/src/profile_data_v3.rs +++ b/core/primitives/src/profile_data_v3.rs @@ -266,20 +266,20 @@ mod test { keccak256_byte -> 18 [0% host] keccak512_base -> 19 [0% host] keccak512_byte -> 20 [0% host] - ripemd160_base -> 21 [1% host] - ripemd160_block -> 22 [1% host] - ecrecover_base -> 23 [1% host] - log_base -> 24 [1% host] - log_byte -> 25 [1% host] - storage_write_base -> 26 [1% host] - storage_write_key_byte -> 27 [1% host] - storage_write_value_byte -> 28 [1% host] - storage_write_evicted_byte -> 29 [1% host] - storage_read_base -> 30 [1% host] - storage_read_key_byte -> 31 [1% host] - storage_read_value_byte -> 32 [1% host] - storage_remove_base -> 33 [1% host] - storage_remove_key_byte -> 34 [1% host] + ripemd160_base -> 21 [0% host] + ripemd160_block -> 22 [0% host] + ecrecover_base -> 23 [0% host] + log_base -> 24 [0% host] + log_byte -> 25 [0% host] + storage_write_base -> 26 [0% host] + storage_write_key_byte -> 27 [0% host] + storage_write_value_byte -> 28 [0% host] + storage_write_evicted_byte -> 29 [0% host] + storage_read_base -> 30 [0% host] + storage_read_key_byte -> 31 [0% host] + storage_read_value_byte -> 32 [0% host] + storage_remove_base -> 33 [0% host] + storage_remove_key_byte -> 34 [0% host] storage_remove_ret_value_byte -> 35 [1% host] storage_has_key_base -> 36 [1% host] storage_has_key_byte -> 37 [1% host] @@ -287,29 +287,47 @@ mod test { storage_iter_create_prefix_byte -> 39 [1% host] storage_iter_create_range_base -> 40 [1% host] storage_iter_create_from_byte -> 41 [1% host] - storage_iter_create_to_byte -> 42 [2% host] - storage_iter_next_base -> 43 [2% host] - storage_iter_next_key_byte -> 44 [2% host] - storage_iter_next_value_byte -> 45 [2% host] - touching_trie_node -> 46 [2% host] - read_cached_trie_node -> 47 [2% host] - promise_and_base -> 48 [2% host] - promise_and_per_promise -> 49 [2% host] - promise_return -> 50 [2% host] - validator_stake_base -> 51 [2% host] - validator_total_stake_base -> 52 [2% host] - alt_bn128_g1_multiexp_base -> 53 [2% host] - alt_bn128_g1_multiexp_element -> 54 [2% host] - alt_bn128_pairing_check_base -> 55 [2% host] - alt_bn128_pairing_check_element -> 56 [2% host] - alt_bn128_g1_sum_base -> 57 [2% host] - alt_bn128_g1_sum_element -> 58 [2% host] - ed25519_verify_base -> 59 [2% host] - ed25519_verify_byte -> 60 [2% host] - yield_create_base -> 61 [2% host] - yield_create_byte -> 62 [2% host] - yield_resume_base -> 63 [3% host] - yield_resume_byte -> 64 [3% host] + storage_iter_create_to_byte -> 42 [1% host] + storage_iter_next_base -> 43 [1% host] + storage_iter_next_key_byte -> 44 [1% host] + storage_iter_next_value_byte -> 45 [1% host] + touching_trie_node -> 46 [1% host] + read_cached_trie_node -> 47 [1% host] + promise_and_base -> 48 [1% host] + promise_and_per_promise -> 49 [1% host] + promise_return -> 50 [1% host] + validator_stake_base -> 51 [1% host] + validator_total_stake_base -> 52 [1% host] + alt_bn128_g1_multiexp_base -> 53 [1% host] + alt_bn128_g1_multiexp_element -> 54 [1% host] + alt_bn128_pairing_check_base -> 55 [1% host] + alt_bn128_pairing_check_element -> 56 [1% host] + alt_bn128_g1_sum_base -> 57 [1% host] + alt_bn128_g1_sum_element -> 58 [1% host] + ed25519_verify_base -> 59 [1% host] + ed25519_verify_byte -> 60 [1% host] + yield_create_base -> 61 [1% host] + yield_create_byte -> 62 [1% host] + yield_resume_base -> 63 [1% host] + yield_resume_byte -> 64 [1% host] + bls12381_p1_sum_base -> 65 [1% host] + bls12381_p1_sum_element -> 66 [1% host] + bls12381_p2_sum_base -> 67 [1% host] + bls12381_p2_sum_element -> 68 [1% host] + bls12381_g1_multiexp_base -> 69 [2% host] + bls12381_g1_multiexp_element -> 70 [2% host] + bls12381_g2_multiexp_base -> 71 [2% host] + bls12381_g2_multiexp_element -> 72 [2% host] + bls12381_map_fp_to_g1_base -> 73 [2% host] + bls12381_map_fp_to_g1_element -> 74 [2% host] + bls12381_map_fp2_to_g2_base -> 75 [2% host] + bls12381_map_fp2_to_g2_element -> 76 [2% host] + bls12381_pairing_base -> 77 [2% host] + bls12381_pairing_element -> 78 [2% host] + bls12381_p1_decompress_base -> 79 [2% host] + bls12381_p1_decompress_element -> 80 [2% host] + bls12381_p2_decompress_base -> 81 [2% host] + bls12381_p2_decompress_element -> 82 [2% host] ------ Actions -------- create_account -> 1000 delete_account -> 1001 diff --git a/core/primitives/src/snapshots/near_primitives__views__tests__exec_metadata_v2_view.snap b/core/primitives/src/snapshots/near_primitives__views__tests__exec_metadata_v2_view.snap index 06572d52a16..ad149766e52 100644 --- a/core/primitives/src/snapshots/near_primitives__views__tests__exec_metadata_v2_view.snap +++ b/core/primitives/src/snapshots/near_primitives__views__tests__exec_metadata_v2_view.snap @@ -90,6 +90,96 @@ expression: view "cost": "BASE", "gas_used": "0" }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_G1_MULTIEXP_BASE", + "gas_used": "0" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_G1_MULTIEXP_ELEMENT", + "gas_used": "0" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_G2_MULTIEXP_BASE", + "gas_used": "0" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_G2_MULTIEXP_ELEMENT", + "gas_used": "0" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_MAP_FP2_TO_G2_BASE", + "gas_used": "0" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_MAP_FP2_TO_G2_ELEMENT", + "gas_used": "0" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_MAP_FP_TO_G1_BASE", + "gas_used": "0" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_MAP_FP_TO_G1_ELEMENT", + "gas_used": "0" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_P1_DECOMPRESS_BASE", + "gas_used": "0" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_P1_DECOMPRESS_ELEMENT", + "gas_used": "0" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_P1_SUM_BASE", + "gas_used": "0" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_P1_SUM_ELEMENT", + "gas_used": "0" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_P2_DECOMPRESS_BASE", + "gas_used": "0" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_P2_DECOMPRESS_ELEMENT", + "gas_used": "0" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_P2_SUM_BASE", + "gas_used": "0" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_P2_SUM_ELEMENT", + "gas_used": "0" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_PAIRING_BASE", + "gas_used": "0" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_PAIRING_ELEMENT", + "gas_used": "0" + }, { "cost_category": "WASM_HOST_COST", "cost": "CONTRACT_LOADING_BASE", diff --git a/core/primitives/src/snapshots/near_primitives__views__tests__exec_metadata_v3_view.snap b/core/primitives/src/snapshots/near_primitives__views__tests__exec_metadata_v3_view.snap index e2d13426540..92e7728152d 100644 --- a/core/primitives/src/snapshots/near_primitives__views__tests__exec_metadata_v3_view.snap +++ b/core/primitives/src/snapshots/near_primitives__views__tests__exec_metadata_v3_view.snap @@ -115,6 +115,96 @@ expression: view "cost": "ALT_BN128_PAIRING_CHECK_ELEMENT", "gas_used": "56" }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_G1_MULTIEXP_BASE", + "gas_used": "69" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_G1_MULTIEXP_ELEMENT", + "gas_used": "70" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_G2_MULTIEXP_BASE", + "gas_used": "71" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_G2_MULTIEXP_ELEMENT", + "gas_used": "72" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_MAP_FP2_TO_G2_BASE", + "gas_used": "75" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_MAP_FP2_TO_G2_ELEMENT", + "gas_used": "76" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_MAP_FP_TO_G1_BASE", + "gas_used": "73" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_MAP_FP_TO_G1_ELEMENT", + "gas_used": "74" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_P1_DECOMPRESS_BASE", + "gas_used": "79" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_P1_DECOMPRESS_ELEMENT", + "gas_used": "80" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_P1_SUM_BASE", + "gas_used": "65" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_P1_SUM_ELEMENT", + "gas_used": "66" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_P2_DECOMPRESS_BASE", + "gas_used": "81" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_P2_DECOMPRESS_ELEMENT", + "gas_used": "82" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_P2_SUM_BASE", + "gas_used": "67" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_P2_SUM_ELEMENT", + "gas_used": "68" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_PAIRING_BASE", + "gas_used": "77" + }, + { + "cost_category": "WASM_HOST_COST", + "cost": "BLS12381_PAIRING_ELEMENT", + "gas_used": "78" + }, { "cost_category": "WASM_HOST_COST", "cost": "CONTRACT_LOADING_BASE", diff --git a/core/primitives/src/snapshots/near_primitives__views__tests__runtime_config_view.snap b/core/primitives/src/snapshots/near_primitives__views__tests__runtime_config_view.snap index 53c3b2a7f84..61e0d88748c 100644 --- a/core/primitives/src/snapshots/near_primitives__views__tests__runtime_config_view.snap +++ b/core/primitives/src/snapshots/near_primitives__views__tests__runtime_config_view.snap @@ -172,7 +172,25 @@ expression: "&view" "yield_create_base": 153411779276, "yield_create_byte": 15643988, "yield_resume_base": 1195627285210, - "yield_resume_byte": 1195627285210 + "yield_resume_byte": 1195627285210, + "bls12381_p1_sum_base": 16500000000, + "bls12381_p1_sum_element": 6000000000, + "bls12381_p2_sum_base": 18600000000, + "bls12381_p2_sum_element": 15000000000, + "bls12381_g1_multiexp_base": 16500000000, + "bls12381_g1_multiexp_element": 930000000000, + "bls12381_g2_multiexp_base": 18600000000, + "bls12381_g2_multiexp_element": 1995000000000, + "bls12381_map_fp_to_g1_base": 1500000000, + "bls12381_map_fp_to_g1_element": 252000000000, + "bls12381_map_fp2_to_g2_base": 1500000000, + "bls12381_map_fp2_to_g2_element": 900000000000, + "bls12381_pairing_base": 2130000000000, + "bls12381_pairing_element": 2130000000000, + "bls12381_p1_decompress_base": 15000000000, + "bls12381_p1_decompress_element": 81000000000, + "bls12381_p2_decompress_base": 15000000000, + "bls12381_p2_decompress_element": 165000000000 }, "grow_mem_cost": 1, "regular_op_cost": 822756, diff --git a/runtime/near-test-contracts/estimator-contract/Cargo.toml b/runtime/near-test-contracts/estimator-contract/Cargo.toml index 19c7cf88ddf..8e3ce65d0b2 100644 --- a/runtime/near-test-contracts/estimator-contract/Cargo.toml +++ b/runtime/near-test-contracts/estimator-contract/Cargo.toml @@ -23,7 +23,5 @@ members = [] [features] nightly = [ "nightly_protocol", - "protocol_feature_bls12381", ] nightly_protocol = [] -protocol_feature_bls12381 = [] diff --git a/runtime/near-test-contracts/estimator-contract/src/lib.rs b/runtime/near-test-contracts/estimator-contract/src/lib.rs index 826b0fe5a74..a1ec33bbb17 100644 --- a/runtime/near-test-contracts/estimator-contract/src/lib.rs +++ b/runtime/near-test-contracts/estimator-contract/src/lib.rs @@ -755,7 +755,6 @@ pub unsafe fn alt_bn128_pairing_check_10_10() { } #[no_mangle] -#[cfg(feature = "protocol_feature_bls12381")] pub unsafe fn bls12381_p1_sum_0_100() { let buffer: [u8; 0] = []; @@ -769,7 +768,6 @@ pub unsafe fn bls12381_p1_sum_0_100() { } #[no_mangle] -#[cfg(feature = "protocol_feature_bls12381")] pub unsafe fn bls12381_p1_sum_50_100() { let buffer: [[u8; 2*97]; 25] = [[0, 18, 25, 108, 90, 67, 214, 146, 36, 216, 113, 51, 137, 40, 95, 38, 185, 143, 134, 238, 145, 10, 179, 221, 102, 142, 65, 55, 56, 40, 32, 3, 204, 91, 115, 87, 175, 154, 122, 245, 75, 183, 19, 214, 34, 85, 232, 15, 86, 6, 186, 129, 2, 191, 190, 234, 68, 22, 183, 16, 199, 62, 140, 206, 48, 50, 195, 28, 98, 105, 196, 73, 6, 248, 172, 79, 120, 116, 206, 153, 251, 23, 85, 153, 146, 72, 101, 40, 150, 56, 132, 206, 66, 154, 153, 47, 238, 0, 0, 1, 16, 16, 152, 245, 195, 152, 147, 118, 87, 102, 175, 69, 18, 160, 199, 78, 27, 184, 155, 199, 230, 253, 241, 78, 62, 115, 55, 210, 87, 204, 15, 148, 101, 129, 121, 216, 51, 32, 185, 159, 49, 255, 148, 205, 43, 172, 3, 225, 169, 249, 244, 76, 162, 205, 171, 79, 67, 161, 163, 238, 52, 112, 253, 249, 11, 47, 194, 40, 235, 59, 112, 159, 205, 114, 240, 20, 131, 138, 200, 42, 109, 121, 122, 238, 254, 217, 160, 128, 75, 34, 237, 28, 232, 247]; 25]; @@ -784,7 +782,6 @@ pub unsafe fn bls12381_p1_sum_50_100() { } #[no_mangle] -#[cfg(feature = "protocol_feature_bls12381")] pub unsafe fn bls12381_p2_sum_0_100() { let buffer: [u8; 0] = []; @@ -798,7 +795,6 @@ pub unsafe fn bls12381_p2_sum_0_100() { } #[no_mangle] -#[cfg(feature = "protocol_feature_bls12381")] pub unsafe fn bls12381_p2_sum_50_100() { let buffer: [[u8; 2*193]; 25] = [ [0, 12, 199, 10, 88, 127, 70, 82, 3, 157, 129, 23, 182, 16, 56, 88, 173, 205, 151, 40, 246, 174, 190, 35, 5, 120, 56, 154, 98, 218, 0, 66, 183, 98, 59, 28, 4, 54, 115, 79, 70, 60, 253, 209, 135, 210, 9, 3, 36, 24, 192, 173, 166, 53, 27, 112, 102, 31, 5, 51, 101, 222, 174, 86, 145, 7, 152, 189, 42, 206, 110, 43, 246, 186, 65, 146, 209, 162, 41, 150, 127, 106, 246, 202, 28, 154, 138, 17, 235, 192, 162, 50, 52, 78, 224, 246, 214, 7, 155, 165, 13, 37, 17, 99, 27, 32, 182, 214, 243, 132, 30, 97, 110, 157, 17, 182, 142, 195, 54, 140, 214, 1, 41, 217, 212, 120, 122, 181, 108, 78, 145, 69, 163, 137, 39, 229, 28, 156, 214, 39, 29, 73, 61, 147, 136, 9, 245, 11, 215, 190, 237, 178, 51, 40, 129, 143, 159, 253, 175, 219, 109, 166, 164, 221, 128, 197, 169, 4, 138, 184, 177, 84, 223, 60, 173, 147, 140, 206, 222, 130, 159, 17, 86, 247, 105, 217, 225, 73, 121, 30, 142, 12, 217, @@ -814,7 +810,6 @@ pub unsafe fn bls12381_p2_sum_50_100() { } #[no_mangle] -#[cfg(feature = "protocol_feature_bls12381")] pub unsafe fn bls12381_g1_multiexp_0_100() { let buffer: [u8; 0] = []; @@ -828,7 +823,6 @@ pub unsafe fn bls12381_g1_multiexp_0_100() { } #[no_mangle] -#[cfg(feature = "protocol_feature_bls12381")] pub unsafe fn bls12381_g1_multiexp_50_100() { let buffer: [[u8; 96 + 32]; 50] = [[23, 241, 211, 167, 49, 151, 215, 148, 38, 149, 99, 140, 79, 169, 172, 15, 195, 104, 140, 79, 151, 116, 185, 5, 161, 78, 58, 63, 23, 27, 172, 88, 108, 85, 232, 63, 249, 122, 26, 239, 251, 58, 240, 10, 219, 34, 198, 187, 8, 179, 244, 129, 227, 170, 160, 241, 160, 158, 48, 237, 116, 29, 138, 228, 252, 245, 224, 149, 213, 208, 10, 246, 0, 219, 24, 203, 44, 4, 179, 237, 208, 60, 199, 68, 162, 136, 138, 228, 12, 170, 35, 41, 70, 197, 231, 225, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]; 50]; @@ -843,7 +837,6 @@ pub unsafe fn bls12381_g1_multiexp_50_100() { } #[no_mangle] -#[cfg(feature = "protocol_feature_bls12381")] pub unsafe fn bls12381_g2_multiexp_0_100() { let buffer: [u8; 0] = []; @@ -857,7 +850,6 @@ pub unsafe fn bls12381_g2_multiexp_0_100() { } #[no_mangle] -#[cfg(feature = "protocol_feature_bls12381")] pub unsafe fn bls12381_g2_multiexp_50_100() { let buffer: [[u8; 192 + 32]; 50] = [[19, 224, 43, 96, 82, 113, 159, 96, 125, 172, 211, 160, 136, 39, 79, 101, 89, 107, 208, 208, 153, 32, 182, 26, 181, 218, 97, 187, 220, 127, 80, 73, 51, 76, 241, 18, 19, 148, 93, 87, 229, 172, 125, 5, 93, 4, 43, 126, 2, 74, 162, 178, 240, 143, 10, 145, 38, 8, 5, 39, 45, 197, 16, 81, 198, 228, 122, 212, 250, 64, 59, 2, 180, 81, 11, 100, 122, 227, 209, 119, 11, 172, 3, 38, 168, 5, 187, 239, 212, 128, 86, 200, 193, 33, 189, 184, 6, 6, 196, 160, 46, 167, 52, 204, 50, 172, 210, 176, 43, 194, 139, 153, 203, 62, 40, 126, 133, 167, 99, 175, 38, 116, 146, 171, 87, 46, 153, 171, 63, 55, 13, 39, 92, 236, 29, 161, 170, 169, 7, 95, 240, 95, 121, 190, 12, 229, 213, 39, 114, 125, 110, 17, 140, 201, 205, 198, 218, 46, 53, 26, 173, 253, 155, 170, 140, 189, 211, 167, 109, 66, 154, 105, 81, 96, 209, 44, 146, 58, 201, 204, 59, 172, 162, 137, 225, 147, 84, 134, 8, 184, 40, 1, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]; 50]; @@ -872,7 +864,6 @@ pub unsafe fn bls12381_g2_multiexp_50_100() { } #[no_mangle] -#[cfg(feature = "protocol_feature_bls12381")] pub unsafe fn bls12381_map_fp_to_g1_0_100() { let buffer: [u8; 0] = []; @@ -886,7 +877,6 @@ pub unsafe fn bls12381_map_fp_to_g1_0_100() { } #[no_mangle] -#[cfg(feature = "protocol_feature_bls12381")] pub unsafe fn bls12381_map_fp_to_g1_50_100() { let buffer: [[u8; 48]; 50] = [[20, 64, 110, 91, 251, 146, 9, 37, 106, 56, 32, 135, 154, 41, 172, 47, 98, 214, 172, 168, 35, 36, 191, 58, 226, 170, 125, 60, 84, 121, 32, 67, 189, 140, 121, 31, 204, 219, 8, 12, 26, 82, 220, 104, 184, 182, 147, 80]; 50]; @@ -901,7 +891,6 @@ pub unsafe fn bls12381_map_fp_to_g1_50_100() { #[no_mangle] -#[cfg(feature = "protocol_feature_bls12381")] pub unsafe fn bls12381_map_fp2_to_g2_0_100() { let buffer: [u8; 0] = []; @@ -915,7 +904,6 @@ pub unsafe fn bls12381_map_fp2_to_g2_0_100() { } #[no_mangle] -#[cfg(feature = "protocol_feature_bls12381")] pub unsafe fn bls12381_map_fp2_to_g2_10_100() { let buffer: [[u8; 96]; 10] = [[14, 136, 91, 179, 57, 150, 225, 47, 7, 218, 105, 7, 62, 44, 12, 200, 128, 188, 142, 255, 38, 210, 167, 36, 41, 158, 177, 45, 84, 244, 188, 242, 111, 71, 72, 187, 2, 14, 128, 167, 227, 121, 74, 123, 14, 71, 166, 65, 20, 64, 110, 91, 251, 146, 9, 37, 106, 56, 32, 135, 154, 41, 172, 47, 98, 214, 172, 168, 35, 36, 191, 58, 226, 170, 125, 60, 84, 121, 32, 67, 189, 140, 121, 31, 204, 219, 8, 12, 26, 82, 220, 104, 184, 182, 147, 80]; 10]; @@ -929,7 +917,6 @@ pub unsafe fn bls12381_map_fp2_to_g2_10_100() { } #[no_mangle] -#[cfg(feature = "protocol_feature_bls12381")] pub unsafe fn bls12381_pairing_0_100() { let buffer: [u8; 0] = []; @@ -942,7 +929,6 @@ pub unsafe fn bls12381_pairing_0_100() { } #[no_mangle] -#[cfg(feature = "protocol_feature_bls12381")] pub unsafe fn bls12381_pairing_5_100() { let buffer: [[u8; 288]; 5] = [[23, 241, 211, 167, 49, 151, 215, 148, 38, 149, 99, 140, 79, 169, 172, 15, 195, 104, 140, 79, 151, 116, 185, 5, 161, 78, 58, 63, 23, 27, 172, 88, 108, 85, 232, 63, 249, 122, 26, 239, 251, 58, 240, 10, 219, 34, 198, 187, 8, 179, 244, 129, 227, 170, 160, 241, 160, 158, 48, 237, 116, 29, 138, 228, 252, 245, 224, 149, 213, 208, 10, 246, 0, 219, 24, 203, 44, 4, 179, 237, 208, 60, 199, 68, 162, 136, 138, 228, 12, 170, 35, 41, 70, 197, 231, 225, 19, 224, 43, 96, 82, 113, 159, 96, 125, 172, 211, 160, 136, 39, 79, 101, 89, 107, 208, 208, 153, 32, 182, 26, 181, 218, 97, 187, 220, 127, 80, 73, 51, 76, 241, 18, 19, 148, 93, 87, 229, 172, 125, 5, 93, 4, 43, 126, 2, 74, 162, 178, 240, 143, 10, 145, 38, 8, 5, 39, 45, 197, 16, 81, 198, 228, 122, 212, 250, 64, 59, 2, 180, 81, 11, 100, 122, 227, 209, 119, 11, 172, 3, 38, 168, 5, 187, 239, 212, 128, 86, 200, 193, 33, 189, 184, 6, 6, 196, 160, 46, 167, 52, 204, 50, 172, 210, 176, 43, 194, 139, 153, 203, 62, 40, 126, 133, 167, 99, 175, 38, 116, 146, 171, 87, 46, 153, 171, 63, 55, 13, 39, 92, 236, 29, 161, 170, 169, 7, 95, 240, 95, 121, 190, 12, 229, 213, 39, 114, 125, 110, 17, 140, 201, 205, 198, 218, 46, 53, 26, 173, 253, 155, 170, 140, 189, 211, 167, 109, 66, 154, 105, 81, 96, 209, 44, 146, 58, 201, 204, 59, 172, 162, 137, 225, 147, 84, 134, 8, 184, 40, 1]; 5]; @@ -956,7 +942,6 @@ pub unsafe fn bls12381_pairing_5_100() { } #[no_mangle] -#[cfg(feature = "protocol_feature_bls12381")] pub unsafe fn bls12381_p1_decompress_0_100() { let buffer: [u8; 0] = []; @@ -970,7 +955,6 @@ pub unsafe fn bls12381_p1_decompress_0_100() { } #[no_mangle] -#[cfg(feature = "protocol_feature_bls12381")] pub unsafe fn bls12381_p1_decompress_50_100() { let buffer: [[u8; 48]; 50] = [[185, 110, 35, 139, 110, 142, 126, 177, 120, 97, 234, 41, 91, 204, 20, 203, 207, 103, 224, 112, 176, 18, 102, 59, 68, 107, 137, 231, 10, 71, 183, 63, 198, 228, 242, 206, 195, 124, 70, 91, 53, 182, 222, 158, 19, 104, 106, 15]; 50]; @@ -984,7 +968,6 @@ pub unsafe fn bls12381_p1_decompress_50_100() { } #[no_mangle] -#[cfg(feature = "protocol_feature_bls12381")] pub unsafe fn bls12381_p2_decompress_0_100() { let buffer: [u8; 0] = []; @@ -998,7 +981,6 @@ pub unsafe fn bls12381_p2_decompress_0_100() { } #[no_mangle] -#[cfg(feature = "protocol_feature_bls12381")] pub unsafe fn bls12381_p2_decompress_50_100() { let buffer: [[u8; 96]; 50] = [[143, 150, 139, 210, 67, 144, 143, 243, 229, 250, 26, 179, 243, 30, 7, 129, 151, 229, 138, 206, 86, 43, 190, 139, 90, 39, 29, 95, 186, 80, 35, 125, 160, 200, 254, 101, 231, 181, 119, 28, 192, 168, 111, 213, 127, 50, 52, 126, 21, 162, 109, 31, 93, 86, 196, 114, 208, 25, 238, 162, 83, 158, 88, 219, 0, 196, 154, 165, 208, 169, 102, 56, 56, 144, 63, 221, 190, 67, 107, 91, 21, 126, 131, 179, 93, 26, 78, 95, 137, 247, 129, 39, 243, 93, 172, 240]; 50]; diff --git a/runtime/near-vm-runner/Cargo.toml b/runtime/near-vm-runner/Cargo.toml index f3e49a3963e..b031774d302 100644 --- a/runtime/near-vm-runner/Cargo.toml +++ b/runtime/near-vm-runner/Cargo.toml @@ -14,8 +14,8 @@ workspace = true [dependencies] anyhow = { workspace = true, optional = true } -blst = { workspace = true, optional = true } base64 = { workspace = true, optional = true } +blst.workspace = true bn.workspace = true borsh.workspace = true ed25519-dalek.workspace = true @@ -135,10 +135,6 @@ protocol_feature_fix_contract_loading_cost = [ "near-primitives-core/protocol_feature_fix_contract_loading_cost", ] -protocol_feature_bls12381 = [ - "blst", -] - metrics = ["prometheus", "near-o11y"] @@ -147,7 +143,6 @@ nightly = [ "near-parameters/nightly", "near-primitives-core/nightly", "nightly_protocol", - "protocol_feature_bls12381", "protocol_feature_fix_contract_loading_cost", ] sandbox = ["near-o11y/sandbox"] diff --git a/runtime/near-vm-runner/src/imports.rs b/runtime/near-vm-runner/src/imports.rs index 0a9dbb3aaa9..ca71dfd6ca4 100644 --- a/runtime/near-vm-runner/src/imports.rs +++ b/runtime/near-vm-runner/src/imports.rs @@ -277,15 +277,15 @@ imports! { // ############# // # BLS12-381 # // ############# - ##["protocol_feature_bls12381"] bls12381_p1_sum<[value_len: u64, value_ptr: u64, register_id: u64] -> [u64]>, - ##["protocol_feature_bls12381"] bls12381_p2_sum<[value_len: u64, value_ptr: u64, register_id: u64] -> [u64]>, - ##["protocol_feature_bls12381"] bls12381_g1_multiexp<[value_len: u64, value_ptr: u64, register_id: u64] -> [u64]>, - ##["protocol_feature_bls12381"] bls12381_g2_multiexp<[value_len: u64, value_ptr: u64, register_id: u64] -> [u64]>, - ##["protocol_feature_bls12381"] bls12381_map_fp_to_g1<[value_len: u64, value_ptr: u64, register_id: u64] -> [u64]>, - ##["protocol_feature_bls12381"] bls12381_map_fp2_to_g2<[value_len: u64, value_ptr: u64, register_id: u64] -> [u64]>, - ##["protocol_feature_bls12381"] bls12381_pairing_check<[value_len: u64, value_ptr: u64] -> [u64]>, - ##["protocol_feature_bls12381"] bls12381_p1_decompress<[value_len: u64, value_ptr: u64, register_id: u64] -> [u64]>, - ##["protocol_feature_bls12381"] bls12381_p2_decompress<[value_len: u64, value_ptr: u64, register_id: u64] -> [u64]>, + bls12381_p1_sum<[value_len: u64, value_ptr: u64, register_id: u64] -> [u64]>, + bls12381_p2_sum<[value_len: u64, value_ptr: u64, register_id: u64] -> [u64]>, + bls12381_g1_multiexp<[value_len: u64, value_ptr: u64, register_id: u64] -> [u64]>, + bls12381_g2_multiexp<[value_len: u64, value_ptr: u64, register_id: u64] -> [u64]>, + bls12381_map_fp_to_g1<[value_len: u64, value_ptr: u64, register_id: u64] -> [u64]>, + bls12381_map_fp2_to_g2<[value_len: u64, value_ptr: u64, register_id: u64] -> [u64]>, + bls12381_pairing_check<[value_len: u64, value_ptr: u64] -> [u64]>, + bls12381_p1_decompress<[value_len: u64, value_ptr: u64, register_id: u64] -> [u64]>, + bls12381_p2_decompress<[value_len: u64, value_ptr: u64, register_id: u64] -> [u64]>, // ############# // # Sandbox # diff --git a/runtime/near-vm-runner/src/logic/bls12381.rs b/runtime/near-vm-runner/src/logic/bls12381.rs index 0e62afbb33c..e95836c84b3 100644 --- a/runtime/near-vm-runner/src/logic/bls12381.rs +++ b/runtime/near-vm-runner/src/logic/bls12381.rs @@ -23,7 +23,6 @@ macro_rules! bls12381_impl { $impl_fn_name:ident ) => { #[doc = $doc] - #[cfg(feature = "protocol_feature_bls12381")] pub fn $fn_name( &mut self, value_len: u64, diff --git a/runtime/near-vm-runner/src/logic/errors.rs b/runtime/near-vm-runner/src/logic/errors.rs index 1ec8655a11a..fb771db681c 100644 --- a/runtime/near-vm-runner/src/logic/errors.rs +++ b/runtime/near-vm-runner/src/logic/errors.rs @@ -163,25 +163,37 @@ pub enum HostError { /// Tried to call an empty method name EmptyMethodName, /// Smart contract panicked - GuestPanic { panic_msg: String }, + GuestPanic { + panic_msg: String, + }, /// IntegerOverflow happened during a contract execution IntegerOverflow, /// `promise_idx` does not correspond to existing promises - InvalidPromiseIndex { promise_idx: u64 }, + InvalidPromiseIndex { + promise_idx: u64, + }, /// Actions can only be appended to non-joint promise. CannotAppendActionToJointPromise, /// Returning joint promise is currently prohibited CannotReturnJointPromise, /// Accessed invalid promise result index - InvalidPromiseResultIndex { result_idx: u64 }, + InvalidPromiseResultIndex { + result_idx: u64, + }, /// Accessed invalid register id - InvalidRegisterId { register_id: u64 }, + InvalidRegisterId { + register_id: u64, + }, /// Accessed memory outside the bounds MemoryAccessViolation, /// VM Logic returned an invalid receipt index - InvalidReceiptIndex { receipt_index: u64 }, + InvalidReceiptIndex { + receipt_index: u64, + }, /// Iterator index `iterator_index` does not exist - InvalidIteratorIndex { iterator_index: u64 }, + InvalidIteratorIndex { + iterator_index: u64, + }, /// VM Logic returned an invalid account id InvalidAccountId, /// VM Logic returned an invalid method name @@ -189,42 +201,81 @@ pub enum HostError { /// VM Logic provided an invalid public key InvalidPublicKey, /// `method_name` is not allowed in view calls - ProhibitedInView { method_name: String }, + ProhibitedInView { + method_name: String, + }, /// The total number of logs will exceed the limit. - NumberOfLogsExceeded { limit: u64 }, + NumberOfLogsExceeded { + limit: u64, + }, /// The storage key length exceeded the limit. - KeyLengthExceeded { length: u64, limit: u64 }, + KeyLengthExceeded { + length: u64, + limit: u64, + }, /// The storage value length exceeded the limit. - ValueLengthExceeded { length: u64, limit: u64 }, + ValueLengthExceeded { + length: u64, + limit: u64, + }, /// The total log length exceeded the limit. - TotalLogLengthExceeded { length: u64, limit: u64 }, + TotalLogLengthExceeded { + length: u64, + limit: u64, + }, /// The maximum number of promises within a FunctionCall exceeded the limit. - NumberPromisesExceeded { number_of_promises: u64, limit: u64 }, + NumberPromisesExceeded { + number_of_promises: u64, + limit: u64, + }, /// The maximum number of input data dependencies exceeded the limit. - NumberInputDataDependenciesExceeded { number_of_input_data_dependencies: u64, limit: u64 }, + NumberInputDataDependenciesExceeded { + number_of_input_data_dependencies: u64, + limit: u64, + }, /// The returned value length exceeded the limit. - ReturnedValueLengthExceeded { length: u64, limit: u64 }, + ReturnedValueLengthExceeded { + length: u64, + limit: u64, + }, /// The contract size for DeployContract action exceeded the limit. - ContractSizeExceeded { size: u64, limit: u64 }, + ContractSizeExceeded { + size: u64, + limit: u64, + }, /// The host function was deprecated. - Deprecated { method_name: String }, + Deprecated { + method_name: String, + }, /// General errors for ECDSA recover. - ECRecoverError { msg: String }, + ECRecoverError { + msg: String, + }, /// Invalid input to alt_bn128 familiy of functions (e.g., point which isn't /// on the curve). - AltBn128InvalidInput { msg: String }, + AltBn128InvalidInput { + msg: String, + }, /// Invalid input to ed25519 signature verification function (e.g. signature cannot be /// derived from bytes). - Ed25519VerifyInvalidInput { msg: String }, + Ed25519VerifyInvalidInput { + msg: String, + }, // Invalid input to bls12381 family of functions - #[cfg(feature = "protocol_feature_bls12381")] - BLS12381InvalidInput { msg: String }, + BLS12381InvalidInput { + msg: String, + }, /// Yield payload length exceeds the maximum permitted. - YieldPayloadLength { length: u64, limit: u64 }, + YieldPayloadLength { + length: u64, + limit: u64, + }, /// Yield resumption data id is malformed. DataIdMalformed, /// Size of the recorded trie storage proof has exceeded the allowed limit. - RecordedStorageExceeded { limit: ByteSize }, + RecordedStorageExceeded { + limit: ByteSize, + }, } #[derive(Debug, PartialEq, Eq)] @@ -457,7 +508,6 @@ impl std::fmt::Display for HostError { Ed25519VerifyInvalidInput { msg } => { write!(f, "ED25519 signature verification error: {}", msg) } - #[cfg(feature = "protocol_feature_bls12381")] BLS12381InvalidInput { msg } => write!(f, "BLS12-381 invalid input: {}", msg), YieldPayloadLength { length, limit } => write!( f, diff --git a/runtime/near-vm-runner/src/logic/logic.rs b/runtime/near-vm-runner/src/logic/logic.rs index d5948e29f32..fc314c420ed 100644 --- a/runtime/near-vm-runner/src/logic/logic.rs +++ b/runtime/near-vm-runner/src/logic/logic.rs @@ -7,7 +7,6 @@ use super::types::{PromiseIndex, PromiseResult, ReceiptIndex, ReturnData}; use super::utils::split_method_names; use super::ValuePtr; use super::{HostError, VMLogicError}; -#[cfg(feature = "protocol_feature_bls12381")] use crate::bls12381_impl; use crate::ProfileDataV3; use near_crypto::Secp256K1Signature; @@ -1056,45 +1055,44 @@ impl<'a> VMLogic<'a> { Ok(res as u64) } - #[cfg(feature = "protocol_feature_bls12381")] bls12381_impl!( r"Calculates the sum of signed elements on the BLS12-381 curve. - It accepts an arbitrary number of pairs (sign_i, p_i), - where p_i from E(Fp) and sign_i is 0 or 1. - It calculates sum_i (-1)^{sign_i} * p_i +It accepts an arbitrary number of pairs (sign_i, p_i), +where p_i from E(Fp) and sign_i is 0 or 1. +It calculates sum_i (-1)^{sign_i} * p_i - # Arguments +# Arguments - * `value` - sequence of (sign:bool, p:E(Fp)), where - p is point (x:Fp, y:Fp) on BLS12-381, - BLS12-381 is Y^2 = X^3 + 4 curve over Fp. +* `value` - sequence of (sign:bool, p:E(Fp)), where + p is point (x:Fp, y:Fp) on BLS12-381, + BLS12-381 is Y^2 = X^3 + 4 curve over Fp. - `value` is encoded as packed `[(u8, ([u8;48], [u8;48]))]` slice. - `0u8` is positive sign, `1u8` -- negative. - Elements from Fp encoded as big-endian [u8;48]. + `value` is encoded as packed `[(u8, ([u8;48], [u8;48]))]` slice. + `0u8` is positive sign, `1u8` -- negative. + Elements from Fp encoded as big-endian [u8;48]. - # Output +# Output - If the input data is correct returns 0 and the 96 bytes represent - the resulting points from E(Fp) which will be written to the register with - the register_id identifier +If the input data is correct returns 0 and the 96 bytes represent +the resulting points from E(Fp) which will be written to the register with +the register_id identifier - If one of the points not on the curve, - the sign or points are incorrectly encoded then 1 will be returned - and nothing will be written to the register. +If one of the points not on the curve, +the sign or points are incorrectly encoded then 1 will be returned +and nothing will be written to the register. - # Errors +# Errors - If `value_len + value_ptr` points outside the memory or the registers - use more memory than the limit the function returns `MemoryAccessViolation`. +If `value_len + value_ptr` points outside the memory or the registers +use more memory than the limit the function returns `MemoryAccessViolation`. - If `value_len % 97 != 0`, the function returns `BLS12381InvalidInput`. +If `value_len % 97 != 0`, the function returns `BLS12381InvalidInput`. - # Cost +# Cost - `base + write_register_base + write_register_byte * num_bytes + - bls12381_p1_sum_base + bls12381_p1_sum_element * num_elements` - ", +`base + write_register_base + write_register_byte * num_bytes + +bls12381_p1_sum_base + bls12381_p1_sum_element * num_elements` +", bls12381_p1_sum, 97, bls12381_p1_sum_base, @@ -1102,46 +1100,45 @@ impl<'a> VMLogic<'a> { p1_sum ); - #[cfg(feature = "protocol_feature_bls12381")] bls12381_impl!( r"Calculates the sum of signed elements on the twisted BLS12-381 curve. - It accepts an arbitrary number of pairs (sign_i, p_i), - where p_i from E'(Fp^2) and sign_i is 0 or 1. - It calculates sum_i (-1)^{sign_i} * p_i +It accepts an arbitrary number of pairs (sign_i, p_i), +where p_i from E'(Fp^2) and sign_i is 0 or 1. +It calculates sum_i (-1)^{sign_i} * p_i - # Arguments +# Arguments - * `value` - sequence of (sign:bool, p:E'(Fp^2)), where - p is point (x:Fp^2, y:Fp^2) on twisted BLS12-381, - twisted BLS12-381 is Y^2 = X^3 + 4(u + 1) curve over Fp^2. +* `value` - sequence of (sign:bool, p:E'(Fp^2)), where + p is point (x:Fp^2, y:Fp^2) on twisted BLS12-381, + twisted BLS12-381 is Y^2 = X^3 + 4(u + 1) curve over Fp^2. - `value` is encoded as packed `[(u8, ([u8;96], [u8;96]))]` slice. - `0u8` is positive, `1u8` is negative. - Elements q = c0 + c1 * u from Fp^2 encoded as concatenation of c1 and c0, - where c1 and c0 from Fp and encoded as big-endian [u8;48]. +`value` is encoded as packed `[(u8, ([u8;96], [u8;96]))]` slice. +`0u8` is positive, `1u8` is negative. +Elements q = c0 + c1 * u from Fp^2 encoded as concatenation of c1 and c0, +where c1 and c0 from Fp and encoded as big-endian [u8;48]. - # Output +# Output - If the input data is correct returns 0 and the 192 bytes represent - the resulting points from E'(Fp^2) which will be written to the register with - the register_id identifier +If the input data is correct returns 0 and the 192 bytes represent +the resulting points from E'(Fp^2) which will be written to the register with +the register_id identifier - If one of the points not on the curve, - the sign or points are incorrectly encoded then 1 will be returned - and nothing will be written to the register. +If one of the points not on the curve, +the sign or points are incorrectly encoded then 1 will be returned +and nothing will be written to the register. - # Errors +# Errors - If `value_len + value_ptr` points outside the memory or the registers - use more memory than the limit the function returns `MemoryAccessViolation`. +If `value_len + value_ptr` points outside the memory or the registers +use more memory than the limit the function returns `MemoryAccessViolation`. - If `value_len % 193 != 0`, the function returns `BLS12381InvalidInput`. +If `value_len % 193 != 0`, the function returns `BLS12381InvalidInput`. - # Cost +# Cost - `base + write_register_base + write_register_byte * num_bytes + - bls12381_p2_sum_base + bls12381_p2_sum_element * num_elements` - ", +`base + write_register_base + write_register_byte * num_bytes + +bls12381_p2_sum_base + bls12381_p2_sum_element * num_elements` +", bls12381_p2_sum, 193, bls12381_p2_sum_base, @@ -1149,45 +1146,44 @@ impl<'a> VMLogic<'a> { p2_sum ); - #[cfg(feature = "protocol_feature_bls12381")] bls12381_impl!( r"Calculates multiexp on BLS12-381 curve: - accepts an arbitrary number of pairs (p_i, s_i), - where p_i from G1 and s_i is a scalar and - calculates sum_i s_i*p_i +accepts an arbitrary number of pairs (p_i, s_i), +where p_i from G1 and s_i is a scalar and +calculates sum_i s_i*p_i - # Arguments +# Arguments - * `value` - sequence of (p:E(Fp), s:u256), where - p is point (x:Fp, y:Fp) on BLS12-381, - BLS12-381 is Y^2 = X^3 + 4 curve over Fp. +* `value` - sequence of (p:E(Fp), s:u256), where + p is point (x:Fp, y:Fp) on BLS12-381, + BLS12-381 is Y^2 = X^3 + 4 curve over Fp. - `value` is encoded as packed `[(([u8;48], [u8;48]), [u8;32])]` slice. - Elements from Fp encoded as big-endian [u8;48]. - Scalars encoded as little-endian [u8;32]. + `value` is encoded as packed `[(([u8;48], [u8;48]), [u8;32])]` slice. + Elements from Fp encoded as big-endian [u8;48]. + Scalars encoded as little-endian [u8;32]. - # Output +# Output - If the input data is correct returns 0 and the 96 bytes represent - the resulting points from G1 which will be written to the register with - the register_id identifier +If the input data is correct returns 0 and the 96 bytes represent +the resulting points from G1 which will be written to the register with +the register_id identifier - If one of the points not from G1 subgroup - or points are incorrectly encoded then 1 will be returned - and nothing will be written to the register. +If one of the points not from G1 subgroup +or points are incorrectly encoded then 1 will be returned +and nothing will be written to the register. - # Errors +# Errors - If `value_len + value_ptr` points outside the memory or the registers - use more memory than the limit the function returns `MemoryAccessViolation`. +If `value_len + value_ptr` points outside the memory or the registers +use more memory than the limit the function returns `MemoryAccessViolation`. - If `value_len % 128 != 0`, the function returns `BLS12381InvalidInput`. +If `value_len % 128 != 0`, the function returns `BLS12381InvalidInput`. - # Cost +# Cost - `base + write_register_base + write_register_byte * num_bytes + - bls12381_g1_multiexp_base + bls12381_g1_multiexp_element * num_elements` - ", +`base + write_register_base + write_register_byte * num_bytes + +bls12381_g1_multiexp_base + bls12381_g1_multiexp_element * num_elements` +", bls12381_g1_multiexp, 128, bls12381_g1_multiexp_base, @@ -1195,46 +1191,45 @@ impl<'a> VMLogic<'a> { g1_multiexp ); - #[cfg(feature = "protocol_feature_bls12381")] bls12381_impl!( r"Calculates multiexp on twisted BLS12-381 curve: - accepts an arbitrary number of pairs (p_i, s_i), - where p_i from G2 and s_i is a scalar and - calculates sum_i s_i*p_i +accepts an arbitrary number of pairs (p_i, s_i), +where p_i from G2 and s_i is a scalar and +calculates sum_i s_i*p_i - # Arguments +# Arguments - * `value` - sequence of (p:E'(Fp^2), s:u256), where - p is point (x:Fp^2, y:Fp^2) on twisted BLS12-381, - BLS12-381 is Y^2 = X^3 + 4(u + 1) curve over Fp^2. +* `value` - sequence of (p:E'(Fp^2), s:u256), where + p is point (x:Fp^2, y:Fp^2) on twisted BLS12-381, + BLS12-381 is Y^2 = X^3 + 4(u + 1) curve over Fp^2. - `value` is encoded as packed `[(([u8;96], [u8;96]), [u8;32])]` slice. - Elements q = c0 + c1 * u from Fp^2 encoded as concatenation of c1 and c0, - where c1 and c0 from Fp and encoded as big-endian [u8;48]. - Scalars encoded as little-endian [u8;32]. +`value` is encoded as packed `[(([u8;96], [u8;96]), [u8;32])]` slice. +Elements q = c0 + c1 * u from Fp^2 encoded as concatenation of c1 and c0, +where c1 and c0 from Fp and encoded as big-endian [u8;48]. +Scalars encoded as little-endian [u8;32]. - # Output +# Output - If the input data is correct returns 0 and the 192 bytes represent - the resulting points from G2 which will be written to the register with - the register_id identifier +If the input data is correct returns 0 and the 192 bytes represent +the resulting points from G2 which will be written to the register with +the register_id identifier - If one of the points not from G2 subgroup - or points are incorrectly encoded then 1 will be returned - and nothing will be written to the register. +If one of the points not from G2 subgroup +or points are incorrectly encoded then 1 will be returned +and nothing will be written to the register. - # Errors +# Errors - If `value_len + value_ptr` points outside the memory or the registers - use more memory than the limit the function returns `MemoryAccessViolation`. +If `value_len + value_ptr` points outside the memory or the registers +use more memory than the limit the function returns `MemoryAccessViolation`. - If `value_len % 224 != 0`, the function returns `BLS12381InvalidInput`. +If `value_len % 224 != 0`, the function returns `BLS12381InvalidInput`. - # Cost +# Cost - `base + write_register_base + write_register_byte * num_bytes + - bls12381_g2_multiexp_base + bls12381_g2_multiexp_element * num_elements` - ", +`base + write_register_base + write_register_byte * num_bytes + +bls12381_g2_multiexp_base + bls12381_g2_multiexp_element * num_elements` +", bls12381_g2_multiexp, 224, bls12381_g2_multiexp_base, @@ -1242,38 +1237,37 @@ impl<'a> VMLogic<'a> { g2_multiexp ); - #[cfg(feature = "protocol_feature_bls12381")] bls12381_impl!( r"Maps elements from Fp to the G1 subgroup of BLS12-381 curve. - # Arguments +# Arguments - * `value` - sequence of p from Fp. +* `value` - sequence of p from Fp. - `value` is encoded as packed `[[u8;48]]` slice. - Elements from Fp encoded as big-endian [u8;48]. + `value` is encoded as packed `[[u8;48]]` slice. + Elements from Fp encoded as big-endian [u8;48]. - # Output +# Output - If the input data is correct returns 0 and the 96*num_elements bytes represent - the resulting points from G1 which will be written to the register with - the register_id identifier +If the input data is correct returns 0 and the 96*num_elements bytes represent +the resulting points from G1 which will be written to the register with +the register_id identifier - If one of the element >= p, then 1 will be returned - and nothing will be written to the register. +If one of the element >= p, then 1 will be returned +and nothing will be written to the register. - # Errors +# Errors - If `value_len + value_ptr` points outside the memory or the registers - use more memory than the limit the function returns `MemoryAccessViolation`. +If `value_len + value_ptr` points outside the memory or the registers +use more memory than the limit the function returns `MemoryAccessViolation`. - If `value_len % 48 != 0`, the function returns `BLS12381InvalidInput`. +If `value_len % 48 != 0`, the function returns `BLS12381InvalidInput`. - # Cost +# Cost - `base + write_register_base + write_register_byte * num_bytes + - bls12381_map_fp_to_g1_base + bls12381_map_fp_to_g1_element * num_elements` - ", +`base + write_register_base + write_register_byte * num_bytes + +bls12381_map_fp_to_g1_base + bls12381_map_fp_to_g1_element * num_elements` +", bls12381_map_fp_to_g1, 48, bls12381_map_fp_to_g1_base, @@ -1281,38 +1275,37 @@ impl<'a> VMLogic<'a> { map_fp_to_g1 ); - #[cfg(feature = "protocol_feature_bls12381")] bls12381_impl!( r"Maps elements from Fp^2 to the G2 subgroup of twisted BLS12-381 curve. - # Arguments +# Arguments - * `value` - sequence of p from Fp^2. +* `value` - sequence of p from Fp^2. - `value` is encoded as packed `[[u8;96]]` slice. - Elements q = c0 + c1 * u from Fp^2 encoded as concatenation of c1 and c0, - where c1 and c0 from Fp and encoded as big-endian [u8;48]. +`value` is encoded as packed `[[u8;96]]` slice. +Elements q = c0 + c1 * u from Fp^2 encoded as concatenation of c1 and c0, +where c1 and c0 from Fp and encoded as big-endian [u8;48]. - # Output +# Output - If the input data is correct returns 0 and the 192*num_elements bytes represent - the resulting points from G2 which will be written to the register with - the register_id identifier +If the input data is correct returns 0 and the 192*num_elements bytes represent +the resulting points from G2 which will be written to the register with +the register_id identifier - If one of the element not valid Fp^2, then 1 will be returned - and nothing will be written to the register. +If one of the element not valid Fp^2, then 1 will be returned +and nothing will be written to the register. - # Errors +# Errors - If `value_len + value_ptr` points outside the memory or the registers - use more memory than the limit the function returns `MemoryAccessViolation`. +If `value_len + value_ptr` points outside the memory or the registers +use more memory than the limit the function returns `MemoryAccessViolation`. - If `value_len % 96 != 0`, the function returns `BLS12381InvalidInput`. +If `value_len % 96 != 0`, the function returns `BLS12381InvalidInput`. - # Cost - `base + write_register_base + write_register_byte * num_bytes + - bls12381_map_fp2_to_g2_base + bls12381_map_fp2_to_g2_element * num_elements` - ", +# Cost +`base + write_register_base + write_register_byte * num_bytes + +bls12381_map_fp2_to_g2_base + bls12381_map_fp2_to_g2_element * num_elements` +", bls12381_map_fp2_to_g2, 96, bls12381_map_fp2_to_g2_base, @@ -1358,7 +1351,6 @@ impl<'a> VMLogic<'a> { /// # Cost /// `base + write_register_base + write_register_byte * num_bytes + /// bls12381_pairing_base + bls12381_pairing_element * num_elements` - #[cfg(feature = "protocol_feature_bls12381")] pub fn bls12381_pairing_check(&mut self, value_len: u64, value_ptr: u64) -> Result { self.result_state.gas_counter.pay_base(bls12381_pairing_base)?; @@ -1374,44 +1366,43 @@ impl<'a> VMLogic<'a> { super::bls12381::pairing_check(&data) } - #[cfg(feature = "protocol_feature_bls12381")] bls12381_impl!( r"Decompress points from BLS12-381 curve. - # Arguments +# Arguments - * `value` - sequence of p:E(Fp), where - p is point in compressed format on BLS12-381, - BLS12-381 is Y^2 = X^3 + 4 curve over Fp. +* `value` - sequence of p:E(Fp), where + p is point in compressed format on BLS12-381, + BLS12-381 is Y^2 = X^3 + 4 curve over Fp. - `value` is encoded as packed `[[u8;48]]` slice. - Where points (x: Fp, y: Fp) from E(Fp) encoded as - [u8; 48] -- big-endian x: Fp. y determined by the formula y=+-sqrt(x^3 + 4) + `value` is encoded as packed `[[u8;48]]` slice. + Where points (x: Fp, y: Fp) from E(Fp) encoded as + [u8; 48] -- big-endian x: Fp. y determined by the formula y=+-sqrt(x^3 + 4) - The highest bit should be set as 1, the second-highest bit marks the point at infinity, - The third-highest bit represent the sign of y (0 for positive). + The highest bit should be set as 1, the second-highest bit marks the point at infinity, + The third-highest bit represent the sign of y (0 for positive). - # Output +# Output - If the input data is correct returns 0 and the 96*num_elements bytes represent - the resulting uncompressed points from E(Fp) which will be written to the register with - the register_id identifier +If the input data is correct returns 0 and the 96*num_elements bytes represent +the resulting uncompressed points from E(Fp) which will be written to the register with +the register_id identifier - If one of the points not on the curve - or points are incorrectly encoded then 1 will be returned - and nothing will be written to the register. +If one of the points not on the curve +or points are incorrectly encoded then 1 will be returned +and nothing will be written to the register. - # Errors +# Errors - If `value_len + value_ptr` points outside the memory or the registers - use more memory than the limit the function returns `MemoryAccessViolation`. +If `value_len + value_ptr` points outside the memory or the registers +use more memory than the limit the function returns `MemoryAccessViolation`. - If `value_len % 48 != 0`, the function returns `BLS12381InvalidInput`. +If `value_len % 48 != 0`, the function returns `BLS12381InvalidInput`. - # Cost - `base + write_register_base + write_register_byte * num_bytes + - bls12381_p1_decompress_base + bls12381_p1_decompress_element * num_elements` - ", +# Cost +`base + write_register_base + write_register_byte * num_bytes + +bls12381_p1_decompress_base + bls12381_p1_decompress_element * num_elements` +", bls12381_p1_decompress, 48, bls12381_p1_decompress_base, @@ -1419,47 +1410,46 @@ impl<'a> VMLogic<'a> { p1_decompress ); - #[cfg(feature = "protocol_feature_bls12381")] bls12381_impl!( r"Decompress points from twisted BLS12-381 curve. - # Arguments +# Arguments - * `value` - sequence of p:E'(Fp^2), where - p is point in compressed format on twisted BLS12-381, - twisted BLS12-381 is Y^2 = X^3 + 4(u + 1) curve over Fp^2. +* `value` - sequence of p:E'(Fp^2), where + p is point in compressed format on twisted BLS12-381, + twisted BLS12-381 is Y^2 = X^3 + 4(u + 1) curve over Fp^2. - `value` is encoded as packed `[[u8;96]]` slice. - Where points (x: Fp^2, y: Fp^2) from E'(Fp^2) encoded as - [u8; 96] -- x: Fp^2. y determined by the formula y=+-sqrt(x^3 + 4(u + 1)) + `value` is encoded as packed `[[u8;96]]` slice. + Where points (x: Fp^2, y: Fp^2) from E'(Fp^2) encoded as + [u8; 96] -- x: Fp^2. y determined by the formula y=+-sqrt(x^3 + 4(u + 1)) - Elements q = c0 + c1 * u from Fp^2 encoded as concatenation of c1 and c0, - where c1 and c0 from Fp and encoded as big-endian [u8;48]. + Elements q = c0 + c1 * u from Fp^2 encoded as concatenation of c1 and c0, + where c1 and c0 from Fp and encoded as big-endian [u8;48]. - The highest bit should be set as 1, the second-highest bit marks the point at infinity, - The third-highest bit represent the sign of y (0 for positive). + The highest bit should be set as 1, the second-highest bit marks the point at infinity, + The third-highest bit represent the sign of y (0 for positive). - # Output +# Output - If the input data is correct returns 0 and the 192*num_elements bytes represent - the resulting uncompressed points from E'(Fp^2) which will be written to the register with - the register_id identifier +If the input data is correct returns 0 and the 192*num_elements bytes represent +the resulting uncompressed points from E'(Fp^2) which will be written to the register with +the register_id identifier - If one of the points not on the curve - or points are incorrectly encoded then 1 will be returned - and nothing will be written to the register. +If one of the points not on the curve +or points are incorrectly encoded then 1 will be returned +and nothing will be written to the register. - # Errors +# Errors - If `value_len + value_ptr` points outside the memory or the registers - use more memory than the limit the function returns `MemoryAccessViolation`. +If `value_len + value_ptr` points outside the memory or the registers +use more memory than the limit the function returns `MemoryAccessViolation`. - If `value_len % 96 != 0`, the function returns `BLS12381InvalidInput`. +If `value_len % 96 != 0`, the function returns `BLS12381InvalidInput`. - # Cost +# Cost - `base + write_register_base + write_register_byte * num_bytes + - bls12381_p2_decompress_base + bls12381_p2_decompress_element * num_elements` +`base + write_register_base + write_register_byte * num_bytes + +bls12381_p2_decompress_base + bls12381_p2_decompress_element * num_elements` ", bls12381_p2_decompress, 96, diff --git a/runtime/near-vm-runner/src/logic/mod.rs b/runtime/near-vm-runner/src/logic/mod.rs index 000460a71b7..adc7048dc3c 100644 --- a/runtime/near-vm-runner/src/logic/mod.rs +++ b/runtime/near-vm-runner/src/logic/mod.rs @@ -1,5 +1,4 @@ mod alt_bn128; -#[cfg(feature = "protocol_feature_bls12381")] mod bls12381; mod context; mod dependencies; diff --git a/runtime/near-vm-runner/src/logic/tests/mod.rs b/runtime/near-vm-runner/src/logic/tests/mod.rs index 21468f7a517..b840dd87214 100644 --- a/runtime/near-vm-runner/src/logic/tests/mod.rs +++ b/runtime/near-vm-runner/src/logic/tests/mod.rs @@ -1,5 +1,4 @@ mod alt_bn128; -#[cfg(feature = "protocol_feature_bls12381")] mod bls12381; mod context; mod ed25519_verify; diff --git a/runtime/near-vm-runner/src/profile.rs b/runtime/near-vm-runner/src/profile.rs index 270c367d2eb..ac164cebdcd 100644 --- a/runtime/near-vm-runner/src/profile.rs +++ b/runtime/near-vm-runner/src/profile.rs @@ -266,20 +266,20 @@ mod test { keccak256_byte -> 18 [0% host] keccak512_base -> 19 [0% host] keccak512_byte -> 20 [0% host] - ripemd160_base -> 21 [1% host] - ripemd160_block -> 22 [1% host] - ecrecover_base -> 23 [1% host] - log_base -> 24 [1% host] - log_byte -> 25 [1% host] - storage_write_base -> 26 [1% host] - storage_write_key_byte -> 27 [1% host] - storage_write_value_byte -> 28 [1% host] - storage_write_evicted_byte -> 29 [1% host] - storage_read_base -> 30 [1% host] - storage_read_key_byte -> 31 [1% host] - storage_read_value_byte -> 32 [1% host] - storage_remove_base -> 33 [1% host] - storage_remove_key_byte -> 34 [1% host] + ripemd160_base -> 21 [0% host] + ripemd160_block -> 22 [0% host] + ecrecover_base -> 23 [0% host] + log_base -> 24 [0% host] + log_byte -> 25 [0% host] + storage_write_base -> 26 [0% host] + storage_write_key_byte -> 27 [0% host] + storage_write_value_byte -> 28 [0% host] + storage_write_evicted_byte -> 29 [0% host] + storage_read_base -> 30 [0% host] + storage_read_key_byte -> 31 [0% host] + storage_read_value_byte -> 32 [0% host] + storage_remove_base -> 33 [0% host] + storage_remove_key_byte -> 34 [0% host] storage_remove_ret_value_byte -> 35 [1% host] storage_has_key_base -> 36 [1% host] storage_has_key_byte -> 37 [1% host] @@ -287,29 +287,47 @@ mod test { storage_iter_create_prefix_byte -> 39 [1% host] storage_iter_create_range_base -> 40 [1% host] storage_iter_create_from_byte -> 41 [1% host] - storage_iter_create_to_byte -> 42 [2% host] - storage_iter_next_base -> 43 [2% host] - storage_iter_next_key_byte -> 44 [2% host] - storage_iter_next_value_byte -> 45 [2% host] - touching_trie_node -> 46 [2% host] - read_cached_trie_node -> 47 [2% host] - promise_and_base -> 48 [2% host] - promise_and_per_promise -> 49 [2% host] - promise_return -> 50 [2% host] - validator_stake_base -> 51 [2% host] - validator_total_stake_base -> 52 [2% host] - alt_bn128_g1_multiexp_base -> 53 [2% host] - alt_bn128_g1_multiexp_element -> 54 [2% host] - alt_bn128_pairing_check_base -> 55 [2% host] - alt_bn128_pairing_check_element -> 56 [2% host] - alt_bn128_g1_sum_base -> 57 [2% host] - alt_bn128_g1_sum_element -> 58 [2% host] - ed25519_verify_base -> 59 [2% host] - ed25519_verify_byte -> 60 [2% host] - yield_create_base -> 61 [2% host] - yield_create_byte -> 62 [2% host] - yield_resume_base -> 63 [3% host] - yield_resume_byte -> 64 [3% host] + storage_iter_create_to_byte -> 42 [1% host] + storage_iter_next_base -> 43 [1% host] + storage_iter_next_key_byte -> 44 [1% host] + storage_iter_next_value_byte -> 45 [1% host] + touching_trie_node -> 46 [1% host] + read_cached_trie_node -> 47 [1% host] + promise_and_base -> 48 [1% host] + promise_and_per_promise -> 49 [1% host] + promise_return -> 50 [1% host] + validator_stake_base -> 51 [1% host] + validator_total_stake_base -> 52 [1% host] + alt_bn128_g1_multiexp_base -> 53 [1% host] + alt_bn128_g1_multiexp_element -> 54 [1% host] + alt_bn128_pairing_check_base -> 55 [1% host] + alt_bn128_pairing_check_element -> 56 [1% host] + alt_bn128_g1_sum_base -> 57 [1% host] + alt_bn128_g1_sum_element -> 58 [1% host] + ed25519_verify_base -> 59 [1% host] + ed25519_verify_byte -> 60 [1% host] + yield_create_base -> 61 [1% host] + yield_create_byte -> 62 [1% host] + yield_resume_base -> 63 [1% host] + yield_resume_byte -> 64 [1% host] + bls12381_p1_sum_base -> 65 [1% host] + bls12381_p1_sum_element -> 66 [1% host] + bls12381_p2_sum_base -> 67 [1% host] + bls12381_p2_sum_element -> 68 [1% host] + bls12381_g1_multiexp_base -> 69 [2% host] + bls12381_g1_multiexp_element -> 70 [2% host] + bls12381_g2_multiexp_base -> 71 [2% host] + bls12381_g2_multiexp_element -> 72 [2% host] + bls12381_map_fp_to_g1_base -> 73 [2% host] + bls12381_map_fp_to_g1_element -> 74 [2% host] + bls12381_map_fp2_to_g2_base -> 75 [2% host] + bls12381_map_fp2_to_g2_element -> 76 [2% host] + bls12381_pairing_base -> 77 [2% host] + bls12381_pairing_element -> 78 [2% host] + bls12381_p1_decompress_base -> 79 [2% host] + bls12381_p1_decompress_element -> 80 [2% host] + bls12381_p2_decompress_base -> 81 [2% host] + bls12381_p2_decompress_element -> 82 [2% host] ------ Actions -------- create_account -> 1000 delete_account -> 1001 diff --git a/runtime/near-vm-runner/src/tests/compile_errors.rs b/runtime/near-vm-runner/src/tests/compile_errors.rs index 669ac73defa..2cac3e61f77 100644 --- a/runtime/near-vm-runner/src/tests/compile_errors.rs +++ b/runtime/near-vm-runner/src/tests/compile_errors.rs @@ -417,7 +417,7 @@ fn test_sandbox_only_function() { #[cfg(feature = "sandbox")] tb.expect(&expect![[r#" - VMOutcome: balance 4 storage_usage 12 return data None burnt gas 59805981 used gas 59805981 + VMOutcome: balance 4 storage_usage 12 return data None burnt gas 154515074 used gas 154515074 "#]]); #[cfg(not(feature = "sandbox"))] diff --git a/runtime/runtime-params-estimator/Cargo.toml b/runtime/runtime-params-estimator/Cargo.toml index 5741ad333cb..a03257be8b1 100644 --- a/runtime/runtime-params-estimator/Cargo.toml +++ b/runtime/runtime-params-estimator/Cargo.toml @@ -80,7 +80,6 @@ nightly = [ "nearcore/nightly", "nightly_protocol", "node-runtime/nightly", - "protocol_feature_bls12381", ] nightly_protocol = [ "genesis-populate/nightly_protocol", @@ -96,4 +95,3 @@ nightly_protocol = [ ] sandbox = ["near-o11y/sandbox", "node-runtime/sandbox"] io_trace = ["near-store/io_trace", "near-o11y/io_trace", "near-vm-runner/io_trace"] -protocol_feature_bls12381 = [] diff --git a/runtime/runtime-params-estimator/src/cost.rs b/runtime/runtime-params-estimator/src/cost.rs index bfdd43951f1..ecfeb58a733 100644 --- a/runtime/runtime-params-estimator/src/cost.rs +++ b/runtime/runtime-params-estimator/src/cost.rs @@ -605,41 +605,23 @@ pub enum Cost { AltBn128PairingCheckElement, AltBn128G1SumBase, AltBn128G1SumElement, - #[cfg(feature = "protocol_feature_bls12381")] Bls12381P1SumBase, - #[cfg(feature = "protocol_feature_bls12381")] Bls12381P1SumElement, - #[cfg(feature = "protocol_feature_bls12381")] Bls12381P2SumBase, - #[cfg(feature = "protocol_feature_bls12381")] Bls12381P2SumElement, - #[cfg(feature = "protocol_feature_bls12381")] Bls12381G1MultiexpBase, - #[cfg(feature = "protocol_feature_bls12381")] Bls12381G1MultiexpElement, - #[cfg(feature = "protocol_feature_bls12381")] Bls12381G2MultiexpBase, - #[cfg(feature = "protocol_feature_bls12381")] Bls12381G2MultiexpElement, - #[cfg(feature = "protocol_feature_bls12381")] Bls12381MapFpToG1Base, - #[cfg(feature = "protocol_feature_bls12381")] Bls12381MapFpToG1Element, - #[cfg(feature = "protocol_feature_bls12381")] Bls12381MapFp2ToG2Base, - #[cfg(feature = "protocol_feature_bls12381")] Bls12381MapFp2ToG2Element, - #[cfg(feature = "protocol_feature_bls12381")] Bls12381PairingBase, - #[cfg(feature = "protocol_feature_bls12381")] Bls12381PairingElement, - #[cfg(feature = "protocol_feature_bls12381")] Bls12381P1DecompressBase, - #[cfg(feature = "protocol_feature_bls12381")] Bls12381P1DecompressElement, - #[cfg(feature = "protocol_feature_bls12381")] Bls12381P2DecompressBase, - #[cfg(feature = "protocol_feature_bls12381")] Bls12381P2DecompressElement, // Costs used only in estimator diff --git a/runtime/runtime-params-estimator/src/costs_to_runtime_config.rs b/runtime/runtime-params-estimator/src/costs_to_runtime_config.rs index 951922050a8..6bff5f77735 100644 --- a/runtime/runtime-params-estimator/src/costs_to_runtime_config.rs +++ b/runtime/runtime-params-estimator/src/costs_to_runtime_config.rs @@ -154,41 +154,23 @@ fn estimation(cost: ExtCosts) -> Option { ExtCosts::alt_bn128_pairing_check_element => Cost::AltBn128PairingCheckElement, ExtCosts::yield_create_base => Cost::YieldCreateBase, ExtCosts::yield_create_byte => Cost::YieldCreateByte, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p1_sum_base => Cost::Bls12381P1SumBase, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p1_sum_element => Cost::Bls12381P1SumElement, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p2_sum_base => Cost::Bls12381P2SumBase, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p2_sum_element => Cost::Bls12381P2SumElement, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_g1_multiexp_base => Cost::Bls12381G1MultiexpBase, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_g1_multiexp_element => Cost::Bls12381G1MultiexpElement, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_g2_multiexp_base => Cost::Bls12381G2MultiexpBase, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_g2_multiexp_element => Cost::Bls12381G2MultiexpElement, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_map_fp_to_g1_base => Cost::Bls12381MapFpToG1Base, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_map_fp_to_g1_element => Cost::Bls12381MapFpToG1Element, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_map_fp2_to_g2_base => Cost::Bls12381MapFp2ToG2Base, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_map_fp2_to_g2_element => Cost::Bls12381MapFp2ToG2Element, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_pairing_base => Cost::Bls12381PairingBase, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_pairing_element => Cost::Bls12381PairingElement, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p1_decompress_base => Cost::Bls12381P1DecompressBase, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p1_decompress_element => Cost::Bls12381P1DecompressElement, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p2_decompress_base => Cost::Bls12381P2DecompressBase, - #[cfg(feature = "protocol_feature_bls12381")] ExtCosts::bls12381_p2_decompress_element => Cost::Bls12381P2DecompressElement, _ => return None, }) diff --git a/runtime/runtime-params-estimator/src/lib.rs b/runtime/runtime-params-estimator/src/lib.rs index 1a24fac8680..e2d1babf67e 100644 --- a/runtime/runtime-params-estimator/src/lib.rs +++ b/runtime/runtime-params-estimator/src/lib.rs @@ -124,41 +124,23 @@ use utils::{ use vm_estimator::{compile_single_contract_cost, compute_compile_cost_vm}; static ALL_COSTS: &[(Cost, fn(&mut EstimatorContext) -> GasCost)] = &[ - #[cfg(feature = "protocol_feature_bls12381")] (Cost::Bls12381MapFpToG1Base, bls12381_map_fp_to_g1_base), - #[cfg(feature = "protocol_feature_bls12381")] (Cost::Bls12381MapFpToG1Element, bls12381_map_fp_to_g1_element), - #[cfg(feature = "protocol_feature_bls12381")] (Cost::Bls12381MapFp2ToG2Base, bls12381_map_fp2_to_g2_base), - #[cfg(feature = "protocol_feature_bls12381")] (Cost::Bls12381MapFp2ToG2Element, bls12381_map_fp2_to_g2_element), - #[cfg(feature = "protocol_feature_bls12381")] (Cost::Bls12381PairingBase, bls12381_pairing_base), - #[cfg(feature = "protocol_feature_bls12381")] (Cost::Bls12381PairingElement, bls12381_pairing_element), - #[cfg(feature = "protocol_feature_bls12381")] (Cost::Bls12381P1SumBase, bls12381_p1_sum_base), - #[cfg(feature = "protocol_feature_bls12381")] (Cost::Bls12381P1SumElement, bls12381_p1_sum_element), - #[cfg(feature = "protocol_feature_bls12381")] (Cost::Bls12381P2SumBase, bls12381_p2_sum_base), - #[cfg(feature = "protocol_feature_bls12381")] (Cost::Bls12381P2SumElement, bls12381_p2_sum_element), - #[cfg(feature = "protocol_feature_bls12381")] (Cost::Bls12381G1MultiexpBase, bls12381_g1_multiexp_base), - #[cfg(feature = "protocol_feature_bls12381")] (Cost::Bls12381G1MultiexpElement, bls12381_g1_multiexp_element), - #[cfg(feature = "protocol_feature_bls12381")] (Cost::Bls12381G2MultiexpBase, bls12381_g2_multiexp_base), - #[cfg(feature = "protocol_feature_bls12381")] (Cost::Bls12381G2MultiexpElement, bls12381_g2_multiexp_element), - #[cfg(feature = "protocol_feature_bls12381")] (Cost::Bls12381P1DecompressBase, bls12381_p1_decompress_base), - #[cfg(feature = "protocol_feature_bls12381")] (Cost::Bls12381P1DecompressElement, bls12381_p1_decompress_element), - #[cfg(feature = "protocol_feature_bls12381")] (Cost::Bls12381P2DecompressBase, bls12381_p2_decompress_base), - #[cfg(feature = "protocol_feature_bls12381")] (Cost::Bls12381P2DecompressElement, bls12381_p2_decompress_element), (Cost::ActionReceiptCreation, action_receipt_creation), (Cost::ActionSirReceiptCreation, action_sir_receipt_creation), @@ -1101,62 +1083,50 @@ fn alt_bn128_pairing_check_element(ctx: &mut EstimatorContext) -> GasCost { ) } -#[cfg(feature = "protocol_feature_bls12381")] fn bls12381_p1_sum_base(ctx: &mut EstimatorContext) -> GasCost { fn_cost(ctx, "bls12381_p1_sum_0_100", ExtCosts::bls12381_p1_sum_base, 100) } -#[cfg(feature = "protocol_feature_bls12381")] fn bls12381_p1_sum_element(ctx: &mut EstimatorContext) -> GasCost { fn_cost(ctx, "bls12381_p1_sum_50_100", ExtCosts::bls12381_p1_sum_element, 5000) } -#[cfg(feature = "protocol_feature_bls12381")] fn bls12381_p2_sum_base(ctx: &mut EstimatorContext) -> GasCost { fn_cost(ctx, "bls12381_p2_sum_0_100", ExtCosts::bls12381_p2_sum_base, 100) } -#[cfg(feature = "protocol_feature_bls12381")] fn bls12381_p2_sum_element(ctx: &mut EstimatorContext) -> GasCost { fn_cost(ctx, "bls12381_p2_sum_50_100", ExtCosts::bls12381_p2_sum_element, 5000) } -#[cfg(feature = "protocol_feature_bls12381")] fn bls12381_g1_multiexp_base(ctx: &mut EstimatorContext) -> GasCost { fn_cost(ctx, "bls12381_g1_multiexp_0_100", ExtCosts::bls12381_g1_multiexp_base, 100) } -#[cfg(feature = "protocol_feature_bls12381")] fn bls12381_g1_multiexp_element(ctx: &mut EstimatorContext) -> GasCost { fn_cost(ctx, "bls12381_g1_multiexp_50_100", ExtCosts::bls12381_g1_multiexp_element, 50 * 100) } -#[cfg(feature = "protocol_feature_bls12381")] fn bls12381_g2_multiexp_base(ctx: &mut EstimatorContext) -> GasCost { fn_cost(ctx, "bls12381_g2_multiexp_0_100", ExtCosts::bls12381_g2_multiexp_base, 100) } -#[cfg(feature = "protocol_feature_bls12381")] fn bls12381_g2_multiexp_element(ctx: &mut EstimatorContext) -> GasCost { fn_cost(ctx, "bls12381_g2_multiexp_50_100", ExtCosts::bls12381_g2_multiexp_element, 50 * 100) } -#[cfg(feature = "protocol_feature_bls12381")] fn bls12381_map_fp_to_g1_base(ctx: &mut EstimatorContext) -> GasCost { fn_cost(ctx, "bls12381_map_fp_to_g1_0_100", ExtCosts::bls12381_map_fp_to_g1_base, 100) } -#[cfg(feature = "protocol_feature_bls12381")] fn bls12381_map_fp_to_g1_element(ctx: &mut EstimatorContext) -> GasCost { fn_cost(ctx, "bls12381_map_fp_to_g1_50_100", ExtCosts::bls12381_map_fp_to_g1_element, 50 * 100) } -#[cfg(feature = "protocol_feature_bls12381")] fn bls12381_map_fp2_to_g2_base(ctx: &mut EstimatorContext) -> GasCost { fn_cost(ctx, "bls12381_map_fp2_to_g2_0_100", ExtCosts::bls12381_map_fp2_to_g2_base, 100) } -#[cfg(feature = "protocol_feature_bls12381")] fn bls12381_map_fp2_to_g2_element(ctx: &mut EstimatorContext) -> GasCost { fn_cost( ctx, @@ -1166,32 +1136,26 @@ fn bls12381_map_fp2_to_g2_element(ctx: &mut EstimatorContext) -> GasCost { ) } -#[cfg(feature = "protocol_feature_bls12381")] fn bls12381_pairing_base(ctx: &mut EstimatorContext) -> GasCost { fn_cost(ctx, "bls12381_pairing_0_100", ExtCosts::bls12381_pairing_base, 100) } -#[cfg(feature = "protocol_feature_bls12381")] fn bls12381_pairing_element(ctx: &mut EstimatorContext) -> GasCost { fn_cost(ctx, "bls12381_pairing_5_100", ExtCosts::bls12381_pairing_element, 5 * 100) } -#[cfg(feature = "protocol_feature_bls12381")] fn bls12381_p1_decompress_base(ctx: &mut EstimatorContext) -> GasCost { fn_cost(ctx, "bls12381_p1_decompress_0_100", ExtCosts::bls12381_p1_decompress_base, 100) } -#[cfg(feature = "protocol_feature_bls12381")] fn bls12381_p1_decompress_element(ctx: &mut EstimatorContext) -> GasCost { fn_cost(ctx, "bls12381_p1_decompress_50_100", ExtCosts::bls12381_p1_decompress_element, 5000) } -#[cfg(feature = "protocol_feature_bls12381")] fn bls12381_p2_decompress_base(ctx: &mut EstimatorContext) -> GasCost { fn_cost(ctx, "bls12381_p2_decompress_0_100", ExtCosts::bls12381_p2_decompress_base, 100) } -#[cfg(feature = "protocol_feature_bls12381")] fn bls12381_p2_decompress_element(ctx: &mut EstimatorContext) -> GasCost { fn_cost(ctx, "bls12381_p2_decompress_50_100", ExtCosts::bls12381_p2_decompress_element, 5000) }