用于与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。

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

推荐PyPI第三方库


热门话题
用于限制返回字符串大小的java<bean:write>标记   java将值传递给内部类方法?   数组无法在Java中使用for循环获取所有JSONObject   java中的StringTokenizer需要帮助   java如何在运行时在方法中自动连接类   java通过setter或构造函数分配多个字段   java JPA OneToMany ManyTone   java无法解析类org。贾布拉斯。双矩阵   java如何使用Rest-Assured从以下Json响应获取NetworkID   如果类具有“org”字段,则java@Slf4j生成“无法引用非静态变量org”   swing Java jform前景色未显示   java向kafka事件订阅rest api   java为什么我的数组会出现NullPointerException?   java通过JavaMail从Exchange server读取Zip文件后提取Zip文件的内容   Java中的字符串值舍入   java如何解析单个变量中的每个字符串   带有ListView头的java ListView   java输入流无限循环   java Grails在Spring Boot中的BootStrap#init等价物?