大佬教程收集整理的这篇文章主要介绍了如何与 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 @R_273_10586@lVotesFor(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)
只是不同帐户名称的列表。
以上是大佬教程为你收集整理的如何与 Solidity 功能交互并从不同地址进行交易?全部内容,希望文章能够帮你解决如何与 Solidity 功能交互并从不同地址进行交易?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。