Tutoriel Uniswap – Création d’une paire d’échange

Voici un tutoriel permettant de créer une nouvelle paire d’échange ETH/LINK. Le token d’entrée étant l’ETH et celui de sortie le LINK.

Détails techniques importants : Ce tutoriel est codé en JavaScript sur une machine Ubuntu. Rappelons que ce développement exploite la version 2 d’Uniswap au sein du réseau Kovan d’Ethereum (Testnet).

1. Mise en place de Web3

var Web3 = require('web3');
var url = 'https://kovan.infura.io/v3/1ddecb8f28c94eab8d84230e8d109bdd';
var web3 = new Web3(url);

Ajoutons la bibliothèque Web3 à notre script que nous faisons interagir avec un noeud Kovan d’Ethereum fourni par Infura.

2. Récupération de l’ABI du smart contract Factory

var abi_factory = [ … ];

Récupérons l’ABI du smart contract Factory ici.

3. Mise en place d’un wallet

var wallet = await web3.eth.accounts.wallet.add(‘0x87214a3bad248a1e82e0a86a107bdb020d740e9d3ce4f8c64b025f0f1e60adcd’);

Ajoutons un wallet existant, alimenté auparavant, grâce à un faucet Kovan.

4. Création de l’instance du smart contract Factory

var factory = new web3.eth.Contract(abi_factory,’0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f’);

Créons une instance du smart contract Factory avec son ABI et son adresse sur le réseau Kovan.

5. Mise en place de la transaction

var gasEstimate = await factory.methods.createPair('0xd0A1E359811322d97991E03f863a0C30C2cF029C','0x61eB5a373c4Ec78523602583c049d8563d2C7BCD').estimateGas({from:wallet.address});

La variable gasEstimate représente le gas qu’il faut fournir pour la transaction à venir.

6. Déploiement de la transaction

var transaction = await factory.methods.createPair('0xd0A1E359811322d97991E03f863a0C30C2cF029C','0x61eB5a373c4Ec78523602583c049d8563d2C7BCD').send({from:wallet.address,gas:gasEstimate});

Cette fonction lance la transaction sur la Blockchain. Celle-ci crée une paire WETH/LINK sur le réseau Kovan. En effet, les paramètres de la fonction createPair représentent l’adresse du token voulu.

7. Vérification sur kovan.etherscan.io

Récupérons l’adresse de notre Wallet (0x102fFcdc8E00A259695b4E243c9724435aD625bB) que nous recherchons
sur kovan.etherscan.io. Nous pouvons alors constater que la transaction a bien été effectuée.

Attention ! La paire WETH/LINK venant d’être créée, vous ne pouvez pas effectuer la même création de paire. Il vous faut modifier les adresses en paramètre dans les étapes 5 et 6 et les remplacer par d’autres tokens non utilisés comme paire jusqu’à ce jour.

Intégralité du code

var Web3 = require('web3');
var url = 'https://kovan.infura.io/v3/1ddecb8f28c94eab8d84230e8d109bdd';
var web3 = new Web3(url);

var abi_factory = [ … ];

async function run() {
    
    var wallet = await web3.eth.accounts.wallet.add('0x87214a3bad248a1e82e0a86a107bdb020d740e9d3ce4f8c64b025f0f1e60adcd');
    var balance = await web3.eth.getBalance(wallet.address);
    console.log('Adresse de mon Wallet : ' + wallet.address);
    console.log('Solde avant création de la nouvelle paire (en WEI) : ' + balance);
    
    var factory = new web3.eth.Contract(abi_factory,'0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f');

    var gasEstimate = await factory.methods.createPair('0xd0A1E359811322d97991E03f863a0C30C2cF029C','0x61eB5a373c4Ec78523602583c049d8563d2C7BCD').estimateGas({from:wallet.address});
    console.log('Frais de transaction estimés (en WEI) : ' + gasEstimate);

    var transaction = await factory.methods.createPair('0xd0A1E359811322d97991E03f863a0C30C2cF029C','0x61eB5a373c4Ec78523602583c049d8563d2C7BCD').send({from:wallet.address,gas:gasEstimate});

    var balance_after = await web3.eth.getBalance(wallet.address);
    console.log('Solde après création de la nouvelle paire (en WEI) : ' + balance_after);
}
run();
Thème : Overlay par Kaira. © Copyright 2020. Tous droits réservés.
Paris, France