pshenmic-dpp 2.0.0-dev.5 → 2.0.0-dev.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,7 +8,7 @@ export declare class DocumentCreateTransitionWASM {
8
8
  /** @private **/
9
9
  _rawDocumentCreateTransition: DocumentCreateTransitionNAPI;
10
10
  constructor(document: DocumentWASM, identityContractNonce: bigint, prefundedVotingBalance?: PrefundedVotingBalanceWASM, tokenPaymentInfo?: TokenPaymentInfoWASM);
11
- get data(): object;
11
+ get data(): any;
12
12
  set data(value: object);
13
13
  get base(): DocumentBaseTransitionWASM;
14
14
  set base(value: DocumentBaseTransitionWASM);
@@ -10,7 +10,7 @@ export class DocumentCreateTransitionWASM {
10
10
  this._rawDocumentCreateTransition = new dppProvider.dpp.DocumentCreateTransitionNAPI(document._rawDocument, identityContractNonce.toString(), prefundedVotingBalance?._rawPrefundedVotingBalance, tokenPaymentInfo?._rawTokenPaymentInfo);
11
11
  }
12
12
  get data() {
13
- return valueFromDynamicValue(this._rawDocumentCreateTransition.data);
13
+ return valueFromDynamicValue(this._rawDocumentCreateTransition.data, true);
14
14
  }
15
15
  set data(value) {
16
16
  this._rawDocumentCreateTransition.data = valueToDynamicValue(value);
@@ -7,7 +7,7 @@ export declare class DocumentReplaceTransitionWASM {
7
7
  /** @private **/
8
8
  _rawDocumentReplaceTransition: DocumentReplaceTransitionNAPI;
9
9
  constructor(document: DocumentWASM, identityContractNonce: bigint, tokenPaymentInfo?: TokenPaymentInfoWASM);
10
- get data(): object;
10
+ get data(): any;
11
11
  set data(value: object);
12
12
  get base(): DocumentBaseTransitionWASM;
13
13
  set base(value: DocumentBaseTransitionWASM);
@@ -9,7 +9,7 @@ export class DocumentReplaceTransitionWASM {
9
9
  this._rawDocumentReplaceTransition = new dppProvider.dpp.DocumentReplaceTransitionNAPI(document._rawDocument, identityContractNonce.toString(), tokenPaymentInfo?._rawTokenPaymentInfo);
10
10
  }
11
11
  get data() {
12
- return valueFromDynamicValue(this._rawDocumentReplaceTransition.data);
12
+ return valueFromDynamicValue(this._rawDocumentReplaceTransition.data, true);
13
13
  }
14
14
  set data(value) {
15
15
  this._rawDocumentReplaceTransition.data = valueToDynamicValue(value);
@@ -21,14 +21,14 @@ export declare class DataContractWASM {
21
21
  set description(value: string | undefined);
22
22
  get keywords(): string[];
23
23
  set keywords(value: string[]);
24
- getSchemas(): object;
25
- getConfig(): object;
24
+ getSchemas(): any;
25
+ getConfig(): any;
26
26
  setConfig(value: object, platformVersion?: PlatformVersionLike): void;
27
27
  bytes(platformVersion: PlatformVersionLike): Uint8Array;
28
28
  hex(platformVersion: PlatformVersionLike): string;
29
29
  base64(platformVersion: PlatformVersionLike): string;
30
- toJSON(platformVersion: PlatformVersionLike): object;
31
- toValue(platformVersion: PlatformVersionLike): object;
30
+ toJSON(platformVersion: PlatformVersionLike): any;
31
+ toValue(platformVersion: PlatformVersionLike): any;
32
32
  static fromValue(value: object, fullValidation: boolean, platformVersion?: PlatformVersionLike): DataContractWASM;
33
33
  static fromBytes(bytes: Uint8Array, fullValidation: boolean, platformVersion?: PlatformVersionLike): DataContractWASM;
34
34
  static fromHex(hex: string, fullValidation: boolean, platformVersion?: PlatformVersionLike): DataContractWASM;
@@ -79,7 +79,7 @@ export class DataContractWASM {
79
79
  this._rawDataContract.keywords = value;
80
80
  }
81
81
  getSchemas() {
82
- return valueFromDynamicValue(this._rawDataContract.getSchemas());
82
+ return valueFromDynamicValue(this._rawDataContract.getSchemas(), true);
83
83
  }
84
84
  getConfig() {
85
85
  return valueFromDynamicValue(this._rawDataContract.getConfig());
@@ -14,7 +14,7 @@ export declare class DocumentWASM {
14
14
  set dataContractId(value: IdentifierLike);
15
15
  get ownerId(): IdentifierWASM;
16
16
  set ownerId(value: IdentifierLike);
17
- get properties(): object;
17
+ get properties(): any;
18
18
  set properties(value: object);
19
19
  get revision(): bigint | undefined;
20
20
  set revision(value: bigint | undefined);
@@ -32,7 +32,7 @@ export class DocumentWASM {
32
32
  this._rawDocument.ownerId = prepareIdentifierValue(value);
33
33
  }
34
34
  get properties() {
35
- return valueFromDynamicValue(this._rawDocument.properties);
35
+ return valueFromDynamicValue(this._rawDocument.properties, true);
36
36
  }
37
37
  set properties(value) {
38
38
  this._rawDocument.properties = valueToDynamicValue(value);
@@ -1,5 +1,5 @@
1
1
  import type { DynamicValue, IdentifierLikeNAPI } from '../../binaries/bindingsTypes.js';
2
2
  import { IdentifierLike } from './types.js';
3
3
  export declare function valueToDynamicValue(value: any): DynamicValue;
4
- export declare function valueFromDynamicValue(dynamicValue: DynamicValue): any;
4
+ export declare function valueFromDynamicValue(dynamicValue: DynamicValue, jsonLike?: boolean): any;
5
5
  export declare function prepareIdentifierValue(identifier: IdentifierLike): IdentifierLikeNAPI;
@@ -43,21 +43,27 @@ export function valueToDynamicValue(value) {
43
43
  return new dppProvider.dpp.DynamicValue(value);
44
44
  }
45
45
  }
46
- export function valueFromDynamicValue(dynamicValue) {
46
+ export function valueFromDynamicValue(dynamicValue, jsonLike = false) {
47
47
  if (dynamicValue.value instanceof dppProvider.dpp.DynamicValue) {
48
- return valueToDynamicValue(dynamicValue.value);
48
+ return valueFromDynamicValue(dynamicValue.value, jsonLike);
49
49
  }
50
50
  else if (dynamicValue.isBigInt()) {
51
- return BigInt(dynamicValue.value);
51
+ const num = BigInt(dynamicValue.value);
52
+ if (jsonLike && num < BigInt(Number.MAX_SAFE_INTEGER) && num > BigInt(Number.MIN_SAFE_INTEGER)) {
53
+ return Number(dynamicValue.value);
54
+ }
55
+ else {
56
+ return num;
57
+ }
52
58
  }
53
59
  else if (Array.isArray(dynamicValue.value)) {
54
- return dynamicValue.value.map(valueFromDynamicValue);
60
+ return dynamicValue.value.map(v => valueFromDynamicValue(v, jsonLike));
55
61
  }
56
62
  else if (typeof dynamicValue.value === 'object' && !(dynamicValue.value instanceof Uint8Array) && dynamicValue.value !== null) {
57
63
  const obj = {};
58
64
  const keys = Object.keys(dynamicValue.value);
59
65
  for (const key of keys) {
60
- obj[key] = valueFromDynamicValue(dynamicValue.value[key]);
66
+ obj[key] = valueFromDynamicValue(dynamicValue.value[key], jsonLike);
61
67
  }
62
68
  return obj;
63
69
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pshenmic-dpp",
3
- "version": "2.0.0-dev.5",
3
+ "version": "2.0.0-dev.6",
4
4
  "main": "dist/src/wasm.js",
5
5
  "types": "dist/src/wasm.d.ts",
6
6
  "react-native": "./dist/src/react-native.js",
@@ -111,4 +111,16 @@ describe('DynamicValue', () => {
111
111
  expect(dynValue.value.stringInt.getType()).toStrictEqual('String')
112
112
  expect(dynValue.value.stringFloat.getType()).toStrictEqual('String')
113
113
  })
114
+
115
+ describe('should decode document from state transition in jsonLike', function () {
116
+ const stateTransition = dpp.StateTransitionWASM.fromBase64('AgHv88sfWzscuW2Ob/0v5d+EgqmWG7ZIvlQG7mHWBH7z9gEAAAAB7JH7W+JkM0Vne2U1zlWYVeQNzRPTpdiWRfsgfwNS2UoCCGJsb2dQb3N0KBdMgeznVQ1smUXVFNPfE2PC379wpWVH8cdu2ilzeI0Ah/i2xfrKCm5ACQAbEQkSc+GRUkdLor4Eu7Vzf6oRc9UHBmJsb2dJZAogdhC4nVm3ufPCgdfoOKXtnhqwg7O3axyTS9WB3EFvNBYPY29tbWVudHNFbmFibGVkEwEHY29udGVudAr7AUh4nM2TTWrDMBCFrxK0jkCyJMvqLnRV6A1KFhpplJgotrEVaAi+e8clpdBuvCnNcn7ezPvQ6O3G2siemKgNSGETT8ZarhUm7hpX8yStEpVCk6xlW1auA1L34Ed/GP1wpNQw9sPEnm6s4Ht57nM/UkPE5C+5UBl8OB3G/tLF37VFscvtoTtjV6iSMRU2b1nou/KZIXf3jUvrXUHRrosbv8ltKRk30JbNl2LLpnLNuPiZ5z1NOrY5jtjRqP28vbM656zTleagJHCNXnIQiUIpgozGg2/0N2s4Yji9tlN5KXj+A97FJG1AcpZ8nnANv1wHGo22ASrFXQDJde0SBzDIdQBVRQEoDDw2aLUONPkKtfF0s9bR9bqGkJW3PNYCg/FOgIqPDarWgQrRxKapBXdCJ3pR7TjUVnJrpAo6yhSc/4dv+tPu/gNBt2qtC3B1Ymxpc2hlZEF0Av0AAAGcptJlIwRzbHVnEhV0aGlzLWlzLW15LWZpcnN0LXBvc3QIc3VidGl0bGUSD1dpdGggYSBzdWJ0aXRsZQV0aXRsZRIVVGhpcyBpcyBteSBmaXJzdCBwb3N0AAABQR+H40MbUEmFXQbTPcwy9vMD8EiTwDzMpW3YIkfSIDvHij5ZIAVvqm0ZJScJzKV7EnRUi/f1tZ/wFJfd1+LDtpps')
117
+
118
+ const batch = dpp.BatchTransitionWASM.fromStateTransition(stateTransition)
119
+
120
+ const transition = batch.transitions[0].toTransition() as dpp.DocumentTransitionWASM
121
+
122
+ const publishedAt = transition.createTransition.data.publishedAt
123
+
124
+ expect(typeof publishedAt).toEqual('number')
125
+ })
114
126
  })