Деплой контракта в тестовой сети 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 - Подписываемся для того, чтобы узнать о свежих активностях в тестнете