USDC Yield With Cover Built InQuicknode Earn now runs USDC yield with cover for protocol risk built in, underwritten by OpenCover. Six covered vaults on Base.
Lesen Sie die AnkündigungEntwicklung mit Kyber Network
Das Kyber-Protokoll stellt Token-Bestände und -Preise auf der Blockchain bereit und ermöglicht es Entwicklern somit, Werttransaktionen ohne technischen oder sicherheitstechnischen Mehraufwand direkt in ihre Smart Contracts zu integrieren.

22. Mai 2019 – 5 Minuten Lesezeit

Es gibt unzählige Token, doch alle streben nach maximaler Liquidität und Nutzwert. Wenn Sie beispielsweise den Token „X“ besitzen, können Sie diesen Token auf der zugehörigen „X“-Plattform verwenden. Das schränkt die Verwendungsmöglichkeiten des Tokens ein! Das Kyber-Netzwerk löst dieses Problem durch die Schaffung einer Token-Reserve, sodass Sie Token in Echtzeit umtauschen können. Wenn also eine Website DAI als Zahlungsmittel akzeptiert, Sie aber nur OMG besitzen, können Sie mit OMG bezahlen, das dann in Echtzeit in DAI umgetauscht wird.
Das Kyber-Protokoll stellt Token-Bestände und -Preise auf der Blockchain bereit und ermöglicht es Entwicklern somit, Werttransaktionen ohne technischen oder sicherheitstechnischen Mehraufwand direkt in ihre Smart Contracts zu integrieren.
Dies ermöglicht:
Sofortige Bestätigung
Transaktionssicherheit (es besteht kein Transaktionsrisiko, keine Abwicklungsunsicherheit und kein Kontrahentenrisiko)
Ein globaler und vielfältiger Pool verschiedener Token
Wir werden die Demo des Kyber-Network-Workshops durchgehen und mithilfe der Smart Contracts des Kyber-Netzwerks Token tauschen.
Einrichtung:
Node.js installieren
Ganache-Cli installieren
sudo npm install -g ganache-cli
Truffle installieren
sudo npm install -g truffle@latest
Repository klonen:
git clone https://github.com/KyberNetwork/workshop.git
Übersicht über das Repository
Schauen wir mal, was wir im Repository haben:
config — Konfigurationen, die von Kyber-Verträgen für „Migrationen“ verwendet werden. Diese Konfigurationen sind Parameter, die von den Verträgen nach ihrer Bereitstellung verwendet werden.
Verträge – Verträge des Kyber-Netzwerks, Beispiele sowie einige fiktive Token und Verträge zu Testzwecken.
Beispiele – Dies ist ein wichtiges Verzeichnis, auf das wir im Laufe dieses Tutorials immer wieder zurückgreifen werden. Es enthält das Kyber-Netzwerk-Beispiel.
Truffle – Diese Datei enthält eine JS-Datei, die wir mit truffle-cli oder in einem Truffle-Projekt verwenden können.
Web3 — Hier sind normale JS-Dateien enthalten, die du mit Knoten Befehl
Solidity – Ein in Solidity geschriebener Vertrag, den wir mit der Truffle-Konsole verwenden werden.
Migrationen – Enthält ein Migrationsskript zur Einrichtung und Bereitstellung von Kyber-Netzwerkverträgen.

Einrichtung des Kyber-Netzwerks und Vertragsmigrationen:
Nun werden wir die Kyber-Network-Verträge einrichten.
Wir verwenden eine vordefinierte Mnemonik, sodass wir keine Adressen für den Vertrag und für unsere Wallet konfigurieren müssen. Führen Sie diesen Befehl aus, um Ganache zu starten:
ganache-cli --accounts 10 --defaultBalanceEther 1000 --mnemonic 'gesture rather obey video awake genuine patient base soon parrot upset lounge' --networkId 5777 --debug
Migration ausführen:
Bevor wir beginnen, müssen wir alle unsere Verträge bereitstellen. Dazu müssen wir die Migration ausführen:
truffle migrate --network development
Das wird eine Weile dauern…
Wir verwenden eine vordefinierte Mnemonik, daher erhalten Sie die unten definierten Adressen:

