How to connect web3.js 1.0.x to Metamsk












0















I am using web3.js 1.0.0-beta.36 to connect to the blockchain.



But unfortunately this code cannot connect to Metamask, if it has been enabled.



var metamask = false;
if (typeof web3 !== 'undefined') {
web3 = new Web3(web3.currentProvider);
metamask = true;
web3.eth.defaultAccount = web3.eth.accounts[0];
} else {
web3 = new Web3(new
Web3.providers.HttpProvider(infuraUrl));
var address = web3.eth.accounts.create().address;
}
myContract = new web3.eth.Contract(abi,contractAddress);
myContract.methods.Register((Name,Id).send({},function(error,result){
if (! error)
console.log(result);
else
console.log(error);
});


When we run this program with Metamsk it displays this error:



Error: Returned error: Error: MetaMask Tx Signature: User denied transaction signature.


but when I mention a fixed address it works:



myContract.methods.Register((Name,Id).send({from: '0x...'},function(error,result){
if (! error)
console.log(result);
else
console.log(error);
});


For some reasons I can't bring the address itself in the source code and I want it to get the address from Metamask. What should I do?










share|improve this question



























    0















    I am using web3.js 1.0.0-beta.36 to connect to the blockchain.



    But unfortunately this code cannot connect to Metamask, if it has been enabled.



    var metamask = false;
    if (typeof web3 !== 'undefined') {
    web3 = new Web3(web3.currentProvider);
    metamask = true;
    web3.eth.defaultAccount = web3.eth.accounts[0];
    } else {
    web3 = new Web3(new
    Web3.providers.HttpProvider(infuraUrl));
    var address = web3.eth.accounts.create().address;
    }
    myContract = new web3.eth.Contract(abi,contractAddress);
    myContract.methods.Register((Name,Id).send({},function(error,result){
    if (! error)
    console.log(result);
    else
    console.log(error);
    });


    When we run this program with Metamsk it displays this error:



    Error: Returned error: Error: MetaMask Tx Signature: User denied transaction signature.


    but when I mention a fixed address it works:



    myContract.methods.Register((Name,Id).send({from: '0x...'},function(error,result){
    if (! error)
    console.log(result);
    else
    console.log(error);
    });


    For some reasons I can't bring the address itself in the source code and I want it to get the address from Metamask. What should I do?










    share|improve this question

























      0












      0








      0








      I am using web3.js 1.0.0-beta.36 to connect to the blockchain.



      But unfortunately this code cannot connect to Metamask, if it has been enabled.



      var metamask = false;
      if (typeof web3 !== 'undefined') {
      web3 = new Web3(web3.currentProvider);
      metamask = true;
      web3.eth.defaultAccount = web3.eth.accounts[0];
      } else {
      web3 = new Web3(new
      Web3.providers.HttpProvider(infuraUrl));
      var address = web3.eth.accounts.create().address;
      }
      myContract = new web3.eth.Contract(abi,contractAddress);
      myContract.methods.Register((Name,Id).send({},function(error,result){
      if (! error)
      console.log(result);
      else
      console.log(error);
      });


      When we run this program with Metamsk it displays this error:



      Error: Returned error: Error: MetaMask Tx Signature: User denied transaction signature.


      but when I mention a fixed address it works:



      myContract.methods.Register((Name,Id).send({from: '0x...'},function(error,result){
      if (! error)
      console.log(result);
      else
      console.log(error);
      });


      For some reasons I can't bring the address itself in the source code and I want it to get the address from Metamask. What should I do?










      share|improve this question














      I am using web3.js 1.0.0-beta.36 to connect to the blockchain.



      But unfortunately this code cannot connect to Metamask, if it has been enabled.



      var metamask = false;
      if (typeof web3 !== 'undefined') {
      web3 = new Web3(web3.currentProvider);
      metamask = true;
      web3.eth.defaultAccount = web3.eth.accounts[0];
      } else {
      web3 = new Web3(new
      Web3.providers.HttpProvider(infuraUrl));
      var address = web3.eth.accounts.create().address;
      }
      myContract = new web3.eth.Contract(abi,contractAddress);
      myContract.methods.Register((Name,Id).send({},function(error,result){
      if (! error)
      console.log(result);
      else
      console.log(error);
      });


      When we run this program with Metamsk it displays this error:



      Error: Returned error: Error: MetaMask Tx Signature: User denied transaction signature.


      but when I mention a fixed address it works:



      myContract.methods.Register((Name,Id).send({from: '0x...'},function(error,result){
      if (! error)
      console.log(result);
      else
      console.log(error);
      });


      For some reasons I can't bring the address itself in the source code and I want it to get the address from Metamask. What should I do?







      ethereum web3js metamask






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 24 '18 at 23:32









      Amir ZojajiAmir Zojaji

      533723




      533723
























          1 Answer
          1






          active

          oldest

          votes


















          0














          Eureka!!! (without special Archimedes style!)



          Finally I found.



          window.addEventListener('load', async () => {
          // Modern dapp browsers...
          if (window.ethereum) {
          window.web3 = new Web3(ethereum);
          try {
          await ethereum.enable();
          var accounts= await web3.eth.getAccounts();
          var option={from: accounts[0] };
          var myContract = new web3.eth.Contract(abi,contractAddress);
          myContract.methods.RegisterInstructor('11','Ali')
          .send(option,function(error,result){
          if (! error)
          console.log(result);
          else
          console.log(error);
          });
          } catch (error) {
          // User denied account access...
          }
          }
          // Legacy dapp browsers...
          else if (window.web3) {
          window.web3 = new Web3(web3.currentProvider);
          // Acccounts always exposed
          web3.eth.sendTransaction({/* ... */});
          }
          // Non-dapp browsers...
          else {
          console.log('Non-Ethereum browser detected. You should consider trying MetaMask!');
          }
          });


          This connects to Metamask properly. Main problem was that our browsers are supermodern!!!






          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53463328%2fhow-to-connect-web3-js-1-0-x-to-metamsk%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            Eureka!!! (without special Archimedes style!)



            Finally I found.



            window.addEventListener('load', async () => {
            // Modern dapp browsers...
            if (window.ethereum) {
            window.web3 = new Web3(ethereum);
            try {
            await ethereum.enable();
            var accounts= await web3.eth.getAccounts();
            var option={from: accounts[0] };
            var myContract = new web3.eth.Contract(abi,contractAddress);
            myContract.methods.RegisterInstructor('11','Ali')
            .send(option,function(error,result){
            if (! error)
            console.log(result);
            else
            console.log(error);
            });
            } catch (error) {
            // User denied account access...
            }
            }
            // Legacy dapp browsers...
            else if (window.web3) {
            window.web3 = new Web3(web3.currentProvider);
            // Acccounts always exposed
            web3.eth.sendTransaction({/* ... */});
            }
            // Non-dapp browsers...
            else {
            console.log('Non-Ethereum browser detected. You should consider trying MetaMask!');
            }
            });


            This connects to Metamask properly. Main problem was that our browsers are supermodern!!!






            share|improve this answer




























              0














              Eureka!!! (without special Archimedes style!)



              Finally I found.



              window.addEventListener('load', async () => {
              // Modern dapp browsers...
              if (window.ethereum) {
              window.web3 = new Web3(ethereum);
              try {
              await ethereum.enable();
              var accounts= await web3.eth.getAccounts();
              var option={from: accounts[0] };
              var myContract = new web3.eth.Contract(abi,contractAddress);
              myContract.methods.RegisterInstructor('11','Ali')
              .send(option,function(error,result){
              if (! error)
              console.log(result);
              else
              console.log(error);
              });
              } catch (error) {
              // User denied account access...
              }
              }
              // Legacy dapp browsers...
              else if (window.web3) {
              window.web3 = new Web3(web3.currentProvider);
              // Acccounts always exposed
              web3.eth.sendTransaction({/* ... */});
              }
              // Non-dapp browsers...
              else {
              console.log('Non-Ethereum browser detected. You should consider trying MetaMask!');
              }
              });


              This connects to Metamask properly. Main problem was that our browsers are supermodern!!!






              share|improve this answer


























                0












                0








                0







                Eureka!!! (without special Archimedes style!)



                Finally I found.



                window.addEventListener('load', async () => {
                // Modern dapp browsers...
                if (window.ethereum) {
                window.web3 = new Web3(ethereum);
                try {
                await ethereum.enable();
                var accounts= await web3.eth.getAccounts();
                var option={from: accounts[0] };
                var myContract = new web3.eth.Contract(abi,contractAddress);
                myContract.methods.RegisterInstructor('11','Ali')
                .send(option,function(error,result){
                if (! error)
                console.log(result);
                else
                console.log(error);
                });
                } catch (error) {
                // User denied account access...
                }
                }
                // Legacy dapp browsers...
                else if (window.web3) {
                window.web3 = new Web3(web3.currentProvider);
                // Acccounts always exposed
                web3.eth.sendTransaction({/* ... */});
                }
                // Non-dapp browsers...
                else {
                console.log('Non-Ethereum browser detected. You should consider trying MetaMask!');
                }
                });


                This connects to Metamask properly. Main problem was that our browsers are supermodern!!!






                share|improve this answer













                Eureka!!! (without special Archimedes style!)



                Finally I found.



                window.addEventListener('load', async () => {
                // Modern dapp browsers...
                if (window.ethereum) {
                window.web3 = new Web3(ethereum);
                try {
                await ethereum.enable();
                var accounts= await web3.eth.getAccounts();
                var option={from: accounts[0] };
                var myContract = new web3.eth.Contract(abi,contractAddress);
                myContract.methods.RegisterInstructor('11','Ali')
                .send(option,function(error,result){
                if (! error)
                console.log(result);
                else
                console.log(error);
                });
                } catch (error) {
                // User denied account access...
                }
                }
                // Legacy dapp browsers...
                else if (window.web3) {
                window.web3 = new Web3(web3.currentProvider);
                // Acccounts always exposed
                web3.eth.sendTransaction({/* ... */});
                }
                // Non-dapp browsers...
                else {
                console.log('Non-Ethereum browser detected. You should consider trying MetaMask!');
                }
                });


                This connects to Metamask properly. Main problem was that our browsers are supermodern!!!







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 25 '18 at 15:55









                Amir ZojajiAmir Zojaji

                533723




                533723
































                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53463328%2fhow-to-connect-web3-js-1-0-x-to-metamsk%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Wiesbaden

                    Marschland

                    Dieringhausen