hedge-web3 0.2.20 → 0.2.24

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 (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
  }