@pendle/core-v2 6.2.0 → 6.2.2-beta

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 (38) hide show
  1. package/build/artifacts/contracts/offchain-helpers/LimitBackendHelperV2.sol/LimitBackendHelperV2.dbg.json +1 -1
  2. package/build/artifacts/contracts/offchain-helpers/LimitBackendHelperV2.sol/LimitBackendHelperV2.json +2 -2
  3. package/build/artifacts/contracts/oracles/StatelessWrapper/PendleLinearDiscountOracleWrapper.sol/PendleLinearDiscountOracleWrapper.dbg.json +4 -0
  4. package/build/artifacts/contracts/oracles/StatelessWrapper/PendleLinearDiscountOracleWrapper.sol/PendleLinearDiscountOracleWrapper.json +81 -0
  5. package/build/artifacts/contracts/oracles/StatelessWrapper/PendleSparkLinearDiscountOracleFactoryWrapper.sol/PendleSparkLinearDiscountOracleFactoryWrapper.dbg.json +4 -0
  6. package/build/artifacts/contracts/oracles/StatelessWrapper/PendleSparkLinearDiscountOracleFactoryWrapper.sol/PendleSparkLinearDiscountOracleFactoryWrapper.json +121 -0
  7. package/contracts/offchain-helpers/LimitBackendHelperV2.sol +6 -1
  8. package/contracts/oracles/StatelessWrapper/PendleLinearDiscountOracleWrapper.sol +29 -0
  9. package/contracts/oracles/StatelessWrapper/PendleSparkLinearDiscountOracleFactoryWrapper.sol +30 -0
  10. package/deployments/1-core.json +3 -2
  11. package/deployments/1-offchain-helper.json +1 -1
  12. package/deployments/10-core.json +3 -2
  13. package/deployments/10-offchain-helper.json +1 -1
  14. package/deployments/146-core.json +3 -2
  15. package/deployments/146-offchain-helper.json +1 -1
  16. package/deployments/42161-core.json +3 -2
  17. package/deployments/42161-offchain-helper.json +1 -1
  18. package/deployments/43114-core.json +19 -2
  19. package/deployments/5000-core.json +3 -2
  20. package/deployments/5000-offchain-helper.json +1 -1
  21. package/deployments/56-core.json +3 -2
  22. package/deployments/56-offchain-helper.json +1 -1
  23. package/deployments/80094-core.json +3 -2
  24. package/deployments/80094-offchain-helper.json +1 -1
  25. package/deployments/8453-core.json +3 -2
  26. package/deployments/8453-offchain-helper.json +1 -1
  27. package/deployments/9745-core.json +3 -2
  28. package/deployments/9745-offchain-helper.json +1 -1
  29. package/deployments/999-core.json +3 -2
  30. package/deployments/999-offchain-helper.json +1 -1
  31. package/package.json +1 -1
  32. package/typechain-types/PendleLinearDiscountOracleWrapper.ts +150 -0
  33. package/typechain-types/PendleSparkLinearDiscountOracleFactoryWrapper.ts +216 -0
  34. package/typechain-types/factories/LimitBackendHelperV2__factory.ts +1 -1
  35. package/typechain-types/factories/PendleLinearDiscountOracleWrapper__factory.ts +145 -0
  36. package/typechain-types/factories/PendleSparkLinearDiscountOracleFactoryWrapper__factory.ts +193 -0
  37. package/typechain-types/hardhat.d.ts +18 -18
  38. package/typechain-types/index.ts +4 -4
@@ -41,8 +41,9 @@
41
41
  "sparkLinearDiscountOracleFactory": "0x34C91651A070664279866E5f3d6B4d5F65cbbFFb",
42
42
  "vePendleAirdropDistributor": "0x3942F7B55094250644cFfDa7160226Caa349A38E",
43
43
  "externalRewardsDistributor": "0x33305665f69B4642D1275f4Ce81c23651674D21C",
44
- "beta": {
45
- "PendleChainlinkOracleFactory": "0x9E5129dcC15d39625617DcD7F0F44FB0BB957FFd"
44
+ "experimental": {
45
+ "PendleChainlinkOracleFactory": "0x9E5129dcC15d39625617DcD7F0F44FB0BB957FFd",
46
+ "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579"
46
47
  },
47
48
  "receiverEndpoint": "0xeE708FC793a02F1eDd5BB9DBD7fD13010D1F7136",
48
49
  "vePendle": "0x051dcd6a80f11fE68F77Fb0EBdE03853FA96B1fD",
@@ -4,7 +4,7 @@
4
4
  "simulateHelper": "0x2b3EC64160F658fFe7061769415Ff080fca80BbA",
5
5
  "supplyCapReader": "0x438C7dBA7d355aA0c77459AF38B2E62f9f9EccBf",
6
6
  "balanceReader": "0x2085F50305f656f96b22ECBfe0A4f5e786Ff0438",
7
- "limitBackendHelperV2": "0x05f6bAF4189e46aC0C728bb3fE2fCba247441100",
7
+ "limitBackendHelperV2": "0xf02CdbD8F6A18c73B73331FEe3C2110e74508977",
8
8
  "checkSolvent": "0x1dE943933417D50738557Ac98FF96405CeeeeCD5",
9
9
  "externalCapGate": "0x65E04a3b2af7716B7f0765dE62Fa2f1B3290C23F"
10
10
  }
@@ -41,8 +41,9 @@
41
41
  "sparkLinearDiscountOracleFactory": "0x34C91651A070664279866E5f3d6B4d5F65cbbFFb",
42
42
  "vePendleAirdropDistributor": "0x42c706eab26aA8FAcFa4B3f32902bA872AaA10aC",
43
43
  "externalRewardsDistributor": "0x1Cb446fAE25Ae19878f9f71189902e2a6A6A749c",
