@owneraio/finp2p-sdk-js 0.28.10 → 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.
@@ -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 assetIdsToFetch = [
51
- assetId,
52
- ...(settlementResourceId && settlementResourceId !== assetId ? [settlementResourceId] : []),
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 (((_b = asset === null || asset === void 0 ? void 0 : asset.ledgerAssetInfo) === null || _b === void 0 ? void 0 : _b.ledgerIdentifier) && (asset === null || asset === void 0 ? void 0 : asset.id)) {
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 (_g) {
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: (_c = createIntentRequest.sourceCustodianOrgId) !== null && _c !== void 0 ? _c : custodianOrgId,
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: (_d = createIntentRequest.destinationCustodianOrgId) !== null && _d !== void 0 ? _d : custodianOrgId,
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: paymentOrgId,
124
+ orgId: borrowerSettlementOrgId,
116
125
  custodian: {
117
- orgId: (_e = createIntentRequest.sourceCustodianOrgId) !== null && _e !== void 0 ? _e : custodianOrgId,
126
+ orgId: (_l = createIntentRequest.sourceCustodianOrgId) !== null && _l !== void 0 ? _l : custodianOrgId,
118
127
  },
119
128
  },
120
- asset: (settlementAssetIdentifier !== null && settlementAssetIdentifier !== void 0 ? settlementAssetIdentifier : settlementTerm.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: paymentOrgId,
135
+ orgId: lenderSettlementOrgId,
127
136
  custodian: {
128
- orgId: (_f = createIntentRequest.destinationCustodianOrgId) !== null && _f !== void 0 ? _f : custodianOrgId,
137
+ orgId: (_m = createIntentRequest.destinationCustodianOrgId) !== null && _m !== void 0 ? _m : custodianOrgId,
129
138
  },
130
139
  },
131
- asset: (settlementAssetIdentifier !== null && settlementAssetIdentifier !== void 0 ? settlementAssetIdentifier : settlementTerm.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":"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"}
1
+ {"version":3,"file":"createLoanIntent.js","sourceRoot":"","sources":["../../../src/core/intents/createLoanIntent.ts"],"names":[],"mappings":"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"}
@@ -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
- const assetIdsToFetch = [data.assetId];
45
- if (settlementResourceId && settlementResourceId !== data.assetId) {
46
- assetIdsToFetch.push(settlementResourceId);
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 (((_f = asset === null || asset === void 0 ? void 0 : asset.ledgerAssetInfo) === null || _f === void 0 ? void 0 : _f.ledgerIdentifier) && (asset === null || asset === void 0 ? void 0 : asset.id)) {
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 (_27) {
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: (_j = (_h = (_g = loanIntent.borrowerAccount) === null || _g === void 0 ? void 0 : _g.account) === null || _h === void 0 ? void 0 : _h.finId) !== null && _j !== void 0 ? _j : '',
70
- orgId: (_m = (_l = (_k = loanIntent.borrowerAccount) === null || _k === void 0 ? void 0 : _k.account) === null || _l === void 0 ? void 0 : _l.orgId) !== null && _m !== void 0 ? _m : (0, utils_1.getOrgFromResourceId)(data.assetId),
71
- custodian: { orgId: (_o = data.sourceCustodianOrgId) !== null && _o !== void 0 ? _o : custodianOrgId },
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: (_r = (_q = (_p = loanIntent.lenderAccount) === null || _p === void 0 ? void 0 : _p.account) === null || _q === void 0 ? void 0 : _q.finId) !== null && _r !== void 0 ? _r : '',
75
- orgId: (_u = (_t = (_s = loanIntent.lenderAccount) === null || _s === void 0 ? void 0 : _s.account) === null || _t === void 0 ? void 0 : _t.orgId) !== null && _u !== void 0 ? _u : (0, utils_1.getOrgFromResourceId)(data.assetId),
76
- custodian: { orgId: (_v = data.destinationCustodianOrgId) !== null && _v !== void 0 ? _v : custodianOrgId },
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: (_2 = (_z = (_y = (_x = (_w = loanIntent.loanSettlementInstruction) === null || _w === void 0 ? void 0 : _w.lenderAccount) === null || _x === void 0 ? void 0 : _x.account) === null || _y === void 0 ? void 0 : _y.finId) !== null && _z !== void 0 ? _z : (_1 = (_0 = loanIntent.lenderAccount) === null || _0 === void 0 ? void 0 : _0.account) === null || _1 === void 0 ? void 0 : _1.finId) !== null && _2 !== void 0 ? _2 : '',
100
- orgId: (_9 = (_6 = (_5 = (_4 = (_3 = loanIntent.loanSettlementInstruction) === null || _3 === void 0 ? void 0 : _3.lenderAccount) === null || _4 === void 0 ? void 0 : _4.account) === null || _5 === void 0 ? void 0 : _5.orgId) !== null && _6 !== void 0 ? _6 : (_8 = (_7 = loanIntent.lenderAccount) === null || _7 === void 0 ? void 0 : _7.account) === null || _8 === void 0 ? void 0 : _8.orgId) !== null && _9 !== void 0 ? _9 : '',
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: (_10 = data.sourceCustodianOrgId) !== null && _10 !== void 0 ? _10 : custodianOrgId,
110
+ orgId: (_16 = data.sourceCustodianOrgId) !== null && _16 !== void 0 ? _16 : custodianOrgId,
103
111
  },
104
112
  },
105
- asset: settlementAssetIdentifier,
113
+ asset: lenderSettlementAssetIdentifier,
106
114
  },
107
115
  borrowerAccount: {
108
116
  account: {
109
117
  type: 'finId',
110
- finId: (_17 = (_14 = (_13 = (_12 = (_11 = loanIntent.loanSettlementInstruction) === null || _11 === void 0 ? void 0 : _11.borrowerAccount) === null || _12 === void 0 ? void 0 : _12.account) === null || _13 === void 0 ? void 0 : _13.finId) !== null && _14 !== void 0 ? _14 : (_16 = (_15 = loanIntent.borrowerAccount) === null || _15 === void 0 ? void 0 : _15.account) === null || _16 === void 0 ? void 0 : _16.finId) !== null && _17 !== void 0 ? _17 : '',
111
- orgId: (_24 = (_21 = (_20 = (_19 = (_18 = loanIntent.loanSettlementInstruction) === null || _18 === void 0 ? void 0 : _18.borrowerAccount) === null || _19 === void 0 ? void 0 : _19.account) === null || _20 === void 0 ? void 0 : _20.orgId) !== null && _21 !== void 0 ? _21 : (_23 = (_22 = loanIntent.borrowerAccount) === null || _22 === void 0 ? void 0 : _22.account) === null || _23 === void 0 ? void 0 : _23.orgId) !== null && _24 !== void 0 ? _24 : '',
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: (_25 = data.destinationCustodianOrgId) !== null && _25 !== void 0 ? _25 : custodianOrgId,
121
+ orgId: (_33 = data.destinationCustodianOrgId) !== null && _33 !== void 0 ? _33 : custodianOrgId,
114
122
  },
115
123
  },
116
- asset: settlementAssetIdentifier,
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 }, (((_26 = data.observers) === null || _26 === void 0 ? void 0 : _26.length) ? { observers: data.observers } : {}));
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":"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"}
1
+ {"version":3,"file":"executeLoanIntent.js","sourceRoot":"","sources":["../../../src/core/intents/executeLoanIntent.ts"],"names":[],"mappings":"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"}
@@ -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;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@owneraio/finp2p-sdk-js",
3
3
  "main": "lib/index.js",
4
4
  "license": "SEE LICENSE IN LICENSE.md",
5
- "version": "0.28.10",
5
+ "version": "0.28.11",
6
6
  "homepage": "https://ownera.io/",
7
7
  "scripts": {
8
8
  "build": "yarn clean && tsc",