react-native-nitro-ark
Version:
Pure C++ Nitro Modules for Ark client
195 lines • 6.82 kB
TypeScript
import type { HybridObject } from 'react-native-nitro-modules';
export interface BarkConfigOpts {
ark?: string;
esplora?: string;
bitcoind?: string;
bitcoind_cookie?: string;
bitcoind_user?: string;
bitcoind_pass?: string;
vtxo_refresh_expiry_threshold?: number;
fallback_fee_rate?: number;
htlc_recv_claim_delta: number;
vtxo_exit_margin: number;
round_tx_required_confirmations: number;
}
export interface BarkCreateOpts {
regtest?: boolean;
signet?: boolean;
bitcoin?: boolean;
mnemonic: string;
birthday_height?: number;
config?: BarkConfigOpts;
}
export interface BarkArkInfo {
network: string;
server_pubkey: string;
round_interval: number;
nb_round_nonces: number;
vtxo_exit_delta: number;
vtxo_expiry_delta: number;
htlc_send_expiry_delta: number;
max_vtxo_amount: number;
required_board_confirmations: number;
}
export interface BarkSendManyOutput {
destination: string;
amountSat: number;
}
interface BarkVtxo {
amount: number;
expiry_height: number;
server_pubkey: string;
exit_delta: number;
anchor_point: string;
point: string;
state: string;
}
export interface BoardResult {
funding_txid: string;
vtxos: string[];
}
export interface Bolt11Invoice {
payment_request: string;
payment_secret: string;
payment_hash: string;
}
export interface ArkoorPaymentResult {
amount_sat: number;
destination_pubkey: string;
vtxos: BarkVtxo[];
}
export interface LightningSendResult {
invoice: string;
payment_hash: string;
amount: number;
htlc_vtxos: BarkVtxo[];
movement_id: number;
preimage: string | null;
}
export interface OnchainPaymentResult {
txid: string;
amount_sat: number;
destination_address: string;
}
export interface OffchainBalanceResult {
spendable: number;
pending_lightning_send: number;
pending_in_round: number;
pending_exit: number;
pending_board: number;
}
export interface OnchainBalanceResult {
immature: number;
trusted_pending: number;
untrusted_pending: number;
confirmed: number;
}
export interface NewAddressResult {
user_pubkey: string;
ark_id: string;
address: string;
}
export interface KeyPairResult {
public_key: string;
secret_key: string;
}
export interface LightningReceive {
payment_hash: string;
payment_preimage: string;
invoice: string;
preimage_revealed_at?: number;
finished_at?: number;
}
export interface BarkMovementSubsystem {
name: string;
kind: string;
}
export interface BarkMovementDestination {
destination: string;
payment_method: string;
amount_sat: number;
}
export interface BarkMovement {
id: number;
status: string;
subsystem: BarkMovementSubsystem;
metadata_json: string;
intended_balance_sat: number;
effective_balance_sat: number;
offchain_fee_sat: number;
sent_to: BarkMovementDestination[];
received_on: BarkMovementDestination[];
input_vtxos: string[];
output_vtxos: string[];
exited_vtxos: string[];
created_at: string;
updated_at: string;
completed_at?: string;
}
export type RoundStatusType = 'confirmed' | 'unconfirmed' | 'pending' | 'failed' | 'canceled';
export interface RoundStatus {
status: RoundStatusType;
funding_txid?: string;
unsigned_funding_txids?: string[];
error?: string;
is_final: boolean;
is_success: boolean;
}
export interface NitroArk extends HybridObject<{
ios: 'c++';
android: 'c++';
}> {
createMnemonic(): Promise<string>;
createWallet(datadir: string, opts: BarkCreateOpts): Promise<void>;
loadWallet(datadir: string, config: BarkCreateOpts): Promise<void>;
isWalletLoaded(): Promise<boolean>;
closeWallet(): Promise<void>;
refreshServer(): Promise<void>;
syncPendingBoards(): Promise<void>;
maintenance(): Promise<void>;
maintenanceWithOnchain(): Promise<void>;
maintenanceRefresh(): Promise<void>;
sync(): Promise<void>;
syncExits(): Promise<void>;
syncPendingRounds(): Promise<void>;
getArkInfo(): Promise<BarkArkInfo>;
offchainBalance(): Promise<OffchainBalanceResult>;
deriveStoreNextKeypair(): Promise<KeyPairResult>;
peakKeyPair(index: number): Promise<KeyPairResult>;
peakAddress(index: number): Promise<NewAddressResult>;
newAddress(): Promise<NewAddressResult>;
signMessage(message: string, index: number): Promise<string>;
signMesssageWithMnemonic(message: string, mnemonic: string, network: string, index: number): Promise<string>;
deriveKeypairFromMnemonic(mnemonic: string, network: string, index: number): Promise<KeyPairResult>;
verifyMessage(message: string, signature: string, publicKey: string): Promise<boolean>;
history(): Promise<BarkMovement[]>;
vtxos(): Promise<BarkVtxo[]>;
getFirstExpiringVtxoBlockheight(): Promise<number | undefined>;
getNextRequiredRefreshBlockheight(): Promise<number | undefined>;
getExpiringVtxos(threshold: number): Promise<BarkVtxo[]>;
onchainBalance(): Promise<OnchainBalanceResult>;
onchainSync(): Promise<void>;
onchainListUnspent(): Promise<string>;
onchainUtxos(): Promise<string>;
onchainAddress(): Promise<string>;
onchainSend(destination: string, amountSat: number, feeRate?: number): Promise<OnchainPaymentResult>;
onchainDrain(destination: string, feeRate?: number): Promise<string>;
onchainSendMany(outputs: BarkSendManyOutput[], feeRate?: number): Promise<string>;
boardAmount(amountSat: number): Promise<BoardResult>;
boardAll(): Promise<BoardResult>;
validateArkoorAddress(address: string): Promise<void>;
sendArkoorPayment(destination: string, amountSat: number): Promise<ArkoorPaymentResult>;
payLightningInvoice(destination: string, amountSat?: number): Promise<LightningSendResult>;
payLightningOffer(offer: string, amountSat?: number): Promise<LightningSendResult>;
payLightningAddress(addr: string, amountSat: number, comment: string): Promise<LightningSendResult>;
sendRoundOnchainPayment(destination: string, amountSat: number): Promise<RoundStatus>;
bolt11Invoice(amountMsat: number): Promise<Bolt11Invoice>;
lightningReceiveStatus(paymentHash: string): Promise<LightningReceive | undefined>;
checkLightningPayment(paymentHash: string, wait: boolean): Promise<string | null>;
tryClaimLightningReceive(paymentHash: string, wait: boolean, token?: string): Promise<LightningReceive>;
tryClaimAllLightningReceives(wait: boolean): Promise<void>;
offboardSpecific(vtxoIds: string[], destinationAddress: string): Promise<RoundStatus>;
offboardAll(destinationAddress: string): Promise<RoundStatus>;
}
export {};
//# sourceMappingURL=NitroArk.nitro.d.ts.map