LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 行情分析 > Bancor合约v0.6版本

Bancor合约v0.6版本

2020-05-29 JTC 来源:区块链网络

为了准备即将发布的Bancor V2版本,我们正在引入以太坊上的Bancor合约进行协议升级— Bancor v0.6.

本文简要概述了v0.6中的新增功能,其中包括:

● 大幅降低gas费用(平均降低30%)

● 新的流动资金池创建过程(多步完成一个功能)

● 新版SDK(软件开发工具包)

● 简化的智能合约界面

在目前正在进行的安全审核期间,Bancor v0.6将在未来几周内部署到以太坊主网。

之后,Bancor V2计划于6月底发布,然后等待成功的安全审核。 有关V2如何消除非永久性损失,如何在任何ERC20代币上实现流动性增长和代币敞口的更多信息, 请阅读Bancor V2 公告贴。

Bancor 开发人员文档目前正在更新中,以展现新的v0.6版本。 若文档完全更新以及v0.6在Mainnet上发布后,我们将通知Bancor开发人员电报群。

我们建议流动池创建者在v0.6发行后升级流动池,并建议第三方集成商更新其代码以从这些升级中受益。

v0.6升级:

●? ? 降低兑换所需的gas费用

●? ? 删除以太币,而直接使用ETH

●? ? 简化版BancorNetwork API(应用程序接口)

●? ? 新的流动资金池创建过程

●? ? 用于管理流动性的新API /事件

●? ? 多种兑换器类型

●? ? 新的JavaScript SDK /后端API

●? ? 术语整理和统一

●? ? 新地址和弃用的功能

降低Gas费用

就目前的gas成本而言,在Bancor上进行兑换成本相对较高,因为大多数兑换都是沿一条兑换路径进行多次较小的兑换,直到今天,每次兑换都以相当独立的方式进行。

新的Bancor兑换器彼此之间可以更有效地工作,同时仍然保持各自对储备的控制权。 从而使转换得到优化,并以直接路径将其发送到最终目的地。

通过减少多余的转换,Bancor协议v0.6可以平均降低30%的gas费用。

这项新设计以及其他关键更改可将大多数兑换所需的gas费用降低约30%,对某些代币而言,gas费用甚至可降低60%。

以下是基于Ganache测试的一些示例:

这些数字是基于具有相对较低的转换gas费用的ERC20测试实施得出的-在许多主网代币上节省的成本甚至更高。

减少gas费用的其他原因包括移除以太币(下面有详细信息)以及其他更小规模的优化,例如将白名单逻辑从网络合约直接移到兑换器中。

移除以太币还包括一个新的临时向后兼容层,它会增加一些gas费用-但是在移除后这一费用将进一步下降。

移除以太币

Bancor合同的V1版本使用包装的以太币,该代币允许合约以与处理其他ERC20代币完全相同的方式处理ETH。

但是,这会使集成变得更加复杂,这种集成需要在特殊情况下了解和处理EtherToken,这一集成还增加了兑换所需的gas费用。为了使开发人员能够更轻松地与合约集成以及用户与合约进行交互,我们从系统中移除了以太币,而希望直接与ETH进行交互。这就要求合约要复杂一些,以简化系统中集成商和用户的工作。

具体来说,兑换器现在需要在内部处理特殊的ETH地址,因此对外部接口是透明的。另一方面,用户现在可以在兑换以及从Bancor池添加/删除流动性时简单地发送和接收ETH。

ETH可用作系统中的储备,目前在系统中以特殊地址表示:

0xEeeeeEeeeEeEeeEeEeEeEeeEEEeeeeEeeeeeeeEEeE

我们选择该特定地址是因为它易于记忆,极不可能与真实地址发生冲突,并且它正在被DeFi(去中心化金融)领域中的其他项目(例如KyberNetwork)使用。

如果ETH真的拥有自己的ERC20代币,我们认为最好采用单一标准,而不是建立更大程度的多元化。

在集成方面意味着什么?

首先,此更改是完全向后兼容的,不应该影响现有的集成,但是强烈建议你更新集成,因为不建议使用现有的API,并且将来将不再支持该API。

如果你决定升级现有代码,则更改过程非常简单:

● 应在兑换路径中使用新地址,而不要使用当前的Bancor以太币地址

● 另外,在添加/删除流动性时,只需使用fund / addLiquidity命令发送ETH,而不再需要包装或拆开ETH。 (请注意,这仅适用于新部署的兑换器或在0.6版本之后升级到最新版本(兑换器版本28)的兑换器。)

可以使用version()函数查询兑换器的版本。

简化版BancorNetwork API

BancorNetwork合约是Bancor协议系统的主要入口点。 在发布V2之前,我们决定趁此机会整理并简化BancorNetwork API,以便更轻松地进行集成。

今天,该合约有两个主要用途:

● 查询预期兑换率

● 执行兑换

目前取代了这些功能的不同排列,每个动作只有一个功能,可以支持所有不同的排列。

兑换路径

BancorNetwork合约现在公开了一个新的函数conversionPath,它允许直接在链上生成兑换路径-

请注意,出于多种原因,建议使用脱链SDK来生成路径:

● SDK会找到两个代币之间成本最低的兑换路径

