@fintekkers/ledger-models 0.4.37 → 0.4.39
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.
- package/node/fintekkers/models/portfolio/portfolio_pb.d.ts +13 -0
- package/node/fintekkers/models/portfolio/portfolio_pb.js +123 -1
- package/node/fintekkers/models/position/position_filter_pb.d.ts +13 -0
- package/node/fintekkers/models/position/position_filter_pb.js +123 -1
- package/node/fintekkers/models/position/position_pb.d.ts +13 -0
- package/node/fintekkers/models/position/position_pb.js +123 -1
- package/node/fintekkers/models/price/price_pb.d.ts +13 -0
- package/node/fintekkers/models/price/price_pb.js +123 -1
- package/node/fintekkers/models/security/bond/issuance_pb.d.ts +13 -0
- package/node/fintekkers/models/security/bond/issuance_pb.js +123 -1
- package/node/fintekkers/models/security/identifier/identifier_pb.d.ts +13 -0
- package/node/fintekkers/models/security/identifier/identifier_pb.js +123 -1
- package/node/fintekkers/models/security/index_composition_pb.d.ts +13 -0
- package/node/fintekkers/models/security/index_composition_pb.js +123 -1
- package/node/fintekkers/models/security/security_pb.d.ts +13 -0
- package/node/fintekkers/models/security/security_pb.js +123 -1
- package/node/fintekkers/models/security/tenor_pb.d.ts +13 -0
- package/node/fintekkers/models/security/tenor_pb.js +123 -1
- package/node/fintekkers/models/strategy/strategy_allocation_pb.d.ts +13 -0
- package/node/fintekkers/models/strategy/strategy_allocation_pb.js +123 -1
- package/node/fintekkers/models/strategy/strategy_pb.d.ts +13 -0
- package/node/fintekkers/models/strategy/strategy_pb.js +123 -1
- package/node/fintekkers/models/transaction/transaction_pb.d.ts +13 -0
- package/node/fintekkers/models/transaction/transaction_pb.js +123 -1
- package/node/fintekkers/models/util/api/api_key_pb.d.ts +13 -0
- package/node/fintekkers/models/util/api/api_key_pb.js +123 -1
- package/node/fintekkers/models/util/date_range_pb.d.ts +13 -0
- package/node/fintekkers/models/util/date_range_pb.js +123 -1
- package/node/fintekkers/models/util/decimal_value_pb.d.ts +2 -0
- package/node/fintekkers/models/util/lock/node_partition_pb.d.ts +13 -0
- package/node/fintekkers/models/util/lock/node_partition_pb.js +123 -1
- package/node/fintekkers/models/util/lock/node_state_pb.d.ts +13 -0
- package/node/fintekkers/models/util/lock/node_state_pb.js +123 -1
- package/node/fintekkers/models/util/object_type_grpc_pb.js +1 -0
- package/node/fintekkers/models/util/object_type_pb.d.ts +63 -0
- package/node/fintekkers/models/util/object_type_pb.js +109 -0
- package/node/fintekkers/requests/index_composition/create_index_composition_request_pb.d.ts +25 -0
- package/node/fintekkers/requests/index_composition/create_index_composition_request_pb.js +244 -2
- package/node/fintekkers/requests/index_composition/get_index_composition_request_pb.d.ts +25 -0
- package/node/fintekkers/requests/index_composition/get_index_composition_request_pb.js +244 -2
- package/node/fintekkers/requests/portfolio/create_portfolio_request_pb.d.ts +13 -0
- package/node/fintekkers/requests/portfolio/create_portfolio_request_pb.js +123 -1
- package/node/fintekkers/requests/portfolio/create_portfolio_response_pb.d.ts +13 -0
- package/node/fintekkers/requests/portfolio/create_portfolio_response_pb.js +123 -1
- package/node/fintekkers/requests/portfolio/query_portfolio_request_pb.d.ts +13 -0
- package/node/fintekkers/requests/portfolio/query_portfolio_request_pb.js +123 -1
- package/node/fintekkers/requests/portfolio/query_portfolio_response_pb.d.ts +13 -0
- package/node/fintekkers/requests/portfolio/query_portfolio_response_pb.js +123 -1
- package/node/fintekkers/requests/position/query_position_request_pb.d.ts +13 -0
- package/node/fintekkers/requests/position/query_position_request_pb.js +123 -1
- package/node/fintekkers/requests/position/query_position_response_pb.d.ts +13 -0
- package/node/fintekkers/requests/position/query_position_response_pb.js +123 -1
- package/node/fintekkers/requests/price/create_price_request_pb.d.ts +13 -0
- package/node/fintekkers/requests/price/create_price_request_pb.js +123 -1
- package/node/fintekkers/requests/price/create_price_response_pb.d.ts +13 -0
- package/node/fintekkers/requests/price/create_price_response_pb.js +123 -1
- package/node/fintekkers/requests/price/query_price_request_pb.d.ts +13 -0
- package/node/fintekkers/requests/price/query_price_request_pb.js +123 -1
- package/node/fintekkers/requests/price/query_price_response_pb.d.ts +13 -0
- package/node/fintekkers/requests/price/query_price_response_pb.js +123 -1
- package/node/fintekkers/requests/security/create_security_request_pb.d.ts +13 -0
- package/node/fintekkers/requests/security/create_security_request_pb.js +123 -1
- package/node/fintekkers/requests/security/create_security_response_pb.d.ts +13 -0
- package/node/fintekkers/requests/security/create_security_response_pb.js +123 -1
- package/node/fintekkers/requests/security/get_field_values_request_pb.d.ts +13 -0
- package/node/fintekkers/requests/security/get_field_values_request_pb.js +123 -1
- package/node/fintekkers/requests/security/get_field_values_response_pb.d.ts +13 -0
- package/node/fintekkers/requests/security/get_field_values_response_pb.js +123 -1
- package/node/fintekkers/requests/security/get_fields_response_pb.d.ts +13 -0
- package/node/fintekkers/requests/security/get_fields_response_pb.js +123 -1
- package/node/fintekkers/requests/security/query_security_request_pb.d.ts +13 -0
- package/node/fintekkers/requests/security/query_security_request_pb.js +123 -1
- package/node/fintekkers/requests/security/query_security_response_pb.d.ts +13 -0
- package/node/fintekkers/requests/security/query_security_response_pb.js +123 -1
- package/node/fintekkers/requests/transaction/create_transaction_request_pb.d.ts +13 -0
- package/node/fintekkers/requests/transaction/create_transaction_request_pb.js +123 -1
- package/node/fintekkers/requests/transaction/create_transaction_response_pb.d.ts +13 -0
- package/node/fintekkers/requests/transaction/create_transaction_response_pb.js +123 -1
- package/node/fintekkers/requests/transaction/query_transaction_request_pb.d.ts +13 -0
- package/node/fintekkers/requests/transaction/query_transaction_request_pb.js +123 -1
- package/node/fintekkers/requests/transaction/query_transaction_response_pb.d.ts +13 -0
- package/node/fintekkers/requests/transaction/query_transaction_response_pb.js +123 -1
- package/node/fintekkers/requests/util/delete_request_pb.d.ts +25 -0
- package/node/fintekkers/requests/util/delete_request_pb.js +244 -2
- package/node/fintekkers/requests/util/lock/lock_request_pb.d.ts +13 -0
- package/node/fintekkers/requests/util/lock/lock_request_pb.js +123 -1
- package/node/fintekkers/requests/util/lock/lock_response_pb.d.ts +13 -0
- package/node/fintekkers/requests/util/lock/lock_response_pb.js +123 -1
- package/node/fintekkers/requests/valuation/curve_request_pb.d.ts +13 -0
- package/node/fintekkers/requests/valuation/curve_request_pb.js +123 -1
- package/node/fintekkers/requests/valuation/curve_response_pb.d.ts +13 -0
- package/node/fintekkers/requests/valuation/curve_response_pb.js +123 -1
- package/node/fintekkers/requests/valuation/valuation_request_pb.d.ts +13 -0
- package/node/fintekkers/requests/valuation/valuation_request_pb.js +123 -1
- package/node/fintekkers/requests/valuation/valuation_response_pb.d.ts +13 -0
- package/node/fintekkers/requests/valuation/valuation_response_pb.js +123 -1
- package/node/wrappers/models/position/position.d.ts +1 -1
- package/node/wrappers/models/position/position.js.map +1 -1
- package/node/wrappers/models/position/position.test.js +2 -2
- package/node/wrappers/models/position/position.test.js.map +1 -1
- package/node/wrappers/models/position/position.test.ts +2 -2
- package/node/wrappers/models/position/position.ts +2 -2
- package/node/wrappers/models/position/position_matcher.js +1 -0
- package/node/wrappers/models/position/position_matcher.js.map +1 -0
- package/node/wrappers/models/position/position_matcher.test.js +1 -0
- package/node/wrappers/models/position/position_matcher.test.js.map +1 -0
- package/node/wrappers/models/position/positionfilter.js +3 -2
- package/node/wrappers/models/position/positionfilter.js.map +1 -1
- package/node/wrappers/models/position/positionfilter.ts +3 -2
- package/node/wrappers/models/price/Price.js +20 -12
- package/node/wrappers/models/price/Price.js.map +1 -1
- package/node/wrappers/models/price/Price.ts +19 -10
- package/node/wrappers/models/price/price_rules.d.ts +2 -2
- package/node/wrappers/models/price/price_rules.js +6 -4
- package/node/wrappers/models/price/price_rules.js.map +1 -1
- package/node/wrappers/models/price/price_rules.ts +5 -3
- package/node/wrappers/models/security/BondSecurity.d.ts +1 -1
- package/node/wrappers/models/security/BondSecurity.js +5 -5
- package/node/wrappers/models/security/BondSecurity.js.map +1 -1
- package/node/wrappers/models/security/BondSecurity.ts +5 -4
- package/node/wrappers/models/security/FloatingRateNote.js +2 -2
- package/node/wrappers/models/security/FloatingRateNote.js.map +1 -1
- package/node/wrappers/models/security/FloatingRateNote.ts +2 -1
- package/node/wrappers/models/security/Issuance.js +3 -6
- package/node/wrappers/models/security/Issuance.js.map +1 -1
- package/node/wrappers/models/security/Issuance.ts +3 -2
- package/node/wrappers/models/security/MortgageBackedSecurity.js +7 -7
- package/node/wrappers/models/security/MortgageBackedSecurity.js.map +1 -1
- package/node/wrappers/models/security/MortgageBackedSecurity.ts +7 -6
- package/node/wrappers/models/security/TIPSBond.js +2 -2
- package/node/wrappers/models/security/TIPSBond.js.map +1 -1
- package/node/wrappers/models/security/TIPSBond.ts +2 -1
- package/node/wrappers/models/security/security_rules.js +10 -12
- package/node/wrappers/models/security/security_rules.js.map +1 -1
- package/node/wrappers/models/security/security_rules.ts +9 -9
- package/node/wrappers/models/transaction/transaction.js +20 -14
- package/node/wrappers/models/transaction/transaction.js.map +1 -1
- package/node/wrappers/models/transaction/transaction.ts +20 -11
- package/node/wrappers/models/transaction/transaction_constructor.test.js +29 -0
- package/node/wrappers/models/transaction/transaction_constructor.test.js.map +1 -1
- package/node/wrappers/models/utils/decimal.d.ts +96 -0
- package/node/wrappers/models/utils/decimal.js +328 -0
- package/node/wrappers/models/utils/decimal.js.map +1 -0
- package/node/wrappers/models/utils/decimal.legacy.test.d.ts +1 -0
- package/node/wrappers/models/utils/decimal.legacy.test.js +174 -0
- package/node/wrappers/models/utils/decimal.legacy.test.js.map +1 -0
- package/node/wrappers/models/utils/decimal.legacy.test.ts +158 -0
- package/node/wrappers/models/utils/decimal.test.d.ts +1 -0
- package/node/wrappers/models/utils/decimal.test.js +258 -0
- package/node/wrappers/models/utils/decimal.test.js.map +1 -0
- package/node/wrappers/models/utils/decimal.test.ts +272 -0
- package/node/wrappers/models/utils/decimal.ts +335 -0
- package/node/wrappers/models/utils/decimal.typings.test.d.ts +1 -0
- package/node/wrappers/models/utils/decimal.typings.test.js +39 -0
- package/node/wrappers/models/utils/decimal.typings.test.js.map +1 -0
- package/node/wrappers/models/utils/decimal.typings.test.ts +16 -0
- package/node/wrappers/models/utils/serialization.d.ts +2 -1
- package/node/wrappers/models/utils/serialization.js +12 -2
- package/node/wrappers/models/utils/serialization.js.map +1 -1
- package/node/wrappers/models/utils/serialization.ts +14 -3
- package/node/wrappers/requests/position/QueryPositionRequest.js +3 -2
- package/node/wrappers/requests/position/QueryPositionRequest.js.map +1 -1
- package/node/wrappers/requests/position/QueryPositionRequest.ts +3 -2
- package/node/wrappers/services/portfolio-service/PortfolioService.js +5 -6
- package/node/wrappers/services/portfolio-service/PortfolioService.js.map +1 -1
- package/node/wrappers/services/portfolio-service/PortfolioService.ts +5 -6
- package/node/wrappers/services/price-service/PriceService.js +5 -6
- package/node/wrappers/services/price-service/PriceService.js.map +1 -1
- package/node/wrappers/services/price-service/PriceService.ts +5 -6
- package/node/wrappers/services/security-service/SecurityService.js +5 -6
- package/node/wrappers/services/security-service/SecurityService.js.map +1 -1
- package/node/wrappers/services/security-service/SecurityService.ts +5 -6
- package/node/wrappers/services/security-service/security.maturityLadder.test.js +1 -1
- package/node/wrappers/services/security-service/security.maturityLadder.test.js.map +1 -1
- package/node/wrappers/services/security-service/security.maturityLadder.test.ts +3 -2
- package/node/wrappers/services/transaction-service/TransactionService.js +5 -6
- package/node/wrappers/services/transaction-service/TransactionService.js.map +1 -1
- package/node/wrappers/services/transaction-service/TransactionService.ts +5 -6
- package/node/wrappers/util/link-resolver.js +5 -6
- package/node/wrappers/util/link-resolver.js.map +1 -1
- package/node/wrappers/util/link-resolver.ts +5 -6
- package/node/wrappers/util/object-type-legacy.json +21 -0
- package/node/wrappers/util/object-types.d.ts +62 -0
- package/node/wrappers/util/object-types.js +193 -0
- package/node/wrappers/util/object-types.js.map +1 -0
- package/node/wrappers/util/object-types.test.d.ts +1 -0
- package/node/wrappers/util/object-types.test.js +311 -0
- package/node/wrappers/util/object-types.test.js.map +1 -0
- package/node/wrappers/util/object-types.test.ts +307 -0
- package/node/wrappers/util/object-types.ts +207 -0
- package/package.json +1 -1
- package/tsconfig.json +1 -0
|
@@ -7,6 +7,7 @@ import { SecurityProto, MbsExtensionProto } from '../../../fintekkers/models/sec
|
|
|
7
7
|
import { AgencyProto } from '../../../fintekkers/models/security/bond/agency_pb';
|
|
8
8
|
import { ProductTypeProto } from '../../../fintekkers/models/security/product_type_pb';
|
|
9
9
|
import { Decimal } from 'decimal.js';
|
|
10
|
+
import { decodeDecimal, toDecimalJs, withField } from '../utils/decimal';
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* MBS-specific accessors layered on top of BondSecurity. Pool-level fields
|
|
@@ -40,7 +41,7 @@ class MortgageBackedSecurity extends BondSecurity {
|
|
|
40
41
|
const ext = this.getMbsExtension();
|
|
41
42
|
const v = ext ? ext.getWac() : undefined;
|
|
42
43
|
if (!v) return null;
|
|
43
|
-
return
|
|
44
|
+
return toDecimalJs(withField('mbs_extension.wac', () => decodeDecimal(v)));
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
/** Weighted Average Maturity, in months. */
|
|
@@ -54,7 +55,7 @@ class MortgageBackedSecurity extends BondSecurity {
|
|
|
54
55
|
const ext = this.getMbsExtension();
|
|
55
56
|
const v = ext ? ext.getPassThroughRate() : undefined;
|
|
56
57
|
if (!v) return null;
|
|
57
|
-
return
|
|
58
|
+
return toDecimalJs(withField('mbs_extension.pass_through_rate', () => decodeDecimal(v)));
|
|
58
59
|
}
|
|
59
60
|
|
|
60
61
|
/** Current pool factor (remaining UPB / original face). */
|
|
@@ -62,7 +63,7 @@ class MortgageBackedSecurity extends BondSecurity {
|
|
|
62
63
|
const ext = this.getMbsExtension();
|
|
63
64
|
const v = ext ? ext.getCurrentFactor() : undefined;
|
|
64
65
|
if (!v) return null;
|
|
65
|
-
return
|
|
66
|
+
return toDecimalJs(withField('mbs_extension.current_factor', () => decodeDecimal(v)));
|
|
66
67
|
}
|
|
67
68
|
|
|
68
69
|
/** Original face value at issuance. */
|
|
@@ -70,7 +71,7 @@ class MortgageBackedSecurity extends BondSecurity {
|
|
|
70
71
|
const ext = this.getMbsExtension();
|
|
71
72
|
const v = ext ? ext.getOriginalFaceValue() : undefined;
|
|
72
73
|
if (!v) return null;
|
|
73
|
-
return
|
|
74
|
+
return toDecimalJs(withField('mbs_extension.original_face_value', () => decodeDecimal(v)));
|
|
74
75
|
}
|
|
75
76
|
|
|
76
77
|
/** Current Unpaid Principal Balance. */
|
|
@@ -78,7 +79,7 @@ class MortgageBackedSecurity extends BondSecurity {
|
|
|
78
79
|
const ext = this.getMbsExtension();
|
|
79
80
|
const v = ext ? ext.getCurrentUpb() : undefined;
|
|
80
81
|
if (!v) return null;
|
|
81
|
-
return
|
|
82
|
+
return toDecimalJs(withField('mbs_extension.current_upb', () => decodeDecimal(v)));
|
|
82
83
|
}
|
|
83
84
|
|
|
84
85
|
/** PSA prepayment speed assumption. */
|
|
@@ -86,7 +87,7 @@ class MortgageBackedSecurity extends BondSecurity {
|
|
|
86
87
|
const ext = this.getMbsExtension();
|
|
87
88
|
const v = ext ? ext.getPsaSpeed() : undefined;
|
|
88
89
|
if (!v) return null;
|
|
89
|
-
return
|
|
90
|
+
return toDecimalJs(withField('mbs_extension.psa_speed', () => decodeDecimal(v)));
|
|
90
91
|
}
|
|
91
92
|
|
|
92
93
|
/**
|
|
@@ -28,7 +28,7 @@ const security_pb_1 = require("../../../fintekkers/models/security/security_pb")
|
|
|
28
28
|
const product_type_pb_1 = require("../../../fintekkers/models/security/product_type_pb");
|
|
29
29
|
const index_type_pb_1 = require("../../../fintekkers/models/security/index/index_type_pb");
|
|
30
30
|
const date_1 = require("../utils/date");
|
|
31
|
-
const
|
|
31
|
+
const decimal_1 = require("../utils/decimal");
|
|
32
32
|
/**
|
|
33
33
|
* TIPS-specific accessors layered on top of BondSecurity. The inflation
|
|
34
34
|
* fields live in the parallel tips_extension sub-message; bond_details
|
|
@@ -48,7 +48,7 @@ class TIPSBond extends BondSecurity_1.default {
|
|
|
48
48
|
const v = ext ? ext.getBaseCpi() : undefined;
|
|
49
49
|
if (!v)
|
|
50
50
|
return null;
|
|
51
|
-
return
|
|
51
|
+
return (0, decimal_1.toDecimalJs)((0, decimal_1.withField)('tips_extension.base_cpi', () => (0, decimal_1.decodeDecimal)(v)));
|
|
52
52
|
}
|
|
53
53
|
/** Reference date for the base CPI fixing. */
|
|
54
54
|
getIndexDate() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TIPSBond.js","sourceRoot":"","sources":["TIPSBond.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+DAIwB;AACxB,iFAAoG;AACpG,yFAAuF;AACvF,2FAAyF;AACzF,wCAA2E;
|
|
1
|
+
{"version":3,"file":"TIPSBond.js","sourceRoot":"","sources":["TIPSBond.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+DAIwB;AACxB,iFAAoG;AACpG,yFAAuF;AACvF,2FAAyF;AACzF,wCAA2E;AAE3E,8CAAyE;AAEzE;;;;GAIG;AACH,MAAM,QAAS,SAAQ,sBAAY;IACjC,YAAY,KAAoB;QAC9B,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAEO,gBAAgB;;QACtB,OAAO,MAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,mCAAI,SAAS,CAAC;IACpD,CAAC;IAED,2EAA2E;IAC3E,UAAU;QACR,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7C,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACpB,OAAO,IAAA,qBAAW,EAAC,IAAA,mBAAS,EAAC,yBAAyB,EAAE,GAAG,EAAE,CAAC,IAAA,uBAAa,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,8CAA8C;IAC9C,YAAY;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/C,OAAO,IAAA,2BAAoB,EAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,gEAAgE;IAChE,qBAAqB;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpC,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,8BAAc,CAAC,kBAAkB,CAAC;IAC/E,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAIvB;QACC,MAAM,IAAI,GAAG,IAAA,+BAAgB,EAAC,IAAI,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,gCAAkB,EAAE;aAClC,UAAU,CAAC,IAAA,6BAAc,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACxC,YAAY,CAAC,IAAA,2BAAoB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAClD,qBAAqB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAClD,OAAO,IAAI,2BAAa,EAAE;aACvB,cAAc,CAAC,kCAAgB,CAAC,IAAI,CAAC;aACrC,cAAc,CAAC,IAAI,CAAC;aACpB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF;AAED,kBAAe,QAAQ,CAAC"}
|
|
@@ -8,6 +8,7 @@ import { ProductTypeProto } from '../../../fintekkers/models/security/product_ty
|
|
|
8
8
|
import { IndexTypeProto } from '../../../fintekkers/models/security/index/index_type_pb';
|
|
9
9
|
import { dateToLocalDateProto, localDateProtoToDate } from '../utils/date';
|
|
10
10
|
import { Decimal } from 'decimal.js';
|
|
11
|
+
import { decodeDecimal, toDecimalJs, withField } from '../utils/decimal';
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* TIPS-specific accessors layered on top of BondSecurity. The inflation
|
|
@@ -28,7 +29,7 @@ class TIPSBond extends BondSecurity {
|
|
|
28
29
|
const ext = this.getTipsExtension();
|
|
29
30
|
const v = ext ? ext.getBaseCpi() : undefined;
|
|
30
31
|
if (!v) return null;
|
|
31
|
-
return
|
|
32
|
+
return toDecimalJs(withField('tips_extension.base_cpi', () => decodeDecimal(v)));
|
|
32
33
|
}
|
|
33
34
|
|
|
34
35
|
/** Reference date for the base CPI fixing. */
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.requireValid = exports.validate = exports.COUPON_RATE = void 0;
|
|
7
|
-
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
8
4
|
const product_type_pb_1 = require("../../../fintekkers/models/security/product_type_pb");
|
|
9
5
|
const errors_1 = require("../errors");
|
|
10
6
|
const uuid_1 = require("../utils/uuid");
|
|
7
|
+
const decimal_1 = require("../utils/decimal");
|
|
11
8
|
/**
|
|
12
9
|
* Security input rules: JS counterpart of Java's SecurityRules
|
|
13
10
|
* (docs/adr/typed-input-errors.md). Pure: proto in, violations out.
|
|
@@ -45,23 +42,24 @@ exports.requireValid = requireValid;
|
|
|
45
42
|
* parse is skipped.
|
|
46
43
|
*/
|
|
47
44
|
function tbillCouponViolation(proto, id) {
|
|
48
|
-
var _a
|
|
45
|
+
var _a;
|
|
49
46
|
if (proto.getProductType() !== product_type_pb_1.ProductTypeProto.TBILL)
|
|
50
47
|
return undefined;
|
|
51
|
-
const raw = (
|
|
52
|
-
if (!raw)
|
|
48
|
+
const raw = (_a = proto.getBondDetails()) === null || _a === void 0 ? void 0 : _a.getCouponRate();
|
|
49
|
+
if (!raw || (0, decimal_1.isUnsetDecimal)(raw))
|
|
53
50
|
return undefined;
|
|
54
51
|
let coupon;
|
|
55
52
|
try {
|
|
56
|
-
coupon =
|
|
53
|
+
coupon = (0, decimal_1.decodeDecimal)(raw);
|
|
57
54
|
}
|
|
58
55
|
catch (e) {
|
|
59
|
-
|
|
60
|
-
|
|
56
|
+
if (e instanceof errors_1.ModelValidationError)
|
|
57
|
+
return undefined;
|
|
58
|
+
throw e;
|
|
61
59
|
}
|
|
62
|
-
if (
|
|
60
|
+
if (coupon.unscaled === BigInt(0))
|
|
63
61
|
return undefined;
|
|
64
|
-
return (0, errors_1.violation)(exports.COUPON_RATE, id, `coupon_rate must be null or 0 for a TBILL: coupon_rate=${
|
|
62
|
+
return (0, errors_1.violation)(exports.COUPON_RATE, id, `coupon_rate must be null or 0 for a TBILL: coupon_rate=${(0, decimal_1.toCanonicalString)(coupon)}`);
|
|
65
63
|
}
|
|
66
64
|
/** The security's UUID, or undefined when it has none or it is not 16 bytes. */
|
|
67
65
|
function objectIdOf(proto) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security_rules.js","sourceRoot":"","sources":["security_rules.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"security_rules.js","sourceRoot":"","sources":["security_rules.ts"],"names":[],"mappings":";;;AAAA,yFAAuF;AAGvF,sCAA4D;AAC5D,wCAAqC;AACrC,8CAAoG;AAEpG;;;;;;;;GAQG;AAEU,QAAA,WAAW,GAAG,0BAA0B,CAAC;AAEtD;;;GAGG;AACH,SAAgB,QAAQ,CAAC,KAAoB;IACzC,IAAI,KAAK,CAAC,SAAS,EAAE;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,GAAG,GAA0B,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9D,IAAI,MAAM;QAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,GAAG,CAAC;AACf,CAAC;AAND,4BAMC;AAED,oFAAoF;AACpF,SAAgB,YAAY,CAAC,KAAoB;IAC7C,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,6BAAoB,CAAC,UAAU,CAAC,CAAC;AAC1E,CAAC;AAHD,oCAGC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,KAAoB,EAAE,EAAoB;;IACpE,IAAI,KAAK,CAAC,cAAc,EAAE,KAAK,kCAAgB,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IACxE,MAAM,GAAG,GAAG,MAAA,KAAK,CAAC,cAAc,EAAE,0CAAE,aAAa,EAAE,CAAC;IACpD,IAAI,CAAC,GAAG,IAAI,IAAA,wBAAc,EAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAClD,IAAI,MAAsB,CAAC;IAC3B,IAAI;QACA,MAAM,GAAG,IAAA,uBAAa,EAAC,GAAG,CAAC,CAAC;KAC/B;IAAC,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,YAAY,6BAAoB;YAAE,OAAO,SAAS,CAAC;QACxD,MAAM,CAAC,CAAC;KACX;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACpD,OAAO,IAAA,kBAAS,EAAC,mBAAW,EAAE,EAAE,EAAE,0DAA0D,IAAA,2BAAiB,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC7H,CAAC;AAED,gFAAgF;AAChF,SAAS,UAAU,CAAC,KAAoB;;IACpC,MAAM,GAAG,GAAG,MAAA,KAAK,CAAC,OAAO,EAAE,0CAAE,eAAe,EAAE,CAAC;IAC/C,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,WAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACxE,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import Decimal from 'decimal.js';
|
|
2
1
|
import { ProductTypeProto } from '../../../fintekkers/models/security/product_type_pb';
|
|
3
2
|
import { SecurityProto } from '../../../fintekkers/models/security/security_pb';
|
|
4
3
|
import { FieldViolationProto } from '../../../fintekkers/requests/util/errors/field_violation_pb';
|
|
5
4
|
import { ModelValidationError, violation } from '../errors';
|
|
6
5
|
import { UUID } from '../utils/uuid';
|
|
6
|
+
import { decodeDecimal, isUnsetDecimal, toCanonicalString, CompactDecimal } from '../utils/decimal';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Security input rules: JS counterpart of Java's SecurityRules
|
|
@@ -42,17 +42,17 @@ export function requireValid(proto: SecurityProto): void {
|
|
|
42
42
|
*/
|
|
43
43
|
function tbillCouponViolation(proto: SecurityProto, id: UUID | undefined): FieldViolationProto | undefined {
|
|
44
44
|
if (proto.getProductType() !== ProductTypeProto.TBILL) return undefined;
|
|
45
|
-
const raw = proto.getBondDetails()?.getCouponRate()
|
|
46
|
-
if (!raw) return undefined;
|
|
47
|
-
let coupon:
|
|
45
|
+
const raw = proto.getBondDetails()?.getCouponRate();
|
|
46
|
+
if (!raw || isUnsetDecimal(raw)) return undefined;
|
|
47
|
+
let coupon: CompactDecimal;
|
|
48
48
|
try {
|
|
49
|
-
coupon =
|
|
49
|
+
coupon = decodeDecimal(raw);
|
|
50
50
|
} catch (e) {
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
if (e instanceof ModelValidationError) return undefined;
|
|
52
|
+
throw e;
|
|
53
53
|
}
|
|
54
|
-
if (
|
|
55
|
-
return violation(COUPON_RATE, id, `coupon_rate must be null or 0 for a TBILL: coupon_rate=${
|
|
54
|
+
if (coupon.unscaled === BigInt(0)) return undefined;
|
|
55
|
+
return violation(COUPON_RATE, id, `coupon_rate must be null or 0 for a TBILL: coupon_rate=${toCanonicalString(coupon)}`);
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
/** The security's UUID, or undefined when it has none or it is not 16 bytes. */
|
|
@@ -41,7 +41,6 @@ const strategy_allocation_pb_1 = require("../../../fintekkers/models/strategy/st
|
|
|
41
41
|
const transaction_pb_1 = require("../../../fintekkers/models/transaction/transaction_pb");
|
|
42
42
|
const field_pb_1 = require("../../../fintekkers/models/position/field_pb");
|
|
43
43
|
const position_status_pb_1 = require("../../../fintekkers/models/position/position_status_pb");
|
|
44
|
-
const decimal_value_pb_1 = require("../../../fintekkers/models/util/decimal_value_pb");
|
|
45
44
|
const security_1 = __importDefault(require("../security/security"));
|
|
46
45
|
const portfolio_1 = __importDefault(require("../portfolio/portfolio"));
|
|
47
46
|
const Price_1 = __importDefault(require("../price/Price"));
|
|
@@ -52,7 +51,10 @@ const uuid_1 = require("../utils/uuid");
|
|
|
52
51
|
const date_1 = require("../utils/date");
|
|
53
52
|
const decimal_js_1 = require("decimal.js");
|
|
54
53
|
const LinkCacheModule = __importStar(require("../../util/link-cache"));
|
|
54
|
+
const decimal_1 = require("../utils/decimal");
|
|
55
55
|
const link_resolver_1 = __importDefault(require("../../util/link-resolver"));
|
|
56
|
+
const object_type_pb_1 = require("../../../fintekkers/models/util/object_type_pb");
|
|
57
|
+
const object_types_1 = require("../../util/object-types");
|
|
56
58
|
class Transaction {
|
|
57
59
|
constructor(protoOrParams) {
|
|
58
60
|
if (protoOrParams instanceof transaction_pb_1.TransactionProto) {
|
|
@@ -131,8 +133,7 @@ class Transaction {
|
|
|
131
133
|
*/
|
|
132
134
|
buildProtoFromParams(params) {
|
|
133
135
|
const transactionProto = new transaction_pb_1.TransactionProto();
|
|
134
|
-
transactionProto.
|
|
135
|
-
transactionProto.setVersion('0.0.1');
|
|
136
|
+
(0, object_types_1.stamp)(transactionProto, object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_TRANSACTION, 'Transaction', '0.0.1');
|
|
136
137
|
transactionProto.setUuid(uuid_1.UUID.random().toUUIDProto());
|
|
137
138
|
// Convert asOfDate to ZonedDateTime and set on transaction
|
|
138
139
|
const asOfZonedDateTime = datetime_1.ZonedDateTime.from(params.asOfDate);
|
|
@@ -148,13 +149,10 @@ class Transaction {
|
|
|
148
149
|
transactionProto.setTransactionType(params.transactionType.proto);
|
|
149
150
|
transactionProto.setPortfolio(params.portfolio.proto);
|
|
150
151
|
// Convert quantity to DecimalValueProto
|
|
151
|
-
|
|
152
|
-
quantityDecimal.setArbitraryPrecisionValue(params.quantity.toString());
|
|
153
|
-
transactionProto.setQuantity(quantityDecimal);
|
|
152
|
+
transactionProto.setQuantity((0, decimal_1.encodeDecimal)((0, decimal_1.fromDecimalJs)(params.quantity)));
|
|
154
153
|
// Create and set an empty StrategyAllocationProto
|
|
155
154
|
const strategyAllocationProto = new strategy_allocation_pb_1.StrategyAllocationProto();
|
|
156
|
-
strategyAllocationProto.
|
|
157
|
-
strategyAllocationProto.setVersion('0.0.1');
|
|
155
|
+
(0, object_types_1.stamp)(strategyAllocationProto, object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_STRATEGY_ALLOCATION, 'StrategyAllocation', '0.0.1');
|
|
158
156
|
transactionProto.setStrategyAllocation(strategyAllocationProto);
|
|
159
157
|
// Set default position status
|
|
160
158
|
transactionProto.setPositionStatus(position_status_pb_1.PositionStatusProto.EXECUTED);
|
|
@@ -300,7 +298,7 @@ class Transaction {
|
|
|
300
298
|
const quantity = this.proto.getQuantity();
|
|
301
299
|
if (!quantity)
|
|
302
300
|
throw new Error("Quantity is required");
|
|
303
|
-
return
|
|
301
|
+
return (0, decimal_1.toDecimalJs)((0, decimal_1.withField)('quantity', () => (0, decimal_1.decodeDecimal)(quantity)));
|
|
304
302
|
}
|
|
305
303
|
getIssuerName() {
|
|
306
304
|
return this.getSecurity().getIssuerName();
|
|
@@ -376,7 +374,6 @@ class Transaction {
|
|
|
376
374
|
* @returns The created cash transaction
|
|
377
375
|
*/
|
|
378
376
|
static createCashTransaction(cashSecurity, parentTransaction) {
|
|
379
|
-
var _a, _b;
|
|
380
377
|
// Determine transaction type based on parent
|
|
381
378
|
let cashTransactionType;
|
|
382
379
|
const parentType = parentTransaction.getTransactionType().proto;
|
|
@@ -410,7 +407,7 @@ class Transaction {
|
|
|
410
407
|
if (!faceValue)
|
|
411
408
|
throw new Error("Face value is required for bond cash impact calculation");
|
|
412
409
|
const priceProto = parentTransaction.getPrice();
|
|
413
|
-
const priceValue =
|
|
410
|
+
const priceValue = priceOrZero(priceProto.getPrice());
|
|
414
411
|
const scaledPrice = priceValue.mul(priceScaleFactor);
|
|
415
412
|
const quantity = parentTransaction.getQuantity();
|
|
416
413
|
const numberBondUnits = quantity.div(faceValue);
|
|
@@ -420,7 +417,7 @@ class Transaction {
|
|
|
420
417
|
else {
|
|
421
418
|
// For other securities: quantity * price
|
|
422
419
|
const priceProto = parentTransaction.getPrice();
|
|
423
|
-
const priceValue =
|
|
420
|
+
const priceValue = priceOrZero(priceProto.getPrice());
|
|
424
421
|
bookAmount = parentTransaction.getQuantity().mul(priceValue);
|
|
425
422
|
}
|
|
426
423
|
// Get asOf ZonedDateTime
|
|
@@ -457,7 +454,6 @@ class Transaction {
|
|
|
457
454
|
* @param cashSecurity - The cash security to use for the cash impact
|
|
458
455
|
*/
|
|
459
456
|
static addMaturationTransaction(transaction, transactionType, cashSecurity) {
|
|
460
|
-
var _a;
|
|
461
457
|
// Lazy import to avoid circular dependency
|
|
462
458
|
const BondSecurity = require('../security/BondSecurity').default;
|
|
463
459
|
// Cast security to BondSecurity
|
|
@@ -471,7 +467,7 @@ class Transaction {
|
|
|
471
467
|
settlementDate.setDate(settlementDate.getDate() + 2);
|
|
472
468
|
// Get price as Decimal
|
|
473
469
|
const priceProto = transaction.getPrice();
|
|
474
|
-
const priceValue =
|
|
470
|
+
const priceValue = priceOrZero(priceProto.getPrice());
|
|
475
471
|
// Get asOf ZonedDateTime
|
|
476
472
|
const asOf = transaction.getAsOf();
|
|
477
473
|
// Create maturation transaction
|
|
@@ -534,6 +530,16 @@ class Transaction {
|
|
|
534
530
|
}
|
|
535
531
|
}
|
|
536
532
|
}
|
|
533
|
+
/**
|
|
534
|
+
* The price value, or 0 when the price is unset (kept from before LM-306 for
|
|
535
|
+
* the derived cash and maturation transactions only: unset is not zero
|
|
536
|
+
* elsewhere).
|
|
537
|
+
*/
|
|
538
|
+
function priceOrZero(p) {
|
|
539
|
+
if (!p || (0, decimal_1.isUnsetDecimal)(p))
|
|
540
|
+
return new decimal_js_1.Decimal(0);
|
|
541
|
+
return (0, decimal_1.toDecimalJs)((0, decimal_1.withField)('price.price', () => (0, decimal_1.decodeDecimal)(p)));
|
|
542
|
+
}
|
|
537
543
|
exports.default = Transaction;
|
|
538
544
|
// private static Transaction createCashTransaction(CashSecurity cashSecurity, Transaction parentTransaction) {
|
|
539
545
|
// TransactionType transactionType = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["transaction.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["transaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,10 @@ import { UUID } from "../utils/uuid";
|
|
|
20
20
|
import { dateToLocalDateProto, localDateProtoToDate } from "../utils/date";
|
|
21
21
|
import { Decimal } from "decimal.js";
|
|
22
22
|
import * as LinkCacheModule from "../../util/link-cache";
|
|
23
|
+
import { decodeDecimal, encodeDecimal, fromDecimalJs, isUnsetDecimal, toDecimalJs, withField } from "../utils/decimal";
|
|
23
24
|
import LinkResolver from "../../util/link-resolver";
|
|
25
|
+
import { ObjectTypeProto } from '../../../fintekkers/models/util/object_type_pb';
|
|
26
|
+
import { stamp } from '../../util/object-types';
|
|
24
27
|
|
|
25
28
|
interface TransactionConstructorParams {
|
|
26
29
|
tradeDate: Date;
|
|
@@ -110,8 +113,7 @@ class Transaction {
|
|
|
110
113
|
*/
|
|
111
114
|
private buildProtoFromParams(params: TransactionConstructorParams): TransactionProto {
|
|
112
115
|
const transactionProto = new TransactionProto();
|
|
113
|
-
transactionProto.
|
|
114
|
-
transactionProto.setVersion('0.0.1');
|
|
116
|
+
stamp(transactionProto, ObjectTypeProto.OBJECT_TYPE_TRANSACTION, 'Transaction', '0.0.1');
|
|
115
117
|
transactionProto.setUuid(UUID.random().toUUIDProto());
|
|
116
118
|
|
|
117
119
|
// Convert asOfDate to ZonedDateTime and set on transaction
|
|
@@ -132,14 +134,11 @@ class Transaction {
|
|
|
132
134
|
transactionProto.setPortfolio(params.portfolio.proto);
|
|
133
135
|
|
|
134
136
|
// Convert quantity to DecimalValueProto
|
|
135
|
-
|
|
136
|
-
quantityDecimal.setArbitraryPrecisionValue(params.quantity.toString());
|
|
137
|
-
transactionProto.setQuantity(quantityDecimal);
|
|
137
|
+
transactionProto.setQuantity(encodeDecimal(fromDecimalJs(params.quantity)));
|
|
138
138
|
|
|
139
139
|
// Create and set an empty StrategyAllocationProto
|
|
140
140
|
const strategyAllocationProto = new StrategyAllocationProto();
|
|
141
|
-
strategyAllocationProto.
|
|
142
|
-
strategyAllocationProto.setVersion('0.0.1');
|
|
141
|
+
stamp(strategyAllocationProto, ObjectTypeProto.OBJECT_TYPE_STRATEGY_ALLOCATION, 'StrategyAllocation', '0.0.1');
|
|
143
142
|
transactionProto.setStrategyAllocation(strategyAllocationProto);
|
|
144
143
|
|
|
145
144
|
// Set default position status
|
|
@@ -294,7 +293,7 @@ class Transaction {
|
|
|
294
293
|
this.ensureHydrated();
|
|
295
294
|
const quantity = this.proto.getQuantity();
|
|
296
295
|
if (!quantity) throw new Error("Quantity is required");
|
|
297
|
-
return
|
|
296
|
+
return toDecimalJs(withField('quantity', () => decodeDecimal(quantity)));
|
|
298
297
|
}
|
|
299
298
|
|
|
300
299
|
getIssuerName(): string {
|
|
@@ -416,7 +415,7 @@ class Transaction {
|
|
|
416
415
|
if (!faceValue) throw new Error("Face value is required for bond cash impact calculation");
|
|
417
416
|
|
|
418
417
|
const priceProto = parentTransaction.getPrice();
|
|
419
|
-
const priceValue =
|
|
418
|
+
const priceValue = priceOrZero(priceProto.getPrice());
|
|
420
419
|
const scaledPrice = priceValue.mul(priceScaleFactor);
|
|
421
420
|
|
|
422
421
|
const quantity = parentTransaction.getQuantity();
|
|
@@ -427,7 +426,7 @@ class Transaction {
|
|
|
427
426
|
} else {
|
|
428
427
|
// For other securities: quantity * price
|
|
429
428
|
const priceProto = parentTransaction.getPrice();
|
|
430
|
-
const priceValue =
|
|
429
|
+
const priceValue = priceOrZero(priceProto.getPrice());
|
|
431
430
|
bookAmount = parentTransaction.getQuantity().mul(priceValue);
|
|
432
431
|
}
|
|
433
432
|
|
|
@@ -485,7 +484,7 @@ class Transaction {
|
|
|
485
484
|
|
|
486
485
|
// Get price as Decimal
|
|
487
486
|
const priceProto = transaction.getPrice();
|
|
488
|
-
const priceValue =
|
|
487
|
+
const priceValue = priceOrZero(priceProto.getPrice());
|
|
489
488
|
|
|
490
489
|
// Get asOf ZonedDateTime
|
|
491
490
|
const asOf = transaction.getAsOf();
|
|
@@ -560,6 +559,16 @@ class Transaction {
|
|
|
560
559
|
}
|
|
561
560
|
}
|
|
562
561
|
|
|
562
|
+
/**
|
|
563
|
+
* The price value, or 0 when the price is unset (kept from before LM-306 for
|
|
564
|
+
* the derived cash and maturation transactions only: unset is not zero
|
|
565
|
+
* elsewhere).
|
|
566
|
+
*/
|
|
567
|
+
function priceOrZero(p: DecimalValueProto | undefined): Decimal {
|
|
568
|
+
if (!p || isUnsetDecimal(p)) return new Decimal(0);
|
|
569
|
+
return toDecimalJs(withField('price.price', () => decodeDecimal(p)));
|
|
570
|
+
}
|
|
571
|
+
|
|
563
572
|
export default Transaction;
|
|
564
573
|
|
|
565
574
|
|
|
@@ -9,6 +9,7 @@ const transaction_type_1 = require("./transaction_type");
|
|
|
9
9
|
const transaction_type_pb_1 = require("../../../fintekkers/models/transaction/transaction_type_pb");
|
|
10
10
|
const position_status_pb_1 = require("../../../fintekkers/models/position/position_status_pb");
|
|
11
11
|
const security_1 = __importDefault(require("../security/security"));
|
|
12
|
+
const portfolio_1 = __importDefault(require("../portfolio/portfolio"));
|
|
12
13
|
const security_pb_1 = require("../../../fintekkers/models/security/security_pb");
|
|
13
14
|
const local_date_pb_1 = require("../../../fintekkers/models/util/local_date_pb");
|
|
14
15
|
const decimal_value_pb_1 = require("../../../fintekkers/models/util/decimal_value_pb");
|
|
@@ -21,6 +22,7 @@ const decimal_js_1 = require("decimal.js");
|
|
|
21
22
|
const errors_1 = require("../errors");
|
|
22
23
|
const transaction_pb_1 = require("../../../fintekkers/models/transaction/transaction_pb");
|
|
23
24
|
const portfolio_test_1 = require("../portfolio/portfolio.test");
|
|
25
|
+
const portfolio_pb_1 = require("../../../fintekkers/models/portfolio/portfolio_pb");
|
|
24
26
|
test('test Transaction constructor with parameters', () => {
|
|
25
27
|
testTransactionConstructor();
|
|
26
28
|
});
|
|
@@ -136,4 +138,31 @@ test('a link-mode TransactionProto with no as_of still builds', () => {
|
|
|
136
138
|
const txn = new transaction_1.default(link);
|
|
137
139
|
expect(txn.proto.hasAsOf()).toBe(false);
|
|
138
140
|
});
|
|
141
|
+
// LM-271: a link portfolio with no as_of serializes, on its own and inside a
|
|
142
|
+
// Transaction, and as_of stays unset (never defaulted).
|
|
143
|
+
test('link portfolio with no as_of serializes', () => {
|
|
144
|
+
const uuid = uuid_1.UUID.random();
|
|
145
|
+
const link = new portfolio_pb_1.PortfolioProto();
|
|
146
|
+
link.setUuid(uuid.toUUIDProto());
|
|
147
|
+
link.setIsLink(true);
|
|
148
|
+
const portfolio = new portfolio_1.default(link);
|
|
149
|
+
const copy = portfolio_pb_1.PortfolioProto.deserializeBinary(portfolio.proto.serializeBinary());
|
|
150
|
+
assert(copy.getIsLink());
|
|
151
|
+
assert(!copy.hasAsOf());
|
|
152
|
+
const transaction = new transaction_1.default({
|
|
153
|
+
tradeDate: new Date(2024, 0, 15),
|
|
154
|
+
settlementDate: new Date(2024, 0, 17),
|
|
155
|
+
asOfDate: new Date(2024, 0, 15, 10, 30, 0),
|
|
156
|
+
price: new decimal_js_1.Decimal('100'),
|
|
157
|
+
security: dummySecurity(),
|
|
158
|
+
transactionType: dummyTransactionType(),
|
|
159
|
+
portfolio,
|
|
160
|
+
quantity: new decimal_js_1.Decimal('10'),
|
|
161
|
+
});
|
|
162
|
+
const txnCopy = transaction_pb_1.TransactionProto.deserializeBinary(transaction.proto.serializeBinary());
|
|
163
|
+
const txnPortfolio = txnCopy.getPortfolio();
|
|
164
|
+
assert(txnPortfolio.getIsLink());
|
|
165
|
+
assert(!txnPortfolio.hasAsOf());
|
|
166
|
+
assert(uuid_1.UUID.fromU8Array(txnPortfolio.getUuid().getRawUuid_asU8()).toString() === uuid.toString());
|
|
167
|
+
});
|
|
139
168
|
//# sourceMappingURL=transaction_constructor.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction_constructor.test.js","sourceRoot":"","sources":["transaction_constructor.test.ts"],"names":[],"mappings":";;;;;AAAA,iCAAkC;AAClC,gEAAwC;AACxC,yDAAqD;AACrD,oGAAkG;AAClG,+FAA6F;AAC7F,oEAA4C;
|
|
1
|
+
{"version":3,"file":"transaction_constructor.test.js","sourceRoot":"","sources":["transaction_constructor.test.ts"],"names":[],"mappings":"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"}
|