@centrifuge/sdk 0.0.0-alpha.18 → 0.0.0-alpha.19

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 (49) hide show
  1. package/README.md +7 -0
  2. package/dist/Centrifuge.d.ts +18 -9
  3. package/dist/Centrifuge.d.ts.map +1 -1
  4. package/dist/Centrifuge.js +107 -51
  5. package/dist/Centrifuge.js.map +1 -1
  6. package/dist/Centrifuge.test.js +80 -0
  7. package/dist/Centrifuge.test.js.map +1 -1
  8. package/dist/abi/BalanceSheet.abi.d.ts +3 -0
  9. package/dist/abi/BalanceSheet.abi.d.ts.map +1 -0
  10. package/dist/abi/BalanceSheet.abi.js +55 -0
  11. package/dist/abi/BalanceSheet.abi.js.map +1 -0
  12. package/dist/abi/index.d.ts +13 -0
  13. package/dist/abi/index.d.ts.map +1 -1
  14. package/dist/abi/index.js +2 -0
  15. package/dist/abi/index.js.map +1 -1
  16. package/dist/entities/Pool.d.ts +9 -5
  17. package/dist/entities/Pool.d.ts.map +1 -1
  18. package/dist/entities/Pool.js +35 -11
  19. package/dist/entities/Pool.js.map +1 -1
  20. package/dist/entities/PoolNetwork.d.ts +31 -7
  21. package/dist/entities/PoolNetwork.d.ts.map +1 -1
  22. package/dist/entities/PoolNetwork.js +176 -39
  23. package/dist/entities/PoolNetwork.js.map +1 -1
  24. package/dist/entities/PoolNetwork.test.js +32 -35
  25. package/dist/entities/PoolNetwork.test.js.map +1 -1
  26. package/dist/entities/ShareClass.d.ts +5 -5
  27. package/dist/entities/ShareClass.d.ts.map +1 -1
  28. package/dist/entities/ShareClass.js +13 -27
  29. package/dist/entities/ShareClass.js.map +1 -1
  30. package/dist/entities/ShareClass.test.js.map +1 -1
  31. package/dist/entities/Vault.d.ts +2 -2
  32. package/dist/entities/Vault.d.ts.map +1 -1
  33. package/dist/entities/Vault.js.map +1 -1
  34. package/dist/tests/mocks/mockPoolMetadata.d.ts.map +1 -1
  35. package/dist/tests/mocks/mockPoolMetadata.js +0 -1
  36. package/dist/tests/mocks/mockPoolMetadata.js.map +1 -1
  37. package/dist/types/poolInput.d.ts +4 -3
  38. package/dist/types/poolInput.d.ts.map +1 -1
  39. package/dist/types/poolMetadata.d.ts +8 -8
  40. package/dist/types/poolMetadata.d.ts.map +1 -1
  41. package/dist/utils/index.d.ts +2 -1
  42. package/dist/utils/index.d.ts.map +1 -1
  43. package/dist/utils/index.js +20 -0
  44. package/dist/utils/index.js.map +1 -1
  45. package/dist/utils/types.d.ts +7 -1
  46. package/dist/utils/types.d.ts.map +1 -1
  47. package/dist/utils/types.js +6 -0
  48. package/dist/utils/types.js.map +1 -1
  49. package/package.json +1 -1
@@ -1,8 +1,10 @@
1
1
  import { combineLatest, defer, map, switchMap } from 'rxjs';
2
- import { getContract } from 'viem';
2
+ import { encodeFunctionData, getContract } from 'viem';
3
3
  import { ABI } from '../abi/index.js';
4
4
  import { NULL_ADDRESS } from '../constants.js';
5
+ import { addressToBytes32 } from '../utils/index.js';
5
6
  import { repeatOnEvents } from '../utils/rx.js';
7
+ import { doTransaction } from '../utils/transaction.js';
6
8
  import { Entity } from './Entity.js';
7
9
  import { ShareClass } from './ShareClass.js';
8
10
  import { Vault } from './Vault.js';
@@ -19,34 +21,32 @@ export class PoolNetwork extends Entity {
19
21
  this.chainId = chainId;
20
22
  }
21
23
  /**
22
- * Estimates the gas cost needed to bridge the message from the Vaults side to the Pool side,
23
- * that results from a transaction
24
- * @internal
25
- */
26
- _estimate() {
27
- return this._query(null, () => this._root._estimate(this.chainId, { chainId: this.pool.chainId }));
28
- }
29
- /**
30
- * Get the contract address of the share token.
31
- * @internal
24
+ * Query the details of the pool on a network.
25
+ * @returns The details, including whether the pool is active, whether any of the share classes have been deployed,
26
+ * and any deployed vaults.
32
27
  */
