hedge-web3 0.2.20 → 0.2.24

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. package/declarations/Constants.d.ts +15 -0
  2. package/declarations/idl/pyth.d.ts +44 -24
  3. package/declarations/idl/switchboard.d.ts +47 -0
  4. package/declarations/idl/vault.d.ts +857 -157
  5. package/declarations/index.d.ts +26 -20
  6. package/declarations/instructions/closeLiquidationPoolPosition.d.ts +2 -2
  7. package/declarations/instructions/createReferralAccount.d.ts +17 -0
  8. package/declarations/instructions/createUserReferralAccount.d.ts +5 -0
  9. package/declarations/instructions/depositLiquidationPool.d.ts +2 -2
  10. package/declarations/instructions/loanVault.d.ts +2 -2
  11. package/declarations/instructions/psmEditAccount.d.ts +12 -0
  12. package/declarations/instructions/psmMintUsh.d.ts +2 -2
  13. package/declarations/instructions/psmRedeemUsh.d.ts +2 -2
  14. package/declarations/instructions/referralClaimFees.d.ts +16 -0
  15. package/declarations/instructions/transferVault.d.ts +3 -17
  16. package/declarations/instructions/updateReferralAccount.d.ts +13 -0
  17. package/declarations/instructions/updateReferralState.d.ts +20 -0
  18. package/declarations/instructions/updateVaultType.d.ts +1 -0
  19. package/declarations/state/VaultAccount.d.ts +2 -1
  20. package/lib/Constants.js +36 -1
  21. package/lib/idl/pyth.js +44 -24
  22. package/lib/idl/switchboard.js +49 -0
  23. package/lib/idl/vault.js +850 -150
  24. package/lib/index.js +26 -20
  25. package/lib/instructions/closeLiquidationPoolPosition.js +16 -3
  26. package/lib/instructions/createReferralAccount.js +80 -0
  27. package/lib/instructions/createUserReferralAccount.js +61 -0
  28. package/lib/instructions/depositLiquidationPool.js +16 -5
  29. package/lib/instructions/loanVault.js +16 -3
  30. package/lib/instructions/psmEditAccount.js +60 -0
  31. package/lib/instructions/psmMintUsh.js +14 -3
  32. package/lib/instructions/psmRedeemUsh.js +14 -3
  33. package/lib/instructions/referralClaimFees.js +84 -0
  34. package/lib/instructions/transferVault.js +10 -24
  35. package/lib/instructions/updateReferralAccount.js +50 -0
  36. package/lib/instructions/updateReferralState.js +57 -0
  37. package/lib/instructions/updateVaultType.js +10 -9
  38. package/package.json +1 -1
  39. package/src/Constants.ts +42 -0
  40. package/src/idl/pyth.ts +88 -48
  41. package/src/idl/switchboard.ts +93 -0
  42. package/src/idl/vault.ts +1762 -362
  43. package/src/index.ts +28 -24
  44. package/src/instructions/closeLiquidationPoolPosition.ts +25 -1
  45. package/src/instructions/createReferralAccount.ts +127 -0
  46. package/src/instructions/createUserReferralAccount.ts +86 -0
  47. package/src/instructions/depositLiquidationPool.ts +24 -4
  48. package/src/instructions/loanVault.ts +20 -1
  49. package/src/instructions/{psmEditAccount.rs → psmEditAccount.ts} +0 -0
  50. package/src/instructions/psmMintUsh.ts +20 -1
  51. package/src/instructions/psmRedeemUsh.ts +20 -1
  52. package/src/instructions/referralClaimFees.ts +159 -0
  53. package/src/instructions/transferVault.ts +21 -58
  54. package/src/instructions/updateReferralAccount.ts +77 -0
  55. package/src/instructions/updateReferralState.ts +93 -0
  56. package/src/instructions/updateVaultType.ts +3 -0
  57. package/src/state/VaultAccount.ts +1 -1
package/src/idl/vault.ts CHANGED
@@ -285,6 +285,21 @@ export type Vault = {
285
285
  "isMut": true,
286
286
  "isSigner": false
287
287
  },
