February 25, 2023

Разворачиваем smart contract        на Truffle

Установка программ

Весь процесс будем выполнять на ПК. Поэтому для начала предстоит установить необходимые программы: Node.js, npm через Homebrew, GIT, Visual Studio Code.

Устанавливаем программу Truffle командой через терминал:

npm install -g truffle

P.S. при возникновении ERR введите в терминал sudo su, пароль и после этого npm install -g truffle. Не беспокойтесь будет много WARN

Создание смарт-контракта

На рабочем столе создаем папку с любым названием (моя папка называется SmartContract для примера)

Заходим в Visual Studio Code (VSC) в раздел “Расширения”, в поиске вводим Truffle for VS Code, и нажимаем Install. Затем подобным образом устанавливаем Cairo.

Переходим в самый верхний раздел “Проводник” и справа нажимаем “Открыть - Open”, выбираем нашу созданную папку на рабочем столе.

В самом низу слева нажимаем на крестик в кружке, у вас отобразиться терминал для ввода команд

Вводим команду:

truffle --version

Устанавливаем в папке проекта truffle с помощью команды в терминале:

truffle init

В нашем папке будут созданы >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;
}
}

В строке терминала пишем команду:

truffle compile

Это создаст в папке 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 и т.д.)

Вводим в терминале:

truffle dashboard

Нас перекинет в Dashboard Truffle, где мы коннектим наш ММ кошелек.

Внизу отобразиться сеть ММ

Открываем вторую вкладку терминала (справа будет +) и прописываем команду:

truffle migrate --network dashboard

Начнется создание смарт-контракта

Затем подтверждаем Confirm транзакцию в dashboar и в нашем MM кошельке

Так выглядит итог с данными вашего смарт-контракта

Поздравляю с успешным созданием SC в одной сети!

Теперь переключайте сеть в ММ и прописывайте в последнем терминале:

truffle migrate --network dashboard

Получаем SC в другой сети! И так вы можете за 10 минут развернуть во всех EVM сетях данный смарт-контракт.