hedge-web3 0.1.29 → 0.1.31

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 (77) hide show
  1. package/declarations/idl/vault.d.ts +99 -99
  2. package/declarations/index.d.ts +1 -0
  3. package/declarations/instructions/claimLiquidationPoolPosition.d.ts +3 -2
  4. package/declarations/instructions/claimStakingPoolPosition.d.ts +3 -2
  5. package/declarations/instructions/closeLiquidationPoolPosition.d.ts +3 -2
  6. package/declarations/instructions/createStakingPool.d.ts +3 -2
  7. package/declarations/instructions/createVault.d.ts +6 -5
  8. package/declarations/instructions/depositLiquidationPool.d.ts +3 -2
  9. package/declarations/instructions/depositStakingPool.d.ts +3 -2
  10. package/declarations/instructions/depositVault.d.ts +3 -2
  11. package/declarations/instructions/initHedgeFoundation.d.ts +3 -2
  12. package/declarations/instructions/liquidateVault.d.ts +3 -2
  13. package/declarations/instructions/loanVault.d.ts +3 -2
  14. package/declarations/instructions/redeemVault.d.ts +3 -2
  15. package/declarations/instructions/refreshOraclePrice.d.ts +3 -2
  16. package/declarations/instructions/repayVault.d.ts +3 -2
  17. package/declarations/instructions/setHalted.d.ts +3 -2
  18. package/declarations/instructions/setVaultTypeStatus.d.ts +3 -2
  19. package/declarations/instructions/withdrawStakingPool.d.ts +3 -2
  20. package/declarations/instructions/withdrawVault.d.ts +3 -2
  21. package/declarations/state/VaultAccount.d.ts +1 -1
  22. package/declarations/utils/getLinkedListAccounts.d.ts +3 -1
  23. package/lib/idl/vault.js +99 -99
  24. package/lib/index.js +1 -0
  25. package/lib/instructions/claimLiquidationPoolPosition.js +19 -22
  26. package/lib/instructions/claimStakingPoolPosition.js +19 -19
  27. package/lib/instructions/closeLiquidationPoolPosition.js +22 -22
  28. package/lib/instructions/createStakingPool.js +17 -18
  29. package/lib/instructions/createVault.js +28 -31
  30. package/lib/instructions/depositLiquidationPool.js +17 -18
  31. package/lib/instructions/depositStakingPool.js +16 -18
  32. package/lib/instructions/depositVault.js +25 -27
  33. package/lib/instructions/initHedgeFoundation.js +17 -19
  34. package/lib/instructions/initHedgeFoundationTokens.js +15 -15
  35. package/lib/instructions/liquidateVault.js +32 -33
  36. package/lib/instructions/loanVault.js +23 -23
  37. package/lib/instructions/redeemVault.js +24 -24
  38. package/lib/instructions/refreshOraclePrice.js +17 -17
  39. package/lib/instructions/repayVault.js +23 -23
  40. package/lib/instructions/setHalted.js +8 -9
  41. package/lib/instructions/setVaultTypeStatus.js +9 -10
  42. package/lib/instructions/withdrawStakingPool.js +22 -24
  43. package/lib/instructions/withdrawVault.js +23 -23
  44. package/lib/state/LiquidationPoolEra.js +3 -1
  45. package/lib/state/LiquidationPosition.js +0 -7
  46. package/lib/state/StakingPool.js +3 -4
  47. package/lib/state/VaultAccount.js +2 -5
  48. package/lib/utils/getLinkedListAccounts.js +24 -16
  49. package/package.json +2 -2
  50. package/src/idl/vault.ts +198 -198
  51. package/src/index.ts +1 -0
  52. package/src/instructions/claimLiquidationPoolPosition.ts +39 -29
  53. package/src/instructions/claimStakingPoolPosition.ts +45 -25
  54. package/src/instructions/closeLiquidationPoolPosition.ts +62 -32
  55. package/src/instructions/createStakingPool.ts +37 -35
  56. package/src/instructions/createVault.ts +81 -125
  57. package/src/instructions/depositLiquidationPool.ts +45 -26
  58. package/src/instructions/depositStakingPool.ts +32 -24
  59. package/src/instructions/depositVault.ts +57 -86
  60. package/src/instructions/initHedgeFoundation.ts +42 -43
  61. package/src/instructions/initHedgeFoundationTokens.ts +38 -39
  62. package/src/instructions/liquidateVault.ts +42 -65
  63. package/src/instructions/loanVault.ts +51 -69
  64. package/src/instructions/redeemVault.ts +83 -47
  65. package/src/instructions/refreshOraclePrice.ts +41 -32
  66. package/src/instructions/repayVault.ts +45 -65
  67. package/src/instructions/setHalted.ts +32 -24
  68. package/src/instructions/setVaultTypeStatus.ts +32 -24
  69. package/src/instructions/withdrawStakingPool.ts +44 -30
  70. package/src/instructions/withdrawVault.ts +58 -82
  71. package/src/state/LiquidationPoolEra.ts +4 -3
  72. package/src/state/LiquidationPosition.ts +0 -27
  73. package/src/state/StakingPool.ts +4 -7
  74. package/src/state/StakingPoolPosition.ts +2 -3
  75. package/src/state/VaultAccount.ts +9 -28
  76. package/src/state/VaultHistoryEvent.ts +1 -2
  77. package/src/utils/getLinkedListAccounts.ts +31 -30
