December 22, 2024

Деплой контракта в тестовой сети Mezo с помощью Remix

Деплой контрактов порой необходим для ретроактивностей. В этой статье я объясню как сделать это в тестовой сети Mezo на примере простого ERC-20 токена.

1. Для начала нам нужны Mats в Mezo, если вы уже застейкали их в mezo.org/matsnet как нужно было в прошлом гайде https://teletype.in/@coingonzo/mezo, то переходим к следующему шагу

2. Добавляем сеть в EVM кошелек: https://chainlist.org/chain/31611
Нам отобразится BTC - это и есть наши mats, которые мы будем использовать для газа

3. Переходим сюда https://remix.ethereum.org/ и выбираем ERC-20 контракт

4. В файлах контракта находим "MyToken.sol", стираем все оттуда и вставляем туда это:

// SPDX-License-Identifier: MIT pragma solidity ^0.8.20;

contract CoinGonzo { // Token details string public name = "CoinGonzo"; string public symbol = "GNZ"; uint8 public decimals = 18; uint256 public totalSupply;

// Balances for each account mapping(address => uint256) public balanceOf; // Allowances for spending mapping(address => mapping(address => uint256)) public allowance;

// Events event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value);

// Constructor constructor(uint256 initialSupply) { totalSupply = initialSupply * (10 ** decimals); // Scale the supply based on decimals balanceOf[msg.sender] = totalSupply; // Assign the entire supply to the deployer emit Transfer(address(0), msg.sender, totalSupply); }

// Transfer function function transfer(address to, uint256 value) public returns (bool success) { require(to != address(0), "Invalid address"); require(balanceOf[msg.sender] >= value, "Insufficient balance");

balanceOf[msg.sender] -= value; balanceOf[to] += value; emit Transfer(msg.sender, to, value); return true; }

// Approve allowance function approve(address spender, uint256 value) public returns (bool success) { require(spender != address(0), "Invalid address");

allowance[msg.sender][spender] = value; emit Approval(msg.sender, spender, value); return true; }

// Transfer from (for allowances) function transferFrom(address from, address to, uint256 value) public returns (bool success) { require(to != address(0), "Invalid address"); require(balanceOf[from] >= value, "Insufficient balance"); require(allowance[from][msg.sender] >= value, "Allowance exceeded");

balanceOf[from] -= value; balanceOf[to] += value; allowance[from][msg.sender] -= value; emit Transfer(from, to, value); return true; } }

5. Во вкладке Solidity Compiler:
- Выбираем версию Сompiler 0.8.20 commit
- Жмем Advanced Configuration и выбираем EVM VERSION london

6. Во вкладке Deploy & run:
-В Environment Выбираем Inject Provider - Metamask ( Если вы используете другой кошелек, то нажмите Сustom this list и добавьте нужный под ваш кошелек вариант. Например: "Injected Provider - OKX Wallet" чтобы сделать это через OKX)
- Рядом с оранжевой кнопкой Deploy вводим желанное кол-во токенов и нажимаем на эту кнопку, после подписываем транзакцию

7. Внизу появится зеленая галочка. Раскрываем ее и находим contract address, копируем его и имортируем токен себе в кошелек


Добавляем токен, кто не знает:

Готово, теперь вы можете отправлять свой токен в тестовой сети Mezo! Думаю, данная активность не останется без внимания чекера дропа)


https://t.me/coingonzo - Подписываемся для того, чтобы узнать о свежих активностях в тестнете