@pendle/core-v2 3.0.0-beta-4 → 3.0.0-beta-6

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.
@@ -0,0 +1,126 @@
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
+ PayableOverrides,
12
+ PopulatedTransaction,
13
+ Signer,
14
+ utils,
15
+ } from "ethers";
16
+ import { FunctionFragment, Result } from "@ethersproject/abi";
17
+ import { Listener, Provider } from "@ethersproject/providers";
18
+ import type {
19
+ TypedEventFilter,
20
+ TypedEvent,
21
+ TypedListener,
22
+ OnEvent,
23
+ } from "./common";
24
+
25
+ export type SwapDataStruct = {
26
+ swapType: BigNumberish;
27
+ extRouter: string;
28
+ extCalldata: BytesLike;
29
+ needScale: boolean;
30
+ };
31
+
32
+ export type SwapDataStructOutput = [number, string, string, boolean] & {
33
+ swapType: number;
34
+ extRouter: string;
35
+ extCalldata: string;
36
+ needScale: boolean;
37
+ };
38
+
39
+ export interface PendleSwapBaseInterface extends utils.Interface {
40
+ contractName: "PendleSwapBase";
41
+ functions: {
42
+ "swap(address,uint256,(uint8,address,bytes,bool))": FunctionFragment;
43
+ };
44
+
45
+ encodeFunctionData(
46
+ functionFragment: "swap",
47
+ values: [string, BigNumberish, SwapDataStruct]
48
+ ): string;
49
+
50
+ decodeFunctionResult(functionFragment: "swap", data: BytesLike): Result;
51
+
52
+ events: {};
53
+ }
54
+
55
+ export interface PendleSwapBase extends BaseContract {
56
+ contractName: "PendleSwapBase";
57
+ connect(signerOrProvider: Signer | Provider | string): this;
58
+ attach(addressOrName: string): this;
59
+ deployed(): Promise<this>;
60
+
61
+ interface: PendleSwapBaseInterface;
62
+
63
+ queryFilter<TEvent extends TypedEvent>(
64
+ event: TypedEventFilter<TEvent>,
65
+ fromBlockOrBlockhash?: string | number | undefined,
66
+ toBlock?: string | number | undefined
67
+ ): Promise<Array<TEvent>>;
68
+
69
+ listeners<TEvent extends TypedEvent>(
70
+ eventFilter?: TypedEventFilter<TEvent>
71
+ ): Array<TypedListener<TEvent>>;
72
+ listeners(eventName?: string): Array<Listener>;
73
+ removeAllListeners<TEvent extends TypedEvent>(
74
+ eventFilter: TypedEventFilter<TEvent>
75
+ ): this;
76
+ removeAllListeners(eventName?: string): this;
77
+ off: OnEvent<this>;
78
+ on: OnEvent<this>;
79
+ once: OnEvent<this>;
80
+ removeListener: OnEvent<this>;
81
+
82
+ functions: {
83
+ swap(
84
+ tokenIn: string,
85
+ amountIn: BigNumberish,
86
+ data: SwapDataStruct,
87
+ overrides?: PayableOverrides & { from?: string | Promise<string> }
88
+ ): Promise<ContractTransaction>;
89
+ };
90
+
91
+ swap(
92
+ tokenIn: string,
93
+ amountIn: BigNumberish,
94
+ data: SwapDataStruct,
95
+ overrides?: PayableOverrides & { from?: string | Promise<string> }
96
+ ): Promise<ContractTransaction>;
97
+
98
+ callStatic: {
99
+ swap(
100
+ tokenIn: string,
101
+ amountIn: BigNumberish,
102
+ data: SwapDataStruct,
103
+ overrides?: CallOverrides
104
+ ): Promise<void>;
105
+ };
106
+
107
+ filters: {};
108
+
109
+ estimateGas: {
110
+ swap(
111
+ tokenIn: string,
112
+ amountIn: BigNumberish,
113
+ data: SwapDataStruct,
114
+ overrides?: PayableOverrides & { from?: string | Promise<string> }
115
+ ): Promise<BigNumber>;
116
+ };
117
+
118
+ populateTransaction: {
119
+ swap(
120
+ tokenIn: string,
121
+ amountIn: BigNumberish,
122
+ data: SwapDataStruct,
123
+ overrides?: PayableOverrides & { from?: string | Promise<string> }
124
+ ): Promise<PopulatedTransaction>;
125
+ };
126
+ }
@@ -0,0 +1,126 @@
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
+ PayableOverrides,
12
+ PopulatedTransaction,
13
+ Signer,
14
+ utils,
15
+ } from "ethers";
16
+ import { FunctionFragment, Result } from "@ethersproject/abi";
17
+ import { Listener, Provider } from "@ethersproject/providers";
18
+ import type {
19
+ TypedEventFilter,
20
+ TypedEvent,
21
+ TypedListener,
22
+ OnEvent,
23
+ } from "./common";
24
+
25
+ export type SwapDataStruct = {
26
+ swapType: BigNumberish;
27
+ extRouter: string;
28
+ extCalldata: BytesLike;
29
+ needScale: boolean;
30
+ };
31
+
32
+ export type SwapDataStructOutput = [number, string, string, boolean] & {
33
+ swapType: number;
34
+ extRouter: string;
35
+ extCalldata: string;
36
+ needScale: boolean;
37
+ };
38
+
39
+ export interface PendleSwapL1Interface extends utils.Interface {
40
+ contractName: "PendleSwapL1";
41
+ functions: {
42
+ "swap(address,uint256,(uint8,address,bytes,bool))": FunctionFragment;
43
+ };
44
+
45
+ encodeFunctionData(
46
+ functionFragment: "swap",
47
+ values: [string, BigNumberish, SwapDataStruct]
48
+ ): string;
49
+
50
+ decodeFunctionResult(functionFragment: "swap", data: BytesLike): Result;
51
+
52
+ events: {};
53
+ }
54
+
55
+ export interface PendleSwapL1 extends BaseContract {
56
+ contractName: "PendleSwapL1";
57
+ connect(signerOrProvider: Signer | Provider | string): this;
58
+ attach(addressOrName: string): this;
59
+ deployed(): Promise<this>;
60
+
61
+ interface: PendleSwapL1Interface;
62
+
63
+ queryFilter<TEvent extends TypedEvent>(
64
+ event: TypedEventFilter<TEvent>,
65
+ fromBlockOrBlockhash?: string | number | undefined,
66
+ toBlock?: string | number | undefined
67
+ ): Promise<Array<TEvent>>;
68
+
69
+ listeners<TEvent extends TypedEvent>(
70
+ eventFilter?: TypedEventFilter<TEvent>
71
+ ): Array<TypedListener<TEvent>>;
72
+ listeners(eventName?: string): Array<Listener>;
73
+ removeAllListeners<TEvent extends TypedEvent>(
74
+ eventFilter: TypedEventFilter<TEvent>
75
+ ): this;
76
+ removeAllListeners(eventName?: string): this;
77
+ off: OnEvent<this>;
78
+ on: OnEvent<this>;
79
+ once: OnEvent<this>;
80
+ removeListener: OnEvent<this>;
81
+
82
+ functions: {
83
+ swap(
84
+ tokenIn: string,
85
+ amountIn: BigNumberish,
86
+ data: SwapDataStruct,
87
+ overrides?: PayableOverrides & { from?: string | Promise<string> }
88
+ ): Promise<ContractTransaction>;
89
+ };
90
+
91
+ swap(
92
+ tokenIn: string,
93
+ amountIn: BigNumberish,
94
+ data: SwapDataStruct,
95
+ overrides?: PayableOverrides & { from?: string | Promise<string> }
96
+ ): Promise<ContractTransaction>;
97
+
98
+ callStatic: {
99
+ swap(
100
+ tokenIn: string,
101
+ amountIn: BigNumberish,
102
+ data: SwapDataStruct,
103
+ overrides?: CallOverrides
104
+ ): Promise<void>;
105
+ };
106
+
107
+ filters: {};
108
+
109
+ estimateGas: {
110
+ swap(
111
+ tokenIn: string,
112
+ amountIn: BigNumberish,
113
+ data: SwapDataStruct,
114
+ overrides?: PayableOverrides & { from?: string | Promise<string> }
115
+ ): Promise<BigNumber>;
116
+ };
117
+
118
+ populateTransaction: {
119
+ swap(
120
+ tokenIn: string,
121
+ amountIn: BigNumberish,
122
+ data: SwapDataStruct,
123
+ overrides?: PayableOverrides & { from?: string | Promise<string> }
124
+ ): Promise<PopulatedTransaction>;
125
+ };
126
+ }
@@ -0,0 +1,126 @@
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
+ PayableOverrides,
12
+ PopulatedTransaction,
13
+ Signer,
14
+ utils,
15
+ } from "ethers";
16
+ import { FunctionFragment, Result } from "@ethersproject/abi";
17
+ import { Listener, Provider } from "@ethersproject/providers";
18
+ import type {
19
+ TypedEventFilter,
20
+ TypedEvent,
21
+ TypedListener,
22
+ OnEvent,
23
+ } from "./common";
24
+
25
+ export type SwapDataStruct = {
26
+ swapType: BigNumberish;
27
+ extRouter: string;
28
+ extCalldata: BytesLike;
29
+ needScale: boolean;
30
+ };
31
+
32
+ export type SwapDataStructOutput = [number, string, string, boolean] & {
33
+ swapType: number;
34
+ extRouter: string;
35
+ extCalldata: string;
36
+ needScale: boolean;
37
+ };
38
+
39
+ export interface PendleSwapL2Interface extends utils.Interface {
40
+ contractName: "PendleSwapL2";
41
+ functions: {
42
+ "swap(address,uint256,(uint8,address,bytes,bool))": FunctionFragment;
43
+ };
44
+
45
+ encodeFunctionData(
46
+ functionFragment: "swap",
47
+ values: [string, BigNumberish, SwapDataStruct]
48
+ ): string;
49
+
50
+ decodeFunctionResult(functionFragment: "swap", data: BytesLike): Result;
51
+
52
+ events: {};
53
+ }
54
+
55
+ export interface PendleSwapL2 extends BaseContract {
56
+ contractName: "PendleSwapL2";
57
+ connect(signerOrProvider: Signer | Provider | string): this;
58
+ attach(addressOrName: string): this;
59
+ deployed(): Promise<this>;
60
+
61
+ interface: PendleSwapL2Interface;
62
+
63
+ queryFilter<TEvent extends TypedEvent>(
64
+ event: TypedEventFilter<TEvent>,
65
+ fromBlockOrBlockhash?: string | number | undefined,
66
+ toBlock?: string | number | undefined
67
+ ): Promise<Array<TEvent>>;
68
+
69
+ listeners<TEvent extends TypedEvent>(
70
+ eventFilter?: TypedEventFilter<TEvent>
71
+ ): Array<TypedListener<TEvent>>;
72
+ listeners(eventName?: string): Array<Listener>;
73
+ removeAllListeners<TEvent extends TypedEvent>(
74
+ eventFilter: TypedEventFilter<TEvent>
75
+ ): this;
76
+ removeAllListeners(eventName?: string): this;
77
+ off: OnEvent<this>;
78
+ on: OnEvent<this>;
79
+ once: OnEvent<this>;
80
+ removeListener: OnEvent<this>;
81
+
82
+ functions: {
83
+ swap(
84
+ tokenIn: string,
85
+ amountIn: BigNumberish,
86
+ data: SwapDataStruct,
87
+ overrides?: PayableOverrides & { from?: string | Promise<string> }
88
+ ): Promise<ContractTransaction>;
89
+ };
90
+
91
+ swap(
92
+ tokenIn: string,
93
+ amountIn: BigNumberish,
94
+ data: SwapDataStruct,
95
+ overrides?: PayableOverrides & { from?: string | Promise<string> }
96
+ ): Promise<ContractTransaction>;
97
+
98
+ callStatic: {
99
+ swap(
100
+ tokenIn: string,
101
+ amountIn: BigNumberish,
102
+ data: SwapDataStruct,
103
+ overrides?: CallOverrides
104
+ ): Promise<void>;
105
+ };
106
+
107
+ filters: {};
108
+
109
+ estimateGas: {
110
+ swap(
111
+ tokenIn: string,
112
+ amountIn: BigNumberish,
113
+ data: SwapDataStruct,
114
+ overrides?: PayableOverrides & { from?: string | Promise<string> }
115
+ ): Promise<BigNumber>;
116
+ };
117
+
118
+ populateTransaction: {
119
+ swap(
120
+ tokenIn: string,
121
+ amountIn: BigNumberish,
122
+ data: SwapDataStruct,
123
+ overrides?: PayableOverrides & { from?: string | Promise<string> }
124
+ ): Promise<PopulatedTransaction>;
125
+ };
126
+ }
@@ -1038,7 +1038,7 @@ const _abi = [
1038
1038
  ];
