@pendle/core-v2 0.1.0

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 (182) hide show
  1. package/LICENSE +100 -0
  2. package/contracts/SuperComposableYield/ISuperComposableYield.sol +68 -0
  3. package/contracts/SuperComposableYield/SCYUtils.sol +14 -0
  4. package/contracts/SuperComposableYield/implementations/RewardManager.sol +117 -0
  5. package/contracts/SuperComposableYield/implementations/SCYBase.sol +126 -0
  6. package/contracts/SuperComposableYield/implementations/SCYBaseWithRewards.sol +79 -0
  7. package/contracts/core/PendleBaseToken.sol +39 -0
  8. package/contracts/core/PendleMarket.sol +248 -0
  9. package/contracts/core/PendleMarketFactory.sol +60 -0
  10. package/contracts/core/PendleOwnershipToken.sol +44 -0
  11. package/contracts/core/PendleSCYImpl/AaveV3/PendleAaveV3SCY.sol +139 -0
  12. package/contracts/core/PendleSCYImpl/AaveV3/WadRayMath.sol +126 -0
  13. package/contracts/core/PendleSCYImpl/PendleBenQiErc20SCY.sol +127 -0
  14. package/contracts/core/PendleSCYImpl/PendleBtrflySCY.sol +125 -0
  15. package/contracts/core/PendleSCYImpl/PendleYearnVaultSCY.sol +115 -0
  16. package/contracts/core/PendleYieldContractFactory.sol +109 -0
  17. package/contracts/core/PendleYieldToken.sol +240 -0
  18. package/contracts/core/misc/BoringOwnable.sol +62 -0
  19. package/contracts/core/misc/BoringOwnableUpg.sol +64 -0
  20. package/contracts/core/misc/PendleJoeSwapHelperUpg.sol +82 -0
  21. package/contracts/core/router/PendleRouterCoreUpg.sol +219 -0
  22. package/contracts/core/router/PendleRouterProxy.sol +64 -0
  23. package/contracts/core/router/PendleRouterYTUpg.sol +134 -0
  24. package/contracts/core/router/base/PendleRouterOTBaseUpg.sol +218 -0
  25. package/contracts/core/router/base/PendleRouterSCYAndForgeBaseUpg.sol +141 -0
  26. package/contracts/core/router/base/PendleRouterYTBaseUpg.sol +212 -0
  27. package/contracts/interfaces/IAToken.sol +34 -0
  28. package/contracts/interfaces/IAavePool.sol +41 -0
  29. package/contracts/interfaces/IAaveRewardsController.sol +32 -0
  30. package/contracts/interfaces/IBenQiComptroller.sol +33 -0
  31. package/contracts/interfaces/IJoePair.sol +98 -0
  32. package/contracts/interfaces/IJoeRouter01.sol +162 -0
  33. package/contracts/interfaces/IPBaseToken.sol +9 -0
  34. package/contracts/interfaces/IPFlashCallBack.sol +10 -0
  35. package/contracts/interfaces/IPGovernanceManager.sol +28 -0
  36. package/contracts/interfaces/IPMarket.sol +57 -0
  37. package/contracts/interfaces/IPMarketAddRemoveCallback.sol +18 -0
  38. package/contracts/interfaces/IPMarketFactory.sol +8 -0
  39. package/contracts/interfaces/IPMarketSwapCallback.sol +10 -0
  40. package/contracts/interfaces/IPOwnershipToken.sol +15 -0
  41. package/contracts/interfaces/IPPermissionsV2.sol +28 -0
  42. package/contracts/interfaces/IPRouterCore.sol +108 -0
  43. package/contracts/interfaces/IPRouterYT.sol +47 -0
  44. package/contracts/interfaces/IPYieldContractFactory.sol +36 -0
  45. package/contracts/interfaces/IPYieldToken.sol +19 -0
  46. package/contracts/interfaces/IQiErc20.sol +35 -0
  47. package/contracts/interfaces/IQiToken.sol +29 -0
  48. package/contracts/interfaces/IREDACTEDStaking.sol +35 -0
  49. package/contracts/interfaces/IWETH.sol +34 -0
  50. package/contracts/interfaces/IWXBTRFLY.sol +37 -0
  51. package/contracts/interfaces/IYearnVault.sol +32 -0
  52. package/contracts/libraries/JoeLibrary.sol +121 -0
  53. package/contracts/libraries/SCYIndex.sol +55 -0
  54. package/contracts/libraries/helpers/ExpiryUtilsLib.sol +166 -0
  55. package/contracts/libraries/math/FixedPoint.sol +208 -0
  56. package/contracts/libraries/math/LogExpMath.sol +515 -0
  57. package/contracts/libraries/math/MarketApproxLib.sol +140 -0
  58. package/contracts/libraries/math/MarketMathLib.sol +606 -0
  59. package/contracts/periphery/PendleGovernanceManager.sol +36 -0
  60. package/contracts/periphery/PermissionsV2.sol +23 -0
  61. package/package.json +76 -0
  62. package/typechain-types/BoringOwnable.ts +194 -0
  63. package/typechain-types/BoringOwnableData.ts +100 -0
  64. package/typechain-types/BoringOwnableUpg.ts +194 -0
  65. package/typechain-types/BoringOwnableUpgData.ts +100 -0
  66. package/typechain-types/ERC1967UpgradeUpgradeable.ts +97 -0
  67. package/typechain-types/ERC20.ts +417 -0
  68. package/typechain-types/IAToken.ts +331 -0
  69. package/typechain-types/IAavePool.ts +192 -0
  70. package/typechain-types/IAaveRewardsController.ts +148 -0
  71. package/typechain-types/IBeaconUpgradeable.ts +87 -0
  72. package/typechain-types/IBenQiComptroller.ts +125 -0
  73. package/typechain-types/IERC1822ProxiableUpgradeable.ts +87 -0
  74. package/typechain-types/IERC20.ts +300 -0
  75. package/typechain-types/IERC20Metadata.ts +339 -0
  76. package/typechain-types/IJoePair.ts +888 -0
  77. package/typechain-types/IJoeRouter01.ts +1107 -0
  78. package/typechain-types/IPBaseToken.ts +365 -0
  79. package/typechain-types/IPFlashCallback.ts +115 -0
  80. package/typechain-types/IPGovernanceManager.ts +84 -0
  81. package/typechain-types/IPMarket.ts +701 -0
  82. package/typechain-types/IPMarketAddRemoveCallback.ts +169 -0
  83. package/typechain-types/IPMarketFactory.ts +109 -0
  84. package/typechain-types/IPMarketSwapCallback.ts +115 -0
  85. package/typechain-types/IPOwnershipToken.ts +488 -0
  86. package/typechain-types/IPRouterCore.ts +759 -0
  87. package/typechain-types/IPRouterYT.ts +405 -0
  88. package/typechain-types/IPYieldContractFactory.ts +192 -0
  89. package/typechain-types/IPYieldToken.ts +525 -0
  90. package/typechain-types/IPermissionsV2.ts +87 -0
  91. package/typechain-types/IQiErc20.ts +402 -0
  92. package/typechain-types/IQiToken.ts +327 -0
  93. package/typechain-types/IREDACTEDStaking.ts +216 -0
  94. package/typechain-types/ISuperComposableYield.ts +652 -0
  95. package/typechain-types/IWETH.ts +380 -0
  96. package/typechain-types/IWXBTRFLY.ts +254 -0
  97. package/typechain-types/IYearnVault.ts +152 -0
  98. package/typechain-types/PendleAaveV3SCY.ts +901 -0
  99. package/typechain-types/PendleBaseToken.ts +505 -0
  100. package/typechain-types/PendleBenQiErc20SCY.ts +914 -0
  101. package/typechain-types/PendleBtrflyScy.ts +794 -0
  102. package/typechain-types/PendleGovernanceManager.ts +187 -0
  103. package/typechain-types/PendleJoeSwapHelperUpg.ts +97 -0
  104. package/typechain-types/PendleMarket.ts +1008 -0
  105. package/typechain-types/PendleMarketFactory.ts +246 -0
  106. package/typechain-types/PendleOwnershipToken.ts +628 -0
  107. package/typechain-types/PendleRouterCoreUpg.ts +780 -0
  108. package/typechain-types/PendleRouterProxy.ts +417 -0
  109. package/typechain-types/PendleRouterSCYAndForgeBaseUpg.ts +98 -0
  110. package/typechain-types/PendleRouterYTBaseUpg.ts +134 -0
  111. package/typechain-types/PendleRouterYTUpg.ts +453 -0
  112. package/typechain-types/PendleYearnVaultScy.ts +784 -0
  113. package/typechain-types/PendleYieldContractFactory.ts +479 -0
  114. package/typechain-types/PendleYieldToken.ts +1030 -0
  115. package/typechain-types/PermissionsV2.ts +87 -0
  116. package/typechain-types/Proxy.ts +57 -0
  117. package/typechain-types/RewardManager.ts +172 -0
  118. package/typechain-types/SCYBase.ts +734 -0
  119. package/typechain-types/SCYBaseWithRewards.ts +819 -0
  120. package/typechain-types/UUPSUpgradeable.ts +197 -0
  121. package/typechain-types/common.ts +44 -0
  122. package/typechain-types/factories/BoringOwnableData__factory.ts +90 -0
  123. package/typechain-types/factories/BoringOwnableUpgData__factory.ts +94 -0
  124. package/typechain-types/factories/BoringOwnableUpg__factory.ts +139 -0
  125. package/typechain-types/factories/BoringOwnable__factory.ts +149 -0
  126. package/typechain-types/factories/ERC1967UpgradeUpgradeable__factory.ts +75 -0
  127. package/typechain-types/factories/ERC20__factory.ts +348 -0
  128. package/typechain-types/factories/IAToken__factory.ts +225 -0
  129. package/typechain-types/factories/IAavePool__factory.ts +99 -0
  130. package/typechain-types/factories/IAaveRewardsController__factory.ts +78 -0
  131. package/typechain-types/factories/IBeaconUpgradeable__factory.ts +39 -0
  132. package/typechain-types/factories/IBenQiComptroller__factory.ts +59 -0
  133. package/typechain-types/factories/IERC1822ProxiableUpgradeable__factory.ts +43 -0
  134. package/typechain-types/factories/IERC20Metadata__factory.ts +248 -0
  135. package/typechain-types/factories/IERC20__factory.ts +203 -0
  136. package/typechain-types/factories/IJoePair__factory.ts +674 -0
  137. package/typechain-types/factories/IJoeRouter01__factory.ts +772 -0
  138. package/typechain-types/factories/IPBaseToken__factory.ts +271 -0
  139. package/typechain-types/factories/IPFlashCallback__factory.ts +49 -0
  140. package/typechain-types/factories/IPGovernanceManager__factory.ts +39 -0
  141. package/typechain-types/factories/IPMarketAddRemoveCallback__factory.ts +86 -0
  142. package/typechain-types/factories/IPMarketFactory__factory.ts +58 -0
  143. package/typechain-types/factories/IPMarketSwapCallback__factory.ts +53 -0
  144. package/typechain-types/factories/IPMarket__factory.ts +559 -0
  145. package/typechain-types/factories/IPOwnershipToken__factory.ts +349 -0
  146. package/typechain-types/factories/IPRouterCore__factory.ts +516 -0
  147. package/typechain-types/factories/IPRouterYT__factory.ts +246 -0
  148. package/typechain-types/factories/IPYieldContractFactory__factory.ts +117 -0
  149. package/typechain-types/factories/IPYieldToken__factory.ts +383 -0
  150. package/typechain-types/factories/IPermissionsV2__factory.ts +39 -0
  151. package/typechain-types/factories/IQiErc20__factory.ts +270 -0
  152. package/typechain-types/factories/IQiToken__factory.ts +219 -0
  153. package/typechain-types/factories/IREDACTEDStaking__factory.ts +107 -0
  154. package/typechain-types/factories/ISuperComposableYield__factory.ts +438 -0
  155. package/typechain-types/factories/IWETH__factory.ts +261 -0
  156. package/typechain-types/factories/IWXBTRFLY__factory.ts +131 -0
  157. package/typechain-types/factories/IYearnVault__factory.ts +74 -0
  158. package/typechain-types/factories/PendleAaveV3SCY__factory.ts +727 -0
  159. package/typechain-types/factories/PendleBaseToken__factory.ts +386 -0
  160. package/typechain-types/factories/PendleBenQiErc20SCY__factory.ts +753 -0
  161. package/typechain-types/factories/PendleBtrflyScy__factory.ts +652 -0
  162. package/typechain-types/factories/PendleGovernanceManager__factory.ts +149 -0
  163. package/typechain-types/factories/PendleJoeSwapHelperUpg__factory.ts +56 -0
  164. package/typechain-types/factories/PendleMarketFactory__factory.ts +207 -0
  165. package/typechain-types/factories/PendleMarket__factory.ts +891 -0
  166. package/typechain-types/factories/PendleOwnershipToken__factory.ts +565 -0
  167. package/typechain-types/factories/PendleRouterCoreUpg__factory.ts +620 -0
  168. package/typechain-types/factories/PendleRouterProxy__factory.ts +316 -0
  169. package/typechain-types/factories/PendleRouterSCYAndForgeBaseUpg__factory.ts +56 -0
  170. package/typechain-types/factories/PendleRouterYTBaseUpg__factory.ts +66 -0
  171. package/typechain-types/factories/PendleRouterYTUpg__factory.ts +363 -0
  172. package/typechain-types/factories/PendleYearnVaultScy__factory.ts +630 -0
  173. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +368 -0
  174. package/typechain-types/factories/PendleYieldToken__factory.ts +814 -0
  175. package/typechain-types/factories/PermissionsV2__factory.ts +36 -0
  176. package/typechain-types/factories/Proxy__factory.ts +28 -0
  177. package/typechain-types/factories/RewardManager__factory.ts +89 -0
  178. package/typechain-types/factories/SCYBaseWithRewards__factory.ts +535 -0
  179. package/typechain-types/factories/SCYBase__factory.ts +479 -0
  180. package/typechain-types/factories/UUPSUpgradeable__factory.ts +115 -0
  181. package/typechain-types/hardhat.d.ts +564 -0
  182. package/typechain-types/index.ts +122 -0
