pub trait BlsOpsGasCost {
// Required methods
fn decode_bytes(len: u32) -> u64;
fn bls12_381_multi_miller_loop(count: u32) -> u64;
fn bls12_381_final_exponentiation() -> u64;
fn bls12_381_msm_g1(count: u32) -> u64;
fn bls12_381_msm_g2(count: u32) -> u64;
fn bls12_381_mul_projective_g1(count: u32) -> u64;
fn bls12_381_mul_projective_g2(count: u32) -> u64;
fn bls12_381_aggregate_g1(count: u32) -> u64;
fn bls12_381_map_to_g2affine(len: u32) -> u64;
}Expand description
BLS12-381 operations gas cost trait.
Depending on the environment (e.g., runtime or tests), different values for gas costs can be provided by implementing this trait accordingly.
Required Methods§
Sourcefn decode_bytes(len: u32) -> u64
fn decode_bytes(len: u32) -> u64
Returns gas cost for decoding bytes.
Sourcefn bls12_381_multi_miller_loop(count: u32) -> u64
fn bls12_381_multi_miller_loop(count: u32) -> u64
Returns gas cost for BLS12-381 multi Miller loop operation.
Sourcefn bls12_381_final_exponentiation() -> u64
fn bls12_381_final_exponentiation() -> u64
Returns gas cost for BLS12-381 final exponentiation operation.
Sourcefn bls12_381_msm_g1(count: u32) -> u64
fn bls12_381_msm_g1(count: u32) -> u64
Returns gas cost for BLS12-381 MSM G1 operation.
Sourcefn bls12_381_msm_g2(count: u32) -> u64
fn bls12_381_msm_g2(count: u32) -> u64
Returns gas cost for BLS12-381 MSM G2 operation.
Sourcefn bls12_381_mul_projective_g1(count: u32) -> u64
fn bls12_381_mul_projective_g1(count: u32) -> u64
Returns gas cost for BLS12-381 projective multiplication G1 operation.
Sourcefn bls12_381_mul_projective_g2(count: u32) -> u64
fn bls12_381_mul_projective_g2(count: u32) -> u64
Returns gas cost for BLS12-381 projective multiplication G2 operation.
Sourcefn bls12_381_aggregate_g1(count: u32) -> u64
fn bls12_381_aggregate_g1(count: u32) -> u64
Returns gas cost for BLS12-381 G1 aggregation operation.
Sourcefn bls12_381_map_to_g2affine(len: u32) -> u64
fn bls12_381_map_to_g2affine(len: u32) -> u64
Returns gas cost for BLS12-381 map to G2Affine operation.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.