How to deploy and verify new contracts on DBK Chain

How to deploy and verify new contracts on DBK Chain

In this tutorial, we'll walk through deploying a smart contract on DBK Chain

Prerequisites

Write Your First Contract

The most popular smart contract development language today is Solidity. In this tutorial, you'll be using Foundry to write, compile, and deploy a simple smart contract to DBK Chain.Foundry is a smart contract development toolchain. Foundry manages your dependencies, compiles your project, runs tests, deploys, and lets you interact with the chain from the command-line and via Solidity scripts.

Creating a New Project

To start a new project with Foundry, use forge init:

$ forge init hello_world

For now, let’s check what the default template looks like:

$ cd hello_foundry
$ tree . -d -L 1
.
├── lib
├── script
├── src
└── test

5 directories

The default template comes with one dependency installed: Forge Standard Library. This is the preferred testing library used for Foundry projects. Additionally, the template also comes with an empty starter contract and a simple test.

Let’s build the project:

$ forge build
[⠊] Compiling...
[⠊] Compiling 27 files with Solc 0.8.25
[⠒] Solc 0.8.25 finished in 956.80ms
Compiler run successful!

Create an empty contract file

Let's create a new contract file in the src directory. You can do this by running the following command in your terminal:

touch src/MyFirstContract.sol

Write your first contract

This tutorial will show you how to deploy a simple contract that has a storage variable you can read and write. You'll be able to update this variable with a transaction and then retrieve the updated value. This is just a simple example to get you started.

Copy and paste the following code into the file you just created.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
 
contract HelloWorld {
    string public message;
 
    function setMessage(string memory _message) public {
        message = _message;
    }
}

Compile your contract

To compile your contract, run the following command in your terminal:

$ forge build
[⠊] Compiling...
[⠢] Compiling 1 files with Solc 0.8.25
[⠆] Solc 0.8.25 finished in 106.64ms

Deploy your contract

Forge can deploy smart contracts to a given network with the forge create command. Forge CLI can deploy only one contract at a time.

To deploy MyContract to a network:

$ forge create --rpc-url https://rpc.mainnet.dbkchain.io/ --private-key <your_private_key> src/MyFirstContract.sol:HelloWorld
[⠊] Compiling...
No files changed, compilation skipped
Deployer: 0x5853eD4f26A3fceA565b3FBC698bb19cdF6DEB85
Deployed to: 0x7eF4f140E0cD7b3187a7c91ece0a631F306BE5F5
Transaction hash: 0x3432673ae4838b71e3f3fee6a5a286fdd76822ca7e063cada8bb5e6cf8459192

Verify your contract

You can verify your contract on the DBK Chain explorer by running the following command in your terminal:

$ forge verify-contract 0x7eF4f140E0cD7b3187a7c91ece0a631F306BE5F5 src/MyFirstContract.sol:HelloWorld --verifier blockscout --verifier-url https://scan.dbkchain.io/api\?

Submitting verification for [src/MyFirstContract.sol:HelloWorld] 0x7eF4f140E0cD7b3187a7c91ece0a631F306BE5F5.
Submitted contract for verification:
        Response: `OK`
        GUID: `7ef4f140e0cd7b3187a7c91ece0a631f306be5f5667e1af6`
        URL: https://etherscan.io/address/0x7ef4f140e0cd7b3187a7c91ece0a631f306be5f5

Last updated