Beispiel für „Running Truffle“:
Schauen wir uns ein Beispiel aus dem Truffle-Verzeichnis an.
truffle exec examples/truffle/getExpectedRate.js
Dadurch erhalten wir die Wechselkurse, allerdings mit unterschiedlich konfigurierten Tokens.
Web3-Beispiel ausführen:
Schauen wir uns noch einmal den Wechselkurs an – diesmal verwenden wir jedoch Node.js.
cd examples/web3node getExpectedRate.js
Verwendung eines Solidity-Vertrags zum Tauschen von Token:
Lassen Sie uns nun Token tauschen, indem wir mit den Verträgen des Kyber-Netzwerks interagieren.
Wir werden KNC (Kyber Network Token) gegen OMG (OmiseGO Token) tauschen.
Denken Sie daran: Sie können das Gleiche auch mit Web3- und Truffle-Beispielen tun, aber die Ausführung des Tests über die Truffle-Konsole ist wesentlich einfacher und interaktiver. Also lassen Sie uns die Truffle-Konsole starten:
Truffle-Konsole
Unsere Benutzeradresse lautet 0x47a793D7D0AA5727095c3Fe132a6c1A46804c8D2 — Das werden wir noch einmal brauchen, also weisen wir es einer Variablen zu:
let userWallet = '0x47a793D7D0AA5727095c3Fe132a6c1A46804c8D2'
In unserem Solidity-Ordner befindet sich die Datei „Trade.sol“, die uns beim Tauschen des Tokens hilft. Den Code für den Vertrag findest du hier: examples > solidity > Trade.sol.
Nun müssen wir eine Instanz dieses Vertrags abrufen:
let tradeInstance = await Trade.at(Trade.address)
Da wir nun KNC gegen OMG tauschen wollen, holen wir uns als Nächstes die Instanzen für beide Kontrakte. Diese Token-Kontrakte finden Sie unterVerträge → mockTokens . Dies sind ERC20-Test-Token. In der Produktionsumgebung benötigen Sie die tatsächlichen Vertragsadressen für diese Token auf der ETH: MainNet.
let kncInstance = await KyberNetworkCrystal.at(KyberNetworkCrystal.address) let omgInstance = await OmiseGo.at(OmiseGo.address) Nun rufen wir den Kontostand für jeden Token ab: let kycBalance1 = (await kncInstance.balanceOf(userWallet)).toString() let omgBalance1 = (await omgInstance.balanceOf(userWallet)).toString()
Sie können diese Salden überprüfen, indem Sie folgenden Befehl ausführen:
kycBalance1 omgBalance1
Nun müssen wir die Genehmigung für den Trade-Vertrag erteilen, um Token aus unserem Vertrag abzuheben:
await kncInstance.approve(tradeInstance.address , web3.utils.toWei('100000'), {from : userWallet})Jetzt können wir Token tauschen! Schauen wir uns das Trade.sol Methode, mit der wir die Token vertauschen werden:
function execSwap( ERC20 srcToken, uint srcQty, ERC20 destToken, address destAddress, uint maxDestAmount)
Hier,
srcToken — Adresse des Quell-Token-Vertrags
srcQty – Anzahl der Quell-Token
destToken — Adresse des Ziel-Token-Vertrags
destAddress – Adresse, an die die ausgetauschten Token gesendet werden sollen
maxDestAmount – Adresse, an die die getauschten Token gesendet werden sollen
Rufen wir die Methode also entsprechend auf:
tradeInstance.execSwap(kncInstance.address, web3.utils.toWei("100") , omgInstance.address,userWallet, web3.utils.toWei("1000000"), {from: userWallet})Wenn Sie dem Tutorial bis hierher gefolgt sind, haben Sie erfolgreich zwei Token mithilfe des Kyber-Network-Protokolls getauscht!
Lassen Sie uns unseren Token-Stand noch einmal überprüfen:
let kycBalance2 = (await kncInstance.balanceOf(userWallet)).toString() let omgBalance2 = (await omgInstance.balanceOf(userWallet)).toString() kycBalance2 omgBalance2
Sie werden die Änderung des Kontostands sehen. Hier ist ein Demo-Video zur obigen Anleitung.
Sollten Sie auf Probleme stoßen, können Sie hier nachsehen oder in der Telegram-Gruppe des Kyber-Netzwerks Fragen stellen. Kyber verfügt außerdem über eine gute Dokumentation. Worauf warten Sie also noch? Integrieren Sie Ihre DApp in das Kyber-Netzwerk!
Benötigst du Hilfe bei deinem Projekt oder hast du Fragen? Kontaktiere uns über dieses Formular, auf Twitter unterQuicknode oder schreib uns auf Discord!
Quicknode wurde 2017 gegründet und Quicknode Entwicklern und Unternehmen eine Blockchain-Infrastruktur auf institutionellem Niveau Quicknode . Dank einer Verfügbarkeit von 99,99 % und der Unterstützung von mehr als 80 Blockchains können Teams On-Chain-Anwendungen ohne Kompromisse entwickeln und skalieren.
Die neuesten Erkenntnisse aus der Technik, Produkt-Updates und Neuigkeiten aus der Web3-Welt – direkt in Ihren Posteingang.
SOC 2 Typ II-zertifiziert · ISO 27001