火星链 火星链
Ctrl+D收藏火星链
首页 > SAND > 正文

COI:技术教程 | ENS:为你的钱包添加多币种支持

作者:

时间:1900/1/1 0:00:00

在Devcon5上宣布了多币种支持特性后,我们很快就在?ENS管理器上实现了这一功能。

许多钱包也紧接着开始支持这一特性。

开发者们可以通过阅读?EIP?、文档以及我们的JavaScript?地址编码库来了解最新的实现细节。

在这篇文章中,我将介绍我们把多币种支持特性接入到自己app中的经验,为其他钱包开发者抛砖引玉,提供大致思路。

解析器

由于这个特性是全新的,许多以太坊库都尚未支持。

为了直接和解析器合约交互,你通过npm下载我们的合约,并导入以下abi。

import{abi}from

'from'

formatsByCoinType

{coinType:0,decoder:,encoder:,name:'BTC'}

浙大区块链课程教材《区块链技术进阶与实战》已出版,由浙大教师编写:近日,浙江大学计算机学院和软件学院宣布将于今年下半年新开区块链课程。据介绍,该课程使用的教材,是由蔡亮、李启雷、梁秀波等浙大教师编写的《区块链技术进阶与实战》,目前已经出版。[2018/4/14]

Fromnowon,weonlyuseformatsByName.

下面我们只使用?formatsByName?函数。

获取支持的币种列表

或许你想接入自己的支持的币种列表。如果你想直接接入我们已经实现了编解码的代币,你应该通过以下代码构造这个币种列表。

exportconstCOIN_LIST=Object.keys(formatsByName)

获取地址

下面是我们在自己的React组件中实现?getAddr?函数的超级简化版本。

通过第一行代码,我们获取到了?coinType?以及?encoder?函数。接下来会用到?coinType?和namehash参数从Resolver合约中获取到某种代币的具体地址。

第四行代码是把地址传给译码器之前先检查是否是空地址,如果是的话就直接返回。因为如果把一个空字符串直接传给编码器,就有可能抛出某些代币类型的错误。

第五行代码把地址的二进制表达形式传给编码函数,将地址以文本形式显示。

设置地址

以下是我们?setAddr?函数的简化版本。

和我们在?getAddr?函数中的处理一样,当地址为空时,我们提前返回这个结果,而不传给解码器。第五行直接用空字符串的二进制表示就行。

验证

验证地址是否符合对应币种的格式十分关键。

如果向?address-encoder?库随便传一个无效的文本,就会抛出错误。

本例中,我们捕获了这个错误并展示了出来。

BCH贴士

通常情况下,对同一条文本先解码再编码,依然会得到一样的文本。但比特币现金表现的不太一样(想要探究具体的技术原因,可以参考这条?

EIP?中的“CashAddr”),比特币现金在编码之后返回文本会加一个“bitcoincash”前缀。下面这个例子显示了原始文本、16进制表示以及查询时BCH编码后的规范表示形式(你可以在

测试用例中找到它)。

总结

在本文中,我们梳理了实现多币种支持的流程,介绍了需要留意的某些细节。事实上这和原来设置/获取地址的操作十分接近,只不过要多传一个?coinType?参数。此外,在涉及到验证和空字符串的问题上,要额外小心。

随着越来越多库支持多币种特性,以后钱包开发者将很轻松地添加这一功能。

原文链接:?https://medium.com/the-ethereum-name-service/how-to-integrate-ens-multi-coin-support-into-your-wallet-for-developers-8d3a8a37d1eb作者:?makoto_inoue翻译&校对:?安仔&阿剑

标签:COINOINCOIINTEDRA COINYFBitcoincoinone交易所中文NINTI币

SAND热门资讯
ICE:Bakkt比特币期权和现金结算比特币期货正式上线

作者:LiangCHE本周一加密交易平台Bakkt的比特币期权和现金结算比特币期货正式上线。根据Bakkt官方网站,现金结算比特币期货合约和基于Bakkt比特币月度期货期权合约在12月9日在新加.

1900/1/1 0:00:00
加密货币:韩国:预计2020年开始对加密货币征税

韩国政府正准备采取法律手段,对出售加密资产所得的资本收益征税。针对数字资产交易的专门立法预计将在2020年的税收季节出台.

1900/1/1 0:00:00
区块链:能源消耗最高降低100倍,高校研究员提出新算法,用光子芯片拯救PoW挖矿

似乎每次有人在同一句话中用到了“比特币”和“能源消耗”这两个词时,就会有人说这个网络对环境造成了巨大影响,有人则说这些担忧被夸大了。 毋庸置疑的是,矿工在能源成本较低的地区可以产出更多比特币.

1900/1/1 0:00:00
TER:科技巨头争抢的“超级账本”,到底是个什么组织?

在区块链世界里,我们经常能听到或看到一个词“超级账本”,并且总能看到一些明星企业高调宣布加入“超级账本”,如蚂蚁金服、IBM、华为、英特尔、三星、小米等.

1900/1/1 0:00:00
APP:Layer 3中间层:Web3.0发展的新引擎?

作者:Howard来源:共识未来前言:?最近的区块链一级市场投资依然很冷,但我们仍然注意到一些关于dApp生态的一些融资进展.

1900/1/1 0:00:00
比特币:9?4后的最大“币难”正在发生,或为央行数字货币辟路

文|互链脉搏·黑珍珠号“币难”从一线城市向内陆城市蔓延。11月28日消息,重庆市渝中区金融办联合区市场监管局、区分局和大石化管委会组成联合检查组已经对重庆仓舟网络科技有限公司进行突击检查.

1900/1/1 0:00:00