From f924e6f215843a7319ff1bcef672b31f9b74adb8 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Sat, 1 Feb 2025 18:41:27 +0700 Subject: [PATCH] feat(wasm-dpp): use u64 (bigint) when possible --- .../src/data_contract/data_contract.rs | 4 +-- .../document_transition/mod.rs | 9 ++---- .../document_batch_transition/mod.rs | 4 +-- .../fee/balance_is_not_enough_error.rs | 8 +++--- packages/wasm-dpp/src/identity/identity.rs | 28 +++++++++---------- .../transition.rs | 12 ++++---- packages/wasm-dpp/src/metadata.rs | 28 +++++++++---------- 7 files changed, 45 insertions(+), 48 deletions(-) diff --git a/packages/wasm-dpp/src/data_contract/data_contract.rs b/packages/wasm-dpp/src/data_contract/data_contract.rs index e0b2232f52b..16eb4fbb841 100644 --- a/packages/wasm-dpp/src/data_contract/data_contract.rs +++ b/packages/wasm-dpp/src/data_contract/data_contract.rs @@ -313,8 +313,8 @@ impl DataContractWasm { } #[wasm_bindgen(js_name=setIdentityNonce)] - pub fn set_identity_nonce(&mut self, e: u64) -> Result<(), JsValue> { - self.identity_nonce = Some(e); + pub fn set_identity_nonce(&mut self, nonce: u64) -> Result<(), JsValue> { + self.identity_nonce = Some(nonce); Ok(()) } diff --git a/packages/wasm-dpp/src/document/state_transition/document_batch_transition/document_transition/mod.rs b/packages/wasm-dpp/src/document/state_transition/document_batch_transition/document_transition/mod.rs index 834f4b56c06..509bb9c25ea 100644 --- a/packages/wasm-dpp/src/document/state_transition/document_batch_transition/document_transition/mod.rs +++ b/packages/wasm-dpp/src/document/state_transition/document_batch_transition/document_transition/mod.rs @@ -17,6 +17,7 @@ use dpp::{ use serde::Serialize; use serde_json::Value as JsonValue; use wasm_bindgen::prelude::*; +use dpp::prelude::Revision; use dpp::fee::Credits; use dpp::platform_value::converter::serde_json::BTreeValueJsonConverter; use dpp::state_transition::documents_batch_transition::document_base_transition::DocumentBaseTransition; @@ -95,12 +96,8 @@ impl DocumentTransitionWasm { } #[wasm_bindgen(js_name=getRevision)] - pub fn get_revision(&self) -> JsValue { - if let Some(revision) = self.0.revision() { - (revision as f64).into() - } else { - JsValue::NULL - } + pub fn get_revision(&self) -> Option { + self.0.revision() } #[wasm_bindgen(js_name=getEntropy)] pub fn get_entropy(&self) -> Option> { diff --git a/packages/wasm-dpp/src/document/state_transition/document_batch_transition/mod.rs b/packages/wasm-dpp/src/document/state_transition/document_batch_transition/mod.rs index 41634b985aa..4ceee5833f9 100644 --- a/packages/wasm-dpp/src/document/state_transition/document_batch_transition/mod.rs +++ b/packages/wasm-dpp/src/document/state_transition/document_batch_transition/mod.rs @@ -138,8 +138,8 @@ impl DocumentsBatchTransitionWasm { } #[wasm_bindgen(js_name=setIdentityContractNonce)] - pub fn set_identity_contract_nonce(&mut self, nonce: u32) { - self.0.set_identity_contract_nonce(nonce as u64); + pub fn set_identity_contract_nonce(&mut self, nonce: u64) { + self.0.set_identity_contract_nonce(nonce); } // #[wasm_bindgen(js_name=toJSON)] diff --git a/packages/wasm-dpp/src/errors/consensus/fee/balance_is_not_enough_error.rs b/packages/wasm-dpp/src/errors/consensus/fee/balance_is_not_enough_error.rs index e5599fe3bde..7d5fb848eb7 100644 --- a/packages/wasm-dpp/src/errors/consensus/fee/balance_is_not_enough_error.rs +++ b/packages/wasm-dpp/src/errors/consensus/fee/balance_is_not_enough_error.rs @@ -29,13 +29,13 @@ impl BalanceIsNotEnoughErrorWasm { } #[wasm_bindgen(js_name=getBalance)] - pub fn get_balance(&self) -> f64 { - self.inner.balance() as f64 + pub fn get_balance(&self) -> u64 { + self.inner.balance() } #[wasm_bindgen(js_name=getFee)] - pub fn get_fee(&self) -> f64 { - self.inner.fee() as f64 + pub fn get_fee(&self) -> u64 { + self.inner.fee() as u64 } #[wasm_bindgen(js_name=getCode)] diff --git a/packages/wasm-dpp/src/identity/identity.rs b/packages/wasm-dpp/src/identity/identity.rs index d6c22dacec3..ef8cf76336e 100644 --- a/packages/wasm-dpp/src/identity/identity.rs +++ b/packages/wasm-dpp/src/identity/identity.rs @@ -105,38 +105,38 @@ impl IdentityWasm { } #[wasm_bindgen(getter)] - pub fn balance(&self) -> f64 { - self.inner.balance() as f64 + pub fn balance(&self) -> u64 { + self.inner.balance() } #[wasm_bindgen(js_name=getBalance)] - pub fn get_balance(&self) -> f64 { - self.inner.balance() as f64 + pub fn get_balance(&self) -> u64 { + self.inner.balance() } #[wasm_bindgen(js_name=setBalance)] - pub fn set_balance(&mut self, balance: f64) { - self.inner.set_balance(balance as u64); + pub fn set_balance(&mut self, balance: u64) { + self.inner.set_balance(balance); } #[wasm_bindgen(js_name=increaseBalance)] - pub fn increase_balance(&mut self, amount: f64) -> f64 { - self.inner.increase_balance(amount as u64) as f64 + pub fn increase_balance(&mut self, amount: u64) -> u64 { + self.inner.increase_balance(amount) } #[wasm_bindgen(js_name=reduceBalance)] - pub fn reduce_balance(&mut self, amount: f64) -> f64 { - self.inner.reduce_balance(amount as u64) as f64 + pub fn reduce_balance(&mut self, amount: u64) -> u64 { + self.inner.reduce_balance(amount) } #[wasm_bindgen(js_name=setRevision)] - pub fn set_revision(&mut self, revision: f64) { - self.inner.set_revision(revision as u64); + pub fn set_revision(&mut self, revision: u64) { + self.inner.set_revision(revision); } #[wasm_bindgen(js_name=getRevision)] - pub fn get_revision(&self) -> f64 { - self.inner.revision() as f64 + pub fn get_revision(&self) -> u64 { + self.inner.revision() as u64 } #[wasm_bindgen(js_name=setMetadata)] diff --git a/packages/wasm-dpp/src/identity/state_transition/identity_credit_transfer_transition/transition.rs b/packages/wasm-dpp/src/identity/state_transition/identity_credit_transfer_transition/transition.rs index e20ec98b877..a8f77eb3453 100644 --- a/packages/wasm-dpp/src/identity/state_transition/identity_credit_transfer_transition/transition.rs +++ b/packages/wasm-dpp/src/identity/state_transition/identity_credit_transfer_transition/transition.rs @@ -90,13 +90,13 @@ impl IdentityCreditTransferTransitionWasm { } #[wasm_bindgen(js_name=getAmount)] - pub fn get_amount(&self) -> f64 { - self.0.amount() as f64 + pub fn get_amount(&self) -> u64 { + self.0.amount() } #[wasm_bindgen(js_name=setAmount)] - pub fn set_amount(&mut self, amount: f64) { - self.0.set_amount(amount as u64); + pub fn set_amount(&mut self, amount: u64) { + self.0.set_amount(amount); } #[wasm_bindgen(js_name=getUserFeeIncrease)] @@ -181,7 +181,7 @@ impl IdentityCreditTransferTransitionWasm { js_sys::Reflect::set( &js_object, &"amount".to_owned().into(), - &JsValue::from_f64(object.amount as f64), + &JsValue::bigint_from_str(&object.amount.to_string()), )?; Ok(js_object.into()) @@ -256,7 +256,7 @@ impl IdentityCreditTransferTransitionWasm { js_sys::Reflect::set( &js_object, &"amount".to_owned().into(), - &JsValue::from_f64(object.amount as f64), + &JsValue::bigint_from_str(&object.amount.to_string()), )?; Ok(js_object.into()) diff --git a/packages/wasm-dpp/src/metadata.rs b/packages/wasm-dpp/src/metadata.rs index e2a19afdf01..d9d5b2aafee 100644 --- a/packages/wasm-dpp/src/metadata.rs +++ b/packages/wasm-dpp/src/metadata.rs @@ -37,22 +37,22 @@ impl MetadataWasm { pub fn new(options: JsValue) -> Result { let metadata_options = options.with_serde_to_json_value()?; let block_height = metadata_options - .get_f64("blockHeight") + .get_u64("blockHeight") .map_err(|e| JsError::new(&e.to_string()))?; let core_chain_locked_height = metadata_options - .get_f64("coreChainLockedHeight") + .get_u32("coreChainLockedHeight") .map_err(|e| JsError::new(&e.to_string()))?; let time_ms = metadata_options - .get_f64("timeMs") + .get_u64("timeMs") .map_err(|e| JsError::new(&e.to_string()))?; let protocol_version = metadata_options - .get_f64("protocolVersion") + .get_u32("protocolVersion") .map_err(|e| JsError::new(&e.to_string()))?; let inner = Metadata { - block_height: block_height as u64, + block_height: block_height, core_chain_locked_height: core_chain_locked_height as u64, - time_ms: time_ms as u64, + time_ms: time_ms, protocol_version: protocol_version as u64 as ProtocolVersion, }; Ok(inner.into()) @@ -77,22 +77,22 @@ impl MetadataWasm { } #[wasm_bindgen(js_name=getBlockHeight)] - pub fn block_height(&self) -> f64 { - self.0.block_height as f64 + pub fn block_height(&self) -> u64 { + self.0.block_height } #[wasm_bindgen(js_name=getCoreChainLockedHeight)] - pub fn core_chain_locked_height(&self) -> f64 { - self.0.core_chain_locked_height as f64 + pub fn core_chain_locked_height(&self) -> u32 { + self.0.core_chain_locked_height as u32 } #[wasm_bindgen(js_name=getTimeMs)] - pub fn time_ms(&self) -> f64 { - self.0.time_ms as f64 + pub fn time_ms(&self) -> u64 { + self.0.time_ms as u64 } #[wasm_bindgen(js_name=getProtocolVersion)] - pub fn protocol_version(&self) -> f64 { - self.0.protocol_version as f64 + pub fn protocol_version(&self) -> u32 { + self.0.protocol_version as u32 } }