intents-framework
Version:
A reference ERC7683 implementation with TypeScript support
474 lines • 23.5 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 Base7683ForTestNativeInterface extends Interface {
getFunction(nameOrSignature: "FILLED" | "OPENED" | "PERMIT2" | "RESOLVED_CROSS_CHAIN_ORDER_TYPEHASH" | "UNKNOWN" | "counterpart" | "fill" | "filledFillerData" | "filledId" | "filledOrders" | "filledOriginData" | "invalidateNonces" | "isValidNonce" | "localDomain" | "open" | "openFor" | "openOrders" | "orderStatus" | "refund((uint32,bytes32,bytes)[])" | "refund((address,address,uint256,uint256,uint32,uint32,bytes32,bytes)[])" | "refundedOrderIds" | "resolve" | "resolveFor" | "setCounterpart" | "setNative" | "settle" | "settledOrderIds" | "settledOrdersFillerData" | "settledOrdersOriginData" | "usedNonces" | "witnessHash" | "witnessTypeString"): FunctionFragment;
getEvent(nameOrSignatureOrTopic: "Filled" | "NonceInvalidation" | "Open" | "Refund" | "Settle"): EventFragment;
encodeFunctionData(functionFragment: "FILLED", values?: undefined): string;
encodeFunctionData(functionFragment: "OPENED", values?: undefined): string;
encodeFunctionData(functionFragment: "PERMIT2", values?: undefined): string;
encodeFunctionData(functionFragment: "RESOLVED_CROSS_CHAIN_ORDER_TYPEHASH", values?: undefined): string;
encodeFunctionData(functionFragment: "UNKNOWN", values?: undefined): string;
encodeFunctionData(functionFragment: "counterpart", values?: undefined): string;
encodeFunctionData(functionFragment: "fill", values: [BytesLike, BytesLike, BytesLike]): string;
encodeFunctionData(functionFragment: "filledFillerData", values?: undefined): string;
encodeFunctionData(functionFragment: "filledId", values?: undefined): string;
encodeFunctionData(functionFragment: "filledOrders", values: [BytesLike]): string;
encodeFunctionData(functionFragment: "filledOriginData", values?: undefined): string;
encodeFunctionData(functionFragment: "invalidateNonces", values: [BigNumberish]): string;
encodeFunctionData(functionFragment: "isValidNonce", values: [AddressLike, BigNumberish]): string;
encodeFunctionData(functionFragment: "localDomain", values?: undefined): string;
encodeFunctionData(functionFragment: "open", values: [OnchainCrossChainOrderStruct]): string;
encodeFunctionData(functionFragment: "openFor", values: [GaslessCrossChainOrderStruct, BytesLike, BytesLike]): string;
encodeFunctionData(functionFragment: "openOrders", values: [BytesLike]): string;
encodeFunctionData(functionFragment: "orderStatus", values: [BytesLike]): string;
encodeFunctionData(functionFragment: "refund((uint32,bytes32,bytes)[])", values: [OnchainCrossChainOrderStruct[]]): string;
encodeFunctionData(functionFragment: "refund((address,address,uint256,uint256,uint32,uint32,bytes32,bytes)[])", values: [GaslessCrossChainOrderStruct[]]): string;
encodeFunctionData(functionFragment: "refundedOrderIds", values: [BigNumberish]): string;
encodeFunctionData(functionFragment: "resolve", values: [OnchainCrossChainOrderStruct]): string;
encodeFunctionData(functionFragment: "resolveFor", values: [GaslessCrossChainOrderStruct, BytesLike]): string;
encodeFunctionData(functionFragment: "setCounterpart", values: [BytesLike]): string;
encodeFunctionData(functionFragment: "setNative", values: [boolean]): string;
encodeFunctionData(functionFragment: "settle", values: [BytesLike[]]): string;
encodeFunctionData(functionFragment: "settledOrderIds", values: [BigNumberish]): string;
encodeFunctionData(functionFragment: "settledOrdersFillerData", values: [BigNumberish]): string;
encodeFunctionData(functionFragment: "settledOrdersOriginData", values: [BigNumberish]): string;
encodeFunctionData(functionFragment: "usedNonces", values: [AddressLike, BigNumberish]): string;
encodeFunctionData(functionFragment: "witnessHash", values: [ResolvedCrossChainOrderStruct]): string;
encodeFunctionData(functionFragment: "witnessTypeString", values?: undefined): string;
decodeFunctionResult(functionFragment: "FILLED", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "OPENED", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "PERMIT2", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "RESOLVED_CROSS_CHAIN_ORDER_TYPEHASH", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "UNKNOWN", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "counterpart", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "fill", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "filledFillerData", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "filledId", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "filledOrders", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "filledOriginData", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "invalidateNonces", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "isValidNonce", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "localDomain", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "open", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "openFor", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "openOrders", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "orderStatus", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "refund((uint32,bytes32,bytes)[])", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "refund((address,address,uint256,uint256,uint32,uint32,bytes32,bytes)[])", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "refundedOrderIds", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "resolve", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "resolveFor", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setCounterpart", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setNative", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "settle", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "settledOrderIds", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "settledOrdersFillerData", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "settledOrdersOriginData", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "usedNonces", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "witnessHash", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "witnessTypeString", data: BytesLike): Result;
}
export declare namespace FilledEvent {
type InputTuple = [
orderId: BytesLike,
originData: BytesLike,
fillerData: BytesLike
];
type OutputTuple = [
orderId: string,
originData: string,
fillerData: string
];
interface OutputObject {
orderId: string;
originData: string;
fillerData: string;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace NonceInvalidationEvent {
type InputTuple = [owner: AddressLike, nonce: BigNumberish];
type OutputTuple = [owner: string, nonce: bigint];
interface OutputObject {
owner: string;
nonce: bigint;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
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 declare namespace RefundEvent {
type InputTuple = [orderIds: BytesLike[]];
type OutputTuple = [orderIds: string[]];
interface OutputObject {
orderIds: string[];
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SettleEvent {
type InputTuple = [
orderIds: BytesLike[],
ordersFillerData: BytesLike[]
];
type OutputTuple = [orderIds: string[], ordersFillerData: string[]];
interface OutputObject {
orderIds: string[];
ordersFillerData: string[];
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export interface Base7683ForTestNative extends BaseContract {
connect(runner?: ContractRunner | null): Base7683ForTestNative;
waitForDeployment(): Promise<this>;
interface: Base7683ForTestNativeInterface;
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>;
FILLED: TypedContractMethod<[], [string], "view">;
OPENED: TypedContractMethod<[], [string], "view">;
PERMIT2: TypedContractMethod<[], [string], "view">;
RESOLVED_CROSS_CHAIN_ORDER_TYPEHASH: TypedContractMethod<[
], [
string
], "view">;
UNKNOWN: TypedContractMethod<[], [string], "view">;
counterpart: TypedContractMethod<[], [string], "view">;
fill: TypedContractMethod<[
_orderId: BytesLike,
_originData: BytesLike,
_fillerData: BytesLike
], [
void
], "payable">;
filledFillerData: TypedContractMethod<[], [string], "view">;
filledId: TypedContractMethod<[], [string], "view">;
filledOrders: TypedContractMethod<[
orderId: BytesLike
], [
[string, string] & {
originData: string;
fillerData: string;
}
], "view">;
filledOriginData: TypedContractMethod<[], [string], "view">;
invalidateNonces: TypedContractMethod<[
_nonce: BigNumberish
], [
void
], "nonpayable">;
isValidNonce: TypedContractMethod<[
_from: AddressLike,
_nonce: BigNumberish
], [
boolean
], "view">;
localDomain: TypedContractMethod<[], [bigint], "view">;
open: TypedContractMethod<[
_order: OnchainCrossChainOrderStruct
], [
void
], "payable">;
openFor: TypedContractMethod<[
_order: GaslessCrossChainOrderStruct,
_signature: BytesLike,
_originFillerData: BytesLike
], [
void
], "nonpayable">;
openOrders: TypedContractMethod<[orderId: BytesLike], [string], "view">;
orderStatus: TypedContractMethod<[orderId: BytesLike], [string], "view">;
"refund((uint32,bytes32,bytes)[])": TypedContractMethod<[
_orders: OnchainCrossChainOrderStruct[]
], [
void
], "payable">;
"refund((address,address,uint256,uint256,uint32,uint32,bytes32,bytes)[])": TypedContractMethod<[
_orders: GaslessCrossChainOrderStruct[]
], [
void
], "payable">;
refundedOrderIds: TypedContractMethod<[arg0: BigNumberish], [string], "view">;
resolve: TypedContractMethod<[
_order: OnchainCrossChainOrderStruct
], [
ResolvedCrossChainOrderStructOutput
], "view">;
resolveFor: TypedContractMethod<[
_order: GaslessCrossChainOrderStruct,
_originFillerData: BytesLike
], [
ResolvedCrossChainOrderStructOutput
], "view">;
setCounterpart: TypedContractMethod<[
_counterpart: BytesLike
], [
void
], "nonpayable">;
setNative: TypedContractMethod<[_isNative: boolean], [void], "nonpayable">;
settle: TypedContractMethod<[_orderIds: BytesLike[]], [void], "payable">;
settledOrderIds: TypedContractMethod<[arg0: BigNumberish], [string], "view">;
settledOrdersFillerData: TypedContractMethod<[
arg0: BigNumberish
], [
string
], "view">;
settledOrdersOriginData: TypedContractMethod<[
arg0: BigNumberish
], [
string
], "view">;
usedNonces: TypedContractMethod<[
arg0: AddressLike,
arg1: BigNumberish
], [
boolean
], "view">;
witnessHash: TypedContractMethod<[
_resolvedOrder: ResolvedCrossChainOrderStruct
], [
string
], "view">;
witnessTypeString: TypedContractMethod<[], [string], "view">;
getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
getFunction(nameOrSignature: "FILLED"): TypedContractMethod<[], [string], "view">;
getFunction(nameOrSignature: "OPENED"): TypedContractMethod<[], [string], "view">;
getFunction(nameOrSignature: "PERMIT2"): TypedContractMethod<[], [string], "view">;
getFunction(nameOrSignature: "RESOLVED_CROSS_CHAIN_ORDER_TYPEHASH"): TypedContractMethod<[], [string], "view">;
getFunction(nameOrSignature: "UNKNOWN"): TypedContractMethod<[], [string], "view">;
getFunction(nameOrSignature: "counterpart"): TypedContractMethod<[], [string], "view">;
getFunction(nameOrSignature: "fill"): TypedContractMethod<[
_orderId: BytesLike,
_originData: BytesLike,
_fillerData: BytesLike
], [
void
], "payable">;
getFunction(nameOrSignature: "filledFillerData"): TypedContractMethod<[], [string], "view">;
getFunction(nameOrSignature: "filledId"): TypedContractMethod<[], [string], "view">;
getFunction(nameOrSignature: "filledOrders"): TypedContractMethod<[
orderId: BytesLike
], [
[string, string] & {
originData: string;
fillerData: string;
}
], "view">;
getFunction(nameOrSignature: "filledOriginData"): TypedContractMethod<[], [string], "view">;
getFunction(nameOrSignature: "invalidateNonces"): TypedContractMethod<[_nonce: BigNumberish], [void], "nonpayable">;
getFunction(nameOrSignature: "isValidNonce"): TypedContractMethod<[
_from: AddressLike,
_nonce: BigNumberish
], [
boolean
], "view">;
getFunction(nameOrSignature: "localDomain"): TypedContractMethod<[], [bigint], "view">;
getFunction(nameOrSignature: "open"): TypedContractMethod<[
_order: OnchainCrossChainOrderStruct
], [
void
], "payable">;
getFunction(nameOrSignature: "openFor"): TypedContractMethod<[
_order: GaslessCrossChainOrderStruct,
_signature: BytesLike,
_originFillerData: BytesLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "openOrders"): TypedContractMethod<[orderId: BytesLike], [string], "view">;
getFunction(nameOrSignature: "orderStatus"): TypedContractMethod<[orderId: BytesLike], [string], "view">;
getFunction(nameOrSignature: "refund((uint32,bytes32,bytes)[])"): TypedContractMethod<[
_orders: OnchainCrossChainOrderStruct[]
], [
void
], "payable">;
getFunction(nameOrSignature: "refund((address,address,uint256,uint256,uint32,uint32,bytes32,bytes)[])"): TypedContractMethod<[
_orders: GaslessCrossChainOrderStruct[]
], [
void
], "payable">;
getFunction(nameOrSignature: "refundedOrderIds"): TypedContractMethod<[arg0: BigNumberish], [string], "view">;
getFunction(nameOrSignature: "resolve"): TypedContractMethod<[
_order: OnchainCrossChainOrderStruct
], [
ResolvedCrossChainOrderStructOutput
], "view">;
getFunction(nameOrSignature: "resolveFor"): TypedContractMethod<[
_order: GaslessCrossChainOrderStruct,
_originFillerData: BytesLike
], [
ResolvedCrossChainOrderStructOutput
], "view">;
getFunction(nameOrSignature: "setCounterpart"): TypedContractMethod<[_counterpart: BytesLike], [void], "nonpayable">;
getFunction(nameOrSignature: "setNative"): TypedContractMethod<[_isNative: boolean], [void], "nonpayable">;
getFunction(nameOrSignature: "settle"): TypedContractMethod<[_orderIds: BytesLike[]], [void], "payable">;
getFunction(nameOrSignature: "settledOrderIds"): TypedContractMethod<[arg0: BigNumberish], [string], "view">;
getFunction(nameOrSignature: "settledOrdersFillerData"): TypedContractMethod<[arg0: BigNumberish], [string], "view">;
getFunction(nameOrSignature: "settledOrdersOriginData"): TypedContractMethod<[arg0: BigNumberish], [string], "view">;
getFunction(nameOrSignature: "usedNonces"): TypedContractMethod<[
arg0: AddressLike,
arg1: BigNumberish
], [
boolean
], "view">;
getFunction(nameOrSignature: "witnessHash"): TypedContractMethod<[
_resolvedOrder: ResolvedCrossChainOrderStruct
], [
string
], "view">;
getFunction(nameOrSignature: "witnessTypeString"): TypedContractMethod<[], [string], "view">;
getEvent(key: "Filled"): TypedContractEvent<FilledEvent.InputTuple, FilledEvent.OutputTuple, FilledEvent.OutputObject>;
getEvent(key: "NonceInvalidation"): TypedContractEvent<NonceInvalidationEvent.InputTuple, NonceInvalidationEvent.OutputTuple, NonceInvalidationEvent.OutputObject>;
getEvent(key: "Open"): TypedContractEvent<OpenEvent.InputTuple, OpenEvent.OutputTuple, OpenEvent.OutputObject>;
getEvent(key: "Refund"): TypedContractEvent<RefundEvent.InputTuple, RefundEvent.OutputTuple, RefundEvent.OutputObject>;
getEvent(key: "Settle"): TypedContractEvent<SettleEvent.InputTuple, SettleEvent.OutputTuple, SettleEvent.OutputObject>;
filters: {
"Filled(bytes32,bytes,bytes)": TypedContractEvent<FilledEvent.InputTuple, FilledEvent.OutputTuple, FilledEvent.OutputObject>;
Filled: TypedContractEvent<FilledEvent.InputTuple, FilledEvent.OutputTuple, FilledEvent.OutputObject>;
"NonceInvalidation(address,uint256)": TypedContractEvent<NonceInvalidationEvent.InputTuple, NonceInvalidationEvent.OutputTuple, NonceInvalidationEvent.OutputObject>;
NonceInvalidation: TypedContractEvent<NonceInvalidationEvent.InputTuple, NonceInvalidationEvent.OutputTuple, NonceInvalidationEvent.OutputObject>;
"Open(bytes32,tuple)": TypedContractEvent<OpenEvent.InputTuple, OpenEvent.OutputTuple, OpenEvent.OutputObject>;
Open: TypedContractEvent<OpenEvent.InputTuple, OpenEvent.OutputTuple, OpenEvent.OutputObject>;
"Refund(bytes32[])": TypedContractEvent<RefundEvent.InputTuple, RefundEvent.OutputTuple, RefundEvent.OutputObject>;
Refund: TypedContractEvent<RefundEvent.InputTuple, RefundEvent.OutputTuple, RefundEvent.OutputObject>;
"Settle(bytes32[],bytes[])": TypedContractEvent<SettleEvent.InputTuple, SettleEvent.OutputTuple, SettleEvent.OutputObject>;
Settle: TypedContractEvent<SettleEvent.InputTuple, SettleEvent.OutputTuple, SettleEvent.OutputObject>;
};
}
//# sourceMappingURL=Base7683ForTestNative.d.ts.map