- Dans le terminal assurez-vous que nous sommes dans le répertoire truffle-example
cd truffle-example
Avant de pouvoir déployer notre contrat, nous devons d’abord ajouter un nouveau fichier sous le répertoire migrations
Créez un nouveau fichier sous le répertoire migrations et préfixez le nom du fichier avec » 2_ « et nommez-le 2_NumberChanger.js
- À l’intérieur 2_NumberChanger.js nous allons écrire le script suivant
const NumberChanger = artifacts.require(“NumberChanger”);
module.exports = function (deployer){ deployer.deploy(NumberChanger);
}
Nous avons défini une variable appelée NumberChanger, mais cela peut être n’importe quel nom que vous souhaitez. A l’intérieur de la variable, nous appelons le artefacts.require méthode et passez le nom de notre contrat avec lequel interagir (pas le nom du fichier), qui dans ce cas est également appelé « Changeur de numéro »
Ensuite, nous exportons la fonction qui déploierait le contrat
Pour en savoir plus sur le fonctionnement des migrations, cliquez ici Migration de la truffe
Maintenant que nous sommes configurés, déployons notre contrat, exécutez ce qui suit dans le terminal
truffle compile
Et vous devriez obtenir les résultats suivants
Compiling your contracts...===========================✔ Fetching solc version list from solc-bin. Attempt #1> Compiling ./contracts/Migrations.sol> Compiling ./contracts/NumberChanger.sol> Artifacts written to /Users/Desktop/Examples/truffle-example/build/contracts> Compiled successfully using:- solc: 0.8.10+commit.fc410830.Emscripten.clang
Une fois compilé, il devrait y avoir un dossier créé appelé construire
C’est là que se trouvent vos contrats ABI afin que le front-end puisse interagir avec lui et que le byte code soit créé pour l’EVM
Maintenant que nous avons compilé nos contrats, nous pouvons le déployer. Pour cet exemple, nous allons le déployer sur le réseau local, Ganache.
Tout d’abord dans le terminal, exécutez la commande suivante
ganache-cli
Vous devriez maintenant voir ce qui suit :
Ganache CLI v6.12.2 (ganache-core: 2.13.2)Available Accounts==================(0) 0x735d731D1B90eBFD8B35E550e7430282c98133eC (100 ETH)(1) 0x59dc305ac3564D0aF51b770311F182890023ed73 (100 ETH)(2) 0xb8a3fAC0eeD31dFF5E5A641a3278DC34afbFb35C (100 ETH)(3) 0xC703D178A5F529186F035bf83E7EC4155951e537 (100 ETH)(4) 0x8951B99e2fA2e5E721552d2091Ac922A140581A7 (100 ETH)(5) 0x32919628CFCE86CcA027C09FabAe15643Ef6DEd2 (100 ETH)(6) 0x3ae65932Ee15a270B8876845b5Cf6D23A4ee801E (100 ETH)(7) 0xC429c4836504aF3Aa4b687163c9be108Fa3d35E4 (100 ETH)(8) 0x7a9026b25Ceb30A0934384b354a53690c889FCfd (100 ETH)(9) 0xd8F267534a42B91B8469127695c200E571a8c2F4 (100 ETH)Private Keys
==================(0) 0x7ab485a29412a9d4f466778d2d1de37c19fc1c10217e5bc10153af185541c445(1) 0xc9fc3d2e11d0701dc52820187ad830f0f0b7cfc77365a8e1b8df7f38a3df2d90(2) 0x09a2d80b06649bafe479d7f6610e41df6b5e77420aaa0d45cef9bb09016def90(3) 0x54e49af326e58a98b831acf00ce8799f2cd23f470b382c5b184397b23450f18d(4) 0x952d1e27ef8289a5988c89ea9096c694e2f376356972d73388fe3a48fd201b56(5) 0x96ff3b0f11c396e4eb696b325fff8aeca0899bae5285c15a2096e503583edf68(6) 0xd9b0ef3b02245d05588295836040df476c0298d1f33291e55556a874cabbccf3(7) 0x4b2899ed136d6bff17f352a2aa6c2eb162ba183861dfb28487540c473b91f992(8) 0x75fa379cd3b1e925849587af471e7000fe36d63496720147c8ceb13ca70d2872(9) 0x907a9ee73f5fa3d3a79565106236f57687dc710c6e7a3bed97256ea494bb0b32HD Wallet==================Mnemonic: just always youth crew song dust frost virtual program amused scene cashBase HD Path: m/44'/60'/0'/0/{account_index}Gas Price==================20000000000Gas Limit==================6721975Call Gas Limit==================9007199254740991
Maintenant que notre blockchain locale fonctionne, nous pouvons maintenant déployer notre contrat
Exécutez le code suivant dans le terminal et vous devriez obtenir le résultat suivant
truffle migrate
la truffe migre est similaire à déploiement de truffes Vous pouvez trouver plus d’informations sur ce sujet ici Migration de la truffe
Compiling your contracts...===========================✔ Fetching solc version list from solc-bin. Attempt #1> Compiling ./contracts/Migrations.sol> Compiling ./contracts/NumberChanger.sol> Artifacts written to /Users/Desktop/Examples/truffle-example/build/contracts> Compiled successfully using:- solc: 0.8.10+commit.fc410830.Emscripten.clangStarting migrations...======================> Network name: 'development'> Network id: 1639592180037> Block gas limit: 6721975 (0x6691b7)1_initial_migration.js======================Deploying 'Migrations'----------------------> transaction hash: 0x41f9ad193605295c1424325c13c6f36e41ddfebd9836605542e8ff47af33e929> Blocks: 0 Seconds: 0> contract address: 0x01Dd5F52EC31A26C51D4EB42f0A448d863F342e0> block number: 21> block timestamp: 1639598127> account: 0x735d731D1B90eBFD8B35E550e7430282c98133eC> balance: 99.95056962> gas used: 248854 (0x3cc16)> gas price: 20 gwei> value sent: 0 ETH> total cost: 0.00497708 ETH> Saving migration to chain.> Saving artifacts-------------------------------------> Total cost: 0.00497708 ETH2_NumberChanger.js==================Deploying 'NumberChanger'-------------------------> transaction hash: 0x8aa0925fd1df6669566f89c4751e44b8fb905ca07618392e216f3223609dda9e> Blocks: 0 Seconds: 0> contract address: 0x2CdfF21817CEe737eBeB8fAd13af0f0964A1D907> block number: 23> block timestamp: 1639598127> account: 0x735d731D1B90eBFD8B35E550e7430282c98133eC> balance: 99.9472063> gas used: 125653 (0x1ead5)> gas price: 20 gwei> value sent: 0 ETH> total cost: 0.00251306 ETH> Saving migration to chain.> Saving artifacts-------------------------------------> Total cost: 0.00251306 ETHSummary=======> Total deployments: 2> Final cost: 0.00749014 ETH
Tu peux voir ça la truffe migre compile le contrat et le déploie. Vous pouvez simplement utiliser la truffe migre pour compiler et déployer votre contrat en une seule commande
Le contrat est maintenant déployé, pouvez-vous voir les adresses de contact
Une dernière chose est de déplacer le construire dossier. Par défaut, il sera créé dans le répertoire racine, mais comme nous allons interagir avec le front-end avec React, il doit être situé dans le src dossier.
Dans le truffle-config.js fichier, ajoutez le code suivant avant module.exports
const path = require("path")
placez le code suivant sous le module.exports
contracts_build_directory: path.join(__dirname, "src/build"),
Le résultat devrait ressembler à ce qui suit :
const path = require("path");module.exports = {contracts_build_directory: path.join(__dirname, "src/build"),networks: {development: {host: "127.0.0.1",port: 8545,network_id: "*",},},compilers: {solc: {version: "pragma",},},};
Maintenant, lorsque nous redéployons notre contrat, le dossier de construction doit être créé dans le src dossier