From 5faade5a549b3d78374fe6876a90405ebd7e8923 Mon Sep 17 00:00:00 2001 From: Feliciss <10203-feliciss@users.noreply.0xacab.org> Date: Sun, 28 Jul 2024 01:13:42 +0900 Subject: [PATCH] [gh-2295] add derive_multi_sign_address. --- .../natives/gas_parameter/bitcoin_address.rs | 6 +++-- .../rooch_framework/bitcoin_address.rs | 25 ++++++++++++++++--- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/frameworks/rooch-framework/src/natives/gas_parameter/bitcoin_address.rs b/frameworks/rooch-framework/src/natives/gas_parameter/bitcoin_address.rs index e1302484cc..c8623b984c 100644 --- a/frameworks/rooch-framework/src/natives/gas_parameter/bitcoin_address.rs +++ b/frameworks/rooch-framework/src/natives/gas_parameter/bitcoin_address.rs @@ -5,8 +5,10 @@ use crate::natives::gas_parameter::native::MUL; use crate::natives::rooch_framework::bitcoin_address::GasParameters; crate::natives::gas_parameter::native::define_gas_parameters_for_natives!(GasParameters, "bitcoin_address", [ + [.parse.base, "parse.base", 1000 * MUL], + [.parse.per_byte, "parse.per_byte", 30 * MUL], [.verify_bitcoin_address_with_public_key.base, "verify_bitcoin_address_with_public_key.base", 1000 * MUL], [.verify_bitcoin_address_with_public_key.per_byte, "verify_bitcoin_address_with_public_key.per_byte", 30 * MUL], - [.new.base, "parse.base", 1000 * MUL], - [.new.per_byte, "parse.per_byte", 30 * MUL], + [.derive_multi_sign_address.base, "parse.base", 1000 * MUL], + [.derive_multi_sign_address.per_byte, "parse.per_byte", 30 * MUL], ]); diff --git a/frameworks/rooch-framework/src/natives/rooch_framework/bitcoin_address.rs b/frameworks/rooch-framework/src/natives/rooch_framework/bitcoin_address.rs index 2afa889e4c..ca8f6bacbc 100644 --- a/frameworks/rooch-framework/src/natives/rooch_framework/bitcoin_address.rs +++ b/frameworks/rooch-framework/src/natives/rooch_framework/bitcoin_address.rs @@ -101,6 +101,16 @@ pub fn verify_bitcoin_address_with_public_key( Ok(NativeResult::ok(cost, smallvec![Value::bool(is_ok)])) } +// TODO: derive_multi_sign_address +pub fn derive_multi_sign_address( + gas_params: &FromBytesGasParameters, + _context: &mut NativeContext, + _ty_args: Vec, + mut args: VecDeque, +) -> PartialVMResult { + todo!(); +} + #[derive(Debug, Clone)] pub struct FromBytesGasParameters { pub base: InternalGas, @@ -122,22 +132,24 @@ impl FromBytesGasParameters { #[derive(Debug, Clone)] pub struct GasParameters { - pub new: FromBytesGasParameters, + pub parse: FromBytesGasParameters, pub verify_bitcoin_address_with_public_key: FromBytesGasParameters, + pub derive_multi_sign_address: FromBytesGasParameters, } impl GasParameters { pub fn zeros() -> Self { Self { - new: FromBytesGasParameters::zeros(), + parse: FromBytesGasParameters::zeros(), verify_bitcoin_address_with_public_key: FromBytesGasParameters::zeros(), + derive_multi_sign_address: FromBytesGasParameters::zeros(), } } } pub fn make_all(gas_params: GasParameters) -> impl Iterator { let natives = [ - ("parse", make_native(gas_params.new, parse)), + ("parse", make_native(gas_params.parse, parse)), ( "verify_bitcoin_address_with_public_key", make_native( @@ -145,6 +157,13 @@ pub fn make_all(gas_params: GasParameters) -> impl Iterator