sbtc-bridge-lib
Version:
Library for sBTC Bridge web client and API apps
295 lines (294 loc) • 6.91 kB
TypeScript
export type SbtcMiniContractsI = {
[key: string]: string;
};
export type SbtcMiniWalletI = {
cycle: number;
version: string;
hashbytes: string;
address: string;
pubkey: string;
};
export type SbtcMiniContractDataI = {
coordinator?: {
addr: {
value: string;
};
key: string;
};
currentPegWallet: SbtcMiniWalletI;
nextPegWallet: SbtcMiniWalletI;
protocolOwner: {
stacksAddress: string;
value: boolean;
};
contractOwner: string;
currentWindow?: number;
currentCyclePool?: any;
tokenUri?: string;
threshold?: number;
totalSupply?: number;
decimals?: number;
name?: string;
symbol?: string;
burnHeight?: number;
};
export type SbtcClarityEvent = {
_id: string;
contractId: string;
eventIndex: number;
txid: string;
bitcoinTxid: {
notification: {
type: string;
value: string;
};
payload: {
type: string;
value: string;
};
};
payloadData: PayloadType;
};
export type PayloadType = {
sbtcWallet?: string;
txIndex?: number;
burnBlockHeight?: number;
burnBlockTime?: number;
spendingAddress?: string;
opcode?: string;
prinType?: number;
stacksAddress?: string;
lengthOfCname?: number;
cname?: string;
lengthOfMemo?: number;
memo?: string;
revealFee?: number;
amountSats: number;
signature?: string;
dustAmount?: number;
eventType?: string;
};
export type SbtcContractDataType = {
coordinator?: {
addr: {
value: string;
};
key: string;
};
contractId: string;
contractOwner: string;
sbtcWalletAddress: string;
sbtcWalletPublicKey: string;
numKeys?: number;
numParties?: number;
tradingHalted?: boolean;
tokenUri?: string;
threshold?: number;
totalSupply?: number;
decimals?: number;
name?: string;
burnHeight?: number;
};
export type AddressValidationI = {
isvalid: boolean;
address: string;
scriptPubKey: string;
isscript: boolean;
iswitness: boolean;
witness_version: number;
witness_program: string;
};
export type SbtcBalanceType = {
cardinal?: string;
ordinal?: string;
address: string;
balance: number;
};
export type BridgeTransactionType = {
_id?: string;
eventId?: string;
network: string;
originator: string;
uiPayload: DepositPayloadUIType | WithdrawPayloadUIType;
status: number;
created: number;
updated: number;
tries?: number;
mode: string;
requestType: string;
btcTxid?: string;
commitTxScript?: CommitmentScriptDataType;
vout0?: VoutI;
vout?: VoutI;
};
export type RevealOrReclaim = {
btcTxid?: string;
signedPsbtHex?: string;
};
export type CommitmentScriptDataType = {
address?: string;
script: string | Uint8Array | undefined;
paymentType: string;
redeemScript?: string | Uint8Array;
witnessScript?: string | Uint8Array;
wsh?: string;
leaves?: any;
tapInternalKey?: string | Uint8Array;
tapLeafScript?: any;
tapMerkleRoot?: string | Uint8Array;
tweakedPubkey?: string | Uint8Array;
};
export type VoutI = {
scriptpubkey: string;
scriptpubkey_asm: string;
scriptpubkey_type: string;
scriptpubkey_address: string;
value: number;
};
export type PegInData = {
requestData?: BridgeTransactionType;
confirmations?: number;
burnHeight?: number;
stacksAddress?: string;
sbtcWalletAddress: string;
amount: number;
revealFee: number;
};
export type CommitKeysI = {
fromBtcAddress: string;
sbtcWalletAddress: string;
revealPub: string;
reclaimPub: string;
stacksAddress: string;
};
export type AddressObject = {
stxAddress: string;
cardinal: string;
ordinal: string;
sBTCBalance: number;
stxBalance: number;
stacksTokenInfo?: AddressHiroObject;
bnsNameInfo?: any;
cardinalInfo?: AddressMempoolObject;
ordinalInfo?: AddressMempoolObject;
btcPubkeySegwit0?: string;
btcPubkeySegwit1?: string;
};
export type AddressMempoolObject = {
address: string;
chain_stats: {
funded_txo_count: number;
funded_txo_sum: number;
spent_txo_count: number;
spent_txo_sum: number;
tx_count: number;
};
mempool_stats: {
funded_txo_count: number;
funded_txo_sum: number;
spent_txo_count: number;
spent_txo_sum: number;
tx_count: number;
};
};
export type AddressHiroObject = {
stx: {
balance: number;
total_sent: number;
total_received: number;
lock_tx_id: string;
locked: number;
lock_height: number;
burnchain_lock_height: number;
burnchain_unlock_height: number;
};
fungible_tokens: any;
non_fungible_tokens: any;
};
export type Message = {
script: Uint8Array;
signature?: Uint8Array | string;
};
export type UTXO = {
txid: string;
vout: number;
fullout?: {
scriptpubkey: string;
scriptpubkey_address: string;
scriptpubkey_asm: string;
scriptpubkey_type: string;
value: number;
};
tx: any;
status: {
confirmed: boolean;
block_height?: number;
block_hash?: string;
block_time?: number;
};
value: number;
};
export type SbtcAlphaEvent = {
contractId: string;
eventIndex: string;
txid: string;
bitcoinTxid: string;
payloadData: PayloadType;
};
export type KeySet = {
deposits: {
revealPubKey: string;
reclaimPubKey: string;
oraclePubKey: string;
};
};
export type StxSignature = {
signature: string;
publicKey: string;
message: string;
};
export type WrappedPSBT = {
depositId: string;
txtype: string;
broadcastResult?: any;
signedTransaction?: string;
signedPsbt?: string;
stxSignature?: StxSignature;
};
export type ExchangeRate = {
_id: string;
currency: string;
fifteen: number;
last: number;
buy: number;
sell: number;
symbol: string;
name: string;
};
export type AuthorisationDataType = {
signature: string;
publicKey: string;
stxAddress: string;
amountSats: number;
};
export interface PayloadUIType {
sbtcWalletPublicKey: string;
reclaimPublicKey: string;
paymentPublicKey: string;
}
export interface DepositPayloadUIType extends PayloadUIType {
bitcoinAddress: string;
principal: string;
amountSats: number;
}
export interface WithdrawPayloadUIType extends DepositPayloadUIType {
signature?: string | undefined;
}
export type TxMinedParameters = {
proofElements: Array<any>;
height: number;
txIndex: number;
headerHex: string;
txIdR: string;
treeDepth: number;
};