SparkWallet
SparkWallet
类是与 Spark 网络交互的主要接口。它提供了创建和管理钱包、处理存款、执行转账以及与闪电网络交互的方法。
安装
方法
initialize({ mnemonicOrSeed, signer, options }: SparkWalletProps)
创建并初始化一个新的 SparkWallet 实例。
props
: 包含:mnemonicOrSeed
: (可选) BIP-39 助记词短语或原始种子accountNumber
: (可选) 账户编号signer
: (可选) 自定义签名者实现options
: (可选) 钱包配置选项
- 包含:
wallet
: 初始化的 SparkWallet 实例mnemonic
: 如果生成了助记词,则为助记词(对于原始种子为未定义)
getIdentityPublicKey()
获取钱包的身份公钥。
Promise<string>
: 十六进制字符串形式的身份公钥
getSparkAddress()
获取钱包的 Spark 地址。
Promise<SparkAddressFormat>
: Spark 地址
getTransfers(limit?: number, offset?: number)
获取钱包的所有转账。
limit
: (可选,默认: 20) 返回的最大转账数量offset
: (可选,默认: 0) 分页的偏移量
Promise<{ transfers: WalletTransfer[]; offset: number; }>
: 包含转账列表和偏移量的响应
getBalance()
获取钱包的当前余额。您可以使用 forceRefetch 选项来同步您的钱包,并在返回余额之前认领任何待处理的传入闪电支付、Spark 转账或比特币存款。
- 包含:
balance
: 钱包当前的余额(以聪为单位)tokenBalances
: 代币公钥到代币余额的映射,包含 Bech32m 代币标识符
getSingleUseDepositAddress()
生成一个新的一次性存款地址,用于接收比特币资金。请注意,此函数返回一个比特币地址,而不是 Spark 地址。一旦使用,此地址不应再次使用。
对于第 1 层比特币存款,Spark 生成支付到 Taproot (P2TR) 地址。这些地址以 “bc1p” 开头,可用于从任何钱包接收比特币。
Promise<string>
: 用于存入资金的比特币地址
getUnusedDepositAddresses()
获取钱包的所有未使用存款地址。
Promise<string[]>
: 未使用存款地址的数组
transfer(params)
将比特币转账给另一个 Spark 钱包。
params
: 包含:receiverSparkAddress
: 接收者的 Spark 地址amountSats
: 要转账的金额(以聪为单位)
Promise<WalletTransfer>
: 完成的转账详情
payLightningInvoice(params: PayLightningInvoiceParams)
支付闪电网络发票。
params
: 包含:invoice
: 要支付的 BOLT11 编码的闪电网络发票。maxFeeSats
: 支付发票的最大费用(以聪为单位)。amountSatsToSend
: (可选) 要发送的金额(以聪为单位)。此参数仅用于零金额发票。对于有固定金额的普通发票,此参数将被忽略。
Promise<LightningSendRequest>
: 闪电网络支付请求详情
transferTokens(params)
将代币转账给另一个用户。
params
: 包含:tokenIdentifier
: 要转账的代币的 Bech32m 代币标识符(例如:btkn1…)tokenAmount
: 要转账的代币数量receiverSparkAddress
: 接收者的 Spark 地址selectedOutputs
: (可选) 用于转账的特定输出
Promise<string>
: 代币转账的交易 ID
getTokenInfo()
获取钱包拥有的代币信息。
Promise<TokenInfo[]>
: 代币信息对象的数组
queryTokenTransactions()
检索代币交易记录,可选根据 ownerPublicKeys
、issuerPublicKeys
、tokenTransactionHashes
、tokenIdentifiers
或 outputIds
进行过滤。
ownerPublicKeys
: (可选) 用于过滤的持有者公钥数组issuerPublicKeys
: (可选) 用于过滤的发行者公钥数组tokenTransactionHashes
: (可选) 用于过滤的代币交易哈希数组tokenIdentifiers
: (可选) 用于过滤的 Bech32m 代币标识符数组outputIds
: (可选) 用于过滤的输出 ID 数组
Promise<TokenTransactionWithStatus[]>
: 带状态的代币交易数组
getTokenL1Address()
获取用于代币操作的第 1 层比特币地址。
Promise<string>
: 第 1 层比特币地址
createLightningInvoice(params)
创建用于接收支付的闪电网络发票。
params
: 包含:amountSats
: 金额(以聪为单位)memo
: (可选) 发票的描述expirySeconds
: (可选) 过期时间(以秒为单位),默认为 30 天
Promise<LightningReceiveRequest>
: 闪电网络接收请求详情
getLightningReceiveRequest(id: string)
获取闪电网络接收请求(发票)的状态。
id
: 要检查的发票的 ID。
Promise<LightningReceiveRequest | null>
: 闪电网络接收请求详情,如果未找到则返回 null。
getLightningSendRequest(id: string)
获取闪电网络发送请求的状态。
id
: 要检查的闪电网络发送请求的 ID。
Promise<LightningSendRequest | null>
: 闪电网络发送请求详情,如果未找到则返回 null。
getLightningSendFeeEstimate(params)
估算发送闪电网络支付的费用。
params
: 包含:encodedInvoice
: BOLT11 编码的闪电网络发票。
Promise<number>
: 估算的费用(以聪为单位)。
withdraw(params)
发起提款,将资金从 Spark 网络转移到链上比特币地址。
params
: 包含以下属性的对象:onchainAddress
: (必需) 资金应发送到的比特币地址。exitSpeed
: (必需) 退出的期望速度(FAST, MEDIUM, SLOW)。amountSats
: (可选) 要提取的金额(以聪为单位)。如果未指定,尝试提取所有可用资金。feeQuote
: (必需) 由getWithdrawalFeeQuote
返回的费用报价对象。必须在过期之前使用。deductFeeFromWithdrawalAmount
: (可选,默认true
) 为true
时,费用从提款金额中扣除;为false
时,费用从剩余钱包余额中扣除。
Promise<CoopExitRequest | null | undefined>
: 提款请求详情,如果请求无法完成则返回 null/undefined。
getWithdrawalFeeQuote(params)
获取合作退出(链上提款)的费用报价。返回对象包含不同速度的选项与过期时间,必须在过期前传递给 withdraw
。
params
: 包含:amountSats
: 要提取的金额(以聪为单位)。withdrawalAddress
: 资金应发送到的比特币地址。
Promise<WithdrawalFeeQuote | null>
: 提款的费用报价,如果不可用则返回 null。
getCoopExitRequest(id: string)
通过 ID 获取合作退出请求。
id
: 合作退出请求的 ID。
Promise<CoopExitRequest | null>
: 合作退出请求详情,如果未找到则返回 null。
claimDeposit(txId: string)
认领对一次性存款地址进行的比特币存款。
txId
: 要认领的存款交易的 ID。
Promise<DepositClaimResult>
: 存款认领的结果。
isValidSparkAddress(address: string)
检查一个地址是否是有效的 Spark 地址。
address
: 要验证的地址。
boolean
: 如果地址是有效的 Spark 地址则为 true,否则为 false。