Разворачиваем smart contract на Truffle
Весь процесс будем выполнять на ПК. Поэтому для начала предстоит установить необходимые программы: Node.js, npm через Homebrew, GIT, Visual Studio Code.
Устанавливаем программу Truffle командой через терминал:
P.S. при возникновении ERR введите в терминал sudo su, пароль и после этого npm install -g truffle. Не беспокойтесь будет много WARN
На рабочем столе создаем папку с любым названием (моя папка называется SmartContract для примера)
Заходим в Visual Studio Code (VSC) в раздел “Расширения”, в поиске вводим Truffle for VS Code, и нажимаем Install. Затем подобным образом устанавливаем Cairo.
Переходим в самый верхний раздел “Проводник” и справа нажимаем “Открыть - Open”, выбираем нашу созданную папку на рабочем столе.
В самом низу слева нажимаем на крестик в кружке, у вас отобразиться терминал для ввода команд
Устанавливаем в папке проекта truffle с помощью команды в терминале:
В нашем папке будут созданы >contracts, >migrations, >test и js файл
Заходим в папку contracts и выбираем правой кнопкой мыши New file, придумываем название смарт-контракту с окончанием .sol (мой проект для примера Tokenom.sol)
В файле создаем контракт, ниже один из примеров (не забываем изменить NameProject на свое название)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract NameProject {
uint256 a;
uint256 b;
function setter(uint256 _a) public {
a = _a;}
function getter() public view returns (uint256){
return a;
}
}В строке терминала пишем команду:
Это создаст в папке build файл NameProject.json
P.S. Если у вас не создается json файл в build, выходит предупреждение о версии solidity, выйдите из VSC и зайдите вновь в свою папку, и введите команду truffle compile
Затем в папке migrations создаем файл 1_deploy_token.js
var NameProject = artifacts.require("./NameProject.sol");
module.exports = function (deployer) {
deployer.deploy(NameProject);
};Закрываем его (нажимаем на крестик) и сохраняем.
Переходим в файлу truffle-config.js, ниже то, каким он должен быть
const HDWalletProvider = require('@truffle/hdwallet-provider');
module.exports = {
networks: {
dashboard: {
host: "127.0.0.1", // Localhost (default: none)
port: 24012,
},
mocha: {
},
compilers: {
solc: {
version: "0.8.18",
}
},
}
}npm install @truffle/hdwallet-provider
Разворачиваем смарт-контракт в различных сетях (ConsenSyns zkEVM Testnet, Optimism, Arbitrum, Ethereum, Sepolia и т.д.)
Нас перекинет в Dashboard Truffle, где мы коннектим наш ММ кошелек.
Открываем вторую вкладку терминала (справа будет +) и прописываем команду:
truffle migrate --network dashboard
Начнется создание смарт-контракта
Затем подтверждаем Confirm транзакцию в dashboar и в нашем MM кошельке
Так выглядит итог с данными вашего смарт-контракта
Поздравляю с успешным созданием SC в одной сети!
Теперь переключайте сеть в ММ и прописывайте в последнем терминале:
truffle migrate --network dashboard
Получаем SC в другой сети! И так вы можете за 10 минут развернуть во всех EVM сетях данный смарт-контракт.