44
- "beta": {
45
- "PendleChainlinkOracleFactory": "0xAcD67f36183c8bA6b80Cfa60375510Ce17D0dd26"
44
+ "experimental": {
45
+ "PendleChainlinkOracleFactory": "0xAcD67f36183c8bA6b80Cfa60375510Ce17D0dd26",
46
+ "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579"
46
47
  },
47
48
  "receiverEndpoint": "0x5C3DdC827c40964728336229808E27C6374F07Bf",
48
49
  "vePendle": "0x0d7432A9f5C51fdd2407332D90D9b814827982Bf",
@@ -4,7 +4,7 @@
4
4
  "simulateHelper": "0xc23Dd2807e51dd1D317e1321CBeEb9ace98531EE",
5
5
  "supplyCapReader": "0x251CfB4E84CefecA6c1e6a4D8a0cb9c524e7484f",
6
6
  "balanceReader": "0x2085F50305f656f96b22ECBfe0A4f5e786Ff0438",
7
- "limitBackendHelperV2": "0x05f6bAF4189e46aC0C728bb3fE2fCba247441100",
7
+ "limitBackendHelperV2": "0xf02CdbD8F6A18c73B73331FEe3C2110e74508977",
8
8
  "checkSolvent": "0x21332dCAe68b603B9170d25D21fda68f18Da91df",
9
9
  "externalCapGate": "0x65E04a3b2af7716B7f0765dE62Fa2f1B3290C23F"
10
10
  }
@@ -39,8 +39,9 @@
39
39
  "commonDeploy": "0x2Ed473F528E5B320f850d17ADfe0e558f0298aA9",
40
40
  "syFactory": "0x5eae07541b334a2cdc1f107788a2069d6c1e73c2",
41
41
  "sparkLinearDiscountOracleFactory": "0x34C91651A070664279866E5f3d6B4d5F65cbbFFb",
42
- "beta": {
43
- "PendleChainlinkOracleFactory": "0xAcD67f36183c8bA6b80Cfa60375510Ce17D0dd26"
42
+ "experimental": {
43
+ "PendleChainlinkOracleFactory": "0xAcD67f36183c8bA6b80Cfa60375510Ce17D0dd26",
44
+ "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579"
44
45
  },
45
46
  "vePendle": "0x1fBaCedf510dAA79dfD9B41227A7ba192d5D548D",
46
47
  "receiverEndpoint": "0xaD511b12F73c145Cf158EB92E4fa256937d952A4",
@@ -4,7 +4,7 @@
4
4
  "simulateHelper": "0xc23Dd2807e51dd1D317e1321CBeEb9ace98531EE",
5
5
  "supplyCapReader": "0x251CfB4E84CefecA6c1e6a4D8a0cb9c524e7484f",
6
6
  "balanceReader": "0x2085F50305f656f96b22ECBfe0A4f5e786Ff0438",
7
- "limitBackendHelperV2": "0x05f6bAF4189e46aC0C728bb3fE2fCba247441100",
7
+ "limitBackendHelperV2": "0xf02CdbD8F6A18c73B73331FEe3C2110e74508977",
8
8
  "checkSolvent": "0x21332dCAe68b603B9170d25D21fda68f18Da91df",
9
9
  "externalCapGate": "0x65E04a3b2af7716B7f0765dE62Fa2f1B3290C23F"
10
10
  }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@pendle/core-v2",
3
3
  "description": "Core smart contracts of Pendle Protocol.",
4
4
  "license": "BUSL-1.1",
5
- "version": "6.2.0",
5
+ "version": "6.2.2-beta",
6
6
  "homepage": "https://pendle.finance",
