@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,701 @@
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 type MarketParametersStruct = {
26
+ totalOt: BigNumberish;
27
+ totalScy: BigNumberish;
28
+ totalLp: BigNumberish;
29
+ oracleRate: BigNumberish;
30
+ scalarRoot: BigNumberish;
31
+ feeRateRoot: BigNumberish;
32
+ rateOracleTimeWindow: BigNumberish;
33
+ expiry: BigNumberish;
34
+ reserveFeePercent: BigNumberish;
35
+ lastImpliedRate: BigNumberish;
36
+ lastTradeTime: BigNumberish;
37
+ };
38
+
39
+ export type MarketParametersStructOutput = [
40
+ BigNumber,
41
+ BigNumber,
42
+ BigNumber,
43
+ BigNumber,
44
+ BigNumber,
45
+ BigNumber,
46
+ BigNumber,
47
+ BigNumber,
48
+ BigNumber,
49
+ BigNumber,
50
+ BigNumber
51
+ ] & {
52
+ totalOt: BigNumber;
53
+ totalScy: BigNumber;
54
+ totalLp: BigNumber;
55
+ oracleRate: BigNumber;
56
+ scalarRoot: BigNumber;
57
+ feeRateRoot: BigNumber;
58
+ rateOracleTimeWindow: BigNumber;
59
+ expiry: BigNumber;
60
+ reserveFeePercent: BigNumber;
61
+ lastImpliedRate: BigNumber;
62
+ lastTradeTime: BigNumber;
63
+ };
64
+
65
+ export interface IPMarketInterface extends utils.Interface {
66
+ contractName: "IPMarket";
67
+ functions: {
68
+ "OT()": FunctionFragment;
69
+ "SCY()": FunctionFragment;
70
+ "YT()": FunctionFragment;
71
+ "addLiquidity(address,uint256,uint256,bytes)": FunctionFragment;
72
+ "allowance(address,address)": FunctionFragment;
73
+ "approve(address,uint256)": FunctionFragment;
74
+ "balanceOf(address)": FunctionFragment;
75
+ "decimals()": FunctionFragment;
76
+ "expiry()": FunctionFragment;
77
+ "isExpired()": FunctionFragment;
78
+ "name()": FunctionFragment;
79
+ "readState()": FunctionFragment;
80
+ "readTokens()": FunctionFragment;
81
+ "removeLiquidity(address,uint256,bytes)": FunctionFragment;
82
+ "swapExactOtForScy(address,uint256,uint256,bytes)": FunctionFragment;
83
+ "swapScyForExactOt(address,uint256,uint256,bytes)": FunctionFragment;
84
+ "symbol()": FunctionFragment;
85
+ "totalSupply()": FunctionFragment;
86
+ "transfer(address,uint256)": FunctionFragment;
87
+ "transferFrom(address,address,uint256)": FunctionFragment;
88
+ };
89
+
90
+ encodeFunctionData(functionFragment: "OT", values?: undefined): string;
91
+ encodeFunctionData(functionFragment: "SCY", values?: undefined): string;
92
+ encodeFunctionData(functionFragment: "YT", values?: undefined): string;
93
+ encodeFunctionData(
94
+ functionFragment: "addLiquidity",
95
+ values: [string, BigNumberish, BigNumberish, BytesLike]
96
+ ): string;
97
+ encodeFunctionData(
98
+ functionFragment: "allowance",
99
+ values: [string, string]
100
+ ): string;
101
+ encodeFunctionData(
102
+ functionFragment: "approve",
103
+ values: [string, BigNumberish]
104
+ ): string;
105
+ encodeFunctionData(functionFragment: "balanceOf", values: [string]): string;
106
+ encodeFunctionData(functionFragment: "decimals", values?: undefined): string;
107
+ encodeFunctionData(functionFragment: "expiry", values?: undefined): string;
108
+ encodeFunctionData(functionFragment: "isExpired", values?: undefined): string;
109
+ encodeFunctionData(functionFragment: "name", values?: undefined): string;
110
+ encodeFunctionData(functionFragment: "readState", values?: undefined): string;
111
+ encodeFunctionData(
112
+ functionFragment: "readTokens",
113
+ values?: undefined
114
+ ): string;
115
+ encodeFunctionData(
116
+ functionFragment: "removeLiquidity",
117
+ values: [string, BigNumberish, BytesLike]
118
+ ): string;
119
+ encodeFunctionData(
120
+ functionFragment: "swapExactOtForScy",
121
+ values: [string, BigNumberish, BigNumberish, BytesLike]
122
+ ): string;
123
+ encodeFunctionData(
124
+ functionFragment: "swapScyForExactOt",
125
+ values: [string, BigNumberish, BigNumberish, BytesLike]
126
+ ): string;
127
+ encodeFunctionData(functionFragment: "symbol", values?: undefined): string;
128
+ encodeFunctionData(
129
+ functionFragment: "totalSupply",
130
+ values?: undefined
131
+ ): string;
132
+ encodeFunctionData(
133
+ functionFragment: "transfer",
134
+ values: [string, BigNumberish]
135
+ ): string;
136
+ encodeFunctionData(
137
+ functionFragment: "transferFrom",
138
+ values: [string, string, BigNumberish]
139
+ ): string;
140
+
141
+ decodeFunctionResult(functionFragment: "OT", data: BytesLike): Result;
142
+ decodeFunctionResult(functionFragment: "SCY", data: BytesLike): Result;
143
+ decodeFunctionResult(functionFragment: "YT", data: BytesLike): Result;
144
+ decodeFunctionResult(
145
+ functionFragment: "addLiquidity",
146
+ data: BytesLike
147
+ ): Result;
148
+ decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result;
149
+ decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result;
150
+ decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result;
151
+ decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result;
152
+ decodeFunctionResult(functionFragment: "expiry", data: BytesLike): Result;
153
+ decodeFunctionResult(functionFragment: "isExpired", data: BytesLike): Result;
154
+ decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
155
+ decodeFunctionResult(functionFragment: "readState", data: BytesLike): Result;
156
+ decodeFunctionResult(functionFragment: "readTokens", data: BytesLike): Result;
157
+ decodeFunctionResult(
158
+ functionFragment: "removeLiquidity",
159
+ data: BytesLike
160
+ ): Result;
161
+ decodeFunctionResult(
162
+ functionFragment: "swapExactOtForScy",
163
+ data: BytesLike
164
+ ): Result;
165
+ decodeFunctionResult(
166
+ functionFragment: "swapScyForExactOt",
167
+ data: BytesLike
168
+ ): Result;
169
+ decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result;
170
+ decodeFunctionResult(
171
+ functionFragment: "totalSupply",
172
+ data: BytesLike
173
+ ): Result;
174
+ decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result;
175
+ decodeFunctionResult(
176
+ functionFragment: "transferFrom",
177
+ data: BytesLike
178
+ ): Result;
179
+
180
+ events: {
181
+ "Approval(address,address,uint256)": EventFragment;
182
+ "Transfer(address,address,uint256)": EventFragment;
183
+ };
184
+
185
+ getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment;
186
+ getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment;
187
+ }
188
+
189
+ export type ApprovalEvent = TypedEvent<
190
+ [string, string, BigNumber],
191
+ { owner: string; spender: string; value: BigNumber }
192
+ >;
193
+
194
+ export type ApprovalEventFilter = TypedEventFilter<ApprovalEvent>;
195
+
196
+ export type TransferEvent = TypedEvent<
197
+ [string, string, BigNumber],
198
+ { from: string; to: string; value: BigNumber }
199
+ >;
200
+
201
+ export type TransferEventFilter = TypedEventFilter<TransferEvent>;
202
+
203
+ export interface IPMarket extends BaseContract {
204
+ contractName: "IPMarket";
205
+ connect(signerOrProvider: Signer | Provider | string): this;
206
+ attach(addressOrName: string): this;
207
+ deployed(): Promise<this>;
208
+
209
+ interface: IPMarketInterface;
210
+
211
+ queryFilter<TEvent extends TypedEvent>(
212
+ event: TypedEventFilter<TEvent>,
213
+ fromBlockOrBlockhash?: string | number | undefined,
214
+ toBlock?: string | number | undefined
215
+ ): Promise<Array<TEvent>>;
216
+
217
+ listeners<TEvent extends TypedEvent>(
218
+ eventFilter?: TypedEventFilter<TEvent>
219
+ ): Array<TypedListener<TEvent>>;
220
+ listeners(eventName?: string): Array<Listener>;
221
+ removeAllListeners<TEvent extends TypedEvent>(
222
+ eventFilter: TypedEventFilter<TEvent>
223
+ ): this;
224
+ removeAllListeners(eventName?: string): this;
225
+ off: OnEvent<this>;
226
+ on: OnEvent<this>;
227
+ once: OnEvent<this>;
228
+ removeListener: OnEvent<this>;
229
+
230
+ functions: {
231
+ OT(overrides?: CallOverrides): Promise<[string]>;
232
+
233
+ SCY(overrides?: CallOverrides): Promise<[string]>;
234
+
235
+ YT(overrides?: CallOverrides): Promise<[string]>;
236
+
237
+ addLiquidity(
238
+ receiver: string,
239
+ scyDesired: BigNumberish,
240
+ otDesired: BigNumberish,
241
+ data: BytesLike,
242
+ overrides?: Overrides & { from?: string | Promise<string> }
243
+ ): Promise<ContractTransaction>;
244
+
245
+ allowance(
246
+ owner: string,
247
+ spender: string,
248
+ overrides?: CallOverrides
249
+ ): Promise<[BigNumber]>;
250
+
251
+ approve(
252
+ spender: string,
253
+ amount: BigNumberish,
254
+ overrides?: Overrides & { from?: string | Promise<string> }
255
+ ): Promise<ContractTransaction>;
256
+
257
+ balanceOf(account: string, overrides?: CallOverrides): Promise<[BigNumber]>;
258
+
259
+ decimals(overrides?: CallOverrides): Promise<[number]>;
260
+
261
+ expiry(overrides?: CallOverrides): Promise<[BigNumber]>;
262
+
263
+ isExpired(overrides?: CallOverrides): Promise<[boolean]>;
264
+
265
+ name(overrides?: CallOverrides): Promise<[string]>;
266
+
267
+ readState(
268
+ overrides?: CallOverrides
269
+ ): Promise<
270
+ [MarketParametersStructOutput] & { market: MarketParametersStructOutput }
271
+ >;
272
+
273
+ readTokens(
274
+ overrides?: CallOverrides
275
+ ): Promise<
276
+ [string, string, string] & { _SCY: string; _OT: string; _YT: string }
277
+ >;
278
+
279
+ removeLiquidity(
280
+ receiver: string,
281
+ lpToRemove: BigNumberish,
282
+ data: BytesLike,
283
+ overrides?: Overrides & { from?: string | Promise<string> }
284
+ ): Promise<ContractTransaction>;
285
+
286
+ swapExactOtForScy(
287
+ receiver: string,
288
+ exactOtIn: BigNumberish,
289
+ minScyOut: BigNumberish,
290
+ data: BytesLike,
291
+ overrides?: Overrides & { from?: string | Promise<string> }
292
+ ): Promise<ContractTransaction>;
293
+
294
+ swapScyForExactOt(
295
+ receiver: string,
296
+ exactOtOut: BigNumberish,
297
+ maxScyIn: BigNumberish,
298
+ data: BytesLike,
299
+ overrides?: Overrides & { from?: string | Promise<string> }
300
+ ): Promise<ContractTransaction>;
301
+
302
+ symbol(overrides?: CallOverrides): Promise<[string]>;
303
+
304
+ totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
305
+
306
+ transfer(
307
+ to: string,
308
+ amount: BigNumberish,
309
+ overrides?: Overrides & { from?: string | Promise<string> }
310
+ ): Promise<ContractTransaction>;
311
+
312
+ transferFrom(
313
+ from: string,
314
+ to: string,
315
+ amount: BigNumberish,
316
+ overrides?: Overrides & { from?: string | Promise<string> }
317
+ ): Promise<ContractTransaction>;
318
+ };
319
+
320
+ OT(overrides?: CallOverrides): Promise<string>;
321
+
322
+ SCY(overrides?: CallOverrides): Promise<string>;
323
+
324
+ YT(overrides?: CallOverrides): Promise<string>;
325
+
326
+ addLiquidity(
327
+ receiver: string,
328
+ scyDesired: BigNumberish,
329
+ otDesired: BigNumberish,
330
+ data: BytesLike,
331
+ overrides?: Overrides & { from?: string | Promise<string> }
332
+ ): Promise<ContractTransaction>;
333
+
334
+ allowance(
335
+ owner: string,
336
+ spender: string,
337
+ overrides?: CallOverrides
338
+ ): Promise<BigNumber>;
339
+
340
+ approve(
341
+ spender: string,
342
+ amount: BigNumberish,
343
+ overrides?: Overrides & { from?: string | Promise<string> }
344
+ ): Promise<ContractTransaction>;
345
+
346
+ balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
347
+
348
+ decimals(overrides?: CallOverrides): Promise<number>;
349
+
350
+ expiry(overrides?: CallOverrides): Promise<BigNumber>;
351
+
352
+ isExpired(overrides?: CallOverrides): Promise<boolean>;
353
+
354
+ name(overrides?: CallOverrides): Promise<string>;
355
+
356
+ readState(overrides?: CallOverrides): Promise<MarketParametersStructOutput>;
357
+
358
+ readTokens(
359
+ overrides?: CallOverrides
360
+ ): Promise<
361
+ [string, string, string] & { _SCY: string; _OT: string; _YT: string }
362
+ >;
363
+
364
+ removeLiquidity(
365
+ receiver: string,
366
+ lpToRemove: BigNumberish,
367
+ data: BytesLike,
368
+ overrides?: Overrides & { from?: string | Promise<string> }
369
+ ): Promise<ContractTransaction>;
370
+
371
+ swapExactOtForScy(
372
+ receiver: string,
373
+ exactOtIn: BigNumberish,
374
+ minScyOut: BigNumberish,
375
+ data: BytesLike,
376
+ overrides?: Overrides & { from?: string | Promise<string> }
377
+ ): Promise<ContractTransaction>;
378
+
379
+ swapScyForExactOt(
380
+ receiver: string,
381
+ exactOtOut: BigNumberish,
382
+ maxScyIn: BigNumberish,
383
+ data: BytesLike,
384
+ overrides?: Overrides & { from?: string | Promise<string> }
385
+ ): Promise<ContractTransaction>;
386
+
387
+ symbol(overrides?: CallOverrides): Promise<string>;
388
+
389
+ totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
390
+
391
+ transfer(
392
+ to: string,
393
+ amount: BigNumberish,
394
+ overrides?: Overrides & { from?: string | Promise<string> }
395
+ ): Promise<ContractTransaction>;
396
+
397
+ transferFrom(
398
+ from: string,
399
+ to: string,
400
+ amount: BigNumberish,
401
+ overrides?: Overrides & { from?: string | Promise<string> }
402
+ ): Promise<ContractTransaction>;
403
+
404
+ callStatic: {
405
+ OT(overrides?: CallOverrides): Promise<string>;
406
+
407
+ SCY(overrides?: CallOverrides): Promise<string>;
408
+
409
+ YT(overrides?: CallOverrides): Promise<string>;
410
+
411
+ addLiquidity(
412
+ receiver: string,
413
+ scyDesired: BigNumberish,
414
+ otDesired: BigNumberish,
415
+ data: BytesLike,
416
+ overrides?: CallOverrides
417
+ ): Promise<
418
+ [BigNumber, BigNumber, BigNumber] & {
419
+ lpToAccount: BigNumber;
420
+ scyUsed: BigNumber;
421
+ otUsed: BigNumber;
422
+ }
423
+ >;
424
+
425
+ allowance(
426
+ owner: string,
427
+ spender: string,
428
+ overrides?: CallOverrides
429
+ ): Promise<BigNumber>;
430
+
431
+ approve(
432
+ spender: string,
433
+ amount: BigNumberish,
434
+ overrides?: CallOverrides
435
+ ): Promise<boolean>;
436
+
437
+ balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
438
+
439
+ decimals(overrides?: CallOverrides): Promise<number>;
440
+
441
+ expiry(overrides?: CallOverrides): Promise<BigNumber>;
442
+
443
+ isExpired(overrides?: CallOverrides): Promise<boolean>;
444
+
445
+ name(overrides?: CallOverrides): Promise<string>;
446
+
447
+ readState(overrides?: CallOverrides): Promise<MarketParametersStructOutput>;
448
+
449
+ readTokens(
450
+ overrides?: CallOverrides
451
+ ): Promise<
452
+ [string, string, string] & { _SCY: string; _OT: string; _YT: string }
453
+ >;
454
+
455
+ removeLiquidity(
456
+ receiver: string,
457
+ lpToRemove: BigNumberish,
458
+ data: BytesLike,
459
+ overrides?: CallOverrides
460
+ ): Promise<
461
+ [BigNumber, BigNumber] & {
462
+ scyToAccount: BigNumber;
463
+ otToAccount: BigNumber;
464
+ }
465
+ >;
466
+
467
+ swapExactOtForScy(
468
+ receiver: string,
469
+ exactOtIn: BigNumberish,
470
+ minScyOut: BigNumberish,
471
+ data: BytesLike,
472
+ overrides?: CallOverrides
473
+ ): Promise<
474
+ [BigNumber, BigNumber] & {
475
+ netScyOut: BigNumber;
476
+ netScyToReserve: BigNumber;
477
+ }
478
+ >;
479
+
480
+ swapScyForExactOt(
481
+ receiver: string,
482
+ exactOtOut: BigNumberish,
483
+ maxScyIn: BigNumberish,
484
+ data: BytesLike,
485
+ overrides?: CallOverrides
486
+ ): Promise<
487
+ [BigNumber, BigNumber] & {
488
+ netScyIn: BigNumber;
489
+ netScyToReserve: BigNumber;
490
+ }
491
+ >;
492
+
493
+ symbol(overrides?: CallOverrides): Promise<string>;
494
+
495
+ totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
496
+
497
+ transfer(
498
+ to: string,
499
+ amount: BigNumberish,
500
+ overrides?: CallOverrides
501
+ ): Promise<boolean>;
502
+
503
+ transferFrom(
504
+ from: string,
505
+ to: string,
506
+ amount: BigNumberish,
507
+ overrides?: CallOverrides
508
+ ): Promise<boolean>;
509
+ };
510
+
511
+ filters: {
512
+ "Approval(address,address,uint256)"(
513
+ owner?: string | null,
514
+ spender?: string | null,
515
+ value?: null
516
+ ): ApprovalEventFilter;
517
+ Approval(
518
+ owner?: string | null,
519
+ spender?: string | null,
520
+ value?: null
521
+ ): ApprovalEventFilter;
522
+
523
+ "Transfer(address,address,uint256)"(
524
+ from?: string | null,
525
+ to?: string | null,
526
+ value?: null
527
+ ): TransferEventFilter;
528
+ Transfer(
529
+ from?: string | null,
530
+ to?: string | null,
531
+ value?: null
532
+ ): TransferEventFilter;
533
+ };
534
+
535
+ estimateGas: {
536
+ OT(overrides?: CallOverrides): Promise<BigNumber>;
537
+
538
+ SCY(overrides?: CallOverrides): Promise<BigNumber>;
539
+
540
+ YT(overrides?: CallOverrides): Promise<BigNumber>;
541
+
542
+ addLiquidity(
543
+ receiver: string,
544
+ scyDesired: BigNumberish,
545
+ otDesired: BigNumberish,
546
+ data: BytesLike,
547
+ overrides?: Overrides & { from?: string | Promise<string> }
548
+ ): Promise<BigNumber>;
549
+
550
+ allowance(
551
+ owner: string,
552
+ spender: string,
553
+ overrides?: CallOverrides
554
+ ): Promise<BigNumber>;
555
+
556
+ approve(
557
+ spender: string,
558
+ amount: BigNumberish,
559
+ overrides?: Overrides & { from?: string | Promise<string> }
560
+ ): Promise<BigNumber>;
561
+
562
+ balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
563
+
564
+ decimals(overrides?: CallOverrides): Promise<BigNumber>;
565
+
566
+ expiry(overrides?: CallOverrides): Promise<BigNumber>;
567
+
568
+ isExpired(overrides?: CallOverrides): Promise<BigNumber>;
569
+
570
+ name(overrides?: CallOverrides): Promise<BigNumber>;
571
+
572
+ readState(overrides?: CallOverrides): Promise<BigNumber>;
573
+
574
+ readTokens(overrides?: CallOverrides): Promise<BigNumber>;
575
+
576
+ removeLiquidity(
577
+ receiver: string,
578
+ lpToRemove: BigNumberish,
579
+ data: BytesLike,
580
+ overrides?: Overrides & { from?: string | Promise<string> }
581
+ ): Promise<BigNumber>;
582
+
583
+ swapExactOtForScy(
584
+ receiver: string,
585
+ exactOtIn: BigNumberish,
586
+ minScyOut: BigNumberish,
587
+ data: BytesLike,
588
+ overrides?: Overrides & { from?: string | Promise<string> }
589
+ ): Promise<BigNumber>;
590
+
591
+ swapScyForExactOt(
592
+ receiver: string,
593
+ exactOtOut: BigNumberish,
594
+ maxScyIn: BigNumberish,
595
+ data: BytesLike,
596
+ overrides?: Overrides & { from?: string | Promise<string> }
597
+ ): Promise<BigNumber>;
598
+
599
+ symbol(overrides?: CallOverrides): Promise<BigNumber>;
600
+
601
+ totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
602
+
603
+ transfer(
604
+ to: string,
605
+ amount: BigNumberish,
606
+ overrides?: Overrides & { from?: string | Promise<string> }
607
+ ): Promise<BigNumber>;
608
+
609
+ transferFrom(
610
+ from: string,
611
+ to: string,
612
+ amount: BigNumberish,
613
+ overrides?: Overrides & { from?: string | Promise<string> }
614
+ ): Promise<BigNumber>;
615
+ };
616
+
617
+ populateTransaction: {
618
+ OT(overrides?: CallOverrides): Promise<PopulatedTransaction>;
619
+
620
+ SCY(overrides?: CallOverrides): Promise<PopulatedTransaction>;
621
+
622
+ YT(overrides?: CallOverrides): Promise<PopulatedTransaction>;
623
+
624
+ addLiquidity(
625
+ receiver: string,
626
+ scyDesired: BigNumberish,
627
+ otDesired: BigNumberish,
628
+ data: BytesLike,
629
+ overrides?: Overrides & { from?: string | Promise<string> }
630
+ ): Promise<PopulatedTransaction>;
631
+
632
+ allowance(
633
+ owner: string,
634
+ spender: string,
635
+ overrides?: CallOverrides
636
+ ): Promise<PopulatedTransaction>;
637
+
638
+ approve(
639
+ spender: string,
640
+ amount: BigNumberish,
641
+ overrides?: Overrides & { from?: string | Promise<string> }
642
+ ): Promise<PopulatedTransaction>;
643
+
644
+ balanceOf(
645
+ account: string,
646
+ overrides?: CallOverrides
647
+ ): Promise<PopulatedTransaction>;
648
+
649
+ decimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
650
+
651
+ expiry(overrides?: CallOverrides): Promise<PopulatedTransaction>;
652
+
653
+ isExpired(overrides?: CallOverrides): Promise<PopulatedTransaction>;
654
+
655
+ name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
656
+
657
+ readState(overrides?: CallOverrides): Promise<PopulatedTransaction>;
658
+
659
+ readTokens(overrides?: CallOverrides): Promise<PopulatedTransaction>;
660
+
661
+ removeLiquidity(
662
+ receiver: string,
663
+ lpToRemove: BigNumberish,
664
+ data: BytesLike,
665
+ overrides?: Overrides & { from?: string | Promise<string> }
666
+ ): Promise<PopulatedTransaction>;
667
+
668
+ swapExactOtForScy(
669
+ receiver: string,
670
+ exactOtIn: BigNumberish,
671
+ minScyOut: BigNumberish,
672
+ data: BytesLike,
673
+ overrides?: Overrides & { from?: string | Promise<string> }
674
+ ): Promise<PopulatedTransaction>;
675
+
676
+ swapScyForExactOt(
677
+ receiver: string,
678
+ exactOtOut: BigNumberish,
679
+ maxScyIn: BigNumberish,
680
+ data: BytesLike,
681
+ overrides?: Overrides & { from?: string | Promise<string> }
682
+ ): Promise<PopulatedTransaction>;
683
+
684
+ symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
685
+
686
+ totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
687
+
688
+ transfer(
689
+ to: string,
690
+ amount: BigNumberish,
691
+ overrides?: Overrides & { from?: string | Promise<string> }
692
+ ): Promise<PopulatedTransaction>;
693
+
694
+ transferFrom(
695
+ from: string,
696
+ to: string,
697
+ amount: BigNumberish,
698
+ overrides?: Overrides & { from?: string | Promise<string> }
699
+ ): Promise<PopulatedTransaction>;
700
+ };
701
+ }