package/lib/idl/vault.js CHANGED
@@ -1800,68 +1800,6 @@ exports.IDL = {
1800
1800
  ]
1801
1801
  }
1802
1802
  },
1803
- {
1804
- "name": "stakingPool",
1805
- "type": {
1806
- "kind": "struct",
1807
- "fields": [
1808
- {
1809
- "name": "halfLifeInDays",
1810
- "type": "u64"
1811
- },
1812
- {
1813
- "name": "deposits",
1814
- "type": "u64"
1815
- },
1816
- {
1817
- "name": "startTime",
1818
- "type": "u64"
1819
- },
1820
- {
1821
- "name": "lastTransactionTime",
1822
- "type": "u64"
1823
- },
1824
- {
1825
- "name": "hedgeRewardAccumulator",
1826
- "type": "u128"
1827
- },
1828
- {
1829
- "name": "ushFeeAccumulator",
1830
- "type": "u128"
1831
- },
1832
- {
1833
- "name": "totalHedgeReward",
1834
- "type": "u64"
1835
- },
1836
- {
1837
- "name": "stakedTokenMint",
1838
- "type": "publicKey"
1839
- },
1840
- {
1841
- "name": "seedPhrase",
1842
- "type": {
1843
- "array": [
1844
- "u8",
1845
- 12
1846
- ]
1847
- }
1848
- },
1849
- {
1850
- "name": "collateralFeeAccumulator",
1851
- "type": {
1852
- "array": [
1853
- "u128",
1854
- 32
1855
- ]
1856
- }
1857
- },
1858
- {
1859
- "name": "bump",
1860
- "type": "u8"
1861
- }
1862
- ]
1863
- }
1864
- },
1865
1803
  {
1866
1804
  "name": "stakingPoolPosition",
1867
1805
  "type": {
@@ -1927,75 +1865,63 @@ exports.IDL = {
1927
1865
  }
1928
1866
  },
1929
1867
  {
1930
- "name": "vault",
1868
+ "name": "stakingPool",
1931
1869
  "type": {
1932
1870
  "kind": "struct",
1933
1871
  "fields": [
1934
1872
  {
1935
- "name": "vaultOwner",
1936
- "type": "publicKey"
1937
- },
1938
- {
1939
- "name": "vaultNumber",
1873
+ "name": "halfLifeInDays",
1940
1874
  "type": "u64"
1941
1875
  },
1942
1876
  {
1943
- "name": "deposited",
1877
+ "name": "deposits",
1944
1878
  "type": "u64"
1945
1879
  },
1946
1880
  {
1947
- "name": "denormalizedDebt",
1881
+ "name": "startTime",
1948
1882
  "type": "u64"
1949
1883
  },
1950
1884
  {
1951
- "name": "collateralType",
1952
- "type": "string"
1885
+ "name": "lastTransactionTime",
1886
+ "type": "u64"
1953
1887
  },
1954
1888
  {
1955
- "name": "pdaSalt",
1956
- "type": "string"
1889
+ "name": "hedgeRewardAccumulator",
1890
+ "type": "u128"
1957
1891
  },
1958
1892
  {
1959
- "name": "bump",
1960
- "type": "u8"
1893
+ "name": "ushFeeAccumulator",
1894
+ "type": "u128"
1961
1895
  },
1962
1896
  {
1963
- "name": "vaultVersion",
1897
+ "name": "totalHedgeReward",
1964
1898
  "type": "u64"
1965
1899
  },
1966
1900
  {
1967
- "name": "debtProductSnapshotBytes",
1968
- "type": "u128"
1969
- },
1970
- {
1971
- "name": "collateralAccumulatorSnapshotBytes",
1972
- "type": "u128"
1901
+ "name": "stakedTokenMint",
1902
+ "type": "publicKey"
1973
1903
  },
1974
1904
  {
1975
- "name": "debtType",
1905
+ "name": "seedPhrase",
1976
1906
  "type": {
1977
- "defined": "CurrencyType"
1907
+ "array": [
1908
+ "u8",
1909
+ 12
1910
+ ]
1978
1911
  }
1979
1912
  },
1980
1913
  {
1981
- "name": "vaultStatus",
1914
+ "name": "collateralFeeAccumulator",
1982
1915
  "type": {
1983
- "defined": "VaultStatus"
1916
+ "array": [
1917
+ "u128",
1918
+ 32
1919
+ ]
1984
1920
  }
1985
1921
  },
1986
1922
  {
1987
- "name": "timeCreated",
1988
- "type": "u64"
1989
- },
1990
- {
1991
- "name": "timeLastInteraction",
1992
- "type": "u64"
1993
- },
1994
- {
1995
- "name": "nextVaultToRedeem",
1996
- "type": {
1997
- "option": "publicKey"
1998
- }
1923
+ "name": "bump",
1924
+ "type": "u8"
1999
1925
  }
2000
1926
  ]
2001
1927
  }
@@ -2201,6 +2127,80 @@ exports.IDL = {
2201
2127
  }
2202
2128
  ]
2203
2129
  }
