@centrifuge/sdk 0.0.0-alpha.25 → 0.0.0-alpha.27
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 +1 -1
- package/dist/Centrifuge.d.ts +0 -162
- package/dist/Centrifuge.d.ts.map +1 -1
- package/dist/Centrifuge.js +95 -200
- package/dist/Centrifuge.js.map +1 -1
- package/dist/Centrifuge.test.js +14 -14
- package/dist/Centrifuge.test.js.map +1 -1
- package/dist/abi/BalanceSheet.abi.d.ts +1 -1
- package/dist/abi/BalanceSheet.abi.js +6 -6
- package/dist/abi/BalanceSheet.abi.js.map +1 -1
- package/dist/abi/ERC6909.abi.d.ts +3 -0
- package/dist/abi/ERC6909.abi.d.ts.map +1 -0
- package/dist/abi/ERC6909.abi.js +19 -0
- package/dist/abi/ERC6909.abi.js.map +1 -0
- package/dist/abi/index.d.ts +229 -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/config/protocol.js +1 -1
- package/dist/entities/BalanceSheet.d.ts +6 -1
- package/dist/entities/BalanceSheet.d.ts.map +1 -1
- package/dist/entities/BalanceSheet.js +78 -2
- package/dist/entities/BalanceSheet.js.map +1 -1
- package/dist/entities/BalanceSheet.test.js +19 -2
- package/dist/entities/BalanceSheet.test.js.map +1 -1
- package/dist/entities/Pool.d.ts +12 -0
- package/dist/entities/Pool.d.ts.map +1 -1
- package/dist/entities/Pool.js +20 -23
- package/dist/entities/Pool.js.map +1 -1
- package/dist/entities/Pool.test.js +1 -1
- package/dist/entities/Pool.test.js.map +1 -1
- package/dist/entities/PoolNetwork.d.ts +2 -0
- package/dist/entities/PoolNetwork.d.ts.map +1 -1
- package/dist/entities/PoolNetwork.js +15 -4
- package/dist/entities/PoolNetwork.js.map +1 -1
- package/dist/entities/PoolNetwork.test.js +1 -1
- package/dist/entities/PoolNetwork.test.js.map +1 -1
- package/dist/entities/ShareClass.d.ts +27 -24
- package/dist/entities/ShareClass.d.ts.map +1 -1
- package/dist/entities/ShareClass.js +105 -63
- package/dist/entities/ShareClass.js.map +1 -1
- package/dist/entities/ShareClass.test.js +9 -8
- package/dist/entities/ShareClass.test.js.map +1 -1
- package/dist/entities/Vault.d.ts.map +1 -1
- package/dist/entities/Vault.js +5 -23
- package/dist/entities/Vault.js.map +1 -1
- package/dist/tests/setup.js +2 -2
- package/dist/tests/setup.js.map +1 -1
- package/dist/types/index.d.ts +4 -6
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/abi/index.d.ts
CHANGED
|
@@ -3107,6 +3107,98 @@ export declare const ABI: {
|
|
|
3107
3107
|
readonly type: "address";
|
|
3108
3108
|
}];
|
|
3109
3109
|
}];
|
|
3110
|
+
ERC6909: readonly [{
|
|
3111
|
+
readonly name: "allowance";
|
|
3112
|
+
readonly type: "function";
|
|
3113
|
+
readonly stateMutability: "view";
|
|
3114
|
+
readonly inputs: readonly [{
|
|
3115
|
+
readonly type: "address";
|
|
3116
|
+
readonly name: "owner";
|
|
3117
|
+
}, {
|
|
3118
|
+
readonly type: "address";
|
|
3119
|
+
readonly name: "spender";
|
|
3120
|
+
}, {
|
|
3121
|
+
readonly type: "uint256";
|
|
3122
|
+
readonly name: "tokenId";
|
|
3123
|
+
}];
|
|
3124
|
+
readonly outputs: readonly [{
|
|
3125
|
+
readonly type: "uint256";
|
|
3126
|
+
readonly name: "amount";
|
|
3127
|
+
}];
|
|
3128
|
+
}, {
|
|
3129
|
+
readonly name: "approve";
|
|
3130
|
+
readonly type: "function";
|
|
3131
|
+
readonly stateMutability: "nonpayable";
|
|
3132
|
+
readonly inputs: readonly [{
|
|
3133
|
+
readonly type: "address";
|
|
3134
|
+
readonly name: "spender";
|
|
3135
|
+
}, {
|
|
3136
|
+
readonly type: "uint256";
|
|
3137
|
+
readonly name: "tokenId";
|
|
3138
|
+
}, {
|
|
3139
|
+
readonly type: "uint256";
|
|
3140
|
+
readonly name: "amount";
|
|
3141
|
+
}];
|
|
3142
|
+
readonly outputs: readonly [{
|
|
3143
|
+
readonly type: "bool";
|
|
3144
|
+
}];
|
|
3145
|
+
}, {
|
|
3146
|
+
readonly name: "balanceOf";
|
|
3147
|
+
readonly type: "function";
|
|
3148
|
+
readonly stateMutability: "view";
|
|
3149
|
+
readonly inputs: readonly [{
|
|
3150
|
+
readonly type: "address";
|
|
3151
|
+
readonly name: "owner";
|
|
3152
|
+
}, {
|
|
3153
|
+
readonly type: "uint256";
|
|
3154
|
+
readonly name: "tokenId";
|
|
3155
|
+
}];
|
|
3156
|
+
readonly outputs: readonly [{
|
|
3157
|
+
readonly type: "uint256";
|
|
3158
|
+
readonly name: "amount";
|
|
3159
|
+
}];
|
|
3160
|
+
}, {
|
|
3161
|
+
readonly name: "Approval";
|
|
3162
|
+
readonly type: "event";
|
|
3163
|
+
readonly inputs: readonly [{
|
|
3164
|
+
readonly type: "address";
|
|
3165
|
+
readonly name: "owner";
|
|
3166
|
+
readonly indexed: true;
|
|
3167
|
+
}, {
|
|
3168
|
+
readonly type: "address";
|
|
3169
|
+
readonly name: "spender";
|
|
3170
|
+
readonly indexed: true;
|
|
3171
|
+
}, {
|
|
3172
|
+
readonly type: "uint256";
|
|
3173
|
+
readonly name: "tokenId";
|
|
3174
|
+
readonly indexed: true;
|
|
3175
|
+
}, {
|
|
3176
|
+
readonly type: "uint256";
|
|
3177
|
+
readonly name: "amount";
|
|
3178
|
+
}];
|
|
3179
|
+
}, {
|
|
3180
|
+
readonly name: "Transfer";
|
|
3181
|
+
readonly type: "event";
|
|
3182
|
+
readonly inputs: readonly [{
|
|
3183
|
+
readonly type: "address";
|
|
3184
|
+
readonly name: "caller";
|
|
3185
|
+
}, {
|
|
3186
|
+
readonly type: "address";
|
|
3187
|
+
readonly name: "from";
|
|
3188
|
+
readonly indexed: true;
|
|
3189
|
+
}, {
|
|
3190
|
+
readonly type: "address";
|
|
3191
|
+
readonly name: "to";
|
|
3192
|
+
readonly indexed: true;
|
|
3193
|
+
}, {
|
|
3194
|
+
readonly type: "uint256";
|
|
3195
|
+
readonly name: "tokenId";
|
|
3196
|
+
readonly indexed: true;
|
|
3197
|
+
}, {
|
|
3198
|
+
readonly type: "uint256";
|
|
3199
|
+
readonly name: "amount";
|
|
3200
|
+
}];
|
|
3201
|
+
}];
|
|
3110
3202
|
RestrictionManager: readonly [{
|
|
3111
3203
|
readonly name: "UpdateMember";
|
|
3112
3204
|
readonly type: "event";
|
|
@@ -8230,6 +8322,47 @@ export declare const ABI: {
|
|
|
8230
8322
|
}];
|
|
8231
8323
|
}];
|
|
8232
8324
|
BalanceSheet: readonly [{
|
|
8325
|
+
readonly name: "availableBalanceOf";
|
|
8326
|
+
readonly type: "function";
|
|
8327
|
+
readonly stateMutability: "view";
|
|
8328
|
+
readonly inputs: readonly [{
|
|
8329
|
+
readonly type: "uint64";
|
|
8330
|
+
readonly name: "poolId";
|
|
8331
|
+
}, {
|
|
8332
|
+
readonly type: "bytes16";
|
|
8333
|
+
readonly name: "scId";
|
|
8334
|
+
}, {
|
|
8335
|
+
readonly type: "address";
|
|
8336
|
+
readonly name: "asset";
|
|
8337
|
+
}, {
|
|
8338
|
+
readonly type: "uint256";
|
|
8339
|
+
readonly name: "tokenId";
|
|
8340
|
+
}];
|
|
8341
|
+
readonly outputs: readonly [{
|
|
8342
|
+
readonly type: "uint128";
|
|
8343
|
+
}];
|
|
8344
|
+
}, {
|
|
8345
|
+
readonly name: "deposit";
|
|
8346
|
+
readonly type: "function";
|
|
8347
|
+
readonly stateMutability: "nonpayable";
|
|
8348
|
+
readonly inputs: readonly [{
|
|
8349
|
+
readonly type: "uint64";
|
|
8350
|
+
readonly name: "poolId";
|
|
8351
|
+
}, {
|
|
8352
|
+
readonly type: "bytes16";
|
|
8353
|
+
readonly name: "scId";
|
|
8354
|
+
}, {
|
|
8355
|
+
readonly type: "address";
|
|
8356
|
+
readonly name: "asset";
|
|
8357
|
+
}, {
|
|
8358
|
+
readonly type: "uint256";
|
|
8359
|
+
readonly name: "tokenId";
|
|
8360
|
+
}, {
|
|
8361
|
+
readonly type: "uint128";
|
|
8362
|
+
readonly name: "amount";
|
|
8363
|
+
}];
|
|
8364
|
+
readonly outputs: readonly [];
|
|
8365
|
+
}, {
|
|
8233
8366
|
readonly name: "manager";
|
|
8234
8367
|
readonly type: "function";
|
|
8235
8368
|
readonly stateMutability: "view";
|
|
@@ -8241,6 +8374,102 @@ export declare const ABI: {
|
|
|
8241
8374
|
readonly outputs: readonly [{
|
|
8242
8375
|
readonly type: "bool";
|
|
8243
8376
|
}];
|
|
8377
|
+
}, {
|
|
8378
|
+
readonly name: "withdraw";
|
|
8379
|
+
readonly type: "function";
|
|
8380
|
+
readonly stateMutability: "nonpayable";
|
|
8381
|
+
readonly inputs: readonly [{
|
|
8382
|
+
readonly type: "uint64";
|
|
8383
|
+
readonly name: "poolId";
|
|
8384
|
+
}, {
|
|
8385
|
+
readonly type: "bytes16";
|
|
8386
|
+
readonly name: "scId";
|
|
8387
|
+
}, {
|
|
8388
|
+
readonly type: "address";
|
|
8389
|
+
readonly name: "asset";
|
|
8390
|
+
}, {
|
|
8391
|
+
readonly type: "uint256";
|
|
8392
|
+
readonly name: "tokenId";
|
|
8393
|
+
}, {
|
|
8394
|
+
readonly type: "address";
|
|
8395
|
+
readonly name: "receiver";
|
|
8396
|
+
}, {
|
|
8397
|
+
readonly type: "uint128";
|
|
8398
|
+
readonly name: "amount";
|
|
8399
|
+
}];
|
|
8400
|
+
readonly outputs: readonly [];
|
|
8401
|
+
}, {
|
|
8402
|
+
readonly name: "Deposit";
|
|
8403
|
+
readonly type: "event";
|
|
8404
|
+
readonly inputs: readonly [{
|
|
8405
|
+
readonly type: "uint64";
|
|
8406
|
+
readonly name: "poolId";
|
|
8407
|
+
readonly indexed: true;
|
|
8408
|
+
}, {
|
|
8409
|
+
readonly type: "bytes16";
|
|
8410
|
+
readonly name: "scId";
|
|
8411
|
+
readonly indexed: true;
|
|
8412
|
+
}, {
|
|
8413
|
+
readonly type: "address";
|
|
8414
|
+
readonly name: "asset";
|
|
8415
|
+
}, {
|
|
8416
|
+
readonly type: "uint256";
|
|
8417
|
+
readonly name: "tokenId";
|
|
8418
|
+
}, {
|
|
8419
|
+
readonly type: "uint128";
|
|
8420
|
+
readonly name: "amount";
|
|
8421
|
+
}];
|
|
8422
|
+
}, {
|
|
8423
|
+
readonly name: "NoteDeposit";
|
|
8424
|
+
readonly type: "event";
|
|
8425
|
+
readonly inputs: readonly [{
|
|
8426
|
+
readonly type: "uint64";
|
|
8427
|
+
readonly name: "poolId";
|
|
8428
|
+
readonly indexed: true;
|
|
8429
|
+
}, {
|
|
8430
|
+
readonly type: "bytes16";
|
|
8431
|
+
readonly name: "scId";
|
|
8432
|
+
readonly indexed: true;
|
|
8433
|
+
}, {
|
|
8434
|
+
readonly type: "address";
|
|
8435
|
+
readonly name: "asset";
|
|
8436
|
+
}, {
|
|
8437
|
+
readonly type: "uint256";
|
|
8438
|
+
readonly name: "tokenId";
|
|
8439
|
+
}, {
|
|
8440
|
+
readonly type: "uint128";
|
|
8441
|
+
readonly name: "amount";
|
|
8442
|
+
}, {
|
|
8443
|
+
readonly type: "uint128";
|
|
8444
|
+
readonly name: "pricePoolPerAsset";
|
|
8445
|
+
}];
|
|
8446
|
+
}, {
|
|
8447
|
+
readonly name: "Withdraw";
|
|
8448
|
+
readonly type: "event";
|
|
8449
|
+
readonly inputs: readonly [{
|
|
8450
|
+
readonly type: "uint64";
|
|
8451
|
+
readonly name: "poolId";
|
|
8452
|
+
readonly indexed: true;
|
|
8453
|
+
}, {
|
|
8454
|
+
readonly type: "bytes16";
|
|
8455
|
+
readonly name: "scId";
|
|
8456
|
+
readonly indexed: true;
|
|
8457
|
+
}, {
|
|
8458
|
+
readonly type: "address";
|
|
8459
|
+
readonly name: "asset";
|
|
8460
|
+
}, {
|
|
8461
|
+
readonly type: "uint256";
|
|
8462
|
+
readonly name: "tokenId";
|
|
8463
|
+
}, {
|
|
8464
|
+
readonly type: "address";
|
|
8465
|
+
readonly name: "receiver";
|
|
8466
|
+
}, {
|
|
8467
|
+
readonly type: "uint128";
|
|
8468
|
+
readonly name: "amount";
|
|
8469
|
+
}, {
|
|
8470
|
+
readonly type: "uint128";
|
|
8471
|
+
readonly name: "pricePoolPerAsset";
|
|
8472
|
+
}];
|
|
8244
8473
|
}];
|
|
8245
8474
|
};
|
|
8246
8475
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/abi/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/abi/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/abi/index.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkBf,CAAA"}
|
package/dist/abi/index.js
CHANGED
|
@@ -15,12 +15,14 @@ import SpokeAbi from './Spoke.abi.js';
|
|
|
15
15
|
import SyncRequestsAbi from './SyncRequestManager.abi.js';
|
|
16
16
|
import ValuationAbi from './Valuation.abi.js';
|
|
17
17
|
import VaultRouterAbi from './VaultRouter.abi.js';
|
|
18
|
+
import ERC6909Abi from './ERC6909.abi.js';
|
|
18
19
|
export const ABI = {
|
|
19
20
|
Hub: parseAbi(HubAbi),
|
|
20
21
|
ShareClassManager: parseAbi(ShareClassManagerAbi),
|
|
21
22
|
HubRegistry: parseAbi(HubRegistryAbi),
|
|
22
23
|
MessageDispatcher: parseAbi(MessageDispatcherAbi),
|
|
23
24
|
Currency: parseAbi(CurrencyAbi),
|
|
25
|
+
ERC6909: parseAbi(ERC6909Abi),
|
|
24
26
|
RestrictionManager: parseAbi(RestrictionManagerAbi),
|
|
25
27
|
AsyncVault: parseAbi(AsyncVaultAbit),
|
|
26
28
|
Spoke: parseAbi(SpokeAbi),
|
package/dist/abi/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/abi/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,aAAa,MAAM,qBAAqB,CAAA;AAC/C,OAAO,gBAAgB,MAAM,8BAA8B,CAAA;AAC3D,OAAO,cAAc,MAAM,qBAAqB,CAAA;AAChD,OAAO,eAAe,MAAM,uBAAuB,CAAA;AACnD,OAAO,WAAW,MAAM,mBAAmB,CAAA;AAC3C,OAAO,WAAW,MAAM,mBAAmB,CAAA;AAC3C,OAAO,MAAM,MAAM,cAAc,CAAA;AACjC,OAAO,cAAc,MAAM,sBAAsB,CAAA;AACjD,OAAO,oBAAoB,MAAM,4BAA4B,CAAA;AAC7D,OAAO,eAAe,MAAM,uBAAuB,CAAA;AACnD,OAAO,qBAAqB,MAAM,6BAA6B,CAAA;AAC/D,OAAO,oBAAoB,MAAM,4BAA4B,CAAA;AAC7D,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AACrC,OAAO,eAAe,MAAM,6BAA6B,CAAA;AACzD,OAAO,YAAY,MAAM,oBAAoB,CAAA;AAC7C,OAAO,cAAc,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/abi/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,aAAa,MAAM,qBAAqB,CAAA;AAC/C,OAAO,gBAAgB,MAAM,8BAA8B,CAAA;AAC3D,OAAO,cAAc,MAAM,qBAAqB,CAAA;AAChD,OAAO,eAAe,MAAM,uBAAuB,CAAA;AACnD,OAAO,WAAW,MAAM,mBAAmB,CAAA;AAC3C,OAAO,WAAW,MAAM,mBAAmB,CAAA;AAC3C,OAAO,MAAM,MAAM,cAAc,CAAA;AACjC,OAAO,cAAc,MAAM,sBAAsB,CAAA;AACjD,OAAO,oBAAoB,MAAM,4BAA4B,CAAA;AAC7D,OAAO,eAAe,MAAM,uBAAuB,CAAA;AACnD,OAAO,qBAAqB,MAAM,6BAA6B,CAAA;AAC/D,OAAO,oBAAoB,MAAM,4BAA4B,CAAA;AAC7D,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AACrC,OAAO,eAAe,MAAM,6BAA6B,CAAA;AACzD,OAAO,YAAY,MAAM,oBAAoB,CAAA;AAC7C,OAAO,cAAc,MAAM,sBAAsB,CAAA;AACjD,OAAO,UAAU,MAAM,kBAAkB,CAAA;AAEzC,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC;IACrB,iBAAiB,EAAE,QAAQ,CAAC,oBAAoB,CAAC;IACjD,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC;IACrC,iBAAiB,EAAE,QAAQ,CAAC,oBAAoB,CAAC;IACjD,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC;IAC/B,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC;IAC7B,kBAAkB,EAAE,QAAQ,CAAC,qBAAqB,CAAC;IACnD,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC;IACpC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACzB,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC;IACrC,UAAU,EAAE,QAAQ,CAAC,aAAa,CAAC;IACnC,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC;IAC/B,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC;IACjC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC;IACvC,aAAa,EAAE,QAAQ,CAAC,gBAAgB,CAAC;IACzC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC;IACvC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC;CACxC,CAAA"}
|
package/dist/config/protocol.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { arbitrumSepolia, baseSepolia, sepolia } from 'viem/chains';
|
|
2
2
|
export const currencies = {
|
|
3
3
|
[sepolia.id]: ['0x3aaaa86458d576BafCB1B7eD290434F0696dA65c'],
|
|
4
|
-
[baseSepolia.id]: ['
|
|
4
|
+
[baseSepolia.id]: ['0x5da2060c5418223e7ef7bed788d9d3ea61f68034'],
|
|
5
5
|
[arbitrumSepolia.id]: ['0x19cc063f962B2769012cA32B2A9027b5c76dCFf3'],
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=protocol.js.map
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import type { HexString } from '../types/index.js';
|
|
2
|
+
import { Balance } from '../utils/BigInt.js';
|
|
3
|
+
import { AssetId } from '../utils/types.js';
|
|
1
4
|
import { Entity } from './Entity.js';
|
|
2
5
|
import type { Pool } from './Pool.js';
|
|
3
6
|
import { PoolNetwork } from './PoolNetwork.js';
|
|
@@ -12,12 +15,14 @@ export declare class BalanceSheet extends Entity {
|
|
|
12
15
|
pool: Pool;
|
|
13
16
|
chainId: number;
|
|
14
17
|
balances(): import("../index.js").Query<{
|
|
15
|
-
amount:
|
|
18
|
+
amount: Balance;
|
|
16
19
|
id: string;
|
|
17
20
|
decimals: number;
|
|
18
21
|
assetTokenId: string | null;
|
|
19
22
|
address: `0x${string}`;
|
|
20
23
|
}[]>;
|
|
24
|
+
deposit(assetId: AssetId, amount: Balance): import("../index.js").Transaction;
|
|
25
|
+
withdraw(assetId: AssetId, to: HexString, amount: Balance): import("../index.js").Transaction;
|
|
21
26
|
_assets(): import("../index.js").Query<{
|
|
22
27
|
id: string;
|
|
23
28
|
decimals: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BalanceSheet.d.ts","sourceRoot":"","sources":["../../src/entities/BalanceSheet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BalanceSheet.d.ts","sourceRoot":"","sources":["../../src/entities/BalanceSheet.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAG5C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C;;;GAGG;AACH,qBAAa,YAAa,SAAQ,MAAM;IAM7B,OAAO,EAAE,WAAW;IACpB,UAAU,EAAE,UAAU;IAN/B,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IAYf,QAAQ;;;;;;;IA2CR,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;IAqDzC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO;IAgCzD,OAAO;;;;;;CAgDR"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { combineLatest, defer, switchMap } from 'rxjs';
|
|
2
|
-
import { getContract } from 'viem';
|
|
2
|
+
import { encodeFunctionData, getContract } from 'viem';
|
|
3
3
|
import { ABI } from '../abi/index.js';
|
|
4
|
+
import { Balance } from '../utils/BigInt.js';
|
|
4
5
|
import { repeatOnEvents } from '../utils/rx.js';
|
|
6
|
+
import { doTransaction, wrapTransaction } from '../utils/transaction.js';
|
|
5
7
|
import { Entity } from './Entity.js';
|
|
6
8
|
/**
|
|
7
9
|
* Query and interact with the balanceSheet, which is the main entry point for withdrawing and depositing funds.
|
|
@@ -32,7 +34,7 @@ export class BalanceSheet extends Entity {
|
|
|
32
34
|
])));
|
|
33
35
|
return assets.map((asset, i) => ({
|
|
34
36
|
...asset,
|
|
35
|
-
amount: amounts[i],
|
|
37
|
+
amount: new Balance(amounts[i], asset.decimals),
|
|
36
38
|
}));
|
|
37
39
|
}).pipe(repeatOnEvents(this._root, {
|
|
38
40
|
address: addresses.balanceSheet,
|
|
@@ -45,6 +47,80 @@ export class BalanceSheet extends Entity {
|
|
|
45
47
|
},
|
|
46
48
|
}, this.chainId)))));
|
|
47
49
|
}
|
|
50
|
+
deposit(assetId, amount) {
|
|
51
|
+
const self = this;
|
|
52
|
+
return this._transact(async function* (ctx) {
|
|
53
|
+
const client = self._root.getClient(self.chainId);
|
|
54
|
+
const [{ balanceSheet, spoke }, isBalanceSheetManager] = await Promise.all([
|
|
55
|
+
self._root._protocolAddresses(self.chainId),
|
|
56
|
+
self.pool.isBalanceSheetManager(self.chainId, ctx.signingAddress),
|
|
57
|
+
]);
|
|
58
|
+
if (!isBalanceSheetManager) {
|
|
59
|
+
throw new Error('Signing address is not a BalanceSheetManager');
|
|
60
|
+
}
|
|
61
|
+
const [assetAddress, tokenId] = await client.readContract({
|
|
62
|
+
address: spoke,
|
|
63
|
+
abi: ABI.Spoke,
|
|
64
|
+
functionName: 'idToAsset',
|
|
65
|
+
args: [assetId.raw],
|
|
66
|
+
});
|
|
67
|
+
const allowance = await self._root._allowance(ctx.signingAddress, spoke, self.chainId, assetAddress, tokenId);
|
|
68
|
+
console.log('allowance', allowance);
|
|
69
|
+
if (allowance < amount.toBigInt()) {
|
|
70
|
+
yield* doTransaction('Approve', ctx.publicClient, () => {
|
|
71
|
+
if (tokenId) {
|
|
72
|
+
return ctx.walletClient.writeContract({
|
|
73
|
+
address: assetAddress,
|
|
74
|
+
abi: ABI.ERC6909,
|
|
75
|
+
functionName: 'approve',
|
|
76
|
+
args: [balanceSheet, tokenId, amount.toBigInt()],
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
return ctx.walletClient.writeContract({
|
|
80
|
+
address: assetAddress,
|
|
81
|
+
abi: ABI.Currency,
|
|
82
|
+
functionName: 'approve',
|
|
83
|
+
args: [balanceSheet, amount.toBigInt()],
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
yield* doTransaction('Deposit', ctx.publicClient, () => {
|
|
88
|
+
return ctx.walletClient.writeContract({
|
|
89
|
+
address: balanceSheet,
|
|
90
|
+
abi: ABI.BalanceSheet,
|
|
91
|
+
functionName: 'deposit',
|
|
92
|
+
args: [self.pool.id.raw, self.shareClass.id.raw, assetAddress, tokenId, amount.toBigInt()],
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
}, this.chainId);
|
|
96
|
+
}
|
|
97
|
+
withdraw(assetId, to, amount) {
|
|
98
|
+
const self = this;
|
|
99
|
+
return this._transact(async function* (ctx) {
|
|
100
|
+
const [{ balanceSheet, spoke }, isBalanceSheetManager] = await Promise.all([
|
|
101
|
+
self._root._protocolAddresses(self.chainId),
|
|
102
|
+
self.pool.isBalanceSheetManager(self.chainId, ctx.signingAddress),
|
|
103
|
+
]);
|
|
104
|
+
if (!isBalanceSheetManager) {
|
|
105
|
+
throw new Error('Signing address is not a BalanceSheetManager');
|
|
106
|
+
}
|
|
107
|
+
const [assetAddress, tokenId] = await self._root.getClient(self.chainId).readContract({
|
|
108
|
+
address: spoke,
|
|
109
|
+
abi: ABI.Spoke,
|
|
110
|
+
functionName: 'idToAsset',
|
|
111
|
+
args: [assetId.raw],
|
|
112
|
+
});
|
|
113
|
+
const tx = encodeFunctionData({
|
|
114
|
+
abi: ABI.BalanceSheet,
|
|
115
|
+
functionName: 'withdraw',
|
|
116
|
+
args: [self.pool.id.raw, self.shareClass.id.raw, assetAddress, tokenId, to, amount.toBigInt()],
|
|
117
|
+
});
|
|
118
|
+
yield* wrapTransaction('Withdraw', ctx, {
|
|
119
|
+
contract: balanceSheet,
|
|
120
|
+
data: tx,
|
|
121
|
+
});
|
|
122
|
+
}, this.chainId);
|
|
123
|
+
}
|
|
48
124
|
_assets() {
|
|
49
125
|
return this._query(null, () => this._root.id(this.chainId).pipe(switchMap((id) => this._root._queryIndexer(`query ($scId: String!, $id: String!) {
|
|
50
126
|
holdings(where: { tokenId: $scId, centrifugeId: $id }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BalanceSheet.js","sourceRoot":"","sources":["../../src/entities/BalanceSheet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"BalanceSheet.js","sourceRoot":"","sources":["../../src/entities/BalanceSheet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { expect } from 'chai';
|
|
2
|
+
import { firstValueFrom, toArray } from 'rxjs';
|
|
2
3
|
import { context } from '../tests/setup.js';
|
|
3
|
-
import {
|
|
4
|
+
import { Balance } from '../utils/BigInt.js';
|
|
5
|
+
import { AssetId, PoolId, ShareClassId } from '../utils/types.js';
|
|
4
6
|
import { BalanceSheet } from './BalanceSheet.js';
|
|
5
7
|
import { Pool } from './Pool.js';
|
|
6
8
|
import { PoolNetwork } from './PoolNetwork.js';
|
|
@@ -9,6 +11,7 @@ const poolId = PoolId.from(1, 1);
|
|
|
9
11
|
const scId = ShareClassId.from(poolId, 1);
|
|
10
12
|
const chainId = 11155111;
|
|
11
13
|
const poolManager = '0x423420Ae467df6e90291fd0252c0A8a637C1e03f';
|
|
14
|
+
const assetId = AssetId.from(1, 2);
|
|
12
15
|
describe('BalanceSheet', () => {
|
|
13
16
|
let balanceSheet;
|
|
14
17
|
beforeEach(() => {
|
|
@@ -22,7 +25,21 @@ describe('BalanceSheet', () => {
|
|
|
22
25
|
const balances = await balanceSheet.balances();
|
|
23
26
|
expect(balances).to.be.an('array');
|
|
24
27
|
expect(balances).to.have.length.greaterThan(0);
|
|
25
|
-
|
|
28
|
+
expect(balances[0]?.amount).to.be.instanceOf(Balance);
|
|
29
|
+
});
|
|
30
|
+
it('withdraws and deposits funds', async () => {
|
|
31
|
+
context.tenderlyFork.impersonateAddress = poolManager;
|
|
32
|
+
context.centrifuge.setSigner(context.tenderlyFork.signer);
|
|
33
|
+
const amount = Balance.fromFloat(1, 18);
|
|
34
|
+
await balanceSheet.shareClass.setMaxAssetPriceAge(assetId, 9999999999999);
|
|
35
|
+
await balanceSheet.shareClass.notifyAssetPrice(assetId);
|
|
36
|
+
await balanceSheet.pool.updateBalanceSheetManagers([{ chainId, address: poolManager, canManage: true }]);
|
|
37
|
+
await balanceSheet.withdraw(assetId, poolManager, amount);
|
|
38
|
+
const result = await firstValueFrom(balanceSheet.deposit(assetId, amount).pipe(toArray()));
|
|
39
|
+
expect(result[2]?.type).to.equal('TransactionConfirmed');
|
|
40
|
+
expect(result[2].title).to.equal('Approve');
|
|
41
|
+
expect(result[5]?.type).to.equal('TransactionConfirmed');
|
|
42
|
+
expect(result[5].title).to.equal('Deposit');
|
|
26
43
|
});
|
|
27
44
|
});
|
|
28
45
|
//# sourceMappingURL=BalanceSheet.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BalanceSheet.test.js","sourceRoot":"","sources":["../../src/entities/BalanceSheet.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"BalanceSheet.test.js","sourceRoot":"","sources":["../../src/entities/BalanceSheet.test.ts"],"names":[],"mappings":"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"}
|
package/dist/entities/Pool.d.ts
CHANGED
|
@@ -31,6 +31,12 @@ export declare class Pool extends Entity {
|
|
|
31
31
|
totalIssuance: import("../index.js").Balance;
|
|
32
32
|
pricePerShare: import("../index.js").Price;
|
|
33
33
|
nav: import("../index.js").Balance;
|
|
34
|
+
navPerNetwork: {
|
|
35
|
+
chainId: number;
|
|
36
|
+
totalIssuance: import("../index.js").Balance;
|
|
37
|
+
pricePerShare: import("../index.js").Price;
|
|
38
|
+
nav: import("../index.js").Balance;
|
|
39
|
+
}[];
|
|
34
40
|
};
|
|
35
41
|
}[];
|
|
36
42
|
}>;
|
|
@@ -44,6 +50,12 @@ export declare class Pool extends Entity {
|
|
|
44
50
|
totalIssuance: import("../index.js").Balance;
|
|
45
51
|
pricePerShare: import("../index.js").Price;
|
|
46
52
|
nav: import("../index.js").Balance;
|
|
53
|
+
navPerNetwork: {
|
|
54
|
+
chainId: number;
|
|
55
|
+
totalIssuance: import("../index.js").Balance;
|
|
56
|
+
pricePerShare: import("../index.js").Price;
|
|
57
|
+
nav: import("../index.js").Balance;
|
|
58
|
+
}[];
|
|
47
59
|
}[]>;
|
|
48
60
|
/**
|
|
49
61
|
* Check if an address is a manager of the pool.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pool.d.ts","sourceRoot":"","sources":["../../src/entities/Pool.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAKvD,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;AAC5C,qBAAa,IAAK,SAAQ,MAAM;IAOrB,OAAO,EAAE,MAAM;IANxB,EAAE,EAAE,MAAM,CAAA;IAYV,IAAI,OAAO,YAEV;IAED;;;OAGG;IACH,OAAO
|
|
1
|
+
{"version":3,"file":"Pool.d.ts","sourceRoot":"","sources":["../../src/entities/Pool.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAKvD,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;AAC5C,qBAAa,IAAK,SAAQ,MAAM;IAOrB,OAAO,EAAE,MAAM;IANxB,EAAE,EAAE,MAAM,CAAA;IAYV,IAAI,OAAO,YAEV;IAED;;;OAGG;IACH,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkBP,QAAQ;IAuCR,YAAY;IAMZ,UAAU,CAAC,IAAI,EAAE,YAAY;IAY7B,mBAAmB;;;;;;;;;;;;;;IAUnB;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,SAAS;IAehC;;;;OAIG;IACH,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS;IAezD;;OAEG;IACH,QAAQ;IAUR;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM;IAYvB;;OAEG;IACH,cAAc;IAqBd,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS;IAI3D;;OAEG;IACH,QAAQ;;;;;;IAoCR,cAAc,CAAC,QAAQ,EAAE,YAAY;IAiBrC;;OAEG;IACH,kBAAkB,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,SAAS,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,EAAE;IA2BxE;;OAEG;IACH,0BAA0B,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,SAAS,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,EAAE;IAyBjG,cAAc,CAAC,QAAQ,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,EAAE;CAuCzE"}
|
package/dist/entities/Pool.js
CHANGED
|
@@ -4,7 +4,7 @@ import { ABI } from '../abi/index.js';
|
|
|
4
4
|
import { NATIONAL_CURRENCY_METADATA } from '../utils/currencies.js';
|
|
5
5
|
import { addressToBytes32 } from '../utils/index.js';
|
|
6
6
|
import { repeatOnEvents } from '../utils/rx.js';
|
|
7
|
-
import {
|
|
7
|
+
import { wrapTransaction } from '../utils/transaction.js';
|
|
8
8
|
import { AssetId, PoolId, ShareClassId } from '../utils/types.js';
|
|
9
9
|
import { Entity } from './Entity.js';
|
|
10
10
|
import { PoolNetwork } from './PoolNetwork.js';
|
|
@@ -188,16 +188,17 @@ export class Pool extends Entity {
|
|
|
188
188
|
}
|
|
189
189
|
updateMetadata(metadata) {
|
|
190
190
|
const self = this;
|
|
191
|
-
return this._transact(async function* (
|
|
191
|
+
return this._transact(async function* (ctx) {
|
|
192
192
|
const cid = await self._root.config.pinJson(metadata);
|
|
193
193
|
const { hub } = await self._root._protocolAddresses(self.chainId);
|
|
194
|
-
yield*
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
194
|
+
yield* wrapTransaction('Update metadata', ctx, {
|
|
195
|
+
contract: hub,
|
|
196
|
+
data: encodeFunctionData({
|
|
197
|
+
abi: ABI.Hub,
|
|
198
|
+
functionName: 'setPoolMetadata',
|
|
199
|
+
args: [self.id.raw, toHex(cid)],
|
|
200
|
+
}),
|
|
201
|
+
});
|
|
201
202
|
}, this.chainId);
|
|
202
203
|
}
|
|
203
204
|
/**
|
|
@@ -207,6 +208,12 @@ export class Pool extends Entity {
|
|
|
207
208
|
const self = this;
|
|
208
209
|
return this._transact(async function* (ctx) {
|
|
209
210
|
const { hub } = await self._root._protocolAddresses(self.chainId);
|
|
211
|
+
// Ensure that updating the signer's address is always last in the batch,
|
|
212
|
+
// to prevent removing the signer from the list of managers, before having added others,
|
|
213
|
+
// which would cause the other updates to fail.
|
|
214
|
+
const selfUpdateIndex = updates.findIndex((u) => u.address.toLowerCase() === ctx.signingAddress.toLowerCase());
|
|
215
|
+
const selfUpdate = updates.splice(selfUpdateIndex >>> 0, 1);
|
|
216
|
+
updates.push(...selfUpdate);
|
|
210
217
|
const batch = updates.map(({ address, canManage }) => encodeFunctionData({
|
|
211
218
|
abi: ABI.Hub,
|
|
212
219
|
functionName: 'updateHubManager',
|
|
@@ -244,26 +251,16 @@ export class Pool extends Entity {
|
|
|
244
251
|
}
|
|
245
252
|
createAccounts(accounts) {
|
|
246
253
|
const self = this;
|
|
247
|
-
return this._transact(async function* (
|
|
254
|
+
return this._transact(async function* (ctx) {
|
|
248
255
|
const { hub } = await self._root._protocolAddresses(self.chainId);
|
|
249
256
|
const txBatch = accounts.map(({ accountId, isDebitNormal }) => encodeFunctionData({
|
|
250
257
|
abi: ABI.Hub,
|
|
251
258
|
functionName: 'createAccount',
|
|
252
259
|
args: [self.id.raw, accountId, isDebitNormal],
|
|
253
260
|
}));
|
|
254
|
-
yield*
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
data: txBatch[0],
|
|
258
|
-
to: hub,
|
|
259
|
-
});
|
|
260
|
-
}
|
|
261
|
-
return walletClient.writeContract({
|
|
262
|
-
address: hub,
|
|
263
|
-
abi: ABI.Hub,
|
|
264
|
-
functionName: 'multicall',
|
|
265
|
-
args: [txBatch],
|
|
266
|
-
});
|
|
261
|
+
yield* wrapTransaction('Create accounts', ctx, {
|
|
262
|
+
contract: hub,
|
|
263
|
+
data: txBatch,
|
|
267
264
|
});
|
|
268
265
|
}, this.chainId);
|
|
269
266
|
}
|