@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.
- package/LICENSE +100 -0
- package/contracts/SuperComposableYield/ISuperComposableYield.sol +68 -0
- package/contracts/SuperComposableYield/SCYUtils.sol +14 -0
- package/contracts/SuperComposableYield/implementations/RewardManager.sol +117 -0
- package/contracts/SuperComposableYield/implementations/SCYBase.sol +126 -0
- package/contracts/SuperComposableYield/implementations/SCYBaseWithRewards.sol +79 -0
- package/contracts/core/PendleBaseToken.sol +39 -0
- package/contracts/core/PendleMarket.sol +248 -0
- package/contracts/core/PendleMarketFactory.sol +60 -0
- package/contracts/core/PendleOwnershipToken.sol +44 -0
- package/contracts/core/PendleSCYImpl/AaveV3/PendleAaveV3SCY.sol +139 -0
- package/contracts/core/PendleSCYImpl/AaveV3/WadRayMath.sol +126 -0
- package/contracts/core/PendleSCYImpl/PendleBenQiErc20SCY.sol +127 -0
- package/contracts/core/PendleSCYImpl/PendleBtrflySCY.sol +125 -0
- package/contracts/core/PendleSCYImpl/PendleYearnVaultSCY.sol +115 -0
- package/contracts/core/PendleYieldContractFactory.sol +109 -0
- package/contracts/core/PendleYieldToken.sol +240 -0
- package/contracts/core/misc/BoringOwnable.sol +62 -0
- package/contracts/core/misc/BoringOwnableUpg.sol +64 -0
- package/contracts/core/misc/PendleJoeSwapHelperUpg.sol +82 -0
- package/contracts/core/router/PendleRouterCoreUpg.sol +219 -0
- package/contracts/core/router/PendleRouterProxy.sol +64 -0
- package/contracts/core/router/PendleRouterYTUpg.sol +134 -0
- package/contracts/core/router/base/PendleRouterOTBaseUpg.sol +218 -0
- package/contracts/core/router/base/PendleRouterSCYAndForgeBaseUpg.sol +141 -0
- package/contracts/core/router/base/PendleRouterYTBaseUpg.sol +212 -0
- package/contracts/interfaces/IAToken.sol +34 -0
- package/contracts/interfaces/IAavePool.sol +41 -0
- package/contracts/interfaces/IAaveRewardsController.sol +32 -0
- package/contracts/interfaces/IBenQiComptroller.sol +33 -0
- package/contracts/interfaces/IJoePair.sol +98 -0
- package/contracts/interfaces/IJoeRouter01.sol +162 -0
- package/contracts/interfaces/IPBaseToken.sol +9 -0
- package/contracts/interfaces/IPFlashCallBack.sol +10 -0
- package/contracts/interfaces/IPGovernanceManager.sol +28 -0
- package/contracts/interfaces/IPMarket.sol +57 -0
- package/contracts/interfaces/IPMarketAddRemoveCallback.sol +18 -0
- package/contracts/interfaces/IPMarketFactory.sol +8 -0
- package/contracts/interfaces/IPMarketSwapCallback.sol +10 -0
- package/contracts/interfaces/IPOwnershipToken.sol +15 -0
- package/contracts/interfaces/IPPermissionsV2.sol +28 -0
- package/contracts/interfaces/IPRouterCore.sol +108 -0
- package/contracts/interfaces/IPRouterYT.sol +47 -0
- package/contracts/interfaces/IPYieldContractFactory.sol +36 -0
- package/contracts/interfaces/IPYieldToken.sol +19 -0
- package/contracts/interfaces/IQiErc20.sol +35 -0
- package/contracts/interfaces/IQiToken.sol +29 -0
- package/contracts/interfaces/IREDACTEDStaking.sol +35 -0
- package/contracts/interfaces/IWETH.sol +34 -0
- package/contracts/interfaces/IWXBTRFLY.sol +37 -0
- package/contracts/interfaces/IYearnVault.sol +32 -0
- package/contracts/libraries/JoeLibrary.sol +121 -0
- package/contracts/libraries/SCYIndex.sol +55 -0
- package/contracts/libraries/helpers/ExpiryUtilsLib.sol +166 -0
- package/contracts/libraries/math/FixedPoint.sol +208 -0
- package/contracts/libraries/math/LogExpMath.sol +515 -0
- package/contracts/libraries/math/MarketApproxLib.sol +140 -0
- package/contracts/libraries/math/MarketMathLib.sol +606 -0
- package/contracts/periphery/PendleGovernanceManager.sol +36 -0
- package/contracts/periphery/PermissionsV2.sol +23 -0
- package/package.json +76 -0
- package/typechain-types/BoringOwnable.ts +194 -0
- package/typechain-types/BoringOwnableData.ts +100 -0
- package/typechain-types/BoringOwnableUpg.ts +194 -0
- package/typechain-types/BoringOwnableUpgData.ts +100 -0
- package/typechain-types/ERC1967UpgradeUpgradeable.ts +97 -0
- package/typechain-types/ERC20.ts +417 -0
- package/typechain-types/IAToken.ts +331 -0
- package/typechain-types/IAavePool.ts +192 -0
- package/typechain-types/IAaveRewardsController.ts +148 -0
- package/typechain-types/IBeaconUpgradeable.ts +87 -0
- package/typechain-types/IBenQiComptroller.ts +125 -0
- package/typechain-types/IERC1822ProxiableUpgradeable.ts +87 -0
- package/typechain-types/IERC20.ts +300 -0
- package/typechain-types/IERC20Metadata.ts +339 -0
- package/typechain-types/IJoePair.ts +888 -0
- package/typechain-types/IJoeRouter01.ts +1107 -0
- package/typechain-types/IPBaseToken.ts +365 -0
- package/typechain-types/IPFlashCallback.ts +115 -0
- package/typechain-types/IPGovernanceManager.ts +84 -0
- package/typechain-types/IPMarket.ts +701 -0
- package/typechain-types/IPMarketAddRemoveCallback.ts +169 -0
- package/typechain-types/IPMarketFactory.ts +109 -0
- package/typechain-types/IPMarketSwapCallback.ts +115 -0
- package/typechain-types/IPOwnershipToken.ts +488 -0
- package/typechain-types/IPRouterCore.ts +759 -0
- package/typechain-types/IPRouterYT.ts +405 -0
- package/typechain-types/IPYieldContractFactory.ts +192 -0
- package/typechain-types/IPYieldToken.ts +525 -0
- package/typechain-types/IPermissionsV2.ts +87 -0
- package/typechain-types/IQiErc20.ts +402 -0
- package/typechain-types/IQiToken.ts +327 -0
- package/typechain-types/IREDACTEDStaking.ts +216 -0
- package/typechain-types/ISuperComposableYield.ts +652 -0
- package/typechain-types/IWETH.ts +380 -0
- package/typechain-types/IWXBTRFLY.ts +254 -0
- package/typechain-types/IYearnVault.ts +152 -0
- package/typechain-types/PendleAaveV3SCY.ts +901 -0
- package/typechain-types/PendleBaseToken.ts +505 -0
- package/typechain-types/PendleBenQiErc20SCY.ts +914 -0
- package/typechain-types/PendleBtrflyScy.ts +794 -0
- package/typechain-types/PendleGovernanceManager.ts +187 -0
- package/typechain-types/PendleJoeSwapHelperUpg.ts +97 -0
- package/typechain-types/PendleMarket.ts +1008 -0
- package/typechain-types/PendleMarketFactory.ts +246 -0
- package/typechain-types/PendleOwnershipToken.ts +628 -0
- package/typechain-types/PendleRouterCoreUpg.ts +780 -0
- package/typechain-types/PendleRouterProxy.ts +417 -0
- package/typechain-types/PendleRouterSCYAndForgeBaseUpg.ts +98 -0
- package/typechain-types/PendleRouterYTBaseUpg.ts +134 -0
- package/typechain-types/PendleRouterYTUpg.ts +453 -0
- package/typechain-types/PendleYearnVaultScy.ts +784 -0
- package/typechain-types/PendleYieldContractFactory.ts +479 -0
- package/typechain-types/PendleYieldToken.ts +1030 -0
- package/typechain-types/PermissionsV2.ts +87 -0
- package/typechain-types/Proxy.ts +57 -0
- package/typechain-types/RewardManager.ts +172 -0
- package/typechain-types/SCYBase.ts +734 -0
- package/typechain-types/SCYBaseWithRewards.ts +819 -0
- package/typechain-types/UUPSUpgradeable.ts +197 -0
- package/typechain-types/common.ts +44 -0
- package/typechain-types/factories/BoringOwnableData__factory.ts +90 -0
- package/typechain-types/factories/BoringOwnableUpgData__factory.ts +94 -0
- package/typechain-types/factories/BoringOwnableUpg__factory.ts +139 -0
- package/typechain-types/factories/BoringOwnable__factory.ts +149 -0
- package/typechain-types/factories/ERC1967UpgradeUpgradeable__factory.ts +75 -0
- package/typechain-types/factories/ERC20__factory.ts +348 -0
- package/typechain-types/factories/IAToken__factory.ts +225 -0
- package/typechain-types/factories/IAavePool__factory.ts +99 -0
- package/typechain-types/factories/IAaveRewardsController__factory.ts +78 -0
- package/typechain-types/factories/IBeaconUpgradeable__factory.ts +39 -0
- package/typechain-types/factories/IBenQiComptroller__factory.ts +59 -0
- package/typechain-types/factories/IERC1822ProxiableUpgradeable__factory.ts +43 -0
- package/typechain-types/factories/IERC20Metadata__factory.ts +248 -0
- package/typechain-types/factories/IERC20__factory.ts +203 -0
- package/typechain-types/factories/IJoePair__factory.ts +674 -0
- package/typechain-types/factories/IJoeRouter01__factory.ts +772 -0
- package/typechain-types/factories/IPBaseToken__factory.ts +271 -0
- package/typechain-types/factories/IPFlashCallback__factory.ts +49 -0
- package/typechain-types/factories/IPGovernanceManager__factory.ts +39 -0
- package/typechain-types/factories/IPMarketAddRemoveCallback__factory.ts +86 -0
- package/typechain-types/factories/IPMarketFactory__factory.ts +58 -0
- package/typechain-types/factories/IPMarketSwapCallback__factory.ts +53 -0
- package/typechain-types/factories/IPMarket__factory.ts +559 -0
- package/typechain-types/factories/IPOwnershipToken__factory.ts +349 -0
- package/typechain-types/factories/IPRouterCore__factory.ts +516 -0
- package/typechain-types/factories/IPRouterYT__factory.ts +246 -0
- package/typechain-types/factories/IPYieldContractFactory__factory.ts +117 -0
- package/typechain-types/factories/IPYieldToken__factory.ts +383 -0
- package/typechain-types/factories/IPermissionsV2__factory.ts +39 -0
- package/typechain-types/factories/IQiErc20__factory.ts +270 -0
- package/typechain-types/factories/IQiToken__factory.ts +219 -0
- package/typechain-types/factories/IREDACTEDStaking__factory.ts +107 -0
- package/typechain-types/factories/ISuperComposableYield__factory.ts +438 -0
- package/typechain-types/factories/IWETH__factory.ts +261 -0
- package/typechain-types/factories/IWXBTRFLY__factory.ts +131 -0
- package/typechain-types/factories/IYearnVault__factory.ts +74 -0
- package/typechain-types/factories/PendleAaveV3SCY__factory.ts +727 -0
- package/typechain-types/factories/PendleBaseToken__factory.ts +386 -0
- package/typechain-types/factories/PendleBenQiErc20SCY__factory.ts +753 -0
- package/typechain-types/factories/PendleBtrflyScy__factory.ts +652 -0
- package/typechain-types/factories/PendleGovernanceManager__factory.ts +149 -0
- package/typechain-types/factories/PendleJoeSwapHelperUpg__factory.ts +56 -0
- package/typechain-types/factories/PendleMarketFactory__factory.ts +207 -0
- package/typechain-types/factories/PendleMarket__factory.ts +891 -0
- package/typechain-types/factories/PendleOwnershipToken__factory.ts +565 -0
- package/typechain-types/factories/PendleRouterCoreUpg__factory.ts +620 -0
- package/typechain-types/factories/PendleRouterProxy__factory.ts +316 -0
- package/typechain-types/factories/PendleRouterSCYAndForgeBaseUpg__factory.ts +56 -0
- package/typechain-types/factories/PendleRouterYTBaseUpg__factory.ts +66 -0
- package/typechain-types/factories/PendleRouterYTUpg__factory.ts +363 -0
- package/typechain-types/factories/PendleYearnVaultScy__factory.ts +630 -0
- package/typechain-types/factories/PendleYieldContractFactory__factory.ts +368 -0
- package/typechain-types/factories/PendleYieldToken__factory.ts +814 -0
- package/typechain-types/factories/PermissionsV2__factory.ts +36 -0
- package/typechain-types/factories/Proxy__factory.ts +28 -0
- package/typechain-types/factories/RewardManager__factory.ts +89 -0
- package/typechain-types/factories/SCYBaseWithRewards__factory.ts +535 -0
- package/typechain-types/factories/SCYBase__factory.ts +479 -0
- package/typechain-types/factories/UUPSUpgradeable__factory.ts +115 -0
- package/typechain-types/hardhat.d.ts +564 -0
- package/typechain-types/index.ts +122 -0
|
@@ -0,0 +1,620 @@
|
|
|
1
|
+
/* Autogenerated file. Do not edit manually. */
|
|
2
|
+
/* tslint:disable */
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
|
|
5
|
+
import { Provider, TransactionRequest } from "@ethersproject/providers";
|
|
6
|
+
import type {
|
|
7
|
+
PendleRouterCoreUpg,
|
|
8
|
+
PendleRouterCoreUpgInterface,
|
|
9
|
+
} from "../PendleRouterCoreUpg";
|
|
10
|
+
|
|
11
|
+
const _abi = [
|
|
12
|
+
{
|
|
13
|
+
inputs: [
|
|
14
|
+
{
|
|
15
|
+
internalType: "address",
|
|
16
|
+
name: "_joeRouter",
|
|
17
|
+
type: "address",
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
internalType: "address",
|
|
21
|
+
name: "_joeFactory",
|
|
22
|
+
type: "address",
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
internalType: "address",
|
|
26
|
+
name: "_marketFactory",
|
|
27
|
+
type: "address",
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
stateMutability: "nonpayable",
|
|
31
|
+
type: "constructor",
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
inputs: [
|
|
35
|
+
{
|
|
36
|
+
internalType: "address",
|
|
37
|
+
name: "receiver",
|
|
38
|
+
type: "address",
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
internalType: "address",
|
|
42
|
+
name: "market",
|
|
43
|
+
type: "address",
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
internalType: "uint256",
|
|
47
|
+
name: "scyDesired",
|
|
48
|
+
type: "uint256",
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
internalType: "uint256",
|
|
52
|
+
name: "otDesired",
|
|
53
|
+
type: "uint256",
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
internalType: "uint256",
|
|
57
|
+
name: "minLpOut",
|
|
58
|
+
type: "uint256",
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
name: "addLiquidity",
|
|
62
|
+
outputs: [
|
|
63
|
+
{
|
|
64
|
+
internalType: "uint256",
|
|
65
|
+
name: "",
|
|
66
|
+
type: "uint256",
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
internalType: "uint256",
|
|
70
|
+
name: "",
|
|
71
|
+
type: "uint256",
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
internalType: "uint256",
|
|
75
|
+
name: "",
|
|
76
|
+
type: "uint256",
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
stateMutability: "nonpayable",
|
|
80
|
+
type: "function",
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
inputs: [],
|
|
84
|
+
name: "joeFactory",
|
|
85
|
+
outputs: [
|
|
86
|
+
{
|
|
87
|
+
internalType: "address",
|
|
88
|
+
name: "",
|
|
89
|
+
type: "address",
|
|
90
|
+
},
|
|
91
|
+
],
|
|
92
|
+
stateMutability: "view",
|
|
93
|
+
type: "function",
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
inputs: [],
|
|
97
|
+
name: "joeRouter",
|
|
98
|
+
outputs: [
|
|
99
|
+
{
|
|
100
|
+
internalType: "address",
|
|
101
|
+
name: "",
|
|
102
|
+
type: "address",
|
|
103
|
+
},
|
|
104
|
+
],
|
|
105
|
+
stateMutability: "view",
|
|
106
|
+
type: "function",
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
inputs: [
|
|
110
|
+
{
|
|
111
|
+
internalType: "uint256",
|
|
112
|
+
name: "netRawTokenIn",
|
|
113
|
+
type: "uint256",
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
internalType: "address",
|
|
117
|
+
name: "SCY",
|
|
118
|
+
type: "address",
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
internalType: "uint256",
|
|
122
|
+
name: "minScyOut",
|
|
123
|
+
type: "uint256",
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
internalType: "address",
|
|
127
|
+
name: "receiver",
|
|
128
|
+
type: "address",
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
internalType: "address[]",
|
|
132
|
+
name: "path",
|
|
133
|
+
type: "address[]",
|
|
134
|
+
},
|
|
135
|
+
],
|
|
136
|
+
name: "mintScyFromRawToken",
|
|
137
|
+
outputs: [
|
|
138
|
+
{
|
|
139
|
+
internalType: "uint256",
|
|
140
|
+
name: "",
|
|
141
|
+
type: "uint256",
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
stateMutability: "nonpayable",
|
|
145
|
+
type: "function",
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
inputs: [
|
|
149
|
+
{
|
|
150
|
+
internalType: "uint256",
|
|
151
|
+
name: "netRawTokenIn",
|
|
152
|
+
type: "uint256",
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
internalType: "address",
|
|
156
|
+
name: "YT",
|
|
157
|
+
type: "address",
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
internalType: "uint256",
|
|
161
|
+
name: "minYoOut",
|
|
162
|
+
type: "uint256",
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
internalType: "address",
|
|
166
|
+
name: "receiver",
|
|
167
|
+
type: "address",
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
internalType: "address[]",
|
|
171
|
+
name: "path",
|
|
172
|
+
type: "address[]",
|
|
173
|
+
},
|
|
174
|
+
],
|
|
175
|
+
name: "mintYoFromRawToken",
|
|
176
|
+
outputs: [
|
|
177
|
+
{
|
|
178
|
+
internalType: "uint256",
|
|
179
|
+
name: "",
|
|
180
|
+
type: "uint256",
|
|
181
|
+
},
|
|
182
|
+
],
|
|
183
|
+
stateMutability: "nonpayable",
|
|
184
|
+
type: "function",
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
inputs: [
|
|
188
|
+
{
|
|
189
|
+
internalType: "address",
|
|
190
|
+
name: "SCY",
|
|
191
|
+
type: "address",
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
internalType: "uint256",
|
|
195
|
+
name: "netScyIn",
|
|
196
|
+
type: "uint256",
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
internalType: "uint256",
|
|
200
|
+
name: "minRawTokenOut",
|
|
201
|
+
type: "uint256",
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
internalType: "address",
|
|
205
|
+
name: "receiver",
|
|
206
|
+
type: "address",
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
internalType: "address[]",
|
|
210
|
+
name: "path",
|
|
211
|
+
type: "address[]",
|
|
212
|
+
},
|
|
213
|
+
],
|
|
214
|
+
name: "redeemScyToRawToken",
|
|
215
|
+
outputs: [
|
|
216
|
+
{
|
|
217
|
+
internalType: "uint256",
|
|
218
|
+
name: "",
|
|
219
|
+
type: "uint256",
|
|
220
|
+
},
|
|
221
|
+
],
|
|
222
|
+
stateMutability: "nonpayable",
|
|
223
|
+
type: "function",
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
inputs: [
|
|
227
|
+
{
|
|
228
|
+
internalType: "address",
|
|
229
|
+
name: "YT",
|
|
230
|
+
type: "address",
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
internalType: "uint256",
|
|
234
|
+
name: "netYoIn",
|
|
235
|
+
type: "uint256",
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
internalType: "uint256",
|
|
239
|
+
name: "minRawTokenOut",
|
|
240
|
+
type: "uint256",
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
internalType: "address",
|
|
244
|
+
name: "receiver",
|
|
245
|
+
type: "address",
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
internalType: "address[]",
|
|
249
|
+
name: "path",
|
|
250
|
+
type: "address[]",
|
|
251
|
+
},
|
|
252
|
+
],
|
|
253
|
+
name: "redeemYoToRawToken",
|
|
254
|
+
outputs: [
|
|
255
|
+
{
|
|
256
|
+
internalType: "uint256",
|
|
257
|
+
name: "",
|
|
258
|
+
type: "uint256",
|
|
259
|
+
},
|
|
260
|
+
],
|
|
261
|
+
stateMutability: "nonpayable",
|
|
262
|
+
type: "function",
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
inputs: [
|
|
266
|
+
{
|
|
267
|
+
internalType: "address",
|
|
268
|
+
name: "receiver",
|
|
269
|
+
type: "address",
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
internalType: "address",
|
|
273
|
+
name: "market",
|
|
274
|
+
type: "address",
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
internalType: "uint256",
|
|
278
|
+
name: "lpToRemove",
|
|
279
|
+
type: "uint256",
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
internalType: "uint256",
|
|
283
|
+
name: "scyOutMin",
|
|
284
|
+
type: "uint256",
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
internalType: "uint256",
|
|
288
|
+
name: "otOutMin",
|
|
289
|
+
type: "uint256",
|
|
290
|
+
},
|
|
291
|
+
],
|
|
292
|
+
name: "removeLiquidity",
|
|
293
|
+
outputs: [
|
|
294
|
+
{
|
|
295
|
+
internalType: "uint256",
|
|
296
|
+
name: "",
|
|
297
|
+
type: "uint256",
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
internalType: "uint256",
|
|
301
|
+
name: "",
|
|
302
|
+
type: "uint256",
|
|
303
|
+
},
|
|
304
|
+
],
|
|
305
|
+
stateMutability: "nonpayable",
|
|
306
|
+
type: "function",
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
inputs: [
|
|
310
|
+
{
|
|
311
|
+
internalType: "uint256",
|
|
312
|
+
name: "exactOtIn",
|
|
313
|
+
type: "uint256",
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
internalType: "address",
|
|
317
|
+
name: "receiver",
|
|
318
|
+
type: "address",
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
internalType: "address[]",
|
|
322
|
+
name: "path",
|
|
323
|
+
type: "address[]",
|
|
324
|
+
},
|
|
325
|
+
{
|
|
326
|
+
internalType: "address",
|
|
327
|
+
name: "market",
|
|
328
|
+
type: "address",
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
internalType: "uint256",
|
|
332
|
+
name: "minRawTokenOut",
|
|
333
|
+
type: "uint256",
|
|
334
|
+
},
|
|
335
|
+
],
|
|
336
|
+
name: "swapExactOtForRawToken",
|
|
337
|
+
outputs: [
|
|
338
|
+
{
|
|
339
|
+
internalType: "uint256",
|
|
340
|
+
name: "netRawTokenOut",
|
|
341
|
+
type: "uint256",
|
|
342
|
+
},
|
|
343
|
+
],
|
|
344
|
+
stateMutability: "nonpayable",
|
|
345
|
+
type: "function",
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
inputs: [
|
|
349
|
+
{
|
|
350
|
+
internalType: "address",
|
|
351
|
+
name: "receiver",
|
|
352
|
+
type: "address",
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
internalType: "address",
|
|
356
|
+
name: "market",
|
|
357
|
+
type: "address",
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
internalType: "uint256",
|
|
361
|
+
name: "exactOtIn",
|
|
362
|
+
type: "uint256",
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
internalType: "uint256",
|
|
366
|
+
name: "minScyOut",
|
|
367
|
+
type: "uint256",
|
|
368
|
+
},
|
|
369
|
+
],
|
|
370
|
+
name: "swapExactOtForScy",
|
|
371
|
+
outputs: [
|
|
372
|
+
{
|
|
373
|
+
internalType: "uint256",
|
|
374
|
+
name: "",
|
|
375
|
+
type: "uint256",
|
|
376
|
+
},
|
|
377
|
+
],
|
|
378
|
+
stateMutability: "nonpayable",
|
|
379
|
+
type: "function",
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
inputs: [
|
|
383
|
+
{
|
|
384
|
+
internalType: "uint256",
|
|
385
|
+
name: "exactRawTokenIn",
|
|
386
|
+
type: "uint256",
|
|
387
|
+
},
|
|
388
|
+
{
|
|
389
|
+
internalType: "address",
|
|
390
|
+
name: "receiver",
|
|
391
|
+
type: "address",
|
|
392
|
+
},
|
|
393
|
+
{
|
|
394
|
+
internalType: "address[]",
|
|
395
|
+
name: "path",
|
|
396
|
+
type: "address[]",
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
internalType: "address",
|
|
400
|
+
name: "market",
|
|
401
|
+
type: "address",
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
internalType: "uint256",
|
|
405
|
+
name: "minOtOut",
|
|
406
|
+
type: "uint256",
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
internalType: "uint256",
|
|
410
|
+
name: "netOtOutGuessMin",
|
|
411
|
+
type: "uint256",
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
internalType: "uint256",
|
|
415
|
+
name: "netOtOutGuessMax",
|
|
416
|
+
type: "uint256",
|
|
417
|
+
},
|
|
418
|
+
],
|
|
419
|
+
name: "swapExactRawTokenForOt",
|
|
420
|
+
outputs: [
|
|
421
|
+
{
|
|
422
|
+
internalType: "uint256",
|
|
423
|
+
name: "netOtOut",
|
|
424
|
+
type: "uint256",
|
|
425
|
+
},
|
|
426
|
+
],
|
|
427
|
+
stateMutability: "nonpayable",
|
|
428
|
+
type: "function",
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
inputs: [
|
|
432
|
+
{
|
|
433
|
+
internalType: "address",
|
|
434
|
+
name: "receiver",
|
|
435
|
+
type: "address",
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
internalType: "address",
|
|
439
|
+
name: "market",
|
|
440
|
+
type: "address",
|
|
441
|
+
},
|
|
442
|
+
{
|
|
443
|
+
internalType: "uint256",
|
|
444
|
+
name: "exactScyIn",
|
|
445
|
+
type: "uint256",
|
|
446
|
+
},
|
|
447
|
+
{
|
|
448
|
+
internalType: "uint256",
|
|
449
|
+
name: "minOtOut",
|
|
450
|
+
type: "uint256",
|
|
451
|
+
},
|
|
452
|
+
{
|
|
453
|
+
internalType: "uint256",
|
|
454
|
+
name: "netOtOutGuessMin",
|
|
455
|
+
type: "uint256",
|
|
456
|
+
},
|
|
457
|
+
{
|
|
458
|
+
internalType: "uint256",
|
|
459
|
+
name: "netOtOutGuessMax",
|
|
460
|
+
type: "uint256",
|
|
461
|
+
},
|
|
462
|
+
],
|
|
463
|
+
name: "swapExactScyForOt",
|
|
464
|
+
outputs: [
|
|
465
|
+
{
|
|
466
|
+
internalType: "uint256",
|
|
467
|
+
name: "",
|
|
468
|
+
type: "uint256",
|
|
469
|
+
},
|
|
470
|
+
],
|
|
471
|
+
stateMutability: "nonpayable",
|
|
472
|
+
type: "function",
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
inputs: [
|
|
476
|
+
{
|
|
477
|
+
internalType: "address",
|
|
478
|
+
name: "receiver",
|
|
479
|
+
type: "address",
|
|
480
|
+
},
|
|
481
|
+
{
|
|
482
|
+
internalType: "address",
|
|
483
|
+
name: "market",
|
|
484
|
+
type: "address",
|
|
485
|
+
},
|
|
486
|
+
{
|
|
487
|
+
internalType: "uint256",
|
|
488
|
+
name: "maxOtIn",
|
|
489
|
+
type: "uint256",
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
internalType: "uint256",
|
|
493
|
+
name: "exactScyOut",
|
|
494
|
+
type: "uint256",
|
|
495
|
+
},
|
|
496
|
+
{
|
|
497
|
+
internalType: "uint256",
|
|
498
|
+
name: "netOtInGuessMin",
|
|
499
|
+
type: "uint256",
|
|
500
|
+
},
|
|
501
|
+
{
|
|
502
|
+
internalType: "uint256",
|
|
503
|
+
name: "netOtInGuessMax",
|
|
504
|
+
type: "uint256",
|
|
505
|
+
},
|
|
506
|
+
],
|
|
507
|
+
name: "swapOtForExactScy",
|
|
508
|
+
outputs: [
|
|
509
|
+
{
|
|
510
|
+
internalType: "uint256",
|
|
511
|
+
name: "",
|
|
512
|
+
type: "uint256",
|
|
513
|
+
},
|
|
514
|
+
],
|
|
515
|
+
stateMutability: "nonpayable",
|
|
516
|
+
type: "function",
|
|
517
|
+
},
|
|
518
|
+
{
|
|
519
|
+
inputs: [
|
|
520
|
+
{
|
|
521
|
+
internalType: "address",
|
|
522
|
+
name: "receiver",
|
|
523
|
+
type: "address",
|
|
524
|
+
},
|
|
525
|
+
{
|
|
526
|
+
internalType: "address",
|
|
527
|
+
name: "market",
|
|
528
|
+
type: "address",
|
|
529
|
+
},
|
|
530
|
+
{
|
|
531
|
+
internalType: "uint256",
|
|
532
|
+
name: "exactOtOut",
|
|
533
|
+
type: "uint256",
|
|
534
|
+
},
|
|
535
|
+
{
|
|
536
|
+
internalType: "uint256",
|
|
537
|
+
name: "maxScyIn",
|
|
538
|
+
type: "uint256",
|
|
539
|
+
},
|
|
540
|
+
],
|
|
541
|
+
name: "swapScyForExactOt",
|
|
542
|
+
outputs: [
|
|
543
|
+
{
|
|
544
|
+
internalType: "uint256",
|
|
545
|
+
name: "",
|
|
546
|
+
type: "uint256",
|
|
547
|
+
},
|
|
548
|
+
],
|
|
549
|
+
stateMutability: "nonpayable",
|
|
550
|
+
type: "function",
|
|
551
|
+
},
|
|
552
|
+
];
|
|
553
|
+
|
|
554
|
+
const _bytecode =
|
|
555
|
+
"0x60c06040523480156200001157600080fd5b50604051620049e2380380620049e283398101604081905262000034916200006a565b506001600160a01b039182166080521660a052620000b4565b80516001600160a01b03811681146200006557600080fd5b919050565b6000806000606084860312156200008057600080fd5b6200008b846200004d565b92506200009b602085016200004d565b9150620000ab604085016200004d565b90509250925092565b60805160a0516148ec620000f66000396000818161017c015281816116f10152818161175901528181611f040152611f470152600061012201526148ec6000f3fe608060405234801561001057600080fd5b50600436106100b95760003560e01c80623905e7146100be5780631e2bee2a146100e45780633543190a146100f757806349cd4bcc1461010a57806359f571e81461011d57806361d67b9f146101515780637a6d749b146101645780638a38466e1461017757806391c98a2a1461019e578063ab308f79146101cc578063b4532d4b146101df578063d34ffc49146101f2578063e2dc85dc14610205578063f6fb26e31461022d575b600080fd5b6100d16100cc366004613ec9565b610240565b6040519081526020015b60405180910390f35b6100d16100f2366004613ff9565b61025d565b6100d1610105366004614074565b61027a565b6100d16101183660046140ba565b61028a565b6101447f000000000000000000000000000000000000000000000000000000000000000081565b6040516100db9190614145565b6100d161015f366004613ec9565b610334565b6100d1610172366004614074565b610345565b6101447f000000000000000000000000000000000000000000000000000000000000000081565b6101b16101ac366004614159565b610355565b604080519384526020840192909252908201526060016100db565b6100d16101da366004613ff9565b61037a565b6100d16101ed3660046141aa565b61038c565b6100d16102003660046141aa565b61039e565b610218610213366004614159565b6103b0565b604080519283526020830191909152016100db565b6100d161023b366004614203565b6103d0565b6000610251868686868660016104a2565b90505b95945050505050565b600061026f87878787878760016106d7565b979650505050505050565b6000610254858585856001610839565b600080856001600160a01b03166347bfac626040518163ffffffff1660e01b815260040160206040518083038186803b1580156102c657600080fd5b505afa1580156102da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102fe919061427e565b905060006103138b8360018a8d8d6001610980565b90506103258a88838989896000610b23565b9b9a5050505050505050505050565b600061025186868686866001610d1a565b6000610254858585856001610eb2565b6000806000610369888888888860016110b4565b925092509250955095509592505050565b600061026f8787878787876001610980565b600061026f87878787878760016112de565b600061026f8787878787876001610b23565b6000806103c2878787878760016114e7565b915091509550959350505050565b600080836001600160a01b03166347bfac626040518163ffffffff1660e01b815260040160206040518083038186803b15801561040c57600080fd5b505afa158015610420573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610444919061427e565b905061045481858a600180610839565b50610496816000858a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201829052509250610d1a915050565b98975050505050505050565b600080876001600160a01b031663c836545a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104de57600080fd5b505afa1580156104f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610516919061427e565b90506000886001600160a01b03166347bfac626040518163ffffffff1660e01b815260040160206040518083038186803b15801561055357600080fd5b505afa158015610567573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058b919061427e565b9050831561063b576000896001600160a01b0316632f13b60c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156105ce57600080fd5b505afa1580156105e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610606919061429b565b15905061061e6001600160a01b038416338c8c61168c565b8015610639576106396001600160a01b038b16338c8c61168c565b505b604051632029f26b60e21b81526001600160a01b038a16906380a7c9ac90610667908490600401614145565b602060405180830381600087803b15801561068157600080fd5b505af1158015610695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b991906142bd565b506106ca8160008989896000610d1a565b9998505050505050505050565b600080876001600160a01b03166347bfac626040518163ffffffff1660e01b815260040160206040518083038186803b15801561071357600080fd5b505afa158015610727573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074b919061427e565b905061075d898260018b898989610980565b50604051630aa1fb9760e41b81526001600160a01b0387811660048301819052602483015289169063aa1fb97090604401602060405180830381600087803b1580156107a857600080fd5b505af11580156107bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e091906142bd565b91508682101561082d5760405162461bcd60e51b81526020600482015260136024820152721a5b9cdd59999a58da595b9d081653c81bdd5d606a1b60448201526064015b60405180910390fd5b50979650505050505050565b600081156108cd576000856001600160a01b031663c836545a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561087c57600080fd5b505afa158015610890573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b4919061427e565b90506108cb6001600160a01b03821633888861168c565b505b60408051600081526020810191829052631337933360e31b9091526001600160a01b038616906399bc99989061090c908990889088906024810161432e565b6040805180830381600087803b15801561092557600080fd5b505af1158015610939573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095d919061435b565b509050828110156102545760405162461bcd60e51b81526004016108249061437f565b60008115610a6b5760018314156109d5576109d033888a878760008181106109aa576109aa6143ad565b90506020020160208101906109bf91906143c3565b6001600160a01b031692919061168c565b610a6b565b610a2933610a158686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506116ea92505050565b8a878760008181106109aa576109aa6143ad565b610a698484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508c92508b91506117519050565b505b60008484610a7a6001826143f6565b818110610a8957610a896143ad565b9050602002016020810190610a9e91906143c3565b604051636361ddf360e11b81529091506001600160a01b0389169063c6c3bbe690610ad190899085908c9060040161440d565b602060405180830381600087803b158015610aeb57600080fd5b505af1158015610aff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ca91906142bd565b600080876001600160a01b0316632778c3346040518163ffffffff1660e01b81526004016101606040518083038186803b158015610b6057600080fd5b505afa158015610b74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b989190614431565b90506000886001600160a01b03166347bfac626040518163ffffffff1660e01b815260040160206040518083038186803b158015610bd557600080fd5b505afa158015610be9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0d919061427e565b9050600019851415610c27578151610c24906117bd565b94505b610c3e610c33826117d0565b83908a428a8a611845565b925086831015610c605760405162461bcd60e51b8152600401610824906144c4565b8315610c7b57610c7b6001600160a01b038216338b8b61168c565b60408051600081526020810191829052634f7b3d2f60e01b9091526001600160a01b038a1690634f7b3d2f90610cba908d9087908d906024810161432e565b6040805180830381600087803b158015610cd357600080fd5b505af1158015610ce7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0b919061435b565b50505050979650505050505050565b60008115610d3757610d376001600160a01b03881633898961168c565b600083600081518110610d4c57610d4c6143ad565b60200260200101519050835160011415610de957604051630e6dfcd560e01b81526001600160a01b03891690630e6dfcd590610d9090889085908b9060040161440d565b602060405180830381600087803b158015610daa57600080fd5b505af1158015610dbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de291906142bd565b9150610ea7565b6000886001600160a01b0316630e6dfcd5610e03876116ea565b8460016040518463ffffffff1660e01b8152600401610e249392919061440d565b602060405180830381600087803b158015610e3e57600080fd5b505af1158015610e52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7691906142bd565b9050610e83858288611751565b925086831015610ea55760405162461bcd60e51b8152600401610824906144c4565b505b509695505050505050565b600080856001600160a01b0316632778c3346040518163ffffffff1660e01b81526004016101606040518083038186803b158015610eef57600080fd5b505afa158015610f03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f279190614431565b90506000866001600160a01b03166347bfac626040518163ffffffff1660e01b815260040160206040518083038186803b158015610f6457600080fd5b505afa158015610f78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9c919061427e565b9050610fb3610faa826117d0565b8390884261192d565b50925084831115610ffc5760405162461bcd60e51b815260206004820152601360248201527232bc31b2b2b2103634b6b4ba1039b1bc9034b760691b6044820152606401610824565b8315611017576110176001600160a01b03821633898661168c565b60408051600081526020810191829052634f7b3d2f60e01b9091526001600160a01b03881690634f7b3d2f90611056908b908a908a906024810161432e565b6040805180830381600087803b15801561106f57600080fd5b505af1158015611083573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a7919061435b565b5050505095945050505050565b6000806000806000896001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b815260040160606040518083038186803b1580156110f557600080fd5b505afa158015611109573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112d91906144ee565b509150915060008a6001600160a01b0316632778c3346040518163ffffffff1660e01b81526004016101606040518083038186803b15801561116e57600080fd5b505afa158015611182573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a69190614431565b90506111bd6111b4846117d0565b82908c8c611974565b91985096509450508786101561120b5760405162461bcd60e51b81526020600482015260136024820152721a5b9cdd59999a58da595b9d081b1c081bdd5d606a1b6044820152606401610824565b861561123b576112266001600160a01b038416338d8861168c565b61123b6001600160a01b038316338d8761168c565b60408051600081526020810191829052635308fcb160e01b9091526001600160a01b038c1690635308fcb19061127a908f908d908f906024810161432e565b606060405180830381600087803b15801561129457600080fd5b505af11580156112a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cc919061453b565b50505050505096509650969350505050565b600080876001600160a01b0316632778c3346040518163ffffffff1660e01b81526004016101606040518083038186803b15801561131b57600080fd5b505afa15801561132f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113539190614431565b9050600080896001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b815260040160606040518083038186803b15801561139157600080fd5b505afa1580156113a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c991906144ee565b50915091506113e56113da836117d0565b84908a428b8b6119df565b93508884111561142c5760405162461bcd60e51b81526020600482015260126024820152711bdd081a5b88195e18d95959081b1a5b5a5d60721b6044820152606401610824565b8415611447576114476001600160a01b038216338c8761168c565b60408051600081526020810191829052631337933360e31b9091526001600160a01b038b16906399bc999890611486908e9088908d906024810161432e565b6040805180830381600087803b15801561149f57600080fd5b505af11580156114b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d7919061435b565b5050505050979650505050505050565b6000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b81526004016101606040518083038186803b15801561152657600080fd5b505afa15801561153a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155e9190614431565b905061156a8188611abb565b90935091508583101561158f5760405162461bcd60e51b81526004016108249061437f565b848210156115d55760405162461bcd60e51b81526020600482015260136024820152721a5b9cdd59999a58da595b9d081bdd081bdd5d606a1b6044820152606401610824565b83156115f0576115f06001600160a01b038916338a8a61168c565b6040805160008152602081019182905263431e5ca760e11b9091526001600160a01b0389169063863cb94e9061162d908c908b9060248101614569565b6040805180830381600087803b15801561164657600080fd5b505af115801561165a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167e919061435b565b505050965096945050505050565b6116e4846323b872dd60e01b8585856040516024016116ad9392919061440d565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611af6565b50505050565b600061174b7f000000000000000000000000000000000000000000000000000000000000000083600081518110611723576117236143ad565b60200260200101518460018151811061173e5761173e6143ad565b6020026020010151611bcd565b92915050565b60008061177f7f00000000000000000000000000000000000000000000000000000000000000008587611c9c565b905061178c818685611e21565b806001825161179b91906143f6565b815181106117ab576117ab6143ad565b60200260200101519150509392505050565b6000808212156117cc57600080fd5b5090565b6000816001600160a01b031663f65d6fc86040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561180d57600080fd5b505af1158015611821573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174b91906142bd565b60008085116118665760405162461bcd60e51b815260040161082490614590565b818311156118865760405162461bcd60e51b8152600401610824906145b8565b828260005b81831461190257600060026118a084866145df565b6118ab9060016145df565b6118b5919061460d565b905060006118c28c612016565b905060006118d2828d858d61192d565b5090508a81118015906118eb57839650600194506118f9565b6118f66001856143f6565b95505b5050505061188b565b8061191f5760405162461bcd60e51b815260040161082490614621565b509098975050505050505050565b6000806000806119478888611941896120e4565b886120fa565b9150915061195c611957836122bf565b6117bd565b9350611967816117bd565b9250505094509492505050565b60008060008060008060008061199c8c8c61198e8d6120e4565b6119978d6120e4565b6122ca565b93509350935093506119ad846117bd565b97506119b8836117bd565b96506119c3826117bd565b95506119ce816117bd565b945050505050945094509450949050565b6000808511611a005760405162461bcd60e51b815260040161082490614590565b81831115611a205760405162461bcd60e51b8152600401610824906145b8565b828260005b818314611a915760006002611a3a84866145df565b611a44919061460d565b90506000611a518c612016565b90506000611a61828d858d612476565b5090508a8110801590611a7a5783955060019450611a88565b611a858460016145df565b96505b50505050611a25565b80611aae5760405162461bcd60e51b815260040161082490614621565b5098975050505050505050565b600080600080611ad386611ace876120e4565b612497565b91509150611ae0826117bd565b9350611aeb816117bd565b925050509250929050565b6000611b4b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661255d9092919063ffffffff16565b805190915015611bc85780806020019051810190611b69919061429b565b611bc85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610824565b505050565b6000806000611bdc8585612576565b6040516001600160601b0319606084811b8216602084015283901b1660348201529193509150869060480160405160208183030381529060405280519060200120604051602001611c7a9291906001600160f81b0319815260609290921b6001600160601b031916600183015260158201527f0bbca9af0511ad1a1da383135cf3a8d2ac620e549ef9f6ae3a4c33c2fed0af91603582015260550190565b60408051601f1981840301815291905280516020909101209695505050505050565b6060600282511015611ceb5760405162461bcd60e51b8152602060048201526018602482015277094deca98d2c4e4c2e4f27440929cac82989288bea082a8960431b6044820152606401610824565b81516001600160401b03811115611d0457611d04613e5a565b604051908082528060200260200182016040528015611d2d578160200160208202803683370190505b5090508281600081518110611d4457611d446143ad565b60200260200101818152505060005b60018351611d6191906143f6565b811015611e1957600080611db487868581518110611d8157611d816143ad565b602002602001015187866001611d9791906145df565b81518110611da757611da76143ad565b602002602001015161265b565b91509150611ddc848481518110611dcd57611dcd6143ad565b6020026020010151838361272f565b84611de88560016145df565b81518110611df857611df86143ad565b60200260200101818152505050508080611e1190614645565b915050611d53565b509392505050565b60005b60018351611e3291906143f6565b8110156116e457600080848381518110611e4e57611e4e6143ad565b602002602001015185846001611e6491906145df565b81518110611e7457611e746143ad565b6020026020010151915091506000611e8c8383612576565b509050600087611e9d8660016145df565b81518110611ead57611ead6143ad565b60200260200101519050600080836001600160a01b0316866001600160a01b031614611edb57826000611edf565b6000835b91509150600060028a51611ef391906143f6565b8810611eff5788611f40565b611f407f0000000000000000000000000000000000000000000000000000000000000000878c611f308c60026145df565b8151811061173e5761173e6143ad565b9050611f6d7f00000000000000000000000000000000000000000000000000000000000000008888611bcd565b6001600160a01b031663022c0d9f84848460006040519080825280601f01601f191660200182016040528015611faa576020820181803683370190505b506040518563ffffffff1660e01b8152600401611fca9493929190614660565b600060405180830381600087803b158015611fe457600080fd5b505af1158015611ff8573d6000803e3d6000fd5b5050505050505050505050808061200e90614645565b915050611e24565b61207360405180610160016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e0808301519082015261010080830151908201526101208083015190820152610140918201519181019190915290565b60006001600160ff1b038211156117cc57600080fd5b6000808560e0015183106121415760405162461bcd60e51b815260206004820152600e60248201526d13505492d15517d156141254915160921b6044820152606401610824565b6121736040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b838760e0015161218391906143f6565b8152865185126121ce5760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e74206c697175696469747960501b6044820152606401610824565b6121dd87878360000151612838565b6060840181905260408401829052602084018390528951612201939092918961289c565b608082015260408051606081018252600080825260208201819052918101919091526122418860a0015183608001518885600001518c6101000151612930565b60408401526020830152815287516122599087612a32565b8089526020820151604084015161228592916122749161468d565b602085015160608601518651612a79565b610120890181905261229657600080fd5b6122b088888360000151846020015185604001518a612ac0565b90999098509650505050505050565b600061174b826146ce565b6000806000806000861380156122e05750600085135b61231b5760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f414d4f554e545360a01b6044820152606401610824565b604088015161234c5761233a6103e86123348989612b11565b90612a32565b92506103e893508591508490506123d4565b8751604089015161238f919061236290886146eb565b61236c9190614770565b60208a015160408b0151612380908a6146eb565b61238a9190614770565b612b55565b925087604001518389602001516123a691906146eb565b6123b09190614770565b915087604001518389600001516123c791906146eb565b6123d19190614770565b90505b81886020018181516123e6919061468d565b9052508751819089906123fa90839061468d565b905250612407848461468d565b88604001818151612418919061468d565b9052506000831361246b5760405162461bcd60e51b815260206004820152601d60248201527f494e53554646494349454e545f4c49515549444954595f4d494e5445440000006044820152606401610824565b945094509450949050565b60008060008061248a888861194189612b6b565b9150915061195c826117bd565b600080600083136124de5760405162461bcd60e51b81526020600482015260116024820152701a5b9d985b1a59081b1c08185b5bdd5b9d607a1b6044820152606401610824565b604084015160208501516124f290856146eb565b6124fc9190614770565b604085015185519193509061251190856146eb565b61251b9190614770565b604085015190915061252d9084612a32565b6040850152835161253e9082612a32565b8452602084015161254f9083612a32565b602090940193909352929050565b606061256c8484600085612b7f565b90505b9392505050565b600080826001600160a01b0316846001600160a01b031614156125db5760405162461bcd60e51b815260206004820152601f60248201527f4a6f654c6962726172793a204944454e544943414c5f414444524553534553006044820152606401610824565b826001600160a01b0316846001600160a01b0316106125fb5782846125fe565b83835b90925090506001600160a01b0382166126545760405162461bcd60e51b81526020600482015260186024820152774a6f654c6962726172793a205a45524f5f4144445245535360401b6044820152606401610824565b9250929050565b600080600061266a8585612576565b50905060008061267b888888611bcd565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156126b357600080fd5b505afa1580156126c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126eb91906147b5565b506001600160701b031691506001600160701b03169150826001600160a01b0316876001600160a01b0316146127225780826122b0565b9097909650945050505050565b600080841161278e5760405162461bcd60e51b815260206004820152602560248201527f4a6f654c6962726172793a20494e53554646494349454e545f494e5055545f416044820152641353d5539560da1b6064820152608401610824565b60008311801561279e5750600082115b6127f55760405162461bcd60e51b815260206004820152602260248201527f4a6f654c6962726172793a20494e53554646494349454e545f4c495155494449604482015261545960f01b6064820152608401610824565b6000612803856103e56147fa565b9050600061281184836147fa565b9050600082612822876103e86147fa565b61282c91906145df565b905061026f818361460d565b60008060006128478685612ca5565b9250612860866020015186612b1190919063ffffffff16565b86519092501580159061287257508115155b61287b57600080fd5b6128918660000151876101200151848688612d24565b905093509350939050565b6000806128a98784612a32565b905060006128c16128ba888a61468d565b8390612d94565b9050670d529ae9e86000008113156128d857600080fd5b60006128e382612dd4565b9050856128f08289612d94565b6128fa919061468d565b9350670de0b6b3a76400008412156129245760405162461bcd60e51b815260040161082490614819565b50505095945050505050565b6000808080612947612942888a612d94565b6122bf565b905060006129558a88612e14565b905060008813156129ba57600061296c8a83612d94565b9050670de0b6b3a76400008112156129965760405162461bcd60e51b815260040161082490614819565b6129b26129ab83670de0b6b3a7640000614848565b8490612e4d565b9150506129e7565b6129e4816129d081670de0b6b3a7640000614848565b6129da90856146eb565b6129429190614770565b90505b60646129f387836146eb565b6129fd9190614770565b9250612a098183614848565b9450612a2383612a198385614848565b612942919061468d565b93505050955095509592505050565b600081831215612a6f5760405162461bcd60e51b81526020600482015260086024820152674e4547415449564560c01b6044820152606401610824565b61256f8284614848565b600080612a8a87878787600061289c565b90506000612a9a61195783612e77565b905083612aac620151806101686147fa565b612ab690836147fa565b610496919061460d565b60008080612ace8887612f27565b9050808960200151612ae0919061468d565b60208a01526101408901849052612af78886612f27565b9150612b038888612f27565b925050965096945050505050565b60008060008312612b23576001612b27565b6000195b9050612b43612b3e85612b3986612f54565b612f6b565b6120e4565b612b4d90826146eb565b949350505050565b6000818312612b64578161256f565b5090919050565b6000612b76826120e4565b61174b906146ce565b606082471015612be05760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610824565b6001600160a01b0385163b612c375760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610824565b600080866001600160a01b03168587604051612c539190614887565b60006040518083038185875af1925050503d8060008114612c90576040519150601f19603f3d011682016040523d82523d6000602084013e612c95565b606091505b509150915061026f828286612f8a565b6000612cb0826120e4565b612cc2612b3e620151806101686147fa565b8460800151612cd191906146eb565b612cdb9190614770565b90506000811361174b5760405162461bcd60e51b8152602060048201526014602482015273726174655363616c617220756e646572666c6f7760601b6044820152606401610824565b600080612d318684612e14565b9050670de0b6b3a7640000811215612d5b5760405162461bcd60e51b815260040161082490614819565b6000612d71612d6a878a61468d565b8990612d94565b90506000612d7e82612dd4565b9050612d8a8187612d94565b6106ca9084614848565b600082612da35750600061174b565b6000612db6670de0b6b3a76400006120e4565b612dc090856146eb565b9050612dcc8382614770565b91505061174b565b6000670de0b6b3a7640000821415612deb57600080fd5b6000612e09612e0284670de0b6b3a7640000614848565b8490612d94565b905061256f81612e77565b600080612e26620151806101686147fa565b612e3084866147fa565b612e3a919061460d565b9050612b4d612e48826120e4565b612fc3565b600080612e5a83856146eb565b9050612e6d670de0b6b3a76400006120e4565b612b4d9082614770565b6000808213612eb85760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606401610824565b81612ed367016345785d8a0000670de0b6b3a7640000614848565b128015612ef85750612ef5670de0b6b3a764000067016345785d8a000061468d565b82125b15612f1957670de0b6b3a7640000612f0f83613628565b61174b9190614770565b61174b8261385f565b919050565b60008060008312612f39576001612f3d565b6000195b9050612b43612b3e85612f4f86612f54565b613e2d565b60008082136117cc57612f66826146ce565b61174b565b6000670de0b6b3a7640000612f8084846147fa565b61256f919061460d565b60608315612f9957508161256f565b825115612fa95782518084602001fd5b8160405162461bcd60e51b815260040161082491906148a3565b6000680238fd42c5cf03ffff198212158015612fe8575068070c1cc73b00c800008213155b6130275760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610824565b600082121561304e5761303c612e48836146ce565b612f0f670de0b6b3a7640000806146eb565b60006806f05b59d3b20000008312613093576130736806f05b59d3b200000084614848565b925072195e54c5dd42177f53a27172fa9ec63026282760241b90506130d0565b6803782dace9d900000083126130cc576130b66803782dace9d900000084614848565b92506b1425982cf597cd205cef738090506130d0565b5060015b6130db6064846146eb565b925068056bc75e2d6310000068ad78ebc5ac62000000841261313c5761310a68ad78ebc5ac6200000085614848565b935068056bc75e2d6310000061312f6e01855144814a7ff805980ff0084000836146eb565b6131399190614770565b90505b6856bc75e2d631000000841261318e5761315f6856bc75e2d63100000085614848565b935068056bc75e2d631000006131816b02df0ab5a80a22c61ab5a700836146eb565b61318b9190614770565b90505b682b5e3af16b1880000084126131de576131b1682b5e3af16b1880000085614848565b935068056bc75e2d631000006131d1693f1fce3da636ea5cf850836146eb565b6131db9190614770565b90505b6815af1d78b58c400000841261322e576132016815af1d78b58c40000085614848565b935068056bc75e2d63100000613221690127fa27722cc06cc5e2836146eb565b61322b9190614770565b90505b680ad78ebc5ac6200000841261327d57613251680ad78ebc5ac620000085614848565b935068056bc75e2d6310000061327068280e60114edb805d03836146eb565b61327a9190614770565b90505b68056bc75e2d6310000084126132cc576132a068056bc75e2d6310000085614848565b935068056bc75e2d631000006132bf680ebc5fb41746121110836146eb565b6132c99190614770565b90505b6802b5e3af16b1880000841261331b576132ef6802b5e3af16b188000085614848565b935068056bc75e2d6310000061330e6808f00f760a4b2db55d836146eb565b6133189190614770565b90505b68015af1d78b58c40000841261336a5761333e68015af1d78b58c4000085614848565b935068056bc75e2d6310000061335d6806f5f1775788937937836146eb565b6133679190614770565b90505b68056bc75e2d631000008461337f818361468d565b9150600268056bc75e2d6310000061339788846146eb565b6133a19190614770565b6133ab9190614770565b90506133b7818361468d565b9150600368056bc75e2d631000006133cf88846146eb565b6133d99190614770565b6133e39190614770565b90506133ef818361468d565b9150600468056bc75e2d6310000061340788846146eb565b6134119190614770565b61341b9190614770565b9050613427818361468d565b9150600568056bc75e2d6310000061343f88846146eb565b6134499190614770565b6134539190614770565b905061345f818361468d565b9150600668056bc75e2d6310000061347788846146eb565b6134819190614770565b61348b9190614770565b9050613497818361468d565b9150600768056bc75e2d631000006134af88846146eb565b6134b99190614770565b6134c39190614770565b90506134cf818361468d565b9150600868056bc75e2d631000006134e788846146eb565b6134f19190614770565b6134fb9190614770565b9050613507818361468d565b9150600968056bc75e2d6310000061351f88846146eb565b6135299190614770565b6135339190614770565b905061353f818361468d565b9150600a68056bc75e2d6310000061355788846146eb565b6135619190614770565b61356b9190614770565b9050613577818361468d565b9150600b68056bc75e2d6310000061358f88846146eb565b6135999190614770565b6135a39190614770565b90506135af818361468d565b9150600c68056bc75e2d631000006135c788846146eb565b6135d19190614770565b6135db9190614770565b90506135e7818361468d565b915060648468056bc75e2d6310000061360085876146eb565b61360a9190614770565b61361491906146eb565b61361e9190614770565b9695505050505050565b600061363c670de0b6b3a7640000836146eb565b915060006136586a0c097ce7bc90715b34b9f160241b8461468d565b6a0c097ce7bc90715b34b9f160241b6136718186614848565b61367b91906146eb565b6136859190614770565b905060006a0c097ce7bc90715b34b9f160241b6136a283806146eb565b6136ac9190614770565b905081806a0c097ce7bc90715b34b9f160241b6136c984836146eb565b6136d39190614770565b91506136e0600383614770565b6136ea908261468d565b90506a0c097ce7bc90715b34b9f160241b61370584846146eb565b61370f9190614770565b915061371c600583614770565b613726908261468d565b90506a0c097ce7bc90715b34b9f160241b61374184846146eb565b61374b9190614770565b9150613758600783614770565b613762908261468d565b90506a0c097ce7bc90715b34b9f160241b61377d84846146eb565b6137879190614770565b9150613794600983614770565b61379e908261468d565b90506a0c097ce7bc90715b34b9f160241b6137b984846146eb565b6137c39190614770565b91506137d0600b83614770565b6137da908261468d565b90506a0c097ce7bc90715b34b9f160241b6137f584846146eb565b6137ff9190614770565b915061380c600d83614770565b613816908261468d565b90506a0c097ce7bc90715b34b9f160241b61383184846146eb565b61383b9190614770565b9150613848600f83614770565b613852908261468d565b905061361e8160026146eb565b6000670de0b6b3a764000082121561389657612b7682613887670de0b6b3a7640000806146eb565b6138919190614770565b61385f565b60006138c0670de0b6b3a764000072195e54c5dd42177f53a27172fa9ec63026282760241b6146eb565b83126138fe576138e672195e54c5dd42177f53a27172fa9ec63026282760241b84614770565b92506138fb6806f05b59d3b20000008261468d565b90505b61391c670de0b6b3a76400006b1425982cf597cd205cef73806146eb565b8312613950576139386b1425982cf597cd205cef738084614770565b925061394d6803782dace9d90000008261468d565b90505b61395b6064826146eb565b90506139686064846146eb565b92506e01855144814a7ff805980ff008400083126139c5576e01855144814a7ff805980ff00840006139a368056bc75e2d63100000856146eb565b6139ad9190614770565b92506139c268ad78ebc5ac620000008261468d565b90505b6b02df0ab5a80a22c61ab5a7008312613a1a576b02df0ab5a80a22c61ab5a7006139f868056bc75e2d63100000856146eb565b613a029190614770565b9250613a176856bc75e2d6310000008261468d565b90505b693f1fce3da636ea5cf8508312613a6b57693f1fce3da636ea5cf850613a4968056bc75e2d63100000856146eb565b613a539190614770565b9250613a68682b5e3af16b188000008261468d565b90505b690127fa27722cc06cc5e28312613abc57690127fa27722cc06cc5e2613a9a68056bc75e2d63100000856146eb565b613aa49190614770565b9250613ab96815af1d78b58c4000008261468d565b90505b68280e60114edb805d038312613b0b5768280e60114edb805d03613ae968056bc75e2d63100000856146eb565b613af39190614770565b9250613b08680ad78ebc5ac62000008261468d565b90505b680ebc5fb417461211108312613b5a57680ebc5fb41746121110613b3868056bc75e2d63100000856146eb565b613b429190614770565b9250613b5768056bc75e2d631000008261468d565b90505b6808f00f760a4b2db55d8312613ba9576808f00f760a4b2db55d613b8768056bc75e2d63100000856146eb565b613b919190614770565b9250613ba66802b5e3af16b18800008261468d565b90505b6806f5f17757889379378312613bf8576806f5f1775788937937613bd668056bc75e2d63100000856146eb565b613be09190614770565b9250613bf568015af1d78b58c400008261468d565b90505b6806248f33704b2866038312613c46576806248f33704b286603613c2568056bc75e2d63100000856146eb565b613c2f9190614770565b9250613c4367ad78ebc5ac6200008261468d565b90505b6805c548670b9510e7ac8312613c94576805c548670b9510e7ac613c7368056bc75e2d63100000856146eb565b613c7d9190614770565b9250613c916756bc75e2d63100008261468d565b90505b6000613ca968056bc75e2d631000008561468d565b68056bc75e2d63100000613cbd8187614848565b613cc791906146eb565b613cd19190614770565b9050600068056bc75e2d63100000613ce983806146eb565b613cf39190614770565b9050818068056bc75e2d63100000613d0b84836146eb565b613d159190614770565b9150613d22600383614770565b613d2c908261468d565b905068056bc75e2d63100000613d4284846146eb565b613d4c9190614770565b9150613d59600583614770565b613d63908261468d565b905068056bc75e2d63100000613d7984846146eb565b613d839190614770565b9150613d90600783614770565b613d9a908261468d565b905068056bc75e2d63100000613db084846146eb565b613dba9190614770565b9150613dc7600983614770565b613dd1908261468d565b905068056bc75e2d63100000613de784846146eb565b613df19190614770565b9150613dfe600b83614770565b613e08908261468d565b9050613e156002826146eb565b90506064613e23828761468d565b61026f9190614770565b600082612f80670de0b6b3a7640000846147fa565b6001600160a01b0381168114613e5757600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60405161016081016001600160401b0381118282101715613e9357613e93613e5a565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613ec157613ec1613e5a565b604052919050565b600080600080600060a08688031215613ee157600080fd5b8535613eec81613e42565b94506020868101359450604087013593506060870135613f0b81613e42565b925060808701356001600160401b0380821115613f2757600080fd5b818901915089601f830112613f3b57600080fd5b813581811115613f4d57613f4d613e5a565b8060051b9150613f5e848301613e99565b818152918301840191848101908c841115613f7857600080fd5b938501935b83851015613fa25784359250613f9283613e42565b8282529385019390850190613f7d565b8096505050505050509295509295909350565b60008083601f840112613fc757600080fd5b5081356001600160401b03811115613fde57600080fd5b6020830191508360208260051b850101111561265457600080fd5b60008060008060008060a0878903121561401257600080fd5b86359550602087013561402481613e42565b945060408701359350606087013561403b81613e42565b925060808701356001600160401b0381111561405657600080fd5b61406289828a01613fb5565b979a9699509497509295939492505050565b6000806000806080858703121561408a57600080fd5b843561409581613e42565b935060208501356140a581613e42565b93969395505050506040820135916060013590565b60008060008060008060008060e0898b0312156140d657600080fd5b8835975060208901356140e881613e42565b965060408901356001600160401b0381111561410357600080fd5b61410f8b828c01613fb5565b909750955050606089013561412381613e42565b979a96995094979396956080850135955060a08501359460c001359350915050565b6001600160a01b0391909116815260200190565b600080600080600060a0868803121561417157600080fd5b853561417c81613e42565b9450602086013561418c81613e42565b94979496505050506040830135926060810135926080909101359150565b60008060008060008060c087890312156141c357600080fd5b86356141ce81613e42565b955060208701356141de81613e42565b95989597505050506040840135936060810135936080820135935060a0909101359150565b60008060008060008060a0878903121561421c57600080fd5b86359550602087013561422e81613e42565b945060408701356001600160401b0381111561424957600080fd5b61425589828a01613fb5565b909550935050606087013561426981613e42565b80925050608087013590509295509295509295565b60006020828403121561429057600080fd5b815161256f81613e42565b6000602082840312156142ad57600080fd5b8151801515811461256f57600080fd5b6000602082840312156142cf57600080fd5b5051919050565b60005b838110156142f15781810151838201526020016142d9565b838111156116e45750506000910152565b6000815180845261431a8160208601602086016142d6565b601f01601f19169290920160200192915050565b60018060a01b03851681528360208201528260408201526080606082015260006102516080830184614302565b6000806040838503121561436e57600080fd5b505080516020909101519092909150565b6020808252601490820152731a5b9cdd59999a58da595b9d081cd8de481bdd5d60621b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156143d557600080fd5b813561256f81613e42565b634e487b7160e01b600052601160045260246000fd5b600082821015614408576144086143e0565b500390565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000610160828403121561444457600080fd5b61444c613e70565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101408084015181830152508091505092915050565b60208082526010908201526f1a5b9cdd59999a58da595b9d081bdd5d60821b604082015260600190565b60008060006060848603121561450357600080fd5b835161450e81613e42565b602085015190935061451f81613e42565b604085015190925061453081613e42565b809150509250925092565b60008060006060848603121561455057600080fd5b8351925060208401519150604084015190509250925092565b60018060a01b03841681528260208201526060604082015260006102546060830184614302565b6020808252600e908201526d34b73b30b634b21039b1bc9034b760911b604082015260600190565b6020808252600d908201526c696e76616c696420677565737360981b604082015260600190565b600082198211156145f2576145f26143e0565b500190565b634e487b7160e01b600052601260045260246000fd5b60008261461c5761461c6145f7565b500490565b6020808252600a908201526919dd595cdcc819985a5b60b21b604082015260600190565b6000600019821415614659576146596143e0565b5060010190565b84815283602082015260018060a01b03831660408201526080606082015260006102516080830184614302565b600080821280156001600160ff1b03849003851316156146af576146af6143e0565b600160ff1b83900384128116156146c8576146c86143e0565b50500190565b6000600160ff1b8214156146e4576146e46143e0565b5060000390565b60006001600160ff1b0381841382841380821686840486111615614711576147116143e0565b600160ff1b6000871282811687830589121615614730576147306143e0565b6000871292508782058712848416161561474c5761474c6143e0565b87850587128184161615614762576147626143e0565b505050929093029392505050565b60008261477f5761477f6145f7565b600160ff1b821460001984141615614799576147996143e0565b500590565b80516001600160701b0381168114612f2257600080fd5b6000806000606084860312156147ca57600080fd5b6147d38461479e565b92506147e16020850161479e565b9150604084015163ffffffff8116811461453057600080fd5b6000816000190483118215151615614814576148146143e0565b500290565b60208082526015908201527465786368616e676520726174652062656c6f77203160581b604082015260600190565b60008083128015600160ff1b850184121615614866576148666143e0565b6001600160ff1b0384018313811615614881576148816143e0565b50500390565b600082516148998184602087016142d6565b9190910192915050565b60208152600061256f602083018461430256fea2646970667358221220f84068f6161429ccc8d39df1342c22c3a4c3f439b407063d6524374ca5669eda64736f6c63430008090033";
|
|
556
|
+
|
|
557
|
+
type PendleRouterCoreUpgConstructorParams =
|
|
558
|
+
| [signer?: Signer]
|
|
559
|
+
| ConstructorParameters<typeof ContractFactory>;
|
|
560
|
+
|
|
561
|
+
const isSuperArgs = (
|
|
562
|
+
xs: PendleRouterCoreUpgConstructorParams
|
|
563
|
+
): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
|
|
564
|
+
|
|
565
|
+
export class PendleRouterCoreUpg__factory extends ContractFactory {
|
|
566
|
+
constructor(...args: PendleRouterCoreUpgConstructorParams) {
|
|
567
|
+
if (isSuperArgs(args)) {
|
|
568
|
+
super(...args);
|
|
569
|
+
} else {
|
|
570
|
+
super(_abi, _bytecode, args[0]);
|
|
571
|
+
}
|
|
572
|
+
this.contractName = "PendleRouterCoreUpg";
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
deploy(
|
|
576
|
+
_joeRouter: string,
|
|
577
|
+
_joeFactory: string,
|
|
578
|
+
_marketFactory: string,
|
|
579
|
+
overrides?: Overrides & { from?: string | Promise<string> }
|
|
580
|
+
): Promise<PendleRouterCoreUpg> {
|
|
581
|
+
return super.deploy(
|
|
582
|
+
_joeRouter,
|
|
583
|
+
_joeFactory,
|
|
584
|
+
_marketFactory,
|
|
585
|
+
overrides || {}
|
|
586
|
+
) as Promise<PendleRouterCoreUpg>;
|
|
587
|
+
}
|
|
588
|
+
getDeployTransaction(
|
|
589
|
+
_joeRouter: string,
|
|
590
|
+
_joeFactory: string,
|
|
591
|
+
_marketFactory: string,
|
|
592
|
+
overrides?: Overrides & { from?: string | Promise<string> }
|
|
593
|
+
): TransactionRequest {
|
|
594
|
+
return super.getDeployTransaction(
|
|
595
|
+
_joeRouter,
|
|
596
|
+
_joeFactory,
|
|
597
|
+
_marketFactory,
|
|
598
|
+
overrides || {}
|
|
599
|
+
);
|
|
600
|
+
}
|
|
601
|
+
attach(address: string): PendleRouterCoreUpg {
|
|
602
|
+
return super.attach(address) as PendleRouterCoreUpg;
|
|
603
|
+
}
|
|
604
|
+
connect(signer: Signer): PendleRouterCoreUpg__factory {
|
|
605
|
+
return super.connect(signer) as PendleRouterCoreUpg__factory;
|
|
606
|
+
}
|
|
607
|
+
static readonly contractName: "PendleRouterCoreUpg";
|
|
608
|
+
public readonly contractName: "PendleRouterCoreUpg";
|
|
609
|
+
static readonly bytecode = _bytecode;
|
|
610
|
+
static readonly abi = _abi;
|
|
611
|
+
static createInterface(): PendleRouterCoreUpgInterface {
|
|
612
|
+
return new utils.Interface(_abi) as PendleRouterCoreUpgInterface;
|
|
613
|
+
}
|
|
614
|
+
static connect(
|
|
615
|
+
address: string,
|
|
616
|
+
signerOrProvider: Signer | Provider
|
|
617
|
+
): PendleRouterCoreUpg {
|
|
618
|
+
return new Contract(address, _abi, signerOrProvider) as PendleRouterCoreUpg;
|
|
619
|
+
}
|
|
620
|
+
}
|