本文介绍了Abracadabra如何利用Gelato Web3 Functions自动化其收益策略,以提高效率和用户回报。文章重点介绍了GMX策略,并简要提及了LUSD、Interest和Solidly策略,展示了Web3 Functions在DeFi应用中的强大功能。
博客 — 用例
Abracadabra 是一种去中心化金融(DeFi)工具,允许用户存入代币、赚取利息并借入一种与美元Hook的稳定币,称为 Magic Internet Money (MIM),这是一种与美元Hook的稳定币。Abracadabra 的真正魔力来自于它允许用户解锁其资产的价值并以不同的方式使用它,从而扩展他们在 DeFi 世界中的机会。
这种魔力是由 Abracadabra 的智能策略和 Gelato 的 Web3 Functions 的帮助共同实现的,后者可以自动执行这些策略以实现最大效率。
Gelato Web3 Functions 使智能合约开发者能够安全地从任何 API 获取数据,并允许你运行自定义逻辑以可靠地将数据推送到链上。
让我们讨论一下 GMX 策略:Abracadabra 使用 Gelato Web3 Functions 创建一个完全自动化的流程,该流程使用 Gelato Web3 Functions 有效地管理奖励代币。让我们深入了解一下!
该函数首先检查自上次执行该策略以来经过的时间。这是通过从合约中获取上次执行的时间戳,并将其与当前时间进行比较来执行的。如果设置的时间间隔尚未过去,该函数将停止执行。Gelato 的 Web3 Functions 提供了一个 provider,允许你的代码在任何与 EVM 兼容的网络中执行 RPC 调用。
let lastExecuted = await contract.lastExecution() ;
let timeNowSecBig = BigNumber.from(+timeNowSec.toFixed(0));
if (timeNowSecBig.lt(lastExecuted.add(intervalInSeconds))) {
return { canExec: false, message: "" };
}
然后,该函数检查合约中累积的奖励代币余额。这是通过调用合约上的一个函数来完成的,该函数返回索赔后的奖励代币总余额。
let rewardTokenBalanceResponse = await contract.totalRewardsBalanceAfterClaiming();
let rewardTokenBalance = rewardTokenBalanceResponse;
如果有要收集的奖励代币(即,如果余额大于零),该函数会从 0x API 获取报价,以将奖励代币转换为所需的输出代币。该 API 需要奖励代币的地址、所需的输出代币以及要兑换的奖励代币数量。如果 API 需要 API 密钥,可以使用 secrets 来完成。有关更多信息,请单击此处。
let quoteApi = `${zeroExApiBaseUrl}/swap/v1/quote?buyToken=${outputToken}&sellToken=${rewardToken}&sellAmount=${rewardTokenBalance.toString()}`;
let quoteApiRes: any = await ky.get(quoteApi).json();
let quoteResObj = quoteApiRes;
然后,该函数计算它愿意从兑换中接收的最小可接受的输出代币数量。这是为了确保如果滑点过高,兑换将不会进行,从而保护用户免受潜在的价格影响。
let toTokenAmount = BigNumber.from(quoteResObj.buyAmount);
const minAmountOut = toTokenAmount.sub(toTokenAmount.mul(rewardSwappingSlippageInBips).div(BIPS);
最后,该函数准备一个交易以执行代币兑换。这涉及对 run 函数的数据进行编码,该函数将在执行时执行代币兑换操作。
const iface = new Interface(["function run(uint256,bytes) external"])
let callData = iface.encodeFunctionData("run", [minAmountOut.toString(), quoteResObj.data]);
继 GMX 策略之后,Abracadabra 还采用了另外三种策略,这些策略由 Gelato 的 Web3 Functions 自动化。这些包括 LUSD 策略、利息策略和 Solidly 策略。每种策略都有助于优化收益耕作、管理流动性并最大化 Abracadabra 生态系统中的用户回报。
Web3 Functions 为开发者提供了一种创新的解决方案,可以轻松创建无服务器的去中心化应用程序。
加入我们的社区和开发者讨论 Discord。
Web3 Functions 今天在 private beta 中可用。有关更多信息,请查看 Web3 Functions documentation。要了解如何编写、测试和部署你自己的 Web3 Functions,请查看我们的 in-depth tutorial。
点击此处 申请成为首批测试 Gelato 的 Web3 Functions 的人之一!
- 原文链接: gelato.cloud/blog/abraca...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!