Skip to content

Commit

Permalink
add-type-chain-types
Browse files Browse the repository at this point in the history
  • Loading branch information
ibold-dev committed Sep 30, 2024
1 parent 483398f commit c25a283
Show file tree
Hide file tree
Showing 7 changed files with 628 additions and 1 deletion.
2 changes: 1 addition & 1 deletion scripts/XPReward.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {
NonceManager,
} from "ethers";
import { processTypechainAbis } from "./process-typechain-abis";
import * as typechain from "../typechain-types";
import * as typechain from "../typechain-types-push";
import dotenv from "dotenv";
dotenv.config({ path: ".env" });

Expand Down
232 changes: 232 additions & 0 deletions typechain-types-push/XPReward.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,232 @@
/* 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 XPRewardInterface extends Interface {
getFunction(
nameOrSignature:
| "claimXP"
| "getMyXP"
| "lastClaimedTimestamp"
| "timeUntilNextClaim"
| "timesSigned"
| "timesUpdated"
| "updateTimeSigned"
| "updateTimeUpdated"
| "xpBalances"
): FunctionFragment;

getEvent(nameOrSignatureOrTopic: "XPClaimed"): EventFragment;

encodeFunctionData(functionFragment: "claimXP", values?: undefined): string;
encodeFunctionData(functionFragment: "getMyXP", values?: undefined): string;
encodeFunctionData(
functionFragment: "lastClaimedTimestamp",
values: [AddressLike]
): string;
encodeFunctionData(
functionFragment: "timeUntilNextClaim",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "timesSigned",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "timesUpdated",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "updateTimeSigned",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "updateTimeUpdated",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "xpBalances",
values: [AddressLike]
): string;

decodeFunctionResult(functionFragment: "claimXP", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "getMyXP", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "lastClaimedTimestamp",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "timeUntilNextClaim",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "timesSigned",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "timesUpdated",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "updateTimeSigned",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "updateTimeUpdated",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "xpBalances", data: BytesLike): Result;
}

export namespace XPClaimedEvent {
export type InputTuple = [user: AddressLike, amount: BigNumberish];
export type OutputTuple = [user: string, amount: bigint];
export interface OutputObject {
user: string;
amount: bigint;
}
export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
export type Filter = TypedDeferredTopicFilter<Event>;
export type Log = TypedEventLog<Event>;
export type LogDescription = TypedLogDescription<Event>;
}

export interface XPReward extends BaseContract {
connect(runner?: ContractRunner | null): XPReward;
waitForDeployment(): Promise<this>;

interface: XPRewardInterface;

queryFilter<TCEvent extends TypedContractEvent>(
event: TCEvent,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEventLog<TCEvent>>>;
queryFilter<TCEvent extends TypedContractEvent>(
filter: TypedDeferredTopicFilter<TCEvent>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEventLog<TCEvent>>>;

on<TCEvent extends TypedContractEvent>(
event: TCEvent,
listener: TypedListener<TCEvent>
): Promise<this>;
on<TCEvent extends TypedContractEvent>(
filter: TypedDeferredTopicFilter<TCEvent>,
listener: TypedListener<TCEvent>
): Promise<this>;

once<TCEvent extends TypedContractEvent>(
event: TCEvent,
listener: TypedListener<TCEvent>
): Promise<this>;
once<TCEvent extends TypedContractEvent>(
filter: TypedDeferredTopicFilter<TCEvent>,
listener: TypedListener<TCEvent>
): Promise<this>;

listeners<TCEvent extends TypedContractEvent>(
event: TCEvent
): Promise<Array<TypedListener<TCEvent>>>;
listeners(eventName?: string): Promise<Array<Listener>>;
removeAllListeners<TCEvent extends TypedContractEvent>(
event?: TCEvent
): Promise<this>;

claimXP: TypedContractMethod<[], [void], "nonpayable">;

getMyXP: TypedContractMethod<[], [bigint], "view">;

lastClaimedTimestamp: TypedContractMethod<
[arg0: AddressLike],
[bigint],
"view"
>;

timeUntilNextClaim: TypedContractMethod<[], [bigint], "view">;

timesSigned: TypedContractMethod<[], [bigint], "view">;

timesUpdated: TypedContractMethod<[], [bigint], "view">;

updateTimeSigned: TypedContractMethod<[], [void], "nonpayable">;

updateTimeUpdated: TypedContractMethod<[], [void], "nonpayable">;

xpBalances: TypedContractMethod<[arg0: AddressLike], [bigint], "view">;

getFunction<T extends ContractMethod = ContractMethod>(
key: string | FunctionFragment
): T;

getFunction(
nameOrSignature: "claimXP"
): TypedContractMethod<[], [void], "nonpayable">;
getFunction(
nameOrSignature: "getMyXP"
): TypedContractMethod<[], [bigint], "view">;
getFunction(
nameOrSignature: "lastClaimedTimestamp"
): TypedContractMethod<[arg0: AddressLike], [bigint], "view">;
getFunction(
nameOrSignature: "timeUntilNextClaim"
): TypedContractMethod<[], [bigint], "view">;
getFunction(
nameOrSignature: "timesSigned"
): TypedContractMethod<[], [bigint], "view">;
getFunction(
nameOrSignature: "timesUpdated"
): TypedContractMethod<[], [bigint], "view">;
getFunction(
nameOrSignature: "updateTimeSigned"
): TypedContractMethod<[], [void], "nonpayable">;
getFunction(
nameOrSignature: "updateTimeUpdated"
): TypedContractMethod<[], [void], "nonpayable">;
getFunction(
nameOrSignature: "xpBalances"
): TypedContractMethod<[arg0: AddressLike], [bigint], "view">;

getEvent(
key: "XPClaimed"
): TypedContractEvent<
XPClaimedEvent.InputTuple,
XPClaimedEvent.OutputTuple,
XPClaimedEvent.OutputObject
>;

filters: {
"XPClaimed(address,uint256)": TypedContractEvent<
XPClaimedEvent.InputTuple,
XPClaimedEvent.OutputTuple,
XPClaimedEvent.OutputObject
>;
XPClaimed: TypedContractEvent<
XPClaimedEvent.InputTuple,
XPClaimedEvent.OutputTuple,
XPClaimedEvent.OutputObject
>;
};
}
131 changes: 131 additions & 0 deletions typechain-types-push/common.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
/* 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> = any,
OutputTuple extends Array<any> = any,
OutputObject = any
> {
(...args: Partial<InputTuple>): TypedDeferredTopicFilter<
TypedContractEvent<InputTuple, OutputTuple, OutputObject>
>;
name: string;
fragment: EventFragment;
getFragment(...args: Partial<InputTuple>): EventFragment;
}

type __TypechainAOutputTuple<T> = T extends TypedContractEvent<
infer _U,
infer W
>
? W
: never;
type __TypechainOutputObject<T> = T extends TypedContractEvent<
infer _U,
infer _W,
infer V
>
? V
: never;

export interface TypedEventLog<TCEvent extends TypedContractEvent>
extends Omit<EventLog, "args"> {
args: __TypechainAOutputTuple<TCEvent> & __TypechainOutputObject<TCEvent>;
}

export interface TypedLogDescription<TCEvent extends TypedContractEvent>
extends Omit<LogDescription, "args"> {
args: __TypechainAOutputTuple<TCEvent> & __TypechainOutputObject<TCEvent>;
}

export type TypedListener<TCEvent extends TypedContractEvent> = (
...listenerArg: [
...__TypechainAOutputTuple<TCEvent>,
TypedEventLog<TCEvent>,
...undefined[]
]
) => void;

export type MinEthersFactory<C, ARGS> = {
deploy(...a: ARGS[]): Promise<C>;
};

export type GetContractTypeFromFactory<F> = F extends MinEthersFactory<
infer C,
any
>
? C
: never;
export type GetARGsTypeFromFactory<F> = F extends MinEthersFactory<any, any>
? Parameters<F["deploy"]>
: never;

export type StateMutability = "nonpayable" | "payable" | "view";

export type BaseOverrides = Omit<TransactionRequest, "to" | "data">;
export type NonPayableOverrides = Omit<
BaseOverrides,
"value" | "blockTag" | "enableCcipRead"
>;
export type PayableOverrides = Omit<
BaseOverrides,
"blockTag" | "enableCcipRead"
>;
export type ViewOverrides = Omit<TransactionRequest, "to" | "data">;
export type Overrides<S extends StateMutability> = S extends "nonpayable"
? NonPayableOverrides
: S extends "payable"
? PayableOverrides
: ViewOverrides;

export type PostfixOverrides<A extends Array<any>, S extends StateMutability> =
| A
| [...A, Overrides<S>];
export type ContractMethodArgs<
A extends Array<any>,
S extends StateMutability
> = PostfixOverrides<{ [I in keyof A]-?: A[I] | Typed }, S>;

export type DefaultReturnType<R> = R extends Array<any> ? R[0] : R;

// export interface ContractMethod<A extends Array<any> = Array<any>, R = any, D extends R | ContractTransactionResponse = R | ContractTransactionResponse> {
export interface TypedContractMethod<
A extends Array<any> = Array<any>,
R = any,
S extends StateMutability = "payable"
> {
(...args: ContractMethodArgs<A, S>): S extends "view"
? Promise<DefaultReturnType<R>>
: Promise<ContractTransactionResponse>;

name: string;

fragment: FunctionFragment;

getFragment(...args: ContractMethodArgs<A, S>): FunctionFragment;

populateTransaction(
...args: ContractMethodArgs<A, S>
): Promise<ContractTransaction>;
staticCall(
...args: ContractMethodArgs<A, "view">
): Promise<DefaultReturnType<R>>;
send(...args: ContractMethodArgs<A, S>): Promise<ContractTransactionResponse>;
estimateGas(...args: ContractMethodArgs<A, S>): Promise<bigint>;
staticCallResult(...args: ContractMethodArgs<A, "view">): Promise<R>;
}
Loading

0 comments on commit c25a283

Please sign in to comment.