@@ -83,7 +83,11 @@ __Z_INLINE parser_error_t parser_getType(const parser_context_t *ctx, char *outV
8383 snprintf (outVal , outValLen , "Reclaim escrow" );
8484 return parser_ok ;
8585 case stakingAmendCommissionSchedule :
86+ #if defined(TARGET_NANOS )
87+ snprintf (outVal , outValLen , "Amend commission schedule" );
88+ #else
8689 snprintf (outVal , outValLen , "Amend commission schedule" );
90+ #endif
8791 return parser_ok ;
8892 case registryDeregisterEntity :
8993 snprintf (outVal , outValLen , "Deregister Entity" );
@@ -145,6 +149,35 @@ __Z_INLINE parser_error_t parser_printQuantity(const quantity_t *q,
145149 return parser_ok ;
146150}
147151
152+ __Z_INLINE parser_error_t parser_printShares (const quantity_t * q ,
153+ char * outVal , uint16_t outValLen ,
154+ uint8_t pageIdx , uint8_t * pageCount ) {
155+ // upperbound 2**(64*8)
156+ // results in 155 decimal digits => max 78 bcd bytes
157+
158+ // Too many digits, we cannot format this
159+ LESS_THAN_64_DIGIT (q -> len )
160+
161+ char bignum [160 ];
162+ union {
163+ // overlapping arrays to avoid excessive stack usage. Do not use at the same time
164+ uint8_t bcd [80 ];
165+ char output [160 ];
166+ } overlapped ;
167+
168+ MEMZERO (overlapped .bcd , sizeof (overlapped .bcd ));
169+ MEMZERO (bignum , sizeof (bignum ));
170+
171+ if (!format_quantity (q , overlapped .bcd , sizeof (overlapped .bcd ), bignum , sizeof (bignum ))) {
172+ return parser_unexpected_value ;
173+ }
174+
175+ fpstr_to_str (overlapped .output , sizeof (overlapped .output ), bignum , 0 );
176+ number_inplace_trimming (overlapped .output );
177+ pageString (outVal , outValLen , overlapped .output , pageIdx , pageCount );
178+ return parser_ok ;
179+ }
180+
148181__Z_INLINE parser_error_t parser_printRate (const quantity_t * q ,
149182 char * outVal , uint16_t outValLen ,
150183 uint8_t pageIdx , uint8_t * pageCount ) {
@@ -279,7 +312,7 @@ __Z_INLINE parser_error_t parser_getItemTx(const parser_context_t *ctx,
279312 }
280313 case 1 : {
281314 snprintf (outKey , outKeyLen , "Amount" );
282- return parser_printQuantity (& parser_tx_obj .oasis .tx .body .stakingTransfer .xfer_tokens ,
315+ return parser_printQuantity (& parser_tx_obj .oasis .tx .body .stakingTransfer .amount ,
283316 outVal , outValLen , pageIdx , pageCount );
284317 }
285318 case 2 : {
@@ -296,7 +329,7 @@ __Z_INLINE parser_error_t parser_getItemTx(const parser_context_t *ctx,
296329 }
297330 case 4 : {
298331 snprintf (outKey , outKeyLen , "Address" );
299- return parser_printAddress (& parser_tx_obj .oasis .tx .body .stakingTransfer .xfer_to ,
332+ return parser_printAddress (& parser_tx_obj .oasis .tx .body .stakingTransfer .to ,
300333 outVal , outValLen , pageIdx , pageCount );
301334 }
302335 }
@@ -310,7 +343,7 @@ __Z_INLINE parser_error_t parser_getItemTx(const parser_context_t *ctx,
310343 }
311344 case 1 : {
312345 snprintf (outKey , outKeyLen , "Amount" );
313- return parser_printQuantity (& parser_tx_obj .oasis .tx .body .stakingBurn .burn_tokens ,
346+ return parser_printQuantity (& parser_tx_obj .oasis .tx .body .stakingBurn .amount ,
314347 outVal , outValLen , pageIdx , pageCount );
315348 }
316349 case 2 : {
@@ -336,7 +369,7 @@ __Z_INLINE parser_error_t parser_getItemTx(const parser_context_t *ctx,
336369 }
337370 case 1 : {
338371 snprintf (outKey , outKeyLen , "Amount" );
339- return parser_printQuantity (& parser_tx_obj .oasis .tx .body .stakingEscrow .escrow_tokens ,
372+ return parser_printQuantity (& parser_tx_obj .oasis .tx .body .stakingEscrow .amount ,
340373 outVal , outValLen , pageIdx , pageCount );
341374 }
342375 case 2 : {
@@ -353,7 +386,7 @@ __Z_INLINE parser_error_t parser_getItemTx(const parser_context_t *ctx,
353386 }
354387 case 4 : {
355388 snprintf (outKey , outKeyLen , "Address" );
356- return parser_printAddress (& parser_tx_obj .oasis .tx .body .stakingEscrow .escrow_account ,
389+ return parser_printAddress (& parser_tx_obj .oasis .tx .body .stakingEscrow .account ,
357390 outVal , outValLen , pageIdx , pageCount );
358391 }
359392 }
@@ -367,8 +400,8 @@ __Z_INLINE parser_error_t parser_getItemTx(const parser_context_t *ctx,
367400 }
368401 case 1 : {
369402 snprintf (outKey , outKeyLen , "Shares" );
370- return parser_printQuantity (& parser_tx_obj .oasis .tx .body .stakingReclaimEscrow .reclaim_shares ,
371- outVal , outValLen , pageIdx , pageCount );
403+ return parser_printShares (& parser_tx_obj .oasis .tx .body .stakingReclaimEscrow .shares ,
404+ outVal , outValLen , pageIdx , pageCount );
372405 }
373406 case 2 : {
374407 // ??? displayIdx == 1 && parser_tx_obj.oasis.tx.has_fee
@@ -384,7 +417,7 @@ __Z_INLINE parser_error_t parser_getItemTx(const parser_context_t *ctx,
384417 }
385418 case 4 : {
386419 snprintf (outKey , outKeyLen , "Address" );
387- return parser_printAddress (& parser_tx_obj .oasis .tx .body .stakingReclaimEscrow .escrow_account ,
420+ return parser_printAddress (& parser_tx_obj .oasis .tx .body .stakingReclaimEscrow .account ,
388421 outVal , outValLen , pageIdx , pageCount );
389422 }
390423 }
0 commit comments