1039
1039
 
1040
1040
  const _bytecode =
1041
- "0x60808060405234610016576123d5908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80631a8631b2146100e75780631cf0f536146100e25780632d8f9d8d146100dd5780632e071dc6146100d8578063339748cb146100d3578063339a5572146100ce57806347f1de22146100c95780635d3e105c146100c457806360fc8466146100bf578063657b87d8146100ba578063a89eba4a146100b5578063d0f42385146100b05763f7e375e8146100ab57600080fd5b611175565b611038565b610f55565b610e43565b610cc9565b610b52565b610964565b610782565b6105e8565b6104c5565b6103d8565b61031f565b610132565b6001600160a01b038116036100fd57565b600080fd5b60809060031901126100fd5760043561011a816100ec565b90602435610127816100ec565b906044359060643590565b346100fd5761014036610102565b60405163afd27bf560e01b81526001600160a01b039460209480871694919391928681600481895afa9182156102665761018892859260009161026b575b5089339116611caa565b60405163db74aa1560e01b81528581806101a68780600484016116ef565b03816000895af195861561026657600096610237575b505080851061021557507f52e05e4badd3463bad837f42fe3ba58c739d1b3081cff9bb6eb02a24034d455d61021195604051931692806101fe87339583610953565b0390a46040519081529081906020820190565b0390f35b60405163ca935dfd60e01b8152908190610233908760048401610953565b0390fd5b610257929650803d1061025f575b61024f81836102e1565b810190611608565b9338806101bc565b503d610245565b611395565b61028b9150893d8b11610291575b61028381836102e1565b810190611380565b3861017e565b503d610279565b634e487b7160e01b600052604160045260246000fd5b6001600160401b0381116102c157604052565b610298565b604081019081106001600160401b038211176102c157604052565b601f909101601f19168101906001600160401b038211908210176102c157604052565b6001600160401b0381116102c157601f01601f191660200190565b60203660031901126100fd576004356001600160401b0381116100fd57366023820112156100fd5780600401359061035682610304565b61036360405191826102e1565b828152602081019036602485850101116100fd576000602085829660248497018637830101525190305af46103966115ce565b6040805163269462bb60e21b8152921515600484015260248301528190610233906044830190610c10565b6001600160401b0381116102c15760051b60200190565b346100fd576020806003193601126100fd576004356001600160401b0381116100fd57366023820112156100fd57806004013590610415826103c1565b9161042360405193846102e1565b8083526024602084019160051b830101913683116100fd57602401905b82821061045257610450846113ef565b005b8480918335610460816100ec565b815201910190610440565b908160a09103126100fd5790565b9060806003198301126100fd57600435610492816100ec565b9160243561049f816100ec565b9160443591606435906001600160401b0382116100fd576104c29160040161046b565b90565b602061051f6104d336610479565b8094916104e66080839695960183611709565b356104f08161171e565b6104f981611728565b8061057b5750610508826114ac565b6105188884013580923390611d22565b8585611e5c565b927f71c7a44161eb32e4640f6c8f0586db5f1d2e03306e2c63bb2e0f7cd0a8fc690c81359361054d856100ec565b60018060a01b03906105708783604051948594169816968a3397013590846114b6565b0390a4604051908152f35b80610587600392611728565b036105c957610595826114ac565b6105a58884013580923390611d22565b6105c4816105b2856114ac565b6105be604087016114ac565b90611d53565b610518565b6105d282611a3b565b6105c460408301356105e3816100ec565b611b22565b346100fd576105f636610102565b604080516336501cf560e21b8152602095929491936001600160a01b03808416949391929091908881600481895afa80156102665782859161064493600091610765575b5085339116611caa565b8551630bc4ed8360e21b81528881600481895afa8015610266578491600091610738575b5015610726575b5050845163bcb7ea5d60e01b81529587878061068e87600483016116ad565b03816000895af196871561026657600097610707575b508087106106ea57507f31af33f80f4b396e3d4e42b38ecd3e022883a9bf689fd63f47afbe1d389cb6e7908551931692806106e188339583610953565b0390a451908152f35b85516305221cf360e11b8152908190610233908960048401610953565b61071f919750883d8a1161025f5761024f81836102e1565b95386106a4565b610731913387611caa565b388261066f565b61075891508a3d8c1161075e575b61075081836102e1565b8101906113da565b38610668565b503d610746565b61077c91508c8d3d106102915761028381836102e1565b3861063a565b346100fd5761079036610479565b9291906000608085016107ab6107a68288611709565b611748565b6107b481611728565b80610843575050506107c884828486611ee9565b925b602085013580851061082557507fcd34b6ac7e4b72ab30845649aef2f4fd41945ae2dc08f625be69738bbd0f9aa96020953593610806856100ec565b60018060a01b03906105708783604051948594169816963396846114b6565b60405163c5b5576d60e01b8152908190610233908760048401610953565b8061084f600392611728565b0361089457505061086284828430611ee9565b9261087c84610873604088016114ac565b6105be886114ac565b61088f848261088a886114ac565b611b7e565b6107ca565b606086016108c76108bb6108bb6108b58a888a6108b0886114ac565b611ee9565b936114ac565b6001600160a01b031690565b906108de6108d760408a016114ac565b9389611709565b92823b1561094f57604051630af6e08f60e21b8152949385939284928692849261090b9260048501611836565b03925af1801561026657610936575b506109276105e3856114ac565b9261088f848261088a886114ac565b80610943610949926102ae565b806117fd565b3861091a565b8480fd5b908152602081019190915260400190565b346100fd5761097236610479565b6040805163afd27bf560e01b81526001600160a01b0395602095939492938088169392908782600481885afa91821561026657600092610b33575b5085516336501cf560e21b81528881600481895afa8015610266578286916109e193600091610b16575b508c339116611caa565b8551630bc4ed8360e21b81528881600481895afa8015610266578591600091610af9575b5015610ae7575b5050845163bcb7ea5d60e01b8152878180610a2a85600483016116ad565b03816000895af197881561026657600098610ac8575b505060018710610aa9578697610a7d8761021198997f5f2e0499a3b6a21fd5e1fac44ac47c9aa7c3afa39076d67162a4993411d496da94866118e0565b9735610a88816100ec565b610a9c8a8a895194859416973397856114d4565b0390a45192839283610953565b84516305221cf360e11b81526004810188905260016024820152604490fd5b610adf929850803d1061025f5761024f81836102e1565b953880610a40565b610af2913387611caa565b3883610a0c565b610b1091508a3d8c1161075e5761075081836102e1565b38610a05565b610b2d91508c8d3d106102915761028381836102e1565b386109d7565b610b4b919250883d8a116102915761028381836102e1565b90386109ad565b60603660031901126100fd57600435610b6a816100ec565b6024356044356001600160401b0381116100fd576040610b91610ba592369060040161046b565b610b9a81611a3b565b01356105e3816100ec565b90808210610bc35750610bbb8183602094611b7e565b604051908152f35b60405163c5b5576d60e01b81529182916102339160048401610953565b9181601f840112156100fd578235916001600160401b0383116100fd576020808501948460051b0101116100fd57565b919082519283825260005b848110610c3c575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610c1b565b6020808201908083528351809252604092604081018260408560051b8401019601946000925b858410610c87575050505050505090565b909192939495968580610cb8600193603f1986820301885286838d5180511515845201519181858201520190610c10565b990194019401929594939190610c76565b6020806003193601126100fd576004356001600160401b0381116100fd57610cf5903690600401610be0565b90610cff826114f8565b9160009060005b818110610d1b57604051806102118782610c50565b610d2681838661156c565b8380610d348984018461158e565b90610d44604051809381936115c0565b0390305af4610d516115ce565b9181159081610d95575b50610d8e5790610d7a8392610d726001958a6113b7565b519015159052565b87610d8583896113b7565b51015201610d06565b8151828901fd5b610da79150610da3906115fe565b1590565b38610d5b565b60408101906040815282518092526060810160608360051b830101926020809501916000905b828210610e1657505050508281830391015281808451928381520193019160005b828110610e02575050505090565b835185529381019392810192600101610df4565b90919295948580610e33600193605f198982030186528a51610c10565b9798019493919091019101610dd3565b6040806003193601126100fd5760249060043582356001600160401b0381116100fd57610e74903690600401610be0565b91610e7e836103c1565b94610e8c60405196876102e1565b838652601f1980610e9c866103c1565b0160005b818110610f44575050610eb285611c29565b9560005b868110610ecc57604051806102118a8c83610dad565b80610f338760008088610f12610ee66001988f5a97611c5b565b9190610f068b519384926020840196630e787a9b60e11b88528401611c76565b038b81018352826102e1565b5190308cf4508b610f2b84610f256115ce565b926113b7565b525a90611c87565b610f3d828b6113b7565b5201610eb6565b806060602080938c01015201610ea0565b60a03660031901126100fd57600435610f6d816100ec565b602435610f79816100ec565b6044356001600160401b0381116100fd57610f9a602091369060040161046b565b9160a4610fb460643594610fad866100ec565b8330611752565b60405163769f8e5d60e01b81526001600160a01b0396871660048201526024810182905294861660448601526084803560648701526001908601529484928391600091165af190811561026657600091611019575b5061021160405192839283610953565b611032915060203d60201161025f5761024f81836102e1565b38611009565b61104136610479565b60405163afd27bf560e01b815291926001600160a01b038082169360209392908481600481895afa801561026657611083928592600092611156575b50611752565b956040519563db74aa1560e01b87528487806110a38580600484016116ef565b038160008a5af196871561026657600097611137575b508087106111195750907f3193c546cf854c6a4c63afa03b04d35e4242c2761af34a4093fc5daa88dd53089161110788886110f3876114ac565b9360405195869516983398013590856114d4565b0390a461021160405192839283610953565b60405163ca935dfd60e01b8152908190610233908960048401610953565b61114f919750853d871161025f5761024f81836102e1565b95386110b9565b61116e919250873d89116102915761028381836102e1565b903861107d565b346100fd5760803660031901126100fd576004803590611194826100ec565b6001600160401b036024358181116100fd576111b39036908401610be0565b9390916044358181116100fd576111cd9036908601610be0565b90916064359081116100fd576111e69036908701610be0565b94909660005b8181106113145750505060005b8181106112865750505060005b82811061120f57005b6112286108bb6108bb61122384878a611617565b6114ac565b9060006040518093639262187b60e01b8252818381611249898c83016116ad565b03925af191821561026657600192611263575b5001611206565b61127f903d806000833e61127781836102e1565b810190611688565b503861125c565b806000856112a16108bb6108bb6112236112d897898b611617565b8983604051809781958294637d24da4d60e01b8452830160406001919392936060810194838060a01b031681528260208201520152565b03925af1918215610266576001926112f2575b50016111f9565b61130e903d806000833e61130681836102e1565b8101906116c0565b506112eb565b8060008761132f6108bb6108bb61122361134b97898b611617565b8b83604051809781958294633bd73ee360e21b845283016116ad565b03925af191821561026657600192611365575b50016111ec565b611379903d806000833e61127781836102e1565b503861135e565b908160209103126100fd57516104c2816100ec565b6040513d6000823e3d90fd5b634e487b7160e01b600052603260045260246000fd5b80518210156113cb5760209160051b010190565b6113a1565b801515036100fd57565b908160209103126100fd57516104c2816113d0565b906000805b83518110156114a65761141d6108bb6108bb61141084886113b7565b516001600160a01b031690565b9061146d61142e61141083886113b7565b6040516323b872dd60e01b81523360048201526001600160a01b0390911660248201526000604482015292602091829185918290889082906064820190565b03925af192831561026657600193611488575b5050016113f4565b8161149e92903d1061075e5761075081836102e1565b503880611480565b50509050565b356104c2816100ec565b604091949392606082019560018060a01b0316825260208201520152565b90949392606092608083019660018060a01b03168352602083015260408201520152565b90611502826103c1565b60409061151260405191826102e1565b8381528093611523601f19916103c1565b019060009060005b838110611539575050505050565b845180860191906001600160401b038311818410176102c15760209287528481528260608183015282850101520161152b565b91908110156113cb5760051b81013590603e19813603018212156100fd570190565b903590601e19813603018212156100fd57018035906001600160401b0382116100fd576020019181360383136100fd57565b908092918237016000815290565b3d156115f9573d906115df82610304565b916115ed60405193846102e1565b82523d6000602084013e565b606090565b356104c2816113d0565b908160209103126100fd575190565b91908110156113cb5760051b0190565b9080601f830112156100fd57815190602091611642816103c1565b9361165060405195866102e1565b81855260208086019260051b8201019283116100fd57602001905b828210611679575050505090565b8151815290830190830161166b565b906020828203126100fd5781516001600160401b0381116100fd576104c29201611627565b6001600160a01b03909116815260200190565b9190916040818403126100fd57805160208201519093906001600160401b0381116100fd576104c29201611627565b6001600160a01b0391821681529116602082015260400190565b903590607e19813603018212156100fd570190565b600411156100fd57565b6004111561173257565b634e487b7160e01b600052602160045260246000fd5b356104c28161171e565b6104c292916117646080840184611709565b3561176e8161171e565b61177781611728565b8061179d5750611786836114ac565b611797602085013580923390611d22565b91611dcc565b806117a9600392611728565b036117e35782356117b9816100ec565b611797602085013580926117ce823383611d22565b6117d7816100ec565b6105be604088016114ac565b6117ec83611a3b565b61179760408401356105e3816100ec565b60009103126100fd57565b908060209392818452848401376000828201840152601f01601f1916010190565b3590611834826113d0565b565b6001600160a01b039182168152602081019290925260606040830152823561185d8161171e565b60048110156117325760608301526020830135611879816100ec565b1660808201526040820135601e19833603018112156100fd578201803591906020016001600160401b0383116100fd5782360381136100fd576118d960606118d260c0936104c296608060a088015260e0870191611808565b9501611829565b1515910152565b939293608085016118f46107a68288611709565b6118fd81611728565b8061193e575050602092611912928692611f5d565b925b01358083106119205750565b60405163c5b5576d60e01b8152908190610233908560048401610953565b8061194f6003929895969498611728565b0361198f57506119668261198a9260209530611f5d565b809561198182611978604087016114ac565b6105be876114ac565b61088a846114ac565b611914565b906108bb6108bb6119b1856119b79460608201986119ac8a6114ac565b611f5d565b956114ac565b6119cd6119c6604085016114ac565b9284611709565b90803b156100fd576119fa946000809460405197889586948593630af6e08f60e21b855260048501611836565b03925af191821561026657602092611a28575b5061198a611a1d6105e3836114ac565b809561088a846114ac565b80610943611a35926102ae565b38611a0d565b6001600160a01b03611a4c826114ac565b16611af557611a5e6020820135611ce6565b611a706108bb6108bb606084016114ac565b611a7c6108bb836114ac565b611aed576020820135905b611a90836114ac565b90611a9e6080850185611709565b93813b156100fd57600093602091611acf60405197889687958694630af6e08f60e21b865201359060048501611836565b03925af1801561026657611ae05750565b80610943611834926102ae565b600090611a87565b611b1d611b046108bb836114ac565b611b10606084016114ac565b6020840135913390611caa565b611a5e565b6001600160a01b031680611b3557504790565b6020602491604051928380926370a0823160e01b82523060048301525afa90811561026657600091611b65575090565b6104c2915060203d60201161025f5761024f81836102e1565b8215611c24576001600160a01b031680611be35750600080809381935af1611ba46115ce565b5015611bac57565b60405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b6044820152606490fd5b60405163a9059cbb60e01b60208201526001600160a01b0392909216602483015260448083019390935291815261183491611c1f6064836102e1565b6121ce565b505050565b90611c33826103c1565b611c4060405191826102e1565b8281528092611c51601f19916103c1565b0190602036910137565b908210156113cb57611c729160051b81019061158e565b9091565b9160206104c2938181520191611808565b91908203918211611c9457565b634e487b7160e01b600052601160045260246000fd5b92919082151580611cd3575b611cc1575b50505050565b611cca93611fc7565b38808080611cbb565b506001600160a01b038116301415611cb6565b3403611cee57565b60405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b6044820152606490fd5b9091906001600160a01b031680611d3e575090503403611cee57565b81611d4857505050565b611834923091611fc7565b6001600160a01b039190821680611d92575016803b156100fd57600090600460405180948193630d0e30db60e41b83525af1801561026657611ae05750565b915050803b156100fd57604051632e1a7d4d60e01b815260048101929092526000908290602490829084905af1801561026657611ae05750565b6084906040602094950135611de0816100ec565b6001600160a01b03818116969094859188611e5157611e1381945b611e04816100ec565b611e0e848261201f565b6100ec565b60405198899788966320e8c56560e01b88521660048701526024860152604485015260006064850152165af190811561026657600091611b65575090565b611e13600094611dfb565b60209360406084939496013590611e72826100ec565b6001600160a01b038281169790958692909189611ede57611ea281955b611e98816100ec565b611e0e858261201f565b604051998a9889976320e8c56560e01b8952166004880152602487015260448601526064850152165af190811561026657600091611b65575090565b611ea2600095611e8f565b60a49060006040936020959660018060a01b03958691611f0e8a848616953387611caa565b0135611f19816100ec565b604051988997889663769f8e5d60e01b88521660048701526024860152166044840152816064840152600160848401525af190811561026657600091611b65575090565b91926020926001600160a01b039260a4926000918591829060400135611f82816100ec565b604051998a98899763769f8e5d60e01b8952166004880152602487015216604485015282606485015260016084850152165af190811561026657600091611b65575090565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b038411176102c157611834926040526121ce565b6001600160a01b03811692919083156114a657604051636eb1769f60e11b81526020948590829081806120568830600484016116ef565b03915afa90811561026657600091612152575b5060016001605f1b031161207d5750509050565b60405163095ea7b360e01b8582019081526001600160a01b0384166024830152600060448301819052918291906120c181606481015b03601f1981018352826102e1565b519082855af16120cf6115ce565b81612122575b50156120ee576120e69293506122a3565b8038806114a6565b60405162461bcd60e51b815260048101859052600c60248201526b5361666520417070726f766560a01b6044820152606490fd5b8051801592508690831561213a575b505050386120d5565b61214a93508201810191016113da565b388581612131565b6121699150853d871161025f5761024f81836102e1565b38612069565b1561217657565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b6040516001600160a01b0391909116916121e7826102c6565b6020928383527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656484840152803b1561225e57600082819282876122399796519301915af16122336115ce565b9061235f565b8051908161224657505050565b82611834936122599383010191016113da565b61216f565b60405162461bcd60e51b815260048101859052601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b60405163095ea7b360e01b602082019081526001600160a01b039093166024820152600019604482015260009283929183906122e281606481016120b3565b51925af16122ee6115ce565b81612330575b50156122fc57565b60405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b6044820152606490fd5b8051801592508215612345575b5050386122f4565b61235892506020809183010191016113da565b388061233d565b9091901561236b575090565b81511561237b5750805190602001fd5b60405162461bcd60e51b815260206004820152908190610233906024830190610c1056fea264697066735822122025263712b1994dfd15310e85ef6951f97e94cf86d9028202ddc6844514e536a564736f6c63430008170033";
1041
+ "0x60808060405234610016576123c2908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80631a8631b2146100e75780631cf0f536146100e25780632d8f9d8d146100dd5780632e071dc6146100d8578063339748cb146100d3578063339a5572146100ce57806347f1de22146100c95780635d3e105c146100c457806360fc8466146100bf578063657b87d8146100ba578063a89eba4a146100b5578063d0f42385146100b05763f7e375e8146100ab57600080fd5b611180565b611043565b610f60565b610e4e565b610cd4565b610b52565b610964565b610782565b6105e8565b6104c5565b6103d8565b61031f565b610132565b6001600160a01b038116036100fd57565b600080fd5b60809060031901126100fd5760043561011a816100ec565b90602435610127816100ec565b906044359060643590565b346100fd5761014036610102565b60405163afd27bf560e01b81526001600160a01b039460209480871694919391928681600481895afa9182156102665761018892859260009161026b575b5089339116611c97565b60405163db74aa1560e01b81528581806101a68780600484016116fa565b03816000895af195861561026657600096610237575b505080851061021557507f52e05e4badd3463bad837f42fe3ba58c739d1b3081cff9bb6eb02a24034d455d61021195604051931692806101fe87339583610953565b0390a46040519081529081906020820190565b0390f35b60405163ca935dfd60e01b8152908190610233908760048401610953565b0390fd5b610257929650803d1061025f575b61024f81836102e1565b810190611613565b9338806101bc565b503d610245565b6113a0565b61028b9150893d8b11610291575b61028381836102e1565b81019061138b565b3861017e565b503d610279565b634e487b7160e01b600052604160045260246000fd5b6001600160401b0381116102c157604052565b610298565b604081019081106001600160401b038211176102c157604052565b601f909101601f19168101906001600160401b038211908210176102c157604052565b6001600160401b0381116102c157601f01601f191660200190565b60203660031901126100fd576004356001600160401b0381116100fd57366023820112156100fd5780600401359061035682610304565b61036360405191826102e1565b828152602081019036602485850101116100fd576000602085829660248497018637830101525190305af46103966115d9565b6040805163269462bb60e21b8152921515600484015260248301528190610233906044830190610c1b565b6001600160401b0381116102c15760051b60200190565b346100fd576020806003193601126100fd576004356001600160401b0381116100fd57366023820112156100fd57806004013590610415826103c1565b9161042360405193846102e1565b8083526024602084019160051b830101913683116100fd57602401905b82821061045257610450846113fa565b005b8480918335610460816100ec565b815201910190610440565b908160a09103126100fd5790565b9060806003198301126100fd57600435610492816100ec565b9160243561049f816100ec565b9160443591606435906001600160401b0382116100fd576104c29160040161046b565b90565b602061051f6104d336610479565b8094916104e66080839695960183611714565b356104f081611729565b6104f981611733565b8061057b5750610508826114b7565b6105188884013580923390611d0f565b8585611e49565b927f71c7a44161eb32e4640f6c8f0586db5f1d2e03306e2c63bb2e0f7cd0a8fc690c81359361054d856100ec565b60018060a01b03906105708783604051948594169816968a3397013590846114c1565b0390a4604051908152f35b80610587600392611733565b036105c957610595826114b7565b6105a58884013580923390611d0f565b6105c4816105b2856114b7565b6105be604087016114b7565b90611d40565b610518565b6105d282611a28565b6105c460408301356105e3816100ec565b611b0f565b346100fd576105f636610102565b604080516336501cf560e21b8152602095929491936001600160a01b03808416949391929091908881600481895afa80156102665782859161064493600091610765575b5085339116611c97565b8551630bc4ed8360e21b81528881600481895afa8015610266578491600091610738575b5015610726575b5050845163bcb7ea5d60e01b81529587878061068e87600483016116b8565b03816000895af196871561026657600097610707575b508087106106ea57507f31af33f80f4b396e3d4e42b38ecd3e022883a9bf689fd63f47afbe1d389cb6e7908551931692806106e188339583610953565b0390a451908152f35b85516305221cf360e11b8152908190610233908960048401610953565b61071f919750883d8a1161025f5761024f81836102e1565b95386106a4565b610731913387611c97565b388261066f565b61075891508a3d8c1161075e575b61075081836102e1565b8101906113e5565b38610668565b503d610746565b61077c91508c8d3d106102915761028381836102e1565b3861063a565b346100fd5761079036610479565b9291906000608085016107ab6107a68288611714565b611753565b6107b481611733565b80610843575050506107c884828486611ed6565b925b602085013580851061082557507fcd34b6ac7e4b72ab30845649aef2f4fd41945ae2dc08f625be69738bbd0f9aa96020953593610806856100ec565b60018060a01b03906105708783604051948594169816963396846114c1565b60405163c5b5576d60e01b8152908190610233908760048401610953565b8061084f600392611733565b0361089457505061086284828430611ed6565b9261087c84610873604088016114b7565b6105be886114b7565b61088f848261088a886114b7565b611b6b565b6107ca565b606086016108c76108bb6108bb6108b58a888a6108b0886114b7565b611ed6565b936114b7565b6001600160a01b031690565b906108de6108d760408a016114b7565b9389611714565b92823b1561094f57604051630af6e08f60e21b8152949385939284928692849261090b9260048501611841565b03925af1801561026657610936575b506109276105e3856114b7565b9261088f848261088a886114b7565b80610943610949926102ae565b80611808565b3861091a565b8480fd5b908152602081019190915260400190565b346100fd5761097236610479565b6040805163afd27bf560e01b81526001600160a01b0395602095939492938088169392908782600481885afa91821561026657600092610b33575b5085516336501cf560e21b81528881600481895afa8015610266578286916109e193600091610b16575b508c339116611c97565b8551630bc4ed8360e21b81528881600481895afa8015610266578591600091610af9575b5015610ae7575b5050845163bcb7ea5d60e01b8152878180610a2a85600483016116b8565b03816000895af197881561026657600098610ac8575b505060018710610aa9578697610a7d8761021198997f5f2e0499a3b6a21fd5e1fac44ac47c9aa7c3afa39076d67162a4993411d496da94866118eb565b9735610a88816100ec565b610a9c8a8a895194859416973397856114df565b0390a45192839283610953565b84516305221cf360e11b81526004810188905260016024820152604490fd5b610adf929850803d1061025f5761024f81836102e1565b953880610a40565b610af2913387611c97565b3883610a0c565b610b1091508a3d8c1161075e5761075081836102e1565b38610a05565b610b2d91508c8d3d106102915761028381836102e1565b386109d7565b610b4b919250883d8a116102915761028381836102e1565b90386109ad565b60603660031901126100fd57600435610b6a816100ec565b6024356044356001600160401b0381116100fd57610b8e604091369060040161046b565b610b9781611a28565b0135610ba2816100ec565b610bab81611b0f565b91808310610bcd5750816020938261088a610bc5946100ec565b604051908152f35b60405163c5b5576d60e01b8152908190610233908560048401610953565b9181601f840112156100fd578235916001600160401b0383116100fd576020808501948460051b0101116100fd57565b919082519283825260005b848110610c47575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610c26565b6020808201908083528351809252604092604081018260408560051b8401019601946000925b858410610c92575050505050505090565b909192939495968580610cc3600193603f1986820301885286838d5180511515845201519181858201520190610c1b565b990194019401929594939190610c81565b6020806003193601126100fd576004356001600160401b0381116100fd57610d00903690600401610beb565b90610d0a82611503565b9160009060005b818110610d2657604051806102118782610c5b565b610d31818386611577565b8380610d3f89840184611599565b90610d4f604051809381936115cb565b0390305af4610d5c6115d9565b9181159081610da0575b50610d995790610d858392610d7d6001958a6113c2565b519015159052565b87610d9083896113c2565b51015201610d11565b8151828901fd5b610db29150610dae90611609565b1590565b38610d66565b60408101906040815282518092526060810160608360051b830101926020809501916000905b828210610e2157505050508281830391015281808451928381520193019160005b828110610e0d575050505090565b835185529381019392810192600101610dff565b90919295948580610e3e600193605f198982030186528a51610c1b565b9798019493919091019101610dde565b6040806003193601126100fd5760249060043582356001600160401b0381116100fd57610e7f903690600401610beb565b91610e89836103c1565b94610e9760405196876102e1565b838652601f1980610ea7866103c1565b0160005b818110610f4f575050610ebd85611c16565b9560005b868110610ed757604051806102118a8c83610db8565b80610f3e8760008088610f1d610ef16001988f5a97611c48565b9190610f118b519384926020840196630e787a9b60e11b88528401611c63565b038b81018352826102e1565b5190308cf4508b610f3684610f306115d9565b926113c2565b525a90611c74565b610f48828b6113c2565b5201610ec1565b806060602080938c01015201610eab565b60a03660031901126100fd57600435610f78816100ec565b602435610f84816100ec565b6044356001600160401b0381116100fd57610fa5602091369060040161046b565b9160a4610fbf60643594610fb8866100ec565b833061175d565b60405163769f8e5d60e01b81526001600160a01b0396871660048201526024810182905294861660448601526084803560648701526001908601529484928391600091165af190811561026657600091611024575b5061021160405192839283610953565b61103d915060203d60201161025f5761024f81836102e1565b38611014565b61104c36610479565b60405163afd27bf560e01b815291926001600160a01b038082169360209392908481600481895afa80156102665761108e928592600092611161575b5061175d565b956040519563db74aa1560e01b87528487806110ae8580600484016116fa565b038160008a5af196871561026657600097611142575b508087106111245750907f3193c546cf854c6a4c63afa03b04d35e4242c2761af34a4093fc5daa88dd53089161111288886110fe876114b7565b9360405195869516983398013590856114df565b0390a461021160405192839283610953565b60405163ca935dfd60e01b8152908190610233908960048401610953565b61115a919750853d871161025f5761024f81836102e1565b95386110c4565b611179919250873d89116102915761028381836102e1565b9038611088565b346100fd5760803660031901126100fd57600480359061119f826100ec565b6001600160401b036024358181116100fd576111be9036908401610beb565b9390916044358181116100fd576111d89036908601610beb565b90916064359081116100fd576111f19036908701610beb565b94909660005b81811061131f5750505060005b8181106112915750505060005b82811061121a57005b6112336108bb6108bb61122e84878a611622565b6114b7565b9060006040518093639262187b60e01b8252818381611254898c83016116b8565b03925af19182156102665760019261126e575b5001611211565b61128a903d806000833e61128281836102e1565b810190611693565b5038611267565b806000856112ac6108bb6108bb61122e6112e397898b611622565b8983604051809781958294637d24da4d60e01b8452830160406001919392936060810194838060a01b031681528260208201520152565b03925af1918215610266576001926112fd575b5001611204565b611319903d806000833e61131181836102e1565b8101906116cb565b506112f6565b8060008761133a6108bb6108bb61122e61135697898b611622565b8b83604051809781958294633bd73ee360e21b845283016116b8565b03925af191821561026657600192611370575b50016111f7565b611384903d806000833e61128281836102e1565b5038611369565b908160209103126100fd57516104c2816100ec565b6040513d6000823e3d90fd5b634e487b7160e01b600052603260045260246000fd5b80518210156113d65760209160051b010190565b6113ac565b801515036100fd57565b908160209103126100fd57516104c2816113db565b906000805b83518110156114b1576114286108bb6108bb61141b84886113c2565b516001600160a01b031690565b9061147861143961141b83886113c2565b6040516323b872dd60e01b81523360048201526001600160a01b0390911660248201526000604482015292602091829185918290889082906064820190565b03925af192831561026657600193611493575b5050016113ff565b816114a992903d1061075e5761075081836102e1565b50388061148b565b50509050565b356104c2816100ec565b604091949392606082019560018060a01b0316825260208201520152565b90949392606092608083019660018060a01b03168352602083015260408201520152565b9061150d826103c1565b60409061151d60405191826102e1565b838152809361152e601f19916103c1565b019060009060005b838110611544575050505050565b845180860191906001600160401b038311818410176102c157602092875284815282606081830152828501015201611536565b91908110156113d65760051b81013590603e19813603018212156100fd570190565b903590601e19813603018212156100fd57018035906001600160401b0382116100fd576020019181360383136100fd57565b908092918237016000815290565b3d15611604573d906115ea82610304565b916115f860405193846102e1565b82523d6000602084013e565b606090565b356104c2816113db565b908160209103126100fd575190565b91908110156113d65760051b0190565b9080601f830112156100fd5781519060209161164d816103c1565b9361165b60405195866102e1565b81855260208086019260051b8201019283116100fd57602001905b828210611684575050505090565b81518152908301908301611676565b906020828203126100fd5781516001600160401b0381116100fd576104c29201611632565b6001600160a01b03909116815260200190565b9190916040818403126100fd57805160208201519093906001600160401b0381116100fd576104c29201611632565b6001600160a01b0391821681529116602082015260400190565b903590607e19813603018212156100fd570190565b600411156100fd57565b6004111561173d57565b634e487b7160e01b600052602160045260246000fd5b356104c281611729565b6104c2929161176f6080840184611714565b3561177981611729565b61178281611733565b806117a85750611791836114b7565b6117a2602085013580923390611d0f565b91611db9565b806117b4600392611733565b036117ee5782356117c4816100ec565b6117a2602085013580926117d9823383611d0f565b6117e2816100ec565b6105be604088016114b7565b6117f783611a28565b6117a260408401356105e3816100ec565b60009103126100fd57565b908060209392818452848401376000828201840152601f01601f1916010190565b359061183f826113db565b565b6001600160a01b039182168152602081019290925260606040830152823561186881611729565b600481101561173d5760608301526020830135611884816100ec565b1660808201526040820135601e19833603018112156100fd578201803591906020016001600160401b0383116100fd5782360381136100fd576118e460606118dd60c0936104c296608060a088015260e0870191611813565b9501611834565b1515910152565b939293608085016118ff6107a68288611714565b61190881611733565b8061192b57505060209261191d928692611f4a565b925b0135808310610bcd5750565b8061193c6003929895969498611733565b0361197c5750611953826119779260209530611f4a565b809561196e82611965604087016114b7565b6105be876114b7565b61088a846114b7565b61191f565b906108bb6108bb61199e856119a49460608201986119998a6114b7565b611f4a565b956114b7565b6119ba6119b3604085016114b7565b9284611714565b90803b156100fd576119e7946000809460405197889586948593630af6e08f60e21b855260048501611841565b03925af191821561026657602092611a15575b50611977611a0a6105e3836114b7565b809561088a846114b7565b80610943611a22926102ae565b386119fa565b6001600160a01b03611a39826114b7565b16611ae257611a4b6020820135611cd3565b611a5d6108bb6108bb606084016114b7565b611a696108bb836114b7565b611ada576020820135905b611a7d836114b7565b90611a8b6080850185611714565b93813b156100fd57600093602091611abc60405197889687958694630af6e08f60e21b865201359060048501611841565b03925af1801561026657611acd5750565b8061094361183f926102ae565b600090611a74565b611b0a611af16108bb836114b7565b611afd606084016114b7565b6020840135913390611c97565b611a4b565b6001600160a01b031680611b2257504790565b6020602491604051928380926370a0823160e01b82523060048301525afa90811561026657600091611b52575090565b6104c2915060203d60201161025f5761024f81836102e1565b8215611c11576001600160a01b031680611bd05750600080809381935af1611b916115d9565b5015611b9957565b60405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b6044820152606490fd5b60405163a9059cbb60e01b60208201526001600160a01b0392909216602483015260448083019390935291815261183f91611c0c6064836102e1565b6121bb565b505050565b90611c20826103c1565b611c2d60405191826102e1565b8281528092611c3e601f19916103c1565b0190602036910137565b908210156113d657611c5f9160051b810190611599565b9091565b9160206104c2938181520191611813565b91908203918211611c8157565b634e487b7160e01b600052601160045260246000fd5b92919082151580611cc0575b611cae575b50505050565b611cb793611fb4565b38808080611ca8565b506001600160a01b038116301415611ca3565b3403611cdb57565b60405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b6044820152606490fd5b9091906001600160a01b031680611d2b575090503403611cdb57565b81611d3557505050565b61183f923091611fb4565b6001600160a01b039190821680611d7f575016803b156100fd57600090600460405180948193630d0e30db60e41b83525af1801561026657611acd5750565b915050803b156100fd57604051632e1a7d4d60e01b815260048101929092526000908290602490829084905af1801561026657611acd5750565b6084906040602094950135611dcd816100ec565b6001600160a01b03818116969094859188611e3e57611e0081945b611df1816100ec565b611dfb848261200c565b6100ec565b60405198899788966320e8c56560e01b88521660048701526024860152604485015260006064850152165af190811561026657600091611b52575090565b611e00600094611de8565b60209360406084939496013590611e5f826100ec565b6001600160a01b038281169790958692909189611ecb57611e8f81955b611e85816100ec565b611dfb858261200c565b604051998a9889976320e8c56560e01b8952166004880152602487015260448601526064850152165af190811561026657600091611b52575090565b611e8f600095611e7c565b60a49060006040936020959660018060a01b03958691611efb8a848616953387611c97565b0135611f06816100ec565b604051988997889663769f8e5d60e01b88521660048701526024860152166044840152816064840152600160848401525af190811561026657600091611b52575090565b91926020926001600160a01b039260a4926000918591829060400135611f6f816100ec565b604051998a98899763769f8e5d60e01b8952166004880152602487015216604485015282606485015260016084850152165af190811561026657600091611b52575090565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b038411176102c15761183f926040526121bb565b6001600160a01b03811692919083156114b157604051636eb1769f60e11b81526020948590829081806120438830600484016116fa565b03915afa9081156102665760009161213f575b5060016001605f1b031161206a5750509050565b60405163095ea7b360e01b8582019081526001600160a01b0384166024830152600060448301819052918291906120ae81606481015b03601f1981018352826102e1565b519082855af16120bc6115d9565b8161210f575b50156120db576120d3929350612290565b8038806114b1565b60405162461bcd60e51b815260048101859052600c60248201526b5361666520417070726f766560a01b6044820152606490fd5b80518015925086908315612127575b505050386120c2565b61213793508201810191016113e5565b38858161211e565b6121569150853d871161025f5761024f81836102e1565b38612056565b1561216357565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b6040516001600160a01b0391909116916121d4826102c6565b6020928383527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656484840152803b1561224b57600082819282876122269796519301915af16122206115d9565b9061234c565b8051908161223357505050565b8261183f936122469383010191016113e5565b61215c565b60405162461bcd60e51b815260048101859052601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b60405163095ea7b360e01b602082019081526001600160a01b039093166024820152600019604482015260009283929183906122cf81606481016120a0565b51925af16122db6115d9565b8161231d575b50156122e957565b60405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b6044820152606490fd5b8051801592508215612332575b5050386122e1565b61234592506020809183010191016113e5565b388061232a565b90919015612358575090565b8151156123685750805190602001fd5b60405162461bcd60e51b815260206004820152908190610233906024830190610c1b56fea264697066735822122063e43fdf730d0b9c5b7c4ff096c531fb72669892f4410188d43c231df0c52a6764736f6c63430008170033";
1042
1042
 
