La magie d'un click?

Plouf387 -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

J'essaie de créer un bouton pour obtenir l'adresse d'un utilisateur Metamask (petit projet Web3).

La fonction web3.currentProvider.selectedAddress est issue de la library web3. Elle permet d'obtenir cette fameuse adresse.

Est-ce que quelqu'un saurait m'expliquer pourquoi la fonction que je nomme "DonneAdresse" ne marche pas de la même façon dans les deux cas:

Premier cas:

var Web3 = require('web3');
var web3 = new Web3(Web3.givenProvider || 'ws://some.local-or-remote.node:8545');
var donating_address = '';

function DonneAdresse(){
  let address = web3.currentProvider.selectedAddress;
  console.log(address)
}



Alors, j'obtiens "undefined" dans la console.

Deuxième cas où "conbut" est l'ID d'un bouton:

var Web3 = require('web3');
var web3 = new Web3(Web3.givenProvider || 'ws://some.local-or-remote.node:8545');
var donating_address = '';

function DonneAdresse(){
  let address = web3.currentProvider.selectedAddress;
  console.log(address)
}
document.querySelector('#conbut').addEventListener('click', DonneAdresse);


Alors j'obtiens bien l'adresse de l'utilisateur dans la console quand je clique sur le bouton "conbut".

Comme si le passage par un bouton faisait quelque chose de différent...
A voir également:

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour

As tu bien mis ton js à la fin de ta page ?
Pour qu'il ait bien eu le temps d'attendre que toutes les données de la page soit chargées...
0
Plouf387
 
Merci Jordane!

Qu'entends tu par mettre le js à la fin de ma page? Tu veux dire que le code soit appelé à la fin de la page html?
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Oui
Avant le </body>
0
Plouf387 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Merci pour le conseil, mais non, ce n'est pas ça. J'ai toujours une différence entre les deux.

Dans le premier cas, la ligne: "let address = web3.currentProvider.selectedAddress"
ne s'execute pas quand la fonction DonneAdresse est appelée par la commande DonneAdresse(). J'obtiens address = undefined.

Par contre, dans le deuxième cas, c'est à dire quand je passe par le clic d'un bouton, la ligne: "let address = web3.currentProvider.selectedAddress" s'execute bien, et me renvoie une adresse effective, bien définie.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > Plouf387
 
Il faudrait nous montrer ton code complet
0