钱包API
集成接入 Wizz 插件钱包
欢迎来到 Wizz Wallet 开发者文档!本文档旨在帮助你学习如何在DApp中接入 Wizz Wallet 。
入门
在接入 Wizz Wallet 前,首先需要在你的终端上安装 Wizz Wallet。点击此处下载
安装并运行 Wizz Wallet 后,你会发现新打开的浏览器标签页在开发者控制台中可访问 window.wizz 对象。
示例
浏览器检测
要验证浏览器是否运行了 Wizz Wallet,请将下面的代码复制粘贴到你的网页浏览器的开发者控制台中:
if (typeof window.wizz !== 'undefined') {
console.log('Wizz Wallet is installed!');
}你可以在这里查看 window.wizz 对象的完整 API。
连接 Wizz Wallet
“连接”或“登录”到 Wizz Wallet 实际上意味着“访问用户的比特币账户”。
你应该只在响应用户操作(如点击按钮)时发起连接请求。在连接请求进行中时,你应该始终禁用“连接”按钮。不要在页面加载时发起连接请求。
我们建议你添加一个按钮,允许用户将 Wizz Wallet 连接到你的 dapp。点击此按钮以调用以下方法:
可以从这里获取 Provider Api的定义
方法
getVersion
获取插件当前的版本。 (仅插件支持)
参数
无
返回
Promise 返回 string:当前插件版本。
requestAccounts
连接当前账户。
参数
无
返回
Promise 返回 string[]:当前账户的地址。
示例
isBiHelixAddress
查看当前钱包地址是否支持 BiHelix 网络。
返回
Promise<boolean> - 查看当前钱包地址是否支持 BiHelix 网络。
示例
requestCPFP
创建 CPFP 加速交易请求(仅插件支持,且要求版本至少为 2.9.1)。
参数
txid - string - 要加速的交易 ID。
返回
Promise<string> - 加速的交易 ID。
示例
requestMint
发送请求以铸造各种类型的数字资产。(仅插件支持)
参数
options-RequestMintParams: 铸造请求的选项,根据被铸造的资产类型而有所不同。这是一个对象,可以根据type字段具有不同的属性。type-string: 指定铸造操作的类型。可能的值有'mint_arc20','mint_nft','mint_realm','mint_container', 和'mint_dmitem'。
对于
'mint_arc20'类型:atomicalId-string(可选): 要铸造的 ARC20 的原子 ID。arc20-string(可选): 要铸造的ARC20的名字,和atomical id二选一
对于
'mint_nft'类型:fileBytes-Uint8Array(可选): 文件内容的字节。fileName-string(可选): 文件的名称。contentType-string(可选): 文件的 MIME 类型。bitworkc-string(可选): 提交交易的挖矿难度,必须是带有单个可选的 点 的十六进制,与 1 到 15 之间的数字分隔,不超过 10 个十六进制字符。例如:0123 或 3456.12。长度在 4-10 位数字之间。bitworkr-string(可选): 揭示交易的挖矿难度,格式同上。satsIn-number(可选): nft 中的 sats 数量。
对于
'mint_dmitem'类型:atomicalId-string(可选): 要铸造的容器的 ID。dmitem-Record<string,any>:dmitem 的 json 文件satsIn-number(可选): dmitem 中的 sats 数量。
对于
'mint_realm'类型:bitworkc-string(可选): 提交交易的挖矿难度,格式同上。satsIn-number(可选): realm 中的 sats 数量。
对于
'mint_subrealm'类型:satsIn-number(可选): subrealm 中的 sats 数量。realm-string(可选): 父realm的名称,如果为unicode字符,需要先转为ASCII字符subrealm-string(可选): 待mint的subrealm名称
对于
'mint_container'类型:bitworkc-string(可选): 提交交易的挖矿难度,格式同上。satsIn-number(可选): container 中的 sats 数量。
返回
Promise-void:
示例
sendBitcoin
发送BTC交易。 (要求插件版本>=2.6.0)
参数
address接收地址amount发送的BTC数量options可选参数:feeRate使用的费率
返回
Promise - string: 交易的txid
sendARC20
发送ARC20交易。 (要求插件版本>=2.6.0) (仅插件支持)
参数
address接收地址arc20待发送ARC20名称amount发送的ARC20数量options可选参数:feeRate使用的费率
返回
Promise - string:交易的txid
sendAtomicals
发送Atomcials交易 (要求插件版本>=2.6.0) (仅插件支持)
参数
address接收地址atomicalIds待发送Atomicals ID列表options可选参数:feeRate使用的费率
返回
Promise - string:交易的txid
getBalance
获取当前连接账号的余额 (要求插件版本>=2.6.0)
参数
无
返回
Promise - { confirmed: number, unconfirmed: number, total: number }: 当前账户的余额
getAccounts
获取当前账户的地址
参数
无
返回
Promise - string[]:当前账户的地址
示例
getNetwork
获取网络
参数
无
返回
Promise - string:livenet 和 testnet 网络
示例
switchNetwork
切换网络
参数
network - string: livenet 和 testnet 网络
返回
无
示例
getPublicKey
获取当前账户的公钥。
参数
无
返回
Promise - string: 公钥
示例
getInscriptions
列出当前账户的铭文
参数
无
返回
Promise - Object:
total - number : 总数
list - Object[] :
inscriptionId - string : 铭文的 ID。
inscriptionNumber - string : 铭文的编号。
address - string : 铭文的地址。
outputValue - string : 铭文的输出值。
content - string : 铭文的内容 URL。
contentLength - string : 铭文内容的长度。
contentType - number : 铭文内容的类型。
preview - number : 预览链接
timestamp - number : 铭文的区块时间。
offset - number : 铭文的偏移量。
genesisTransaction - string : 创世交易的 txid
location - string : 当前位置的 txid 和 vout
示例
signMessage
签名消息
参数
msg - string: 要签名的字符串
type - string: (可选) "ecdsa" | "bip322-simple"。默认为 "ecdsa"
返回
Promise - string: 签名。
示例
pushTx
推送交易
参数
options - Object:rawtx - string: 要推送的原始交易
返回
Promise - string: 交易 ID
示例
signPsbt
签名 PSBT
此方法将遍历所有与当前地址匹配的输入以进行签名。
参数
psbtHex - string: 要签名的 PSBT 的十六进制字符串
options autoFinalized - boolean: 签名后是否自动完成 PSBT,默认为 true
toSignInputs - array:
index - number: 要签名的输入
address - string: (至少指定地址或公钥中的一个) 用于签名的私钥对应的地址
publicKey - string: (至少指定地址或公钥中的一个) 用于签名的私钥对应的公钥
sighashTypes - number[]: (可选) 签名哈希类型
disableTweakSigner - boolean :(可选)
在签名和解锁 Taproot 地址时,默认使用 tweakSigner 生成签名。启用此选项允许使用原始私钥进行签名。
返回
Promise - string: 签名后的 PSBT 的十六进制字符串
示例
pushPsbt
推送交易
参数
psbtHex - string: 要推送的 PSBT 的十六进制字符串
返回
Promise - string: 交易 ID
示例
事件
accountsChanged
当用户公开的账户地址发生变化时,将触发 accountsChanged 事件。
networkChanged
当用户的网络发生变化时,将触发 networkChanged 事件。
Last updated