@atomiqlabs/chain-evm
Version:
EVM specific base implementation
686 lines (646 loc) • 19.2 kB
text/typescript
/* 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 "../typechain/common";
export type SpvVaultParametersStruct = {
btcRelayContract: AddressLike;
token0: AddressLike;
token1: AddressLike;
token0Multiplier: BigNumberish;
token1Multiplier: BigNumberish;
confirmations: BigNumberish;
};
export type SpvVaultParametersStructOutput = [
btcRelayContract: string,
token0: string,
token1: string,
token0Multiplier: bigint,
token1Multiplier: bigint,
confirmations: bigint
] & {
btcRelayContract: string;
token0: string;
token1: string;
token0Multiplier: bigint;
token1Multiplier: bigint;
confirmations: bigint;
};
export type StoredBlockHeaderStruct = {
data: [BytesLike, BytesLike, BytesLike, BytesLike, BytesLike];
};
export type StoredBlockHeaderStructOutput = [
data: [string, string, string, string, string]
] & { data: [string, string, string, string, string] };
export type BitcoinVaultTransactionDataStruct = {
recipient: AddressLike;
amount0: BigNumberish;
amount1: BigNumberish;
callerFee0: BigNumberish;
callerFee1: BigNumberish;
frontingFee0: BigNumberish;
frontingFee1: BigNumberish;
executionHandlerFeeAmount0: BigNumberish;
executionHash: BytesLike;
executionExpiry: BigNumberish;
};
export type BitcoinVaultTransactionDataStructOutput = [
recipient: string,
amount0: bigint,
amount1: bigint,
callerFee0: bigint,
callerFee1: bigint,
frontingFee0: bigint,
frontingFee1: bigint,
executionHandlerFeeAmount0: bigint,
executionHash: string,
executionExpiry: bigint
] & {
recipient: string;
amount0: bigint;
amount1: bigint;
callerFee0: bigint;
callerFee1: bigint;
frontingFee0: bigint;
frontingFee1: bigint;
executionHandlerFeeAmount0: bigint;
executionHash: string;
executionExpiry: bigint;
};
export type SpvVaultStateStruct = {
spvVaultParametersCommitment: BytesLike;
utxoTxHash: BytesLike;
utxoVout: BigNumberish;
openBlockheight: BigNumberish;
withdrawCount: BigNumberish;
depositCount: BigNumberish;
token0Amount: BigNumberish;
token1Amount: BigNumberish;
};
export type SpvVaultStateStructOutput = [
spvVaultParametersCommitment: string,
utxoTxHash: string,
utxoVout: bigint,
openBlockheight: bigint,
withdrawCount: bigint,
depositCount: bigint,
token0Amount: bigint,
token1Amount: bigint
] & {
spvVaultParametersCommitment: string;
utxoTxHash: string;
utxoVout: bigint;
openBlockheight: bigint;
withdrawCount: bigint;
depositCount: bigint;
token0Amount: bigint;
token1Amount: bigint;
};
export interface SpvVaultManagerInterface extends Interface {
getFunction(
nameOrSignature:
| "claim"
| "deposit"
| "front"
| "getFronterAddress"
| "getFronterById"
| "getVault"
| "open"
| "parseBitcoinTx"
): FunctionFragment;
getEvent(
nameOrSignatureOrTopic:
| "Claimed"
| "Closed"
| "Deposited"
| "Fronted"
| "Opened"
): EventFragment;
encodeFunctionData(
functionFragment: "claim",
values: [
AddressLike,
BigNumberish,
SpvVaultParametersStruct,
BytesLike,
StoredBlockHeaderStruct,
BytesLike[],
BigNumberish
]
): string;
encodeFunctionData(
functionFragment: "deposit",
values: [
AddressLike,
BigNumberish,
SpvVaultParametersStruct,
BigNumberish,
BigNumberish
]
): string;
encodeFunctionData(
functionFragment: "front",
values: [
AddressLike,
BigNumberish,
SpvVaultParametersStruct,
BigNumberish,
BytesLike,
BitcoinVaultTransactionDataStruct
]
): string;
encodeFunctionData(
functionFragment: "getFronterAddress",
values: [
AddressLike,
BigNumberish,
BytesLike,
BitcoinVaultTransactionDataStruct
]
): string;
encodeFunctionData(
functionFragment: "getFronterById",
values: [AddressLike, BigNumberish, BytesLike]
): string;
encodeFunctionData(
functionFragment: "getVault",
values: [AddressLike, BigNumberish]
): string;
encodeFunctionData(
functionFragment: "open",
values: [BigNumberish, SpvVaultParametersStruct, BytesLike, BigNumberish]
): string;
encodeFunctionData(
functionFragment: "parseBitcoinTx",
values: [BytesLike]
): string;
decodeFunctionResult(functionFragment: "claim", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "front", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "getFronterAddress",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "getFronterById",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "getVault", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "open", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "parseBitcoinTx",
data: BytesLike
): Result;
}
export namespace ClaimedEvent {
export type InputTuple = [
ownerAndVaultId: BytesLike,
recipient: AddressLike,
btcTxHash: BytesLike,
caller: AddressLike,
executionHash: BytesLike,
frontingAddress: AddressLike,
withdrawCount: BigNumberish,
amount0: BigNumberish,
amount1: BigNumberish
];
export type OutputTuple = [
ownerAndVaultId: string,
recipient: string,
btcTxHash: string,
caller: string,
executionHash: string,
frontingAddress: string,
withdrawCount: bigint,
amount0: bigint,
amount1: bigint
];
export interface OutputObject {
ownerAndVaultId: string;
recipient: string;
btcTxHash: string;
caller: string;
executionHash: string;
frontingAddress: string;
withdrawCount: bigint;
amount0: bigint;
amount1: bigint;
}
export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
export type Filter = TypedDeferredTopicFilter<Event>;
export type Log = TypedEventLog<Event>;
export type LogDescription = TypedLogDescription<Event>;
}
export namespace ClosedEvent {
export type InputTuple = [
owner: AddressLike,
vaultId: BigNumberish,
btcTxHash: BytesLike,
error: BytesLike
];
export type OutputTuple = [
owner: string,
vaultId: bigint,
btcTxHash: string,
error: string
];
export interface OutputObject {
owner: string;
vaultId: bigint;
btcTxHash: string;
error: string;
}
export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
export type Filter = TypedDeferredTopicFilter<Event>;
export type Log = TypedEventLog<Event>;
export type LogDescription = TypedLogDescription<Event>;
}
export namespace DepositedEvent {
export type InputTuple = [
ownerAndVaultId: BytesLike,
depositCount: BigNumberish,
amount0: BigNumberish,
amount1: BigNumberish
];
export type OutputTuple = [
ownerAndVaultId: string,
depositCount: bigint,
amount0: bigint,
amount1: bigint
];
export interface OutputObject {
ownerAndVaultId: string;
depositCount: bigint;
amount0: bigint;
amount1: bigint;
}
export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
export type Filter = TypedDeferredTopicFilter<Event>;
export type Log = TypedEventLog<Event>;
export type LogDescription = TypedLogDescription<Event>;
}
export namespace FrontedEvent {
export type InputTuple = [
ownerAndVaultId: BytesLike,
recipient: AddressLike,
btcTxHash: BytesLike,
caller: AddressLike,
executionHash: BytesLike,
amount0: BigNumberish,
amount1: BigNumberish
];
export type OutputTuple = [
ownerAndVaultId: string,
recipient: string,
btcTxHash: string,
caller: string,
executionHash: string,
amount0: bigint,
amount1: bigint
];
export interface OutputObject {
ownerAndVaultId: string;
recipient: string;
btcTxHash: string;
caller: string;
executionHash: string;
amount0: bigint;
amount1: bigint;
}
export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
export type Filter = TypedDeferredTopicFilter<Event>;
export type Log = TypedEventLog<Event>;
export type LogDescription = TypedLogDescription<Event>;
}
export namespace OpenedEvent {
export type InputTuple = [
owner: AddressLike,
vaultId: BigNumberish,
btcTxHash: BytesLike,
vout: BigNumberish,
params: SpvVaultParametersStruct
];
export type OutputTuple = [
owner: string,
vaultId: bigint,
btcTxHash: string,
vout: bigint,
params: SpvVaultParametersStructOutput
];
export interface OutputObject {
owner: string;
vaultId: bigint;
btcTxHash: string;
vout: bigint;
params: SpvVaultParametersStructOutput;
}
export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
export type Filter = TypedDeferredTopicFilter<Event>;
export type Log = TypedEventLog<Event>;
export type LogDescription = TypedLogDescription<Event>;
}
export interface SpvVaultManager extends BaseContract {
connect(runner?: ContractRunner | null): SpvVaultManager;
waitForDeployment(): Promise<this>;
interface: SpvVaultManagerInterface;
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>;
claim: TypedContractMethod<
[
owner: AddressLike,
vaultId: BigNumberish,
vaultParams: SpvVaultParametersStruct,
transaction: BytesLike,
blockheader: StoredBlockHeaderStruct,
merkleProof: BytesLike[],
position: BigNumberish
],
[void],
"nonpayable"
>;
deposit: TypedContractMethod<
[
owner: AddressLike,
vaultId: BigNumberish,
vaultParams: SpvVaultParametersStruct,
rawToken0: BigNumberish,
rawToken1: BigNumberish
],
[void],
"payable"
>;
front: TypedContractMethod<
[
owner: AddressLike,
vaultId: BigNumberish,
vaultParams: SpvVaultParametersStruct,
withdrawalSequence: BigNumberish,
btcTxHash: BytesLike,
data: BitcoinVaultTransactionDataStruct
],
[void],
"payable"
>;
getFronterAddress: TypedContractMethod<
[
owner: AddressLike,
vaultId: BigNumberish,
btcTxHash: BytesLike,
data: BitcoinVaultTransactionDataStruct
],
[string],
"view"
>;
getFronterById: TypedContractMethod<
[owner: AddressLike, vaultId: BigNumberish, frontingId: BytesLike],
[string],
"view"
>;
getVault: TypedContractMethod<
[owner: AddressLike, vaultId: BigNumberish],
[SpvVaultStateStructOutput],
"view"
>;
open: TypedContractMethod<
[
vaultId: BigNumberish,
vaultParams: SpvVaultParametersStruct,
utxoTxHash: BytesLike,
utxoVout: BigNumberish
],
[void],
"nonpayable"
>;
parseBitcoinTx: TypedContractMethod<
[transaction: BytesLike],
[BitcoinVaultTransactionDataStructOutput],
"view"
>;
getFunction<T extends ContractMethod = ContractMethod>(
key: string | FunctionFragment
): T;
getFunction(
nameOrSignature: "claim"
): TypedContractMethod<
[
owner: AddressLike,
vaultId: BigNumberish,
vaultParams: SpvVaultParametersStruct,
transaction: BytesLike,
blockheader: StoredBlockHeaderStruct,
merkleProof: BytesLike[],
position: BigNumberish
],
[void],
"nonpayable"
>;
getFunction(
nameOrSignature: "deposit"
): TypedContractMethod<
[
owner: AddressLike,
vaultId: BigNumberish,
vaultParams: SpvVaultParametersStruct,
rawToken0: BigNumberish,
rawToken1: BigNumberish
],
[void],
"payable"
>;
getFunction(
nameOrSignature: "front"
): TypedContractMethod<
[
owner: AddressLike,
vaultId: BigNumberish,
vaultParams: SpvVaultParametersStruct,
withdrawalSequence: BigNumberish,
btcTxHash: BytesLike,
data: BitcoinVaultTransactionDataStruct
],
[void],
"payable"
>;
getFunction(
nameOrSignature: "getFronterAddress"
): TypedContractMethod<
[
owner: AddressLike,
vaultId: BigNumberish,
btcTxHash: BytesLike,
data: BitcoinVaultTransactionDataStruct
],
[string],
"view"
>;
getFunction(
nameOrSignature: "getFronterById"
): TypedContractMethod<
[owner: AddressLike, vaultId: BigNumberish, frontingId: BytesLike],
[string],
"view"
>;
getFunction(
nameOrSignature: "getVault"
): TypedContractMethod<
[owner: AddressLike, vaultId: BigNumberish],
[SpvVaultStateStructOutput],
"view"
>;
getFunction(
nameOrSignature: "open"
): TypedContractMethod<
[
vaultId: BigNumberish,
vaultParams: SpvVaultParametersStruct,
utxoTxHash: BytesLike,
utxoVout: BigNumberish
],
[void],
"nonpayable"
>;
getFunction(
nameOrSignature: "parseBitcoinTx"
): TypedContractMethod<
[transaction: BytesLike],
[BitcoinVaultTransactionDataStructOutput],
"view"
>;
getEvent(
key: "Claimed"
): TypedContractEvent<
ClaimedEvent.InputTuple,
ClaimedEvent.OutputTuple,
ClaimedEvent.OutputObject
>;
getEvent(
key: "Closed"
): TypedContractEvent<
ClosedEvent.InputTuple,
ClosedEvent.OutputTuple,
ClosedEvent.OutputObject
>;
getEvent(
key: "Deposited"
): TypedContractEvent<
DepositedEvent.InputTuple,
DepositedEvent.OutputTuple,
DepositedEvent.OutputObject
>;
getEvent(
key: "Fronted"
): TypedContractEvent<
FrontedEvent.InputTuple,
FrontedEvent.OutputTuple,
FrontedEvent.OutputObject
>;
getEvent(
key: "Opened"
): TypedContractEvent<
OpenedEvent.InputTuple,
OpenedEvent.OutputTuple,
OpenedEvent.OutputObject
>;
filters: {
"Claimed(bytes32,address,bytes32,address,bytes32,address,uint32,uint64,uint64)": TypedContractEvent<
ClaimedEvent.InputTuple,
ClaimedEvent.OutputTuple,
ClaimedEvent.OutputObject
>;
Claimed: TypedContractEvent<
ClaimedEvent.InputTuple,
ClaimedEvent.OutputTuple,
ClaimedEvent.OutputObject
>;
"Closed(address,uint96,bytes32,bytes)": TypedContractEvent<
ClosedEvent.InputTuple,
ClosedEvent.OutputTuple,
ClosedEvent.OutputObject
>;
Closed: TypedContractEvent<
ClosedEvent.InputTuple,
ClosedEvent.OutputTuple,
ClosedEvent.OutputObject
>;
"Deposited(bytes32,uint32,uint64,uint64)": TypedContractEvent<
DepositedEvent.InputTuple,
DepositedEvent.OutputTuple,
DepositedEvent.OutputObject
>;
Deposited: TypedContractEvent<
DepositedEvent.InputTuple,
DepositedEvent.OutputTuple,
DepositedEvent.OutputObject
>;
"Fronted(bytes32,address,bytes32,address,bytes32,uint64,uint64)": TypedContractEvent<
FrontedEvent.InputTuple,
FrontedEvent.OutputTuple,
FrontedEvent.OutputObject
>;
Fronted: TypedContractEvent<
FrontedEvent.InputTuple,
FrontedEvent.OutputTuple,
FrontedEvent.OutputObject
>;
"Opened(address,uint96,bytes32,uint32,tuple)": TypedContractEvent<
OpenedEvent.InputTuple,
OpenedEvent.OutputTuple,
OpenedEvent.OutputObject
>;
Opened: TypedContractEvent<
OpenedEvent.InputTuple,
OpenedEvent.OutputTuple,
OpenedEvent.OutputObject
>;
};
}