@centrifuge/sdk 0.0.0-alpha.34 → 0.0.0-alpha.37

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.
Files changed (72) hide show
  1. package/dist/Centrifuge.d.ts +7 -6
  2. package/dist/Centrifuge.d.ts.map +1 -1
  3. package/dist/Centrifuge.js +107 -77
  4. package/dist/Centrifuge.js.map +1 -1
  5. package/dist/Centrifuge.test.js +12 -9
  6. package/dist/Centrifuge.test.js.map +1 -1
  7. package/dist/abi/Currency.abi.d.ts +1 -1
  8. package/dist/abi/Currency.abi.d.ts.map +1 -1
  9. package/dist/abi/Currency.abi.js +1 -0
  10. package/dist/abi/Currency.abi.js.map +1 -1
  11. package/dist/abi/ERC6909.abi.d.ts +1 -1
  12. package/dist/abi/ERC6909.abi.d.ts.map +1 -1
  13. package/dist/abi/ERC6909.abi.js +3 -0
  14. package/dist/abi/ERC6909.abi.js.map +1 -1
  15. package/dist/abi/PoolEscrow.abi.d.ts +3 -0
  16. package/dist/abi/PoolEscrow.abi.d.ts.map +1 -0
  17. package/dist/abi/PoolEscrow.abi.js +32 -0
  18. package/dist/abi/PoolEscrow.abi.js.map +1 -0
  19. package/dist/abi/PoolEscrowFactory.abi.d.ts +3 -0
  20. package/dist/abi/PoolEscrowFactory.abi.d.ts.map +1 -0
  21. package/dist/abi/PoolEscrowFactory.abi.js +19 -0
  22. package/dist/abi/PoolEscrowFactory.abi.js.map +1 -0
  23. package/dist/abi/VaultRouter.abi.d.ts +1 -1
  24. package/dist/abi/VaultRouter.abi.d.ts.map +1 -1
  25. package/dist/abi/VaultRouter.abi.js +0 -1
  26. package/dist/abi/VaultRouter.abi.js.map +1 -1
  27. package/dist/abi/index.d.ts +171 -8
  28. package/dist/abi/index.d.ts.map +1 -1
  29. package/dist/abi/index.js +4 -0
  30. package/dist/abi/index.js.map +1 -1
  31. package/dist/entities/BalanceSheet.d.ts +1 -0
  32. package/dist/entities/BalanceSheet.d.ts.map +1 -1
  33. package/dist/entities/BalanceSheet.js +2 -2
  34. package/dist/entities/BalanceSheet.js.map +1 -1
  35. package/dist/entities/Pool.d.ts +4 -2
  36. package/dist/entities/Pool.d.ts.map +1 -1
  37. package/dist/entities/Pool.js +223 -6
  38. package/dist/entities/Pool.js.map +1 -1
  39. package/dist/entities/Pool.test.js +151 -32
  40. package/dist/entities/Pool.test.js.map +1 -1
  41. package/dist/entities/PoolNetwork.js +5 -2
  42. package/dist/entities/PoolNetwork.js.map +1 -1
  43. package/dist/entities/PoolNetwork.test.js +6 -6
  44. package/dist/entities/PoolNetwork.test.js.map +1 -1
  45. package/dist/entities/ShareClass.d.ts +1 -0
  46. package/dist/entities/ShareClass.d.ts.map +1 -1
  47. package/dist/entities/ShareClass.js +17 -13
  48. package/dist/entities/ShareClass.js.map +1 -1
  49. package/dist/entities/ShareClass.test.js +16 -17
  50. package/dist/entities/ShareClass.test.js.map +1 -1
  51. package/dist/entities/Vault.d.ts.map +1 -1
  52. package/dist/entities/Vault.js +44 -21
  53. package/dist/entities/Vault.js.map +1 -1
  54. package/dist/entities/Vault.test.js +19 -13
  55. package/dist/entities/Vault.test.js.map +1 -1
  56. package/dist/tests/forkServer.d.mts +2 -0
  57. package/dist/tests/forkServer.d.mts.map +1 -0
  58. package/dist/tests/forkServer.mjs +104 -0
  59. package/dist/tests/forkServer.mjs.map +1 -0
  60. package/dist/tests/setup.js +1 -1
  61. package/dist/tests/setup.js.map +1 -1
  62. package/dist/tests/tenderly.d.ts +15 -2
  63. package/dist/tests/tenderly.d.ts.map +1 -1
  64. package/dist/tests/tenderly.js +74 -67
  65. package/dist/tests/tenderly.js.map +1 -1
  66. package/dist/types/index.d.ts +1 -0
  67. package/dist/types/index.d.ts.map +1 -1
  68. package/dist/utils/transaction.d.ts +1 -8
  69. package/dist/utils/transaction.d.ts.map +1 -1
  70. package/dist/utils/transaction.js +1 -17
  71. package/dist/utils/transaction.js.map +1 -1
  72. package/package.json +2 -2
@@ -3,7 +3,7 @@ import { encodeFunctionData, fromHex, toHex } from 'viem';
3
3
  import { ABI } from '../abi/index.js';
4
4
  import { MessageType } from '../types/transaction.js';
5
5
  import { NATIONAL_CURRENCY_METADATA } from '../utils/currencies.js';
6
- import { addressToBytes32 } from '../utils/index.js';
6
+ import { addressToBytes32, randomUint } from '../utils/index.js';
7
7
  import { repeatOnEvents } from '../utils/rx.js';
8
8
  import { wrapTransaction } from '../utils/transaction.js';
9
9
  import { AssetId, PoolId, ShareClassId } from '../utils/types.js';
@@ -170,22 +170,21 @@ export class Pool extends Entity {
170
170
  functionName: 'currency',
171
171
  args: [this.id.raw],
172
172
  });
173
- }), map((rawCurrency) => {
173
+ }), switchMap((rawCurrency) => {
174
174
  const assetId = new AssetId(rawCurrency);
175
175
  const countryCode = assetId.nationalCurrencyCode;
176
176
  if (!countryCode) {
177
- throw new Error(`No currency found`);
177
+ return this._root.assetCurrency(assetId);
178
178
  }
179
179
  const currency = NATIONAL_CURRENCY_METADATA[countryCode];
180
180
  if (!currency) {
181
181
  throw new Error(`No currency found for country code ${countryCode}`);
182
182
  }
183
- return {
183
+ return of({
184
184
  name: currency.name,
185
185
  symbol: currency.symbol,
186
186
  decimals: 18,
187
- id: assetId,
188
- };
187
+ });
189
188
  }));
