hedge-web3 0.1.21 → 0.1.26

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 (69) hide show
  1. package/declarations/Constants.d.ts +3 -3
  2. package/declarations/idl/vault.d.ts +43 -43
  3. package/declarations/index.d.ts +1 -0
  4. package/declarations/instructions/claimStakingPoolPosition.d.ts +4 -0
  5. package/declarations/instructions/closeLiquidationPoolPosition.d.ts +1 -1
  6. package/declarations/instructions/createVault.d.ts +1 -1
  7. package/declarations/instructions/depositLiquidationPool.d.ts +1 -1
  8. package/declarations/instructions/depositVault.d.ts +1 -1
  9. package/declarations/instructions/liquidateVault.d.ts +1 -1
  10. package/declarations/instructions/loanVault.d.ts +1 -1
  11. package/declarations/instructions/redeemVault.d.ts +1 -1
  12. package/declarations/instructions/repayVault.d.ts +1 -1
  13. package/declarations/instructions/withdrawVault.d.ts +1 -1
  14. package/declarations/state/LiquidationPosition.d.ts +2 -2
  15. package/declarations/state/StakingPool.d.ts +2 -2
  16. package/declarations/state/StakingPoolPosition.d.ts +2 -2
  17. package/declarations/state/VaultAccount.d.ts +3 -3
  18. package/declarations/state/VaultHistoryEvent.d.ts +4 -4
  19. package/lib/Constants.js +8 -8
  20. package/lib/idl/idl.js +30 -30
  21. package/lib/idl/vault.js +43 -43
  22. package/lib/index.js +1 -0
  23. package/lib/instructions/claimStakingPoolPosition.js +55 -0
  24. package/lib/instructions/closeLiquidationPoolPosition.js +10 -10
  25. package/lib/instructions/createStakingPool.js +5 -5
  26. package/lib/instructions/createVault.js +12 -12
  27. package/lib/instructions/depositLiquidationPool.js +10 -10
  28. package/lib/instructions/depositStakingPool.js +1 -1
  29. package/lib/instructions/depositVault.js +8 -8
  30. package/lib/instructions/initHedgeFoundation.js +4 -4
  31. package/lib/instructions/liquidateVault.js +9 -9
  32. package/lib/instructions/loanVault.js +9 -9
  33. package/lib/instructions/redeemVault.js +10 -10
  34. package/lib/instructions/refreshOraclePrice.js +1 -1
  35. package/lib/instructions/repayVault.js +10 -10
  36. package/lib/instructions/withdrawStakingPool.js +7 -7
  37. package/lib/instructions/withdrawVault.js +8 -8
  38. package/lib/state/LiquidationPosition.js +2 -2
  39. package/lib/state/StakingPool.js +2 -2
  40. package/lib/state/StakingPoolPosition.js +3 -3
  41. package/lib/state/VaultAccount.js +2 -2
  42. package/lib/state/VaultHistoryEvent.js +4 -4
  43. package/package.json +9 -9
  44. package/src/Constants.ts +5 -5
  45. package/src/idl/idl.ts +30 -30
  46. package/src/idl/vault.ts +86 -86
  47. package/src/index.ts +1 -0
  48. package/src/instructions/claimStakingPoolPosition.ts +76 -0
  49. package/src/instructions/closeLiquidationPoolPosition.ts +11 -11
  50. package/src/instructions/createStakingPool.ts +6 -6
  51. package/src/instructions/createVault.ts +19 -18
  52. package/src/instructions/depositLiquidationPool.ts +11 -11
  53. package/src/instructions/depositStakingPool.ts +1 -1
  54. package/src/instructions/depositVault.ts +12 -12
  55. package/src/instructions/initHedgeFoundation.ts +5 -5
  56. package/src/instructions/initHedgeFoundationTokens.ts +1 -1
  57. package/src/instructions/liquidateVault.ts +10 -10
  58. package/src/instructions/loanVault.ts +11 -11
  59. package/src/instructions/redeemVault.ts +12 -12
  60. package/src/instructions/refreshOraclePrice.ts +1 -1
  61. package/src/instructions/repayVault.ts +12 -12
  62. package/src/instructions/setHalted.ts +1 -1
  63. package/src/instructions/withdrawStakingPool.ts +8 -8
  64. package/src/instructions/withdrawVault.ts +12 -12
  65. package/src/state/LiquidationPosition.ts +3 -3
  66. package/src/state/StakingPool.ts +4 -4
  67. package/src/state/StakingPoolPosition.ts +4 -4
  68. package/src/state/VaultAccount.ts +3 -3
  69. package/src/state/VaultHistoryEvent.ts +8 -8
package/src/index.ts CHANGED
@@ -2,6 +2,7 @@
2
2
  export * from './instructions/createStakingPool'
3
3
  export * from './instructions/depositStakingPool'
4
4
  export * from './instructions/withdrawStakingPool'
5
+ export * from './instructions/claimStakingPoolPosition'
5
6
  export * from './instructions/depositLiquidationPool'
6
7
  export * from './instructions/closeLiquidationPoolPosition'
7
8
  export * from './instructions/claimLiquidationPoolPosition'
