@kasufinance/kasu-sdk 1.0.1

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 (219) hide show
  1. package/.eslintignore +3 -0
  2. package/.eslintrc.json +90 -0
  3. package/.github/workflows/ci.yml +0 -0
  4. package/.github/workflows/main.yml +43 -0
  5. package/.prettierignore +3 -0
  6. package/.prettierrc +28 -0
  7. package/abis/IClearingCoordinator.abi.json +410 -0
  8. package/abis/IERC20Metadata.abi.json +224 -0
  9. package/abis/IFeeManager.abi.json +66 -0
  10. package/abis/IKSULocking.abi.json +754 -0
  11. package/abis/IKasuAllowList.abi.json +455 -0
  12. package/abis/IKasuController.abi.json +423 -0
  13. package/abis/IKasuNFTs.abi.json +1523 -0
  14. package/abis/IKsuPrice.abi.json +15 -0
  15. package/abis/ILendingPool.abi.json +1431 -0
  16. package/abis/ILendingPoolFactory.abi.json +97 -0
  17. package/abis/ILendingPoolManager.abi.json +1347 -0
  18. package/abis/ILendingPoolTranche.abi.json +1317 -0
  19. package/abis/IPriceFeed.abi.json +1 -0
  20. package/abis/ISystemVariables.abi.json +431 -0
  21. package/abis/IUserLoyaltyRewards.abi.json +288 -0
  22. package/abis/IUserManager.abi.json +321 -0
  23. package/abis/KSULockBonus.abi.json +91 -0
  24. package/abis/KasuPoolExternalTVL.abi.json +812 -0
  25. package/abis/Swapper.abi.json +146 -0
  26. package/copy-abi.ps1 +15 -0
  27. package/dist/bundle.cjs.js +21646 -0
  28. package/dist/bundle.esm.js +21644 -0
  29. package/dist/contracts/IClearingCoordinatorAbi.d.ts +169 -0
  30. package/dist/contracts/IClearingCoordinatorAbi.js +1 -0
  31. package/dist/contracts/IERC20MetadataAbi.d.ts +162 -0
  32. package/dist/contracts/IERC20MetadataAbi.js +1 -0
  33. package/dist/contracts/IFeeManagerAbi.d.ts +96 -0
  34. package/dist/contracts/IFeeManagerAbi.js +1 -0
  35. package/dist/contracts/IKSULockingAbi.d.ts +466 -0
  36. package/dist/contracts/IKSULockingAbi.js +1 -0
  37. package/dist/contracts/IKasuAllowListAbi.d.ts +304 -0
  38. package/dist/contracts/IKasuAllowListAbi.js +1 -0
  39. package/dist/contracts/IKasuControllerAbi.d.ts +309 -0
  40. package/dist/contracts/IKasuControllerAbi.js +1 -0
  41. package/dist/contracts/IKasuNFTsAbi.d.ts +1121 -0
  42. package/dist/contracts/IKasuNFTsAbi.js +1 -0
  43. package/dist/contracts/IKsuPriceAbi.d.ts +42 -0
  44. package/dist/contracts/IKsuPriceAbi.js +1 -0
  45. package/dist/contracts/ILendingPoolAbi.d.ts +968 -0
  46. package/dist/contracts/ILendingPoolAbi.js +1 -0
  47. package/dist/contracts/ILendingPoolFactoryAbi.d.ts +103 -0
  48. package/dist/contracts/ILendingPoolFactoryAbi.js +1 -0
  49. package/dist/contracts/ILendingPoolManagerAbi.d.ts +779 -0
  50. package/dist/contracts/ILendingPoolManagerAbi.js +1 -0
  51. package/dist/contracts/ILendingPoolTrancheAbi.d.ts +752 -0
  52. package/dist/contracts/ILendingPoolTrancheAbi.js +1 -0
  53. package/dist/contracts/ISystemVariablesAbi.d.ts +378 -0
  54. package/dist/contracts/ISystemVariablesAbi.js +1 -0
  55. package/dist/contracts/IUserLoyaltyRewardsAbi.d.ts +248 -0
  56. package/dist/contracts/IUserLoyaltyRewardsAbi.js +1 -0
  57. package/dist/contracts/IUserManagerAbi.d.ts +270 -0
  58. package/dist/contracts/IUserManagerAbi.js +1 -0
  59. package/dist/contracts/KSULockBonusAbi.d.ts +61 -0
  60. package/dist/contracts/KSULockBonusAbi.js +1 -0
  61. package/dist/contracts/KasuPoolExternalTVLAbi.d.ts +411 -0
  62. package/dist/contracts/KasuPoolExternalTVLAbi.js +1 -0
  63. package/dist/contracts/SwapperAbi.d.ts +120 -0
  64. package/dist/contracts/SwapperAbi.js +1 -0
  65. package/dist/contracts/common.d.ts +21 -0
  66. package/dist/contracts/common.js +1 -0
  67. package/dist/contracts/factories/IClearingCoordinatorAbi__factory.d.ts +320 -0
  68. package/dist/contracts/factories/IClearingCoordinatorAbi__factory.js +423 -0
  69. package/dist/contracts/factories/IERC20MetadataAbi__factory.d.ts +178 -0
  70. package/dist/contracts/factories/IERC20MetadataAbi__factory.js +237 -0
  71. package/dist/contracts/factories/IFeeManagerAbi__factory.d.ts +59 -0
  72. package/dist/contracts/factories/IFeeManagerAbi__factory.js +79 -0
  73. package/dist/contracts/factories/IKSULockingAbi__factory.d.ts +588 -0
  74. package/dist/contracts/factories/IKSULockingAbi__factory.js +767 -0
  75. package/dist/contracts/factories/IKasuAllowListAbi__factory.d.ts +354 -0
  76. package/dist/contracts/factories/IKasuAllowListAbi__factory.js +468 -0
  77. package/dist/contracts/factories/IKasuControllerAbi__factory.d.ts +339 -0
  78. package/dist/contracts/factories/IKasuControllerAbi__factory.js +436 -0
  79. package/dist/contracts/factories/IKasuNFTsAbi__factory.d.ts +1629 -0
  80. package/dist/contracts/factories/IKasuNFTsAbi__factory.js +2108 -0
  81. package/dist/contracts/factories/IKsuPriceAbi__factory.d.ts +18 -0
  82. package/dist/contracts/factories/IKsuPriceAbi__factory.js +28 -0
  83. package/dist/contracts/factories/ILendingPoolAbi__factory.d.ts +1109 -0
  84. package/dist/contracts/factories/ILendingPoolAbi__factory.js +1444 -0
  85. package/dist/contracts/factories/ILendingPoolFactoryAbi__factory.d.ts +81 -0
  86. package/dist/contracts/factories/ILendingPoolFactoryAbi__factory.js +110 -0
  87. package/dist/contracts/factories/ILendingPoolManagerAbi__factory.d.ts +1045 -0
  88. package/dist/contracts/factories/ILendingPoolManagerAbi__factory.js +1360 -0
  89. package/dist/contracts/factories/ILendingPoolTrancheAbi__factory.d.ts +1015 -0
  90. package/dist/contracts/factories/ILendingPoolTrancheAbi__factory.js +1330 -0
  91. package/dist/contracts/factories/ISystemVariablesAbi__factory.d.ts +338 -0
  92. package/dist/contracts/factories/ISystemVariablesAbi__factory.js +444 -0
  93. package/dist/contracts/factories/IUserLoyaltyRewardsAbi__factory.d.ts +230 -0
  94. package/dist/contracts/factories/IUserLoyaltyRewardsAbi__factory.js +301 -0
  95. package/dist/contracts/factories/IUserManagerAbi__factory.d.ts +250 -0
  96. package/dist/contracts/factories/IUserManagerAbi__factory.js +334 -0
  97. package/dist/contracts/factories/KSULockBonusAbi__factory.d.ts +76 -0
  98. package/dist/contracts/factories/KSULockBonusAbi__factory.js +104 -0
  99. package/dist/contracts/factories/KasuPoolExternalTVLAbi__factory.d.ts +631 -0
  100. package/dist/contracts/factories/KasuPoolExternalTVLAbi__factory.js +825 -0
  101. package/dist/contracts/factories/SwapperAbi__factory.d.ts +120 -0
  102. package/dist/contracts/factories/SwapperAbi__factory.js +159 -0
  103. package/dist/contracts/factories/index.d.ts +18 -0
  104. package/dist/contracts/factories/index.js +21 -0
  105. package/dist/contracts/index.d.ts +37 -0
  106. package/dist/contracts/index.js +19 -0
  107. package/dist/index.d.ts +17 -0
  108. package/dist/index.js +16 -0
  109. package/dist/sdk-config.d.ts +22 -0
  110. package/dist/sdk-config.js +9 -0
  111. package/dist/services/DataService/data-service.d.ts +37 -0
  112. package/dist/services/DataService/data-service.js +586 -0
  113. package/dist/services/DataService/directus-types.d.ts +187 -0
  114. package/dist/services/DataService/directus-types.js +1 -0
  115. package/dist/services/DataService/queries.d.ts +7 -0
  116. package/dist/services/DataService/queries.js +158 -0
  117. package/dist/services/DataService/subgraph-types.d.ts +95 -0
  118. package/dist/services/DataService/subgraph-types.js +1 -0
  119. package/dist/services/DataService/types.d.ts +169 -0
  120. package/dist/services/DataService/types.js +1 -0
  121. package/dist/services/Locking/locking.d.ts +61 -0
  122. package/dist/services/Locking/locking.js +344 -0
  123. package/dist/services/Locking/queries.d.ts +10 -0
  124. package/dist/services/Locking/queries.js +108 -0
  125. package/dist/services/Locking/types.d.ts +117 -0
  126. package/dist/services/Locking/types.js +1 -0
  127. package/dist/services/Portfolio/portfolio.d.ts +22 -0
  128. package/dist/services/Portfolio/portfolio.js +325 -0
  129. package/dist/services/Portfolio/queries.d.ts +2 -0
  130. package/dist/services/Portfolio/queries.js +164 -0
  131. package/dist/services/Portfolio/types.d.ts +206 -0
  132. package/dist/services/Portfolio/types.js +1 -0
  133. package/dist/services/Swapper/swapper.d.ts +11 -0
  134. package/dist/services/Swapper/swapper.js +97 -0
  135. package/dist/services/Swapper/types.d.ts +51 -0
  136. package/dist/services/Swapper/types.js +1 -0
  137. package/dist/services/UserLending/helper.d.ts +2 -0
  138. package/dist/services/UserLending/helper.js +16 -0
  139. package/dist/services/UserLending/queries.d.ts +8 -0
  140. package/dist/services/UserLending/queries.js +188 -0
  141. package/dist/services/UserLending/subgraph-types.d.ts +147 -0
  142. package/dist/services/UserLending/subgraph-types.js +6 -0
  143. package/dist/services/UserLending/types.d.ts +102 -0
  144. package/dist/services/UserLending/types.js +13 -0
  145. package/dist/services/UserLending/user-lending.d.ts +55 -0
  146. package/dist/services/UserLending/user-lending.js +490 -0
  147. package/dist/services/shared.d.ts +1 -0
  148. package/dist/services/shared.js +11 -0
  149. package/dist/tests/sample.test.d.ts +1 -0
  150. package/dist/tests/sample.test.js +32 -0
  151. package/index.ts +2 -0
  152. package/jest-config.ts +9 -0
  153. package/jest.config.js +8 -0
  154. package/package.json +49 -0
  155. package/rollup.config.js +45 -0
  156. package/src/contracts/IClearingCoordinatorAbi.ts +406 -0
  157. package/src/contracts/IERC20MetadataAbi.ts +364 -0
  158. package/src/contracts/IFeeManagerAbi.ts +182 -0
  159. package/src/contracts/IKSULockingAbi.ts +965 -0
  160. package/src/contracts/IKasuAllowListAbi.ts +605 -0
  161. package/src/contracts/IKasuControllerAbi.ts +703 -0
  162. package/src/contracts/IKasuNFTsAbi.ts +2744 -0
  163. package/src/contracts/IKsuPriceAbi.ts +87 -0
  164. package/src/contracts/ILendingPoolAbi.ts +2081 -0
  165. package/src/contracts/ILendingPoolFactoryAbi.ts +161 -0
  166. package/src/contracts/ILendingPoolManagerAbi.ts +1917 -0
  167. package/src/contracts/ILendingPoolTrancheAbi.ts +1911 -0
  168. package/src/contracts/ISystemVariablesAbi.ts +908 -0
  169. package/src/contracts/IUserLoyaltyRewardsAbi.ts +544 -0
  170. package/src/contracts/IUserManagerAbi.ts +612 -0
  171. package/src/contracts/KSULockBonusAbi.ts +124 -0
  172. package/src/contracts/KasuPoolExternalTVLAbi.ts +1071 -0
  173. package/src/contracts/SwapperAbi.ts +266 -0
  174. package/src/contracts/common.ts +44 -0
  175. package/src/contracts/factories/IClearingCoordinatorAbi__factory.ts +438 -0
  176. package/src/contracts/factories/IERC20MetadataAbi__factory.ts +248 -0
  177. package/src/contracts/factories/IFeeManagerAbi__factory.ts +90 -0
  178. package/src/contracts/factories/IKSULockingAbi__factory.ts +778 -0
  179. package/src/contracts/factories/IKasuAllowListAbi__factory.ts +479 -0
  180. package/src/contracts/factories/IKasuControllerAbi__factory.ts +447 -0
  181. package/src/contracts/factories/IKasuNFTsAbi__factory.ts +2116 -0
  182. package/src/contracts/factories/IKsuPriceAbi__factory.ts +36 -0
  183. package/src/contracts/factories/ILendingPoolAbi__factory.ts +1455 -0
  184. package/src/contracts/factories/ILendingPoolFactoryAbi__factory.ts +125 -0
  185. package/src/contracts/factories/ILendingPoolManagerAbi__factory.ts +1375 -0
  186. package/src/contracts/factories/ILendingPoolTrancheAbi__factory.ts +1345 -0
  187. package/src/contracts/factories/ISystemVariablesAbi__factory.ts +455 -0
  188. package/src/contracts/factories/IUserLoyaltyRewardsAbi__factory.ts +316 -0
  189. package/src/contracts/factories/IUserManagerAbi__factory.ts +345 -0
  190. package/src/contracts/factories/KSULockBonusAbi__factory.ts +115 -0
  191. package/src/contracts/factories/KasuPoolExternalTVLAbi__factory.ts +840 -0
  192. package/src/contracts/factories/SwapperAbi__factory.ts +167 -0
  193. package/src/contracts/factories/index.ts +21 -0
  194. package/src/contracts/index.ts +40 -0
  195. package/src/index.ts +27 -0
  196. package/src/sdk-config.ts +35 -0
  197. package/src/services/DataService/data-service.ts +1017 -0
  198. package/src/services/DataService/directus-types.ts +199 -0
  199. package/src/services/DataService/queries.ts +165 -0
  200. package/src/services/DataService/subgraph-types.ts +104 -0
  201. package/src/services/DataService/types.ts +184 -0
  202. package/src/services/Locking/locking.ts +541 -0
  203. package/src/services/Locking/queries.ts +118 -0
  204. package/src/services/Locking/types.ts +141 -0
  205. package/src/services/Portfolio/portfolio.ts +593 -0
  206. package/src/services/Portfolio/queries.ts +166 -0
  207. package/src/services/Portfolio/types.ts +220 -0
  208. package/src/services/Swapper/swapper.ts +158 -0
  209. package/src/services/Swapper/types.ts +54 -0
  210. package/src/services/UserLending/helper.ts +28 -0
  211. package/src/services/UserLending/queries.ts +196 -0
  212. package/src/services/UserLending/subgraph-types.ts +173 -0
  213. package/src/services/UserLending/types.ts +123 -0
  214. package/src/services/UserLending/user-lending.ts +933 -0
  215. package/src/services/shared.ts +11 -0
  216. package/src/tests/sample.test.ts +44 -0
  217. package/tsconfig.json +27 -0
  218. package/tsconfig.tsbuildinfo +1 -0
  219. package/versioner.sh +6 -0
