@fintekkers/ledger-models 0.4.2 → 0.4.3
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/wrappers/models/security/BondSecurity.d.ts +5 -21
- package/node/wrappers/models/security/BondSecurity.fromPricerInputs.test.js +17 -11
- package/node/wrappers/models/security/BondSecurity.fromPricerInputs.test.js.map +1 -1
- package/node/wrappers/models/security/BondSecurity.fromPricerInputs.test.ts +17 -11
- package/node/wrappers/models/security/BondSecurity.js +15 -32
- package/node/wrappers/models/security/BondSecurity.js.map +1 -1
- package/node/wrappers/models/security/BondSecurity.ts +18 -37
- package/node/wrappers/models/security/Issuance.d.ts +3 -5
- package/node/wrappers/models/security/Issuance.js +3 -8
- package/node/wrappers/models/security/Issuance.js.map +1 -1
- package/node/wrappers/models/security/Issuance.test.js +16 -8
- package/node/wrappers/models/security/Issuance.test.js.map +1 -1
- package/node/wrappers/models/security/Issuance.test.ts +10 -2
- package/node/wrappers/models/security/Issuance.ts +6 -12
- package/node/wrappers/models/security/MortgageBackedSecurity.fromPricerInputs.test.js +11 -7
- package/node/wrappers/models/security/MortgageBackedSecurity.fromPricerInputs.test.js.map +1 -1
- package/node/wrappers/models/security/MortgageBackedSecurity.fromPricerInputs.test.ts +12 -8
- package/node/wrappers/models/security/TIPSBond.d.ts +2 -3
- package/node/wrappers/models/security/TIPSBond.js +2 -4
- package/node/wrappers/models/security/TIPSBond.js.map +1 -1
- package/node/wrappers/models/security/TIPSBond.ts +5 -7
- package/node/wrappers/models/security/security.d.ts +38 -12
- package/node/wrappers/models/security/security.js +58 -15
- package/node/wrappers/models/security/security.js.map +1 -1
- package/node/wrappers/models/security/security.test.js +91 -10
- package/node/wrappers/models/security/security.test.js.map +1 -1
- package/node/wrappers/models/security/security.test.ts +106 -11
- package/node/wrappers/models/security/security.ts +64 -16
- package/node/wrappers/models/transaction/transaction.d.ts +2 -3
- package/node/wrappers/models/transaction/transaction.js +23 -21
- package/node/wrappers/models/transaction/transaction.js.map +1 -1
- package/node/wrappers/models/transaction/transaction.ts +22 -21
- package/node/wrappers/models/transaction/transaction_constructor.test.js +4 -2
- package/node/wrappers/models/transaction/transaction_constructor.test.js.map +1 -1
- package/node/wrappers/models/transaction/transaction_constructor.test.ts +10 -8
- package/node/wrappers/models/utils/date.d.ts +13 -1
- package/node/wrappers/models/utils/date.js +26 -1
- package/node/wrappers/models/utils/date.js.map +1 -1
- package/node/wrappers/models/utils/date.ts +25 -1
- package/node/wrappers/services/security-service/security.maturityLadder.test.js +4 -2
- 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/package.json +1 -1
|
@@ -4,12 +4,15 @@ import { UUID } from '../utils/uuid';
|
|
|
4
4
|
import assert = require('assert');
|
|
5
5
|
import Security from './security';
|
|
6
6
|
import BondSecurity from './BondSecurity';
|
|
7
|
+
import IndexSecurity from './IndexSecurity';
|
|
8
|
+
import MortgageBackedSecurity from './MortgageBackedSecurity';
|
|
7
9
|
|
|
8
10
|
import { DecimalValueProto } from '../../../fintekkers/models/util/decimal_value_pb';
|
|
9
|
-
import { SecurityProto, BondDetailsProto } from '../../../fintekkers/models/security/security_pb';
|
|
11
|
+
import { SecurityProto, BondDetailsProto, IndexDetailsProto } from '../../../fintekkers/models/security/security_pb';
|
|
10
12
|
import { ProductTypeProto } from "../../../fintekkers/models/security/product_type_pb";
|
|
11
13
|
import { CouponFrequencyProto } from '../../../fintekkers/models/security/coupon_frequency_pb';
|
|
12
14
|
import { CouponTypeProto } from '../../../fintekkers/models/security/coupon_type_pb';
|
|
15
|
+
import { IndexTypeProto } from '../../../fintekkers/models/security/index/index_type_pb';
|
|
13
16
|
import { SecurityQuantityTypeProto } from '../../../fintekkers/models/security/security_quantity_type_pb';
|
|
14
17
|
|
|
15
18
|
|
|
@@ -20,7 +23,9 @@ test('test the security wrapper', () => {
|
|
|
20
23
|
function testSerialization(): void {
|
|
21
24
|
const security = dummySecurity();
|
|
22
25
|
|
|
23
|
-
|
|
26
|
+
const maturityDate = security.getMaturityDate();
|
|
27
|
+
assert(maturityDate !== null);
|
|
28
|
+
assert(maturityDate.getFullYear() == 2026);
|
|
24
29
|
}
|
|
25
30
|
|
|
26
31
|
test('equity routes to base Security and isBond() returns false', () => {
|
|
@@ -48,25 +53,68 @@ test('Security.getIssueDate returns null on equity (no throw)', () => {
|
|
|
48
53
|
expect(equity.getIssueDate()).toBeNull();
|
|
49
54
|
});
|
|
50
55
|
|
|
51
|
-
test('BondSecurity.getIssueDate returns
|
|
56
|
+
test('BondSecurity.getIssueDate returns Date on bond', () => {
|
|
52
57
|
const bond = dummyBondSecurity();
|
|
53
58
|
if (!bond.isBond()) throw new Error('test setup: expected bond');
|
|
54
59
|
const issueDate = bond.getIssueDate();
|
|
55
60
|
expect(issueDate).not.toBeNull();
|
|
56
|
-
expect(issueDate
|
|
61
|
+
expect(issueDate).toBeInstanceOf(Date);
|
|
62
|
+
expect(issueDate!.getFullYear()).toBe(2021);
|
|
57
63
|
});
|
|
58
64
|
|
|
59
|
-
test('Security.getMaturityDate
|
|
65
|
+
test('Security.getMaturityDate returns null on equity (no throw)', () => {
|
|
60
66
|
const equity = dummyEquity();
|
|
61
|
-
|
|
62
|
-
// loud error if they don't narrow first. Removal happens in Phase 2.
|
|
63
|
-
expect(() => equity.getMaturityDate()).toThrow('Maturity date is required');
|
|
67
|
+
expect(equity.getMaturityDate()).toBeNull();
|
|
64
68
|
});
|
|
65
69
|
|
|
66
70
|
test('BondSecurity.getMaturityDate works on bond (inherited from Security)', () => {
|
|
67
71
|
const bond = dummyBondSecurity();
|
|
68
72
|
if (!bond.isBond()) throw new Error('test setup: expected bond');
|
|
69
|
-
|
|
73
|
+
const maturityDate = bond.getMaturityDate();
|
|
74
|
+
expect(maturityDate).not.toBeNull();
|
|
75
|
+
expect(maturityDate).toBeInstanceOf(Date);
|
|
76
|
+
expect(maturityDate!.getFullYear()).toBe(2026);
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
test('isMbs(): true on MORTGAGE_BACKED, narrows to MortgageBackedSecurity', () => {
|
|
80
|
+
const mbs = dummyMbs();
|
|
81
|
+
expect(mbs.isMbs()).toBe(true);
|
|
82
|
+
if (mbs.isMbs()) {
|
|
83
|
+
// Inside the narrowed branch TS knows mbs: MortgageBackedSecurity.
|
|
84
|
+
expect(mbs.getPoolNumber()).toBe('FN AS1234');
|
|
85
|
+
}
|
|
86
|
+
// Non-MBS bonds return false.
|
|
87
|
+
expect(dummyBondSecurity().isMbs()).toBe(false);
|
|
88
|
+
expect(dummyEquity().isMbs()).toBe(false);
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
test('isIndex(): true on EQUITY_INDEX / CPI_SERIES, narrows to IndexSecurity', () => {
|
|
92
|
+
const idx = dummyIndex();
|
|
93
|
+
expect(idx.isIndex()).toBe(true);
|
|
94
|
+
if (idx.isIndex()) {
|
|
95
|
+
// Inside the narrowed branch TS knows idx: IndexSecurity.
|
|
96
|
+
expect(idx.getIndexType()).toBe(IndexTypeProto.CPI_U);
|
|
97
|
+
}
|
|
98
|
+
expect(dummyBondSecurity().isIndex()).toBe(false);
|
|
99
|
+
expect(dummyEquity().isIndex()).toBe(false);
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
test('isCash(): runtime predicate, true on CURRENCY only', () => {
|
|
103
|
+
expect(dummyCash().isCash()).toBe(true);
|
|
104
|
+
expect(dummyBondSecurity().isCash()).toBe(false);
|
|
105
|
+
expect(dummyEquity().isCash()).toBe(false);
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
test('isEquity(): runtime predicate, true on STOCK descendants', () => {
|
|
109
|
+
expect(dummyEquity().isEquity()).toBe(true);
|
|
110
|
+
expect(dummyBondSecurity().isEquity()).toBe(false);
|
|
111
|
+
expect(dummyCash().isEquity()).toBe(false);
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
test('isFxSpot(): runtime predicate, true on FX_SPOT only', () => {
|
|
115
|
+
expect(dummyFxSpot().isFxSpot()).toBe(true);
|
|
116
|
+
expect(dummyCash().isFxSpot()).toBe(false);
|
|
117
|
+
expect(dummyEquity().isFxSpot()).toBe(false);
|
|
70
118
|
});
|
|
71
119
|
|
|
72
120
|
function dummySecurity() {
|
|
@@ -110,8 +158,7 @@ function dummyBondSecurity() {
|
|
|
110
158
|
|
|
111
159
|
function dummyEquity() {
|
|
112
160
|
// Equity has no maturity / issue date in the proto, exercising the
|
|
113
|
-
// null-return behavior on
|
|
114
|
-
// behavior on getMaturityDate.
|
|
161
|
+
// null-return behavior on the date accessors.
|
|
115
162
|
return Security.create(new SecurityProto()
|
|
116
163
|
.setObjectClass('Security').setVersion('0.0.1').setUuid(UUID.random().toUUIDProto())
|
|
117
164
|
.setProductType(ProductTypeProto.COMMON_STOCK)
|
|
@@ -121,3 +168,51 @@ function dummyEquity() {
|
|
|
121
168
|
);
|
|
122
169
|
}
|
|
123
170
|
|
|
171
|
+
function dummyMbs() {
|
|
172
|
+
const bond = new BondDetailsProto()
|
|
173
|
+
.setCouponRate(new DecimalValueProto().setArbitraryPrecisionValue('0.04'))
|
|
174
|
+
.setCouponFrequency(CouponFrequencyProto.MONTHLY)
|
|
175
|
+
.setCouponType(CouponTypeProto.FIXED)
|
|
176
|
+
.setFaceValue(new DecimalValueProto().setArbitraryPrecisionValue('250000000'))
|
|
177
|
+
.setIssueDate(new LocalDateProto().setYear(2024).setMonth(1).setDay(1))
|
|
178
|
+
.setMaturityDate(new LocalDateProto().setYear(2054).setMonth(1).setDay(1));
|
|
179
|
+
const proto = new SecurityProto()
|
|
180
|
+
.setObjectClass('Security').setVersion('0.0.1').setUuid(UUID.random().toUUIDProto())
|
|
181
|
+
.setProductType(ProductTypeProto.MORTGAGE_BACKED)
|
|
182
|
+
.setAssetClass("FixedIncome")
|
|
183
|
+
.setIssuerName("FNMA")
|
|
184
|
+
.setBondDetails(bond);
|
|
185
|
+
// Pool number lives on the mbs_extension sub-message.
|
|
186
|
+
const MbsExtension = require('../../../fintekkers/models/security/security_pb').MbsExtensionProto;
|
|
187
|
+
proto.setMbsExtension(new MbsExtension().setPoolNumber('FN AS1234'));
|
|
188
|
+
return Security.create(proto);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
function dummyIndex() {
|
|
192
|
+
return Security.create(new SecurityProto()
|
|
193
|
+
.setObjectClass('Security').setVersion('0.0.1').setUuid(UUID.random().toUUIDProto())
|
|
194
|
+
.setProductType(ProductTypeProto.CPI_SERIES)
|
|
195
|
+
.setAssetClass("Index")
|
|
196
|
+
.setIssuerName("BLS")
|
|
197
|
+
.setIndexDetails(new IndexDetailsProto().setIndexType(IndexTypeProto.CPI_U))
|
|
198
|
+
);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
function dummyCash() {
|
|
202
|
+
return Security.create(new SecurityProto()
|
|
203
|
+
.setObjectClass('Security').setVersion('0.0.1').setUuid(UUID.random().toUUIDProto())
|
|
204
|
+
.setProductType(ProductTypeProto.CURRENCY)
|
|
205
|
+
.setAssetClass("Cash")
|
|
206
|
+
.setIssuerName("Federal Reserve")
|
|
207
|
+
);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
function dummyFxSpot() {
|
|
211
|
+
return Security.create(new SecurityProto()
|
|
212
|
+
.setObjectClass('Security').setVersion('0.0.1').setUuid(UUID.random().toUUIDProto())
|
|
213
|
+
.setProductType(ProductTypeProto.FX_SPOT)
|
|
214
|
+
.setAssetClass("FX")
|
|
215
|
+
.setIssuerName("FX")
|
|
216
|
+
);
|
|
217
|
+
}
|
|
218
|
+
|
|
@@ -4,7 +4,7 @@ import { UUIDProto } from "../../../fintekkers/models/util/uuid_pb";
|
|
|
4
4
|
import { LocalTimestampProto } from "../../../fintekkers/models/util/local_timestamp_pb";
|
|
5
5
|
import { ZonedDateTime } from "../utils/datetime";
|
|
6
6
|
import { UUID } from "../utils/uuid";
|
|
7
|
-
import {
|
|
7
|
+
import { localDateProtoToDate } from "../utils/date";
|
|
8
8
|
import { ProductTypeProto } from "../../../fintekkers/models/security/product_type_pb";
|
|
9
9
|
import { IdentifierTypeProto } from "../../../fintekkers/models/security/identifier/identifier_type_pb";
|
|
10
10
|
import { Identifier } from "./identifier";
|
|
@@ -137,6 +137,59 @@ class Security {
|
|
|
137
137
|
return isDescendantOf(ptName as string, 'BOND');
|
|
138
138
|
}
|
|
139
139
|
|
|
140
|
+
/**
|
|
141
|
+
* Type guard: true iff this Security is a MortgageBackedSecurity (a
|
|
142
|
+
* descendant of STRUCTURED_BOND in hierarchy.json — MBS_PASSTHROUGH today,
|
|
143
|
+
* CMBS/ABS/CLO when those leaves become active).
|
|
144
|
+
*/
|
|
145
|
+
isMbs(): this is import('./MortgageBackedSecurity').default {
|
|
146
|
+
return this.proto.getProductType() === ProductTypeProto.MORTGAGE_BACKED;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Type guard: true iff this Security is an IndexSecurity (any descendant
|
|
151
|
+
* of INDEX in hierarchy.json — CPI_SERIES, SOFR_SERIES, EQUITY_INDEX, ...).
|
|
152
|
+
*/
|
|
153
|
+
isIndex(): this is import('./IndexSecurity').default {
|
|
154
|
+
const t = this.proto.getProductType();
|
|
155
|
+
const ptName = (Object.keys(ProductTypeProto) as Array<keyof typeof ProductTypeProto>)
|
|
156
|
+
.find(k => ProductTypeProto[k] === t);
|
|
157
|
+
if (!ptName) return false;
|
|
158
|
+
return isDescendantOf(ptName as string, 'INDEX');
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Runtime predicate: true iff this Security wraps a cash currency
|
|
163
|
+
* (product_type == CURRENCY). No dedicated CashSecurity wrapper exists
|
|
164
|
+
* yet so this isn't a TS type-guard — the return is base Security.
|
|
165
|
+
*/
|
|
166
|
+
isCash(): boolean {
|
|
167
|
+
return this.proto.getProductType() === ProductTypeProto.CURRENCY;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Runtime predicate: true iff this Security wraps a stock-shape product
|
|
172
|
+
* type (any descendant of STOCK in hierarchy.json — COMMON_STOCK,
|
|
173
|
+
* PREFERRED_STOCK, ADR, ETF). No dedicated EquitySecurity wrapper exists
|
|
174
|
+
* yet so this isn't a TS type-guard — the return is base Security.
|
|
175
|
+
*/
|
|
176
|
+
isEquity(): boolean {
|
|
177
|
+
const t = this.proto.getProductType();
|
|
178
|
+
const ptName = (Object.keys(ProductTypeProto) as Array<keyof typeof ProductTypeProto>)
|
|
179
|
+
.find(k => ProductTypeProto[k] === t);
|
|
180
|
+
if (!ptName) return false;
|
|
181
|
+
return isDescendantOf(ptName as string, 'STOCK');
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Runtime predicate: true iff this Security wraps an FX spot
|
|
186
|
+
* (product_type == FX_SPOT). No dedicated FxSpotSecurity wrapper exists
|
|
187
|
+
* yet so this isn't a TS type-guard — the return is base Security.
|
|
188
|
+
*/
|
|
189
|
+
isFxSpot(): boolean {
|
|
190
|
+
return this.proto.getProductType() === ProductTypeProto.FX_SPOT;
|
|
191
|
+
}
|
|
192
|
+
|
|
140
193
|
|
|
141
194
|
toString(): string {
|
|
142
195
|
const ids = this.proto.getIsLink() ? [] : this.proto.getIdentifiersList();
|
|
@@ -257,32 +310,27 @@ class Security {
|
|
|
257
310
|
* Returns null on equities/cash/etc. that don't have an issue date set,
|
|
258
311
|
* rather than throwing — issue date is optional on the base Security.
|
|
259
312
|
* For bond-specific code paths, prefer narrowing first via isBond() and
|
|
260
|
-
* calling BondSecurity.getIssueDate() (which
|
|
313
|
+
* calling BondSecurity.getIssueDate() (which is non-nullable on a
|
|
314
|
+
* properly-formed bond).
|
|
261
315
|
*/
|
|
262
|
-
getIssueDate():
|
|
316
|
+
getIssueDate(): Date | null {
|
|
263
317
|
this.assertNotLink('issueDate');
|
|
264
318
|
const bond = this.getBondLikeDetails();
|
|
265
319
|
const date = bond ? bond.getIssueDate() : undefined;
|
|
266
|
-
|
|
267
|
-
return new LocalDate(date);
|
|
320
|
+
return localDateProtoToDate(date);
|
|
268
321
|
}
|
|
269
322
|
|
|
270
323
|
/**
|
|
271
|
-
*
|
|
272
|
-
*
|
|
273
|
-
* narrowing first
|
|
274
|
-
*
|
|
275
|
-
* if (sec.isBond()) sec.getMaturityDate(); // BondSecurity, returns LocalDate
|
|
276
|
-
*
|
|
277
|
-
* In a future major version this method will move to BondSecurity only
|
|
278
|
-
* and TS will catch the misuse at compile time.
|
|
324
|
+
* Returns the maturity date if set, else null. Maturity date is a
|
|
325
|
+
* bond-only concept; on non-bond securities this returns null rather
|
|
326
|
+
* than throwing. Prefer narrowing first via isBond() for bond-specific
|
|
327
|
+
* code paths.
|
|
279
328
|
*/
|
|
280
|
-
getMaturityDate():
|
|
329
|
+
getMaturityDate(): Date | null {
|
|
281
330
|
this.assertNotLink('maturityDate');
|
|
282
331
|
const bond = this.getBondLikeDetails();
|
|
283
332
|
const date = bond ? bond.getMaturityDate() : undefined;
|
|
284
|
-
|
|
285
|
-
return new LocalDate(date);
|
|
333
|
+
return localDateProtoToDate(date);
|
|
286
334
|
}
|
|
287
335
|
|
|
288
336
|
/**
|
|
@@ -8,7 +8,6 @@ import Security from "../security/security";
|
|
|
8
8
|
import Portfolio from "../portfolio/portfolio";
|
|
9
9
|
import { ZonedDateTime } from "../utils/datetime";
|
|
10
10
|
import { UUID } from "../utils/uuid";
|
|
11
|
-
import { LocalDate } from "../utils/date";
|
|
12
11
|
import { Decimal } from "decimal.js";
|
|
13
12
|
interface TransactionConstructorParams {
|
|
14
13
|
tradeDate: Date;
|
|
@@ -39,8 +38,8 @@ declare class Transaction {
|
|
|
39
38
|
getQuantity(): Decimal;
|
|
40
39
|
getIssuerName(): string;
|
|
41
40
|
getDirectedQuantity(): Decimal;
|
|
42
|
-
getTradeDate():
|
|
43
|
-
getSettlementDate():
|
|
41
|
+
getTradeDate(): Date | null;
|
|
42
|
+
getSettlementDate(): Date | null;
|
|
44
43
|
getTransactionType(): TransactionType;
|
|
45
44
|
getTradeName(): string;
|
|
46
45
|
getPositionStatus(): PositionStatusProto;
|
|
@@ -40,8 +40,8 @@ class Transaction {
|
|
|
40
40
|
const asOfZonedDateTime = datetime_1.ZonedDateTime.from(params.asOfDate);
|
|
41
41
|
transactionProto.setAsOf(asOfZonedDateTime.toProto());
|
|
42
42
|
// Convert tradeDate and settlementDate to LocalDateProto
|
|
43
|
-
transactionProto.setTradeDate(date_1.
|
|
44
|
-
transactionProto.setSettlementDate(date_1.
|
|
43
|
+
transactionProto.setTradeDate((0, date_1.dateToLocalDateProto)(params.tradeDate));
|
|
44
|
+
transactionProto.setSettlementDate((0, date_1.dateToLocalDateProto)(params.settlementDate));
|
|
45
45
|
// Create Price using Price.create() factory method
|
|
46
46
|
const price = Price_1.default.create(params.price, params.security, asOfZonedDateTime);
|
|
47
47
|
transactionProto.setPrice(price.proto);
|
|
@@ -63,13 +63,13 @@ class Transaction {
|
|
|
63
63
|
return transactionProto;
|
|
64
64
|
}
|
|
65
65
|
toString() {
|
|
66
|
-
var _a, _b, _c, _d, _e, _f;
|
|
66
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
67
67
|
try {
|
|
68
68
|
const validTo = (_b = (_a = this.proto.getValidTo()) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : "NULL";
|
|
69
69
|
const validFrom = (_d = (_c = this.proto.getValidFrom()) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : "NULL";
|
|
70
70
|
const strategyAllocation = (_f = (_e = this.proto.getStrategyAllocation()) === null || _e === void 0 ? void 0 : _e.toString()) !== null && _f !== void 0 ? _f : "NULL";
|
|
71
71
|
return `${ /*this.proto.isCancelled()*/false ? "INVALIDATED: " : ""}TXN[${this.getID().toString()}], ` +
|
|
72
|
-
`TradeDate[${this.getTradeDate().toString()}], TxnType[${this.getTransactionType()}], Price[${this.getPrice()}], Quantity[${this.getQuantity()}], ` +
|
|
72
|
+
`TradeDate[${(_h = (_g = this.getTradeDate()) === null || _g === void 0 ? void 0 : _g.toString()) !== null && _h !== void 0 ? _h : "NULL"}], TxnType[${this.getTransactionType()}], Price[${this.getPrice()}], Quantity[${this.getQuantity()}], ` +
|
|
73
73
|
`AsOf[${this.getAsOf().toString()}], Portfolio[${this.getPortfolio().getPortfolioName()}], Issuer[${this.getSecurity().getIssuerName()}], ` +
|
|
74
74
|
`ValidFrom[${validFrom}], ValidTo[${validTo}], Strategy[${strategyAllocation}]`;
|
|
75
75
|
}
|
|
@@ -156,16 +156,10 @@ class Transaction {
|
|
|
156
156
|
return this.getQuantity().mul(this.getTransactionType().getDirectionMultiplier());
|
|
157
157
|
}
|
|
158
158
|
getTradeDate() {
|
|
159
|
-
|
|
160
|
-
if (!tradeDate)
|
|
161
|
-
throw new Error("TradeDate is required");
|
|
162
|
-
return new date_1.LocalDate(tradeDate);
|
|
159
|
+
return (0, date_1.localDateProtoToDate)(this.proto.getTradeDate());
|
|
163
160
|
}
|
|
164
161
|
getSettlementDate() {
|
|
165
|
-
|
|
166
|
-
if (!settlementDate)
|
|
167
|
-
throw new Error("SettlementDate is required");
|
|
168
|
-
return new date_1.LocalDate(settlementDate);
|
|
162
|
+
return (0, date_1.localDateProtoToDate)(this.proto.getSettlementDate());
|
|
169
163
|
}
|
|
170
164
|
getTransactionType() {
|
|
171
165
|
return new transaction_type_1.TransactionType(this.proto.getTransactionType());
|
|
@@ -253,8 +247,9 @@ class Transaction {
|
|
|
253
247
|
const BondSecurity = require('../security/BondSecurity').default;
|
|
254
248
|
const bondSecurity = new BondSecurity(parentTransaction.getSecurity().proto);
|
|
255
249
|
const priceScaleFactor = bondSecurity.getPriceScaleFactor();
|
|
256
|
-
const
|
|
257
|
-
|
|
250
|
+
const faceValue = bondSecurity.getFaceValue();
|
|
251
|
+
if (!faceValue)
|
|
252
|
+
throw new Error("Face value is required for bond cash impact calculation");
|
|
258
253
|
const priceProto = parentTransaction.getPrice();
|
|
259
254
|
const priceValue = new decimal_js_1.Decimal(((_a = priceProto.getPrice()) === null || _a === void 0 ? void 0 : _a.getArbitraryPrecisionValue()) || '0');
|
|
260
255
|
const scaledPrice = priceValue.mul(priceScaleFactor);
|
|
@@ -271,10 +266,16 @@ class Transaction {
|
|
|
271
266
|
}
|
|
272
267
|
// Get asOf ZonedDateTime
|
|
273
268
|
const asOf = parentTransaction.getAsOf();
|
|
269
|
+
const tradeDate = parentTransaction.getTradeDate();
|
|
270
|
+
const settlementDate = parentTransaction.getSettlementDate();
|
|
271
|
+
if (!tradeDate)
|
|
272
|
+
throw new Error("TradeDate is required to derive a cash transaction");
|
|
273
|
+
if (!settlementDate)
|
|
274
|
+
throw new Error("SettlementDate is required to derive a cash transaction");
|
|
274
275
|
// Create cash transaction using parameter-based constructor
|
|
275
276
|
const cashTransaction = new Transaction({
|
|
276
|
-
tradeDate
|
|
277
|
-
settlementDate
|
|
277
|
+
tradeDate,
|
|
278
|
+
settlementDate,
|
|
278
279
|
asOfDate: asOf.toDateTime().toJSDate(),
|
|
279
280
|
price: new decimal_js_1.Decimal('1.0'),
|
|
280
281
|
security: cashSecurity,
|
|
@@ -304,10 +305,11 @@ class Transaction {
|
|
|
304
305
|
const bondSecurity = new BondSecurity(transaction.getSecurity().proto);
|
|
305
306
|
// Get maturity date
|
|
306
307
|
const maturityDate = bondSecurity.getMaturityDate();
|
|
308
|
+
if (!maturityDate)
|
|
309
|
+
throw new Error("Maturity date is required to derive a maturation transaction");
|
|
307
310
|
// Calculate settlement date: maturity date + 2 days
|
|
308
|
-
const
|
|
309
|
-
|
|
310
|
-
const settlementDate = date_1.LocalDate.from(maturityDateObj);
|
|
311
|
+
const settlementDate = new Date(maturityDate.getTime());
|
|
312
|
+
settlementDate.setDate(settlementDate.getDate() + 2);
|
|
311
313
|
// Get price as Decimal
|
|
312
314
|
const priceProto = transaction.getPrice();
|
|
313
315
|
const priceValue = new decimal_js_1.Decimal(((_a = priceProto.getPrice()) === null || _a === void 0 ? void 0 : _a.getArbitraryPrecisionValue()) || '0');
|
|
@@ -315,8 +317,8 @@ class Transaction {
|
|
|
315
317
|
const asOf = transaction.getAsOf();
|
|
316
318
|
// Create maturation transaction
|
|
317
319
|
const maturation = new Transaction({
|
|
318
|
-
tradeDate: maturityDate
|
|
319
|
-
settlementDate
|
|
320
|
+
tradeDate: maturityDate,
|
|
321
|
+
settlementDate,
|
|
320
322
|
asOfDate: asOf.toDateTime().toJSDate(),
|
|
321
323
|
price: priceValue,
|
|
322
324
|
security: transaction.getSecurity(),
|
|
@@ -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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"}
|
|
@@ -16,7 +16,7 @@ import { ProductTypeProto } from "../../../fintekkers/models/security/product_ty
|
|
|
16
16
|
//Model Utils
|
|
17
17
|
import { ZonedDateTime } from "../utils/datetime";
|
|
18
18
|
import { UUID } from "../utils/uuid";
|
|
19
|
-
import {
|
|
19
|
+
import { dateToLocalDateProto, localDateProtoToDate } from "../utils/date";
|
|
20
20
|
import { Decimal } from "decimal.js";
|
|
21
21
|
|
|
22
22
|
interface TransactionConstructorParams {
|
|
@@ -55,8 +55,8 @@ class Transaction {
|
|
|
55
55
|
transactionProto.setAsOf(asOfZonedDateTime.toProto());
|
|
56
56
|
|
|
57
57
|
// Convert tradeDate and settlementDate to LocalDateProto
|
|
58
|
-
transactionProto.setTradeDate(
|
|
59
|
-
transactionProto.setSettlementDate(
|
|
58
|
+
transactionProto.setTradeDate(dateToLocalDateProto(params.tradeDate));
|
|
59
|
+
transactionProto.setSettlementDate(dateToLocalDateProto(params.settlementDate));
|
|
60
60
|
|
|
61
61
|
// Create Price using Price.create() factory method
|
|
62
62
|
const price = Price.create(params.price, params.security, asOfZonedDateTime);
|
|
@@ -96,7 +96,7 @@ class Transaction {
|
|
|
96
96
|
this.proto.getStrategyAllocation()?.toString() ?? "NULL";
|
|
97
97
|
|
|
98
98
|
return `${/*this.proto.isCancelled()*/ false ? "INVALIDATED: " : ""}TXN[${this.getID().toString()}], ` +
|
|
99
|
-
`TradeDate[${this.getTradeDate()
|
|
99
|
+
`TradeDate[${this.getTradeDate()?.toString() ?? "NULL"}], TxnType[${this.getTransactionType()}], Price[${this.getPrice()}], Quantity[${this.getQuantity()}], ` +
|
|
100
100
|
`AsOf[${this.getAsOf().toString()}], Portfolio[${this.getPortfolio().getPortfolioName()}], Issuer[${this.getSecurity().getIssuerName()}], ` +
|
|
101
101
|
`ValidFrom[${validFrom}], ValidTo[${validTo}], Strategy[${strategyAllocation}]`;
|
|
102
102
|
} catch (e) {
|
|
@@ -186,16 +186,12 @@ class Transaction {
|
|
|
186
186
|
return this.getQuantity().mul(this.getTransactionType().getDirectionMultiplier());
|
|
187
187
|
}
|
|
188
188
|
|
|
189
|
-
getTradeDate():
|
|
190
|
-
|
|
191
|
-
if (!tradeDate) throw new Error("TradeDate is required");
|
|
192
|
-
return new LocalDate(tradeDate);
|
|
189
|
+
getTradeDate(): Date | null {
|
|
190
|
+
return localDateProtoToDate(this.proto.getTradeDate());
|
|
193
191
|
}
|
|
194
192
|
|
|
195
|
-
getSettlementDate():
|
|
196
|
-
|
|
197
|
-
if (!settlementDate) throw new Error("SettlementDate is required");
|
|
198
|
-
return new LocalDate(settlementDate);
|
|
193
|
+
getSettlementDate(): Date | null {
|
|
194
|
+
return localDateProtoToDate(this.proto.getSettlementDate());
|
|
199
195
|
}
|
|
200
196
|
|
|
201
197
|
getTransactionType(): TransactionType {
|
|
@@ -291,8 +287,8 @@ class Transaction {
|
|
|
291
287
|
const bondSecurity = new BondSecurity(parentTransaction.getSecurity().proto);
|
|
292
288
|
|
|
293
289
|
const priceScaleFactor = bondSecurity.getPriceScaleFactor();
|
|
294
|
-
const
|
|
295
|
-
|
|
290
|
+
const faceValue = bondSecurity.getFaceValue();
|
|
291
|
+
if (!faceValue) throw new Error("Face value is required for bond cash impact calculation");
|
|
296
292
|
|
|
297
293
|
const priceProto = parentTransaction.getPrice();
|
|
298
294
|
const priceValue = new Decimal(priceProto.getPrice()?.getArbitraryPrecisionValue() || '0');
|
|
@@ -313,10 +309,15 @@ class Transaction {
|
|
|
313
309
|
// Get asOf ZonedDateTime
|
|
314
310
|
const asOf = parentTransaction.getAsOf();
|
|
315
311
|
|
|
312
|
+
const tradeDate = parentTransaction.getTradeDate();
|
|
313
|
+
const settlementDate = parentTransaction.getSettlementDate();
|
|
314
|
+
if (!tradeDate) throw new Error("TradeDate is required to derive a cash transaction");
|
|
315
|
+
if (!settlementDate) throw new Error("SettlementDate is required to derive a cash transaction");
|
|
316
|
+
|
|
316
317
|
// Create cash transaction using parameter-based constructor
|
|
317
318
|
const cashTransaction = new Transaction({
|
|
318
|
-
tradeDate
|
|
319
|
-
settlementDate
|
|
319
|
+
tradeDate,
|
|
320
|
+
settlementDate,
|
|
320
321
|
asOfDate: asOf.toDateTime().toJSDate(),
|
|
321
322
|
price: new Decimal('1.0'), // Cash price is always 1.0
|
|
322
323
|
security: cashSecurity,
|
|
@@ -351,11 +352,11 @@ class Transaction {
|
|
|
351
352
|
|
|
352
353
|
// Get maturity date
|
|
353
354
|
const maturityDate = bondSecurity.getMaturityDate();
|
|
355
|
+
if (!maturityDate) throw new Error("Maturity date is required to derive a maturation transaction");
|
|
354
356
|
|
|
355
357
|
// Calculate settlement date: maturity date + 2 days
|
|
356
|
-
const
|
|
357
|
-
|
|
358
|
-
const settlementDate = LocalDate.from(maturityDateObj);
|
|
358
|
+
const settlementDate = new Date(maturityDate.getTime());
|
|
359
|
+
settlementDate.setDate(settlementDate.getDate() + 2);
|
|
359
360
|
|
|
360
361
|
// Get price as Decimal
|
|
361
362
|
const priceProto = transaction.getPrice();
|
|
@@ -366,8 +367,8 @@ class Transaction {
|
|
|
366
367
|
|
|
367
368
|
// Create maturation transaction
|
|
368
369
|
const maturation = new Transaction({
|
|
369
|
-
tradeDate: maturityDate
|
|
370
|
-
settlementDate
|
|
370
|
+
tradeDate: maturityDate,
|
|
371
|
+
settlementDate,
|
|
371
372
|
asOfDate: asOf.toDateTime().toJSDate(),
|
|
372
373
|
price: priceValue,
|
|
373
374
|
security: transaction.getSecurity(),
|
|
@@ -45,12 +45,14 @@ function testTransactionConstructor() {
|
|
|
45
45
|
});
|
|
46
46
|
// Verify all getters return expected values
|
|
47
47
|
// getTradeDate() - should match input tradeDate
|
|
48
|
-
const tradeDateFromTransaction = transaction.getTradeDate()
|
|
48
|
+
const tradeDateFromTransaction = transaction.getTradeDate();
|
|
49
|
+
assert(tradeDateFromTransaction !== null, 'TradeDate should not be null');
|
|
49
50
|
assert(tradeDateFromTransaction.getFullYear() === tradeDate.getFullYear());
|
|
50
51
|
assert(tradeDateFromTransaction.getMonth() === tradeDate.getMonth());
|
|
51
52
|
assert(tradeDateFromTransaction.getDate() === tradeDate.getDate());
|
|
52
53
|
// getSettlementDate() - should match input settlementDate
|
|
53
|
-
const settlementDateFromTransaction = transaction.getSettlementDate()
|
|
54
|
+
const settlementDateFromTransaction = transaction.getSettlementDate();
|
|
55
|
+
assert(settlementDateFromTransaction !== null, 'SettlementDate should not be null');
|
|
54
56
|
assert(settlementDateFromTransaction.getFullYear() === settlementDate.getFullYear());
|
|
55
57
|
assert(settlementDateFromTransaction.getMonth() === settlementDate.getMonth());
|
|
56
58
|
assert(settlementDateFromTransaction.getDate() === settlementDate.getDate());
|
|
@@ -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;AAE5C,iFAAkG;AAClG,iFAA+E;AAC/E,uFAAqF;AACrF,6GAA0G;AAC1G,iGAA+F;AAC/F,uFAAqF;AACrF,wCAAqC;AAErC,2CAAqC;AACrC,gEAA6D;AAE7D,IAAI,CAAC,8CAA8C,EAAE,GAAG,EAAE;IACtD,0BAA0B,EAAE,CAAC;AACjC,CAAC,CAAC,CAAC;AAEH,SAAS,0BAA0B;;IAC/B,mBAAmB;IACnB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,IAAI,oBAAO,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAI,oBAAO,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,IAAA,+BAAc,GAAE,CAAC;IACnC,MAAM,eAAe,GAAG,oBAAoB,EAAE,CAAC;IAE/C,uDAAuD;IACvD,MAAM,WAAW,GAAG,IAAI,qBAAW,CAAC;QAChC,SAAS;QACT,cAAc;QACd,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,eAAe;QACf,SAAS;QACT,QAAQ;KACX,CAAC,CAAC;IAEH,4CAA4C;IAE5C,gDAAgD;IAChD,MAAM,wBAAwB,GAAG,WAAW,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"transaction_constructor.test.js","sourceRoot":"","sources":["transaction_constructor.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,16 +46,18 @@ function testTransactionConstructor(): void {
|
|
|
46
46
|
// Verify all getters return expected values
|
|
47
47
|
|
|
48
48
|
// getTradeDate() - should match input tradeDate
|
|
49
|
-
const tradeDateFromTransaction = transaction.getTradeDate()
|
|
50
|
-
assert(tradeDateFromTransaction
|
|
51
|
-
assert(tradeDateFromTransaction
|
|
52
|
-
assert(tradeDateFromTransaction
|
|
49
|
+
const tradeDateFromTransaction = transaction.getTradeDate();
|
|
50
|
+
assert(tradeDateFromTransaction !== null, 'TradeDate should not be null');
|
|
51
|
+
assert(tradeDateFromTransaction!.getFullYear() === tradeDate.getFullYear());
|
|
52
|
+
assert(tradeDateFromTransaction!.getMonth() === tradeDate.getMonth());
|
|
53
|
+
assert(tradeDateFromTransaction!.getDate() === tradeDate.getDate());
|
|
53
54
|
|
|
54
55
|
// getSettlementDate() - should match input settlementDate
|
|
55
|
-
const settlementDateFromTransaction = transaction.getSettlementDate()
|
|
56
|
-
assert(settlementDateFromTransaction
|
|
57
|
-
assert(settlementDateFromTransaction
|
|
58
|
-
assert(settlementDateFromTransaction
|
|
56
|
+
const settlementDateFromTransaction = transaction.getSettlementDate();
|
|
57
|
+
assert(settlementDateFromTransaction !== null, 'SettlementDate should not be null');
|
|
58
|
+
assert(settlementDateFromTransaction!.getFullYear() === settlementDate.getFullYear());
|
|
59
|
+
assert(settlementDateFromTransaction!.getMonth() === settlementDate.getMonth());
|
|
60
|
+
assert(settlementDateFromTransaction!.getDate() === settlementDate.getDate());
|
|
59
61
|
|
|
60
62
|
// getAsOf() - should match input asOfDate (converted to ZonedDateTime)
|
|
61
63
|
const asOfFromTransaction = transaction.getAsOf();
|