@@ -0,0 +1,76 @@
1
+ import { Program, Provider } from '@project-serum/anchor'
2
+ import { ASSOCIATED_TOKEN_PROGRAM_ID, getOrCreateAssociatedTokenAccount, TOKEN_PROGRAM_ID } from '@solana/spl-token'
3
+ import { PublicKey, sendAndConfirmTransaction, Signer, SystemProgram, SYSVAR_RENT_PUBKEY, Transaction, TransactionInstruction } from '@solana/web3.js'
4
+ import { parseAnchorErrors } from '../utils/Errors'
5
+ import { getHedgeMintPublicKey, findAssociatedTokenAddress, getVaultTypeAccountPublicKey, getPoolPublicKeyForMint, getVaultSystemStatePublicKey } from '../Constants'
6
+
7
+ export async function claimStakingPoolPosition(
8
+ program: Program,
9
+ provider: Provider,
10
+ poolPosition: PublicKey,
11
+ payer: Signer,
12
+ collateralType: string,
13
+ ): Promise<PublicKey> {
14
+ const vaultTypeAccount = await getVaultTypeAccountPublicKey(collateralType)
15
+ const vaultTypeAccountInfo = await program.account.vaultType.fetch(vaultTypeAccount)
16
+ const collateralMint = vaultTypeAccountInfo.collateralMint
17
+ const stakedTokenMint = await getHedgeMintPublicKey()
18
+ const [feePool] = await getPoolPublicKeyForMint(stakedTokenMint)
19
+ const feePoolAssociatedTokenAccount = await getOrCreateAssociatedTokenAccount(provider.connection, payer, collateralMint, feePool, true)
20
+ const payerAssociatedTokenAccount = await getOrCreateAssociatedTokenAccount(
21
+ provider.connection,
22
+ payer,
23
+ collateralMint,
24
+ payer.publicKey
25
+ )
26
+
27
+ const transaction = new Transaction().add(
28
+ await claimStakingPoolPositionInstruction(
29
+ program,
30
+ feePool,
31
+ feePoolAssociatedTokenAccount.address,
32
+ stakedTokenMint,
33
+ vaultTypeAccount,
34
+ collateralMint,
35
+ poolPosition,
36
+ payer.publicKey,
37
+ payerAssociatedTokenAccount.address
38
+ )
39
+ )
40
+ await sendAndConfirmTransaction(provider.connection, transaction, [payer], provider.opts).catch(parseAnchorErrors)
41
+ return payerAssociatedTokenAccount.address
42
+ }
43
+
44
+ export async function claimStakingPoolPositionInstruction(
45
+ program: Program,
46
+ feePool: PublicKey,
47
+ feePoolAssociatedTokenAccount: PublicKey,
48
+ stakedTokenMint: PublicKey,
49
+ vaultTypeAccount: PublicKey,
50
+ collateralMint: PublicKey,
51
+ poolPosition: PublicKey,
52
+ payer: PublicKey,
53
+ payerAssociatedTokenAccount: PublicKey
54
+ ): Promise<TransactionInstruction> {
55
+ const vaultSystemState = await getVaultSystemStatePublicKey()
56
+
57
+ return program.instruction.claimStakingPoolPosition(
58
+ {
59
+ accounts: {
60
+ vaultSystemState: vaultSystemState,
61
+ feePool: feePool,
62
+ stakedTokenMint: stakedTokenMint,
63
+ feePoolAssociatedTokenAccount: feePoolAssociatedTokenAccount,
64
+ vaultTypeAccount: vaultTypeAccount,
65
+ collateralMint: collateralMint,
66
+ poolPosition: poolPosition,
67
+ payer: payer,
68
+ payerAssociatedTokenAccount: payerAssociatedTokenAccount,
69
+ associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,
70
+ systemProgram: SystemProgram.programId,
71
+ tokenProgram: TOKEN_PROGRAM_ID,
72
+ rent: SYSVAR_RENT_PUBKEY
73
+ },
74
+ signers: []
75
+ })
76
+ }
@@ -2,7 +2,7 @@ import { BN, Program, Provider } from '@project-serum/anchor'
2
2
  import { ASSOCIATED_TOKEN_PROGRAM_ID, getOrCreateAssociatedTokenAccount, TOKEN_PROGRAM_ID } from '@solana/spl-token'
3
3
  import { PublicKey, sendAndConfirmTransaction, Signer, SystemProgram, SYSVAR_RENT_PUBKEY, Transaction, TransactionInstruction } from '@solana/web3.js'
4
4
  import { parseAnchorErrors } from '../utils/Errors'
5
- import { getHedgeMintPublicKey, getLiquidationPoolStatePublicKey, getLiquidationPoolUsdhAccountPublicKey, getUsdhMintPublicKey, getVaultSystemStatePublicKey } from '../Constants'
5
+ import { getHedgeMintPublicKey, getLiquidationPoolStatePublicKey, getLiquidationPoolUshAccountPublicKey, getUshMintPublicKey, getVaultSystemStatePublicKey } from '../Constants'
6
6
 