288
+ {
289
+ "name": "userReferralAccount",
290
+ "isMut": true,
291
+ "isSigner": false
292
+ },
293
+ {
294
+ "name": "referralAccount",
295
+ "isMut": true,
296
+ "isSigner": false
297
+ },
298
+ {
299
+ "name": "referralState",
300
+ "isMut": true,
301
+ "isSigner": false
302
+ },
288
303
  {
289
304
  "name": "associatedTokenProgram",
290
305
  "isMut": false,
@@ -524,6 +539,16 @@ export type Vault = {
524
539
  "isMut": true,
525
540
  "isSigner": false
526
541
  },
542
+ {
543
+ "name": "userReferralAccount",
544
+ "isMut": true,
545
+ "isSigner": false
546
+ },
547
+ {
548
+ "name": "referralAccount",
549
+ "isMut": true,
550
+ "isSigner": false
551
+ },
527
552
  {
528
553
  "name": "systemProgram",
529
554
  "isMut": false,
@@ -891,6 +916,21 @@ export type Vault = {
891
916
  "isMut": true,
892
917
  "isSigner": false
893
918
  },
919
+ {
920
+ "name": "referralState",
921
+ "isMut": true,
922
+ "isSigner": false
923
+ },
924
+ {
925
+ "name": "referralAccount",
926
+ "isMut": true,
927
+ "isSigner": false
928
+ },
929
+ {
930
+ "name": "userReferralAccount",
931
+ "isMut": true,
932
+ "isSigner": false
933
+ },
894
934
  {
895
935
  "name": "systemProgram",
896
936
  "isMut": false,
@@ -1760,62 +1800,51 @@ export type Vault = {
1760
1800
  "args": []
1761
1801
  },
1762
1802
  {
1763
- "name": "psmCreate",
1803
+ "name": "createReferralState",
1764
1804
  "accounts": [
1765
1805
  {
1766
- "name": "payer",
1806
+ "name": "signer",
1767
1807
  "isMut": true,
1768
1808
  "isSigner": true
1769
1809
  },
1770
1810
  {
1771
1811
  "name": "vaultSystemState",
1772
- "isMut": true,
1812
+ "isMut": false,
1773
1813
  "isSigner": false
1774
1814
  },
1775
1815
  {
1776
- "name": "psmAccount",
1816
+ "name": "referralState",
1777
1817
  "isMut": true,
1778
1818
  "isSigner": false
1779
1819
  },
1780
1820
  {
1781
- "name": "collateralMint",
1782
- "isMut": false,
1821
+ "name": "referralAccount",
1822
+ "isMut": true,
1783
1823
  "isSigner": false
1784
1824
  },
1785
1825
  {
1786
1826
  "name": "systemProgram",
1787
1827
  "isMut": false,
1788
1828
  "isSigner": false
1789
- }
1790
- ],
1791
- "args": [
1792
- {
1793
- "name": "mintFee",
1794
- "type": "u64"
1795
- },
1796
- {
1797
- "name": "redeemFee",
1798
- "type": "u64"
1799
- },
1800
- {
1801
- "name": "debtLimit",
1802
- "type": "u64"
1803
1829
  },
1804
1830
  {
1805
- "name": "minSwap",
1806
- "type": "u64"
1831
+ "name": "tokenProgram",
1832
+ "isMut": false,
1833
+ "isSigner": false
1807
1834
  },
1808
1835
  {
1809
- "name": "overrideCurrentTime",
1810
- "type": "i64"
1836
+ "name": "rent",
1837
+ "isMut": false,
1838
+ "isSigner": false
1811
1839
  }
1812
- ]
1840
+ ],
1841
+ "args": []
1813
1842
  },
1814
1843
  {
1815
- "name": "psmEditAccount",
1844
+ "name": "createReferralAccount",
1816
1845
  "accounts": [
1817
1846
  {
1818
- "name": "payer",
1847
+ "name": "signer",
1819
1848
  "isMut": true,
1820
1849
  "isSigner": true
1821
1850
  },
@@ -1825,38 +1854,52 @@ export type Vault = {
1825
1854
  "isSigner": false
1826
1855
  },
1827
1856
  {
1828
- "name": "psmAccount",
1857
+ "name": "referralState",
1829
1858
  "isMut": true,
1830
1859
  "isSigner": false
1831
1860
  },
1832
1861
  {
1833
- "name": "collateralMint",
1834
- "isMut": false,
1862
+ "name": "referralAccount",
1863
+ "isMut": true,
1835
1864
  "isSigner": false
1836
1865
  },
1837
1866
  {
1838
- "name": "systemProgram",
1839
- "isMut": false,
1867
+ "name": "userReferralAccount",
1868
+ "isMut": true,
1840
1869
  "isSigner": false
1841
- }
1842
- ],
1843
- "args": [
1870
+ },
1844
1871
  {
1845
- "name": "mintFee",
1846
- "type": "u64"
1872
+ "name": "poolPosition",
1873
+ "isMut": true,
1874
+ "isSigner": false
1847
1875
  },
1848
1876
  {
1849
- "name": "redeemFee",
1850
- "type": "u64"
1877
+ "name": "hedgeMint",
1878
+ "isMut": true,
1879
+ "isSigner": false
1851
1880
  },
1852
1881
  {
1853
- "name": "debtLimit",
1854
- "type": "u64"
1882
+ "name": "hdgAta",
1883
+ "isMut": true,
1884
+ "isSigner": false
1855
1885
  },
1856
1886
  {
1857
- "name": "minSwap",
1858
- "type": "u64"
1887
+ "name": "systemProgram",
1888
+ "isMut": false,
1889
+ "isSigner": false
1890
+ },
1891
+ {
1892
+ "name": "tokenProgram",
1893
+ "isMut": false,
1894
+ "isSigner": false
1859
1895
  },
1896
+ {
1897
+ "name": "rent",
1898
+ "isMut": false,
1899
+ "isSigner": false
1900
+ }
1901
+ ],
1902
+ "args": [
1860
1903
  {
1861
1904
  "name": "overrideCurrentTime",
1862
1905
  "type": "i64"
@@ -1864,85 +1907,117 @@ export type Vault = {
1864
1907
  ]
1865
1908
  },
1866
1909
  {
1867
- "name": "psmMintUsh",
1910
+ "name": "createUserReferralAccount",
1868
1911
  "accounts": [
1869
1912
  {
1870
- "name": "payer",
1913
+ "name": "signer",
1871
1914
  "isMut": true,
1872
1915
  "isSigner": true
1873
1916
  },
1874
1917
  {
1875
- "name": "vaultSystemState",
1918
+ "name": "userReferralAccount",
1876
1919
  "isMut": true,
1877
1920
  "isSigner": false
1878
1921
  },
1879
1922
  {
1880
- "name": "feePool",
1923
+ "name": "referralAccount",
1881
1924
  "isMut": true,
1882
1925
  "isSigner": false
1883
1926
  },
1884
1927
  {
1885
- "name": "feePoolAssociatedUshTokenAccount",
1886
- "isMut": true,
1928
+ "name": "systemProgram",
1929
+ "isMut": false,
1887
1930
  "isSigner": false
1888
1931
  },
1889
1932
  {
1890
- "name": "psmAccount",
1891
- "isMut": true,
1933
+ "name": "tokenProgram",
1934
+ "isMut": false,
1892
1935
  "isSigner": false
1893
1936
  },
1894
1937
  {
1895
- "name": "psmAccountAta",
1896
- "isMut": true,
1938
+ "name": "rent",
1939
+ "isMut": false,
1897
1940
  "isSigner": false
1898
- },
1941
+ }
1942
+ ],
1943
+ "args": [
1899
1944
  {
1900
- "name": "ownerUshAccount",
1945
+ "name": "overrideCurrentTime",
1946
+ "type": "i64"
1947
+ }
1948
+ ]
1949
+ },
1950
+ {
1951
+ "name": "updateReferralState",
1952
+ "accounts": [
1953
+ {
1954
+ "name": "signer",
1901
1955
  "isMut": true,
1956
+ "isSigner": true
1957
+ },
1958
+ {
1959
+ "name": "vaultSystemState",
1960
+ "isMut": false,
1902
1961
  "isSigner": false
1903
1962
  },
1904
1963
  {
1905
- "name": "ownerCollateralAccount",
1964
+ "name": "referralState",
1906
1965
  "isMut": true,
1907
1966
  "isSigner": false
1908
1967
  },
1909
1968
  {
1910
- "name": "collateralMint",
1969
+ "name": "systemProgram",
1911
1970
  "isMut": false,
1912
1971
  "isSigner": false
1913
- },
1972
+ }
1973
+ ],
1974
+ "args": [
1914
1975
  {
1915
- "name": "ushMint",
1976
+ "name": "config",
1977
+ "type": {
1978
+ "defined": "ReferralStateConfig"
1979
+ }
1980
+ }
1981
+ ]
1982
+ },
1983
+ {
1984
+ "name": "updateReferralAccount",
1985
+ "accounts": [
1986
+ {
1987
+ "name": "signer",
1916
1988
  "isMut": true,
1917
- "isSigner": false
1989
+ "isSigner": true
1918
1990
  },
1919
1991
  {
1920
- "name": "systemProgram",
1992
+ "name": "vaultSystemState",
1921
1993
  "isMut": false,
1922
1994
  "isSigner": false
1923
1995
  },
1924
1996
  {
1925
- "name": "tokenProgram",
1997
+ "name": "referralAccount",
1998
+ "isMut": true,
1999
+ "isSigner": false
2000
+ },
2001
+ {
2002
+ "name": "systemProgram",
1926
2003
  "isMut": false,
1927
2004
  "isSigner": false
1928
2005
  }
1929
2006
  ],
1930
2007
  "args": [
1931
2008
  {
1932
- "name": "collateralAmount",
1933
- "type": "u64"
1934
- },
1935
- {
1936
- "name": "overrideCurrentTime",
1937
- "type": "i64"
2009
+ "name": "config",
2010
+ "type": {
2011
+ "defined": "ReferralAccountConfig"
2012
+ }
1938
2013
  }
1939
2014
  ]
1940
2015
  },
1941
2016
  {
1942
- "name": "psmRedeemUsh",
2017
+ "name": "referralClaimFees",
1943
2018
  "accounts": [
1944
2019
  {
1945
- "name": "payer",
2020
+ "name": "signer",
1946
2021
  "isMut": true,
1947
2022
  "isSigner": true
1948
2023
  },
@@ -1952,42 +2027,52 @@ export type Vault = {
1952
2027
  "isSigner": false
1953
2028
  },
1954
2029
  {
1955
- "name": "feePool",
2030
+ "name": "referralState",
1956
2031
  "isMut": true,
1957
2032
  "isSigner": false
1958
2033
  },
1959
2034
  {
1960
- "name": "feePoolAssociatedUshTokenAccount",
2035
+ "name": "referralAccount",
1961
2036
  "isMut": true,
1962
2037
  "isSigner": false
1963
2038
  },
1964
2039
  {
1965
- "name": "psmAccount",
2040
+ "name": "poolPosition",
1966
2041
  "isMut": true,
1967
2042
  "isSigner": false
1968
2043
  },
1969
2044
  {
1970
- "name": "psmAccountAta",
2045
+ "name": "hedgeMint",
1971
2046
  "isMut": true,
1972
2047
  "isSigner": false
1973
2048
  },
1974
2049
  {
1975
- "name": "ownerUshAccount",
2050
+ "name": "signerHdgAta",
1976
2051
  "isMut": true,
1977
2052
  "isSigner": false
1978
2053
  },
1979
2054
  {
1980
- "name": "ownerCollateralAccount",
2055
+ "name": "ushMint",
1981
2056
  "isMut": true,
1982
2057
  "isSigner": false
1983
2058
  },
1984
2059
  {
1985
- "name": "collateralMint",
1986
- "isMut": false,
2060
+ "name": "signerUshAta",
2061
+ "isMut": true,
1987
2062
  "isSigner": false
1988
2063
  },
1989
2064
  {
1990
- "name": "ushMint",
2065
+ "name": "communityAssociatedHedgeTokenAccount",
2066
+ "isMut": true,
2067
+ "isSigner": false
2068
+ },
2069
+ {
2070
+ "name": "feePool",
2071
+ "isMut": true,
2072
+ "isSigner": false
2073
+ },
2074
+ {
2075
+ "name": "feePoolAssociatedUshTokenAccount",
1991
2076
  "isMut": true,
1992
2077
  "isSigner": false
1993
2078
  },
@@ -2000,19 +2085,330 @@ export type Vault = {
2000
2085
  "name": "tokenProgram",
2001
2086
  "isMut": false,
2002
2087
  "isSigner": false
2088
+ },
2089
+ {
2090
+ "name": "rent",
2091
+ "isMut": false,
2092
+ "isSigner": false
2093
+ }
2094
+ ],
2095
+ "args": []
2096
+ },
2097
+ {
2098
+ "name": "psmCreate",
2099
+ "accounts": [
2100
+ {
2101
+ "name": "payer",
2102
+ "isMut": true,
2103
+ "isSigner": true
2104
+ },
2105
+ {
2106
+ "name": "vaultSystemState",
2107
+ "isMut": true,
2108
+ "isSigner": false
2109
+ },
2110
+ {
2111
+ "name": "psmAccount",
2112
+ "isMut": true,
2113
+ "isSigner": false
2114
+ },
2115
+ {
2116
+ "name": "collateralMint",
2117
+ "isMut": false,
2118
+ "isSigner": false
2119
+ },
2120
+ {
2121
+ "name": "systemProgram",
2122
+ "isMut": false,
2123
+ "isSigner": false
2003
2124
  }
2004
2125
  ],
2005
2126
  "args": [
2006
2127
  {
2007
- "name": "ushAmount",
2128
+ "name": "mintFee",
2008
2129
  "type": "u64"
2009
2130
  },
2010
2131
  {
2011
- "name": "overrideCurrentTime",
2012
- "type": "i64"
2013
- }
2014
- ]
2015
- }
2132
+ "name": "redeemFee",
2133
+ "type": "u64"
2134
+ },
2135
+ {
2136
+ "name": "debtLimit",
2137
+ "type": "u64"
2138
+ },
2139
+ {
2140
+ "name": "minSwap",
2141
+ "type": "u64"
2142
+ },
2143
+ {
2144
+ "name": "overrideCurrentTime",
2145
+ "type": "i64"
2146
+ }
2147
+ ]
2148
+ },
2149
+ {
2150
+ "name": "psmEditAccount",
2151
+ "accounts": [
2152
+ {
2153
+ "name": "payer",
2154
+ "isMut": true,
2155
+ "isSigner": true
2156
+ },
2157
+ {
2158
+ "name": "vaultSystemState",
2159
+ "isMut": true,
2160
+ "isSigner": false
2161
+ },
2162
+ {
2163
+ "name": "psmAccount",
2164
+ "isMut": true,
2165
+ "isSigner": false
2166
+ },
2167
+ {
2168
+ "name": "collateralMint",
2169
+ "isMut": false,
2170
+ "isSigner": false
2171
+ },
2172
+ {
2173
+ "name": "systemProgram",
2174
+ "isMut": false,
2175
+ "isSigner": false
2176
+ }
2177
+ ],
2178
+ "args": [
2179
+ {
2180
+ "name": "mintFee",
2181
+ "type": "u64"
2182
+ },
2183
+ {
2184
+ "name": "redeemFee",
2185
+ "type": "u64"
2186
+ },
2187
+ {
2188
+ "name": "debtLimit",
2189
+ "type": "u64"
2190
+ },
2191
+ {
2192
+ "name": "minSwap",
2193
+ "type": "u64"
2194
+ },
2195
+ {
2196
+ "name": "overrideCurrentTime",
2197
+ "type": "i64"
2198
+ }
2199
+ ]
2200
+ },
2201
+ {
2202
+ "name": "psmMintUsh",
2203
+ "accounts": [
2204
+ {
2205
+ "name": "payer",
2206
+ "isMut": true,
2207
+ "isSigner": true
2208
+ },
2209
+ {
2210
+ "name": "vaultSystemState",
2211
+ "isMut": true,
2212
+ "isSigner": false
2213
+ },
2214
+ {
2215
+ "name": "feePool",
2216
+ "isMut": true,
2217
+ "isSigner": false
2218
+ },
2219
+ {
2220
+ "name": "feePoolAssociatedUshTokenAccount",
2221
+ "isMut": true,
2222
+ "isSigner": false
2223
+ },
2224
+ {
2225
+ "name": "psmAccount",
2226
+ "isMut": true,
2227
+ "isSigner": false
2228
+ },
2229
+ {
2230
+ "name": "psmAccountAta",
2231
+ "isMut": true,
2232
+ "isSigner": false
2233
+ },
2234
+ {
2235
+ "name": "ownerUshAccount",
2236
+ "isMut": true,
2237
+ "isSigner": false
2238
+ },
2239
+ {
2240
+ "name": "ownerCollateralAccount",
2241
+ "isMut": true,
2242
+ "isSigner": false
2243
+ },
2244
+ {
2245
+ "name": "collateralMint",
2246
+ "isMut": false,
2247
+ "isSigner": false
2248
+ },
2249
+ {
2250
+ "name": "ushMint",
2251
+ "isMut": true,
2252
+ "isSigner": false
2253
+ },
2254
+ {
2255
+ "name": "referralState",
2256
+ "isMut": true,
2257
+ "isSigner": false
2258
+ },
2259
+ {
2260
+ "name": "referralAccount",
2261
+ "isMut": true,
2262
+ "isSigner": false
2263
+ },
2264
+ {
2265
+ "name": "systemProgram",
2266
+ "isMut": false,
2267
+ "isSigner": false
2268
+ },
2269
+ {
2270
+ "name": "tokenProgram",
2271
+ "isMut": false,
2272
+ "isSigner": false
2273
+ }
2274
+ ],
2275
+ "args": [
2276
+ {
2277
+ "name": "collateralAmount",
2278
+ "type": "u64"
2279
+ },
2280
+ {
2281
+ "name": "overrideCurrentTime",
2282
+ "type": "i64"
2283
+ }
2284
+ ]
2285
+ },
2286
+ {
2287
+ "name": "psmRedeemUsh",
2288
+ "accounts": [
2289
+ {
2290
+ "name": "payer",
2291
+ "isMut": true,
2292
+ "isSigner": true
2293
+ },
2294
+ {
2295
+ "name": "vaultSystemState",
2296
+ "isMut": true,
2297
+ "isSigner": false
2298
+ },
2299
+ {
2300
+ "name": "feePool",
2301
+ "isMut": true,
2302
+ "isSigner": false
2303
+ },
2304
+ {
2305
+ "name": "feePoolAssociatedUshTokenAccount",
2306
+ "isMut": true,
2307
+ "isSigner": false
2308
+ },
2309
+ {
2310
+ "name": "psmAccount",
2311
+ "isMut": true,
2312
+ "isSigner": false
2313
+ },
2314
+ {
2315
+ "name": "psmAccountAta",
2316
+ "isMut": true,
2317
+ "isSigner": false
2318
+ },
2319
+ {
2320
+ "name": "ownerUshAccount",
2321
+ "isMut": true,
2322
+ "isSigner": false
2323
+ },
2324
+ {
2325
+ "name": "ownerCollateralAccount",
2326
+ "isMut": true,
2327
+ "isSigner": false
2328
+ },
2329
+ {
2330
+ "name": "collateralMint",
2331
+ "isMut": false,
2332
+ "isSigner": false
2333
+ },
2334
+ {
2335
+ "name": "ushMint",
2336
+ "isMut": true,
2337
+ "isSigner": false
2338
+ },
2339
+ {
2340
+ "name": "referralState",
2341
+ "isMut": true,
2342
+ "isSigner": false
2343
+ },
2344
+ {
2345
+ "name": "referralAccount",
2346
+ "isMut": true,
2347
+ "isSigner": false
2348
+ },
2349
+ {
2350
+ "name": "systemProgram",
2351
+ "isMut": false,
2352
+ "isSigner": false
2353
+ },
2354
+ {
2355
+ "name": "tokenProgram",
2356
+ "isMut": false,
2357
+ "isSigner": false
2358
+ }
2359
+ ],
2360
+ "args": [
2361
+ {
2362
+ "name": "ushAmount",
2363
+ "type": "u64"
2364
+ },
2365
+ {
2366
+ "name": "overrideCurrentTime",
2367
+ "type": "i64"
2368
+ }
2369
+ ]
2370
+ },
2371
+ {
2372
+ "name": "transferVault",
2373
+ "accounts": [
2374
+ {
2375
+ "name": "vault",
2376
+ "isMut": true,
2377
+ "isSigner": false
2378
+ },
2379
+ {
2380
+ "name": "vaultSystemState",
2381
+ "isMut": true,
2382
+ "isSigner": false
2383
+ },
2384
+ {
2385
+ "name": "vaultType",
2386
+ "isMut": true,
2387
+ "isSigner": false
2388
+ },
2389
+ {
2390
+ "name": "history",
2391
+ "isMut": true,
2392
+ "isSigner": true
2393
+ },
2394
+ {
2395
+ "name": "vaultOwner",
2396
+ "isMut": true,
2397
+ "isSigner": true
2398
+ },
2399
+ {
2400
+ "name": "systemProgram",
2401
+ "isMut": false,
2402
+ "isSigner": false
2403
+ }
2404
+ ],
2405
+ "args": [
2406
+ {
2407
+ "name": "newOwner",
2408
+ "type": "publicKey"
2409
+ }
2410
+ ]
2411
+ }
2016
2412
  ],
