slpjs
Version:
Simple Ledger Protocol (SLP) JavaScript Library
114 lines (113 loc) • 5.03 kB
TypeScript
/// <reference types="node" />
import { SlpAddressUtxoResult, Slp } from "..";
import BigNumber from "bignumber.js";
export interface InputSigData {
index: number;
pubKeyBuf: Buffer;
signatureBuf: Buffer;
}
export interface ScriptSigP2PK {
index: number;
signatureBuf: Buffer;
}
export interface ScriptSigP2PKH {
index: number;
pubKeyBuf: Buffer;
signatureBuf: Buffer;
}
export interface ScriptSigP2SH {
index: number;
lockingScriptBuf: Buffer;
unlockingScriptBufArray: (number | Buffer)[];
}
export interface MultisigRedeemData {
m: number;
address: string;
pubKeys: Buffer[];
lockingScript: Buffer;
}
export declare class TransactionHelpers {
slp: Slp;
constructor(slp: Slp);
simpleTokenSend({ tokenId, sendAmounts, inputUtxos, tokenReceiverAddresses, changeReceiverAddress, requiredNonTokenOutputs, extraFee }: {
tokenId: string;
sendAmounts: BigNumber | BigNumber[];
inputUtxos: SlpAddressUtxoResult[];
tokenReceiverAddresses: string | string[];
changeReceiverAddress: string;
requiredNonTokenOutputs?: Array<{
satoshis: number;
receiverAddress: string;
}>;
extraFee?: number;
}): string;
simpleBchSend({ sendAmounts, inputUtxos, bchReceiverAddresses, changeReceiverAddress }: {
sendAmounts: BigNumber | BigNumber[];
inputUtxos: SlpAddressUtxoResult[];
bchReceiverAddresses: string | string[];
changeReceiverAddress: string;
}): string;
simpleTokenGenesis({ tokenName, tokenTicker, tokenAmount, documentUri, documentHash, decimals, tokenReceiverAddress, batonReceiverAddress, bchChangeReceiverAddress, inputUtxos }: {
tokenName: string;
tokenTicker: string;
tokenAmount: BigNumber;
documentUri: string | null;
documentHash: Buffer | null;
decimals: number;
tokenReceiverAddress: string;
batonReceiverAddress: string | null;
bchChangeReceiverAddress: string;
inputUtxos: SlpAddressUtxoResult[];
}): string;
simpleNFT1ParentGenesis({ tokenName, tokenTicker, tokenAmount, documentUri, documentHash, tokenReceiverAddress, batonReceiverAddress, bchChangeReceiverAddress, inputUtxos, decimals }: {
tokenName: string;
tokenTicker: string;
tokenAmount: BigNumber;
documentUri: string | null;
documentHash: Buffer | null;
tokenReceiverAddress: string;
batonReceiverAddress: string | null;
bchChangeReceiverAddress: string;
inputUtxos: SlpAddressUtxoResult[];
decimals?: number;
}): string;
simpleNFT1ChildGenesis({ nft1GroupId, tokenName, tokenTicker, documentUri, documentHash, tokenReceiverAddress, bchChangeReceiverAddress, inputUtxos, allowBurnAnyAmount }: {
nft1GroupId: string;
tokenName: string;
tokenTicker: string;
documentUri: string | null;
documentHash: Buffer | null;
tokenReceiverAddress: string;
bchChangeReceiverAddress: string;
inputUtxos: SlpAddressUtxoResult[];
allowBurnAnyAmount?: boolean;
}): any;
simpleTokenMint({ tokenId, mintAmount, inputUtxos, tokenReceiverAddress, tokenReceiverSatoshis, batonReceiverAddress, changeReceiverAddress, extraFee, disableBchChangeOutput, batonReceiverSatoshis }: {
tokenId: string;
mintAmount: BigNumber;
inputUtxos: SlpAddressUtxoResult[];
tokenReceiverAddress: string;
batonReceiverAddress: string;
changeReceiverAddress: string;
extraFee?: number;
disableBchChangeOutput?: boolean;
tokenReceiverSatoshis?: BigNumber;
batonReceiverSatoshis?: BigNumber;
}): string;
simpleTokenBurn({ tokenId, burnAmount, inputUtxos, changeReceiverAddress }: {
tokenId: string;
burnAmount: BigNumber;
inputUtxos: SlpAddressUtxoResult[];
changeReceiverAddress: string;
}): string;
get_transaction_sig_filler(input_index: number, pubKeyBuf: Buffer): InputSigData;
get_transaction_sig_p2pkh(txHex: string, wif: string, input_index: number, input_satoshis: number, sigHashType?: number): InputSigData;
get_transaction_sig_p2sh(txHex: string, wif: string, input_index: number, input_satoshis: number, redeemScript: Buffer, scriptCode: Buffer, sigHashType?: number): InputSigData;
build_P2PKH_scriptSig(sigData: InputSigData): ScriptSigP2PKH;
build_P2SH_multisig_redeem_data(m: number, pubKeys: string[] | Buffer[]): MultisigRedeemData;
insert_input_values_for_EC_signers(txnHex: string, input_values: number[]): string;
build_P2SH_multisig_scriptSig(redeemData: MultisigRedeemData, input_index: number, sigs: InputSigData[]): ScriptSigP2SH;
addScriptSigs(unsignedTxnHex: string, scriptSigs: (ScriptSigP2PKH | ScriptSigP2SH | ScriptSigP2PK)[]): string;
setTxnLocktime(unsignedTxnHex: string, locktime: number): string;
enableInputsCLTV(unsignedTxnHex: string): string;
}