Uncaught TypeError: this._eth.sendTransaction не является функцией

Привет, я пытаюсь создать модуль голосования, в котором пользователь может голосовать, нажимая переключатель. Но когда я запускаю эту ошибку выходит.

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>

Я не знаю, что случилось, пожалуйста, помогите мне. Любой ответ будет принят и оценен. Спасибо. :)

Ответы (1)

Какую версию Web3 вы используете?

Если вы используете текущую версию Web3, вам не следует включать ключевое слово new при написании следующей строки:

var SuffrageContract = new web3.eth.contract(...);

Вместо этого это должно быть просто следующее:

var SuffrageContract = web3.eth.contract(...);