33
- _share(scId) {
34
- return this._query(['share'], () => this._root._protocolAddresses(this.chainId).pipe(switchMap(({ spoke }) => defer(async () => {
35
- const address = await this._root.getClient(this.chainId).readContract({
36
- address: spoke,
37
- abi: ABI.Spoke,
38
- functionName: 'shareToken',
39
- args: [this.pool.id.raw, scId.raw],
40
- });
41
- return address.toLowerCase();
42
- }).pipe(repeatOnEvents(this._root, {
43
- address: spoke,
44
- abi: ABI.Spoke,
45
- eventName: 'AddShareClass',
46
- filter: (events) => {
47
- return events.some((event) => event.args.poolId === this.pool.id.raw && event.args.scId === scId.raw);
48
- },
49
- }, this.chainId)))));
28
+ details() {
29
+ return this._query(null, () => this.pool.shareClasses().pipe(switchMap((shareClasses) => {
30
+ return combineLatest([
31
+ this.isActive(),
32
+ this._vaultsByShareClass(),
33
+ ...shareClasses.map((sc) => this._share(sc.id, false)),
34
+ ]).pipe(map(([isActive, vaultsByShareClass, ...shareTokens]) => {
35
+ return {
36
+ isActive,
37
+ activeShareClasses: shareClasses
38
+ .filter((_, i) => shareTokens[i] !== NULL_ADDRESS)
39
+ .map((sc, i) => {
40
+ return {
41
+ shareClass: sc,
42
+ id: sc.id,
43
+ shareToken: shareTokens[i],
44
+ vaults: vaultsByShareClass[sc.id.raw] ?? [],
45
+ };
46
+ }),
47
+ };
48
+ }));
49
+ })));
50
50
  }
51
51
  /**
52
52
  * Get the details of the share token.
@@ -72,8 +72,7 @@ export class PoolNetwork extends Entity {
72
72
  const results = await Promise.allSettled(currencies.map(async (curAddr) => {
73
73
  const vaultAddr = await contract.read.getVault([this.pool.id.raw, scId.raw, curAddr]);
74
74
  if (vaultAddr === NULL_ADDRESS) {
75
- console.warn(`Vault not found for Pool: ${this.pool.id}, Share Class: ${scId}, Currency: ${curAddr}`);
76
- throw new Error('Vault not found');
75
+ throw new Error();
77
76
  }
78
77
  return new Vault(this._root, this, new ShareClass(this._root, this.pool, scId.raw), curAddr, vaultAddr);
79
78
  }));
@@ -87,15 +86,6 @@ export class PoolNetwork extends Entity {
87
86
  },
88
87
  }, this.chainId)))));
89
88
  }
90
- /**
91
- * Get all Vaults for all share classes in the pool.
92
- * @returns An object of share class ID to Vault.
93
- */
94
- vaultsByShareClass() {
95
- return this._query(null, () => this.pool._shareClassIds().pipe(switchMap((scIds) => {
96
- return combineLatest(scIds.map((scId) => this.vaults(scId))).pipe(map((vaults) => Object.fromEntries(vaults.flat().map((vault, index) => [scIds[index], vault]))));
97
- })));
98
- }
99
89
  /**
100
90
  * Get a specific Vault for a given share class and investment currency.
101
91
  * @param scId - The share class ID
@@ -133,5 +123,152 @@ export class PoolNetwork extends Entity {
133
123
  }, this.chainId));
134
124
  })));
135
125
  }
126
+ /**
127
+ * Enable and deploy share classes/vaults.
128
+ * @param shareClasses - An array of share classes to enable
129
+ * @param vaults - An array of vaults to deploy
130
+ */
131
+ deploy(shareClasses = [], vaults = []) {
132
+ const self = this;
133
+ return this._transactSequence(async function* ({ walletClient, publicClient }) {
134
+ const [{ hub }, { balanceSheet, syncDepositVaultFactory, asyncVaultFactory, syncManager, asyncRequestManager }, id, estimate, details,] = await Promise.all([
135
+ self._root._protocolAddresses(self.pool.chainId),
136
+ self._root._protocolAddresses(self.chainId),
137
+ self._root.id(self.chainId),
138
+ self._root._estimate(self.pool.chainId, { chainId: self.chainId }),
139
+ self.details(),
140
+ ]);
141
+ const balanceSheetContract = getContract({
142
+ client: publicClient,
143
+ address: balanceSheet,
144
+ abi: ABI.BalanceSheet,
145
+ });
146
+ const [isAsyncManagerSet, isSyncManagerSet] = await Promise.all([
147
+ balanceSheetContract.read.manager([self.pool.id.raw, asyncRequestManager]),
148
+ balanceSheetContract.read.manager([self.pool.id.raw, syncManager]),
149
+ ]);
150
+ const batch = [];
151
+ // TODO: Set async request manager if not already set.
152
+ // Can't currently query whether it is set on the Spoke contract. Needs a view method.
153
+ if (!isAsyncManagerSet && vaults.some((v) => v.kind === 'async')) {
154
+ batch.push(encodeFunctionData({
155
+ abi: ABI.Hub,
156
+ functionName: 'updateBalanceSheetManager',
157
+ args: [id, self.pool.id.raw, addressToBytes32(asyncRequestManager), true],
158
+ }));
159
+ }
160
+ if (!isSyncManagerSet && vaults.some((v) => v.kind === 'syncDeposit')) {
161
+ batch.push(encodeFunctionData({
162
+ abi: ABI.Hub,
163
+ functionName: 'updateBalanceSheetManager',
164
+ args: [id, self.pool.id.raw, addressToBytes32(syncManager), true],
165
+ }));
166
+ }
167
+ if (!details.isActive) {
168
+ batch.push(encodeFunctionData({
169
+ abi: ABI.Hub,
170
+ functionName: 'notifyPool',
171
+ args: [self.pool.id.raw, id],
172
+ }));
173
+ }
174
+ const enabledShareClasses = new Set(details.activeShareClasses.map((sc) => sc.id.raw));
175
+ for (const sc of shareClasses) {
176
+ if (details.activeShareClasses.some((activeSc) => activeSc.id.equals(sc.id.raw))) {
177
+ console.warn(`Share class "${sc.id}" is already active in pool "${self.pool.id}"`);
178
+ continue;
179
+ }
180
+ enabledShareClasses.add(sc.id.raw);
181
+ batch.push(encodeFunctionData({
182
+ abi: ABI.Hub,
183
+ functionName: 'notifyShareClass',
184
+ args: [self.pool.id.raw, sc.id.raw, id, addressToBytes32(sc.hook)],
185
+ }));
186
+ }
187
+ for (const vault of vaults) {
188
+ if (!enabledShareClasses.has(vault.shareClassId.raw)) {
189
+ throw new Error(`Share class "${vault.shareClassId.raw}" is not enabled in pool "${self.pool.id.raw}"`);
190
+ }
191
+ batch.push(encodeFunctionData({
192
+ abi: ABI.Hub,
193
+ functionName: 'updateVault',
194
+ args: [
195
+ self.pool.id.raw,
196
+ vault.shareClassId.raw,
197
+ vault.assetId.raw,
198
+ addressToBytes32(vault.kind === 'syncDeposit' ? syncDepositVaultFactory : asyncVaultFactory),
199
+ 0, // VaultUpdateKind.DeployAndLink
200
+ 1000000n, // gas limit
201
+ ],
202
+ }));
203
+ }
204
+ if (batch.length === 0) {
205
+ throw new Error('No share classes / vaults to deploy');
206
+ }
207
+ yield* doTransaction('Deploy share classes and vaults', publicClient, () => {
208
+ if (batch.length === 1) {
209
+ return walletClient.sendTransaction({
210
+ data: batch[0],
211
+ to: hub,
212
+ value: estimate,
213
+ });
214
+ }
215
+ return walletClient.writeContract({
216
+ address: hub,
217
+ abi: ABI.Hub,
218
+ functionName: 'multicall',
219
+ args: [batch],
220
+ value: estimate * BigInt(batch.length),
221
+ });
222
+ });
223
+ }, this.pool.chainId);
224
+ }
225
+ /**
226
+ * Get the contract address of the share token.
227
+ * @internal
228
+ */
229
+ _share(scId, throwOnNullAddress = true) {
230
+ return this._query(['share', scId.toString()], () => this._root._protocolAddresses(this.chainId).pipe(switchMap(({ spoke }) => defer(async () => {
231
+ try {
232
+ const address = await this._root.getClient(this.chainId).readContract({
233
+ address: spoke,
234
+ abi: ABI.Spoke,
235
+ functionName: 'shareToken',
236
+ args: [this.pool.id.raw, scId.raw],
237
+ });
238
+ return address.toLowerCase();
239
+ }
240
+ catch {
241
+ if (throwOnNullAddress) {
242
+ throw new Error(`Share class ${scId} not found for pool ${this.pool.id} on chain ${this.chainId}`);
243
+ }
244
+ return NULL_ADDRESS;
245
+ }
246
+ }).pipe(repeatOnEvents(this._root, {
247
+ address: spoke,
248
+ abi: ABI.Spoke,
249
+ eventName: 'AddShareClass',
250
+ filter: (events) => {
251
+ return events.some((event) => event.args.poolId === this.pool.id.raw && event.args.scId === scId.raw);
252
+ },
253
+ }, this.chainId)))));
254
+ }
255
+ /**
256
+ * Get all Vaults for all share classes in the pool.
257
+ * @returns An object of share class ID to Vault.
258
+ * @internal
259
+ */
260
+ _vaultsByShareClass() {
261
+ return this._query(null, () => this.pool._shareClassIds().pipe(switchMap((scIds) => {
262
+ return combineLatest(scIds.map((scId) => this.vaults(scId))).pipe(map((vaultsShareClassArr) => Object.fromEntries(vaultsShareClassArr.map((vaults, index) => [scIds[index].raw, vaults]))));
263
+ })));
264
+ }
265
+ /**
266
+ * Estimates the gas cost needed to bridge the message from the Vaults side to the Pool side,
267
+ * that results from a transaction
268
+ * @internal
269
+ */
270
+ _estimate() {
271
+ return this._query(null, () => this._root._estimate(this.chainId, { chainId: this.pool.chainId }));
272
+ }
136
273
  }
