手动工作流程
手动发送交易涉及以下步骤:1
构建初始交易
汇集您的指令并签署交易,以便进行模拟。
2
优化计算单元
模拟交易以确定所需的精确CU,并添加一个小缓冲。
3
添加优先费用
从Helius优先费用API获取费用估算并将其添加到您的交易中。
4
发送并重新广播
发送最终交易并实施稳健的轮询策略以处理确认。
Helius SDK是开源的。您可以查看我们Node.js SDK和Rust SDK中
sendSmartTransaction方法的底层代码,查看此工作流程的生产级实现。1. 构建初始交易
首先,收集您想在交易中包含的所有指令。然后,创建一个Transaction或VersionedTransaction对象。您还需要获取一个最近的区块哈希。
此示例准备一个版本化交易。在此阶段,您还必须对其进行签名,以便在下一步进行模拟。
2. 优化计算单元 (CU) 使用
为了避免浪费费用或交易失败,您应尽可能准确地设定计算单元 (CU) 限制。您可以通过使用simulateTransaction RPC 方法模拟交易来实现这一点。
最佳实践是首先用高 CU 限制定进行模拟,以确保模拟本身成功,然后使用响应中的 unitsConsumed 来设定实际限制。
3. 设置合适的优先费用
接下来,确定要添加到交易中的最佳优先费用。使用 Helius Priority Fee API 是根据当前网络条件获取实时估算的最佳方式。 您需要调用getPriorityFeeEstimate RPC 方法。为了通过 Helius 的抵押连接获得最大包含机会,请使用 recommended: true 选项。
4. 构建、发送和确认
现在,组装带有新计算预算指令的最终交易,发送它,并实施一个强大的轮询机制以确认它已完成。 一个常见的模式是周期性地重新发送相同的交易,直到区块哈希过期。仅在您也获取新区块哈希时重新签名交易。 使用相同区块哈希重新签名可能导致确认重复交易。防止三明治攻击
为了避免您的交易被统计关联到三明治攻击的验证者,您可以在RPC URL中添加mev-protect=true查询参数——不需要更改您的交易逻辑:
MEV保护
查看MEV保护的工作原理、支持的方法及其权衡。
赚取交易回扣
您可以选择赚取您的交易所创造的MEV的一部分,自动以SOL支付——不需要更改您的交易逻辑。交易回扣
在您的
sendTransaction调用中添加一个参数即可开始赚取SOL回扣。相关方法
sendTransaction
发送签名交易到网络
simulateTransaction
模拟交易以估算计算单元
getSignatureStatuses
检查交易确认状态
getLatestBlockhash
获取用于交易签名的最近区块哈希
getBlockHeight
获取当前区块高度以进行到期检查