@pendle/core-v2 5.8.7 → 5.8.9

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.
@@ -15,14 +15,19 @@ contract PendleSwap is
15
15
  TokenHelper,
16
16
  OKXScaleHelper,
17
17
  ParaswapScaleHelper,
18
- BoringOwnableUpgradeable
18
+ BoringOwnableUpgradeable,
19
+ UUPSUpgradeable
19
20
  {
20
21
  using Address for address;
21
22
  using SafeERC20 for IERC20;
22
23
 
23
24
  address private constant KYBER_SCALING_HELPER = 0x2f577A41BeC1BE1152AeEA12e73b7391d15f655D;
24
25
 
25
- constructor() initializer {
26
+ constructor() {
27
+ _disableInitializers();
28
+ }
29
+
30
+ function initialize() external initializer {
26
31
  __BoringOwnable_init();
27
32
  }
28
33
 
@@ -99,6 +104,8 @@ contract PendleSwap is
99
104
  }
100
105
 
101
106
  receive() external payable {}
107
+
108
+ function _authorizeUpgrade(address) internal virtual override onlyOwner {}
102
109
  }
103
110
 
104
111
  interface IKyberScalingHelper {
@@ -59,5 +59,6 @@
59
59
  "externalRewardsDistributor": "0xae898a7d07f8e27f25e13d0f351a7401f9a5bf9d",
60
60
  "feeDistributor": "0xd7b34a6fDCb2A7ceD2115FF7f5fdD72aa6aA4dE2",
61
61
  "feeDistributorV2": "0x8C237520a8E14D658170A633D96F8e80764433b9",
62
- "lpWrapperFactory": "0x12930Bd944bb34B0A21CCc2E7d32a6834Bd58e19"
62
+ "lpWrapperFactory": "0x12930Bd944bb34B0A21CCc2E7d32a6834Bd58e19",
63
+ "decimalsFactory": "0x992ec6a490a4b7f256bd59e63746951d98b29be9"
63
64
  }
@@ -47,5 +47,6 @@
47
47
  "beta": {
48
48
  "PendleChainlinkOracleFactory": "0x0000000000000000000000000000000000000000"
49
49
  },
50
- "lpWrapperFactory": "0xeCfEB97D7F070DA5b93c5DC274183F1D7f68532F"
50
+ "lpWrapperFactory": "0xeCfEB97D7F070DA5b93c5DC274183F1D7f68532F",
51
+ "decimalsFactory": "0x992ec6a490a4b7f256bd59e63746951d98b29be9"
51
52
  }
@@ -55,5 +55,6 @@
55
55
  "vePendle": "0x3209E9412cca80B18338f2a56ADA59c484c39644",
56
56
  "gaugeController": "0x1e56299ebc8a1010cec26005d12e3e5c5cc2db00",
57
57
  "arbMerkleDistribution": "0x23a102e78D1FF1645a3666691495174764a5FCAF",
58
- "lpWrapperFactory": "0xdb5dB14819a16642e6736aB0cDFe0156f8E01ddF"
58
+ "lpWrapperFactory": "0xdb5dB14819a16642e6736aB0cDFe0156f8E01ddF",
59
+ "decimalsFactory": "0x992ec6a490a4b7f256bd59e63746951d98b29be9"
59
60
  }
@@ -53,5 +53,6 @@
53
53
  "beta": {
54
54
  "PendleChainlinkOracleFactory": "0x2A73e899389cABa2a2f648BaBA35e67f5C00EFee"
55
55
  },
56
- "lpWrapperFactory": "0x6D653C8DAAc8D81c9CE98E038fbF94D7E652e147"
56
+ "lpWrapperFactory": "0x6D653C8DAAc8D81c9CE98E038fbF94D7E652e147",
57
+ "decimalsFactory": "0x992ec6a490a4b7f256bd59e63746951d98b29be9"
57
58
  }
@@ -54,5 +54,6 @@
54
54
  "receiverEndpoint": "0x998CF52b2585e05494BF9F2bF502351a9C7FdA8f",
55
55
  "vePendle": "0x8A09574b0401A856d89d1b583eE22E8cb0C5530B",
56
56
  "gaugeController": "0x704478Dd72FD7F9B83d1F1e0fc18C14B54F034d0",
57
- "lpWrapperFactory": "0x6f14d3cD37a0647a3eE60eb2214486f8A1CDdccc"
57
+ "lpWrapperFactory": "0x6f14d3cD37a0647a3eE60eb2214486f8A1CDdccc",
58
+ "decimalsFactory": "0x992ec6a490a4b7f256bd59e63746951d98b29be9"
58
59
  }
@@ -47,5 +47,6 @@
47
47
  "receiverEndpoint": "0xd5C47D2383Fddc19596489280C0A33AC42b2bB18",
48
48
  "vePendle": "0x6875e4A945E498FE1B90BbB13CFbAF0b68658C9C",
