hedge-web3 0.1.41 → 0.1.44
Sign up to get free protection for your applications and to get access to all the features.
- package/declarations/Constants.d.ts +1 -1
- package/declarations/idl/vault.d.ts +154 -8
- package/declarations/index.d.ts +1 -1
- package/declarations/instructions/liquidateVault.d.ts +1 -1
- package/declarations/instructions/updateVaultType.d.ts +15 -0
- package/declarations/state/VaultAccount.d.ts +8 -6
- package/declarations/state/VaultType.d.ts +24 -0
- package/declarations/utils/Sender.d.ts +2 -0
- package/declarations/utils/sendAndConfirmWithDebug.d.ts +2 -0
- package/lib/Constants.js +1 -1
- package/lib/idl/vault.js +154 -8
- package/lib/index.js +1 -1
- package/lib/instructions/createStakingPool.js +1 -0
- package/lib/instructions/depositVault.js +7 -7
- package/lib/instructions/liquidateVault.js +5 -7
- package/lib/instructions/loanVault.js +7 -6
- package/lib/instructions/redeemVault.js +4 -5
- package/lib/instructions/refreshOraclePrice.js +2 -2
- package/lib/instructions/repayVault.js +4 -5
- package/lib/instructions/updateVaultType.js +47 -0
- package/lib/instructions/withdrawVault.js +4 -5
- package/lib/state/VaultAccount.js +9 -8
- package/lib/state/VaultType.js +32 -0
- package/lib/utils/Errors.js +1 -0
- package/lib/utils/Sender.js +32 -0
- package/lib/utils/getLinkedListAccounts.js +15 -15
- package/lib/utils/sendAndConfirmWithDebug.js +35 -0
- package/package.json +2 -2
- package/src/Constants.ts +1 -1
- package/src/idl/vault.ts +308 -16
- package/src/index.ts +1 -1
- package/src/instructions/createStakingPool.ts +1 -0
- package/src/instructions/depositVault.ts +8 -8
- package/src/instructions/liquidateVault.ts +5 -7
- package/src/instructions/loanVault.ts +11 -8
- package/src/instructions/redeemVault.ts +4 -5
- package/src/instructions/refreshOraclePrice.ts +2 -2
- package/src/instructions/repayVault.ts +4 -5
- package/src/instructions/{setVaultTypeStatus.ts → updateVaultType.ts} +39 -8
- package/src/instructions/withdrawVault.ts +4 -5
- package/src/state/VaultAccount.ts +14 -10
- package/src/utils/Errors.ts +1 -0
- package/src/utils/getLinkedListAccounts.ts +16 -16
@@ -1,5 +1,5 @@
|
|
1
1
|
import { PublicKey } from '@solana/web3.js';
|
2
|
-
export declare const HEDGE_PROGRAM_ID = "
|
2
|
+
export declare const HEDGE_PROGRAM_ID = "zooJaircVAoQ4e7EXRDocnsbB7UPYQ6J7bKyZEMh784";
|
3
3
|
export declare const HEDGE_PROGRAM_PUBLICKEY: PublicKey;
|
4
4
|
export declare const CHAINLINK_SOL_USD_ID = "FmAmfoyPXiA8Vhhe6MZTr3U6rZfEZ1ctEHay1ysqCqcf";
|
5
5
|
export declare const CHAINLINK_SOL_USD_PUBLICKEY: PublicKey;
|
@@ -1560,7 +1560,7 @@ export declare type Vault = {
|
|
1560
1560
|
];
|
1561
1561
|
},
|
1562
1562
|
{
|
1563
|
-
"name": "
|
1563
|
+
"name": "updateVaultType";
|
1564
1564
|
"accounts": [
|
1565
1565
|
{
|
1566
1566
|
"name": "payer";
|
@@ -1576,12 +1576,77 @@ export declare type Vault = {
|
|
1576
1576
|
"name": "vaultType";
|
1577
1577
|
"isMut": true;
|
1578
1578
|
"isSigner": false;
|
1579
|
+
},
|
1580
|
+
{
|
1581
|
+
"name": "oracleInfoAccount";
|
1582
|
+
"isMut": true;
|
1583
|
+
"isSigner": false;
|
1579
1584
|
}
|
1580
1585
|
];
|
1581
1586
|
"args": [
|
1582
1587
|
{
|
1583
|
-
"name": "
|
1588
|
+
"name": "config";
|
1589
|
+
"type": {
|
1590
|
+
"defined": "VaultTypeConfig";
|
1591
|
+
};
|
1592
|
+
}
|
1593
|
+
];
|
1594
|
+
},
|
1595
|
+
{
|
1596
|
+
"name": "fixVaultRedeemPointer";
|
1597
|
+
"accounts": [
|
1598
|
+
{
|
1599
|
+
"name": "payer";
|
1600
|
+
"isMut": true;
|
1601
|
+
"isSigner": true;
|
1602
|
+
},
|
1603
|
+
{
|
1604
|
+
"name": "vaultSystemState";
|
1605
|
+
"isMut": true;
|
1606
|
+
"isSigner": false;
|
1607
|
+
},
|
1608
|
+
{
|
1609
|
+
"name": "vaultAccount";
|
1610
|
+
"isMut": true;
|
1611
|
+
"isSigner": false;
|
1612
|
+
}
|
1613
|
+
];
|
1614
|
+
"args": [];
|
1615
|
+
},
|
1616
|
+
{
|
1617
|
+
"name": "adminSetRedeemPointer";
|
1618
|
+
"accounts": [
|
1619
|
+
{
|
1620
|
+
"name": "payer";
|
1621
|
+
"isMut": true;
|
1622
|
+
"isSigner": true;
|
1623
|
+
},
|
1624
|
+
{
|
1625
|
+
"name": "vaultSystemState";
|
1626
|
+
"isMut": true;
|
1627
|
+
"isSigner": false;
|
1628
|
+
},
|
1629
|
+
{
|
1630
|
+
"name": "vaultAccount";
|
1631
|
+
"isMut": true;
|
1632
|
+
"isSigner": false;
|
1633
|
+
},
|
1634
|
+
{
|
1635
|
+
"name": "vaultTypeAccount";
|
1636
|
+
"isMut": true;
|
1637
|
+
"isSigner": false;
|
1638
|
+
}
|
1639
|
+
];
|
1640
|
+
"args": [
|
1641
|
+
{
|
1642
|
+
"name": "settingHead";
|
1584
1643
|
"type": "bool";
|
1644
|
+
},
|
1645
|
+
{
|
1646
|
+
"name": "pointerToSet";
|
1647
|
+
"type": {
|
1648
|
+
"option": "publicKey";
|
1649
|
+
};
|
1585
1650
|
}
|
1586
1651
|
];
|
1587
1652
|
}
|
@@ -1779,7 +1844,7 @@ export declare type Vault = {
|
|
1779
1844
|
"kind": "struct";
|
1780
1845
|
"fields": [
|
1781
1846
|
{
|
1782
|
-
"name": "
|
1847
|
+
"name": "vaultTypeName";
|
1783
1848
|
"type": "string";
|
1784
1849
|
},
|
1785
1850
|
{
|
@@ -1793,6 +1858,10 @@ export declare type Vault = {
|
|
1793
1858
|
{
|
1794
1859
|
"name": "oracleSwitchboard";
|
1795
1860
|
"type": "publicKey";
|
1861
|
+
},
|
1862
|
+
{
|
1863
|
+
"name": "vaultType";
|
1864
|
+
"type": "publicKey";
|
1796
1865
|
}
|
1797
1866
|
];
|
1798
1867
|
};
|
@@ -1903,7 +1972,7 @@ export declare type Vault = {
|
|
1903
1972
|
"type": {
|
1904
1973
|
"array": [
|
1905
1974
|
"u8",
|
1906
|
-
|
1975
|
+
16
|
1907
1976
|
];
|
1908
1977
|
};
|
1909
1978
|
},
|
@@ -2037,7 +2106,7 @@ export declare type Vault = {
|
|
2037
2106
|
"kind": "struct";
|
2038
2107
|
"fields": [
|
2039
2108
|
{
|
2040
|
-
"name": "
|
2109
|
+
"name": "vaultTypeName";
|
2041
2110
|
"type": "string";
|
2042
2111
|
},
|
2043
2112
|
{
|
@@ -2121,6 +2190,14 @@ export declare type Vault = {
|
|
2121
2190
|
{
|
2122
2191
|
"name": "deprecated";
|
2123
2192
|
"type": "bool";
|
2193
|
+
},
|
2194
|
+
{
|
2195
|
+
"name": "totalFeesAccumulatedUsh";
|
2196
|
+
"type": "u128";
|
2197
|
+
},
|
2198
|
+
{
|
2199
|
+
"name": "totalFeesAccumulatedCollateral";
|
2200
|
+
"type": "u128";
|
2124
2201
|
}
|
2125
2202
|
];
|
2126
2203
|
};
|
@@ -2147,7 +2224,7 @@ export declare type Vault = {
|
|
2147
2224
|
"type": "u64";
|
2148
2225
|
},
|
2149
2226
|
{
|
2150
|
-
"name": "
|
2227
|
+
"name": "vaultTypeName";
|
2151
2228
|
"type": "string";
|
2152
2229
|
},
|
2153
2230
|
{
|
@@ -2195,6 +2272,10 @@ export declare type Vault = {
|
|
2195
2272
|
"type": {
|
2196
2273
|
"option": "publicKey";
|
2197
2274
|
};
|
2275
|
+
},
|
2276
|
+
{
|
2277
|
+
"name": "vaultType";
|
2278
|
+
"type": "publicKey";
|
2198
2279
|
}
|
2199
2280
|
];
|
2200
2281
|
};
|
@@ -2243,6 +2324,56 @@ export declare type Vault = {
|
|
2243
2324
|
];
|
2244
2325
|
};
|
2245
2326
|
},
|
2327
|
+
{
|
2328
|
+
"name": "VaultTypeConfig";
|
2329
|
+
"type": {
|
2330
|
+
"kind": "struct";
|
2331
|
+
"fields": [
|
2332
|
+
{
|
2333
|
+
"name": "maxDebtExtended";
|
2334
|
+
"type": {
|
2335
|
+
"option": "u64";
|
2336
|
+
};
|
2337
|
+
},
|
2338
|
+
{
|
2339
|
+
"name": "minDebtPerVault";
|
2340
|
+
"type": {
|
2341
|
+
"option": "u64";
|
2342
|
+
};
|
2343
|
+
},
|
2344
|
+
{
|
2345
|
+
"name": "loanInitFee";
|
2346
|
+
"type": {
|
2347
|
+
"option": "u64";
|
2348
|
+
};
|
2349
|
+
},
|
2350
|
+
{
|
2351
|
+
"name": "oracleChainlink";
|
2352
|
+
"type": {
|
2353
|
+
"option": "publicKey";
|
2354
|
+
};
|
2355
|
+
},
|
2356
|
+
{
|
2357
|
+
"name": "oraclePyth";
|
2358
|
+
"type": {
|
2359
|
+
"option": "publicKey";
|
2360
|
+
};
|
2361
|
+
},
|
2362
|
+
{
|
2363
|
+
"name": "oracleSwitchboard";
|
2364
|
+
"type": {
|
2365
|
+
"option": "publicKey";
|
2366
|
+
};
|
2367
|
+
},
|
2368
|
+
{
|
2369
|
+
"name": "deprecated";
|
2370
|
+
"type": {
|
2371
|
+
"option": "bool";
|
2372
|
+
};
|
2373
|
+
}
|
2374
|
+
];
|
2375
|
+
};
|
2376
|
+
},
|
2246
2377
|
{
|
2247
2378
|
"name": "PositionState";
|
2248
2379
|
"type": {
|
@@ -2558,13 +2689,28 @@ export declare type Vault = {
|
|
2558
2689
|
},
|
2559
2690
|
{
|
2560
2691
|
"code": 6020;
|
2561
|
-
"name": "
|
2562
|
-
"msg": "Can only redeem
|
2692
|
+
"name": "NotRedeemingLowestCollateralRatioVault";
|
2693
|
+
"msg": "Can only redeem lowest collateral ratio vault in system.";
|
2563
2694
|
},
|
2564
2695
|
{
|
2565
2696
|
"code": 6021;
|
2566
2697
|
"name": "VaultTypeDeprecated";
|
2567
2698
|
"msg": "Vaults of this collateral type are deprecated. No new vaults can be created and no new debt will be issued for this collateral type.";
|
2699
|
+
},
|
2700
|
+
{
|
2701
|
+
"code": 6022;
|
2702
|
+
"name": "UpdateLinkedListFailed";
|
2703
|
+
"msg": "There was an error updating the list of vaults. Please make sure the transaction is fresh.";
|
2704
|
+
},
|
2705
|
+
{
|
2706
|
+
"code": 6023;
|
2707
|
+
"name": "InvalidSaltLength";
|
2708
|
+
"msg": "Salt for new vaults must be of length 8";
|
2709
|
+
},
|
2710
|
+
{
|
2711
|
+
"code": 6024;
|
2712
|
+
"name": "UpdateVaultTypeBadMaxDebtExtended";
|
2713
|
+
"msg": "New Max debt extended value is less than the current debt!";
|
2568
2714
|
}
|
2569
2715
|
];
|
2570
2716
|
};
|
package/declarations/index.d.ts
CHANGED
@@ -16,7 +16,7 @@ export * from './instructions/refreshOraclePrice';
|
|
16
16
|
export * from './instructions/initHedgeFoundation';
|
17
17
|
export * from './instructions/initHedgeFoundationTokens';
|
18
18
|
export * from './instructions/setHalted';
|
19
|
-
export * from './instructions/
|
19
|
+
export * from './instructions/updateVaultType';
|
20
20
|
export * from './HedgeDecimal';
|
21
21
|
export * from './Constants';
|
22
22
|
export * from './state/VaultAccount';
|
@@ -2,4 +2,4 @@ import { Program, Provider } from '@project-serum/anchor';
|
|
2
2
|
import { PublicKey, Signer, TransactionInstruction } from '@solana/web3.js';
|
3
3
|
import { Vault } from 'idl/vault';
|
4
4
|
export declare function liquidateVault(program: Program<Vault>, provider: Provider, payer: Signer, vaultPublicKey: PublicKey, overrideTime?: number): Promise<PublicKey>;
|
5
|
-
export declare function liquidateVaultInstruction(program: Program<Vault>, payerPublicKey: PublicKey, payerAssociatedTokenAccount: PublicKey, vaultPublickey: PublicKey, vaultAssociatedTokenAccount: PublicKey, poolState: PublicKey, poolEra: PublicKey, poolAssociatedTokenAccount: PublicKey, historyPublicKey: PublicKey, newEraPublicKey: PublicKey, feePool: PublicKey, feePoolAssociatedTokenAccount: PublicKey, hedgeStakingPoolAssociatedUshTokenAccount: PublicKey, collateralMint: PublicKey, vaultTypeAssociatedTokenAccount: PublicKey, oldSmallerPublicKey: PublicKey, newSmallerPublicKey: PublicKey, newLargerPublicKey: PublicKey,
|
5
|
+
export declare function liquidateVaultInstruction(program: Program<Vault>, payerPublicKey: PublicKey, payerAssociatedTokenAccount: PublicKey, vaultPublickey: PublicKey, vaultAssociatedTokenAccount: PublicKey, poolState: PublicKey, poolEra: PublicKey, poolAssociatedTokenAccount: PublicKey, historyPublicKey: PublicKey, newEraPublicKey: PublicKey, feePool: PublicKey, feePoolAssociatedTokenAccount: PublicKey, hedgeStakingPoolAssociatedUshTokenAccount: PublicKey, collateralMint: PublicKey, vaultTypeAssociatedTokenAccount: PublicKey, oldSmallerPublicKey: PublicKey, newSmallerPublicKey: PublicKey, newLargerPublicKey: PublicKey, vaultTypeAccount: PublicKey, overrideTime?: number): Promise<TransactionInstruction>;
|
@@ -0,0 +1,15 @@
|
|
1
|
+
/// <reference types="bn.js" />
|
2
|
+
import { BN, Program, Provider } from '@project-serum/anchor';
|
3
|
+
import { PublicKey, Signer, TransactionInstruction } from '@solana/web3.js';
|
4
|
+
import { Vault } from 'idl/vault';
|
5
|
+
export interface VaultTypeConfig {
|
6
|
+
maxDebtExtended?: BN;
|
7
|
+
minDebtPerVault?: BN;
|
8
|
+
loanInitFee?: BN;
|
9
|
+
oracleChainlink?: PublicKey;
|
10
|
+
oraclePyth?: PublicKey;
|
11
|
+
oracleSwitchboard?: PublicKey;
|
12
|
+
deprecated?: boolean;
|
13
|
+
}
|
14
|
+
export declare function updateVaultType(program: Program<Vault>, provider: Provider, payer: Signer, vaultTypeAccount: PublicKey, oracleInfoAccount: PublicKey, config: VaultTypeConfig): Promise<PublicKey>;
|
15
|
+
export declare function updateVaultTypeStatusInstruction(program: Program<Vault>, vaultSystemStatePublicKey: PublicKey, payerPublicKey: PublicKey, vaultTypeAccount: PublicKey, oracleInfoAccount: PublicKey, vaultTypeConfig: VaultTypeConfig): Promise<TransactionInstruction>;
|
@@ -17,16 +17,18 @@ export declare class VaultAccount {
|
|
17
17
|
denormalizedDebt: number;
|
18
18
|
/** The ordered number of when this vault was created. */
|
19
19
|
vaultNumber: number;
|
20
|
-
/** Debt redistribution
|
20
|
+
/** Debt redistribution snapshot */
|
21
21
|
debtProductSnapshotBytes: Decimal;
|
22
|
-
/** Collateral redistribution
|
22
|
+
/** Collateral redistribution snapshot' */
|
23
23
|
collateralAccumulatorSnapshotBytes: Decimal;
|
24
|
-
/** The vault type eg 'SOL-150' */
|
25
|
-
|
26
|
-
/** Current State of the
|
24
|
+
/** The vault type eg '2-SOL-150-0' */
|
25
|
+
vaultTypeName: string;
|
26
|
+
/** Current State of the vault ("Open", "Closed", "Liquidated") */
|
27
27
|
vaultStatus: string;
|
28
28
|
/** The public key of the next vault to redeem. */
|
29
29
|
nextVaultToRedeem: PublicKey;
|
30
|
+
/** The public key of the vault type. */
|
31
|
+
vaultType: PublicKey;
|
30
32
|
constructor(vault: any, publicKey: PublicKey);
|
31
33
|
/**
|
32
34
|
* Check if some `PublicKey` is the owner
|
@@ -57,7 +59,7 @@ export declare class VaultAccount {
|
|
57
59
|
addDeposit(depositAmount: number): void;
|
58
60
|
redeem(): void;
|
59
61
|
liquidate(): void;
|
60
|
-
updateDebtAndCollateral(
|
62
|
+
updateDebtAndCollateral(vaultTypeAccountData: any): void;
|
61
63
|
toString(highlight: PublicKey): string;
|
62
64
|
/**
|
63
65
|
* Creates a VaultAccount from a slice of data
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { PublicKey } from '@solana/web3.js';
|
2
|
+
import Decimal from 'decimal.js';
|
3
|
+
export default class VaultType {
|
4
|
+
publicKey?: PublicKey;
|
5
|
+
name: string;
|
6
|
+
collateralMint: PublicKey;
|
7
|
+
collateralIndex: number;
|
8
|
+
recentPrice: Decimal;
|
9
|
+
priceLastUpdatedTimestamp: Decimal;
|
10
|
+
collateralHeld: Decimal;
|
11
|
+
denormalizedDebtExtended: Decimal;
|
12
|
+
debtRedistributionProduct: Decimal;
|
13
|
+
collateralRedistributionAccumulator: Decimal;
|
14
|
+
minCollateralRatio: Decimal;
|
15
|
+
loanInitFee: Decimal;
|
16
|
+
minDebtPerVault: Decimal;
|
17
|
+
maxDebtExtended: Decimal;
|
18
|
+
canBeRedeemed: boolean;
|
19
|
+
cumulativeRate: Decimal;
|
20
|
+
cumulativeRateLastUpdated: Decimal;
|
21
|
+
interestRatePerSecond: Decimal;
|
22
|
+
firstVaultToRedeem: PublicKey;
|
23
|
+
constructor(config: any, publicKey?: PublicKey);
|
24
|
+
}
|
package/lib/Constants.js
CHANGED
@@ -12,7 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.findAssociatedTokenAddress = exports.findVaultAddress = exports.getVaultTypeOracleAccountPublicKey = exports.getVaultTypeAccountPublicKey = exports.getPoolPublicKeyForMint = exports.getHedgeMintPublicKey = exports.getVaultSystemStatePublicKey = exports.getUshMintPublicKey = exports.getLiquidationPoolUshAccountPublicKey = exports.getLiquidationPoolStatePublicKey = exports.CHAINLINK_SOL_USD_PUBLICKEY = exports.CHAINLINK_SOL_USD_ID = exports.HEDGE_PROGRAM_PUBLICKEY = exports.HEDGE_PROGRAM_ID = void 0;
|
13
13
|
const spl_token_1 = require("@solana/spl-token");
|
14
14
|
const web3_js_1 = require("@solana/web3.js");
|
15
|
-
exports.HEDGE_PROGRAM_ID = '
|
15
|
+
exports.HEDGE_PROGRAM_ID = 'zooJaircVAoQ4e7EXRDocnsbB7UPYQ6J7bKyZEMh784';
|
16
16
|
exports.HEDGE_PROGRAM_PUBLICKEY = new web3_js_1.PublicKey(exports.HEDGE_PROGRAM_ID);
|
17
17
|
exports.CHAINLINK_SOL_USD_ID = 'FmAmfoyPXiA8Vhhe6MZTr3U6rZfEZ1ctEHay1ysqCqcf';
|
18
18
|
exports.CHAINLINK_SOL_USD_PUBLICKEY = new web3_js_1.PublicKey(exports.CHAINLINK_SOL_USD_ID);
|
package/lib/idl/vault.js
CHANGED
@@ -1563,7 +1563,7 @@ exports.IDL = {
|
|
1563
1563
|
]
|
1564
1564
|
},
|
1565
1565
|
{
|
1566
|
-
"name": "
|
1566
|
+
"name": "updateVaultType",
|
1567
1567
|
"accounts": [
|
1568
1568
|
{
|
1569
1569
|
"name": "payer",
|
@@ -1579,12 +1579,77 @@ exports.IDL = {
|
|
1579
1579
|
"name": "vaultType",
|
1580
1580
|
"isMut": true,
|
1581
1581
|
"isSigner": false
|
1582
|
+
},
|
1583
|
+
{
|
1584
|
+
"name": "oracleInfoAccount",
|
1585
|
+
"isMut": true,
|
1586
|
+
"isSigner": false
|
1587
|
+
}
|
1588
|
+
],
|
1589
|
+
"args": [
|
1590
|
+
{
|
1591
|
+
"name": "config",
|
1592
|
+
"type": {
|
1593
|
+
"defined": "VaultTypeConfig"
|
1594
|
+
}
|
1595
|
+
}
|
1596
|
+
]
|
1597
|
+
},
|
1598
|
+
{
|
1599
|
+
"name": "fixVaultRedeemPointer",
|
1600
|
+
"accounts": [
|
1601
|
+
{
|
1602
|
+
"name": "payer",
|
1603
|
+
"isMut": true,
|
1604
|
+
"isSigner": true
|
1605
|
+
},
|
1606
|
+
{
|
1607
|
+
"name": "vaultSystemState",
|
1608
|
+
"isMut": true,
|
1609
|
+
"isSigner": false
|
1610
|
+
},
|
1611
|
+
{
|
1612
|
+
"name": "vaultAccount",
|
1613
|
+
"isMut": true,
|
1614
|
+
"isSigner": false
|
1615
|
+
}
|
1616
|
+
],
|
1617
|
+
"args": []
|
1618
|
+
},
|
1619
|
+
{
|
1620
|
+
"name": "adminSetRedeemPointer",
|
1621
|
+
"accounts": [
|
1622
|
+
{
|
1623
|
+
"name": "payer",
|
1624
|
+
"isMut": true,
|
1625
|
+
"isSigner": true
|
1626
|
+
},
|
1627
|
+
{
|
1628
|
+
"name": "vaultSystemState",
|
1629
|
+
"isMut": true,
|
1630
|
+
"isSigner": false
|
1631
|
+
},
|
1632
|
+
{
|
1633
|
+
"name": "vaultAccount",
|
1634
|
+
"isMut": true,
|
1635
|
+
"isSigner": false
|
1636
|
+
},
|
1637
|
+
{
|
1638
|
+
"name": "vaultTypeAccount",
|
1639
|
+
"isMut": true,
|
1640
|
+
"isSigner": false
|
1582
1641
|
}
|
1583
1642
|
],
|
1584
1643
|
"args": [
|
1585
1644
|
{
|
1586
|
-
"name": "
|
1645
|
+
"name": "settingHead",
|
1587
1646
|
"type": "bool"
|
1647
|
+
},
|
1648
|
+
{
|
1649
|
+
"name": "pointerToSet",
|
1650
|
+
"type": {
|
1651
|
+
"option": "publicKey"
|
1652
|
+
}
|
1588
1653
|
}
|
1589
1654
|
]
|
1590
1655
|
}
|
@@ -1782,7 +1847,7 @@ exports.IDL = {
|
|
1782
1847
|
"kind": "struct",
|
1783
1848
|
"fields": [
|
1784
1849
|
{
|
1785
|
-
"name": "
|
1850
|
+
"name": "vaultTypeName",
|
1786
1851
|
"type": "string"
|
1787
1852
|
},
|
1788
1853
|
{
|
@@ -1796,6 +1861,10 @@ exports.IDL = {
|
|
1796
1861
|
{
|
1797
1862
|
"name": "oracleSwitchboard",
|
1798
1863
|
"type": "publicKey"
|
1864
|
+
},
|
1865
|
+
{
|
1866
|
+
"name": "vaultType",
|
1867
|
+
"type": "publicKey"
|
1799
1868
|
}
|
1800
1869
|
]
|
1801
1870
|
}
|
@@ -1906,7 +1975,7 @@ exports.IDL = {
|
|
1906
1975
|
"type": {
|
1907
1976
|
"array": [
|
1908
1977
|
"u8",
|
1909
|
-
|
1978
|
+
16
|
1910
1979
|
]
|
1911
1980
|
}
|
1912
1981
|
},
|
@@ -2040,7 +2109,7 @@ exports.IDL = {
|
|
2040
2109
|
"kind": "struct",
|
2041
2110
|
"fields": [
|
2042
2111
|
{
|
2043
|
-
"name": "
|
2112
|
+
"name": "vaultTypeName",
|
2044
2113
|
"type": "string"
|
2045
2114
|
},
|
2046
2115
|
{
|
@@ -2124,6 +2193,14 @@ exports.IDL = {
|
|
2124
2193
|
{
|
2125
2194
|
"name": "deprecated",
|
2126
2195
|
"type": "bool"
|
2196
|
+
},
|
2197
|
+
{
|
2198
|
+
"name": "totalFeesAccumulatedUsh",
|
2199
|
+
"type": "u128"
|
2200
|
+
},
|
2201
|
+
{
|
2202
|
+
"name": "totalFeesAccumulatedCollateral",
|
2203
|
+
"type": "u128"
|
2127
2204
|
}
|
2128
2205
|
]
|
2129
2206
|
}
|
@@ -2150,7 +2227,7 @@ exports.IDL = {
|
|
2150
2227
|
"type": "u64"
|
2151
2228
|
},
|
2152
2229
|
{
|
2153
|
-
"name": "
|
2230
|
+
"name": "vaultTypeName",
|
2154
2231
|
"type": "string"
|
2155
2232
|
},
|
2156
2233
|
{
|
@@ -2198,6 +2275,10 @@ exports.IDL = {
|
|
2198
2275
|
"type": {
|
2199
2276
|
"option": "publicKey"
|
2200
2277
|
}
|
2278
|
+
},
|
2279
|
+
{
|
2280
|
+
"name": "vaultType",
|
2281
|
+
"type": "publicKey"
|
2201
2282
|
}
|
2202
2283
|
]
|
2203
2284
|
}
|
@@ -2246,6 +2327,56 @@ exports.IDL = {
|
|
2246
2327
|
]
|
2247
2328
|
}
|
2248
2329
|
},
|
2330
|
+
{
|
2331
|
+
"name": "VaultTypeConfig",
|
2332
|
+
"type": {
|
2333
|
+
"kind": "struct",
|
2334
|
+
"fields": [
|
2335
|
+
{
|
2336
|
+
"name": "maxDebtExtended",
|
2337
|
+
"type": {
|
2338
|
+
"option": "u64"
|
2339
|
+
}
|
2340
|
+
},
|
2341
|
+
{
|
2342
|
+
"name": "minDebtPerVault",
|
2343
|
+
"type": {
|
2344
|
+
"option": "u64"
|
2345
|
+
}
|
2346
|
+
},
|
2347
|
+
{
|
2348
|
+
"name": "loanInitFee",
|
2349
|
+
"type": {
|
2350
|
+
"option": "u64"
|
2351
|
+
}
|
2352
|
+
},
|
2353
|
+
{
|
2354
|
+
"name": "oracleChainlink",
|
2355
|
+
"type": {
|
2356
|
+
"option": "publicKey"
|
2357
|
+
}
|
2358
|
+
},
|
2359
|
+
{
|
2360
|
+
"name": "oraclePyth",
|
2361
|
+
"type": {
|
2362
|
+
"option": "publicKey"
|
2363
|
+
}
|
2364
|
+
},
|
2365
|
+
{
|
2366
|
+
"name": "oracleSwitchboard",
|
2367
|
+
"type": {
|
2368
|
+
"option": "publicKey"
|
2369
|
+
}
|
2370
|
+
},
|
2371
|
+
{
|
2372
|
+
"name": "deprecated",
|
2373
|
+
"type": {
|
2374
|
+
"option": "bool"
|
2375
|
+
}
|
2376
|
+
}
|
2377
|
+
]
|
2378
|
+
}
|
2379
|
+
},
|
2249
2380
|
{
|
2250
2381
|
"name": "PositionState",
|
2251
2382
|
"type": {
|
@@ -2561,13 +2692,28 @@ exports.IDL = {
|
|
2561
2692
|
},
|
2562
2693
|
{
|
2563
2694
|
"code": 6020,
|
2564
|
-
"name": "
|
2565
|
-
"msg": "Can only redeem
|
2695
|
+
"name": "NotRedeemingLowestCollateralRatioVault",
|
2696
|
+
"msg": "Can only redeem lowest collateral ratio vault in system."
|
2566
2697
|
},
|
2567
2698
|
{
|
2568
2699
|
"code": 6021,
|
2569
2700
|
"name": "VaultTypeDeprecated",
|
2570
2701
|
"msg": "Vaults of this collateral type are deprecated. No new vaults can be created and no new debt will be issued for this collateral type."
|
2702
|
+
},
|
2703
|
+
{
|
2704
|
+
"code": 6022,
|
2705
|
+
"name": "UpdateLinkedListFailed",
|
2706
|
+
"msg": "There was an error updating the list of vaults. Please make sure the transaction is fresh."
|
2707
|
+
},
|
2708
|
+
{
|
2709
|
+
"code": 6023,
|
2710
|
+
"name": "InvalidSaltLength",
|
2711
|
+
"msg": "Salt for new vaults must be of length 8"
|
2712
|
+
},
|
2713
|
+
{
|
2714
|
+
"code": 6024,
|
2715
|
+
"name": "UpdateVaultTypeBadMaxDebtExtended",
|
2716
|
+
"msg": "New Max debt extended value is less than the current debt!"
|
2571
2717
|
}
|
2572
2718
|
]
|
2573
2719
|
};
|
package/lib/index.js
CHANGED
@@ -28,7 +28,7 @@ __exportStar(require("./instructions/refreshOraclePrice"), exports);
|
|
28
28
|
__exportStar(require("./instructions/initHedgeFoundation"), exports);
|
29
29
|
__exportStar(require("./instructions/initHedgeFoundationTokens"), exports);
|
30
30
|
__exportStar(require("./instructions/setHalted"), exports);
|
31
|
-
__exportStar(require("./instructions/
|
31
|
+
__exportStar(require("./instructions/updateVaultType"), exports);
|
32
32
|
__exportStar(require("./HedgeDecimal"), exports);
|
33
33
|
__exportStar(require("./Constants"), exports);
|
34
34
|
__exportStar(require("./state/VaultAccount"), exports);
|
@@ -26,6 +26,7 @@ function createStakingPool(program, provider, payer, mintPublicKey, hedgeTokensT
|
|
26
26
|
exports.createStakingPool = createStakingPool;
|
27
27
|
function createStakingPoolInstruction(program, payerPublicKey, mintPublicKey, hedgeTokensToBeMinted, overrideStartTime) {
|
28
28
|
return __awaiter(this, void 0, void 0, function* () {
|
29
|
+
console.log("new createStakingPoolInstruction");
|
29
30
|
const vaultSystemStatePublicKey = yield (0, Constants_1.getVaultSystemStatePublicKey)();
|
30
31
|
const ushMintPublickey = yield (0, Constants_1.getUshMintPublicKey)();
|
31
32
|
const [poolPublickey, poolBump] = yield (0, Constants_1.getPoolPublicKeyForMint)(mintPublicKey);
|