本文介绍了Opium Protocol如何集成Gelato的Web3 Functions来实现去中心化金融产品的自动化。通过Gelato的Web3 Functions,Opium Protocol可以自动执行与定期存款和取款相关的智能合约功能,从而简化用户的操作,提高了交易效率,降低了gas费用。
博客 — 用例
Opium Protocol 是一个去中心化平台,允许用户创建和交易定制的金融产品,而无需依赖第三方。
该平台通过 Opium 池简化了去中心化衍生品交易,交易者可以在其中质押资金。Opium Protocol 已经集成了 Gelato 的 Web3 函数,以监控和执行池中直接存款和取款的可用性,确保无缝交易。
Opium Protocol 使用 Gelato 的 Web3 函数来自动化与计划存款和取款相关的智能合约函数。这些函数包括:
直接存款到池中仅在 Staking 阶段的短暂时间内可用。为了解决这个问题,用户可以通过将抵押品锁定在 DepositScheduler 合约中来安排下一个 Staking 阶段的存款。当直接存款可用时,Gelato 的 Web3 函数会自动执行这些计划存款。
同样,用户可以通过将他们的 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 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!