hedge-web3 0.1.44 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. package/declarations/Constants.d.ts +2 -1
  2. package/declarations/idl/vault.d.ts +161 -35
  3. package/declarations/instructions/claimLiquidationPoolPosition.d.ts +1 -1
  4. package/declarations/instructions/claimStakingPoolPosition.d.ts +1 -1
  5. package/declarations/instructions/closeLiquidationPoolPosition.d.ts +1 -1
  6. package/declarations/instructions/createStakingPool.d.ts +1 -1
  7. package/declarations/instructions/createVault.d.ts +1 -1
  8. package/declarations/instructions/depositLiquidationPool.d.ts +1 -1
  9. package/declarations/instructions/depositStakingPool.d.ts +1 -1
  10. package/declarations/instructions/depositVault.d.ts +1 -1
  11. package/declarations/instructions/initHedgeFoundation.d.ts +1 -1
  12. package/declarations/instructions/liquidateVault.d.ts +1 -1
  13. package/declarations/instructions/loanVault.d.ts +1 -1
  14. package/declarations/instructions/redeemVault.d.ts +1 -1
  15. package/declarations/instructions/refreshOraclePrice.d.ts +3 -3
  16. package/declarations/instructions/repayVault.d.ts +1 -1
  17. package/declarations/instructions/setHalted.d.ts +1 -1
  18. package/declarations/instructions/updateVaultType.d.ts +4 -1
  19. package/declarations/instructions/withdrawStakingPool.d.ts +1 -1
  20. package/declarations/instructions/withdrawVault.d.ts +1 -1
  21. package/declarations/state/VaultAccount.d.ts +4 -3
  22. package/declarations/utils/getLinkedListAccounts.d.ts +1 -1
  23. package/lib/Constants.js +3 -2
  24. package/lib/idl/vault.js +161 -35
  25. package/lib/instructions/claimLiquidationPoolPosition.js +5 -1
  26. package/lib/instructions/claimStakingPoolPosition.js +5 -1
  27. package/lib/instructions/closeLiquidationPoolPosition.js +5 -1
  28. package/lib/instructions/createStakingPool.js +5 -2
  29. package/lib/instructions/createVault.js +5 -1
  30. package/lib/instructions/depositLiquidationPool.js +5 -1
  31. package/lib/instructions/depositStakingPool.js +5 -1
  32. package/lib/instructions/depositVault.js +5 -1
  33. package/lib/instructions/initHedgeFoundation.js +5 -1
  34. package/lib/instructions/initHedgeFoundationTokens.js +5 -1
  35. package/lib/instructions/liquidateVault.js +5 -1
  36. package/lib/instructions/loanVault.js +5 -3
  37. package/lib/instructions/redeemVault.js +5 -1
  38. package/lib/instructions/refreshOraclePrice.js +6 -1
  39. package/lib/instructions/repayVault.js +5 -1
  40. package/lib/instructions/setHalted.js +5 -1
  41. package/lib/instructions/updateVaultType.js +9 -2
  42. package/lib/instructions/withdrawStakingPool.js +5 -1
  43. package/lib/instructions/withdrawVault.js +5 -1
  44. package/lib/state/VaultAccount.js +11 -9
  45. package/lib/utils/getLinkedListAccounts.js +48 -48
  46. package/package.json +1 -1
  47. package/src/Constants.ts +2 -1
  48. package/src/idl/vault.ts +322 -70
  49. package/src/instructions/claimLiquidationPoolPosition.ts +3 -2
  50. package/src/instructions/claimStakingPoolPosition.ts +3 -2
  51. package/src/instructions/closeLiquidationPoolPosition.ts +3 -2
  52. package/src/instructions/createStakingPool.ts +3 -3
  53. package/src/instructions/createVault.ts +3 -2
  54. package/src/instructions/depositLiquidationPool.ts +3 -2
  55. package/src/instructions/depositStakingPool.ts +3 -2
  56. package/src/instructions/depositVault.ts +3 -3
  57. package/src/instructions/initHedgeFoundation.ts +3 -2
  58. package/src/instructions/initHedgeFoundationTokens.ts +2 -1
  59. package/src/instructions/liquidateVault.ts +5 -3
  60. package/src/instructions/loanVault.ts +3 -4
  61. package/src/instructions/redeemVault.ts +3 -2
  62. package/src/instructions/refreshOraclePrice.ts +7 -4
  63. package/src/instructions/repayVault.ts +3 -2
  64. package/src/instructions/setHalted.ts +3 -2
  65. package/src/instructions/updateVaultType.ts +10 -2
  66. package/src/instructions/withdrawStakingPool.ts +3 -2
  67. package/src/instructions/withdrawVault.ts +3 -2
  68. package/src/state/VaultAccount.ts +17 -12
  69. package/src/state/VaultType.ts +62 -0
  70. package/src/utils/getLinkedListAccounts.ts +54 -49
  71. package/src/utils/sendAndConfirmWithDebug.ts +27 -0
