File tree Expand file tree Collapse file tree 6 files changed +33
-16
lines changed
Batch/DocumentTransitions Expand file tree Collapse file tree 6 files changed +33
-16
lines changed Original file line number Diff line number Diff line change @@ -25,8 +25,8 @@ export class DocumentCreateTransitionWASM {
2525 )
2626 }
2727
28- get data ( ) : object {
29- return valueFromDynamicValue ( this . _rawDocumentCreateTransition . data )
28+ get data ( ) : any {
29+ return valueFromDynamicValue ( this . _rawDocumentCreateTransition . data , true )
3030 }
3131
3232 set data ( value : object ) {
Original file line number Diff line number Diff line change @@ -22,8 +22,8 @@ export class DocumentReplaceTransitionWASM {
2222 )
2323 }
2424
25- get data ( ) : object {
26- return valueFromDynamicValue ( this . _rawDocumentReplaceTransition . data )
25+ get data ( ) : any {
26+ return valueFromDynamicValue ( this . _rawDocumentReplaceTransition . data , true )
2727 }
2828
2929 set data ( value : object ) {
Original file line number Diff line number Diff line change @@ -120,11 +120,11 @@ export class DataContractWASM {
120120 this . _rawDataContract . keywords = value
121121 }
122122
123- getSchemas ( ) : object {
124- return valueFromDynamicValue ( this . _rawDataContract . getSchemas ( ) )
123+ getSchemas ( ) : any {
124+ return valueFromDynamicValue ( this . _rawDataContract . getSchemas ( ) , true )
125125 }
126126
127- getConfig ( ) : object {
127+ getConfig ( ) : any {
128128 return valueFromDynamicValue ( this . _rawDataContract . getConfig ( ) )
129129 }
130130
@@ -144,11 +144,11 @@ export class DataContractWASM {
144144 return this . _rawDataContract . base64 ( valueToDynamicValue ( platformVersion ) )
145145 }
146146
147- toJSON ( platformVersion : PlatformVersionLike ) : object {
147+ toJSON ( platformVersion : PlatformVersionLike ) : any {
148148 return this . _rawDataContract . toJson ( valueToDynamicValue ( platformVersion ) )
149149 }
150150
151- toValue ( platformVersion : PlatformVersionLike ) : object {
151+ toValue ( platformVersion : PlatformVersionLike ) : any {
152152 return valueFromDynamicValue ( this . _rawDataContract . toValue ( valueToDynamicValue ( platformVersion ) ) ) as object
153153 }
154154
Original file line number Diff line number Diff line change @@ -61,8 +61,8 @@ export class DocumentWASM {
6161 this . _rawDocument . ownerId = prepareIdentifierValue ( value )
6262 }
6363
64- get properties ( ) : object {
65- return valueFromDynamicValue ( this . _rawDocument . properties )
64+ get properties ( ) : any {
65+ return valueFromDynamicValue ( this . _rawDocument . properties , true )
6666 }
6767
6868 set properties ( value : object ) {
Original file line number Diff line number Diff line change @@ -40,20 +40,25 @@ export function valueToDynamicValue (value: any): DynamicValue {
4040 }
4141}
4242
43- export function valueFromDynamicValue ( dynamicValue : DynamicValue ) : any {
43+ export function valueFromDynamicValue ( dynamicValue : DynamicValue , jsonLike : boolean = false ) : any {
4444 if ( dynamicValue . value instanceof dppProvider . dpp . DynamicValue ) {
45- return valueToDynamicValue ( dynamicValue . value )
45+ return valueFromDynamicValue ( dynamicValue . value , jsonLike )
4646 } else if ( dynamicValue . isBigInt ( ) ) {
47- return BigInt ( dynamicValue . value )
47+ const num = BigInt ( dynamicValue . value )
48+ if ( jsonLike && num < BigInt ( Number . MAX_SAFE_INTEGER ) && num > BigInt ( Number . MIN_SAFE_INTEGER ) ) {
49+ return Number ( dynamicValue . value )
50+ } else {
51+ return num
52+ }
4853 } else if ( Array . isArray ( dynamicValue . value ) ) {
49- return dynamicValue . value . map ( valueFromDynamicValue )
54+ return dynamicValue . value . map ( v => valueFromDynamicValue ( v , jsonLike ) )
5055 } else if ( typeof dynamicValue . value === 'object' && ! ( dynamicValue . value instanceof Uint8Array ) && dynamicValue . value !== null ) {
5156 const obj : { [ key : string ] : any } = { }
5257
5358 const keys : string [ ] = Object . keys ( dynamicValue . value )
5459
5560 for ( const key of keys ) {
56- obj [ key ] = valueFromDynamicValue ( dynamicValue . value [ key ] )
61+ obj [ key ] = valueFromDynamicValue ( dynamicValue . value [ key ] , jsonLike )
5762 }
5863
5964 return obj
Original file line number Diff line number Diff line change @@ -111,4 +111,16 @@ describe('DynamicValue', () => {
111111 expect ( dynValue . value . stringInt . getType ( ) ) . toStrictEqual ( 'String' )
112112 expect ( dynValue . value . stringFloat . getType ( ) ) . toStrictEqual ( 'String' )
113113 } )
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+ } )
114126} )
You can’t perform that action at this time.
0 commit comments