hedge-web3 0.2.21 → 0.2.25

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.
Files changed (92) hide show
  1. package/declarations/Constants.d.ts +25 -12
  2. package/declarations/idl/pyth.d.ts +44 -24
  3. package/declarations/idl/switchboard.d.ts +47 -0
  4. package/declarations/idl/vault.d.ts +905 -155
  5. package/declarations/index.d.ts +26 -20
  6. package/declarations/instructions/closeLiquidationPoolPosition.d.ts +2 -2
  7. package/declarations/instructions/createReferralAccount.d.ts +17 -0
  8. package/declarations/instructions/createUserReferralAccount.d.ts +5 -0
  9. package/declarations/instructions/depositLiquidationPool.d.ts +2 -2
  10. package/declarations/instructions/loanVault.d.ts +2 -2
  11. package/declarations/instructions/psmEditAccount.d.ts +12 -0
  12. package/declarations/instructions/psmMintUsh.d.ts +2 -2
  13. package/declarations/instructions/psmRedeemUsh.d.ts +2 -2
  14. package/declarations/instructions/referralClaimFees.d.ts +16 -0
  15. package/declarations/instructions/transferVault.d.ts +3 -17
  16. package/declarations/instructions/updateReferralAccount.d.ts +13 -0
  17. package/declarations/instructions/updateReferralState.d.ts +20 -0
  18. package/declarations/state/VaultAccount.d.ts +1 -1
  19. package/declarations/utils/getLinkedListAccounts.d.ts +2 -2
  20. package/lib/Constants.js +57 -28
  21. package/lib/idl/pyth.js +44 -24
  22. package/lib/idl/switchboard.js +49 -0
  23. package/lib/idl/vault.js +898 -148
  24. package/lib/index.js +26 -20
  25. package/lib/instructions/claimLiquidationPoolPosition.js +10 -7
  26. package/lib/instructions/claimStakingPoolPosition.js +5 -5
  27. package/lib/instructions/closeClaimedLiquidationPoolPosition.js +1 -1
  28. package/lib/instructions/closeLiquidationPoolPosition.js +25 -12
  29. package/lib/instructions/createReferralAccount.js +80 -0
  30. package/lib/instructions/createStakingPool.js +7 -7
  31. package/lib/instructions/createUserReferralAccount.js +61 -0
  32. package/lib/instructions/createVault.js +15 -15
  33. package/lib/instructions/depositLiquidationPool.js +21 -10
  34. package/lib/instructions/depositStakingPool.js +5 -5
  35. package/lib/instructions/depositVault.js +11 -9
  36. package/lib/instructions/initHedgeFoundation.js +8 -8
  37. package/lib/instructions/initHedgeFoundationTokens.js +5 -5
  38. package/lib/instructions/liquidateVault.js +8 -8
  39. package/lib/instructions/loanVault.js +23 -10
  40. package/lib/instructions/psmEditAccount.js +60 -0
  41. package/lib/instructions/psmMintUsh.js +24 -13
  42. package/lib/instructions/psmRedeemUsh.js +24 -13
  43. package/lib/instructions/redeemVault.js +7 -7
  44. package/lib/instructions/referralClaimFees.js +84 -0
  45. package/lib/instructions/refreshOraclePrice.js +3 -3
  46. package/lib/instructions/repayVault.js +9 -9
  47. package/lib/instructions/setHalted.js +1 -1
  48. package/lib/instructions/transferVault.js +10 -24
  49. package/lib/instructions/updateReferralAccount.js +50 -0
  50. package/lib/instructions/updateReferralState.js +57 -0
  51. package/lib/instructions/updateVaultType.js +1 -1
  52. package/lib/instructions/withdrawStakingPool.js +11 -11
  53. package/lib/instructions/withdrawVault.js +5 -5
  54. package/lib/state/VaultAccount.js +3 -1
  55. package/lib/utils/getLinkedListAccounts.js +2 -3
  56. package/package.json +1 -1
  57. package/src/Constants.ts +64 -63
  58. package/src/idl/pyth.ts +88 -48
  59. package/src/idl/switchboard.ts +93 -0
  60. package/src/idl/vault.ts +1851 -351
  61. package/src/index.ts +28 -24
  62. package/src/instructions/claimLiquidationPoolPosition.ts +31 -29
  63. package/src/instructions/claimStakingPoolPosition.ts +10 -15
  64. package/src/instructions/closeClaimedLiquidationPoolPosition.ts +4 -2
  65. package/src/instructions/closeLiquidationPoolPosition.ts +36 -18
  66. package/src/instructions/createReferralAccount.ts +115 -0
  67. package/src/instructions/createStakingPool.ts +11 -13
  68. package/src/instructions/createUserReferralAccount.ts +75 -0
  69. package/src/instructions/createVault.ts +44 -26
  70. package/src/instructions/depositLiquidationPool.ts +34 -21
  71. package/src/instructions/depositStakingPool.ts +18 -14
  72. package/src/instructions/depositVault.ts +23 -18
  73. package/src/instructions/initHedgeFoundation.ts +16 -14
  74. package/src/instructions/initHedgeFoundationTokens.ts +12 -14
  75. package/src/instructions/liquidateVault.ts +15 -20
  76. package/src/instructions/loanVault.ts +29 -19
  77. package/src/instructions/{psmEditAccount.rs → psmEditAccount.ts} +10 -18
  78. package/src/instructions/psmMintUsh.ts +35 -38
  79. package/src/instructions/psmRedeemUsh.ts +35 -40
  80. package/src/instructions/redeemVault.ts +12 -15
  81. package/src/instructions/referralClaimFees.ts +145 -0
  82. package/src/instructions/refreshOraclePrice.ts +6 -8
  83. package/src/instructions/repayVault.ts +18 -16
  84. package/src/instructions/setHalted.ts +5 -24
  85. package/src/instructions/transferVault.ts +57 -0
  86. package/src/instructions/updateReferralAccount.ts +70 -0
  87. package/src/instructions/updateReferralState.ts +86 -0
  88. package/src/instructions/updateVaultType.ts +9 -23
  89. package/src/instructions/withdrawStakingPool.ts +17 -21
  90. package/src/instructions/withdrawVault.ts +10 -16
  91. package/src/state/VaultAccount.ts +9 -10
  92. package/src/utils/getLinkedListAccounts.ts +4 -7
