@owneraio/finp2p-sdk-js 0.28.9 → 0.28.11
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/lib/core/intents/createIntent/createPrivateIntentReq.js +6 -9
- package/lib/core/intents/createIntent/createPrivateIntentReq.js.map +1 -1
- package/lib/core/intents/createLoanIntent.js +25 -16
- package/lib/core/intents/createLoanIntent.js.map +1 -1
- package/lib/core/intents/executeLoanIntent.js +30 -22
- package/lib/core/intents/executeLoanIntent.js.map +1 -1
- package/lib/types/Core/Intents.d.ts +42 -0
- package/package.json +1 -1
|
@@ -14,18 +14,15 @@ const createPrivateIntentReq = (req) => {
|
|
|
14
14
|
if ('destinationAccount' in settlementInstruction) {
|
|
15
15
|
const { destinationAccount, buyer } = settlementInstruction;
|
|
16
16
|
if (subType === 'issuance') {
|
|
17
|
-
intentRequest = Object.assign(Object.assign(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
{
|
|
22
|
-
settlementTerm,
|
|
17
|
+
intentRequest = Object.assign(Object.assign({}, intentRequestBase), { buyer: buyer, seller: userId, settlement: [
|
|
18
|
+
Object.assign({ settlementTerm }, (noSettlement
|
|
19
|
+
? {}
|
|
20
|
+
: {
|
|
23
21
|
settlementInstruction: {
|
|
24
22
|
destinationAccount: destinationAccount[0],
|
|
25
23
|
},
|
|
26
|
-
},
|
|
27
|
-
|
|
28
|
-
}));
|
|
24
|
+
})),
|
|
25
|
+
] });
|
|
29
26
|
// v0.28: For issuance (minting), omit `account` from sourceAccount.
|
|
30
27
|
// The spec uses `finp2pAssetAccountOptional` where `account` is optional —
|
|
31
28
|
// omitting it signals the platform to mint new tokens instead of transferring
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createPrivateIntentReq.js","sourceRoot":"","sources":["../../../../src/core/intents/createIntent/createPrivateIntentReq.ts"],"names":[],"mappings":";;;AAaA,uCAAmD;AACnD,oCAAoD;AAI7C,MAAM,sBAAsB,GAAG,CAAC,GAAwB,EAAE,EAAE;IACjE,MAAM,iBAAiB,GAAG,IAAA,gCAAsB,EAAC,GAAG,CAAgC,CAAC;IAErF,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAC5C,MAAM,EAAE,cAAc,EAAE,qBAAqB,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAC;IAC/E,MAAM,YAAY,GAAG,IAAA,gCAAwB,EAAC,cAAc,CAAC,CAAC;IAE9D,IAAI,aAAwC,CAAC;IAE7C,iGAAiG;IACjG,wFAAwF;IACxF,IAAI,oBAAoB,IAAI,qBAAqB,EAAE,CAAC;QAClD,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,GAAG,qBAA6E,CAAC;QAEpH,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAC3B,aAAa,GAAG,
|
|
1
|
+
{"version":3,"file":"createPrivateIntentReq.js","sourceRoot":"","sources":["../../../../src/core/intents/createIntent/createPrivateIntentReq.ts"],"names":[],"mappings":";;;AAaA,uCAAmD;AACnD,oCAAoD;AAI7C,MAAM,sBAAsB,GAAG,CAAC,GAAwB,EAAE,EAAE;IACjE,MAAM,iBAAiB,GAAG,IAAA,gCAAsB,EAAC,GAAG,CAAgC,CAAC;IAErF,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAC5C,MAAM,EAAE,cAAc,EAAE,qBAAqB,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAC;IAC/E,MAAM,YAAY,GAAG,IAAA,gCAAwB,EAAC,cAAc,CAAC,CAAC;IAE9D,IAAI,aAAwC,CAAC;IAE7C,iGAAiG;IACjG,wFAAwF;IACxF,IAAI,oBAAoB,IAAI,qBAAqB,EAAE,CAAC;QAClD,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,GAAG,qBAA6E,CAAC;QAEpH,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAC3B,aAAa,GAAG,gCACX,iBAAiB,KACpB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE;oCAER,cAAc,IACX,CAAC,YAAY;wBACd,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC;4BACE,qBAAqB,EAAE;gCACrB,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CAAC;6BACJ;yBACxC,CAAC;iBAET,GACmC,CAAC;YAEvC,oEAAoE;YACpE,2EAA2E;YAC3E,8EAA8E;YAC9E,0EAA0E;YAC1E,OAAQ,aAAa,CAAC,KAAK,CAAC,gBAAgB,CAAC,aAAqB,CAAC,OAAO,CAAC;QAC7E,CAAC;aAAM,CAAC;YACN,aAAa,GAAG,gCACX,iBAAiB,KACpB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE;oBACV;wBACE,cAAc;wBACd,qBAAqB,EAAE;4BACrB,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CAAC;yBACJ;qBACxC;iBACF,GACgC,CAAC;YAEpC,aAAa,CAAC,KAAK,CAAC,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,GACxE,kBAAkB,CAAC,CAAC,CAAC,CAAC,OACvB,CAAC,SAAS,CAAC,KAAK,CAAC;QACpB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,qBAA4E,CAAC;QAE/G,aAAa,GAAG,gCACX,iBAAiB,KACpB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,UAAU,EAAE;gBACV;oBACE,cAAc;oBACd,qBAAqB,EAAE;wBACrB,aAAa;qBACuB;iBACvC;aACF,GACgC,CAAC;QACpC,aAAa,CAAC,KAAK,CAAC,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC;IACrH,CAAC;IAED,2DAA2D;IAC3D,OAAQ,aAAqB,CAAC,cAAc,CAAC;IAE7C,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAhFW,QAAA,sBAAsB,0BAgFjC"}
|
|
@@ -24,9 +24,9 @@ const helpers_1 = require("./createIntent/helpers");
|
|
|
24
24
|
*
|
|
25
25
|
*/
|
|
26
26
|
const createLoanIntent = (req, options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
27
|
-
var _a, _b, _c, _d, _e, _f;
|
|
27
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
28
28
|
const { createIntentRequest, logger, nodeId, custodianOrgId, owneraAPI, publicKey, userId } = req;
|
|
29
|
-
const { assetId, start, end, amount, settlementTerm, interestRate, closeAmount, role, counterpartId, paymentOrgId, openDate, closeDate, } = createIntentRequest;
|
|
29
|
+
const { assetId, start, end, amount, settlementTerm, interestRate, closeAmount, role, counterpartId, paymentOrgId, openDate, closeDate, settlementBorrowerAccount, settlementLenderAccount, } = createIntentRequest;
|
|
30
30
|
logger.debug('Create Loan Intent', createIntentRequest);
|
|
31
31
|
const partners = {
|
|
32
32
|
borrower: { id: '', pk: '' },
|
|
@@ -47,26 +47,35 @@ const createLoanIntent = (req, options) => __awaiter(void 0, void 0, void 0, fun
|
|
|
47
47
|
partners.lender.pk = publicKey;
|
|
48
48
|
}
|
|
49
49
|
const settlementResourceId = (_a = settlementTerm.asset) === null || _a === void 0 ? void 0 : _a.resourceId;
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
];
|
|
50
|
+
const borrowerOverrideResourceId = (_b = settlementBorrowerAccount === null || settlementBorrowerAccount === void 0 ? void 0 : settlementBorrowerAccount.asset) === null || _b === void 0 ? void 0 : _b.resourceId;
|
|
51
|
+
const lenderOverrideResourceId = (_c = settlementLenderAccount === null || settlementLenderAccount === void 0 ? void 0 : settlementLenderAccount.asset) === null || _c === void 0 ? void 0 : _c.resourceId;
|
|
52
|
+
const assetIdsToFetch = Array.from(new Set([assetId, settlementResourceId, borrowerOverrideResourceId, lenderOverrideResourceId].filter((id) => !!id)));
|
|
54
53
|
const caip19Map = {};
|
|
55
54
|
try {
|
|
56
55
|
const assetsData = yield owneraAPI.query.getAssets({ filter: { assetIds: assetIdsToFetch } });
|
|
57
56
|
for (const asset of assetsData.data || []) {
|
|
58
|
-
if (((
|
|
57
|
+
if (((_d = asset === null || asset === void 0 ? void 0 : asset.ledgerAssetInfo) === null || _d === void 0 ? void 0 : _d.ledgerIdentifier) && (asset === null || asset === void 0 ? void 0 : asset.id)) {
|
|
59
58
|
caip19Map[asset.id] = asset.ledgerAssetInfo.ledgerIdentifier;
|
|
60
59
|
}
|
|
61
60
|
}
|
|
62
61
|
}
|
|
63
|
-
catch (
|
|
62
|
+
catch (_o) {
|
|
64
63
|
logger.debug('Failed to get CAIP-19 for loan intent assets', { assetIdsToFetch });
|
|
65
64
|
}
|
|
66
65
|
const assetIdentifier = (0, helpers_1.buildCaip19Identifier)(caip19Map[assetId], assetId);
|
|
67
66
|
const settlementAssetIdentifier = settlementResourceId
|
|
68
67
|
? (0, helpers_1.buildCaip19Identifier)(caip19Map[settlementResourceId], settlementResourceId)
|
|
69
68
|
: undefined;
|
|
69
|
+
const borrowerSettlementAssetIdentifier = borrowerOverrideResourceId
|
|
70
|
+
? (0, helpers_1.buildCaip19Identifier)(caip19Map[borrowerOverrideResourceId], borrowerOverrideResourceId)
|
|
71
|
+
: settlementAssetIdentifier;
|
|
72
|
+
const lenderSettlementAssetIdentifier = lenderOverrideResourceId
|
|
73
|
+
? (0, helpers_1.buildCaip19Identifier)(caip19Map[lenderOverrideResourceId], lenderOverrideResourceId)
|
|
74
|
+
: settlementAssetIdentifier;
|
|
75
|
+
const borrowerSettlementOrgId = (_e = settlementBorrowerAccount === null || settlementBorrowerAccount === void 0 ? void 0 : settlementBorrowerAccount.orgId) !== null && _e !== void 0 ? _e : paymentOrgId;
|
|
76
|
+
const lenderSettlementOrgId = (_f = settlementLenderAccount === null || settlementLenderAccount === void 0 ? void 0 : settlementLenderAccount.orgId) !== null && _f !== void 0 ? _f : paymentOrgId;
|
|
77
|
+
const borrowerSettlementAssetFallback = (_g = settlementBorrowerAccount === null || settlementBorrowerAccount === void 0 ? void 0 : settlementBorrowerAccount.asset) !== null && _g !== void 0 ? _g : settlementTerm.asset;
|
|
78
|
+
const lenderSettlementAssetFallback = (_h = settlementLenderAccount === null || settlementLenderAccount === void 0 ? void 0 : settlementLenderAccount.asset) !== null && _h !== void 0 ? _h : settlementTerm.asset;
|
|
70
79
|
const nonce = (0, utils_1.generateNonce)();
|
|
71
80
|
const payload = {
|
|
72
81
|
assetId,
|
|
@@ -87,7 +96,7 @@ const createLoanIntent = (req, options) => __awaiter(void 0, void 0, void 0, fun
|
|
|
87
96
|
finId: partners.borrower.pk,
|
|
88
97
|
orgId: (0, utils_1.getOrgFromResourceId)(assetId),
|
|
89
98
|
custodian: {
|
|
90
|
-
orgId: (
|
|
99
|
+
orgId: (_j = createIntentRequest.sourceCustodianOrgId) !== null && _j !== void 0 ? _j : custodianOrgId,
|
|
91
100
|
},
|
|
92
101
|
},
|
|
93
102
|
},
|
|
@@ -98,7 +107,7 @@ const createLoanIntent = (req, options) => __awaiter(void 0, void 0, void 0, fun
|
|
|
98
107
|
finId: partners.lender.pk,
|
|
99
108
|
orgId: (0, utils_1.getOrgFromResourceId)(assetId),
|
|
100
109
|
custodian: {
|
|
101
|
-
orgId: (
|
|
110
|
+
orgId: (_k = createIntentRequest.destinationCustodianOrgId) !== null && _k !== void 0 ? _k : custodianOrgId,
|
|
102
111
|
},
|
|
103
112
|
},
|
|
104
113
|
},
|
|
@@ -112,23 +121,23 @@ const createLoanIntent = (req, options) => __awaiter(void 0, void 0, void 0, fun
|
|
|
112
121
|
account: {
|
|
113
122
|
finId: partners.borrower.pk,
|
|
114
123
|
type: 'finId',
|
|
115
|
-
orgId:
|
|
124
|
+
orgId: borrowerSettlementOrgId,
|
|
116
125
|
custodian: {
|
|
117
|
-
orgId: (
|
|
126
|
+
orgId: (_l = createIntentRequest.sourceCustodianOrgId) !== null && _l !== void 0 ? _l : custodianOrgId,
|
|
118
127
|
},
|
|
119
128
|
},
|
|
120
|
-
asset: (
|
|
129
|
+
asset: (borrowerSettlementAssetIdentifier !== null && borrowerSettlementAssetIdentifier !== void 0 ? borrowerSettlementAssetIdentifier : borrowerSettlementAssetFallback),
|
|
121
130
|
},
|
|
122
131
|
lenderAccount: {
|
|
123
132
|
account: {
|
|
124
133
|
finId: partners.lender.pk,
|
|
125
134
|
type: 'finId',
|
|
126
|
-
orgId:
|
|
135
|
+
orgId: lenderSettlementOrgId,
|
|
127
136
|
custodian: {
|
|
128
|
-
orgId: (
|
|
137
|
+
orgId: (_m = createIntentRequest.destinationCustodianOrgId) !== null && _m !== void 0 ? _m : custodianOrgId,
|
|
129
138
|
},
|
|
130
139
|
},
|
|
131
|
-
asset: (
|
|
140
|
+
asset: (lenderSettlementAssetIdentifier !== null && lenderSettlementAssetIdentifier !== void 0 ? lenderSettlementAssetIdentifier : lenderSettlementAssetFallback),
|
|
132
141
|
},
|
|
133
142
|
},
|
|
134
143
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createLoanIntent.js","sourceRoot":"","sources":["../../../src/core/intents/createLoanIntent.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,kCAAkC;AAClC,oCAA+D;AAC/D,2CAAwC;AACxC,oDAA+D;AAE/D;;;;;;;;GAQG;AACI,MAAM,gBAAgB,GAAG,CAC9B,GAQC,EACD,OAA4B,EACF,EAAE;;IAC5B,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAClG,MAAM,EACJ,OAAO,EACP,KAAK,EACL,GAAG,EACH,MAAM,EACN,cAAc,EACd,YAAY,EACZ,WAAW,EACX,IAAI,EACJ,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,SAAS,
|
|
1
|
+
{"version":3,"file":"createLoanIntent.js","sourceRoot":"","sources":["../../../src/core/intents/createLoanIntent.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,kCAAkC;AAClC,oCAA+D;AAC/D,2CAAwC;AACxC,oDAA+D;AAE/D;;;;;;;;GAQG;AACI,MAAM,gBAAgB,GAAG,CAC9B,GAQC,EACD,OAA4B,EACF,EAAE;;IAC5B,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAClG,MAAM,EACJ,OAAO,EACP,KAAK,EACL,GAAG,EACH,MAAM,EACN,cAAc,EACd,YAAY,EACZ,WAAW,EACX,IAAI,EACJ,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,yBAAyB,EACzB,uBAAuB,GACxB,GAAG,mBAAmB,CAAC;IAExB,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;IAExD,MAAM,QAAQ,GAAG;QACf,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC5B,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;KAC3B,CAAC;IAEF,MAAM,eAAe,GAAG,MAAM,IAAA,cAAO,EAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IAC5G,MAAM,aAAa,GAAG,CAAC,MAAM,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAElE,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAC;QAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,SAAS,CAAC;QACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,aAAa,CAAC;QACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,aAAa,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,aAAa,CAAC;QACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,aAAa,CAAC;QACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC;QAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS,CAAC;IACjC,CAAC;IAED,MAAM,oBAAoB,GAAG,MAAC,cAAsD,CAAC,KAAK,0CAAE,UAAU,CAAC;IACvG,MAAM,0BAA0B,GAAG,MAAC,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,KAA6C,0CACxG,UAAU,CAAC;IACf,MAAM,wBAAwB,GAAG,MAAC,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,KAA6C,0CAAE,UAAU,CAAC;IACrH,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAChC,IAAI,GAAG,CACL,CAAC,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,wBAAwB,CAAC,CAAC,MAAM,CAC1F,CAAC,EAAE,EAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAC3B,CACF,CACF,CAAC;IACF,MAAM,SAAS,GAA8E,EAAE,CAAC;IAChG,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;QAC9F,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;YAC1C,IAAI,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,eAAe,0CAAE,gBAAgB,MAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,CAAA,EAAE,CAAC;gBAC1D,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,eAAe,CAAC,gBAAgB,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IAAC,WAAM,CAAC;QACP,MAAM,CAAC,KAAK,CAAC,8CAA8C,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,eAAe,GAAG,IAAA,+BAAqB,EAAC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3E,MAAM,yBAAyB,GAAG,oBAAoB;QACpD,CAAC,CAAC,IAAA,+BAAqB,EAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;QAC9E,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,iCAAiC,GAAG,0BAA0B;QAClE,CAAC,CAAC,IAAA,+BAAqB,EAAC,SAAS,CAAC,0BAA0B,CAAC,EAAE,0BAA0B,CAAC;QAC1F,CAAC,CAAC,yBAAyB,CAAC;IAC9B,MAAM,+BAA+B,GAAG,wBAAwB;QAC9D,CAAC,CAAC,IAAA,+BAAqB,EAAC,SAAS,CAAC,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;QACtF,CAAC,CAAC,yBAAyB,CAAC;IAC9B,MAAM,uBAAuB,GAAG,MAAA,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,KAAK,mCAAI,YAAY,CAAC;IACjF,MAAM,qBAAqB,GAAG,MAAA,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,KAAK,mCAAI,YAAY,CAAC;IAC7E,MAAM,+BAA+B,GAAG,MAAA,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,KAAK,mCAAI,cAAc,CAAC,KAAK,CAAC;IACjG,MAAM,6BAA6B,GAAG,MAAA,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,KAAK,mCAAI,cAAc,CAAC,KAAK,CAAC;IAE7F,MAAM,KAAK,GAAG,IAAA,qBAAa,GAAE,CAAC;IAC9B,MAAM,OAAO,GAAwB;QACnC,OAAO;QACP,KAAK;QACL,GAAG;QACH,MAAM,EAAE;YACN,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;YAC9B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC1B,KAAK,EAAE;gBACL,SAAS,EAAE,EAAE,MAAM,EAAE;gBACrB,gBAAgB,EAAE;oBAChB,eAAe,EAAE;wBACf,KAAK,EAAE,eAAsB;wBAC7B,OAAO,EAAE;4BACP,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;4BAC3B,KAAK,EAAE,IAAA,4BAAoB,EAAC,OAAO,CAAC;4BACpC,SAAS,EAAE;gCACT,KAAK,EAAE,MAAA,mBAAmB,CAAC,oBAAoB,mCAAI,cAAc;6BAClE;yBACF;qBACF;oBACD,aAAa,EAAE;wBACb,KAAK,EAAE,eAAsB;wBAC7B,OAAO,EAAE;4BACP,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE;4BACzB,KAAK,EAAE,IAAA,4BAAoB,EAAC,OAAO,CAAC;4BACpC,SAAS,EAAE;gCACT,KAAK,EAAE,MAAA,mBAAmB,CAAC,yBAAyB,mCAAI,cAAc;6BACvE;yBACF;qBACF;iBACF;aACF;YACD,UAAU,EAAE;gBACV;oBACE,cAAc;oBACd,qBAAqB,EAAE;wBACrB,eAAe,EAAE;4BACf,OAAO,EAAE;gCACP,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;gCAC3B,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE,uBAAuB;gCAC9B,SAAS,EAAE;oCACT,KAAK,EAAE,MAAA,mBAAmB,CAAC,oBAAoB,mCAAI,cAAc;iCAClE;6BACF;4BACD,KAAK,EAAE,CAAC,iCAAiC,aAAjC,iCAAiC,cAAjC,iCAAiC,GAAI,+BAAgC,CAAQ;yBACtF;wBACD,aAAa,EAAE;4BACb,OAAO,EAAE;gCACP,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE;gCACzB,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE,qBAAqB;gCAC5B,SAAS,EAAE;oCACT,KAAK,EAAE,MAAA,mBAAmB,CAAC,yBAAyB,mCAAI,cAAc;iCACvE;6BACF;4BACD,KAAK,EAAE,CAAC,+BAA+B,aAA/B,+BAA+B,cAA/B,+BAA+B,GAAI,6BAA8B,CAAQ;yBAClF;qBACF;iBACF;aACF;YACD,eAAe,EAAE;gBACf,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;gBACvC,UAAU,kBACR,IAAI,EAAE,eAAe,EACrB,WAAW,IACR,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAC1C;aACF;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,iBAAiB;gBACvB,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;aAC7B;SACF;KACF,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE;QAC5D,WAAW,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc;KACrC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,OAAO,CAAC,IAAA,qBAAS,EAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACtH,CAAC,CAAA,CAAC;AAjLW,QAAA,gBAAgB,oBAiL3B"}
|
|
@@ -23,7 +23,7 @@ const helpers_1 = require("./createIntent/helpers");
|
|
|
23
23
|
*
|
|
24
24
|
*/
|
|
25
25
|
const executeLoanIntent = (req) => __awaiter(void 0, void 0, void 0, function* () {
|
|
26
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26;
|
|
26
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34;
|
|
27
27
|
const { owneraAPI, data, custodianOrgId, userId, idempotency, logger } = req;
|
|
28
28
|
const intent = yield owneraAPI.query.getLoanIntent({ assetId: data.assetId, intentId: data.intentId });
|
|
29
29
|
const intentDetails = intent.intent.intent;
|
|
@@ -41,24 +41,32 @@ const executeLoanIntent = (req) => __awaiter(void 0, void 0, void 0, function* (
|
|
|
41
41
|
if (settlementTermAmount === undefined || !settlementResourceId) {
|
|
42
42
|
throw new Error('Settlement data missing on stored loan intent; pass settlementTermAmount and settlementAssetId in execution data.');
|
|
43
43
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
// Per-side settlement overrides — required for multi-bank settlement
|
|
45
|
+
// (matching what was passed on createLoanIntent). When absent, both
|
|
46
|
+
// settlement accounts collapse onto the single `settlementResourceId`.
|
|
47
|
+
const borrowerOverrideResourceId = (_g = (_f = data.settlementBorrowerAccount) === null || _f === void 0 ? void 0 : _f.asset) === null || _g === void 0 ? void 0 : _g.resourceId;
|
|
48
|
+
const lenderOverrideResourceId = (_j = (_h = data.settlementLenderAccount) === null || _h === void 0 ? void 0 : _h.asset) === null || _j === void 0 ? void 0 : _j.resourceId;
|
|
49
|
+
const assetIdsToFetch = Array.from(new Set([data.assetId, settlementResourceId, borrowerOverrideResourceId, lenderOverrideResourceId].filter((id) => !!id)));
|
|
48
50
|
const caip19Map = {};
|
|
49
51
|
try {
|
|
50
52
|
const assetsData = yield owneraAPI.query.getAssets({ filter: { assetIds: assetIdsToFetch } });
|
|
51
53
|
for (const asset of assetsData.data || []) {
|
|
52
|
-
if (((
|
|
54
|
+
if (((_k = asset === null || asset === void 0 ? void 0 : asset.ledgerAssetInfo) === null || _k === void 0 ? void 0 : _k.ledgerIdentifier) && (asset === null || asset === void 0 ? void 0 : asset.id)) {
|
|
53
55
|
caip19Map[asset.id] = asset.ledgerAssetInfo.ledgerIdentifier;
|
|
54
56
|
}
|
|
55
57
|
}
|
|
56
58
|
}
|
|
57
|
-
catch (
|
|
59
|
+
catch (_35) {
|
|
58
60
|
logger.debug('Failed to get CAIP-19 for loan intent assets', { assetIdsToFetch });
|
|
59
61
|
}
|
|
60
62
|
const assetIdentifier = (0, helpers_1.buildCaip19Identifier)(caip19Map[data.assetId], data.assetId);
|
|
61
63
|
const settlementAssetIdentifier = (0, helpers_1.buildCaip19Identifier)(caip19Map[settlementResourceId], settlementResourceId);
|
|
64
|
+
const borrowerSettlementAssetIdentifier = borrowerOverrideResourceId
|
|
65
|
+
? (0, helpers_1.buildCaip19Identifier)(caip19Map[borrowerOverrideResourceId], borrowerOverrideResourceId)
|
|
66
|
+
: settlementAssetIdentifier;
|
|
67
|
+
const lenderSettlementAssetIdentifier = lenderOverrideResourceId
|
|
68
|
+
? (0, helpers_1.buildCaip19Identifier)(caip19Map[lenderOverrideResourceId], lenderOverrideResourceId)
|
|
69
|
+
: settlementAssetIdentifier;
|
|
62
70
|
const execIntent = {
|
|
63
71
|
asset: {
|
|
64
72
|
assetTerm: {
|
|
@@ -66,14 +74,14 @@ const executeLoanIntent = (req) => __awaiter(void 0, void 0, void 0, function* (
|
|
|
66
74
|
},
|
|
67
75
|
assetInstruction: {
|
|
68
76
|
borrowerAccount: (0, helpers_1.buildFinp2pAssetAccount)({
|
|
69
|
-
finId: (
|
|
70
|
-
orgId: (
|
|
71
|
-
custodian: { orgId: (
|
|
77
|
+
finId: (_o = (_m = (_l = loanIntent.borrowerAccount) === null || _l === void 0 ? void 0 : _l.account) === null || _m === void 0 ? void 0 : _m.finId) !== null && _o !== void 0 ? _o : '',
|
|
78
|
+
orgId: (_r = (_q = (_p = loanIntent.borrowerAccount) === null || _p === void 0 ? void 0 : _p.account) === null || _q === void 0 ? void 0 : _q.orgId) !== null && _r !== void 0 ? _r : (0, utils_1.getOrgFromResourceId)(data.assetId),
|
|
79
|
+
custodian: { orgId: (_s = data.sourceCustodianOrgId) !== null && _s !== void 0 ? _s : custodianOrgId },
|
|
72
80
|
}, assetIdentifier),
|
|
73
81
|
lenderAccount: (0, helpers_1.buildFinp2pAssetAccount)({
|
|
74
|
-
finId: (
|
|
75
|
-
orgId: (
|
|
76
|
-
custodian: { orgId: (
|
|
82
|
+
finId: (_v = (_u = (_t = loanIntent.lenderAccount) === null || _t === void 0 ? void 0 : _t.account) === null || _u === void 0 ? void 0 : _u.finId) !== null && _v !== void 0 ? _v : '',
|
|
83
|
+
orgId: (_y = (_x = (_w = loanIntent.lenderAccount) === null || _w === void 0 ? void 0 : _w.account) === null || _x === void 0 ? void 0 : _x.orgId) !== null && _y !== void 0 ? _y : (0, utils_1.getOrgFromResourceId)(data.assetId),
|
|
84
|
+
custodian: { orgId: (_z = data.destinationCustodianOrgId) !== null && _z !== void 0 ? _z : custodianOrgId },
|
|
77
85
|
}, assetIdentifier),
|
|
78
86
|
},
|
|
79
87
|
},
|
|
@@ -96,30 +104,30 @@ const executeLoanIntent = (req) => __awaiter(void 0, void 0, void 0, function* (
|
|
|
96
104
|
lenderAccount: {
|
|
97
105
|
account: {
|
|
98
106
|
type: 'finId',
|
|
99
|
-
finId: (
|
|
100
|
-
orgId: (
|
|
107
|
+
finId: (_6 = (_3 = (_2 = (_1 = (_0 = loanIntent.loanSettlementInstruction) === null || _0 === void 0 ? void 0 : _0.lenderAccount) === null || _1 === void 0 ? void 0 : _1.account) === null || _2 === void 0 ? void 0 : _2.finId) !== null && _3 !== void 0 ? _3 : (_5 = (_4 = loanIntent.lenderAccount) === null || _4 === void 0 ? void 0 : _4.account) === null || _5 === void 0 ? void 0 : _5.finId) !== null && _6 !== void 0 ? _6 : '',
|
|
108
|
+
orgId: (_15 = (_12 = (_8 = (_7 = data.settlementLenderAccount) === null || _7 === void 0 ? void 0 : _7.orgId) !== null && _8 !== void 0 ? _8 : (_11 = (_10 = (_9 = loanIntent.loanSettlementInstruction) === null || _9 === void 0 ? void 0 : _9.lenderAccount) === null || _10 === void 0 ? void 0 : _10.account) === null || _11 === void 0 ? void 0 : _11.orgId) !== null && _12 !== void 0 ? _12 : (_14 = (_13 = loanIntent.lenderAccount) === null || _13 === void 0 ? void 0 : _13.account) === null || _14 === void 0 ? void 0 : _14.orgId) !== null && _15 !== void 0 ? _15 : '',
|
|
101
109
|
custodian: {
|
|
102
|
-
orgId: (
|
|
110
|
+
orgId: (_16 = data.sourceCustodianOrgId) !== null && _16 !== void 0 ? _16 : custodianOrgId,
|
|
103
111
|
},
|
|
104
112
|
},
|
|
105
|
-
asset:
|
|
113
|
+
asset: lenderSettlementAssetIdentifier,
|
|
106
114
|
},
|
|
107
115
|
borrowerAccount: {
|
|
108
116
|
account: {
|
|
109
117
|
type: 'finId',
|
|
110
|
-
finId: (
|
|
111
|
-
orgId: (
|
|
118
|
+
finId: (_23 = (_20 = (_19 = (_18 = (_17 = loanIntent.loanSettlementInstruction) === null || _17 === void 0 ? void 0 : _17.borrowerAccount) === null || _18 === void 0 ? void 0 : _18.account) === null || _19 === void 0 ? void 0 : _19.finId) !== null && _20 !== void 0 ? _20 : (_22 = (_21 = loanIntent.borrowerAccount) === null || _21 === void 0 ? void 0 : _21.account) === null || _22 === void 0 ? void 0 : _22.finId) !== null && _23 !== void 0 ? _23 : '',
|
|
119
|
+
orgId: (_32 = (_29 = (_25 = (_24 = data.settlementBorrowerAccount) === null || _24 === void 0 ? void 0 : _24.orgId) !== null && _25 !== void 0 ? _25 : (_28 = (_27 = (_26 = loanIntent.loanSettlementInstruction) === null || _26 === void 0 ? void 0 : _26.borrowerAccount) === null || _27 === void 0 ? void 0 : _27.account) === null || _28 === void 0 ? void 0 : _28.orgId) !== null && _29 !== void 0 ? _29 : (_31 = (_30 = loanIntent.borrowerAccount) === null || _30 === void 0 ? void 0 : _30.account) === null || _31 === void 0 ? void 0 : _31.orgId) !== null && _32 !== void 0 ? _32 : '',
|
|
112
120
|
custodian: {
|
|
113
|
-
orgId: (
|
|
121
|
+
orgId: (_33 = data.destinationCustodianOrgId) !== null && _33 !== void 0 ? _33 : custodianOrgId,
|
|
114
122
|
},
|
|
115
123
|
},
|
|
116
|
-
asset:
|
|
124
|
+
asset: borrowerSettlementAssetIdentifier,
|
|
117
125
|
},
|
|
118
126
|
},
|
|
119
127
|
},
|
|
120
128
|
type: 'loanIntentExecution',
|
|
121
129
|
};
|
|
122
|
-
const request = Object.assign({ intentId: data.intentId, user: userId, intent: execIntent, executionId: data.executionId }, (((
|
|
130
|
+
const request = Object.assign({ intentId: data.intentId, user: userId, intent: execIntent, executionId: data.executionId }, (((_34 = data.observers) === null || _34 === void 0 ? void 0 : _34.length) ? { observers: data.observers } : {}));
|
|
123
131
|
const execution = yield (0, tokens_1.executeTokenIntent)({
|
|
124
132
|
owneraAPI,
|
|
125
133
|
logger,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executeLoanIntent.js","sourceRoot":"","sources":["../../../src/core/intents/executeLoanIntent.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,oCAA+D;AAE/D,mCAAkD;AAClD,sCAA+C;AAC/C,oDAAwF;AAExF;;;;;;;GAOG;AACI,MAAM,iBAAiB,GAAG,CAAO,GAOvC,EAA4B,EAAE;;IAC7B,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAC7E,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvG,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAA6B,CAAC;IAClE,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC;IACpC,MAAM,UAAU,GAAG,aAAa,CAAC;IACjC,MAAM,KAAK,GAAG,IAAA,qBAAa,GAAE,CAAC;IAE9B,wFAAwF;IACxF,sGAAsG;IACtG,8FAA8F;IAC9F,gGAAgG;IAChG,oEAAoE;IACpE,MAAM,0BAA0B,GAAG,IAAA,+BAAuB,EAAC,aAAa,CAAC,CAAC;IAC1E,MAAM,oBAAoB,GAAG,MAAA,IAAI,CAAC,oBAAoB,mCAAI,0BAA0B,CAAC;IAErF,MAAM,oBAAoB,GACxB,MAAA,IAAI,CAAC,iBAAiB,mCAAI,MAAA,MAAA,MAAA,UAAU,CAAC,yBAAyB,0CAAE,aAAa,0CAAE,KAAK,0CAAE,UAAU,CAAC;IAEnG,IAAI,oBAAoB,KAAK,SAAS,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CACb,mHAAmH,CACpH,CAAC;IACJ,CAAC;IAED,MAAM,
|
|
1
|
+
{"version":3,"file":"executeLoanIntent.js","sourceRoot":"","sources":["../../../src/core/intents/executeLoanIntent.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,oCAA+D;AAE/D,mCAAkD;AAClD,sCAA+C;AAC/C,oDAAwF;AAExF;;;;;;;GAOG;AACI,MAAM,iBAAiB,GAAG,CAAO,GAOvC,EAA4B,EAAE;;IAC7B,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAC7E,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvG,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAA6B,CAAC;IAClE,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC;IACpC,MAAM,UAAU,GAAG,aAAa,CAAC;IACjC,MAAM,KAAK,GAAG,IAAA,qBAAa,GAAE,CAAC;IAE9B,wFAAwF;IACxF,sGAAsG;IACtG,8FAA8F;IAC9F,gGAAgG;IAChG,oEAAoE;IACpE,MAAM,0BAA0B,GAAG,IAAA,+BAAuB,EAAC,aAAa,CAAC,CAAC;IAC1E,MAAM,oBAAoB,GAAG,MAAA,IAAI,CAAC,oBAAoB,mCAAI,0BAA0B,CAAC;IAErF,MAAM,oBAAoB,GACxB,MAAA,IAAI,CAAC,iBAAiB,mCAAI,MAAA,MAAA,MAAA,UAAU,CAAC,yBAAyB,0CAAE,aAAa,0CAAE,KAAK,0CAAE,UAAU,CAAC;IAEnG,IAAI,oBAAoB,KAAK,SAAS,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CACb,mHAAmH,CACpH,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,oEAAoE;IACpE,uEAAuE;IACvE,MAAM,0BAA0B,GAAG,MAAC,MAAA,IAAI,CAAC,yBAAyB,0CAAE,KAA6C,0CAC7G,UAAU,CAAC;IACf,MAAM,wBAAwB,GAAG,MAAC,MAAA,IAAI,CAAC,uBAAuB,0CAAE,KAA6C,0CACzG,UAAU,CAAC;IAEf,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAChC,IAAI,GAAG,CACL,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,wBAAwB,CAAC,CAAC,MAAM,CAC/F,CAAC,EAAE,EAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAC3B,CACF,CACF,CAAC;IAEF,MAAM,SAAS,GAA8E,EAAE,CAAC;IAChG,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;QAC9F,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;YAC1C,IAAI,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,eAAe,0CAAE,gBAAgB,MAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,CAAA,EAAE,CAAC;gBAC1D,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,eAAe,CAAC,gBAAgB,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IAAC,YAAM,CAAC;QACP,MAAM,CAAC,KAAK,CAAC,8CAA8C,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,eAAe,GAAG,IAAA,+BAAqB,EAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrF,MAAM,yBAAyB,GAAG,IAAA,+BAAqB,EAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC,CAAC;IAC/G,MAAM,iCAAiC,GAAG,0BAA0B;QAClE,CAAC,CAAC,IAAA,+BAAqB,EAAC,SAAS,CAAC,0BAA0B,CAAC,EAAE,0BAA0B,CAAC;QAC1F,CAAC,CAAC,yBAAyB,CAAC;IAC9B,MAAM,+BAA+B,GAAG,wBAAwB;QAC9D,CAAC,CAAC,IAAA,+BAAqB,EAAC,SAAS,CAAC,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;QACtF,CAAC,CAAC,yBAAyB,CAAC;IAE9B,MAAM,UAAU,GAAwB;QACtC,KAAK,EAAE;YACL,SAAS,EAAE;gBACT,MAAM,EAAE,SAAS,CAAC,MAAM;aACzB;YACD,gBAAgB,EAAE;gBAChB,eAAe,EAAE,IAAA,iCAAuB,EACtC;oBACE,KAAK,EAAE,MAAA,MAAA,MAAA,UAAU,CAAC,eAAe,0CAAE,OAAO,0CAAE,KAAK,mCAAI,EAAE;oBACvD,KAAK,EAAE,MAAA,MAAA,MAAA,UAAU,CAAC,eAAe,0CAAE,OAAO,0CAAE,KAAK,mCAAI,IAAA,4BAAoB,EAAC,IAAI,CAAC,OAAO,CAAC;oBACvF,SAAS,EAAE,EAAE,KAAK,EAAE,MAAA,IAAI,CAAC,oBAAoB,mCAAI,cAAc,EAAE;iBAClE,EACD,eAAe,CACT;gBACR,aAAa,EAAE,IAAA,iCAAuB,EACpC;oBACE,KAAK,EAAE,MAAA,MAAA,MAAA,UAAU,CAAC,aAAa,0CAAE,OAAO,0CAAE,KAAK,mCAAI,EAAE;oBACrD,KAAK,EAAE,MAAA,MAAA,MAAA,UAAU,CAAC,aAAa,0CAAE,OAAO,0CAAE,KAAK,mCAAI,IAAA,4BAAoB,EAAC,IAAI,CAAC,OAAO,CAAC;oBACrF,SAAS,EAAE,EAAE,KAAK,EAAE,MAAA,IAAI,CAAC,yBAAyB,mCAAI,cAAc,EAAE;iBACvE,EACD,eAAe,CACT;aACT;SACF;QACD,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,eAAe,EAAE;YACf,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC;YACrD,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC;YACvD,UAAU,kBACR,IAAI,EAAE,eAAe,EACrB,WAAW,EAAG,UAAU,CAAC,eAAe,CAAC,cAAyC,CAAC,eAAe,IAC/F,CAAE,UAAU,CAAC,eAAe,CAAC,cAAyC,CAAC,oBAAoB;gBAC5F,CAAC,CAAC,EAAE,YAAY,EAAG,UAAU,CAAC,eAAe,CAAC,cAAyC,CAAC,oBAAoB,EAAE;gBAC9G,CAAC,CAAC,EAAE,CAAC,CACR;SACF;QACD,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC5B,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,EAAE;aAC7E;YACD,gBAAgB,EAAE;gBAChB,aAAa,EAAE;oBACb,OAAO,EAAE;wBACP,IAAI,EAAE,OAAO;wBACb,KAAK,EACH,MAAA,MAAA,MAAA,MAAA,MAAA,UAAU,CAAC,yBAAyB,0CAAE,aAAa,0CAAE,OAAO,0CAAE,KAAK,mCACnE,MAAA,MAAA,UAAU,CAAC,aAAa,0CAAE,OAAO,0CAAE,KAAK,mCACxC,EAAE;wBACJ,KAAK,EACH,OAAA,OAAA,MAAA,MAAA,IAAI,CAAC,uBAAuB,0CAAE,KAAK,mCACnC,OAAA,OAAA,MAAA,UAAU,CAAC,yBAAyB,0CAAE,aAAa,4CAAE,OAAO,4CAAE,KAAK,qCACnE,OAAA,OAAA,UAAU,CAAC,aAAa,4CAAE,OAAO,4CAAE,KAAK,qCACxC,EAAE;wBACJ,SAAS,EAAE;4BACT,KAAK,EAAE,OAAA,IAAI,CAAC,oBAAoB,qCAAI,cAAc;yBACnD;qBACF;oBACD,KAAK,EAAE,+BAAsC;iBAC9C;gBACD,eAAe,EAAE;oBACf,OAAO,EAAE;wBACP,IAAI,EAAE,OAAO;wBACb,KAAK,EACH,OAAA,OAAA,OAAA,OAAA,OAAA,UAAU,CAAC,yBAAyB,4CAAE,eAAe,4CAAE,OAAO,4CAAE,KAAK,qCACrE,OAAA,OAAA,UAAU,CAAC,eAAe,4CAAE,OAAO,4CAAE,KAAK,qCAC1C,EAAE;wBACJ,KAAK,EACH,OAAA,OAAA,OAAA,OAAA,IAAI,CAAC,yBAAyB,4CAAE,KAAK,qCACrC,OAAA,OAAA,OAAA,UAAU,CAAC,yBAAyB,4CAAE,eAAe,4CAAE,OAAO,4CAAE,KAAK,qCACrE,OAAA,OAAA,UAAU,CAAC,eAAe,4CAAE,OAAO,4CAAE,KAAK,qCAC1C,EAAE;wBACJ,SAAS,EAAE;4BACT,KAAK,EAAE,OAAA,IAAI,CAAC,yBAAyB,qCAAI,cAAc;yBACxD;qBACF;oBACD,KAAK,EAAE,iCAAwC;iBAChD;aACF;SACF;QACD,IAAI,EAAE,qBAAqB;KAC5B,CAAC;IAEF,MAAM,OAAO,mBACX,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,EAClB,WAAW,EAAE,IAAI,CAAC,WAAW,IAC1B,CAAC,CAAA,OAAA,IAAI,CAAC,SAAS,4CAAE,MAAM,EAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACjE,CAAC;IAEF,MAAM,SAAS,GAAG,MAAM,IAAA,2BAAkB,EACxC;QACE,SAAS;QACT,MAAM;QACN,IAAI,EAAE,OAAO;KACd,EACD,EAAE,cAAc,EAAE,WAAW,EAAE,CAChC,CAAC;IAEF,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC,CAAA,CAAC;AA5KW,QAAA,iBAAiB,qBA4K5B"}
|
|
@@ -46,6 +46,18 @@ export interface CreateIntent {
|
|
|
46
46
|
custodianOrgId?: string;
|
|
47
47
|
intentId?: string;
|
|
48
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Optional per-side override for a loan intent's settlement instruction
|
|
51
|
+
* account. Use when the borrower's and lender's cash accounts live at
|
|
52
|
+
* different orgs (e.g. multi-bank Swift settlement, where each leg's wire
|
|
53
|
+
* must originate from the sender's bank). `orgId` becomes the settlement
|
|
54
|
+
* account's `orgId`; `asset` falls back to `settlementTerm.asset` when not
|
|
55
|
+
* provided.
|
|
56
|
+
*/
|
|
57
|
+
export interface LoanIntentSettlementAccountOverride {
|
|
58
|
+
orgId: string;
|
|
59
|
+
asset?: SettlementAssetTerm;
|
|
60
|
+
}
|
|
49
61
|
export interface CreateLoanIntent {
|
|
50
62
|
amount: string;
|
|
51
63
|
assetId: string;
|
|
@@ -62,6 +74,17 @@ export interface CreateLoanIntent {
|
|
|
62
74
|
start: number;
|
|
63
75
|
sourceCustodianOrgId?: string;
|
|
64
76
|
destinationCustodianOrgId?: string;
|
|
77
|
+
/**
|
|
78
|
+
* Optional per-side overrides for the settlement instruction's borrower
|
|
79
|
+
* and lender accounts. When omitted, both accounts use `paymentOrgId` and
|
|
80
|
+
* `settlementTerm.asset` (today's behavior). Required for multi-org
|
|
81
|
+
* settlement (e.g. bilateral repo where open-leg cash originates from the
|
|
82
|
+
* lender's bank and close-leg from the borrower's bank). Target-based loan
|
|
83
|
+
* policies in finp2p-core resolve each cash transfer's executor from the
|
|
84
|
+
* targeted settlement account's `orgId`.
|
|
85
|
+
*/
|
|
86
|
+
settlementBorrowerAccount?: LoanIntentSettlementAccountOverride;
|
|
87
|
+
settlementLenderAccount?: LoanIntentSettlementAccountOverride;
|
|
65
88
|
}
|
|
66
89
|
export interface IntentExecution {
|
|
67
90
|
assetId: string;
|
|
@@ -96,6 +119,25 @@ export interface LoanIntentExecutionData {
|
|
|
96
119
|
settlementAssetId?: string;
|
|
97
120
|
settlementTermAmount?: string;
|
|
98
121
|
observers?: string[];
|
|
122
|
+
/**
|
|
123
|
+
* Optional per-side overrides for the settlement instruction's borrower
|
|
124
|
+
* and lender accounts on the execute payload. Mirrors the shape on
|
|
125
|
+
* `CreateLoanIntent` — see {@link LoanIntentSettlementAccountOverride}.
|
|
126
|
+
*
|
|
127
|
+
* When omitted, both settlement accounts use the single
|
|
128
|
+
* `settlementAssetId` (today's behavior). When provided, each side's
|
|
129
|
+
* `account.orgId` and `asset.id` are populated from the override —
|
|
130
|
+
* required for multi-bank Swift settlement so each cash leg's executor
|
|
131
|
+
* is routed to the sender's bank and the asset attached to each side
|
|
132
|
+
* matches the bank actually servicing that side.
|
|
133
|
+
*
|
|
134
|
+
* The OSS GraphQL read fragment for loan intents currently doesn't
|
|
135
|
+
* expose the per-side data stored at create time, so callers must pass
|
|
136
|
+
* these overrides explicitly on execute (matching what was sent on
|
|
137
|
+
* create).
|
|
138
|
+
*/
|
|
139
|
+
settlementBorrowerAccount?: LoanIntentSettlementAccountOverride;
|
|
140
|
+
settlementLenderAccount?: LoanIntentSettlementAccountOverride;
|
|
99
141
|
}
|
|
100
142
|
export interface TransferRequestIntentMetadata {
|
|
101
143
|
referenceId?: string;
|