Привет, я пытаюсь создать модуль голосования, в котором пользователь может голосовать, нажимая переключатель. Но когда я запускаю эту ошибку выходит.
Uncaught TypeError: this._eth.sendTransaction is not a function
это мой сценарий
if(typeof web3 != 'undefined'){
web3 = new Web3(web3.currentProvider);
web3.eth.defaultAccount = web3.eth.accounts[0];}else {
web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:7545"));
}
web3.eth.defaultAccount = web3.eth.accounts[0];
var SuffrageContract = new web3.eth.contract([
{
"constant": true,
"inputs": [],
"name": "getInstructor",
"outputs": [
{
"name": "",
"type": "string"
},
{
"name": "",
"type": "string"
},
{
"name": "",
"type": "string"
},
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_id",
"type": "string"
},
{
"name": "_president",
"type": "string"
},
{
"name": "_vice",
"type": "string"
},
{
"name": "_party",
"type": "string"
}
],
"name": "setInstructor",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
]);
var Suffrage = SuffrageContract.at('0x3b2e13c156ebb392074066ee414f42c4c59b761d');
console.log(Suffrage);
$("#submit").click(function(){
var president,vp,party;
//Get President
if($('#pres1').is(':checked')){
president = $('#pres1').val();
}
else if($("#pres2").is(':checked')){
president = $('#pres2').val();
}
else if($("#pres3").is(':checked')){
president = $('#pres3').val();
}
else if($("#pres4").is(':checked')){
president = $('#pres4').val();
}
else if($("#pres5").is(':checked')){
president = $('#pres5').val();
}
else if($("#pres6").is(':checked')){
president = $('#pres6').val();
}
//Get Vice President
if($('#vp1').is(':checked')){
vp = $('#vp1').val();
}
else if($("#vp2").is(':checked')){
vp = $('#vp2').val();
}
else if($("#vp3").is(':checked')){
vp = $('#vp3').val();
}
else if($("#vp4").is(':checked')){
vp = $('#vp4').val();
}
else if($("#vp5").is(':checked')){
vp = $('#vp5').val();
}
else if($("#vp6").is(':checked')){
vp = $('#vp6').val();
}
//Get Party List
if($('#party1').is(':checked')){
party = $('#party1').val();
}
else if($("#party2").is(':checked')){
party = $('#party2').val();
}
else if($("#party3").is(':checked')){
party = $('#party3').val();
}
else if($("#party4").is(':checked')){
party = $('#party4').val();
}
else if($("#party5").is(':checked')){
party = $('#party5').val();
}
else if($("#party6").is(':checked')){
party = $('#party6').val();
}
else if($("#party7").is(':checked')){
party = $('#party7').val();
}
else if($("#party8").is(':checked')){
party = $('#party8').val();
}
else if($("#party9").is(':checked')){
party = $('#party9').val();
}
else if($("#party10").is(':checked')){
party = $('#party10').val();
}
else if($("#party11").is(':checked')){
party = $('#party11').val();
}
else if($("#party12").is(':checked')){
party = $('#party12').val();
}
Suffrage.setInstructor('sample id', president, vp, party, function(err,result){
console.log(err,result);
});
});
</script>
Я не знаю, что случилось, пожалуйста, помогите мне. Любой ответ будет принят и оценен. Спасибо. :)
Какую версию Web3 вы используете?
Если вы используете текущую версию Web3, вам не следует включать ключевое слово new при написании следующей строки:
var SuffrageContract = new web3.eth.contract(...);
Вместо этого это должно быть просто следующее:
var SuffrageContract = web3.eth.contract(...);