@@ -1,8 +1,9 @@
1
1
  import { PublicKey } from '@solana/web3.js';
2
- export declare const HEDGE_PROGRAM_ID = "zooJaircVAoQ4e7EXRDocnsbB7UPYQ6J7bKyZEMh784";
2
+ export declare const HEDGE_PROGRAM_ID = "HedgeiSAoDWrgfyJ9z8XVsxhcCY2D9aHq1o3kTEbG1C1";
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;
6
+ export declare const CHAINLINK_PROGRAM_ID = "HEvSKofvBgfaexv23kMabbYqxasxU3mQ4ibBMEmJWHny";
6
7
  export declare function getLiquidationPoolStatePublicKey(): Promise<PublicKey>;
7
8
  export declare function getLiquidationPoolUshAccountPublicKey(): Promise<PublicKey>;
8
9
  export declare function getUshMintPublicKey(): Promise<PublicKey>;
@@ -1177,6 +1177,11 @@ export declare type Vault = {
1177
1177
  "name": "systemProgram";
1178
1178
  "isMut": false;
1179
1179
  "isSigner": false;
1180
+ },
1181
+ {
1182
+ "name": "chainlinkProgram";
1183
+ "isMut": false;
1184
+ "isSigner": false;
1180
1185
  }
1181
1186
  ];
1182
1187
  "args": [
@@ -1649,6 +1654,58 @@ export declare type Vault = {
1649
1654
  };
1650
1655
  }
1651
1656
  ];
1657
+ },
1658
+ {
1659
+ "name": "adminMigrateVault";
1660
+ "accounts": [
1661
+ {
1662
+ "name": "payer";
1663
+ "isMut": true;
1664
+ "isSigner": true;
1665
+ },
1666
+ {
1667
+ "name": "vaultSystemState";
1668
+ "isMut": true;
1669
+ "isSigner": false;
1670
+ },
1671
+ {
1672
+ "name": "vaultAccount";
1673
+ "isMut": true;
1674
+ "isSigner": false;
1675
+ },
1676
+ {
1677
+ "name": "vaultTypeAccount";
1678
+ "isMut": true;
1679
+ "isSigner": false;
1680
+ }
1681
+ ];
1682
+ "args": [];
1683
+ },
1684
+ {
1685
+ "name": "adminMigrateOracle";
1686
+ "accounts": [
1687
+ {
1688
+ "name": "payer";
1689
+ "isMut": true;
1690
+ "isSigner": true;
1691
+ },
1692
+ {
1693
+ "name": "vaultSystemState";
1694
+ "isMut": true;
1695
+ "isSigner": false;
1696
+ },
1697
+ {
1698
+ "name": "oracleInfoAccount";
1699
+ "isMut": true;
1700
+ "isSigner": false;
1701
+ },
1702
+ {
1703
+ "name": "vaultTypeAccount";
1704
+ "isMut": true;
1705
+ "isSigner": false;
1706
+ }
1707
+ ];
1708
+ "args": [];
1652
1709
  }
1653
1710
  ];
