IEscrowSelfInitSwap<T, D, S>
Defined in: atomiq-sdk/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts:34
Base class for escrow-based swaps (i.e. swaps utilizing PrTLC and HTLC primitives) where the user needs to initiate the escrow on the smart chain side
Extends
IEscrowSwap<T,D,S>
Extended by
Type Parameters
| Type Parameter | Default type |
|---|---|
T extends ChainType | ChainType |
D extends IEscrowSelfInitSwapDefinition<T, IEscrowSwapWrapper<T, D>, IEscrowSelfInitSwap<T, D, S>> | IEscrowSwapDefinition<T, IEscrowSwapWrapper<T, any>, IEscrowSelfInitSwap<T, any, any>> |
S extends number | number |
Constructors
Constructor
protected new IEscrowSelfInitSwap<T, D, S>(wrapper, obj): IEscrowSelfInitSwap<T, D, S>;
Defined in: atomiq-sdk/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts:52
Parameters
| Parameter | Type |
|---|---|
wrapper | D["Wrapper"] |
obj | any |
Returns
IEscrowSelfInitSwap<T, D, S>
Overrides
Constructor
protected new IEscrowSelfInitSwap<T, D, S>(wrapper, swapInit): IEscrowSelfInitSwap<T, D, S>;
Defined in: atomiq-sdk/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts:53
Parameters
| Parameter | Type |
|---|---|
wrapper | D["Wrapper"] |
swapInit | IEscrowSelfInitSwapInit<T["Data"]> |
Returns
IEscrowSelfInitSwap<T, D, S>
Overrides
Properties
chainIdentifier
readonly chainIdentifier: T["ChainId"];
Defined in: atomiq-sdk/src/swaps/ISwap.ts:168
Smart chain identifier string corresponding to this swap
Inherited from
createdAt
createdAt: number;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:176
A UNIX milliseconds timestamps of when this swap was created
Inherited from
events
readonly events: EventEmitter<{
swapState: [D["Swap"]];
}>;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:160
Event emitter emitting "swapState" event when swap's state changes
Inherited from
exactIn
readonly exactIn: boolean;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:172
Whether a swap is an exact input swap
Inherited from
url?
readonly optional url: string;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:164
URL of the intermediary (LP) used for this swap, already has the swap service specific path appended
Inherited from
TYPE
abstract protected readonly TYPE: SwapType;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:62
Swap type
Inherited from
Methods
_verifyQuoteDefinitelyExpired()
_verifyQuoteDefinitelyExpired(): Promise<boolean>;
Defined in: atomiq-sdk/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts:178
Checks if the swap's quote is expired for good (i.e. the swap strictly cannot be committed on-chain anymore)
Returns
Promise<boolean>
Overrides
IEscrowSwap._verifyQuoteDefinitelyExpired
_verifyQuoteValid()
_verifyQuoteValid(): Promise<boolean>;
Defined in: atomiq-sdk/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts:189
Checks if the swap's quote is still valid
Returns
Promise<boolean>
Overrides
IEscrowSwap._verifyQuoteValid
commit()
abstract commit(
_signer,
abortSignal?,
skipChecks?,
onBeforeTxSent?): Promise<string>;
Defined in: atomiq-sdk/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts:161
Initiates (commits) the escrow on the smart chain side
Parameters
| Parameter | Type | Description |
|---|---|---|
_signer | T["Signer"] | T["NativeSigner"] | Signer to sign the transactions with, must be the same as used in the initialization |
abortSignal? | AbortSignal | Abort signal |
skipChecks? | boolean | Skip checks like making sure init signature is still valid and swap wasn't commited yet (this is handled on swap creation, if you commit right after quoting, you can use skipChecks=true) |
onBeforeTxSent? | (txId) => void | Callback called before the transactions are broadcasted |
Returns
Promise<string>
execute()
abstract execute(...args): Promise<boolean>;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:279
Executes the swap with the provided wallet, the exact arguments for this functions differ for various swap
types. Check the execute() function signature in the respective swap class to see the required arguments.
Parameters
| Parameter | Type | Description |
|---|---|---|
...args | any[] | Execution arguments, usually contains a source wallet object, callbacks and options, for exact syntax check the respective swap class. |
Returns
Promise<boolean>
Whether a swap was successfully executed or not, if it wasn't the user can refund or claim manually
Inherited from
getClaimHash()
getClaimHash(): string;
Defined in: atomiq-sdk/src/swaps/escrow_swaps/IEscrowSwap.ts:130
Returns the claim data hash specifying the claim path of the escrow - i.e. hash passed to the claim handler
Returns
string
Inherited from
getDirection()
getDirection(): SwapDirection;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:560
Returns the direction of the swap
Returns
Inherited from
getEscrowClaimTxId()
getEscrowClaimTxId(): string;
Defined in: atomiq-sdk/src/swaps/escrow_swaps/IEscrowSwap.ts:151
Returns the smart chain transaction ID of the tx that claimed (settled) the escrow
Returns
string
Inherited from
IEscrowSwap.getEscrowClaimTxId
getEscrowHash()
getEscrowHash(): string;
Defined in: atomiq-sdk/src/swaps/escrow_swaps/IEscrowSwap.ts:123
Returns the escrow hash - i.e. hash of the escrow data
Returns
string
Inherited from
getEscrowInitTxId()
getEscrowInitTxId(): string;
Defined in: atomiq-sdk/src/swaps/escrow_swaps/IEscrowSwap.ts:144
Returns the smart chain transaction ID of the tx that initiated the escrow
Returns
string
Inherited from
getEscrowRefundTxId()
getEscrowRefundTxId(): string;
Defined in: atomiq-sdk/src/swaps/escrow_swaps/IEscrowSwap.ts:158
Returns the smart chain transaction ID of the tx that refunded the escrow
Returns
string
Inherited from
IEscrowSwap.getEscrowRefundTxId
getExecutionAction()
abstract getExecutionAction(options?): Promise<SwapExecutionAction>;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:586
Returns a current state-dependent action for the user to execute, or undefined if there is no more action
required for this swap - this means that the swap is probably finished (either expired, failed or settled).
Parameters
| Parameter | Type | Description |
|---|---|---|
options? | any | Optional options argument for the additional action context (i.e. passing bitcoin wallet info to get funded PSBTs or passing the externally-generated swap secret), see the actual type in the respective swap classes |
Returns
Promise<SwapExecutionAction>
Inherited from
IEscrowSwap.getExecutionAction
getExecutionStatus()
abstract getExecutionStatus(options?): Promise<{
currentAction: SwapExecutionAction;
stateInfo: SwapStateInfo<S>;
steps: SwapExecutionStep[];
}>;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:605
Returns the current action and the full execution steps for a given swap. Prefer this to calling getExecutionSteps and getExecutionAction separately - if called sequentially they might return the respective steps/actions in different states if you hit the state transition boundary.
Parameters
| Parameter | Type | Description |
|---|---|---|
options? | any | Optional options argument for the additional execution status context, see the actual type in the respective swap classes |
Returns
Promise<{
currentAction: SwapExecutionAction;
stateInfo: SwapStateInfo<S>;
steps: SwapExecutionStep[];
}>
Inherited from
IEscrowSwap.getExecutionStatus
getExecutionSteps()
abstract getExecutionSteps(options?): Promise<SwapExecutionStep[]>;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:595
Returns a list of execution steps the user has to go through for a given swap, to see the possible execution steps check out SwapExecutionStep.
Parameters
| Parameter | Type | Description |
|---|---|---|
options? | any | Optional options argument for the additional steps context (i.e. automatic settlement timeout), see the actual type in the respective swap classes |
Returns
Promise<SwapExecutionStep[]>
Inherited from
getFee()
abstract getFee(): Fee;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:664
Returns total fee for the swap, the fee is represented in source currency & destination currency, but is paid only once
Returns
Inherited from
getFeeBreakdown()
abstract getFeeBreakdown(): FeeBreakdown<T["ChainId"]>;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:669
Returns the breakdown of all the fees paid
Returns
FeeBreakdown<T["ChainId"]>
Inherited from
getId()
getId(): string;
Defined in: atomiq-sdk/src/swaps/escrow_swaps/IEscrowSwap.ts:137
Returns the ID of the swap, as used in the storage
Returns
string
Inherited from
getInput()
abstract getInput(): TokenAmount;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:648
Returns input amount of the swap, user needs to pay this much
Returns
Inherited from
getInputAddress()
abstract getInputAddress(): string;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:475
Returns source address of the swap
Returns
string
Inherited from
getInputToken()
abstract getInputToken(): Token<T["ChainId"]>;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:653
Returns the input token of the swap
Returns
Token<T["ChainId"]>
Inherited from
getInputTxId()
abstract getInputTxId(): string;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:485
Returns swap input transaction ID on the source chain
Returns
string
Inherited from
getInputWithoutFee()
abstract getInputWithoutFee(): TokenAmount;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:658
Returns input amount of the swap without the fees (swap fee, network fee)
Returns
Inherited from
IEscrowSwap.getInputWithoutFee
getOutput()
abstract getOutput(): TokenAmount;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:638
Returns output amount of the swap, user receives this much
Returns
Inherited from
getOutputAddress()
abstract getOutputAddress(): string;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:480
Returns destination address of the swap
Returns
string
Inherited from
getOutputToken()
abstract getOutputToken(): Token<T["ChainId"]>;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:643
Returns the output token of the swap
Returns
Token<T["ChainId"]>
Inherited from
getOutputTxId()
abstract getOutputTxId(): string;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:490
Returns swap output transaction ID on the destination chain
Returns
string
Inherited from
getPriceInfo()
getPriceInfo(): object;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:388
Returns pricing info about the swap
Returns
object
| Name | Type | Defined in |
|---|---|---|
difference | PercentagePPM | atomiq-sdk/src/swaps/ISwap.ts:391 |
marketPrice? | number | atomiq-sdk/src/swaps/ISwap.ts:389 |
swapPrice | number | atomiq-sdk/src/swaps/ISwap.ts:390 |
Inherited from
getQuoteExpiry()
getQuoteExpiry(): number;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:546
Returns quote expiry in UNIX millis
Returns
number
Inherited from
getSmartChainNetworkFee()
getSmartChainNetworkFee(): Promise<TokenAmount<SCToken<T["ChainId"]>, true>>;
Defined in: atomiq-sdk/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts:115
Returns the transaction fee paid on the smart chain side to initiate the escrow
Returns
Promise<TokenAmount<SCToken<T["ChainId"]>, true>>
getState()
getState(): S;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:567
Returns the current state of the swap
Returns
S
Inherited from
getStateInfo()
getStateInfo(): SwapStateInfo<S>;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:574
Returns the current state of the swap along with the human-readable description of the state
Returns
Inherited from
getType()
getType(): SwapType;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:553
Returns the type of the swap
Returns
Inherited from
hasEnoughForTxFees()
abstract hasEnoughForTxFees(): Promise<{
balance: TokenAmount<SCToken<T["ChainId"]>, true>;
enoughBalance: boolean;
required: TokenAmount<SCToken<T["ChainId"]>, true>;
}>;
Defined in: atomiq-sdk/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts:132
Checks if the initiator/sender has enough balance on the smart chain side to cover the transaction fee for processing the swap
Returns
Promise<{
balance: TokenAmount<SCToken<T["ChainId"]>, true>;
enoughBalance: boolean;
required: TokenAmount<SCToken<T["ChainId"]>, true>;
}>
hasValidPrice()
hasValidPrice(): boolean;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:380
Checks if the pricing for the swap is valid, according to max allowed price difference set in the ISwapPrice
Returns
boolean
Inherited from
isFailed()
abstract isFailed(): boolean;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:526
Returns whether the swap failed (e.g. was refunded)
Returns
boolean
Inherited from
isFinished()
abstract isFinished(): boolean;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:505
Returns whether the swap is finished and in its terminal state (this can mean successful, refunded or failed)
Returns
boolean
Inherited from
isInitiated()
isInitiated(): boolean;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:539
Whether a swap was initialized, a swap is considered initialized on first interaction with it, i.e. calling commit() on a Smart chain -> Bitcoin swaps, calling waitForPayment() or similar on the other direction. Not initiated swaps are not saved to the persistent storage by default (see SwapperOptions.saveUninitializedSwaps)
Returns
boolean
Inherited from
isInProgress()
abstract isInProgress(): boolean;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:531
Returns whether the swap is currently being processed
Returns
boolean
Inherited from
isQuoteExpired()
abstract isQuoteExpired(): boolean;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:510
Checks whether the swap's quote has definitely expired and cannot be committed anymore, we can remove such swap
Returns
boolean
Inherited from
isQuoteSoftExpired()
abstract isQuoteSoftExpired(): boolean;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:516
Checks whether the swap's quote is soft expired (this means there is not enough time buffer for it to commit, but it still can happen)
Returns
boolean
Inherited from
IEscrowSwap.isQuoteSoftExpired
isSuccessful()
abstract isSuccessful(): boolean;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:521
Returns whether the swap finished successful
Returns
boolean
Inherited from
refreshPriceData()
refreshPriceData(): Promise<void>;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:336
Re-fetches & revalidates the price data based on the current market prices
Returns
Promise<void>
Inherited from
requiresAction()
abstract requiresAction(): boolean;
Defined in: atomiq-sdk/src/swaps/ISwap.ts:500
Checks whether there is some action required from the user for this swap - can mean either refundable or claimable
Returns
boolean
Inherited from
serialize()
serialize(): any;
Defined in: atomiq-sdk/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts:208
Serializes the swap to a JSON stringifiable representation (i.e. no bigints, buffers etc.)
Returns
any
Overrides
txsCommit()
abstract txsCommit(skipChecks?): Promise<T["TX"][]>;
Defined in: atomiq-sdk/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts:150
Returns transactions for initiating (committing) the escrow on the smart chain side. After sending the transactions manually be sure to call the waitTillCommited function to wait till the initiation transaction is observed, processed by the SDK and state of the swap properly updated.
Parameters
| Parameter | Type | Description |
|---|---|---|
skipChecks? | boolean | Skip checks like making sure init signature is still valid and swap wasn't commited yet (this is handled on swap creation, if you commit right after quoting, you can use skipChecks=true) |
Returns
Promise<T["TX"][]>
waitTillCommited()
abstract waitTillCommited(abortSignal?): Promise<void>;
Defined in: atomiq-sdk/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts:170
Waits till a swap is initiated (committed) on-chain, should be called after sending the commit transactions (txsCommit) manually to wait till the SDK processes the escrow initialization and updates the swap state accordingly
Parameters
| Parameter | Type | Description |
|---|---|---|
abortSignal? | AbortSignal | AbortSignal |
Returns
Promise<void>