49
49
  "gaugeController": "0x704478Dd72FD7F9B83d1F1e0fc18C14B54F034d0",
50
- "lpWrapperFactory": "0x7c0fa6ad8c14aFc85706E28B6ed2d9cbACc47161"
50
+ "lpWrapperFactory": "0x7c0fa6ad8c14aFc85706E28B6ed2d9cbACc47161",
51
+ "decimalsFactory": "0x992ec6a490a4b7f256bd59e63746951d98b29be9"
51
52
  }
@@ -47,5 +47,6 @@
47
47
  "receiverEndpoint": "0xeE708FC793a02F1eDd5BB9DBD7fD13010D1F7136",
48
48
  "vePendle": "0x051dcd6a80f11fE68F77Fb0EBdE03853FA96B1fD",
49
49
  "gaugeController": "0x17F100fB4bE2707675c6439468d38249DD993d58",
50
- "lpWrapperFactory": "0xCa274A44a52241c1a8EFb9f84Bf492D8363929FC"
50
+ "lpWrapperFactory": "0xCa274A44a52241c1a8EFb9f84Bf492D8363929FC",
51
+ "decimalsFactory": "0x992ec6a490a4b7f256bd59e63746951d98b29be9"
51
52
  }
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": "5.8.7",
5
+ "version": "5.8.9",
6
6
  "homepage": "https://pendle.finance",
