Senden von Token mit ethers.js
ETHERS.JS
ERC-20
Token
Anfänger
Kim YongJun
6. April 2021
3 Minuten Lesezeit
Token senden mit ethers.js(5.0)
In diesem Tutorial lernen Sie Folgendes
- ethers.js importieren
- Token übertragen
- Den Gaspreis entsprechend der Auslastung des Netzwerks festlegen
Erste Schritte
Um zu beginnen, müssen wir zunächst die Bibliothek ethers.js in unser JavaScript importieren. ethers.js(5.0) einbinden
Installation
1/home/ricmoo> npm install --save ethersES6 im Browser
1<script type="module">2 import { ethers } from "https://cdn.ethers.io/lib/ethers-5.0.esm.min.js"3 // Dein Code hier...4</script>ES3(UMD) im Browser
1<script2 src="https://cdn.ethers.io/lib/ethers-5.0.umd.min.js"3 type="application/javascript"4></script>Parameter
contract_address: Token-Vertragsadresse (die Vertragsadresse wird benötigt, wenn der Token, den Sie übertragen möchten, nicht Ether ist)send_token_amount: Der Betrag, den Sie an den Empfänger senden möchtento_address: Die Adresse des Empfängerssend_account: Die Adresse des Sendersprivate_key: Private-Key des Senders, um die Transaktion zu signieren und die Token tatsächlich zu übertragen
Hinweis
signTransaction(tx) wurde entfernt, da sendTransaction() dies intern erledigt.
Sendevorgang
1. Mit dem Netzwerk verbinden (Testnet)
Provider festlegen (Infura)
Mit dem Ropsten-Testnet verbinden
1window.ethersProvider = new ethers.providers.InfuraProvider("ropsten")2. Wallet erstellen
1let wallet = new ethers.Wallet(private_key)3. Wallet mit dem Netzwerk verbinden
1let walletSigner = wallet.connect(window.ethersProvider)4. Aktuellen Gaspreis abrufen
1window.ethersProvider.getGasPrice() // gasPrice5. Transaktion definieren
Diese unten definierten Variablen sind abhängig von send_token()
Transaktionsparameter
send_account: Adresse des Token-Sendersto_address: Adresse des Token-Empfängerssend_token_amount: Die Menge der zu sendenden Tokengas_limit: Gaslimitgas_price: Gaspreis
Siehe unten für die Verwendung
1const tx = {2 from: send_account,3 to: to_address,4 value: ethers.utils.parseEther(send_token_amount),5 nonce: window.ethersProvider.getTransactionCount(send_account, "latest"),6 gasLimit: ethers.utils.hexlify(gas_limit), // 1000007 gasPrice: gas_price,8}6. Übertragen
1walletSigner.sendTransaction(tx).then((transaction) => {2 console.dir(transaction)3 alert("Send finished!")4})Verwendung
1let private_key =2 "41559d28e936dc92104ff30691519693fc753ffbee6251a611b9aa1878f12a4d"3let send_token_amount = "1"4let to_address = "0x4c10D2734Fb76D3236E522509181CC3Ba8DE0e80"5let send_address = "0xda27a282B5B6c5229699891CfA6b900A716539E6"6let gas_limit = "0x100000"7let wallet = new ethers.Wallet(private_key)8let walletSigner = wallet.connect(window.ethersProvider)9let contract_address = ""10window.ethersProvider = new ethers.providers.InfuraProvider("ropsten")11
12send_token(13 contract_address,14 send_token_amount,15 to_address,16 send_address,17 private_key18)Erfolg!
send_token()
1function send_token(2 contract_address,3 send_token_amount,4 to_address,5 send_account,6 private_key7) {8 let wallet = new ethers.Wallet(private_key)9 let walletSigner = wallet.connect(window.ethersProvider)10
11 window.ethersProvider.getGasPrice().then((currentGasPrice) => {12 let gas_price = ethers.utils.hexlify(parseInt(currentGasPrice))13 console.log(`gas_price: ${gas_price}`)14
15 if (contract_address) {16 // allgemeiner Token-Versand17 let contract = new ethers.Contract(18 contract_address,19 send_abi,20 walletSigner21 )22
23 // Wie viele Tokens?24 let numberOfTokens = ethers.utils.parseUnits(send_token_amount, 18)25 console.log(`numberOfTokens: ${numberOfTokens}`)26
27 // Tokens senden28 contract.transfer(to_address, numberOfTokens).then((transferResult) => {29 console.dir(transferResult)30 alert("sent token")31 })32 } // Ether senden33 else {34 const tx = {35 from: send_account,36 to: to_address,37 value: ethers.utils.parseEther(send_token_amount),38 nonce: window.ethersProvider.getTransactionCount(39 send_account,40 "latest"41 ),42 gasLimit: ethers.utils.hexlify(gas_limit), // 10000043 gasPrice: gas_price,44 }45 console.dir(tx)46 try {47 walletSigner.sendTransaction(tx).then((transaction) => {48 console.dir(transaction)49 alert("Send finished!")50 })51 } catch (error) {52 alert("failed to send!!")53 }54 }55 })56}Letzte Aktualisierung der Seite: 3. März 2026
