SuperAPI AI 工具集

strk20-wallet-api

编程与开发

查看项目

更新于 10-16 09:35

技能介绍

用途:为 Starknet 构建隐私 dapp。dapp 请求用户支持隐私的钱包执行操作,钱包负责查看密钥、note 发现、证明与提交,应用不接触私密状态,绝不向用户索要查看密钥。

版本基线:STRK20 自 starknet.js 10.4.0 起支持。官方集成技能测试的精确组合为 starknet@10.4.0、@starknet-io/get-starknet-discovery@6.0.3、@starknet-io/get-starknet-wallet-standard@6.0.3、@starknet-io/types-js@0.10.3;钱包需支持 Wallet API >= 0.10.3。从 v5/v6/v7 升级属破坏性迁移。

两种接入:React 用 Starknet Start 的 useStrk20 hooks;其余或需精细控制时直接用 WalletAccountV6,经 get-starknet v6 连接。用版本查询检测能力:const versions = await walletV6.supportedWalletApi(wallet)。不要用 strk20Balances 探测特性。连接钱包类型从 @starknet-io/get-starknet-wallet-standard/features 导入。

主要能力:构造 STRK20_ACTION[] 后调用 account.strk20InvokeTransaction(actions)。deposit 为 shield,transfer 为私密转账;shielding 由 ERC-20 approve 与私密 deposit 两笔交易组成,钱包会提示两次。转账需收付双方均已注册。金额写 "OPEN" 可创建 open note,calldata 中支持 ${openNoteIds[N]} 与 ${poolAddress} 占位符。私密 DeFi 用 transfer 开 open note 加 invoke 调用 helper,一笔交易原子完成。提交前可 await account.strk20PrepareInvoke(actions, true) 干跑。屏蔽余额用 account.strk20Balances([...]),会触发钱包同意提示。

AVNU 私密兑换无需自写 Cairo:npm install @avnu/avnu-sdk@^4.2.0 starknet@10.4.0,用 createStrk20WalletProver 与 executePrivateSwap;sell token 须已 shielding。非兑换的 DeFi 仍需自己的 anonymizer 合约。

限制:每笔私密操作收固定池费,从池 get_fee_amount 读取,勿硬编码;new note 需约 10 个区块成熟;所有私密交易由 relayer 提交,须按池 Deposit 事件归因用户;存款、提现、open note 金额、时间与链下操作仍公开。端到端测试需公共网络与隐私钱包(如 Ready 扩展),非纯本地 devnet。其余细节资料未提供。