7
7
  "keywords": [
8
8
  "pendle",
@@ -41,21 +41,33 @@ export interface PendleSwapInterface extends utils.Interface {
41
41
  contractName: "PendleSwap";
42
42
  functions: {
43
43
  "claimOwnership()": FunctionFragment;
44
+ "initialize()": FunctionFragment;
44
45
  "owner()": FunctionFragment;
45
46
  "pendingOwner()": FunctionFragment;
47
+ "proxiableUUID()": FunctionFragment;
46
48
  "swap(address,uint256,(uint8,address,bytes,bool))": FunctionFragment;
47
49
  "transferOwnership(address,bool,bool)": FunctionFragment;
50
+ "upgradeTo(address)": FunctionFragment;
51
+ "upgradeToAndCall(address,bytes)": FunctionFragment;
48
52
  };
49
53
 
50
54
  encodeFunctionData(
51
55
  functionFragment: "claimOwnership",
52
56
  values?: undefined
53
57
  ): string;
58
+ encodeFunctionData(
59
+ functionFragment: "initialize",
60
+ values?: undefined
61
+ ): string;
54
62
  encodeFunctionData(functionFragment: "owner", values?: undefined): string;
55
63
  encodeFunctionData(
56
64
  functionFragment: "pendingOwner",
57
65
  values?: undefined
58
66
  ): string;
67
+ encodeFunctionData(
68
+ functionFragment: "proxiableUUID",
69
+ values?: undefined
70
+ ): string;
59
71
  encodeFunctionData(
60
72
  functionFragment: "swap",
61
73
  values: [string, BigNumberish, SwapDataStruct]
@@ -64,33 +76,65 @@ export interface PendleSwapInterface extends utils.Interface {
64
76
  functionFragment: "transferOwnership",
65
77
  values: [string, boolean, boolean]
66
78
  ): string;
79
+ encodeFunctionData(functionFragment: "upgradeTo", values: [string]): string;
80
+ encodeFunctionData(
81
+ functionFragment: "upgradeToAndCall",
82
+ values: [string, BytesLike]
83
+ ): string;
67
84
 
68
85
  decodeFunctionResult(
69
86
  functionFragment: "claimOwnership",
70
87
  data: BytesLike
71
88
  ): Result;
89
+ decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
72
90
  decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
73
91
  decodeFunctionResult(
74
92
  functionFragment: "pendingOwner",
75
93
  data: BytesLike
76
94
  ): Result;
95
+ decodeFunctionResult(
96
+ functionFragment: "proxiableUUID",
97
+ data: BytesLike
98
+ ): Result;
77
99
  decodeFunctionResult(functionFragment: "swap", data: BytesLike): Result;
78
100
  decodeFunctionResult(
79
101
  functionFragment: "transferOwnership",
80
102
  data: BytesLike
81
103
  ): Result;
104
+ decodeFunctionResult(functionFragment: "upgradeTo", data: BytesLike): Result;
105
+ decodeFunctionResult(
106
+ functionFragment: "upgradeToAndCall",
107
+ data: BytesLike
108
+ ): Result;
82
109
 
83
110
  events: {
111
+ "AdminChanged(address,address)": EventFragment;
112
+ "BeaconUpgraded(address)": EventFragment;
84
113
  "Initialized(uint8)": EventFragment;
85
114
  "OwnershipTransferred(address,address)": EventFragment;
86
115
  "SwapSingle(uint8,address,uint256)": EventFragment;
116
+ "Upgraded(address)": EventFragment;
87
117
  };
88
118
 
119
+ getEvent(nameOrSignatureOrTopic: "AdminChanged"): EventFragment;
120
+ getEvent(nameOrSignatureOrTopic: "BeaconUpgraded"): EventFragment;
89
121
  getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment;
90
122
  getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
91
123
  getEvent(nameOrSignatureOrTopic: "SwapSingle"): EventFragment;
124
+ getEvent(nameOrSignatureOrTopic: "Upgraded"): EventFragment;
92
125
  }
93
126
 
127
+ export type AdminChangedEvent = TypedEvent<
128
+ [string, string],
129
+ { previousAdmin: string; newAdmin: string }
130
+ >;
131
+
132
+ export type AdminChangedEventFilter = TypedEventFilter<AdminChangedEvent>;
133
+
134
+ export type BeaconUpgradedEvent = TypedEvent<[string], { beacon: string }>;
135
+
136
+ export type BeaconUpgradedEventFilter = TypedEventFilter<BeaconUpgradedEvent>;
137
+
94
138
  export type InitializedEvent = TypedEvent<[number], { version: number }>;
95
139
 
96
140
  export type InitializedEventFilter = TypedEventFilter<InitializedEvent>;
@@ -110,6 +154,10 @@ export type SwapSingleEvent = TypedEvent<
110
154
 
111
155
  export type SwapSingleEventFilter = TypedEventFilter<SwapSingleEvent>;
112
156
 
157
+ export type UpgradedEvent = TypedEvent<[string], { implementation: string }>;
158
+
159
+ export type UpgradedEventFilter = TypedEventFilter<UpgradedEvent>;
160
+
113
161
  export interface PendleSwap extends BaseContract {
114
162
  contractName: "PendleSwap";
115
163
  connect(signerOrProvider: Signer | Provider | string): this;
@@ -142,10 +190,16 @@ export interface PendleSwap extends BaseContract {
142
190
  overrides?: Overrides & { from?: string | Promise<string> }
143
191
  ): Promise<ContractTransaction>;
144
192
 
193
+ initialize(
194
+ overrides?: Overrides & { from?: string | Promise<string> }
195
+ ): Promise<ContractTransaction>;
196
+
145
197
  owner(overrides?: CallOverrides): Promise<[string]>;
146
198
 
147
199
  pendingOwner(overrides?: CallOverrides): Promise<[string]>;
148
200
 
201
+ proxiableUUID(overrides?: CallOverrides): Promise<[string]>;
202
+
149
203
  swap(
150
204
  tokenIn: string,
151
205
  amountIn: BigNumberish,
@@ -159,16 +213,33 @@ export interface PendleSwap extends BaseContract {
159
213
  renounce: boolean,
160
214
  overrides?: Overrides & { from?: string | Promise<string> }
161
215
  ): Promise<ContractTransaction>;
216
+
217
+ upgradeTo(
218
+ newImplementation: string,
219
+ overrides?: Overrides & { from?: string | Promise<string> }
220
+ ): Promise<ContractTransaction>;
221
+
222
+ upgradeToAndCall(
223
+ newImplementation: string,
224
+ data: BytesLike,
225
+ overrides?: PayableOverrides & { from?: string | Promise<string> }
226
+ ): Promise<ContractTransaction>;
162
227
  };
163
228
 
164
229
  claimOwnership(
165
230
  overrides?: Overrides & { from?: string | Promise<string> }
166
231
  ): Promise<ContractTransaction>;
167
232
 
233
+ initialize(
234
+ overrides?: Overrides & { from?: string | Promise<string> }
235
+ ): Promise<ContractTransaction>;
236
+
168
237
  owner(overrides?: CallOverrides): Promise<string>;
169
238
 
170
239
  pendingOwner(overrides?: CallOverrides): Promise<string>;
171
240
 
241
+ proxiableUUID(overrides?: CallOverrides): Promise<string>;
242
+
172
243
  swap(
173
244
  tokenIn: string,
174
245
  amountIn: BigNumberish,
@@ -183,13 +254,28 @@ export interface PendleSwap extends BaseContract {
183
254
  overrides?: Overrides & { from?: string | Promise<string> }
184
255
  ): Promise<ContractTransaction>;
185
256
 
257
+ upgradeTo(
258
+ newImplementation: string,
259
+ overrides?: Overrides & { from?: string | Promise<string> }
260
+ ): Promise<ContractTransaction>;
261
+
262
+ upgradeToAndCall(
263
+ newImplementation: string,
264
+ data: BytesLike,
265
+ overrides?: PayableOverrides & { from?: string | Promise<string> }
266
+ ): Promise<ContractTransaction>;
267
+
186
268
  callStatic: {
187
269
  claimOwnership(overrides?: CallOverrides): Promise<void>;
188
270
 
271
+ initialize(overrides?: CallOverrides): Promise<void>;
272
+
189
273
  owner(overrides?: CallOverrides): Promise<string>;
190
274
 
191
275
  pendingOwner(overrides?: CallOverrides): Promise<string>;
192
276
 
277
+ proxiableUUID(overrides?: CallOverrides): Promise<string>;
278
+
193
279
  swap(
194
280
  tokenIn: string,
195
281
  amountIn: BigNumberish,
@@ -203,9 +289,34 @@ export interface PendleSwap extends BaseContract {
203
289
  renounce: boolean,
204
290
  overrides?: CallOverrides
205
291
  ): Promise<void>;
292
+
293
+ upgradeTo(
294
+ newImplementation: string,
295
+ overrides?: CallOverrides
296
+ ): Promise<void>;
297
+
298
+ upgradeToAndCall(
299
+ newImplementation: string,
300
+ data: BytesLike,
301
+ overrides?: CallOverrides
302
+ ): Promise<void>;
206
303
  };
207
304
 
208
305
  filters: {
306
+ "AdminChanged(address,address)"(
307
+ previousAdmin?: null,
308
+ newAdmin?: null
309
+ ): AdminChangedEventFilter;
310
+ AdminChanged(
311
+ previousAdmin?: null,
312
+ newAdmin?: null
313
+ ): AdminChangedEventFilter;
314
+
315
+ "BeaconUpgraded(address)"(
316
+ beacon?: string | null
317
+ ): BeaconUpgradedEventFilter;
318
+ BeaconUpgraded(beacon?: string | null): BeaconUpgradedEventFilter;
319
+
209
320
  "Initialized(uint8)"(version?: null): InitializedEventFilter;
210
321
  Initialized(version?: null): InitializedEventFilter;
211
322
 
@@ -228,6 +339,9 @@ export interface PendleSwap extends BaseContract {
228
339
  tokenIn?: string | null,
229
340
  amountIn?: null
230
341
  ): SwapSingleEventFilter;
342
+
343
+ "Upgraded(address)"(implementation?: string | null): UpgradedEventFilter;
344
+ Upgraded(implementation?: string | null): UpgradedEventFilter;
231
345
  };
232
346
 
233
347
  estimateGas: {
@@ -235,10 +349,16 @@ export interface PendleSwap extends BaseContract {
235
349
  overrides?: Overrides & { from?: string | Promise<string> }
236
350
  ): Promise<BigNumber>;
237
351
 
352
+ initialize(
353
+ overrides?: Overrides & { from?: string | Promise<string> }
354
+ ): Promise<BigNumber>;
355
+
238
356
  owner(overrides?: CallOverrides): Promise<BigNumber>;
239
357
 
240
358
  pendingOwner(overrides?: CallOverrides): Promise<BigNumber>;
241
359
 
360
+ proxiableUUID(overrides?: CallOverrides): Promise<BigNumber>;
361
+
242
362
  swap(
243
363
  tokenIn: string,
244
364
  amountIn: BigNumberish,
@@ -252,6 +372,17 @@ export interface PendleSwap extends BaseContract {
252
372
  renounce: boolean,
253
373
  overrides?: Overrides & { from?: string | Promise<string> }
254
374
  ): Promise<BigNumber>;
375
+
376
+ upgradeTo(
377
+ newImplementation: string,
378
+ overrides?: Overrides & { from?: string | Promise<string> }
379
+ ): Promise<BigNumber>;
380
+
381
+ upgradeToAndCall(
382
+ newImplementation: string,
383
+ data: BytesLike,
384
+ overrides?: PayableOverrides & { from?: string | Promise<string> }
385
+ ): Promise<BigNumber>;
255
386
  };
256
387
 
257
388
  populateTransaction: {
@@ -259,10 +390,16 @@ export interface PendleSwap extends BaseContract {
259
390
  overrides?: Overrides & { from?: string | Promise<string> }
260
391
  ): Promise<PopulatedTransaction>;
261
392
 
393
+ initialize(
394
+ overrides?: Overrides & { from?: string | Promise<string> }
395
+ ): Promise<PopulatedTransaction>;
396
+
262
397
  owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
263
398
 
264
399
  pendingOwner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
265
400
 
401
+ proxiableUUID(overrides?: CallOverrides): Promise<PopulatedTransaction>;
402
+
266
403
  swap(
267
404
  tokenIn: string,
268
405
  amountIn: BigNumberish,
@@ -276,5 +413,16 @@ export interface PendleSwap extends BaseContract {
276
413
  renounce: boolean,
277
414
  overrides?: Overrides & { from?: string | Promise<string> }
278
415
  ): Promise<PopulatedTransaction>;
416
+
417
+ upgradeTo(
418
+ newImplementation: string,
419
+ overrides?: Overrides & { from?: string | Promise<string> }
420
+ ): Promise<PopulatedTransaction>;
421
+
422
+ upgradeToAndCall(
423
+ newImplementation: string,
424
+ data: BytesLike,
425
+ overrides?: PayableOverrides & { from?: string | Promise<string> }
426
+ ): Promise<PopulatedTransaction>;
279
427
  };
280
428
  }
@@ -295,7 +295,7 @@ const _abi = [
295
295
  ];
296
296
 
297
297
  const _bytecode =
298
- "0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100ee565b600154600160a81b900460ff16156100905760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b600154600160a01b900460ff908116146100ec576001805460ff60a01b191660ff60a01b17905560405160ff81527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051611835610125600039600081816102e7015281816103270152818161087a015281816108ba015261093601526118356000f3fe6080604052600436106100815760003560e01c8063078dfbe7146100865780633659cfe6146100a857806348e8e02f146100c85780634e71e0c8146100fe5780634f1ef2861461011357806352d1902d146101265780638129fc1c146101495780638da5cb5b1461015e578063d4231c411461018b578063e30c3978146101b8575b600080fd5b34801561009257600080fd5b506100a66100a136600461115f565b6101d8565b005b3480156100b457600080fd5b506100a66100c33660046111a4565b6102dd565b3480156100d457600080fd5b506100e86100e336600461122a565b6103a5565b6040516100f59190611319565b60405180910390f35b34801561010a57600080fd5b506100a66107c5565b6100a66101213660046113d8565b610870565b34801561013257600080fd5b5061013b610929565b6040519081526020016100f5565b34801561015557600080fd5b506100a66109d7565b34801561016a57600080fd5b5060005461017e906001600160a01b031681565b6040516100f5919061147f565b34801561019757600080fd5b506101ab6101a636600461122a565b610b05565b6040516100f59190611493565b3480156101c457600080fd5b5060015461017e906001600160a01b031681565b6000546001600160a01b0316331461020b5760405162461bcd60e51b8152600401610202906114fb565b60405180910390fd5b81156102bc576001600160a01b0383161515806102255750805b6102695760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b6044820152606401610202565b600080546040516001600160a01b03808716939216916000805160206117b983398151915291a3600080546001600160a01b0385166001600160a01b031991821617909155600180549091169055505050565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036103255760405162461bcd60e51b815260040161020290611530565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610357610ca2565b6001600160a01b03161461037d5760405162461bcd60e51b81526004016102029061156a565b61038681610cbe565b604080516000808252602082019092526103a291839190610ce8565b50565b606081516001600160401b038111156103c0576103c06111c1565b60405190808252806020026020018201604052801561043157816020015b61041e6040518060e00160405280600081526020016000815260200160608152602001600081526020016000815260200160608152602001600081525090565b8152602001906001900390816103de5790505b50905060005b82518110156107be576000838281518110610454576104546115a4565b602002602001015190506000838381518110610472576104726115a4565b60200260200101519050600080836001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156104bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e191906115ba565b6040516370a0823160e01b815291945092506001600160a01b03861691506370a0823190610513908b9060040161147f565b602060405180830381865afa158015610530573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105549190611607565b8352604051630892cd8b60e01b81526001600160a01b03851690630892cd8b90610582908b9060040161147f565b602060405180830381865afa15801561059f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c39190611607565b6020840152604051639262187b60e01b81526001600160a01b03851690639262187b906105f4908b9060040161147f565b6000604051808303816000875af1158015610613573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261063b919081019061168a565b604080850191909152516370a0823160e01b81526001600160a01b038216906370a082319061066e908b9060040161147f565b602060405180830381865afa15801561068b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106af9190611607565b6060840152604051637d24da4d60e01b81526001600160a01b0389811660048301526001602483018190526044830152821690637d24da4d906064016000604051808303816000875af115801561070a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261073291908101906116be565b60a085015260808401526040516370a0823160e01b81526001600160a01b038316906370a0823190610768908b9060040161147f565b602060405180830381865afa158015610785573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a99190611607565b60c09390930192909252505050600101610437565b5092915050565b6001546001600160a01b03163381146108205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726044820152606401610202565b600080546040516001600160a01b03808516939216916000805160206117b983398151915291a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036108b85760405162461bcd60e51b815260040161020290611530565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166108ea610ca2565b6001600160a01b0316146109105760405162461bcd60e51b81526004016102029061156a565b61091982610cbe565b61092582826001610ce8565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109c45760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610202565b5060008051602061179983398151915290565b600154600160a81b900460ff16158080156109fd575060018054600160a01b900460ff16105b80610a245750610a0c30610e53565b158015610a24575060018054600160a01b900460ff16145b610a875760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610202565b6001805460ff60a01b1916600160a01b1790558015610ab4576001805460ff60a81b1916600160a81b1790555b610abc610e62565b80156103a2576001805460ff60a81b191681556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b606081516001600160401b03811115610b2057610b206111c1565b604051908082528060200260200182016040528015610b6657816020015b604080518082019091526000815260606020820152815260200190600190039081610b3e5790505b50905060005b82518110156107be576000838281518110610b8957610b896115a4565b602002602001015190506000838381518110610ba757610ba76115a4565b60200260200101519050816001600160a01b03166370a08231876040518263ffffffff1660e01b8152600401610bdd919061147f565b602060405180830381865afa158015610bfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1e9190611607565b8152604051633bd73ee360e21b81526001600160a01b0383169063ef5cfb8c90610c4c90899060040161147f565b6000604051808303816000875af1158015610c6b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c93919081019061168a565b60209091015250600101610b6c565b600080516020611799833981519152546001600160a01b031690565b6000546001600160a01b031633146103a25760405162461bcd60e51b8152600401610202906114fb565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610d1b576102d883610ee3565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610d75575060408051601f3d908101601f19168201909252610d7291810190611607565b60015b610dd85760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610202565b6000805160206117998339815191528114610e475760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610202565b506102d8838383610f7d565b6001600160a01b03163b151590565b600154600160a81b900460ff16610ecf5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610202565b600080546001600160a01b03191633179055565b610eec81610e53565b610f4e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610202565b60008051602061179983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b610f8683610fa8565b600082511180610f935750805b156102d857610fa28383610fe8565b50505050565b610fb181610ee3565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061100d83836040518060600160405280602781526020016117d960279139611014565b9392505050565b6060600080856001600160a01b0316856040516110319190611729565b600060405180830381855af49150503d806000811461106c576040519150601f19603f3d011682016040523d82523d6000602084013e611071565b606091505b50915091506110828683838761108c565b9695505050505050565b606083156110f95782516000036110f2576110a685610e53565b6110f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610202565b5081611103565b611103838361110b565b949350505050565b81511561111b5781518083602001fd5b8060405162461bcd60e51b81526004016102029190611745565b6001600160a01b03811681146103a257600080fd5b8035801515811461115a57600080fd5b919050565b60008060006060848603121561117457600080fd5b833561117f81611135565b925061118d6020850161114a565b915061119b6040850161114a565b90509250925092565b6000602082840312156111b657600080fd5b813561100d81611135565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156111ff576111ff6111c1565b604052919050565b60006001600160401b03821115611220576112206111c1565b5060051b60200190565b6000806040838503121561123d57600080fd5b823561124881611135565b91506020838101356001600160401b0381111561126457600080fd5b8401601f8101861361127557600080fd5b803561128861128382611207565b6111d7565b81815260059190911b820183019083810190888311156112a757600080fd5b928401925b828410156112ce5783356112bf81611135565b825292840192908401906112ac565b80955050505050509250929050565b60008151808452602080850194506020840160005b8381101561130e578151875295820195908201906001016112f2565b509495945050505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156113ca57603f19898403018552815160e0815185528882015189860152878201518189870152611378828701826112dd565b9150506060808301518187015250608080830151818701525060a080830151868303828801526113a883826112dd565b60c0948501519790940196909652505094870194925090860190600101611342565b509098975050505050505050565b600080604083850312156113eb57600080fd5b82356113f681611135565b91506020838101356001600160401b038082111561141357600080fd5b818601915086601f83011261142757600080fd5b813581811115611439576114396111c1565b61144b601f8201601f191685016111d7565b9150808252878482850101111561146157600080fd5b80848401858401376000848284010152508093505050509250929050565b6001600160a01b0391909116815260200190565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156113ca57888303603f190185528151805184528701518784018790526114e8878501826112dd565b95880195935050908601906001016114bc565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602c9082015260008051602061177983398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602061177983398151915260408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000806000606084860312156115cf57600080fd5b83516115da81611135565b60208501519093506115eb81611135565b60408501519092506115fc81611135565b809150509250925092565b60006020828403121561161957600080fd5b5051919050565b600082601f83011261163157600080fd5b8151602061164161128383611207565b8083825260208201915060208460051b87010193508684111561166357600080fd5b602086015b8481101561167f5780518352918301918301611668565b509695505050505050565b60006020828403121561169c57600080fd5b81516001600160401b038111156116b257600080fd5b61110384828501611620565b600080604083850312156116d157600080fd5b825160208401519092506001600160401b038111156116ef57600080fd5b6116fb85828601611620565b9150509250929050565b60005b83811015611720578181015183820152602001611708565b50506000910152565b6000825161173b818460208701611705565b9190910192915050565b6020815260008251806020840152611764816040850160208701611705565b601f01601f1916919091016040019291505056fe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122092ebcb01d9e840a1f07a688ef9ebb6a3906c566ed3b1a4240f52c36108a2938d64736f6c63430008170033";
298
+ "0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100ee565b600154600160a81b900460ff16156100905760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b600154600160a01b900460ff908116146100ec576001805460ff60a01b191660ff60a01b17905560405160ff81527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051611a1e610125600039600081816102e7015281816103270152818161079d015281816107dd01526108590152611a1e6000f3fe6080604052600436106100815760003560e01c8063078dfbe7146100865780633659cfe6146100a857806348e8e02f146100c85780634e71e0c8146100fe5780634f1ef2861461011357806352d1902d146101265780638129fc1c146101495780638da5cb5b1461015e578063d4231c411461018b578063e30c3978146101b8575b600080fd5b34801561009257600080fd5b506100a66100a13660046112a8565b6101d8565b005b3480156100b457600080fd5b506100a66100c33660046112ed565b6102dd565b3480156100d457600080fd5b506100e86100e336600461137a565b6103a5565b6040516100f59190611469565b60405180910390f35b34801561010a57600080fd5b506100a66106e8565b6100a6610121366004611528565b610793565b34801561013257600080fd5b5061013b61084c565b6040519081526020016100f5565b34801561015557600080fd5b506100a66108fa565b34801561016a57600080fd5b5060005461017e906001600160a01b031681565b6040516100f591906115cf565b34801561019757600080fd5b506101ab6101a636600461137a565b610a28565b6040516100f591906115e3565b3480156101c457600080fd5b5060015461017e906001600160a01b031681565b6000546001600160a01b0316331461020b5760405162461bcd60e51b81526004016102029061164b565b60405180910390fd5b81156102bc576001600160a01b0383161515806102255750805b6102695760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b6044820152606401610202565b600080546040516001600160a01b03808716939216916000805160206119a283398151915291a3600080546001600160a01b0385166001600160a01b031991821617909155600180549091169055505050565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036103255760405162461bcd60e51b815260040161020290611680565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610357610b5c565b6001600160a01b03161461037d5760405162461bcd60e51b8152600401610202906116ba565b61038681610b78565b604080516000808252602082019092526103a291839190610ba2565b50565b606081516001600160401b038111156103c0576103c0611311565b60405190808252806020026020018201604052801561043157816020015b61041e6040518060e00160405280600081526020016000815260200160608152602001600081526020016000815260200160608152602001600081525090565b8152602001906001900390816103de5790505b50905060005b82518110156106e1576000838281518110610454576104546116f4565b602002602001015190506000838381518110610472576104726116f4565b60200260200101519050600080836001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156104bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e1919061170a565b6040516370a0823160e01b815291945092506001600160a01b03861691506370a0823190610513908b906004016115cf565b602060405180830381865afa158015610530573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105549190611757565b8352604051630892cd8b60e01b81526001600160a01b03851690630892cd8b90610582908b906004016115cf565b602060405180830381865afa15801561059f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c39190611757565b60208401526105d28489610d0d565b604080850191909152516370a0823160e01b81526001600160a01b038216906370a0823190610605908b906004016115cf565b602060405180830381865afa158015610622573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106469190611757565b60608401526106558189610e38565b60a085015260808401526040516370a0823160e01b81526001600160a01b038316906370a082319061068b908b906004016115cf565b602060405180830381865afa1580156106a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106cc9190611757565b60c09390930192909252505050600101610437565b5092915050565b6001546001600160a01b03163381146107435760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726044820152606401610202565b600080546040516001600160a01b03808516939216916000805160206119a283398151915291a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107db5760405162461bcd60e51b815260040161020290611680565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661080d610b5c565b6001600160a01b0316146108335760405162461bcd60e51b8152600401610202906116ba565b61083c82610b78565b61084882826001610ba2565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108e75760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610202565b5060008051602061198283398151915290565b600154600160a81b900460ff1615808015610920575060018054600160a01b900460ff16105b80610947575061092f30610f79565b158015610947575060018054600160a01b900460ff16145b6109aa5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610202565b6001805460ff60a01b1916600160a01b17905580156109d7576001805460ff60a81b1916600160a81b1790555b6109df610f88565b80156103a2576001805460ff60a81b191681556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b606081516001600160401b03811115610a4357610a43611311565b604051908082528060200260200182016040528015610a8957816020015b604080518082019091526000815260606020820152815260200190600190039081610a615790505b50905060005b82518110156106e1576000838281518110610aac57610aac6116f4565b602002602001015190506000838381518110610aca57610aca6116f4565b60200260200101519050816001600160a01b03166370a08231876040518263ffffffff1660e01b8152600401610b0091906115cf565b602060405180830381865afa158015610b1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b419190611757565b8152610b4d8287611009565b60209091015250600101610a8f565b600080516020611982833981519152546001600160a01b031690565b6000546001600160a01b031633146103a25760405162461bcd60e51b81526004016102029061164b565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610bd5576102d883611038565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610c2f575060408051601f3d908101601f19168201909252610c2c91810190611757565b60015b610c925760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610202565b6000805160206119828339815191528114610d015760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610202565b506102d88383836110d2565b604051639262187b60e01b81526060906001600160a01b03841690639262187b90610d3c9085906004016115cf565b6000604051808303816000875af1925050508015610d7c57506040513d6000823e601f3d908101601f19168201604052610d7991908101906117da565b60015b610e2f57826001600160a01b031663c4f59f9b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610dbe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610de6919081019061180e565b516001600160401b03811115610dfe57610dfe611311565b604051908082528060200260200182016040528015610e27578160200160208202803683370190505b509050610e32565b90505b92915050565b604051637d24da4d60e01b81526001600160a01b0382811660048301526001602483018190526044830152600091606091851690637d24da4d906064016000604051808303816000875af1925050508015610eb557506040513d6000823e601f3d908101601f19168201604052610eb291908101906118a7565b60015b610f6c576000846001600160a01b031663c4f59f9b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610ef9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f21919081019061180e565b516001600160401b03811115610f3957610f39611311565b604051908082528060200260200182016040528015610f62578160200160208202803683370190505b5091509150610f72565b90925090505b9250929050565b6001600160a01b03163b151590565b600154600160a81b900460ff16610ff55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610202565b600080546001600160a01b03191633179055565b604051633bd73ee360e21b81526060906001600160a01b0384169063ef5cfb8c90610d3c9085906004016115cf565b61104181610f79565b6110a35760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610202565b60008051602061198283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6110db836110fd565b6000825111806110e85750805b156102d8576110f7838361113d565b50505050565b61110681611038565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610e2f83836040518060600160405280602781526020016119c2602791396060600080856001600160a01b03168560405161117a9190611912565b600060405180830381855af49150503d80600081146111b5576040519150601f19603f3d011682016040523d82523d6000602084013e6111ba565b606091505b50915091506111cb868383876111d5565b9695505050505050565b6060831561124257825160000361123b576111ef85610f79565b61123b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610202565b508161124c565b61124c8383611254565b949350505050565b8151156112645781518083602001fd5b8060405162461bcd60e51b8152600401610202919061192e565b6001600160a01b03811681146103a257600080fd5b803580151581146112a357600080fd5b919050565b6000806000606084860312156112bd57600080fd5b83356112c88161127e565b92506112d660208501611293565b91506112e460408501611293565b90509250925092565b6000602082840312156112ff57600080fd5b813561130a8161127e565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561134f5761134f611311565b604052919050565b60006001600160401b0382111561137057611370611311565b5060051b60200190565b6000806040838503121561138d57600080fd5b82356113988161127e565b91506020838101356001600160401b038111156113b457600080fd5b8401601f810186136113c557600080fd5b80356113d86113d382611357565b611327565b81815260059190911b820183019083810190888311156113f757600080fd5b928401925b8284101561141e57833561140f8161127e565b825292840192908401906113fc565b80955050505050509250929050565b60008151808452602080850194506020840160005b8381101561145e57815187529582019590820190600101611442565b509495945050505050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561151a57603f19898403018552815160e08151855288820151898601528782015181898701526114c88287018261142d565b9150506060808301518187015250608080830151818701525060a080830151868303828801526114f8838261142d565b60c0948501519790940196909652505094870194925090860190600101611492565b509098975050505050505050565b6000806040838503121561153b57600080fd5b82356115468161127e565b91506020838101356001600160401b038082111561156357600080fd5b818601915086601f83011261157757600080fd5b81358181111561158957611589611311565b61159b601f8201601f19168501611327565b915080825287848285010111156115b157600080fd5b80848401858401376000848284010152508093505050509250929050565b6001600160a01b0391909116815260200190565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561151a57888303603f190185528151805184528701518784018790526116388785018261142d565b958801959350509086019060010161160c565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602c9082015260008051602061196283398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602061196283398151915260408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60008060006060848603121561171f57600080fd5b835161172a8161127e565b602085015190935061173b8161127e565b604085015190925061174c8161127e565b809150509250925092565b60006020828403121561176957600080fd5b5051919050565b600082601f83011261178157600080fd5b815160206117916113d383611357565b8083825260208201915060208460051b8701019350868411156117b357600080fd5b602086015b848110156117cf57805183529183019183016117b8565b509695505050505050565b6000602082840312156117ec57600080fd5b81516001600160401b0381111561180257600080fd5b61124c84828501611770565b6000602080838503121561182157600080fd5b82516001600160401b0381111561183757600080fd5b8301601f8101851361184857600080fd5b80516118566113d382611357565b81815260059190911b8201830190838101908783111561187557600080fd5b928401925b8284101561189c57835161188d8161127e565b8252928401929084019061187a565b979650505050505050565b600080604083850312156118ba57600080fd5b825160208401519092506001600160401b038111156118d857600080fd5b6118e485828601611770565b9150509250929050565b60005b838110156119095781810151838201526020016118f1565b50506000910152565b600082516119248184602087016118ee565b9190910192915050565b602081526000825180602084015261194d8160408501602087016118ee565b601f01601f1916919091016040019291505056fe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206873f4074d0e8f00e20bcae1b47399ab6e214944bbf27b56e11ca3240609762064736f6c63430008170033";
299
299
 
300
300
  type BalanceReaderConstructorParams =
301
301
  | [signer?: Signer]