hedge-web3 0.2.31 → 0.3.0

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 (144) hide show
  1. package/declarations/Constants.d.ts +0 -12
  2. package/declarations/HedgeConstants.d.ts +76 -0
  3. package/declarations/idl/pyth.d.ts +1 -1
  4. package/declarations/idl/switchboard.d.ts +1 -1
  5. package/declarations/idl/vault.d.ts +60 -744
  6. package/declarations/index.d.ts +1 -10
  7. package/declarations/instructions/claimLiquidationPoolPosition.d.ts +1 -1
  8. package/declarations/instructions/claimStakingPoolPosition.d.ts +1 -1
  9. package/declarations/instructions/closeClaimedLiquidationPoolPosition.d.ts +1 -1
  10. package/declarations/instructions/closeLiquidationPoolPosition.d.ts +1 -1
  11. package/declarations/instructions/createReferralAccount.d.ts +3 -3
  12. package/declarations/instructions/createStakingPool.d.ts +1 -1
  13. package/declarations/instructions/createUserReferralAccount.d.ts +1 -1
  14. package/declarations/instructions/createVault.d.ts +1 -2
  15. package/declarations/instructions/depositLiquidationPool.d.ts +1 -2
  16. package/declarations/instructions/depositStakingPool.d.ts +1 -2
  17. package/declarations/instructions/depositVault.d.ts +1 -2
  18. package/declarations/instructions/initHedgeFoundation.d.ts +1 -1
  19. package/declarations/instructions/initHedgeFoundationTokens.d.ts +1 -1
  20. package/declarations/instructions/liquidateVault.d.ts +1 -1
  21. package/declarations/instructions/loanVault.d.ts +1 -2
  22. package/declarations/instructions/psmEditAccount.d.ts +1 -2
  23. package/declarations/instructions/psmMintUsh.d.ts +1 -2
  24. package/declarations/instructions/psmRedeemUsh.d.ts +1 -2
  25. package/declarations/instructions/redeemVault.d.ts +1 -2
  26. package/declarations/instructions/referralClaimFees.d.ts +3 -3
  27. package/declarations/instructions/refreshOraclePrice.d.ts +1 -1
  28. package/declarations/instructions/repayVault.d.ts +1 -2
  29. package/declarations/instructions/setHalted.d.ts +1 -1
  30. package/declarations/instructions/transferVault.d.ts +1 -1
  31. package/declarations/instructions/updateReferralAccount.d.ts +1 -2
  32. package/declarations/instructions/updateReferralState.d.ts +1 -2
  33. package/declarations/instructions/updateVaultType.d.ts +1 -2
  34. package/declarations/instructions/withdrawStakingPool.d.ts +1 -1
  35. package/declarations/instructions/withdrawVault.d.ts +1 -2
  36. package/declarations/state/VaultAccount.d.ts +2 -3
  37. package/declarations/utils/getLinkedListAccounts.d.ts +1 -2
  38. package/lib/Constants.js +27 -54
  39. package/lib/HedgeConstants.js +170 -0
  40. package/lib/HedgeDecimal.js +1 -2
  41. package/lib/StakingPools.js +5 -1
  42. package/lib/Vaults.js +5 -1
  43. package/lib/idl/vault.js +60 -744
  44. package/lib/index.js +6 -11
  45. package/lib/instructions/claimLiquidationPoolPosition.js +7 -8
  46. package/lib/instructions/claimStakingPoolPosition.js +7 -8
  47. package/lib/instructions/closeClaimedLiquidationPoolPosition.js +2 -3
  48. package/lib/instructions/closeLiquidationPoolPosition.js +16 -17
  49. package/lib/instructions/createReferralAccount.js +13 -17
  50. package/lib/instructions/createStakingPool.js +10 -11
  51. package/lib/instructions/createUserReferralAccount.js +9 -10
  52. package/lib/instructions/createVault.js +20 -21
  53. package/lib/instructions/depositLiquidationPool.js +12 -13
  54. package/lib/instructions/depositStakingPool.js +8 -9
  55. package/lib/instructions/depositVault.js +10 -11
  56. package/lib/instructions/initHedgeFoundation.js +10 -11
  57. package/lib/instructions/initHedgeFoundationTokens.js +7 -8
  58. package/lib/instructions/liquidateVault.js +12 -19
  59. package/lib/instructions/loanVault.js +16 -23
  60. package/lib/instructions/psmEditAccount.js +11 -11
  61. package/lib/instructions/psmMintUsh.js +18 -19
  62. package/lib/instructions/psmRedeemUsh.js +18 -19
  63. package/lib/instructions/redeemVault.js +10 -11
  64. package/lib/instructions/referralClaimFees.js +12 -16
  65. package/lib/instructions/refreshOraclePrice.js +9 -9
  66. package/lib/instructions/repayVault.js +12 -13
  67. package/lib/instructions/setHalted.js +4 -5
  68. package/lib/instructions/transferVault.js +2 -3
  69. package/lib/instructions/updateReferralAccount.js +6 -7
  70. package/lib/instructions/updateReferralState.js +6 -7
  71. package/lib/instructions/updateVaultType.js +5 -6
  72. package/lib/instructions/withdrawStakingPool.js +14 -15
  73. package/lib/instructions/withdrawVault.js +8 -9
  74. package/lib/state/VaultAccount.js +22 -8
  75. package/lib/state/VaultHistoryEvent.js +2 -2
  76. package/lib/utils/Errors.js +2 -3
  77. package/lib/utils/getLinkedListAccounts.js +2 -3
  78. package/lib/utils/sendAndConfirmWithDebug.js +1 -1
  79. package/package.json +9 -8
  80. package/src/{Constants.ts → HedgeConstants.ts} +13 -43
  81. package/src/idl/vault.ts +2382 -3750
  82. package/src/index.ts +3 -10
  83. package/src/instructions/claimLiquidationPoolPosition.ts +2 -2
  84. package/src/instructions/claimStakingPoolPosition.ts +2 -2
  85. package/src/instructions/closeClaimedLiquidationPoolPosition.ts +1 -1
  86. package/src/instructions/closeLiquidationPoolPosition.ts +2 -2
  87. package/src/instructions/createReferralAccount.ts +11 -15
  88. package/src/instructions/createStakingPool.ts +11 -4
  89. package/src/instructions/createUserReferralAccount.ts +2 -2
  90. package/src/instructions/createVault.ts +2 -2
  91. package/src/instructions/depositLiquidationPool.ts +2 -2
  92. package/src/instructions/depositStakingPool.ts +2 -2
  93. package/src/instructions/depositVault.ts +2 -2
  94. package/src/instructions/initHedgeFoundation.ts +2 -2
  95. package/src/instructions/initHedgeFoundationTokens.ts +2 -2
  96. package/src/instructions/liquidateVault.ts +29 -39
  97. package/src/instructions/loanVault.ts +23 -36
  98. package/src/instructions/psmEditAccount.ts +3 -3
  99. package/src/instructions/psmMintUsh.ts +3 -3
  100. package/src/instructions/psmRedeemUsh.ts +3 -3
  101. package/src/instructions/redeemVault.ts +2 -2
  102. package/src/instructions/referralClaimFees.ts +12 -18
  103. package/src/instructions/refreshOraclePrice.ts +4 -4
  104. package/src/instructions/repayVault.ts +2 -2
  105. package/src/instructions/setHalted.ts +2 -2
  106. package/src/instructions/transferVault.ts +1 -1
  107. package/src/instructions/updateReferralAccount.ts +2 -2
  108. package/src/instructions/updateReferralState.ts +2 -2
  109. package/src/instructions/updateVaultType.ts +2 -2
  110. package/src/instructions/withdrawStakingPool.ts +2 -2
  111. package/src/instructions/withdrawVault.ts +2 -2
  112. package/src/utils/Errors.ts +1 -1
  113. package/src/utils/getLinkedListAccounts.ts +1 -1
  114. package/declarations/instructions/adminWithdrawCol.d.ts +0 -5
  115. package/declarations/instructions/adminWithdrawUsh.d.ts +0 -5
  116. package/declarations/instructions/createCompoundStakingPool.d.ts +0 -5
  117. package/declarations/instructions/createCompoundStakingPoolPosition.d.ts +0 -6
  118. package/declarations/instructions/depositCompoundStakingPoolPosition.d.ts +0 -6
  119. package/declarations/instructions/depositRewardsToCompoundPool.d.ts +0 -6
  120. package/declarations/instructions/setCompoundPoolActive.d.ts +0 -5
  121. package/declarations/instructions/setDelegateWallet.d.ts +0 -5
  122. package/declarations/instructions/setVaultTypeStatus.d.ts +0 -4
  123. package/declarations/instructions/withdrawCompoundStakingPoolPosition.d.ts +0 -6
  124. package/declarations/utils/Sender.d.ts +0 -2
  125. package/lib/instructions/adminWithdrawCol.js +0 -60
  126. package/lib/instructions/adminWithdrawUsh.js +0 -57
  127. package/lib/instructions/createCompoundStakingPool.js +0 -58
  128. package/lib/instructions/createCompoundStakingPoolPosition.js +0 -56
  129. package/lib/instructions/depositCompoundStakingPoolPosition.js +0 -55
  130. package/lib/instructions/depositRewardsToCompoundPool.js +0 -64
  131. package/lib/instructions/setCompoundPoolActive.js +0 -43
  132. package/lib/instructions/setDelegateWallet.js +0 -43
  133. package/lib/instructions/setVaultTypeStatus.js +0 -38
  134. package/lib/instructions/withdrawCompoundStakingPoolPosition.js +0 -64
  135. package/lib/utils/Sender.js +0 -32
  136. package/src/instructions/adminWithdrawCol.ts +0 -87
  137. package/src/instructions/adminWithdrawUsh.ts +0 -78
  138. package/src/instructions/createCompoundStakingPool.ts +0 -63
  139. package/src/instructions/createCompoundStakingPoolPosition.ts +0 -85
  140. package/src/instructions/depositCompoundStakingPoolPosition.ts +0 -78
  141. package/src/instructions/depositRewardsToCompoundPool.ts +0 -110
  142. package/src/instructions/setCompoundPoolActive.ts +0 -51
  143. package/src/instructions/setDelegateWallet.ts +0 -51
  144. package/src/instructions/withdrawCompoundStakingPoolPosition.ts +0 -100
