@anywalletkit/protocol-scaping-spl-stake-pool-solana (英语)
一个简单的软件包 @anywalletkit/wallet-solana 钱包账户赌注
通过游泳池 SPL 游泳池
程序 - 池户 默认情况: 赌注SOL ~ 吉多索尔,
立即退出储备或通过利害关系账户,索赔,改为
费率,APY和收入.
安装
npm install @anywalletkit/protocol-staking-spl-stake-pool-solana @anywalletkit/core
# or: pnpm add @anywalletkit/protocol-staking-spl-stake-pool-solana @anywalletkit/core · yarn add @anywalletkit/protocol-staking-spl-stake-pool-solana @anywalletkit/core
时间: @anywalletkit/protocol-scaping-spl-stake-pool-solana (英语)发表于 发布工作流程 与出处.
建为 第四次审查会议 StakingProtocol 类型 内
@anywalletkit/core - 在Lido(ETH液体吸取)后,SSV(用电筒吸取)
冷却器(GRAM liquid sawing)和通取器(GRAM sawing)——以及EVM的第二个. 基础类在
src/staking-protocol.js 是同一文件, 字节相同: 类型是
链-不可知,和索拉纳的"双相"出局(即时对入局账户+)
(c) 符合其要求的“队列”索赔合同.
机械师是从一个生产钱包(React Industrial/Hermes)中取出.
核查状况(2026-09-07,主网): 赌注和立即退出
实际资金 从钱包( 4个交易, 金额匹配模块的)
引用到灯塔) 延迟退出 (记账+停用)是
经核查 simulateTransaction 作为大持有人 索赔 只有通过
索赔周期需要具备以下条件:
1SOL值,目前仍在运行. scripts/verify-live.mjs 重新检查
账户能承受的每个形状, 密钥从未涉及.
SPL的赌注池和JitoSOL是什么
SPL 的股份池持有许多验证人的股份账户并有一个准备金。 这个
池名符号 (JitoSOL 用于 Jito; bSOL 和大多数验证器 LST 使用相同的
程序)是指其SOL值为
total_lamports / pool_token_supply,每个时代移动一次(~2天)
游泳池的曲柄应用了时代的奖励. Jito 在顶部添加 MEV 提示
通货膨胀奖励.
- 铃声 是一个
DepositSol指令: SOL 到保留地, 符号 价格(Jito:不收取押金). - 即时退出 —— 说
WithdrawSol: 烧令牌, SOL 由储备支付 一次,减去游泳池的SOL取出费(吉托:0.1%). 只是当 储备足够(一般为~1000 SOL). - 延迟退出 —— 说
WithdrawStake: 刻入符号, 池会分割一个验证符 钱包拥有的一个新入息账户的入息账户(吉托:0.1%) ));此模块在同一交易中关闭它。 划时代之后 边界 索赔 扫描SOL(和 账户的租金) 回到钱包。 利害关系方案的最低授权 (1 SOL + 租金)是这条路的地板.
钱包的赌注账户有种子
(单位:千美元)createWithSeed(wallet, "<pool>-unstake:<i>", StakeProgram),8个插槽),所以
队列可以从钱包中单独恢复, 从未出现过麻风键盘
标志。 预设地址( SOL 发送给可预见种子)
地址,地点 CreateAccountWithSeed )仍然使用: 退出
首先用系统将 SOL 移动回钱包 TransferWithSeed,则
在那里创建赌注账户.
使用量
import WalletManagerSolana from '@anywalletkit/wallet-solana'
import SplStakePoolProtocolSolana from '@anywalletkit/protocol-staking-spl-stake-pool-solana'
const wallet = new WalletManagerSolana(seed, { provider: 'https://api.mainnet-beta.solana.com' })
const account = await wallet.getAccount(0)
const jito = new SplStakePoolProtocolSolana(account) // pool: 'jito' by default; reads ride the account's RPC
// Stake 1 SOL — JitoSOL lands at the pool rate (DepositSolWithSlippage, 0.5 % floor)
const { hash, fee } = await jito.stake({ amount: 10n ** 9n })
await jito.awaitConfirmation(hash)
// Exit: delayed (default — stake account, claim after the epoch boundary) or instant (reserve)
await jito.requestWithdrawal({ amount: 10n ** 9n }) // ≥ 1 SOL worth
await jito.requestWithdrawal({ amount: 5n * 10n ** 7n, mode: 'instant' })
// The queue, then the claim
const { requests, claimableIds } = await jito.getWithdrawalRequests()
if (claimableIds.length) await jito.claimWithdrawals({ ids: claimableIds })
// Views
await jito.getStakedBalance() // { balance: JitoSOL, rate: lamports per JitoSOL (1e9), total: lamports }
await jito.getPoolData() // rate, previousRate, updated, instantLiquidity, fees, minimumStakeLamports…
await jito.getApr() // percent — on-chain estimate, or your provider's figure via the `apr` hook
await jito.getRewards() // { earned, entryRate, deposited, minted, firstStakeAt } from the account's own deposits
配置
new SplStakePoolProtocolSolana(account, {
pool: 'jito', // or { name, pool, mint, symbol } for any pool on the program
provider: [url1, url2], // JSON-RPC URL(s), a @solana/rpc client, or { request(method, params) }
commitment: 'confirmed',
slippageBps: 50, // floor on quoted amounts (..WithSlippage instructions)
computeUnitLimit: 300_000,
computeUnitPrice: 50_000n, // micro-lamports per unit — ≈ 0.000015 SOL priority fee
unstakeSlots: 8, // delayed exits tracked per wallet
apr: async () => fetchJitoApy() // provider APY hook (Jito's stats include MEV); default: epoch-over-epoch estimate
})
只读账户( E){ getAddress })对于每个视图都足够;写作需要
账户 sendTransaction。模块将账户交给一个空的
{ version: 0, instructions } 发文 @anywalletkit/wallet-solana 套装
(一) blackash的一生和付费人签名、签名和广播
键从不输入模块.
规则失效
在建立任何交易前检查过 :
- 配置的薄荷必须等于链上池的薄荷; 池账户 须由SPL Stake 池程序拥有;
- 池必须更新当前时代(
last_update_epoch == epoch——本方案拒绝每笔存款和退款; - 延迟退出必须至少产生效果
rent + minimum delegation离开 从验证器账户中拆分的账户的最小值相同(对照 现场平衡,不仅仅是最后更新的列表, 否则赌注程序Split失败; - 立即退出必须符合储备减其租金的规定;
- 每一笔钱都花出去了
..WithSlippage楼层(默认为0.5%); - 限制向当局存入或提取特别业务费的集合被拒绝 为了那条路,而不是去失败.
为什么指令是手编码的
@anywalletkit/wallet-solana 以 @solana/* 3.十. 出版情况
利害关系池客户端想要 web3.js v1 和 @solana-program/stake 想要5号包;
要么把第二个索拉纳堆放进消费者的包里 六个
指令 此模块需要稳定、 有文件记录的布局( Stake Pool)
DepositSol 14个 WithdrawStake 10个 WithdrawSol 页:1
..WithSlippage 变式25/24/26,系统 CreateAccountWithSeed 3个,
铃声 Deactivate 第5条 Withdraw 4),对照程序来源核实
和模拟—— src/spl-stake-pool-codec.js 将其编码为
@solana/addresses 财务报告和审定财务报表 @solana/instructions 只有这个.
测试
npm test # unit tests over mainnet fixtures (pool state, validator list, stake account)
npm run verify:live # reads + simulateTransaction of every shape on mainnet, no keys
许可证
阿帕奇 - 2.0
活动
describeActivity(tx, { own }) 标签 SPL STake Pool 交易,用于钱包的历史、离线和同步。 一个交易就是这个模块 当Stake Pool程序 SPoo1Ku8WFXoNDMHPsrGSTSG1Y47rzgn41SLUNakuHy 它所引用的方案之一call.programs 编号 : call.to) (中文(简体) ). 指针标签——指针池指令基础的第一个字节58 call.data 当源头经过它时——选择那种: DepositSol 14个 DepositSolWithSlippage 25 → stake "Soked SOL"; (中文(简体) ); WithdrawSol 16/26 ∗∗ unstake (原始内容存档于2018-10-21) (中文(简体) ). Unstead JitoSOL (即时); WithdrawStake 10/24 ∗∗∗ unstake "请求不取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取 没有数据,游泳池运动就决定(放在钱包上 ) 桩子上,被烧掉 —— 无人取走,SOL马上到 —— 。 每一个预设的池形符号( E)SPL_STAKE_POOL_ADDRESS_MAP)和案例的池被贴上标签并取出字幕名称("Jito · Solana"); 同一程序的未知池仍然被确认为 "SPL Stake Pool · Solana"。 。 。 . counterparty 是池账户。 清理一个已完成的延迟未取取取( 取取取程序) withdraw ——它不包含股份池指令. own 应当包含钱包 财务报告和审定财务报表 其代号账户:来源使SPL向所有者移动正常化,但当ATA进入时,将代号账户地址保持为正确网的源头 own。 。 。 .
装入 fixtures/activity/ 是测试钱包资助的 Jito 运行(DepositSol ×2, 撤回Sol ×3; 2026-09-07...-1007, 从 getTransaction jsonParsed) (中文(简体) ); negatives/ 持有平面SOL转接和平面JitoSOL SPL转接(仅形状).