首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用web3.py发送事务

如何用web3.py发送事务
EN

Ethereum用户
提问于 2019-04-30 07:34:42
回答 1查看 8.9K关注 0票数 4

我试图在infura.io中使用web3.py与我的智能合同进行交互。这是我的简单的合同代码

代码语言:javascript
复制
pragma solidity ^0.5.7;
contract greeter{
    string greeting;

    function greet(string memory _greeting)public {
        greeting=_greeting;
    }
    function getGreeting() public view returns(string memory) {
        return greeting;
    }
}

我把它部署在ropsten测试网上。通过web3.py,我可以从链子上读到问候。我想用greet函数添加新的问候语字符串。但不知何故我不知道要不要签交易。有谁能帮助我理解如何使用web3.py签署transacion并为合同添加问候呢?

EN

回答 1

Ethereum用户

回答已采纳

发布于 2019-04-30 08:40:35

在web3py中,您可以使用buildTransaction方法:

代码语言:javascript
复制
myContract.functions.myMethod(*args, **kwargs).buildTransaction(transaction)

在您的示例中,您可以这样做:

代码语言:javascript
复制
tx = greeter.functions.greet("newGreet").buildTransaction({'nonce': web3.eth.getTransactionCount('your accountaddress')}}

然后,您可以使用以下方法对事务进行签名:

代码语言:javascript
复制
signed_tx = web3.eth.account.signTransaction(tx, private_key='your privateKey')

最后,您可以使用以下方法发送已签名的事务:

代码语言:javascript
复制
web3.eth.sendRawTransaction(signed_tx.rawTransaction)

希望这能有所帮助。

票数 4
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/70240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档