2017
2413
  "accounts": [
2018
2414
  {
@@ -2187,132 +2583,260 @@ export type Vault = {
2187
2583
  "type": "u64"
2188
2584
  },
2189
2585
  {
2190
- "name": "timestampOpened",
2586
+ "name": "timestampOpened",
2587
+ "type": "u64"
2588
+ },
2589
+ {
2590
+ "name": "timestampClosed",
2591
+ "type": "u64"
2592
+ },
2593
+ {
2594
+ "name": "state",
2595
+ "type": {
2596
+ "defined": "PositionState"
2597
+ }
2598
+ }
2599
+ ]
2600
+ }
2601
+ },
2602
+ {
2603
+ "name": "oracleInfoForCollateralType",
2604
+ "type": {
2605
+ "kind": "struct",
2606
+ "fields": [
2607
+ {
2608
+ "name": "vaultType",
2609
+ "type": "publicKey"
2610
+ },
2611
+ {
2612
+ "name": "oraclePyth",
2613
+ "type": "publicKey"
2614
+ },
2615
+ {
2616
+ "name": "oracleChainlink",
2617
+ "type": "publicKey"
2618
+ },
2619
+ {
2620
+ "name": "oracleSwitchboard",
2621
+ "type": "publicKey"
2622
+ },
2623
+ {
2624
+ "name": "priorityPyth",
2625
+ "type": "i8"
2626
+ },
2627
+ {
2628
+ "name": "priorityChainlink",
2629
+ "type": "i8"
2630
+ },
2631
+ {
2632
+ "name": "prioritySwitchboard",
2633
+ "type": "i8"
2634
+ },
2635
+ {
2636
+ "name": "vaultTypeName",
2637
+ "type": "string"
2638
+ }
2639
+ ]
2640
+ }
2641
+ },
2642
+ {
2643
+ "name": "psmAccount",
2644
+ "type": {
2645
+ "kind": "struct",
2646
+ "fields": [
2647
+ {
2648
+ "name": "collateralMint",
2649
+ "type": "publicKey"
2650
+ },
2651
+ {
2652
+ "name": "minCollateralRatio",
2653
+ "type": "u128"
2654
+ },
2655
+ {
2656
+ "name": "mintFee",
2657
+ "type": "u128"
2658
+ },
2659
+ {
2660
+ "name": "redeemFee",
2661
+ "type": "u128"
2662
+ },
2663
+ {
2664
+ "name": "totalFeesAccumulatedUsh",
2665
+ "type": "u128"
2666
+ },
2667
+ {
2668
+ "name": "totalFeesAccumulatedCollateral",
2669
+ "type": "u128"
2670
+ },
2671
+ {
2672
+ "name": "recentPrice",
2673
+ "type": "u128"
2674
+ },
2675
+ {
2676
+ "name": "debtLimit",
2677
+ "type": "u64"
2678
+ },
2679
+ {
2680
+ "name": "deposited",
2681
+ "type": "u64"
2682
+ },
2683
+ {
2684
+ "name": "amountMinted",
2685
+ "type": "u64"
2686
+ },
2687
+ {
2688
+ "name": "minSwap",
2689
+ "type": "u64"
2690
+ },
2691
+ {
2692
+ "name": "timeCreated",
2693
+ "type": "u64"
2694
+ },
2695
+ {
2696
+ "name": "timeLastInteraction",
2191
2697
  "type": "u64"
2192
2698
  },
2193
2699
  {
2194
- "name": "timestampClosed",
2700
+ "name": "priceLastUpdatedTimestamp",
2195
2701
  "type": "u64"
2196
2702
  },
2197
2703
  {
2198
- "name": "state",
2704
+ "name": "psmStatus",
2199
2705
  "type": {
2200
- "defined": "PositionState"
2706
+ "defined": "PsmStatus"
2201
2707
  }
2708
+ },
2709
+ {
2710
+ "name": "collateralDecimals",
2711
+ "type": "u8"
2202
2712
  }
2203
2713
  ]
2204
2714
  }
2205
2715
  },
2206
2716
  {
2207
- "name": "oracleInfoForCollateralType",
2717
+ "name": "referralAccount",
2208
2718
  "type": {
2209
2719
  "kind": "struct",
2210
2720
  "fields": [
2211
2721
  {
2212
- "name": "vaultType",
2722
+ "name": "referrer",
2213
2723
  "type": "publicKey"
2214
2724
  },
2215
2725
  {
2216
- "name": "oraclePyth",
2217
- "type": "publicKey"
2726
+ "name": "setupCut",
2727
+ "type": "u128"
2218
2728
  },
2219
2729
  {
2220
- "name": "oracleChainlink",
2221
- "type": "publicKey"
2730
+ "name": "referredUserDiscount",
2731
+ "type": "u128"
2222
2732
  },
2223
2733
  {
2224
- "name": "oracleSwitchboard",
2225
- "type": "publicKey"
2734
+ "name": "stabilityCut",
2735
+ "type": "u128"
2226
2736
  },
2227
2737
  {
2228
- "name": "priorityPyth",
2229
- "type": "i8"
2738
+ "name": "psmCut",
2739
+ "type": "u128"
2230
2740
  },
2231
2741
  {
2232
- "name": "priorityChainlink",
2233
- "type": "i8"
2742
+ "name": "ushAccumulator",
2743
+ "type": "u64"
2234
2744
  },
2235
2745
  {
2236
- "name": "prioritySwitchboard",
2237
- "type": "i8"
2746
+ "name": "hdgAccumulator",
2747
+ "type": "u64"
2238
2748
  },
2239
2749
  {
2240
- "name": "vaultTypeName",
2241
- "type": "string"
2750
+ "name": "ushClaimed",
2751
+ "type": "u64"
2752
+ },
2753
+ {
2754
+ "name": "hdgClaimed",
2755
+ "type": "u64"
2756
+ },
2757
+ {
2758
+ "name": "hdgThreshold",
2759
+ "type": "u64"
2760
+ },
2761
+ {
2762
+ "name": "referralId",
2763
+ "type": "u64"
2242
2764
  }
2243
2765
  ]
2244
2766
  }
2245
2767
  },
2246
2768
  {
2247
- "name": "psmAccount",
2769
+ "name": "referralState",
2248
2770
  "type": {
2249
2771
  "kind": "struct",
2250
2772
  "fields": [
2251
2773
  {
2252
- "name": "collateralMint",
2253
- "type": "publicKey"
2774
+ "name": "setupCut",
2775
+ "type": "u128"
2254
2776
  },
2255
2777
  {
2256
- "name": "minCollateralRatio",
2778
+ "name": "referredUserDiscount",
2257
2779
  "type": "u128"
2258
2780
  },
2259
2781
  {
2260
- "name": "mintFee",
2782
+ "name": "stabilityCut",
2261
2783
  "type": "u128"
2262
2784
  },
2263
2785
  {
2264
- "name": "redeemFee",
2786
+ "name": "psmCut",
2265
2787
  "type": "u128"
2266
2788
  },
2267
2789
  {
2268
- "name": "totalFeesAccumulatedUsh",
2790
+ "name": "maxSetupCut",
2269
2791
  "type": "u128"
2270
2792
  },
2271
2793
  {
2272
- "name": "totalFeesAccumulatedCollateral",
2794
+ "name": "maxReferredDiscount",
2273
2795
  "type": "u128"
2274
2796
  },
2275
2797
  {
2276
- "name": "recentPrice",
2798
+ "name": "maxStabilityCut",
2277
2799
  "type": "u128"
2278
2800
  },
2279
2801
  {
2280
- "name": "debtLimit",
2281
- "type": "u64"
2802
+ "name": "maxPsmCut",
2803
+ "type": "u128"
2282
2804
  },
2283
2805
  {
2284
- "name": "deposited",
2806
+ "name": "referralAccountCount",
2285
2807
  "type": "u64"
2286
2808
  },
2287
2809
  {
2288
- "name": "amountMinted",
2810
+ "name": "hdgThreshold",
2289
2811
  "type": "u64"
2290
2812
  },
2291
2813
  {
2292
- "name": "minSwap",
2814
+ "name": "hdgPsmThreshold",
2293
2815
  "type": "u64"
2294
2816
  },
2295
2817
  {
2296
- "name": "timeCreated",
2297
- "type": "u64"
2818
+ "name": "totalUshClaimed",
2819
+ "type": "u128"
2298
2820
  },
2299
2821
  {
2300
- "name": "timeLastInteraction",
2822
+ "name": "totalHdgClaimed",
2301
2823
  "type": "u64"
2302
2824
  },
2303
2825
  {
2304
- "name": "priceLastUpdatedTimestamp",
2826
+ "name": "totalUshFees",
2827
+ "type": "u128"
2828
+ },
2829
+ {
2830
+ "name": "totalHdgFees",
2305
2831
  "type": "u64"
2306
2832
  },
2307
2833
  {
2308
- "name": "psmStatus",
2309
- "type": {
2310
- "defined": "PsmStatus"
2311
- }
2834
+ "name": "referralPromoThreshold",
2835
+ "type": "u64"
2312
2836
  },
2313
2837
  {
2314
- "name": "collateralDecimals",
2315
- "type": "u8"
2838
+ "name": "referralEnabled",
2839
+ "type": "bool"
2316
2840
  }
2317
2841
  ]
2318
2842
  }
@@ -2443,6 +2967,30 @@ export type Vault = {
2443
2967
  ]
2444
2968
  }
2445
2969
  },
2970
+ {
2971
+ "name": "userReferralAccount",
2972
+ "type": {
2973
+ "kind": "struct",
2974
+ "fields": [
2975
+ {
2976
+ "name": "referralAccount",
2977
+ "type": "publicKey"
2978
+ },
2979
+ {
2980
+ "name": "referrer",
2981
+ "type": "publicKey"
2982
+ },
2983
+ {
2984
+ "name": "referralId",
2985
+ "type": "u64"
2986
+ },
2987
+ {
2988
+ "name": "lastReferrerChange",
2989
+ "type": "u64"
2990
+ }
2991
+ ]
2992
+ }
2993
+ },
2446
2994
  {
2447
2995
  "name": "vaultHistoryEvent",
2448
2996
  "type": {
@@ -2649,6 +3197,14 @@ export type Vault = {
2649
3197
  "type": {
2650
3198
  "option": "publicKey"
2651
3199
  }
3200
+ },
3201
+ {
3202
+ "name": "lastRedeemFeeBytes",
3203
+ "type": "u128"
3204
+ },
3205
+ {
3206
+ "name": "lastRedeemTimestamp",
3207
+ "type": "u64"
2652
3208
  }
2653
3209
  ]
2654
3210
  }
@@ -2775,6 +3331,124 @@ export type Vault = {
2775
3331
  ]
2776
3332
  }
2777
3333
  },
