用于与dero blockdag交互的python包装器
pydero-jonlindg的Python项目详细描述
皮德罗
pydero是一个python包装器,用于在dero stargate testnet上与智能合约交互。当前不支持安装智能合约,仅对已安装的dero块dag上的智能合约执行函数或查询智能合约中存储变量的值。执行一个函数需要运行一个带有rpc server标志的dero cli wallet。检索存储变量的值需要运行一个derod进程。
用法
首先导入相关类
from pydero import Contract, Connection
通过命令实例化python契约对象
contract = Contract(abi=abi,connection=connection,scid=scid)
连接应该是连接类的实例,scid应该是一个字符串,其中包含dero blockdag上智能合约的scid。ABI应该是与智能合约的函数和参数对应的格式字典,参数类型应该是“uint64”或“string”字符串。例如,如果契约有两个函数名为function1和function2,第一个函数有一个uint64和一个string参数,第二个函数没有参数,则abi是
from collections import OrderedDict
abi={"Function1":OrderedDict({"ParameterName1":"Uint64","ParameterName2":"String"}),"Function2":{}}
功能参数的顺序很重要,因此建议使用OrderedDict。它可以从dero blockdag加载,而不是手动指定abi。这需要有效的scid和到dero守护进程的工作连接。
contract.set_abi_from_db()
要调用契约上的函数,我们只需简单地执行
contract.Function1(123,"abc")
获取名为foo的存储变量的值:
contract.get_attribute("Foo")
我们还可以从跑步钱包中查询不同的信息,例如
connection.get_balance()
我们还可以查询守护进程以获取信息,例如
connection.get_last_block_header()
有关更多示例,请参见python脚本simple_test.py和test2.py。