ICXOrderBook API
import {JsonRpcClient} from '@defichain/jellyfish-api-jsonrpc'
const client = new JsonRpcClient('http://foo:bar@localhost:8554')
// Using client.icxorderbook.
const something = await client.icxorderbook.method()
createOrder
Create and submits an ICX order creation transaction.
interface icxorderbook {
createOrder (order: ICXOrder, utxos: UTXO[] = []): Promise<ICXGenericResult>
}
interface ICXOrder {
tokenFrom?: string
chainFrom?: string
chainTo?: string
tokenTo?: string
ownerAddress?: string
receivePubkey?: string
amountFrom: BigNumber
orderPrice: BigNumber
expiry?: number
}
interface UTXO {
txid: string
vout: number
}
interface ICXGenericResult {
WARNING: string
txid: string
}
makeOffer
Create and submits a makeoffer transaction.
interface icxorderbook {
makeOffer (offer: ICXOffer, utxos: UTXO[] = []): Promise<ICXGenericResult>
}
interface ICXOffer {
orderTx: string
amount: BigNumber
ownerAddress: string
receivePubkey?: string
expiry?: number
}
interface UTXO {
txid: string
vout: number
}
interface ICXGenericResult {
WARNING: string
txid: string
}
closeOffer
Closes offer transaction.
interface icxorderbook {
closeOffer (offerTx: string, utxos: UTXO[] = []): Promise<ICXGenericResult>
}
interface UTXO {
txid: string
vout: number
}
interface ICXGenericResult {
WARNING: string
txid: string
}
submitDFCHTLC
Create and submit a DFC HTLC transaction
interface icxorderbook {
submitDFCHTLC (htlc: HTLC, utxos: UTXO[] = []): Promise<ICXGenericResult>
}
interface HTLC {
offerTx: string
amount: BigNumber
hash: string
timeout?: number
}
interface UTXO {
txid: string
vout: number
}
interface ICXGenericResult {
WARNING: string
txid: string
}
submitExtHTLC
Create and submit an external(EXT) HTLC transaction
interface icxorderbook {
submitExtHTLC (htlc: ExtHTLC, utxos: UTXO[] = []): Promise<ICXGenericResult>
}
interface ExtHTLC {
offerTx: string
amount: BigNumber
htlcScriptAddress: string
hash: string
ownerPubkey: string
timeout: number
}
interface UTXO {
txid: string
vout: number
}
interface ICXGenericResult {
WARNING: string
txid: string
}
claimDFCHTLC
Claims a DFC HTLC
interface icxorderbook {
claimDFCHTLC (DFCHTLCTxId: string, seed: string, utxos: UTXO[] = []): Promise<ICXGenericResult>
}
interface UTXO {
txid: string
vout: number
}
interface ICXGenericResult {
WARNING: string
txid: string
}
closeOrder
Closes ICX order
interface icxorderbook {
closeOrder (orderTx: string, utxos: UTXO[] = []): Promise<ICXGenericResult>
}
interface UTXO {
txid: string
vout: number
}
interface ICXGenericResult {
WARNING: string
txid: string
}
getOrder
Returns information about order or fillorder
interface icxorderbook {
getOrder (orderTx: string): Promise<Record<string, ICXOrderInfo | ICXOfferInfo>>
}
enum ICXOrderStatus {
OPEN = 'OPEN',
CLOSED = 'CLOSED',
FILLED = 'FILLED',
EXPIRED = 'EXPIRED'
}
enum ICXOrderType {
INTERNAL = 'INTERNAL',
EXTERNAL = 'EXTERNAL',
}
interface ICXOrderInfo {
status: ICXOrderStatus
type: ICXOrderType
tokenFrom: string
chainTo?: string
receivePubkey?: string
chainFrom?: string
tokenTo?: string
ownerAddress: string
amountFrom: BigNumber
amountToFill: BigNumber
orderPrice: BigNumber
amountToFillInToAsset: BigNumber
height: BigNumber
expireHeight: BigNumber
closeHeight?: BigNumber
closeTx?: string
expired?: boolean
}
interface ICXOfferInfo {
orderTx: string
status: ICXOrderStatus
amount: BigNumber
amountInFromAsset: BigNumber
ownerAddress: string
receivePubkey?: string
takerFee: BigNumber
expireHeight: BigNumber
}
listOrders
Returns information about orders or fillorders based on ICXListOrderOptions passed
interface icxorderbook {
listOrders (options: { orderTx: string } & ICXListOrderOptions): Promise<Record<string, ICXOfferInfo>>
listOrders (options?: ICXListOrderOptions): Promise<Record<string, ICXOrderInfo | ICXOfferInfo>>
listOrders (options: ICXListOrderOptions = {}): Promise<Record<string, ICXOrderInfo | ICXOfferInfo>>
}
enum ICXOrderStatus {
OPEN = 'OPEN',
CLOSED = 'CLOSED',
FILLED = 'FILLED',
EXPIRED = 'EXPIRED'
}
enum ICXOrderType {
INTERNAL = 'INTERNAL',
EXTERNAL = 'EXTERNAL',
}
interface ICXListOrderOptions {
token?: string
chain?: string
orderTx?: string
limit?: number
closed?: boolean
}
interface ICXOrderInfo {
status: ICXOrderStatus
type: ICXOrderType
tokenFrom: string
chainTo?: string
receivePubkey?: string
chainFrom?: string
tokenTo?: string
ownerAddress: string
amountFrom: BigNumber
amountToFill: BigNumber
orderPrice: BigNumber
amountToFillInToAsset: BigNumber
height: BigNumber
expireHeight: BigNumber
closeHeight?: BigNumber
closeTx?: string
expired?: boolean
}
interface ICXOfferInfo {
orderTx: string
status: ICXOrderStatus
amount: BigNumber
amountInFromAsset: BigNumber
ownerAddress: string
receivePubkey?: string
takerFee: BigNumber
expireHeight: BigNumber
}
listHTLCs
Returns information about HTLCs based on ICXListHTLCOptions passed
interface icxorderbook {
listHTLCs (options: ICXListHTLCOptions): Promise<Record<string, ICXDFCHTLCInfo| ICXEXTHTLCInfo| ICXClaimDFCHTLCInfo>>
}
enum ICXHTLCType {
CLAIM_DFC = 'CLAIM DFC',
DFC = 'DFC',
EXTERNAL = 'EXTERNAL'
}
enum ICXHTLCStatus {
OPEN = 'OPEN',
CLAIMED = 'CLAIMED',
REFUNDED = 'REFUNDED',
EXPIRED = 'EXPIRED',
CLOSED = 'CLOSED'
}
interface ICXListHTLCOptions {
offerTx: string
limit?: number
closed?: boolean
}
interface ICXClaimDFCHTLCInfo {
type: ICXHTLCType
dfchtlcTx: string
seed: string
height: BigNumber
}
interface ICXDFCHTLCInfo {
type: ICXHTLCType
status: ICXHTLCStatus
offerTx: string
amount: BigNumber
amountInEXTAsset: BigNumber
hash: string
timeout: BigNumber
height: BigNumber
refundHeight: BigNumber
}
interface ICXEXTHTLCInfo {
type: ICXHTLCType
status: ICXHTLCStatus
offerTx: string
amount: BigNumber
amountInDFCAsset: BigNumber
hash: string
htlcScriptAddress: string
ownerPubkey: string
timeout: BigNumber
height: BigNumber
}