API说明
这里列出 UKey Wallet TON Connect Provider 的方法、请求类型、事件和错误码。发送交易或签名数据前,请确认会话已连接并使用正确网络。
方法集
| 方法 | 说明 |
|---|---|
connect(version?, request?) | 连接钱包 |
restoreConnection() | 恢复之前的会话 |
disconnect() | 断开钱包连接 |
send(message) | 发送 RPC 请求 |
listen(callback) | 监听钱包事件 |
Send 方法
| 方法 | 说明 |
|---|---|
sendTransaction | 发送 TON 或与合约交互 |
signData | 签署任意数据 cell |
disconnect | 通过 RPC 断开连接 |
类型集
账户信息
interface AccountInfo {
address: string; // 原始地址格式 (0:<hex>)
network: string; // 网络 ID(-239 主网,-3 测试网)
publicKey: string; // hex 公钥本身不附加 0x
walletStateInit: string; // Base64 编码后的状态初始化
}
交易请求
interface TransactionRequest {
valid_until?: number; // 过期时间的 UNIX 时间戳
network?: string; // 网络标识
from?: string; // 发送方地址
messages: Message[]; // 最多可带 4 条消息
}
消息
interface Message {
address: string; // 接收者原始地址格式
amount: string; // 金额字段(nanotons)
payload?: string; // 用于合约调用的 Base64 BOC
stateInit?: string; // 部署阶段要带的 Base64 StateInit
}
签署数据请求
interface SignDataRequest {
schema_crc: number; // Schema ID
cell: string; // Base64 编码的 cell 数据
publicKey?: string; // 可选指定公钥
}
签署数据结果
interface SignDataResult {
signature: string; // Base64 格式签名
timestamp: number; // UTC UNIX 时间戳
}
设备信息
interface DeviceInfo {
platform: string; // allowed values: 'iphone' | 'android' | 'windows' | 'mac' | 'linux'
appName: string; // sample app name: 'ukey'
appVersion: string; // 钱包版本号
maxProtocolVersion: number; // 数值参考片段:2
features: string[]; // 支持能力列表
}
网络
| 网络 | 网络 ID |
|---|---|
| 主网 | -239 |
| 测试网 | -3 |
事件流
| 事件 | 说明 |
|---|---|
accountChanged | 当前账户已切换 |
disconnect | 钱包连接已关闭 |
错误码
| 错误码 | 说明 |
|---|---|
| 0 | 未归类错误 |
| 1 | 请求内容有误 |
| 100 | 应用来源未知 |
| 300 | 用户取消了本次请求 |
| 400 | 当前方法不可用 |