跳到正文
← 使用教程

Hinkal 查看余额不一致:区分SDK只读会话、REST权限和缓存

链小知 · 进阶 · 核验 · 依官方文档整理

按本人已有集成记录对照查看权限、chain、token和扫描时刻,分开SDK/REST字段及缓存刷新回执,避免将401或缺字段补成零余额。

开始前准备

  • 已有脱敏SDK/REST余额记录、产品/包版本、chain与采集时间,以及缓存/刷新日志;不需要登录新会话或读取真实私人数据。
  • sessionId、nonce、请求签名、nullifyingKey、seed和spending material不提交到教程或支持聊天;这里只记录权限类型与字段存在性。
  • 当前档案聚焦SDK/API,不按旧Wallet Main Account/Proxy或Prime成员菜单解释这些记录。

1. 标明SDK与REST是不同读取上下文

在原记录写产品、方法、版本和时间。SDK read-only nullifyingKey session与REST GET /balance并不是同一种调用;Hinkal Wallet/Pay/Prime/WaaS/MCP也有不同账户及权限,不能由品牌首页non-custodial描述代替产品确认。

REST余额字段是balances[].chainId/tokenAddress/balance,SDK TokenBalance说明为chainId/erc20Address/balance/optional timestamp。不要在REST响应找erc20Address后认定资产不存在,美元反应式state也不是链上余额字段。

检查结果:每份记录有产品和字段路径,SDK、REST、public balance/私人余额不混用。

2. 核对查看权限而不创建会话

SDK nullifyingKey session可看balances和incoming outputs,不能消费,value-moving方法应拒绝;该key为敏感账户材料。只对照原配置是否是合法view-only,不执行导出、导入或初始化。

REST私人read需要active session+请求签名,optional partner APIkey不是认证替代。normal authMode会话包含授权提交transactions,EIP712模式read仍签请求;因此不能把“只调用GET”或“没有APIkey”称为view-only凭据。

检查结果:记录明确SDK只读/REST会话模式与读取资格;权限未取得标未知,不能索取消费密钥。

3. 按具体chain与token核对范围

GET /balance原query有chainId,方法举Solana501、TRON728126428;SDK/privateBalancesWithUSD也按chainId分组。同一public wallet或同token symbol跨链不等同余额,按该链token地址配对。

当前链表明确Ethereum、Arbitrum、Polygon、Base、BNB Chain、Solana、TRON等例子;旧balance示例提Optimism10但现行表未列,不能据此保证部署。/supported-chains只列curated EVM token chains,不含Solana/TRON不代表后者没有private read方法。

检查结果:比较记录属于同链同币;主网、测试网与旧示例范围已区分。

4. 检查已有缓存/扫描记录的前后关系

SDK文档getTotalBalances文字与getTotalBalance声明拼写不同,按已安装版本原方法记录,不复制猜测函数名运行。已有记录可检查resetCacheBefore/updateTokensListBefore或refreshBalance的chainIdToUpdate/updateType;fresh请求状态不等该次余额已经取得。

REST POST /refresh-cache清caller该chain缓存,使下一次read重取chain state,200只返回success/nonce不返回balance。将已有刷新时刻和下一条同身份余额记录配对;只有refresh200或缓存日志时,不能宣称余额扫描完成。

检查结果:缓存刷新、余额读取与采集时间可配对,方法名/版本冲突和缺后续read明确。

5. 分开有效余额、空值与读取失败

REST /balance 200要求success、balances及回传nonce。记录success=false/error、HTTP401(signature/nonce或session问题)、500,刷新还可能409 nonce consumed;失败不是balances=[]或balance='0'。

有效TokenBalance.balance是最小单位string,按已取得token decimals换算,未取得decimals时仅保留整数。SDK timestamp可缺、REST余额未提供统一timestamp,不能把接收时间或任意数值当所有记录的Unix毫秒;只比较同范围近时刻记录。

检查结果:输出原数值、精度来源、采集时间和错误分支,未知没有被填成零或实时估值。

6. 按差异来源写出可复查结论

把结果归到产品/字段不同、权限未取得、链/币不同、缓存未跟上或记录仍不足。只读余额本身不证明有权限发款、当前可用或所有历史完整,也不证明某笔private send已付给收款人。

若原状态涉及blocked或风控检查,保留原错误与合法支持路径;不修改筛查配置。完成身份/权限/链币/缓存/余额表,不发新read或refresh,不提供敏感查看材料。

检查结果:结论有具体字段和时间依据,无账户/业务API行为验证部分保持documentation。

怎样确认完成

  • 形成本人原记录的产品、权限、chain/token、缓存/读取时刻、原金额与错误对照。
  • 所有差异有证据或缺口,没有创建/签名会话、导入key、真实余额查询或资金动作。

常见错误与边界

  • 把SDK nullifyingKey只读会话与能授权写入的REST normal session混同。
  • 认证失败补零余额,或SDK erc20Address与REST tokenAddress混读。
  • 用curated EVM supported-chains方法作为全部品牌链表,或将旧10示例当当前OPMainnet支持。
  • cache refresh成功不是余额已重新取得;方法名拼写/时间单位未知不能硬补。

本教程根据官方资料整理,尚未完成逐步操作验收。界面、支持范围及费用变化时,先核对官方说明。 纯文本版 · 提交纠错依据