1043
1043
  type ActionMiscV3ConstructorParams =
1044
1044
  | [signer?: Signer]
@@ -0,0 +1,213 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+
5
+ import { Contract, Signer, utils } from "ethers";
6
+ import { Provider } from "@ethersproject/providers";
7
+ import type {
8
+ IAggregationExecutorOptimistic,
9
+ IAggregationExecutorOptimisticInterface,
10
+ } from "../IAggregationExecutorOptimistic";
11
+
12
+ const _abi = [
13
+ {
14
+ anonymous: false,
15
+ inputs: [
16
+ {
17
+ indexed: false,
18
+ internalType: "address",
19
+ name: "pair",
20
+ type: "address",
21
+ },
22
+ {
23
+ indexed: false,
24
+ internalType: "uint256",
25
+ name: "amountOut",
26
+ type: "uint256",
27
+ },
28
+ {
29
+ indexed: false,
30
+ internalType: "address",
31
+ name: "output",
32
+ type: "address",
33
+ },
34
+ ],
35
+ name: "Exchange",
36
+ type: "event",
37
+ },
38
+ {
39
+ inputs: [
40
+ {
41
+ internalType: "bytes",
42
+ name: "data",
43
+ type: "bytes",
44
+ },
45
+ ],
46
+ name: "callBytes",
47
+ outputs: [],
48
+ stateMutability: "payable",
49
+ type: "function",
50
+ },
51
+ {
52
+ inputs: [
53
+ {
54
+ internalType: "address",
55
+ name: "tokenIn",
56
+ type: "address",
57
+ },
58
+ {
59
+ internalType: "address",
60
+ name: "tokenOut",
61
+ type: "address",
62
+ },
63
+ {
64
+ internalType: "address",
65
+ name: "to",
66
+ type: "address",
67
+ },
68
+ {
69
+ internalType: "bytes",
70
+ name: "destTokenFeeData",
71
+ type: "bytes",
72
+ },
73
+ ],
74
+ name: "finalTransactionProcessing",
75
+ outputs: [],
76
+ stateMutability: "nonpayable",
77
+ type: "function",
78
+ },
79
+ {
80
+ inputs: [
81
+ {
82
+ components: [
83
+ {
84
+ internalType: "bytes",
85
+ name: "data",
86
+ type: "bytes",
87
+ },
88
+ {
89
+ internalType: "bytes4",
90
+ name: "functionSelector",
91
+ type: "bytes4",
92
+ },
93
+ ],
94
+ internalType: "struct IAggregationExecutorOptimistic.Swap[][]",
95
+ name: "swapSequences",
96
+ type: "tuple[][]",
97
+ },
98
+ {
99
+ internalType: "address",
100
+ name: "tokenIn",
101
+ type: "address",
102
+ },
103
+ {
104
+ internalType: "address",
105
+ name: "tokenOut",
106
+ type: "address",
107
+ },
108
+ {
109
+ internalType: "address",
110
+ name: "to",
111
+ type: "address",
112
+ },
113
+ {
114
+ internalType: "uint256",
115
+ name: "deadline",
116
+ type: "uint256",
117
+ },
118
+ {
119
+ internalType: "bytes",
120
+ name: "positiveSlippageData",
121
+ type: "bytes",
122
+ },
123
+ ],
124
+ name: "multihopBatchSwapExactIn",
125
+ outputs: [],
126
+ stateMutability: "payable",
127
+ type: "function",
128
+ },
129
+ {
130
+ inputs: [
131
+ {
132
+ internalType: "address",
133
+ name: "token",
134
+ type: "address",
135
+ },
136
+ {
137
+ internalType: "uint256",
138
+ name: "amount",
139
+ type: "uint256",
140
+ },
141
+ ],
142
+ name: "rescueFunds",
143
+ outputs: [],
144
+ stateMutability: "nonpayable",
145
+ type: "function",
146
+ },
147
+ {
148
+ inputs: [
149
+ {
150
+ internalType: "bytes",
151
+ name: "data",
152
+ type: "bytes",
153
+ },
154
+ ],
155
+ name: "swapSingleSequence",
156
+ outputs: [],
157
+ stateMutability: "nonpayable",
158
+ type: "function",
159
+ },
160
+ {
161
+ inputs: [
162
+ {
163
+ internalType: "bytes4[]",
164
+ name: "functionSelectors",
165
+ type: "bytes4[]",
166
+ },
167
+ {
168
+ internalType: "address[]",
169
+ name: "executors",
170
+ type: "address[]",
171
+ },
172
+ ],
173
+ name: "updateBatchExecutors",
174
+ outputs: [],
175
+ stateMutability: "nonpayable",
176
+ type: "function",
177
+ },
178
+ {
179
+ inputs: [
180
+ {
181
+ internalType: "bytes4",
182
+ name: "functionSelector",
183
+ type: "bytes4",
184
+ },
185
+ {
186
+ internalType: "address",
187
+ name: "executor",
188
+ type: "address",
189
+ },
190
+ ],
191
+ name: "updateExecutor",
192
+ outputs: [],
193
+ stateMutability: "nonpayable",
194
+ type: "function",
195
+ },
196
+ ];
197
+
198
+ export class IAggregationExecutorOptimistic__factory {
199
+ static readonly abi = _abi;
200
+ static createInterface(): IAggregationExecutorOptimisticInterface {
201
+ return new utils.Interface(_abi) as IAggregationExecutorOptimisticInterface;
202
+ }
203
+ static connect(
204
+ address: string,
205
+ signerOrProvider: Signer | Provider
206
+ ): IAggregationExecutorOptimistic {
207
+ return new Contract(
208
+ address,
209
+ _abi,
210
+ signerOrProvider
211
+ ) as IAggregationExecutorOptimistic;
212
+ }
213
+ }