@@ -1,63 +1,76 @@
1
1
  import { PublicKey } from '@solana/web3.js';
2
- export declare const HEDGE_PROGRAM_ID = "HedgeEohwU6RqokrvPU4Hb6XKPub8NuKbnPmY7FoMMtN";
3
- export declare const HEDGE_PROGRAM_PUBLICKEY: PublicKey;
4
2
  export declare const CHAINLINK_SOL_USD_ID = "FmAmfoyPXiA8Vhhe6MZTr3U6rZfEZ1ctEHay1ysqCqcf";
5
3
  export declare const CHAINLINK_SOL_USD_PUBLICKEY: PublicKey;
6
4
  export declare const CHAINLINK_PROGRAM_ID = "HEvSKofvBgfaexv23kMabbYqxasxU3mQ4ibBMEmJWHny";
7
5
  /**
8
6
  * @returns The Liquidation pool public key
9
7
  */
10
- export declare function getLiquidationPoolStatePublicKey(): Promise<PublicKey>;
8
+ export declare function getLiquidationPoolStatePublicKey(hedgeProgramId: PublicKey): Promise<PublicKey>;
11
9
  /**
12
10
  *
13
11
  * @returns The liquidation pool ush account public key
14
12
  */
15
- export declare function getLiquidationPoolUshAccountPublicKey(): Promise<PublicKey>;
13
+ export declare function getLiquidationPoolUshAccountPublicKey(hedgeProgramId: PublicKey): Promise<PublicKey>;
16
14
  /**
17
15
  *
18
16
  * @returns The USH mint public key
19
17
  */
20
- export declare function getUshMintPublicKey(): Promise<PublicKey>;
18
+ export declare function getUshMintPublicKey(hedgeProgramId: PublicKey): Promise<PublicKey>;
21
19
  /**
22
20
  *
23
21
  * @returns The Vault System State public key
24
22
  */
25
- export declare function getVaultSystemStatePublicKey(): Promise<PublicKey>;
23
+ export declare function getVaultSystemStatePublicKey(hedgeProgramId: PublicKey): Promise<PublicKey>;
24
+ /**
25
+ *
26
+ * @returns The Referral State public key
27
+ */
28
+ export declare function getReferralStatePublicKey(hedgeProgramId: PublicKey): Promise<PublicKey>;
29
+ /**
30
+ *
31
+ * @returns The Referral State public key based off the owner's public key
32
+ */
33
+ export declare function getReferralAccountPublicKey(hedgeProgramId: PublicKey, ownerPublicKey: PublicKey): Promise<PublicKey>;
34
+ /**
35
+ *
36
+ * @returns The user referral account public key based off the user's public key
37
+ */
38
+ export declare function getUserReferralAccountPublicKey(hedgeProgramId: PublicKey, ownerPublicKey: PublicKey): Promise<PublicKey>;
26
39
  /**
27
40
  *
28
41
  * @returns The HDG mint public key
29
42
  */
30
- export declare function getHedgeMintPublicKey(): Promise<PublicKey>;
43
+ export declare function getHedgeMintPublicKey(hedgeProgramId: PublicKey): Promise<PublicKey>;
31
44
  /**
32
45
  * Get the public key for any staking pool
33
46
  *
34
47
  * @param mintPublicKey Staked collateral mint public key
35
48
  * @returns the public key for that staking pool
36
49
  */
37
- export declare function getPoolPublicKeyForMint(mintPublicKey: PublicKey): Promise<[PublicKey, number, string]>;
50
+ export declare function getPoolPublicKeyForMint(hedgeProgramId: PublicKey, mintPublicKey: PublicKey): Promise<[PublicKey, number, string]>;
38
51
  /**
39
52
  *
40
53
  * @param collateralType String name of the collateral type (must be 16 chars)
41
54
  * @returns The public key for that Vault Type account
42
55
  */