2130
+ },
2131
+ {
2132
+ "name": "vault",
2133
+ "type": {
2134
+ "kind": "struct",
2135
+ "fields": [
2136
+ {
2137
+ "name": "vaultOwner",
2138
+ "type": "publicKey"
2139
+ },
2140
+ {
2141
+ "name": "vaultNumber",
2142
+ "type": "u64"
2143
+ },
2144
+ {
2145
+ "name": "deposited",
2146
+ "type": "u64"
2147
+ },
2148
+ {
2149
+ "name": "denormalizedDebt",
2150
+ "type": "u64"
2151
+ },
2152
+ {
2153
+ "name": "collateralType",
2154
+ "type": "string"
2155
+ },
2156
+ {
2157
+ "name": "pdaSalt",
2158
+ "type": "string"
2159
+ },
2160
+ {
2161
+ "name": "bump",
2162
+ "type": "u8"
2163
+ },
2164
+ {
2165
+ "name": "vaultVersion",
2166
+ "type": "u64"
2167
+ },
2168
+ {
2169
+ "name": "debtProductSnapshotBytes",
2170
+ "type": "u128"
2171
+ },
2172
+ {
2173
+ "name": "collateralAccumulatorSnapshotBytes",
2174
+ "type": "u128"
2175
+ },
2176
+ {
2177
+ "name": "debtType",
2178
+ "type": {
2179
+ "defined": "CurrencyType"
2180
+ }
2181
+ },
2182
+ {
2183
+ "name": "vaultStatus",
2184
+ "type": {
2185
+ "defined": "VaultStatus"
2186
+ }
2187
+ },
2188
+ {
2189
+ "name": "timeCreated",
2190
+ "type": "u64"
2191
+ },
2192
+ {
2193
+ "name": "timeLastInteraction",
2194
+ "type": "u64"
2195
+ },
2196
+ {
2197
+ "name": "nextVaultToRedeem",
2198
+ "type": {
2199
+ "option": "publicKey"
2200
+ }
2201
+ }
2202
+ ]
2203
+ }
2204
2204
  }
2205
2205
  ],
