@anywalletkit/protocol-swaging-sv-evm (英语)
一个简单的软件包 @anywalletkit/wallet-evm 钱包账户赌注
结束 SSV网络: 股份SSV = cSSV, 索赔ETH
奖励,通过网络冷却退出,并读取APR和网络统计.
安装
npm install @anywalletkit/protocol-staking-ssv-evm @anywalletkit/core
# or: pnpm add @anywalletkit/protocol-staking-ssv-evm @anywalletkit/core · yarn add @anywalletkit/protocol-staking-ssv-evm @anywalletkit/core
时间: @anywalletkit/protocol-swaging-sv-evm (英语)发表于 发布工作流程 与出处.
建为 执行情况 StakingProtocol 类型 内
@anywalletkit/core (第一个是 @anywalletkit/protocol-staking-lido-evm) (中文(简体) ).
基础班住在这里 @anywalletkit/core (单位:千美元)src/staking-protocol.ts 这里
保持运行时间 IStakingProtocol 标记和模块本身的类型)。 A 类
带冷却装置的自动取号协议
界面不是 Lido 形状.
机械师从一个生产钱包取出(反应土著/赫尔姆斯) 以实际资金进行一切流动.
SSV网络和SSV标志是什么
SSV网络 是分布式验证器技术(DVT) 对于Ethereum:一个验证器的密钥在几个独立的操作符之间被分割, 所以当他们中任何一人倒下或行为不端时,他们就继续奔跑。 一个大 ethereum液体吸附量的一部分 在它上运行其验证器。 操作员支付 (原始内容存档于2018-09-26). Network's pays in EH.
车辆 是网络的 ERC-20 符号 。 自SSV Network v2(主网,2026)起
SSV持有者可以进行赌注: 网络薄荷 cSSV (英语) 1:1——可转让,
cSSV 持有者收到按比例分摊的
ETH 费用,通过每股ETH 指数逐个累积,可索赔
在任何时间,没有不负责任的。 积重也代表投票权
(原始内容存档于2018-10-21). Network's 有效平衡论. 找回SSV是一个冷却出口:
requestUnstake 将cSSV烧为冷却入口(发射时7天,DAO可通取),
不可撤销, withdrawUnlocked 给每个冷却器
结束。 没有砍人。 《反倾销协定》在以下一项中标为ETH:
以SSV为标价的股权,所以它随SSV的价格而移动.
使用量
import WalletManagerEvm from '@anywalletkit/wallet-evm'
import SsvProtocolEvm from '@anywalletkit/protocol-staking-ssv-evm'
const wallet = new WalletManagerEvm(seed, { provider: 'https://rpc.example.org' })
const account = await wallet.getAccount(0)
const ssv = new SsvProtocolEvm(account)
// Stake — approve (awaited) + stake on the first go, one transaction after
const { hash, fee, approveHash } = await ssv.stake({ amount: 10n ** 18n })
// Rewards accrue in ETH; claim any time, the stake stays put
await ssv.getClaimableRewards() // wei
await ssv.claimRewards()
// Exit, phase 1: burn cSSV into a cooldown entry (irreversible)
await ssv.requestWithdrawal({ amount: 10n ** 18n })
// …after the cooldown — exit, phase 2: withdraw every unlocked entry as SSV
const { claimableIds } = await ssv.getWithdrawalRequests()
if (claimableIds.length) await ssv.claimWithdrawals()
// Views
await ssv.getStakedBalance() // { balance: cSSV, wrappedBalance: 0n, rate: 1e18, total }
await ssv.getApr() // 23.8 (percent, from SSV Network's API)
超出接口的 SSV 特殊额外 :
await ssv.getTokenBalance() // liquid SSV on the account
await ssv.getClaimableRewards() // accrued ETH (wei)
await ssv.claimRewards() // claimEthRewards()
await ssv.getCooldown() // seconds — read it, never hardcode 7 days
await ssv.getNetworkStats() // { totalStaked, rewardsPool, accEthPerShare }
await ssv.getAprHistory({ limit: 7 })// daily samples with SSV/ETH prices
它如何映射到界面上
IStakingProtocol | SSV网络 |
|---|---|
stake({ amount }) | 津贴检查 + approve (等待有地雷的收据) stake 使用 SSVNetwork 代理服务器; cSSV 刻出 1:1 |
requestWithdrawal({ amount }) | requestUnstake 将cSSV烧成冷却入口; token 忽略( 单下注形式) |
getWithdrawalRequests() | pendingUnstake • 条目 id = 职位, unlockTime, (中文(简体) ), claimable = unlockTime <= now; 数额 车辆 |
claimWithdrawals() | withdrawUnlocked 支付 每个 解锁条目; ids 为信息 |
getStakedBalance() | cSSV余额, wrappedBalance 零点, rate 1e18 (韩语) |
getApr() | api.ssv.network/…/apr/current —— 显示的数个字符串( ssv.network) |
与利多的两个诚实的区别 被记录在方法上而不是 已打印: 退出会支付挂号( SSV) , 而不是链条的原生 符号,而撤回的呼叫是全或全在网络一侧.
为什么写道看起来像它一样
- 任何许可:SSV和cSSV都没有执行EIP-2612(检查:
nonces编号 :DOMAIN_SEPARATOR两者皆复). 因此,第一个利害关系是 + 股权批准;批准为 等待有地雷的收据 因为stake气体的估算值与未计值的允许值相抵。 与一个 常设津贴是一笔交易. - 广播前证明: 每一个书写都是用
eth_call从 账户先。 抽取模块返回时出现明显的自定义错误——StakeTooLow, (中文(简体) ),UnstakeAmountExceedsBalance, (中文(简体) ),NothingToWithdraw, (中文(简体) ),NothingToClaim, (中文(简体) ),InsufficientBalance... 还有..describeRevert转动 4字节选择器回到一个命名错误中,在提供者(viem)埋葬的地方 (单位:千美元)error.data, (中文(简体) ),info.error.data, (中文(简体) ),cause,或消息文本)。 一个用户 看见"还没有解冻请求完成",不是"执行" 已经恢复了,而且不付任何汽油. - 索赔四舍五入数字 :
claimEthRewards付费accrued − accrued % 100000 wei当它变成零的时候,又复返于零;claimRewards检查previewClaimableEth反对ETH_CLAIM_UNIT上前边. - 不稳定的编号: 冷却条目按位置和
withdrawUnlocked压缩列表——重读getWithdrawalRequests每次写后; 这里没有缓存 id . - 结构账户检查: 可写性为
typeof account.sendTransaction === 'function'没有instanceof。 。 。 . - 没有
AbortSignal.timeout编号 :AbortSignal.any: 赫尔墨斯船AbortController没有这些静电,这里的一切都取决于它们. - REST是装饰: APR和APR的历史来自同名API
ssv.network 读取( CORS)
*),通过config.endpoints· ; 连锁流动从不依赖它们getAprHistory降解为 空阵列 .
配置
new SsvProtocolEvm(account, {
provider, // RPC url or EIP-1193; defaults to the account's provider
chainId, // default 1; other chains must supply addresses
addresses, // { network, views, ssvToken, cssvToken }
endpoints // { apr, aprHistory }
})
只有主网舰作为默认部署——故意. 胡迪测试网
地址列于 src/ssv-address-map.ts 用于明确的配置,
所以,没有人与地址有利害关系 一个默认的静悄悄提供.
主网合同(验证了链上与直播代理,v2.0.0):
SSV网络 0xDD9BC35aE942eF0cFa76930954a156B3fF30a4E1,SSVNetwork 视图
0xafE830B6Ee262ba11cce5F32fDCd760FFE6a66e4, SSV 软件
0x9D65fF81a3c488d585bBfb0Bfe3c7707c7917f54页:1
0xe018D31F120A637828F46aFD6c64EC099d960546。 。 。 .
测试
pnpm build # TypeScript → dist/ (tsup: ESM + CJS + d.ts); built on viem
pnpm test # offline unit tests (vitest, stubbed EIP-1193 provider) + conformance
pnpm verify:live # read-only checks against mainnet (views, API, eth_call proofs; needs a build)
活动
describeActivity(tx, { own }) 标签 SSV 为钱包的历史进行交易, 离线和同步。 交易是SSV的 当它叫它 network 代理实例在链上配置(默认情况下是主网),选择器是 stake → stake "抓获的SSV", requestUnstake → unstake "请求不取", withdrawUnlocked → claim "带着SSV", claimEthRewards → claim "要求ETH奖赏"(ASSV_ACTIONS,在模块装入时从签名中计算出的筛选器)。 操作员/集群管理呼叫相同的代理, SSV approve和任何其它东西都无效。 字幕 "SSV Network · Ethereum", (中文(简体) ), counterparty 代理服务器; assetsIn 编号 : assetsOut 是模块标注的钱包净运动(SSV,cSSV,ETH奖励).
装入 fixtures/activity/ 是测试钱包资助的运行(取出,请求Unstake x2,取出解锁,要求Eth Rewards; 2026-09-03-1007); 3; negatives/ 持有Lido的呈文和USDT的批准书.