7
7
  export async function closeLiquidationPoolPosition (
8
8
  program: Program,
@@ -11,8 +11,8 @@ export async function closeLiquidationPoolPosition (
11
11
  payer: Signer,
12
12
  overrideStartTime?: number
13
13
  ): Promise<PublicKey> {
14
- const usdhMintPublickey = await getUsdhMintPublicKey()
15
- const payerUsdhAccount = await getOrCreateAssociatedTokenAccount(provider.connection, payer, usdhMintPublickey, payer.publicKey)
14
+ const ushMintPublickey = await getUshMintPublicKey()
15
+ const payerUshAccount = await getOrCreateAssociatedTokenAccount(provider.connection, payer, ushMintPublickey, payer.publicKey)
16
16
  const vaultSystemStatePublicKey = await getVaultSystemStatePublicKey()
17
17
  const liquidationPositionAccount = await program.account.liquidationPosition.fetch(poolPosition)
18
18
  const poolEra = liquidationPositionAccount.era
@@ -27,7 +27,7 @@ export async function closeLiquidationPoolPosition (
27
27
  poolEra,
28
28
  poolPosition,
29
29
  payer.publicKey,
30
- payerUsdhAccount.address,
30
+ payerUshAccount.address,
31
31
  payerAssociatedHedgeAccount.address,
32
32
  communityAssociatedHedgeTokenAccount.address,
33
33
  overrideStartTime
@@ -42,31 +42,31 @@ export async function closeLiquidationPoolPositionInstruction (
42
42
  poolEra: PublicKey,
43
43
  poolPosition: PublicKey,
44
44
  payerPublicKey: PublicKey,
45
- payerUsdhAccount: PublicKey,
45
+ payerUshAccount: PublicKey,
46
46
  payerAssociatedHedgeAccount: PublicKey,
47
47
  communityAssociatedHedgeTokenAccount: PublicKey,
48
48
  overrideStartTime?: number
49
49
  ): Promise<TransactionInstruction> {
50
50
 
51
51
  const vaultSystemStatePublicKey = await getVaultSystemStatePublicKey()
52
- const usdhMint = await getUsdhMintPublicKey()
52
+ const ushMint = await getUshMintPublicKey()
53
53
  const hedgeMint = await getHedgeMintPublicKey()
54
- const poolUsdhAccount = await getLiquidationPoolUsdhAccountPublicKey()
54
+ const poolUshAccount = await getLiquidationPoolUshAccountPublicKey()
55
55
  const poolState = await getLiquidationPoolStatePublicKey()
56
56
 
57
57
  return program.instruction.closeLiquidationPoolPosition(
58
- new BN(overrideStartTime ?? Date.now() / 1000), // override current time
58
+ new BN(overrideStartTime ?? Math.floor(Date.now() / 1000)), // override current time
59
59
  {
60
60
  accounts: {
61
61
  vaultSystemState: vaultSystemStatePublicKey,
62
62
  poolState: poolState,
63
63
  poolEra: poolEra,
64
64
  poolPosition: poolPosition,
65
- poolUsdhAccount: poolUsdhAccount,
65
+ poolUshAccount: poolUshAccount,
66
66
  payer: payerPublicKey,
67
- ownerUsdhAccount: payerUsdhAccount,
67
+ ownerUshAccount: payerUshAccount,
68
68
  hedgeMint: hedgeMint,
69
- usdhMint: usdhMint,
69
+ ushMint: ushMint,
70
70
  payerAssociatedHedgeAccount: payerAssociatedHedgeAccount,
71
71
  communityAssociatedHedgeTokenAccount: communityAssociatedHedgeTokenAccount,
72
72
  associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,
@@ -2,7 +2,7 @@ import { BN, Program, Provider } from '@project-serum/anchor'
2
2
  import { ASSOCIATED_TOKEN_PROGRAM_ID, TOKEN_PROGRAM_ID } from '@solana/spl-token'
3
3
  import { PublicKey, sendAndConfirmTransaction, Signer, SystemProgram, SYSVAR_RENT_PUBKEY, Transaction, TransactionInstruction } from '@solana/web3.js'
4
4
  import { parseAnchorErrors } from '../utils/Errors'
5
- import { findAssociatedTokenAddress, getPoolPublicKeyForMint, getUsdhMintPublicKey, getVaultSystemStatePublicKey } from '../Constants'
5
+ import { findAssociatedTokenAddress, getPoolPublicKeyForMint, getUshMintPublicKey, getVaultSystemStatePublicKey } from '../Constants'
6
6
 
7
7
  export async function createStakingPool (
8
8
  program: Program,
@@ -35,26 +35,26 @@ export async function createStakingPoolInstruction (
35
35
  ): Promise<TransactionInstruction> {
36
36
  console.log("createStakingPoolInstruction program ID", program.programId.toString())
37
37
  const vaultSystemStatePublicKey = await getVaultSystemStatePublicKey()
38
- const usdhMintPublickey = await getUsdhMintPublicKey()
38
+ const ushMintPublickey = await getUshMintPublicKey()
39
39
  const [poolPublickey, poolBump, poolSeedPhrase] = await getPoolPublicKeyForMint(mintPublicKey)
40
40
 
41
41
  const poolAssociatedStakedTokenAccount = await findAssociatedTokenAddress(poolPublickey, mintPublicKey)
42
- const poolAssociatedUsdhTokenAccount = await findAssociatedTokenAddress(poolPublickey, usdhMintPublickey)
42
+ const poolAssociatedUshTokenAccount = await findAssociatedTokenAddress(poolPublickey, ushMintPublickey)
43
43
 
44
44
  return program.instruction.createStakingPool(
45
45
  poolBump,
46
46
  poolSeedPhrase,
47
47
  new BN(hedgeTokensToBeMinted),
48
- new BN(overrideStartTime ?? Date.now() / 1000),
48
+ new BN(overrideStartTime ?? Math.floor(Date.now() / 1000)),
49
49
  {
50
50
  accounts: {
51
51
  signer: payerPublicKey,
52
52
  vaultSystemState: vaultSystemStatePublicKey,
53
53
  pool: poolPublickey,
54
54
  stakedTokenMintInfo: mintPublicKey,
55
- usdhMint: usdhMintPublickey,
55
+ ushMint: ushMintPublickey,
56
56
  poolAssociatedStakedTokenAccount: poolAssociatedStakedTokenAccount,
57
- poolAssociatedUsdhTokenAccount: poolAssociatedUsdhTokenAccount,
57
+ poolAssociatedUshTokenAccount: poolAssociatedUshTokenAccount,
58
58
  rent: SYSVAR_RENT_PUBKEY,
59
59
  tokenProgram: TOKEN_PROGRAM_ID,
60
60
  associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,
@@ -19,7 +19,7 @@ import {
19
19
  findAssociatedTokenAddress,
20
20
  findVaultAddress,
21
21
  getVaultTypeAccountPublicKey,
22
- getUsdhMintPublicKey,
22
+ getUshMintPublicKey,
23
23
  getVaultSystemStatePublicKey,
24
24
  getPoolPublicKeyForMint,
25
25
  getHedgeMintPublicKey,
@@ -36,17 +36,17 @@ export async function createVault(
36
36
  depositAmount: number,
37
37
  overrideTime?: number
38
38
  ): Promise<PublicKey> {
39
- const usdhMintPublickey = await getUsdhMintPublicKey();
39
+ const ushMintPublickey = await getUshMintPublicKey();
40
40
 
41
41
  const salt = uuidv4().substring(0, 8);
42
42
  const newVaultPublicKey = await findVaultAddress(salt);
43
43
  const history = Keypair.generate();
44
44
 
45
- // Prep the user to get USDH back out at some point
45
+ // Prep the user to get USH back out at some point
46
46
  await getOrCreateAssociatedTokenAccount(
47
47
  provider.connection,
48
48
  payer,
49
- usdhMintPublickey,
49
+ ushMintPublickey,
50
50
  payer.publicKey
51
51
  );
52
52
 
@@ -78,9 +78,9 @@ export async function createVault(
78
78
  const [hedgeStakingPoolPublicKey] = await getPoolPublicKeyForMint(
79
79
  await getHedgeMintPublicKey()
80
80
  );
81
- const feePoolAssociatedUsdhTokenAccount = await findAssociatedTokenAddress(
81
+ const feePoolAssociatedUshTokenAccount = await findAssociatedTokenAddress(
82
82
  hedgeStakingPoolPublicKey,
83
- usdhMintPublickey
83
+ ushMintPublickey
84
84
  );
85
85
 
86
86
  if (isWrappedSol) {
@@ -109,11 +109,11 @@ export async function createVault(
109
109
  newVaultPublicKey,
110
110
  vaultAssociatedTokenAccount,
111
111
  hedgeStakingPoolPublicKey,
112
- feePoolAssociatedUsdhTokenAccount,
112
+ feePoolAssociatedUshTokenAccount,
113
113
  vaultTypeAccountPublicKey,
114
114
  vaultTypeAccountInfo.collateralMint,
115
115
  history.publicKey,
116
- usdhMintPublickey,
116
+ ushMintPublickey,
117
117
  depositAmount,
118
118
  overrideTime
119
119
  )
@@ -145,7 +145,7 @@ export async function buildCreateVaultTransaction(
145
145
  ): Promise<[Transaction, Signer[], PublicKey]> {
146
146
 
147
147
  console.log("HEDGE SDK: buildCreateVaultTransaction")
148
- const usdhMintPublickey = await getUsdhMintPublicKey();
148
+ const ushMintPublickey = await getUshMintPublicKey();
149
149
  const payerPublicKey = program.provider.wallet.publicKey;
150
150
 
151
151
  const salt = uuidv4().substring(0, 8);
@@ -189,9 +189,9 @@ export async function buildCreateVaultTransaction(
189
189
  const [hedgeStakingPoolPublicKey] = await getPoolPublicKeyForMint(
190
190
  await getHedgeMintPublicKey()
191
191
  );
192
- const feePoolAssociatedUsdhTokenAccount = await findAssociatedTokenAddress(
192
+ const feePoolAssociatedUshTokenAccount = await findAssociatedTokenAddress(
193
193
  hedgeStakingPoolPublicKey,
194
- usdhMintPublickey
194
+ ushMintPublickey
195
195
  );
196
196
 
197
197
  console.log('about to start building transaction')
@@ -224,11 +224,11 @@ export async function buildCreateVaultTransaction(
224
224
  newVaultPublicKey,
225
225
  vaultAssociatedTokenAccount,
226
226
  hedgeStakingPoolPublicKey,
227
- feePoolAssociatedUsdhTokenAccount,
227
+ feePoolAssociatedUshTokenAccount,
228
228
  vaultTypeAccountPublicKey,
229
229
  vaultTypeAccountInfo.collateralMint,
230
230
  history.publicKey,
231
- usdhMintPublickey,
231
+ ushMintPublickey,
232
232
  depositAmount,
233
233
  overrideTime
234
234
  )
@@ -241,8 +241,9 @@ export async function buildCreateVaultTransaction(
241
241
  owner: payerPublicKey,
242
242
  })
243
243
  );
244
+ transaction.partialSign(wrappedSolAccount)
244
245
  }
245
- transaction.partialSign(wrappedSolAccount)
246
+
246
247
  transaction.partialSign(history)
247
248
  console.log("transaction", transaction)
248
249
 
@@ -257,11 +258,11 @@ export async function createVaultInstruction(
257
258
  vaultPublicKey: PublicKey,
258
259
  vaultAssociatedTokenAccount: PublicKey,
259
260
  feePool: PublicKey,
260
- feePoolAssociatedUsdhTokenAccount: PublicKey,
261
+ feePoolAssociatedUshTokenAccount: PublicKey,
261
262
  vaultTypeAccount: PublicKey,
262
263
  collateralMint: PublicKey,
263
264
  historyPublicKey: PublicKey,
264
- usdhMintPublickey: PublicKey,
265
+ ushMintPublickey: PublicKey,
265
266
  depositAmount: number,
266
267
  overrideTime?: number
267
268
  ): Promise<TransactionInstruction> {
@@ -278,12 +279,12 @@ export async function createVaultInstruction(
278
279
  vault: vaultPublicKey,
279
280
  vaultAssociatedTokenAccount: vaultAssociatedTokenAccount,
280
281
  feePool: feePool,
281
- feePoolAssociatedUsdhTokenAccount: feePoolAssociatedUsdhTokenAccount,
282
+ feePoolAssociatedUshTokenAccount: feePoolAssociatedUshTokenAccount,
282
283
  history: historyPublicKey,
283
284
  payer: payerPublicKey,
284
285
  payerTokenAccount: payerTokenAccountPublicKey,
285
286
  collateralMint: collateralMint,
286
- usdhMint: usdhMintPublickey,
287
+ ushMint: ushMintPublickey,
287
288
  systemProgram: SystemProgram.programId,
288
289
  tokenProgram: TOKEN_PROGRAM_ID,
289
290
  associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,
@@ -2,7 +2,7 @@ import { BN, Program, Provider } from '@project-serum/anchor'
2
2
  import { getOrCreateAssociatedTokenAccount, TOKEN_PROGRAM_ID } from '@solana/spl-token'
3
3
  import { Keypair, PublicKey, sendAndConfirmTransaction, Signer, SystemProgram, SYSVAR_RENT_PUBKEY, Transaction, TransactionInstruction } from '@solana/web3.js'
4
4
  import { parseAnchorErrors } from '../utils/Errors'
5
- import { getLiquidationPoolStatePublicKey, getLiquidationPoolUsdhAccountPublicKey, getUsdhMintPublicKey, getVaultSystemStatePublicKey } from '../Constants'
5
+ import { getLiquidationPoolStatePublicKey, getLiquidationPoolUshAccountPublicKey, getUshMintPublicKey, getVaultSystemStatePublicKey } from '../Constants'
6
6
 
7
7
  export async function depositLiquidationPool (
8
8
  program: Program,
@@ -11,15 +11,15 @@ export async function depositLiquidationPool (
11
11
  depositAmount: number,
12
12
  overrideStartTime?: number
13
13
  ): Promise<PublicKey> {
14
- const usdhMintPublickey = await getUsdhMintPublicKey()
15
- const payerUsdhAccount = await getOrCreateAssociatedTokenAccount(provider.connection, payer, usdhMintPublickey, payer.publicKey)
14
+ const ushMintPublickey = await getUshMintPublicKey()
15
+ const payerUshAccount = await getOrCreateAssociatedTokenAccount(provider.connection, payer, ushMintPublickey, payer.publicKey)
16
16
 
17
17
  const poolPosition = Keypair.generate()
18
18
  const transaction = new Transaction().add(
19
19
  await depositLiquidationPoolInstruction(
20
20
  program,
21
21
  payer.publicKey,
22
- payerUsdhAccount.address,
22
+ payerUshAccount.address,
23
23
  poolPosition.publicKey,
24
24
  depositAmount,
25
25
  overrideStartTime
@@ -32,7 +32,7 @@ export async function depositLiquidationPool (
32
32
  export async function depositLiquidationPoolInstruction (
33
33
  program: Program,
34
34
  payerPublicKey: PublicKey,
35
- payerUsdhAccount: PublicKey,
35
+ payerUshAccount: PublicKey,
36
36
  poolPositionPublicKey: PublicKey,
37
37
  depositAmount: number,
38
38
  overrideStartTime?: number
@@ -40,24 +40,24 @@ export async function depositLiquidationPoolInstruction (
40
40
  const liquidationPoolStatePublicKey = await getLiquidationPoolStatePublicKey()
41
41
  const liquidationPoolState = await program.account.liquidationPoolState.fetch(liquidationPoolStatePublicKey)
42
42
 
43
- const poolUSDHAccount = await getLiquidationPoolUsdhAccountPublicKey()
44
- const usdhMint = await getUsdhMintPublicKey()
43
+ const poolUSHAccount = await getLiquidationPoolUshAccountPublicKey()
44
+ const ushMint = await getUshMintPublicKey()
45
45
 
46
46
  const vaultSystemState = await getVaultSystemStatePublicKey()
47
47
 
48
48
  return program.instruction.depositLiquidationPool(
49
49
  new BN(depositAmount),
50
- new BN(overrideStartTime ?? Date.now() / 1000), // override current time
50
+ new BN(overrideStartTime ?? Math.floor(Date.now() / 1000)), // override current time
51
51
  {
52
52
  accounts: {
53
53
  vaultSystemState: vaultSystemState,
54
54
  poolState: liquidationPoolStatePublicKey,
55
55
  poolEra: liquidationPoolState.currentEra,
56
56
  poolPosition: poolPositionPublicKey,
57
- poolUsdhAccount: poolUSDHAccount,
58
- usdhMint: usdhMint,
57
+ poolUshAccount: poolUSHAccount,
58
+ ushMint: ushMint,
59
59
  payer: payerPublicKey,
60
- ownerUsdhAccount: payerUsdhAccount,
60
+ ownerUshAccount: payerUshAccount,
61
61
  tokenProgram: TOKEN_PROGRAM_ID,
62
62
  systemProgram: SystemProgram.programId,
63
63
  rent: SYSVAR_RENT_PUBKEY
@@ -42,7 +42,7 @@ export async function depositStakingPoolInstruction (
42
42
 
43
43
  return program.instruction.depositStakingPool(
44
44
  new BN(depositAmount),
45
- new BN(overrideStartTime ?? Date.now() / 1000), // override current time
45
+ new BN(overrideStartTime ?? Math.floor(Date.now() / 1000)), // override current time
46
46
  {
47
47
  accounts: {
48
48
  payer: payerPublicKey,
@@ -2,7 +2,7 @@ import { BN, Program, Provider } from '@project-serum/anchor'
2
2
  import { TokenInstructions } from '@project-serum/serum'
3
3
  import { getOrCreateAssociatedTokenAccount, TOKEN_PROGRAM_ID } from '@solana/spl-token'
4
4
  import { Keypair, PublicKey, sendAndConfirmTransaction, Signer, SystemProgram, Transaction, TransactionInstruction } from '@solana/web3.js'
5
- import { findAssociatedTokenAddress, getVaultTypeAccountPublicKey, getUsdhMintPublicKey, getVaultSystemStatePublicKey, getPoolPublicKeyForMint, getHedgeMintPublicKey } from '../Constants'
5
+ import { findAssociatedTokenAddress, getVaultTypeAccountPublicKey, getUshMintPublicKey, getVaultSystemStatePublicKey, getPoolPublicKeyForMint, getHedgeMintPublicKey } from '../Constants'
6
6
 
7
7
  export async function depositVault(
8
8
  program: Program,
@@ -12,10 +12,10 @@ export async function depositVault(
12
12
  depositAmount: number,
13
13
  overrideTime?: number
14
14
  ): Promise<PublicKey> {
15
- const usdhMintPublickey = await getUsdhMintPublicKey()
15
+ const ushMintPublickey = await getUshMintPublicKey()
16
16
 
17
- // Prep the user to get USDH back out at some point
18
- await getOrCreateAssociatedTokenAccount(provider.connection, payer, usdhMintPublickey, payer.publicKey)
17
+ // Prep the user to get USH back out at some point
18
+ await getOrCreateAssociatedTokenAccount(provider.connection, payer, ushMintPublickey, payer.publicKey)
19
19
 
20
20
  const vaultAccount = await program.account.vault.fetch(vaultPublicKey)
21
21
  const vaultTypeAccountPublicKey = await getVaultTypeAccountPublicKey(vaultAccount.collateralType)
@@ -31,9 +31,9 @@ export async function depositVault(
31
31
  const wrappedSolAccount = Keypair.generate()
32
32
 
33
33
  const [hedgeStakingPoolPublicKey] = await getPoolPublicKeyForMint(await getHedgeMintPublicKey())
34
- const hedgeStakingPoolAssociatedUsdhTokenAccount = await findAssociatedTokenAddress(
34
+ const hedgeStakingPoolAssociatedUshTokenAccount = await findAssociatedTokenAddress(
35
35
  hedgeStakingPoolPublicKey,
36
- usdhMintPublickey
36
+ ushMintPublickey
37
37
  )
38
38
 
39
39
  const transaction = new Transaction()
@@ -68,9 +68,9 @@ export async function depositVault(
68
68
  vaultTypeAccountPublicKey,
69
69
  vaultTypeAssociatedTokenAccount.address,
70
70
  hedgeStakingPoolPublicKey,
71
- hedgeStakingPoolAssociatedUsdhTokenAccount,
71
+ hedgeStakingPoolAssociatedUshTokenAccount,
72
72
  vaultTypeAccountInfo.collateralMint,
73
- usdhMintPublickey,
73
+ ushMintPublickey,
74
74
  depositAmount,
75
75
  overrideTime
76
76
  )
@@ -100,9 +100,9 @@ export async function depositVaultInstruction(
100
100
  vaultTypeAccountPublicKey: PublicKey,
101
101
  vaultTypeAssociatedTokenAccount: PublicKey,
102
102
  hedgeStakingPoolPublicKey: PublicKey,
103
- hedgeStakingPoolAssociatedUsdhTokenAccount: PublicKey,
103
+ hedgeStakingPoolAssociatedUshTokenAccount: PublicKey,
104
104
  collateralMint: PublicKey,
105
- usdhMintPublickey: PublicKey,
105
+ ushMintPublickey: PublicKey,
106
106
  depositAmount: number,
107
107
  overrideTime?: number
108
108
  ): Promise<TransactionInstruction> {
@@ -118,11 +118,11 @@ export async function depositVaultInstruction(
118
118
  vault: vaultPublicKey,
119
119
  vaultAssociatedTokenAccount: vaultAssociatedTokenAccount,
120
120
  feePool: hedgeStakingPoolPublicKey,
121
- feePoolAssociatedUsdhTokenAccount: hedgeStakingPoolAssociatedUsdhTokenAccount,
121
+ feePoolAssociatedUshTokenAccount: hedgeStakingPoolAssociatedUshTokenAccount,
122
122
  history: historyPublicKey,
123
123
  vaultOwner: vaultOwner,
124
124
  vaultOwnerTokenAccount: vaultOwnerTokenAccount,
125
- usdhMint: usdhMintPublickey,
125
+ ushMint: ushMintPublickey,
126
126
  systemProgram: SystemProgram.programId,
127
127
  tokenProgram: TOKEN_PROGRAM_ID
128
128
  },
@@ -2,7 +2,7 @@ import { Program, Provider } from '@project-serum/anchor'
2
2
  import { ASSOCIATED_TOKEN_PROGRAM_ID, TOKEN_PROGRAM_ID } from '@solana/spl-token'
3
3
  import { Keypair, PublicKey, sendAndConfirmTransaction, Signer, SystemProgram, SYSVAR_RENT_PUBKEY, Transaction, TransactionInstruction } from '@solana/web3.js'
4
4
  import { parseAnchorErrors } from '../utils/Errors'
5
- import { findAssociatedTokenAddress, getHedgeMintPublicKey, getLiquidationPoolStatePublicKey, getLiquidationPoolUsdhAccountPublicKey, getUsdhMintPublicKey, getVaultSystemStatePublicKey } from '../Constants'
5
+ import { findAssociatedTokenAddress, getHedgeMintPublicKey, getLiquidationPoolStatePublicKey, getLiquidationPoolUshAccountPublicKey, getUshMintPublicKey, getVaultSystemStatePublicKey } from '../Constants'
6
6
 
7
7
  export async function initHedgeFoundation(
8
8
  program: Program,
@@ -30,8 +30,8 @@ export async function initHedgeFoundationInstruction (
30
30
  ): Promise<TransactionInstruction> {
31
31
  const vaultSystemStatePublicKey = await getVaultSystemStatePublicKey()
32
32
  const poolStatePublickey = await getLiquidationPoolStatePublicKey()
33
- const poolUsdhTokenAccount = await getLiquidationPoolUsdhAccountPublicKey()
34
- const usdhMintPublickey = await getUsdhMintPublicKey()
33
+ const poolUshTokenAccount = await getLiquidationPoolUshAccountPublicKey()
34
+ const ushMintPublickey = await getUshMintPublicKey()
35
35
  const hedgeMintPublickey = await getHedgeMintPublicKey()
36
36
  const founderHedgeTokenAccount = await findAssociatedTokenAddress(
37
37
  payerPublicKey,
@@ -48,9 +48,9 @@ export async function initHedgeFoundationInstruction (
48
48
  vaultSystemState: vaultSystemStatePublicKey,
49
49
  poolState: poolStatePublickey,
50
50
  poolEra: poolEraPublicKey,
51
- poolUsdhAccount: poolUsdhTokenAccount,
51
+ poolUshAccount: poolUshTokenAccount,
52
52
  founder: payerPublicKey,
53
- usdhMint: usdhMintPublickey,
53
+ ushMint: ushMintPublickey,
54
54
  hedgeMint: hedgeMintPublickey,
55
55
  founderAssociatedHedgeTokenAccount: founderHedgeTokenAccount,
56
56
  communityAssociatedHedgeTokenAccount: communityHedgeTokenAccount,
@@ -2,7 +2,7 @@ import { Program, Provider } from '@project-serum/anchor'
2
2
  import { ASSOCIATED_TOKEN_PROGRAM_ID, TOKEN_PROGRAM_ID } from '@solana/spl-token'
3
3
  import { Keypair, PublicKey, sendAndConfirmTransaction, Signer, SystemProgram, SYSVAR_RENT_PUBKEY, Transaction, TransactionInstruction } from '@solana/web3.js'
4
4
  import { parseAnchorErrors } from '../utils/Errors'
5
- import { findAssociatedTokenAddress, getHedgeMintPublicKey, getLiquidationPoolStatePublicKey, getLiquidationPoolUsdhAccountPublicKey, getUsdhMintPublicKey, getVaultSystemStatePublicKey } from '../Constants'
5
+ import { findAssociatedTokenAddress, getHedgeMintPublicKey, getLiquidationPoolStatePublicKey, getLiquidationPoolUshAccountPublicKey, getUshMintPublicKey, getVaultSystemStatePublicKey } from '../Constants'
6
6
 
7
7
  export async function initHedgeFoundationTokens(
8
8
  program: Program,
@@ -1,7 +1,7 @@
1
1
  import { BN, Program, Provider } from '@project-serum/anchor'
2
2
  import { ASSOCIATED_TOKEN_PROGRAM_ID, TOKEN_PROGRAM_ID, getOrCreateAssociatedTokenAccount } from '@solana/spl-token'
3
3
  import { Keypair, PublicKey, sendAndConfirmTransaction, Signer, SystemProgram, SYSVAR_RENT_PUBKEY, Transaction, TransactionInstruction } from '@solana/web3.js'
4
- import { getHedgeMintPublicKey, getLiquidationPoolStatePublicKey, getLiquidationPoolUsdhAccountPublicKey, getPoolPublicKeyForMint, getVaultTypeAccountPublicKey, getUsdhMintPublicKey, getVaultSystemStatePublicKey } from '../Constants'
4
+ import { getHedgeMintPublicKey, getLiquidationPoolStatePublicKey, getLiquidationPoolUshAccountPublicKey, getPoolPublicKeyForMint, getVaultTypeAccountPublicKey, getUshMintPublicKey, getVaultSystemStatePublicKey } from '../Constants'
5
5
 
6
6
  export async function liquidateVault (
7
7
  program: Program,
@@ -17,7 +17,7 @@ export async function liquidateVault (
17
17
  const collateralMint = vaultTypeAccountInfo.collateralMint
18
18
 
19
19
  const hedgeMintPublickey = await getHedgeMintPublicKey()
20
- const usdhMintPublickey = await getUsdhMintPublicKey()
20
+ const ushMintPublickey = await getUshMintPublicKey()
21
21
  const [hedgeStakingPoolPublicKey] = await getPoolPublicKeyForMint(hedgeMintPublickey)
22
22
  const liquidationPoolStatePublicKey = await getLiquidationPoolStatePublicKey()
23
23
  const poolStateInfo = await program.account.liquidationPoolState.fetch(liquidationPoolStatePublicKey)
@@ -27,7 +27,7 @@ export async function liquidateVault (
27
27
  const vaultAssociatedTokenAccount = await getOrCreateAssociatedTokenAccount(provider.connection, payer, collateralMint, vaultPublicKey, true)
28
28
  const poolAssociatedTokenAccount = await getOrCreateAssociatedTokenAccount(provider.connection, payer, collateralMint, liquidationPoolStatePublicKey, true)
29
29
  const vaultTypeAssociatedTokenAccount = await getOrCreateAssociatedTokenAccount(provider.connection, payer, collateralMint, vaultTypeAccountPublicKey, true)
30
- const hedgeStakingPoolAssociatedUsdhTokenAccount = await getOrCreateAssociatedTokenAccount(provider.connection, payer, usdhMintPublickey, hedgeStakingPoolPublicKey, true)
30
+ const hedgeStakingPoolAssociatedUshTokenAccount = await getOrCreateAssociatedTokenAccount(provider.connection, payer, ushMintPublickey, hedgeStakingPoolPublicKey, true)
31
31
 
32
32
  const history = Keypair.generate()
33
33
  const newEra = Keypair.generate()
@@ -47,7 +47,7 @@ export async function liquidateVault (
47
47
  newEra.publicKey,
48
48
  hedgeStakingPoolPublicKey,
49
49
  feePoolAssociatedTokenAccount.address,
50
- hedgeStakingPoolAssociatedUsdhTokenAccount.address,
50
+ hedgeStakingPoolAssociatedUshTokenAccount.address,
51
51
  collateralMint,
52
52
  vaultTypeAssociatedTokenAccount.address,
53
53
  vaultAccount.collateralType,
@@ -71,15 +71,15 @@ export async function liquidateVaultInstruction (
71
71
  newEraPublicKey: PublicKey,
72
72
  feePool: PublicKey,
73
73
  feePoolAssociatedTokenAccount: PublicKey,
74
- hedgeStakingPoolAssociatedUsdhTokenAccount: PublicKey,
74
+ hedgeStakingPoolAssociatedUshTokenAccount: PublicKey,
75
75
  collateralMint: PublicKey,
76
76
  vaultTypeAssociatedTokenAccount: PublicKey,
77
77
  collateralType: string,
78
78
  overrideTime?: number
79
79
  ): Promise<TransactionInstruction> {
80
80
  const vaultSystemStatePublicKey = await getVaultSystemStatePublicKey()
81
- const usdhMintPublickey = await getUsdhMintPublicKey()
82
- const liquidationPoolUsdhAccountPublickey = await getLiquidationPoolUsdhAccountPublicKey()
81
+ const ushMintPublickey = await getUshMintPublicKey()
82
+ const liquidationPoolUshAccountPublickey = await getLiquidationPoolUshAccountPublicKey()
83
83
  const vaultTypeAccount = await getVaultTypeAccountPublicKey(collateralType)
84
84
 
85
85
  const payload = {
@@ -93,14 +93,14 @@ export async function liquidateVaultInstruction (
93
93
  vaultAssociatedTokenAccount: vaultAssociatedTokenAccount,
94
94
  poolState: poolState,
95
95
  poolAssociatedTokenAccount: poolAssociatedTokenAccount,
96
- usdhMint: usdhMintPublickey,
96
+ ushMint: ushMintPublickey,
97
97
  history: historyPublicKey,
98
98
  payer: payerPublicKey,
99
99
  payerAssociatedTokenAccount: payerAssociatedTokenAccount,
100
100
  feePool: feePool,
101
101
  feePoolAssociatedTokenAccount: feePoolAssociatedTokenAccount,
102
- feePoolAssociatedUsdhTokenAccount: hedgeStakingPoolAssociatedUsdhTokenAccount,
103
- liquidationPoolUsdhAccount: liquidationPoolUsdhAccountPublickey,
102
+ feePoolAssociatedUshTokenAccount: hedgeStakingPoolAssociatedUshTokenAccount,
103
+ liquidationPoolUshAccount: liquidationPoolUshAccountPublickey,
104
104
  newEra: newEraPublicKey,
105
105
  tokenProgram: TOKEN_PROGRAM_ID,
106
106
  systemProgram: SystemProgram.programId,
@@ -1,7 +1,7 @@
1
1
  import { BN, Program, Provider } from '@project-serum/anchor'
2
2
  import { getOrCreateAssociatedTokenAccount, TOKEN_PROGRAM_ID } from '@solana/spl-token'
3
3
  import { Keypair, PublicKey, sendAndConfirmTransaction, Signer, SystemProgram, Transaction, TransactionInstruction } from '@solana/web3.js'
4
- import { findAssociatedTokenAddress, getHedgeMintPublicKey, getPoolPublicKeyForMint, getVaultTypeAccountPublicKey, getUsdhMintPublicKey, getVaultSystemStatePublicKey } from '../Constants'
4
+ import { findAssociatedTokenAddress, getHedgeMintPublicKey, getPoolPublicKeyForMint, getVaultTypeAccountPublicKey, getUshMintPublicKey, getVaultSystemStatePublicKey } from '../Constants'
5
5
 
6
6
  export async function loanVault (
7
7
  program: Program,
@@ -11,9 +11,9 @@ export async function loanVault (
11
11
  loanAmount: number,
12
12
  overrideTime?: number
13
13
  ): Promise<PublicKey> {
14
- const usdhMintPublickey = await getUsdhMintPublicKey()
14
+ const ushMintPublickey = await getUshMintPublicKey()
15
15
 
16
- const payerUsdhAccount = await getOrCreateAssociatedTokenAccount(provider.connection, payer, usdhMintPublickey, payer.publicKey)
16
+ const payerUshAccount = await getOrCreateAssociatedTokenAccount(provider.connection, payer, ushMintPublickey, payer.publicKey)
17
17
 
18
18
  const vaultAccount = await program.account.vault.fetch(vaultPublicKey)
19
19
  const vaultTypeAccountPublicKey = await getVaultTypeAccountPublicKey(vaultAccount.collateralType)
@@ -26,7 +26,7 @@ export async function loanVault (
26
26
  await loanVaultInstruction(
27
27
  program,
28
28
  payer.publicKey,
29
- payerUsdhAccount.address,
29
+ payerUshAccount.address,
30
30
  vaultPublicKey,
31
31
  vaultAssociatedTokenAccount.address,
32
32
  history.publicKey,
@@ -43,7 +43,7 @@ export async function loanVault (
43
43
  export async function loanVaultInstruction (
44
44
  program: Program,
45
45
  payerPublicKey: PublicKey,
46
- ownerUsdhAccount: PublicKey,
46
+ ownerUshAccount: PublicKey,
47
47
  vaultPublickey: PublicKey,
48
48
  vaultAssociatedTokenAccount: PublicKey,
49
49
  historyPublicKey: PublicKey,
@@ -53,12 +53,12 @@ export async function loanVaultInstruction (
53
53
  overrideTime?: number
54
54
  ): Promise<TransactionInstruction> {
55
55
  const vaultSystemStatePublicKey = await getVaultSystemStatePublicKey()
56
- const usdhMintPublickey = await getUsdhMintPublicKey()
56
+ const ushMintPublickey = await getUshMintPublicKey()
57
57
  const hedgeMintPublickey = await getHedgeMintPublicKey()
58
58
  const [hedgeStakingPoolPublicKey] = await getPoolPublicKeyForMint(hedgeMintPublickey)
59
- const hedgeStakingPoolAssociatedUsdhTokenAccount = await findAssociatedTokenAddress(
59
+ const hedgeStakingPoolAssociatedUshTokenAccount = await findAssociatedTokenAddress(
60
60
  hedgeStakingPoolPublicKey,
61
- usdhMintPublickey
61
+ ushMintPublickey
62
62
  )
63
63
 
64
64
  return program.instruction.loanVault(
@@ -73,10 +73,10 @@ export async function loanVaultInstruction (
73
73
  vaultAssociatedTokenAccount: vaultAssociatedTokenAccount,
74
74
  history: historyPublicKey,
75
75
  feePool: hedgeStakingPoolPublicKey,
76
- feePoolAssociatedUsdhTokenAccount: hedgeStakingPoolAssociatedUsdhTokenAccount,
77
- usdhMint: usdhMintPublickey,
76
+ feePoolAssociatedUshTokenAccount: hedgeStakingPoolAssociatedUshTokenAccount,
77
+ ushMint: ushMintPublickey,
78
78
  vaultOwner: payerPublicKey,
79
- ownerUsdhAccount: ownerUsdhAccount,
79
+ ownerUshAccount: ownerUshAccount,
80
80
  tokenProgram: TOKEN_PROGRAM_ID,
81
81
  systemProgram: SystemProgram.programId
82
82
  },