Foundry

Деплой смарт-контракта при помощи Foundry

Что такое Foundry?

Foundry - это набор инструментов для разработки Ethereum на языке Rust, который помогает разработчикам управлять зависимостями, компилировать проекты, запускать тесты, развертывать контракты и взаимодействовать с блокчейном через интерфейс командной строки.

Кроме того, Foundry может напрямую взаимодействовать с Ethereum API компании Caldera, что позволяет использовать Foundry для развертывания смарт-контрактов в сети Caldera.

Начало работы с Foundry

  1. Установите Foundry

    • Linux или MaxOS

      curl -L https://foundry.paradigm.xyz | bash
      foundryup
    • Windows

      curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs/ | sh
      cargo install --git https://github.com/foundry-rs/foundry foundry-cli anvil --bins --locked
  2. Создайте проект

    forge init foundry
  3. Перейдите в Source в проекте и создайте свой смарт-контракт

    cd src
    touch MyToken.sol
  4. Вставьте код смарт-контракта или используйте произвольный ниже код.

    // SPDX-License-Identifier: MIT
    // compiler version must be greater than or equal to 0.8.17 and less than 0.9.0
    pragma solidity ^0.8.17;
    
    contract HelloWorld {
        string public greet = "Hello World!";
    }
  5. Установите OpenZeppelin контракты как зависимость

    forge install OpenZeppelin/openzeppelin-contracts
  6. Скомпилируйте контракт

    forge build

Деплой своего смарт-контракта

Развертывание контракта с помощью Forge - это простой процесс, который можно выполнить одной командой. Однако для этого требуется конечная точка RPC, закрытый ключ, который имеет средства, и любые аргументы для конструктора контракта.

Например, контракт MyToken.sol требует начального количества токенов, указанного в его конструкторе, поэтому команда для его развертывания в сети будет включать аргумент 100.

Чтобы развернуть контракт MyToken.sol, используйте команду, соответствующую RPC-адресу цепочки Caldera, во время выполнения команды forge create:

forge create --rpc-url "RPC URL" //Insert your RPC URL here
--constructor-args 100 \
--private-key YOUR_PRIVATE_KEY \
src/MyToken.sol:MyToken 

Last updated