● 就gas费用而言,链上路径查找算法昂贵,因为此类算法需要大量的计算和存储访问请求

由于这些原因,新的链上功能应主要用于无法有效建立链下集成的地方。

预期兑换率

为了得到预期兑换率, 需要使用新的 rateByPath 函数:

执行一次兑换

执行兑换需要使用 convertByPath 函数 :

从ERC20代币进行兑换时,只需在调用convertByPath函数之前批准网络地址即可。

新的流动性池创建过程

v0.6引入了新的机制,可以将池创建从一个多步骤的过程(包括手动工作和找到正确的二进制文件)转变为仅几个步骤。 v0.6通过使用简单的工厂函数简化了新转换器的创建,该函数将为您创建一个新的流动性池并在网络上激活它:

调用此函数后,新池将立即被不同的流动性门户例如 XNation, 1inch, Paraswap, Katana等发现。

查看: 如何在Bancor上增加流动性

请注意,新池将为空,并且需要流动性才能进行兑换。 还值得一提的是,新兑换器的智能合约类型现在特定于兑换器的每次排列-LiquidTokenConverter包含特定于Liquid Token的逻辑,而LiquidityPoolConverter包含特定于流动性池的逻辑。

用于流动性管理的新API &事件

到目前为止,新的Bancor流动性池需要在创建之前进行融资。 此外,如果池的流动性被完全移除,池也将停止运行。

随着v0.6的引入,可以在筹集资金之前创建流动性池,并且这一完全相同的机制允许在消除所有流动性后再次为它们提供资金。添加初始流动性时发行的池代币数量等于存放在空池中的储备的几何平均值。 例如,如果一个池由1,000,000 DAI和10,000 BNT资助,那么它将铸造100,000 DAIBNT池代币。

新的addLiquidity和removeLiquidity函数还提供了更大的灵活性,例如在提供流动性时传递了预期的份额。 它们也更自然,不需要计算就可以了解要增加多少流动性。

增加流动性

移除流动性

新的兑换器还包括新事件,只要有人添加/删除流动性以便更容易跟踪,就会触发这些新事件:

添加流动性之后:

删除流动性之后:

多种兑换器类型

当我们朝着V2中的新池设计迈进时,我们决定引入BancorConverter合约的不同排列,以实现更大的灵活性、更小的二进制大小和对每个版本的更有效控制,而不是一个单一的大型合约来完成所有工作。

新的ConverterBase兑换器合约(以前称为BancorConverter)现在是其他兑换器类型的基础合约-

●?LiquidTokenConverter —此兑换器管理Liquid Token(流动代币)。 流动代币具有单一储备,并且是该机制中的主要实体。

● LiquidityPoolConverter — 此兑换器是管理流动性池的兑器的基本合同。 流动性池有两个或多个储备,这是该机制的主要实体。 兑换器允许在储备之间进行兑换。

这些兑换器包含一个新属性 — converterType — v2发布后即可使用,以便在需要时区分不同的兑换器类型。

新的JavaScript SDK / 后端APIs

我们发布了新版本的Bancor SDK,该版本允许直接在区块链之外查询数据。

第一个版本是初步版本,但已经包含一个高级组件—链外路径查找器,它在Bancor网络中的任意两个代币之间生成最佳兑换路径。可在此处获得相关文档-

https://docs.bancor.network/sdk/using-the-bancor-sdk

我们计划在未来几个月内扩展和升级SDK,使其具有更多功能,以便更轻松地访问网络中的所有数据和统计信息。

我们还将最终确定后端RESTful API的新版本和改进版本,以使其与Bancor生态系统更加一致,并且更具通用性,从而可以更轻松地进行集成。

术语整理&统一

最后,你会注意到新合约中的所有术语都发生了变化。 我们决定整理并统一合约、SDK、后端API等中的术语。

所有这些更改都向后兼容,但建议你在与较新版本的合约进行交互时使用新版本的功能,因为现已弃用以前的功能(在开发人员文档中已将标明)。

还要注意,所有require / return语句现在都包含一条错误消息,可以帮助你跟踪调试时崩溃的原因或已部署合约中失败交易的原因。

新的地址和弃用的功能:

新BancorNetwork地址

新的BancorNetwork合约地址将与新版本一起部署。

与往常一样,请确保你在ContractRegistry中查询BancorNetwork合约的最新地址,以免需要更改硬编码地址。

请参阅:

https://docs.bancor.network/guides/working-with-bancor-network

弃用功能

许多功能已被弃用,并被新版本取代。

尽管已设置了向后兼容性层,但强烈建议您更新使用新功能,防止将来代码被破坏。

总结

这篇文章概述了合约中的主要更改,但是正如你可以想象的那样,此版本中的代码经历了许多较小的更改和清理。有关每个合约/函数的特定详细信息,请确保你会查看Bancor开发人员文档:

https://docs.bancor.network/ethereum-contracts/ethereum-api-reference

目前正在更新此文档以展现v0.6。 未来几天,我们还将发布v0.6测试网。

有关v0.6文档、测试网和Mainnet版本的最新更新,请加入Bancor开发人员电报频道

https://t.me/BancorDevelopers

—-

编译者/作者:JTC

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...