3334
+ {
3335
+ "name": "ReferralAccountConfig",
3336
+ "type": {
3337
+ "kind": "struct",
3338
+ "fields": [
3339
+ {
3340
+ "name": "setupCut",
3341
+ "type": {
3342
+ "option": "u128"
3343
+ }
3344
+ },
3345
+ {
3346
+ "name": "referredUserDiscount",
3347
+ "type": {
3348
+ "option": "u128"
3349
+ }
3350
+ },
3351
+ {
3352
+ "name": "stabilityCut",
3353
+ "type": {
3354
+ "option": "u128"
3355
+ }
3356
+ },
3357
+ {
3358
+ "name": "psmCut",
3359
+ "type": {
3360
+ "option": "u128"
3361
+ }
3362
+ },
3363
+ {
3364
+ "name": "hdgThreshold",
3365
+ "type": {
3366
+ "option": "u64"
3367
+ }
3368
+ }
3369
+ ]
3370
+ }
3371
+ },
3372
+ {
3373
+ "name": "ReferralStateConfig",
3374
+ "type": {
3375
+ "kind": "struct",
3376
+ "fields": [
3377
+ {
3378
+ "name": "setupCut",
3379
+ "type": {
3380
+ "option": "u128"
3381
+ }
3382
+ },
3383
+ {
3384
+ "name": "referredUserDiscount",
3385
+ "type": {
3386
+ "option": "u128"
3387
+ }
3388
+ },
3389
+ {
3390
+ "name": "stabilityCut",
3391
+ "type": {
3392
+ "option": "u128"
3393
+ }
3394
+ },
3395
+ {
3396
+ "name": "psmCut",
3397
+ "type": {
3398
+ "option": "u128"
3399
+ }
3400
+ },
3401
+ {
3402
+ "name": "maxSetupCut",
3403
+ "type": {
3404
+ "option": "u128"
3405
+ }
3406
+ },
3407
+ {
3408
+ "name": "maxReferredDiscount",
3409
+ "type": {
3410
+ "option": "u128"
3411
+ }
3412
+ },
3413
+ {
3414
+ "name": "maxStabilityCut",
3415
+ "type": {
3416
+ "option": "u128"
3417
+ }
3418
+ },
3419
+ {
3420
+ "name": "maxPsmCut",
3421
+ "type": {
3422
+ "option": "u128"
3423
+ }
3424
+ },
3425
+ {
3426
+ "name": "hdgThreshold",
3427
+ "type": {
3428
+ "option": "u64"
3429
+ }
3430
+ },
3431
+ {
3432
+ "name": "hdgPsmThreshold",
3433
+ "type": {
3434
+ "option": "u64"
3435
+ }
3436
+ },
3437
+ {
3438
+ "name": "referralPromoThreshold",
3439
+ "type": {
3440
+ "option": "u64"
3441
+ }
3442
+ },
3443
+ {
3444
+ "name": "referralEnabled",
3445
+ "type": {
3446
+ "option": "bool"
3447
+ }
3448
+ }
3449
+ ]
3450
+ }
3451
+ },
2778
3452
  {
2779
3453
  "name": "VaultTypeConfig",
2780
3454
  "type": {
@@ -2798,6 +3472,12 @@ export type Vault = {
2798
3472
  "option": "u64"
2799
3473
  }
2800
3474
  },
3475
+ {
3476
+ "name": "interestRatePerSecond",
3477
+ "type": {
3478
+ "option": "u128"
3479
+ }
3480
+ },
2801
3481
  {
2802
3482
  "name": "emergencyModeThreshold",
2803
3483
  "type": {
@@ -3146,131 +3826,151 @@ export type Vault = {
3146
3826
  },
3147
3827
  {
3148
3828
  "code": 6009,
3829
+ "name": "NotAuthorizedToCreateReferralState",
3830
+ "msg": "Signer not authorized to create referral state account"
3831
+ },
3832
+ {
3833
+ "code": 6010,
3149
3834
  "name": "NotAuthorized",
3150
3835
  "msg": "Signer not authorized to call this function"
3151
3836
  },
3152
3837
  {
3153
- "code": 6010,
3838
+ "code": 6011,
3154
3839
  "name": "BadSeed",
3155
3840
  "msg": "Bad Seed"
3156
3841
  },
3157
3842
  {
3158
- "code": 6011,
3843
+ "code": 6012,
3159
3844
  "name": "CollateralPriceOutOfDate",
3160
3845
  "msg": "Collateral price needs to be refreshed. It is only valid for 60 seconds."
3161
3846
  },
3162
3847
  {
3163
- "code": 6012,
3848
+ "code": 6013,
3164
3849
  "name": "EmergencyMode",
3165
3850
  "msg": "System is not accepting any tx that would worsen collateral ratio at this time"
3166
3851
  },
3167
3852
  {
3168
- "code": 6013,
3853
+ "code": 6014,
3169
3854
  "name": "MinDebtRequired",
3170
3855
  "msg": "Vault under the minimum debt limit. Vault must have zero debt or be over the minimum."
3171
3856
  },
3172
3857
  {
3173
- "code": 6014,
3858
+ "code": 6015,
3174
3859
  "name": "PoolPositionAlreadyClosed",
3175
3860
  "msg": "Pool position already closed"
3176
3861
  },
3177
3862
  {
3178
- "code": 6015,
3863
+ "code": 6016,
3179
3864
  "name": "PoolPositionNoYetClosed",
3180
3865
  "msg": "Pool position must be closed to claim reward"
3181
3866
  },
3182
3867
  {
3183
- "code": 6016,
3868
+ "code": 6017,
3184
3869
  "name": "MaxDebtAgainstVaultType",
3185
3870
  "msg": "Max debt extended against vault type reached."
3186
3871
  },
3187
3872
  {
3188
- "code": 6017,
3873
+ "code": 6018,
3189
3874
  "name": "VaultTypeNotRedeemable",
3190
3875
  "msg": "Vault type cannot be redeemed against."
3191
3876
  },
3192
3877
  {
3193
- "code": 6018,
3878
+ "code": 6019,
3194
3879
  "name": "SystemHalted",
3195
3880
  "msg": "System is currently halted. No actions may be taken at this time."
3196
3881
  },
3197
3882
  {
3198
- "code": 6019,
3883
+ "code": 6020,
3199
3884
  "name": "EntireVaultRedeem",
3200
3885
  "msg": "Entire vault must be redeemed at this time."
3201
3886
  },
3202
3887
  {
3203
- "code": 6020,
3888
+ "code": 6021,
3204
3889
  "name": "NotRedeemingLowestCollateralRatioVault",
3205
3890
  "msg": "Can only redeem lowest collateral ratio vault in system."
3206
3891
  },
3207
3892
  {
3208
- "code": 6021,
3893
+ "code": 6022,
3209
3894
  "name": "VaultTypeDeprecated",
3210
3895
  "msg": "Vaults of this collateral type are deprecated. No new vaults can be created and no new debt will be issued for this collateral type."
3211
3896
  },
3212
3897
  {
3213
- "code": 6022,
3898
+ "code": 6023,
3214
3899
  "name": "UpdateLinkedListFailed",
3215
3900
  "msg": "There was an error updating the list of vaults. Please make sure the transaction is fresh."
3216
3901
  },
3217
3902
  {
3218
- "code": 6023,
3903
+ "code": 6024,
3219
3904
  "name": "InvalidSaltLength",
3220
3905
  "msg": "Salt for new vaults must be of length 8"
3221
3906
  },
3222
3907
  {
3223
- "code": 6024,
3908
+ "code": 6025,
3224
3909
  "name": "InvalidNameLength",
3225
3910
  "msg": "Name for new vault type must be length 16"
3226
3911
  },
3227
3912
  {
3228
- "code": 6025,
3913
+ "code": 6026,
3229
3914
  "name": "PositionNotClaimed",
3230
3915
  "msg": "Not all positions claimed. Claim all before closing account to recover SOL rent."
3231
3916
  },
3232
3917
  {
3233
- "code": 6026,
3918
+ "code": 6027,
3234
3919
  "name": "PoolWasUsed",
3235
3920
  "msg": "Era was not unused. Cannot reclaim the SOL rent."
3236
3921
  },
3237
3922
  {
3238
- "code": 6027,
3923
+ "code": 6028,
3924
+ "name": "NotEnoughHDG",
3925
+ "msg": "Need more HDG to open account."
3926
+ },
3927
+ {
3928
+ "code": 6029,
3929
+ "name": "ReferralDisabled",
3930
+ "msg": "Referrals are currently disabled."
3931
+ },
3932
+ {
3933
+ "code": 6030,
3934
+ "name": "WrongReferralAccount",
3935
+ "msg": "Attempted to pass in wrong referral account."
3936
+ },
3937
+ {
3938
+ "code": 6031,
3239
3939
  "name": "PsmDisabled",
3240
3940
  "msg": "PSM is currently disabled."
3241
3941
  },
3242
3942
  {
3243
- "code": 6028,
3943
+ "code": 6032,
3244
3944
  "name": "PsmMaxDebtReached",
3245
3945
  "msg": "PSM - Max Debt reached"
3246
3946
  },
3247
3947
  {
3248
- "code": 6029,
3948
+ "code": 6033,
3249
3949
  "name": "PsmMinSwapAmount",
3250
3950
  "msg": "PSM - Need more to swap"
3251
3951
  },
3252
3952
  {
3253
- "code": 6030,
3953
+ "code": 6034,
3254
3954
  "name": "UpdateVaultTypeBadMaxDebtExtended",
3255
3955
  "msg": "New Max debt extended value is less than the current debt!"
3256
3956
  },
3257
3957
  {
3258
- "code": 6031,
3958
+ "code": 6035,
3259
3959
  "name": "UpdateVaultTypeNoEnabledOracles",
3260
3960
  "msg": "No Enabled Oracles!"
3261
3961
  },
3262
3962
  {
3263
- "code": 6032,
3963
+ "code": 6036,
3264
3964
  "name": "UpdateVaultTypeDuplicateOraclePriorities",
3265
3965
  "msg": "Duplicate Oracle Priorities"
3266
3966
  },
3267
3967
  {
3268
- "code": 6033,
3968
+ "code": 6037,
3269
3969
  "name": "UpdateVaultTypeInvalidOraclePriority",
3270
3970
  "msg": "Invalid Oracle Priority"
3271
3971
  },
3272
3972
  {
3273
- "code": 6034,
3973
+ "code": 6038,
3274
3974
  "name": "OracleUpdateFailed",
3275
3975
  "msg": "OracleUpdateFailed"
3276
3976
  }
@@ -3564,6 +4264,21 @@ export const IDL: Vault = {
3564
4264
  "isMut": true,
3565
4265
  "isSigner": false
3566
4266
  },
4267
+ {
4268
+ "name": "userReferralAccount",
4269
+ "isMut": true,
4270
+ "isSigner": false
4271
+ },
4272
+ {
4273
+ "name": "referralAccount",
4274
+ "isMut": true,
4275
+ "isSigner": false
4276
+ },
4277
+ {
4278
+ "name": "referralState",
4279
+ "isMut": true,
4280
+ "isSigner": false
4281
+ },
3567
4282
  {
3568
4283
  "name": "associatedTokenProgram",
3569
4284
  "isMut": false,
@@ -3803,6 +4518,16 @@ export const IDL: Vault = {
3803
4518
  "isMut": true,
3804
4519
  "isSigner": false
3805
4520
  },
4521
+ {
4522
+ "name": "userReferralAccount",
4523
+ "isMut": true,
4524
+ "isSigner": false
4525
+ },
4526
+ {
4527
+ "name": "referralAccount",
4528
+ "isMut": true,
4529
+ "isSigner": false
4530
+ },
3806
4531
  {
3807
4532
  "name": "systemProgram",
3808
4533
  "isMut": false,
@@ -4170,6 +4895,21 @@ export const IDL: Vault = {
4170
4895
  "isMut": true,
4171
4896
  "isSigner": false
4172
4897
  },
4898
+ {
4899
+ "name": "referralState",
4900
+ "isMut": true,
4901
+ "isSigner": false
4902
+ },
4903
+ {
4904
+ "name": "referralAccount",
4905
+ "isMut": true,
4906
+ "isSigner": false
4907
+ },
4908
+ {
4909
+ "name": "userReferralAccount",
4910
+ "isMut": true,
4911
+ "isSigner": false
4912
+ },
4173
4913
  {
4174
4914
  "name": "systemProgram",
4175
4915
  "isMut": false,
@@ -4612,41 +5352,243 @@ export const IDL: Vault = {
4612
5352
  "isSigner": false
4613
5353
  },
4614
5354
  {
4615
- "name": "tokenProgram",
5355
+ "name": "tokenProgram",
5356
+ "isMut": false,
5357
+ "isSigner": false
5358
+ },
5359
+ {
5360
+ "name": "rent",
5361
+ "isMut": false,
5362
+ "isSigner": false
5363
+ }
5364
+ ],
5365
+ "args": [
5366
+ {
5367
+ "name": "mintPdaSeed",
5368
+ "type": "string"
5369
+ },
5370
+ {
5371
+ "name": "tokenName",
5372
+ "type": "string"
5373
+ },
5374
+ {
5375
+ "name": "tokenSymbol",
5376
+ "type": "string"
5377
+ },
5378
+ {
5379
+ "name": "tokenUri",
5380
+ "type": "string"
5381
+ },
5382
+ {
5383
+ "name": "firstTime",
5384
+ "type": "bool"
5385
+ }
5386
+ ]
5387
+ },
5388
+ {
5389
+ "name": "setHalted",
5390
+ "accounts": [
5391
+ {
5392
+ "name": "payer",
5393
+ "isMut": true,
5394
+ "isSigner": true
5395
+ },
5396
+ {
5397
+ "name": "vaultSystemState",
5398
+ "isMut": true,
5399
+ "isSigner": false
5400
+ }
5401
+ ],
5402
+ "args": [
5403
+ {
5404
+ "name": "halted",
5405
+ "type": "bool"
5406
+ }
5407
+ ]
5408
+ },
5409
+ {
5410
+ "name": "withdrawStakingPool",
5411
+ "accounts": [
5412
+ {
5413
+ "name": "payer",
5414
+ "isMut": true,
5415
+ "isSigner": true
5416
+ },
5417
+ {
5418
+ "name": "vaultSystemState",
5419
+ "isMut": true,
5420
+ "isSigner": false
5421
+ },
5422
+ {
5423
+ "name": "pool",
5424
+ "isMut": true,
5425
+ "isSigner": false
5426
+ },
5427
+ {
5428
+ "name": "poolPosition",
5429
+ "isMut": true,
5430
+ "isSigner": false
5431
+ },
5432
+ {
5433
+ "name": "hedgeMint",
5434
+ "isMut": true,
5435
+ "isSigner": false
5436
+ },
5437
+ {
5438
+ "name": "stakedTokenMint",
5439
+ "isMut": true,
5440
+ "isSigner": false
5441
+ },
5442
+ {
5443
+ "name": "ushMint",
5444
+ "isMut": false,
5445
+ "isSigner": false
5446
+ },
5447
+ {
5448
+ "name": "payerAssociatedStakedTokenAccount",
5449
+ "isMut": true,
5450
+ "isSigner": false
5451
+ },
5452
+ {
5453
+ "name": "payerAssociatedHedgeAccount",
5454
+ "isMut": true,
5455
+ "isSigner": false
5456
+ },
5457
+ {
5458
+ "name": "payerAssociatedUshAccount",
5459
+ "isMut": true,
5460
+ "isSigner": false
5461
+ },
5462
+ {
5463
+ "name": "poolAssociatedStakedTokenAccount",
5464
+ "isMut": true,
5465
+ "isSigner": false
5466
+ },
5467
+ {
5468
+ "name": "poolAssociatedUshTokenAccount",
5469
+ "isMut": true,
5470
+ "isSigner": false
5471
+ },
5472
+ {
5473
+ "name": "communityAssociatedHedgeTokenAccount",
5474
+ "isMut": true,
5475
+ "isSigner": false
5476
+ },
5477
+ {
5478
+ "name": "systemProgram",
5479
+ "isMut": false,
5480
+ "isSigner": false
5481
+ },
5482
+ {
5483
+ "name": "tokenProgram",
5484
+ "isMut": false,
5485
+ "isSigner": false
5486
+ }
5487
+ ],
5488
+ "args": [
5489
+ {
5490
+ "name": "overrideCurrentTime",
5491
+ "type": "i64"
5492
+ }
5493
+ ]
5494
+ },
5495
+ {
5496
+ "name": "withdrawVault",
5497
+ "accounts": [
5498
+ {
5499
+ "name": "vaultSystemState",
5500
+ "isMut": true,
5501
+ "isSigner": false
5502
+ },
5503
+ {
5504
+ "name": "vaultTypeAccount",
5505
+ "isMut": true,
5506
+ "isSigner": false
5507
+ },
5508
+ {
5509
+ "name": "vaultTypeAssociatedTokenAccount",
5510
+ "isMut": true,
5511
+ "isSigner": false
5512
+ },
5513
+ {
5514
+ "name": "vaultAssociatedTokenAccount",
5515
+ "isMut": true,
5516
+ "isSigner": false
5517
+ },
5518
+ {
5519
+ "name": "feePool",
5520
+ "isMut": true,
5521
+ "isSigner": false
5522
+ },
5523
+ {
5524
+ "name": "feePoolAssociatedUshTokenAccount",
5525
+ "isMut": true,
5526
+ "isSigner": false
5527
+ },
5528
+ {
5529
+ "name": "history",
5530
+ "isMut": true,
5531
+ "isSigner": true
5532
+ },
5533
+ {
5534
+ "name": "vaultOwner",
5535
+ "isMut": true,
5536
+ "isSigner": true
5537
+ },
5538
+ {
5539
+ "name": "destinationTokenAccount",
5540
+ "isMut": true,
5541
+ "isSigner": false
5542
+ },
5543
+ {
5544
+ "name": "ushMint",
5545
+ "isMut": true,
5546
+ "isSigner": false
5547
+ },
5548
+ {
5549
+ "name": "oldSmallerVaultInfo",
5550
+ "isMut": true,
5551
+ "isSigner": false
5552
+ },
5553
+ {
5554
+ "name": "newSmallerVaultInfo",
5555
+ "isMut": true,
5556
+ "isSigner": false
5557
+ },
5558
+ {
5559
+ "name": "newLargerVaultInfo",
5560
+ "isMut": false,
5561
+ "isSigner": false
5562
+ },
5563
+ {
5564
+ "name": "vault",
5565
+ "isMut": true,
5566
+ "isSigner": false
5567
+ },
5568
+ {
5569
+ "name": "systemProgram",
4616
5570
  "isMut": false,
4617
5571
  "isSigner": false
4618
5572
  },
4619
5573
  {
4620
- "name": "rent",
5574
+ "name": "tokenProgram",
4621
5575
  "isMut": false,
4622
5576
  "isSigner": false
4623
5577
  }
4624
5578
  ],
4625
5579
  "args": [
4626
5580
  {
4627
- "name": "mintPdaSeed",
4628
- "type": "string"
4629
- },
4630
- {
4631
- "name": "tokenName",
4632
- "type": "string"
4633
- },
4634
- {
4635
- "name": "tokenSymbol",
4636
- "type": "string"
4637
- },
4638
- {
4639
- "name": "tokenUri",
4640
- "type": "string"
5581
+ "name": "withdrawAmount",
5582
+ "type": "u64"
4641
5583
  },
4642
5584
  {
4643
- "name": "firstTime",
4644
- "type": "bool"
5585
+ "name": "overrideCurrentTime",
5586
+ "type": "i64"
4645
5587
  }
4646
5588
  ]
4647
5589
  },
4648
5590
  {
4649
- "name": "setHalted",
5591
+ "name": "updateVaultType",
4650
5592
  "accounts": [
4651
5593
  {
4652
5594
  "name": "payer",
@@ -4657,17 +5599,29 @@ export const IDL: Vault = {
4657
5599
  "name": "vaultSystemState",
4658
5600
  "isMut": true,
4659
5601
  "isSigner": false
5602
+ },
5603
+ {
5604
+ "name": "vaultType",
5605
+ "isMut": true,
5606
+ "isSigner": false
5607
+ },
5608
+ {
5609
+ "name": "oracleInfoAccount",
5610
+ "isMut": true,
5611
+ "isSigner": false
4660
5612
  }
4661
5613
  ],
4662
5614
  "args": [
4663
5615
  {
4664
- "name": "halted",
4665
- "type": "bool"
5616
+ "name": "config",
5617
+ "type": {
5618
+ "defined": "VaultTypeConfig"
5619
+ }
4666
5620
  }
4667
5621
  ]
4668
5622
  },
4669
5623
  {
4670
- "name": "withdrawStakingPool",
5624
+ "name": "fixVaultRedeemPointer",
4671
5625
  "accounts": [
4672
5626
  {
4673
5627
  "name": "payer",
@@ -4680,148 +5634,231 @@ export const IDL: Vault = {
4680
5634
  "isSigner": false
4681
5635
  },
4682
5636
  {
4683
- "name": "pool",
5637
+ "name": "vaultAccount",
4684
5638
  "isMut": true,
4685
5639
  "isSigner": false
5640
+ }
5641
+ ],
5642
+ "args": []
5643
+ },
5644
+ {
5645
+ "name": "adminSetRedeemPointer",
5646
+ "accounts": [
5647
+ {
5648
+ "name": "payer",
5649
+ "isMut": true,
5650
+ "isSigner": true
4686
5651
  },
4687
5652
  {
4688
- "name": "poolPosition",
5653
+ "name": "vaultSystemState",
4689
5654
  "isMut": true,
4690
5655
  "isSigner": false
4691
5656
  },
4692
5657
  {
4693
- "name": "hedgeMint",
5658
+ "name": "vaultAccount",
4694
5659
  "isMut": true,
4695
5660
  "isSigner": false
4696
5661
  },
4697
5662
  {
4698
- "name": "stakedTokenMint",
5663
+ "name": "vaultTypeAccount",
4699
5664
  "isMut": true,
4700
5665
  "isSigner": false
5666
+ }
5667
+ ],
5668
+ "args": [
5669
+ {
5670
+ "name": "settingHead",
5671
+ "type": "bool"
4701
5672
  },
4702
5673
  {
4703
- "name": "ushMint",
4704
- "isMut": false,
4705
- "isSigner": false
5674
+ "name": "pointerToSet",
5675
+ "type": {
5676
+ "option": "publicKey"
5677
+ }
5678
+ }
5679
+ ]
5680
+ },
5681
+ {
5682
+ "name": "adminMigrateVault",
5683
+ "accounts": [
5684
+ {
5685
+ "name": "payer",
5686
+ "isMut": true,
5687
+ "isSigner": true
4706
5688
  },
4707
5689
  {
4708
- "name": "payerAssociatedStakedTokenAccount",
5690
+ "name": "vaultSystemState",
4709
5691
  "isMut": true,
4710
5692
  "isSigner": false
4711
5693
  },
4712
5694
  {
4713
- "name": "payerAssociatedHedgeAccount",
5695
+ "name": "vaultAccount",
4714
5696
  "isMut": true,
4715
5697
  "isSigner": false
4716
5698
  },
4717
5699
  {
4718
- "name": "payerAssociatedUshAccount",
5700
+ "name": "vaultTypeAccount",
4719
5701
  "isMut": true,
4720
5702
  "isSigner": false
5703
+ }
5704
+ ],
5705
+ "args": []
5706
+ },
5707
+ {
5708
+ "name": "adminMigrateOracle",
5709
+ "accounts": [
5710
+ {
5711
+ "name": "payer",
5712
+ "isMut": true,
5713
+ "isSigner": true
4721
5714
  },
4722
5715
  {
4723
- "name": "poolAssociatedStakedTokenAccount",
5716
+ "name": "vaultSystemState",
4724
5717
  "isMut": true,
4725
5718
  "isSigner": false
4726
5719
  },
4727
5720
  {
4728
- "name": "poolAssociatedUshTokenAccount",
5721
+ "name": "oracleInfoAccount",
4729
5722
  "isMut": true,
4730
5723
  "isSigner": false
4731
5724
  },
4732
5725
  {
4733
- "name": "communityAssociatedHedgeTokenAccount",
5726
+ "name": "vaultTypeAccount",
4734
5727
  "isMut": true,
4735
5728
  "isSigner": false
5729
+ }
5730
+ ],
5731
+ "args": []
5732
+ },
5733
+ {
5734
+ "name": "closeClaimedLiquidationPoolPosition",
5735
+ "accounts": [
5736
+ {
5737
+ "name": "payer",
5738
+ "isMut": true,
5739
+ "isSigner": true
4736
5740
  },
4737
5741
  {
4738
- "name": "systemProgram",
4739
- "isMut": false,
5742
+ "name": "poolPosition",
5743
+ "isMut": true,
4740
5744
  "isSigner": false
5745
+ }
5746
+ ],
5747
+ "args": []
5748
+ },
5749
+ {
5750
+ "name": "closeClaimedStakingPoolPosition",
5751
+ "accounts": [
5752
+ {
5753
+ "name": "payer",
5754
+ "isMut": true,
5755
+ "isSigner": true
4741
5756
  },
4742
5757
  {
4743
- "name": "tokenProgram",
4744
- "isMut": false,
5758
+ "name": "poolPosition",
5759
+ "isMut": true,
4745
5760
  "isSigner": false
4746
5761
  }
4747
5762
  ],
4748
- "args": [
5763
+ "args": []
5764
+ },
5765
+ {
5766
+ "name": "closeUnusedPoolEra",
5767
+ "accounts": [
4749
5768
  {
4750
- "name": "overrideCurrentTime",
4751
- "type": "i64"
5769
+ "name": "payer",
5770
+ "isMut": true,
5771
+ "isSigner": true
5772
+ },
5773
+ {
5774
+ "name": "poolEra",
5775
+ "isMut": true,
5776
+ "isSigner": false
4752
5777
  }
4753
- ]
5778
+ ],
5779
+ "args": []
4754
5780
  },
4755
5781
  {
4756
- "name": "withdrawVault",
5782
+ "name": "createReferralState",
4757
5783
  "accounts": [
4758
5784
  {
4759
- "name": "vaultSystemState",
5785
+ "name": "signer",
4760
5786
  "isMut": true,
4761
- "isSigner": false
5787
+ "isSigner": true
4762
5788
  },
4763
5789
  {
4764
- "name": "vaultTypeAccount",
4765
- "isMut": true,
5790
+ "name": "vaultSystemState",
5791
+ "isMut": false,
4766
5792
  "isSigner": false
4767
5793
  },
4768
5794
  {
4769
- "name": "vaultTypeAssociatedTokenAccount",
5795
+ "name": "referralState",
4770
5796
  "isMut": true,
4771
5797
  "isSigner": false
4772
5798
  },
4773
5799
  {
4774
- "name": "vaultAssociatedTokenAccount",
5800
+ "name": "referralAccount",
4775
5801
  "isMut": true,
4776
5802
  "isSigner": false
4777
5803
  },
4778
5804
  {
4779
- "name": "feePool",
4780
- "isMut": true,
5805
+ "name": "systemProgram",
5806
+ "isMut": false,
4781
5807
  "isSigner": false
4782
5808
  },
4783
5809
  {
4784
- "name": "feePoolAssociatedUshTokenAccount",
4785
- "isMut": true,
5810
+ "name": "tokenProgram",
5811
+ "isMut": false,
4786
5812
  "isSigner": false
4787
5813
  },
4788
5814
  {
4789
- "name": "history",
5815
+ "name": "rent",
5816
+ "isMut": false,
5817
+ "isSigner": false
5818
+ }
5819
+ ],
5820
+ "args": []
5821
+ },
5822
+ {
5823
+ "name": "createReferralAccount",
5824
+ "accounts": [
5825
+ {
5826
+ "name": "signer",
4790
5827
  "isMut": true,
4791
5828
  "isSigner": true
4792
5829
  },
4793
5830
  {
4794
- "name": "vaultOwner",
5831
+ "name": "vaultSystemState",
4795
5832
  "isMut": true,
4796
- "isSigner": true
5833
+ "isSigner": false
4797
5834
  },
4798
5835
  {
4799
- "name": "destinationTokenAccount",
5836
+ "name": "referralState",
4800
5837
  "isMut": true,
4801
5838
  "isSigner": false
4802
5839
  },
4803
5840
  {
4804
- "name": "ushMint",
5841
+ "name": "referralAccount",
4805
5842
  "isMut": true,
4806
5843
  "isSigner": false
4807
5844
  },
4808
5845
  {
4809
- "name": "oldSmallerVaultInfo",
5846
+ "name": "userReferralAccount",
4810
5847
  "isMut": true,
4811
5848
  "isSigner": false
4812
5849
  },
4813
5850
  {
4814
- "name": "newSmallerVaultInfo",
5851
+ "name": "poolPosition",
4815
5852
  "isMut": true,
4816
5853
  "isSigner": false
4817
5854
  },
4818
5855
  {
4819
- "name": "newLargerVaultInfo",
4820
- "isMut": false,
5856
+ "name": "hedgeMint",
5857
+ "isMut": true,
4821
5858
  "isSigner": false
4822
5859
  },
4823
5860
  {
4824
- "name": "vault",
5861
+ "name": "hdgAta",
4825
5862
  "isMut": true,
4826
5863
  "isSigner": false
4827
5864
  },
@@ -4834,13 +5871,14 @@ export const IDL: Vault = {
4834
5871
  "name": "tokenProgram",
4835
5872
  "isMut": false,
4836
5873
  "isSigner": false
5874
+ },
5875
+ {
5876
+ "name": "rent",
5877
+ "isMut": false,
5878
+ "isSigner": false
4837
5879
  }
4838
5880
  ],
4839
5881
  "args": [
4840
- {
4841
- "name": "withdrawAmount",
4842
- "type": "u64"
4843
- },
4844
5882
  {
4845
5883
  "name": "overrideCurrentTime",
4846
5884
  "type": "i64"
@@ -4848,101 +5886,117 @@ export const IDL: Vault = {
4848
5886
  ]
4849
5887
  },
4850
5888
  {
4851
- "name": "updateVaultType",
5889
+ "name": "createUserReferralAccount",
4852
5890
  "accounts": [
4853
5891
  {
4854
- "name": "payer",
5892
+ "name": "signer",
4855
5893
  "isMut": true,
4856
5894
  "isSigner": true
4857
5895
  },
4858
5896
  {
4859
- "name": "vaultSystemState",
5897
+ "name": "userReferralAccount",
4860
5898
  "isMut": true,
4861
5899
  "isSigner": false
4862
5900
  },
4863
5901
  {
4864
- "name": "vaultType",
5902
+ "name": "referralAccount",
4865
5903
  "isMut": true,
4866
5904
  "isSigner": false
4867
5905
  },
4868
5906
  {
4869
- "name": "oracleInfoAccount",
4870
- "isMut": true,
5907
+ "name": "systemProgram",
5908
+ "isMut": false,
5909
+ "isSigner": false
5910
+ },
5911
+ {
5912
+ "name": "tokenProgram",
5913
+ "isMut": false,
5914
+ "isSigner": false
5915
+ },
5916
+ {
5917
+ "name": "rent",
5918
+ "isMut": false,
4871
5919
  "isSigner": false
4872
5920
  }
4873
5921
  ],
4874
5922
  "args": [
4875
5923
  {
4876
- "name": "config",
4877
- "type": {
4878
- "defined": "VaultTypeConfig"
4879
- }
5924
+ "name": "overrideCurrentTime",
5925
+ "type": "i64"
4880
5926
  }
4881
5927
  ]
4882
5928
  },
4883
5929
  {
4884
- "name": "fixVaultRedeemPointer",
5930
+ "name": "updateReferralState",
4885
5931
  "accounts": [
4886
5932
  {
4887
- "name": "payer",
5933
+ "name": "signer",
4888
5934
  "isMut": true,
4889
5935
  "isSigner": true
4890
5936
  },
4891
5937
  {
4892
5938
  "name": "vaultSystemState",
4893
- "isMut": true,
5939
+ "isMut": false,
4894
5940
  "isSigner": false
4895
5941
  },
4896
5942
  {
4897
- "name": "vaultAccount",
5943
+ "name": "referralState",
4898
5944
  "isMut": true,
4899
5945
  "isSigner": false
5946
+ },
5947
+ {
5948
+ "name": "systemProgram",
5949
+ "isMut": false,
5950
+ "isSigner": false
4900
5951
  }
4901
5952
  ],
4902
- "args": []
5953
+ "args": [
5954
+ {
5955
+ "name": "config",
5956
+ "type": {
5957
+ "defined": "ReferralStateConfig"
5958
+ }
5959
+ }
5960
+ ]
4903
5961
  },
4904
5962
  {
4905
- "name": "adminSetRedeemPointer",
5963
+ "name": "updateReferralAccount",
4906
5964
  "accounts": [
4907
5965
  {
4908
- "name": "payer",
5966
+ "name": "signer",
4909
5967
  "isMut": true,
4910
5968
  "isSigner": true
4911
5969
  },
4912
5970
  {
4913
5971
  "name": "vaultSystemState",
4914
- "isMut": true,
5972
+ "isMut": false,
4915
5973
  "isSigner": false
4916
5974
  },
4917
5975
  {
4918
- "name": "vaultAccount",
5976
+ "name": "referralAccount",
4919
5977
  "isMut": true,
4920
5978
  "isSigner": false
4921
5979
  },
4922
5980
  {
4923
- "name": "vaultTypeAccount",
4924
- "isMut": true,
5981
+ "name": "systemProgram",
5982
+ "isMut": false,
4925
5983
  "isSigner": false
4926
5984
  }
4927
5985
  ],
4928
5986
  "args": [
4929
5987
  {
4930
- "name": "settingHead",
4931
- "type": "bool"
4932
- },
4933
- {
4934
- "name": "pointerToSet",
5988
+ "name": "config",
4935
5989
  "type": {
4936
- "option": "publicKey"
5990
+ "defined": "ReferralAccountConfig"
4937
5991
  }
4938
5992
  }
4939
5993
  ]
4940
5994
  },
4941
5995
  {
4942
- "name": "adminMigrateVault",
5996
+ "name": "referralClaimFees",
4943
5997
  "accounts": [
4944
5998
  {
4945
- "name": "payer",
5999
+ "name": "signer",
4946
6000
  "isMut": true,
4947
6001
  "isSigner": true
4948
6002
  },
@@ -4952,87 +6006,68 @@ export const IDL: Vault = {
4952
6006
  "isSigner": false
4953
6007
  },
4954
6008
  {
4955
- "name": "vaultAccount",
6009
+ "name": "referralState",
4956
6010
  "isMut": true,
4957
6011
  "isSigner": false
4958
6012
  },
4959
6013
  {
4960
- "name": "vaultTypeAccount",
6014
+ "name": "referralAccount",
4961
6015
  "isMut": true,
4962
6016
  "isSigner": false
4963
- }
4964
- ],
4965
- "args": []
4966
- },
4967
- {
4968
- "name": "adminMigrateOracle",
4969
- "accounts": [
6017
+ },
4970
6018
  {
4971
- "name": "payer",
6019
+ "name": "poolPosition",
4972
6020
  "isMut": true,
4973
- "isSigner": true
6021
+ "isSigner": false
4974
6022
  },
4975
6023
  {
4976
- "name": "vaultSystemState",
6024
+ "name": "hedgeMint",
4977
6025
  "isMut": true,
4978
6026
  "isSigner": false
4979
6027
  },
4980
6028
  {
4981
- "name": "oracleInfoAccount",
6029
+ "name": "signerHdgAta",
4982
6030
  "isMut": true,
4983
6031
  "isSigner": false
4984
6032
  },
4985
6033
  {
4986
- "name": "vaultTypeAccount",
6034
+ "name": "ushMint",
4987
6035
  "isMut": true,
4988
6036
  "isSigner": false
4989
- }
4990
- ],
4991
- "args": []
4992
- },
4993
- {
4994
- "name": "closeClaimedLiquidationPoolPosition",
4995
- "accounts": [
6037
+ },
4996
6038
  {
4997
- "name": "payer",
6039
+ "name": "signerUshAta",
4998
6040
  "isMut": true,
4999
- "isSigner": true
6041
+ "isSigner": false
5000
6042
  },
5001
6043
  {
5002
- "name": "poolPosition",
6044
+ "name": "communityAssociatedHedgeTokenAccount",
5003
6045
  "isMut": true,
5004
6046
  "isSigner": false
5005
- }
5006
- ],
5007
- "args": []
5008
- },
5009
- {
5010
- "name": "closeClaimedStakingPoolPosition",
5011
- "accounts": [
6047
+ },
5012
6048
  {
5013
- "name": "payer",
6049
+ "name": "feePool",
5014
6050
  "isMut": true,
5015
- "isSigner": true
6051
+ "isSigner": false
5016
6052
  },
5017
6053
  {
5018
- "name": "poolPosition",
6054
+ "name": "feePoolAssociatedUshTokenAccount",
5019
6055
  "isMut": true,
5020
6056
  "isSigner": false
5021
- }
5022
- ],
5023
- "args": []
5024
- },
5025
- {
5026
- "name": "closeUnusedPoolEra",
5027
- "accounts": [
6057
+ },
5028
6058
  {
5029
- "name": "payer",
5030
- "isMut": true,
5031
- "isSigner": true
6059
+ "name": "systemProgram",
6060
+ "isMut": false,
6061
+ "isSigner": false
5032
6062
  },
5033
6063
  {
5034
- "name": "poolEra",
5035
- "isMut": true,
6064
+ "name": "tokenProgram",
6065
+ "isMut": false,
6066
+ "isSigner": false
6067
+ },
6068
+ {
6069
+ "name": "rent",
6070
+ "isMut": false,
5036
6071
  "isSigner": false
5037
6072
  }
5038
6073
  ],
@@ -5195,6 +6230,16 @@ export const IDL: Vault = {
5195
6230
  "isMut": true,
5196
6231
  "isSigner": false
5197
6232
  },
6233
+ {
6234
+ "name": "referralState",
6235
+ "isMut": true,
6236
+ "isSigner": false
6237
+ },
6238
+ {
6239
+ "name": "referralAccount",
6240
+ "isMut": true,
6241
+ "isSigner": false
6242
+ },
5198
6243
  {
5199
6244
  "name": "systemProgram",
5200
6245
  "isMut": false,
@@ -5270,6 +6315,16 @@ export const IDL: Vault = {
5270
6315
  "isMut": true,
5271
6316
  "isSigner": false
5272
6317
  },
6318
+ {
6319
+ "name": "referralState",
6320
+ "isMut": true,
6321
+ "isSigner": false
6322
+ },
6323
+ {
6324
+ "name": "referralAccount",
6325
+ "isMut": true,
6326
+ "isSigner": false
6327
+ },
5273
6328
  {
5274
6329
  "name": "systemProgram",
5275
6330
  "isMut": false,
@@ -5291,6 +6346,47 @@ export const IDL: Vault = {
5291
6346
  "type": "i64"
5292
6347
  }
5293
6348
  ]
6349
+ },
6350
+ {
6351
+ "name": "transferVault",
6352
+ "accounts": [
6353
+ {
6354
+ "name": "vault",
6355
+ "isMut": true,
6356
+ "isSigner": false
6357
+ },
6358
+ {
6359
+ "name": "vaultSystemState",
6360
+ "isMut": true,
6361
+ "isSigner": false
6362
+ },
6363
+ {
6364
+ "name": "vaultType",
6365
+ "isMut": true,
6366
+ "isSigner": false
6367
+ },
6368
+ {
6369
+ "name": "history",
6370
+ "isMut": true,
6371
+ "isSigner": true
6372
+ },
6373
+ {
6374
+ "name": "vaultOwner",
6375
+ "isMut": true,
6376
+ "isSigner": true
6377
+ },
6378
+ {
6379
+ "name": "systemProgram",
6380
+ "isMut": false,
6381
+ "isSigner": false
6382
+ }
6383
+ ],
6384
+ "args": [
6385
+ {
6386
+ "name": "newOwner",
6387
+ "type": "publicKey"
6388
+ }
6389
+ ]
5294
6390
  }
5295
6391
  ],
5296
6392
  "accounts": [
@@ -5483,115 +6579,243 @@ export const IDL: Vault = {
5483
6579
  }
5484
6580
  },
5485
6581
  {
5486
- "name": "oracleInfoForCollateralType",
6582
+ "name": "oracleInfoForCollateralType",
6583
+ "type": {
6584
+ "kind": "struct",
6585
+ "fields": [
6586
+ {
6587
+ "name": "vaultType",
6588
+ "type": "publicKey"
6589
+ },
6590
+ {
6591
+ "name": "oraclePyth",
6592
+ "type": "publicKey"
6593
+ },
6594
+ {
6595
+ "name": "oracleChainlink",
6596
+ "type": "publicKey"
6597
+ },
6598
+ {
6599
+ "name": "oracleSwitchboard",
6600
+ "type": "publicKey"
6601
+ },
6602
+ {
6603
+ "name": "priorityPyth",
6604
+ "type": "i8"
6605
+ },
6606
+ {
6607
+ "name": "priorityChainlink",
6608
+ "type": "i8"
6609
+ },
6610
+ {
6611
+ "name": "prioritySwitchboard",
6612
+ "type": "i8"
6613
+ },
6614
+ {
6615
+ "name": "vaultTypeName",
6616
+ "type": "string"
6617
+ }
6618
+ ]
6619
+ }
6620
+ },
6621
+ {
6622
+ "name": "psmAccount",
6623
+ "type": {
6624
+ "kind": "struct",
6625
+ "fields": [
6626
+ {
6627
+ "name": "collateralMint",
6628
+ "type": "publicKey"
6629
+ },
6630
+ {
6631
+ "name": "minCollateralRatio",
6632
+ "type": "u128"
6633
+ },
6634
+ {
6635
+ "name": "mintFee",
6636
+ "type": "u128"
6637
+ },
6638
+ {
6639
+ "name": "redeemFee",
6640
+ "type": "u128"
6641
+ },
6642
+ {
6643
+ "name": "totalFeesAccumulatedUsh",
6644
+ "type": "u128"
6645
+ },
6646
+ {
6647
+ "name": "totalFeesAccumulatedCollateral",
6648
+ "type": "u128"
6649
+ },
6650
+ {
6651
+ "name": "recentPrice",
6652
+ "type": "u128"
6653
+ },
6654
+ {
6655
+ "name": "debtLimit",
6656
+ "type": "u64"
6657
+ },
6658
+ {
6659
+ "name": "deposited",
6660
+ "type": "u64"
6661
+ },
6662
+ {
6663
+ "name": "amountMinted",
6664
+ "type": "u64"
6665
+ },
6666
+ {
6667
+ "name": "minSwap",
6668
+ "type": "u64"
6669
+ },
6670
+ {
6671
+ "name": "timeCreated",
6672
+ "type": "u64"
6673
+ },
6674
+ {
6675
+ "name": "timeLastInteraction",
6676
+ "type": "u64"
6677
+ },
6678
+ {
6679
+ "name": "priceLastUpdatedTimestamp",
6680
+ "type": "u64"
6681
+ },
6682
+ {
6683
+ "name": "psmStatus",
6684
+ "type": {
6685
+ "defined": "PsmStatus"
6686
+ }
6687
+ },
6688
+ {
6689
+ "name": "collateralDecimals",
6690
+ "type": "u8"
6691
+ }
6692
+ ]
6693
+ }
6694
+ },
6695
+ {
6696
+ "name": "referralAccount",
5487
6697
  "type": {
5488
6698
  "kind": "struct",
5489
6699
  "fields": [
5490
6700
  {
5491
- "name": "vaultType",
6701
+ "name": "referrer",
5492
6702
  "type": "publicKey"
5493
6703
  },
5494
6704
  {
5495
- "name": "oraclePyth",
5496
- "type": "publicKey"
6705
+ "name": "setupCut",
6706
+ "type": "u128"
5497
6707
  },
5498
6708
  {
5499
- "name": "oracleChainlink",
5500
- "type": "publicKey"
6709
+ "name": "referredUserDiscount",
6710
+ "type": "u128"
5501
6711
  },
5502
6712
  {
5503
- "name": "oracleSwitchboard",
5504
- "type": "publicKey"
6713
+ "name": "stabilityCut",
6714
+ "type": "u128"
5505
6715
  },
5506
6716
  {
5507
- "name": "priorityPyth",
5508
- "type": "i8"
6717
+ "name": "psmCut",
6718
+ "type": "u128"
5509
6719
  },
5510
6720
  {
5511
- "name": "priorityChainlink",
5512
- "type": "i8"
6721
+ "name": "ushAccumulator",
6722
+ "type": "u64"
5513
6723
  },
5514
6724
  {
5515
- "name": "prioritySwitchboard",
5516
- "type": "i8"
6725
+ "name": "hdgAccumulator",
6726
+ "type": "u64"
5517
6727
  },
5518
6728
  {
5519
- "name": "vaultTypeName",
5520
- "type": "string"
6729
+ "name": "ushClaimed",
6730
+ "type": "u64"
6731
+ },
6732
+ {
6733
+ "name": "hdgClaimed",
6734
+ "type": "u64"
6735
+ },
6736
+ {
6737
+ "name": "hdgThreshold",
6738
+ "type": "u64"
6739
+ },
6740
+ {
6741
+ "name": "referralId",
6742
+ "type": "u64"
5521
6743
  }
5522
6744
  ]
5523
6745
  }
5524
6746
  },
5525
6747
  {
5526
- "name": "psmAccount",
6748
+ "name": "referralState",
5527
6749
  "type": {
5528
6750
  "kind": "struct",
5529
6751
  "fields": [
5530
6752
  {
5531
- "name": "collateralMint",
5532
- "type": "publicKey"
6753
+ "name": "setupCut",
6754
+ "type": "u128"
5533
6755
  },
5534
6756
  {
5535
- "name": "minCollateralRatio",
6757
+ "name": "referredUserDiscount",
5536
6758
  "type": "u128"
5537
6759
  },
5538
6760
  {
5539
- "name": "mintFee",
6761
+ "name": "stabilityCut",
5540
6762
  "type": "u128"
5541
6763
  },
5542
6764
  {
5543
- "name": "redeemFee",
6765
+ "name": "psmCut",
5544
6766
  "type": "u128"
5545
6767
  },
5546
6768
  {
5547
- "name": "totalFeesAccumulatedUsh",
6769
+ "name": "maxSetupCut",
5548
6770
  "type": "u128"
5549
6771
  },
5550
6772
  {
5551
- "name": "totalFeesAccumulatedCollateral",
6773
+ "name": "maxReferredDiscount",
5552
6774
  "type": "u128"
5553
6775
  },
5554
6776
  {
5555
- "name": "recentPrice",
6777
+ "name": "maxStabilityCut",
5556
6778
  "type": "u128"
5557
6779
  },
5558
6780
  {
5559
- "name": "debtLimit",
5560
- "type": "u64"
6781
+ "name": "maxPsmCut",
6782
+ "type": "u128"
5561
6783
  },
5562
6784
  {
5563
- "name": "deposited",
6785
+ "name": "referralAccountCount",
5564
6786
  "type": "u64"
5565
6787
  },
5566
6788
  {
5567
- "name": "amountMinted",
6789
+ "name": "hdgThreshold",
5568
6790
  "type": "u64"
5569
6791
  },
5570
6792
  {
5571
- "name": "minSwap",
6793
+ "name": "hdgPsmThreshold",
5572
6794
  "type": "u64"
5573
6795
  },
5574
6796
  {
5575
- "name": "timeCreated",
5576
- "type": "u64"
6797
+ "name": "totalUshClaimed",
6798
+ "type": "u128"
5577
6799
  },
5578
6800
  {
5579
- "name": "timeLastInteraction",
6801
+ "name": "totalHdgClaimed",
5580
6802
  "type": "u64"
5581
6803
  },
5582
6804
  {
5583
- "name": "priceLastUpdatedTimestamp",
6805
+ "name": "totalUshFees",
6806
+ "type": "u128"
6807
+ },
6808
+ {
6809
+ "name": "totalHdgFees",
5584
6810
  "type": "u64"
5585
6811
  },
5586
6812
  {
5587
- "name": "psmStatus",
5588
- "type": {
5589
- "defined": "PsmStatus"
5590
- }
6813
+ "name": "referralPromoThreshold",
6814
+ "type": "u64"
5591
6815
  },
5592
6816
  {
5593
- "name": "collateralDecimals",
5594
- "type": "u8"
6817
+ "name": "referralEnabled",
6818
+ "type": "bool"
5595
6819
  }
5596
6820
  ]
5597
6821
  }
@@ -5722,6 +6946,30 @@ export const IDL: Vault = {
5722
6946
  ]
5723
6947
  }
5724
6948
  },
6949
+ {
6950
+ "name": "userReferralAccount",
6951
+ "type": {
6952
+ "kind": "struct",
6953
+ "fields": [
6954
+ {
6955
+ "name": "referralAccount",
6956
+ "type": "publicKey"
6957
+ },
6958
+ {
6959
+ "name": "referrer",
6960
+ "type": "publicKey"
6961
+ },
6962
+ {
6963
+ "name": "referralId",
6964
+ "type": "u64"
6965
+ },
6966
+ {
6967
+ "name": "lastReferrerChange",
6968
+ "type": "u64"
6969
+ }
6970
+ ]
6971
+ }
6972
+ },
5725
6973
  {
5726
6974
  "name": "vaultHistoryEvent",
5727
6975
  "type": {
@@ -5928,6 +7176,14 @@ export const IDL: Vault = {
5928
7176
  "type": {
5929
7177
  "option": "publicKey"
5930
7178
  }
7179
+ },
7180
+ {
7181
+ "name": "lastRedeemFeeBytes",
7182
+ "type": "u128"
7183
+ },
7184
+ {
7185
+ "name": "lastRedeemTimestamp",
7186
+ "type": "u64"
5931
7187
  }
5932
7188
  ]
5933
7189
  }
@@ -6054,6 +7310,124 @@ export const IDL: Vault = {
6054
7310
  ]
6055
7311
  }
6056
7312
  },
7313
+ {
7314
+ "name": "ReferralAccountConfig",
7315
+ "type": {
7316
+ "kind": "struct",
7317
+ "fields": [
7318
+ {
7319
+ "name": "setupCut",
7320
+ "type": {
7321
+ "option": "u128"
7322
+ }
7323
+ },
7324
+ {
7325
+ "name": "referredUserDiscount",
7326
+ "type": {
7327
+ "option": "u128"
7328
+ }
7329
+ },
7330
+ {
7331
+ "name": "stabilityCut",
7332
+ "type": {
7333
+ "option": "u128"
7334
+ }
7335
+ },
7336
+ {
7337
+ "name": "psmCut",
7338
+ "type": {
7339
+ "option": "u128"
7340
+ }
7341
+ },
7342
+ {
7343
+ "name": "hdgThreshold",
7344
+ "type": {
7345
+ "option": "u64"
7346
+ }
7347
+ }
7348
+ ]
7349
+ }
7350
+ },
7351
+ {
7352
+ "name": "ReferralStateConfig",
7353
+ "type": {
7354
+ "kind": "struct",
7355
+ "fields": [
7356
+ {
7357
+ "name": "setupCut",
7358
+ "type": {
7359
+ "option": "u128"
7360
+ }
7361
+ },
7362
+ {
7363
+ "name": "referredUserDiscount",
7364
+ "type": {
7365
+ "option": "u128"
7366
+ }
7367
+ },
7368
+ {
7369
+ "name": "stabilityCut",
7370
+ "type": {
7371
+ "option": "u128"
7372
+ }
7373
+ },
7374
+ {
7375
+ "name": "psmCut",
7376
+ "type": {
7377
+ "option": "u128"
7378
+ }
7379
+ },
7380
+ {
7381
+ "name": "maxSetupCut",
7382
+ "type": {
7383
+ "option": "u128"
7384
+ }
7385
+ },
7386
+ {
7387
+ "name": "maxReferredDiscount",
7388
+ "type": {
7389
+ "option": "u128"
7390
+ }
7391
+ },
7392
+ {
7393
+ "name": "maxStabilityCut",
7394
+ "type": {
7395
+ "option": "u128"
7396
+ }
7397
+ },
7398
+ {
7399
+ "name": "maxPsmCut",
7400
+ "type": {
7401
+ "option": "u128"
7402
+ }
7403
+ },
7404
+ {
7405
+ "name": "hdgThreshold",
7406
+ "type": {
7407
+ "option": "u64"
7408
+ }
7409
+ },
7410
+ {
7411
+ "name": "hdgPsmThreshold",
7412
+ "type": {
7413
+ "option": "u64"
7414
+ }
7415
+ },
7416
+ {
7417
+ "name": "referralPromoThreshold",
7418
+ "type": {
7419
+ "option": "u64"
7420
+ }
7421
+ },
7422
+ {
7423
+ "name": "referralEnabled",
7424
+ "type": {
7425
+ "option": "bool"
7426
+ }
7427
+ }
7428
+ ]
7429
+ }
7430
+ },
6057
7431
  {
6058
7432
  "name": "VaultTypeConfig",
6059
7433
  "type": {
@@ -6077,6 +7451,12 @@ export const IDL: Vault = {
6077
7451
  "option": "u64"
6078
7452
  }
6079
7453
  },
7454
+ {
7455
+ "name": "interestRatePerSecond",
7456
+ "type": {
7457
+ "option": "u128"
7458
+ }
7459
+ },
6080
7460
  {
6081
7461
  "name": "emergencyModeThreshold",
6082
7462
  "type": {
@@ -6425,131 +7805,151 @@ export const IDL: Vault = {
6425
7805
  },
6426
7806
  {
6427
7807
  "code": 6009,
7808
+ "name": "NotAuthorizedToCreateReferralState",
7809
+ "msg": "Signer not authorized to create referral state account"
7810
+ },
7811
+ {
7812
+ "code": 6010,
6428
7813
  "name": "NotAuthorized",
6429
7814
  "msg": "Signer not authorized to call this function"
6430
7815
  },
6431
7816
  {
6432
- "code": 6010,
7817
+ "code": 6011,
6433
7818
  "name": "BadSeed",
6434
7819
  "msg": "Bad Seed"
6435
7820
  },
6436
7821
  {
6437
- "code": 6011,
7822
+ "code": 6012,
6438
7823
  "name": "CollateralPriceOutOfDate",
6439
7824
  "msg": "Collateral price needs to be refreshed. It is only valid for 60 seconds."
6440
7825
  },
6441
7826
  {
6442
- "code": 6012,
7827
+ "code": 6013,
6443
7828
  "name": "EmergencyMode",
6444
7829
  "msg": "System is not accepting any tx that would worsen collateral ratio at this time"
6445
7830
  },
6446
7831
  {
6447
- "code": 6013,
7832
+ "code": 6014,
6448
7833
  "name": "MinDebtRequired",
6449
7834
  "msg": "Vault under the minimum debt limit. Vault must have zero debt or be over the minimum."
6450
7835
  },
6451
7836
  {
6452
- "code": 6014,
7837
+ "code": 6015,
6453
7838
  "name": "PoolPositionAlreadyClosed",
6454
7839
  "msg": "Pool position already closed"
6455
7840
  },
6456
7841
  {
6457
- "code": 6015,
7842
+ "code": 6016,
6458
7843
  "name": "PoolPositionNoYetClosed",
6459
7844
  "msg": "Pool position must be closed to claim reward"
6460
7845
  },
6461
7846
  {
6462
- "code": 6016,
7847
+ "code": 6017,
6463
7848
  "name": "MaxDebtAgainstVaultType",
6464
7849
  "msg": "Max debt extended against vault type reached."
6465
7850
  },
6466
7851
  {
6467
- "code": 6017,
7852
+ "code": 6018,
6468
7853
  "name": "VaultTypeNotRedeemable",
6469
7854
  "msg": "Vault type cannot be redeemed against."
6470
7855
  },
6471
7856
  {
6472
- "code": 6018,
7857
+ "code": 6019,
6473
7858
  "name": "SystemHalted",
6474
7859
  "msg": "System is currently halted. No actions may be taken at this time."
6475
7860
  },
6476
7861
  {
6477
- "code": 6019,
7862
+ "code": 6020,
6478
7863
  "name": "EntireVaultRedeem",
6479
7864
  "msg": "Entire vault must be redeemed at this time."
6480
7865
  },
6481
7866
  {
6482
- "code": 6020,
7867
+ "code": 6021,
6483
7868
  "name": "NotRedeemingLowestCollateralRatioVault",
6484
7869
  "msg": "Can only redeem lowest collateral ratio vault in system."
6485
7870
  },
6486
7871
  {
6487
- "code": 6021,
7872
+ "code": 6022,
6488
7873
  "name": "VaultTypeDeprecated",
6489
7874
  "msg": "Vaults of this collateral type are deprecated. No new vaults can be created and no new debt will be issued for this collateral type."
6490
7875
  },
6491
7876
  {
6492
- "code": 6022,
7877
+ "code": 6023,
6493
7878
  "name": "UpdateLinkedListFailed",
6494
7879
  "msg": "There was an error updating the list of vaults. Please make sure the transaction is fresh."
6495
7880
  },
6496
7881
  {
6497
- "code": 6023,
7882
+ "code": 6024,
6498
7883
  "name": "InvalidSaltLength",
6499
7884
  "msg": "Salt for new vaults must be of length 8"
6500
7885
  },
6501
7886
  {
6502
- "code": 6024,
7887
+ "code": 6025,
6503
7888
  "name": "InvalidNameLength",
6504
7889
  "msg": "Name for new vault type must be length 16"
6505
7890
  },
6506
7891
  {
6507
- "code": 6025,
7892
+ "code": 6026,
6508
7893
  "name": "PositionNotClaimed",
6509
7894
  "msg": "Not all positions claimed. Claim all before closing account to recover SOL rent."
6510
7895
  },
6511
7896
  {
6512
- "code": 6026,
7897
+ "code": 6027,
6513
7898
  "name": "PoolWasUsed",
6514
7899
  "msg": "Era was not unused. Cannot reclaim the SOL rent."
6515
7900
  },
6516
7901
  {
6517
- "code": 6027,
7902
+ "code": 6028,
7903
+ "name": "NotEnoughHDG",
7904
+ "msg": "Need more HDG to open account."
7905
+ },
7906
+ {
7907
+ "code": 6029,
7908
+ "name": "ReferralDisabled",
7909
+ "msg": "Referrals are currently disabled."
7910
+ },
7911
+ {
7912
+ "code": 6030,
7913
+ "name": "WrongReferralAccount",
7914
+ "msg": "Attempted to pass in wrong referral account."
7915
+ },
7916
+ {
7917
+ "code": 6031,
6518
7918
  "name": "PsmDisabled",
6519
7919
  "msg": "PSM is currently disabled."
6520
7920
  },
6521
7921
  {
6522
- "code": 6028,
7922
+ "code": 6032,
6523
7923
  "name": "PsmMaxDebtReached",
6524
7924
  "msg": "PSM - Max Debt reached"
6525
7925
  },
6526
7926
  {
6527
- "code": 6029,
7927
+ "code": 6033,
6528
7928
  "name": "PsmMinSwapAmount",
6529
7929
  "msg": "PSM - Need more to swap"
6530
7930
  },
6531
7931
  {
6532
- "code": 6030,
7932
+ "code": 6034,
6533
7933
  "name": "UpdateVaultTypeBadMaxDebtExtended",
6534
7934
  "msg": "New Max debt extended value is less than the current debt!"
6535
7935
  },
6536
7936
  {
6537
- "code": 6031,
7937
+ "code": 6035,
6538
7938
  "name": "UpdateVaultTypeNoEnabledOracles",
6539
7939
  "msg": "No Enabled Oracles!"
6540
7940
  },
6541
7941
  {
6542
- "code": 6032,
7942
+ "code": 6036,
6543
7943
  "name": "UpdateVaultTypeDuplicateOraclePriorities",
6544
7944
  "msg": "Duplicate Oracle Priorities"
6545
7945
  },
6546
7946
  {
6547
- "code": 6033,
7947
+ "code": 6037,
6548
7948
  "name": "UpdateVaultTypeInvalidOraclePriority",
6549
7949
  "msg": "Invalid Oracle Priority"
6550
7950
  },
6551
7951
  {
6552
- "code": 6034,
7952
+ "code": 6038,
6553
7953
  "name": "OracleUpdateFailed",
6554
7954
  "msg": "OracleUpdateFailed"
6555
7955
  }