快上手
这里演示如何检测 UKey Wallet Conflux Provider、请求账户、读取链信息和余额,并处理账户或网络变化事件。
ℹ️
UKey Wallet Conflux Provider 同时兼容 ConfluxPortal 和 Fluent 钱包接口,方便现有 Conflux DApp 迁移。
找 Provider
// 检查 UKey Wallet Conflux provider
const provider = window.$ukey?.conflux;
if (!provider) {
throw new Error("未检测到 UKey Wallet Conflux provider");
}
// 确认兼容性标记
console.log("isConfluxPortal:", provider.isConfluxPortal); // 布尔参考片段:true
console.log("isFluent:", provider.isFluent); // 布尔参考片段:true
console.log("isUKey:", provider.isUKey); // 布尔参考片段:true
请求授权
const accounts = await provider.request({
method: "cfx_requestAccounts",
});
console.log("连接结果:", accounts[0]);
检查连接
if (provider.isConnected()) {
const accounts = await provider.request({ method: "cfx_accounts" });
console.log("当前账户信息:", accounts);
}
读取链 ID
const chainId = await provider.request({ method: "cfx_chainId" });
console.log("返回的链 ID:", chainId); // 例如 '0x405' 表示主网
读取网络版本
const networkId = await provider.request({ method: "net_version" });
console.log("返回的网络 ID:", networkId); // 例如 '1029' 表示主网
读取余额
const balance = await provider.request({
method: "cfx_getBalance",
requestParams: [address, "latest_state"],
});
console.log("当前余额:", balance); // 以 Drip 为单位 (1 CFX = 10^18 Drip)
事件流
看账户变化
provider.on("accountsChanged", (accounts) => {
if (accounts.length === 0) {
console.log("连接已关闭");
} else {
console.log("当前账户已切换为:", accounts[0]);
}
});
监听链变更
provider.on("chainChanged", (chainId) => {
console.log("链已切换为:", chainId);
// 建议刷新页面
window.location.reload();
});
监听连接
provider.on("connect", ({ chainId, networkId }) => {
console.log("当前连接参数:", chainId, networkId);
});
provider.on("disconnect", () => {
console.log("连接已关闭");
});
地址样式
Conflux 使用 CIP-37 base32 地址。展示给用户时请保持网络前缀正确:
// 主网参考片段:cfx:...
// 测试网参考片段:cfxtest:...
// 主网地址参考值
const address = "cfx:aak2rra2njvd77ezwjvx04kkds9fzagfe6ku8scz91";
// 通过 js-conflux-sdk 在不同格式间转换
import { format } from "js-conflux-sdk";
const hexAddress = format.hexAddress(address);
const base32Address = format.address(hexAddress, 1029); // Network ID
网络
| 网络 | 链 ID (十六进制) | 网络 ID |
|---|---|---|
| 主网 | 0x405 | 1029 |
| 测试网 | 0x1 | 1 |