SuperAPI AI 工具集

strk20-wallet-api

编程与开发

查看项目

更新于 10-16 02:36

技能介绍

用途:在 Starknet 上构建隐私 dapp。推荐路径是让支持隐私的钱包代为执行,钱包处理查看密钥、note 发现、证明与提交,应用不接触私密状态,也不要向用户索要查看密钥。

版本基线:核心 STRK20 支持始于 starknet.js 10.4.0;稳定 shadow-account 支持始于 starknet.js 10.8.0 与 Wallet API 0.10.4。核心方法需 Wallet API >= 0.10.3,shadow accounts 需 >= 0.10.4。库升级不会给已连接钱包增加能力,需运行时检测版本: const versions = await walletV6.supportedWalletApi(wallet) 不要用 strk20Balances 做能力探测,它是余额读取方法,会触发用户同意提示。

两种接入方式:React 用 Starknet Start 的 useStrk20 hooks;其他场景或需更细控制时直接用 WalletAccountV6,经 get-starknet v6 连接。类型需从子路径导入: import type { WalletWithStarknetFeatures } from "@starknet-io/get-starknet-wallet-standard/features"

主要能力:构造 STRK20_ACTION[] 交给钱包,如 deposit(shield)、transfer(私密转账,无合约调用、无事件、无 approve 步骤),再调用 account.strk20InvokeTransaction(actions)。私密 DeFi 可用 transfer 的 "OPEN" 金额开 note,再 invoke helper,calldata 中钱包解析 ${openNoteIds[N]} 与 ${poolAddress}。提交前可 dry-run:await account.strk20PrepareInvoke(actions, true)。屏蔽余额用 await account.strk20Balances([...])。

Shadow accounts:为每个 (dappName, nonce) 派生确定性公开执行账户,无签名密钥,只能由规范 ShadowAccountAnonymizer 执行;复用 nonce 会复用地址并关联公开活动。commitment 调用是本地操作,不发交易。

AVNU 私密兑换:使用其已部署 executor,无需自建 helper,安装 @avnu/avnu-sdk@^4.2.0 与 starknet@10.8.0,用 createStrk20WalletProver 与 executePrivateSwap;卖出代币须已屏蔽。

限制与注意:shield 需 ERC-20 approve;私密转账双方都需在池中注册;池按次收取固定费用,应从 get_fee_amount 读取而非硬编码;新 note 约 10 个区块后才可花费;所有私密交易由 relayer 提交,需从池的 Deposit 事件归属用户活动;deposit、withdrawal、open-note 金额与时间仍公开。测试需真实网络与支持所需 Wallet API 版本的钱包,不宜用纯本地 devnet。资料未提供收费与价格信息。