UNPKG

slpjs

Version:

Simple Ledger Protocol (SLP) JavaScript Library

190 lines (189 loc) 7.42 kB
/// <reference path="lib/vendors.d.ts" /> /// <reference types="node" /> export * from "./lib/slp"; export * from "./lib/utils"; export * from "./lib/crypto"; export * from "./lib/primatives"; export * from "./lib/bitdbnetwork"; export * from "./lib/localvalidator"; export * from "./lib/trustedvalidator"; export * from "./lib/bitboxnetwork"; export * from "./lib/bchdnetwork"; export * from "./lib/transactionhelpers"; export * from "./lib/bchdtrustedvalidator"; import * as bitcore from "bitcore-lib-cash"; export { bitcore }; export interface logger { log: (s: string) => any; } export declare enum SlpTransactionType { "GENESIS" = "GENESIS", "MINT" = "MINT", "SEND" = "SEND" } export declare enum SlpVersionType { "TokenVersionType1" = 1, "TokenVersionType1_NFT_Child" = 65, "TokenVersionType1_NFT_Parent" = 129 } export declare enum SlpUtxoJudgement { "UNKNOWN" = "UNKNOWN", "INVALID_BATON_DAG" = "INVALID_BATON_DAG", "INVALID_TOKEN_DAG" = "INVALID_TOKEN_DAG", "NOT_SLP" = "NOT_SLP", "SLP_TOKEN" = "SLP_TOKEN", "SLP_BATON" = "SLP_BATON", "UNSUPPORTED_TYPE" = "UNSUPPORTED_TYPE" } export interface SlpTransactionDetails { transactionType: SlpTransactionType; tokenIdHex: string; versionType: SlpVersionType; timestamp?: string; symbol: string; name: string; documentUri: string; documentSha256: Buffer | null; decimals: number; containsBaton: boolean; batonVout: number | null; genesisOrMintQuantity: BigNumber | null; sendOutputs?: BigNumber[] | null; } export interface SlpTxnDetailsResult extends TxnDetailsResult { tokenInfo: SlpTransactionDetails; tokenIsValid: boolean; tokenNftParentId: string; } export interface SlpBalancesResult { satoshis_available_bch: number; satoshis_in_slp_baton: number; satoshis_in_slp_token: number; satoshis_in_invalid_token_dag: number; satoshis_in_invalid_baton_dag: number; satoshis_in_unknown_token_type: number; slpTokenBalances: { [key: string]: BigNumber; }; nftParentChildBalances: { [key: string]: { [key: string]: BigNumber; }; }; slpTokenUtxos: { [key: string]: SlpAddressUtxoResult[]; }; slpBatonUtxos: { [key: string]: SlpAddressUtxoResult[]; }; nonSlpUtxos: SlpAddressUtxoResult[]; invalidTokenUtxos: SlpAddressUtxoResult[]; invalidBatonUtxos: SlpAddressUtxoResult[]; unknownTokenTypeUtxos: SlpAddressUtxoResult[]; } export declare class SlpAddressUtxoResult { txid: string; vout: number; scriptPubKey: string; amount: number; satoshis: number; value?: number; height: number; confirmations: number; legacyAddress: string; cashAddress: string; wif: string; tx?: TxnDetailsDeep; txBuf?: Buffer; slpTransactionDetails: SlpTransactionDetails; slpUtxoJudgement: SlpUtxoJudgement; slpUtxoJudgementAmount: BigNumber; nftParentId?: string; } export interface utxo { txid: string; vout: number; satoshis: BigNumber; wif?: string; slpTransactionDetails: SlpTransactionDetails; slpUtxoJudgement: SlpUtxoJudgement; slpUtxoJudgementAmount: BigNumber; } export interface ScriptPubKey { hex: string; asm: string; addresses: string[]; type: string; } export interface Vout { value: Number; n: number; scriptPubKey: ScriptPubKey; } export interface Vin { txid: string; sequence: number; n: number; scriptSig: ScriptSig; value: number; legacyAddress: string; cashAddress: string; } export interface ScriptSig { hex: string; asm: string; } export interface TxnDetailsDeep { txid: string; version: number; locktime: number; vin: Vin[]; vout: Vout[]; blockhash: string; blockheight: number; confirmations: number; time: number; blocktime: number; isCoinBase: boolean; valueOut: number; size: number; raw?: string | Buffer; } import BigNumber from "bignumber.js"; import { AddressDetailsResult, AddressUtxoResult, TxnDetailsResult } from "bitcoin-com-rest"; import { Slp, SlpValidator } from "./lib/slp"; import { TransactionHelpers } from "./lib/transactionhelpers"; export interface INetwork extends SlpValidator { slp: Slp; validator?: SlpValidator; txnHelpers: TransactionHelpers; logger: logger; getNftParentId(tokenIdHex: string): Promise<string>; getTokenInformation(txid: string, decimalConversion?: boolean): Promise<SlpTransactionDetails>; getTransactionDetails(txid: string, decimalConversion?: boolean): Promise<any>; getUtxos(address: string): Promise<AddressUtxoResult>; getAllSlpBalancesAndUtxos(address: string | string[]): Promise<SlpBalancesResult | Array<{ address: string; result: SlpBalancesResult; }>>; simpleTokenSend(tokenId: string, sendAmounts: BigNumber | BigNumber[], inputUtxos: SlpAddressUtxoResult[], tokenReceiverAddresses: string | string[], changeReceiverAddress: string, requiredNonTokenOutputs?: Array<{ satoshis: number; receiverAddress: string; }>): Promise<string>; simpleBchSend(sendAmounts: BigNumber | BigNumber[], inputUtxos: SlpAddressUtxoResult[], bchReceiverAddresses: string | string[], changeReceiverAddress: string): Promise<string>; simpleTokenGenesis(tokenName: string, tokenTicker: string, tokenAmount: BigNumber, documentUri: string | null, documentHash: Buffer | null, decimals: number, tokenReceiverAddress: string, batonReceiverAddress: string, bchChangeReceiverAddress: string, inputUtxos: SlpAddressUtxoResult[]): Promise<string>; simpleNFT1ParentGenesis(tokenName: string, tokenTicker: string, tokenAmount: BigNumber, documentUri: string | null, documentHash: Buffer | null, tokenReceiverAddress: string, batonReceiverAddress: string, bchChangeReceiverAddress: string, inputUtxos: SlpAddressUtxoResult[], decimals?: number): Promise<string>; simpleNFT1ChildGenesis(nft1GroupId: string, tokenName: string, tokenTicker: string, documentUri: string | null, documentHash: Buffer | null, tokenReceiverAddress: string, bchChangeReceiverAddress: string, inputUtxos: SlpAddressUtxoResult[], allowBurnAnyAmount?: boolean): Promise<string>; simpleTokenMint(tokenId: string, mintAmount: BigNumber, inputUtxos: SlpAddressUtxoResult[], tokenReceiverAddress: string, batonReceiverAddress: string, changeReceiverAddress: string): Promise<string>; simpleTokenBurn(tokenId: string, burnAmount: BigNumber, inputUtxos: SlpAddressUtxoResult[], changeReceiverAddress: string): Promise<string>; getUtxoWithRetry(address: string, retries?: number): Promise<AddressUtxoResult>; getUtxoWithTxDetails(address: string): Promise<SlpAddressUtxoResult[]>; getTransactionDetailsWithRetry(txids: string[], retries?: number): Promise<TxnDetailsResult[] | undefined>; getAddressDetailsWithRetry(address: string, retries?: number): Promise<AddressDetailsResult | undefined>; sendTx(hex: string): Promise<string>; monitorForPayment(paymentAddress: string, fee: number, onPaymentCB: Function): Promise<void>; getRawTransactions(txids: string[]): Promise<string[]>; processUtxosForSlp(utxos: SlpAddressUtxoResult[]): Promise<SlpBalancesResult>; isValidSlpTxid(txid: string): Promise<boolean>; validateSlpTransactions(txids: string[]): Promise<string[]>; }