La magie d'un click?

Signaler
-
Messages postés
32999
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 juin 2021
-
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...

2 réponses

Messages postés
32999
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 juin 2021
3 569
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...
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?
Messages postés
32999
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 juin 2021
3 569
Oui
Avant le </body>
>
Messages postés
32999
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 juin 2021

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.
Messages postés
32999
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 juin 2021
3 569 > Plouf387
Il faudrait nous montrer ton code complet