bitmask-core
Version:
Core functionality for the BitMask wallet
73 lines (59 loc) • 1.85 kB
text/typescript
// BP
import * as BMC from "./bitmask_core";
import {FundVaultDetails, TransactionDataDetails, WalletTransaction} from "./bitcoin";
export const transferBtc = async (
nostrHexSk: string,
address: string,
sats: bigint,
feeRate: number,
secrets: string[],
): Promise<TransactionData> => JSON.parse(await BMC.transfer_sats(nostrHexSk,address, sats, feeRate, secrets));
export const fundRgbVault = async (
nostrHexSk: string,
feeRate: number,
secrets: string[],
broadcast: boolean,
fundValue?: bigint | null,
onetimeFee?: boolean | null,
): Promise<FundVaultDetails> => JSON.parse(await BMC.fund_rgb_vault(
nostrHexSk,
feeRate,
secrets,
broadcast,
fundValue || null,
onetimeFee || false,
));
export const backupBtcWallet = async (
nostrHexSk: string,
): Promise<boolean> => JSON.parse(await BMC.backup_btc_data(nostrHexSk));
export const restoreBtcWallet = async (
nostrHexSk: string,
): Promise<boolean> => JSON.parse(await BMC.restore_btc_data(nostrHexSk));
export const recoverFundsFromBadWallets = async (
seed: string,
passPhrase: string,
recoverAddress: string,
): Promise<RecoverVaultDetails> => JSON.parse(await BMC.recover_funds_from_bad_wallets(seed, passPhrase, recoverAddress));
export const getBtcWallet = async (
nostrHexSk: string,
): Promise<WalletData> => JSON.parse(await BMC.get_btc_wallet(nostrHexSk));
export interface TransactionData {
details: TransactionDataDetails;
vsize: number;
feeRate: number;
}
export interface WalletBalance {
confirmed: number;
}
export interface WalletData {
wallet?: string;
name: string;
address: string;
balance: WalletBalance;
transactions: WalletTransaction[];
utxos: string[];
}
export interface RecoverVaultDetails {
txid: string;
fee: number;
}