2206
2206
  "types": [
package/lib/index.js CHANGED
@@ -39,3 +39,4 @@ __exportStar(require("./state/LiquidationPoolEra"), exports);
39
39
  __exportStar(require("./state/LiquidationPoolState"), exports);
40
40
  __exportStar(require("./state/LiquidationPosition"), exports);
41
41
  __exportStar(require("./utils/getLinkedListAccounts"), exports);
42
+ __exportStar(require("./idl/vault"), exports);
@@ -18,12 +18,12 @@ function claimLiquidationPoolPosition(program, provider, poolPosition, payer, co
18
18
  return __awaiter(this, void 0, void 0, function* () {
19
19
  const vaultTypeAccountPublicKey = yield (0, Constants_1.getVaultTypeAccountPublicKey)(collateralType);
20
20
  const vaultTypeAccountInfo = yield program.account.vaultType.fetch(vaultTypeAccountPublicKey);
21
- const collateralMint = vaultTypeAccountInfo.collateralMint;
21
+ const collateralMintPublicKey = vaultTypeAccountInfo.collateralMint;
22
22
  const poolStatePublicKey = yield (0, Constants_1.getLiquidationPoolStatePublicKey)();
23
- const poolAssociatedTokenAccount = yield (0, Constants_1.findAssociatedTokenAddress)(poolStatePublicKey, collateralMint);
24
- const payerAssociatedTokenAccount = yield (0, spl_token_1.getOrCreateAssociatedTokenAccount)(provider.connection, payer, collateralMint, payer.publicKey);
25
- const transaction = new web3_js_1.Transaction().add(yield claimLiquidationPoolPositionInstruction(program, poolStatePublicKey, poolAssociatedTokenAccount, vaultTypeAccountPublicKey, collateralMint, poolPosition, payer.publicKey, payerAssociatedTokenAccount.address, overrideStartTime));
26
- yield (0, web3_js_1.sendAndConfirmTransaction)(provider.connection, transaction, [payer], provider.opts).catch(Errors_1.parseAnchorErrors);
23
+ const poolAssociatedTokenAccount = yield (0, Constants_1.findAssociatedTokenAddress)(poolStatePublicKey, collateralMintPublicKey);
24
+ const payerAssociatedTokenAccount = yield (0, spl_token_1.getOrCreateAssociatedTokenAccount)(provider.connection, payer, collateralMintPublicKey, payer.publicKey);
25
+ const transaction = new web3_js_1.Transaction().add(yield claimLiquidationPoolPositionInstruction(program, poolStatePublicKey, poolAssociatedTokenAccount, vaultTypeAccountPublicKey, collateralMintPublicKey, poolPosition, payer.publicKey, payerAssociatedTokenAccount.address, overrideStartTime));
26
+ yield (0, web3_js_1.sendAndConfirmTransaction)(provider.connection, transaction, [payer]).catch(Errors_1.parseAnchorErrors);
27
27
  return payerAssociatedTokenAccount.address;
28
28
  });
29
29
  }
@@ -31,23 +31,20 @@ exports.claimLiquidationPoolPosition = claimLiquidationPoolPosition;
31
31
  function claimLiquidationPoolPositionInstruction(program, poolState, poolAssociatedTokenAccount, vaultTypeAccount, collateralMint, poolPosition, payer, payerAssociatedTokenAccount, overrideStartTime) {
32
32
  return __awaiter(this, void 0, void 0, function* () {
33
33
  const vaultSystemState = yield (0, Constants_1.getVaultSystemStatePublicKey)();
34
- return program.instruction.claimLiquidationPoolPosition({
35
- accounts: {
36
- vaultSystemState: vaultSystemState,
37
- poolState: poolState,
38
- poolAssociatedTokenAccount: poolAssociatedTokenAccount,
39
- vaultTypeAccount: vaultTypeAccount,
40
- collateralMint: collateralMint,
41
- poolPosition: poolPosition,
42
- payer: payer,
43
- payerAssociatedTokenAccount: payerAssociatedTokenAccount,
44
- associatedTokenProgram: spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID,
45
- tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
46
- systemProgram: web3_js_1.SystemProgram.programId,
47
- rent: web3_js_1.SYSVAR_RENT_PUBKEY
48
- },
49
- signers: []
50
- });
34
+ return yield program.methods.claimLiquidationPoolPosition().accounts({
35
+ vaultSystemState: vaultSystemState,
36
+ poolState: poolState,
37
+ poolAssociatedTokenAccount: poolAssociatedTokenAccount,
38
+ vaultTypeAccount: vaultTypeAccount,
39
+ collateralMint: collateralMint,
40
+ poolPosition: poolPosition,
41
+ payer: payer,
42
+ payerAssociatedTokenAccount: payerAssociatedTokenAccount,
43
+ associatedTokenProgram: spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID,
44
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
45
+ systemProgram: web3_js_1.SystemProgram.programId,
46
+ rent: web3_js_1.SYSVAR_RENT_PUBKEY,
47
+ }).instruction();
51
48
  });
52
49
  }
53
50
  exports.claimLiquidationPoolPositionInstruction = claimLiquidationPoolPositionInstruction;
@@ -24,7 +24,7 @@ function claimStakingPoolPosition(program, provider, poolPosition, payer, collat
24
24
  const feePoolAssociatedTokenAccount = yield (0, spl_token_1.getOrCreateAssociatedTokenAccount)(provider.connection, payer, collateralMint, feePool, true);
25
25
  const payerAssociatedTokenAccount = yield (0, spl_token_1.getOrCreateAssociatedTokenAccount)(provider.connection, payer, collateralMint, payer.publicKey);
26
26
  const transaction = new web3_js_1.Transaction().add(yield claimStakingPoolPositionInstruction(program, feePool, feePoolAssociatedTokenAccount.address, stakedTokenMint, vaultTypeAccount, collateralMint, poolPosition, payer.publicKey, payerAssociatedTokenAccount.address));
27
- yield (0, web3_js_1.sendAndConfirmTransaction)(provider.connection, transaction, [payer], provider.opts).catch(Errors_1.parseAnchorErrors);
27
+ yield (0, web3_js_1.sendAndConfirmTransaction)(provider.connection, transaction, [payer]).catch(Errors_1.parseAnchorErrors);
28
28
  return payerAssociatedTokenAccount.address;
29
29
  });
30
30
  }
@@ -32,24 +32,24 @@ exports.claimStakingPoolPosition = claimStakingPoolPosition;
32
32
  function claimStakingPoolPositionInstruction(program, feePool, feePoolAssociatedTokenAccount, stakedTokenMint, vaultTypeAccount, collateralMint, poolPosition, payer, payerAssociatedTokenAccount) {
33
33
  return __awaiter(this, void 0, void 0, function* () {
34
34
  const vaultSystemState = yield (0, Constants_1.getVaultSystemStatePublicKey)();
35
- return program.instruction.claimStakingPoolPosition({
36
- accounts: {
37
- vaultSystemState: vaultSystemState,
38
- feePool: feePool,
39
- stakedTokenMint: stakedTokenMint,
40
- feePoolAssociatedTokenAccount: feePoolAssociatedTokenAccount,
41
- vaultTypeAccount: vaultTypeAccount,
42
- collateralMint: collateralMint,
43
- poolPosition: poolPosition,
44
- payer: payer,
45
- payerAssociatedTokenAccount: payerAssociatedTokenAccount,
46
- associatedTokenProgram: spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID,
47
- systemProgram: web3_js_1.SystemProgram.programId,
48
- tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
49
- rent: web3_js_1.SYSVAR_RENT_PUBKEY
50
- },
51
- signers: []
52
- });
35
+ return yield program.methods
36
+ .claimStakingPoolPosition()
37
+ .accounts({
38
+ vaultSystemState: vaultSystemState,
39
+ feePool: feePool,
40
+ stakedTokenMint: stakedTokenMint,
41
+ feePoolAssociatedTokenAccount: feePoolAssociatedTokenAccount,
42
+ vaultTypeAccount: vaultTypeAccount,
43
+ collateralMint: collateralMint,
44
+ poolPosition: poolPosition,
45
+ payer: payer,
46
+ payerAssociatedTokenAccount: payerAssociatedTokenAccount,
47
+ associatedTokenProgram: spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID,
48
+ systemProgram: web3_js_1.SystemProgram.programId,
49
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
50
+ rent: web3_js_1.SYSVAR_RENT_PUBKEY,
51
+ })
52
+ .instruction();
53
53
  });
54
54
  }