190
189
  });
191
190
  }
@@ -204,6 +203,213 @@ export class Pool extends Entity {
204
203
  });
205
204
  }, this.chainId);
206
205
  }
206
+ update(metadataInput, updatedShareClasses, addedShareClasses = []) {
207
+ const self = this;
208
+ return this._transact(async function* (ctx) {
209
+ const [{ hub }] = await Promise.all([self._root._protocolAddresses(self.chainId)]);
210
+ const existingPool = await self._root.pool(self.id);
211
+ const [poolDetails, poolMetadata, activeNetworks] = await Promise.all([
212
+ existingPool.details(),
213
+ existingPool.metadata(),
214
+ existingPool.activeNetworks(),
215
+ ]);
216
+ const networksDetails = await Promise.all(activeNetworks.map((network) => {
217
+ return network.details();
218
+ }));
219
+ if (!poolDetails || !poolMetadata) {
220
+ throw new Error('Pool details or metadata not found');
221
+ }
222
+ const existingShareClassesCount = poolDetails.shareClasses.length;
223
+ const scIds = Array.from({ length: addedShareClasses.length }, (_, index) => ShareClassId.from(poolDetails.id, existingShareClassesCount + index + 1));
224
+ const newShareClassesById = {};
225
+ addedShareClasses.forEach((sc, index) => {
226
+ newShareClassesById[scIds[index].raw] = {
227
+ minInitialInvestment: sc.minInvestment,
228
+ apyPercentage: sc.apyPercentage,
229
+ apy: sc.apy,
230
+ defaultAccounts: sc.defaultAccounts,
231
+ };
232
+ });
233
+ const poolStatus = metadataInput.poolType === undefined
234
+ ? poolMetadata.pool.status
235
+ : metadataInput.poolType === 'open'
236
+ ? 'open'
237
+ : 'upcoming';
238
+ const formattedMetadata = {
239
+ ...poolMetadata,
240
+ version: 1,
241
+ pool: {
242
+ ...poolMetadata.pool,
243
+ name: metadataInput.poolName ?? poolMetadata.pool.name,
244
+ icon: metadataInput.poolIcon ?? poolMetadata.pool.icon,
245
+ asset: {
246
+ ...poolMetadata.pool.asset,
247
+ class: metadataInput.assetClass ?? poolMetadata.pool.asset.class,
248
+ subClass: metadataInput.subAssetClass ?? poolMetadata.pool.asset.subClass,
249
+ },
250
+ issuer: {
251
+ ...poolMetadata.pool.issuer,
252
+ name: metadataInput.issuerName ?? poolMetadata.pool.issuer.name,
253
+ repName: metadataInput.issuerRepName ?? poolMetadata.pool.issuer.repName,
254
+ description: metadataInput.issuerDescription ?? poolMetadata.pool.issuer.description,
255
+ email: metadataInput.email ?? poolMetadata.pool.issuer.email,
256
+ logo: metadataInput.issuerLogo ?? poolMetadata.pool.issuer.logo,
257
+ shortDescription: metadataInput.issuerShortDescription ?? poolMetadata.pool.issuer.shortDescription,
258
+ categories: metadataInput.issuerCategories ?? poolMetadata.pool.issuer.categories,
259
+ },
260
+ poolStructure: metadataInput.poolStructure ?? poolMetadata.pool.poolStructure,
261
+ investorType: metadataInput.investorType ?? poolMetadata.pool.investorType,
262
+ links: {
263
+ ...poolMetadata.pool.links,
264
+ executiveSummary: metadataInput.executiveSummary ?? poolMetadata.pool.links?.executiveSummary,
265
+ forum: metadataInput.forum ?? poolMetadata.pool.links?.forum,
266
+ website: metadataInput.website ?? poolMetadata.pool.links?.website,
267
+ },
268
+ details: metadataInput.details ?? poolMetadata.pool.details,
269
+ status: poolStatus,
270
+ listed: metadataInput.listed ?? poolMetadata.pool.listed,
271
+ poolRatings: metadataInput.poolRatings ?? poolMetadata.pool.poolRatings,
272
+ reports: metadataInput.report ? [metadataInput.report] : poolMetadata.pool.reports,
273
+ },
274
+ shareClasses: { ...poolMetadata.shareClasses, ...newShareClassesById },
275
+ };
276
+ updatedShareClasses.forEach((sc) => {
277
+ const id = sc.id.toString();
278
+ if (!formattedMetadata.shareClasses[id]) {
279
+ throw new Error(`Share class ${id} not found in pool metadata`);
280
+ }
281
+ formattedMetadata.shareClasses[id] = {
282
+ ...formattedMetadata.shareClasses[id],
283
+ minInitialInvestment: sc.minInvestment,
284
+ apyPercentage: sc.apyPercentage,
285
+ apy: sc.apy,
286
+ defaultAccounts: sc.defaultAccounts,
287
+ };
288
+ });
289
+ const shareClassesToBeUpdated = updatedShareClasses.filter((sc) => {
290
+ const shareClass = poolDetails.shareClasses.find((scDetails) => scDetails.details.id.equals(sc.id));
291
+ if (!shareClass) {
292
+ throw new Error(`Share class ${sc.id} not found in pool details`);
293
+ }
294
+ if (sc.symbolName !== shareClass.details.symbol || sc.tokenName !== shareClass.details.name) {
295
+ return true;
296
+ }
297
+ });
298
+ const shareClassesToBeUpdatedIds = new Set(shareClassesToBeUpdated.map((sc) => sc.id.toString()));
299
+ const shareClassesToBeUpdatedPerNetwork = new Map();
300
+ networksDetails.forEach((details, index) => {
301
+ const activeShareClasses = details.activeShareClasses || [];
302
+ const shareClassesToUpdate = activeShareClasses.filter((asc) => shareClassesToBeUpdatedIds.has(asc.id.toString()));
303
+ if (shareClassesToUpdate.length > 0) {
304
+ const poolNetwork = activeNetworks[index];
305
+ if (!poolNetwork) {
306
+ return;
307
+ }
308
+ shareClassesToBeUpdatedPerNetwork.set(poolNetwork.chainId, shareClassesToUpdate.map((sc) => sc.shareClass));
309
+ }
310
+ });
311
+ const accountIsDebitNormal = new Map();
312
+ const exsitingAccounts = new Set(poolDetails.shareClasses.flatMap((sc) => Object.entries(sc.details.defaultAccounts ?? {})
313
+ .filter(([k, v]) => {
314
+ if (!v)
315
+ return false;
316
+ if (['asset', 'expense'].includes(k)) {
317
+ if (accountIsDebitNormal.get(v) === false)
318
+ throw new Error(`Account "${v}" is set as both credit normal and debit normal.`);
319
+ accountIsDebitNormal.set(v, true);
320
+ }
321
+ else {
322
+ if (accountIsDebitNormal.get(v) === true)
323
+ throw new Error(`Account "${v}" is set as both credit normal and debit normal.`);
324
+ accountIsDebitNormal.set(v, false);
325
+ }
326
+ return true;
327
+ })
328
+ .map(([, v]) => v)));
329
+ const updatedAccounts = new Set(Object.values(formattedMetadata.shareClasses).flatMap((sc) => Object.entries(sc.defaultAccounts ?? {})
330
+ .filter(([k, v]) => {
331
+ if (!v)
332
+ return false;
333
+ if (['asset', 'expense'].includes(k)) {
334
+ if (accountIsDebitNormal.get(v) === false)
335
+ throw new Error(`Account "${v}" is set as both credit normal and debit normal.`);
336
+ accountIsDebitNormal.set(v, true);
337
+ }
338
+ else {
339
+ if (accountIsDebitNormal.get(v) === true)
340
+ throw new Error(`Account "${v}" is set as both credit normal and debit normal.`);
341
+ accountIsDebitNormal.set(v, false);
342
+ }
343
+ return true;
344
+ })
345
+ .map(([, v]) => v)));
346
+ const newAccounts = [...updatedAccounts].filter((account) => !exsitingAccounts.has(account));
347
+ const cid = await self._root.config.pinJson(formattedMetadata);
348
+ const batch = [];
349
+ const messages = {};
350
+ function addMessage(centId, message) {
351
+ if (!messages[centId])
352
+ messages[centId] = [];
353
+ messages[centId].push(message);
354
+ }
355
+ batch.push(encodeFunctionData({
356
+ abi: ABI.Hub,
357
+ functionName: 'setPoolMetadata',
358
+ args: [self.id.raw, toHex(cid)],
359
+ }));
360
+ addedShareClasses.forEach((sc) => {
361
+ batch.push(encodeFunctionData({
362
+ abi: ABI.Hub,
363
+ functionName: 'addShareClass',
364
+ args: [
365
+ self.id.raw,
366
+ sc.tokenName,
367
+ sc.symbolName,
368
+ sc.salt?.startsWith('0x') ? sc.salt : toHex(sc.salt ?? randomUint(256), { size: 32 }),
369
+ ],
370
+ }));
371
+ });
372
+ shareClassesToBeUpdated.forEach((sc) => {
373
+ batch.push(encodeFunctionData({
374
+ abi: ABI.Hub,
375
+ functionName: 'updateShareClassMetadata',
376
+ args: [self.id.raw, sc.id.raw, sc.tokenName, sc.symbolName],
377
+ }));
378
+ });
379
+ for (const [chainId, shareClasses] of shareClassesToBeUpdatedPerNetwork) {
380
+ if (shareClasses.length > 0) {
381
+ const id = await self._root.id(Number(chainId));
382
+ await Promise.all(shareClasses.map(async (sc) => {
383
+ batch.push(encodeFunctionData({
384
+ abi: ABI.Hub,
385
+ functionName: 'notifyShareMetadata',
386
+ args: [self.id.raw, sc.id.raw, id],
387
+ }));
388
+ addMessage(id, MessageType.NotifyShareClass);
389
+ }));
390
+ }
391
+ }
392
+ newAccounts.map((accountId) => {
393
+ const isDebitNormal = accountIsDebitNormal.get(accountId);
394
+ if (isDebitNormal === undefined) {
395
+ return;
396
+ }
397
+ batch.push(encodeFunctionData({
398
+ abi: ABI.Hub,
399
+ functionName: 'createAccount',
400
+ args: [self.id.raw, accountId, isDebitNormal],
401
+ }));
402
+ });
403
+ if (batch.length === 0) {
404
+ throw new Error('No changes to update');
405
+ }
406
+ yield* wrapTransaction('Update pool details', ctx, {
407
+ contract: hub,
408
+ data: batch,
409
+ messages,
410
+ });
411
+ }, this.chainId);
412
+ }
207
413
  /**
208
414
  * Update pool managers.
209
415
  */
