@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.
- package/README.md +7 -0
- package/dist/Centrifuge.d.ts +18 -9
- package/dist/Centrifuge.d.ts.map +1 -1
- package/dist/Centrifuge.js +107 -51
- package/dist/Centrifuge.js.map +1 -1
- package/dist/Centrifuge.test.js +80 -0
- package/dist/Centrifuge.test.js.map +1 -1
- package/dist/abi/BalanceSheet.abi.d.ts +3 -0
- package/dist/abi/BalanceSheet.abi.d.ts.map +1 -0
- package/dist/abi/BalanceSheet.abi.js +55 -0
- package/dist/abi/BalanceSheet.abi.js.map +1 -0
- package/dist/abi/index.d.ts +13 -0
- package/dist/abi/index.d.ts.map +1 -1
- package/dist/abi/index.js +2 -0
- package/dist/abi/index.js.map +1 -1
- package/dist/entities/Pool.d.ts +9 -5
- package/dist/entities/Pool.d.ts.map +1 -1
- package/dist/entities/Pool.js +35 -11
- package/dist/entities/Pool.js.map +1 -1
- package/dist/entities/PoolNetwork.d.ts +31 -7
- package/dist/entities/PoolNetwork.d.ts.map +1 -1
- package/dist/entities/PoolNetwork.js +176 -39
- package/dist/entities/PoolNetwork.js.map +1 -1
- package/dist/entities/PoolNetwork.test.js +32 -35
- package/dist/entities/PoolNetwork.test.js.map +1 -1
- package/dist/entities/ShareClass.d.ts +5 -5
- package/dist/entities/ShareClass.d.ts.map +1 -1
- package/dist/entities/ShareClass.js +13 -27
- package/dist/entities/ShareClass.js.map +1 -1
- package/dist/entities/ShareClass.test.js.map +1 -1
- package/dist/entities/Vault.d.ts +2 -2
- package/dist/entities/Vault.d.ts.map +1 -1
- package/dist/entities/Vault.js.map +1 -1
- package/dist/tests/mocks/mockPoolMetadata.d.ts.map +1 -1
- package/dist/tests/mocks/mockPoolMetadata.js +0 -1
- package/dist/tests/mocks/mockPoolMetadata.js.map +1 -1
- package/dist/types/poolInput.d.ts +4 -3
- package/dist/types/poolInput.d.ts.map +1 -1
- package/dist/types/poolMetadata.d.ts +8 -8
- package/dist/types/poolMetadata.d.ts.map +1 -1
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +20 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/types.d.ts +7 -1
- package/dist/utils/types.d.ts.map +1 -1
- package/dist/utils/types.js +6 -0
- package/dist/utils/types.js.map +1 -1
- 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
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
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
|
-
|
|
34
|
-
return this._query(
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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
|
-
|
|
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":"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"}
|
|
@@ -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
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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;
|
|
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:
|
|
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:
|
|
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:
|
|
112
|
-
claimRedeem(assetId: AssetId, investor:
|
|
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:
|
|
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;
|
|
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
|
-
|
|
21
|
+
const _id = id instanceof ShareClassId ? id : new ShareClassId(id);
|
|
22
|
+
super(_root, ['shareclass', _id.toString()]);
|
|
22
23
|
this.pool = pool;
|
|
23
|
-
this.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
|
-
|
|
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.
|
|
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 =
|
|
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
|