55
55
  exports.claimStakingPoolPositionInstruction = claimStakingPoolPositionInstruction;
@@ -26,7 +26,7 @@ function closeLiquidationPoolPosition(program, provider, poolPosition, payer, ov
26
26
  const payerAssociatedHedgeAccount = yield (0, spl_token_1.getOrCreateAssociatedTokenAccount)(provider.connection, payer, hedgeMint, payer.publicKey);
27
27
  const communityAssociatedHedgeTokenAccount = yield (0, spl_token_1.getOrCreateAssociatedTokenAccount)(provider.connection, payer, hedgeMint, vaultSystemStatePublicKey, true);
28
28
  const transaction = new web3_js_1.Transaction().add(yield closeLiquidationPoolPositionInstruction(program, poolEra, poolPosition, payer.publicKey, payerUshAccount.address, payerAssociatedHedgeAccount.address, communityAssociatedHedgeTokenAccount.address, overrideStartTime));
29
- yield (0, web3_js_1.sendAndConfirmTransaction)(provider.connection, transaction, [payer], provider.opts).catch(Errors_1.parseAnchorErrors);
29
+ yield (0, web3_js_1.sendAndConfirmTransaction)(provider.connection, transaction, [payer]).catch(Errors_1.parseAnchorErrors);
30
30
  return poolPosition;
31
31
  });
32
32
  }
@@ -38,27 +38,27 @@ function closeLiquidationPoolPositionInstruction(program, poolEra, poolPosition,
38
38
  const hedgeMint = yield (0, Constants_1.getHedgeMintPublicKey)();
39
39
  const poolUshAccount = yield (0, Constants_1.getLiquidationPoolUshAccountPublicKey)();
40
40
  const poolState = yield (0, Constants_1.getLiquidationPoolStatePublicKey)();
41
- return program.instruction.closeLiquidationPoolPosition(new anchor_1.BN(overrideStartTime !== null && overrideStartTime !== void 0 ? overrideStartTime : Math.floor(Date.now() / 1000)), // override current time
42
- {
43
- accounts: {
44
- vaultSystemState: vaultSystemStatePublicKey,
45
- poolState: poolState,
46
- poolEra: poolEra,
47
- poolPosition: poolPosition,
48
- poolUshAccount: poolUshAccount,
49
- payer: payerPublicKey,
50
- ownerUshAccount: payerUshAccount,
51
- hedgeMint: hedgeMint,
52
- ushMint: ushMint,
53
- payerAssociatedHedgeAccount: payerAssociatedHedgeAccount,
54
- communityAssociatedHedgeTokenAccount: communityAssociatedHedgeTokenAccount,
55
- associatedTokenProgram: spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID,
56
- tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
57
- systemProgram: web3_js_1.SystemProgram.programId,
58
- rent: web3_js_1.SYSVAR_RENT_PUBKEY
59
- },
60
- signers: []
61
- });
41
+ return yield program.methods
42
+ .closeLiquidationPoolPosition(new anchor_1.BN(overrideStartTime !== null && overrideStartTime !== void 0 ? overrideStartTime : Math.floor(Date.now() / 1000)) // override current time
43
+ )
44
+ .accounts({
45
+ vaultSystemState: vaultSystemStatePublicKey,
46
+ poolState: poolState,
47
+ poolEra: poolEra,
48
+ poolPosition: poolPosition,
49
+ poolUshAccount: poolUshAccount,
50
+ payer: payerPublicKey,
51
+ ownerUshAccount: payerUshAccount,
52
+ hedgeMint: hedgeMint,
53
+ ushMint: ushMint,
54
+ payerAssociatedHedgeAccount: payerAssociatedHedgeAccount,
55
+ communityAssociatedHedgeTokenAccount: communityAssociatedHedgeTokenAccount,
56
+ associatedTokenProgram: spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID,
57
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
58
+ systemProgram: web3_js_1.SystemProgram.programId,
59
+ rent: web3_js_1.SYSVAR_RENT_PUBKEY,
60
+ })
61
+ .instruction();
62
62
  });
63
63
  }
64
64
  exports.closeLiquidationPoolPositionInstruction = closeLiquidationPoolPositionInstruction;
