使用 Bundle 交易在 everPay 上构建 DEX

  • PermaDAO
  • 更新于 2023-08-12 13:46
  • 阅读 1391

普通交易只能实现两个账户之间的转账,bundle 交易可以实现多个账户的转账,而且这些转账是原子性的,bundle 中有一笔交易失败则整个 bundle 交易进行回滚。

“everPay 为用户提供了实时的代币支付结算。现在我们提供了更比转账更强大的支付原语(opAction)—— bundle 交易。”

什么是 bundle 交易?

普通交易只能实现两个账户之间的转账,bundle 交易可以实现多个账户的转账,而且这些转账是原子性的,bundle 中有一笔交易失败则整个 bundle 交易进行回滚

bundle 的特性

  • 多对多:可以进行多笔转账。
  • 原子性:多笔转账绑定到一笔 everPay 交易中。
  • 事务性:一笔转账失败则整个 bundle 交易失败。

一笔 bundle 交易可以包含多笔转账,转账以数组的形式进行排序和组装。每个 bundle 交易都有一个唯一的 hash 标识,该标识是将 bundle 交易序列化后计算的 hash。

bundle 交易中的所有转出方都需要对 hash 标识进行签名,以确保资产转出方认同该笔 bundle 交易。缺失任何转出方的签名,交易都无法成功。 一个账户转出到多个账户时,仅需要一次签名;多个账户转到多个账户时,需要所有转出方的签名。

bundle 的应用场景

  • 批量转账

    bundle 交易常见的应用场景是批量转账。用户使用普通交易向十个地址进行转账需要进行十次签名,使用 bundle 交易向十个地址转账仅需一次签名。

  • 原子兑换

    可以使用 bundle 进行两个账户之间相互转账。由于每一笔转账支持不同的币种,因此可以使用 bundle 进行账户之间的原子兑换

例如 A 账户想要向 B 账户支付 100 USDT 购买 1 个 AR,A 生成一笔 bundle 交易:

A 向 B 转 100 USDTB 向 A 转 1 AR

这笔交易的转出方分别是 A 和 B,需要 A 和 B 同时进行签名交易才能执行。

A 先签署 bundle 之后把 bundle 以及自己的签名发给 B,B 认可 A 的交易规则并进行签署和交易提交。bundle 交易提交 evePay 后会发生:

  1. 校验 A 和 B 签名的合法性

  2. 将 100 USDT 从 A 转到 B

  3. 将 1 AR 从 B 转到 A

步骤 1-3 任何一步失败,整个交易回滚。

everPay Swap 功能

everPay Swap 由 everPay 生态合作伙伴 Goblin 团队研发,在 everPay 中进行了深度集成。bundle 交易保证了 swap 交易的原子性和事务性,让用户兑换更加安全和去中心化。 <!--StartFragment-->

<!--EndFragment--> 任何开发者和团队都可以使用 bundle 交易打造自己的 DEX 兑换功能,使用 everpay-js SDK 将兑换集成到您的页面。

everpay-js中文文档:

https://docs.everpay.io/docs/sdk/everpay-js/intro

关于 PermaDAOWebsite | Twitter | Telegram | DiscordMediumYoutube

0.png

点赞 0
收藏 0
分享
该文章收录于 Arweave 技术专栏
17 订阅 40 篇文章

0 条评论

请先 登录 后评论
PermaDAO
PermaDAO
0x40F9...8718
Arweave 生态系统的共建者 DAO。 @ArweaveEco will be adopted by more developers. All projects of Arweave ecology can post their tasks and rewards here. @everVisionHQ@permaswap@ArweaveSCP