Как создать смарт-контракт на Ethereum с помощью Solidity

1 lug 2023 1 min di lettura
Как создать смарт-контракт на Ethereum с помощью Solidity
Indice dei contenuti

Введение

Это руководство проведет вас через процесс создания простого смарт-контракта Ethereum с использованием Solidity, языка программирования для написания смарт-контрактов Ethereum.

Предпосылки

Чтобы следовать этому руководству, вам понадобятся:

  • Node.js и npm установлены в вашей системе
  • Truffle Suite, среда разработки, среда тестирования и конвейер активов для Ethereum.
  • Ganache, персональный симулятор блокчейна для Ethereum

Вы можете установить Truffle и Ganache с помощью команды npm:

npm install -g truffle
npm install -g ganache-cli

Создание проекта

Начнем с создания нового каталога для нашего проекта и инициализации нового проекта Truffle.

mkdir ethereum-contract
cd ethereum-contract
truffle init

Напишите смарт-контракт

Давайте создадим новый файл с именем SimpleStorage.sol в каталоге contracts/ и добавим следующий код:

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

 contract SimpleStorage {
 uint public data;

 function set(uint x) public {
 data = x;
 }

 function get() public view returns (uint) {
 return data;
 }
 }

Это очень простой контракт, который хранит целое число и предоставляет две функции, set и get, для изменения и получения значения.

Создание файла миграции

Чтобы развернуть контракт на блокчейне, вам нужно будет создать файл миграции. Создайте новый файл с именем 2_deploy_contracts.js в каталоге migrations/ и добавьте следующий код:

const SimpleStorage = artifacts.require("SimpleStorage");

 module.exports = function (deployer) {
 deployer.deploy(SimpleStorage);
 };

Протестируйте контракт

Перед развертыванием контракта мы должны написать несколько его тестов. Создайте новый файл с именем simpleStorage.js в каталоге test/ и добавьте следующий код:

const SimpleStorage = artifacts.require('SimpleStorage');

 contract('SimpleStorage', () => {
 it('should set the value of data variable', async () => {
 const simpleStorage = await SimpleStorage.deployed();
 await simpleStorage.set(10);
 const result = await simpleStorage.get();
 assert(result.toNumber() === 10);
 });
 });

Запустите тесты командой:

truffle test

Распространить контракт

Наконец, мы распространяем контракт на нашем локальном блокчейне с помощью Ganache. Запустите команду:

ganache-cli

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

truffle migrate

Заключение

Поздравляем! Вы только что написали и развернули свой первый смарт-контракт на Ethereum с помощью Solidity.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.