@meterio/sumer-js 0.2.84 → 0.2.86

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/browser/sumer.min.js +6 -6
  2. package/dist/nodejs/abi.d.ts +36 -0
  3. package/dist/nodejs/abi.js +130 -0
  4. package/dist/nodejs/abi.js.map +1 -1
  5. package/dist/nodejs/constants/merlin.js +1 -1
  6. package/dist/nodejs/index.d.ts +36 -0
  7. package/dist/nodejs/typechain/contracts/Interfaces/ILayerBank.d.ts +25 -0
  8. package/dist/nodejs/typechain/contracts/Interfaces/ILayerBank.js +3 -0
  9. package/dist/nodejs/typechain/contracts/Interfaces/ILayerBank.js.map +1 -0
  10. package/dist/nodejs/typechain/contracts/Interfaces/index.d.ts +1 -0
  11. package/dist/nodejs/typechain/contracts/Oracle/FeedPriceOracle.d.ts +43 -1
  12. package/dist/nodejs/typechain/contracts/Oracle/LayerBankAdapter.sol/ILayerBank.d.ts +25 -0
  13. package/dist/nodejs/typechain/contracts/Oracle/LayerBankAdapter.sol/ILayerBank.js +3 -0
  14. package/dist/nodejs/typechain/contracts/Oracle/LayerBankAdapter.sol/ILayerBank.js.map +1 -0
  15. package/dist/nodejs/typechain/contracts/Oracle/LayerBankAdapter.sol/LayerBankAdapter.d.ts +29 -0
  16. package/dist/nodejs/typechain/contracts/Oracle/LayerBankAdapter.sol/LayerBankAdapter.js +3 -0
  17. package/dist/nodejs/typechain/contracts/Oracle/LayerBankAdapter.sol/LayerBankAdapter.js.map +1 -0
  18. package/dist/nodejs/typechain/contracts/Oracle/LayerBankAdapter.sol/index.d.ts +2 -0
  19. package/dist/nodejs/typechain/contracts/Oracle/LayerBankAdapter.sol/index.js +3 -0
  20. package/dist/nodejs/typechain/contracts/Oracle/LayerBankAdapter.sol/index.js.map +1 -0
  21. package/dist/nodejs/typechain/contracts/Oracle/index.d.ts +10 -0
  22. package/dist/nodejs/typechain/factories/contracts/Interfaces/ILayerBank__factory.d.ts +21 -0
  23. package/dist/nodejs/typechain/factories/contracts/Interfaces/ILayerBank__factory.js +39 -0
  24. package/dist/nodejs/typechain/factories/contracts/Interfaces/ILayerBank__factory.js.map +1 -0
  25. package/dist/nodejs/typechain/factories/contracts/Interfaces/index.d.ts +1 -0
  26. package/dist/nodejs/typechain/factories/contracts/Interfaces/index.js +3 -1
  27. package/dist/nodejs/typechain/factories/contracts/Interfaces/index.js.map +1 -1
  28. package/dist/nodejs/typechain/factories/contracts/Oracle/FeedPriceOracle__factory.d.ts +47 -1
  29. package/dist/nodejs/typechain/factories/contracts/Oracle/FeedPriceOracle__factory.js +61 -1
  30. package/dist/nodejs/typechain/factories/contracts/Oracle/FeedPriceOracle__factory.js.map +1 -1
  31. package/dist/nodejs/typechain/factories/contracts/Oracle/LayerBankAdapter.sol/ILayerBank__factory.d.ts +21 -0
  32. package/dist/nodejs/typechain/factories/contracts/Oracle/LayerBankAdapter.sol/ILayerBank__factory.js +39 -0
  33. package/dist/nodejs/typechain/factories/contracts/Oracle/LayerBankAdapter.sol/ILayerBank__factory.js.map +1 -0
  34. package/dist/nodejs/typechain/factories/contracts/Oracle/LayerBankAdapter.sol/LayerBankAdapter__factory.d.ts +58 -0
  35. package/dist/nodejs/typechain/factories/contracts/Oracle/LayerBankAdapter.sol/LayerBankAdapter__factory.js +87 -0
  36. package/dist/nodejs/typechain/factories/contracts/Oracle/LayerBankAdapter.sol/LayerBankAdapter__factory.js.map +1 -0
  37. package/dist/nodejs/typechain/factories/contracts/Oracle/LayerBankAdapter.sol/index.d.ts +2 -0
  38. package/dist/nodejs/typechain/factories/contracts/Oracle/LayerBankAdapter.sol/index.js +11 -0
  39. package/dist/nodejs/typechain/factories/contracts/Oracle/LayerBankAdapter.sol/index.js.map +1 -0
  40. package/dist/nodejs/typechain/factories/contracts/Oracle/index.d.ts +5 -0
  41. package/dist/nodejs/typechain/factories/contracts/Oracle/index.js +6 -1
  42. package/dist/nodejs/typechain/factories/contracts/Oracle/index.js.map +1 -1
  43. package/dist/nodejs/typechain/hardhat.d.ts +198 -0
  44. package/dist/nodejs/typechain/index.d.ts +20 -0
  45. package/dist/nodejs/typechain/index.js +22 -2
  46. package/dist/nodejs/typechain/index.js.map +1 -1
  47. package/package.json +1 -1