7
7
  "keywords": [
8
8
  "pendle",
@@ -0,0 +1,150 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import {
5
+ BaseContract,
6
+ BigNumber,
7
+ BytesLike,
8
+ CallOverrides,
9
+ PopulatedTransaction,
10
+ Signer,
11
+ utils,
12
+ } from "ethers";
13
+ import { FunctionFragment, Result } from "@ethersproject/abi";
14
+ import { Listener, Provider } from "@ethersproject/providers";
15
+ import type {
16
+ TypedEventFilter,
17
+ TypedEvent,
18
+ TypedListener,
19
+ OnEvent,
20
+ } from "./common";
21
+
22
+ export interface PendleLinearDiscountOracleWrapperInterface
23
+ extends utils.Interface {
24
+ contractName: "PendleLinearDiscountOracleWrapper";
25
+ functions: {
26
+ "decimals()": FunctionFragment;
27
+ "innerOracle()": FunctionFragment;
28
+ "latestRoundData()": FunctionFragment;
29
+ };
30
+
31
+ encodeFunctionData(functionFragment: "decimals", values?: undefined): string;
32
+ encodeFunctionData(
33
+ functionFragment: "innerOracle",
34
+ values?: undefined
35
+ ): string;
36
+ encodeFunctionData(
37
+ functionFragment: "latestRoundData",
38
+ values?: undefined
39
+ ): string;
40
+
41
+ decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result;
42
+ decodeFunctionResult(
43
+ functionFragment: "innerOracle",
44
+ data: BytesLike
45
+ ): Result;
46
+ decodeFunctionResult(
47
+ functionFragment: "latestRoundData",
48
+ data: BytesLike
49
+ ): Result;
50
+
51
+ events: {};
52
+ }
53
+
54
+ export interface PendleLinearDiscountOracleWrapper extends BaseContract {
55
+ contractName: "PendleLinearDiscountOracleWrapper";
56
+ connect(signerOrProvider: Signer | Provider | string): this;
57
+ attach(addressOrName: string): this;
58
+ deployed(): Promise<this>;
59
+
60
+ interface: PendleLinearDiscountOracleWrapperInterface;
61
+
62
+ queryFilter<TEvent extends TypedEvent>(
63
+ event: TypedEventFilter<TEvent>,
64
+ fromBlockOrBlockhash?: string | number | undefined,
65
+ toBlock?: string | number | undefined
66
+ ): Promise<Array<TEvent>>;
67
+
68
+ listeners<TEvent extends TypedEvent>(
69
+ eventFilter?: TypedEventFilter<TEvent>
70
+ ): Array<TypedListener<TEvent>>;
71
+ listeners(eventName?: string): Array<Listener>;
72
+ removeAllListeners<TEvent extends TypedEvent>(
73
+ eventFilter: TypedEventFilter<TEvent>
74
+ ): this;
75
+ removeAllListeners(eventName?: string): this;
76
+ off: OnEvent<this>;
77
+ on: OnEvent<this>;
78
+ once: OnEvent<this>;
79
+ removeListener: OnEvent<this>;
80
+
81
+ functions: {
82
+ decimals(overrides?: CallOverrides): Promise<[number]>;
83
+
84
+ innerOracle(overrides?: CallOverrides): Promise<[string]>;
85
+
86
+ latestRoundData(
87
+ overrides?: CallOverrides
88
+ ): Promise<
89
+ [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & {
90
+ roundId: BigNumber;
91
+ answer: BigNumber;
92
+ startedAt: BigNumber;
93
+ updatedAt: BigNumber;
94
+ answeredInRound: BigNumber;
95
+ }
96
+ >;
97
+ };
98
+
99
+ decimals(overrides?: CallOverrides): Promise<number>;
100
+
101
+ innerOracle(overrides?: CallOverrides): Promise<string>;
102
+
103
+ latestRoundData(
104
+ overrides?: CallOverrides
105
+ ): Promise<
106
+ [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & {
107
+ roundId: BigNumber;
108
+ answer: BigNumber;
109
+ startedAt: BigNumber;
110
+ updatedAt: BigNumber;
111
+ answeredInRound: BigNumber;
112
+ }
113
+ >;
114
+
115
+ callStatic: {
116
+ decimals(overrides?: CallOverrides): Promise<number>;
117
+
118
+ innerOracle(overrides?: CallOverrides): Promise<string>;
119
+
120
+ latestRoundData(
121
+ overrides?: CallOverrides
122
+ ): Promise<
123
+ [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & {
124
+ roundId: BigNumber;
125
+ answer: BigNumber;
126
+ startedAt: BigNumber;
127
+ updatedAt: BigNumber;
128
+ answeredInRound: BigNumber;
129
+ }
130
+ >;
131
+ };
132
+
133
+ filters: {};
134
+
135
+ estimateGas: {
136
+ decimals(overrides?: CallOverrides): Promise<BigNumber>;
137
+
138
+ innerOracle(overrides?: CallOverrides): Promise<BigNumber>;
139
+
140
+ latestRoundData(overrides?: CallOverrides): Promise<BigNumber>;
141
+ };
142
+
143
+ populateTransaction: {
144
+ decimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
145
+
146
+ innerOracle(overrides?: CallOverrides): Promise<PopulatedTransaction>;
147
+
148
+ latestRoundData(overrides?: CallOverrides): Promise<PopulatedTransaction>;
149
+ };
150
+ }
@@ -0,0 +1,216 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import {
5
+ BaseContract,
6
+ BigNumber,
7
+ BigNumberish,
8
+ BytesLike,
9
+ CallOverrides,
10
+ ContractTransaction,
11
+ Overrides,
12
+ PopulatedTransaction,
13
+ Signer,
14
+ utils,
15
+ } from "ethers";
16
+ import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
17
+ import { Listener, Provider } from "@ethersproject/providers";
18
+ import type {
19
+ TypedEventFilter,
20
+ TypedEvent,
21
+ TypedListener,
22
+ OnEvent,
23
+ } from "./common";
24
+
25
+ export interface PendleSparkLinearDiscountOracleFactoryWrapperInterface
26
+ extends utils.Interface {
27
+ contractName: "PendleSparkLinearDiscountOracleFactoryWrapper";
28
+ functions: {
29
+ "createWithMarket(address,uint256)": FunctionFragment;
30
+ "createWithPt(address,uint256)": FunctionFragment;
31
+ "innerFactory()": FunctionFragment;
32
+ "wrap(address)": FunctionFragment;
33
+ };
34
+
35
+ encodeFunctionData(
36
+ functionFragment: "createWithMarket",
37
+ values: [string, BigNumberish]
38
+ ): string;
39
+ encodeFunctionData(
40
+ functionFragment: "createWithPt",
41
+ values: [string, BigNumberish]
42
+ ): string;
43
+ encodeFunctionData(
44
+ functionFragment: "innerFactory",
45
+ values?: undefined
46
+ ): string;
47
+ encodeFunctionData(functionFragment: "wrap", values: [string]): string;
48
+
49
+ decodeFunctionResult(
50
+ functionFragment: "createWithMarket",
51
+ data: BytesLike
52
+ ): Result;
53
+ decodeFunctionResult(
54
+ functionFragment: "createWithPt",
55
+ data: BytesLike
56
+ ): Result;
57
+ decodeFunctionResult(
58
+ functionFragment: "innerFactory",
59
+ data: BytesLike
60
+ ): Result;
61
+ decodeFunctionResult(functionFragment: "wrap", data: BytesLike): Result;
62
+
63
+ events: {
64
+ "WrapperOracleCreated(address,address)": EventFragment;
65
+ };
66
+
67
+ getEvent(nameOrSignatureOrTopic: "WrapperOracleCreated"): EventFragment;
68
+ }
69
+
70
+ export type WrapperOracleCreatedEvent = TypedEvent<
71
+ [string, string],
72
+ { innerOracle: string; wrapper: string }
73
+ >;
74
+
75
+ export type WrapperOracleCreatedEventFilter =
76
+ TypedEventFilter<WrapperOracleCreatedEvent>;
77
+
78
+ export interface PendleSparkLinearDiscountOracleFactoryWrapper
79
+ extends BaseContract {
80
+ contractName: "PendleSparkLinearDiscountOracleFactoryWrapper";
81
+ connect(signerOrProvider: Signer | Provider | string): this;
82
+ attach(addressOrName: string): this;
83
+ deployed(): Promise<this>;
84
+
85
+ interface: PendleSparkLinearDiscountOracleFactoryWrapperInterface;
86
+
87
+ queryFilter<TEvent extends TypedEvent>(
88
+ event: TypedEventFilter<TEvent>,
89
+ fromBlockOrBlockhash?: string | number | undefined,
90
+ toBlock?: string | number | undefined
91
+ ): Promise<Array<TEvent>>;
92
+
93
+ listeners<TEvent extends TypedEvent>(
94
+ eventFilter?: TypedEventFilter<TEvent>
95
+ ): Array<TypedListener<TEvent>>;
96
+ listeners(eventName?: string): Array<Listener>;
97
+ removeAllListeners<TEvent extends TypedEvent>(
98
+ eventFilter: TypedEventFilter<TEvent>
99
+ ): this;
100
+ removeAllListeners(eventName?: string): this;
101
+ off: OnEvent<this>;
102
+ on: OnEvent<this>;
103
+ once: OnEvent<this>;
104
+ removeListener: OnEvent<this>;
105
+
106
+ functions: {
107
+ createWithMarket(
108
+ market: string,
109
+ baseDiscountPerYear: BigNumberish,
110
+ overrides?: Overrides & { from?: string | Promise<string> }
111
+ ): Promise<ContractTransaction>;
112
+
113
+ createWithPt(
114
+ pt: string,
115
+ baseDiscountPerYear: BigNumberish,
116
+ overrides?: Overrides & { from?: string | Promise<string> }
117
+ ): Promise<ContractTransaction>;
118
+
119
+ innerFactory(overrides?: CallOverrides): Promise<[string]>;
120
+
121
+ wrap(
122
+ innerOracle: string,
123
+ overrides?: Overrides & { from?: string | Promise<string> }
124
+ ): Promise<ContractTransaction>;
125
+ };
126
+
127
+ createWithMarket(
128
+ market: string,
129
+ baseDiscountPerYear: BigNumberish,
130
+ overrides?: Overrides & { from?: string | Promise<string> }
131
+ ): Promise<ContractTransaction>;
132
+
133
+ createWithPt(
134
+ pt: string,
135
+ baseDiscountPerYear: BigNumberish,
136
+ overrides?: Overrides & { from?: string | Promise<string> }
137
+ ): Promise<ContractTransaction>;
138
+
139
+ innerFactory(overrides?: CallOverrides): Promise<string>;
140
+
141
+ wrap(
142
+ innerOracle: string,
143
+ overrides?: Overrides & { from?: string | Promise<string> }
144
+ ): Promise<ContractTransaction>;
145
+
146
+ callStatic: {
147
+ createWithMarket(
148
+ market: string,
149
+ baseDiscountPerYear: BigNumberish,
150
+ overrides?: CallOverrides
151
+ ): Promise<string>;
152
+
153
+ createWithPt(
154
+ pt: string,
155
+ baseDiscountPerYear: BigNumberish,
156
+ overrides?: CallOverrides
157
+ ): Promise<string>;
158
+
159
+ innerFactory(overrides?: CallOverrides): Promise<string>;
160
+
161
+ wrap(innerOracle: string, overrides?: CallOverrides): Promise<string>;
162
+ };
163
+
164
+ filters: {
165
+ "WrapperOracleCreated(address,address)"(
166
+ innerOracle?: string | null,
167
+ wrapper?: string | null
168
+ ): WrapperOracleCreatedEventFilter;
169
+ WrapperOracleCreated(
170
+ innerOracle?: string | null,
171
+ wrapper?: string | null
172
+ ): WrapperOracleCreatedEventFilter;
173
+ };
174
+
175
+ estimateGas: {
176
+ createWithMarket(
177
+ market: string,
178
+ baseDiscountPerYear: BigNumberish,
179
+ overrides?: Overrides & { from?: string | Promise<string> }
180
+ ): Promise<BigNumber>;
181
+
182
+ createWithPt(
183
+ pt: string,
184
+ baseDiscountPerYear: BigNumberish,
185
+ overrides?: Overrides & { from?: string | Promise<string> }
186
+ ): Promise<BigNumber>;
187
+
188
+ innerFactory(overrides?: CallOverrides): Promise<BigNumber>;
189
+
190
+ wrap(
191
+ innerOracle: string,
192
+ overrides?: Overrides & { from?: string | Promise<string> }
193
+ ): Promise<BigNumber>;
194
+ };
195
+
196
+ populateTransaction: {
197
+ createWithMarket(
198
+ market: string,
199
+ baseDiscountPerYear: BigNumberish,
200
+ overrides?: Overrides & { from?: string | Promise<string> }
201
+ ): Promise<PopulatedTransaction>;
202
+
203
+ createWithPt(
204
+ pt: string,
205
+ baseDiscountPerYear: BigNumberish,
206
+ overrides?: Overrides & { from?: string | Promise<string> }
207
+ ): Promise<PopulatedTransaction>;
208
+
209
+ innerFactory(overrides?: CallOverrides): Promise<PopulatedTransaction>;
210
+
211
+ wrap(
212
+ innerOracle: string,
213
+ overrides?: Overrides & { from?: string | Promise<string> }
214
+ ): Promise<PopulatedTransaction>;
215
+ };
216
+ }
@@ -174,7 +174,7 @@ const _abi = [
174
174
  ];
175
175
 
176
176
  const _bytecode =
177
- "0x60c060405234801561000f575f5ffd5b5060405161182738038061182783398101604081905261002e91610043565b6001600160a01b03166080523060a052610070565b5f60208284031215610053575f5ffd5b81516001600160a01b0381168114610069575f5ffd5b9392505050565b60805160a05161178961009e5f395f61065f01525f818160ce0152818161012c015261019f01526117895ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063083c1fce1461004e578063152c3db71461006357806319585e1a1461008d5780632d36a6d3146100ae575b5f5ffd5b61006161005c366004611158565b6100c1565b005b6100766100713660046111ed565b6102b7565b6040516100849291906112a8565b60405180910390f35b6100a061009b3660046112d5565b61054b565b6040516100849291906113d0565b6100766100bc366004611445565b6107ef565b6100cc8285836109f5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480156101955750604051637d2d278360e11b81526001600160a01b0384169063fa5a4f0690610154907f0000000000000000000000000000000000000000000000000000000000000000906004016114a8565b602060405180830381865afa15801561016f573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019391906114d0565b155b156101c9576101c57f00000000000000000000000000000000000000000000000000000000000000005f83610a61565b5f91505b6101d38284610b1e565b5f806001600160a01b03808616908516156101ee575f6101f0565b835b6040513060248201526001600160a01b0387166044820152606481018690525f608482015260a40160408051601f198184030181529181526020820180516001600160e01b03166320e8c56560e01b1790525161024d91906114f0565b5f6040518083038185875af1925050503d805f8114610287576040519150601f19603f3d011682016040523d82523d5f602084013e61028c565b606091505b5091509150818160405163032695f960e31b81526004016102ae92919061150b565b60405180910390fd5b6060808584146102fb5760405162461bcd60e51b815260206004820152600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b60448201526064016102ae565b836001600160401b0381111561031357610313611525565b60405190808252806020026020018201604052801561033c578160200160208202803683370190505b509150836001600160401b0381111561035757610357611525565b604051908082528060200260200182016040528015610380578160200160208202803683370190505b5090505f5b848110156105405787878281811061039f5761039f611539565b90506020020160208101906103b4919061154d565b6001600160a01b03166370a082318787848181106103d4576103d4611539565b90506020020160208101906103e9919061154d565b6040518263ffffffff1660e01b815260040161040591906114a8565b602060405180830381865afa158015610420573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104449190611568565b83828151811061045657610456611539565b60200260200101818152505087878281811061047457610474611539565b9050602002016020810190610489919061154d565b6001600160a01b031663dd62ed3e8787848181106104a9576104a9611539565b90506020020160208101906104be919061154d565b866040518363ffffffff1660e01b81526004016104dc92919061157f565b602060405180830381865afa1580156104f7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051b9190611568565b82828151811061052d5761052d611539565b6020908102919091010152600101610385565b509550959350505050565b6060805f8888905090505f8a6001600160a01b031663afd27bf56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610592573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b69190611599565b9050816001600160401b038111156105d0576105d0611525565b6040519080825280602002602001820160405280156105f9578160200160208202803683370190505b509350816001600160401b0381111561061457610614611525565b60405190808252806020026020018201604052801561064757816020015b60608152602001906001900390816106325790505b5092505f5b828110156107e0575f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163063083c1fce8e8e8681811061069757610697611539565b90506020020160208101906106ac919061154d565b868e8e888181106106bf576106bf611539565b90506020020160208101906106d4919061154d565b8d8d898181106106e6576106e6611539565b6040516001600160a01b039687166024820152948616604486015292909416606484015260209091020135608482015260a401905060408051601f198184030181529181526020820180516001600160e01b031660e09490941b93909317909252905161075392506114f0565b5f60405180830381855af49150503d805f811461078b576040519150601f19603f3d011682016040523d82523d5f602084013e610790565b606091505b5091505061079d81610bd9565b8784815181106107af576107af611539565b602002602001018785815181106107c8576107c8611539565b6020908102919091010191909152525060010161064c565b50505097509795505050505050565b606080836001600160401b0381111561080a5761080a611525565b604051908082528060200260200182016040528015610833578160200160208202803683370190505b509150836001600160401b0381111561084e5761084e611525565b604051908082528060200260200182016040528015610877578160200160208202803683370190505b5090505f5b848110156109eb57866001600160a01b03166370a082318787848181106108a5576108a5611539565b90506020020160208101906108ba919061154d565b6040518263ffffffff1660e01b81526004016108d691906114a8565b602060405180830381865afa1580156108f1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109159190611568565b83828151811061092757610927611539565b602002602001018181525050866001600160a01b031663dd62ed3e87878481811061095457610954611539565b9050602002016020810190610969919061154d565b866040518363ffffffff1660e01b815260040161098792919061157f565b602060405180830381865afa1580156109a2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c69190611568565b8282815181106109d8576109d8611539565b602090810291909101015260010161087c565b5094509492505050565b6001600160a01b038316610a4657803414610a415760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b60448201526064016102ae565b505050565b8015610a4157610a416001600160a01b038416833084610c73565b6001600160a01b038316610ac457816001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004015f604051808303818588803b158015610aa8575f5ffd5b505af1158015610aba573d5f5f3e3d5ffd5b5050505050505050565b604051632e1a7d4d60e01b8152600481018290526001600160a01b03841690632e1a7d4d906024015f604051808303815f87803b158015610b03575f5ffd5b505af1158015610b15573d5f5f3e3d5ffd5b50505050505050565b6001600160a01b038216610b30575050565b610b4260026001600160601b036115c8565b6001600160601b0316826001600160a01b031663dd62ed3e30846040518363ffffffff1660e01b8152600401610b7992919061157f565b602060405180830381865afa158015610b94573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb89190611568565b1015610bd557610bc982825f610cd3565b610bd582825f19610cd3565b5050565b5f60606004835110158015610c06575063032695f960e31b610bfa84611602565b6001600160e01b031916145b610c1257610c12611640565b5f5f610c2c856004808851610c279190611654565b610dd8565b806020019051810190610c3f919061166d565b915091508115610c645780806020019051810190610c5d9190611568565b9350610c6c565b5f1993508092505b5050915091565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610ccd908590610ee4565b50505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291515f92839290871691610d2e91906114f0565b5f604051808303815f865af19150503d805f8114610d67576040519150601f19603f3d011682016040523d82523d5f602084013e610d6c565b606091505b5091509150818015610d96575080511580610d96575080806020019051810190610d9691906114d0565b610dd15760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b60448201526064016102ae565b5050505050565b606081610de681601f61172e565b1015610e255760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016102ae565b610e2f828461172e565b84511015610e735760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016102ae565b606082158015610e915760405191505f825260208201604052610edb565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015610eca578051835260209283019201610eb2565b5050858452601f01601f1916604052505b50949350505050565b5f610f38826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610fb79092919063ffffffff16565b905080515f1480610f58575080806020019051810190610f5891906114d0565b610a415760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102ae565b6060610fc584845f85610fcd565b949350505050565b60608247101561102e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016102ae565b5f5f866001600160a01b0316858760405161104991906114f0565b5f6040518083038185875af1925050503d805f8114611083576040519150601f19603f3d011682016040523d82523d5f602084013e611088565b606091505b5091509150611099878383876110a4565b979650505050505050565b606083156111125782515f0361110b576001600160a01b0385163b61110b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102ae565b5081610fc5565b610fc583838151156111275781518083602001fd5b8060405162461bcd60e51b81526004016102ae9190611741565b6001600160a01b0381168114611155575f5ffd5b50565b5f5f5f5f6080858703121561116b575f5ffd5b843561117681611141565b9350602085013561118681611141565b9250604085013561119681611141565b9396929550929360600135925050565b5f5f83601f8401126111b6575f5ffd5b5081356001600160401b038111156111cc575f5ffd5b6020830191508360208260051b85010111156111e6575f5ffd5b9250929050565b5f5f5f5f5f60608688031215611201575f5ffd5b85356001600160401b03811115611216575f5ffd5b611222888289016111a6565b90965094505060208601356001600160401b03811115611240575f5ffd5b61124c888289016111a6565b909450925050604086013561126081611141565b809150509295509295909350565b5f8151808452602084019350602083015f5b8281101561129e578151865260209586019590910190600101611280565b5093949350505050565b604081525f6112ba604083018561126e565b82810360208401526112cc818561126e565b95945050505050565b5f5f5f5f5f5f5f6080888a0312156112eb575f5ffd5b87356112f681611141565b965060208801356001600160401b03811115611310575f5ffd5b61131c8a828b016111a6565b90975095505060408801356001600160401b0381111561133a575f5ffd5b6113468a828b016111a6565b90955093505060608801356001600160401b03811115611364575f5ffd5b6113708a828b016111a6565b989b979a50959850939692959293505050565b5f5b8381101561139d578181015183820152602001611385565b50505f910152565b5f81518084526113bc816020860160208601611383565b601f01601f19169290920160200192915050565b604081525f6113e2604083018561126e565b828103602084015280845180835260208301915060208160051b840101602087015f5b8381101561143757601f198684030185526114218383516113a5565b6020958601959093509190910190600101611405565b509098975050505050505050565b5f5f5f5f60608587031215611458575f5ffd5b843561146381611141565b935060208501356001600160401b0381111561147d575f5ffd5b611489878288016111a6565b909450925050604085013561149d81611141565b939692955090935050565b6001600160a01b0391909116815260200190565b805180151581146114cb575f5ffd5b919050565b5f602082840312156114e0575f5ffd5b6114e9826114bc565b9392505050565b5f8251611501818460208701611383565b9190910192915050565b8215158152604060208201525f610fc560408301846113a5565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561155d575f5ffd5b81356114e981611141565b5f60208284031215611578575f5ffd5b5051919050565b6001600160a01b0392831681529116602082015260400190565b5f602082840312156115a9575f5ffd5b81516114e981611141565b634e487b7160e01b5f52601160045260245ffd5b5f6001600160601b038316806115ec57634e487b7160e01b5f52601260045260245ffd5b6001600160601b03929092169190910492915050565b805160208201516001600160e01b0319811691906004821015611639576001600160e01b0319600483900360031b81901b82161692505b5050919050565b634e487b7160e01b5f52600160045260245ffd5b81810381811115611667576116676115b4565b92915050565b5f5f6040838503121561167e575f5ffd5b611687836114bc565b60208401519092506001600160401b038111156116a2575f5ffd5b8301601f810185136116b2575f5ffd5b80516001600160401b038111156116cb576116cb611525565b604051601f8201601f19908116603f011681016001600160401b03811182821017156116f9576116f9611525565b604052818152828201602001871015611710575f5ffd5b611721826020830160208601611383565b8093505050509250929050565b80820180821115611667576116676115b4565b602081525f6114e960208301846113a556fea264697066735822122023a08e89220583a3672157545eea13219602e8672090f07e6cb21a6e1d1cfa8b64736f6c634300081e0033";
177
+ "0x60c060405234801561000f575f5ffd5b5060405161181938038061181983398101604081905261002e91610043565b6001600160a01b03166080523060a052610070565b5f60208284031215610053575f5ffd5b81516001600160a01b0381168114610069575f5ffd5b9392505050565b60805160a05161177b61009e5f395f61065f01525f818160ce0152818161012c015261019f015261177b5ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063083c1fce1461004e578063152c3db71461006357806319585e1a1461008d5780632d36a6d3146100ae575b5f5ffd5b61006161005c36600461115e565b6100c1565b005b6100766100713660046111f3565b6102b7565b6040516100849291906112ae565b60405180910390f35b6100a061009b3660046112db565b61054b565b6040516100849291906113d6565b6100766100bc36600461144b565b6107ef565b6100cc8285836109f5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480156101955750604051637d2d278360e11b81526001600160a01b0384169063fa5a4f0690610154907f0000000000000000000000000000000000000000000000000000000000000000906004016114ae565b602060405180830381865afa15801561016f573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019391906114d6565b155b156101c9576101c57f00000000000000000000000000000000000000000000000000000000000000005f83610a61565b5f91505b6101d38284610b1e565b5f806001600160a01b03808616908516156101ee575f6101f0565b835b6040513060248201526001600160a01b0387166044820152606481018690525f608482015260a40160408051601f198184030181529181526020820180516001600160e01b03166320e8c56560e01b1790525161024d91906114f6565b5f6040518083038185875af1925050503d805f8114610287576040519150601f19603f3d011682016040523d82523d5f602084013e61028c565b606091505b5091509150818160405163032695f960e31b81526004016102ae929190611511565b60405180910390fd5b6060808584146102fb5760405162461bcd60e51b815260206004820152600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b60448201526064016102ae565b836001600160401b038111156103135761031361152b565b60405190808252806020026020018201604052801561033c578160200160208202803683370190505b509150836001600160401b038111156103575761035761152b565b604051908082528060200260200182016040528015610380578160200160208202803683370190505b5090505f5b848110156105405787878281811061039f5761039f61153f565b90506020020160208101906103b49190611553565b6001600160a01b03166370a082318787848181106103d4576103d461153f565b90506020020160208101906103e99190611553565b6040518263ffffffff1660e01b815260040161040591906114ae565b602060405180830381865afa158015610420573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610444919061156e565b8382815181106104565761045661153f565b6020026020010181815250508787828181106104745761047461153f565b90506020020160208101906104899190611553565b6001600160a01b031663dd62ed3e8787848181106104a9576104a961153f565b90506020020160208101906104be9190611553565b866040518363ffffffff1660e01b81526004016104dc929190611585565b602060405180830381865afa1580156104f7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051b919061156e565b82828151811061052d5761052d61153f565b6020908102919091010152600101610385565b509550959350505050565b6060805f8888905090505f8a6001600160a01b031663afd27bf56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610592573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b6919061159f565b9050816001600160401b038111156105d0576105d061152b565b6040519080825280602002602001820160405280156105f9578160200160208202803683370190505b509350816001600160401b038111156106145761061461152b565b60405190808252806020026020018201604052801561064757816020015b60608152602001906001900390816106325790505b5092505f5b828110156107e0575f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163063083c1fce8e8e868181106106975761069761153f565b90506020020160208101906106ac9190611553565b868e8e888181106106bf576106bf61153f565b90506020020160208101906106d49190611553565b8d8d898181106106e6576106e661153f565b6040516001600160a01b039687166024820152948616604486015292909416606484015260209091020135608482015260a401905060408051601f198184030181529181526020820180516001600160e01b031660e09490941b93909317909252905161075392506114f6565b5f60405180830381855af49150503d805f811461078b576040519150601f19603f3d011682016040523d82523d5f602084013e610790565b606091505b5091505061079d81610bd9565b8784815181106107af576107af61153f565b602002602001018785815181106107c8576107c861153f565b6020908102919091010191909152525060010161064c565b50505097509795505050505050565b606080836001600160401b0381111561080a5761080a61152b565b604051908082528060200260200182016040528015610833578160200160208202803683370190505b509150836001600160401b0381111561084e5761084e61152b565b604051908082528060200260200182016040528015610877578160200160208202803683370190505b5090505f5b848110156109eb57866001600160a01b03166370a082318787848181106108a5576108a561153f565b90506020020160208101906108ba9190611553565b6040518263ffffffff1660e01b81526004016108d691906114ae565b602060405180830381865afa1580156108f1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610915919061156e565b8382815181106109275761092761153f565b602002602001018181525050866001600160a01b031663dd62ed3e8787848181106109545761095461153f565b90506020020160208101906109699190611553565b866040518363ffffffff1660e01b8152600401610987929190611585565b602060405180830381865afa1580156109a2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c6919061156e565b8282815181106109d8576109d861153f565b602090810291909101015260010161087c565b5094509492505050565b6001600160a01b038316610a4657803414610a415760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b60448201526064016102ae565b505050565b8015610a4157610a416001600160a01b038416833084610c79565b6001600160a01b038316610ac457816001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004015f604051808303818588803b158015610aa8575f5ffd5b505af1158015610aba573d5f5f3e3d5ffd5b5050505050505050565b604051632e1a7d4d60e01b8152600481018290526001600160a01b03841690632e1a7d4d906024015f604051808303815f87803b158015610b03575f5ffd5b505af1158015610b15573d5f5f3e3d5ffd5b50505050505050565b6001600160a01b038216610b30575050565b610b4260026001600160601b036115ce565b6001600160601b0316826001600160a01b031663dd62ed3e30846040518363ffffffff1660e01b8152600401610b79929190611585565b602060405180830381865afa158015610b94573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb8919061156e565b1015610bd557610bc982825f610cd9565b610bd582825f19610cd9565b5050565b5f60605f6004845110158015610c07575063032695f960e31b610bfb85611608565b6001600160e01b031916145b905080610c1757505f1993915050565b5f5f610c31866004808951610c2c9190611646565b610dde565b806020019051810190610c44919061165f565b915091508115610c695780806020019051810190610c62919061156e565b9450610c71565b5f1994508093505b505050915091565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610cd3908590610eea565b50505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291515f92839290871691610d3491906114f6565b5f604051808303815f865af19150503d805f8114610d6d576040519150601f19603f3d011682016040523d82523d5f602084013e610d72565b606091505b5091509150818015610d9c575080511580610d9c575080806020019051810190610d9c91906114d6565b610dd75760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b60448201526064016102ae565b5050505050565b606081610dec81601f611720565b1015610e2b5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016102ae565b610e358284611720565b84511015610e795760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016102ae565b606082158015610e975760405191505f825260208201604052610ee1565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015610ed0578051835260209283019201610eb8565b5050858452601f01601f1916604052505b50949350505050565b5f610f3e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610fbd9092919063ffffffff16565b905080515f1480610f5e575080806020019051810190610f5e91906114d6565b610a415760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102ae565b6060610fcb84845f85610fd3565b949350505050565b6060824710156110345760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016102ae565b5f5f866001600160a01b0316858760405161104f91906114f6565b5f6040518083038185875af1925050503d805f8114611089576040519150601f19603f3d011682016040523d82523d5f602084013e61108e565b606091505b509150915061109f878383876110aa565b979650505050505050565b606083156111185782515f03611111576001600160a01b0385163b6111115760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102ae565b5081610fcb565b610fcb838381511561112d5781518083602001fd5b8060405162461bcd60e51b81526004016102ae9190611733565b6001600160a01b038116811461115b575f5ffd5b50565b5f5f5f5f60808587031215611171575f5ffd5b843561117c81611147565b9350602085013561118c81611147565b9250604085013561119c81611147565b9396929550929360600135925050565b5f5f83601f8401126111bc575f5ffd5b5081356001600160401b038111156111d2575f5ffd5b6020830191508360208260051b85010111156111ec575f5ffd5b9250929050565b5f5f5f5f5f60608688031215611207575f5ffd5b85356001600160401b0381111561121c575f5ffd5b611228888289016111ac565b90965094505060208601356001600160401b03811115611246575f5ffd5b611252888289016111ac565b909450925050604086013561126681611147565b809150509295509295909350565b5f8151808452602084019350602083015f5b828110156112a4578151865260209586019590910190600101611286565b5093949350505050565b604081525f6112c06040830185611274565b82810360208401526112d28185611274565b95945050505050565b5f5f5f5f5f5f5f6080888a0312156112f1575f5ffd5b87356112fc81611147565b965060208801356001600160401b03811115611316575f5ffd5b6113228a828b016111ac565b90975095505060408801356001600160401b03811115611340575f5ffd5b61134c8a828b016111ac565b90955093505060608801356001600160401b0381111561136a575f5ffd5b6113768a828b016111ac565b989b979a50959850939692959293505050565b5f5b838110156113a357818101518382015260200161138b565b50505f910152565b5f81518084526113c2816020860160208601611389565b601f01601f19169290920160200192915050565b604081525f6113e86040830185611274565b828103602084015280845180835260208301915060208160051b840101602087015f5b8381101561143d57601f198684030185526114278383516113ab565b602095860195909350919091019060010161140b565b509098975050505050505050565b5f5f5f5f6060858703121561145e575f5ffd5b843561146981611147565b935060208501356001600160401b03811115611483575f5ffd5b61148f878288016111ac565b90945092505060408501356114a381611147565b939692955090935050565b6001600160a01b0391909116815260200190565b805180151581146114d1575f5ffd5b919050565b5f602082840312156114e6575f5ffd5b6114ef826114c2565b9392505050565b5f8251611507818460208701611389565b9190910192915050565b8215158152604060208201525f610fcb60408301846113ab565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611563575f5ffd5b81356114ef81611147565b5f6020828403121561157e575f5ffd5b5051919050565b6001600160a01b0392831681529116602082015260400190565b5f602082840312156115af575f5ffd5b81516114ef81611147565b634e487b7160e01b5f52601160045260245ffd5b5f6001600160601b038316806115f257634e487b7160e01b5f52601260045260245ffd5b6001600160601b03929092169190910492915050565b805160208201516001600160e01b031981169190600482101561163f576001600160e01b0319600483900360031b81901b82161692505b5050919050565b81810381811115611659576116596115ba565b92915050565b5f5f60408385031215611670575f5ffd5b611679836114c2565b60208401519092506001600160401b03811115611694575f5ffd5b8301601f810185136116a4575f5ffd5b80516001600160401b038111156116bd576116bd61152b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156116eb576116eb61152b565b604052818152828201602001871015611702575f5ffd5b611713826020830160208601611389565b8093505050509250929050565b80820180821115611659576116596115ba565b602081525f6114ef60208301846113ab56fea2646970667358221220b5350eb25b356779cb81df1232c8d83dd901a012589054945dc048804c83058e64736f6c634300081e0033";
178
178
 
179
179
  type LimitBackendHelperV2ConstructorParams =
180
180
  | [signer?: Signer]
@@ -0,0 +1,145 @@
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
+ PendleLinearDiscountOracleWrapper,
8
+ PendleLinearDiscountOracleWrapperInterface,
9
+ } from "../PendleLinearDiscountOracleWrapper";
10
+
11
+ const _abi = [
12
+ {
13
+ inputs: [
14
+ {
15
+ internalType: "address",
16
+ name: "_innerOracle",
17
+ type: "address",
18
+ },
19
+ ],
20
+ stateMutability: "nonpayable",
21
+ type: "constructor",
22
+ },
23
+ {
24
+ inputs: [],
25
+ name: "decimals",
26
+ outputs: [
27
+ {
28
+ internalType: "uint8",
29
+ name: "",
30
+ type: "uint8",
31
+ },
32
+ ],
33
+ stateMutability: "view",
34
+ type: "function",
35
+ },
36
+ {
37
+ inputs: [],
38
+ name: "innerOracle",
39
+ outputs: [
40
+ {
41
+ internalType: "contract IPChainlinkOracleEssential",
42
+ name: "",
43
+ type: "address",
44
+ },
45
+ ],
46
+ stateMutability: "view",
47
+ type: "function",
48
+ },
49
+ {
50
+ inputs: [],
51
+ name: "latestRoundData",
52
+ outputs: [
53
+ {
54
+ internalType: "uint80",
55
+ name: "roundId",
56
+ type: "uint80",
57
+ },
58
+ {
59
+ internalType: "int256",
60
+ name: "answer",
61
+ type: "int256",
62
+ },
63
+ {
64
+ internalType: "uint256",
65
+ name: "startedAt",
66
+ type: "uint256",
67
+ },
68
+ {
69
+ internalType: "uint256",
70
+ name: "updatedAt",
71
+ type: "uint256",
72
+ },
73
+ {
74
+ internalType: "uint80",
75
+ name: "answeredInRound",
76
+ type: "uint80",
77
+ },
78
+ ],
79
+ stateMutability: "view",
80
+ type: "function",
81
+ },
82
+ ];
83
+
84
+ const _bytecode =
85
+ "0x60a0604052348015600e575f5ffd5b5060405161034b38038061034b833981016040819052602b91603b565b6001600160a01b03166080526066565b5f60208284031215604a575f5ffd5b81516001600160a01b0381168114605f575f5ffd5b9392505050565b6080516102c161008a5f395f818160670152818160e0015261016a01526102c15ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c8063313ce56714610043578063ea56d3db14610062578063feaf968c146100a1575b5f5ffd5b61004b6100dd565b60405160ff90911681526020015b60405180910390f35b6100897f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610059565b6100a9610163565b604080516001600160501b03968716815260208101959095528401929092526060830152909116608082015260a001610059565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561013a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061015e91906101fb565b905090565b5f5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156101c4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e8919061023d565b9399929850909650429550919350915050565b5f6020828403121561020b575f5ffd5b815160ff8116811461021b575f5ffd5b9392505050565b80516001600160501b0381168114610238575f5ffd5b919050565b5f5f5f5f5f60a08688031215610251575f5ffd5b61025a86610222565b6020870151604088015160608901519297509095509350915061027f60808701610222565b9050929550929590935056fea26469706673582212201f58ad8205559fe56c0de10f7f025b05cd87354cb87a5fb723c8bfb1cc29268e64736f6c634300081e0033";
86
+
87
+ type PendleLinearDiscountOracleWrapperConstructorParams =
88
+ | [signer?: Signer]
89
+ | ConstructorParameters<typeof ContractFactory>;
90
+
91
+ const isSuperArgs = (
92
+ xs: PendleLinearDiscountOracleWrapperConstructorParams
93
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
94
+
95
+ export class PendleLinearDiscountOracleWrapper__factory extends ContractFactory {
96
+ constructor(...args: PendleLinearDiscountOracleWrapperConstructorParams) {
97
+ if (isSuperArgs(args)) {
98
+ super(...args);
99
+ } else {
100
+ super(_abi, _bytecode, args[0]);
101
+ }
102
+ this.contractName = "PendleLinearDiscountOracleWrapper";
103
+ }
104
+
105
+ deploy(
106
+ _innerOracle: string,
107
+ overrides?: Overrides & { from?: string | Promise<string> }
108
+ ): Promise<PendleLinearDiscountOracleWrapper> {
109
+ return super.deploy(
110
+ _innerOracle,
111
+ overrides || {}
112
+ ) as Promise<PendleLinearDiscountOracleWrapper>;
113
+ }
114
+ getDeployTransaction(
115
+ _innerOracle: string,
116
+ overrides?: Overrides & { from?: string | Promise<string> }
117
+ ): TransactionRequest {
118
+ return super.getDeployTransaction(_innerOracle, overrides || {});
119
+ }
120
+ attach(address: string): PendleLinearDiscountOracleWrapper {
121
+ return super.attach(address) as PendleLinearDiscountOracleWrapper;
122
+ }
123
+ connect(signer: Signer): PendleLinearDiscountOracleWrapper__factory {
124
+ return super.connect(signer) as PendleLinearDiscountOracleWrapper__factory;
125
+ }
126
+ static readonly contractName: "PendleLinearDiscountOracleWrapper";
127
+ public readonly contractName: "PendleLinearDiscountOracleWrapper";
128
+ static readonly bytecode = _bytecode;
129
+ static readonly abi = _abi;
130
+ static createInterface(): PendleLinearDiscountOracleWrapperInterface {
131
+ return new utils.Interface(
132
+ _abi
133
+ ) as PendleLinearDiscountOracleWrapperInterface;
134
+ }
135
+ static connect(
136
+ address: string,
137
+ signerOrProvider: Signer | Provider
138
+ ): PendleLinearDiscountOracleWrapper {
139
+ return new Contract(
140
+ address,
141
+ _abi,
142
+ signerOrProvider
143
+ ) as PendleLinearDiscountOracleWrapper;
144
+ }
145
+ }