@@ -293,5 +499,16 @@ export class Pool extends Entity {
293
499
  },
294
500
  }, this.chainId)))));
295
501
  }
502
+ /** @internal */
503
+ _escrow() {
504
+ return this._query(['escrow'], () => this._root._protocolAddresses(this.chainId).pipe(switchMap(({ poolEscrowFactory }) => {
505
+ return this._root.getClient(this.chainId).readContract({
506
+ address: poolEscrowFactory,
507
+ abi: ABI.PoolEscrowFactory,
508
+ functionName: 'escrow',
509
+ args: [this.id.raw],
510
+ });
511
+ }), map((address) => address.toLowerCase())));
512
+ }
296
513
  }
297
514
  //# sourceMappingURL=Pool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pool.js","sourceRoot":"","sources":["../../src/entities/Pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Pool.js","sourceRoot":"","sources":["../../src/entities/Pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACpF,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAA;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAIrC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,MAAM,OAAO,IAAK,SAAQ,MAAM;IAOrB;IANT,EAAE,CAAQ;IAEV,gBAAgB;IAChB,YACE,KAAiB,EACjB,EAA4B,EACrB,OAAe;QAEtB,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAF3B,YAAO,GAAP,OAAO,CAAQ;QAGtB,IAAI,CAAC,EAAE,GAAG,EAAE,YAAY,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAA;IACtD,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACtC,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,CAC5B,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,mBAAmB,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CACrG,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,mBAAmB,EAAE,QAAQ,CAAC,EAAE,EAAE;YAC9D,OAAO;gBACL,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,QAAQ;gBACR,QAAQ;gBACR,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBACtC,UAAU,EAAE,EAAE;oBACd,OAAO,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE;iBAC9E,CAAC,CAAC;aACJ,CAAA;QACH,CAAC,CAAC,CACH,CACF,CAAA;IACH,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CACpC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAC9C,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAC5B,KAAK,CAAC,GAAG,EAAE;YACT,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC;gBACrD,OAAO,EAAE,WAAW;gBACpB,GAAG,EAAE,GAAG,CAAC,WAAW;gBACpB,YAAY,EAAE,UAAU;gBACxB,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;aACpB,CAAC,CAAA;QACJ,CAAC,CAAC,CAAC,IAAI,CACL,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACjB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAe,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;QACrE,CAAC,CAAC,EACF,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAA;YAC/C,OAAO,EAAE,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC,CAAC,EACF,cAAc,CACZ,IAAI,CAAC,KAAK,EACV;YACE,OAAO,EAAE,WAAW;YACpB,GAAG,EAAE,GAAG,CAAC,WAAW;YACpB,SAAS,EAAE,aAAa;YACxB,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;gBACjB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAA;gBAC1C,CAAC,CAAC,CAAA;YACJ,CAAC;SACF,EACD,IAAI,CAAC,OAAO,CACb,CACF,CACF,CACF,CACF,CAAA;IACH,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,CAC5B,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAC5G,CAAA;IACH,CAAC;IAED,UAAU,CAAC,IAAkB;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,CAC5B,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CACtB,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;YACnB,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;YAChE,IAAI,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,YAAY,CAAC,CAAA;YACjE,OAAO,UAAU,CAAA;QACnB,CAAC,CAAC,CACH,CACF,CAAA;IACH,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;YAC5B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAC7B,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;gBACzB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC5C,OAAO,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;YAC9D,CAAC,CAAC,CACH,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,OAAkB;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE;YAC5D,OAAO,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CACrD,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE;gBAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC;oBACrD,OAAO,EAAE,WAAW;oBACpB,GAAG,EAAE,GAAG,CAAC,WAAW;oBACpB,YAAY,EAAE,SAAS;oBACvB,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC;iBAC7B,CAAC,CAAA;YACJ,CAAC,CAAC,CACH,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IACH,qBAAqB,CAAC,OAAe,EAAE,OAAkB;QACvD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE;YACvE,OAAO,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAI,CAChD,SAAS,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;gBAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC;oBAChD,OAAO,EAAE,YAAY;oBACrB,GAAG,EAAE,GAAG,CAAC,YAAY;oBACrB,YAAY,EAAE,SAAS;oBACvB,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC;iBAC7B,CAAC,CAAA;YACJ,CAAC,CAAC,CACH,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;YAC5B,OAAO,EAAE,CACP,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBAChC,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;YACnD,CAAC,CAAC,CACH,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,OAAe;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;YAC5B,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CACzB,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACf,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,CAAA;gBACvE,IAAI,CAAC,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,YAAY,CAAC,CAAA;gBAC7D,OAAO,OAAO,CAAA;YAChB,CAAC,CAAC,CACH,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;YAC5B,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CACzB,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACrB,OAAO,aAAa,CAClB,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACvB,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI;gBACrB,6GAA6G;gBAC7G,6DAA6D;gBAC7D,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EACxB,UAAU,CAAC,GAAG,EAAE;oBACd,OAAO,EAAE,CAAC,KAAK,CAAC,CAAA;gBAClB,CAAC,CAAC,CACH,CACF,CACF,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YAC3E,CAAC,CAAC,CACH,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAAkB,EAAE,KAA0B;QACnE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAChH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE;YACpC,OAAO,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CACrD,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE;gBAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC;oBACrD,OAAO,EAAE,WAAW;oBACpB,GAAG,EAAE,GAAG,CAAC,WAAW;oBACpB,YAAY,EAAE,UAAU;oBACxB,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;iBACpB,CAAC,CAAA;YACJ,CAAC,CAAC,EACF,SAAS,CAAC,CAAC,WAAmB,EAAE,EAAE;gBAChC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;gBACxC,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAA;gBAEhD,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;gBAC1C,CAAC;gBAED,MAAM,QAAQ,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAA;gBAExD,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,IAAI,KAAK,CAAC,sCAAsC,WAAW,EAAE,CAAC,CAAA;gBACtE,CAAC;gBAED,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,QAAQ,EAAE,EAAE;iBACb,CAAC,CAAA;YACJ,CAAC,CAAC,CACH,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,cAAc,CAAC,QAAsB;QACnC,MAAM,IAAI,GAAG,IAAI,CAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,EAAE,GAAG;YACxC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;YAErD,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACjE,KAAK,CAAC,CAAC,eAAe,CAAC,iBAAiB,EAAE,GAAG,EAAE;gBAC7C,QAAQ,EAAE,GAAG;gBACb,IAAI,EAAE,kBAAkB,CAAC;oBACvB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,YAAY,EAAE,iBAAiB;oBAC/B,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;iBAChC,CAAC;aACH,CAAC,CAAA;QACJ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC;IAED,MAAM,CACJ,aAAyC,EACzC,mBAA+D,EAC/D,oBAAuC,EAAE;QAEzC,MAAM,IAAI,GAAG,IAAI,CAAA;QAEjB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,EAAE,GAAG;YACxC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YAElF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAEnD,MAAM,CAAC,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACpE,YAAY,CAAC,OAAO,EAAE;gBACtB,YAAY,CAAC,QAAQ,EAAE;gBACvB,YAAY,CAAC,cAAc,EAAE;aAC9B,CAAC,CAAA;YACF,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CACvC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;YAC1B,CAAC,CAAC,CACH,CAAA;YAED,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;YACvD,CAAC;YAED,MAAM,yBAAyB,GAAG,WAAW,CAAC,YAAY,CAAC,MAAM,CAAA;YACjE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAC1E,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,yBAAyB,GAAG,KAAK,GAAG,CAAC,CAAC,CACzE,CAAA;YAED,MAAM,mBAAmB,GAAiC,EAAE,CAAA;YAC5D,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;gBACtC,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAE,CAAC,GAAG,CAAC,GAAG;oBACvC,oBAAoB,EAAE,EAAE,CAAC,aAAa;oBACtC,aAAa,EAAE,EAAE,CAAC,aAAa;oBAC/B,GAAG,EAAE,EAAE,CAAC,GAAG;oBACX,eAAe,EAAE,EAAE,CAAC,eAAe;iBACpC,CAAA;YACH,CAAC,CAAC,CAAA;YAEF,MAAM,UAAU,GACd,aAAa,CAAC,QAAQ,KAAK,SAAS;gBAClC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM;gBAC1B,CAAC,CAAC,aAAa,CAAC,QAAQ,KAAK,MAAM;oBACjC,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,UAAU,CAAA;YAElB,MAAM,iBAAiB,GAAiB;gBACtC,GAAG,YAAY;gBACf,OAAO,EAAE,CAAC;gBACV,IAAI,EAAE;oBACJ,GAAG,YAAY,CAAC,IAAI;oBACpB,IAAI,EAAE,aAAa,CAAC,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI;oBACtD,IAAI,EAAE,aAAa,CAAC,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI;oBACtD,KAAK,EAAE;wBACL,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK;wBAC1B,KAAK,EAAE,aAAa,CAAC,UAAU,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK;wBAChE,QAAQ,EAAE,aAAa,CAAC,aAAa,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ;qBAC1E;oBACD,MAAM,EAAE;wBACN,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM;wBAC3B,IAAI,EAAE,aAAa,CAAC,UAAU,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;wBAC/D,OAAO,EAAE,aAAa,CAAC,aAAa,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO;wBACxE,WAAW,EAAE,aAAa,CAAC,iBAAiB,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW;wBACpF,KAAK,EAAE,aAAa,CAAC,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK;wBAC5D,IAAI,EAAE,aAAa,CAAC,UAAU,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;wBAC/D,gBAAgB,EAAE,aAAa,CAAC,sBAAsB,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB;wBACnG,UAAU,EAAE,aAAa,CAAC,gBAAgB,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;qBAClF;oBACD,aAAa,EAAE,aAAa,CAAC,aAAa,IAAI,YAAY,CAAC,IAAI,CAAC,aAAa;oBAC7E,YAAY,EAAE,aAAa,CAAC,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,YAAY;oBAC1E,KAAK,EAAE;wBACL,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK;wBAC1B,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB;wBAC7F,KAAK,EAAE,aAAa,CAAC,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK;wBAC5D,OAAO,EAAE,aAAa,CAAC,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO;qBACnE;oBACD,OAAO,EAAE,aAAa,CAAC,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO;oBAC3D,MAAM,EAAE,UAAU;oBAClB,MAAM,EAAE,aAAa,CAAC,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM;oBACxD,WAAW,EAAE,aAAa,CAAC,WAAW,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW;oBACvE,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO;iBACnF;gBACD,YAAY,EAAE,EAAE,GAAG,YAAY,CAAC,YAAY,EAAE,GAAG,mBAAmB,EAAE;aACvE,CAAA;YAED,mBAAmB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;gBACjC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAA;gBAE3B,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;oBACxC,MAAM,IAAI,KAAK,CAAC,eAAe,EAAE,6BAA6B,CAAC,CAAA;gBACjE,CAAC;gBAED,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG;oBACnC,GAAG,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC;oBACrC,oBAAoB,EAAE,EAAE,CAAC,aAAa;oBACtC,aAAa,EAAE,EAAE,CAAC,aAAa;oBAC/B,GAAG,EAAE,EAAE,CAAC,GAAG;oBACX,eAAe,EAAE,EAAE,CAAC,eAAe;iBACpC,CAAA;YACH,CAAC,CAAC,CAAA;YAEF,MAAM,uBAAuB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE;gBAChE,MAAM,UAAU,GAAG,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;gBAEnG,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,MAAM,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC,EAAE,4BAA4B,CAAC,CAAA;gBACnE,CAAC;gBAED,IAAI,EAAE,CAAC,UAAU,KAAK,UAAU,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,SAAS,KAAK,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBAC5F,OAAO,IAAI,CAAA;gBACb,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;YAEjG,MAAM,iCAAiC,GAAG,IAAI,GAAG,EAAwB,CAAA;YACzE,eAAe,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gBACzC,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,EAAE,CAAA;gBAC3D,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAC7D,0BAA0B,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAClD,CAAA;gBACD,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpC,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;oBACzC,IAAI,CAAC,WAAW,EAAE,CAAC;wBACjB,OAAM;oBACR,CAAC;oBACD,iCAAiC,CAAC,GAAG,CACnC,WAAW,CAAC,OAAO,EACnB,oBAAoB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAChD,CAAA;gBACH,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAmB,CAAA;YACvD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAC9B,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CACtC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC;iBAC7C,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;gBACjB,IAAI,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAA;gBAEpB,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrC,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK;wBACvC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,kDAAkD,CAAC,CAAA;oBAClF,oBAAoB,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;gBACnC,CAAC;qBAAM,CAAC;oBACN,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;wBACtC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,kDAAkD,CAAC,CAAA;oBAClF,oBAAoB,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;gBACpC,CAAC;gBAED,OAAO,IAAI,CAAA;YACb,CAAC,CAAC;iBACD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CACrB,CACF,CAAA;YAED,MAAM,eAAe,GAAG,IAAI,GAAG,CAC7B,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAC3D,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,eAAe,IAAI,EAAE,CAAC;iBACrC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;gBACjB,IAAI,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAA;gBAEpB,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrC,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK;wBACvC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,kDAAkD,CAAC,CAAA;oBAClF,oBAAoB,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;gBACnC,CAAC;qBAAM,CAAC;oBACN,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;wBACtC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,kDAAkD,CAAC,CAAA;oBAClF,oBAAoB,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;gBACpC,CAAC;gBAED,OAAO,IAAI,CAAA;YACb,CAAC,CAAC;iBACD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CACrB,CACF,CAAA;YAED,MAAM,WAAW,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;YAE5F,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;YAE9D,MAAM,KAAK,GAAgB,EAAE,CAAA;YAC7B,MAAM,QAAQ,GAAkC,EAAE,CAAA;YAClD,SAAS,UAAU,CAAC,MAAc,EAAE,OAAoB;gBACtD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;gBAC5C,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAChC,CAAC;YAED,KAAK,CAAC,IAAI,CACR,kBAAkB,CAAC;gBACjB,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,YAAY,EAAE,iBAAiB;gBAC/B,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;aAChC,CAAC,CACH,CAAA;YAED,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;gBAC/B,KAAK,CAAC,IAAI,CACR,kBAAkB,CAAC;oBACjB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,YAAY,EAAE,eAAe;oBAC7B,IAAI,EAAE;wBACJ,IAAI,CAAC,EAAE,CAAC,GAAG;wBACX,EAAE,CAAC,SAAS;wBACZ,EAAE,CAAC,UAAU;wBACb,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,EAAE,CAAC,IAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;qBACrG;iBACF,CAAC,CACH,CAAA;YACH,CAAC,CAAC,CAAA;YAEF,uBAAuB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;gBACrC,KAAK,CAAC,IAAI,CACR,kBAAkB,CAAC;oBACjB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,YAAY,EAAE,0BAA0B;oBACxC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC;iBAC5D,CAAC,CACH,CAAA;YACH,CAAC,CAAC,CAAA;YAEF,KAAK,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,iCAAiC,EAAE,CAAC;gBACxE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;oBAC/C,MAAM,OAAO,CAAC,GAAG,CACf,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,EAAc,EAAE,EAAE;wBACxC,KAAK,CAAC,IAAI,CACR,kBAAkB,CAAC;4BACjB,GAAG,EAAE,GAAG,CAAC,GAAG;4BACZ,YAAY,EAAE,qBAAqB;4BACnC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC;yBACnC,CAAC,CACH,CAAA;wBAED,UAAU,CAAC,EAAE,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAA;oBAC9C,CAAC,CAAC,CACH,CAAA;gBACH,CAAC;YACH,CAAC;YAED,WAAW,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC5B,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;gBAEzD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;oBAChC,OAAM;gBACR,CAAC;gBAED,KAAK,CAAC,IAAI,CACR,kBAAkB,CAAC;oBACjB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,YAAY,EAAE,eAAe;oBAC7B,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,aAAa,CAAC;iBAC9C,CAAC,CACH,CAAA;YACH,CAAC,CAAC,CAAA;YAEF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;YACzC,CAAC;YAED,KAAK,CAAC,CAAC,eAAe,CAAC,qBAAqB,EAAE,GAAG,EAAE;gBACjD,QAAQ,EAAE,GAAG;gBACb,IAAI,EAAE,KAAK;gBACX,QAAQ;aACT,CAAC,CAAA;QACJ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,OAAqD;QACtE,MAAM,IAAI,GAAG,IAAI,CAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,EAAE,GAAG;YACxC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAEjE,yEAAyE;YACzE,wFAAwF;YACxF,+CAA+C;YAC/C,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAAA;YAC9G,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;YAC3D,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAA;YAE3B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CACnD,kBAAkB,CAAC;gBACjB,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,YAAY,EAAE,kBAAkB;gBAChC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC;aACxC,CAAC,CACH,CAAA;YAED,KAAK,CAAC,CAAC,eAAe,CAAC,sBAAsB,EAAE,GAAG,EAAE;gBAClD,QAAQ,EAAE,GAAG;gBACb,IAAI,EAAE,KAAK;aACZ,CAAC,CAAA;QACJ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC;IAED;;OAEG;IACH,0BAA0B,CAAC,OAAsE;QAC/F,MAAM,IAAI,GAAG,IAAI,CAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,EAAE,GAAG;YACxC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC3C,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC3C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;aAClE,CAAC,CAAA;YACF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,CACtD,kBAAkB,CAAC;gBACjB,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,YAAY,EAAE,2BAA2B;gBACzC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAE,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;aACvE,CAAC,CACH,CAAA;YACD,MAAM,QAAQ,GAAkC,EAAE,CAAA;YAClD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACvB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAE,CAAA;gBAC1B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;gBAC5C,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAA;YAC9D,CAAC,CAAC,CAAA;YAEF,KAAK,CAAC,CAAC,eAAe,CAAC,+BAA+B,EAAE,GAAG,EAAE;gBAC3D,QAAQ,EAAE,GAAG;gBACb,IAAI,EAAE,KAAK;gBACX,QAAQ;aACT,CAAC,CAAA;QACJ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC;IAED,cAAc,CAAC,QAAyD;QACtE,MAAM,IAAI,GAAG,IAAI,CAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,EAAE,GAAG;YACxC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACjE,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,EAAE,CAC5D,kBAAkB,CAAC;gBACjB,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,YAAY,EAAE,eAAe;gBAC7B,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,aAAa,CAAC;aAC9C,CAAC,CACH,CAAA;YAED,KAAK,CAAC,CAAC,eAAe,CAAC,iBAAiB,EAAE,GAAG,EAAE;gBAC7C,QAAQ,EAAE,GAAG;gBACb,IAAI,EAAE,OAAO;aACd,CAAC,CAAA;QACJ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,CACxC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAC9C,SAAS,CAAC,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAClC,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC;gBAClE,OAAO,EAAE,iBAAiB;gBAC1B,GAAG,EAAE,GAAG,CAAC,iBAAiB;gBAC1B,YAAY,EAAE,iBAAiB;gBAC/B,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;aACpB,CAAC,CAAA;YACF,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACnF,CAAC,CAAC,CAAC,IAAI,CACL,cAAc,CACZ,IAAI,CAAC,KAAK,EACV;YACE,OAAO,EAAE,iBAAiB;YAC1B,GAAG,EAAE,GAAG,CAAC,iBAAiB;YAC1B,SAAS,EAAE,eAAe;YAC1B,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;gBACjB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;YAClE,CAAC;SACF,EACD,IAAI,CAAC,OAAO,CACb,CACF,CACF,CACF,CACF,CAAA;IACH,CAAC;IAED,gBAAgB;IAChB,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAClC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAC9C,SAAS,CAAC,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE;YAClC,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC;gBACrD,OAAO,EAAE,iBAAiB;gBAC1B,GAAG,EAAE,GAAG,CAAC,iBAAiB;gBAC1B,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;aACpB,CAAC,CAAA;QACJ,CAAC,CAAC,EACF,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAe,CAAC,CACrD,CACF,CAAA;IACH,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
