我试图在infura.io中使用web3.py与我的智能合同进行交互。这是我的简单的合同代码
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并为合同添加问候呢?
发布于 2019-04-30 08:40:35
在web3py中,您可以使用buildTransaction方法:
myContract.functions.myMethod(*args, **kwargs).buildTransaction(transaction)在您的示例中,您可以这样做:
tx = greeter.functions.greet("newGreet").buildTransaction({'nonce': web3.eth.getTransactionCount('your accountaddress')}}然后,您可以使用以下方法对事务进行签名:
signed_tx = web3.eth.account.signTransaction(tx, private_key='your privateKey')最后,您可以使用以下方法发送已签名的事务:
web3.eth.sendRawTransaction(signed_tx.rawTransaction)希望这能有所帮助。
https://ethereum.stackexchange.com/questions/70240
复制相似问题