@@ -8,7 +8,7 @@ exports.merlin = {
8
8
  "Sumer": "0x553d713e0fB958932b6C40ABAf0b5A1fFae73Da2",
9
9
  "SUMER": "0x553d713e0fB958932b6C40ABAf0b5A1fFae73Da2",
10
10
  "CompoundLens": "0x98Ec4C9605D69083089eCAf353037b40017b758e",
11
- "FeedPriceOracle": "0x58235d9C8c9f136c0A4e9761186dB0329243bbB8",
11
+ "FeedPriceOracle": "0xddab3eb6028a44Fb31F9Da92eA1608809248B6b3",
12
12
  "CompLogic": "0xB2fF02eEF85DC4eaE95Ab32AA887E0cC69DF8d8E",
13
13
  "RedemptionManager": "0x8c1ad24cA39FE45E97CD9862364128406E3B03F3",
14
14
  "Timelock": "0xA6ae238D9CaF65DFA67670FDE3156EFeE9334488",
@@ -1251,6 +1251,21 @@ declare const Sumer: {
1251
1251
  stateMutability: string;
1252
1252
  type: string;
1253
1253
  }[];
1254
+ ILayerBank: {
1255
+ inputs: {
1256
+ internalType: string;
1257
+ name: string;
1258
+ type: string;
1259
+ }[];
1260
+ name: string;
1261
+ outputs: {
1262
+ internalType: string;
1263
+ name: string;
1264
+ type: string;
1265
+ }[];
1266
+ stateMutability: string;
1267
+ type: string;
1268
+ }[];
1254
1269
  IPMarket: ({
1255
1270
  anonymous: boolean;
1256
1271
  inputs: {
@@ -1704,6 +1719,27 @@ declare const Sumer: {
1704
1719
  type: string;
1705
1720
  anonymous?: undefined;
1706
1721
  })[];
1722
+ LayerBankAdapter: ({
1723
+ inputs: {
1724
+ internalType: string;
1725
+ name: string;
1726
+ type: string;
1727
+ }[];
1728
+ stateMutability: string;
1729
+ type: string;
1730
+ name?: undefined;
1731
+ outputs?: undefined;
1732
+ } | {
1733
+ inputs: any[];
1734
+ name: string;
1735
+ outputs: {
1736
+ internalType: string;
1737
+ name: string;
1738
+ type: string;
1739
+ }[];
1740
+ stateMutability: string;
1741
+ type: string;
1742
+ })[];
1707
1743
  PriceAdapter: {
1708
1744
  inputs: any[];
1709
1745
  name: string;
@@ -0,0 +1,25 @@
1
+ import type { BaseContract, BytesLike, FunctionFragment, Result, Interface, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers";
2
+ import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedListener, TypedContractMethod } from "../../common";
3
+ export interface ILayerBankInterface extends Interface {
4
+ getFunction(nameOrSignature: "priceOf"): FunctionFragment;
5
+ encodeFunctionData(functionFragment: "priceOf", values: [AddressLike]): string;
6
+ decodeFunctionResult(functionFragment: "priceOf", data: BytesLike): Result;
7
+ }
8
+ export interface ILayerBank extends BaseContract {
9
+ connect(runner?: ContractRunner | null): ILayerBank;
10
+ waitForDeployment(): Promise<this>;
11
+ interface: ILayerBankInterface;
12
+ queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
13
+ queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
14
+ on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
15
+ on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
16
+ once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
17
+ once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
18
+ listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>;
19
+ listeners(eventName?: string): Promise<Array<Listener>>;
20
+ removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>;
21
+ priceOf: TypedContractMethod<[token: AddressLike], [bigint], "view">;
22
+ getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
23
+ getFunction(nameOrSignature: "priceOf"): TypedContractMethod<[token: AddressLike], [bigint], "view">;
24
+ filters: {};
25
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ILayerBank.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ILayerBank.js","sourceRoot":"","sources":["../../../../../src/typechain/contracts/Interfaces/ILayerBank.ts"],"names":[],"mappings":""}
@@ -10,6 +10,7 @@ export type { IEIP712 } from "./IEIP712";
10
10
  export type { IGovernorAlpha } from "./IGovernorAlpha";
11
11
  export type { IGovernorBravo } from "./IGovernorBravo";
12
12
  export type { IInterestRateModel } from "./IInterestRateModel";
13
+ export type { ILayerBank } from "./ILayerBank";
13
14
  export type { IPMarket } from "./IPMarket";
14
15
  export type { IPPrincipalToken } from "./IPPrincipalToken";
15
16
  export type { IPYieldToken } from "./IPYieldToken";
@@ -1,7 +1,7 @@
1
1
  import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers";
2
2
  import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "../../common";
3
3
  export interface FeedPriceOracleInterface extends Interface {
4
- getFunction(nameOrSignature: "acceptOwnership" | "adapterFeeds" | "chainlinkFeeds" | "fixedPrices" | "getFixedPrice" | "getPrice" | "getUnderlyingPrice" | "getUnderlyingPrices" | "isPriceOracle" | "mainSource" | "nativeAsset" | "nativeMarket" | "owner" | "pendingOwner" | "pendleFeeds" | "pendlePtOracle" | "pythFeeds" | "pythOracle" | "redstoneFeeds" | "removeAdapterFeed" | "removeChainlinkFeed" | "removeFixedPrice" | "removePendleFeed" | "removePythFeed" | "removeRedstoneFeed" | "renounceOwnership" | "setAdapterFeed" | "setChainlinkFeed" | "setFixedPrice" | "setMainSource" | "setPendleFeed" | "setPendlePtOracle" | "setPythFeed" | "setPythOracle" | "setRedStoneFeed" | "transferOwnership"): FunctionFragment;
4
+ getFunction(nameOrSignature: "acceptOwnership" | "adapterFeeds" | "chainlinkFeeds" | "fixedPrices" | "getFixedPrice" | "getPrice" | "getUnderlyingPrice" | "getUnderlyingPrices" | "isPriceOracle" | "layerbankFeeds" | "mainSource" | "nativeAsset" | "nativeMarket" | "owner" | "pendingOwner" | "pendleFeeds" | "pendlePtOracle" | "pythFeeds" | "pythOracle" | "redstoneFeeds" | "removeAdapterFeed" | "removeChainlinkFeed" | "removeFixedPrice" | "removeLayerbankFeed" | "removePendleFeed" | "removePythFeed" | "removeRedstoneFeed" | "renounceOwnership" | "setAdapterFeed" | "setChainlinkFeed" | "setFixedPrice" | "setLayerbankFeed" | "setMainSource" | "setPendleFeed" | "setPendlePtOracle" | "setPythFeed" | "setPythOracle" | "setRedStoneFeed" | "transferOwnership"): FunctionFragment;
5
5
  getEvent(nameOrSignatureOrTopic: "NewFeed" | "NewPendlePtOracle" | "NewPythOracle" | "OwnershipTransferStarted" | "OwnershipTransferred"): EventFragment;
6
6
  encodeFunctionData(functionFragment: "acceptOwnership", values?: undefined): string;
7
7
  encodeFunctionData(functionFragment: "adapterFeeds", values: [AddressLike]): string;
@@ -12,6 +12,7 @@ export interface FeedPriceOracleInterface extends Interface {
12
12
  encodeFunctionData(functionFragment: "getUnderlyingPrice", values: [AddressLike]): string;
13
13
  encodeFunctionData(functionFragment: "getUnderlyingPrices", values: [AddressLike[]]): string;
14
14
  encodeFunctionData(functionFragment: "isPriceOracle", values?: undefined): string;
15
+ encodeFunctionData(functionFragment: "layerbankFeeds", values: [AddressLike]): string;
15
16
  encodeFunctionData(functionFragment: "mainSource", values: [AddressLike]): string;
16
17
  encodeFunctionData(functionFragment: "nativeAsset", values?: undefined): string;
17
18
  encodeFunctionData(functionFragment: "nativeMarket", values?: undefined): string;
@@ -25,6 +26,7 @@ export interface FeedPriceOracleInterface extends Interface {
25
26
  encodeFunctionData(functionFragment: "removeAdapterFeed", values: [AddressLike]): string;
26
27
  encodeFunctionData(functionFragment: "removeChainlinkFeed", values: [AddressLike]): string;
27
28
  encodeFunctionData(functionFragment: "removeFixedPrice", values: [AddressLike]): string;
29
+ encodeFunctionData(functionFragment: "removeLayerbankFeed", values: [AddressLike]): string;
28
30
  encodeFunctionData(functionFragment: "removePendleFeed", values: [AddressLike]): string;
29
31
  encodeFunctionData(functionFragment: "removePythFeed", values: [AddressLike]): string;
30
32
  encodeFunctionData(functionFragment: "removeRedstoneFeed", values: [AddressLike]): string;
@@ -32,6 +34,7 @@ export interface FeedPriceOracleInterface extends Interface {
32
34
  encodeFunctionData(functionFragment: "setAdapterFeed", values: [AddressLike, AddressLike, AddressLike]): string;
33
35
  encodeFunctionData(functionFragment: "setChainlinkFeed", values: [AddressLike, AddressLike, BigNumberish, AddressLike]): string;
34
36
  encodeFunctionData(functionFragment: "setFixedPrice", values: [AddressLike, BigNumberish]): string;
37
+ encodeFunctionData(functionFragment: "setLayerbankFeed", values: [AddressLike, AddressLike, AddressLike]): string;
35
38
  encodeFunctionData(functionFragment: "setMainSource", values: [AddressLike, BigNumberish]): string;
36
39
  encodeFunctionData(functionFragment: "setPendleFeed", values: [AddressLike, AddressLike, BigNumberish, AddressLike]): string;
37
40
  encodeFunctionData(functionFragment: "setPendlePtOracle", values: [AddressLike]): string;
@@ -48,6 +51,7 @@ export interface FeedPriceOracleInterface extends Interface {
48
51
  decodeFunctionResult(functionFragment: "getUnderlyingPrice", data: BytesLike): Result;
49
52
  decodeFunctionResult(functionFragment: "getUnderlyingPrices", data: BytesLike): Result;
50
53
  decodeFunctionResult(functionFragment: "isPriceOracle", data: BytesLike): Result;
54
+ decodeFunctionResult(functionFragment: "layerbankFeeds", data: BytesLike): Result;
51
55
  decodeFunctionResult(functionFragment: "mainSource", data: BytesLike): Result;
52
56
  decodeFunctionResult(functionFragment: "nativeAsset", data: BytesLike): Result;
53
57
  decodeFunctionResult(functionFragment: "nativeMarket", data: BytesLike): Result;
@@ -61,6 +65,7 @@ export interface FeedPriceOracleInterface extends Interface {
61
65
  decodeFunctionResult(functionFragment: "removeAdapterFeed", data: BytesLike): Result;
62
66
  decodeFunctionResult(functionFragment: "removeChainlinkFeed", data: BytesLike): Result;
63
67
  decodeFunctionResult(functionFragment: "removeFixedPrice", data: BytesLike): Result;
68
+ decodeFunctionResult(functionFragment: "removeLayerbankFeed", data: BytesLike): Result;
64
69
  decodeFunctionResult(functionFragment: "removePendleFeed", data: BytesLike): Result;
65
70
  decodeFunctionResult(functionFragment: "removePythFeed", data: BytesLike): Result;
66
71
  decodeFunctionResult(functionFragment: "removeRedstoneFeed", data: BytesLike): Result;
@@ -68,6 +73,7 @@ export interface FeedPriceOracleInterface extends Interface {
68
73
  decodeFunctionResult(functionFragment: "setAdapterFeed", data: BytesLike): Result;
69
74
  decodeFunctionResult(functionFragment: "setChainlinkFeed", data: BytesLike): Result;
70
75
  decodeFunctionResult(functionFragment: "setFixedPrice", data: BytesLike): Result;
76
+ decodeFunctionResult(functionFragment: "setLayerbankFeed", data: BytesLike): Result;
71
77
  decodeFunctionResult(functionFragment: "setMainSource", data: BytesLike): Result;
72
78
  decodeFunctionResult(functionFragment: "setPendleFeed", data: BytesLike): Result;
73
79
  decodeFunctionResult(functionFragment: "setPendlePtOracle", data: BytesLike): Result;
@@ -202,6 +208,14 @@ export interface FeedPriceOracle extends BaseContract {
202
208
  bigint[]
203
209
  ], "view">;
204
210
  isPriceOracle: TypedContractMethod<[], [boolean], "view">;
211
+ layerbankFeeds: TypedContractMethod<[
212
+ arg0: AddressLike
213
+ ], [
214
+ [string, string] & {
215
+ feedAddr: string;
216
+ feedAssetAddr: string;
217
+ }
218
+ ], "view">;
205
219
  mainSource: TypedContractMethod<[arg0: AddressLike], [bigint], "view">;
206
220
  nativeAsset: TypedContractMethod<[], [string], "view">;
207
221
  nativeMarket: TypedContractMethod<[], [string], "view">;
@@ -260,6 +274,11 @@ export interface FeedPriceOracle extends BaseContract {
260
274
  ], [
261
275
  void
262
276
  ], "nonpayable">;
277
+ removeLayerbankFeed: TypedContractMethod<[
278
+ asset: AddressLike
279
+ ], [
280
+ void
281
+ ], "nonpayable">;
263
282
  removePendleFeed: TypedContractMethod<[
264
283
  asset: AddressLike
265
284
  ], [
@@ -297,6 +316,13 @@ export interface FeedPriceOracle extends BaseContract {
297
316
  ], [
298
317
  void
299
318
  ], "nonpayable">;
319
+ setLayerbankFeed: TypedContractMethod<[
320
+ asset: AddressLike,
321
+ feedAddr: AddressLike,
322
+ feedAssetAddr: AddressLike
323
+ ], [
324
+ void
325
+ ], "nonpayable">;
300
326
  setMainSource: TypedContractMethod<[
301
327
  asset: AddressLike,
302
328
  source: BigNumberish
@@ -372,6 +398,14 @@ export interface FeedPriceOracle extends BaseContract {
372
398
  getFunction(nameOrSignature: "getUnderlyingPrice"): TypedContractMethod<[ctoken: AddressLike], [bigint], "view">;
373
399
  getFunction(nameOrSignature: "getUnderlyingPrices"): TypedContractMethod<[cTokens: AddressLike[]], [bigint[]], "view">;
374
400
  getFunction(nameOrSignature: "isPriceOracle"): TypedContractMethod<[], [boolean], "view">;
401
+ getFunction(nameOrSignature: "layerbankFeeds"): TypedContractMethod<[
402
+ arg0: AddressLike
403
+ ], [
404
+ [string, string] & {
405
+ feedAddr: string;
406
+ feedAssetAddr: string;
407
+ }
408
+ ], "view">;
375
409
  getFunction(nameOrSignature: "mainSource"): TypedContractMethod<[arg0: AddressLike], [bigint], "view">;
376
410
  getFunction(nameOrSignature: "nativeAsset"): TypedContractMethod<[], [string], "view">;
377
411
  getFunction(nameOrSignature: "nativeMarket"): TypedContractMethod<[], [string], "view">;
@@ -418,6 +452,7 @@ export interface FeedPriceOracle extends BaseContract {
418
452
  getFunction(nameOrSignature: "removeAdapterFeed"): TypedContractMethod<[asset: AddressLike], [void], "nonpayable">;
419
453
  getFunction(nameOrSignature: "removeChainlinkFeed"): TypedContractMethod<[asset: AddressLike], [void], "nonpayable">;
420
454
  getFunction(nameOrSignature: "removeFixedPrice"): TypedContractMethod<[asset: AddressLike], [void], "nonpayable">;
455
+ getFunction(nameOrSignature: "removeLayerbankFeed"): TypedContractMethod<[asset: AddressLike], [void], "nonpayable">;
421
456
  getFunction(nameOrSignature: "removePendleFeed"): TypedContractMethod<[asset: AddressLike], [void], "nonpayable">;
422
457
  getFunction(nameOrSignature: "removePythFeed"): TypedContractMethod<[asset: AddressLike], [void], "nonpayable">;
423
458
  getFunction(nameOrSignature: "removeRedstoneFeed"): TypedContractMethod<[asset: AddressLike], [void], "nonpayable">;
@@ -443,6 +478,13 @@ export interface FeedPriceOracle extends BaseContract {
443
478
  ], [
444
479
  void
445
480
  ], "nonpayable">;
481
+ getFunction(nameOrSignature: "setLayerbankFeed"): TypedContractMethod<[
482
+ asset: AddressLike,
483
+ feedAddr: AddressLike,
484
+ feedAssetAddr: AddressLike
485
+ ], [
486
+ void
487
+ ], "nonpayable">;
446
488
  getFunction(nameOrSignature: "setMainSource"): TypedContractMethod<[
447
489
  asset: AddressLike,
448
490
  source: BigNumberish
@@ -0,0 +1,25 @@
1
+ import type { BaseContract, BytesLike, FunctionFragment, Result, Interface, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers";
2
+ import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedListener, TypedContractMethod } from "../../../common";
3
+ export interface ILayerBankInterface extends Interface {
4
+ getFunction(nameOrSignature: "priceOf"): FunctionFragment;
5
+ encodeFunctionData(functionFragment: "priceOf", values: [AddressLike]): string;
6
+ decodeFunctionResult(functionFragment: "priceOf", data: BytesLike): Result;
7
+ }
8
+ export interface ILayerBank extends BaseContract {
9
+ connect(runner?: ContractRunner | null): ILayerBank;
10
+ waitForDeployment(): Promise<this>;
11
+ interface: ILayerBankInterface;
12
+ queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
13
+ queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
14
+ on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
15
+ on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
16
+ once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
17
+ once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
18
+ listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>;
19
+ listeners(eventName?: string): Promise<Array<Listener>>;
20
+ removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>;
21
+ priceOf: TypedContractMethod<[token: AddressLike], [bigint], "view">;
22
+ getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
23
+ getFunction(nameOrSignature: "priceOf"): TypedContractMethod<[token: AddressLike], [bigint], "view">;
24
+ filters: {};
25
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ILayerBank.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ILayerBank.js","sourceRoot":"","sources":["../../../../../../src/typechain/contracts/Oracle/LayerBankAdapter.sol/ILayerBank.ts"],"names":[],"mappings":""}
@@ -0,0 +1,29 @@
1
+ import type { BaseContract, BytesLike, FunctionFragment, Result, Interface, ContractRunner, ContractMethod, Listener } from "ethers";
2
+ import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedListener, TypedContractMethod } from "../../../common";
3
+ export interface LayerBankAdapterInterface extends Interface {
4
+ getFunction(nameOrSignature: "exchangeRate" | "feedAddr"): FunctionFragment;
5
+ encodeFunctionData(functionFragment: "exchangeRate", values?: undefined): string;
6
+ encodeFunctionData(functionFragment: "feedAddr", values?: undefined): string;
7
+ decodeFunctionResult(functionFragment: "exchangeRate", data: BytesLike): Result;
8
+ decodeFunctionResult(functionFragment: "feedAddr", data: BytesLike): Result;
9
+ }
10
+ export interface LayerBankAdapter extends BaseContract {
11
+ connect(runner?: ContractRunner | null): LayerBankAdapter;
12
+ waitForDeployment(): Promise<this>;
13
+ interface: LayerBankAdapterInterface;
14
+ queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
15
+ queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
16
+ on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
17
+ on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
18
+ once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
19
+ once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
20
+ listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>;
21
+ listeners(eventName?: string): Promise<Array<Listener>>;
22
+ removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>;
23
+ exchangeRate: TypedContractMethod<[], [bigint], "view">;
24
+ feedAddr: TypedContractMethod<[], [string], "view">;
25
+ getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
26
+ getFunction(nameOrSignature: "exchangeRate"): TypedContractMethod<[], [bigint], "view">;
27
+ getFunction(nameOrSignature: "feedAddr"): TypedContractMethod<[], [string], "view">;
28
+ filters: {};
29
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=LayerBankAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LayerBankAdapter.js","sourceRoot":"","sources":["../../../../../../src/typechain/contracts/Oracle/LayerBankAdapter.sol/LayerBankAdapter.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export type { ILayerBank } from "./ILayerBank";
2
+ export type { LayerBankAdapter } from "./LayerBankAdapter";
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/typechain/contracts/Oracle/LayerBankAdapter.sol/index.ts"],"names":[],"mappings":""}
@@ -1,9 +1,19 @@
1
+ import type * as api3AdapterSol from "./API3Adapter.sol";
2
+ export type { api3AdapterSol };
3
+ import type * as layerBankAdapterSol from "./LayerBankAdapter.sol";
4
+ export type { layerBankAdapterSol };
1
5
  import type * as priceOracleSol from "./PriceOracle.sol";
2
6
  export type { priceOracleSol };
7
+ import type * as stakedAngleAdapterSol from "./StakedAngleAdapter.sol";
8
+ export type { stakedAngleAdapterSol };
3
9
  import type * as wstEthAdapterSol from "./WstETHAdapter.sol";
4
10
  export type { wstEthAdapterSol };
5
11
  import type * as wstMtrgAdapterSol from "./WstMTRGAdapter.sol";
6
12
  export type { wstMtrgAdapterSol };
13
+ import type * as stEurAdapterSol from "./stEURAdapter.sol";
14
+ export type { stEurAdapterSol };
15
+ import type * as stUsdAdapterSol from "./stUSDAdapter.sol";
16
+ export type { stUsdAdapterSol };
7
17
  import type * as wstMtrgOracleSol from "./wstMTRGOracle.sol";
8
18
  export type { wstMtrgOracleSol };
9
19
  export type { FeedPriceOracle } from "./FeedPriceOracle";
@@ -0,0 +1,21 @@
1
+ import { type ContractRunner } from "ethers";
2
+ import type { ILayerBank, ILayerBankInterface } from "../../../contracts/Interfaces/ILayerBank";
3
+ export declare class ILayerBank__factory {
4
+ static readonly abi: readonly [{
5
+ readonly inputs: readonly [{
6
+ readonly internalType: "address";
7
+ readonly name: "token";
8
+ readonly type: "address";
9
+ }];
10
+ readonly name: "priceOf";
11
+ readonly outputs: readonly [{
12
+ readonly internalType: "uint256";
13
+ readonly name: "";
14
+ readonly type: "uint256";
15
+ }];
16
+ readonly stateMutability: "view";
17
+ readonly type: "function";
18
+ }];
19
+ static createInterface(): ILayerBankInterface;
20
+ static connect(address: string, runner?: ContractRunner | null): ILayerBank;
21
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ /* Autogenerated file. Do not edit manually. */
3
+ /* tslint:disable */
4
+ /* eslint-disable */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ILayerBank__factory = void 0;
7
+ const ethers_1 = require("ethers");
8
+ const _abi = [
9
+ {
10
+ inputs: [
11
+ {
12
+ internalType: "address",
13
+ name: "token",
14
+ type: "address",
15
+ },
16
+ ],
17
+ name: "priceOf",
18
+ outputs: [
19
+ {
20
+ internalType: "uint256",
21
+ name: "",
22
+ type: "uint256",
23
+ },
24
+ ],
25
+ stateMutability: "view",
26
+ type: "function",
27
+ },
28
+ ];
29
+ class ILayerBank__factory {
30
+ static createInterface() {
31
+ return new ethers_1.Interface(_abi);
32
+ }
33
+ static connect(address, runner) {
34
+ return new ethers_1.Contract(address, _abi, runner);
35
+ }
36
+ }
37
+ exports.ILayerBank__factory = ILayerBank__factory;
38
+ ILayerBank__factory.abi = _abi;
39
+ //# sourceMappingURL=ILayerBank__factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ILayerBank__factory.js","sourceRoot":"","sources":["../../../../../../src/typechain/factories/contracts/Interfaces/ILayerBank__factory.ts"],"names":[],"mappings":";AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;;;AAEpB,mCAAkE;AAMlE,MAAM,IAAI,GAAG;IACX;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,SAAS;QACf,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACO,CAAC;AAEX,MAAa,mBAAmB;IAE9B,MAAM,CAAC,eAAe;QACpB,OAAO,IAAI,kBAAS,CAAC,IAAI,CAAwB,CAAC;IACpD,CAAC;IACD,MAAM,CAAC,OAAO,CAAC,OAAe,EAAE,MAA8B;QAC5D,OAAO,IAAI,iBAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAA0B,CAAC;IACtE,CAAC;;AAPH,kDAQC;AAPiB,uBAAG,GAAG,IAAI,CAAC"}
@@ -9,6 +9,7 @@ export { IEIP712__factory } from "./IEIP712__factory";
9
9
  export { IGovernorAlpha__factory } from "./IGovernorAlpha__factory";
10
10
  export { IGovernorBravo__factory } from "./IGovernorBravo__factory";
11
11
  export { IInterestRateModel__factory } from "./IInterestRateModel__factory";
12
+ export { ILayerBank__factory } from "./ILayerBank__factory";
12
13
  export { IPMarket__factory } from "./IPMarket__factory";
13
14
  export { IPPrincipalToken__factory } from "./IPPrincipalToken__factory";
14
15
  export { IPYieldToken__factory } from "./IPYieldToken__factory";
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.IWitnetFeed__factory = exports.IVoltPair__factory = exports.IUnitroller__factory = exports.ITimelock__factory = exports.IStdReference__factory = exports.IStandardizedYield__factory = exports.ISortedBorrows__factory = exports.IRedemptionManager__factory = exports.IPriceOracle__factory = exports.IPendlePtOracle__factory = exports.IPYieldToken__factory = exports.IPPrincipalToken__factory = exports.IPMarket__factory = exports.IInterestRateModel__factory = exports.IGovernorBravo__factory = exports.IGovernorAlpha__factory = exports.IEIP712__factory = exports.IEIP20NonStandard__factory = exports.IComptroller__factory = exports.ICompLogic__factory = exports.ICToken__factory = exports.ICErc20__factory = exports.IAccountLiquidity__factory = exports.icTokenExternalSol = void 0;
26
+ exports.IWitnetFeed__factory = exports.IVoltPair__factory = exports.IUnitroller__factory = exports.ITimelock__factory = exports.IStdReference__factory = exports.IStandardizedYield__factory = exports.ISortedBorrows__factory = exports.IRedemptionManager__factory = exports.IPriceOracle__factory = exports.IPendlePtOracle__factory = exports.IPYieldToken__factory = exports.IPPrincipalToken__factory = exports.IPMarket__factory = exports.ILayerBank__factory = exports.IInterestRateModel__factory = exports.IGovernorBravo__factory = exports.IGovernorAlpha__factory = exports.IEIP712__factory = exports.IEIP20NonStandard__factory = exports.IComptroller__factory = exports.ICompLogic__factory = exports.ICToken__factory = exports.ICErc20__factory = exports.IAccountLiquidity__factory = exports.icTokenExternalSol = void 0;
27
27
  /* Autogenerated file. Do not edit manually. */
28
28
  /* tslint:disable */
29
29
  /* eslint-disable */
@@ -48,6 +48,8 @@ var IGovernorBravo__factory_1 = require("./IGovernorBravo__factory");
48
48
  Object.defineProperty(exports, "IGovernorBravo__factory", { enumerable: true, get: function () { return IGovernorBravo__factory_1.IGovernorBravo__factory; } });
49
49
  var IInterestRateModel__factory_1 = require("./IInterestRateModel__factory");
50
50
  Object.defineProperty(exports, "IInterestRateModel__factory", { enumerable: true, get: function () { return IInterestRateModel__factory_1.IInterestRateModel__factory; } });
51
+ var ILayerBank__factory_1 = require("./ILayerBank__factory");
52
+ Object.defineProperty(exports, "ILayerBank__factory", { enumerable: true, get: function () { return ILayerBank__factory_1.ILayerBank__factory; } });
51
53
  var IPMarket__factory_1 = require("./IPMarket__factory");
52
54
  Object.defineProperty(exports, "IPMarket__factory", { enumerable: true, get: function () { return IPMarket__factory_1.IPMarket__factory; } });
53
55
  var IPPrincipalToken__factory_1 = require("./IPPrincipalToken__factory");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/typechain/factories/contracts/Interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;AACpB,4EAA4D;AAC5D,2EAA0E;AAAjE,wIAAA,0BAA0B,OAAA;AACnC,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAC5B,iEAAgE;AAAvD,8HAAA,qBAAqB,OAAA;AAC9B,2EAA0E;AAAjE,wIAAA,0BAA0B,OAAA;AACnC,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,qEAAoE;AAA3D,kIAAA,uBAAuB,OAAA;AAChC,qEAAoE;AAA3D,kIAAA,uBAAuB,OAAA;AAChC,6EAA4E;AAAnE,0IAAA,2BAA2B,OAAA;AACpC,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAC1B,yEAAwE;AAA/D,sIAAA,yBAAyB,OAAA;AAClC,iEAAgE;AAAvD,8HAAA,qBAAqB,OAAA;AAC9B,uEAAsE;AAA7D,oIAAA,wBAAwB,OAAA;AACjC,iEAAgE;AAAvD,8HAAA,qBAAqB,OAAA;AAC9B,6EAA4E;AAAnE,0IAAA,2BAA2B,OAAA;AACpC,qEAAoE;AAA3D,kIAAA,uBAAuB,OAAA;AAChC,6EAA4E;AAAnE,0IAAA,2BAA2B,OAAA;AACpC,mEAAkE;AAAzD,gIAAA,sBAAsB,OAAA;AAC/B,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/typechain/factories/contracts/Interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;AACpB,4EAA4D;AAC5D,2EAA0E;AAAjE,wIAAA,0BAA0B,OAAA;AACnC,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAC5B,iEAAgE;AAAvD,8HAAA,qBAAqB,OAAA;AAC9B,2EAA0E;AAAjE,wIAAA,0BAA0B,OAAA;AACnC,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,qEAAoE;AAA3D,kIAAA,uBAAuB,OAAA;AAChC,qEAAoE;AAA3D,kIAAA,uBAAuB,OAAA;AAChC,6EAA4E;AAAnE,0IAAA,2BAA2B,OAAA;AACpC,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAC5B,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAC1B,yEAAwE;AAA/D,sIAAA,yBAAyB,OAAA;AAClC,iEAAgE;AAAvD,8HAAA,qBAAqB,OAAA;AAC9B,uEAAsE;AAA7D,oIAAA,wBAAwB,OAAA;AACjC,iEAAgE;AAAvD,8HAAA,qBAAqB,OAAA;AAC9B,6EAA4E;AAAnE,0IAAA,2BAA2B,OAAA;AACpC,qEAAoE;AAA3D,kIAAA,uBAAuB,OAAA;AAChC,6EAA4E;AAAnE,0IAAA,2BAA2B,OAAA;AACpC,mEAAkE;AAAzD,gIAAA,sBAAsB,OAAA;AAC/B,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA"}
@@ -14,7 +14,7 @@ export declare class FeedPriceOracle__factory extends ContractFactory {
14
14
  deploymentTransaction(): ContractTransactionResponse;
15
15
  }>;
16
16
  connect(runner: ContractRunner | null): FeedPriceOracle__factory;
17
- static readonly bytecode = "0x60c03461018d57601f6122bc38819003918201601f19168301916001600160401b038311848410176101925780849260a09460405283398101031261018d57610047816101a8565b610053602083016101a8565b91610060604082016101a8565b606082015190916001600160a01b0382169182900361018d57608001516001600160a01b038116929083900361018d576100da9461009d336101bc565b600280546001600160a01b0319168417905560805260a0528061014b575b50600380546001600160a01b0319168217905580610109575b506101bc565b6040516120aa9081610212823960805181818161091101526119cd015260a051818181610ac801526119f90152f35b60408051600081526001600160a01b039290921660208301527f5319cc71743c0c7ca8781c1b40ef83f7a50ae1c8717ae289061ae6fe14ec731791a1386100d4565b60408051600081526001600160a01b039290921660208301527f19759d4eb479000045508ecc531a909fc19cef338489a548665eb7208d5b008691a1386100bb565b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361018d57565b600180546001600160a01b0319908116909155600080546001600160a01b03938416928116831782559192909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a356fe608080604052600436101561001357600080fd5b60003560e01c9081630c1502eb1461156d57508063106316941461150c5780631badc89a146114835780631e922ea61461142857806322066f99146112c25780632fad2c841461112a57806340da82fb14610dcb57806341976e0914610da8578063487c2b5914610d4757806348a1371b14610c08578063622bd11814610b7857806366331bba14610b5c578063715018a614610af757806374d32ad414610ab257806379ba5097146109e75780637b24f950146109a157806383dd9665146109405780638a2f7f6d146108fb5780638da5cb5b146108d257806393460806146107e0578063a1c6058614610769578063b735acf81461070e578063bd3475cb146106b8578063c2fc961314610663578063c5c8bca014610600578063da0fdde2146105a1578063daa666dd14610578578063e30c39781461054f578063e8c16500146104d4578063e983fe251461049a578063ef63aac814610409578063f1feb97914610307578063f2fde38b14610293578063f5d6ac901461026a578063fc57d4df1461023f5763ffbc01a8146101ab57600080fd5b3461023a57602036600319011261023a576101c46115a3565b6101cc611a6f565b6001600160a01b03166000818152600660209081526040808320838155600101839055600a90915290205460ff1660078110156102245760031461020c57005b6000908152600a60205260409020805460ff19169055005b634e487b7160e01b600052602160045260246000fd5b600080fd5b3461023a57602036600319011261023a57602061026261025d6115a3565b6119bf565b604051908152f35b3461023a57600036600319011261023a576002546040516001600160a01b039091168152602090f35b3461023a57602036600319011261023a576102ac6115a3565b6102b4611a6f565b60018060a01b0316806bffffffffffffffffffffffff60a01b600154161760015560018060a01b03600054167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700600080a3005b3461023a57606036600319011261023a576103206115a3565b6024356001600160a01b0381169081900361023a576044356001600160a01b038116929083900361023a57610353611a6f565b81156103f8576001906040519261036984611662565b8352602080840194855260a083901b8390039182166000818152600983526040808220965187549086166001600160a01b03199182161788559751969095018054969094166001600160a01b03169590961694909417909155600a90529091205460ff16600781101561022457156103dd57005b6000908152600a60205260409020805460ff19166006179055005b630d7e65e760e41b60005260046000fd5b3461023a57602036600319011261023a576004356001600160a01b0381169081900361023a577f5319cc71743c0c7ca8781c1b40ef83f7a50ae1c8717ae289061ae6fe14ec731790610459611a6f565b60035461046582611ac7565b6001600160a01b031981168217600355604080516001600160a01b03928316815291909216602082015290819081015b0390a1005b3461023a57602036600319011261023a576001600160a01b036104bb6115a3565b1660005260086020526020604060002054604051908152f35b3461023a57602036600319011261023a576001600160a01b036104f56115a3565b16600090815260046020908152604091829020805460019091015483516001600160a01b0392831681529181169282019290925260a082901c60ff169281019290925260a81c63ffffffff166060820152608090f35b0390f35b3461023a57600036600319011261023a576001546040516001600160a01b039091168152602090f35b3461023a57600036600319011261023a576003546040516001600160a01b039091168152602090f35b3461023a57602036600319011261023a576001600160a01b036105c26115a3565b166000526006602052604060002063ffffffff60018254920154169061054b6040519283928390929163ffffffff6020916040840195845216910152565b3461023a57602036600319011261023a576001600160a01b036106216115a3565b1660005260076020526060604060002063ffffffff6001808060a01b0383541692015460405192835260018060a01b038116602084015260a01c166040820152f35b3461023a57604036600319011261023a5761067c6115a3565b60243590600782101561023a57610691611a6f565b60018060a01b0316600052600a60205260406000209060ff80198354169116179055600080f35b3461023a57602036600319011261023a576001600160a01b036106d96115a3565b16600090815260096020908152604091829020805460019091015483516001600160a01b039283168152911691810191909152f35b3461023a57602036600319011261023a576107276115a3565b61072f611a6f565b6001600160a01b03166000818152600860209081526040808320839055600a90915290205460ff1660078110156102245760061461020c57005b3461023a57602036600319011261023a576001600160a01b0361078a6115a3565b16600090815260056020908152604091829020805460019091015483516001600160a01b0392831681529181169282019290925260a082901c60ff169281019290925260a81c63ffffffff166060820152608090f35b3461023a57606036600319011261023a576107f96115a3565b60243563ffffffff811680910361023a57610812611a6f565b6002546001600160a01b0316156108c15780156108b05763ffffffff60016040519361083d85611662565b604435855260208501938452818060a01b0316938460005260066020526040600020905181550191511663ffffffff1982541617905580600052600a60205260ff604060002054166007811015610224571561089557005b6000908152600a60205260409020805460ff19166003179055005b63061624df60e01b60005260046000fd5b632ea45acf60e01b60005260046000fd5b3461023a57600036600319011261023a576000546040516001600160a01b039091168152602090f35b3461023a57600036600319011261023a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461023a57602036600319011261023a576109596115a3565b610961611a6f565b6001600160a01b03166000818152600760208181526040808420848155600101849055600a9091529091205460ff16908110156102245760041461020c57005b3461023a57602036600319011261023a576001600160a01b036109c26115a3565b16600052600a60205260ff604060002054166040516007821015610224576020918152f35b3461023a57600036600319011261023a57600154336001600160a01b0390911603610a5b57600180546001600160a01b03199081169091556000805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b60405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608490fd5b3461023a57600036600319011261023a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461023a57600036600319011261023a57610b10611a6f565b600180546001600160a01b0319908116909155600080549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461023a57600036600319011261023a57602060405160018152f35b3461023a57602036600319011261023a576004356001600160a01b0381169081900361023a577f19759d4eb479000045508ecc531a909fc19cef338489a548665eb7208d5b008690610bc8611a6f565b600254610bd482611ac7565b6001600160a01b031981168217600255604080516001600160a01b0392831681529190921660208201529081908101610495565b3461023a57602036600319011261023a5760043567ffffffffffffffff811161023a573660238201121561023a578060040135610c44816116a0565b91610c52604051938461167e565b8183526024602084019260051b8201019036821161023a57602401915b818310610d2757835184610c82826116a0565b91610c90604051938461167e565b808352610c9c816116a0565b602084019290601f190136843760005b828110610cf85783856040519182916020830190602084525180915260408301919060005b818110610cdf575050500390f35b8251845285945060209384019390920191600101610cd1565b80610d16610d0860019385611995565b838060a01b039051166119bf565b610d208288611995565b5201610cac565b82356001600160a01b038116810361023a57815260209283019201610c6f565b3461023a57602036600319011261023a57610d606115a3565b610d68611a6f565b6001600160a01b03166000818152600560209081526040808320838155600101839055600a90915290205460ff1660078110156102245760021461020c57005b3461023a57602036600319011261023a576020610262610dc66115a3565b6117d3565b3461023a57610dd9366115b9565b929190610de4611a6f565b6003546001600160a01b0316156111195763ffffffff90610e0483611ac7565b610e0d85611ac7565b1690811561110857604051630b2339af60e21b8152936001600160a01b039190911690606085600481855afa8015610ffe576000958691611091575b506001600160a01b039485169594169384860361105e5760206004956040519687809263afd27bf560e01b82525afa948515610ffe5760009561103d575b506001600160a01b03908116941684900361100a576020600494604051958680926376d5de8560e01b82525afa938415610ffe57600094610fcd575b506001600160a01b039081169316839003610f9257604051600191610ee782611646565b81526020808201948552604080830194855260008781526007808452828220945185546001600160a01b03191660a088811b89900392909216178655975195909401805496516001600160c01b03199097166001600160a01b0396909616959095179590961b63ffffffff60a01b1694909417909255600a90915291205460ff16908110156102245715610f7757005b6000908152600a60205260409020805460ff19166004179055005b60405162461bcd60e51b81526020600482015260136024820152720f2d2cad8c8a8ded6cadc40dad2e6dac2e8c6d606b1b6044820152606490fd5b610ff091945060203d602011610ff7575b610fe8818361167e565b8101906116db565b9285610ec3565b503d610fde565b6040513d6000823e3d90fd5b60405162461bcd60e51b815260206004820152600b60248201526a0e6f240dad2e6dac2e8c6d60ab1b6044820152606490fd5b61105791955060203d602011610ff757610fe8818361167e565b9386610e87565b60405162461bcd60e51b815260206004820152600b60248201526a0e0e840dad2e6dac2e8c6d60ab1b6044820152606490fd5b9590506060863d606011611100575b816110ad6060938361167e565b810103126110f9578551906001600160a01b03821682036110f9576020870151966001600160a01b03881688036110fc57604001516001600160a01b038116036110f957509486610e49565b80fd5b5080fd5b3d91506110a0565b63273e150360e21b60005260046000fd5b637590f92f60e01b60005260046000fd5b3461023a57611138366115b9565b91611144939193611a6f565b60405163313ce56760e01b81526001600160a01b03919091169390602081600481885afa908115610ffe57600091611293575b5084156112825760ff169081156112715763ffffffff169182156108b057600190604051956111a587611614565b865260a082811b83900395861660208089019182526040808a0196875260608a019788529388166000818152600483528581209a518b546001600160a01b0319169a16999099178a559151989094018054955196516001600160c81b03199096166001600160a01b0399909916989098179590911b60ff60a01b169490941760a89390931b63ffffffff60a81b1692909217909455600a9093529190205460ff166007811015610224571561125657005b6000908152600a60205260409020805460ff19166001179055005b63da0623a160e01b60005260046000fd5b6346d684a560e11b60005260046000fd5b6112b5915060203d6020116112bb575b6112ad818361167e565b8101906116c2565b85611177565b503d6112a3565b3461023a576112d0366115b9565b916112dc939193611a6f565b60405163313ce56760e01b81526001600160a01b03919091169390602081600481885afa908115610ffe57600091611409575b5084156112825760ff169081156112715763ffffffff169182156108b0576001906040519561133d87611614565b865260a082811b83900395861660208089019182526040808a0196875260608a019788529388166000818152600583528581209a518b546001600160a01b0319169a16999099178a559151989094018054955196516001600160c81b03199096166001600160a01b0399909916989098179590911b60ff60a01b169490941760a89390931b63ffffffff60a81b1692909217909455600a9093529190205460ff16600781101561022457156113ee57005b6000908152600a60205260409020805460ff19166002179055005b611422915060203d6020116112bb576112ad818361167e565b8561130f565b3461023a57602036600319011261023a576114416115a3565b611449611a6f565b6001600160a01b03166000818152600860209081526040808320839055600a90915290205460ff1660078110156102245760051461020c57005b3461023a57604036600319011261023a5761149c6115a3565b602435906114a8611a6f565b6114b181611ac7565b81156111085760018060a01b03169081600052600860205260406000205580600052600a60205260ff60406000205416600781101561022457156114f157005b6000908152600a60205260409020805460ff19166005179055005b3461023a57602036600319011261023a576115256115a3565b61152d611a6f565b6001600160a01b03166000818152600460209081526040808320838155600101839055600a90915290205460ff1660078110156102245760011461020c57005b3461023a57602036600319011261023a576020906001600160a01b036115916115a3565b16600052600882526040600020548152f35b600435906001600160a01b038216820361023a57565b608090600319011261023a576004356001600160a01b038116810361023a57906024356001600160a01b038116810361023a579060443563ffffffff8116810361023a57906064356001600160a01b038116810361023a5790565b6080810190811067ffffffffffffffff82111761163057604052565b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761163057604052565b6040810190811067ffffffffffffffff82111761163057604052565b90601f8019910116810190811067ffffffffffffffff82111761163057604052565b67ffffffffffffffff81116116305760051b60200190565b6007111561022457565b9081602091031261023a575160ff8116810361023a5790565b9081602091031261023a57516001600160a01b038116810361023a5790565b9060405161170781611662565b82546001600160a01b0390811682526001909301549092166020830152565b9060405161173381611646565b82546001600160a01b03908116825260019390930154928316602082015260a09290921c63ffffffff166040830152565b9060405161177181611662565b602063ffffffff6001839580548552015416910152565b9060405161179581611614565b82546001600160a01b03908116825260019390930154928316602082015260a083901c60ff16604082015260a89290921c63ffffffff166060830152565b6001600160a01b0381166000908152600a602052604090205460ff166117f8816116b8565b80156119845760009061180a816116b8565b600181036118565750506001600160a01b0316600090815260046020526040902061183d9061183890611788565b611e93565b80156118465790565b62bfc92160e01b60005260046000fd5b61185f816116b8565b600281036118925750506001600160a01b0316600090815260056020526040902061188d9061183890611788565b61183d565b61189b816116b8565b600381036118ce5750506001600160a01b0316600090815260066020526040902061188d906118c990611764565b611c9f565b6118d7816116b8565b6004810361190a5750506001600160a01b0316600090815260076020526040902061188d9061190590611726565b611bcb565b611913816116b8565b6005810361193a5750506001600160a01b031660009081526008602052604090205461183d565b806119466006926116b8565b0361197557506001600160a01b0316600090815260096020526040902061188d90611970906116fa565b611b20565b6379b7ef0d60e01b8152600490fd5b632416b03b60e11b60005260046000fd5b80518210156119a95760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000168103611a205750611a1d7f00000000000000000000000000000000000000000000000000000000000000006117d3565b90565b602060049160405192838092636f307dc360e01b82525afa8015610ffe57611a1d91600091611a50575b506117d3565b611a69915060203d602011610ff757610fe8818361167e565b38611a4a565b6000546001600160a01b03163303611a8357565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6001600160a01b031615611ad757565b6342bcdf7f60e11b60005260046000fd5b9081602091031261023a575190565b81810292918115918404141715611b0a57565b634e487b7160e01b600052601160045260246000fd5b8051604051633ba0b9a960e01b815290602090829060049082906001600160a01b03165afa908115611bc657600091611b97575b506020919091015181906001600160a01b031680611b7157505090565b611b7c9192506117d3565b611b8990611a1d92611af7565b670de0b6b3a7640000900490565b611bb9915060203d602011611bbf575b611bb1818361167e565b810190611ae8565b38611b54565b503d611ba7565b610ffe565b600354611be8906001600160a01b03165b6001600160a01b031690565b906001600160a01b03821615611119578051604080830151905163a31426d160e01b81526001600160a01b03909216600483015263ffffffff16602482015291602090839060449082905afa918215611bc657600092611c67575b5060200151611c5a906001600160a01b03166117d3565b611a1d91611b8991611af7565b611c5a9192506020611c88610dc692823d8411611bbf57611bb1818361167e565b93925050611c43565b604d8111611b0a57600a0a90565b6002546001600160a01b03169081156108c157805160209182015160405163052571af60e51b938101938452602481019290925263ffffffff16604480830191909152815260009283929091611cf660648261167e565b51915afa3d15611e31573d9067ffffffffffffffff82116116305760405191611d29601f8201601f19166020018461167e565b82523d6000602084013e5b15611dff5760808180518101031261023a576020810151908160070b820361023a57604081015167ffffffffffffffff81160361023a57606001518060030b80910361023a57600003808060030b03611b0a5763ffffffff1660120363ffffffff8111611b0a5763ffffffff169060128211611dc65767ffffffffffffffff611dbf611a1d93611c91565b9116611af7565b60405162461bcd60e51b8152602060048201526011602482015270646563696d616c20756e646572666c6f7760781b6044820152606490fd5b60405162461bcd60e51b815260206004820152600a602482015269383cba341032b93937b960b11b6044820152606490fd5b606090611d34565b60ff166012039060ff8211611b0a57565b519069ffffffffffffffffffff8216820361023a57565b908160a091031261023a57611e7581611e4a565b91602082015191604081015191611a1d608060608401519301611e4a565b8051611ea7906001600160a01b0316611bdc565b6004611ec6611ebd606085015163ffffffff1690565b63ffffffff1690565b60a0611ee7611ee1611edc604088015160ff1690565b611e39565b60ff1690565b9360405193848092633fabe5a360e21b8252600180861b03165afa8015611bc65760009260009161203c575b506000831315611ff757804210611fb257420311611f6d57611f43602091611f3d611f5294611c91565b90611af7565b9201516001600160a01b031690565b6001600160a01b038116611f64575090565b611b7c906117d3565b60405162461bcd60e51b815260206004820152601760248201527f636861696e6c696e6b20707269636520657870697265640000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601c60248201527f757064617465644174206578636565647320626c6f636b2074696d65000000006044820152606490fd5b60405162461bcd60e51b815260206004820181905260248201527f636861696e6c696e6b207072696365206d75737420626520706f7369746976656044820152606490fd5b905061206191925060a03d60a01161206d575b612059818361167e565b810190611e61565b50939250509138611f13565b503d61204f56fea26469706673582212206b3a2613d98feb1413291616ea9f8f041c5edd1f7d7ba62143f67055dcb6011464736f6c634300081a0033";
17
+ static readonly bytecode = "0x60c03461018d57601f61252738819003918201601f19168301916001600160401b038311848410176101925780849260a09460405283398101031261018d57610047816101a8565b610053602083016101a8565b91610060604082016101a8565b606082015190916001600160a01b0382169182900361018d57608001516001600160a01b038116929083900361018d576100da9461009d336101bc565b600280546001600160a01b0319168417905560805260a0528061014b575b50600380546001600160a01b0319168217905580610109575b506101bc565b604051612315908161021282396080518181816109b30152611bc6015260a051818181610b6a0152611bf20152f35b60408051600081526001600160a01b039290921660208301527f5319cc71743c0c7ca8781c1b40ef83f7a50ae1c8717ae289061ae6fe14ec731791a1386100d4565b60408051600081526001600160a01b039290921660208301527f19759d4eb479000045508ecc531a909fc19cef338489a548665eb7208d5b008691a1386100bb565b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361018d57565b600180546001600160a01b0319908116909155600080546001600160a01b03938416928116831782559192909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a356fe608080604052600436101561001357600080fd5b60003560e01c9081630c1502eb146116c957508063106316941461166857806310a4fbcf146115ad5780631badc89a146115245780631e922ea6146114c957806322066f99146113635780632fad2c84146111cb57806340da82fb14610e6d57806341976e0914610e4a578063487c2b5914610de957806348a1371b14610caa578063622bd11814610c1a57806366331bba14610bfe578063715018a614610b9957806374d32ad414610b5457806379ba509714610a895780637b24f95014610a4357806383dd9665146109e25780638a2f7f6d1461099d5780638da5cb5b146109745780639346080614610882578063a1c605861461080b578063a88bc222146107b5578063b735acf81461075a578063bd3475cb14610704578063c2fc9613146106af578063c5b7ee171461064e578063c5c8bca0146105eb578063da0fdde21461058c578063daa666dd14610563578063e30c39781461053a578063e8c16500146104bf578063e983fe2514610485578063ef63aac8146103f4578063f1feb97914610328578063f2fde38b146102b4578063f5d6ac901461028b578063fc57d4df146102605763ffbc01a8146101cc57600080fd5b3461025b57602036600319011261025b576101e56116ff565b6101ed611c68565b6001600160a01b03166000818152600660209081526040808320838155600101839055600a90915290205460ff1660088110156102455760031461022d57005b6000908152600a60205260409020805460ff19169055005b634e487b7160e01b600052602160045260246000fd5b600080fd5b3461025b57602036600319011261025b57602061028361027e6116ff565b611bb8565b604051908152f35b3461025b57600036600319011261025b576002546040516001600160a01b039091168152602090f35b3461025b57602036600319011261025b576102cd6116ff565b6102d5611c68565b60018060a01b0316806bffffffffffffffffffffffff60a01b600154161760015560018060a01b03600054167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700600080a3005b3461025b57606036600319011261025b576103416116ff565b610349611715565b61035161172b565b9061035a611c68565b6001600160a01b03169182156103e3576103a6916040519361037b8561179c565b845260018060a01b0316602084015260018060a01b031691826000526009602052604060002061184a565b80600052600a60205260ff60406000205416600881101561024557156103c857005b6000908152600a60205260409020805460ff19166006179055005b630d7e65e760e41b60005260046000fd5b3461025b57602036600319011261025b576004356001600160a01b0381169081900361025b577f5319cc71743c0c7ca8781c1b40ef83f7a50ae1c8717ae289061ae6fe14ec731790610444611c68565b60035461045082611cc0565b6001600160a01b031981168217600355604080516001600160a01b03928316815291909216602082015290819081015b0390a1005b3461025b57602036600319011261025b576001600160a01b036104a66116ff565b1660005260086020526020604060002054604051908152f35b3461025b57602036600319011261025b576001600160a01b036104e06116ff565b16600090815260046020908152604091829020805460019091015483516001600160a01b0392831681529181169282019290925260a082901c60ff169281019290925260a81c63ffffffff166060820152608090f35b0390f35b3461025b57600036600319011261025b576001546040516001600160a01b039091168152602090f35b3461025b57600036600319011261025b576003546040516001600160a01b039091168152602090f35b3461025b57602036600319011261025b576001600160a01b036105ad6116ff565b166000526006602052604060002063ffffffff6001825492015416906105366040519283928390929163ffffffff6020916040840195845216910152565b3461025b57602036600319011261025b576001600160a01b0361060c6116ff565b1660005260076020526060604060002063ffffffff6001808060a01b0383541692015460405192835260018060a01b038116602084015260a01c166040820152f35b3461025b57602036600319011261025b576106676116ff565b61066f611c68565b6001600160a01b03166000818152600b60209081526040808320838155600101839055600a90915290205460ff1660088110156102455760071461022d57005b3461025b57604036600319011261025b576106c86116ff565b60243590600882101561025b576106dd611c68565b60018060a01b0316600052600a60205260406000209060ff80198354169116179055600080f35b3461025b57602036600319011261025b576001600160a01b036107256116ff565b16600090815260096020908152604091829020805460019091015483516001600160a01b039283168152911691810191909152f35b3461025b57602036600319011261025b576107736116ff565b61077b611c68565b6001600160a01b03166000818152600860208181526040808420849055600a9091529091205460ff16908110156102455760061461022d57005b3461025b57602036600319011261025b576001600160a01b036107d66116ff565b166000908152600b6020908152604091829020805460019091015483516001600160a01b039283168152911691810191909152f35b3461025b57602036600319011261025b576001600160a01b0361082c6116ff565b16600090815260056020908152604091829020805460019091015483516001600160a01b0392831681529181169282019290925260a082901c60ff169281019290925260a81c63ffffffff166060820152608090f35b3461025b57606036600319011261025b5761089b6116ff565b60243563ffffffff811680910361025b576108b4611c68565b6002546001600160a01b0316156109635780156109525763ffffffff6001604051936108df8561179c565b604435855260208501938452818060a01b0316938460005260066020526040600020905181550191511663ffffffff1982541617905580600052600a60205260ff604060002054166008811015610245571561093757005b6000908152600a60205260409020805460ff19166003179055005b63061624df60e01b60005260046000fd5b632ea45acf60e01b60005260046000fd5b3461025b57600036600319011261025b576000546040516001600160a01b039091168152602090f35b3461025b57600036600319011261025b576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025b57602036600319011261025b576109fb6116ff565b610a03611c68565b6001600160a01b03166000818152600760209081526040808320838155600101839055600a90915290205460ff1660088110156102455760041461022d57005b3461025b57602036600319011261025b576001600160a01b03610a646116ff565b16600052600a60205260ff604060002054166040516008821015610245576020918152f35b3461025b57600036600319011261025b57600154336001600160a01b0390911603610afd57600180546001600160a01b03199081169091556000805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b60405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608490fd5b3461025b57600036600319011261025b576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025b57600036600319011261025b57610bb2611c68565b600180546001600160a01b0319908116909155600080549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461025b57600036600319011261025b57602060405160018152f35b3461025b57602036600319011261025b576004356001600160a01b0381169081900361025b577f19759d4eb479000045508ecc531a909fc19cef338489a548665eb7208d5b008690610c6a611c68565b600254610c7682611cc0565b6001600160a01b031981168217600255604080516001600160a01b0392831681529190921660208201529081908101610480565b3461025b57602036600319011261025b5760043567ffffffffffffffff811161025b573660238201121561025b578060040135610ce681611828565b91610cf46040519384611806565b8183526024602084019260051b8201019036821161025b57602401915b818310610dc957835184610d2482611828565b91610d326040519384611806565b808352610d3e81611828565b602084019290601f190136843760005b828110610d9a5783856040519182916020830190602084525180915260408301919060005b818110610d81575050500390f35b8251845285945060209384019390920191600101610d73565b80610db8610daa60019385611b8e565b838060a01b03905116611bb8565b610dc28288611b8e565b5201610d4e565b82356001600160a01b038116810361025b57815260209283019201610d11565b3461025b57602036600319011261025b57610e026116ff565b610e0a611c68565b6001600160a01b03166000818152600560209081526040808320838155600101839055600a90915290205460ff1660088110156102455760021461022d57005b3461025b57602036600319011261025b576020610283610e686116ff565b611990565b3461025b57610e7b36611741565b929190610e86611c68565b6003546001600160a01b0316156111ba5763ffffffff90610ea683611cc0565b610eaf85611cc0565b169081156111a957604051630b2339af60e21b8152936001600160a01b039190911690606085600481855afa801561109f576000958691611132575b506001600160a01b03948516959416938486036110ff5760206004956040519687809263afd27bf560e01b82525afa94851561109f576000956110de575b506001600160a01b0390811694168490036110ab576020600494604051958680926376d5de8560e01b82525afa93841561109f5760009461106e575b506001600160a01b03908116931683900361103357604051600191610f89826117ea565b815260208082019485526040808301948552600087815260078352818120935184546001600160a01b03191660a087811b88900392909216178555965194909301805495516001600160c01b03199096166001600160a01b0395909516949094179490951b63ffffffff60a01b1693909317909155600a909152205460ff166008811015610245571561101857005b6000908152600a60205260409020805460ff19166004179055005b60405162461bcd60e51b81526020600482015260136024820152720f2d2cad8c8a8ded6cadc40dad2e6dac2e8c6d606b1b6044820152606490fd5b61109191945060203d602011611098575b6110898183611806565b810190611898565b9285610f65565b503d61107f565b6040513d6000823e3d90fd5b60405162461bcd60e51b815260206004820152600b60248201526a0e6f240dad2e6dac2e8c6d60ab1b6044820152606490fd5b6110f891955060203d602011611098576110898183611806565b9386610f29565b60405162461bcd60e51b815260206004820152600b60248201526a0e0e840dad2e6dac2e8c6d60ab1b6044820152606490fd5b9590506060863d6060116111a1575b8161114e60609383611806565b8101031261119a578551906001600160a01b038216820361119a576020870151966001600160a01b038816880361119d57604001516001600160a01b0381160361119a57509486610eeb565b80fd5b5080fd5b3d9150611141565b63273e150360e21b60005260046000fd5b637590f92f60e01b60005260046000fd5b3461025b576111d936611741565b916111e5939193611c68565b60405163313ce56760e01b81526001600160a01b03919091169390602081600481885afa90811561109f57600091611334575b5084156113235760ff169081156113125763ffffffff169182156109525760019060405195611246876117ce565b865260a082811b83900395861660208089019182526040808a0196875260608a019788529388166000818152600483528581209a518b546001600160a01b0319169a16999099178a559151989094018054955196516001600160c81b03199096166001600160a01b0399909916989098179590911b60ff60a01b169490941760a89390931b63ffffffff60a81b1692909217909455600a9093529190205460ff16600881101561024557156112f757005b6000908152600a60205260409020805460ff19166001179055005b63da0623a160e01b60005260046000fd5b6346d684a560e11b60005260046000fd5b611356915060203d60201161135c575b61134e8183611806565b81019061187f565b85611218565b503d611344565b3461025b5761137136611741565b9161137d939193611c68565b60405163313ce56760e01b81526001600160a01b03919091169390602081600481885afa90811561109f576000916114aa575b5084156113235760ff169081156113125763ffffffff1691821561095257600190604051956113de876117ce565b865260a082811b83900395861660208089019182526040808a0196875260608a019788529388166000818152600583528581209a518b546001600160a01b0319169a16999099178a559151989094018054955196516001600160c81b03199096166001600160a01b0399909916989098179590911b60ff60a01b169490941760a89390931b63ffffffff60a81b1692909217909455600a9093529190205460ff166008811015610245571561148f57005b6000908152600a60205260409020805460ff19166002179055005b6114c3915060203d60201161135c5761134e8183611806565b856113b0565b3461025b57602036600319011261025b576114e26116ff565b6114ea611c68565b6001600160a01b03166000818152600860208181526040808420849055600a9091529091205460ff16908110156102455760051461022d57005b3461025b57604036600319011261025b5761153d6116ff565b60243590611549611c68565b61155281611cc0565b81156111a95760018060a01b03169081600052600860205260406000205580600052600a60205260ff604060002054166008811015610245571561159257005b6000908152600a60205260409020805460ff19166005179055005b3461025b57606036600319011261025b576115c66116ff565b6115ce611715565b6115d661172b565b906115df611c68565b6001600160a01b03169182156113235761162b91604051936116008561179c565b845260018060a01b0316602084015260018060a01b03169182600052600b602052604060002061184a565b80600052600a60205260ff604060002054166008811015610245571561164d57005b6000908152600a60205260409020805460ff19166007179055005b3461025b57602036600319011261025b576116816116ff565b611689611c68565b6001600160a01b03166000818152600460209081526040808320838155600101839055600a90915290205460ff1660088110156102455760011461022d57005b3461025b57602036600319011261025b576020906001600160a01b036116ed6116ff565b16600052600882526040600020548152f35b600435906001600160a01b038216820361025b57565b602435906001600160a01b038216820361025b57565b604435906001600160a01b038216820361025b57565b608090600319011261025b576004356001600160a01b038116810361025b57906024356001600160a01b038116810361025b579060443563ffffffff8116810361025b57906064356001600160a01b038116810361025b5790565b6040810190811067ffffffffffffffff8211176117b857604052565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff8211176117b857604052565b6060810190811067ffffffffffffffff8211176117b857604052565b90601f8019910116810190811067ffffffffffffffff8211176117b857604052565b67ffffffffffffffff81116117b85760051b60200190565b6008111561024557565b815181546001600160a01b03199081166001600160a01b03928316178355602090930151600190920180549093169116179055565b9081602091031261025b575160ff8116810361025b5790565b9081602091031261025b57516001600160a01b038116810361025b5790565b906040516118c48161179c565b82546001600160a01b0390811682526001909301549092166020830152565b906040516118f0816117ea565b82546001600160a01b03908116825260019390930154928316602082015260a09290921c63ffffffff166040830152565b9060405161192e8161179c565b602063ffffffff6001839580548552015416910152565b90604051611952816117ce565b82546001600160a01b03908116825260019390930154928316602082015260a083901c60ff16604082015260a89290921c63ffffffff166060830152565b6001600160a01b0381166000908152600a602052604090205460ff166119b581611840565b8015611b7d576000906119c781611840565b60018103611a135750506001600160a01b031660009081526004602052604090206119fa906119f590611945565b6120fe565b8015611a035790565b62bfc92160e01b60005260046000fd5b611a1c81611840565b60028103611a4f5750506001600160a01b03166000908152600560205260409020611a4a906119f590611945565b6119fa565b611a5881611840565b60038103611a8b5750506001600160a01b03166000908152600660205260409020611a4a90611a8690611921565b611f0a565b611a9481611840565b60048103611ac75750506001600160a01b03166000908152600760205260409020611a4a90611ac2906118e3565b611e36565b611ad081611840565b60058103611af75750506001600160a01b03166000908152600860205260409020546119fa565b611b0081611840565b60068103611b335750506001600160a01b03166000908152600960205260409020611a4a90611b2e906118b7565b611d8b565b80611b3f600792611840565b03611b6e57506001600160a01b03166000908152600b60205260409020611a4a90611b69906118b7565b611cf0565b6379b7ef0d60e01b8152600490fd5b632416b03b60e11b60005260046000fd5b8051821015611ba25760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000168103611c195750611c167f0000000000000000000000000000000000000000000000000000000000000000611990565b90565b602060049160405192838092636f307dc360e01b82525afa801561109f57611c1691600091611c49575b50611990565b611c62915060203d602011611098576110898183611806565b38611c43565b6000546001600160a01b03163303611c7c57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6001600160a01b031615611cd057565b6342bcdf7f60e11b60005260046000fd5b9081602091031261025b575190565b805160209182015160405163b95ed06f60e01b81526001600160a01b039182166004820152929183916024918391165afa90811561109f57600091611d33575090565b90506020813d602011611d5a575b81611d4e60209383611806565b8101031261025b575190565b3d9150611d41565b81810292918115918404141715611d7557565b634e487b7160e01b600052601160045260246000fd5b8051604051633ba0b9a960e01b815290602090829060049082906001600160a01b03165afa908115611e3157600091611e02575b506020919091015181906001600160a01b031680611ddc57505090565b611de7919250611990565b611df490611c1692611d62565b670de0b6b3a7640000900490565b611e24915060203d602011611e2a575b611e1c8183611806565b810190611ce1565b38611dbf565b503d611e12565b61109f565b600354611e53906001600160a01b03165b6001600160a01b031690565b906001600160a01b038216156111ba578051604080830151905163a31426d160e01b81526001600160a01b03909216600483015263ffffffff16602482015291602090839060449082905afa918215611e3157600092611ed2575b5060200151611ec5906001600160a01b0316611990565b611c1691611df491611d62565b611ec59192506020611ef3610e6892823d8411611e2a57611e1c8183611806565b93925050611eae565b604d8111611d7557600a0a90565b6002546001600160a01b031690811561096357805160209182015160405163052571af60e51b938101938452602481019290925263ffffffff16604480830191909152815260009283929091611f61606482611806565b51915afa3d1561209c573d9067ffffffffffffffff82116117b85760405191611f94601f8201601f191660200184611806565b82523d6000602084013e5b1561206a5760808180518101031261025b576020810151908160070b820361025b57604081015167ffffffffffffffff81160361025b57606001518060030b80910361025b57600003808060030b03611d755763ffffffff1660120363ffffffff8111611d755763ffffffff1690601282116120315767ffffffffffffffff61202a611c1693611efc565b9116611d62565b60405162461bcd60e51b8152602060048201526011602482015270646563696d616c20756e646572666c6f7760781b6044820152606490fd5b60405162461bcd60e51b815260206004820152600a602482015269383cba341032b93937b960b11b6044820152606490fd5b606090611f9f565b60ff166012039060ff8211611d7557565b519069ffffffffffffffffffff8216820361025b57565b908160a091031261025b576120e0816120b5565b91602082015191604081015191611c166080606084015193016120b5565b8051612112906001600160a01b0316611e47565b6004612131612128606085015163ffffffff1690565b63ffffffff1690565b60a061215261214c612147604088015160ff1690565b6120a4565b60ff1690565b9360405193848092633fabe5a360e21b8252600180861b03165afa8015611e31576000926000916122a7575b5060008313156122625780421061221d574203116121d8576121ae6020916121a86121bd94611efc565b90611d62565b9201516001600160a01b031690565b6001600160a01b0381166121cf575090565b611de790611990565b60405162461bcd60e51b815260206004820152601760248201527f636861696e6c696e6b20707269636520657870697265640000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601c60248201527f757064617465644174206578636565647320626c6f636b2074696d65000000006044820152606490fd5b60405162461bcd60e51b815260206004820181905260248201527f636861696e6c696e6b207072696365206d75737420626520706f7369746976656044820152606490fd5b90506122cc91925060a03d60a0116122d8575b6122c48183611806565b8101906120cc565b5093925050913861217e565b503d6122ba56fea2646970667358221220b01c3023eb98709ef4a3f7735eb430b81c0c15eb9058fa5f490ef8922d30a11764736f6c634300081a0033";
18
18
  static readonly abi: readonly [{
19
19
  readonly inputs: readonly [{
20
20
  readonly internalType: "address";
@@ -303,6 +303,24 @@ export declare class FeedPriceOracle__factory extends ContractFactory {
303
303
  }];
304
304
  readonly stateMutability: "view";
305
305
  readonly type: "function";
306
+ }, {
307
+ readonly inputs: readonly [{
308
+ readonly internalType: "address";
309
+ readonly name: "";
310
+ readonly type: "address";
311
+ }];
312
+ readonly name: "layerbankFeeds";
313
+ readonly outputs: readonly [{
314
+ readonly internalType: "address";
315
+ readonly name: "feedAddr";
316
+ readonly type: "address";
317
+ }, {
318
+ readonly internalType: "address";
319
+ readonly name: "feedAssetAddr";
320
+ readonly type: "address";
321
+ }];
322
+ readonly stateMutability: "view";
323
+ readonly type: "function";
306
324
  }, {
307
325
  readonly inputs: readonly [{
308
326
  readonly internalType: "address";
@@ -473,6 +491,16 @@ export declare class FeedPriceOracle__factory extends ContractFactory {
473
491
  readonly outputs: readonly [];
474
492
  readonly stateMutability: "nonpayable";
475
493
  readonly type: "function";
494
+ }, {
495
+ readonly inputs: readonly [{
496
+ readonly internalType: "address";
497
+ readonly name: "asset";
498
+ readonly type: "address";
499
+ }];
500
+ readonly name: "removeLayerbankFeed";
501
+ readonly outputs: readonly [];
502
+ readonly stateMutability: "nonpayable";
503
+ readonly type: "function";
476
504
  }, {
477
505
  readonly inputs: readonly [{
478
506
  readonly internalType: "address";
@@ -563,6 +591,24 @@ export declare class FeedPriceOracle__factory extends ContractFactory {
563
591
  readonly outputs: readonly [];
564
592
  readonly stateMutability: "nonpayable";
565
593
  readonly type: "function";
594
+ }, {
595
+ readonly inputs: readonly [{
596
+ readonly internalType: "address";
597
+ readonly name: "asset";
598
+ readonly type: "address";
599
+ }, {
600
+ readonly internalType: "address";
601
+ readonly name: "feedAddr";
602
+ readonly type: "address";
603
+ }, {
604
+ readonly internalType: "address";
605
+ readonly name: "feedAssetAddr";
606
+ readonly type: "address";
607
+ }];
608
+ readonly name: "setLayerbankFeed";
609
+ readonly outputs: readonly [];
610
+ readonly stateMutability: "nonpayable";
611
+ readonly type: "function";
566
612
  }, {
567
613
  readonly inputs: readonly [{
568
614
  readonly internalType: "address";