@@ -1,110 +0,0 @@
1
- import { BN, Program, Provider } from '@project-serum/anchor'
2
- import { ASSOCIATED_TOKEN_PROGRAM_ID, getOrCreateAssociatedTokenAccount, TOKEN_PROGRAM_ID } from '@solana/spl-token'
3
- import {
4
- Keypair,
5
- PublicKey,
6
- Signer,
7
- SystemProgram,
8
- SYSVAR_RENT_PUBKEY,
9
- Transaction,
10
- TransactionInstruction,
11
- } from '@solana/web3.js'
12
- import {
13
- findAssociatedTokenAddress,
14
- getCompoundPoolPublicKeyForMint,
15
- getHedgeMintPublicKey,
16
- getPoolPublicKeyForMint,
17
- getUshMintPublicKey,
18
- getVaultSystemStatePublicKey,
19
- getVaultTypeAccountPublicKey,
20
- } from '../Constants'
21
- import { Vault } from '../idl/vault'
22
- import { parseAnchorErrors } from '../utils/Errors'
23
- import sendAndConfirmWithDebug from '../utils/sendAndConfirmWithDebug'
24
-
25
- export async function depositRewardsToCompoundStakingPool(
26
- program: Program<Vault>,
27
- provider: Provider,
28
- payer: Signer,
29
- mintPublicKey: PublicKey,
30
- depositAmount: number,
31
- overrideStartTime?: number
32
- ): Promise<PublicKey> {
33
- const history = Keypair.generate()
34
-
35
- const [poolPublickey] = await getCompoundPoolPublicKeyForMint(program.programId, mintPublicKey)
36
- const [poolStakingPublickey] = await getPoolPublicKeyForMint(program.programId, mintPublicKey)
37
-
38
- const hedgeMintPublickey = await getHedgeMintPublicKey(program.programId)
39
-
40
- const stakingPoolAccountObject = await program.account.stakingPool.fetch(poolStakingPublickey)
41
-
42
- const payerAssociatedTokenAccount = await getOrCreateAssociatedTokenAccount(
43
- provider.connection,
44
- payer,
45
- hedgeMintPublickey,
46
- stakingPoolAccountObject.compoundPoolDelegateWallet
47
- )
48
-
49
- const transaction = new Transaction().add(
50
- await depositRewardsToCompoundStakingPoolInstruction(
51
- program,
52
- payer.publicKey,
53
- mintPublicKey,
54
- history.publicKey,
55
- new BN(depositAmount),
56
- overrideStartTime
57
- )
58
- )
59
- await sendAndConfirmWithDebug(provider.connection, transaction, [payer, history]).catch(parseAnchorErrors)
60
- return poolPublickey
61
- }
62
-
63
- export async function depositRewardsToCompoundStakingPoolInstruction(
64
- program: Program<Vault>,
65
- payerPublicKey: PublicKey,
66
- mintPublicKey: PublicKey,
67
- historyPublicKey: PublicKey,
68
- amount: BN,
69
- overrideStartTime?: number
70
- ): Promise<TransactionInstruction> {
71
- const vaultSystemStatePublicKey = await getVaultSystemStatePublicKey(program.programId)
72
- const hedgeMintPublickey = await getHedgeMintPublicKey(program.programId)
73
-
74
- const [poolPublickey, poolBump] = await getCompoundPoolPublicKeyForMint(program.programId, mintPublicKey)
75
-
76
- const [poolStakingPublickey] = await getPoolPublicKeyForMint(program.programId, mintPublicKey)
77
-
78
- const poolAssociatedHedgeTokenAccount = await findAssociatedTokenAddress(
79
- program.programId,
80
- poolPublickey,
81
- hedgeMintPublickey
82
- )
83
-
84
- const payerAssociatedHedgeTokenAccount = await findAssociatedTokenAddress(
85
- program.programId,
86
- payerPublicKey,
87
- hedgeMintPublickey
88
- )
89
-
90
- return await program.methods
91
- .depositRewardsToCompoundPool(
92
- amount,
93
- new BN(overrideStartTime ?? Math.floor(Date.now() / 1000)) // override current time
94
- )
95
- .accounts({
96
- payer: payerPublicKey,
97
- vaultSystemState: vaultSystemStatePublicKey,
98
- history: historyPublicKey,
99
- compoundPool: poolPublickey,
100
- pool: poolStakingPublickey,
101
- stakedTokenMint: mintPublicKey,
102
- hedgeMint: hedgeMintPublickey,
103
- poolAssociatedHedgeAccount: poolAssociatedHedgeTokenAccount,
104
- payerAssociatedHedgeAccount: payerAssociatedHedgeTokenAccount,
105
- tokenProgram: TOKEN_PROGRAM_ID,
106
- associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,
107
- systemProgram: SystemProgram.programId,
108
- })
109
- .instruction()
110
- }
@@ -1,51 +0,0 @@
1
- import { Program, Provider } from '@project-serum/anchor'
2
- import { PublicKey, Signer, Transaction, TransactionInstruction } from '@solana/web3.js'
3
- import { getPoolPublicKeyForMint, getVaultSystemStatePublicKey } from '../Constants'
4
-
5
- import { Vault } from '../idl/vault'
6
- import { parseAnchorErrors } from '../utils/Errors'
7
- import sendAndConfirmWithDebug from '../utils/sendAndConfirmWithDebug'
8
-
9
- export async function setCompoundPoolActive(
10
- program: Program<Vault>,
11
- provider: Provider,
12
- payer: Signer,
13
- mintPublicKey: PublicKey,
14
- setActive: boolean
15
- ): Promise<PublicKey> {
16
- const vaultSystemStatePublicKey = await getVaultSystemStatePublicKey(program.programId)
17
- const [poolPublickey] = await getPoolPublicKeyForMint(program.programId, mintPublicKey)
18
-
19
- const transaction = new Transaction().add(
20
- await setCompoundPoolActiveInstruction(
21
- program,
22
- vaultSystemStatePublicKey,
23
- payer.publicKey,
24
- poolPublickey,
25
- mintPublicKey,
26
- setActive
27
- )
28
- )
29
-
30
- await sendAndConfirmWithDebug(provider.connection, transaction, [payer]).catch(parseAnchorErrors)
31
- return poolPublickey
32
- }
33
-
34
- export async function setCompoundPoolActiveInstruction(
35
- program: Program<Vault>,
36
- vaultSystemStatePublicKey: PublicKey,
37
- payerPublicKey: PublicKey,
38
- poolPublicKey: PublicKey,
39
- stakedTokenMintPublicKey: PublicKey,
40
- setActive: boolean
41
- ): Promise<TransactionInstruction> {
42
- return await program.methods
43
- .setCompoundPoolActive(setActive)
44
- .accounts({
45
- payer: payerPublicKey,
46
- vaultSystemState: vaultSystemStatePublicKey,
47
- pool: poolPublicKey,
48
- stakedTokenMint: stakedTokenMintPublicKey,
49
- })
50
- .instruction()
51
- }
@@ -1,51 +0,0 @@
1
- import { Program, Provider } from '@project-serum/anchor'
2
- import { PublicKey, Signer, Transaction, TransactionInstruction } from '@solana/web3.js'
3
- import { getPoolPublicKeyForMint, getVaultSystemStatePublicKey } from '../Constants'
4
-
5
- import { Vault } from '../idl/vault'
6
- import { parseAnchorErrors } from '../utils/Errors'
7
- import sendAndConfirmWithDebug from '../utils/sendAndConfirmWithDebug'
8
-
9
- export async function setDelegateWallet(
10
- program: Program<Vault>,
11
- provider: Provider,
12
- payer: Signer,
13
- mintPublicKey: PublicKey,
14
- delegateWallet: PublicKey
15
- ): Promise<PublicKey> {
16
- const vaultSystemStatePublicKey = await getVaultSystemStatePublicKey(program.programId)
17
- const [poolPublickey] = await getPoolPublicKeyForMint(program.programId, mintPublicKey)
18
-
19
- const transaction = new Transaction().add(
20
- await setDelegateWalletInstruction(
21
- program,
22
- vaultSystemStatePublicKey,
23
- payer.publicKey,
24
- poolPublickey,
25
- mintPublicKey,
26
- delegateWallet
27
- )
28
- )
29
-
30
- await sendAndConfirmWithDebug(provider.connection, transaction, [payer]).catch(parseAnchorErrors)
31
- return delegateWallet
32
- }
33
-
34
- export async function setDelegateWalletInstruction(
35
- program: Program<Vault>,
36
- vaultSystemStatePublicKey: PublicKey,
37
- payerPublicKey: PublicKey,
38
- poolPublicKey: PublicKey,
39
- stakedTokenMintPublicKey: PublicKey,
40
- delegateWallet: PublicKey
41
- ): Promise<TransactionInstruction> {
42
- return await program.methods
43
- .setDelegateWallet(delegateWallet)
44
- .accounts({
45
- payer: payerPublicKey,
46
- vaultSystemState: vaultSystemStatePublicKey,
47
- pool: poolPublicKey,
48
- stakedTokenMint: stakedTokenMintPublicKey,
49
- })
50
- .instruction()
51
- }
@@ -1,100 +0,0 @@
1
- import { BN, Program, Provider } from '@project-serum/anchor'
2
- import { getOrCreateAssociatedTokenAccount, TOKEN_PROGRAM_ID } from '@solana/spl-token'
3
- import { Keypair, PublicKey, Signer, SystemProgram, Transaction, TransactionInstruction } from '@solana/web3.js'
4
- import {
5
- findAssociatedTokenAddress,
6
- getCompoundPoolPositionAddress,
7
- getCompoundPoolPublicKeyForMint,
8
- getHedgeMintPublicKey,
9
- getPoolPublicKeyForMint,
10
- getUshMintPublicKey,
11
- getVaultSystemStatePublicKey,
12
- } from '../Constants'
13
- import { Vault } from '../idl/vault'
14
- import { parseAnchorErrors } from '../utils/Errors'
15
- import sendAndConfirmWithDebug from '../utils/sendAndConfirmWithDebug'
16
-
17
- export async function withdrawCompoundStakingPoolPosition(
18
- program: Program<Vault>,
19
- provider: Provider,
20
- payer: Signer,
21
- poolPositionPublicKey: PublicKey,
22
- stakedTokenMintPublicKey: PublicKey,
23
- claimAmount: number,
24
- overrideStartTime?: number
25
- ): Promise<PublicKey> {
26
- const [poolPublickey, poolBump] = await getCompoundPoolPublicKeyForMint(program.programId, stakedTokenMintPublicKey)
27
-
28
- const poolPosition = await getCompoundPoolPositionAddress(program.programId, poolPublickey, payer.publicKey)
29
-
30
- const payerAssociatedTokenAccount = await getOrCreateAssociatedTokenAccount(
31
- provider.connection,
32
- payer,
33
- stakedTokenMintPublicKey,
34
- payer.publicKey
35
- )
36
- const transaction = new Transaction().add(
37
- await withdrawCompoundStakingPoolPositionInstruction(
38
- program,
39
- payer.publicKey,
40
- poolPositionPublicKey,
41
- stakedTokenMintPublicKey,
42
- new BN(claimAmount),
43
- overrideStartTime
44
- )
45
- )
46
-
47
- await sendAndConfirmWithDebug(provider.connection, transaction, [payer]).catch(parseAnchorErrors)
48
- return payerAssociatedTokenAccount.address
49
- }
50
-
51
- export async function withdrawCompoundStakingPoolPositionInstruction(
52
- program: Program<Vault>,
53
- payerPublicKey: PublicKey,
54
- poolPositionPublicKey: PublicKey,
55
- stakedTokenMintPublicKey: PublicKey,
56
- claimAmount: BN,
57
- overrideStartTime?: number
58
- ): Promise<TransactionInstruction> {
59
- const vaultSystemStatePublicKey = await getVaultSystemStatePublicKey(program.programId)
60
- const ushMintPublickey = await getUshMintPublicKey(program.programId)
61
- const hedgeMintPublickey = await getHedgeMintPublicKey(program.programId)
62
- const [poolPublickey, poolBump] = await getCompoundPoolPublicKeyForMint(program.programId, stakedTokenMintPublicKey)
63
- const poolAssociatedStakedTokenAccount = await findAssociatedTokenAddress(
64
- program.programId,
65
- poolPublickey,
66
- stakedTokenMintPublicKey
67
- )
68
- const poolAssociatedUshTokenAccount = await findAssociatedTokenAddress(program.programId, poolPublickey, ushMintPublickey)
69
- const payerAssociatedStakedTokenAccount = await findAssociatedTokenAddress(
70
- program.programId,
71
- payerPublicKey,
72
- stakedTokenMintPublicKey
73
- )
74
- const payerAssociatedHedgeAccount = await findAssociatedTokenAddress(program.programId, payerPublicKey, hedgeMintPublickey)
75
- const payerAssociatedUshAccount = await findAssociatedTokenAddress(program.programId, payerPublicKey, ushMintPublickey)
76
- const communityHedgeTokenAccount = await findAssociatedTokenAddress(
77
- program.programId,
78
- vaultSystemStatePublicKey,
79
- hedgeMintPublickey
80
- )
81
-
82
- return await program.methods
83
- .withdrawCompoundStakingPoolPosition(
84
- new BN(overrideStartTime ?? Math.floor(Date.now() / 1000)), // override current time
85
- claimAmount //amount to be claimed
86
- )
87
- .accounts({
88
- payer: payerPublicKey,
89
- vaultSystemState: vaultSystemStatePublicKey,
90
- pool: poolPublickey,
91
- poolPosition: poolPositionPublicKey,
92
- poolAssociatedStakedTokenAccount: poolAssociatedStakedTokenAccount,
93
- payerAssociatedStakedTokenAccount: payerAssociatedStakedTokenAccount,
94
- hedgeMint: hedgeMintPublickey,
95
- stakedTokenMint: stakedTokenMintPublicKey,
96
- tokenProgram: TOKEN_PROGRAM_ID,
97
- systemProgram: SystemProgram.programId,
98
- })
99
- .instruction()
100
- }