@@ -0,0 +1,187 @@
1
+ export interface DirectusSchema {
2
+ PoolOverview: PoolOverviewDirectus[];
3
+ PoolDelegateProfileAndHistory: PoolDelegateProfileAndHistoryDirectus[];
4
+ RiskManagement: RiskManagementDirectus[];
5
+ RiskManagementItems: RiskManagementItemDirectus[];
6
+ RiskManagementGroups: RiskManagementGroupDirectus[];
7
+ PoolCreditMetrics: PoolCreditMetricsDirectus[];
8
+ BadAndDoubtfulDebts: BadAndDoubtfulDebtsDirectus[];
9
+ FinancialReportingDocuments: FinancialReportingDocumentsDirectus[];
10
+ FinancialReportingDocumentsItems: FinancialReportingDocumentsItemsDirectus[];
11
+ PoolRepayments: PoolRepaymentDirectus[];
12
+ PoolRepaymentItems: PoolRepaymentItemsDirectus[];
13
+ KeyCreditMetrics: KeyCreditMetricsDirectus[];
14
+ BadAndDoubtfulDebtsItems: BadAndDoubtfulDebtsItems[];
15
+ PlatformOverview: PlatformOverviewDirectus;
16
+ NftBoost: NftBoostDirectus;
17
+ }
18
+ export interface PlatformOverviewDirectus {
19
+ id: string;
20
+ loanOriginationVolume: number;
21
+ }
22
+ export interface NftBoostDirectus {
23
+ id: string;
24
+ kappa: number;
25
+ kitsune: number;
26
+ tengu: number;
27
+ ryujin: number;
28
+ yurei: number;
29
+ }
30
+ export interface PoolOverviewDirectus {
31
+ id: string;
32
+ poolName?: string;
33
+ subheading?: string;
34
+ enabled: boolean;
35
+ oversubscribed: boolean;
36
+ security: string[];
37
+ apy: number;
38
+ description: string;
39
+ liteDescription: string;
40
+ thumbnailImage: string;
41
+ bannerImage: string;
42
+ strategyDeck: string;
43
+ assetClass: string;
44
+ industryExposure: string;
45
+ poolApyStructure: 'Variable' | 'Fixed';
46
+ apyExpiryDate: number | null;
47
+ poolInvestmentTerm: string;
48
+ loanStructure: string;
49
+ loansUnderManagement: string;
50
+ activeLoans: string;
51
+ loanFundsOriginated: string;
52
+ plumeStrategy: string | null;
53
+ }
54
+ export interface PoolDelegateProfileAndHistoryDirectus {
55
+ id: string;
56
+ delegateLendingHistory: number;
57
+ assetClasses: string;
58
+ otherPools: {
59
+ PoolDelegateProfileAndHistory_id: string;
60
+ PoolOverview_id: string;
61
+ id: number;
62
+ }[];
63
+ totalLoanFundsOriginated: number;
64
+ totalLoansOriginated: number;
65
+ loansUnderManagement: number;
66
+ historicLossRate: number;
67
+ }
68
+ export interface RiskManagementDirectus {
69
+ id: string;
70
+ poolIdFK: string;
71
+ firstLossCapital: number;
72
+ poolLossRate: number;
73
+ independentRiskScore: number;
74
+ communityRating: number;
75
+ riskManagementItems: {
76
+ riskManagementItem: {
77
+ key: string;
78
+ collection: string;
79
+ };
80
+ description: string;
81
+ }[];
82
+ }
83
+ export interface RiskManagementItemDirectus {
84
+ name: string;
85
+ group: {
86
+ key: string;
87
+ collection: string;
88
+ };
89
+ tooltip: string;
90
+ }
91
+ export interface RiskManagementGroupDirectus {
92
+ name: string;
93
+ }
94
+ export interface PoolCreditMetricsDirectus {
95
+ id: string;
96
+ poolIdFK: string;
97
+ keyCreditMetrics: {
98
+ keyCreditMetric: {
99
+ key: string;
100
+ collection: string;
101
+ };
102
+ mostRecentQuarter: number;
103
+ previousFiscalYear: number;
104
+ priorMonth: number;
105
+ }[];
106
+ }
107
+ export interface KeyCreditMetricsDirectus {
108
+ name: string;
109
+ tooltip?: string;
110
+ unit: string;
111
+ }
112
+ export interface BadAndDoubtfulDebtsItems {
113
+ id: string;
114
+ name: string;
115
+ tooltip?: string;
116
+ unit?: string;
117
+ }
118
+ export interface BadAndDoubtfulDebtsDirectus {
119
+ id: string;
120
+ poolIdFK: string;
121
+ items: {
122
+ item: {
123
+ key: string;
124
+ collection: string;
125
+ };
126
+ totalLifetimeAmount: number | null;
127
+ totalLifetimePercentage: number | null;
128
+ monthlyAverageAmount: number | null;
129
+ monthlyAveragePercentage: number | null;
130
+ currentAmount: number | null;
131
+ currentPercentage: number | null;
132
+ }[];
133
+ }
134
+ export interface FinancialReportingDocumentsItemsDirectus {
135
+ id: number;
136
+ date_created: string;
137
+ name: string;
138
+ description: string;
139
+ document: string;
140
+ version: number;
141
+ financialReportingDocumentsFK: string;
142
+ }
143
+ export interface FinancialReportingDocumentsDirectus {
144
+ id: string;
145
+ poolIdFK: string;
146
+ documents: number[] | null;
147
+ }
148
+ export interface PoolRepaymentItemsDirectus {
149
+ name: string;
150
+ tooltip: string;
151
+ }
152
+ export interface PoolRepaymentDirectus {
153
+ id: string;
154
+ poolIdFK: string;
155
+ repaymentsFile: string;
156
+ currentTotalEndBorrowers: number;
157
+ UpcomingLendingFundsFlow: {
158
+ repaymentItem: {
159
+ key: string;
160
+ collection: string;
161
+ };
162
+ value: number;
163
+ }[];
164
+ CumulativeLendingFundsFlow: {
165
+ repaymentItem: {
166
+ key: string;
167
+ collection: string;
168
+ };
169
+ value: number;
170
+ }[];
171
+ CumulativeLendingAndWithdrawals: {
172
+ repaymentItem: {
173
+ key: string;
174
+ collection: string;
175
+ };
176
+ value?: number;
177
+ key?: string;
178
+ }[];
179
+ LendingAndWithdrawalRequests: {
180
+ repaymentItem: {
181
+ key: string;
182
+ collection: string;
183
+ };
184
+ value?: number;
185
+ key?: string;
186
+ }[];
187
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ export declare const getPlumeTvl: string;
2
+ export declare const getPoolOverviewQuery: (ids?: string[]) => string;
3
+ export declare const getAllLendingPoolsQuery: string;
4
+ export declare const getAllTranchesQuery: string;
5
+ export declare const getAllTrancheConfigurationsQuery: string;
6
+ export declare const getPoolNameQuery: string;
7
+ export declare const getLendingPoolWithdrawalAndDepositsQuery: string;
@@ -0,0 +1,158 @@
1
+ import { gql } from 'graphql-request';
2
+ export const getPlumeTvl = gql `
3
+ {
4
+ lendingPools {
5
+ id
6
+ balance
7
+ }
8
+ }
9
+ `;
10
+ export const getPoolOverviewQuery = (ids) => gql `
11
+ query getAllPoolOverview($epochId: String!, $unusedPools: [String]!) {
12
+ lendingPools(
13
+ where: {
14
+ id_not_in: $unusedPools
15
+ ${(ids === null || ids === void 0 ? void 0 : ids.length) ? `, id_in: [${ids.map((id) => `"${id}"`).join(',')}]` : ''}
16
+ }
17
+ ) {
18
+ pendingPool {
19
+ id
20
+ totalPendingDepositAmounts
21
+ totalPendingDepositsAmount
22
+ totalPendingWithdrawalShares
23
+ }
24
+ id
25
+ totalUserInterestAmount
26
+ totalLossAmount
27
+ name
28
+ balance
29
+ firstLostCapital
30
+ isStopped
31
+ tranches(orderBy: orderId, orderDirection: asc) {
32
+ balance
33
+ id
34
+ totalInterestAmount
35
+ orderId
36
+ }
37
+ configuration {
38
+ desiredDrawAmount
39
+ lendingPoolWithdrawalConfig{
40
+ requestEpochsInAdvance
41
+ }
42
+ tranchesConfig(orderBy: orderId, orderDirection: asc) {
43
+ id
44
+ desiredRatio
45
+ interestRate
46
+ minDepositAmount
47
+ maxDepositAmount
48
+ lendingPoolTrancheInterestRateUpdates(
49
+ orderDirection: desc
50
+ orderBy: epochId
51
+ first: 1
52
+ where:{ epochId_lte: $epochId }
53
+ ) {
54
+ epochInterestRate
55
+ }
56
+ lendingPoolTrancheFixedTermConfigs{
57
+ configId
58
+ epochLockDuration
59
+ epochInterestRate
60
+ fixedTermDepositStatus
61
+ fixedTermDepositAllowlist{
62
+ id
63
+ user{
64
+ id
65
+ }
66
+ }
67
+ }
68
+ }
69
+ }
70
+ }
71
+ }
72
+ `;
73
+ export const getAllLendingPoolsQuery = gql `
74
+ query getAllLendingPools($unusedPools: [String]!) {
75
+ lendingPools(where: { id_not_in: $unusedPools }) {
76
+ pendingPool {
77
+ id
78
+ totalPendingDepositAmounts
79
+ totalPendingDepositsAmount
80
+ totalPendingWithdrawalShares
81
+ }
82
+ id
83
+ totalUserInterestAmount
84
+ totalLossAmount
85
+ name
86
+ balance
87
+ firstLostCapital
88
+ isStopped
89
+ tranches(orderBy: orderId, orderDirection: asc) {
90
+ balance
91
+ id
92
+ totalInterestAmount
93
+ orderId
94
+ }
95
+ }
96
+ }
97
+ `;
98
+ export const getAllTranchesQuery = gql `
99
+ query getAllTranches($unusedPools: [String]!) {
100
+ lendingPoolTranches(where: { lendingPool_not_in: $unusedPools }) {
101
+ id
102
+ orderId
103
+ totalInterestAmount
104
+ balance
105
+ lendingPool {
106
+ id
107
+ }
108
+ }
109
+ }
110
+ `;
111
+ export const getAllTrancheConfigurationsQuery = gql `
112
+ query getAllTrancheConfigurations(
113
+ $epochId: String!
114
+ $unusedPools: [String]!
115
+ ) {
116
+ lendingPoolTrancheConfigurations(
117
+ where: { lendingPoolConfiguration_not_in: $unusedPools }
118
+ ) {
119
+ id
120
+ orderId
121
+ maxDepositAmount
122
+ minDepositAmount
123
+ interestRate
124
+ desiredRatio
125
+ lendingPoolTrancheInterestRateUpdates(
126
+ orderDirection: desc
127
+ orderBy: epochId
128
+ first: 1
129
+ where: { epochId_lte: $epochId }
130
+ ) {
131
+ epochInterestRate
132
+ }
133
+ }
134
+ }
135
+ `;
136
+ export const getPoolNameQuery = gql `
137
+ query getPoolName($ids: [String], $unusedPools: [String]!) {
138
+ lendingPools(where: { id_in: $ids, id_not_in: $unusedPools }) {
139
+ id
140
+ name
141
+ isStopped
142
+ }
143
+ }
144
+ `;
145
+ export const getLendingPoolWithdrawalAndDepositsQuery = gql `
146
+ query getLendingPoolWithdrawalAndDeposits($unusedPools: [String]!) {
147
+ lendingPools(where: { id_not_in: $unusedPools }) {
148
+ id
149
+ pendingPool {
150
+ totalPendingDepositAmounts
151
+ totalPendingDepositsAmount
152
+ totalPendingWithdrawalShares
153
+ }
154
+ totalDepositsAccepted
155
+ totalWithdrawalsAccepted
156
+ }
157
+ }
158
+ `;
@@ -0,0 +1,95 @@
1
+ export interface LendingPoolSubgraph {
2
+ id: string;
3
+ totalUserInterestAmount: string;
4
+ totalLossAmount: string;
5
+ name: string;
6
+ balance: string;
7
+ firstLostCapital: string;
8
+ isStopped: boolean;
9
+ pendingPool: {
10
+ id: string;
11
+ totalPendingDepositAmounts: string[];
12
+ totalPendingDepositsAmount: string;
13
+ totalPendingWithdrawalShares: string[];
14
+ };
15
+ tranches: TrancheSubgraph[];
16
+ configuration: LendingPoolConfigurationSubgraph;
17
+ }
18
+ export interface PlumeSubgraphReturn {
19
+ lendingPools: {
20
+ id: string;
21
+ balance: string;
22
+ }[];
23
+ }
24
+ export interface LendingPoolSubgraphReturn {
25
+ lendingPools: LendingPoolSubgraph[];
26
+ }
27
+ export interface TrancheSubgraph {
28
+ balance: string;
29
+ id: string;
30
+ totalInterestAmount: string;
31
+ orderId: string;
32
+ lendingPool: {
33
+ id: string;
34
+ };
35
+ }
36
+ export interface TrancheSubgraphResult {
37
+ lendingPoolTranches: TrancheSubgraph[];
38
+ }
39
+ export interface TrancheInterestRateUpdateSubgraph {
40
+ id: string;
41
+ lendingPoolTrancheConfiguration: TrancheConfigurationSubgraph[];
42
+ epochId: number;
43
+ epochInterestRate: string;
44
+ }
45
+ export interface TrancheConfigurationSubgraph {
46
+ maxDepositAmount: string;
47
+ minDepositAmount: string;
48
+ interestRate: string;
49
+ id: string;
50
+ desiredRatio: string;
51
+ orderId: string;
52
+ lendingPoolTrancheInterestRateUpdates: TrancheInterestRateUpdateSubgraph[];
53
+ lendingPoolTrancheFixedTermConfigs: {
54
+ configId: string;
55
+ epochLockDuration: string;
56
+ epochInterestRate: string;
57
+ fixedTermDepositStatus: 'Everyone' | 'AllowlistedOnly';
58
+ fixedTermDepositAllowlist: {
59
+ isAllowlisted: boolean;
60
+ user: {
61
+ id: string;
62
+ };
63
+ }[];
64
+ }[];
65
+ }
66
+ export interface TrancheConfigurationSubgraphResult {
67
+ lendingPoolTrancheConfigurations: TrancheConfigurationSubgraph[];
68
+ }
69
+ export interface LendingPoolConfigurationSubgraph {
70
+ desiredDrawAmount: string;
71
+ drawRecipient: string;
72
+ id: string;
73
+ minimumExcessLiquidityPercentage: string;
74
+ targetExcessLiquidityPercentage: string;
75
+ trancheInterestChangeEpochDelay: string;
76
+ tranchesConfig: TrancheConfigurationSubgraph[];
77
+ lendingPoolWithdrawalConfig: {
78
+ requestEpochsInAdvance: string;
79
+ };
80
+ }
81
+ export interface LendingPoolConfigurationSubgraphReturn {
82
+ lendingPoolConfigurations: LendingPoolConfigurationSubgraph[];
83
+ }
84
+ export interface LendingPoolWithdrawalAndDepositSubgraph {
85
+ lendingPools: {
86
+ id: string;
87
+ pendingPool: {
88
+ totalPendingDepositAmounts: string[];
89
+ totalPendingDepositsAmount: string;
90
+ totalPendingWithdrawalShares: string[];
91
+ };
92
+ totalDepositsAccepted: string;
93
+ totalWithdrawalsAccepted: string;
94
+ }[];
95
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,169 @@
1
+ import { BadAndDoubtfulDebtsItems, KeyCreditMetricsDirectus } from './directus-types';
2
+ export interface PoolOverview {
3
+ poolName: string;
4
+ subheading?: string;
5
+ id: string;
6
+ enabled: boolean;
7
+ isOversubscribed: boolean;
8
+ apy: number;
9
+ description: string;
10
+ liteDescription: string;
11
+ thumbnailImageUrl: string;
12
+ bannerImageUrl: string;
13
+ strategyDeckUrl: string;
14
+ tranches: TrancheData[];
15
+ totalValueLocked: {
16
+ total: string;
17
+ offchain: string;
18
+ plume: string;
19
+ };
20
+ loansUnderManagement: string;
21
+ yieldEarned: string;
22
+ poolCapacity: string;
23
+ poolCapacityPercentage: string;
24
+ activeLoans: string;
25
+ assetClass: string;
26
+ security: string[];
27
+ industryExposure: string;
28
+ poolApyStructure: 'Variable' | 'Fixed';
29
+ apyExpiryDate: number | null;
30
+ poolInvestmentTerm: string;
31
+ loanStructure: string;
32
+ loanFundsOriginated: string;
33
+ requestEpochsInAdvance: string;
34
+ isActive: boolean;
35
+ }
36
+ export interface PoolDelegateProfileAndHistory {
37
+ id: string;
38
+ delegateLendingHistory: number;
39
+ assetClasses: string;
40
+ otherKASUPools: {
41
+ id: string;
42
+ name: string;
43
+ isActive: boolean;
44
+ isOversubscribed: boolean;
45
+ }[];
46
+ totalLoanFundsOriginated: number;
47
+ totalLoansOriginated: number;
48
+ loansUnderManagement: number;
49
+ historicLossRate: number;
50
+ }
51
+ export interface PoolTranche {
52
+ id: string;
53
+ poolIdFK: string;
54
+ apy: string;
55
+ minimalDepositThreshold: string;
56
+ maximalDepositThreshold: string;
57
+ }
58
+ export interface RiskManagement {
59
+ id: string;
60
+ poolIdFK: string;
61
+ items: RiskManagementItem[];
62
+ riskPerformance: RiskPerformance;
63
+ }
64
+ export interface RiskManagementItem {
65
+ description: string;
66
+ name: string;
67
+ group: string;
68
+ tooltip: string;
69
+ }
70
+ export interface RiskPerformance {
71
+ id: string;
72
+ firstLossCapital: number;
73
+ poolLossRate: number;
74
+ independentRiskScore: number;
75
+ communityRating: number;
76
+ }
77
+ export interface TrancheData {
78
+ id: string;
79
+ minApy: string;
80
+ maxApy: string;
81
+ apy: string;
82
+ averageApy: string;
83
+ maximumDeposit: string;
84
+ minimumDeposit: string;
85
+ poolCapacity: string;
86
+ poolCapacityPercentage: string;
87
+ name: string;
88
+ interestRate: string;
89
+ fixedTermConfig: {
90
+ configId: string;
91
+ apy: string;
92
+ epochLockDuration: string;
93
+ epochInterestRate: string;
94
+ fixedTermDepositStatus: 'Everyone' | 'AllowlistedOnly';
95
+ fixedTermDepositAllowlist: {
96
+ isAllowlisted: boolean;
97
+ userId: string;
98
+ }[];
99
+ }[];
100
+ }
101
+ export interface FinancialReportingDocuments {
102
+ id: string;
103
+ poolIdFK: string;
104
+ documents: {
105
+ id: number;
106
+ date_created: string;
107
+ name: string;
108
+ description: string;
109
+ document: string;
110
+ version: number;
111
+ financialReportingDocumentsFK: string;
112
+ }[];
113
+ }
114
+ export interface PoolCreditMetrics {
115
+ id: string;
116
+ poolIdFK: string;
117
+ keyCreditMetrics: {
118
+ keyCreditMetric: KeyCreditMetricsDirectus;
119
+ mostRecentQuarter: number;
120
+ previousFiscalYear: number;
121
+ priorMonth: number;
122
+ }[];
123
+ }
124
+ export interface BadAndDoubtfulDebts {
125
+ id: string;
126
+ poolIdFK: string;
127
+ items: {
128
+ totalLifetimeAmount: number | null;
129
+ totalLifetimePercentage: number | null;
130
+ monthlyAverageAmount: number | null;
131
+ monthlyAveragePercentage: number | null;
132
+ currentAmount: number | null;
133
+ currentPercentage: number | null;
134
+ item: BadAndDoubtfulDebtsItems;
135
+ }[];
136
+ }
137
+ export interface PoolRepayment {
138
+ id: string;
139
+ poolIdFK: string;
140
+ currentTotalEndBorrowers: number;
141
+ repaymentsFileUrl: string;
142
+ upcomingLendingFundsFlow: {
143
+ tooltip: string;
144
+ name: string;
145
+ value: number;
146
+ }[];
147
+ cumulativeLendingFundsFlow: {
148
+ tooltip: string;
149
+ name: string;
150
+ value: number;
151
+ }[];
152
+ cumulativeLendingAndWithdrawals: {
153
+ tooltip: string;
154
+ name: string;
155
+ value: number;
156
+ }[];
157
+ lendingAndWithdrawalRequests: {
158
+ tooltip: string;
159
+ name: string;
160
+ value: number;
161
+ }[];
162
+ }
163
+ export interface LendingTotals {
164
+ totalValueLocked: number;
165
+ loansUnderManagement: number;
166
+ totalLoanFundsOriginated: number;
167
+ totalYieldEarned: number;
168
+ totalLossRate: number;
169
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,61 @@
1
+ import { Provider } from '@ethersproject/providers';
2
+ import { BigNumber, ContractTransaction, Signer } from 'ethers';
3
+ import { SdkConfig } from '../../sdk-config';
4
+ import { LockPeriod, LockPeriodInterface, RSVDeadlineValue, UserBonusData, UserLock } from './types';
5
+ export declare class KSULocking {
6
+ private _kasuConfig;
7
+ private readonly _contractAbi;
8
+ private readonly _kasuToken;
9
+ private readonly _kasuBonusAddress;
10
+ private readonly _graph;
11
+ private readonly _userManagerAbi;
12
+ private readonly _systemVariablesAbi;
13
+ private readonly _ksuPriceAbi;
14
+ private readonly _userLoyaltyRewardsAbi;
15
+ private readonly apyBonuses;
16
+ /**
17
+ *
18
+ */
19
+ constructor(_kasuConfig: SdkConfig, signerOrProvider: Signer | Provider);
20
+ lockKSUTokens(amount: BigNumber, lockPeriod: BigNumber): Promise<ContractTransaction>;
21
+ lockKSUWithPermit(amount: number, lockPeriod: number, permit: RSVDeadlineValue): Promise<ContractTransaction>;
22
+ unlockKSU(amount: BigNumber, userLockId: BigNumber): Promise<ContractTransaction>;
23
+ claimFees(): Promise<ContractTransaction>;
24
+ lockDetails(lockPeriod: BigNumber): Promise<LockPeriodInterface>;
25
+ userTotalDeposits(userAddress: string): Promise<BigNumber>;
26
+ calculateUserLockProjectedProtocolFeeRewards(epochId: string, KSULocked: number, lockPeriod: BigNumber): Promise<number>;
27
+ calculateApy(epochInterestRate: number): number;
28
+ getUserLocks(userAddress: string): Promise<UserLock[]>;
29
+ getUserBonusData(userAddress: string): Promise<UserBonusData>;
30
+ getLoyaltyLevelAndApyBonusFromRatio(rKSUtoUSDCRatio: number): {
31
+ loyaltyLevel: number;
32
+ apyBonus: number;
33
+ };
34
+ getRKSUvsUSDCRatio(rKSUAmount: string, userAddress: string): Promise<number>;
35
+ getClaimableRewards(userAddress: string): Promise<BigNumber>;
36
+ getKasuTokenPrice(): Promise<{
37
+ price: BigNumber;
38
+ decimals: number;
39
+ }>;
40
+ getKasuEpochTokenPrice(): Promise<{
41
+ price: BigNumber;
42
+ decimals: number;
43
+ }>;
44
+ getLifetimeRewards(userAddress: string, rewardDecimals: number, claimableRewards?: BigNumber): Promise<BigNumber>;
45
+ getLaunchBonusAmount(lockAmount: BigNumber, bonusMultiplier: number, bonusTokensLeft: BigNumber): BigNumber;
46
+ getUserStakedKsu(userAddress: string): Promise<string>;
47
+ getUserEarnedrKsu(userAddress: string): Promise<string>;
48
+ getUserTotalBonusAmount(userAddress: string): Promise<string>;
49
+ getLockingRewards(userAddress: string): Promise<{
50
+ claimableRewards: string;
51
+ lifeTimeRewards: string;
52
+ }>;
53
+ getTotalKsuStaked(): Promise<string>;
54
+ getAvailableKsuBonus(): Promise<string>;
55
+ getUserKsuBalance(userAddress: string): Promise<string>;
56
+ getNextEpochDate(): Promise<EpochTimeStamp>;
57
+ getNextClearingPeriodDate(): Promise<EpochTimeStamp>;
58
+ getActiveLockPeriods(): Promise<LockPeriod[]>;
59
+ getProjectedApy(): string;
60
+ getProjectedUSDC(): string;
61
+ }