@anywalletkit/protocol-sking-lido-evm (英语)
一个简单的软件包 @anywalletkit/wallet-evm 钱包账户赌注
通过 丽多 协议: 键 EH = stETH,通过
分两相退出队列,将不重设的wstETH格式包入/解围,以及
读APR和奖励历史.
安装
npm install @anywalletkit/protocol-staking-lido-evm @anywalletkit/core
# or: pnpm add @anywalletkit/protocol-staking-lido-evm @anywalletkit/core · yarn add @anywalletkit/protocol-staking-lido-evm @anywalletkit/core
时间: @anywalletkit/protocol-sking-lido-evm (英语)发表于 发布工作流程 与出处.
建设为首个执行 StakingProtocol 类型 内
@anywalletkit/core。基础课生活在 @anywalletkit/core· ;
src/staking-protocol.ts 保持运行时间 IStakingProtocol 标记和
选项/结果键入此模块文档。 见下文“界面”
为什么不借钱.
机械师是从一个生产钱包(web + React)中提取的 当地/赫尔梅斯),每笔资金都以实际资金进行.
在类型脚本上写入 维姆 (唯一的运行时间)
依赖性),并用 tsup-to dist/ (ESM + CJS + .d.ts) (中文(简体) ).
使用量
import WalletManagerEvm from '@anywalletkit/wallet-evm'
import LidoProtocolEvm from '@anywalletkit/protocol-staking-lido-evm'
const wallet = new WalletManagerEvm(seed, { provider: 'https://rpc.example.org' })
const account = await wallet.getAccount(0)
const lido = new LidoProtocolEvm(account, {
referral: '0x…' // optional: Lido Rewards-Share referral, defaults to zero address
})
// Stake — stETH lands on the account 1:1
const { hash, fee } = await lido.stake({ amount: 10n ** 18n })
// Exit, phase 1: queue the withdrawal (permit-first — ONE transaction)
await lido.requestWithdrawal({ amount: 10n ** 18n, token: 'stETH' })
// …days later — exit, phase 2: claim finalized requests as ETH
const { claimableIds } = await lido.getWithdrawalRequests()
if (claimableIds.length) await lido.claimWithdrawals({ ids: claimableIds })
// Views
await lido.getStakedBalance() // { balance, wrappedBalance, rate, total }
await lido.getApr() // 2.72 (percent, 7d SMA)
界面外的 Lido 特有外加:
await lido.wrap({ amount }) // stETH → wstETH (approve awaited + wrap)
await lido.unwrap({ amount }) // wstETH → stETH (single tx)
await lido.getWithdrawalEta(ids) // Map<id, seconds> from Lido's queue API
await lido.getRewards() // lifetime rewards + average APR
await lido.getRewardHistory({ limit: 14 }) // daily rebase events, newest first
为什么撤退路线看起来像它一样
每一个选择都是在生产中付费的:
- 许可证第一数字 :
requestWithdrawal签一份EIP-2612许可证并驾车 内部requestWithdrawalsWithPermit单一交易(和移动交易, 而不是批准+请求. - 广播前证明: 许可路径被模拟
eth_call先说 糟糕的签名必须倒下,而不是燃烧气体. - 倒计时等待批准: 在批准和请求路径中 因为请求的气体估计数 折抵未计提的津贴.
- 已验证许可域: stETH 符号为"2"版本, wstETH 为"2"版本
"1"——两相对证物上链
DOMAIN_SEPARATOR错误 版本恢复到不同的符号并返回时没有可读的理由. - 要求上限: 队列每个请求最多需要1000stETH; 在同一交易中将超额金额分割为多个请求 (每要求800美元上限为-1000为Steth等值,费率为: 向上飘去).
- 前卫数字 :
stake检查isStakingPaused财务报告和审定财务报表getCurrentStakeLimit在估计气体之前,因为原始还原带 也没有可读的理由. - 结构账户检查: 可写性为
typeof account.sendTransaction === 'function'没有instanceof- 一个重复的 账户包复制失败instanceof帐号正常. - 没有
AbortSignal.timeout编号 :AbortSignal.any: Hermes(反应土著) 船舶AbortController但不是那些静态的,这里的一切都取决于它们. - REST 端点为配置: APR,队列ETA和奖励历史
来自于利多的公共前端API(
eth-api.lido.fi, (中文(简体) ),wq-api.lido.fi, (中文(简体) ),reward-history-backend.lido.fi),通过config.endpoints。 。 。 . 连锁流动从不依赖它们:ETA和奖励是装饰和 降解为空结果,永远不要扔出.
配置
new LidoProtocolEvm(account, {
provider, // RPC url or EIP-1193; defaults to the account's provider
chainId, // default 1; other chains must supply the fields below
referral, // forwarded to submit() — Lido Rewards-Share integrators earn on stake flow
addresses, // { stEth, wstEth, withdrawalQueue }
permitDomains, // { stEth: { name, version }, wstEth: { name, version } }
endpoints // { apr, withdrawalQueueApi, rewardHistory }
})
只有主网舰作为默认部署——故意. 测试网(如:. Hoodi)的配置必须明确,所以没有人与未经核实的人物有利害关系 静悄悄地地址默认.
接口
IStakingProtocol数字 : stake 编号 : quoteStake, (中文(简体) ), requestWithdrawal 编号 :
quoteRequestWithdrawal, (中文(简体) ), getWithdrawalRequests, (中文(简体) ), claimWithdrawals 编号 :
quoteClaimWithdrawals, (中文(简体) ), getStakedBalance, (中文(简体) ), getApr。 。 。 .
承接不是贷款:贷款 withdraw 是同步的,同时不承担
是两相交换, 请求输入队列, 结束带外
(通常为几天),只有到那时,才能要求获得原生的地物. 建模
作为 ILendingProtocol.withdraw 将生成一种方法,用于返回
收不到钱,就会抽筋 borrow编号 :repay 作为不支持。 这个
诚实的界面命名队列 。 包/包、ETA和奖励历史
供应商专用的额外设备,使核心能够用其他液体执行
协议.
测试
pnpm build # tsup → dist/
pnpm test # offline unit + conformance tests (vitest, stubbed EIP-1193 provider)
pnpm verify:live # read-only checks against mainnet (views, REST, eth_call simulation; needs dist/)
活动
describeActivity(tx, { own }) 标签 Lido 交易一个钱包的历史, 离线和同步。 交易是利多的 当它调用三个合同之一时 案件被配置在(stEth, (中文(简体) ), wstEth, (中文(简体) ), withdrawalQueue ——主网默认)在该链上,选择者是:stETH submit → stake "夺去ETH";wsteth wrap → wrap "疯狂的史蒂克", unwrap → unwrap "未包装的 wsteth"; 退出队列 requestWithdrawals 编号 : …WithPermit 编号 : …WstETH 编号 : …WstETHWithPermit → unstake "请求退出", claimWithdrawals 编号 : claimWithdrawalsTo 编号 : claimWithdrawal → claim "请求ETH". 选择器在模块负载时从签名中计算(LIDO_ACTIONS) (中文(简体) ). approve 编号 : transfer 斯德克或斯德克不是利多行动,而是无效的,其他一切也是如此。 字幕 "Lido · Ethereum", (中文(简体) ), counterparty 合同要求; assetsIn 编号 : assetsOut 是钱包在收件时带有模块标签的stETH / wstETH / unstETH 的净移动.
装入 fixtures/activity/ 是测试钱包的资金支持运行(提交、包装、未包装、请求Westdrawals WithPermit,索赔Westdrawals;2026-08-31.09-04); negatives/ 持有SSV的股权 和USDT的批准.