43
- export declare function getVaultTypeAccountPublicKey(collateralType: string): Promise<PublicKey>;
56
+ export declare function getVaultTypeAccountPublicKey(hedgeProgramId: PublicKey, collateralType: string): Promise<PublicKey>;
44
57
  /**
45
58
  *
46
59
  * @param collateralType String name of the collateral type (must be 16 chars)
47
60
  * @returns The public key for that Vault Type oracle info
48
61
  */
49
- export declare function getVaultTypeOracleAccountPublicKey(collateralType: string): Promise<PublicKey>;
62
+ export declare function getVaultTypeOracleAccountPublicKey(hedgeProgramId: PublicKey, collateralType: string): Promise<PublicKey>;
50
63
  /**
51
64
  * Vaults are stored in PDA accounts. Use this to get the address from a salt
52
65
  *
53
66
  * @param vaultSalt String salt for the vault (must be 8 chars)
54
67
  * @returns The public key for that Vault Type oracle info
55
68
  */
56
- export declare function findVaultAddress(vaultSalt: string): Promise<PublicKey>;
69
+ export declare function findVaultAddress(hedgeProgramId: PublicKey, vaultSalt: string): Promise<PublicKey>;
57
70
  /**
58
71
  *
59
72
  * @param walletAddress Owner public key
60
73
  * @param tokenMintAddress Token mint
61
74
  * @returns The associated token account public key
62
75
  */
63
- export declare function findAssociatedTokenAddress(walletAddress: PublicKey, tokenMintAddress: PublicKey): Promise<PublicKey>;
76
+ export declare function findAssociatedTokenAddress(hedgeProgramId: PublicKey, walletAddress: PublicKey, tokenMintAddress: PublicKey): Promise<PublicKey>;
@@ -5,19 +5,9 @@ export declare type Pyth = {
5
5
  {
6
6
  "name": "initialize";
7
7
  "accounts": [
8
- {
9
- "name": "payer";
10
- "isMut": true;
11
- "isSigner": true;
12
- },
13
8
  {
14
9
  "name": "price";
15
10
  "isMut": true;
16
- "isSigner": true;
17
- },
18
- {
19
- "name": "systemProgram";
20
- "isMut": false;
21
11
  "isSigner": false;
22
12
  }
23
13
  ];
@@ -53,27 +43,57 @@ export declare type Pyth = {
53
43
  ];
54
44
  }
55
45
  ];
56
- "accounts": [
46
+ "types": [
57
47
  {
58
- "name": "priceWrapper";
48
+ "name": "PriceStatus";
59
49
  "type": {
60
- "kind": "struct";
61
- "fields": [
50
+ "kind": "enum";
51
+ "variants": [
52
+ {
53
+ "name": "Unknown";
54
+ },
55
+ {
56
+ "name": "Trading";
57
+ },
62
58
  {
63
- "name": "price";
64
- "type": {
65
- "defined": "Price";
66
- };
59
+ "name": "Halted";
60
+ },
61
+ {
62
+ "name": "Auction";
67
63
  }
68
64
  ];
69
65
  };
70
- }
71
- ];
72
- "errors": [
66
+ },
67
+ {
68
+ "name": "CorpAction";
69
+ "type": {
70
+ "kind": "enum";
71
+ "variants": [
72
+ {
73
+ "name": "NoCorpAct";
74
+ }
75
+ ];
76
+ };
77
+ },
73
78
  {
74
- "code": 6000;
75
- "name": "InvalidTradingStatus";
76
- "msg": "invalid trading status";
79
+ "name": "PriceType";
80
+ "type": {
81
+ "kind": "enum";
82
+ "variants": [
83
+ {
84
+ "name": "Unknown";
85
+ },
86
+ {
87
+ "name": "Price";
88
+ },
89
+ {
90
+ "name": "TWAP";
91
+ },
92
+ {
93
+ "name": "Volatility";
94
+ }
95
+ ];
96
+ };
77
97
  }
78
98
  ];
79
99
  };
@@ -0,0 +1,47 @@
1
+ export declare type Switchboard = {
2
+ "version": "0.1.0";
3
+ "name": "switchboard";
4
+ "instructions": [
5
+ {
6
+ "name": "initialize";
7
+ "accounts": [
8
+ {
9
+ "name": "aggregator";
10
+ "isMut": true;
11
+ "isSigner": false;
12
+ }
13
+ ];
14
+ "args": [
15
+ {
16
+ "name": "price";
17
+ "type": "u64";
18
+ },
19
+ {
20
+ "name": "scale";
21
+ "type": "u16";
22
+ }
23
+ ];
24
+ },
25
+ {
26
+ "name": "setPrice";
27
+ "accounts": [
28
+ {
29
+ "name": "aggregator";
30
+ "isMut": true;
31
+ "isSigner": false;
32
+ }
33
+ ];
34
+ "args": [
35
+ {
36
+ "name": "price";
37
+ "type": "u64";
38
+ },
39
+ {
40
+ "name": "scale";
41
+ "type": "u16";
42
+ }
43
+ ];
44
+ }
45
+ ];
46
+ };
47
+ export declare const IDL: Switchboard;