137
274
  //# sourceMappingURL=PoolNetwork.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PoolNetwork.js","sourceRoot":"","sources":["../../src/entities/PoolNetwork.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PoolNetwork.js","sourceRoot":"","sources":["../../src/entities/PoolNetwork.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,MAAM;IAI5B;IACA;IAJT,gBAAgB;IAChB,YACE,KAAiB,EACV,IAAU,EACV,OAAe;QAEtB,KAAK,CAAC,KAAK,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;QAHnD,SAAI,GAAJ,IAAI,CAAM;QACV,YAAO,GAAP,OAAO,CAAQ;IAGxB,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,CAC5B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAC3B,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YACzB,OAAO,aAAa,CAAC;gBACnB,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,CAAC,mBAAmB,EAAE;gBAC1B,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;aACvD,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE;gBACrD,OAAO;oBACL,QAAQ;oBACR,kBAAkB,EAAE,YAAY;yBAC7B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC;yBACjD,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;wBACb,OAAO;4BACL,UAAU,EAAE,EAAE;4BACd,EAAE,EAAE,EAAE,CAAC,EAAE;4BACT,UAAU,EAAE,WAAW,CAAC,CAAC,CAAE;4BAC3B,MAAM,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE;yBAC5C,CAAA;oBACH,CAAC,CAAC;iBACL,CAAA;YACH,CAAC,CAAC,CACH,CAAA;QACH,CAAC,CAAC,CACH,CACF,CAAA;IACH,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,IAAkB;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,CAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CACvF,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAkB;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CACnD,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAC9C,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,EAAE,CAC/C,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,CAAC,UAAU,CAAC,MAAM;gBAAE,OAAO,EAAE,CAAA;YACjC,MAAM,QAAQ,GAAG,WAAW,CAAC;gBAC3B,OAAO,EAAE,WAAW;gBACpB,GAAG,EAAE,GAAG,CAAC,WAAW;gBACpB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAE;aAC5C,CAAC,CAAA;YACF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBAC/B,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;gBACtF,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;oBAC/B,MAAM,IAAI,KAAK,EAAE,CAAA;gBACnB,CAAC;gBACD,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;YACzG,CAAC,CAAC,CACH,CAAA;YACD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAChG,CAAC,CAAC,CAAC,IAAI,CACL,cAAc,CACZ,IAAI,CAAC,KAAK,EACV;YACE,OAAO,EAAE,KAAK;YACd,GAAG,EAAE,GAAG,CAAC,KAAK;YACd,SAAS,EAAE,aAAa;YACxB,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,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAA;YACvG,CAAC;SACF,EACD,IAAI,CAAC,OAAO,CACb,CACF,CACF,CACF,CACF,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAkB,EAAE,KAAgB;QACxC,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;QACxC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,CAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CACpB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACb,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAA;YAC3D,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;YAC9C,OAAO,KAAK,CAAA;QACd,CAAC,CAAC,CACH,CACF,CAAA;IACH,CAAC;IAED;;;OAGG;IACH,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,KAAK,EAAE,EAAE,EAAE;YACtB,OAAO,KAAK,CACV,GAAG,EAAE,CACH,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAE,CAAC,YAAY,CAAC;gBAC/C,OAAO,EAAE,KAAK;gBACd,GAAG,EAAE,GAAG,CAAC,KAAK;gBACd,YAAY,EAAE,cAAc;gBAC5B,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;aACzB,CAAqB,CACzB,CAAC,IAAI,CACJ,cAAc,CACZ,IAAI,CAAC,KAAK,EACV;gBACE,OAAO,EAAE,KAAK;gBACd,GAAG,EAAE,GAAG,CAAC,KAAK;gBACd,SAAS,EAAE,SAAS;gBACpB,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;oBACjB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;wBAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;oBAC3C,CAAC,CAAC,CAAA;gBACJ,CAAC;aACF,EACD,IAAI,CAAC,OAAO,CACb,CACF,CAAA;QACH,CAAC,CAAC,CACH,CACF,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM,CACJ,eAAwD,EAAE,EAC1D,SAA4F,EAAE;QAE9F,MAAM,IAAI,GAAG,IAAI,CAAA;QACjB,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE;YAC3E,MAAM,CACJ,EAAE,GAAG,EAAE,EACP,EAAE,YAAY,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,WAAW,EAAE,mBAAmB,EAAE,EAC9F,EAAE,EACF,QAAQ,EACR,OAAO,EACR,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACpB,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;gBAChD,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC3C,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClE,IAAI,CAAC,OAAO,EAAE;aACf,CAAC,CAAA;YAEF,MAAM,oBAAoB,GAAG,WAAW,CAAC;gBACvC,MAAM,EAAE,YAAY;gBACpB,OAAO,EAAE,YAAY;gBACrB,GAAG,EAAE,GAAG,CAAC,YAAY;aACtB,CAAC,CAAA;YACF,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC9D,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;gBAC1E,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;aACnE,CAAC,CAAA;YAEF,MAAM,KAAK,GAAgB,EAAE,CAAA;YAE7B,sDAAsD;YACtD,sFAAsF;YAEtF,IAAI,CAAC,iBAAiB,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC;gBACjE,KAAK,CAAC,IAAI,CACR,kBAAkB,CAAC;oBACjB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,YAAY,EAAE,2BAA2B;oBACzC,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAAC;iBAC1E,CAAC,CACH,CAAA;YACH,CAAC;YACD,IAAI,CAAC,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;gBACtE,KAAK,CAAC,IAAI,CACR,kBAAkB,CAAC;oBACjB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,YAAY,EAAE,2BAA2B;oBACzC,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC;iBAClE,CAAC,CACH,CAAA;YACH,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACtB,KAAK,CAAC,IAAI,CACR,kBAAkB,CAAC;oBACjB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,YAAY,EAAE,YAAY;oBAC1B,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC;iBAC7B,CAAC,CACH,CAAA;YACH,CAAC;YAED,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;YAEtF,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;gBAC9B,IAAI,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBACjF,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,gCAAgC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;oBAClF,SAAQ;gBACV,CAAC;gBACD,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;gBAClC,KAAK,CAAC,IAAI,CACR,kBAAkB,CAAC;oBACjB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,YAAY,EAAE,kBAAkB;oBAChC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;iBACnE,CAAC,CACH,CAAA;YACH,CAAC;YAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrD,MAAM,IAAI,KAAK,CAAC,gBAAgB,KAAK,CAAC,YAAY,CAAC,GAAG,6BAA6B,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAA;gBACzG,CAAC;gBACD,KAAK,CAAC,IAAI,CACR,kBAAkB,CAAC;oBACjB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,YAAY,EAAE,aAAa;oBAC3B,IAAI,EAAE;wBACJ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG;wBAChB,KAAK,CAAC,YAAY,CAAC,GAAG;wBACtB,KAAK,CAAC,OAAO,CAAC,GAAG;wBACjB,gBAAgB,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,iBAAiB,CAAC;wBAC5F,CAAC,EAAE,gCAAgC;wBACnC,QAAU,EAAE,YAAY;qBACzB;iBACF,CAAC,CACH,CAAA;YACH,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;YACxD,CAAC;YAED,KAAK,CAAC,CAAC,aAAa,CAAC,iCAAiC,EAAE,YAAY,EAAE,GAAG,EAAE;gBACzE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,OAAO,YAAY,CAAC,eAAe,CAAC;wBAClC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;wBACd,EAAE,EAAE,GAAG;wBACP,KAAK,EAAE,QAAQ;qBAChB,CAAC,CAAA;gBACJ,CAAC;gBACD,OAAO,YAAY,CAAC,aAAa,CAAC;oBAChC,OAAO,EAAE,GAAG;oBACZ,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,YAAY,EAAE,WAAW;oBACzB,IAAI,EAAE,CAAC,KAAK,CAAC;oBACb,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;iBACvC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACvB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,IAAkB,EAAE,kBAAkB,GAAG,IAAI;QAClD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAClD,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAC9C,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CACtB,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAE,CAAC,YAAY,CAAC;oBACrE,OAAO,EAAE,KAAK;oBACd,GAAG,EAAE,GAAG,CAAC,KAAK;oBACd,YAAY,EAAE,YAAY;oBAC1B,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;iBACnC,CAAC,CAAA;gBACF,OAAO,OAAO,CAAC,WAAW,EAAe,CAAA;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,kBAAkB,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,uBAAuB,IAAI,CAAC,IAAI,CAAC,EAAE,aAAa,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;gBACpG,CAAC;gBACD,OAAO,YAAY,CAAA;YACrB,CAAC;QACH,CAAC,CAAC,CAAC,IAAI,CACL,cAAc,CACZ,IAAI,CAAC,KAAK,EACV;YACE,OAAO,EAAE,KAAK;YACd,GAAG,EAAE,GAAG,CAAC,KAAK;YACd,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,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAA;YACvG,CAAC;SACF,EACD,IAAI,CAAC,OAAO,CACb,CACF,CACF,CACF,CACF,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,CAC5B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAC7B,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAClB,OAAO,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAC/D,GAAG,CAAC,CAAC,mBAAmB,EAAE,EAAE,CAC1B,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAE,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAC5F,CACF,CAAA;QACH,CAAC,CAAC,CACH,CACF,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IACpG,CAAC;CACF"}
