Skip to Content
dApps
Sur cette page

Envoi de transactions

Utilisez eth_sendTransaction pour demander une transaction depuis un compte connecté. Le portefeuille demande à l’utilisateur de la vérifier et de l’approuver. Une demande réussie renvoie un hash de transaction ; cela ne signifie pas que la transaction a été confirmée ou exécutée avec succès.

Exemple

const provider = window.$onekey?.ethereum; if (!provider) throw new Error('OneKey Ethereum provider is unavailable.'); const [from] = await provider.request({ method: 'eth_requestAccounts' }); const chainId = await provider.request({ method: 'eth_chainId' }); // Check chainId against your application's intended network before continuing. const to = '<RECIPIENT_EVM_ADDRESS>'; // Replace with a valid address. try { const txHash = await provider.request({ method: 'eth_sendTransaction', params: [{ from, to, value: '0x0', }], }); console.log('Submitted transaction:', txHash); } catch (error) { console.error(error.code, error.message); }

Déclenchez ce processus à partir d’une action utilisateur. Remplacez le destinataire et la valeur avant l’envoi. Interrogez eth_getTransactionReceipt sur la même chaîne pour déterminer l’inclusion et le statut d’exécution ; une transaction en attente n’a pas encore de reçu.

Paramètres de transaction

ParamètreSignification
fromCompte connecté autorisé à envoyer la transaction
toAdresse du destinataire ; omettre uniquement pour la création d’un contrat
valueMontant en devise native sous forme de quantité hexadécimale, dans la plus petite unité (wei sur Ethereum)
dataDonnées d’appel du contrat ou bytecode de création de contrat encodés en hexadécimal
gasLimite de gas facultative ; il s’agit d’une quantité de gas, pas d’un prix du gas
gasPriceFrais facultatifs par unité de gas pour une transaction historique
maxFeePerGas, maxPriorityFeePerGasChamps de frais d’une transaction EIP-1559 ; ne pas les combiner avec gasPrice
nonceNuméro de séquence des transactions du compte ; laissez normalement le portefeuille le gérer

Utilisez une arithmétique préservant la précision des entiers pour les montants ; évitez les calculs en virgule flottante lors de la conversion en wei. Laissez le portefeuille estimer les frais sauf si votre application a une raison précise de les fournir. L’utilisateur peut vérifier ou ajuster les détails de la transaction dans le portefeuille.

Changements de réseau et de compte

Lisez eth_chainId avant de préparer une transaction et gérez chainChanged et accountsChanged comme décrit dans API du fournisseur. Reconstruisez les données de transaction dépendant du compte ou du réseau après un changement.

Démonstration

Ouvrir l’exemple 

Dernière mise à jour le