@@ -18,7 +18,7 @@ const Constants_1 = require("../Constants");
18
18
  function createStakingPool(program, provider, payer, mintPublicKey, hedgeTokensToBeMinted, overrideStartTime) {
19
19
  return __awaiter(this, void 0, void 0, function* () {
20
20
  const transaction = new web3_js_1.Transaction().add(yield createStakingPoolInstruction(program, payer.publicKey, mintPublicKey, hedgeTokensToBeMinted, overrideStartTime));
21
- yield (0, web3_js_1.sendAndConfirmTransaction)(provider.connection, transaction, [payer], provider.opts).catch(Errors_1.parseAnchorErrors);
21
+ yield (0, web3_js_1.sendAndConfirmTransaction)(provider.connection, transaction, [payer]).catch(Errors_1.parseAnchorErrors);
22
22
  const [poolPublickey] = yield (0, Constants_1.getPoolPublicKeyForMint)(mintPublicKey);
23
23
  return poolPublickey;
24
24
  });
@@ -26,28 +26,27 @@ function createStakingPool(program, provider, payer, mintPublicKey, hedgeTokensT
26
26
  exports.createStakingPool = createStakingPool;
27
27
  function createStakingPoolInstruction(program, payerPublicKey, mintPublicKey, hedgeTokensToBeMinted, overrideStartTime) {
28
28
  return __awaiter(this, void 0, void 0, function* () {
29
- console.log("createStakingPoolInstruction program ID", program.programId.toString());
30
29
  const vaultSystemStatePublicKey = yield (0, Constants_1.getVaultSystemStatePublicKey)();
31
30
  const ushMintPublickey = yield (0, Constants_1.getUshMintPublicKey)();
32
31
  const [poolPublickey, poolBump] = yield (0, Constants_1.getPoolPublicKeyForMint)(mintPublicKey);
33
32
  const poolAssociatedStakedTokenAccount = yield (0, Constants_1.findAssociatedTokenAddress)(poolPublickey, mintPublicKey);
34
33
  const poolAssociatedUshTokenAccount = yield (0, Constants_1.findAssociatedTokenAddress)(poolPublickey, ushMintPublickey);
35
- return program.instruction.createStakingPool(poolBump, new anchor_1.BN(hedgeTokensToBeMinted), new anchor_1.BN(overrideStartTime !== null && overrideStartTime !== void 0 ? overrideStartTime : Math.floor(Date.now() / 1000)), {
36
- accounts: {
37
- signer: payerPublicKey,
38
- vaultSystemState: vaultSystemStatePublicKey,
39
- pool: poolPublickey,
40
- stakedTokenMintInfo: mintPublicKey,
41
- ushMint: ushMintPublickey,
42
- poolAssociatedStakedTokenAccount: poolAssociatedStakedTokenAccount,
43
- poolAssociatedUshTokenAccount: poolAssociatedUshTokenAccount,
44
- rent: web3_js_1.SYSVAR_RENT_PUBKEY,
45
- tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
46
- associatedTokenProgram: spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID,
47
- systemProgram: web3_js_1.SystemProgram.programId
48
- },
49
- signers: []
50
- });
34
+ return yield program.methods
35
+ .createStakingPool(poolBump, new anchor_1.BN(hedgeTokensToBeMinted), new anchor_1.BN(overrideStartTime !== null && overrideStartTime !== void 0 ? overrideStartTime : Math.floor(Date.now() / 1000)))
36
+ .accounts({
37
+ signer: payerPublicKey,
38
+ vaultSystemState: vaultSystemStatePublicKey,
39
+ pool: poolPublickey,
40
+ stakedTokenMintInfo: mintPublicKey,
41
+ ushMint: ushMintPublickey,
42
+ poolAssociatedStakedTokenAccount: poolAssociatedStakedTokenAccount,
43
+ poolAssociatedUshTokenAccount: poolAssociatedUshTokenAccount,
44
+ rent: web3_js_1.SYSVAR_RENT_PUBKEY,
45
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
46
+ associatedTokenProgram: spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID,
47
+ systemProgram: web3_js_1.SystemProgram.programId,
48
+ })
49
+ .instruction();
51
50
  });
52
51
  }
53
52
  exports.createStakingPoolInstruction = createStakingPoolInstruction;
@@ -32,8 +32,7 @@ function createVault(program, provider, payer, collateralType, depositAmount, ov
32
32
  const wrappedSolAccount = web3_js_1.Keypair.generate();
33
33
  const transaction = new web3_js_1.Transaction();
34
34
  const signers = [payer, history];
35
- const isWrappedSol = vaultTypeAccountInfo.collateralMint.toString() ===
36
- serum_1.TokenInstructions.WRAPPED_SOL_MINT.toString();
35
+ const isWrappedSol = vaultTypeAccountInfo.collateralMint.toString() === serum_1.TokenInstructions.WRAPPED_SOL_MINT.toString();
37
36
  const [hedgeStakingPoolPublicKey] = yield (0, Constants_1.getPoolPublicKeyForMint)(yield (0, Constants_1.getHedgeMintPublicKey)());
38
37
  const feePoolAssociatedUshTokenAccount = yield (0, Constants_1.findAssociatedTokenAddress)(hedgeStakingPoolPublicKey, ushMintPublickey);
39
38
  if (isWrappedSol) {
@@ -58,16 +57,15 @@ function createVault(program, provider, payer, collateralType, depositAmount, ov
58
57
  owner: payer.publicKey,
59
58
  }));
60
59
  }
61
- yield (0, web3_js_1.sendAndConfirmTransaction)(provider.connection, transaction, signers, provider === null || provider === void 0 ? void 0 : provider.opts).catch(Errors_1.parseAnchorErrors);
60
+ yield (0, web3_js_1.sendAndConfirmTransaction)(provider.connection, transaction, signers).catch(Errors_1.parseAnchorErrors);
62
61
  return newVaultPublicKey;
63
62
  });
