@fintekkers/ledger-models 0.4.42 → 0.4.44

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.
Files changed (254) hide show
  1. package/node/fintekkers/models/portfolio/portfolio_pb.d.ts +7 -15
  2. package/node/fintekkers/models/portfolio/portfolio_pb.js +35 -132
  3. package/node/fintekkers/models/position/position_filter_pb.d.ts +7 -15
  4. package/node/fintekkers/models/position/position_filter_pb.js +35 -132
  5. package/node/fintekkers/models/position/position_pb.d.ts +7 -15
  6. package/node/fintekkers/models/position/position_pb.js +35 -132
  7. package/node/fintekkers/models/price/price_pb.d.ts +7 -15
  8. package/node/fintekkers/models/price/price_pb.js +35 -132
  9. package/node/fintekkers/models/security/bond/issuance_pb.d.ts +7 -15
  10. package/node/fintekkers/models/security/bond/issuance_pb.js +35 -132
  11. package/node/fintekkers/models/security/identifier/identifier_pb.d.ts +7 -15
  12. package/node/fintekkers/models/security/identifier/identifier_pb.js +35 -132
  13. package/node/fintekkers/models/security/index_composition_pb.d.ts +7 -15
  14. package/node/fintekkers/models/security/index_composition_pb.js +35 -132
  15. package/node/fintekkers/models/security/security_pb.d.ts +7 -15
  16. package/node/fintekkers/models/security/security_pb.js +35 -132
  17. package/node/fintekkers/models/security/security_pb.test.js +4 -8
  18. package/node/fintekkers/models/security/security_pb.test.js.map +1 -1
  19. package/node/fintekkers/models/security/security_pb.test.ts +4 -5
  20. package/node/fintekkers/models/security/tenor_pb.d.ts +7 -15
  21. package/node/fintekkers/models/security/tenor_pb.js +35 -132
  22. package/node/fintekkers/models/strategy/strategy_allocation_pb.d.ts +7 -15
  23. package/node/fintekkers/models/strategy/strategy_allocation_pb.js +35 -132
  24. package/node/fintekkers/models/strategy/strategy_pb.d.ts +7 -15
  25. package/node/fintekkers/models/strategy/strategy_pb.js +35 -132
  26. package/node/fintekkers/models/transaction/transaction_pb.d.ts +7 -15
  27. package/node/fintekkers/models/transaction/transaction_pb.js +35 -132
  28. package/node/fintekkers/models/util/api/api_key_pb.d.ts +7 -15
  29. package/node/fintekkers/models/util/api/api_key_pb.js +35 -132
  30. package/node/fintekkers/models/util/date_range_pb.d.ts +7 -15
  31. package/node/fintekkers/models/util/date_range_pb.js +35 -132
  32. package/node/fintekkers/models/util/decimal_value_pb.d.ts +0 -5
  33. package/node/fintekkers/models/util/decimal_value_pb.js +0 -30
  34. package/node/fintekkers/models/util/lock/node_partition_pb.d.ts +7 -15
  35. package/node/fintekkers/models/util/lock/node_partition_pb.js +35 -132
  36. package/node/fintekkers/models/util/lock/node_state_pb.d.ts +7 -15
  37. package/node/fintekkers/models/util/lock/node_state_pb.js +35 -132
  38. package/node/fintekkers/models/util/object_type_pb.d.ts +0 -3
  39. package/node/fintekkers/models/util/object_type_pb.js +0 -28
  40. package/node/fintekkers/models/util/version_grpc_pb.js +1 -0
  41. package/node/fintekkers/models/util/version_pb.d.ts +33 -0
  42. package/node/fintekkers/models/util/version_pb.js +236 -0
  43. package/node/fintekkers/requests/index_composition/create_index_composition_request_pb.d.ts +13 -30
  44. package/node/fintekkers/requests/index_composition/create_index_composition_request_pb.js +68 -264
  45. package/node/fintekkers/requests/index_composition/get_index_composition_request_pb.d.ts +13 -30
  46. package/node/fintekkers/requests/index_composition/get_index_composition_request_pb.js +68 -264
  47. package/node/fintekkers/requests/portfolio/create_portfolio_request_pb.d.ts +7 -15
  48. package/node/fintekkers/requests/portfolio/create_portfolio_request_pb.js +35 -132
  49. package/node/fintekkers/requests/portfolio/create_portfolio_response_pb.d.ts +7 -15
  50. package/node/fintekkers/requests/portfolio/create_portfolio_response_pb.js +35 -132
  51. package/node/fintekkers/requests/portfolio/query_portfolio_request_pb.d.ts +7 -15
  52. package/node/fintekkers/requests/portfolio/query_portfolio_request_pb.js +35 -132
  53. package/node/fintekkers/requests/portfolio/query_portfolio_response_pb.d.ts +7 -15
  54. package/node/fintekkers/requests/portfolio/query_portfolio_response_pb.js +35 -132
  55. package/node/fintekkers/requests/position/query_position_request_pb.d.ts +7 -15
  56. package/node/fintekkers/requests/position/query_position_request_pb.js +35 -132
  57. package/node/fintekkers/requests/position/query_position_response_pb.d.ts +7 -15
  58. package/node/fintekkers/requests/position/query_position_response_pb.js +35 -132
  59. package/node/fintekkers/requests/price/create_price_request_pb.d.ts +7 -15
  60. package/node/fintekkers/requests/price/create_price_request_pb.js +35 -132
  61. package/node/fintekkers/requests/price/create_price_response_pb.d.ts +7 -15
  62. package/node/fintekkers/requests/price/create_price_response_pb.js +35 -132
  63. package/node/fintekkers/requests/price/query_price_request_pb.d.ts +7 -15
  64. package/node/fintekkers/requests/price/query_price_request_pb.js +35 -132
  65. package/node/fintekkers/requests/price/query_price_response_pb.d.ts +7 -15
  66. package/node/fintekkers/requests/price/query_price_response_pb.js +35 -132
  67. package/node/fintekkers/requests/security/create_security_request_pb.d.ts +7 -15
  68. package/node/fintekkers/requests/security/create_security_request_pb.js +35 -132
  69. package/node/fintekkers/requests/security/create_security_response_pb.d.ts +7 -15
  70. package/node/fintekkers/requests/security/create_security_response_pb.js +35 -132
  71. package/node/fintekkers/requests/security/get_field_values_request_pb.d.ts +7 -15
  72. package/node/fintekkers/requests/security/get_field_values_request_pb.js +35 -132
  73. package/node/fintekkers/requests/security/get_field_values_response_pb.d.ts +7 -15
  74. package/node/fintekkers/requests/security/get_field_values_response_pb.js +35 -132
  75. package/node/fintekkers/requests/security/get_fields_response_pb.d.ts +7 -15
  76. package/node/fintekkers/requests/security/get_fields_response_pb.js +35 -132
  77. package/node/fintekkers/requests/security/query_security_request_pb.d.ts +7 -15
  78. package/node/fintekkers/requests/security/query_security_request_pb.js +35 -132
  79. package/node/fintekkers/requests/security/query_security_response_pb.d.ts +7 -15
  80. package/node/fintekkers/requests/security/query_security_response_pb.js +35 -132
  81. package/node/fintekkers/requests/transaction/create_transaction_request_pb.d.ts +7 -15
  82. package/node/fintekkers/requests/transaction/create_transaction_request_pb.js +35 -132
  83. package/node/fintekkers/requests/transaction/create_transaction_response_pb.d.ts +7 -15
  84. package/node/fintekkers/requests/transaction/create_transaction_response_pb.js +35 -132
  85. package/node/fintekkers/requests/transaction/query_transaction_request_pb.d.ts +7 -15
  86. package/node/fintekkers/requests/transaction/query_transaction_request_pb.js +35 -132
  87. package/node/fintekkers/requests/transaction/query_transaction_response_pb.d.ts +7 -15
  88. package/node/fintekkers/requests/transaction/query_transaction_response_pb.js +35 -132
  89. package/node/fintekkers/requests/util/delete_request_pb.d.ts +13 -30
  90. package/node/fintekkers/requests/util/delete_request_pb.js +68 -264
  91. package/node/fintekkers/requests/util/lock/lock_request_pb.d.ts +7 -15
  92. package/node/fintekkers/requests/util/lock/lock_request_pb.js +35 -132
  93. package/node/fintekkers/requests/util/lock/lock_response_pb.d.ts +7 -15
  94. package/node/fintekkers/requests/util/lock/lock_response_pb.js +35 -132
  95. package/node/fintekkers/requests/valuation/curve_request_pb.d.ts +7 -15
  96. package/node/fintekkers/requests/valuation/curve_request_pb.js +35 -132
  97. package/node/fintekkers/requests/valuation/curve_response_pb.d.ts +19 -15
  98. package/node/fintekkers/requests/valuation/curve_response_pb.js +138 -133
  99. package/node/fintekkers/requests/valuation/product_inputs.test.js +10 -17
  100. package/node/fintekkers/requests/valuation/product_inputs.test.js.map +1 -1
  101. package/node/fintekkers/requests/valuation/product_inputs.test.ts +10 -16
  102. package/node/fintekkers/requests/valuation/valuation_request_pb.d.ts +7 -15
  103. package/node/fintekkers/requests/valuation/valuation_request_pb.js +35 -132
  104. package/node/fintekkers/requests/valuation/valuation_response_pb.d.ts +7 -15
  105. package/node/fintekkers/requests/valuation/valuation_response_pb.js +35 -132
  106. package/node/wrappers/models/portfolio/portfolio.test.js +0 -2
  107. package/node/wrappers/models/portfolio/portfolio.test.js.map +1 -1
  108. package/node/wrappers/models/portfolio/portfolio.test.ts +0 -2
  109. package/node/wrappers/models/portfolio-price-transaction.lazy-hydrate.test.js +2 -3
  110. package/node/wrappers/models/portfolio-price-transaction.lazy-hydrate.test.js.map +1 -1
  111. package/node/wrappers/models/portfolio-price-transaction.lazy-hydrate.test.ts +2 -2
  112. package/node/wrappers/models/position/position.test.js +5 -6
  113. package/node/wrappers/models/position/position.test.js.map +1 -1
  114. package/node/wrappers/models/position/position.test.ts +5 -4
  115. package/node/wrappers/models/position/positionfilter.js +1 -1
  116. package/node/wrappers/models/position/positionfilter.js.map +1 -1
  117. package/node/wrappers/models/position/positionfilter.test.js +4 -2
  118. package/node/wrappers/models/position/positionfilter.test.js.map +1 -1
  119. package/node/wrappers/models/position/positionfilter.test.ts +3 -2
  120. package/node/wrappers/models/position/positionfilter.ts +1 -1
  121. package/node/wrappers/models/price/Price.cash.test.js +4 -5
  122. package/node/wrappers/models/price/Price.cash.test.js.map +1 -1
  123. package/node/wrappers/models/price/Price.cash.test.ts +2 -3
  124. package/node/wrappers/models/price/Price.js +2 -2
  125. package/node/wrappers/models/price/Price.js.map +1 -1
  126. package/node/wrappers/models/price/Price.test.js +4 -2
  127. package/node/wrappers/models/price/Price.test.js.map +1 -1
  128. package/node/wrappers/models/price/Price.test.ts +4 -2
  129. package/node/wrappers/models/price/Price.ts +2 -2
  130. package/node/wrappers/models/price/price_rules.test.js +9 -4
  131. package/node/wrappers/models/price/price_rules.test.js.map +1 -1
  132. package/node/wrappers/models/price/price_rules.test.ts +9 -4
  133. package/node/wrappers/models/security/BondSecurity.priceScale.test.js +2 -4
  134. package/node/wrappers/models/security/BondSecurity.priceScale.test.js.map +1 -1
  135. package/node/wrappers/models/security/BondSecurity.priceScale.test.ts +2 -3
  136. package/node/wrappers/models/security/BondSecurity.test.js +7 -13
  137. package/node/wrappers/models/security/BondSecurity.test.js.map +1 -1
  138. package/node/wrappers/models/security/BondSecurity.test.ts +7 -12
  139. package/node/wrappers/models/security/IndexSecurity.test.js +0 -8
  140. package/node/wrappers/models/security/IndexSecurity.test.js.map +1 -1
  141. package/node/wrappers/models/security/IndexSecurity.test.ts +0 -8
  142. package/node/wrappers/models/security/Issuance.test.js +6 -6
  143. package/node/wrappers/models/security/Issuance.test.js.map +1 -1
  144. package/node/wrappers/models/security/Issuance.test.ts +6 -5
  145. package/node/wrappers/models/security/MortgageBackedSecurity.fromPricerInputs.test.js +13 -14
  146. package/node/wrappers/models/security/MortgageBackedSecurity.fromPricerInputs.test.js.map +1 -1
  147. package/node/wrappers/models/security/MortgageBackedSecurity.fromPricerInputs.test.ts +13 -12
  148. package/node/wrappers/models/security/security-roundtrip.test.js +9 -21
  149. package/node/wrappers/models/security/security-roundtrip.test.js.map +1 -1
  150. package/node/wrappers/models/security/security-roundtrip.test.ts +9 -20
  151. package/node/wrappers/models/security/security.identifiers.test.js +0 -2
  152. package/node/wrappers/models/security/security.identifiers.test.js.map +1 -1
  153. package/node/wrappers/models/security/security.identifiers.test.ts +0 -2
  154. package/node/wrappers/models/security/security.tbillCoupon.test.js +3 -2
  155. package/node/wrappers/models/security/security.tbillCoupon.test.js.map +1 -1
  156. package/node/wrappers/models/security/security.tbillCoupon.test.ts +3 -2
  157. package/node/wrappers/models/security/security.test.js +14 -14
  158. package/node/wrappers/models/security/security.test.js.map +1 -1
  159. package/node/wrappers/models/security/security.test.ts +14 -13
  160. package/node/wrappers/models/transaction/transaction.derived.test.js +3 -9
  161. package/node/wrappers/models/transaction/transaction.derived.test.js.map +1 -1
  162. package/node/wrappers/models/transaction/transaction.derived.test.ts +3 -8
  163. package/node/wrappers/models/transaction/transaction.js +2 -2
  164. package/node/wrappers/models/transaction/transaction.js.map +1 -1
  165. package/node/wrappers/models/transaction/transaction.test.js +3 -3
  166. package/node/wrappers/models/transaction/transaction.test.js.map +1 -1
  167. package/node/wrappers/models/transaction/transaction.test.ts +3 -2
  168. package/node/wrappers/models/transaction/transaction.ts +2 -2
  169. package/node/wrappers/models/transaction/transaction_constructor.test.js +6 -9
  170. package/node/wrappers/models/transaction/transaction_constructor.test.js.map +1 -1
  171. package/node/wrappers/models/transaction/transaction_constructor.test.ts +6 -7
  172. package/node/wrappers/models/transaction/transaction_price_defaults.test.js +2 -10
  173. package/node/wrappers/models/transaction/transaction_price_defaults.test.js.map +1 -1
  174. package/node/wrappers/models/transaction/transaction_price_defaults.test.ts +2 -9
  175. package/node/wrappers/models/transaction/transaction_security_defaults.test.js +0 -6
  176. package/node/wrappers/models/transaction/transaction_security_defaults.test.js.map +1 -1
  177. package/node/wrappers/models/transaction/transaction_security_defaults.test.ts +0 -6
  178. package/node/wrappers/models/utils/date.test.js +0 -2
  179. package/node/wrappers/models/utils/date.test.js.map +1 -1
  180. package/node/wrappers/models/utils/date.test.ts +0 -2
  181. package/node/wrappers/models/utils/datetime.test.js +0 -2
  182. package/node/wrappers/models/utils/datetime.test.js.map +1 -1
  183. package/node/wrappers/models/utils/datetime.test.ts +0 -2
  184. package/node/wrappers/models/utils/decimal.d.ts +9 -28
  185. package/node/wrappers/models/utils/decimal.js +13 -52
  186. package/node/wrappers/models/utils/decimal.js.map +1 -1
  187. package/node/wrappers/models/utils/decimal.test.js +12 -68
  188. package/node/wrappers/models/utils/decimal.test.js.map +1 -1
  189. package/node/wrappers/models/utils/decimal.test.ts +14 -76
  190. package/node/wrappers/models/utils/decimal.ts +12 -60
  191. package/node/wrappers/models/utils/serialization.test.js +0 -4
  192. package/node/wrappers/models/utils/serialization.test.js.map +1 -1
  193. package/node/wrappers/models/utils/serialization.test.ts +0 -4
  194. package/node/wrappers/requests/position/QueryPositionRequest.js +1 -1
  195. package/node/wrappers/requests/position/QueryPositionRequest.js.map +1 -1
  196. package/node/wrappers/requests/position/QueryPositionRequest.ts +1 -1
  197. package/node/wrappers/requests/query-paging.test.js +4 -28
  198. package/node/wrappers/requests/query-paging.test.js.map +1 -1
  199. package/node/wrappers/requests/query-paging.test.ts +3 -36
  200. package/node/wrappers/services/portfolio-service/PortfolioService.js +3 -3
  201. package/node/wrappers/services/portfolio-service/PortfolioService.js.map +1 -1
  202. package/node/wrappers/services/portfolio-service/PortfolioService.ts +3 -3
  203. package/node/wrappers/services/portfolio-service/portfolioService.test.js +0 -2
  204. package/node/wrappers/services/portfolio-service/portfolioService.test.js.map +1 -1
  205. package/node/wrappers/services/portfolio-service/portfolioService.test.ts +0 -2
  206. package/node/wrappers/services/price-service/PriceService.js +3 -3
  207. package/node/wrappers/services/price-service/PriceService.js.map +1 -1
  208. package/node/wrappers/services/price-service/PriceService.ts +3 -3
  209. package/node/wrappers/services/price-service/price-wrapper.test.js +2 -6
  210. package/node/wrappers/services/price-service/price-wrapper.test.js.map +1 -1
  211. package/node/wrappers/services/price-service/price-wrapper.test.ts +2 -6
  212. package/node/wrappers/services/price-service/price.test.js +8 -17
  213. package/node/wrappers/services/price-service/price.test.js.map +1 -1
  214. package/node/wrappers/services/price-service/price.test.ts +8 -14
  215. package/node/wrappers/services/searchWithSecurities.test.js +2 -7
  216. package/node/wrappers/services/searchWithSecurities.test.js.map +1 -1
  217. package/node/wrappers/services/searchWithSecurities.test.ts +2 -6
  218. package/node/wrappers/services/security-service/SecurityService.js +3 -3
  219. package/node/wrappers/services/security-service/SecurityService.js.map +1 -1
  220. package/node/wrappers/services/security-service/SecurityService.ts +3 -3
  221. package/node/wrappers/services/security-service/security.test.js +3 -7
  222. package/node/wrappers/services/security-service/security.test.js.map +1 -1
  223. package/node/wrappers/services/security-service/security.test.ts +3 -6
  224. package/node/wrappers/services/transaction-service/TransactionService.js +3 -3
  225. package/node/wrappers/services/transaction-service/TransactionService.js.map +1 -1
  226. package/node/wrappers/services/transaction-service/TransactionService.ts +3 -3
  227. package/node/wrappers/services/transaction-service/transaction.test.js +3 -8
  228. package/node/wrappers/services/transaction-service/transaction.test.js.map +1 -1
  229. package/node/wrappers/services/transaction-service/transaction.test.ts +3 -6
  230. package/node/wrappers/util/link-resolver.js +3 -3
  231. package/node/wrappers/util/link-resolver.js.map +1 -1
  232. package/node/wrappers/util/link-resolver.test.js +4 -13
  233. package/node/wrappers/util/link-resolver.test.js.map +1 -1
  234. package/node/wrappers/util/link-resolver.test.ts +4 -12
  235. package/node/wrappers/util/link-resolver.ts +3 -3
  236. package/node/wrappers/util/object-types.d.ts +21 -47
  237. package/node/wrappers/util/object-types.js +19 -178
  238. package/node/wrappers/util/object-types.js.map +1 -1
  239. package/node/wrappers/util/object-types.test.js +50 -151
  240. package/node/wrappers/util/object-types.test.js.map +1 -1
  241. package/node/wrappers/util/object-types.test.ts +55 -170
  242. package/node/wrappers/util/object-types.ts +28 -182
  243. package/package.json +1 -1
  244. package/node/wrappers/models/position/position.test copy.js +0 -107
  245. package/node/wrappers/models/position/position.test copy.js.map +0 -1
  246. package/node/wrappers/models/utils/decimal.legacy.test.d.ts +0 -1
  247. package/node/wrappers/models/utils/decimal.legacy.test.js +0 -174
  248. package/node/wrappers/models/utils/decimal.legacy.test.js.map +0 -1
  249. package/node/wrappers/models/utils/decimal.legacy.test.ts +0 -158
  250. package/node/wrappers/models/utils/decimal.typings.test.d.ts +0 -1
  251. package/node/wrappers/models/utils/decimal.typings.test.js +0 -39
  252. package/node/wrappers/models/utils/decimal.typings.test.js.map +0 -1
  253. package/node/wrappers/models/utils/decimal.typings.test.ts +0 -16
  254. package/node/wrappers/util/object-type-legacy.json +0 -21