1
  import { expect } from 'chai';
2
- import { firstValueFrom, skip } from 'rxjs';
2
+ import { firstValueFrom, skipWhile } from 'rxjs';
3
3
  import { Centrifuge } from '../Centrifuge.js';
4
4
  import { NULL_ADDRESS } from '../constants.js';
5
5
  import { mockPoolMetadata } from '../tests/mocks/mockPoolMetadata.js';
@@ -7,15 +7,18 @@ import { context } from '../tests/setup.js';
7
7
  import { randomAddress } from '../tests/utils.js';
8
8
  import { AssetId, PoolId, ShareClassId } from '../utils/types.js';
9
9
  import { Pool } from './Pool.js';
10
+ import { ABI } from '../abi/index.js';
11
+ import { getContract } from 'viem';
12
+ import { PoolNetwork } from './PoolNetwork.js';
10
13
  const chainId = 11155111;
11
14
  const centId = 1;
12
15
  const poolId = PoolId.from(centId, 1);
13
16
  const scId = ShareClassId.from(poolId, 1);
14
17
  const assetId = AssetId.from(centId, 1);
15
18
  const poolManager = '0x423420Ae467df6e90291fd0252c0A8a637C1e03f';
16
- describe('Pool', () => {
19
+ describe.only('Pool', () => {
17
20
  let pool;
18
- beforeEach(() => {
21
+ before(() => {
19
22
  const { centrifuge } = context;
20
23
  pool = new Pool(centrifuge, poolId.raw, chainId);
21
24
  });
@@ -27,12 +30,12 @@ describe('Pool', () => {
27
30
  });
28
31
  it('gets active networks of a pool', async () => {
29
32
  const networks = await pool.activeNetworks();
30
- expect(networks).to.have.length(1);
31
- expect(networks[0].chainId).to.equal(chainId);
33
+ expect(networks).to.have.length.greaterThan(0);
34
+ expect(networks.some((n) => n.chainId === chainId)).to.equal(true);
32
35
  });
33
36
  it('gets share class IDs of a pool', async () => {
34
37
  const shareClasses = await pool.shareClasses();
35
- expect(shareClasses).to.have.length(1);
38
+ expect(shareClasses).to.have.length.greaterThan(0);
36
39
  expect(shareClasses[0].id.raw).to.equal(scId.raw);
37
40
  });
38
41
  it('can query a vault', async () => {
@@ -40,33 +43,8 @@ describe('Pool', () => {
40
43
  expect(vault).to.not.be.undefined;
41
44
  expect(vault.address).to.not.equal(NULL_ADDRESS);
42
45
  });
43
- it('should update the pool metadata', async () => {
44
- const fakeHash = 'QmPdzJkZ4PVJ21HfBXMJbGopSpUP9C9fqu3A1f9ZVhtRY2';
45
- const centrifugeWithPin = new Centrifuge({
46
- environment: 'testnet',
47
- pinJson: async (data) => {
48
- expect(data).to.deep.equal(mockPoolMetadata);
49
- return fakeHash;
50
- },
51
- rpcUrls: {
52
- 11155111: context.tenderlyFork.rpcUrl,
53
- },
54
- });
55
- const pool = await centrifugeWithPin.pool(poolId);
56
- const detailsBefore = await pool.details();
57
- expect(detailsBefore.metadata).to.equal(null);
58
- context.tenderlyFork.impersonateAddress = poolManager;
59
- centrifugeWithPin.setSigner(context.tenderlyFork.signer);
60
- const [result, detailsAfter] = await Promise.all([
61
- pool.updateMetadata(mockPoolMetadata),
62
- firstValueFrom(pool.details().pipe(skip(1))),
63
- ]);
64
- expect(result.type).to.equal('TransactionConfirmed');
65
- expect(detailsAfter.metadata?.pool.asset.class).to.equal('Private credit');
66
- });
67
46
  it('should return the currency of the pool', async () => {
68
47
  const currency = await pool.currency();
69
- expect(currency).to.have.property('id');
70
48
  expect(currency).to.have.property('name');
71
49
  expect(currency).to.have.property('symbol');
72
50
  expect(currency).to.have.property('decimals');
@@ -75,7 +53,7 @@ describe('Pool', () => {
75
53
  const details = await pool.details();
76
54
  expect(details.id.raw).to.equal(poolId.raw);
77
55
  expect(details.metadata).to.not.be.undefined;
78
- expect(details.shareClasses).to.have.length(1);
56
+ expect(details.shareClasses).to.have.length.greaterThan(0);
79
57
  expect(details.currency).to.exist;
80
58
  });
81
59
  it('updates pool managers', async () => {
@@ -87,5 +65,146 @@ describe('Pool', () => {
87
65
  const isNewManager = await pool.isPoolManager(newManager);
88
66
  expect(isNewManager).to.be.true;
89
67
  });
68
+ it('updates a pool', async () => {
69
+ const fakeHash = 'QmPdzJkZ4PVJ21HfBXMJbGopSpUP9C9fqu3A1f9ZVhtRY2';
70
+ const metadataInput = {
71
+ poolName: 'Updated Test Pool',
72
+ investorType: 'Fake Investor Type',
73
+ };
74
+ const addedShareClasses = [
75
+ {
76
+ tokenName: 'Test Share Class2',
77
+ symbolName: 'TSC2',
78
+ minInvestment: 1000,
79
+ apyPercentage: 5,
80
+ apy: 'target',
81
+ defaultAccounts: {
82
+ asset: 1000,
83
+ equity: 10000,
84
+ gain: 5000,
85
+ loss: 500,
86
+ expense: 1,
87
+ liability: 2,
88
+ },
89
+ },
90
+ ];
91
+ const updatedShareClasses = [
92
+ {
93
+ id: ShareClassId.from(poolId, 1),
94
+ tokenName: 'Sepolia Pool One Token2',
95
+ symbolName: 'sep.poo.one2',
96
+ minInvestment: 1000,
97
+ apyPercentage: 6,
98
+ apy: 'target',
99
+ defaultAccounts: {
100
+ asset: 3000,
101
+ equity: 30000,
102
+ gain: 4000,
103
+ loss: 400,
104
+ expense: 1,
105
+ liability: 2,
106
+ },
107
+ },
108
+ ];
109
+ const expectedAccounts = [1, 2, 400, 500, 1000, 3000, 4000, 5000, 10000, 30000];
110
+ const centrifugeWithPin = new Centrifuge({
111
+ environment: 'testnet',
112
+ pinJson: async (data) => {
113
+ // Check if shareClasses data got updated correctly
114
+ expect(data.pool.name).to.equal('Updated Test Pool');
115
+ expect(data.pool.investorType).to.equal('Fake Investor Type');
116
+ expect(data.shareClasses['0x00010000000000010000000000000001']).to.deep.equal({
117
+ minInitialInvestment: 1000,
118
+ apy: 'target',
119
+ apyPercentage: 6,
120
+ weightedAverageMaturity: 49.42,
121
+ defaultAccounts: {
122
+ asset: 3000,
123
+ equity: 30000,
124
+ gain: 4000,
125
+ loss: 400,
126
+ expense: 1,
127
+ liability: 2,
128
+ },
129
+ });
130
+ // There is an issue with setup data, where poolDetails.shareClasses has two share classes, but poolDetails.metadata.shareClasses has only one.
131
+ // Until this is corrected, this count of 3 is expected.
132
+ expect(data.shareClasses['0x00010000000000010000000000000003']).to.deep.equal({
133
+ minInitialInvestment: 1000,
134
+ apy: 'target',
135
+ apyPercentage: 5,
136
+ defaultAccounts: {
137
+ asset: 1000,
138
+ equity: 10000,
139
+ gain: 5000,
140
+ loss: 500,
141
+ expense: 1,
142
+ liability: 2,
143
+ },
144
+ });
145
+ return fakeHash;
146
+ },
147
+ rpcUrls: {
148
+ 11155111: context.tenderlyFork.rpcUrl,
149
+ },
150
+ });
151
+ context.tenderlyFork.impersonateAddress = poolManager;
152
+ centrifugeWithPin.setSigner(context.tenderlyFork.signer);
153
+ const pool = await centrifugeWithPin.pool(poolId);
154
+ const result = await pool.update(metadataInput, updatedShareClasses, addedShareClasses);
155
+ expect(result.type).to.equal('TransactionConfirmed');
156
+ // await poolDetails -> check extra share class included
157
+ const poolDetails = await firstValueFrom(pool.details().pipe(skipWhile((details) => details.shareClasses[2]?.details == null)));
158
+ expect(poolDetails.shareClasses.length).to.equal(3);
159
+ // Check if newly added share class is present with correct data
160
+ expect(poolDetails.shareClasses[2].details).to.contain({
161
+ name: 'Test Share Class2',
162
+ symbol: 'TSC2',
163
+ });
164
+ const { accounting } = await context.centrifuge._protocolAddresses(chainId);
165
+ const network = new PoolNetwork(context.centrifuge, pool, chainId);
166
+ // Share Token for updated share class
167
+ const shareToken = await network._share(poolDetails.shareClasses[0].shareClass.id);
168
+ const accountsContract = getContract({
169
+ address: accounting,
170
+ abi: ABI.Accounting,
171
+ client: context.centrifuge.getClient(chainId),
172
+ });
173
+ // Check if all accounts got created properly
174
+ for (const account of expectedAccounts) {
175
+ const exists = await accountsContract.read.exists([poolId.raw, account]);
176
+ expect(exists).to.be.true;
177
+ }
178
+ // Check if existing share class got updated
179
+ const shareClassContract = getContract({
180
+ address: shareToken,
181
+ abi: ABI.Currency,
182
+ client: context.centrifuge.getClient(chainId),
183
+ });
184
+ const updateShareClassName = await shareClassContract.read.name();
185
+ const updatedShareClassSymbol = await shareClassContract.read.symbol();
186
+ expect(updateShareClassName).to.equal('Sepolia Pool One Token2');
187
+ expect(updatedShareClassSymbol).to.equal('sep.poo.one2');
188
+ });
189
+ it('should update the pool metadata', async () => {
190
+ const fakeHash = 'QmPdzJkZ4PVJ21HfBXMJbGopSpUP9C9fqu3A1f9ZVhtRY2';
191
+ const centrifugeWithPin = new Centrifuge({
192
+ environment: 'testnet',
193
+ pinJson: async (data) => {
194
+ expect(data).to.deep.equal(mockPoolMetadata);
195
+ return fakeHash;
196
+ },
197
+ rpcUrls: {
198
+ 11155111: context.tenderlyFork.rpcUrl,
199
+ },
200
+ });
201
+ const pool = await centrifugeWithPin.pool(poolId);
202
+ context.tenderlyFork.impersonateAddress = poolManager;
203
+ centrifugeWithPin.setSigner(context.tenderlyFork.signer);
204
+ const result = await pool.updateMetadata(mockPoolMetadata);
205
+ expect(result.type).to.equal('TransactionConfirmed');
206
+ const details = await pool.details();
207
+ expect(details.metadata.pool.asset.class).to.equal('Private credit');
208
+ });
90
209
  });
91
210
  //# sourceMappingURL=Pool.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pool.test.js","sourceRoot":"","sources":["../../src/entities/Pool.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Pool.test.js","sourceRoot":"","sources":["../../src/entities/Pool.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { combineLatest, defer, map, of, switchMap, withLatestFrom } from 'rxjs';
1
+ import { combineLatest, defer, map, of, switchMap } from 'rxjs';
2
2
  import { encodeFunctionData, getContract } from 'viem';
3
3
  import { ABI } from '../abi/index.js';
4
4
  import { NULL_ADDRESS } from '../constants.js';
@@ -73,7 +73,10 @@ export class PoolNetwork extends Entity {
73
73
  * @param asset - The investment currency address or asset ID
74
74
  */
75
75
  vault(scId, asset) {
76
- return this._query(null, () => this.vaults(scId).pipe(withLatestFrom(typeof asset === 'string' ? of({ address: asset, tokenId: 0n }) : this._root._asset(asset, this.chainId)), map(([vaults, { address }]) => {
76
+ return this._query(null, () => combineLatest([
77
+ this.vaults(scId),
78
+ typeof asset === 'string' ? of({ address: asset, tokenId: 0n }) : this._root.assetCurrency(asset),
79
+ ]).pipe(map(([vaults, { address }]) => {
77
80
  const addr = address.toLowerCase();
78
81
  const vault = vaults.find((v) => v._asset === addr);
79
82
  if (!vault)