快速访问
binary-prediction
端到端 eATA 托管
rewards-delegated-vrf
Base-layer 提交后付款
spl-tokens
非托管转账
需要从客户端而非链上转移 token?请参阅
快速入门。
两种托管模型
下面的演练介绍 eATA 托管;post-commit 变体则位于高级代码片段中。
分步指南
让你的程序获得 eATA 的 authority,将其委托,在 ER 上通过 PDA 签名转移资金,然后结算回 Solana:1
添加
#[ephemeral] 属性并导入 SDK helper。2
通过你的托管 PDA 拥有 Ephemeral SPL Token 程序下的 eATA。
3
通过 CPI 调用 Ephemeral SPL Token 程序,将 eATA 委托给 ER。
4
在 rollup 内以托管 PDA 身份签署转账。
5
将账户返回 base layer。
托管示例
你可能需要以下软件包,其他版本也可能兼容:代码片段
- 支持 ER 的程序
在 #[program] 外添加 #[ephemeral],并导入所需的 SDK helper。
- 创建 eATA
你的程序拥有一个状态 PDA(例如 Pool),它是资金的 authority。ER 上的托管使用由该 PDA
拥有的 ephemeral ATA(eATA);它在 Ephemeral SPL Token 程序
(SPLxh1LVZzEkX99H6rqYizhytLWPZVV296zyYDPagv2)下由 [owner, mint] 派生。
- 委托 eATA
通过 CPI 调用 Ephemeral SPL Token 程序来委托 eATA(DelegateEphemeralAta,
discriminator 4)。
- PDA 签名转账
委托 eATA 后,通过 CpiContext::new_with_signer 使用由托管 PDA 签名的 SPL Token CPI
在 rollup 内转移 token。signer seed 为 [POOL_SEED, bump];程序自行授权付款,无需用户签名。
- 提交并取消委托
使用 MagicIntentBundleBuilder 提交 ER 状态,并将账户返回 base layer。
高级代码片段
- 非托管转账
- Base-layer 提交后付款
如果你的程序不托管资金,而只是代表用户在两个已委托账户之间转移 token,则无需 PDA signer。
authority 是用户的 ⬆️ 返回顶部
Signer,并使用普通的 CpiContext::new。Solana 浏览器
查看你在 Solana 上的交易和账户详情:Solana 浏览器
官方 Solana 浏览器
Solscan
浏览 Solana 区块链
Solana RPC 提供商
通过现有 RPC 提供商发送交易和请求:Solana
Free Public Nodes
Helius
Free Shared Nodes
Triton
Dedicated High-Performance Nodes
Solana 验证器仪表盘
查看 Solana 验证器基础设施的实时更新:Solana Beach
Get Validator Insights
Validators App
Discover Validator Metrics
服务状态
订阅 Solana 与 MagicBlock 的服务状态:Solana Status
Subscribe to Solana Server Updates
MagicBlock Status
Subscribe to MagicBlock Server Status

