Активности, Роли, Тестнеты
March 26, 2023

ConsenSys zkEVM - Truffle - Deploy Contract

Простой и быстрый деплой контракта с помощью Truffle. Только для тех, кому Infura предоставила доступ к их RPC для ConsenSys zkEVM.

  1. Основной тестнет, можно пройти по ссылке: https://goerli.zkevm.consensys.net/
  2. Ссылка на документацию: https://docs.infura.io/infura/tutorials/ethereum/deploy-a-contract-using-truffle
  3. Ссылка на контракт: https://trufflesuite.com/boxes/metacoin/

Переходим к деплою контракта.

  1. Берем любой сервер в аренду, рекомендую брать на hetzner, там оплата за время использования, система ubuntu 20.04.
  2. На кошельке должны быть $CRETH;
  3. Вводим все команды по очереди.

Обновляем систему

sudo apt update && sudo apt upgrade -y
apt install curl git -y

Устанавливаем nodejs и npm

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - && \
sudo apt-get install nodejs -y && \
echo -e "\nnodejs > $(node --version).\nnpm  >>> v$(npm --version).\n"

Устанавливаем truffle

npm install -g truffle
mkdir truffleProject
cd truffleProject

Устанавливаем пакет для использования .env

npm install dotenv

Устанавливаем смарт-контракт, подтверждаем если запросит.

truffle unbox metacoin -y

Если так висит, то наберите "y" на клавиатуре и enter;

Устанавливаем пакет, который может подписывать транзакции для адресов, полученных из мнемоники из 12 или 24 слов.

npm install @truffle/hdwallet-provider

Создаем .env файл

nano /root/truffleProject/.env

Копируем в него текст, подставляя свои переменные, ctrl+S > ctrl+X

INFURA_API_KEY = "https://consensys-zkevm-goerli-prealpha.infura.io/v3/<Your-API-Key>"
MNEMONIC = "<Your-MetaMask-Secret-Recovery-Phrase>"

Редактируем конфиг файл

nano /root/truffleProject/truffle-config.js

Удаляем из него всё содержимое и вставляем текст, ctrl+S > ctrl+X:

require('dotenv').config();
const HDWalletProvider = require('@truffle/hdwallet-provider');
const { INFURA_API_KEY, MNEMONIC } = process.env;

module.exports = {
  networks: {
    development: {
      host: "127.0.0.1",
      port: 8545,
      network_id: "*"
    },
    goerli: {
      provider: () => new HDWalletProvider(MNEMONIC, INFURA_API_KEY),
      network_id: '59140',
      gas: 4465030
    }
  },
  compilers: {
    solc: {
      version: "0.8.19",
    }
  }
};

Отправляем контракт в сеть

truffle migrate --network goerli

По итогу, мы задеплоим два контракта, сможете проверить в эксплорере:

https://explorer.goerli.zkevm.consensys.net/

Могут не сразу отобразиться, а только через пару минут.

Если всё ок, удаляем сервер, он больше не нужен.

Подписывайся на телеграм канал Smart Move

>>> https://t.me/smrtmv <<<

Обзоры проектов, токеномика, аналитика, сравнения.