64
63
  }
65
64
  exports.createVault = createVault;
66
- function buildCreateVaultTransaction(program, collateralType, depositAmount, overrideTime) {
65
+ function buildCreateVaultTransaction(program, payerPublicKey, collateralType, depositAmount, overrideTime) {
67
66
  return __awaiter(this, void 0, void 0, function* () {
68
- console.log("HEDGE SDK: buildCreateVaultTransaction");
67
+ console.log('HEDGE SDK: buildCreateVaultTransaction');
69
68
  const ushMintPublickey = yield (0, Constants_1.getUshMintPublicKey)();
70
- const payerPublicKey = program.provider.wallet.publicKey;
71
69
  const salt = (0, uuid_1.v4)().substring(0, 8);
72
70
  const newVaultPublicKey = yield (0, Constants_1.findVaultAddress)(salt);
73
71
  const history = web3_js_1.Keypair.generate();
@@ -84,8 +82,7 @@ function buildCreateVaultTransaction(program, collateralType, depositAmount, ove
84
82
  console.log('Lookup vaultTypeAccountPublicKey', vaultTypeAccountPublicKey.toString());
85
83
  const vaultTypeAccountInfo = yield program.account.vaultType.fetch(vaultTypeAccountPublicKey);
86
84
  console.log('Lookup vaultTypeAccountInfo', vaultTypeAccountInfo);
87
- const isWrappedSol = vaultTypeAccountInfo.collateralMint.toString() ===
88
- serum_1.TokenInstructions.WRAPPED_SOL_MINT.toString();
85
+ const isWrappedSol = vaultTypeAccountInfo.collateralMint.toString() === serum_1.TokenInstructions.WRAPPED_SOL_MINT.toString();
89
86
  const payerTokenAccount = yield (0, Constants_1.findAssociatedTokenAddress)(payerPublicKey, vaultTypeAccountInfo.collateralMint);
90
87
  const vaultAssociatedTokenAccount = yield (0, Constants_1.findAssociatedTokenAddress)(newVaultPublicKey, vaultTypeAccountInfo.collateralMint);
91
88
  const [hedgeStakingPoolPublicKey] = yield (0, Constants_1.getPoolPublicKeyForMint)(yield (0, Constants_1.getHedgeMintPublicKey)());
@@ -106,7 +103,7 @@ function buildCreateVaultTransaction(program, collateralType, depositAmount, ove
106
103
  }));
107
104
  signers.push(wrappedSolAccount);
108
105
  }
109
- console.log("hedgeStakingPoolPublicKey", hedgeStakingPoolPublicKey.toString());
106
+ console.log('hedgeStakingPoolPublicKey', hedgeStakingPoolPublicKey.toString());
110
107
  transaction.add(yield createVaultInstruction(program, salt, payerPublicKey, isWrappedSol ? wrappedSolAccount.publicKey : payerTokenAccount, newVaultPublicKey, vaultAssociatedTokenAccount, hedgeStakingPoolPublicKey, feePoolAssociatedUshTokenAccount, vaultTypeAccountPublicKey, vaultTypeAccountInfo.collateralMint, history.publicKey, ushMintPublickey, depositAmount, overrideTime));
111
108
  if (isWrappedSol) {
112
109
  transaction.add(serum_1.TokenInstructions.closeAccount({
@@ -117,7 +114,7 @@ function buildCreateVaultTransaction(program, collateralType, depositAmount, ove
117
114
  transaction.partialSign(wrappedSolAccount);
118
115
  }
119
116
  transaction.partialSign(history);
120
- console.log("transaction", transaction);
117
+ console.log('transaction', transaction);
121
118
  return [transaction, signers, newVaultPublicKey];
122
119
  });
123
120
  }
@@ -125,27 +122,27 @@ exports.buildCreateVaultTransaction = buildCreateVaultTransaction;
125
122
  function createVaultInstruction(program, salt, payerPublicKey, payerTokenAccountPublicKey, vaultPublicKey, vaultAssociatedTokenAccount, feePool, feePoolAssociatedUshTokenAccount, vaultTypeAccount, collateralMint, historyPublicKey, ushMintPublickey, depositAmount, overrideTime) {
126
123
  return __awaiter(this, void 0, void 0, function* () {
127
124
  const vaultSystemStatePublicKey = yield (0, Constants_1.getVaultSystemStatePublicKey)();
128
- const ix = program.instruction.createVault(salt, new anchor_1.BN(depositAmount), new anchor_1.BN(overrideTime !== null && overrideTime !== void 0 ? overrideTime : Math.floor(Date.now() / 1000)), // override override time
129
- {
130
- accounts: {
131
- vaultSystemState: vaultSystemStatePublicKey,
132
- vaultTypeAccount: vaultTypeAccount,
133
- vault: vaultPublicKey,
134
- vaultAssociatedTokenAccount: vaultAssociatedTokenAccount,
135
- feePool: feePool,
136
- feePoolAssociatedUshTokenAccount: feePoolAssociatedUshTokenAccount,
137
- history: historyPublicKey,
138
- payer: payerPublicKey,
139
- payerTokenAccount: payerTokenAccountPublicKey,
140
- collateralMint: collateralMint,
141
- ushMint: ushMintPublickey,
142
- systemProgram: web3_js_1.SystemProgram.programId,
143
- tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
144
- associatedTokenProgram: spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID,
145
- rent: web3_js_1.SYSVAR_RENT_PUBKEY,
146
- },
147
- signers: [],
148
- });
125
+ const ix = program.methods
126
+ .createVault(salt, new anchor_1.BN(depositAmount), new anchor_1.BN(overrideTime !== null && overrideTime !== void 0 ? overrideTime : Math.floor(Date.now() / 1000)) // override override time
127
+ )
128
+ .accounts({
129
+ vaultSystemState: vaultSystemStatePublicKey,
130
+ vaultTypeAccount: vaultTypeAccount,
131
+ vault: vaultPublicKey,
132
+ vaultAssociatedTokenAccount: vaultAssociatedTokenAccount,
133
+ feePool: feePool,
134
+ feePoolAssociatedUshTokenAccount: feePoolAssociatedUshTokenAccount,
135
+ history: historyPublicKey,
136
+ payer: payerPublicKey,
137
+ payerTokenAccount: payerTokenAccountPublicKey,
138
+ collateralMint: collateralMint,
139
+ ushMint: ushMintPublickey,
140
+ systemProgram: web3_js_1.SystemProgram.programId,
141
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
142
+ associatedTokenProgram: spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID,
143
+ rent: web3_js_1.SYSVAR_RENT_PUBKEY,
144
+ })
145
+ .instruction();
149
146
  return ix;
150
147
  });
151
148
  }
@@ -21,7 +21,7 @@ function depositLiquidationPool(program, provider, payer, depositAmount, overrid
21
21
  const payerUshAccount = yield (0, spl_token_1.getOrCreateAssociatedTokenAccount)(provider.connection, payer, ushMintPublickey, payer.publicKey);
22
22
  const poolPosition = web3_js_1.Keypair.generate();
23
23
  const transaction = new web3_js_1.Transaction().add(yield depositLiquidationPoolInstruction(program, payer.publicKey, payerUshAccount.address, poolPosition.publicKey, depositAmount, overrideStartTime));
24
- yield (0, web3_js_1.sendAndConfirmTransaction)(provider.connection, transaction, [payer, poolPosition], provider.opts).catch(Errors_1.parseAnchorErrors);
24
+ yield (0, web3_js_1.sendAndConfirmTransaction)(provider.connection, transaction, [payer, poolPosition]).catch(Errors_1.parseAnchorErrors);
25
25
  return poolPosition.publicKey;
26
26
  });
27
27
  }
@@ -33,23 +33,22 @@ function depositLiquidationPoolInstruction(program, payerPublicKey, payerUshAcco
33
33
  const poolUSHAccount = yield (0, Constants_1.getLiquidationPoolUshAccountPublicKey)();
34
34
  const ushMint = yield (0, Constants_1.getUshMintPublicKey)();
35
35
  const vaultSystemState = yield (0, Constants_1.getVaultSystemStatePublicKey)();
36
- return program.instruction.depositLiquidationPool(new anchor_1.BN(depositAmount), new anchor_1.BN(overrideStartTime !== null && overrideStartTime !== void 0 ? overrideStartTime : Math.floor(Date.now() / 1000)), // override current time
37
- {
38
- accounts: {
39
- vaultSystemState: vaultSystemState,
40
- poolState: liquidationPoolStatePublicKey,
41
- poolEra: liquidationPoolState.currentEra,
42
- poolPosition: poolPositionPublicKey,
43
- poolUshAccount: poolUSHAccount,
44
- ushMint: ushMint,
45
- payer: payerPublicKey,
46
- ownerUshAccount: payerUshAccount,
47
- tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
48
- systemProgram: web3_js_1.SystemProgram.programId,
49
- rent: web3_js_1.SYSVAR_RENT_PUBKEY
50
- },
51
- signers: []
52
- });
36
+ return yield program.methods
37
+ .depositLiquidationPool(new anchor_1.BN(depositAmount), new anchor_1.BN(overrideStartTime !== null && overrideStartTime !== void 0 ? overrideStartTime : Math.floor(Date.now() / 1000)) // override current time
38
+ )
39
+ .accounts({
40
+ vaultSystemState: vaultSystemState,
41
+ poolState: liquidationPoolStatePublicKey,
42
+ poolUshAccount: poolUSHAccount,
43
+ poolEra: liquidationPoolState.currentEra,
44
+ poolPosition: poolPositionPublicKey,
45
+ ushMint: ushMint,
46
+ payer: payerPublicKey,
47
+ ownerUshAccount: payerUshAccount,
48
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
49
+ systemProgram: web3_js_1.SystemProgram.programId,
50
+ })
51
+ .instruction();
53
52
  });
54
53
  }
55
54
  exports.depositLiquidationPoolInstruction = depositLiquidationPoolInstruction;