@@ -1 +1 @@
1
- {"version":3,"file":"datetime.test.js","sourceRoot":"","sources":["datetime.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"datetime.test.js","sourceRoot":"","sources":["datetime.test.ts"],"names":[],"mappings":"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"}
@@ -33,8 +33,6 @@ test('test the date time', async () => {
33
33
  const position = new PositionProto();
34
34
 
35
35
  // Set properties
36
- position.setObjectClass(' MyClass');
37
- position.setVersion('1.0');
38
36
  position.setPositionView(PositionViewProto.DEFAULT_VIEW);
39
37
  position.setPositionType(PositionTypeProto.TRANSACTION);
40
38
 
@@ -7,19 +7,14 @@ import { DecimalValueProto } from '../../../fintekkers/models/util/decimal_value
7
7
  *
8
8
  * value = unscaled x 10^-scale, where `unscaled_value` (field 11) is a minimal
9
9
  * two's-complement big-endian integer of any size and `scale` is field 12. A
10
- * non-empty `unscaled_value` means the compact form is set and it wins.
11
- * Otherwise the deprecated `arbitrary_precision_value` string (field 10) is
12
- * read, with a warning logged once per process (LM-307).
10
+ * non-empty `unscaled_value` means the decimal is set; empty means unset. The
11
+ * old string form, field 10, was deleted by LM-318.
13
12
  *
14
13
  * Lossless: no binary floating point on any path (no JS `number` value, no
15
14
  * `parseFloat`). A value that cannot be represented exactly is a
16
15
  * `ModelValidationError`, never rounded. The codec does not know which field
17
16
  * it is decoding: a caller that wants the field named wraps the call in
18
17
  * `withField`.
19
- *
20
- * Stage 1 (until LM-295): writers set both forms, so readers on older
21
- * ledger-models keep working. This module is the only code allowed to touch
22
- * the deprecated string field.
23
18
  */
24
19
  /**
25
20
  * Most decimal digits allowed in the unscaled value, and the largest scale.
@@ -37,19 +32,13 @@ export interface CompactDecimal {
37
32
  unscaled: bigint;
38
33
  scale: number;
39
34
  }
40
- /** Where the once-per-process deprecation warning goes. Defaults to `console`. */
41
- export interface DecimalLogger {
42
- warn(message: string): void;
43
- }
44
- /** Sends the deprecation warning to `l` from now on. Tests use it to spy. */
45
- export declare function setDecimalLogger(l: DecimalLogger): void;
46
35
  /**
47
36
  * Runs `fn`, labelling any ModelValidationError it throws with `field` (for
48
37
  * example `price`). Violations that already name a field get it as a prefix.
49
38
  */
50
39
  export declare function withField<T>(field: string, fn: () => T): T;
51
40
  /**
52
- * Parses a decimal string, as written to `arbitrary_precision_value`.
41
+ * Parses a decimal string such as `1.50` or `1E+3`.
53
42
  *
54
43
  * Grammar: `[+-]? (digits [. digits?] | . digits) ([eE] [+-]? digits)?`. No
55
44
  * whitespace, no `NaN` or `Infinity`. The exponent is folded into the scale;
@@ -60,25 +49,17 @@ export declare function withField<T>(field: string, fn: () => T): T;
60
49
  export declare function parseDecimalString(s: string): CompactDecimal;
61
50
  /** Plain notation, never an exponent, keeping trailing zeros: unscaled 150 scale 2 is `1.50`. */
62
51
  export declare function toCanonicalString(v: CompactDecimal): string;
63
- /** True when neither form is set: `unscaled_value` and `arbitrary_precision_value` are both empty. */
52
+ /** True when `unscaled_value` is empty. A set zero is the byte 0x00. */
64
53
  export declare function isUnsetDecimal(p: DecimalValueProto): boolean;
65
54
  /**
66
- * Decodes a `DecimalValueProto`. The compact form wins when set. Otherwise
67
- * falls back to the deprecated string and logs a deprecation warning, once
68
- * per process. Both forms empty is a ModelValidationError; so is a malformed
69
- * or over-cap value. Takes the proto only (owner ruling, 12 Oct): label
70
- * errors with `withField`.
55
+ * Decodes a `DecimalValueProto`. An empty `unscaled_value` ("decimal is
56
+ * required but unset") or an over-cap value is a ModelValidationError. Takes
57
+ * the proto only (owner ruling, 12 Oct): label errors with `withField`.
71
58
  */
72
59
  export declare function decodeDecimal(p: DecimalValueProto): CompactDecimal;
73
- /**
74
- * Encodes both forms (stage 1): fields 11 and 12, plus the canonical string
75
- * in field 10 for readers on ledger-models older than v0.4.34.
76
- */
60
+ /** Encodes fields 11 and 12. */
77
61
  export declare function encodeDecimal(v: CompactDecimal): DecimalValueProto;
78
- /**
79
- * `p` rewritten in both forms (stage 1), keeping its value and scale. Used
80
- * when re-saving a message loaded from older bytes.
81
- */
62
+ /** `p` rewritten with minimal unscaled bytes, keeping its value and scale. */
82
63
  export declare function reencodeDecimal(p: DecimalValueProto): DecimalValueProto;
83
64
  /**
84
65
  * The value as a decimal.js `Decimal`, built from the canonical string. The
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fromDecimalJs = exports.toDecimalJs = exports.reencodeDecimal = exports.encodeDecimal = exports.decodeDecimal = exports.isUnsetDecimal = exports.toCanonicalString = exports.parseDecimalString = exports.withField = exports.setDecimalLogger = exports.MAX_UNSCALED_BYTES = exports.MAX_SCALE = exports.MAX_DIGITS = void 0;
3
+ exports.fromDecimalJs = exports.toDecimalJs = exports.reencodeDecimal = exports.encodeDecimal = exports.decodeDecimal = exports.isUnsetDecimal = exports.toCanonicalString = exports.parseDecimalString = exports.withField = exports.MAX_UNSCALED_BYTES = exports.MAX_SCALE = exports.MAX_DIGITS = void 0;
4
4
  const decimal_js_1 = require("decimal.js");
5
5
  const decimal_value_pb_1 = require("../../../fintekkers/models/util/decimal_value_pb");
6
6
  const errors_1 = require("../errors");
@@ -11,19 +11,14 @@ const errors_1 = require("../errors");
11
11
  *
12
12
  * value = unscaled x 10^-scale, where `unscaled_value` (field 11) is a minimal
13
13
  * two's-complement big-endian integer of any size and `scale` is field 12. A
14
- * non-empty `unscaled_value` means the compact form is set and it wins.
15
- * Otherwise the deprecated `arbitrary_precision_value` string (field 10) is
16
- * read, with a warning logged once per process (LM-307).
14
+ * non-empty `unscaled_value` means the decimal is set; empty means unset. The
15
+ * old string form, field 10, was deleted by LM-318.
17
16
  *
18
17
  * Lossless: no binary floating point on any path (no JS `number` value, no
19
18
  * `parseFloat`). A value that cannot be represented exactly is a
20
19
  * `ModelValidationError`, never rounded. The codec does not know which field
21
20
  * it is decoding: a caller that wants the field named wraps the call in
22
21
  * `withField`.
23
- *
24
- * Stage 1 (until LM-295): writers set both forms, so readers on older
25
- * ledger-models keep working. This module is the only code allowed to touch
26
- * the deprecated string field.
27
22
  */
28
23
  /**
29
24
  * Most decimal digits allowed in the unscaled value, and the largest scale.
@@ -36,19 +31,10 @@ exports.MAX_SCALE = 4096;
36
31
  * `MAX_DIGITS` digits, so it is rejected before it is parsed.
37
32
  */
38
33
  exports.MAX_UNSCALED_BYTES = 1702;
39
- /** The library release that first writes the compact form. */
40
- const FIRST_COMPACT_RELEASE = 'v0.4.34';
41
34
  // No bigint literals: tsconfig targets es2016.
42
35
  const ZERO = BigInt(0);
43
36
  const ONE = BigInt(1);
44
37
  const EIGHT = BigInt(8);
45
- let logger = console;
46
- let warned = false;
47
- /** Sends the deprecation warning to `l` from now on. Tests use it to spy. */
48
- function setDecimalLogger(l) {
49
- logger = l;
50
- }
51
- exports.setDecimalLogger = setDecimalLogger;
52
38
  /** An unlabelled ModelValidationError: the field is empty until `withField` adds it. */
53
39
  function invalid(message) {
54
40
  return new errors_1.ModelValidationError([(0, errors_1.violation)('', undefined, message)]);
@@ -95,7 +81,7 @@ function isDigit(c) {
95
81
  return c !== undefined && c >= '0' && c <= '9';
96
82
  }
97
83
  /**
98
- * Parses a decimal string, as written to `arbitrary_precision_value`.
84
+ * Parses a decimal string such as `1.50` or `1E+3`.
99
85
  *
100
86
  * Grammar: `[+-]? (digits [. digits?] | . digits) ([eE] [+-]? digits)?`. No
101
87
  * whitespace, no `NaN` or `Infinity`. The exponent is folded into the scale;
@@ -237,35 +223,25 @@ function decodeCompact(unscaledValue, scale) {
237
223
  }
238
224
  return { unscaled, scale };
239
225
  }
240
- /** True when neither form is set: `unscaled_value` and `arbitrary_precision_value` are both empty. */
226
+ /** True when `unscaled_value` is empty. A set zero is the byte 0x00. */
241
227
  function isUnsetDecimal(p) {
242
- return p.getUnscaledValue_asU8().length === 0 && p.getArbitraryPrecisionValue() === '';
228
+ return p.getUnscaledValue_asU8().length === 0;
243
229
  }
244
230
  exports.isUnsetDecimal = isUnsetDecimal;
245
231
  /**
246
- * Decodes a `DecimalValueProto`. The compact form wins when set. Otherwise
247
- * falls back to the deprecated string and logs a deprecation warning, once
248
- * per process. Both forms empty is a ModelValidationError; so is a malformed
249
- * or over-cap value. Takes the proto only (owner ruling, 12 Oct): label
250
- * errors with `withField`.
232
+ * Decodes a `DecimalValueProto`. An empty `unscaled_value` ("decimal is
233
+ * required but unset") or an over-cap value is a ModelValidationError. Takes
234
+ * the proto only (owner ruling, 12 Oct): label errors with `withField`.
251
235
  */
252
236
  function decodeDecimal(p) {
253
237
  const unscaledValue = p.getUnscaledValue_asU8();
254
- if (unscaledValue.length > 0) {
255
- return decodeCompact(unscaledValue, p.getScale());
256
- }
257
- const legacy = p.getArbitraryPrecisionValue();
258
- if (legacy === '') {
238
+ if (unscaledValue.length === 0) {
259
239
  throw invalid('decimal is required but unset');
260
240
  }
261
- emitDeprecation();
262
- return parseDecimalString(legacy);
241
+ return decodeCompact(unscaledValue, p.getScale());
263
242
  }
264
243
  exports.decodeDecimal = decodeDecimal;
265
- /**
266
- * Encodes both forms (stage 1): fields 11 and 12, plus the canonical string
267
- * in field 10 for readers on ledger-models older than v0.4.34.
268
- */
244
+ /** Encodes fields 11 and 12. */
269
245
  function encodeDecimal(v) {
270
246
  if (typeof v.unscaled !== 'bigint') {
271
247
  throw invalid('decimal unscaled value must be a bigint');
@@ -274,15 +250,11 @@ function encodeDecimal(v) {
274
250
  throw invalid(`decimal scale must be an integer from 0 to ${exports.MAX_SCALE}: ${v.scale}`);
275
251
  }
276
252
  return new decimal_value_pb_1.DecimalValueProto()
277
- .setArbitraryPrecisionValue(toCanonicalString(v))
278
253
  .setUnscaledValue(bigIntToBytes(v.unscaled))
279
254
  .setScale(v.scale);
280
255
  }
281
256
  exports.encodeDecimal = encodeDecimal;
282
- /**
283
- * `p` rewritten in both forms (stage 1), keeping its value and scale. Used
284
- * when re-saving a message loaded from older bytes.
285
- */
257
+ /** `p` rewritten with minimal unscaled bytes, keeping its value and scale. */
286
258
  function reencodeDecimal(p) {
287
259
  return encodeDecimal(decodeDecimal(p));
288
260
  }
@@ -314,15 +286,4 @@ function fromDecimalJs(d) {
314
286
  return parseDecimalString(d.toFixed());
315
287
  }
316
288
  exports.fromDecimalJs = fromDecimalJs;
317
- /**
318
- * Logs that a decimal was read from the deprecated string, the first time
319
- * only in this process.
320
- */
321
- function emitDeprecation() {
322
- if (warned)
323
- return;
324
- warned = true;
325
- logger.warn('DecimalValueProto read from deprecated arbitrary_precision_value; '
326
- + `writer predates ledger-models ${FIRST_COMPACT_RELEASE}`);
327
- }
328
289
  //# sourceMappingURL=decimal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decimal.js","sourceRoot":"","sources":["decimal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decimal.js","sourceRoot":"","sources":["decimal.ts"],"names":[],"mappings":"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"}
@@ -48,10 +48,6 @@ function compactOnly(c) {
48
48
  function expectInvalid(fn) {
49
49
  expect(fn).toThrow(errors_1.ModelValidationError);
50
50
  }
51
- beforeAll(() => {
52
- // String-only decodes below would warn once; keep the test output quiet.
53
- (0, decimal_1.setDecimalLogger)({ warn: jest.fn() });
54
- });
55
51
  describe('metric 1: shared fixture', () => {
56
52
  test('fixture limits match the codec', () => {
57
53
  expect(FIXTURE.limits).toEqual({
@@ -74,7 +70,6 @@ describe('metric 1: shared fixture', () => {
74
70
  const stringErrors = FIXTURE.string_errors.map((c) => [c.name, c.string]);
75
71
  test.each(stringErrors)('string error %s is a ModelValidationError', (_name, s) => {
76
72
  expectInvalid(() => (0, decimal_1.parseDecimalString)(s));
77
- expectInvalid(() => (0, decimal_1.decodeDecimal)(new decimal_value_pb_1.DecimalValueProto().setArbitraryPrecisionValue(s)));
78
73
  });
79
74
  const decodeErrors = FIXTURE.decode_errors.map((c) => [c.name, c]);
80
75
  test.each(decodeErrors)('decode error %s is a ModelValidationError', (_name, c) => {
@@ -107,27 +102,22 @@ describe('metric 1: shared fixture', () => {
107
102
  .toEqual({ unscaled: expectedUnscaled(c.unscaled_hex), scale: c.scale });
108
103
  }
109
104
  });
110
- test('compact form wins over a conflicting string and does not warn', () => {
111
- jest.isolateModules(() => {
112
- // eslint-disable-next-line @typescript-eslint/no-var-requires
113
- const codec = require('./decimal');
114
- const warn = jest.fn();
115
- codec.setDecimalLogger({ warn });
116
- const proto = new decimal_value_pb_1.DecimalValueProto()
117
- .setArbitraryPrecisionValue('9')
118
- .setUnscaledValue(unhex('0096'))
119
- .setScale(2);
120
- expect(codec.toCanonicalString(codec.decodeDecimal(proto))).toBe('1.50');
121
- expect(warn).not.toHaveBeenCalled();
122
- });
123
- });
124
105
  test('negative zero from decimal.js encodes to 0x00 at scale 0', () => {
125
106
  const v = (0, decimal_1.fromDecimalJs)(new decimal_js_1.Decimal('-0'));
126
107
  expect(v).toEqual({ unscaled: BigInt(0), scale: 0 });
127
108
  const proto = (0, decimal_1.encodeDecimal)(v);
128
109
  expect(hex(proto.getUnscaledValue_asU8())).toBe('00');
129
110
  expect(proto.getScale()).toBe(0);
130
- expect(proto.getArbitraryPrecisionValue()).toBe('0');
111
+ });
112
+ test('a string-only decimal from old bytes is unset (LM-318)', () => {
113
+ // 0x52 = field 10, length-delimited: "1.5" as a v0.4.33 writer stored
114
+ // it. LM-318 deleted field 10, so the decimal is unset.
115
+ const old = decimal_value_pb_1.DecimalValueProto.deserializeBinary(new Uint8Array([0x52, 0x03, 0x31, 0x2e, 0x35]));
116
+ expect((0, decimal_1.isUnsetDecimal)(old)).toBe(true);
117
+ expect(() => (0, decimal_1.decodeDecimal)(old)).toThrow(errors_1.ModelValidationError);
118
+ expect(() => (0, decimal_1.decodeDecimal)(old)).toThrow('decimal is required but unset');
119
+ // Compact zero is still set.
120
+ expect((0, decimal_1.isUnsetDecimal)((0, decimal_1.encodeDecimal)((0, decimal_1.parseDecimalString)('0')))).toBe(false);
131
121
  });
132
122
  });
133
123
  describe('metric 3: decodeDecimal takes the proto only', () => {
@@ -154,51 +144,6 @@ describe('metric 3: decodeDecimal takes the proto only', () => {
154
144
  }
155
145
  });
156
146
  });
157
- describe('metric 4: one deprecation warning per process', () => {
158
- test('a compact-only decode does not warn', () => {
159
- jest.isolateModules(() => {
160
- // eslint-disable-next-line @typescript-eslint/no-var-requires
161
- const codec = require('./decimal');
162
- const warn = jest.fn();
163
- codec.setDecimalLogger({ warn });
164
- for (const c of CASES)
165
- codec.decodeDecimal(compactOnly(c));
166
- expect(warn).toHaveBeenCalledTimes(0);
167
- });
168
- });
169
- test('three string-only prices read through the Price wrapper warn exactly once', () => {
170
- jest.isolateModules(() => {
171
- // The same isolated registry: Price loads this codec instance.
172
- // eslint-disable-next-line @typescript-eslint/no-var-requires
173
- const codec = require('./decimal');
174
- const warn = jest.fn();
175
- codec.setDecimalLogger({ warn });
176
- // eslint-disable-next-line @typescript-eslint/no-var-requires
177
- const { PriceProto } = require('../../../fintekkers/models/price/price_pb');
178
- // eslint-disable-next-line @typescript-eslint/no-var-requires
179
- const Price = require('../price/Price').default;
180
- const values = ['100.25', '-0.50', '1E+3'];
181
- const read = values.map(s => new Price(new PriceProto().setPrice(new decimal_value_pb_1.DecimalValueProto().setArbitraryPrecisionValue(s))).getPrice());
182
- expect(read.map((d) => d.toString())).toEqual(['100.25', '-0.5', '1000']);
183
- expect(warn).toHaveBeenCalledTimes(1);
184
- expect(warn.mock.calls[0][0]).toContain('arbitrary_precision_value');
185
- });
186
- });
187
- });
188
- describe('metric 5: writers set both forms', () => {
189
- test.each(CASES.map(c => [c.name, c]))('%s: both forms are set and decode equal', (_name, c) => {
190
- const proto = (0, decimal_1.encodeDecimal)((0, decimal_1.parseDecimalString)(c.string));
191
- expect(proto.getArbitraryPrecisionValue()).toBe(c.canonical);
192
- expect(proto.getUnscaledValue_asU8().length).toBeGreaterThan(0);
193
- const stringOnly = new decimal_value_pb_1.DecimalValueProto().setArbitraryPrecisionValue(proto.getArbitraryPrecisionValue());
194
- const compact = new decimal_value_pb_1.DecimalValueProto()
195
- .setUnscaledValue(proto.getUnscaledValue_asU8())
196
- .setScale(proto.getScale());
197
- const expected = { unscaled: expectedUnscaled(c.unscaled_hex), scale: c.scale };
198
- expect((0, decimal_1.decodeDecimal)(stringOnly)).toEqual(expected);
199
- expect((0, decimal_1.decodeDecimal)(compact)).toEqual(expected);
200
- });
201
- });
202
147
  describe('guardrail: lossless', () => {
203
148
  const NODE = path.join(__dirname, '../../..');
204
149
  const SCANNED = [
@@ -235,13 +180,12 @@ describe('guardrail: lossless', () => {
235
180
  expectInvalid(() => serialization_1.ProtoSerializationUtil.serialize(0.1));
236
181
  expectInvalid(() => serialization_1.ProtoSerializationUtil.serialize(2 ** 53));
237
182
  const proto = serialization_1.ProtoSerializationUtil.serialize(42);
238
- expect(proto.getArbitraryPrecisionValue()).toBe('42');
239
183
  expect(hex(proto.getUnscaledValue_asU8())).toBe('2a');
240
184
  expect(proto.getScale()).toBe(0);
241
185
  });
242
- test('serialize(Decimal) writes both forms; deserialize returns a Decimal', () => {
186
+ test('serialize(Decimal) writes the compact form; deserialize returns a Decimal', () => {
243
187
  const proto = serialization_1.ProtoSerializationUtil.serialize(new decimal_js_1.Decimal('-123.45'));
244
- expect(proto.getArbitraryPrecisionValue()).toBe('-123.45');
188
+ expect((0, decimal_1.toCanonicalString)((0, decimal_1.decodeDecimal)(proto))).toBe('-123.45');
245
189
  expect(hex(proto.getUnscaledValue_asU8())).toBe('cfc7');
246
190
  const big = CASES.find(c => c.name === 'two_pow_127');
247
191
  const read = serialization_1.ProtoSerializationUtil.deserialize(compactOnly(big));
@@ -1 +1 @@
1
- {"version":3,"file":"decimal.test.js","sourceRoot":"","sources":["decimal.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decimal.test.js","sourceRoot":"","sources":["decimal.test.ts"],"names":[],"mappings":"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"}
@@ -5,15 +5,14 @@ import { DecimalValueProto } from '../../../fintekkers/models/util/decimal_value
5
5
  import { ModelValidationError } from '../errors';
6
6
  import { ProtoSerializationUtil } from './serialization';
7
7
  import {
8
- CompactDecimal,
9
8
  MAX_DIGITS,
10
9
  MAX_SCALE,
11
10
  MAX_UNSCALED_BYTES,
12
11
  decodeDecimal,
13
12
  encodeDecimal,
14
13
  fromDecimalJs,
14
+ isUnsetDecimal,
15
15
  parseDecimalString,
16
- setDecimalLogger,
17
16
  toCanonicalString,
18
17
  withField,
19
18
  } from './decimal';
@@ -45,11 +44,6 @@ function expectInvalid(fn: () => unknown): void {
45
44
  expect(fn).toThrow(ModelValidationError);
46
45
  }
47
46
 
48
- beforeAll(() => {
49
- // String-only decodes below would warn once; keep the test output quiet.
50
- setDecimalLogger({ warn: jest.fn() });
51
- });
52
-
53
47
  describe('metric 1: shared fixture', () => {
54
48
  test('fixture limits match the codec', () => {
55
49
  expect(FIXTURE.limits).toEqual({
@@ -76,7 +70,6 @@ describe('metric 1: shared fixture', () => {
76
70
  const stringErrors: [string, string][] = FIXTURE.string_errors.map((c: { name: string; string: string }) => [c.name, c.string]);
77
71
  test.each(stringErrors)('string error %s is a ModelValidationError', (_name, s) => {
78
72
  expectInvalid(() => parseDecimalString(s));
79
- expectInvalid(() => decodeDecimal(new DecimalValueProto().setArbitraryPrecisionValue(s)));
80
73
  });
81
74
 
82
75
  const decodeErrors: [string, any][] = FIXTURE.decode_errors.map((c: any) => [c.name, c]);
@@ -112,28 +105,23 @@ describe('metric 1: shared fixture', () => {
112
105
  }
113
106
  });
114
107
 
115
- test('compact form wins over a conflicting string and does not warn', () => {
116
- jest.isolateModules(() => {
117
- // eslint-disable-next-line @typescript-eslint/no-var-requires
118
- const codec = require('./decimal');
119
- const warn = jest.fn();
120
- codec.setDecimalLogger({ warn });
121
- const proto = new DecimalValueProto()
122
- .setArbitraryPrecisionValue('9')
123
- .setUnscaledValue(unhex('0096'))
124
- .setScale(2);
125
- expect(codec.toCanonicalString(codec.decodeDecimal(proto))).toBe('1.50');
126
- expect(warn).not.toHaveBeenCalled();
127
- });
128
- });
129
-
130
108
  test('negative zero from decimal.js encodes to 0x00 at scale 0', () => {
131
109
  const v = fromDecimalJs(new Decimal('-0'));
132
110
  expect(v).toEqual({ unscaled: BigInt(0), scale: 0 });
133
111
  const proto = encodeDecimal(v);
134
112
  expect(hex(proto.getUnscaledValue_asU8())).toBe('00');
135
113
  expect(proto.getScale()).toBe(0);
136
- expect(proto.getArbitraryPrecisionValue()).toBe('0');
114
+ });
115
+
116
+ test('a string-only decimal from old bytes is unset (LM-318)', () => {
117
+ // 0x52 = field 10, length-delimited: "1.5" as a v0.4.33 writer stored
118
+ // it. LM-318 deleted field 10, so the decimal is unset.
119
+ const old = DecimalValueProto.deserializeBinary(new Uint8Array([0x52, 0x03, 0x31, 0x2e, 0x35]));
120
+ expect(isUnsetDecimal(old)).toBe(true);
121
+ expect(() => decodeDecimal(old)).toThrow(ModelValidationError);
122
+ expect(() => decodeDecimal(old)).toThrow('decimal is required but unset');
123
+ // Compact zero is still set.
124
+ expect(isUnsetDecimal(encodeDecimal(parseDecimalString('0')))).toBe(false);
137
125
  });
138
126
  });
139
127
 
@@ -162,55 +150,6 @@ describe('metric 3: decodeDecimal takes the proto only', () => {
162
150
  });
163
151
  });
164
152
 
165
- describe('metric 4: one deprecation warning per process', () => {
166
- test('a compact-only decode does not warn', () => {
167
- jest.isolateModules(() => {
168
- // eslint-disable-next-line @typescript-eslint/no-var-requires
169
- const codec = require('./decimal');
170
- const warn = jest.fn();
171
- codec.setDecimalLogger({ warn });
172
- for (const c of CASES) codec.decodeDecimal(compactOnly(c));
173
- expect(warn).toHaveBeenCalledTimes(0);
174
- });
175
- });
176
-
177
- test('three string-only prices read through the Price wrapper warn exactly once', () => {
178
- jest.isolateModules(() => {
179
- // The same isolated registry: Price loads this codec instance.
180
- // eslint-disable-next-line @typescript-eslint/no-var-requires
181
- const codec = require('./decimal');
182
- const warn = jest.fn();
183
- codec.setDecimalLogger({ warn });
184
- // eslint-disable-next-line @typescript-eslint/no-var-requires
185
- const { PriceProto } = require('../../../fintekkers/models/price/price_pb');
186
- // eslint-disable-next-line @typescript-eslint/no-var-requires
187
- const Price = require('../price/Price').default;
188
- const values = ['100.25', '-0.50', '1E+3'];
189
- const read = values.map(s => new Price(
190
- new PriceProto().setPrice(new DecimalValueProto().setArbitraryPrecisionValue(s))).getPrice());
191
- expect(read.map((d: Decimal) => d.toString())).toEqual(['100.25', '-0.5', '1000']);
192
- expect(warn).toHaveBeenCalledTimes(1);
193
- expect(warn.mock.calls[0][0]).toContain('arbitrary_precision_value');
194
- });
195
- });
196
- });
197
-
198
- describe('metric 5: writers set both forms', () => {
199
- test.each(CASES.map(c => [c.name, c] as [string, Case]))('%s: both forms are set and decode equal', (_name, c) => {
200
- const proto = encodeDecimal(parseDecimalString(c.string));
201
- expect(proto.getArbitraryPrecisionValue()).toBe(c.canonical);
202
- expect(proto.getUnscaledValue_asU8().length).toBeGreaterThan(0);
203
-
204
- const stringOnly = new DecimalValueProto().setArbitraryPrecisionValue(proto.getArbitraryPrecisionValue());
205
- const compact = new DecimalValueProto()
206
- .setUnscaledValue(proto.getUnscaledValue_asU8())
207
- .setScale(proto.getScale());
208
- const expected: CompactDecimal = { unscaled: expectedUnscaled(c.unscaled_hex), scale: c.scale };
209
- expect(decodeDecimal(stringOnly)).toEqual(expected);
210
- expect(decodeDecimal(compact)).toEqual(expected);
211
- });
212
- });
213
-
214
153
  describe('guardrail: lossless', () => {
215
154
  const NODE = path.join(__dirname, '../../..');
216
155
  const SCANNED = [
@@ -247,14 +186,13 @@ describe('guardrail: lossless', () => {
247
186
  expectInvalid(() => ProtoSerializationUtil.serialize(0.1));
248
187
  expectInvalid(() => ProtoSerializationUtil.serialize(2 ** 53));
249
188
  const proto = ProtoSerializationUtil.serialize(42) as DecimalValueProto;
250
- expect(proto.getArbitraryPrecisionValue()).toBe('42');
251
189
  expect(hex(proto.getUnscaledValue_asU8())).toBe('2a');
252
190
  expect(proto.getScale()).toBe(0);
253
191
  });
254
192
 
255
- test('serialize(Decimal) writes both forms; deserialize returns a Decimal', () => {
193
+ test('serialize(Decimal) writes the compact form; deserialize returns a Decimal', () => {
256
194
  const proto = ProtoSerializationUtil.serialize(new Decimal('-123.45')) as DecimalValueProto;
257
- expect(proto.getArbitraryPrecisionValue()).toBe('-123.45');
195
+ expect(toCanonicalString(decodeDecimal(proto))).toBe('-123.45');
258
196
  expect(hex(proto.getUnscaledValue_asU8())).toBe('cfc7');
259
197
 
260
198
  const big = CASES.find(c => c.name === 'two_pow_127')!;