intents-framework
Version:
A reference ERC7683 implementation with TypeScript support
202 lines • 7.84 kB
TypeScript
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 OnchainCrossChainOrderStruct = {
fillDeadline: BigNumberish;
orderDataType: BytesLike;
orderData: BytesLike;
};
export type OnchainCrossChainOrderStructOutput = [
fillDeadline: bigint,
orderDataType: string,
orderData: string
] & {
fillDeadline: bigint;
orderDataType: string;
orderData: string;
};
export type GaslessCrossChainOrderStruct = {
originSettler: AddressLike;
user: AddressLike;
nonce: BigNumberish;
originChainId: BigNumberish;
openDeadline: BigNumberish;
fillDeadline: BigNumberish;
orderDataType: BytesLike;
orderData: BytesLike;
};
export type GaslessCrossChainOrderStructOutput = [
originSettler: string,
user: string,
nonce: bigint,
originChainId: bigint,
openDeadline: bigint,
fillDeadline: bigint,
orderDataType: string,
orderData: string
] & {
originSettler: string;
user: string;
nonce: bigint;
originChainId: bigint;
openDeadline: bigint;
fillDeadline: bigint;
orderDataType: string;
orderData: string;
};
export type OutputStruct = {
token: BytesLike;
amount: BigNumberish;
recipient: BytesLike;
chainId: BigNumberish;
};
export type OutputStructOutput = [
token: string,
amount: bigint,
recipient: string,
chainId: bigint
] & {
token: string;
amount: bigint;
recipient: string;
chainId: bigint;
};
export type FillInstructionStruct = {
destinationChainId: BigNumberish;
destinationSettler: BytesLike;
originData: BytesLike;
};
export type FillInstructionStructOutput = [
destinationChainId: bigint,
destinationSettler: string,
originData: string
] & {
destinationChainId: bigint;
destinationSettler: string;
originData: string;
};
export type ResolvedCrossChainOrderStruct = {
user: AddressLike;
originChainId: BigNumberish;
openDeadline: BigNumberish;
fillDeadline: BigNumberish;
orderId: BytesLike;
maxSpent: OutputStruct[];
minReceived: OutputStruct[];
fillInstructions: FillInstructionStruct[];
};
export type ResolvedCrossChainOrderStructOutput = [
user: string,
originChainId: bigint,
openDeadline: bigint,
fillDeadline: bigint,
orderId: string,
maxSpent: OutputStructOutput[],
minReceived: OutputStructOutput[],
fillInstructions: FillInstructionStructOutput[]
] & {
user: string;
originChainId: bigint;
openDeadline: bigint;
fillDeadline: bigint;
orderId: string;
maxSpent: OutputStructOutput[];
minReceived: OutputStructOutput[];
fillInstructions: FillInstructionStructOutput[];
};
export interface IOriginSettlerInterface extends Interface {
getFunction(nameOrSignature: "open" | "openFor" | "resolve" | "resolveFor"): FunctionFragment;
getEvent(nameOrSignatureOrTopic: "Open"): EventFragment;
encodeFunctionData(functionFragment: "open", values: [OnchainCrossChainOrderStruct]): string;
encodeFunctionData(functionFragment: "openFor", values: [GaslessCrossChainOrderStruct, BytesLike, BytesLike]): string;
encodeFunctionData(functionFragment: "resolve", values: [OnchainCrossChainOrderStruct]): string;
encodeFunctionData(functionFragment: "resolveFor", values: [GaslessCrossChainOrderStruct, BytesLike]): string;
decodeFunctionResult(functionFragment: "open", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "openFor", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "resolve", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "resolveFor", data: BytesLike): Result;
}
export declare namespace OpenEvent {
type InputTuple = [
orderId: BytesLike,
resolvedOrder: ResolvedCrossChainOrderStruct
];
type OutputTuple = [
orderId: string,
resolvedOrder: ResolvedCrossChainOrderStructOutput
];
interface OutputObject {
orderId: string;
resolvedOrder: ResolvedCrossChainOrderStructOutput;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export interface IOriginSettler extends BaseContract {
connect(runner?: ContractRunner | null): IOriginSettler;
waitForDeployment(): Promise<this>;
interface: IOriginSettlerInterface;
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>;
open: TypedContractMethod<[
order: OnchainCrossChainOrderStruct
], [
void
], "payable">;
openFor: TypedContractMethod<[
order: GaslessCrossChainOrderStruct,
signature: BytesLike,
originFillerData: BytesLike
], [
void
], "nonpayable">;
resolve: TypedContractMethod<[
order: OnchainCrossChainOrderStruct
], [
ResolvedCrossChainOrderStructOutput
], "view">;
resolveFor: TypedContractMethod<[
order: GaslessCrossChainOrderStruct,
originFillerData: BytesLike
], [
ResolvedCrossChainOrderStructOutput
], "view">;
getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
getFunction(nameOrSignature: "open"): TypedContractMethod<[
order: OnchainCrossChainOrderStruct
], [
void
], "payable">;
getFunction(nameOrSignature: "openFor"): TypedContractMethod<[
order: GaslessCrossChainOrderStruct,
signature: BytesLike,
originFillerData: BytesLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "resolve"): TypedContractMethod<[
order: OnchainCrossChainOrderStruct
], [
ResolvedCrossChainOrderStructOutput
], "view">;
getFunction(nameOrSignature: "resolveFor"): TypedContractMethod<[
order: GaslessCrossChainOrderStruct,
originFillerData: BytesLike
], [
ResolvedCrossChainOrderStructOutput
], "view">;
getEvent(key: "Open"): TypedContractEvent<OpenEvent.InputTuple, OpenEvent.OutputTuple, OpenEvent.OutputObject>;
filters: {
"Open(bytes32,tuple)": TypedContractEvent<OpenEvent.InputTuple, OpenEvent.OutputTuple, OpenEvent.OutputObject>;
Open: TypedContractEvent<OpenEvent.InputTuple, OpenEvent.OutputTuple, OpenEvent.OutputObject>;
};
}
//# sourceMappingURL=IOriginSettler.d.ts.map