你的位置:乐鱼(唯一)官网-首页 > 智能招聘 > 工夫教程 | ENS:为你的钱包添增加币种撑持 | BTC

工夫教程 | ENS:为你的钱包添增加币种撑持 | BTC

时间:2022-07-04 01:25 点击:170 次

工夫教程 | ENS:为你的钱包添增加币种撑持 | BTC

在 Devcon5 上文书了多币种撑持特质后,咱们很快就在 ENS 处置器上结束了这一功能。

很多钱包也紧接着运行撑持这一特质。

斥地者们不错通过阅读 EIP 、文档以及咱们的 JavaScript 地址编码库来了解最新的结束细节。

在这篇著作中,我将先容咱们把多币种撑持特质接入到我方 app 中的告诫,为其他钱包斥地者投砾引珠,提供约莫端倪。

 \r\n领略器\r\n 

由于这个特质是全新的,很多以太坊库都尚未撑持(当前 ethers.js 、go-ens 以及 ethreal 撑持)。

为了径直息争析器合约交互,你通过 npm 下载咱们的合约,并导入以下 abi 。\r\n

import {abi} from\r\n '@ensdomains/resolver/build/contracts/Resolver.json'
\r\n率先咱们来望望设置/获得以太坊地址和其它数字货币地址的辩别。\r\n
## 获得并设置以太坊地址  \r\nfunction addr(bytes32 node);\r\nfunction setAddr(bytes32 node, address addr);  \r\n## 获得并设多币种地址  \r\nfunction addr(bytes32 node, uint coinType); \r\nfunction setAddr(bytes32 node, uint coinType, bytes calldata a);
\r\n最大的辩别在于 getter 和 setter 函数当前都要附加上 coinType 参数。请寄望当前 setAddr 函数的参数是 bytes 类型而不是 address 类型。

 \r\n地址编码器\r\n 

address-encoder 是一个 js 编解码库,对存储在 ENS 领略器中的记载进行处理。它有两个函数,包括 formatsByName 以及 formatsByCoinType 。\r\n

import {formatsByName, formatsByCoinType} from '@ensdomains/address-encoder';  \r\nformatsByName['BTC'] \r\n{coinType: 0, decoder: [Function],encoder: [Function],name: 'BTC'} \r\nformatsByCoinType['0'] \r\n{coinType: 0, decoder: [Function],encoder: [Function],name: 'BTC'} \r\nFrom now on, we only use formatsByName.
\r\n底下咱们只使用 formatsByName 函数。

 \r\n获得撑持的币种列表\r\n 

或者你想接入我方的撑持的币种列表。要是你想径直接入咱们如故结束了编解码的代币,你应该通过以下代码构造这个币种列表。

export const COIN_LIST = Object.keys(formatsByName)

 \r\n获得地址\r\n 

底下是咱们在我方的 React 组件中结束 getAddr 函数的超等简化版块。

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

第四行代码是把地址传给译码器之前先搜检是否是旷地址,要是是的话就径直复返。因为要是把一个空字符串径直传给编码器,就有可能抛出某些代币类型的失实。

第五行代码把地址的二进制抒发体式传给编码函数,将地址以文施行式透露。

 \r\n建就地址\r\n 

以下是咱们 setAddr 函数的简化版块。

和咱们在 getAddr 函数中的处理同样,当地址为空时,咱们提前复返这个服从,而不传给解码器。第五手脚直用空字符串的二进制暗示就行。

 \r\n考据\r\n 

考据地址是否适玩忽应币种的才调相等重要。

要是向 address-encoder 库粗率传一个无效的文本,就会抛出失实。

本例中,咱们拿获了这个失实并展示了出来。

\r\nBCH 贴士\r\n经常情况下,对吞并条规本先解码再编码,依然会得到同样的文本。但比特币现款发扬的不太同样(想要探究具体的工夫原因,不错参考这条 EIP 中的 CashAddr ),比特币现款在编码之后复返文本会加一个 bitcoincash 前缀。底下这个例子透露了原始文本、16进制暗示以及查询时 BCH 编码后的门径暗示体式(你不错在测试用例中找到它)。

 \r\n回来\r\n 

在本文中,咱们梳理了结束多币种撑持的经由,先容了需要寄望的某些细节。事实上这和原本设置/获得地址的操作相等接近,只不外要多传一个 coinType 参数。此外,在触及到考据和空字符串的问题上,要颠倒注重。

跟着越来越多库撑持多币种特质,以后钱包斥地者将很松驰地添加这一功能。

(完)

原文商酌: https://medium.com/the-ethereum-name-service/how-to-integrate-ens-multi-coin-support-into-your-wallet-for-developers-8d3a8a37d1eb\r\n作家: makoto_inoue\r\n翻译&校对: 安仔 & 阿剑

美东时辰8月9日周二美股盘后,加密货币来往所Coinbase(COIN)公布了其适度二季度的财报,在本年以来加密币商场严重彭胀的雷曼危急昏昧下,Coinbase营收低于预期但月度来往用户高于预期,美
运输中的货色出现问题,承运的快递公司免不了要承担货色失掉,可是货主合计损结怨快递理赔的相反宏大,两边就免不了要扯皮了。\r\n 7月8日音问,据信号财经报道,山东淄博的刘先生6月份
中远海能(01138.HK)发布公告,集团预期于截止2022年6月30日止六个月赢得的包摄于公司领有人的净溢利介于人民币1.10亿元贤良民币1.80亿元,而2021年同时包摄于公司领有人的净溢利约为人民币5.
6月27日,第六个 聚合国中小微企业日 到来。中小微企业算作国度经济的 毛细血管 ,不仅是国民经济和社会发展的主力军,亦然经济韧性、劳动韧性的首要复古。中国经济也向来有一个 56789
在 Devcon5 上文书了多币种撑持特质后,咱们很快就在 ENS 处置器上结束了这一功能。 很多钱包也紧接着运行撑持这一特质。 斥地者们不错通过阅读 EIP 、文档以及咱们的 JavaScript 地址编码库
证券之星讯,凭据7月1日市集公开信息、上市公司公告及交游所败露数据整理,华谊伯仲(300027)(300027)最新董监高及关系人员股份变动情况:2022年6月30日公司董事王忠军共减持公司股份120.0万

官网: www.gzzzhyzl.com

邮箱: 7accee@www.gzzzhyzl.com

地址: 智能招聘498号

Powered by 乐鱼(唯一)官网-首页 RSS地图 HTML地图


乐鱼(唯一)官网-首页-工夫教程 | ENS:为你的钱包添增加币种撑持 | BTC