@fintekkers/ledger-models 0.4.2 → 0.4.4
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/requests/position/query_position_request.packed_enum_v4.test.d.ts +1 -0
- package/node/fintekkers/requests/position/query_position_request.packed_enum_v4.test.js +61 -0
- package/node/fintekkers/requests/position/query_position_request.packed_enum_v4.test.js.map +1 -0
- package/node/fintekkers/requests/position/query_position_request.packed_enum_v4.test.ts +65 -0
- package/node/fintekkers/requests/position/query_position_request_pb.js +2 -2
- package/node/fintekkers/requests/security/get_fields_response_pb.js +1 -1
- package/node/fintekkers/requests/valuation/curve_request_pb.js +1 -1
- package/node/fintekkers/requests/valuation/valuation_request_pb.js +1 -1
- 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
|
@@ -13,13 +13,16 @@ const security_pb_1 = require("../../../fintekkers/models/security/security_pb")
|
|
|
13
13
|
const product_type_pb_1 = require("../../../fintekkers/models/security/product_type_pb");
|
|
14
14
|
const coupon_frequency_pb_1 = require("../../../fintekkers/models/security/coupon_frequency_pb");
|
|
15
15
|
const coupon_type_pb_1 = require("../../../fintekkers/models/security/coupon_type_pb");
|
|
16
|
+
const index_type_pb_1 = require("../../../fintekkers/models/security/index/index_type_pb");
|
|
16
17
|
const security_quantity_type_pb_1 = require("../../../fintekkers/models/security/security_quantity_type_pb");
|
|
17
18
|
test('test the security wrapper', () => {
|
|
18
19
|
testSerialization();
|
|
19
20
|
});
|
|
20
21
|
function testSerialization() {
|
|
21
22
|
const security = dummySecurity();
|
|
22
|
-
|
|
23
|
+
const maturityDate = security.getMaturityDate();
|
|
24
|
+
assert(maturityDate !== null);
|
|
25
|
+
assert(maturityDate.getFullYear() == 2026);
|
|
23
26
|
}
|
|
24
27
|
test('equity routes to base Security and isBond() returns false', () => {
|
|
25
28
|
const equity = dummyEquity();
|
|
@@ -43,25 +46,63 @@ test('Security.getIssueDate returns null on equity (no throw)', () => {
|
|
|
43
46
|
// explode on per-record post-processing in ui-service.
|
|
44
47
|
expect(equity.getIssueDate()).toBeNull();
|
|
45
48
|
});
|
|
46
|
-
test('BondSecurity.getIssueDate returns
|
|
49
|
+
test('BondSecurity.getIssueDate returns Date on bond', () => {
|
|
47
50
|
const bond = dummyBondSecurity();
|
|
48
51
|
if (!bond.isBond())
|
|
49
52
|
throw new Error('test setup: expected bond');
|
|
50
53
|
const issueDate = bond.getIssueDate();
|
|
51
54
|
expect(issueDate).not.toBeNull();
|
|
52
|
-
expect(issueDate
|
|
55
|
+
expect(issueDate).toBeInstanceOf(Date);
|
|
56
|
+
expect(issueDate.getFullYear()).toBe(2021);
|
|
53
57
|
});
|
|
54
|
-
test('Security.getMaturityDate
|
|
58
|
+
test('Security.getMaturityDate returns null on equity (no throw)', () => {
|
|
55
59
|
const equity = dummyEquity();
|
|
56
|
-
|
|
57
|
-
// loud error if they don't narrow first. Removal happens in Phase 2.
|
|
58
|
-
expect(() => equity.getMaturityDate()).toThrow('Maturity date is required');
|
|
60
|
+
expect(equity.getMaturityDate()).toBeNull();
|
|
59
61
|
});
|
|
60
62
|
test('BondSecurity.getMaturityDate works on bond (inherited from Security)', () => {
|
|
61
63
|
const bond = dummyBondSecurity();
|
|
62
64
|
if (!bond.isBond())
|
|
63
65
|
throw new Error('test setup: expected bond');
|
|
64
|
-
|
|
66
|
+
const maturityDate = bond.getMaturityDate();
|
|
67
|
+
expect(maturityDate).not.toBeNull();
|
|
68
|
+
expect(maturityDate).toBeInstanceOf(Date);
|
|
69
|
+
expect(maturityDate.getFullYear()).toBe(2026);
|
|
70
|
+
});
|
|
71
|
+
test('isMbs(): true on MORTGAGE_BACKED, narrows to MortgageBackedSecurity', () => {
|
|
72
|
+
const mbs = dummyMbs();
|
|
73
|
+
expect(mbs.isMbs()).toBe(true);
|
|
74
|
+
if (mbs.isMbs()) {
|
|
75
|
+
// Inside the narrowed branch TS knows mbs: MortgageBackedSecurity.
|
|
76
|
+
expect(mbs.getPoolNumber()).toBe('FN AS1234');
|
|
77
|
+
}
|
|
78
|
+
// Non-MBS bonds return false.
|
|
79
|
+
expect(dummyBondSecurity().isMbs()).toBe(false);
|
|
80
|
+
expect(dummyEquity().isMbs()).toBe(false);
|
|
81
|
+
});
|
|
82
|
+
test('isIndex(): true on EQUITY_INDEX / CPI_SERIES, narrows to IndexSecurity', () => {
|
|
83
|
+
const idx = dummyIndex();
|
|
84
|
+
expect(idx.isIndex()).toBe(true);
|
|
85
|
+
if (idx.isIndex()) {
|
|
86
|
+
// Inside the narrowed branch TS knows idx: IndexSecurity.
|
|
87
|
+
expect(idx.getIndexType()).toBe(index_type_pb_1.IndexTypeProto.CPI_U);
|
|
88
|
+
}
|
|
89
|
+
expect(dummyBondSecurity().isIndex()).toBe(false);
|
|
90
|
+
expect(dummyEquity().isIndex()).toBe(false);
|
|
91
|
+
});
|
|
92
|
+
test('isCash(): runtime predicate, true on CURRENCY only', () => {
|
|
93
|
+
expect(dummyCash().isCash()).toBe(true);
|
|
94
|
+
expect(dummyBondSecurity().isCash()).toBe(false);
|
|
95
|
+
expect(dummyEquity().isCash()).toBe(false);
|
|
96
|
+
});
|
|
97
|
+
test('isEquity(): runtime predicate, true on STOCK descendants', () => {
|
|
98
|
+
expect(dummyEquity().isEquity()).toBe(true);
|
|
99
|
+
expect(dummyBondSecurity().isEquity()).toBe(false);
|
|
100
|
+
expect(dummyCash().isEquity()).toBe(false);
|
|
101
|
+
});
|
|
102
|
+
test('isFxSpot(): runtime predicate, true on FX_SPOT only', () => {
|
|
103
|
+
expect(dummyFxSpot().isFxSpot()).toBe(true);
|
|
104
|
+
expect(dummyCash().isFxSpot()).toBe(false);
|
|
105
|
+
expect(dummyEquity().isFxSpot()).toBe(false);
|
|
65
106
|
});
|
|
66
107
|
function dummySecurity() {
|
|
67
108
|
const bond = new security_pb_1.BondDetailsProto()
|
|
@@ -100,8 +141,7 @@ function dummyBondSecurity() {
|
|
|
100
141
|
}
|
|
101
142
|
function dummyEquity() {
|
|
102
143
|
// Equity has no maturity / issue date in the proto, exercising the
|
|
103
|
-
// null-return behavior on
|
|
104
|
-
// behavior on getMaturityDate.
|
|
144
|
+
// null-return behavior on the date accessors.
|
|
105
145
|
return security_1.default.create(new security_pb_1.SecurityProto()
|
|
106
146
|
.setObjectClass('Security').setVersion('0.0.1').setUuid(uuid_1.UUID.random().toUUIDProto())
|
|
107
147
|
.setProductType(product_type_pb_1.ProductTypeProto.COMMON_STOCK)
|
|
@@ -109,4 +149,45 @@ function dummyEquity() {
|
|
|
109
149
|
.setIssuerName("Dummy issuer Inc.")
|
|
110
150
|
.setDescription("Dummy equity"));
|
|
111
151
|
}
|
|
152
|
+
function dummyMbs() {
|
|
153
|
+
const bond = new security_pb_1.BondDetailsProto()
|
|
154
|
+
.setCouponRate(new decimal_value_pb_1.DecimalValueProto().setArbitraryPrecisionValue('0.04'))
|
|
155
|
+
.setCouponFrequency(coupon_frequency_pb_1.CouponFrequencyProto.MONTHLY)
|
|
156
|
+
.setCouponType(coupon_type_pb_1.CouponTypeProto.FIXED)
|
|
157
|
+
.setFaceValue(new decimal_value_pb_1.DecimalValueProto().setArbitraryPrecisionValue('250000000'))
|
|
158
|
+
.setIssueDate(new local_date_pb_1.LocalDateProto().setYear(2024).setMonth(1).setDay(1))
|
|
159
|
+
.setMaturityDate(new local_date_pb_1.LocalDateProto().setYear(2054).setMonth(1).setDay(1));
|
|
160
|
+
const proto = new security_pb_1.SecurityProto()
|
|
161
|
+
.setObjectClass('Security').setVersion('0.0.1').setUuid(uuid_1.UUID.random().toUUIDProto())
|
|
162
|
+
.setProductType(product_type_pb_1.ProductTypeProto.MORTGAGE_BACKED)
|
|
163
|
+
.setAssetClass("FixedIncome")
|
|
164
|
+
.setIssuerName("FNMA")
|
|
165
|
+
.setBondDetails(bond);
|
|
166
|
+
// Pool number lives on the mbs_extension sub-message.
|
|
167
|
+
const MbsExtension = require('../../../fintekkers/models/security/security_pb').MbsExtensionProto;
|
|
168
|
+
proto.setMbsExtension(new MbsExtension().setPoolNumber('FN AS1234'));
|
|
169
|
+
return security_1.default.create(proto);
|
|
170
|
+
}
|
|
171
|
+
function dummyIndex() {
|
|
172
|
+
return security_1.default.create(new security_pb_1.SecurityProto()
|
|
173
|
+
.setObjectClass('Security').setVersion('0.0.1').setUuid(uuid_1.UUID.random().toUUIDProto())
|
|
174
|
+
.setProductType(product_type_pb_1.ProductTypeProto.CPI_SERIES)
|
|
175
|
+
.setAssetClass("Index")
|
|
176
|
+
.setIssuerName("BLS")
|
|
177
|
+
.setIndexDetails(new security_pb_1.IndexDetailsProto().setIndexType(index_type_pb_1.IndexTypeProto.CPI_U)));
|
|
178
|
+
}
|
|
179
|
+
function dummyCash() {
|
|
180
|
+
return security_1.default.create(new security_pb_1.SecurityProto()
|
|
181
|
+
.setObjectClass('Security').setVersion('0.0.1').setUuid(uuid_1.UUID.random().toUUIDProto())
|
|
182
|
+
.setProductType(product_type_pb_1.ProductTypeProto.CURRENCY)
|
|
183
|
+
.setAssetClass("Cash")
|
|
184
|
+
.setIssuerName("Federal Reserve"));
|
|
185
|
+
}
|
|
186
|
+
function dummyFxSpot() {
|
|
187
|
+
return security_1.default.create(new security_pb_1.SecurityProto()
|
|
188
|
+
.setObjectClass('Security').setVersion('0.0.1').setUuid(uuid_1.UUID.random().toUUIDProto())
|
|
189
|
+
.setProductType(product_type_pb_1.ProductTypeProto.FX_SPOT)
|
|
190
|
+
.setAssetClass("FX")
|
|
191
|
+
.setIssuerName("FX"));
|
|
192
|
+
}
|
|
112
193
|
//# sourceMappingURL=security.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.test.js","sourceRoot":"","sources":["security.test.ts"],"names":[],"mappings":";;;;;AAAA,iFAA+E;AAC/E,wCAAqC;AAErC,iCAAkC;AAClC,0DAAkC;AAClC,kEAA0C;
|
|
1
|
+
{"version":3,"file":"security.test.js","sourceRoot":"","sources":["security.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -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":";;;;;AAEA,yDAAqD;AACrD,oGAAkG;AAClG,uGAAqG;AACrG,0FAAyF;AACzF,2EAA0E;AAC1E,+FAA6F;AAC7F,uFAAqF;AAErF,oEAA4C;AAC5C,uEAA+C;AAC/C,2DAAmC;AACnC,yFAAuF;AAEvF,aAAa;AACb,gDAAkD;AAClD,wCAAqC;AACrC,wCAA0C;AAC1C,2CAAqC;AAarC,MAAM,WAAW;IAGf,YAAY,aAA8D;QACxE,IAAI,aAAa,YAAY,iCAAgB,EAAE;YAC7C,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;SAC5B;aAAM;YACL,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;SACvD;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,MAAoC;QAC/D,MAAM,gBAAgB,GAAG,IAAI,iCAAgB,EAAE,CAAC;QAChD,gBAAgB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAC/C,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACrC,gBAAgB,CAAC,OAAO,CAAC,WAAI,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QAEtD,2DAA2D;QAC3D,MAAM,iBAAiB,GAAG,wBAAa,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9D,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;QAEtD,yDAAyD;QACzD,gBAAgB,CAAC,YAAY,CAAC,gBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1E,gBAAgB,CAAC,iBAAiB,CAAC,gBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAEpF,mDAAmD;QACnD,MAAM,KAAK,GAAG,eAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QAC7E,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEvC,kEAAkE;QAClE,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpD,gBAAgB,CAAC,kBAAkB,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAClE,gBAAgB,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAEtD,wCAAwC;QACxC,MAAM,eAAe,GAAG,IAAI,oCAAiB,EAAE,CAAC;QAChD,eAAe,CAAC,0BAA0B,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvE,gBAAgB,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAE9C,kDAAkD;QAClD,MAAM,uBAAuB,GAAG,IAAI,gDAAuB,EAAE,CAAC;QAC9D,uBAAuB,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;QAC7D,uBAAuB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC5C,gBAAgB,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,CAAC;QAEhE,8BAA8B;QAC9B,gBAAgB,CAAC,iBAAiB,CAAC,wCAAmB,CAAC,QAAQ,CAAC,CAAC;QAEjE,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,QAAQ;;QACN,IAAI;YACF,MAAM,OAAO,GACX,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,0CAAE,QAAQ,EAAE,mCAAI,MAAM,CAAC;YAEhD,MAAM,SAAS,GACb,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,0CAAE,QAAQ,EAAE,mCAAI,MAAM,CAAC;YAElD,MAAM,kBAAkB,GACtB,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,0CAAE,QAAQ,EAAE,mCAAI,MAAM,CAAC;YAE3D,OAAO,GAAG,CAAA,4BAA6B,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK;gBACpG,aAAa,IAAI,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,cAAc,IAAI,CAAC,kBAAkB,EAAE,YAAY,IAAI,CAAC,QAAQ,EAAE,eAAe,IAAI,CAAC,WAAW,EAAE,KAAK;gBACnJ,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,gBAAgB,IAAI,CAAC,YAAY,EAAE,CAAC,gBAAgB,EAAE,aAAa,IAAI,CAAC,WAAW,EAAE,CAAC,aAAa,EAAE,KAAK;gBAC3I,aAAa,SAAS,cAAc,OAAO,eAAe,kBAAkB,GAAG,CAAC;SACnF;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,OAAO,gDAAgD,CAAC,EAAE,CAAC;SAC5D;IACH,CAAC;IAED,SAAS;QACP,OAAO,CAAC,qBAAU,CAAC,EAAE,EAAE,qBAAU,CAAC,WAAW,EAAE,qBAAU,CAAC,KAAK,EAAE,qBAAU,CAAC,WAAW,EAAE,qBAAU,CAAC,UAAU,CAAC,CAAC;IAClH,CAAC;IAED,QAAQ,CAAC,KAAiB;QACxB,QAAQ,KAAK,EAAE;YACb,KAAK,qBAAU,CAAC,EAAE,CAAC;YACnB,KAAK,qBAAU,CAAC,WAAW;gBACzB,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;YACtB,KAAK,qBAAU,CAAC,KAAK;gBACnB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;YACxB,KAAK,qBAAU,CAAC,WAAW;gBACzB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,aAAa,EAAE,CAAC;YAC5C,KAAK,qBAAU,CAAC,aAAa;gBAC3B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,eAAe,EAAE,CAAC;YAC9C,KAAK,qBAAU,CAAC,YAAY;gBAC1B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;YAC7C,KAAK,qBAAU,CAAC,UAAU,CAAC,CAAC;gBAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;gBAChD,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;aACvC;YACD,KAAK,qBAAU,CAAC,KAAK,CAAC;YACtB,KAAK,qBAAU,CAAC,cAAc;gBAC5B,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACzC,KAAK,qBAAU,CAAC,aAAa;gBAC3B,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACzC;gBACE,MAAM,IAAI,KAAK,CAAC,yCAAyC,KAAK,EAAE,CAAC,CAAC;SACrE;IACH,CAAC;IAED,KAAK;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC/C,OAAO,WAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,OAAO;QACL,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC/C,OAAO,IAAI,wBAAa,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,YAAY;QACV,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAC5C,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACzD,OAAO,IAAI,mBAAS,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,WAAW;QACT,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACvD,OAAO,kBAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,qBAAqB;QACnB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;QACtD,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACnE,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,QAAQ;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACjD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,WAAW;QACT,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACvD,OAAO,IAAI,oBAAO,CAAC,QAAQ,CAAC,0BAA0B,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,aAAa,EAAE,CAAC;IAC5C,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,YAAY;QACV,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAC5C,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACzD,OAAO,IAAI,gBAAS,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,iBAAiB;QACf,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;QACtD,IAAI,CAAC,cAAc;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACnE,OAAO,IAAI,gBAAS,CAAC,cAAc,CAAC,CAAC;IACvC,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,kCAAe,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;IACnC,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;IACxC,CAAC;IAED,uBAAuB;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACH,mBAAmB,CAAC,KAAkB;QACpC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,kCAAgB,CAAC,QAAQ,CAAC;IACjF,CAAC;IAED;;;OAGG;IACH,kBAAkB;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAChD,KAAK,MAAM,UAAU,IAAI,QAAQ,EAAE;YACjC,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC;YAC1C,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE;gBAC1B,OAAO,KAAK,CAAC;aACd;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,KAAkB;QACvB,IAAI,KAAK,YAAY,WAAW,EAAE;YAChC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;SAC3C;aAAM;YACL,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,qBAAqB,CAAC,YAAsB,EAAE,iBAA8B;;QACjF,6CAA6C;QAC7C,IAAI,mBAAoC,CAAC;QACzC,MAAM,UAAU,GAAG,iBAAiB,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC;QAEhE,IAAI,UAAU,KAAK,0CAAoB,CAAC,GAAG,IAAI,UAAU,KAAK,0CAAoB,CAAC,iBAAiB,EAAE;YACpG,mBAAmB,GAAG,IAAI,kCAAe,CAAC,0CAAoB,CAAC,UAAU,CAAC,CAAC;SAC5E;aAAM,IAAI,UAAU,KAAK,0CAAoB,CAAC,IAAI,IAAI,UAAU,KAAK,0CAAoB,CAAC,UAAU,EAAE;YACrG,mBAAmB,GAAG,IAAI,kCAAe,CAAC,0CAAoB,CAAC,OAAO,CAAC,CAAC;SACzE;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,wDAAwD,0CAAoB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;SAC7G;QAED,wBAAwB;QACxB,IAAI,UAAmB,CAAC;QACxB,MAAM,YAAY,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAE5E,IAAI,YAAY,KAAK,kCAAgB,CAAC,aAAa;YACjD,YAAY,KAAK,kCAAgB,CAAC,IAAI;YACtC,YAAY,KAAK,kCAAgB,CAAC,YAAY,EAAE;YAChD,sBAAsB;YACtB,IAAI,UAAU,KAAK,0CAAoB,CAAC,UAAU,IAAI,UAAU,KAAK,0CAAoB,CAAC,iBAAiB,EAAE;gBAC3G,qDAAqD;gBACrD,UAAU,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAC;aAC9C;iBAAM;gBACL,8FAA8F;gBAC9F,2CAA2C;gBAC3C,MAAM,YAAY,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC,OAAO,CAAC;gBACjE,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;gBAE7E,MAAM,gBAAgB,GAAG,YAAY,CAAC,mBAAmB,EAAE,CAAC;gBAC5D,MAAM,cAAc,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;gBACnD,MAAM,SAAS,GAAG,IAAI,oBAAO,CAAC,cAAc,CAAC,0BAA0B,EAAE,CAAC,CAAC;gBAE3E,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAC;gBAChD,MAAM,UAAU,GAAG,IAAI,oBAAO,CAAC,CAAA,MAAA,UAAU,CAAC,QAAQ,EAAE,0CAAE,0BAA0B,EAAE,KAAI,GAAG,CAAC,CAAC;gBAC3F,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBAErD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAC;gBACjD,MAAM,eAAe,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAEhD,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;aAC/C;SACF;aAAM;YACL,yCAAyC;YACzC,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,IAAI,oBAAO,CAAC,CAAA,MAAA,UAAU,CAAC,QAAQ,EAAE,0CAAE,0BAA0B,EAAE,KAAI,GAAG,CAAC,CAAC;YAC3F,UAAU,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;SAC9D;QAED,yBAAyB;QACzB,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,EAAE,CAAC;QAEzC,4DAA4D;QAC5D,MAAM,eAAe,GAAG,IAAI,WAAW,CAAC;YACtC,SAAS,EAAE,iBAAiB,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE;YACpD,cAAc,EAAE,iBAAiB,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE;YAC9D,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE;YACtC,KAAK,EAAE,IAAI,oBAAO,CAAC,KAAK,CAAC;YACzB,QAAQ,EAAE,YAAY;YACtB,eAAe,EAAE,mBAAmB;YACpC,SAAS,EAAE,iBAAiB,CAAC,YAAY,EAAE;YAC3C,QAAQ,EAAE,UAAU;SACrB,CAAC,CAAC;QAEH,oCAAoC;QACpC,eAAe,CAAC,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAC/E,eAAe,CAAC,KAAK,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,CAAC,CAAC;QACvF,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,CAAC;QAErE,yBAAyB;QACzB,iBAAiB,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;QAEvD,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,wBAAwB,CAAC,WAAwB,EAAE,eAAgC,EAAE,YAAsB;;QAChH,2CAA2C;QAC3C,MAAM,YAAY,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC,OAAO,CAAC;QAEjE,gCAAgC;QAChC,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;QAEvE,oBAAoB;QACpB,MAAM,YAAY,GAAG,YAAY,CAAC,eAAe,EAAE,CAAC;QAEpD,oDAAoD;QACpD,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;QAC9C,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACvD,MAAM,cAAc,GAAG,gBAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAEvD,uBAAuB;QACvB,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,oBAAO,CAAC,CAAA,MAAA,UAAU,CAAC,QAAQ,EAAE,0CAAE,0BAA0B,EAAE,KAAI,GAAG,CAAC,CAAC;QAE3F,yBAAyB;QACzB,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;QAEnC,gCAAgC;QAChC,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC;YACjC,SAAS,EAAE,YAAY,CAAC,MAAM,EAAE;YAChC,cAAc,EAAE,cAAc,CAAC,MAAM,EAAE;YACvC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE;YACtC,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,WAAW,CAAC,WAAW,EAAE;YACnC,eAAe,EAAE,eAAe;YAChC,SAAS,EAAE,WAAW,CAAC,YAAY,EAAE;YACrC,QAAQ,EAAE,WAAW,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QAEH,oCAAoC;QACpC,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACpE,UAAU,CAAC,KAAK,CAAC,qBAAqB,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAC5E,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC;QAE1D,2BAA2B;QAC3B,WAAW,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAE5C,gDAAgD;QAChD,WAAW,CAAC,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACtD,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,sBAAsB,CAAC,WAAwB,EAAE,YAAsB;QAC5E,MAAM,YAAY,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QACtE,MAAM,MAAM,GAAG,YAAY,KAAK,kCAAgB,CAAC,aAAa;YAC5D,YAAY,KAAK,kCAAgB,CAAC,YAAY;YAC9C,YAAY,KAAK,kCAAgB,CAAC,IAAI,CAAC;QAEzC,MAAM,eAAe,GAAG,WAAW,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC;QAC/D,MAAM,iBAAiB,GAAG,eAAe,KAAK,0CAAoB,CAAC,GAAG,CAAC;QACvE,MAAM,kBAAkB,GAAG,eAAe,KAAK,0CAAoB,CAAC,IAAI,CAAC;QACzE,MAAM,wBAAwB,GAAG,eAAe,KAAK,0CAAoB,CAAC,UAAU;YAClF,eAAe,KAAK,0CAAoB,CAAC,iBAAiB,CAAC;QAE7D,IAAI,MAAM,IAAI,kBAAkB,IAAI,wBAAwB,EAAE;YAC5D,WAAW,CAAC,wBAAwB,CAAC,WAAW,EAAE,IAAI,kCAAe,CAAC,0CAAoB,CAAC,iBAAiB,CAAC,EAAE,YAAY,CAAC,CAAC;SAC9H;QAED,IAAI,MAAM,IAAI,iBAAiB,IAAI,wBAAwB,EAAE;YAC3D,WAAW,CAAC,wBAAwB,CAAC,WAAW,EAAE,IAAI,kCAAe,CAAC,0CAAoB,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;SACvH;IACH,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,WAAwB,EAAE,YAAsB;QACnE,2CAA2C;QAC3C,IAAI,WAAW,CAAC,kBAAkB,EAAE,IAAI,IAAI,EAAE;YAC5C,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SAC/D;QAED,mDAAmD;QACnD,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,EAAE;YACjC,WAAW,CAAC,qBAAqB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;SAC9D;IACH,CAAC;CACF;AAED,kBAAe,WAAW,CAAC;AAG3B,+GAA+G;AAC/G,4CAA4C;AAC5C,qDAAqD;AACrD,kBAAkB;AAClB,gCAAgC;AAChC,0DAA0D;AAC1D,mBAAmB;AACnB,mBAAmB;AACnB,yBAAyB;AACzB,uDAAuD;AACvD,mBAAmB;AACnB,iBAAiB;AACjB,8DAA8D;AAC9D,MAAM;AAEN,kCAAkC;AAElC,+DAA+D;AAC/D,4BAA4B;AAC5B,yFAAyF;AACzF,uGAAuG;AACvG,8DAA8D;AAC9D,qBAAqB;AACrB,8EAA8E;AAC9E,2CAA2C;AAC3C,+EAA+E;AAC/E,sHAAsH;AACtH,wGAAwG;AACxG,6GAA6G;AAC7G,gGAAgG;AAEhG,oEAAoE;AACpE,cAAc;AACd,mBAAmB;AACnB,iBAAiB;AACjB,4GAA4G;AAC5G,MAAM;AAEN,mDAAmD;AACnD,iEAAiE;AACjE,kCAAkC;AAClC,8CAA8C;AAC9C,mDAAmD;AACnD,wBAAwB;AACxB,0BAA0B;AAC1B,6BAA6B;AAC7B,kBAAkB;AAClB,yCAAyC;AACzC,+BAA+B;AAC/B,8CAA8C;AAC9C,oDAAoD;AACpD,8EAA8E;AAE9E,qFAAqF;AACrF,4DAA4D;AAE5D,6BAA6B;AAC7B,IAAI;AAEJ,MAAM;AACN,0GAA0G;AAC1G,wDAAwD;AACxD,IAAI;AACJ,8CAA8C;AAC9C,KAAK;AACL,uEAAuE;AACvE,kHAAkH;AAClH,uGAAuG;AACvG,gGAAgG;AAChG,yFAAyF;AACzF,8FAA8F;AAC9F,gGAAgG;AAChG,4GAA4G;AAC5G,4FAA4F;AAG5F,mEAAmE;AACnE,kFAAkF;AAClF,MAAM;AAEN,kEAAkE;AAClE,2EAA2E;AAC3E,WAAW;AACX,iBAAiB;AAEjB,uEAAuE;AACvE,wEAAwE;AACxE,+EAA+E;AAC/E,8DAA8D;AAE9D,mHAAmH;AACnH,mHAAmH;AACnH,eAAe;AAEf,2DAA2D;AAC3D,sDAAsD;AAEtD,0DAA0D;AAC1D,uEAAuE;AAEvE,6GAA6G;AAE7G,oHAAoH;AACpH,kBAAkB;AAElB,YAAY;AACZ,MAAM;AACN,IAAI;AAEJ,2GAA2G;AAC3G,0EAA0E;AAE1E,8CAA8C;AAC9C,mFAAmF;AACnF,4CAA4C;AAC5C,wDAAwD;AACxD,kEAAkE;AAClE,kEAAkE;AAClE,mCAAmC;AACnC,gGAAgG;AAChG,qFAAqF;AACrF,OAAO;AAEP,iDAAiD;AAEjD,+BAA+B;AAC/B,IAAI;AAEJ,8DAA8D;AAC9D,kDAAkD;AAClD,kFAAkF;AAClF,MAAM;AAEN,kEAAkE;AAClE,8CAA8C;AAC9C,gGAAgG;AAChG,yEAAyE;AACzE,mEAAmE;AACnE,MAAM;AACN,IAAI"}
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["transaction.ts"],"names":[],"mappings":"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"}
|