软件包管理器 API
web3.pm
对象公开了与由 ERC 1123 定义的包交互的方法。
警告
API 仍在开发中,可能会很快改变。
现在是熟悉 API 的好时机,可以测试编写使用一些即将推出的优秀特性的代码。
默认情况下,在 Web3.py 的稳定版本中,对该模块的访问是关闭的:
>>> from web3.auto import w3
>>> w3.pm
...
AttributeError: The Package Management feature is disabled by default ...
为了访问这些功能,您可以使用…打开它
>>> w3.enable_unstable_package_management_api()
>>> w3.pm
<web3.pm.PM at 0x....>
方法
以下方法在web3.pm
名称空间中可用。
创建您自己的注册表类
如果你想实现你自己的注册表并和web3.pm
一起使用,你必须创建一个继承自ERC1319Registry
的子类,并实现所有的 ERC 1319 标准方法,在ERC1319Registry
中以下划线为前缀。然后,你必须手动将其设置为web3.pm
上的registry
属性。
custom_registry = CustomRegistryClass(address, w3)
w3.pm.registry = custom_registry
用户可能想要创建他们自己的注册表类的一个原因是,如果他们构建一个定制的包注册表智能合约,该合约具有超过在 ERC 1319 中指定的那些特性。例如,删除发布或某些微支付功能的能力。他们可以创建一个定制的ERC1319Registry
子类来轻松调用标准的&定制方法,而不是直接在合约实例上访问这些函数。