From 6189b7c9b31753d4b891bfd7842d719376182efa Mon Sep 17 00:00:00 2001 From: Dzmitry Lahunouski Date: Wed, 6 Dec 2023 00:46:31 +0000 Subject: [PATCH] fix trading for scripts --- .../@chainlink/contracts/index.ts | 5 + .../@chainlink/contracts/src/index.ts | 5 + .../contracts/src/v0.8/automation/index.ts | 5 + .../AutomationCompatibleInterface.ts | 117 ++++++ .../automation/interfaces/ILogAutomation.ts | 145 +++++++ .../StreamsLookupCompatibleInterface.ts | 98 +++++ .../src/v0.8/automation/interfaces/index.ts | 6 + .../@chainlink/contracts/src/v0.8/index.ts | 5 + .../typechain-types/@chainlink/index.ts | 5 + .../@openzeppelin/contracts/index.ts | 5 + .../contracts/token/ERC20/ERC20.ts | 330 ++++++++++++++++ .../contracts/token/ERC20/IERC20.ts | 262 +++++++++++++ .../token/ERC20/extensions/IERC20Metadata.ts | 286 ++++++++++++++ .../contracts/token/ERC20/extensions/index.ts | 4 + .../contracts/token/ERC20/index.ts | 7 + .../@openzeppelin/contracts/token/index.ts | 5 + .../typechain-types/@openzeppelin/index.ts | 5 + .../typechain-types/@uniswap/index.ts | 5 + .../@uniswap/v3-core/contracts/index.ts | 5 + .../callback/IUniswapV3SwapCallback.ts | 99 +++++ .../contracts/interfaces/callback/index.ts | 4 + .../v3-core/contracts/interfaces/index.ts | 5 + .../typechain-types/@uniswap/v3-core/index.ts | 5 + demo/contracts/typechain-types/common.ts | 129 +++++++ .../contracts/DataStreamsConsumer.ts | 230 +++++++++++ .../contracts/OracleInterfaces.sol/IOracle.ts | 138 +++++++ .../IOracleConsumerContract.ts | 108 ++++++ .../contracts/OracleInterfaces.sol/index.ts | 5 + .../typechain-types/contracts/index.ts | 10 + .../contracts/interfaces/ISwapRouter.ts | 293 ++++++++++++++ .../contracts/interfaces/IVerifierProxy.ts | 113 ++++++ .../contracts/interfaces/index.ts | 5 + .../contracts/mocks/KeeperRegistryMock.ts | 99 +++++ .../typechain-types/contracts/mocks/index.ts | 4 + .../factories/@chainlink/contracts/index.ts | 4 + .../@chainlink/contracts/src/index.ts | 4 + .../contracts/src/v0.8/automation/index.ts | 4 + .../AutomationCompatibleInterface__factory.ts | 66 ++++ .../interfaces/ILogAutomation__factory.ts | 109 ++++++ ...reamsLookupCompatibleInterface__factory.ts | 89 +++++ .../src/v0.8/automation/interfaces/index.ts | 6 + .../@chainlink/contracts/src/v0.8/index.ts | 4 + .../factories/@chainlink/index.ts | 4 + .../@openzeppelin/contracts/index.ts | 4 + .../contracts/token/ERC20/ERC20__factory.ts | 356 ++++++++++++++++++ .../contracts/token/ERC20/IERC20__factory.ts | 205 ++++++++++ .../extensions/IERC20Metadata__factory.ts | 247 ++++++++++++ .../contracts/token/ERC20/extensions/index.ts | 4 + .../contracts/token/ERC20/index.ts | 6 + .../@openzeppelin/contracts/token/index.ts | 4 + .../factories/@openzeppelin/index.ts | 4 + .../factories/@uniswap/index.ts | 4 + .../@uniswap/v3-core/contracts/index.ts | 4 + .../IUniswapV3SwapCallback__factory.ts | 52 +++ .../contracts/interfaces/callback/index.ts | 4 + .../v3-core/contracts/interfaces/index.ts | 4 + .../factories/@uniswap/v3-core/index.ts | 4 + .../contracts/DataStreamsConsumer__factory.ts | 216 +++++++++++ .../IOracleConsumerContract__factory.ts | 65 ++++ .../OracleInterfaces.sol/IOracle__factory.ts | 90 +++++ .../contracts/OracleInterfaces.sol/index.ts | 5 + .../factories/contracts/index.ts | 7 + .../interfaces/ISwapRouter__factory.ts | 254 +++++++++++++ .../interfaces/IVerifierProxy__factory.ts | 77 ++++ .../factories/contracts/interfaces/index.ts | 5 + .../mocks/KeeperRegistryMock__factory.ts | 85 +++++ .../factories/contracts/mocks/index.ts | 4 + .../typechain-types/factories/index.ts | 7 + demo/contracts/typechain-types/hardhat.d.ts | 279 ++++++++++++++ demo/contracts/typechain-types/index.ts | 38 ++ deployment-lock.json | 4 +- scripts/e2e/example/trade.js | 13 +- src/Oracle.sol | 6 +- 73 files changed, 4888 insertions(+), 11 deletions(-) create mode 100644 demo/contracts/typechain-types/@chainlink/contracts/index.ts create mode 100644 demo/contracts/typechain-types/@chainlink/contracts/src/index.ts create mode 100644 demo/contracts/typechain-types/@chainlink/contracts/src/v0.8/automation/index.ts create mode 100644 demo/contracts/typechain-types/@chainlink/contracts/src/v0.8/automation/interfaces/AutomationCompatibleInterface.ts create mode 100644 demo/contracts/typechain-types/@chainlink/contracts/src/v0.8/automation/interfaces/ILogAutomation.ts create mode 100644 demo/contracts/typechain-types/@chainlink/contracts/src/v0.8/automation/interfaces/StreamsLookupCompatibleInterface.ts create mode 100644 demo/contracts/typechain-types/@chainlink/contracts/src/v0.8/automation/interfaces/index.ts create mode 100644 demo/contracts/typechain-types/@chainlink/contracts/src/v0.8/index.ts create mode 100644 demo/contracts/typechain-types/@chainlink/index.ts create mode 100644 demo/contracts/typechain-types/@openzeppelin/contracts/index.ts create mode 100644 demo/contracts/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts create mode 100644 demo/contracts/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts create mode 100644 demo/contracts/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts create mode 100644 demo/contracts/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts create mode 100644 demo/contracts/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts create mode 100644 demo/contracts/typechain-types/@openzeppelin/contracts/token/index.ts create mode 100644 demo/contracts/typechain-types/@openzeppelin/index.ts create mode 100644 demo/contracts/typechain-types/@uniswap/index.ts create mode 100644 demo/contracts/typechain-types/@uniswap/v3-core/contracts/index.ts create mode 100644 demo/contracts/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.ts create mode 100644 demo/contracts/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/index.ts create mode 100644 demo/contracts/typechain-types/@uniswap/v3-core/contracts/interfaces/index.ts create mode 100644 demo/contracts/typechain-types/@uniswap/v3-core/index.ts create mode 100644 demo/contracts/typechain-types/common.ts create mode 100644 demo/contracts/typechain-types/contracts/DataStreamsConsumer.ts create mode 100644 demo/contracts/typechain-types/contracts/OracleInterfaces.sol/IOracle.ts create mode 100644 demo/contracts/typechain-types/contracts/OracleInterfaces.sol/IOracleConsumerContract.ts create mode 100644 demo/contracts/typechain-types/contracts/OracleInterfaces.sol/index.ts create mode 100644 demo/contracts/typechain-types/contracts/index.ts create mode 100644 demo/contracts/typechain-types/contracts/interfaces/ISwapRouter.ts create mode 100644 demo/contracts/typechain-types/contracts/interfaces/IVerifierProxy.ts create mode 100644 demo/contracts/typechain-types/contracts/interfaces/index.ts create mode 100644 demo/contracts/typechain-types/contracts/mocks/KeeperRegistryMock.ts create mode 100644 demo/contracts/typechain-types/contracts/mocks/index.ts create mode 100644 demo/contracts/typechain-types/factories/@chainlink/contracts/index.ts create mode 100644 demo/contracts/typechain-types/factories/@chainlink/contracts/src/index.ts create mode 100644 demo/contracts/typechain-types/factories/@chainlink/contracts/src/v0.8/automation/index.ts create mode 100644 demo/contracts/typechain-types/factories/@chainlink/contracts/src/v0.8/automation/interfaces/AutomationCompatibleInterface__factory.ts create mode 100644 demo/contracts/typechain-types/factories/@chainlink/contracts/src/v0.8/automation/interfaces/ILogAutomation__factory.ts create mode 100644 demo/contracts/typechain-types/factories/@chainlink/contracts/src/v0.8/automation/interfaces/StreamsLookupCompatibleInterface__factory.ts create mode 100644 demo/contracts/typechain-types/factories/@chainlink/contracts/src/v0.8/automation/interfaces/index.ts create mode 100644 demo/contracts/typechain-types/factories/@chainlink/contracts/src/v0.8/index.ts create mode 100644 demo/contracts/typechain-types/factories/@chainlink/index.ts create mode 100644 demo/contracts/typechain-types/factories/@openzeppelin/contracts/index.ts create mode 100644 demo/contracts/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts create mode 100644 demo/contracts/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts create mode 100644 demo/contracts/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts create mode 100644 demo/contracts/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts create mode 100644 demo/contracts/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts create mode 100644 demo/contracts/typechain-types/factories/@openzeppelin/contracts/token/index.ts create mode 100644 demo/contracts/typechain-types/factories/@openzeppelin/index.ts create mode 100644 demo/contracts/typechain-types/factories/@uniswap/index.ts create mode 100644 demo/contracts/typechain-types/factories/@uniswap/v3-core/contracts/index.ts create mode 100644 demo/contracts/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback__factory.ts create mode 100644 demo/contracts/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/index.ts create mode 100644 demo/contracts/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/index.ts create mode 100644 demo/contracts/typechain-types/factories/@uniswap/v3-core/index.ts create mode 100644 demo/contracts/typechain-types/factories/contracts/DataStreamsConsumer__factory.ts create mode 100644 demo/contracts/typechain-types/factories/contracts/OracleInterfaces.sol/IOracleConsumerContract__factory.ts create mode 100644 demo/contracts/typechain-types/factories/contracts/OracleInterfaces.sol/IOracle__factory.ts create mode 100644 demo/contracts/typechain-types/factories/contracts/OracleInterfaces.sol/index.ts create mode 100644 demo/contracts/typechain-types/factories/contracts/index.ts create mode 100644 demo/contracts/typechain-types/factories/contracts/interfaces/ISwapRouter__factory.ts create mode 100644 demo/contracts/typechain-types/factories/contracts/interfaces/IVerifierProxy__factory.ts create mode 100644 demo/contracts/typechain-types/factories/contracts/interfaces/index.ts create mode 100644 demo/contracts/typechain-types/factories/contracts/mocks/KeeperRegistryMock__factory.ts create mode 100644 demo/contracts/typechain-types/factories/contracts/mocks/index.ts create mode 100644 demo/contracts/typechain-types/factories/index.ts create mode 100644 demo/contracts/typechain-types/hardhat.d.ts create mode 100644 demo/contracts/typechain-types/index.ts diff --git a/demo/contracts/typechain-types/@chainlink/contracts/index.ts b/demo/contracts/typechain-types/@chainlink/contracts/index.ts new file mode 100644 index 0000000..f68cafe --- /dev/null +++ b/demo/contracts/typechain-types/@chainlink/contracts/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as src from "./src"; +export type { src }; diff --git a/demo/contracts/typechain-types/@chainlink/contracts/src/index.ts b/demo/contracts/typechain-types/@chainlink/contracts/src/index.ts new file mode 100644 index 0000000..0d87d23 --- /dev/null +++ b/demo/contracts/typechain-types/@chainlink/contracts/src/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as v08 from "./v0.8"; +export type { v08 }; diff --git a/demo/contracts/typechain-types/@chainlink/contracts/src/v0.8/automation/index.ts b/demo/contracts/typechain-types/@chainlink/contracts/src/v0.8/automation/index.ts new file mode 100644 index 0000000..9215923 --- /dev/null +++ b/demo/contracts/typechain-types/@chainlink/contracts/src/v0.8/automation/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as interfaces from "./interfaces"; +export type { interfaces }; diff --git a/demo/contracts/typechain-types/@chainlink/contracts/src/v0.8/automation/interfaces/AutomationCompatibleInterface.ts b/demo/contracts/typechain-types/@chainlink/contracts/src/v0.8/automation/interfaces/AutomationCompatibleInterface.ts new file mode 100644 index 0000000..c9d2afc --- /dev/null +++ b/demo/contracts/typechain-types/@chainlink/contracts/src/v0.8/automation/interfaces/AutomationCompatibleInterface.ts @@ -0,0 +1,117 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../../../../common"; + +export interface AutomationCompatibleInterfaceInterface extends Interface { + getFunction( + nameOrSignature: "checkUpkeep" | "performUpkeep" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "checkUpkeep", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "performUpkeep", + values: [BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "checkUpkeep", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "performUpkeep", + data: BytesLike + ): Result; +} + +export interface AutomationCompatibleInterface extends BaseContract { + connect(runner?: ContractRunner | null): AutomationCompatibleInterface; + waitForDeployment(): Promise; + + interface: AutomationCompatibleInterfaceInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + checkUpkeep: TypedContractMethod< + [checkData: BytesLike], + [[boolean, string] & { upkeepNeeded: boolean; performData: string }], + "nonpayable" + >; + + performUpkeep: TypedContractMethod< + [performData: BytesLike], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "checkUpkeep" + ): TypedContractMethod< + [checkData: BytesLike], + [[boolean, string] & { upkeepNeeded: boolean; performData: string }], + "nonpayable" + >; + getFunction( + nameOrSignature: "performUpkeep" + ): TypedContractMethod<[performData: BytesLike], [void], "nonpayable">; + + filters: {}; +} diff --git a/demo/contracts/typechain-types/@chainlink/contracts/src/v0.8/automation/interfaces/ILogAutomation.ts b/demo/contracts/typechain-types/@chainlink/contracts/src/v0.8/automation/interfaces/ILogAutomation.ts new file mode 100644 index 0000000..ce84828 --- /dev/null +++ b/demo/contracts/typechain-types/@chainlink/contracts/src/v0.8/automation/interfaces/ILogAutomation.ts @@ -0,0 +1,145 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../../../../common"; + +export type LogStruct = { + index: BigNumberish; + timestamp: BigNumberish; + txHash: BytesLike; + blockNumber: BigNumberish; + blockHash: BytesLike; + source: AddressLike; + topics: BytesLike[]; + data: BytesLike; +}; + +export type LogStructOutput = [ + index: bigint, + timestamp: bigint, + txHash: string, + blockNumber: bigint, + blockHash: string, + source: string, + topics: string[], + data: string +] & { + index: bigint; + timestamp: bigint; + txHash: string; + blockNumber: bigint; + blockHash: string; + source: string; + topics: string[]; + data: string; +}; + +export interface ILogAutomationInterface extends Interface { + getFunction(nameOrSignature: "checkLog" | "performUpkeep"): FunctionFragment; + + encodeFunctionData( + functionFragment: "checkLog", + values: [LogStruct, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "performUpkeep", + values: [BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "checkLog", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "performUpkeep", + data: BytesLike + ): Result; +} + +export interface ILogAutomation extends BaseContract { + connect(runner?: ContractRunner | null): ILogAutomation; + waitForDeployment(): Promise; + + interface: ILogAutomationInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + checkLog: TypedContractMethod< + [log: LogStruct, checkData: BytesLike], + [[boolean, string] & { upkeepNeeded: boolean; performData: string }], + "nonpayable" + >; + + performUpkeep: TypedContractMethod< + [performData: BytesLike], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "checkLog" + ): TypedContractMethod< + [log: LogStruct, checkData: BytesLike], + [[boolean, string] & { upkeepNeeded: boolean; performData: string }], + "nonpayable" + >; + getFunction( + nameOrSignature: "performUpkeep" + ): TypedContractMethod<[performData: BytesLike], [void], "nonpayable">; + + filters: {}; +} diff --git a/demo/contracts/typechain-types/@chainlink/contracts/src/v0.8/automation/interfaces/StreamsLookupCompatibleInterface.ts b/demo/contracts/typechain-types/@chainlink/contracts/src/v0.8/automation/interfaces/StreamsLookupCompatibleInterface.ts new file mode 100644 index 0000000..3d595c8 --- /dev/null +++ b/demo/contracts/typechain-types/@chainlink/contracts/src/v0.8/automation/interfaces/StreamsLookupCompatibleInterface.ts @@ -0,0 +1,98 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../../../../common"; + +export interface StreamsLookupCompatibleInterfaceInterface extends Interface { + getFunction(nameOrSignature: "checkCallback"): FunctionFragment; + + encodeFunctionData( + functionFragment: "checkCallback", + values: [BytesLike[], BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "checkCallback", + data: BytesLike + ): Result; +} + +export interface StreamsLookupCompatibleInterface extends BaseContract { + connect(runner?: ContractRunner | null): StreamsLookupCompatibleInterface; + waitForDeployment(): Promise; + + interface: StreamsLookupCompatibleInterfaceInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + checkCallback: TypedContractMethod< + [values: BytesLike[], extraData: BytesLike], + [[boolean, string] & { upkeepNeeded: boolean; performData: string }], + "view" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "checkCallback" + ): TypedContractMethod< + [values: BytesLike[], extraData: BytesLike], + [[boolean, string] & { upkeepNeeded: boolean; performData: string }], + "view" + >; + + filters: {}; +} diff --git a/demo/contracts/typechain-types/@chainlink/contracts/src/v0.8/automation/interfaces/index.ts b/demo/contracts/typechain-types/@chainlink/contracts/src/v0.8/automation/interfaces/index.ts new file mode 100644 index 0000000..9053eee --- /dev/null +++ b/demo/contracts/typechain-types/@chainlink/contracts/src/v0.8/automation/interfaces/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { AutomationCompatibleInterface } from "./AutomationCompatibleInterface"; +export type { ILogAutomation } from "./ILogAutomation"; +export type { StreamsLookupCompatibleInterface } from "./StreamsLookupCompatibleInterface"; diff --git a/demo/contracts/typechain-types/@chainlink/contracts/src/v0.8/index.ts b/demo/contracts/typechain-types/@chainlink/contracts/src/v0.8/index.ts new file mode 100644 index 0000000..c7312e8 --- /dev/null +++ b/demo/contracts/typechain-types/@chainlink/contracts/src/v0.8/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as automation from "./automation"; +export type { automation }; diff --git a/demo/contracts/typechain-types/@chainlink/index.ts b/demo/contracts/typechain-types/@chainlink/index.ts new file mode 100644 index 0000000..a11e4ca --- /dev/null +++ b/demo/contracts/typechain-types/@chainlink/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as contracts from "./contracts"; +export type { contracts }; diff --git a/demo/contracts/typechain-types/@openzeppelin/contracts/index.ts b/demo/contracts/typechain-types/@openzeppelin/contracts/index.ts new file mode 100644 index 0000000..c2d4e46 --- /dev/null +++ b/demo/contracts/typechain-types/@openzeppelin/contracts/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as token from "./token"; +export type { token }; diff --git a/demo/contracts/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts b/demo/contracts/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts new file mode 100644 index 0000000..9ad4428 --- /dev/null +++ b/demo/contracts/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts @@ -0,0 +1,330 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export interface ERC20Interface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "decimals" + | "decreaseAllowance" + | "increaseAllowance" + | "name" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData( + functionFragment: "decreaseAllowance", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "increaseAllowance", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "decreaseAllowance", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "increaseAllowance", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ERC20 extends BaseContract { + connect(runner?: ContractRunner | null): ERC20; + waitForDeployment(): Promise; + + interface: ERC20Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + decimals: TypedContractMethod<[], [bigint], "view">; + + decreaseAllowance: TypedContractMethod< + [spender: AddressLike, subtractedValue: BigNumberish], + [boolean], + "nonpayable" + >; + + increaseAllowance: TypedContractMethod< + [spender: AddressLike, addedValue: BigNumberish], + [boolean], + "nonpayable" + >; + + name: TypedContractMethod<[], [string], "view">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "decreaseAllowance" + ): TypedContractMethod< + [spender: AddressLike, subtractedValue: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "increaseAllowance" + ): TypedContractMethod< + [spender: AddressLike, addedValue: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/demo/contracts/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts b/demo/contracts/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts new file mode 100644 index 0000000..2ffc282 --- /dev/null +++ b/demo/contracts/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts @@ -0,0 +1,262 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export interface IERC20Interface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IERC20 extends BaseContract { + connect(runner?: ContractRunner | null): IERC20; + waitForDeployment(): Promise; + + interface: IERC20Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/demo/contracts/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts b/demo/contracts/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts new file mode 100644 index 0000000..ab187df --- /dev/null +++ b/demo/contracts/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts @@ -0,0 +1,286 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../../common"; + +export interface IERC20MetadataInterface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "decimals" + | "name" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IERC20Metadata extends BaseContract { + connect(runner?: ContractRunner | null): IERC20Metadata; + waitForDeployment(): Promise; + + interface: IERC20MetadataInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + decimals: TypedContractMethod<[], [bigint], "view">; + + name: TypedContractMethod<[], [string], "view">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [sender: AddressLike, recipient: AddressLike, amount: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/demo/contracts/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts b/demo/contracts/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts new file mode 100644 index 0000000..6044cde --- /dev/null +++ b/demo/contracts/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IERC20Metadata } from "./IERC20Metadata"; diff --git a/demo/contracts/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts b/demo/contracts/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts new file mode 100644 index 0000000..cc19697 --- /dev/null +++ b/demo/contracts/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts @@ -0,0 +1,7 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as extensions from "./extensions"; +export type { extensions }; +export type { ERC20 } from "./ERC20"; +export type { IERC20 } from "./IERC20"; diff --git a/demo/contracts/typechain-types/@openzeppelin/contracts/token/index.ts b/demo/contracts/typechain-types/@openzeppelin/contracts/token/index.ts new file mode 100644 index 0000000..5c4062a --- /dev/null +++ b/demo/contracts/typechain-types/@openzeppelin/contracts/token/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as erc20 from "./ERC20"; +export type { erc20 }; diff --git a/demo/contracts/typechain-types/@openzeppelin/index.ts b/demo/contracts/typechain-types/@openzeppelin/index.ts new file mode 100644 index 0000000..a11e4ca --- /dev/null +++ b/demo/contracts/typechain-types/@openzeppelin/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as contracts from "./contracts"; +export type { contracts }; diff --git a/demo/contracts/typechain-types/@uniswap/index.ts b/demo/contracts/typechain-types/@uniswap/index.ts new file mode 100644 index 0000000..2aaf583 --- /dev/null +++ b/demo/contracts/typechain-types/@uniswap/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as v3Core from "./v3-core"; +export type { v3Core }; diff --git a/demo/contracts/typechain-types/@uniswap/v3-core/contracts/index.ts b/demo/contracts/typechain-types/@uniswap/v3-core/contracts/index.ts new file mode 100644 index 0000000..9215923 --- /dev/null +++ b/demo/contracts/typechain-types/@uniswap/v3-core/contracts/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as interfaces from "./interfaces"; +export type { interfaces }; diff --git a/demo/contracts/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.ts b/demo/contracts/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.ts new file mode 100644 index 0000000..7ad62fc --- /dev/null +++ b/demo/contracts/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.ts @@ -0,0 +1,99 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../../../../common"; + +export interface IUniswapV3SwapCallbackInterface extends Interface { + getFunction(nameOrSignature: "uniswapV3SwapCallback"): FunctionFragment; + + encodeFunctionData( + functionFragment: "uniswapV3SwapCallback", + values: [BigNumberish, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "uniswapV3SwapCallback", + data: BytesLike + ): Result; +} + +export interface IUniswapV3SwapCallback extends BaseContract { + connect(runner?: ContractRunner | null): IUniswapV3SwapCallback; + waitForDeployment(): Promise; + + interface: IUniswapV3SwapCallbackInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + uniswapV3SwapCallback: TypedContractMethod< + [amount0Delta: BigNumberish, amount1Delta: BigNumberish, data: BytesLike], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "uniswapV3SwapCallback" + ): TypedContractMethod< + [amount0Delta: BigNumberish, amount1Delta: BigNumberish, data: BytesLike], + [void], + "nonpayable" + >; + + filters: {}; +} diff --git a/demo/contracts/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/index.ts b/demo/contracts/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/index.ts new file mode 100644 index 0000000..c552691 --- /dev/null +++ b/demo/contracts/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IUniswapV3SwapCallback } from "./IUniswapV3SwapCallback"; diff --git a/demo/contracts/typechain-types/@uniswap/v3-core/contracts/interfaces/index.ts b/demo/contracts/typechain-types/@uniswap/v3-core/contracts/interfaces/index.ts new file mode 100644 index 0000000..3b69c53 --- /dev/null +++ b/demo/contracts/typechain-types/@uniswap/v3-core/contracts/interfaces/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as callback from "./callback"; +export type { callback }; diff --git a/demo/contracts/typechain-types/@uniswap/v3-core/index.ts b/demo/contracts/typechain-types/@uniswap/v3-core/index.ts new file mode 100644 index 0000000..a11e4ca --- /dev/null +++ b/demo/contracts/typechain-types/@uniswap/v3-core/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as contracts from "./contracts"; +export type { contracts }; diff --git a/demo/contracts/typechain-types/common.ts b/demo/contracts/typechain-types/common.ts new file mode 100644 index 0000000..192c895 --- /dev/null +++ b/demo/contracts/typechain-types/common.ts @@ -0,0 +1,129 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + FunctionFragment, + Typed, + EventFragment, + ContractTransaction, + ContractTransactionResponse, + DeferredTopicFilter, + EventLog, + TransactionRequest, + LogDescription, +} from "ethers"; + +export interface TypedDeferredTopicFilter<_TCEvent extends TypedContractEvent> + extends DeferredTopicFilter {} + +export interface TypedContractEvent< + InputTuple extends Array = any, + OutputTuple extends Array = any, + OutputObject = any +> { + (...args: Partial): TypedDeferredTopicFilter< + TypedContractEvent + >; + name: string; + fragment: EventFragment; + getFragment(...args: Partial): EventFragment; +} + +type __TypechainAOutputTuple = T extends TypedContractEvent< + infer _U, + infer W +> + ? W + : never; +type __TypechainOutputObject = T extends TypedContractEvent< + infer _U, + infer _W, + infer V +> + ? V + : never; + +export interface TypedEventLog + extends Omit { + args: __TypechainAOutputTuple & __TypechainOutputObject; +} + +export interface TypedLogDescription + extends Omit { + args: __TypechainAOutputTuple & __TypechainOutputObject; +} + +export type TypedListener = ( + ...listenerArg: [ + ...__TypechainAOutputTuple, + TypedEventLog, + ...undefined[] + ] +) => void; + +export type MinEthersFactory = { + deploy(...a: ARGS[]): Promise; +}; + +export type GetContractTypeFromFactory = F extends MinEthersFactory< + infer C, + any +> + ? C + : never; +export type GetARGsTypeFromFactory = F extends MinEthersFactory + ? Parameters + : never; + +export type StateMutability = "nonpayable" | "payable" | "view"; + +export type BaseOverrides = Omit; +export type NonPayableOverrides = Omit< + BaseOverrides, + "value" | "blockTag" | "enableCcipRead" +>; +export type PayableOverrides = Omit< + BaseOverrides, + "blockTag" | "enableCcipRead" +>; +export type ViewOverrides = Omit; +export type Overrides = S extends "nonpayable" + ? NonPayableOverrides + : S extends "payable" + ? PayableOverrides + : ViewOverrides; + +export type PostfixOverrides, S extends StateMutability> = + | A + | [...A, Overrides]; +export type ContractMethodArgs< + A extends Array, + S extends StateMutability +> = PostfixOverrides<{ [I in keyof A]-?: A[I] | Typed }, S>; + +export type DefaultReturnType = R extends Array ? R[0] : R; + +// export interface ContractMethod = Array, R = any, D extends R | ContractTransactionResponse = R | ContractTransactionResponse> { +export interface TypedContractMethod< + A extends Array = Array, + R = any, + S extends StateMutability = "payable" +> { + (...args: ContractMethodArgs): S extends "view" + ? Promise> + : Promise; + + name: string; + + fragment: FunctionFragment; + + getFragment(...args: ContractMethodArgs): FunctionFragment; + + populateTransaction( + ...args: ContractMethodArgs + ): Promise; + staticCall(...args: ContractMethodArgs): Promise>; + send(...args: ContractMethodArgs): Promise; + estimateGas(...args: ContractMethodArgs): Promise; + staticCallResult(...args: ContractMethodArgs): Promise; +} diff --git a/demo/contracts/typechain-types/contracts/DataStreamsConsumer.ts b/demo/contracts/typechain-types/contracts/DataStreamsConsumer.ts new file mode 100644 index 0000000..228316a --- /dev/null +++ b/demo/contracts/typechain-types/contracts/DataStreamsConsumer.ts @@ -0,0 +1,230 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../common"; + +export type ForwardDataStruct = { + price: BigNumberish; + feedType: BigNumberish; + forwardArguments: BytesLike; +}; + +export type ForwardDataStructOutput = [ + price: bigint, + feedType: bigint, + forwardArguments: string +] & { price: bigint; feedType: bigint; forwardArguments: string }; + +export interface DataStreamsConsumerInterface extends Interface { + getFunction( + nameOrSignature: + | "FEE" + | "consume" + | "i_oracleEmitter" + | "i_router" + | "initializer" + | "trade" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "TradeExecuted"): EventFragment; + + encodeFunctionData(functionFragment: "FEE", values?: undefined): string; + encodeFunctionData( + functionFragment: "consume", + values: [ForwardDataStruct] + ): string; + encodeFunctionData( + functionFragment: "i_oracleEmitter", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "i_router", values?: undefined): string; + encodeFunctionData( + functionFragment: "initializer", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "trade", + values: [AddressLike, AddressLike, BigNumberish, string, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "FEE", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "consume", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "i_oracleEmitter", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "i_router", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "initializer", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "trade", data: BytesLike): Result; +} + +export namespace TradeExecutedEvent { + export type InputTuple = [tokensAmount: BigNumberish]; + export type OutputTuple = [tokensAmount: bigint]; + export interface OutputObject { + tokensAmount: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface DataStreamsConsumer extends BaseContract { + connect(runner?: ContractRunner | null): DataStreamsConsumer; + waitForDeployment(): Promise; + + interface: DataStreamsConsumerInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + FEE: TypedContractMethod<[], [bigint], "view">; + + consume: TypedContractMethod< + [forwardData: ForwardDataStruct], + [boolean], + "nonpayable" + >; + + i_oracleEmitter: TypedContractMethod<[], [string], "view">; + + i_router: TypedContractMethod<[], [string], "view">; + + initializer: TypedContractMethod< + [router: AddressLike, oracleEmitter: AddressLike], + [void], + "nonpayable" + >; + + trade: TypedContractMethod< + [ + tokenIn: AddressLike, + tokenOut: AddressLike, + amount: BigNumberish, + feedId: string, + nonce: BigNumberish + ], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "FEE" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "consume" + ): TypedContractMethod< + [forwardData: ForwardDataStruct], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "i_oracleEmitter" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "i_router" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "initializer" + ): TypedContractMethod< + [router: AddressLike, oracleEmitter: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "trade" + ): TypedContractMethod< + [ + tokenIn: AddressLike, + tokenOut: AddressLike, + amount: BigNumberish, + feedId: string, + nonce: BigNumberish + ], + [void], + "nonpayable" + >; + + getEvent( + key: "TradeExecuted" + ): TypedContractEvent< + TradeExecutedEvent.InputTuple, + TradeExecutedEvent.OutputTuple, + TradeExecutedEvent.OutputObject + >; + + filters: { + "TradeExecuted(uint256)": TypedContractEvent< + TradeExecutedEvent.InputTuple, + TradeExecutedEvent.OutputTuple, + TradeExecutedEvent.OutputObject + >; + TradeExecuted: TypedContractEvent< + TradeExecutedEvent.InputTuple, + TradeExecutedEvent.OutputTuple, + TradeExecutedEvent.OutputObject + >; + }; +} diff --git a/demo/contracts/typechain-types/contracts/OracleInterfaces.sol/IOracle.ts b/demo/contracts/typechain-types/contracts/OracleInterfaces.sol/IOracle.ts new file mode 100644 index 0000000..d0ce9b8 --- /dev/null +++ b/demo/contracts/typechain-types/contracts/OracleInterfaces.sol/IOracle.ts @@ -0,0 +1,138 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export interface IOracleInterface extends Interface { + getFunction(nameOrSignature: "addRequest" | "fallbackCall"): FunctionFragment; + + encodeFunctionData( + functionFragment: "addRequest", + values: [AddressLike, BytesLike, BigNumberish, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "fallbackCall", + values: [AddressLike, BytesLike, BigNumberish, AddressLike] + ): string; + + decodeFunctionResult(functionFragment: "addRequest", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "fallbackCall", + data: BytesLike + ): Result; +} + +export interface IOracle extends BaseContract { + connect(runner?: ContractRunner | null): IOracle; + waitForDeployment(): Promise; + + interface: IOracleInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + addRequest: TypedContractMethod< + [ + callbackContract: AddressLike, + callbackArgs: BytesLike, + nonce: BigNumberish, + sender: AddressLike + ], + [boolean], + "nonpayable" + >; + + fallbackCall: TypedContractMethod< + [ + callbackContract: AddressLike, + callbackArgs: BytesLike, + nonce: BigNumberish, + sender: AddressLike + ], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "addRequest" + ): TypedContractMethod< + [ + callbackContract: AddressLike, + callbackArgs: BytesLike, + nonce: BigNumberish, + sender: AddressLike + ], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "fallbackCall" + ): TypedContractMethod< + [ + callbackContract: AddressLike, + callbackArgs: BytesLike, + nonce: BigNumberish, + sender: AddressLike + ], + [boolean], + "nonpayable" + >; + + filters: {}; +} diff --git a/demo/contracts/typechain-types/contracts/OracleInterfaces.sol/IOracleConsumerContract.ts b/demo/contracts/typechain-types/contracts/OracleInterfaces.sol/IOracleConsumerContract.ts new file mode 100644 index 0000000..7ad2d84 --- /dev/null +++ b/demo/contracts/typechain-types/contracts/OracleInterfaces.sol/IOracleConsumerContract.ts @@ -0,0 +1,108 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export type ForwardDataStruct = { + price: BigNumberish; + feedType: BigNumberish; + forwardArguments: BytesLike; +}; + +export type ForwardDataStructOutput = [ + price: bigint, + feedType: bigint, + forwardArguments: string +] & { price: bigint; feedType: bigint; forwardArguments: string }; + +export interface IOracleConsumerContractInterface extends Interface { + getFunction(nameOrSignature: "consume"): FunctionFragment; + + encodeFunctionData( + functionFragment: "consume", + values: [ForwardDataStruct] + ): string; + + decodeFunctionResult(functionFragment: "consume", data: BytesLike): Result; +} + +export interface IOracleConsumerContract extends BaseContract { + connect(runner?: ContractRunner | null): IOracleConsumerContract; + waitForDeployment(): Promise; + + interface: IOracleConsumerContractInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + consume: TypedContractMethod< + [forwardData: ForwardDataStruct], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "consume" + ): TypedContractMethod< + [forwardData: ForwardDataStruct], + [boolean], + "nonpayable" + >; + + filters: {}; +} diff --git a/demo/contracts/typechain-types/contracts/OracleInterfaces.sol/index.ts b/demo/contracts/typechain-types/contracts/OracleInterfaces.sol/index.ts new file mode 100644 index 0000000..6d8f2f0 --- /dev/null +++ b/demo/contracts/typechain-types/contracts/OracleInterfaces.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IOracle } from "./IOracle"; +export type { IOracleConsumerContract } from "./IOracleConsumerContract"; diff --git a/demo/contracts/typechain-types/contracts/index.ts b/demo/contracts/typechain-types/contracts/index.ts new file mode 100644 index 0000000..861810b --- /dev/null +++ b/demo/contracts/typechain-types/contracts/index.ts @@ -0,0 +1,10 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as oracleInterfacesSol from "./OracleInterfaces.sol"; +export type { oracleInterfacesSol }; +import type * as interfaces from "./interfaces"; +export type { interfaces }; +import type * as mocks from "./mocks"; +export type { mocks }; +export type { DataStreamsConsumer } from "./DataStreamsConsumer"; diff --git a/demo/contracts/typechain-types/contracts/interfaces/ISwapRouter.ts b/demo/contracts/typechain-types/contracts/interfaces/ISwapRouter.ts new file mode 100644 index 0000000..c4019a8 --- /dev/null +++ b/demo/contracts/typechain-types/contracts/interfaces/ISwapRouter.ts @@ -0,0 +1,293 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export declare namespace ISwapRouter { + export type ExactInputParamsStruct = { + path: BytesLike; + recipient: AddressLike; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }; + + export type ExactInputParamsStructOutput = [ + path: string, + recipient: string, + deadline: bigint, + amountIn: bigint, + amountOutMinimum: bigint + ] & { + path: string; + recipient: string; + deadline: bigint; + amountIn: bigint; + amountOutMinimum: bigint; + }; + + export type ExactInputSingleParamsStruct = { + tokenIn: AddressLike; + tokenOut: AddressLike; + fee: BigNumberish; + recipient: AddressLike; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }; + + export type ExactInputSingleParamsStructOutput = [ + tokenIn: string, + tokenOut: string, + fee: bigint, + recipient: string, + amountIn: bigint, + amountOutMinimum: bigint, + sqrtPriceLimitX96: bigint + ] & { + tokenIn: string; + tokenOut: string; + fee: bigint; + recipient: string; + amountIn: bigint; + amountOutMinimum: bigint; + sqrtPriceLimitX96: bigint; + }; + + export type ExactOutputParamsStruct = { + path: BytesLike; + recipient: AddressLike; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }; + + export type ExactOutputParamsStructOutput = [ + path: string, + recipient: string, + deadline: bigint, + amountOut: bigint, + amountInMaximum: bigint + ] & { + path: string; + recipient: string; + deadline: bigint; + amountOut: bigint; + amountInMaximum: bigint; + }; + + export type ExactOutputSingleParamsStruct = { + tokenIn: AddressLike; + tokenOut: AddressLike; + fee: BigNumberish; + recipient: AddressLike; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }; + + export type ExactOutputSingleParamsStructOutput = [ + tokenIn: string, + tokenOut: string, + fee: bigint, + recipient: string, + deadline: bigint, + amountOut: bigint, + amountInMaximum: bigint, + sqrtPriceLimitX96: bigint + ] & { + tokenIn: string; + tokenOut: string; + fee: bigint; + recipient: string; + deadline: bigint; + amountOut: bigint; + amountInMaximum: bigint; + sqrtPriceLimitX96: bigint; + }; +} + +export interface ISwapRouterInterface extends Interface { + getFunction( + nameOrSignature: + | "exactInput" + | "exactInputSingle" + | "exactOutput" + | "exactOutputSingle" + | "uniswapV3SwapCallback" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "exactInput", + values: [ISwapRouter.ExactInputParamsStruct] + ): string; + encodeFunctionData( + functionFragment: "exactInputSingle", + values: [ISwapRouter.ExactInputSingleParamsStruct] + ): string; + encodeFunctionData( + functionFragment: "exactOutput", + values: [ISwapRouter.ExactOutputParamsStruct] + ): string; + encodeFunctionData( + functionFragment: "exactOutputSingle", + values: [ISwapRouter.ExactOutputSingleParamsStruct] + ): string; + encodeFunctionData( + functionFragment: "uniswapV3SwapCallback", + values: [BigNumberish, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "exactInput", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "exactInputSingle", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "exactOutput", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "exactOutputSingle", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapV3SwapCallback", + data: BytesLike + ): Result; +} + +export interface ISwapRouter extends BaseContract { + connect(runner?: ContractRunner | null): ISwapRouter; + waitForDeployment(): Promise; + + interface: ISwapRouterInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + exactInput: TypedContractMethod< + [params: ISwapRouter.ExactInputParamsStruct], + [bigint], + "payable" + >; + + exactInputSingle: TypedContractMethod< + [params: ISwapRouter.ExactInputSingleParamsStruct], + [bigint], + "payable" + >; + + exactOutput: TypedContractMethod< + [params: ISwapRouter.ExactOutputParamsStruct], + [bigint], + "payable" + >; + + exactOutputSingle: TypedContractMethod< + [params: ISwapRouter.ExactOutputSingleParamsStruct], + [bigint], + "payable" + >; + + uniswapV3SwapCallback: TypedContractMethod< + [amount0Delta: BigNumberish, amount1Delta: BigNumberish, data: BytesLike], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "exactInput" + ): TypedContractMethod< + [params: ISwapRouter.ExactInputParamsStruct], + [bigint], + "payable" + >; + getFunction( + nameOrSignature: "exactInputSingle" + ): TypedContractMethod< + [params: ISwapRouter.ExactInputSingleParamsStruct], + [bigint], + "payable" + >; + getFunction( + nameOrSignature: "exactOutput" + ): TypedContractMethod< + [params: ISwapRouter.ExactOutputParamsStruct], + [bigint], + "payable" + >; + getFunction( + nameOrSignature: "exactOutputSingle" + ): TypedContractMethod< + [params: ISwapRouter.ExactOutputSingleParamsStruct], + [bigint], + "payable" + >; + getFunction( + nameOrSignature: "uniswapV3SwapCallback" + ): TypedContractMethod< + [amount0Delta: BigNumberish, amount1Delta: BigNumberish, data: BytesLike], + [void], + "nonpayable" + >; + + filters: {}; +} diff --git a/demo/contracts/typechain-types/contracts/interfaces/IVerifierProxy.ts b/demo/contracts/typechain-types/contracts/interfaces/IVerifierProxy.ts new file mode 100644 index 0000000..96cec42 --- /dev/null +++ b/demo/contracts/typechain-types/contracts/interfaces/IVerifierProxy.ts @@ -0,0 +1,113 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export interface IVerifierProxyInterface extends Interface { + getFunction(nameOrSignature: "verify" | "verifyBulk"): FunctionFragment; + + encodeFunctionData( + functionFragment: "verify", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "verifyBulk", + values: [BytesLike[], BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "verify", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "verifyBulk", data: BytesLike): Result; +} + +export interface IVerifierProxy extends BaseContract { + connect(runner?: ContractRunner | null): IVerifierProxy; + waitForDeployment(): Promise; + + interface: IVerifierProxyInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + verify: TypedContractMethod< + [payload: BytesLike, parameterPayload: BytesLike], + [string], + "payable" + >; + + verifyBulk: TypedContractMethod< + [payloads: BytesLike[], parameterPayload: BytesLike], + [string[]], + "payable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "verify" + ): TypedContractMethod< + [payload: BytesLike, parameterPayload: BytesLike], + [string], + "payable" + >; + getFunction( + nameOrSignature: "verifyBulk" + ): TypedContractMethod< + [payloads: BytesLike[], parameterPayload: BytesLike], + [string[]], + "payable" + >; + + filters: {}; +} diff --git a/demo/contracts/typechain-types/contracts/interfaces/index.ts b/demo/contracts/typechain-types/contracts/interfaces/index.ts new file mode 100644 index 0000000..fa2b6f1 --- /dev/null +++ b/demo/contracts/typechain-types/contracts/interfaces/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { ISwapRouter } from "./ISwapRouter"; +export type { IVerifierProxy } from "./IVerifierProxy"; diff --git a/demo/contracts/typechain-types/contracts/mocks/KeeperRegistryMock.ts b/demo/contracts/typechain-types/contracts/mocks/KeeperRegistryMock.ts new file mode 100644 index 0000000..a8a595d --- /dev/null +++ b/demo/contracts/typechain-types/contracts/mocks/KeeperRegistryMock.ts @@ -0,0 +1,99 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export interface KeeperRegistryMockInterface extends Interface { + getFunction(nameOrSignature: "performUpkeep"): FunctionFragment; + + encodeFunctionData( + functionFragment: "performUpkeep", + values: [AddressLike, BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "performUpkeep", + data: BytesLike + ): Result; +} + +export interface KeeperRegistryMock extends BaseContract { + connect(runner?: ContractRunner | null): KeeperRegistryMock; + waitForDeployment(): Promise; + + interface: KeeperRegistryMockInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + performUpkeep: TypedContractMethod< + [upkeep: AddressLike, performData: BytesLike], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "performUpkeep" + ): TypedContractMethod< + [upkeep: AddressLike, performData: BytesLike], + [void], + "nonpayable" + >; + + filters: {}; +} diff --git a/demo/contracts/typechain-types/contracts/mocks/index.ts b/demo/contracts/typechain-types/contracts/mocks/index.ts new file mode 100644 index 0000000..252c85b --- /dev/null +++ b/demo/contracts/typechain-types/contracts/mocks/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { KeeperRegistryMock } from "./KeeperRegistryMock"; diff --git a/demo/contracts/typechain-types/factories/@chainlink/contracts/index.ts b/demo/contracts/typechain-types/factories/@chainlink/contracts/index.ts new file mode 100644 index 0000000..ba4b107 --- /dev/null +++ b/demo/contracts/typechain-types/factories/@chainlink/contracts/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as src from "./src"; diff --git a/demo/contracts/typechain-types/factories/@chainlink/contracts/src/index.ts b/demo/contracts/typechain-types/factories/@chainlink/contracts/src/index.ts new file mode 100644 index 0000000..26688d8 --- /dev/null +++ b/demo/contracts/typechain-types/factories/@chainlink/contracts/src/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as v08 from "./v0.8"; diff --git a/demo/contracts/typechain-types/factories/@chainlink/contracts/src/v0.8/automation/index.ts b/demo/contracts/typechain-types/factories/@chainlink/contracts/src/v0.8/automation/index.ts new file mode 100644 index 0000000..1d3444d --- /dev/null +++ b/demo/contracts/typechain-types/factories/@chainlink/contracts/src/v0.8/automation/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as interfaces from "./interfaces"; diff --git a/demo/contracts/typechain-types/factories/@chainlink/contracts/src/v0.8/automation/interfaces/AutomationCompatibleInterface__factory.ts b/demo/contracts/typechain-types/factories/@chainlink/contracts/src/v0.8/automation/interfaces/AutomationCompatibleInterface__factory.ts new file mode 100644 index 0000000..5b9cac2 --- /dev/null +++ b/demo/contracts/typechain-types/factories/@chainlink/contracts/src/v0.8/automation/interfaces/AutomationCompatibleInterface__factory.ts @@ -0,0 +1,66 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + AutomationCompatibleInterface, + AutomationCompatibleInterfaceInterface, +} from "../../../../../../../@chainlink/contracts/src/v0.8/automation/interfaces/AutomationCompatibleInterface"; + +const _abi = [ + { + inputs: [ + { + internalType: "bytes", + name: "checkData", + type: "bytes", + }, + ], + name: "checkUpkeep", + outputs: [ + { + internalType: "bool", + name: "upkeepNeeded", + type: "bool", + }, + { + internalType: "bytes", + name: "performData", + type: "bytes", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "performData", + type: "bytes", + }, + ], + name: "performUpkeep", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class AutomationCompatibleInterface__factory { + static readonly abi = _abi; + static createInterface(): AutomationCompatibleInterfaceInterface { + return new Interface(_abi) as AutomationCompatibleInterfaceInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): AutomationCompatibleInterface { + return new Contract( + address, + _abi, + runner + ) as unknown as AutomationCompatibleInterface; + } +} diff --git a/demo/contracts/typechain-types/factories/@chainlink/contracts/src/v0.8/automation/interfaces/ILogAutomation__factory.ts b/demo/contracts/typechain-types/factories/@chainlink/contracts/src/v0.8/automation/interfaces/ILogAutomation__factory.ts new file mode 100644 index 0000000..0c84653 --- /dev/null +++ b/demo/contracts/typechain-types/factories/@chainlink/contracts/src/v0.8/automation/interfaces/ILogAutomation__factory.ts @@ -0,0 +1,109 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ILogAutomation, + ILogAutomationInterface, +} from "../../../../../../../@chainlink/contracts/src/v0.8/automation/interfaces/ILogAutomation"; + +const _abi = [ + { + inputs: [ + { + components: [ + { + internalType: "uint256", + name: "index", + type: "uint256", + }, + { + internalType: "uint256", + name: "timestamp", + type: "uint256", + }, + { + internalType: "bytes32", + name: "txHash", + type: "bytes32", + }, + { + internalType: "uint256", + name: "blockNumber", + type: "uint256", + }, + { + internalType: "bytes32", + name: "blockHash", + type: "bytes32", + }, + { + internalType: "address", + name: "source", + type: "address", + }, + { + internalType: "bytes32[]", + name: "topics", + type: "bytes32[]", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + internalType: "struct Log", + name: "log", + type: "tuple", + }, + { + internalType: "bytes", + name: "checkData", + type: "bytes", + }, + ], + name: "checkLog", + outputs: [ + { + internalType: "bool", + name: "upkeepNeeded", + type: "bool", + }, + { + internalType: "bytes", + name: "performData", + type: "bytes", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "performData", + type: "bytes", + }, + ], + name: "performUpkeep", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class ILogAutomation__factory { + static readonly abi = _abi; + static createInterface(): ILogAutomationInterface { + return new Interface(_abi) as ILogAutomationInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ILogAutomation { + return new Contract(address, _abi, runner) as unknown as ILogAutomation; + } +} diff --git a/demo/contracts/typechain-types/factories/@chainlink/contracts/src/v0.8/automation/interfaces/StreamsLookupCompatibleInterface__factory.ts b/demo/contracts/typechain-types/factories/@chainlink/contracts/src/v0.8/automation/interfaces/StreamsLookupCompatibleInterface__factory.ts new file mode 100644 index 0000000..7ed4a71 --- /dev/null +++ b/demo/contracts/typechain-types/factories/@chainlink/contracts/src/v0.8/automation/interfaces/StreamsLookupCompatibleInterface__factory.ts @@ -0,0 +1,89 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + StreamsLookupCompatibleInterface, + StreamsLookupCompatibleInterfaceInterface, +} from "../../../../../../../@chainlink/contracts/src/v0.8/automation/interfaces/StreamsLookupCompatibleInterface"; + +const _abi = [ + { + inputs: [ + { + internalType: "string", + name: "feedParamKey", + type: "string", + }, + { + internalType: "string[]", + name: "feeds", + type: "string[]", + }, + { + internalType: "string", + name: "timeParamKey", + type: "string", + }, + { + internalType: "uint256", + name: "time", + type: "uint256", + }, + { + internalType: "bytes", + name: "extraData", + type: "bytes", + }, + ], + name: "StreamsLookup", + type: "error", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "values", + type: "bytes[]", + }, + { + internalType: "bytes", + name: "extraData", + type: "bytes", + }, + ], + name: "checkCallback", + outputs: [ + { + internalType: "bool", + name: "upkeepNeeded", + type: "bool", + }, + { + internalType: "bytes", + name: "performData", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +export class StreamsLookupCompatibleInterface__factory { + static readonly abi = _abi; + static createInterface(): StreamsLookupCompatibleInterfaceInterface { + return new Interface(_abi) as StreamsLookupCompatibleInterfaceInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): StreamsLookupCompatibleInterface { + return new Contract( + address, + _abi, + runner + ) as unknown as StreamsLookupCompatibleInterface; + } +} diff --git a/demo/contracts/typechain-types/factories/@chainlink/contracts/src/v0.8/automation/interfaces/index.ts b/demo/contracts/typechain-types/factories/@chainlink/contracts/src/v0.8/automation/interfaces/index.ts new file mode 100644 index 0000000..926363a --- /dev/null +++ b/demo/contracts/typechain-types/factories/@chainlink/contracts/src/v0.8/automation/interfaces/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { AutomationCompatibleInterface__factory } from "./AutomationCompatibleInterface__factory"; +export { ILogAutomation__factory } from "./ILogAutomation__factory"; +export { StreamsLookupCompatibleInterface__factory } from "./StreamsLookupCompatibleInterface__factory"; diff --git a/demo/contracts/typechain-types/factories/@chainlink/contracts/src/v0.8/index.ts b/demo/contracts/typechain-types/factories/@chainlink/contracts/src/v0.8/index.ts new file mode 100644 index 0000000..7dcaa06 --- /dev/null +++ b/demo/contracts/typechain-types/factories/@chainlink/contracts/src/v0.8/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as automation from "./automation"; diff --git a/demo/contracts/typechain-types/factories/@chainlink/index.ts b/demo/contracts/typechain-types/factories/@chainlink/index.ts new file mode 100644 index 0000000..6397da0 --- /dev/null +++ b/demo/contracts/typechain-types/factories/@chainlink/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as contracts from "./contracts"; diff --git a/demo/contracts/typechain-types/factories/@openzeppelin/contracts/index.ts b/demo/contracts/typechain-types/factories/@openzeppelin/contracts/index.ts new file mode 100644 index 0000000..a9780ef --- /dev/null +++ b/demo/contracts/typechain-types/factories/@openzeppelin/contracts/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as token from "./token"; diff --git a/demo/contracts/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts b/demo/contracts/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts new file mode 100644 index 0000000..6688ef5 --- /dev/null +++ b/demo/contracts/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts @@ -0,0 +1,356 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../../../common"; +import type { + ERC20, + ERC20Interface, +} from "../../../../../@openzeppelin/contracts/token/ERC20/ERC20"; + +const _abi = [ + { + inputs: [ + { + internalType: "string", + name: "name_", + type: "string", + }, + { + internalType: "string", + name: "symbol_", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "subtractedValue", + type: "uint256", + }, + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "addedValue", + type: "uint256", + }, + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +const _bytecode = + "0x60806040523480156200001157600080fd5b5060405162001937380380620019378339818101604052810190620000379190620001f6565b8160039081620000489190620004c6565b5080600490816200005a9190620004c6565b505050620005ad565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000cc8262000081565b810181811067ffffffffffffffff82111715620000ee57620000ed62000092565b5b80604052505050565b60006200010362000063565b9050620001118282620000c1565b919050565b600067ffffffffffffffff82111562000134576200013362000092565b5b6200013f8262000081565b9050602081019050919050565b60005b838110156200016c5780820151818401526020810190506200014f565b60008484015250505050565b60006200018f620001898462000116565b620000f7565b905082815260208101848484011115620001ae57620001ad6200007c565b5b620001bb8482856200014c565b509392505050565b600082601f830112620001db57620001da62000077565b5b8151620001ed84826020860162000178565b91505092915050565b6000806040838503121562000210576200020f6200006d565b5b600083015167ffffffffffffffff81111562000231576200023062000072565b5b6200023f85828601620001c3565b925050602083015167ffffffffffffffff81111562000263576200026262000072565b5b6200027185828601620001c3565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002ce57607f821691505b602082108103620002e457620002e362000286565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200034e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200030f565b6200035a86836200030f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003a7620003a16200039b8462000372565b6200037c565b62000372565b9050919050565b6000819050919050565b620003c38362000386565b620003db620003d282620003ae565b8484546200031c565b825550505050565b600090565b620003f2620003e3565b620003ff818484620003b8565b505050565b5b8181101562000427576200041b600082620003e8565b60018101905062000405565b5050565b601f82111562000476576200044081620002ea565b6200044b84620002ff565b810160208510156200045b578190505b620004736200046a85620002ff565b83018262000404565b50505b505050565b600082821c905092915050565b60006200049b600019846008026200047b565b1980831691505092915050565b6000620004b6838362000488565b9150826002028217905092915050565b620004d1826200027b565b67ffffffffffffffff811115620004ed57620004ec62000092565b5b620004f98254620002b5565b620005068282856200042b565b600060209050601f8311600181146200053e576000841562000529578287015190505b620005358582620004a8565b865550620005a5565b601f1984166200054e86620002ea565b60005b82811015620005785784890151825560018201915060208501945060208101905062000551565b8683101562000598578489015162000594601f89168262000488565b8355505b6001600288020188555050505b505050505050565b61137a80620005bd6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610c31565b60405180910390f35b6100e660048036038101906100e19190610cec565b610308565b6040516100f39190610d47565b60405180910390f35b610104610326565b6040516101119190610d71565b60405180910390f35b610134600480360381019061012f9190610d8c565b610330565b6040516101419190610d47565b60405180910390f35b610152610428565b60405161015f9190610dfb565b60405180910390f35b610182600480360381019061017d9190610cec565b610431565b60405161018f9190610d47565b60405180910390f35b6101b260048036038101906101ad9190610e16565b6104dd565b6040516101bf9190610d71565b60405180910390f35b6101d0610525565b6040516101dd9190610c31565b60405180910390f35b61020060048036038101906101fb9190610cec565b6105b7565b60405161020d9190610d47565b60405180910390f35b610230600480360381019061022b9190610cec565b6106a2565b60405161023d9190610d47565b60405180910390f35b610260600480360381019061025b9190610e43565b6106c0565b60405161026d9190610d71565b60405180910390f35b60606003805461028590610eb2565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610eb2565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b600061031c610315610747565b848461074f565b6001905092915050565b6000600254905090565b600061033d848484610918565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610388610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ff90610f55565b60405180910390fd5b61041c85610414610747565b85840361074f565b60019150509392505050565b60006012905090565b60006104d361043e610747565b84846001600061044c610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546104ce9190610fa4565b61074f565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461053490610eb2565b80601f016020809104026020016040519081016040528092919081815260200182805461056090610eb2565b80156105ad5780601f10610582576101008083540402835291602001916105ad565b820191906000526020600020905b81548152906001019060200180831161059057829003601f168201915b5050505050905090565b600080600160006105c6610747565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610683576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067a9061104a565b60405180910390fd5b61069761068e610747565b8585840361074f565b600191505092915050565b60006106b66106af610747565b8484610918565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b5906110dc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361082d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108249061116e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161090b9190610d71565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610987576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097e90611200565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ed90611292565b60405180910390fd5b610a01838383610b97565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7e90611324565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b1a9190610fa4565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b7e9190610d71565b60405180910390a3610b91848484610b9c565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610bdb578082015181840152602081019050610bc0565b60008484015250505050565b6000601f19601f8301169050919050565b6000610c0382610ba1565b610c0d8185610bac565b9350610c1d818560208601610bbd565b610c2681610be7565b840191505092915050565b60006020820190508181036000830152610c4b8184610bf8565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610c8382610c58565b9050919050565b610c9381610c78565b8114610c9e57600080fd5b50565b600081359050610cb081610c8a565b92915050565b6000819050919050565b610cc981610cb6565b8114610cd457600080fd5b50565b600081359050610ce681610cc0565b92915050565b60008060408385031215610d0357610d02610c53565b5b6000610d1185828601610ca1565b9250506020610d2285828601610cd7565b9150509250929050565b60008115159050919050565b610d4181610d2c565b82525050565b6000602082019050610d5c6000830184610d38565b92915050565b610d6b81610cb6565b82525050565b6000602082019050610d866000830184610d62565b92915050565b600080600060608486031215610da557610da4610c53565b5b6000610db386828701610ca1565b9350506020610dc486828701610ca1565b9250506040610dd586828701610cd7565b9150509250925092565b600060ff82169050919050565b610df581610ddf565b82525050565b6000602082019050610e106000830184610dec565b92915050565b600060208284031215610e2c57610e2b610c53565b5b6000610e3a84828501610ca1565b91505092915050565b60008060408385031215610e5a57610e59610c53565b5b6000610e6885828601610ca1565b9250506020610e7985828601610ca1565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610eca57607f821691505b602082108103610edd57610edc610e83565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000610f3f602883610bac565b9150610f4a82610ee3565b604082019050919050565b60006020820190508181036000830152610f6e81610f32565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610faf82610cb6565b9150610fba83610cb6565b9250828201905080821115610fd257610fd1610f75565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611034602583610bac565b915061103f82610fd8565b604082019050919050565b6000602082019050818103600083015261106381611027565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006110c6602483610bac565b91506110d18261106a565b604082019050919050565b600060208201905081810360008301526110f5816110b9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611158602283610bac565b9150611163826110fc565b604082019050919050565b600060208201905081810360008301526111878161114b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006111ea602583610bac565b91506111f58261118e565b604082019050919050565b60006020820190508181036000830152611219816111dd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061127c602383610bac565b915061128782611220565b604082019050919050565b600060208201905081810360008301526112ab8161126f565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061130e602683610bac565b9150611319826112b2565b604082019050919050565b6000602082019050818103600083015261133d81611301565b905091905056fea2646970667358221220cf23ad91e38bd47b5c9db3fa4e855f5c5c3134a3d2b61cdf16c2d4d7a3cf008b64736f6c63430008130033"; + +type ERC20ConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ERC20ConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ERC20__factory extends ContractFactory { + constructor(...args: ERC20ConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + name_: string, + symbol_: string, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(name_, symbol_, overrides || {}); + } + override deploy( + name_: string, + symbol_: string, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy(name_, symbol_, overrides || {}) as Promise< + ERC20 & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): ERC20__factory { + return super.connect(runner) as ERC20__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ERC20Interface { + return new Interface(_abi) as ERC20Interface; + } + static connect(address: string, runner?: ContractRunner | null): ERC20 { + return new Contract(address, _abi, runner) as unknown as ERC20; + } +} diff --git a/demo/contracts/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts b/demo/contracts/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts new file mode 100644 index 0000000..f0a574c --- /dev/null +++ b/demo/contracts/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts @@ -0,0 +1,205 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC20, + IERC20Interface, +} from "../../../../../@openzeppelin/contracts/token/ERC20/IERC20"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IERC20__factory { + static readonly abi = _abi; + static createInterface(): IERC20Interface { + return new Interface(_abi) as IERC20Interface; + } + static connect(address: string, runner?: ContractRunner | null): IERC20 { + return new Contract(address, _abi, runner) as unknown as IERC20; + } +} diff --git a/demo/contracts/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts b/demo/contracts/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts new file mode 100644 index 0000000..7cbfd4f --- /dev/null +++ b/demo/contracts/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts @@ -0,0 +1,247 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC20Metadata, + IERC20MetadataInterface, +} from "../../../../../../@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IERC20Metadata__factory { + static readonly abi = _abi; + static createInterface(): IERC20MetadataInterface { + return new Interface(_abi) as IERC20MetadataInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IERC20Metadata { + return new Contract(address, _abi, runner) as unknown as IERC20Metadata; + } +} diff --git a/demo/contracts/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts b/demo/contracts/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts new file mode 100644 index 0000000..b9477f8 --- /dev/null +++ b/demo/contracts/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IERC20Metadata__factory } from "./IERC20Metadata__factory"; diff --git a/demo/contracts/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts b/demo/contracts/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts new file mode 100644 index 0000000..3523dc7 --- /dev/null +++ b/demo/contracts/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as extensions from "./extensions"; +export { ERC20__factory } from "./ERC20__factory"; +export { IERC20__factory } from "./IERC20__factory"; diff --git a/demo/contracts/typechain-types/factories/@openzeppelin/contracts/token/index.ts b/demo/contracts/typechain-types/factories/@openzeppelin/contracts/token/index.ts new file mode 100644 index 0000000..da1e061 --- /dev/null +++ b/demo/contracts/typechain-types/factories/@openzeppelin/contracts/token/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as erc20 from "./ERC20"; diff --git a/demo/contracts/typechain-types/factories/@openzeppelin/index.ts b/demo/contracts/typechain-types/factories/@openzeppelin/index.ts new file mode 100644 index 0000000..6397da0 --- /dev/null +++ b/demo/contracts/typechain-types/factories/@openzeppelin/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as contracts from "./contracts"; diff --git a/demo/contracts/typechain-types/factories/@uniswap/index.ts b/demo/contracts/typechain-types/factories/@uniswap/index.ts new file mode 100644 index 0000000..803fd16 --- /dev/null +++ b/demo/contracts/typechain-types/factories/@uniswap/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as v3Core from "./v3-core"; diff --git a/demo/contracts/typechain-types/factories/@uniswap/v3-core/contracts/index.ts b/demo/contracts/typechain-types/factories/@uniswap/v3-core/contracts/index.ts new file mode 100644 index 0000000..1d3444d --- /dev/null +++ b/demo/contracts/typechain-types/factories/@uniswap/v3-core/contracts/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as interfaces from "./interfaces"; diff --git a/demo/contracts/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback__factory.ts b/demo/contracts/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback__factory.ts new file mode 100644 index 0000000..2213b0b --- /dev/null +++ b/demo/contracts/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback__factory.ts @@ -0,0 +1,52 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IUniswapV3SwapCallback, + IUniswapV3SwapCallbackInterface, +} from "../../../../../../@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback"; + +const _abi = [ + { + inputs: [ + { + internalType: "int256", + name: "amount0Delta", + type: "int256", + }, + { + internalType: "int256", + name: "amount1Delta", + type: "int256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "uniswapV3SwapCallback", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IUniswapV3SwapCallback__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV3SwapCallbackInterface { + return new Interface(_abi) as IUniswapV3SwapCallbackInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IUniswapV3SwapCallback { + return new Contract( + address, + _abi, + runner + ) as unknown as IUniswapV3SwapCallback; + } +} diff --git a/demo/contracts/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/index.ts b/demo/contracts/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/index.ts new file mode 100644 index 0000000..0c401bd --- /dev/null +++ b/demo/contracts/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IUniswapV3SwapCallback__factory } from "./IUniswapV3SwapCallback__factory"; diff --git a/demo/contracts/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/index.ts b/demo/contracts/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/index.ts new file mode 100644 index 0000000..01db08e --- /dev/null +++ b/demo/contracts/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as callback from "./callback"; diff --git a/demo/contracts/typechain-types/factories/@uniswap/v3-core/index.ts b/demo/contracts/typechain-types/factories/@uniswap/v3-core/index.ts new file mode 100644 index 0000000..6397da0 --- /dev/null +++ b/demo/contracts/typechain-types/factories/@uniswap/v3-core/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as contracts from "./contracts"; diff --git a/demo/contracts/typechain-types/factories/contracts/DataStreamsConsumer__factory.ts b/demo/contracts/typechain-types/factories/contracts/DataStreamsConsumer__factory.ts new file mode 100644 index 0000000..d6ee1f6 --- /dev/null +++ b/demo/contracts/typechain-types/factories/contracts/DataStreamsConsumer__factory.ts @@ -0,0 +1,216 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../common"; +import type { + DataStreamsConsumer, + DataStreamsConsumerInterface, +} from "../../contracts/DataStreamsConsumer"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "tokensAmount", + type: "uint256", + }, + ], + name: "TradeExecuted", + type: "event", + }, + { + inputs: [], + name: "FEE", + outputs: [ + { + internalType: "uint24", + name: "", + type: "uint24", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "int256", + name: "price", + type: "int256", + }, + { + internalType: "enum FeedType", + name: "feedType", + type: "uint8", + }, + { + internalType: "bytes", + name: "forwardArguments", + type: "bytes", + }, + ], + internalType: "struct ForwardData", + name: "forwardData", + type: "tuple", + }, + ], + name: "consume", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "i_oracleEmitter", + outputs: [ + { + internalType: "contract IOracle", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "i_router", + outputs: [ + { + internalType: "contract ISwapRouter", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "router", + type: "address", + }, + { + internalType: "address", + name: "oracleEmitter", + type: "address", + }, + ], + name: "initializer", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "string", + name: "feedId", + type: "string", + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + ], + name: "trade", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + stateMutability: "payable", + type: "receive", + }, +] as const; + +const _bytecode = + "0x608060405234801561001057600080fd5b506115e3806100206000396000f3fe6080604052600436106100595760003560e01c80633196b7c614610065578063581bdd16146100a25780635e1b4f6e146100cd5780639d524f68146100f8578063b0a6217b14610121578063c57981b51461014a57610060565b3661006057005b600080fd5b34801561007157600080fd5b5061008c600480360381019061008791906109f6565b610175565b6040516100999190610a5a565b60405180910390f35b3480156100ae57600080fd5b506100b76101e6565b6040516100c49190610af4565b60405180910390f35b3480156100d957600080fd5b506100e261020a565b6040516100ef9190610b30565b60405180910390f35b34801561010457600080fd5b5061011f600480360381019061011a9190610c60565b610230565b005b34801561012d57600080fd5b5061014860048036038101906101439190610cf7565b610303565b005b34801561015657600080fd5b5061015f610388565b60405161016c9190610d55565b60405180910390f35b60008082604001518060200190518101906101909190610edc565b905060006101a284600001518361038e565b90507f80ef05806f38eb8789ddab5e34cd350f1ff47d351308a6de7f10fedd2770afec816040516101d39190610f34565b60405180910390a1600192505050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d37191de303388888888604051602001610288959493929190610fb3565b60405160208183030381529060405284336040518563ffffffff1660e01b81526004016102b89493929190611062565b6020604051808303816000875af11580156102d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102fb91906110da565b505050505050565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b610bb881565b600080826020015173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104049190611140565b905060006104168460400151866106c6565b9050600082600a61042791906112cf565b856060015183610437919061131a565b610441919061138b565b9050846020015173ffffffffffffffffffffffffffffffffffffffff166323b872dd86600001513088606001516040518463ffffffff1660e01b815260040161048c939291906113bc565b6020604051808303816000875af11580156104ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104cf91906110da565b50846020015173ffffffffffffffffffffffffffffffffffffffff1663095ea7b360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1687606001516040518363ffffffff1660e01b81526004016105339291906113f3565b6020604051808303816000875af1158015610552573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057691906110da565b5060006040518060e00160405280876020015173ffffffffffffffffffffffffffffffffffffffff168152602001876040015173ffffffffffffffffffffffffffffffffffffffff168152602001610bb862ffffff168152602001876000015173ffffffffffffffffffffffffffffffffffffffff16815260200187606001518152602001838152602001600073ffffffffffffffffffffffffffffffffffffffff16815250905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166304e45aaf826040518263ffffffff1660e01b815260040161067791906114e6565b6020604051808303816000875af1158015610696573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ba9190611501565b94505050505092915050565b6000806012905060008473ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561071a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073e9190611140565b9050818160ff1610156107805760008160ff168361075c919061152e565b905080600a61076b9190611562565b85610776919061138b565b93505050506107b1565b6000828260ff16610791919061152e565b905080600a6107a09190611562565b856107ab919061131a565b93505050505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610819826107d0565b810181811067ffffffffffffffff82111715610838576108376107e1565b5b80604052505050565b600061084b6107b7565b90506108578282610810565b919050565b600080fd5b6000819050919050565b61087481610861565b811461087f57600080fd5b50565b6000813590506108918161086b565b92915050565b600281106108a457600080fd5b50565b6000813590506108b681610897565b92915050565b600080fd5b600080fd5b600067ffffffffffffffff8211156108e1576108e06107e1565b5b6108ea826107d0565b9050602081019050919050565b82818337600083830152505050565b6000610919610914846108c6565b610841565b905082815260208101848484011115610935576109346108c1565b5b6109408482856108f7565b509392505050565b600082601f83011261095d5761095c6108bc565b5b813561096d848260208601610906565b91505092915050565b60006060828403121561098c5761098b6107cb565b5b6109966060610841565b905060006109a684828501610882565b60008301525060206109ba848285016108a7565b602083015250604082013567ffffffffffffffff8111156109de576109dd61085c565b5b6109ea84828501610948565b60408301525092915050565b600060208284031215610a0c57610a0b6107c1565b5b600082013567ffffffffffffffff811115610a2a57610a296107c6565b5b610a3684828501610976565b91505092915050565b60008115159050919050565b610a5481610a3f565b82525050565b6000602082019050610a6f6000830184610a4b565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610aba610ab5610ab084610a75565b610a95565b610a75565b9050919050565b6000610acc82610a9f565b9050919050565b6000610ade82610ac1565b9050919050565b610aee81610ad3565b82525050565b6000602082019050610b096000830184610ae5565b92915050565b6000610b1a82610ac1565b9050919050565b610b2a81610b0f565b82525050565b6000602082019050610b456000830184610b21565b92915050565b6000610b5682610a75565b9050919050565b610b6681610b4b565b8114610b7157600080fd5b50565b600081359050610b8381610b5d565b92915050565b6000819050919050565b610b9c81610b89565b8114610ba757600080fd5b50565b600081359050610bb981610b93565b92915050565b600067ffffffffffffffff821115610bda57610bd96107e1565b5b610be3826107d0565b9050602081019050919050565b6000610c03610bfe84610bbf565b610841565b905082815260208101848484011115610c1f57610c1e6108c1565b5b610c2a8482856108f7565b509392505050565b600082601f830112610c4757610c466108bc565b5b8135610c57848260208601610bf0565b91505092915050565b600080600080600060a08688031215610c7c57610c7b6107c1565b5b6000610c8a88828901610b74565b9550506020610c9b88828901610b74565b9450506040610cac88828901610baa565b935050606086013567ffffffffffffffff811115610ccd57610ccc6107c6565b5b610cd988828901610c32565b9250506080610cea88828901610baa565b9150509295509295909350565b60008060408385031215610d0e57610d0d6107c1565b5b6000610d1c85828601610b74565b9250506020610d2d85828601610b74565b9150509250929050565b600062ffffff82169050919050565b610d4f81610d37565b82525050565b6000602082019050610d6a6000830184610d46565b92915050565b600081519050610d7f81610b5d565b92915050565b600081519050610d9481610b93565b92915050565b60005b83811015610db8578082015181840152602081019050610d9d565b60008484015250505050565b6000610dd7610dd284610bbf565b610841565b905082815260208101848484011115610df357610df26108c1565b5b610dfe848285610d9a565b509392505050565b600082601f830112610e1b57610e1a6108bc565b5b8151610e2b848260208601610dc4565b91505092915050565b600060a08284031215610e4a57610e496107cb565b5b610e5460a0610841565b90506000610e6484828501610d70565b6000830152506020610e7884828501610d70565b6020830152506040610e8c84828501610d70565b6040830152506060610ea084828501610d85565b606083015250608082015167ffffffffffffffff811115610ec457610ec361085c565b5b610ed084828501610e06565b60808301525092915050565b600060208284031215610ef257610ef16107c1565b5b600082015167ffffffffffffffff811115610f1057610f0f6107c6565b5b610f1c84828501610e34565b91505092915050565b610f2e81610b89565b82525050565b6000602082019050610f496000830184610f25565b92915050565b610f5881610b4b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000610f8582610f5e565b610f8f8185610f69565b9350610f9f818560208601610d9a565b610fa8816107d0565b840191505092915050565b600060a082019050610fc86000830188610f4f565b610fd56020830187610f4f565b610fe26040830186610f4f565b610fef6060830185610f25565b81810360808301526110018184610f7a565b90509695505050505050565b600081519050919050565b600082825260208201905092915050565b60006110348261100d565b61103e8185611018565b935061104e818560208601610d9a565b611057816107d0565b840191505092915050565b60006080820190506110776000830187610f4f565b81810360208301526110898186611029565b90506110986040830185610f25565b6110a56060830184610f4f565b95945050505050565b6110b781610a3f565b81146110c257600080fd5b50565b6000815190506110d4816110ae565b92915050565b6000602082840312156110f0576110ef6107c1565b5b60006110fe848285016110c5565b91505092915050565b600060ff82169050919050565b61111d81611107565b811461112857600080fd5b50565b60008151905061113a81611114565b92915050565b600060208284031215611156576111556107c1565b5b60006111648482850161112b565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156111f3578086048111156111cf576111ce61116d565b5b60018516156111de5780820291505b80810290506111ec8561119c565b94506111b3565b94509492505050565b60008261120c57600190506112c8565b8161121a57600090506112c8565b8160018114611230576002811461123a57611269565b60019150506112c8565b60ff84111561124c5761124b61116d565b5b8360020a9150848211156112635761126261116d565b5b506112c8565b5060208310610133831016604e8410600b841016171561129e5782820a9050838111156112995761129861116d565b5b6112c8565b6112ab84848460016111a9565b925090508184048111156112c2576112c161116d565b5b81810290505b9392505050565b60006112da82610b89565b91506112e583611107565b92506113127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846111fc565b905092915050565b600061132582610b89565b915061133083610b89565b925082820261133e81610b89565b915082820484148315176113555761135461116d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061139682610b89565b91506113a183610b89565b9250826113b1576113b061135c565b5b828204905092915050565b60006060820190506113d16000830186610f4f565b6113de6020830185610f4f565b6113eb6040830184610f25565b949350505050565b60006040820190506114086000830185610f4f565b6114156020830184610f25565b9392505050565b61142581610b4b565b82525050565b61143481610d37565b82525050565b61144381610b89565b82525050565b61145281610a75565b82525050565b60e08201600082015161146e600085018261141c565b506020820151611481602085018261141c565b506040820151611494604085018261142b565b5060608201516114a7606085018261141c565b5060808201516114ba608085018261143a565b5060a08201516114cd60a085018261143a565b5060c08201516114e060c0850182611449565b50505050565b600060e0820190506114fb6000830184611458565b92915050565b600060208284031215611517576115166107c1565b5b600061152584828501610d85565b91505092915050565b600061153982610b89565b915061154483610b89565b925082820390508181111561155c5761155b61116d565b5b92915050565b600061156d82610b89565b915061157883610b89565b92506115a57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846111fc565b90509291505056fea26469706673582212200fb6481baba2892bb77c1186de06c20fb549b369cb156c58e384feea3a9ffde864736f6c63430008130033"; + +type DataStreamsConsumerConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: DataStreamsConsumerConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class DataStreamsConsumer__factory extends ContractFactory { + constructor(...args: DataStreamsConsumerConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + DataStreamsConsumer & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect( + runner: ContractRunner | null + ): DataStreamsConsumer__factory { + return super.connect(runner) as DataStreamsConsumer__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): DataStreamsConsumerInterface { + return new Interface(_abi) as DataStreamsConsumerInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): DataStreamsConsumer { + return new Contract( + address, + _abi, + runner + ) as unknown as DataStreamsConsumer; + } +} diff --git a/demo/contracts/typechain-types/factories/contracts/OracleInterfaces.sol/IOracleConsumerContract__factory.ts b/demo/contracts/typechain-types/factories/contracts/OracleInterfaces.sol/IOracleConsumerContract__factory.ts new file mode 100644 index 0000000..dc057d2 --- /dev/null +++ b/demo/contracts/typechain-types/factories/contracts/OracleInterfaces.sol/IOracleConsumerContract__factory.ts @@ -0,0 +1,65 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IOracleConsumerContract, + IOracleConsumerContractInterface, +} from "../../../contracts/OracleInterfaces.sol/IOracleConsumerContract"; + +const _abi = [ + { + inputs: [ + { + components: [ + { + internalType: "int256", + name: "price", + type: "int256", + }, + { + internalType: "enum FeedType", + name: "feedType", + type: "uint8", + }, + { + internalType: "bytes", + name: "forwardArguments", + type: "bytes", + }, + ], + internalType: "struct ForwardData", + name: "forwardData", + type: "tuple", + }, + ], + name: "consume", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IOracleConsumerContract__factory { + static readonly abi = _abi; + static createInterface(): IOracleConsumerContractInterface { + return new Interface(_abi) as IOracleConsumerContractInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IOracleConsumerContract { + return new Contract( + address, + _abi, + runner + ) as unknown as IOracleConsumerContract; + } +} diff --git a/demo/contracts/typechain-types/factories/contracts/OracleInterfaces.sol/IOracle__factory.ts b/demo/contracts/typechain-types/factories/contracts/OracleInterfaces.sol/IOracle__factory.ts new file mode 100644 index 0000000..e24ce9f --- /dev/null +++ b/demo/contracts/typechain-types/factories/contracts/OracleInterfaces.sol/IOracle__factory.ts @@ -0,0 +1,90 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IOracle, + IOracleInterface, +} from "../../../contracts/OracleInterfaces.sol/IOracle"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "callbackContract", + type: "address", + }, + { + internalType: "bytes", + name: "callbackArgs", + type: "bytes", + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "addRequest", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "callbackContract", + type: "address", + }, + { + internalType: "bytes", + name: "callbackArgs", + type: "bytes", + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "fallbackCall", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IOracle__factory { + static readonly abi = _abi; + static createInterface(): IOracleInterface { + return new Interface(_abi) as IOracleInterface; + } + static connect(address: string, runner?: ContractRunner | null): IOracle { + return new Contract(address, _abi, runner) as unknown as IOracle; + } +} diff --git a/demo/contracts/typechain-types/factories/contracts/OracleInterfaces.sol/index.ts b/demo/contracts/typechain-types/factories/contracts/OracleInterfaces.sol/index.ts new file mode 100644 index 0000000..57a9464 --- /dev/null +++ b/demo/contracts/typechain-types/factories/contracts/OracleInterfaces.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IOracle__factory } from "./IOracle__factory"; +export { IOracleConsumerContract__factory } from "./IOracleConsumerContract__factory"; diff --git a/demo/contracts/typechain-types/factories/contracts/index.ts b/demo/contracts/typechain-types/factories/contracts/index.ts new file mode 100644 index 0000000..b5dae85 --- /dev/null +++ b/demo/contracts/typechain-types/factories/contracts/index.ts @@ -0,0 +1,7 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as oracleInterfacesSol from "./OracleInterfaces.sol"; +export * as interfaces from "./interfaces"; +export * as mocks from "./mocks"; +export { DataStreamsConsumer__factory } from "./DataStreamsConsumer__factory"; diff --git a/demo/contracts/typechain-types/factories/contracts/interfaces/ISwapRouter__factory.ts b/demo/contracts/typechain-types/factories/contracts/interfaces/ISwapRouter__factory.ts new file mode 100644 index 0000000..0dd8e44 --- /dev/null +++ b/demo/contracts/typechain-types/factories/contracts/interfaces/ISwapRouter__factory.ts @@ -0,0 +1,254 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ISwapRouter, + ISwapRouterInterface, +} from "../../../contracts/interfaces/ISwapRouter"; + +const _abi = [ + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMinimum", + type: "uint256", + }, + ], + internalType: "struct ISwapRouter.ExactInputParams", + name: "params", + type: "tuple", + }, + ], + name: "exactInput", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMinimum", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + internalType: "struct ISwapRouter.ExactInputSingleParams", + name: "params", + type: "tuple", + }, + ], + name: "exactInputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMaximum", + type: "uint256", + }, + ], + internalType: "struct ISwapRouter.ExactOutputParams", + name: "params", + type: "tuple", + }, + ], + name: "exactOutput", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMaximum", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + internalType: "struct ISwapRouter.ExactOutputSingleParams", + name: "params", + type: "tuple", + }, + ], + name: "exactOutputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "amount0Delta", + type: "int256", + }, + { + internalType: "int256", + name: "amount1Delta", + type: "int256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "uniswapV3SwapCallback", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class ISwapRouter__factory { + static readonly abi = _abi; + static createInterface(): ISwapRouterInterface { + return new Interface(_abi) as ISwapRouterInterface; + } + static connect(address: string, runner?: ContractRunner | null): ISwapRouter { + return new Contract(address, _abi, runner) as unknown as ISwapRouter; + } +} diff --git a/demo/contracts/typechain-types/factories/contracts/interfaces/IVerifierProxy__factory.ts b/demo/contracts/typechain-types/factories/contracts/interfaces/IVerifierProxy__factory.ts new file mode 100644 index 0000000..58ff127 --- /dev/null +++ b/demo/contracts/typechain-types/factories/contracts/interfaces/IVerifierProxy__factory.ts @@ -0,0 +1,77 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IVerifierProxy, + IVerifierProxyInterface, +} from "../../../contracts/interfaces/IVerifierProxy"; + +const _abi = [ + { + inputs: [ + { + internalType: "bytes", + name: "payload", + type: "bytes", + }, + { + internalType: "bytes", + name: "parameterPayload", + type: "bytes", + }, + ], + name: "verify", + outputs: [ + { + internalType: "bytes", + name: "verifierResponse", + type: "bytes", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "payloads", + type: "bytes[]", + }, + { + internalType: "bytes", + name: "parameterPayload", + type: "bytes", + }, + ], + name: "verifyBulk", + outputs: [ + { + internalType: "bytes[]", + name: "verifiedReports", + type: "bytes[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + stateMutability: "payable", + type: "receive", + }, +] as const; + +export class IVerifierProxy__factory { + static readonly abi = _abi; + static createInterface(): IVerifierProxyInterface { + return new Interface(_abi) as IVerifierProxyInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IVerifierProxy { + return new Contract(address, _abi, runner) as unknown as IVerifierProxy; + } +} diff --git a/demo/contracts/typechain-types/factories/contracts/interfaces/index.ts b/demo/contracts/typechain-types/factories/contracts/interfaces/index.ts new file mode 100644 index 0000000..1eb2029 --- /dev/null +++ b/demo/contracts/typechain-types/factories/contracts/interfaces/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { ISwapRouter__factory } from "./ISwapRouter__factory"; +export { IVerifierProxy__factory } from "./IVerifierProxy__factory"; diff --git a/demo/contracts/typechain-types/factories/contracts/mocks/KeeperRegistryMock__factory.ts b/demo/contracts/typechain-types/factories/contracts/mocks/KeeperRegistryMock__factory.ts new file mode 100644 index 0000000..9d8a57e --- /dev/null +++ b/demo/contracts/typechain-types/factories/contracts/mocks/KeeperRegistryMock__factory.ts @@ -0,0 +1,85 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../common"; +import type { + KeeperRegistryMock, + KeeperRegistryMockInterface, +} from "../../../contracts/mocks/KeeperRegistryMock"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "upkeep", + type: "address", + }, + { + internalType: "bytes", + name: "performData", + type: "bytes", + }, + ], + name: "performUpkeep", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +const _bytecode = + "0x608060405234801561001057600080fd5b506103a6806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80633085f08a14610030575b600080fd5b61004a60048036038101906100459190610273565b61004c565b005b8173ffffffffffffffffffffffffffffffffffffffff16634585e33b826040518263ffffffff1660e01b8152600401610085919061034e565b600060405180830381600087803b15801561009f57600080fd5b505af11580156100b3573d6000803e3d6000fd5b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100fa826100cf565b9050919050565b61010a816100ef565b811461011557600080fd5b50565b60008135905061012781610101565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61018082610137565b810181811067ffffffffffffffff8211171561019f5761019e610148565b5b80604052505050565b60006101b26100bb565b90506101be8282610177565b919050565b600067ffffffffffffffff8211156101de576101dd610148565b5b6101e782610137565b9050602081019050919050565b82818337600083830152505050565b6000610216610211846101c3565b6101a8565b90508281526020810184848401111561023257610231610132565b5b61023d8482856101f4565b509392505050565b600082601f83011261025a5761025961012d565b5b813561026a848260208601610203565b91505092915050565b6000806040838503121561028a576102896100c5565b5b600061029885828601610118565b925050602083013567ffffffffffffffff8111156102b9576102b86100ca565b5b6102c585828601610245565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156103095780820151818401526020810190506102ee565b60008484015250505050565b6000610320826102cf565b61032a81856102da565b935061033a8185602086016102eb565b61034381610137565b840191505092915050565b600060208201905081810360008301526103688184610315565b90509291505056fea2646970667358221220fd1452d32fcc47810149410957920aa5595eae0124126245ca2f165c5a5053b364736f6c63430008130033"; + +type KeeperRegistryMockConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: KeeperRegistryMockConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class KeeperRegistryMock__factory extends ContractFactory { + constructor(...args: KeeperRegistryMockConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + KeeperRegistryMock & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): KeeperRegistryMock__factory { + return super.connect(runner) as KeeperRegistryMock__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): KeeperRegistryMockInterface { + return new Interface(_abi) as KeeperRegistryMockInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): KeeperRegistryMock { + return new Contract(address, _abi, runner) as unknown as KeeperRegistryMock; + } +} diff --git a/demo/contracts/typechain-types/factories/contracts/mocks/index.ts b/demo/contracts/typechain-types/factories/contracts/mocks/index.ts new file mode 100644 index 0000000..ac0cce7 --- /dev/null +++ b/demo/contracts/typechain-types/factories/contracts/mocks/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { KeeperRegistryMock__factory } from "./KeeperRegistryMock__factory"; diff --git a/demo/contracts/typechain-types/factories/index.ts b/demo/contracts/typechain-types/factories/index.ts new file mode 100644 index 0000000..74275f3 --- /dev/null +++ b/demo/contracts/typechain-types/factories/index.ts @@ -0,0 +1,7 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as chainlink from "./@chainlink"; +export * as openzeppelin from "./@openzeppelin"; +export * as uniswap from "./@uniswap"; +export * as contracts from "./contracts"; diff --git a/demo/contracts/typechain-types/hardhat.d.ts b/demo/contracts/typechain-types/hardhat.d.ts new file mode 100644 index 0000000..8e53506 --- /dev/null +++ b/demo/contracts/typechain-types/hardhat.d.ts @@ -0,0 +1,279 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { ethers } from "ethers"; +import { + DeployContractOptions, + FactoryOptions, + HardhatEthersHelpers as HardhatEthersHelpersBase, +} from "@nomicfoundation/hardhat-ethers/types"; + +import * as Contracts from "."; + +declare module "hardhat/types/runtime" { + interface HardhatEthersHelpers extends HardhatEthersHelpersBase { + getContractFactory( + name: "AutomationCompatibleInterface", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ILogAutomation", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "StreamsLookupCompatibleInterface", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ERC20", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IERC20Metadata", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IERC20", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IUniswapV3SwapCallback", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "DataStreamsConsumer", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ISwapRouter", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IVerifierProxy", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "KeeperRegistryMock", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IOracle", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IOracleConsumerContract", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + + getContractAt( + name: "AutomationCompatibleInterface", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ILogAutomation", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "StreamsLookupCompatibleInterface", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ERC20", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IERC20Metadata", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IERC20", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IUniswapV3SwapCallback", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "DataStreamsConsumer", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ISwapRouter", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IVerifierProxy", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "KeeperRegistryMock", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IOracle", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IOracleConsumerContract", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + + deployContract( + name: "AutomationCompatibleInterface", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ILogAutomation", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "StreamsLookupCompatibleInterface", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ERC20", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20Metadata", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUniswapV3SwapCallback", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "DataStreamsConsumer", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ISwapRouter", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IVerifierProxy", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "KeeperRegistryMock", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IOracle", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IOracleConsumerContract", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + + deployContract( + name: "AutomationCompatibleInterface", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ILogAutomation", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "StreamsLookupCompatibleInterface", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ERC20", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20Metadata", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IUniswapV3SwapCallback", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "DataStreamsConsumer", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ISwapRouter", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IVerifierProxy", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "KeeperRegistryMock", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IOracle", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IOracleConsumerContract", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + + // default types + getContractFactory( + name: string, + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + abi: any[], + bytecode: ethers.BytesLike, + signer?: ethers.Signer + ): Promise; + getContractAt( + nameOrAbi: string | any[], + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + deployContract( + name: string, + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: string, + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + } +} diff --git a/demo/contracts/typechain-types/index.ts b/demo/contracts/typechain-types/index.ts new file mode 100644 index 0000000..ece16fd --- /dev/null +++ b/demo/contracts/typechain-types/index.ts @@ -0,0 +1,38 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as chainlink from "./@chainlink"; +export type { chainlink }; +import type * as openzeppelin from "./@openzeppelin"; +export type { openzeppelin }; +import type * as uniswap from "./@uniswap"; +export type { uniswap }; +import type * as contracts from "./contracts"; +export type { contracts }; +export * as factories from "./factories"; +export type { AutomationCompatibleInterface } from "./@chainlink/contracts/src/v0.8/automation/interfaces/AutomationCompatibleInterface"; +export { AutomationCompatibleInterface__factory } from "./factories/@chainlink/contracts/src/v0.8/automation/interfaces/AutomationCompatibleInterface__factory"; +export type { ILogAutomation } from "./@chainlink/contracts/src/v0.8/automation/interfaces/ILogAutomation"; +export { ILogAutomation__factory } from "./factories/@chainlink/contracts/src/v0.8/automation/interfaces/ILogAutomation__factory"; +export type { StreamsLookupCompatibleInterface } from "./@chainlink/contracts/src/v0.8/automation/interfaces/StreamsLookupCompatibleInterface"; +export { StreamsLookupCompatibleInterface__factory } from "./factories/@chainlink/contracts/src/v0.8/automation/interfaces/StreamsLookupCompatibleInterface__factory"; +export type { ERC20 } from "./@openzeppelin/contracts/token/ERC20/ERC20"; +export { ERC20__factory } from "./factories/@openzeppelin/contracts/token/ERC20/ERC20__factory"; +export type { IERC20Metadata } from "./@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata"; +export { IERC20Metadata__factory } from "./factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory"; +export type { IERC20 } from "./@openzeppelin/contracts/token/ERC20/IERC20"; +export { IERC20__factory } from "./factories/@openzeppelin/contracts/token/ERC20/IERC20__factory"; +export type { IUniswapV3SwapCallback } from "./@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback"; +export { IUniswapV3SwapCallback__factory } from "./factories/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback__factory"; +export type { DataStreamsConsumer } from "./contracts/DataStreamsConsumer"; +export { DataStreamsConsumer__factory } from "./factories/contracts/DataStreamsConsumer__factory"; +export type { ISwapRouter } from "./contracts/interfaces/ISwapRouter"; +export { ISwapRouter__factory } from "./factories/contracts/interfaces/ISwapRouter__factory"; +export type { IVerifierProxy } from "./contracts/interfaces/IVerifierProxy"; +export { IVerifierProxy__factory } from "./factories/contracts/interfaces/IVerifierProxy__factory"; +export type { KeeperRegistryMock } from "./contracts/mocks/KeeperRegistryMock"; +export { KeeperRegistryMock__factory } from "./factories/contracts/mocks/KeeperRegistryMock__factory"; +export type { IOracle } from "./contracts/OracleInterfaces.sol/IOracle"; +export { IOracle__factory } from "./factories/contracts/OracleInterfaces.sol/IOracle__factory"; +export type { IOracleConsumerContract } from "./contracts/OracleInterfaces.sol/IOracleConsumerContract"; +export { IOracleConsumerContract__factory } from "./factories/contracts/OracleInterfaces.sol/IOracleConsumerContract__factory"; diff --git a/deployment-lock.json b/deployment-lock.json index 08b5bfd..fbbb836 100644 --- a/deployment-lock.json +++ b/deployment-lock.json @@ -11,8 +11,8 @@ "args": [] }, "FakedOracle": { - "addr": "0x9B3b67BB033cFACDfA77638b739cC9bFd68bD449", - "code": "0x6101606040523480156200001257600080fd5b5060405162003d8138038062003d81833981810160405281019062000038919062000450565b87878787878787878560008190806001815401808255809150506001900390600052602060002001600090919091909150908162000077919062000779565b5050600180819055508773ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508673ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508473ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250508373ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff16815250508273ffffffffffffffffffffffffffffffffffffffff166101008173ffffffffffffffffffffffffffffffffffffffff16815250508061014081815250508173ffffffffffffffffffffffffffffffffffffffff166101208173ffffffffffffffffffffffffffffffffffffffff168152505033600360010160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050505050505050505062000860565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200025e8262000231565b9050919050565b620002708162000251565b81146200027c57600080fd5b50565b600081519050620002908162000265565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620002eb82620002a0565b810181811067ffffffffffffffff821117156200030d576200030c620002b1565b5b80604052505050565b6000620003226200021d565b9050620003308282620002e0565b919050565b600067ffffffffffffffff821115620003535762000352620002b1565b5b6200035e82620002a0565b9050602081019050919050565b60005b838110156200038b5780820151818401526020810190506200036e565b60008484015250505050565b6000620003ae620003a88462000335565b62000316565b905082815260208101848484011115620003cd57620003cc6200029b565b5b620003da8482856200036b565b509392505050565b600082601f830112620003fa57620003f962000296565b5b81516200040c84826020860162000397565b91505092915050565b6000819050919050565b6200042a8162000415565b81146200043657600080fd5b50565b6000815190506200044a816200041f565b92915050565b600080600080600080600080610100898b03121562000474576200047362000227565b5b6000620004848b828c016200027f565b9850506020620004978b828c016200027f565b975050604089015167ffffffffffffffff811115620004bb57620004ba6200022c565b5b620004c98b828c01620003e2565b9650506060620004dc8b828c016200027f565b9550506080620004ef8b828c016200027f565b94505060a0620005028b828c016200027f565b93505060c0620005158b828c016200027f565b92505060e0620005288b828c0162000439565b9150509295985092959890939650565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200058b57607f821691505b602082108103620005a157620005a062000543565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200060b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620005cc565b620006178683620005cc565b95508019841693508086168417925050509392505050565b6000819050919050565b60006200065a620006546200064e8462000415565b6200062f565b62000415565b9050919050565b6000819050919050565b620006768362000639565b6200068e620006858262000661565b848454620005d9565b825550505050565b600090565b620006a562000696565b620006b28184846200066b565b505050565b5b81811015620006da57620006ce6000826200069b565b600181019050620006b8565b5050565b601f8211156200072957620006f381620005a7565b620006fe84620005bc565b810160208510156200070e578190505b620007266200071d85620005bc565b830182620006b7565b50505b505050565b600082821c905092915050565b60006200074e600019846008026200072e565b1980831691505092915050565b60006200076983836200073b565b9150826002028217905092915050565b620007848262000538565b67ffffffffffffffff811115620007a0576200079f620002b1565b5b620007ac825462000572565b620007b9828285620006de565b600060209050601f831160018114620007f15760008415620007dc578287015190505b620007e885826200075b565b86555062000858565b601f1984166200080186620005a7565b60005b828110156200082b5784890151825560018201915060208501945060208101905062000804565b868310156200084b578489015162000847601f8916826200073b565b8355505b6001600288020188555050505b505050505050565b60805160a05160c05160e051610100516101205161014051613487620008fa600039600081816107150152610c4e015260008181610f75015281816110d0015261115301526000818161065201528181610fbb01526110940152600081816106760152610ca2015260008181610f5101526113f501526000818161069a01526108c00152600081816112c0015261136c01526134876000f3fe6080604052600436106101185760003560e01c80634585e33b116100a05780637b103999116100645780637b103999146103c9578063d004f0f7146103f4578063d37191de14610431578063dce1137514610461578063f9ae27f91461048c5761011f565b80634585e33b146102ba5780634b56a42e146102e35780635727977c146103215780637184af9914610360578063741bef1a1461039e5761011f565b80632808e6c8116100e75780632808e6c8146101cb5780632b7ac3f3146101f6578063341edfb4146102215780633f20b4c91461025157806340691db41461027c5761011f565b806308c9e24e146101215780630d641e9c1461014c5780631b83ca1e146101755780631c4695f4146101a05761011f565b3661011f57005b005b34801561012d57600080fd5b506101366104c9565b60405161014391906119d0565b60405180910390f35b34801561015857600080fd5b50610173600480360381019061016e9190611a3c565b610502565b005b34801561018157600080fd5b5061018a610617565b60405161019791906119d0565b60405180910390f35b3480156101ac57600080fd5b506101b5610650565b6040516101c29190611ae8565b60405180910390f35b3480156101d757600080fd5b506101e0610674565b6040516101ed9190611b24565b60405180910390f35b34801561020257600080fd5b5061020b610698565b6040516102189190611b60565b60405180910390f35b61023b60048036038101906102369190611cee565b6106bc565b6040516102489190611d8c565b60405180910390f35b34801561025d57600080fd5b50610266610713565b6040516102739190611db6565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e9190611df6565b610737565b6040516102b1929190611ec3565b60405180910390f35b3480156102c657600080fd5b506102e160048036038101906102dc9190611f53565b6107ff565b005b3480156102ef57600080fd5b5061030a60048036038101906103059190611ff6565b610bc5565b604051610318929190611ec3565b60405180910390f35b34801561032d57600080fd5b5061034860048036038101906103439190611cee565b610bfe565b60405161035793929190612090565b60405180910390f35b34801561036c57600080fd5b5061038760048036038101906103829190611a3c565b610c9b565b6040516103959291906120c7565b60405180910390f35b3480156103aa57600080fd5b506103b3610f4f565b6040516103c09190611b24565b60405180910390f35b3480156103d557600080fd5b506103de610f73565b6040516103eb91906120ff565b60405180910390f35b34801561040057600080fd5b5061041b6004803603810190610416919061211a565b610f97565b6040516104289190611d8c565b60405180910390f35b61044b60048036038101906104469190611cee565b611277565b6040516104589190611d8c565b60405180910390f35b34801561046d57600080fd5b5061047661136a565b604051610483919061217b565b60405180910390f35b34801561049857600080fd5b506104b360048036038101906104ae9190611cee565b61138e565b6040516104c09190611d8c565b60405180910390f35b6040518060400160405280600781526020017f666565644944730000000000000000000000000000000000000000000000000081525081565b600360010160009054906101000a900460ff16806105715750600360010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156105b55780336040517f9b4aa41a0000000000000000000000000000000000000000000000000000000081526004016105ac929190612196565b60405180910390fd5b806003600001819055506001600360010160006101000a81548160ff0219169083151502179055507f798ebf3f446df2830703de9a7fec3c112e8699dd7ffadfe56045b7d85bcb92dc8160405161060c9190611db6565b60405180910390a150565b6040518060400160405280600981526020017f74696d657374616d70000000000000000000000000000000000000000000000081525081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006106ca858585856116bc565b7fb78272e98de6052aa2c197393914a1fe8ae1cf8dc760f1b74c6da3c2ff7fd10f858585856040516106ff94939291906121bf565b60405180910390a160019050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600060606040518060400160405280600781526020017f666565644944730000000000000000000000000000000000000000000000000081525060006040518060400160405280600981526020017f74696d657374616d7000000000000000000000000000000000000000000000008152508660200135878060e001906107be919061221a565b6040517ff055e4a20000000000000000000000000000000000000000000000000000000081526004016107f69695949392919061247a565b60405180910390fd5b60005a9050600080848481019061081691906125cc565b91509150600080600080848060200190518101906108349190612707565b935093509350935060008061084b86868686611746565b91509150600160028111156108635761086261278a565b5b8160000151600281111561087a5761087961278a565b5b146108bc57816040517ff78906140000000000000000000000000000000000000000000000000000000081526004016108b391906127b9565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167360a0e67c3c9f68b751af29a59fa98d99adcf7425630eb4fdea90918b6040518363ffffffff1660e01b815260040161092f9291906128ef565b60e060405180830381865af415801561094c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109709190612ac9565b905060008773ffffffffffffffffffffffffffffffffffffffff16633196b7c6604051806060016040528060008152602001600060018111156109b6576109b561278a565b5b81526020018a8152506040518263ffffffff1660e01b81526004016109db9190612bf1565b6020604051808303816000875af11580156109fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1e9190612c3f565b905080610a6257836040517f63e64d49000000000000000000000000000000000000000000000000000000008152600401610a5991906127b9565b60405180910390fd5b6002733f7e36ce47727e7dc0ec53045b8f8e1c1ecbd4e463b7d865c29091866040518363ffffffff1660e01b8152600401610a9e929190612c82565b602060405180830381865af4158015610abb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adf9190612c3f565b508260400151735aa8cec02b28b60378adc6185eb5313ef64cf81b6375dc7d8c3a5a8f610b0c9190612cda565b610b169190612d0e565b6040518263ffffffff1660e01b8152600401610b329190612d5f565b602060405180830381865af4158015610b4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b739190612d7a565b1115610bb657836040517ff1d3ccc5000000000000000000000000000000000000000000000000000000008152600401610bad91906127b9565b60405180910390fd5b50505050505050505050505050565b60006060600186868686604051602001610be29493929190612efa565b6040516020818303038152906040529150915094509492505050565b6000806000806000610c1289898989611746565b91509150600060016002811115610c2c57610c2b61278a565b5b82600001516002811115610c4357610c4261278a565b5b148015610c7f5750437f00000000000000000000000000000000000000000000000000000000000000008360200151610c7c9190612f35565b11155b9050828183604001519550955095505050509450945094915050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610d0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2f9190612fd7565b5050509150506000735aa8cec02b28b60378adc6185eb5313ef64cf81b63d30c3672735aa8cec02b28b60378adc6185eb5313ef64cf81b63d30c3672735aa8cec02b28b60378adc6185eb5313ef64cf81b6339c372906040518163ffffffff1660e01b8152600401602060405180830381865af4158015610db4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd89190612d7a565b735aa8cec02b28b60378adc6185eb5313ef64cf81b6352c24e4c60016040518263ffffffff1660e01b8152600401610e10919061308d565b602060405180830381865af4158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e519190612d7a565b610e5b9190612f35565b89610e669190612d0e565b6040518263ffffffff1660e01b8152600401610e829190612d5f565b602060405180830381865af4158015610e9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec39190612d7a565b84610ece9190612d0e565b6040518263ffffffff1660e01b8152600401610eea9190612d5f565b602060405180830381865af4158015610f07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2b9190612d7a565b90506000600547610f3c91906130d7565b9050818110158294509450505050915091565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610fa161185e565b600080610fad84610c9b565b9150915081156112635760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd8730886040518463ffffffff1660e01b815260040161101693929190613108565b6020604051808303816000875af1158015611035573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110599190612c3f565b905080611092576040517fe069624900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000000000000000000000000000000000000000000000876040518363ffffffff1660e01b815260040161110d92919061313f565b6020604051808303816000875af115801561112c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111509190612c3f565b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663948108f760036000015461119c886118a4565b6040518363ffffffff1660e01b81526004016111b992919061318f565b600060405180830381600087803b1580156111d357600080fd5b505af11580156111e7573d6000803e3d6000fd5b5050505060008673ffffffffffffffffffffffffffffffffffffffff1683604051611211906131e9565b60006040518083038185875af1925050503d806000811461124e576040519150601f19603f3d011682016040523d82523d6000602084013e611253565b606091505b5050905080945050505050611269565b81925050505b611271611904565b92915050565b60008034036112b2576040517fcadc3eda00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112be858585856116bc565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a27c7420868686866040518563ffffffff1660e01b815260040161131d94939291906121bf565b6020604051808303816000875af115801561133c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113609190612c3f565b9050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061139861185e565b60008060006113a988888888610bfe565b925092509250816113f157826040517ff78906140000000000000000000000000000000000000000000000000000000081526004016113e891906127b9565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa15801561145e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114829190612fd7565b50505091505060008973ffffffffffffffffffffffffffffffffffffffff16633196b7c660405180606001604052808581526020016001808111156114ca576114c961278a565b5b81526020018c8152506040518263ffffffff1660e01b81526004016114ef9190612bf1565b6020604051808303816000875af115801561150e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115329190612c3f565b90508061157657846040517f63e64d4900000000000000000000000000000000000000000000000000000000815260040161156d91906127b9565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff168460405161159c906131e9565b60006040518083038185875af1925050503d80600081146115d9576040519150601f19603f3d011682016040523d82523d6000602084013e6115de565b606091505b505090508061162457856040517f63e64d4900000000000000000000000000000000000000000000000000000000815260040161161b91906127b9565b60405180910390fd5b6002733f7e36ce47727e7dc0ec53045b8f8e1c1ecbd4e463b7d865c29091886040518363ffffffff1660e01b8152600401611660929190612c82565b602060405180830381865af415801561167d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a19190612c3f565b50600196505050505050506116b4611904565b949350505050565b6002733f7e36ce47727e7dc0ec53045b8f8e1c1ecbd4e463b9dc561e9091868686866040518663ffffffff1660e01b81526004016116fe959493929190613257565b602060405180830381865af415801561171b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173f9190612c3f565b5050505050565b600061175061190d565b6000733f7e36ce47727e7dc0ec53045b8f8e1c1ecbd4e463870ff518888888886040518563ffffffff1660e01b815260040161178f94939291906132b1565b602060405180830381865af41580156117ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d091906132fd565b9050806002733f7e36ce47727e7dc0ec53045b8f8e1c1ecbd4e463b40ca1499091846040518363ffffffff1660e01b815260040161180f929190612c82565b606060405180830381865af415801561182c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185091906133b3565b925092505094509492505050565b60026001540361189a576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600181905550565b60006bffffffffffffffffffffffff80168211156118fc576060826040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526004016118f3929190613428565b60405180910390fd5b819050919050565b60018081905550565b60405180606001604052806000600281111561192c5761192b61278a565b5b815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b8381101561197a57808201518184015260208101905061195f565b60008484015250505050565b6000601f19601f8301169050919050565b60006119a282611940565b6119ac818561194b565b93506119bc81856020860161195c565b6119c581611986565b840191505092915050565b600060208201905081810360008301526119ea8184611997565b905092915050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b611a1981611a06565b8114611a2457600080fd5b50565b600081359050611a3681611a10565b92915050565b600060208284031215611a5257611a516119fc565b5b6000611a6084828501611a27565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000611aae611aa9611aa484611a69565b611a89565b611a69565b9050919050565b6000611ac082611a93565b9050919050565b6000611ad282611ab5565b9050919050565b611ae281611ac7565b82525050565b6000602082019050611afd6000830184611ad9565b92915050565b6000611b0e82611ab5565b9050919050565b611b1e81611b03565b82525050565b6000602082019050611b396000830184611b15565b92915050565b6000611b4a82611ab5565b9050919050565b611b5a81611b3f565b82525050565b6000602082019050611b756000830184611b51565b92915050565b6000611b8682611a69565b9050919050565b611b9681611b7b565b8114611ba157600080fd5b50565b600081359050611bb381611b8d565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611bfb82611986565b810181811067ffffffffffffffff82111715611c1a57611c19611bc3565b5b80604052505050565b6000611c2d6119f2565b9050611c398282611bf2565b919050565b600067ffffffffffffffff821115611c5957611c58611bc3565b5b611c6282611986565b9050602081019050919050565b82818337600083830152505050565b6000611c91611c8c84611c3e565b611c23565b905082815260208101848484011115611cad57611cac611bbe565b5b611cb8848285611c6f565b509392505050565b600082601f830112611cd557611cd4611bb9565b5b8135611ce5848260208601611c7e565b91505092915050565b60008060008060808587031215611d0857611d076119fc565b5b6000611d1687828801611ba4565b945050602085013567ffffffffffffffff811115611d3757611d36611a01565b5b611d4387828801611cc0565b9350506040611d5487828801611a27565b9250506060611d6587828801611ba4565b91505092959194509250565b60008115159050919050565b611d8681611d71565b82525050565b6000602082019050611da16000830184611d7d565b92915050565b611db081611a06565b82525050565b6000602082019050611dcb6000830184611da7565b92915050565b600080fd5b60006101008284031215611ded57611dec611dd1565b5b81905092915050565b60008060408385031215611e0d57611e0c6119fc565b5b600083013567ffffffffffffffff811115611e2b57611e2a611a01565b5b611e3785828601611dd6565b925050602083013567ffffffffffffffff811115611e5857611e57611a01565b5b611e6485828601611cc0565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000611e9582611e6e565b611e9f8185611e79565b9350611eaf81856020860161195c565b611eb881611986565b840191505092915050565b6000604082019050611ed86000830185611d7d565b8181036020830152611eea8184611e8a565b90509392505050565b600080fd5b600080fd5b60008083601f840112611f1357611f12611bb9565b5b8235905067ffffffffffffffff811115611f3057611f2f611ef3565b5b602083019150836001820283011115611f4c57611f4b611ef8565b5b9250929050565b60008060208385031215611f6a57611f696119fc565b5b600083013567ffffffffffffffff811115611f8857611f87611a01565b5b611f9485828601611efd565b92509250509250929050565b60008083601f840112611fb657611fb5611bb9565b5b8235905067ffffffffffffffff811115611fd357611fd2611ef3565b5b602083019150836020820283011115611fef57611fee611ef8565b5b9250929050565b600080600080604085870312156120105761200f6119fc565b5b600085013567ffffffffffffffff81111561202e5761202d611a01565b5b61203a87828801611fa0565b9450945050602085013567ffffffffffffffff81111561205d5761205c611a01565b5b61206987828801611efd565b925092505092959194509250565b6000819050919050565b61208a81612077565b82525050565b60006060820190506120a56000830186612081565b6120b26020830185611d7d565b6120bf6040830184611da7565b949350505050565b60006040820190506120dc6000830185611d7d565b6120e96020830184611da7565b9392505050565b6120f981611b7b565b82525050565b600060208201905061211460008301846120f0565b92915050565b60008060408385031215612131576121306119fc565b5b600061213f85828601611ba4565b925050602061215085828601611a27565b9150509250929050565b600061216582611ab5565b9050919050565b6121758161215a565b82525050565b6000602082019050612190600083018461216c565b92915050565b60006040820190506121ab6000830185611da7565b6121b860208301846120f0565b9392505050565b60006080820190506121d460008301876120f0565b81810360208301526121e68186611e8a565b90506121f56040830185611da7565b61220260608301846120f0565b95945050505050565b600080fd5b600080fd5b600080fd5b600080833560016020038436030381126122375761223661220b565b5b80840192508235915067ffffffffffffffff82111561225957612258612210565b5b60208301925060018202360383131561227557612274612215565b5b509250929050565b600081549050919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806122f557607f821691505b602082108103612308576123076122ae565b5b50919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b60008154612341816122dd565b61234b818661230e565b94506001821660008114612366576001811461237c576123af565b60ff1983168652811515602002860193506123af565b6123858561231f565b60005b838110156123a757815481890152600182019150602081019050612388565b808801955050505b50505092915050565b60006123c48383612334565b905092915050565b6000600182019050919050565b60006123e48261227d565b6123ee8185612288565b93508360208202850161240085612299565b8060005b8581101561243b5784840389528161241c85826123b8565b9450612427836123cc565b925060208a01995050600181019050612404565b50829750879550505050505092915050565b60006124598385611e79565b9350612466838584611c6f565b61246f83611986565b840190509392505050565b600060a08201905081810360008301526124948189611997565b905081810360208301526124a881886123d9565b905081810360408301526124bc8187611997565b90506124cb6060830186611da7565b81810360808301526124de81848661244d565b9050979650505050505050565b600067ffffffffffffffff82111561250657612505611bc3565b5b602082029050602081019050919050565b600061252a612525846124eb565b611c23565b9050808382526020820190506020840283018581111561254d5761254c611ef8565b5b835b8181101561259457803567ffffffffffffffff81111561257257612571611bb9565b5b80860161257f8982611cc0565b8552602085019450505060208101905061254f565b5050509392505050565b600082601f8301126125b3576125b2611bb9565b5b81356125c3848260208601612517565b91505092915050565b600080604083850312156125e3576125e26119fc565b5b600083013567ffffffffffffffff81111561260157612600611a01565b5b61260d8582860161259e565b925050602083013567ffffffffffffffff81111561262e5761262d611a01565b5b61263a85828601611cc0565b9150509250929050565b600061264f82611a69565b9050919050565b61265f81612644565b811461266a57600080fd5b50565b60008151905061267c81612656565b92915050565b600061269561269084611c3e565b611c23565b9050828152602081018484840111156126b1576126b0611bbe565b5b6126bc84828561195c565b509392505050565b600082601f8301126126d9576126d8611bb9565b5b81516126e9848260208601612682565b91505092915050565b60008151905061270181611a10565b92915050565b60008060008060808587031215612721576127206119fc565b5b600061272f8782880161266d565b945050602085015167ffffffffffffffff8111156127505761274f611a01565b5b61275c878288016126c4565b935050604061276d878288016126f2565b925050606061277e8782880161266d565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006020820190506127ce6000830184612081565b92915050565b6127dd81611b3f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b600061282b82611e6e565b612835818561280f565b935061284581856020860161195c565b61284e81611986565b840191505092915050565b60006128658383612820565b905092915050565b6000602082019050919050565b6000612885826127e3565b61288f81856127ee565b9350836020820285016128a1856127ff565b8060005b858110156128dd57848403895281516128be8582612859565b94506128c98361286d565b925060208a019950506001810190506128a5565b50829750879550505050505092915050565b600060408201905061290460008301856127d4565b8181036020830152612916818461287a565b90509392505050565b600080fd5b61292d81612077565b811461293857600080fd5b50565b60008151905061294a81612924565b92915050565b600063ffffffff82169050919050565b61296981612950565b811461297457600080fd5b50565b60008151905061298681612960565b92915050565b600077ffffffffffffffffffffffffffffffffffffffffffffffff82169050919050565b6129b98161298c565b81146129c457600080fd5b50565b6000815190506129d6816129b0565b92915050565b60008160170b9050919050565b6129f2816129dc565b81146129fd57600080fd5b50565b600081519050612a0f816129e9565b92915050565b600060e08284031215612a2b57612a2a61291f565b5b612a3560e0611c23565b90506000612a458482850161293b565b6000830152506020612a5984828501612977565b6020830152506040612a6d84828501612977565b6040830152506060612a81848285016129c7565b6060830152506080612a95848285016129c7565b60808301525060a0612aa984828501612977565b60a08301525060c0612abd84828501612a00565b60c08301525092915050565b600060e08284031215612adf57612ade6119fc565b5b6000612aed84828501612a15565b91505092915050565b6000819050919050565b612b0981612af6565b82525050565b60028110612b2057612b1f61278a565b5b50565b6000819050612b3182612b0f565b919050565b6000612b4182612b23565b9050919050565b612b5181612b36565b82525050565b600082825260208201905092915050565b6000612b7382611e6e565b612b7d8185612b57565b9350612b8d81856020860161195c565b612b9681611986565b840191505092915050565b6000606083016000830151612bb96000860182612b00565b506020830151612bcc6020860182612b48565b5060408301518482036040860152612be48282612b68565b9150508091505092915050565b60006020820190508181036000830152612c0b8184612ba1565b905092915050565b612c1c81611d71565b8114612c2757600080fd5b50565b600081519050612c3981612c13565b92915050565b600060208284031215612c5557612c546119fc565b5b6000612c6384828501612c2a565b91505092915050565b8082525050565b612c7c81612077565b82525050565b6000604082019050612c976000830185612c6c565b612ca46020830184612c73565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ce582611a06565b9150612cf083611a06565b9250828203905081811115612d0857612d07612cab565b5b92915050565b6000612d1982611a06565b9150612d2483611a06565b9250828202612d3281611a06565b91508282048414831517612d4957612d48612cab565b5b5092915050565b612d5981611a06565b82525050565b6000602082019050612d746000830184612d50565b92915050565b600060208284031215612d9057612d8f6119fc565b5b6000612d9e848285016126f2565b91505092915050565b600082825260208201905092915050565b6000819050919050565b6000612dce8385612b57565b9350612ddb838584611c6f565b612de483611986565b840190509392505050565b6000612dfc848484612dc2565b90509392505050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112612e3157612e30612e0f565b5b83810192508235915060208301925067ffffffffffffffff821115612e5957612e58612e05565b5b600182023603831315612e6f57612e6e612e0a565b5b509250929050565b6000602082019050919050565b6000612e908385612da7565b935083602084028501612ea284612db8565b8060005b87811015612ee8578484038952612ebd8284612e14565b612ec8868284612def565b9550612ed384612e77565b935060208b019a505050600181019050612ea6565b50829750879450505050509392505050565b60006040820190508181036000830152612f15818688612e84565b90508181036020830152612f2a81848661244d565b905095945050505050565b6000612f4082611a06565b9150612f4b83611a06565b9250828201905080821115612f6357612f62612cab565b5b92915050565b600069ffffffffffffffffffff82169050919050565b612f8881612f69565b8114612f9357600080fd5b50565b600081519050612fa581612f7f565b92915050565b612fb481612af6565b8114612fbf57600080fd5b50565b600081519050612fd181612fab565b92915050565b600080600080600060a08688031215612ff357612ff26119fc565b5b600061300188828901612f96565b955050602061301288828901612fc2565b9450506040613023888289016126f2565b9350506060613034888289016126f2565b925050608061304588828901612f96565b9150509295509295909350565b6000819050919050565b600061307761307261306d84613052565b611a89565b611a06565b9050919050565b6130878161305c565b82525050565b60006020820190506130a2600083018461307e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130e282611a06565b91506130ed83611a06565b9250826130fd576130fc6130a8565b5b828204905092915050565b600060608201905061311d60008301866120f0565b61312a60208301856120f0565b6131376040830184611da7565b949350505050565b600060408201905061315460008301856120f0565b6131616020830184611da7565b9392505050565b60006bffffffffffffffffffffffff82169050919050565b61318981613168565b82525050565b60006040820190506131a46000830185611da7565b6131b16020830184613180565b9392505050565b600081905092915050565b50565b60006131d36000836131b8565b91506131de826131c3565b600082019050919050565b60006131f4826131c6565b9150819050919050565b61320781611b7b565b82525050565b600082825260208201905092915050565b600061322982611e6e565b613233818561320d565b935061324381856020860161195c565b61324c81611986565b840191505092915050565b600060a08201905061326c6000830188612c6c565b61327960208301876131fe565b818103604083015261328b818661321e565b905061329a6060830185612d50565b6132a760808301846131fe565b9695505050505050565b60006080820190506132c660008301876131fe565b81810360208301526132d8818661321e565b90506132e76040830185612d50565b6132f460608301846131fe565b95945050505050565b600060208284031215613313576133126119fc565b5b60006133218482850161293b565b91505092915050565b6003811061333757600080fd5b50565b6000815190506133498161332a565b92915050565b6000606082840312156133655761336461291f565b5b61336f6060611c23565b9050600061337f8482850161333a565b6000830152506020613393848285016126f2565b60208301525060406133a7848285016126f2565b60408301525092915050565b6000606082840312156133c9576133c86119fc565b5b60006133d78482850161334f565b91505092915050565b6000819050919050565b600060ff82169050919050565b600061341261340d613408846133e0565b611a89565b6133ea565b9050919050565b613422816133f7565b82525050565b600060408201905061343d6000830185613419565b61344a6020830184611da7565b939250505056fea26469706673582212209f34224de3185d22272224495bd1c53f4450a01d1b0e7aa772412e4315eb8f0664736f6c63430008140033", + "addr": "0xe857D2f4314AFd14910D92Df1B321AFAb002B417", + "code": "0x6101606040523480156200001257600080fd5b5060405162003d8738038062003d87833981810160405281019062000038919062000450565b87878787878787878560008190806001815401808255809150506001900390600052602060002001600090919091909150908162000077919062000779565b5050600180819055508773ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508673ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508473ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250508373ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff16815250508273ffffffffffffffffffffffffffffffffffffffff166101008173ffffffffffffffffffffffffffffffffffffffff16815250508061014081815250508173ffffffffffffffffffffffffffffffffffffffff166101208173ffffffffffffffffffffffffffffffffffffffff168152505033600360010160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050505050505050505062000860565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200025e8262000231565b9050919050565b620002708162000251565b81146200027c57600080fd5b50565b600081519050620002908162000265565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620002eb82620002a0565b810181811067ffffffffffffffff821117156200030d576200030c620002b1565b5b80604052505050565b6000620003226200021d565b9050620003308282620002e0565b919050565b600067ffffffffffffffff821115620003535762000352620002b1565b5b6200035e82620002a0565b9050602081019050919050565b60005b838110156200038b5780820151818401526020810190506200036e565b60008484015250505050565b6000620003ae620003a88462000335565b62000316565b905082815260208101848484011115620003cd57620003cc6200029b565b5b620003da8482856200036b565b509392505050565b600082601f830112620003fa57620003f962000296565b5b81516200040c84826020860162000397565b91505092915050565b6000819050919050565b6200042a8162000415565b81146200043657600080fd5b50565b6000815190506200044a816200041f565b92915050565b600080600080600080600080610100898b03121562000474576200047362000227565b5b6000620004848b828c016200027f565b9850506020620004978b828c016200027f565b975050604089015167ffffffffffffffff811115620004bb57620004ba6200022c565b5b620004c98b828c01620003e2565b9650506060620004dc8b828c016200027f565b9550506080620004ef8b828c016200027f565b94505060a0620005028b828c016200027f565b93505060c0620005158b828c016200027f565b92505060e0620005288b828c0162000439565b9150509295985092959890939650565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200058b57607f821691505b602082108103620005a157620005a062000543565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200060b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620005cc565b620006178683620005cc565b95508019841693508086168417925050509392505050565b6000819050919050565b60006200065a620006546200064e8462000415565b6200062f565b62000415565b9050919050565b6000819050919050565b620006768362000639565b6200068e620006858262000661565b848454620005d9565b825550505050565b600090565b620006a562000696565b620006b28184846200066b565b505050565b5b81811015620006da57620006ce6000826200069b565b600181019050620006b8565b5050565b601f8211156200072957620006f381620005a7565b620006fe84620005bc565b810160208510156200070e578190505b620007266200071d85620005bc565b830182620006b7565b50505b505050565b600082821c905092915050565b60006200074e600019846008026200072e565b1980831691505092915050565b60006200076983836200073b565b9150826002028217905092915050565b620007848262000538565b67ffffffffffffffff811115620007a0576200079f620002b1565b5b620007ac825462000572565b620007b9828285620006de565b600060209050601f831160018114620007f15760008415620007dc578287015190505b620007e885826200075b565b86555062000858565b601f1984166200080186620005a7565b60005b828110156200082b5784890151825560018201915060208501945060208101905062000804565b868310156200084b578489015162000847601f8916826200073b565b8355505b6001600288020188555050505b505050505050565b60805160a05160c05160e05161010051610120516101405161348d620008fa600039600081816107150152610c54015260008181610f7b015281816110d6015261115901526000818161065201528181610fc1015261109a0152600081816106760152610ca8015260008181610f5701526113fb01526000818161069a01526108c00152600081816112c60152611372015261348d6000f3fe6080604052600436106101185760003560e01c80634585e33b116100a05780637b103999116100645780637b103999146103c9578063d004f0f7146103f4578063d37191de14610431578063dce1137514610461578063f9ae27f91461048c5761011f565b80634585e33b146102ba5780634b56a42e146102e35780635727977c146103215780637184af9914610360578063741bef1a1461039e5761011f565b80632808e6c8116100e75780632808e6c8146101cb5780632b7ac3f3146101f6578063341edfb4146102215780633f20b4c91461025157806340691db41461027c5761011f565b806308c9e24e146101215780630d641e9c1461014c5780631b83ca1e146101755780631c4695f4146101a05761011f565b3661011f57005b005b34801561012d57600080fd5b506101366104c9565b60405161014391906119d6565b60405180910390f35b34801561015857600080fd5b50610173600480360381019061016e9190611a42565b610502565b005b34801561018157600080fd5b5061018a610617565b60405161019791906119d6565b60405180910390f35b3480156101ac57600080fd5b506101b5610650565b6040516101c29190611aee565b60405180910390f35b3480156101d757600080fd5b506101e0610674565b6040516101ed9190611b2a565b60405180910390f35b34801561020257600080fd5b5061020b610698565b6040516102189190611b66565b60405180910390f35b61023b60048036038101906102369190611cf4565b6106bc565b6040516102489190611d92565b60405180910390f35b34801561025d57600080fd5b50610266610713565b6040516102739190611dbc565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e9190611dfc565b610737565b6040516102b1929190611ec9565b60405180910390f35b3480156102c657600080fd5b506102e160048036038101906102dc9190611f59565b6107ff565b005b3480156102ef57600080fd5b5061030a60048036038101906103059190611ffc565b610bcb565b604051610318929190611ec9565b60405180910390f35b34801561032d57600080fd5b5061034860048036038101906103439190611cf4565b610c04565b60405161035793929190612096565b60405180910390f35b34801561036c57600080fd5b5061038760048036038101906103829190611a42565b610ca1565b6040516103959291906120cd565b60405180910390f35b3480156103aa57600080fd5b506103b3610f55565b6040516103c09190611b2a565b60405180910390f35b3480156103d557600080fd5b506103de610f79565b6040516103eb9190612105565b60405180910390f35b34801561040057600080fd5b5061041b60048036038101906104169190612120565b610f9d565b6040516104289190611d92565b60405180910390f35b61044b60048036038101906104469190611cf4565b61127d565b6040516104589190611d92565b60405180910390f35b34801561046d57600080fd5b50610476611370565b6040516104839190612181565b60405180910390f35b34801561049857600080fd5b506104b360048036038101906104ae9190611cf4565b611394565b6040516104c09190611d92565b60405180910390f35b6040518060400160405280600781526020017f666565644944730000000000000000000000000000000000000000000000000081525081565b600360010160009054906101000a900460ff16806105715750600360010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156105b55780336040517f9b4aa41a0000000000000000000000000000000000000000000000000000000081526004016105ac92919061219c565b60405180910390fd5b806003600001819055506001600360010160006101000a81548160ff0219169083151502179055507f798ebf3f446df2830703de9a7fec3c112e8699dd7ffadfe56045b7d85bcb92dc8160405161060c9190611dbc565b60405180910390a150565b6040518060400160405280600981526020017f74696d657374616d70000000000000000000000000000000000000000000000081525081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006106ca858585856116c2565b7fb78272e98de6052aa2c197393914a1fe8ae1cf8dc760f1b74c6da3c2ff7fd10f858585856040516106ff94939291906121c5565b60405180910390a160019050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600060606040518060400160405280600781526020017f666565644944730000000000000000000000000000000000000000000000000081525060006040518060400160405280600981526020017f74696d657374616d7000000000000000000000000000000000000000000000008152508660200135878060e001906107be9190612220565b6040517ff055e4a20000000000000000000000000000000000000000000000000000000081526004016107f696959493929190612480565b60405180910390fd5b60005a9050600080848481019061081691906125d2565b9150915060008060008084806020019051810190610834919061270d565b935093509350935060008061084b8686868661174c565b915091506001600281111561086357610862612790565b5b8160000151600281111561087a57610879612790565b5b146108bc57816040517ff78906140000000000000000000000000000000000000000000000000000000081526004016108b391906127bf565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167360a0e67c3c9f68b751af29a59fa98d99adcf7425630eb4fdea90918b6040518363ffffffff1660e01b815260040161092f9291906128f5565b60e060405180830381865af415801561094c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109709190612acf565b905060008773ffffffffffffffffffffffffffffffffffffffff16633196b7c660405180606001604052808560c0015160170b8152602001600060018111156109bc576109bb612790565b5b81526020018a8152506040518263ffffffff1660e01b81526004016109e19190612bf7565b6020604051808303816000875af1158015610a00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a249190612c45565b905080610a6857836040517f63e64d49000000000000000000000000000000000000000000000000000000008152600401610a5f91906127bf565b60405180910390fd5b6002733f7e36ce47727e7dc0ec53045b8f8e1c1ecbd4e463b7d865c29091866040518363ffffffff1660e01b8152600401610aa4929190612c88565b602060405180830381865af4158015610ac1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae59190612c45565b508260400151735aa8cec02b28b60378adc6185eb5313ef64cf81b6375dc7d8c3a5a8f610b129190612ce0565b610b1c9190612d14565b6040518263ffffffff1660e01b8152600401610b389190612d65565b602060405180830381865af4158015610b55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b799190612d80565b1115610bbc57836040517ff1d3ccc5000000000000000000000000000000000000000000000000000000008152600401610bb391906127bf565b60405180910390fd5b50505050505050505050505050565b60006060600186868686604051602001610be89493929190612f00565b6040516020818303038152906040529150915094509492505050565b6000806000806000610c188989898961174c565b91509150600060016002811115610c3257610c31612790565b5b82600001516002811115610c4957610c48612790565b5b148015610c855750437f00000000000000000000000000000000000000000000000000000000000000008360200151610c829190612f3b565b11155b9050828183604001519550955095505050509450945094915050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610d11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d359190612fdd565b5050509150506000735aa8cec02b28b60378adc6185eb5313ef64cf81b63d30c3672735aa8cec02b28b60378adc6185eb5313ef64cf81b63d30c3672735aa8cec02b28b60378adc6185eb5313ef64cf81b6339c372906040518163ffffffff1660e01b8152600401602060405180830381865af4158015610dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dde9190612d80565b735aa8cec02b28b60378adc6185eb5313ef64cf81b6352c24e4c60016040518263ffffffff1660e01b8152600401610e169190613093565b602060405180830381865af4158015610e33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e579190612d80565b610e619190612f3b565b89610e6c9190612d14565b6040518263ffffffff1660e01b8152600401610e889190612d65565b602060405180830381865af4158015610ea5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec99190612d80565b84610ed49190612d14565b6040518263ffffffff1660e01b8152600401610ef09190612d65565b602060405180830381865af4158015610f0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f319190612d80565b90506000600547610f4291906130dd565b9050818110158294509450505050915091565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610fa7611864565b600080610fb384610ca1565b9150915081156112695760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd8730886040518463ffffffff1660e01b815260040161101c9392919061310e565b6020604051808303816000875af115801561103b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105f9190612c45565b905080611098576040517fe069624900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000000000000000000000000000000000000000000000876040518363ffffffff1660e01b8152600401611113929190613145565b6020604051808303816000875af1158015611132573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111569190612c45565b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663948108f76003600001546111a2886118aa565b6040518363ffffffff1660e01b81526004016111bf929190613195565b600060405180830381600087803b1580156111d957600080fd5b505af11580156111ed573d6000803e3d6000fd5b5050505060008673ffffffffffffffffffffffffffffffffffffffff1683604051611217906131ef565b60006040518083038185875af1925050503d8060008114611254576040519150601f19603f3d011682016040523d82523d6000602084013e611259565b606091505b505090508094505050505061126f565b81925050505b61127761190a565b92915050565b60008034036112b8576040517fcadc3eda00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112c4858585856116c2565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a27c7420868686866040518563ffffffff1660e01b815260040161132394939291906121c5565b6020604051808303816000875af1158015611342573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113669190612c45565b9050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061139e611864565b60008060006113af88888888610c04565b925092509250816113f757826040517ff78906140000000000000000000000000000000000000000000000000000000081526004016113ee91906127bf565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015611464573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114889190612fdd565b50505091505060008973ffffffffffffffffffffffffffffffffffffffff16633196b7c660405180606001604052808581526020016001808111156114d0576114cf612790565b5b81526020018c8152506040518263ffffffff1660e01b81526004016114f59190612bf7565b6020604051808303816000875af1158015611514573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115389190612c45565b90508061157c57846040517f63e64d4900000000000000000000000000000000000000000000000000000000815260040161157391906127bf565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff16846040516115a2906131ef565b60006040518083038185875af1925050503d80600081146115df576040519150601f19603f3d011682016040523d82523d6000602084013e6115e4565b606091505b505090508061162a57856040517f63e64d4900000000000000000000000000000000000000000000000000000000815260040161162191906127bf565b60405180910390fd5b6002733f7e36ce47727e7dc0ec53045b8f8e1c1ecbd4e463b7d865c29091886040518363ffffffff1660e01b8152600401611666929190612c88565b602060405180830381865af4158015611683573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a79190612c45565b50600196505050505050506116ba61190a565b949350505050565b6002733f7e36ce47727e7dc0ec53045b8f8e1c1ecbd4e463b9dc561e9091868686866040518663ffffffff1660e01b815260040161170495949392919061325d565b602060405180830381865af4158015611721573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117459190612c45565b5050505050565b6000611756611913565b6000733f7e36ce47727e7dc0ec53045b8f8e1c1ecbd4e463870ff518888888886040518563ffffffff1660e01b815260040161179594939291906132b7565b602060405180830381865af41580156117b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d69190613303565b9050806002733f7e36ce47727e7dc0ec53045b8f8e1c1ecbd4e463b40ca1499091846040518363ffffffff1660e01b8152600401611815929190612c88565b606060405180830381865af4158015611832573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185691906133b9565b925092505094509492505050565b6002600154036118a0576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600181905550565b60006bffffffffffffffffffffffff8016821115611902576060826040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526004016118f992919061342e565b60405180910390fd5b819050919050565b60018081905550565b60405180606001604052806000600281111561193257611931612790565b5b815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015611980578082015181840152602081019050611965565b60008484015250505050565b6000601f19601f8301169050919050565b60006119a882611946565b6119b28185611951565b93506119c2818560208601611962565b6119cb8161198c565b840191505092915050565b600060208201905081810360008301526119f0818461199d565b905092915050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b611a1f81611a0c565b8114611a2a57600080fd5b50565b600081359050611a3c81611a16565b92915050565b600060208284031215611a5857611a57611a02565b5b6000611a6684828501611a2d565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000611ab4611aaf611aaa84611a6f565b611a8f565b611a6f565b9050919050565b6000611ac682611a99565b9050919050565b6000611ad882611abb565b9050919050565b611ae881611acd565b82525050565b6000602082019050611b036000830184611adf565b92915050565b6000611b1482611abb565b9050919050565b611b2481611b09565b82525050565b6000602082019050611b3f6000830184611b1b565b92915050565b6000611b5082611abb565b9050919050565b611b6081611b45565b82525050565b6000602082019050611b7b6000830184611b57565b92915050565b6000611b8c82611a6f565b9050919050565b611b9c81611b81565b8114611ba757600080fd5b50565b600081359050611bb981611b93565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611c018261198c565b810181811067ffffffffffffffff82111715611c2057611c1f611bc9565b5b80604052505050565b6000611c336119f8565b9050611c3f8282611bf8565b919050565b600067ffffffffffffffff821115611c5f57611c5e611bc9565b5b611c688261198c565b9050602081019050919050565b82818337600083830152505050565b6000611c97611c9284611c44565b611c29565b905082815260208101848484011115611cb357611cb2611bc4565b5b611cbe848285611c75565b509392505050565b600082601f830112611cdb57611cda611bbf565b5b8135611ceb848260208601611c84565b91505092915050565b60008060008060808587031215611d0e57611d0d611a02565b5b6000611d1c87828801611baa565b945050602085013567ffffffffffffffff811115611d3d57611d3c611a07565b5b611d4987828801611cc6565b9350506040611d5a87828801611a2d565b9250506060611d6b87828801611baa565b91505092959194509250565b60008115159050919050565b611d8c81611d77565b82525050565b6000602082019050611da76000830184611d83565b92915050565b611db681611a0c565b82525050565b6000602082019050611dd16000830184611dad565b92915050565b600080fd5b60006101008284031215611df357611df2611dd7565b5b81905092915050565b60008060408385031215611e1357611e12611a02565b5b600083013567ffffffffffffffff811115611e3157611e30611a07565b5b611e3d85828601611ddc565b925050602083013567ffffffffffffffff811115611e5e57611e5d611a07565b5b611e6a85828601611cc6565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000611e9b82611e74565b611ea58185611e7f565b9350611eb5818560208601611962565b611ebe8161198c565b840191505092915050565b6000604082019050611ede6000830185611d83565b8181036020830152611ef08184611e90565b90509392505050565b600080fd5b600080fd5b60008083601f840112611f1957611f18611bbf565b5b8235905067ffffffffffffffff811115611f3657611f35611ef9565b5b602083019150836001820283011115611f5257611f51611efe565b5b9250929050565b60008060208385031215611f7057611f6f611a02565b5b600083013567ffffffffffffffff811115611f8e57611f8d611a07565b5b611f9a85828601611f03565b92509250509250929050565b60008083601f840112611fbc57611fbb611bbf565b5b8235905067ffffffffffffffff811115611fd957611fd8611ef9565b5b602083019150836020820283011115611ff557611ff4611efe565b5b9250929050565b6000806000806040858703121561201657612015611a02565b5b600085013567ffffffffffffffff81111561203457612033611a07565b5b61204087828801611fa6565b9450945050602085013567ffffffffffffffff81111561206357612062611a07565b5b61206f87828801611f03565b925092505092959194509250565b6000819050919050565b6120908161207d565b82525050565b60006060820190506120ab6000830186612087565b6120b86020830185611d83565b6120c56040830184611dad565b949350505050565b60006040820190506120e26000830185611d83565b6120ef6020830184611dad565b9392505050565b6120ff81611b81565b82525050565b600060208201905061211a60008301846120f6565b92915050565b6000806040838503121561213757612136611a02565b5b600061214585828601611baa565b925050602061215685828601611a2d565b9150509250929050565b600061216b82611abb565b9050919050565b61217b81612160565b82525050565b60006020820190506121966000830184612172565b92915050565b60006040820190506121b16000830185611dad565b6121be60208301846120f6565b9392505050565b60006080820190506121da60008301876120f6565b81810360208301526121ec8186611e90565b90506121fb6040830185611dad565b61220860608301846120f6565b95945050505050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261223d5761223c612211565b5b80840192508235915067ffffffffffffffff82111561225f5761225e612216565b5b60208301925060018202360383131561227b5761227a61221b565b5b509250929050565b600081549050919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806122fb57607f821691505b60208210810361230e5761230d6122b4565b5b50919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b60008154612347816122e3565b6123518186612314565b9450600182166000811461236c5760018114612382576123b5565b60ff1983168652811515602002860193506123b5565b61238b85612325565b60005b838110156123ad5781548189015260018201915060208101905061238e565b808801955050505b50505092915050565b60006123ca838361233a565b905092915050565b6000600182019050919050565b60006123ea82612283565b6123f4818561228e565b9350836020820285016124068561229f565b8060005b858110156124415784840389528161242285826123be565b945061242d836123d2565b925060208a0199505060018101905061240a565b50829750879550505050505092915050565b600061245f8385611e7f565b935061246c838584611c75565b6124758361198c565b840190509392505050565b600060a082019050818103600083015261249a818961199d565b905081810360208301526124ae81886123df565b905081810360408301526124c2818761199d565b90506124d16060830186611dad565b81810360808301526124e4818486612453565b9050979650505050505050565b600067ffffffffffffffff82111561250c5761250b611bc9565b5b602082029050602081019050919050565b600061253061252b846124f1565b611c29565b9050808382526020820190506020840283018581111561255357612552611efe565b5b835b8181101561259a57803567ffffffffffffffff81111561257857612577611bbf565b5b8086016125858982611cc6565b85526020850194505050602081019050612555565b5050509392505050565b600082601f8301126125b9576125b8611bbf565b5b81356125c984826020860161251d565b91505092915050565b600080604083850312156125e9576125e8611a02565b5b600083013567ffffffffffffffff81111561260757612606611a07565b5b612613858286016125a4565b925050602083013567ffffffffffffffff81111561263457612633611a07565b5b61264085828601611cc6565b9150509250929050565b600061265582611a6f565b9050919050565b6126658161264a565b811461267057600080fd5b50565b6000815190506126828161265c565b92915050565b600061269b61269684611c44565b611c29565b9050828152602081018484840111156126b7576126b6611bc4565b5b6126c2848285611962565b509392505050565b600082601f8301126126df576126de611bbf565b5b81516126ef848260208601612688565b91505092915050565b60008151905061270781611a16565b92915050565b6000806000806080858703121561272757612726611a02565b5b600061273587828801612673565b945050602085015167ffffffffffffffff81111561275657612755611a07565b5b612762878288016126ca565b9350506040612773878288016126f8565b925050606061278487828801612673565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006020820190506127d46000830184612087565b92915050565b6127e381611b45565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b600061283182611e74565b61283b8185612815565b935061284b818560208601611962565b6128548161198c565b840191505092915050565b600061286b8383612826565b905092915050565b6000602082019050919050565b600061288b826127e9565b61289581856127f4565b9350836020820285016128a785612805565b8060005b858110156128e357848403895281516128c4858261285f565b94506128cf83612873565b925060208a019950506001810190506128ab565b50829750879550505050505092915050565b600060408201905061290a60008301856127da565b818103602083015261291c8184612880565b90509392505050565b600080fd5b6129338161207d565b811461293e57600080fd5b50565b6000815190506129508161292a565b92915050565b600063ffffffff82169050919050565b61296f81612956565b811461297a57600080fd5b50565b60008151905061298c81612966565b92915050565b600077ffffffffffffffffffffffffffffffffffffffffffffffff82169050919050565b6129bf81612992565b81146129ca57600080fd5b50565b6000815190506129dc816129b6565b92915050565b60008160170b9050919050565b6129f8816129e2565b8114612a0357600080fd5b50565b600081519050612a15816129ef565b92915050565b600060e08284031215612a3157612a30612925565b5b612a3b60e0611c29565b90506000612a4b84828501612941565b6000830152506020612a5f8482850161297d565b6020830152506040612a738482850161297d565b6040830152506060612a87848285016129cd565b6060830152506080612a9b848285016129cd565b60808301525060a0612aaf8482850161297d565b60a08301525060c0612ac384828501612a06565b60c08301525092915050565b600060e08284031215612ae557612ae4611a02565b5b6000612af384828501612a1b565b91505092915050565b6000819050919050565b612b0f81612afc565b82525050565b60028110612b2657612b25612790565b5b50565b6000819050612b3782612b15565b919050565b6000612b4782612b29565b9050919050565b612b5781612b3c565b82525050565b600082825260208201905092915050565b6000612b7982611e74565b612b838185612b5d565b9350612b93818560208601611962565b612b9c8161198c565b840191505092915050565b6000606083016000830151612bbf6000860182612b06565b506020830151612bd26020860182612b4e565b5060408301518482036040860152612bea8282612b6e565b9150508091505092915050565b60006020820190508181036000830152612c118184612ba7565b905092915050565b612c2281611d77565b8114612c2d57600080fd5b50565b600081519050612c3f81612c19565b92915050565b600060208284031215612c5b57612c5a611a02565b5b6000612c6984828501612c30565b91505092915050565b8082525050565b612c828161207d565b82525050565b6000604082019050612c9d6000830185612c72565b612caa6020830184612c79565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ceb82611a0c565b9150612cf683611a0c565b9250828203905081811115612d0e57612d0d612cb1565b5b92915050565b6000612d1f82611a0c565b9150612d2a83611a0c565b9250828202612d3881611a0c565b91508282048414831517612d4f57612d4e612cb1565b5b5092915050565b612d5f81611a0c565b82525050565b6000602082019050612d7a6000830184612d56565b92915050565b600060208284031215612d9657612d95611a02565b5b6000612da4848285016126f8565b91505092915050565b600082825260208201905092915050565b6000819050919050565b6000612dd48385612b5d565b9350612de1838584611c75565b612dea8361198c565b840190509392505050565b6000612e02848484612dc8565b90509392505050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112612e3757612e36612e15565b5b83810192508235915060208301925067ffffffffffffffff821115612e5f57612e5e612e0b565b5b600182023603831315612e7557612e74612e10565b5b509250929050565b6000602082019050919050565b6000612e968385612dad565b935083602084028501612ea884612dbe565b8060005b87811015612eee578484038952612ec38284612e1a565b612ece868284612df5565b9550612ed984612e7d565b935060208b019a505050600181019050612eac565b50829750879450505050509392505050565b60006040820190508181036000830152612f1b818688612e8a565b90508181036020830152612f30818486612453565b905095945050505050565b6000612f4682611a0c565b9150612f5183611a0c565b9250828201905080821115612f6957612f68612cb1565b5b92915050565b600069ffffffffffffffffffff82169050919050565b612f8e81612f6f565b8114612f9957600080fd5b50565b600081519050612fab81612f85565b92915050565b612fba81612afc565b8114612fc557600080fd5b50565b600081519050612fd781612fb1565b92915050565b600080600080600060a08688031215612ff957612ff8611a02565b5b600061300788828901612f9c565b955050602061301888828901612fc8565b9450506040613029888289016126f8565b935050606061303a888289016126f8565b925050608061304b88828901612f9c565b9150509295509295909350565b6000819050919050565b600061307d61307861307384613058565b611a8f565b611a0c565b9050919050565b61308d81613062565b82525050565b60006020820190506130a86000830184613084565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130e882611a0c565b91506130f383611a0c565b925082613103576131026130ae565b5b828204905092915050565b600060608201905061312360008301866120f6565b61313060208301856120f6565b61313d6040830184611dad565b949350505050565b600060408201905061315a60008301856120f6565b6131676020830184611dad565b9392505050565b60006bffffffffffffffffffffffff82169050919050565b61318f8161316e565b82525050565b60006040820190506131aa6000830185611dad565b6131b76020830184613186565b9392505050565b600081905092915050565b50565b60006131d96000836131be565b91506131e4826131c9565b600082019050919050565b60006131fa826131cc565b9150819050919050565b61320d81611b81565b82525050565b600082825260208201905092915050565b600061322f82611e74565b6132398185613213565b9350613249818560208601611962565b6132528161198c565b840191505092915050565b600060a0820190506132726000830188612c72565b61327f6020830187613204565b81810360408301526132918186613224565b90506132a06060830185612d56565b6132ad6080830184613204565b9695505050505050565b60006080820190506132cc6000830187613204565b81810360208301526132de8186613224565b90506132ed6040830185612d56565b6132fa6060830184613204565b95945050505050565b60006020828403121561331957613318611a02565b5b600061332784828501612941565b91505092915050565b6003811061333d57600080fd5b50565b60008151905061334f81613330565b92915050565b60006060828403121561336b5761336a612925565b5b6133756060611c29565b9050600061338584828501613340565b6000830152506020613399848285016126f8565b60208301525060406133ad848285016126f8565b60408301525092915050565b6000606082840312156133cf576133ce611a02565b5b60006133dd84828501613355565b91505092915050565b6000819050919050565b600060ff82169050919050565b600061341861341361340e846133e6565b611a8f565b6133f0565b9050919050565b613428816133fd565b82525050565b6000604082019050613443600083018561341f565b6134506020830184611dad565b939250505056fea264697066735822122049e7592d98aaac9c001f95f541394ecf5c5560ce0f395af56104758bb578b0f264736f6c63430008140033", "args": [ "0xE131e240f8526da46E58455472Edc9Ef4479E91d", "0x2ff010DEbC1297f19579B4246cad07bd24F2488A", diff --git a/scripts/e2e/example/trade.js b/scripts/e2e/example/trade.js index 9fe2fc6..3333790 100644 --- a/scripts/e2e/example/trade.js +++ b/scripts/e2e/example/trade.js @@ -1,6 +1,5 @@ const hre = require("hardhat"); const { getDeploymentLockData } = require("../../common"); -const hre = require("hardhat"); const { ethers, network } = hre; const coder = new ethers.AbiCoder(); @@ -55,18 +54,18 @@ async function main() { "FakedOracleProxy", lock.FakedOracleProxy.addr, ); + const usdc = await ethers.getContractAt("FUSDC", lock.FUSDC.addr); - const initBalance = await usdc.balanceOf(signerAddr); + console.log("USD balance before trade: ", await usdc.balanceOf(signerAddr)); await consumer.trade(tradeArgs, nonce, { - value: hre.ethers.parseEther("0.01"), + value: hre.ethers.parseEther("0.005"), }); - const usdc = await ethers.getContractAt("FUSDC", lock.FUSDC.addr); - - const balance = initBalance - await usdc.balanceOf(signerAddr); + // wait ~block for automation to perform a swap + await new Promise((res) => setTimeout(res, 4500)); - console.log("Successfully traded fWETH tokens for fUSDC", balance); + console.log("USD balance after trade: ", await usdc.balanceOf(signerAddr)); console.log("run fallback check logic.."); diff --git a/src/Oracle.sol b/src/Oracle.sol index 65947ca..71f9ab9 100644 --- a/src/Oracle.sol +++ b/src/Oracle.sol @@ -143,7 +143,7 @@ contract Oracle is IOracle, DataStreamConsumer, ReentrancyGuard { bool success = IOracleConsumerContract(callbackContract).consume( ForwardData({ - price: int256(0), + price: int256(report.price), feedType: FeedType.DataStream, forwardArguments: callbackArgs }) @@ -186,7 +186,9 @@ contract Oracle is IOracle, DataStreamConsumer, ReentrancyGuard { bool success = IOracleConsumerContract(callbackContract).consume( ForwardData({ - price: price, + // price convertion to 18 decimals is hardcoded for ETH\USD + // TODO: implement flexible conversion + price: price * 10 ** 10, feedType: FeedType.PriceFeed, forwardArguments: callbackArgs })