@@ -0,0 +1,819 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import {
5
+ BaseContract,
6
+ BigNumber,
7
+ BigNumberish,
8
+ BytesLike,
9
+ CallOverrides,
10
+ ContractTransaction,
11
+ Overrides,
12
+ PopulatedTransaction,
13
+ Signer,
14
+ utils,
15
+ } from "ethers";
16
+ import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
17
+ import { Listener, Provider } from "@ethersproject/providers";
18
+ import type {
19
+ TypedEventFilter,
20
+ TypedEvent,
21
+ TypedListener,
22
+ OnEvent,
23
+ } from "./common";
24
+
25
+ export interface SCYBaseWithRewardsInterface extends utils.Interface {
26
+ contractName: "SCYBaseWithRewards";
27
+ functions: {
28
+ "allowance(address,address)": FunctionFragment;
29
+ "approve(address,uint256)": FunctionFragment;
30
+ "assetDecimals()": FunctionFragment;
31
+ "balanceOf(address)": FunctionFragment;
32
+ "decimals()": FunctionFragment;
33
+ "decreaseAllowance(address,uint256)": FunctionFragment;
34
+ "getBaseTokens()": FunctionFragment;
35
+ "getRewardTokens()": FunctionFragment;
36
+ "globalReward(address)": FunctionFragment;
37
+ "increaseAllowance(address,uint256)": FunctionFragment;
38
+ "isValidBaseToken(address)": FunctionFragment;
39
+ "mint(address,address,uint256)": FunctionFragment;
40
+ "name()": FunctionFragment;
41
+ "redeem(address,address,uint256)": FunctionFragment;
42
+ "redeemReward(address,address)": FunctionFragment;
43
+ "scyIndexCurrent()": FunctionFragment;
44
+ "scyIndexStored()": FunctionFragment;
45
+ "symbol()": FunctionFragment;
46
+ "totalSupply()": FunctionFragment;
47
+ "transfer(address,uint256)": FunctionFragment;
48
+ "transferFrom(address,address,uint256)": FunctionFragment;
49
+ "updateGlobalReward()": FunctionFragment;
50
+ "updateUserReward(address)": FunctionFragment;
51
+ "userReward(address,address)": FunctionFragment;
52
+ };
53
+
54
+ encodeFunctionData(
55
+ functionFragment: "allowance",
56
+ values: [string, string]
57
+ ): string;
58
+ encodeFunctionData(
59
+ functionFragment: "approve",
60
+ values: [string, BigNumberish]
61
+ ): string;
62
+ encodeFunctionData(
63
+ functionFragment: "assetDecimals",
64
+ values?: undefined
65
+ ): string;
66
+ encodeFunctionData(functionFragment: "balanceOf", values: [string]): string;
67
+ encodeFunctionData(functionFragment: "decimals", values?: undefined): string;
68
+ encodeFunctionData(
69
+ functionFragment: "decreaseAllowance",
70
+ values: [string, BigNumberish]
71
+ ): string;
72
+ encodeFunctionData(
73
+ functionFragment: "getBaseTokens",
74
+ values?: undefined
75
+ ): string;
76
+ encodeFunctionData(
77
+ functionFragment: "getRewardTokens",
78
+ values?: undefined
79
+ ): string;
80
+ encodeFunctionData(
81
+ functionFragment: "globalReward",
82
+ values: [string]
83
+ ): string;
84
+ encodeFunctionData(
85
+ functionFragment: "increaseAllowance",
86
+ values: [string, BigNumberish]
87
+ ): string;
88
+ encodeFunctionData(
89
+ functionFragment: "isValidBaseToken",
90
+ values: [string]
91
+ ): string;
92
+ encodeFunctionData(
93
+ functionFragment: "mint",
94
+ values: [string, string, BigNumberish]
95
+ ): string;
96
+ encodeFunctionData(functionFragment: "name", values?: undefined): string;
97
+ encodeFunctionData(
98
+ functionFragment: "redeem",
99
+ values: [string, string, BigNumberish]
100
+ ): string;
101
+ encodeFunctionData(
102
+ functionFragment: "redeemReward",
103
+ values: [string, string]
104
+ ): string;
105
+ encodeFunctionData(
106
+ functionFragment: "scyIndexCurrent",
107
+ values?: undefined
108
+ ): string;
109
+ encodeFunctionData(
110
+ functionFragment: "scyIndexStored",
111
+ values?: undefined
112
+ ): string;
113
+ encodeFunctionData(functionFragment: "symbol", values?: undefined): string;
114
+ encodeFunctionData(
115
+ functionFragment: "totalSupply",
116
+ values?: undefined
117
+ ): string;
118
+ encodeFunctionData(
119
+ functionFragment: "transfer",
120
+ values: [string, BigNumberish]
121
+ ): string;
122
+ encodeFunctionData(
123
+ functionFragment: "transferFrom",
124
+ values: [string, string, BigNumberish]
125
+ ): string;
126
+ encodeFunctionData(
127
+ functionFragment: "updateGlobalReward",
128
+ values?: undefined
129
+ ): string;
130
+ encodeFunctionData(
131
+ functionFragment: "updateUserReward",
132
+ values: [string]
133
+ ): string;
134
+ encodeFunctionData(
135
+ functionFragment: "userReward",
136
+ values: [string, string]
137
+ ): string;
138
+
139
+ decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result;
140
+ decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result;
141
+ decodeFunctionResult(
142
+ functionFragment: "assetDecimals",
143
+ data: BytesLike
144
+ ): Result;
145
+ decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result;
146
+ decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result;
147
+ decodeFunctionResult(
148
+ functionFragment: "decreaseAllowance",
149
+ data: BytesLike
150
+ ): Result;
151
+ decodeFunctionResult(
152
+ functionFragment: "getBaseTokens",
153
+ data: BytesLike
154
+ ): Result;
155
+ decodeFunctionResult(
156
+ functionFragment: "getRewardTokens",
157
+ data: BytesLike
158
+ ): Result;
159
+ decodeFunctionResult(
160
+ functionFragment: "globalReward",
161
+ data: BytesLike
162
+ ): Result;
163
+ decodeFunctionResult(
164
+ functionFragment: "increaseAllowance",
165
+ data: BytesLike
166
+ ): Result;
167
+ decodeFunctionResult(
168
+ functionFragment: "isValidBaseToken",
169
+ data: BytesLike
170
+ ): Result;
171
+ decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result;
172
+ decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
173
+ decodeFunctionResult(functionFragment: "redeem", data: BytesLike): Result;
174
+ decodeFunctionResult(
175
+ functionFragment: "redeemReward",
176
+ data: BytesLike
177
+ ): Result;
178
+ decodeFunctionResult(
179
+ functionFragment: "scyIndexCurrent",
180
+ data: BytesLike
181
+ ): Result;
182
+ decodeFunctionResult(
183
+ functionFragment: "scyIndexStored",
184
+ data: BytesLike
185
+ ): Result;
186
+ decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result;
187
+ decodeFunctionResult(
188
+ functionFragment: "totalSupply",
189
+ data: BytesLike
190
+ ): Result;
191
+ decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result;
192
+ decodeFunctionResult(
193
+ functionFragment: "transferFrom",
194
+ data: BytesLike
195
+ ): Result;
196
+ decodeFunctionResult(
197
+ functionFragment: "updateGlobalReward",
198
+ data: BytesLike
199
+ ): Result;
200
+ decodeFunctionResult(
201
+ functionFragment: "updateUserReward",
202
+ data: BytesLike
203
+ ): Result;
204
+ decodeFunctionResult(functionFragment: "userReward", data: BytesLike): Result;
205
+
206
+ events: {
207
+ "Approval(address,address,uint256)": EventFragment;
208
+ "Transfer(address,address,uint256)": EventFragment;
209
+ };
210
+
211
+ getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment;
212
+ getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment;
213
+ }
214
+
215
+ export type ApprovalEvent = TypedEvent<
216
+ [string, string, BigNumber],
217
+ { owner: string; spender: string; value: BigNumber }
218
+ >;
219
+
220
+ export type ApprovalEventFilter = TypedEventFilter<ApprovalEvent>;
221
+
222
+ export type TransferEvent = TypedEvent<
223
+ [string, string, BigNumber],
224
+ { from: string; to: string; value: BigNumber }
225
+ >;
226
+
227
+ export type TransferEventFilter = TypedEventFilter<TransferEvent>;
228
+
229
+ export interface SCYBaseWithRewards extends BaseContract {
230
+ contractName: "SCYBaseWithRewards";
231
+ connect(signerOrProvider: Signer | Provider | string): this;
232
+ attach(addressOrName: string): this;
233
+ deployed(): Promise<this>;
234
+
235
+ interface: SCYBaseWithRewardsInterface;
236
+
237
+ queryFilter<TEvent extends TypedEvent>(
238
+ event: TypedEventFilter<TEvent>,
239
+ fromBlockOrBlockhash?: string | number | undefined,
240
+ toBlock?: string | number | undefined
241
+ ): Promise<Array<TEvent>>;
242
+
243
+ listeners<TEvent extends TypedEvent>(
244
+ eventFilter?: TypedEventFilter<TEvent>
245
+ ): Array<TypedListener<TEvent>>;
246
+ listeners(eventName?: string): Array<Listener>;
247
+ removeAllListeners<TEvent extends TypedEvent>(
248
+ eventFilter: TypedEventFilter<TEvent>
249
+ ): this;
250
+ removeAllListeners(eventName?: string): this;
251
+ off: OnEvent<this>;
252
+ on: OnEvent<this>;
253
+ once: OnEvent<this>;
254
+ removeListener: OnEvent<this>;
255
+
256
+ functions: {
257
+ allowance(
258
+ owner: string,
259
+ spender: string,
260
+ overrides?: CallOverrides
261
+ ): Promise<[BigNumber]>;
262
+
263
+ approve(
264
+ spender: string,
265
+ amount: BigNumberish,
266
+ overrides?: Overrides & { from?: string | Promise<string> }
267
+ ): Promise<ContractTransaction>;
268
+
269
+ assetDecimals(overrides?: CallOverrides): Promise<[number]>;
270
+
271
+ balanceOf(account: string, overrides?: CallOverrides): Promise<[BigNumber]>;
272
+
273
+ decimals(overrides?: CallOverrides): Promise<[number]>;
274
+
275
+ decreaseAllowance(
276
+ spender: string,
277
+ subtractedValue: BigNumberish,
278
+ overrides?: Overrides & { from?: string | Promise<string> }
279
+ ): Promise<ContractTransaction>;
280
+
281
+ getBaseTokens(
282
+ overrides?: CallOverrides
283
+ ): Promise<[string[]] & { res: string[] }>;
284
+
285
+ getRewardTokens(overrides?: CallOverrides): Promise<[string[]]>;
286
+
287
+ globalReward(
288
+ arg0: string,
289
+ overrides?: CallOverrides
290
+ ): Promise<
291
+ [BigNumber, BigNumber] & { index: BigNumber; lastBalance: BigNumber }
292
+ >;
293
+
294
+ increaseAllowance(
295
+ spender: string,
296
+ addedValue: BigNumberish,
297
+ overrides?: Overrides & { from?: string | Promise<string> }
298
+ ): Promise<ContractTransaction>;
299
+
300
+ isValidBaseToken(
301
+ token: string,
302
+ overrides?: CallOverrides
303
+ ): Promise<[boolean]>;
304
+
305
+ mint(
306
+ receiver: string,
307
+ baseTokenIn: string,
308
+ minAmountScyOut: BigNumberish,
309
+ overrides?: Overrides & { from?: string | Promise<string> }
310
+ ): Promise<ContractTransaction>;
311
+
312
+ name(overrides?: CallOverrides): Promise<[string]>;
313
+
314
+ redeem(
315
+ receiver: string,
316
+ baseTokenOut: string,
317
+ minAmountBaseOut: BigNumberish,
318
+ overrides?: Overrides & { from?: string | Promise<string> }
319
+ ): Promise<ContractTransaction>;
320
+
321
+ redeemReward(
322
+ user: string,
323
+ receiver: string,
324
+ overrides?: Overrides & { from?: string | Promise<string> }
325
+ ): Promise<ContractTransaction>;
326
+
327
+ scyIndexCurrent(
328
+ overrides?: Overrides & { from?: string | Promise<string> }
329
+ ): Promise<ContractTransaction>;
330
+
331
+ scyIndexStored(
332
+ overrides?: CallOverrides
333
+ ): Promise<[BigNumber] & { res: BigNumber }>;
334
+
335
+ symbol(overrides?: CallOverrides): Promise<[string]>;
336
+
337
+ totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
338
+
339
+ transfer(
340
+ to: string,
341
+ amount: BigNumberish,
342
+ overrides?: Overrides & { from?: string | Promise<string> }
343
+ ): Promise<ContractTransaction>;
344
+
345
+ transferFrom(
346
+ from: string,
347
+ to: string,
348
+ amount: BigNumberish,
349
+ overrides?: Overrides & { from?: string | Promise<string> }
350
+ ): Promise<ContractTransaction>;
351
+
352
+ updateGlobalReward(
353
+ overrides?: Overrides & { from?: string | Promise<string> }
354
+ ): Promise<ContractTransaction>;
355
+
356
+ updateUserReward(
357
+ user: string,
358
+ overrides?: Overrides & { from?: string | Promise<string> }
359
+ ): Promise<ContractTransaction>;
360
+
361
+ userReward(
362
+ arg0: string,
363
+ arg1: string,
364
+ overrides?: CallOverrides
365
+ ): Promise<
366
+ [BigNumber, BigNumber] & {
367
+ lastIndex: BigNumber;
368
+ accruedReward: BigNumber;
369
+ }
370
+ >;
371
+ };
372
+
373
+ allowance(
374
+ owner: string,
375
+ spender: string,
376
+ overrides?: CallOverrides
377
+ ): Promise<BigNumber>;
378
+
379
+ approve(
380
+ spender: string,
381
+ amount: BigNumberish,
382
+ overrides?: Overrides & { from?: string | Promise<string> }
383
+ ): Promise<ContractTransaction>;
384
+
385
+ assetDecimals(overrides?: CallOverrides): Promise<number>;
386
+
387
+ balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
388
+
389
+ decimals(overrides?: CallOverrides): Promise<number>;
390
+
391
+ decreaseAllowance(
392
+ spender: string,
393
+ subtractedValue: BigNumberish,
394
+ overrides?: Overrides & { from?: string | Promise<string> }
395
+ ): Promise<ContractTransaction>;
396
+
397
+ getBaseTokens(overrides?: CallOverrides): Promise<string[]>;
398
+
399
+ getRewardTokens(overrides?: CallOverrides): Promise<string[]>;
400
+
401
+ globalReward(
402
+ arg0: string,
403
+ overrides?: CallOverrides
404
+ ): Promise<
405
+ [BigNumber, BigNumber] & { index: BigNumber; lastBalance: BigNumber }
406
+ >;
407
+
408
+ increaseAllowance(
409
+ spender: string,
410
+ addedValue: BigNumberish,
411
+ overrides?: Overrides & { from?: string | Promise<string> }
412
+ ): Promise<ContractTransaction>;
413
+
414
+ isValidBaseToken(token: string, overrides?: CallOverrides): Promise<boolean>;
415
+
416
+ mint(
417
+ receiver: string,
418
+ baseTokenIn: string,
419
+ minAmountScyOut: BigNumberish,
420
+ overrides?: Overrides & { from?: string | Promise<string> }
421
+ ): Promise<ContractTransaction>;
422
+
423
+ name(overrides?: CallOverrides): Promise<string>;
424
+
425
+ redeem(
426
+ receiver: string,
427
+ baseTokenOut: string,
428
+ minAmountBaseOut: BigNumberish,
429
+ overrides?: Overrides & { from?: string | Promise<string> }
430
+ ): Promise<ContractTransaction>;
431
+
432
+ redeemReward(
433
+ user: string,
434
+ receiver: string,
435
+ overrides?: Overrides & { from?: string | Promise<string> }
436
+ ): Promise<ContractTransaction>;
437
+
438
+ scyIndexCurrent(
439
+ overrides?: Overrides & { from?: string | Promise<string> }
440
+ ): Promise<ContractTransaction>;
441
+
442
+ scyIndexStored(overrides?: CallOverrides): Promise<BigNumber>;
443
+
444
+ symbol(overrides?: CallOverrides): Promise<string>;
445
+
446
+ totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
447
+
448
+ transfer(
449
+ to: string,
450
+ amount: BigNumberish,
451
+ overrides?: Overrides & { from?: string | Promise<string> }
452
+ ): Promise<ContractTransaction>;
453
+
454
+ transferFrom(
455
+ from: string,
456
+ to: string,
457
+ amount: BigNumberish,
458
+ overrides?: Overrides & { from?: string | Promise<string> }
459
+ ): Promise<ContractTransaction>;
460
+
461
+ updateGlobalReward(
462
+ overrides?: Overrides & { from?: string | Promise<string> }
463
+ ): Promise<ContractTransaction>;
464
+
465
+ updateUserReward(
466
+ user: string,
467
+ overrides?: Overrides & { from?: string | Promise<string> }
468
+ ): Promise<ContractTransaction>;
469
+
470
+ userReward(
471
+ arg0: string,
472
+ arg1: string,
473
+ overrides?: CallOverrides
474
+ ): Promise<
475
+ [BigNumber, BigNumber] & { lastIndex: BigNumber; accruedReward: BigNumber }
476
+ >;
477
+
478
+ callStatic: {
479
+ allowance(
480
+ owner: string,
481
+ spender: string,
482
+ overrides?: CallOverrides
483
+ ): Promise<BigNumber>;
484
+
485
+ approve(
486
+ spender: string,
487
+ amount: BigNumberish,
488
+ overrides?: CallOverrides
489
+ ): Promise<boolean>;
490
+
491
+ assetDecimals(overrides?: CallOverrides): Promise<number>;
492
+
493
+ balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
494
+
495
+ decimals(overrides?: CallOverrides): Promise<number>;
496
+
497
+ decreaseAllowance(
498
+ spender: string,
499
+ subtractedValue: BigNumberish,
500
+ overrides?: CallOverrides
501
+ ): Promise<boolean>;
502
+
503
+ getBaseTokens(overrides?: CallOverrides): Promise<string[]>;
504
+
505
+ getRewardTokens(overrides?: CallOverrides): Promise<string[]>;
506
+
507
+ globalReward(
508
+ arg0: string,
509
+ overrides?: CallOverrides
510
+ ): Promise<
511
+ [BigNumber, BigNumber] & { index: BigNumber; lastBalance: BigNumber }
512
+ >;
513
+
514
+ increaseAllowance(
515
+ spender: string,
516
+ addedValue: BigNumberish,
517
+ overrides?: CallOverrides
518
+ ): Promise<boolean>;
519
+
520
+ isValidBaseToken(
521
+ token: string,
522
+ overrides?: CallOverrides
523
+ ): Promise<boolean>;
524
+
525
+ mint(
526
+ receiver: string,
527
+ baseTokenIn: string,
528
+ minAmountScyOut: BigNumberish,
529
+ overrides?: CallOverrides
530
+ ): Promise<BigNumber>;
531
+
532
+ name(overrides?: CallOverrides): Promise<string>;
533
+
534
+ redeem(
535
+ receiver: string,
536
+ baseTokenOut: string,
537
+ minAmountBaseOut: BigNumberish,
538
+ overrides?: CallOverrides
539
+ ): Promise<BigNumber>;
540
+
541
+ redeemReward(
542
+ user: string,
543
+ receiver: string,
544
+ overrides?: CallOverrides
545
+ ): Promise<BigNumber[]>;
546
+
547
+ scyIndexCurrent(overrides?: CallOverrides): Promise<BigNumber>;
548
+
549
+ scyIndexStored(overrides?: CallOverrides): Promise<BigNumber>;
550
+
551
+ symbol(overrides?: CallOverrides): Promise<string>;
552
+
553
+ totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
554
+
555
+ transfer(
556
+ to: string,
557
+ amount: BigNumberish,
558
+ overrides?: CallOverrides
559
+ ): Promise<boolean>;
560
+
561
+ transferFrom(
562
+ from: string,
563
+ to: string,
564
+ amount: BigNumberish,
565
+ overrides?: CallOverrides
566
+ ): Promise<boolean>;
567
+
568
+ updateGlobalReward(overrides?: CallOverrides): Promise<void>;
569
+
570
+ updateUserReward(user: string, overrides?: CallOverrides): Promise<void>;
571
+
572
+ userReward(
573
+ arg0: string,
574
+ arg1: string,
575
+ overrides?: CallOverrides
576
+ ): Promise<
577
+ [BigNumber, BigNumber] & {
578
+ lastIndex: BigNumber;
579
+ accruedReward: BigNumber;
580
+ }
581
+ >;
582
+ };
583
+
584
+ filters: {
585
+ "Approval(address,address,uint256)"(
586
+ owner?: string | null,
587
+ spender?: string | null,
588
+ value?: null
589
+ ): ApprovalEventFilter;
590
+ Approval(
591
+ owner?: string | null,
592
+ spender?: string | null,
593
+ value?: null
594
+ ): ApprovalEventFilter;
595
+
596
+ "Transfer(address,address,uint256)"(
597
+ from?: string | null,
598
+ to?: string | null,
599
+ value?: null
600
+ ): TransferEventFilter;
601
+ Transfer(
602
+ from?: string | null,
603
+ to?: string | null,
604
+ value?: null
605
+ ): TransferEventFilter;
606
+ };
607
+
608
+ estimateGas: {
609
+ allowance(
610
+ owner: string,
611
+ spender: string,
612
+ overrides?: CallOverrides
613
+ ): Promise<BigNumber>;
614
+
615
+ approve(
616
+ spender: string,
617
+ amount: BigNumberish,
618
+ overrides?: Overrides & { from?: string | Promise<string> }
619
+ ): Promise<BigNumber>;
620
+
621
+ assetDecimals(overrides?: CallOverrides): Promise<BigNumber>;
622
+
623
+ balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
624
+
625
+ decimals(overrides?: CallOverrides): Promise<BigNumber>;
626
+
627
+ decreaseAllowance(
628
+ spender: string,
629
+ subtractedValue: BigNumberish,
630
+ overrides?: Overrides & { from?: string | Promise<string> }
631
+ ): Promise<BigNumber>;
632
+
633
+ getBaseTokens(overrides?: CallOverrides): Promise<BigNumber>;
634
+
635
+ getRewardTokens(overrides?: CallOverrides): Promise<BigNumber>;
636
+
637
+ globalReward(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
638
+
639
+ increaseAllowance(
640
+ spender: string,
641
+ addedValue: BigNumberish,
642
+ overrides?: Overrides & { from?: string | Promise<string> }
643
+ ): Promise<BigNumber>;
644
+
645
+ isValidBaseToken(
646
+ token: string,
647
+ overrides?: CallOverrides
648
+ ): Promise<BigNumber>;
649
+
650
+ mint(
651
+ receiver: string,
652
+ baseTokenIn: string,
653
+ minAmountScyOut: BigNumberish,
654
+ overrides?: Overrides & { from?: string | Promise<string> }
655
+ ): Promise<BigNumber>;
656
+
657
+ name(overrides?: CallOverrides): Promise<BigNumber>;
658
+
659
+ redeem(
660
+ receiver: string,
661
+ baseTokenOut: string,
662
+ minAmountBaseOut: BigNumberish,
663
+ overrides?: Overrides & { from?: string | Promise<string> }
664
+ ): Promise<BigNumber>;
665
+
666
+ redeemReward(
667
+ user: string,
668
+ receiver: string,
669
+ overrides?: Overrides & { from?: string | Promise<string> }
670
+ ): Promise<BigNumber>;
671
+
672
+ scyIndexCurrent(
673
+ overrides?: Overrides & { from?: string | Promise<string> }
674
+ ): Promise<BigNumber>;
675
+
676
+ scyIndexStored(overrides?: CallOverrides): Promise<BigNumber>;
677
+
678
+ symbol(overrides?: CallOverrides): Promise<BigNumber>;
679
+
680
+ totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
681
+
682
+ transfer(
683
+ to: string,
684
+ amount: BigNumberish,
685
+ overrides?: Overrides & { from?: string | Promise<string> }
686
+ ): Promise<BigNumber>;
687
+
688
+ transferFrom(
689
+ from: string,
690
+ to: string,
691
+ amount: BigNumberish,
692
+ overrides?: Overrides & { from?: string | Promise<string> }
693
+ ): Promise<BigNumber>;
694
+
695
+ updateGlobalReward(
696
+ overrides?: Overrides & { from?: string | Promise<string> }
697
+ ): Promise<BigNumber>;
698
+
699
+ updateUserReward(
700
+ user: string,
701
+ overrides?: Overrides & { from?: string | Promise<string> }
702
+ ): Promise<BigNumber>;
703
+
704
+ userReward(
705
+ arg0: string,
706
+ arg1: string,
707
+ overrides?: CallOverrides
708
+ ): Promise<BigNumber>;
709
+ };
710
+
711
+ populateTransaction: {
712
+ allowance(
713
+ owner: string,
714
+ spender: string,
715
+ overrides?: CallOverrides
716
+ ): Promise<PopulatedTransaction>;
717
+
718
+ approve(
719
+ spender: string,
720
+ amount: BigNumberish,
721
+ overrides?: Overrides & { from?: string | Promise<string> }
722
+ ): Promise<PopulatedTransaction>;
723
+
724
+ assetDecimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
725
+
726
+ balanceOf(
727
+ account: string,
728
+ overrides?: CallOverrides
729
+ ): Promise<PopulatedTransaction>;
730
+
731
+ decimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
732
+
733
+ decreaseAllowance(
734
+ spender: string,
735
+ subtractedValue: BigNumberish,
736
+ overrides?: Overrides & { from?: string | Promise<string> }
737
+ ): Promise<PopulatedTransaction>;
738
+
739
+ getBaseTokens(overrides?: CallOverrides): Promise<PopulatedTransaction>;
740
+
741
+ getRewardTokens(overrides?: CallOverrides): Promise<PopulatedTransaction>;
742
+
743
+ globalReward(
744
+ arg0: string,
745
+ overrides?: CallOverrides
746
+ ): Promise<PopulatedTransaction>;
747
+
748
+ increaseAllowance(
749
+ spender: string,
750
+ addedValue: BigNumberish,
751
+ overrides?: Overrides & { from?: string | Promise<string> }
752
+ ): Promise<PopulatedTransaction>;
753
+
754
+ isValidBaseToken(
755
+ token: string,
756
+ overrides?: CallOverrides
757
+ ): Promise<PopulatedTransaction>;
758
+
759
+ mint(
760
+ receiver: string,
761
+ baseTokenIn: string,
762
+ minAmountScyOut: BigNumberish,
763
+ overrides?: Overrides & { from?: string | Promise<string> }
764
+ ): Promise<PopulatedTransaction>;
765
+
766
+ name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
767
+
768
+ redeem(
769
+ receiver: string,
770
+ baseTokenOut: string,
771
+ minAmountBaseOut: BigNumberish,
772
+ overrides?: Overrides & { from?: string | Promise<string> }
773
+ ): Promise<PopulatedTransaction>;
774
+
775
+ redeemReward(
776
+ user: string,
777
+ receiver: string,
778
+ overrides?: Overrides & { from?: string | Promise<string> }
779
+ ): Promise<PopulatedTransaction>;
780
+
781
+ scyIndexCurrent(
782
+ overrides?: Overrides & { from?: string | Promise<string> }
783
+ ): Promise<PopulatedTransaction>;
784
+
785
+ scyIndexStored(overrides?: CallOverrides): Promise<PopulatedTransaction>;
786
+
787
+ symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
788
+
789
+ totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
790
+
791
+ transfer(
792
+ to: string,
793
+ amount: BigNumberish,
794
+ overrides?: Overrides & { from?: string | Promise<string> }
795
+ ): Promise<PopulatedTransaction>;
796
+
797
+ transferFrom(
798
+ from: string,
799
+ to: string,
800
+ amount: BigNumberish,
801
+ overrides?: Overrides & { from?: string | Promise<string> }
802
+ ): Promise<PopulatedTransaction>;
803
+
804
+ updateGlobalReward(
805
+ overrides?: Overrides & { from?: string | Promise<string> }
806
+ ): Promise<PopulatedTransaction>;
807
+
808
+ updateUserReward(
809
+ user: string,
810
+ overrides?: Overrides & { from?: string | Promise<string> }
811
+ ): Promise<PopulatedTransaction>;
812
+
813
+ userReward(
814
+ arg0: string,
815
+ arg1: string,
816
+ overrides?: CallOverrides
817
+ ): Promise<PopulatedTransaction>;
818
+ };
819
+ }