1654
1711
  "accounts": [
@@ -1777,10 +1834,6 @@ export declare type Vault = {
1777
1834
  "type": {
1778
1835
  "kind": "struct";
1779
1836
  "fields": [
1780
- {
1781
- "name": "state";
1782
- "type": "u64";
1783
- },
1784
1837
  {
1785
1838
  "name": "era";
1786
1839
  "type": "publicKey";
@@ -1789,14 +1842,6 @@ export declare type Vault = {
1789
1842
  "name": "ownerAccount";
1790
1843
  "type": "publicKey";
1791
1844
  },
1792
- {
1793
- "name": "deposit";
1794
- "type": "u64";
1795
- },
1796
- {
1797
- "name": "closedUsh";
1798
- "type": "u64";
1799
- },
1800
1845
  {
1801
1846
  "name": "productSnapshotEntry";
1802
1847
  "type": "u128";
@@ -1827,6 +1872,14 @@ export declare type Vault = {
1827
1872
  "name": "hedgeRewardsSnapshotAccum";
1828
1873
  "type": "u128";
1829
1874
  },
1875
+ {
1876
+ "name": "deposit";
1877
+ "type": "u64";
1878
+ },
1879
+ {
1880
+ "name": "closedUsh";
1881
+ "type": "u64";
1882
+ },
1830
1883
  {
1831
1884
  "name": "timestampOpened";
1832
1885
  "type": "u64";
@@ -1834,6 +1887,12 @@ export declare type Vault = {
1834
1887
  {
1835
1888
  "name": "timestampClosed";
1836
1889
  "type": "u64";
1890
+ },
1891
+ {
1892
+ "name": "state";
1893
+ "type": {
1894
+ "defined": "PositionState";
1895
+ };
1837
1896
  }
1838
1897
  ];
1839
1898
  };
@@ -1844,8 +1903,8 @@ export declare type Vault = {
1844
1903
  "kind": "struct";
1845
1904
  "fields": [
1846
1905
  {
1847
- "name": "vaultTypeName";
1848
- "type": "string";
1906
+ "name": "vaultType";
1907
+ "type": "publicKey";
1849
1908
  },
1850
1909
  {
1851
1910
  "name": "oraclePyth";
@@ -1860,8 +1919,20 @@ export declare type Vault = {
1860
1919
  "type": "publicKey";
1861
1920
  },
1862
1921
  {
1863
- "name": "vaultType";
1864
- "type": "publicKey";
1922
+ "name": "priorityPyth";
1923
+ "type": "i8";
1924
+ },
1925
+ {
1926
+ "name": "priorityChainlink";
1927
+ "type": "i8";
1928
+ },
1929
+ {
1930
+ "name": "prioritySwitchboard";
1931
+ "type": "i8";
1932
+ },
1933
+ {
1934
+ "name": "vaultTypeName";
1935
+ "type": "string";
1865
1936
  }
1866
1937
  ];
1867
1938
  };
@@ -2065,7 +2136,7 @@ export declare type Vault = {
2065
2136
  },
2066
2137
  {
2067
2138
  "name": "totalUshSupply";
2068
- "type": "u64";
2139
+ "type": "u128";
2069
2140
  },
2070
2141
  {
2071
2142
  "name": "totalVaults";
@@ -2105,10 +2176,6 @@ export declare type Vault = {
2105
2176
  "type": {
2106
2177
  "kind": "struct";
2107
2178
  "fields": [
2108
- {
2109
- "name": "vaultTypeName";
2110
- "type": "string";
2111
- },
2112
2179
  {
2113
2180
  "name": "collateralMint";
2114
2181
  "type": "publicKey";
@@ -2181,6 +2248,22 @@ export declare type Vault = {
2181
2248
  "name": "interestRatePerSecond";
2182
2249
  "type": "u128";
2183
2250
  },
2251
+ {
2252
+ "name": "deprecated";
2253
+ "type": "bool";
2254
+ },
2255
+ {
2256
+ "name": "totalFeesAccumulatedUsh";
2257
+ "type": "u128";
2258
+ },
2259
+ {
2260
+ "name": "totalFeesAccumulatedCollateral";
2261
+ "type": "u128";
2262
+ },
2263
+ {
2264
+ "name": "vaultTypeName";
2265
+ "type": "string";
2266
+ },
2184
2267
  {
2185
2268
  "name": "firstVaultToRedeem";
2186
2269
  "type": {
@@ -2224,12 +2307,14 @@ export declare type Vault = {
2224
2307
  "type": "u64";
2225
2308
  },
2226
2309
  {
2227
- "name": "vaultTypeName";
2228
- "type": "string";
2310
+ "name": "vaultStatus";
2311
+ "type": {
2312
+ "defined": "VaultStatus";
2313
+ };
2229
2314
  },
2230
2315
  {
2231
- "name": "pdaSalt";
2232
- "type": "string";
2316
+ "name": "vaultType";
2317
+ "type": "publicKey";
2233
2318
  },
2234
2319
  {
2235
2320
  "name": "bump";
@@ -2253,12 +2338,6 @@ export declare type Vault = {
2253
2338
  "defined": "CurrencyType";
2254
2339
  };
2255
2340
  },
2256
- {
2257
- "name": "vaultStatus";
2258
- "type": {
2259
- "defined": "VaultStatus";
2260
- };
2261
- },
2262
2341
  {
2263
2342
  "name": "timeCreated";
2264
2343
  "type": "u64";
@@ -2267,15 +2346,19 @@ export declare type Vault = {
2267
2346
  "name": "timeLastInteraction";
2268
2347
  "type": "u64";
2269
2348
  },
2349
+ {
2350
+ "name": "vaultTypeName";
2351
+ "type": "string";
2352
+ },
2353
+ {
2354
+ "name": "pdaSalt";
2355
+ "type": "string";
2356
+ },
2270
2357
  {
2271
2358
  "name": "nextVaultToRedeem";
2272
2359
  "type": {
2273
2360
  "option": "publicKey";
2274
2361
  };
2275
- },
2276
- {
2277
- "name": "vaultType";
2278
- "type": "publicKey";
2279
2362
  }
2280
2363
  ];
2281
2364
  };
@@ -2365,6 +2448,24 @@ export declare type Vault = {
2365
2448
  "option": "publicKey";
2366
2449
  };
2367
2450
  },
2451
+ {
2452
+ "name": "priorityChainlink";
2453
+ "type": {
2454
+ "option": "i8";
2455
+ };
2456
+ },
2457
+ {
2458
+ "name": "priorityPyth";
2459
+ "type": {
2460
+ "option": "i8";
2461
+ };
2462
+ },
2463
+ {
2464
+ "name": "prioritySwitchboard";
2465
+ "type": {
2466
+ "option": "i8";
2467
+ };
2468
+ },
2368
2469
  {
2369
2470
  "name": "deprecated";
2370
2471
  "type": {
@@ -2709,8 +2810,33 @@ export declare type Vault = {
2709
2810
  },
2710
2811
  {
2711
2812
  "code": 6024;
2813
+ "name": "InvalidNameLength";
2814
+ "msg": "Name for new vault type must be length 16";
2815
+ },
2816
+ {
2817
+ "code": 6025;
2712
2818
  "name": "UpdateVaultTypeBadMaxDebtExtended";
2713
2819
  "msg": "New Max debt extended value is less than the current debt!";
2820
+ },
2821
+ {
2822
+ "code": 6025;
2823
+ "name": "UpdateVaultTypeNoEnabledOracles";
2824
+ "msg": "No Enabled Oracles!";
2825
+ },
2826
+ {
2827
+ "code": 6026;
2828
+ "name": "UpdateVaultTypeDuplicateOraclePriorities";
2829
+ "msg": "Duplicate Oracle Priorities";
2830
+ },
2831
+ {
2832
+ "code": 6027;
2833
+ "name": "UpdateVaultTypeInvalidOraclePriority";
2834
+ "msg": "Invalid Oracle Priority";
2835
+ },
2836
+ {
2837
+ "code": 6028;
2838
+ "name": "OracleUpdateFailed";
2839
+ "msg": "OracleUpdateFailed";
2714
2840
  }
2715
2841
  ];
2716
2842
  };
@@ -1,5 +1,5 @@
1
1
  import { Program, Provider } from '@project-serum/anchor';
2
2
  import { PublicKey, Signer, TransactionInstruction } from '@solana/web3.js';
3
- import { Vault } from 'idl/vault';
3
+ import { Vault } from '../idl/vault';
4
4
  export declare function claimLiquidationPoolPosition(program: Program<Vault>, provider: Provider, poolPosition: PublicKey, payer: Signer, collateralType: string, overrideStartTime?: number): Promise<PublicKey>;
5
5
  export declare function claimLiquidationPoolPositionInstruction(program: Program<Vault>, vaultTypeAccount: PublicKey, collateralMint: PublicKey, poolPosition: PublicKey, payer: PublicKey, payerAssociatedTokenAccount: PublicKey, overrideStartTime?: number): Promise<TransactionInstruction>;
@@ -1,5 +1,5 @@
1
1
  import { Program, Provider } from '@project-serum/anchor';
2
2
  import { PublicKey, Signer, TransactionInstruction } from '@solana/web3.js';
3
- import { Vault } from 'idl/vault';
3
+ import { Vault } from '../idl/vault';
4
4
  export declare function claimStakingPoolPosition(program: Program<Vault>, provider: Provider, poolPosition: PublicKey, payer: Signer, collateralType: string): Promise<PublicKey>;
5
5
  export declare function claimStakingPoolPositionInstruction(program: Program<Vault>, feePool: PublicKey, feePoolAssociatedTokenAccount: PublicKey, stakedTokenMint: PublicKey, vaultTypeAccount: PublicKey, collateralMint: PublicKey, poolPosition: PublicKey, payer: PublicKey, payerAssociatedTokenAccount: PublicKey): Promise<TransactionInstruction>;
@@ -1,5 +1,5 @@
1
1
  import { Program, Provider } from '@project-serum/anchor';
2
2
  import { PublicKey, Signer, TransactionInstruction } from '@solana/web3.js';
3
- import { Vault } from 'idl/vault';
3
+ import { Vault } from '../idl/vault';
4
4
  export declare function closeLiquidationPoolPosition(program: Program<Vault>, provider: Provider, poolPosition: PublicKey, payer: Signer, overrideStartTime?: number): Promise<PublicKey>;
5
5
  export declare function closeLiquidationPoolPositionInstruction(program: Program<Vault>, poolEra: PublicKey, poolPosition: PublicKey, payerPublicKey: PublicKey, payerUshAccount: PublicKey, payerAssociatedHedgeAccount: PublicKey, communityAssociatedHedgeTokenAccount: PublicKey, overrideStartTime?: number): Promise<TransactionInstruction>;
@@ -1,5 +1,5 @@
1
1
  import { Program, Provider } from '@project-serum/anchor';
2
2
  import { PublicKey, Signer, TransactionInstruction } from '@solana/web3.js';
3
- import { Vault } from 'idl/vault';
3
+ import { Vault } from '../idl/vault';
4
4
  export declare function createStakingPool(program: Program<Vault>, provider: Provider, payer: Signer, mintPublicKey: PublicKey, hedgeTokensToBeMinted: number, overrideStartTime?: number): Promise<PublicKey>;
5
5
  export declare function createStakingPoolInstruction(program: Program<Vault>, payerPublicKey: PublicKey, mintPublicKey: PublicKey, hedgeTokensToBeMinted: number, overrideStartTime?: number): Promise<TransactionInstruction>;
@@ -1,6 +1,6 @@
1
1
  import { Program, Provider } from '@project-serum/anchor';
2
2
  import { PublicKey, Signer, Transaction, TransactionInstruction } from '@solana/web3.js';
3
- import { Vault } from 'idl/vault';
3
+ import { Vault } from '../idl/vault';
4
4
  export declare function createVault(program: Program<Vault>, provider: Provider, payer: Signer, collateralType: string, depositAmount: number, overrideTime?: number): Promise<PublicKey>;
5
5
  export declare function buildCreateVaultTransaction(program: Program<Vault>, payerPublicKey: PublicKey, collateralType: string, depositAmount: number, overrideTime?: number): Promise<[Transaction, Signer[], PublicKey]>;
6
6
  export declare function createVaultInstruction(program: Program<Vault>, salt: string, payerPublicKey: PublicKey, payerTokenAccountPublicKey: PublicKey, vaultPublicKey: PublicKey, vaultAssociatedTokenAccount: PublicKey, feePool: PublicKey, feePoolAssociatedUshTokenAccount: PublicKey, vaultTypeAccount: PublicKey, collateralMint: PublicKey, historyPublicKey: PublicKey, ushMintPublickey: PublicKey, depositAmount: number, overrideTime?: number): Promise<TransactionInstruction>;
@@ -1,5 +1,5 @@
1
1
  import { Program, Provider } from '@project-serum/anchor';
2
2
  import { PublicKey, Signer, TransactionInstruction } from '@solana/web3.js';
3
- import { Vault } from 'idl/vault';
3
+ import { Vault } from '../idl/vault';
4
4
  export declare function depositLiquidationPool(program: Program<Vault>, provider: Provider, payer: Signer, depositAmount: number, overrideStartTime?: number): Promise<PublicKey>;
5
5
  export declare function depositLiquidationPoolInstruction(program: Program<Vault>, payerPublicKey: PublicKey, payerUshAccount: PublicKey, poolPositionPublicKey: PublicKey, depositAmount: number, overrideStartTime?: number): Promise<TransactionInstruction>;
@@ -1,5 +1,5 @@
1
1
  import { Program, Provider } from '@project-serum/anchor';
2
2
  import { PublicKey, Signer, TransactionInstruction } from '@solana/web3.js';
3
- import { Vault } from 'idl/vault';
3
+ import { Vault } from '../idl/vault';
4
4
  export declare function depositStakingPool(program: Program<Vault>, provider: Provider, payer: Signer, mintPublicKey: PublicKey, depositAmount: number, overrideStartTime?: number): Promise<PublicKey>;
5
5
  export declare function depositStakingPoolInstruction(program: Program<Vault>, payerPublicKey: PublicKey, poolPositionPublicKey: PublicKey, stakedTokenMintPublicKey: PublicKey, depositAmount: number, overrideStartTime?: number): Promise<TransactionInstruction>;
@@ -1,5 +1,5 @@
1
1
  import { Program, Provider } from '@project-serum/anchor';
2
2
  import { PublicKey, Signer, TransactionInstruction } from '@solana/web3.js';
3
- import { Vault } from 'idl/vault';
3
+ import { Vault } from '../idl/vault';
4
4
  export declare function depositVault(program: Program<Vault>, provider: Provider, payer: Signer, vaultPublicKey: PublicKey, depositAmount: number, overrideTime?: number): Promise<PublicKey>;
5
5
  export declare function depositVaultInstruction(program: Program<Vault>, vaultSystemStatePublicKey: PublicKey, vaultOwner: PublicKey, vaultOwnerTokenAccount: PublicKey, vaultPublicKey: PublicKey, vaultAssociatedTokenAccount: PublicKey, historyPublicKey: PublicKey, vaultTypeAccountPublicKey: PublicKey, vaultTypeAssociatedTokenAccount: PublicKey, hedgeStakingPoolPublicKey: PublicKey, hedgeStakingPoolAssociatedUshTokenAccount: PublicKey, collateralMint: PublicKey, ushMintPublickey: PublicKey, oldSmallerPublicKey: PublicKey, newSmallerPublicKey: PublicKey, newLargerPublicKey: PublicKey, depositAmount: number, overrideTime?: number): Promise<TransactionInstruction>;
@@ -1,5 +1,5 @@
1
1
  import { Program, Provider } from '@project-serum/anchor';
2
2
  import { PublicKey, Signer, TransactionInstruction } from '@solana/web3.js';
3
- import { Vault } from 'idl/vault';
3
+ import { Vault } from '../idl/vault';
4
4
  export declare function initHedgeFoundation(program: Program<Vault>, provider: Provider, payer: Signer): Promise<PublicKey>;
5
5
  export declare function initHedgeFoundationInstruction(program: Program<Vault>, poolEraPublicKey: PublicKey, payerPublicKey: PublicKey): Promise<TransactionInstruction>;
@@ -1,5 +1,5 @@
1
1
  import { Program, Provider } from '@project-serum/anchor';
2
2
  import { PublicKey, Signer, TransactionInstruction } from '@solana/web3.js';
3
- import { Vault } from 'idl/vault';
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
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>;
@@ -1,5 +1,5 @@
1
1
  import { Program, Provider } from '@project-serum/anchor';
2
2
  import { PublicKey, Signer, TransactionInstruction } from '@solana/web3.js';
3
- import { Vault } from 'idl/vault';
3
+ import { Vault } from '../idl/vault';
4
4
  export declare function loanVault(program: Program<Vault>, provider: Provider, payer: Signer, vaultPublicKey: PublicKey, loanAmount: number, overrideTime?: number): Promise<PublicKey>;
5
5
  export declare function loanVaultInstruction(program: Program<Vault>, payerPublicKey: PublicKey, ownerUshAccount: PublicKey, vaultPublickey: PublicKey, vaultAssociatedTokenAccount: PublicKey, historyPublicKey: PublicKey, vaultTypeAccount: PublicKey, vaultTypeAssociatedTokenAccount: PublicKey, oldSmallerPublicKey: PublicKey, newSmallerPublicKey: PublicKey, newLargerPublicKey: PublicKey, loanAmount: number, overrideTime?: number): Promise<TransactionInstruction>;
@@ -1,5 +1,5 @@
1
1
  import { Program, Provider } from '@project-serum/anchor';
2
2
  import { PublicKey, Signer, TransactionInstruction } from '@solana/web3.js';
3
- import { Vault } from 'idl/vault';
3
+ import { Vault } from '../idl/vault';
4
4
  export declare function redeemVault(program: Program<Vault>, provider: Provider, payer: Signer, vaultPublicKey: PublicKey, redeemAmount: number, transactionOverrideTime?: number): Promise<PublicKey>;
5
5
  export declare function redeemVaultInstruction(program: Program<Vault>, payerPublicKey: PublicKey, payerUshAccount: PublicKey, destinationTokenAccount: PublicKey, vaultPublickey: PublicKey, vaultAssociatedTokenAccount: PublicKey, historyPublicKey: PublicKey, vaultTypeAccount: PublicKey, vaultTypeAssociatedTokenAccount: PublicKey, oldSmallerPublicKey: PublicKey, newSmallerPublicKey: PublicKey, newLargerPublicKey: PublicKey, redeemAmount: number, transactionOverrideTime?: number): Promise<TransactionInstruction>;
@@ -1,7 +1,7 @@
1
1
  import { Program, Provider } from '@project-serum/anchor';
2
- import { Signer, TransactionInstruction } from '@solana/web3.js';
3
- import { Vault } from 'idl/vault';
4
- export declare function refreshOraclePrice(program: Program<Vault>, provider: Provider, payer: Signer, collateralType: string, network: Cluster, overridePrice?: number, overrideTime?: number): Promise<string>;
2
+ import { Signer, TransactionInstruction, TransactionSignature } from '@solana/web3.js';
3
+ import { Vault } from '../idl/vault';
4
+ export declare function refreshOraclePrice(program: Program<Vault>, provider: Provider, payer: Signer, collateralType: string, network: Cluster, overridePrice?: number, overrideTime?: number): Promise<TransactionSignature | void>;
5
5
  export declare function refreshOraclePriceInstruction(program: Program<Vault>, collateralType: string, network: Cluster, overridePrice?: number, overrideTime?: number): Promise<TransactionInstruction>;
6
6
  export declare enum Cluster {
7
7
  Testing = "Testing",
@@ -1,5 +1,5 @@
1
1
  import { Program, Provider } from '@project-serum/anchor';
2
2
  import { PublicKey, Signer, TransactionInstruction } from '@solana/web3.js';
3
- import { Vault } from 'idl/vault';
3
+ import { Vault } from '../idl/vault';
4
4
  export declare function repayVault(program: Program<Vault>, provider: Provider, payer: Signer, vaultPublicKey: PublicKey, repayAmount: number, overrideTime?: number): Promise<PublicKey>;
5
5
  export declare function repayVaultInstruction(program: Program<Vault>, payerPublicKey: PublicKey, ownerUshAccount: PublicKey, vaultPublickey: PublicKey, vaultAssociatedTokenAccount: PublicKey, historyPublicKey: PublicKey, vaultTypeAccount: PublicKey, vaultTypeAssociatedTokenAccount: PublicKey, oldSmallerPublicKey: PublicKey, newSmallerPublicKey: PublicKey, newLargerPublicKey: PublicKey, repayAmount: number, overrideTime?: number): Promise<TransactionInstruction>;
@@ -1,5 +1,5 @@
1
1
  import { Program, Provider } from '@project-serum/anchor';
2
2
  import { PublicKey, Signer, TransactionInstruction } from '@solana/web3.js';
3
- import { Vault } from 'idl/vault';
3
+ import { Vault } from '../idl/vault';
4
4
  export declare function setHalted(program: Program<Vault>, provider: Provider, payer: Signer, halted: boolean): Promise<PublicKey>;
5
5
  export declare function setHaltedInstruction(program: Program<Vault>, vaultSystemStatePublicKey: PublicKey, payerPublicKey: PublicKey, halted: boolean): Promise<TransactionInstruction>;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="bn.js" />
2
2
  import { BN, Program, Provider } from '@project-serum/anchor';
3
3
  import { PublicKey, Signer, TransactionInstruction } from '@solana/web3.js';
4
- import { Vault } from 'idl/vault';
4
+ import { Vault } from '../idl/vault';
5
5
  export interface VaultTypeConfig {
6
6
  maxDebtExtended?: BN;
7
7
  minDebtPerVault?: BN;
@@ -9,6 +9,9 @@ export interface VaultTypeConfig {
9
9
  oracleChainlink?: PublicKey;
10
10
  oraclePyth?: PublicKey;
11
11
  oracleSwitchboard?: PublicKey;
12
+ priorityPyth?: number;
13
+ priorityChainlink?: number;
14
+ prioritySwitchboard?: number;
12
15
  deprecated?: boolean;
13
16
  }
14
17
  export declare function updateVaultType(program: Program<Vault>, provider: Provider, payer: Signer, vaultTypeAccount: PublicKey, oracleInfoAccount: PublicKey, config: VaultTypeConfig): Promise<PublicKey>;
@@ -1,5 +1,5 @@
1
1
  import { Program, Provider } from '@project-serum/anchor';
2
2
  import { PublicKey, Signer, TransactionInstruction } from '@solana/web3.js';
3
- import { Vault } from 'idl/vault';
3
+ import { Vault } from '../idl/vault';
4
4
  export declare function withdrawStakingPool(program: Program<Vault>, provider: Provider, payer: Signer, poolPositionPublicKey: PublicKey, stakedTokenMintPublicKey: PublicKey, overrideStartTime?: number): Promise<PublicKey>;
5
5
  export declare function withdrawStakingPoolInstruction(program: Program<Vault>, payerPublicKey: PublicKey, poolPositionPublicKey: PublicKey, stakedTokenMintPublicKey: PublicKey, overrideStartTime?: number): Promise<TransactionInstruction>;
@@ -1,5 +1,5 @@
1
1
  import { Program, Provider } from '@project-serum/anchor';
2
2
  import { PublicKey, Signer, TransactionInstruction } from '@solana/web3.js';
3
- import { Vault } from 'idl/vault';
3
+ import { Vault } from '../idl/vault';
4
4
  export declare function withdrawVault(program: Program<Vault>, provider: Provider, payer: Signer, vaultPublicKey: PublicKey, withdrawAmount: number, overrideTime?: number): Promise<PublicKey>;
5
5
  export declare function withdrawVaultInstruction(program: Program<Vault>, vaultSystemStatePublicKey: PublicKey, payerPublicKey: PublicKey, destinationTokenAccount: PublicKey, vaultPublickey: PublicKey, vaultAssociatedCollateralPublicKey: PublicKey, vaultTypeAccount: PublicKey, vaultTypeAssociatedTokenAccount: PublicKey, hedgeStakingPoolPublicKey: PublicKey, hedgeStakingPoolAssociatedUshTokenAccount: PublicKey, ushMint: PublicKey, historyPublicKey: PublicKey, oldSmallerPublicKey: PublicKey, newSmallerPublicKey: PublicKey, newLargerPublicKey: PublicKey, withdrawAmount: number, overrideTime?: number): Promise<TransactionInstruction>;
@@ -1,6 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  import { PublicKey } from '@solana/web3.js';
3
3
  import Decimal from 'decimal.js';
4
+ import VaultType from './VaultType';
4
5
  /**
5
6
  * A class that represents an on-chian vault.
6
7
  */
@@ -21,7 +22,7 @@ export declare class VaultAccount {
21
22
  debtProductSnapshotBytes: Decimal;
22
23
  /** Collateral redistribution snapshot' */
23
24
  collateralAccumulatorSnapshotBytes: Decimal;
24
- /** The vault type eg '2-SOL-150-0' */
25
+ /** The vault type eg '2-SOL-150-0-----' */
25
26
  vaultTypeName: string;
26
27
  /** Current State of the vault ("Open", "Closed", "Liquidated") */
27
28
  vaultStatus: string;
@@ -55,11 +56,11 @@ export declare class VaultAccount {
55
56
  * @returns example: `1b6ca...azy71s`
56
57
  */
57
58
  toDisplayString(): string;
58
- addDebt(newNormalizedDebt: Decimal, vaultTypeCompoundedInterest: Decimal): void;
59
+ addDebt(additionalDebt: Decimal, vaultTypeAccount: VaultType): void;
59
60
  addDeposit(depositAmount: number): void;
60
61
  redeem(): void;
61
62
  liquidate(): void;
62
- updateDebtAndCollateral(vaultTypeAccountData: any): void;
63
+ updateDebtAndCollateral(vaultTypeAccountData: VaultType): void;
63
64
  toString(highlight: PublicKey): string;
64
65
  /**
65
66
  * Creates a VaultAccount from a slice of data
@@ -1,5 +1,5 @@
1
1
  import { Program, Provider } from '@project-serum/anchor';
2
2
  import { PublicKey } from '@solana/web3.js';
3
3
  import { VaultAccount } from '../state/VaultAccount';
4
- import { Vault } from 'idl/vault';
4
+ import { Vault } from '../idl/vault';
5
5
  export declare function getLinkedListAccounts(program: Program<Vault>, provider: Provider, vaultTypeAccountPublicKey: PublicKey, vaultPublicKey: PublicKey, depositAmount: number, loanAmount: number, redeem: boolean, liquidate: boolean, cachedVaults?: VaultAccount[]): Promise<[PublicKey, PublicKey, PublicKey, VaultAccount[]]>;
package/lib/Constants.js CHANGED
@@ -9,13 +9,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
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;
12
+ exports.findAssociatedTokenAddress = exports.findVaultAddress = exports.getVaultTypeOracleAccountPublicKey = exports.getVaultTypeAccountPublicKey = exports.getPoolPublicKeyForMint = exports.getHedgeMintPublicKey = exports.getVaultSystemStatePublicKey = exports.getUshMintPublicKey = exports.getLiquidationPoolUshAccountPublicKey = exports.getLiquidationPoolStatePublicKey = exports.CHAINLINK_PROGRAM_ID = 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 = 'zooJaircVAoQ4e7EXRDocnsbB7UPYQ6J7bKyZEMh784';
15
+ exports.HEDGE_PROGRAM_ID = 'HedgeiSAoDWrgfyJ9z8XVsxhcCY2D9aHq1o3kTEbG1C1';
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);
19
+ exports.CHAINLINK_PROGRAM_ID = "HEvSKofvBgfaexv23kMabbYqxasxU3mQ4ibBMEmJWHny";
19
20
  const enc = new TextEncoder();
20
21
  function getLiquidationPoolStatePublicKey() {
21
22
  return __awaiter(this, void 0, void 0, function* () {