@@ -1,11 +1,14 @@
1
1
  import { expect } from 'chai';
2
+ import { ABI } from '../abi/index.js';
2
3
  import { NULL_ADDRESS } from '../constants.js';
3
4
  import { context } from '../tests/setup.js';
4
- import { PoolId, ShareClassId } from '../utils/types.js';
5
+ import { AssetId, PoolId, ShareClassId } from '../utils/types.js';
5
6
  import { Pool } from './Pool.js';
6
7
  import { PoolNetwork } from './PoolNetwork.js';
7
8
  const poolId = PoolId.from(1, 1);
8
9
  const scId = ShareClassId.from(poolId, 1);
10
+ const chainId = 11155111;
11
+ const poolManager = '0x423420Ae467df6e90291fd0252c0A8a637C1e03f';
9
12
  describe('PoolNetwork', () => {
10
13
  let poolNetwork;
11
14
  beforeEach(() => {
@@ -26,39 +29,33 @@ describe('PoolNetwork', () => {
26
29
  expect(vaults).to.have.length(1);
27
30
  expect(vaults[0].address.toLowerCase()).not.to.equal(NULL_ADDRESS);
28
31
  });
29
- // it('should deploy a tranche', async () => {
30
- // const poolId = '1287682503'
31
- // const trancheId = '0x02bbf52e452ddb47103913051212382c'
32
- // const pool = new Pool(context.centrifuge, poolId, 11155111)
33
- // const poolNetwork = new PoolNetwork(context.centrifuge, pool, 11155111)
34
- // const canTrancheBeDeployed = await poolNetwork.canTrancheBeDeployed(trancheId)
35
- // expect(canTrancheBeDeployed).to.equal(true)
36
- // const result = await poolNetwork.deployTranche(trancheId)
37
- // expect(result.type).to.equal('TransactionConfirmed')
38
- // })
39
- // it('should deploy a vault', async () => {
40
- // const poolId = '1287682503'
41
- // const trancheId = '0x02bbf52e452ddb47103913051212382c'
42
- // const pool = new Pool(context.centrifuge, poolId, 11155111)
43
- // const poolNetwork = new PoolNetwork(context.centrifuge, pool, 11155111)
44
- // const tUSD = '0x8503b4452Bf6238cC76CdbEE223b46d7196b1c93'
45
- // const result = await poolNetwork.deployVault(trancheId, tUSD)
46
- // expect(result.type).to.equal('TransactionConfirmed')
47
- // })
32
+ it('gets the details', async () => {
33
+ const details = await poolNetwork.details();
34
+ expect(details.isActive).to.equal(true);
35
+ expect(details.activeShareClasses).to.have.length(1);
36
+ expect(details.activeShareClasses[0].shareToken).not.to.equal(NULL_ADDRESS);
37
+ expect(details.activeShareClasses[0].id.equals(scId)).to.equal(true);
38
+ expect(details.activeShareClasses[0].vaults).to.have.length(1);
39
+ });
40
+ it('deploys share classes and vaults', async () => {
41
+ const { hub, freezeOnlyHook } = await context.centrifuge._protocolAddresses(chainId);
42
+ context.tenderlyFork.impersonateAddress = poolManager;
43
+ context.centrifuge.setSigner(context.tenderlyFork.signer);
44
+ await context.centrifuge._transact('Add share class', async ({ walletClient }) => {
45
+ return walletClient.writeContract({
46
+ address: hub,
47
+ abi: ABI.Hub,
48
+ functionName: 'addShareClass',
49
+ args: [poolId.raw, 'Test Share Class', 'TSC', '0x1'.padEnd(66, '0')],
50
+ });
51
+ }, chainId);
52
+ const result = await poolNetwork.deploy([{ id: ShareClassId.from(poolId, 2), hook: freezeOnlyHook }], [{ shareClassId: ShareClassId.from(poolId, 2), assetId: AssetId.from(1, 1), kind: 'syncDeposit' }]);
53
+ expect(result.type).to.equal('TransactionConfirmed');
54
+ const details = await poolNetwork.details();
55
+ expect(details.activeShareClasses).to.have.length(2);
56
+ expect(details.activeShareClasses[1].id.equals(ShareClassId.from(poolId, 2))).to.equal(true);
57
+ expect(details.activeShareClasses[1].shareToken).not.to.equal(NULL_ADDRESS);
58
+ expect(details.activeShareClasses[1].vaults).to.have.length(1);
59
+ });
48
60
  });
49
- // // Set the storage to a value that will make the tranche undeployable
50
- // const poolLoc = mapLocation(6n, BigInt(poolId))
51
- // const createdAtLoc = poolLoc + BigInt(0)
52
- // const poolManager = await poolNetwork._poolManager()
53
- // const client = context.centrifuge.getClient()!
54
- // const data = await client.setStorageAt({
55
- // address: poolManager,
56
- // slot: toHex(createdAtLoc),
57
- // })
58
- // function mapLocation(slot: bigint, key: bigint) {
59
- // return hexToBigInt(keccak256(encodePacked(['uint256', 'uint256'], [key, slot])))
60
- // }
61
- // function arrLocation(slot: bigint, index: bigint, elementSize: bigint) {
62
- // return hexToBigInt(keccak256(toHex(slot))) + index * elementSize
63
- // }
64
61
  //# sourceMappingURL=PoolNetwork.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PoolNetwork.test.js","sourceRoot":"","sources":["../../src/entities/PoolNetwork.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAChC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;AAEzC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAI,WAAwB,CAAA;IAE5B,UAAU,CAAC,GAAG,EAAE;QACd,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAA;QAC9B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QACvD,WAAW,GAAG,IAAI,WAAW,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;IAC3D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAA;QAC7C,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAE/B,0BAA0B;QAC1B,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAA;QACjH,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,CAAA;QAC/C,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAChC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IACrE,CAAC,CAAC,CAAA;IAEF,8CAA8C;IAC9C,gCAAgC;IAChC,2DAA2D;IAC3D,gEAAgE;IAChE,4EAA4E;IAE5E,mFAAmF;IACnF,gDAAgD;IAEhD,8DAA8D;IAC9D,yDAAyD;IACzD,KAAK;IAEL,4CAA4C;IAC5C,gCAAgC;IAChC,2DAA2D;IAC3D,gEAAgE;IAChE,4EAA4E;IAC5E,8DAA8D;IAE9D,kEAAkE;IAClE,yDAAyD;IACzD,KAAK;AACP,CAAC,CAAC,CAAA;AAEF,wEAAwE;AACxE,kDAAkD;AAClD,2CAA2C;AAC3C,uDAAuD;AACvD,iDAAiD;AACjD,2CAA2C;AAC3C,0BAA0B;AAC1B,+BAA+B;AAC/B,KAAK;AAEL,oDAAoD;AACpD,qFAAqF;AACrF,IAAI;AAEJ,2EAA2E;AAC3E,qEAAqE;AACrE,IAAI"}
1
+ {"version":3,"file":"PoolNetwork.test.js","sourceRoot":"","sources":["../../src/entities/PoolNetwork.test.ts"],"names":[],"mappings":"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"}
@@ -72,7 +72,7 @@ export declare class ShareClass extends Entity {
72
72
  5: number | null;
73
73
  };
74
74
  }>;
75
- investorOrder(assetId: AssetId, investor: string): import("../index.js").Query<{
75
+ investorOrder(assetId: AssetId, investor: HexString): import("../index.js").Query<{
76
76
  maxDepositClaims: number;
77
77
  maxRedeemClaims: number;
78
78
  }>;
@@ -81,7 +81,7 @@ export declare class ShareClass extends Entity {
81
81
  * @param address Address to check
82
82
  * @param chainId Chain ID of the network on which to check the member
83
83
  */
84
- member(address: string, chainId: number): import("../index.js").Query<{
84
+ member(address: HexString, chainId: number): import("../index.js").Query<{
85
85
  isMember: boolean;
86
86
  validUntil: Date;
87
87
  } | {
@@ -108,14 +108,14 @@ export declare class ShareClass extends Entity {
108
108
  notifySharePrice(chainId: number): import("../index.js").Transaction;
109
109
  approveDeposits(assetId: AssetId, assetAmount: Balance, pricePerShare: Price): import("../index.js").Transaction;
110
110
  approveRedeems(assetId: AssetId, shareAmount: Balance, pricePerShare: Price): import("../index.js").Transaction;
111
- claimDeposit(assetId: AssetId, investor: string): import("../index.js").Transaction;
112
- claimRedeem(assetId: AssetId, investor: string): import("../index.js").Transaction;
111
+ claimDeposit(assetId: AssetId, investor: HexString): import("../index.js").Transaction;
112
+ claimRedeem(assetId: AssetId, investor: HexString): import("../index.js").Transaction;
113
113
  /**
114
114
  * Update a member of the share class.
115
115
  * @param address Address of the investor
116
116
  * @param validUntil Time in seconds from Unix epoch until the investor is valid
117
117
  * @param chainId Chain ID of the network on which to update the member
118
118
  */
119
- updateMember(address: string, validUntil: number, chainId: number): import("../index.js").Transaction;
119
+ updateMember(address: HexString, validUntil: number, chainId: number): import("../index.js").Transaction;
120
120
  }
121
121
  //# sourceMappingURL=ShareClass.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ShareClass.d.ts","sourceRoot":"","sources":["../../src/entities/ShareClass.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAInD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAGrC;;;GAGG;AACH,qBAAa,UAAW,SAAQ,MAAM;IAM3B,IAAI,EAAE,IAAI;IALnB,EAAE,EAAE,YAAY,CAAA;IAYhB;;;OAGG;IACH,OAAO;;;;;;;;IAiBP,aAAa;;;;;;IAgCb;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM;IAItB,QAAQ;;;;;;;;;;;;;;;;IAgDR;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO;;;;;;;;;;;;;;;;IAqExB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM;;;;IAiDhD;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;;;;;;;IA2CvC;;;;;;;OAOG;IACH,aAAa,CAAC,SAAS,SAAS,OAAO,EACrC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,SAAS,EACtB,QAAQ,EAAE,SAAS,SAAS,IAAI,GAC5B;SAAG,GAAG,IAAI,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM;KAAE,GACjE;SAAG,GAAG,IAAI,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM;KAAE;IAoGxG,gBAAgB,CAAC,aAAa,EAAE,KAAK;IAerC,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM;IAezD,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAkBxD,gBAAgB,CAAC,OAAO,EAAE,OAAO;IAejC,gBAAgB,CAAC,OAAO,EAAE,MAAM;IAkBhC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK;IAmD5E,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK;IAuC3E,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM;IA0B/C,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM;IAoB9C;;;;;OAKG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAgPlE"}
1
+ {"version":3,"file":"ShareClass.d.ts","sourceRoot":"","sources":["../../src/entities/ShareClass.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAInD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAGrC;;;GAGG;AACH,qBAAa,UAAW,SAAQ,MAAM;IAM3B,IAAI,EAAE,IAAI;IALnB,EAAE,EAAE,YAAY,CAAA;IAahB;;;OAGG;IACH,OAAO;;;;;;;;IAiBP,aAAa;;;;;;IAgCb;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM;IAItB,QAAQ;;;;;;;;;;;;;;;;IAkCR;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO;;;;;;;;;;;;;;;;IAqExB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS;;;;IAiDnD;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM;;;;;;;IA2C1C;;;;;;;OAOG;IACH,aAAa,CAAC,SAAS,SAAS,OAAO,EACrC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,SAAS,EACtB,QAAQ,EAAE,SAAS,SAAS,IAAI,GAC5B;SAAG,GAAG,IAAI,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM;KAAE,GACjE;SAAG,GAAG,IAAI,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM;KAAE;IA0GxG,gBAAgB,CAAC,aAAa,EAAE,KAAK;IAerC,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM;IAezD,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAkBxD,gBAAgB,CAAC,OAAO,EAAE,OAAO;IAejC,gBAAgB,CAAC,OAAO,EAAE,MAAM;IAkBhC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK;IAmD5E,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK;IAuC3E,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS;IA0BlD,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS;IAoBjD;;;;;OAKG;IACH,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAgPrE"}
@@ -3,7 +3,7 @@ import { encodeFunctionData, encodePacked, getContract, parseAbi } from 'viem';
3
3
  import { ABI } from '../abi/index.js';
4
4
  import { AccountType } from '../types/holdings.js';
5
5
  import { Balance, Price } from '../utils/BigInt.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 { doTransaction } from '../utils/transaction.js';
9
9
  import { AssetId, ShareClassId } from '../utils/types.js';
@@ -18,9 +18,10 @@ export class ShareClass extends Entity {
18
18
  id;
19
19
  /** @internal */
20
20
  constructor(_root, pool, id) {
21
- super(_root, ['shareclass', id]);
21
+ const _id = id instanceof ShareClassId ? id : new ShareClassId(id);
22
+ super(_root, ['shareclass', _id.toString()]);
22
23
  this.pool = pool;
23
- this.id = new ShareClassId(id);
24
+ this.id = _id;
24
25
  }
25
26
  /**
26
27
  * Query the details of the share class.
@@ -69,21 +70,14 @@ export class ShareClass extends Entity {
69
70
  ._queryIndexer(`query ($scId: String!) {
70
71
  holdings(where: { tokenId: $scId }) {
71
72
  items {
72
- assetAmount
73
- assetId
74
- assetPrice
75
- assetValue
76
- isLiability
77
- valuation
78
- tokenId
79
- poolId
73
+ assetRegistrationId
80
74
  }
81
75
  }
82
76
  }`, {
83
77
  scId: this.id.raw,
84
78
  })
85
79
  .pipe(switchMap((res) => combineLatest(res.holdings.items.map((holding) => {
86
- const assetId = new AssetId(holding.assetId);
80
+ const assetId = new AssetId(holding.assetRegistrationId);
87
81
  return this.holding(assetId);
88
82
  })))));
89
83
  }
@@ -227,8 +221,8 @@ export class ShareClass extends Entity {
227
221
  ]);
228
222
  let tx;
229
223
  if (isLiability) {
230
- const expenseAccount = accounts[AccountType.Expense] || metadata?.defaultAccounts?.expense;
231
- const liabilityAccount = accounts[AccountType.Liability] || metadata?.defaultAccounts?.liability;
224
+ const expenseAccount = accounts[AccountType.Expense] || metadata?.shareClasses?.[self.id.raw]?.defaultAccounts?.expense;
225
+ const liabilityAccount = accounts[AccountType.Liability] || metadata?.shareClasses?.[self.id.raw]?.defaultAccounts?.liability;
232
226
  if (liabilityAccount === undefined) {
233
227
  throw new Error('Missing required accounts for liability creation');
234
228
  }
@@ -261,10 +255,10 @@ export class ShareClass extends Entity {
261
255
  }
262
256
  }
263
257
  else {
264
- const assetAccount = accounts[AccountType.Asset] || metadata?.defaultAccounts?.asset;
265
- const equityAccount = accounts[AccountType.Equity] || metadata?.defaultAccounts?.equity;
266
- const gainAccount = accounts[AccountType.Gain] || metadata?.defaultAccounts?.gain;
267
- const lossAccount = accounts[AccountType.Loss] || metadata?.defaultAccounts?.loss;
258
+ const assetAccount = accounts[AccountType.Asset] || metadata?.shareClasses?.[self.id.raw]?.defaultAccounts?.asset;
259
+ const equityAccount = accounts[AccountType.Equity] || metadata?.shareClasses?.[self.id.raw]?.defaultAccounts?.equity;
260
+ const gainAccount = accounts[AccountType.Gain] || metadata?.shareClasses?.[self.id.raw]?.defaultAccounts?.gain;
261
+ const lossAccount = accounts[AccountType.Loss] || metadata?.shareClasses?.[self.id.raw]?.defaultAccounts?.loss;
268
262
  if (equityAccount === undefined || gainAccount === undefined || lossAccount === undefined) {
269
263
  throw new Error('Missing required accounts for holding creation');
270
264
  }
@@ -667,7 +661,7 @@ export class ShareClass extends Entity {
667
661
  /** @internal */
668
662
  _getFreeAccountId() {
669
663
  return this._query(null, () => this._root._protocolAddresses(this.pool.chainId).pipe(map(({ accounting }) => ({ accounting, id: null, triesLeft: 10 })), expand(({ accounting, triesLeft }) => {
670
- const id = randomUint32();
664
+ const id = Number(randomUint(32));
671
665
  if (triesLeft <= 0)
672
666
  return EMPTY;
673
667
  return defer(async () => {
@@ -682,12 +676,4 @@ export class ShareClass extends Entity {
682
676
  }), filter(({ id }) => !!id), map(({ id }) => id)));
683
677
  }
684
678
  }
685
- function randomUint32() {
686
- if (typeof globalThis.crypto === 'undefined') {
687
- return Math.floor(Math.random() * 0x100000000);
688
- }
689
- const array = new Uint32Array(1);
690
- globalThis.crypto.getRandomValues(array);
691
- return array[0];
692
- }
693
679
  //# sourceMappingURL=ShareClass.js.map