微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何与 Solidity 功能交互并从不同地址进行交易?

如何解决如何与 Solidity 功能交互并从不同地址进行交易?

所以我有一个可靠的合同,我已经定义并通过以下方式编译:

voting_contract_compiled = compile_contract('Voting')
voting_deployment_tx_receipt,Voting = deploy_contract(w3,voting_contract_compiled,10)

当我执行 Voting.all_functions() 时,我得到:

[<Function getNumVoters()>,<Function getStatus()>,<Function getWinner()>,<Function isVotingopen()>,<Function totalVotesFor(int256)>,<Function validateAndCacheVote()>,<Function VoteForCandidate(int256)>,<Function VotesReceived(int256)>]

哪些是我定义的函数。我现在想要做的是与来自认帐户以外的发件人的这些功能进行交互。我无法弄清楚如何做到这一点。我是否需要编写另一份合同(这似乎不是正确的选择),但似乎每当我执行 Voting.something 时,它都指的是那里的认帐户,因此我唯一能想到的就是签订新合同,但是考虑到我会实例化一个新合同,这似乎也是错误的。

我想做类似的事情:

account1 = {'from': w3.eth.accounts[1],'value': w3.toWei(1,'ether')}
Voting.functions.VoteForCandidate(1).transact(account1)

但我得到 TransactionFailed: execution reverted: b''

解决方法

事实证明,这样做的方法如下:

subject  manual_label                                prediction                                    value   boolean_idx
A  __label__Religione_e_Magia                  (__label__Bibbia_storie_dal_Vecchio_e_dal_Nuov...  ...   __label__Bibbia_storie_dal_Vecchio_e_dal_Nuovo_Testamento
B  __label__Religione_e_Magia                  (__label__Religione_e_Magia,__label__Storia)       ...   __label__Religione_e_Magia
C  __label__Mitologia_classica_e_storia_antica (__label__Societa_civilizzazione_cultura,)         ...   __label__Societa_civilizzazione_cultura
D  __label__Essere_umano_uomo_in_generale      (__label__Essere_umano_uomo_in_generale,)          ...   __label__Essere_umano_uomo_in_generale
E  __label__Religione_e_Magia                  (__label__Religione_e_Magia,)                      ...   __label__Religione_e_Magia

其中 transaction = {'from': w3.eth.accounts[6],'value': w3.toWei(1,'ether')} tx_hash = Voting.functions.voteForCandidate(1).transact(transaction) tx_receipt = w3.eth.waitForTransactionReceipt(tx_hash) 只是不同帐户名称的列表。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?