美文网首页加密货币
Web3py简单使用方法(二)

Web3py简单使用方法(二)

作者: goddessofpom | 来源:发表于2017-09-15 15:14 被阅读73次

    1.通过合约工厂使用合约
    ···

    实例化合约,可以通过ContractFactory指定类型

    contract = web3.eth.contract(mycontractAdress, ContractFactoryClass=ConciseContract)

    调用合约方法,通过transact添加参数

    contract.withdraw(amount, transact={'from': eth.accounts[1], 'gas': 100000, ...})
    ···

    合约有一些属性:
    contract.address:合约的地址,如果工厂创建时没有提供可能为None
    contract.abi:合约的abi
    contract.bytecode:合约的bytecode
    contract.bytecode_runtime:合约的bytecode的runtime部分

    合约的一些方法:

    部署合约
    contract.deploy(transaction=None,args=None)
    transaction为此次合约的详细属性的字典,args为合约构造函数的参数list。返回此次交易的hash值

    执行指定的含有交易(消耗gas)的方法
    contract.transact(transaction).myMethod(args,*kwargs)

    执行不产生公共交易的方法
    contract.call(transaction).myMethod(args,*kwargs)

    执行指定的消耗gas的方法且返回消耗的gas
    contract.estimateGas(transaction).myMethod(*args, **kwargs)

    创建一个事件的日志
    classmethod Contract.on(event_name, filter_params=None, *callbacks)
    filter_params是一个字典支持以下一个key:filter: dictionary(事件的参数名),fromBlock: integer/tag(区块的number,默认是‘latest’),toBlock: integer/tag,address: string or list of strings(合约的地址或日志的来源),topics: list of 32 byte strings or null(过滤的信息)

    获取一个历史日志
    Contract.pastEvents(event_name, filter_params=None, *callbacks)

    相关文章

      网友评论

      本文标题:Web3py简单使用方法(二)

      本文链接:https://www.haomeiwen.com/subject/godssxtx.html