Python implementation of EIP 1577 content hash

content-hash的Python项目详细描述


python的contenthash

versiondownloadslicensepython

linux buildwindows buildcoveragequality

eip 1577内容哈希的python实现。

说明

这是一个简单的包,用于对EIP 1577中指定的内容哈希进行编码和解码。 这个包对于每个想要与EIP 1577兼容的ENS resolvers交互的Ethereum开发人员都很有用。

有关javascript实现,请参见^{}

安装

要求

ContentHash需要Python3.5或更高版本。

来自Pypi

建议使用pip从pypi安装contenthash。

pip install content-hash

来源

或者,也可以从源代码安装它。

git clone https://github.com/filips123/ContentHashPy.git
cd ContentHashPy
python setup.py install

用法

支持的编解码器

当前支持以下编解码器:

  • swarm-ns
  • ipfs-ns
  • ipns-ns
  • onion
  • onion3
  • zeronet

获取编解码器

可以使用get_codec函数从内容哈希中获取编解码器。

它将内容哈希作为十六进制字符串并返回编解码器名称。内容哈希可以以0x作为前缀,但它不是必需的。

importcontent_hashchash='bc037a716b746c776934666563766f367269'codec=content_hash.get_codec(chash)print(codec)# onion

解码

可以使用decode函数对内容哈希进行解码。

它将内容哈希作为十六进制字符串,并将解码的内容作为字符串返回。内容哈希可以以0x作为前缀,但它不是必需的。

importcontent_hashchash='e3010170122029f2d17be6139079dc48696d1f582a8530eb9805b561eda517e22a892c7e3f1f'value=content_hash.decode(chash)print(value)# QmRAQB6YaCyidP37UdDnjFY5vQuiBrcqdyoW1CuDgwxkD4

编码

可以使用encode函数对内容哈希进行编码。

它将支持的编解码器作为字符串,将值作为字符串,并将相应的内容哈希作为十六进制字符串返回。输出的前缀不会是0x

importcontent_hashvalue='d1de9994b4d039f6548d191eb26786769f580809256b4685ef316805265ea162'chash=content_hash.encode(chash)print(chash)# e40101701b20d1de9994b4d039f6548d191eb26786769f580809256b4685ef316805265ea162

创建编解码器

所有支持的编解码器配置文件都可以在^{}中的PROFILES字典中找到。你需要在那里添加一个新的配置文件。

每个配置文件必须与multicodec库中相应的编解码器同名。

配置文件还必须具有解码和编码功能。它们应该作为包含所需解码或编码模块名称的字符串传递。所有这些模块都可以在^{}^{}中使用。

每个模块名称都应该尽可能地描述它。其名称只能包含python模块的有效字符。

每个解码模块必须有一个decode函数。它必须是接受bytes输入并返回str结果的函数。

每个编码模块必须有一个encode函数。它必须是接受str输入并返回bytes结果的函数。

所有输入和输出必须与JavaScript implementation中的相同。多个配置文件可以共享相同的解码和编码。

版本控制

此库使用SemVer进行版本控制。有关可用的版本,请参见此存储库上的the tags

许可证

这个图书馆是根据麻省理工学院的许可证授权的。有关详细信息,请参见LICENSE文件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用Eclipse Helios for Web项目   java指定行。作为编译器设置的分隔符?   osm映射中带有osmdroid的java标记   java Android ClassNotFoundException在路径:DexPathList上未找到类   java从j2me调用GWT方法   更新到java 8后的aspectj问题   如何仅从根元素java,com提取文本内容。滴虫软件。是的。html   安卓公司。谷歌。火基。数据库DatabaseException:未能转换java类型的值。将字符串改为长字符串   从java中的方法返回arraylist变量   java如果将引用重新分配给同步块内的锁对象,会是什么?   java下载。使用spring mvc的资源文件中的xlsx文件   java Eclipse提供了什么工具来运行Eclipse中未包含的程序?   spring boot Java泛型如何读取传递给泛型方法的类型上的字段或调用方法   Javacard中的javaecdsa签名