TypeError no detectado: this._eth.sendTransaction no es una función

Hola, estoy tratando de crear un módulo de votación en el que el usuario pueda emitir votos presionando el botón de opción. Pero cuando ejecuto me sale este error.

Uncaught TypeError: this._eth.sendTransaction is not a function

este es mi guion

    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>

no se que pasa por favor ayúdenme. Cualquier respuesta será aceptada y apreciada. Gracias. :)

Respuestas (1)

¿Qué versión de Web3 estás usando?

Si está utilizando la versión actual de Web3, no debe incluir la nueva palabra clave cuando escriba la siguiente línea:

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

En su lugar, debería ser simplemente lo siguiente:

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