From ee79545f9f21929f622d3511df7e81c0a40198d2 Mon Sep 17 00:00:00 2001 From: pshenmic Date: Sat, 1 Feb 2025 19:29:35 +0700 Subject: [PATCH] feat(sdk): fix metadata bigint parsing --- .../getDataContractHistoryFactory.js | 6 +++--- .../SDK/Client/Platform/Fetcher/Fetcher.ts | 10 +++++----- .../Client/Platform/methods/contracts/get.ts | 12 +++++------ .../Platform/methods/contracts/history.ts | 9 ++++----- .../Client/Platform/methods/documents/get.ts | 12 +++++------ .../Client/Platform/methods/identities/get.ts | 12 +++++------ packages/wasm-dpp/src/metadata.rs | 20 +++---------------- 7 files changed, 33 insertions(+), 48 deletions(-) diff --git a/packages/js-dapi-client/lib/methods/platform/getDataContractHistory/getDataContractHistoryFactory.js b/packages/js-dapi-client/lib/methods/platform/getDataContractHistory/getDataContractHistoryFactory.js index 18120ca106d..1059c74bd58 100644 --- a/packages/js-dapi-client/lib/methods/platform/getDataContractHistory/getDataContractHistoryFactory.js +++ b/packages/js-dapi-client/lib/methods/platform/getDataContractHistory/getDataContractHistoryFactory.js @@ -18,7 +18,7 @@ function getDataContractHistoryFactory(grpcTransport) { * Fetch Data Contract by id * @typedef {getDataContractHistory} * @param {Buffer} contractId - * @param {number} [startAtMs] + * @param {bigint} [startAtMs] * @param {number} [limit] * @param {number} [offset] * @param {DAPIClientOptions & {prove: boolean}} [options] @@ -26,7 +26,7 @@ function getDataContractHistoryFactory(grpcTransport) { */ async function getDataContractHistory( contractId, - startAtMs = 0, + startAtMs = BigInt(0), limit = 10, offset = 0, options = {}, @@ -45,7 +45,7 @@ function getDataContractHistoryFactory(grpcTransport) { getDataContractHistoryRequest.setV0( new GetDataContractHistoryRequestV0() .setId(contractId) - .setStartAtMs(startAtMs) + .setStartAtMs(startAtMs.toString()) .setLimit(new UInt32Value([limit])) .setOffset(new UInt32Value([offset])) .setProve(!!options.prove), diff --git a/packages/js-dash-sdk/src/SDK/Client/Platform/Fetcher/Fetcher.ts b/packages/js-dash-sdk/src/SDK/Client/Platform/Fetcher/Fetcher.ts index 160a060c569..3631ab88f18 100644 --- a/packages/js-dash-sdk/src/SDK/Client/Platform/Fetcher/Fetcher.ts +++ b/packages/js-dash-sdk/src/SDK/Client/Platform/Fetcher/Fetcher.ts @@ -128,14 +128,14 @@ class Fetcher { /** * Fetches data contract by it's ID - * @param id - * @param startAMs - * @param limit - * @param offset + * @param id {Identifier} + * @param startAMs {bigint} + * @param limit {number} + * @param offset {number} */ public async fetchDataContractHistory( id: Identifier, - startAMs: number, + startAMs: bigint, limit: number, offset: number, ): Promise { diff --git a/packages/js-dash-sdk/src/SDK/Client/Platform/methods/contracts/get.ts b/packages/js-dash-sdk/src/SDK/Client/Platform/methods/contracts/get.ts index 651718523cc..6238b982181 100644 --- a/packages/js-dash-sdk/src/SDK/Client/Platform/methods/contracts/get.ts +++ b/packages/js-dash-sdk/src/SDK/Client/Platform/methods/contracts/get.ts @@ -47,12 +47,12 @@ export async function get(this: Platform, identifier: ContractIdentifier): Promi let metadata; const responseMetadata = dataContractResponse.getMetadata(); if (responseMetadata) { - metadata = new Metadata({ - blockHeight: responseMetadata.getHeight(), - coreChainLockedHeight: responseMetadata.getCoreChainLockedHeight(), - timeMs: responseMetadata.getTimeMs(), - protocolVersion: responseMetadata.getProtocolVersion(), - }); + metadata = new Metadata( + responseMetadata.getHeight(), + responseMetadata.getCoreChainLockedHeight(), + responseMetadata.getTimeMs(), + responseMetadata.getProtocolVersion(), + ); } contract.setMetadata(metadata); diff --git a/packages/js-dash-sdk/src/SDK/Client/Platform/methods/contracts/history.ts b/packages/js-dash-sdk/src/SDK/Client/Platform/methods/contracts/history.ts index 6faa7fab82f..08cc089dc5d 100644 --- a/packages/js-dash-sdk/src/SDK/Client/Platform/methods/contracts/history.ts +++ b/packages/js-dash-sdk/src/SDK/Client/Platform/methods/contracts/history.ts @@ -1,4 +1,3 @@ -// @ts-ignore import { DataContract, Identifier } from '@dashevo/wasm-dpp'; import { GetDataContractHistoryResponse, @@ -13,15 +12,15 @@ declare type ContractIdentifier = string | Identifier; * Get contracts from the platform * * @param {ContractIdentifier} identifier - identifier of the contract to fetch - * @param startAtMs - * @param limit - * @param offset + * @param {bigint} startAtMs + * @param {number} limit + * @param {number} offset * @returns contracts */ export async function history( this: Platform, identifier: ContractIdentifier, - startAtMs: number, + startAtMs: bigint, limit: number, offset: number, ): Promise { diff --git a/packages/js-dash-sdk/src/SDK/Client/Platform/methods/documents/get.ts b/packages/js-dash-sdk/src/SDK/Client/Platform/methods/documents/get.ts index 7a8d4fcfd50..1b1f7d06635 100644 --- a/packages/js-dash-sdk/src/SDK/Client/Platform/methods/documents/get.ts +++ b/packages/js-dash-sdk/src/SDK/Client/Platform/methods/documents/get.ts @@ -152,12 +152,12 @@ export async function get(this: Platform, typeLocator: string, opts: QueryOption let metadata; const responseMetadata = documentsResponse.getMetadata(); if (responseMetadata) { - metadata = new Metadata({ - blockHeight: responseMetadata.getHeight(), - coreChainLockedHeight: responseMetadata.getCoreChainLockedHeight(), - timeMs: responseMetadata.getTimeMs(), - protocolVersion: responseMetadata.getProtocolVersion(), - }); + metadata = new Metadata( + responseMetadata.getHeight(), + responseMetadata.getCoreChainLockedHeight(), + responseMetadata.getTimeMs(), + responseMetadata.getProtocolVersion(), + ); } document.setMetadata(metadata); diff --git a/packages/js-dash-sdk/src/SDK/Client/Platform/methods/identities/get.ts b/packages/js-dash-sdk/src/SDK/Client/Platform/methods/identities/get.ts index 7824f5f5bbd..8c572f79bac 100644 --- a/packages/js-dash-sdk/src/SDK/Client/Platform/methods/identities/get.ts +++ b/packages/js-dash-sdk/src/SDK/Client/Platform/methods/identities/get.ts @@ -31,12 +31,12 @@ export async function get(this: Platform, id: Identifier | string): Promise let metadata; const responseMetadata = identityResponse.getMetadata(); if (responseMetadata) { - metadata = new Metadata({ - blockHeight: responseMetadata.getHeight(), - coreChainLockedHeight: responseMetadata.getCoreChainLockedHeight(), - timeMs: responseMetadata.getTimeMs(), - protocolVersion: responseMetadata.getProtocolVersion(), - }); + metadata = new Metadata( + responseMetadata.getHeight(), + responseMetadata.getCoreChainLockedHeight(), + responseMetadata.getTimeMs(), + responseMetadata.getProtocolVersion(), + ); } identity.setMetadata(metadata); diff --git a/packages/wasm-dpp/src/metadata.rs b/packages/wasm-dpp/src/metadata.rs index d9d5b2aafee..c1c95034e79 100644 --- a/packages/wasm-dpp/src/metadata.rs +++ b/packages/wasm-dpp/src/metadata.rs @@ -34,25 +34,11 @@ impl Into for MetadataWasm { #[wasm_bindgen(js_class=Metadata)] impl MetadataWasm { #[wasm_bindgen(constructor)] - pub fn new(options: JsValue) -> Result { - let metadata_options = options.with_serde_to_json_value()?; - let block_height = metadata_options - .get_u64("blockHeight") - .map_err(|e| JsError::new(&e.to_string()))?; - let core_chain_locked_height = metadata_options - .get_u32("coreChainLockedHeight") - .map_err(|e| JsError::new(&e.to_string()))?; - let time_ms = metadata_options - .get_u64("timeMs") - .map_err(|e| JsError::new(&e.to_string()))?; - let protocol_version = metadata_options - .get_u32("protocolVersion") - .map_err(|e| JsError::new(&e.to_string()))?; - + pub fn new(block_height: u64, core_chain_locked_height: u32, time_ms: u64, protocol_version:u32) -> Result { let inner = Metadata { - block_height: block_height, + block_height, core_chain_locked_height: core_chain_locked_height as u64, - time_ms: time_ms, + time_ms, protocol_version: protocol_version as u64 as ProtocolVersion, }; Ok(inner.into())