@atomiqlabs/base
Version:
Base classes and interfaces for atomiq protocol
48 lines (46 loc) • 2.13 kB
text/typescript
import {SwapData} from "../swaps/SwapData";
import {ChainEvents} from "../events/ChainEvents";
import {SwapContract} from "../swaps/SwapContract";
import {BtcRelay} from "../btcrelay/BtcRelay";
import {AbstractSigner, ChainInterface} from "./ChainInterface";
import {SpvVaultData} from "../spv_swap/SpvVaultData";
import {SpvVaultContract} from "../spv_swap/SpvVaultContract";
import {SpvWithdrawalTransactionData} from "../spv_swap/SpvWithdrawalTransactionData";
/**
* A comprehensive unified type struct for a given chain, contains all the type definitions of a given chain
*
* @category Chains
*/
export type ChainType<
ChainId extends string = string,
PreFetchData = any,
PreFetchVerification = any,
TXType = any,
SignedTXType = any,
Signer extends AbstractSigner = AbstractSigner,
NativeSigner = any,
T extends SwapData = SwapData,
C extends SwapContract<T, TXType, PreFetchData, PreFetchVerification, Signer, ChainId> = SwapContract<T, TXType, PreFetchData, PreFetchVerification, Signer, ChainId>,
I extends ChainInterface<TXType, SignedTXType, Signer, ChainId, NativeSigner> = ChainInterface<TXType, SignedTXType, Signer, ChainId, NativeSigner>,
E extends ChainEvents<T> = ChainEvents<T>,
B extends BtcRelay<any, TXType, any, Signer> = BtcRelay<any, TXType, any, Signer>,
SpvWithdrawalData extends SpvWithdrawalTransactionData = SpvWithdrawalTransactionData,
SpvData extends SpvVaultData<SpvWithdrawalData> = SpvVaultData<SpvWithdrawalData>,
SpvContract extends SpvVaultContract<TXType, Signer, ChainId, SpvWithdrawalData, SpvData> = SpvVaultContract<TXType, Signer, ChainId, SpvWithdrawalData, SpvData>
> = {
ChainId: ChainId,
PreFetchData: PreFetchData,
PreFetchVerification: PreFetchVerification,
TX: TXType,
SignedTXType: SignedTXType,
Signer: Signer,
ChainInterface: I,
Data: T,
Contract: C,
Events: E,
BtcRelay: B,
SpvVaultData: SpvData,
SpvVaultContract: SpvContract,
SpvVaultWithdrawalData: SpvWithdrawalData,
NativeSigner: NativeSigner
}