释放DeFi自动化:Opium与Gelato的Web3 Functions集成

  • gelato
  • 发布于 2023-06-03 17:36
  • 阅读 25

本文介绍了Opium Protocol如何集成Gelato的Web3 Functions来实现去中心化金融产品的自动化。通过Gelato的Web3 Functions,Opium Protocol可以自动执行与定期存款和取款相关的智能合约功能,从而简化用户的操作,提高了交易效率,降低了gas费用。

博客 — 用例

释放 DeFi 自动化: Opium & Gelato 的 Web3 函数集成

Opium Protocol 是一个去中心化平台,允许用户创建和交易定制的金融产品,而无需依赖第三方。

该平台通过 Opium 池简化了去中心化衍生品交易,交易者可以在其中质押资金。Opium Protocol 已经集成了 Gelato 的 Web3 函数,以监控和执行池中直接存款和取款的可用性,确保无缝交易。

自动化 Opium 的函数

Opium Protocol 使用 Gelato 的 Web3 函数来自动化与计划存款和取款相关的智能合约函数。这些函数包括:

DepositScheduler

直接存款到池中仅在 Staking 阶段的短暂时间内可用。为了解决这个问题,用户可以通过将抵押品锁定在 DepositScheduler 合约中来安排下一个 Staking 阶段的存款。当直接存款可用时,Gelato 的 Web3 函数会自动执行这些计划存款。

WithdrawalScheduler

同样,用户可以通过将他们的 LP 代币锁定在 WithdrawalScheduler 中来安排下一个 Staking 阶段的取款。当直接取款可用时,Gelato 的 Web3 函数确保执行这些计划取款。

集成

集成首先利用 Opium subgraph 的强大功能,从各自的 Scheduler 合约中收集所有计划的存款和取款。这确保了每个待处理的交易都被跟踪并包含在自动化流程中。

let deposits = await opiumSubgraph.getPendingDeposits();
let withdrawals = await opiumSubgraph.getPendingWithdrawals();

然后,将当前区块时间与池的 Staking 阶段参数进行比较,以确定 Staking 阶段是否处于活动状态,这是计划存款和取款的重要条件。

let currentBlockTime = await web3.eth.getBlock('latest').timestamp;
let isActive = currentBlockTime >= pool.stakingPhase.start && currentBlockTime <= pool.stakingPhase.end;

一旦确认 Staking 阶段处于活动状态,并且计划金额超过储备系数,Gelato Web3 函数就会立即启动。它生成必要的 calldata 来执行计划的存款或取款。

if (isActive && (scheduledDepositAmount > reserveCoefficient)) {
    let depositCallData = gelatoWeb3.generateCallData('deposit', scheduledDepositAmount);
} else if (isActive && (scheduledWithdrawalAmount > reserveCoefficient)) {
    let withdrawalCallData = gelatoWeb3.generateCallData('withdraw', scheduledWithdrawalAmount);
}

为了优化 gas 费用并提高效率,这项战略举措将生成的 calldata 分派到 Opium Multicall 合约的 aggregate 函数。该函数整理多个交易,从而促进平稳的交易过程。

let multicallData = [depositCallData, withdrawalCallData];
let result = await opiumMulticall.aggregate(multicallData);

这种深度集成使用户可以轻松地在 Opium Protocol 中管理他们的存款和取款,同时还可以利用 Gelato 的 Web3 函数提供的自动化优势。

加入这场革命!

Gelato 的 Web3 函数为开发人员提供了一种创新的解决方案,可以轻松创建无服务器的去中心化应用程序。它们可以无缝集成智能合约与链下数据,从而弥合链上和链下世界之间的差距。

加入我们的社区并在 Discord 上进行开发者讨论。

Web3 函数今天可以在 private beta 中使用。有关更多信息,请查看 Web3 函数 文档。要学习如何编写、测试和部署你自己的 Web3 函数,请使用此 Hardhat 模板

点击 这里 申请测试 Web3 函数!

  • 原文链接: gelato.cloud/blog/defi-a...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
gelato
gelato
The Web3 Developer Cloud. Launch your own chain via our #1 Rollup-As-A-Service platform.