hedge-web3 0.2.3 → 0.2.7
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/declarations/instructions/setVaultTypeStatus.d.ts +2 -3
- package/lib/instructions/setVaultTypeStatus.js +10 -9
- package/lib/state/VaultAccount.js +10 -6
- package/lib/utils/getLinkedListAccounts.js +3 -3
- package/package.json +1 -1
- package/src/state/VaultAccount.ts +6 -4
- package/src/utils/getLinkedListAccounts.ts +3 -3
@@ -1,5 +1,4 @@
|
|
1
1
|
import { Program, Provider } from '@project-serum/anchor';
|
2
2
|
import { PublicKey, Signer, TransactionInstruction } from '@solana/web3.js';
|
3
|
-
|
4
|
-
export declare function
|
5
|
-
export declare function setVaultTypeStatusInstruction(program: Program<Vault>, vaultSystemStatePublicKey: PublicKey, payerPublicKey: PublicKey, vaultTypeAccount: PublicKey, deprecated: boolean): Promise<TransactionInstruction>;
|
3
|
+
export declare function setVaultTypeStatus(program: Program, provider: Provider, payer: Signer, vaultTypeAccount: PublicKey, deprecated: boolean): Promise<PublicKey>;
|
4
|
+
export declare function setVaultTypeStatusInstruction(program: Program, vaultSystemStatePublicKey: PublicKey, payerPublicKey: PublicKey, vaultTypeAccount: PublicKey, deprecated: boolean): Promise<TransactionInstruction>;
|
@@ -17,21 +17,22 @@ function setVaultTypeStatus(program, provider, payer, vaultTypeAccount, deprecat
|
|
17
17
|
return __awaiter(this, void 0, void 0, function* () {
|
18
18
|
const vaultSystemStatePublicKey = yield (0, Constants_1.getVaultSystemStatePublicKey)();
|
19
19
|
const transaction = new web3_js_1.Transaction().add(yield setVaultTypeStatusInstruction(program, vaultSystemStatePublicKey, payer.publicKey, vaultTypeAccount, deprecated));
|
20
|
-
yield (0, web3_js_1.sendAndConfirmTransaction)(provider.connection, transaction, [payer]).catch(Errors_1.parseAnchorErrors);
|
20
|
+
yield (0, web3_js_1.sendAndConfirmTransaction)(provider.connection, transaction, [payer], provider === null || provider === void 0 ? void 0 : provider.opts).catch(Errors_1.parseAnchorErrors);
|
21
21
|
return vaultSystemStatePublicKey;
|
22
22
|
});
|
23
23
|
}
|
24
24
|
exports.setVaultTypeStatus = setVaultTypeStatus;
|
25
25
|
function setVaultTypeStatusInstruction(program, vaultSystemStatePublicKey, payerPublicKey, vaultTypeAccount, deprecated) {
|
26
26
|
return __awaiter(this, void 0, void 0, function* () {
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
27
|
+
const ix = program.instruction.setVaultTypeStatus(deprecated, {
|
28
|
+
accounts: {
|
29
|
+
payer: payerPublicKey,
|
30
|
+
vaultSystemState: vaultSystemStatePublicKey,
|
31
|
+
vaultType: vaultTypeAccount,
|
32
|
+
},
|
33
|
+
signers: []
|
34
|
+
});
|
35
|
+
return ix;
|
35
36
|
});
|
36
37
|
}
|
37
38
|
exports.setVaultTypeStatusInstruction = setVaultTypeStatusInstruction;
|
@@ -32,7 +32,9 @@ const borsh = __importStar(require("@project-serum/borsh"));
|
|
32
32
|
*/
|
33
33
|
class VaultAccount {
|
34
34
|
constructor(vault, publicKey) {
|
35
|
-
var _a, _b
|
35
|
+
var _a, _b;
|
36
|
+
/** The ordered number of when this vault was created. */
|
37
|
+
this.vaultNumber = 0;
|
36
38
|
/** Debt redistribution snapshot */
|
37
39
|
this.debtProductSnapshotBytes = new decimal_js_1.default(0);
|
38
40
|
/** Collateral redistribution snapshot' */
|
@@ -41,10 +43,12 @@ class VaultAccount {
|
|
41
43
|
this.vaultStatus = '';
|
42
44
|
this.publicKey = publicKey;
|
43
45
|
this.vaultOwner = vault.vaultOwner;
|
44
|
-
this.vaultNumber = (_a = vault.vaultNumber) === null || _a === void 0 ? void 0 : _a.toNumber();
|
45
46
|
this.pdaSalt = vault.pdaSalt;
|
46
|
-
this.deposited = (
|
47
|
-
this.denormalizedDebt = (
|
47
|
+
this.deposited = (_a = vault.deposited) === null || _a === void 0 ? void 0 : _a.toNumber();
|
48
|
+
this.denormalizedDebt = (_b = vault.denormalizedDebt) === null || _b === void 0 ? void 0 : _b.toNumber();
|
49
|
+
if (vault.vaultNumber) {
|
50
|
+
this.vaultNumber = vault.vaultNumber.toNumber();
|
51
|
+
}
|
48
52
|
if (vault.debtProductSnapshotBytes) {
|
49
53
|
this.debtProductSnapshotBytes = (0, HedgeDecimal_1.DecimalFromU128)(vault.debtProductSnapshotBytes.toString());
|
50
54
|
}
|
@@ -138,7 +142,7 @@ class VaultAccount {
|
|
138
142
|
if (this.nextVaultToRedeem) {
|
139
143
|
nextVault = this.nextVaultToRedeem.toString().substring(0, 6);
|
140
144
|
}
|
141
|
-
return
|
145
|
+
return `${this.publicKey.toString().substring(0, 6)}. Debt: ${this.denormalizedDebt} Collat: ${this.deposited} Ratio: ${collateralRatio} ${arrow} `;
|
142
146
|
}
|
143
147
|
/**
|
144
148
|
* Creates a VaultAccount from a slice of data
|
@@ -153,7 +157,7 @@ class VaultAccount {
|
|
153
157
|
* @returns a new VaultAccount
|
154
158
|
*/
|
155
159
|
static FromMiniSlice(data, pubkey) {
|
156
|
-
const props = [borsh.u64('
|
160
|
+
const props = [borsh.u64('deposited'), borsh.u64('denormalizedDebt')];
|
157
161
|
const miniVaultLayout = borsh.struct(props, 'minVaultLayout');
|
158
162
|
const decodedData = miniVaultLayout.decode(data);
|
159
163
|
return new VaultAccount(decodedData, pubkey);
|
@@ -157,7 +157,7 @@ function sortVaults(a, b) {
|
|
157
157
|
const aRatio = a.deposited / a.denormalizedDebt;
|
158
158
|
const bRatio = b.deposited / b.denormalizedDebt;
|
159
159
|
if (aRatio === bRatio) {
|
160
|
-
return b.
|
160
|
+
return a.publicKey.toString() > b.publicKey.toString() ? 1 : -1;
|
161
161
|
}
|
162
162
|
return aRatio - bRatio;
|
163
163
|
}
|
@@ -189,8 +189,8 @@ function getMiniVaults(program, vaultTypePublicKey) {
|
|
189
189
|
// Slice the data only to grab the 3 u64's of size 8 bytes each
|
190
190
|
dataSlice: {
|
191
191
|
// See programs/hedge-vault/src/account_data/vault.rs for struct layout
|
192
|
-
offset: 8 + 32,
|
193
|
-
length:
|
192
|
+
offset: 8 + 32 + 8,
|
193
|
+
length: 16,
|
194
194
|
},
|
195
195
|
});
|
196
196
|
return allAccounts.map((vaultData) => {
|
package/package.json
CHANGED
@@ -26,7 +26,7 @@ export class VaultAccount {
|
|
26
26
|
denormalizedDebt: number
|
27
27
|
|
28
28
|
/** The ordered number of when this vault was created. */
|
29
|
-
vaultNumber
|
29
|
+
vaultNumber = 0
|
30
30
|
|
31
31
|
/** Debt redistribution snapshot */
|
32
32
|
debtProductSnapshotBytes = new Decimal(0)
|
@@ -49,10 +49,12 @@ export class VaultAccount {
|
|
49
49
|
constructor(vault: any, publicKey: PublicKey) {
|
50
50
|
this.publicKey = publicKey
|
51
51
|
this.vaultOwner = vault.vaultOwner
|
52
|
-
this.vaultNumber = vault.vaultNumber?.toNumber()
|
53
52
|
this.pdaSalt = vault.pdaSalt
|
54
53
|
this.deposited = vault.deposited?.toNumber()
|
55
54
|
this.denormalizedDebt = vault.denormalizedDebt?.toNumber()
|
55
|
+
if (vault.vaultNumber) {
|
56
|
+
this.vaultNumber = vault.vaultNumber.toNumber()
|
57
|
+
}
|
56
58
|
if (vault.debtProductSnapshotBytes) {
|
57
59
|
this.debtProductSnapshotBytes = DecimalFromU128(vault.debtProductSnapshotBytes.toString())
|
58
60
|
}
|
@@ -163,7 +165,7 @@ export class VaultAccount {
|
|
163
165
|
nextVault = this.nextVaultToRedeem.toString().substring(0, 6)
|
164
166
|
}
|
165
167
|
|
166
|
-
return
|
168
|
+
return `${this.publicKey.toString().substring(0, 6)}. Debt: ${
|
167
169
|
this.denormalizedDebt
|
168
170
|
} Collat: ${this.deposited} Ratio: ${collateralRatio} ${arrow} `
|
169
171
|
}
|
@@ -180,7 +182,7 @@ export class VaultAccount {
|
|
180
182
|
* @returns a new VaultAccount
|
181
183
|
*/
|
182
184
|
static FromMiniSlice(data: Buffer, pubkey: PublicKey) {
|
183
|
-
const props = [borsh.u64('
|
185
|
+
const props = [borsh.u64('deposited'), borsh.u64('denormalizedDebt')]
|
184
186
|
const miniVaultLayout = borsh.struct(props, 'minVaultLayout')
|
185
187
|
const decodedData: any = miniVaultLayout.decode(data)
|
186
188
|
|
@@ -183,7 +183,7 @@ function sortVaults(a: VaultAccount, b: VaultAccount) {
|
|
183
183
|
const aRatio = a.deposited / a.denormalizedDebt
|
184
184
|
const bRatio = b.deposited / b.denormalizedDebt
|
185
185
|
if (aRatio === bRatio) {
|
186
|
-
return b.
|
186
|
+
return a.publicKey.toString() > b.publicKey.toString() ? 1 : -1
|
187
187
|
}
|
188
188
|
return aRatio - bRatio
|
189
189
|
}
|
@@ -215,8 +215,8 @@ async function getMiniVaults(program: Program<Vault>, vaultTypePublicKey: Public
|
|
215
215
|
// Slice the data only to grab the 3 u64's of size 8 bytes each
|
216
216
|
dataSlice: {
|
217
217
|
// See programs/hedge-vault/src/account_data/vault.rs for struct layout
|
218
|
-
offset: 8 + 32,
|
219
|
-
length:
|
218
|
+
offset: 8 + 32 + 8,
|
219
|
+
length: 16,
|
220
220
|
},
|
221
221
|
})
|
222
222
|
|