Connect with us

Crypto News

How to Get Started with Smart Contracts on EOS | by Arpit Khandelwal | Coinmonks | Jan, 2023

  • Setting up your development environment
  • Writing and testing your contract code
  • Deploying your contract on the EOS mainnet

Install the EOSIO Software

  1. Download the EOSIO software package for your platform (e.g., macOS, Linux, Windows).
  2. Extract the downloaded package to a directory on your computer.
  3. Add the eosio and eosio.cdt directories to your PATH environment variable. This will allow you to access the eosio and eosio-cpp command-line tools from any directory.

Set Up an EOS Account and Wallet

# Create a new EOS account
cleos create account eosio <your-account-name> <your-public-key> <your-public-key>

# Create a new wallet and import your private key
cleos wallet create
cleos wallet import <your-private-key>

Install a Text Editor or IDE

Familiarize Yourself with the EOSIO.CDT Library and C++

Designing Our Contract

  • What information do we need to store for each auction item?
  • How will people submit bids?
  • How will we determine the winning bid?
  • How will we handle cases where someone withdraws their bid?

Writing and Debugging Our Code

#include <eosio/eosio.hpp>
#include <eosio/print.hpp>

using namespace eosio;

class [[eosio::contract("hello")]] hello : public contract {
public:
using contract::contract;

[[eosio::action]] void hi(name user) {
print("Hello, ", user);
}
};

EOSIO_DISPATCH(hello, (hi))

# Compile our contract code
eosiocpp -o hello.wasm hello.cpp

# Deploy our contract on a local testnet
cleos set contract hello . -p hello@active

# Call the 'hi' action of our contract
cleos push action hello hi '["alice"]' -p alice@active

# Output: "Hello, alice"

Writing Unit Tests

#include <eosio/eosio.hpp>
#include <eosio/testing.hpp>

using namespace eosio;
using namespace eosio::testing;

// Test fixture for the 'hello' contract
struct hello_tester {
hello_tester() {
// Create a new instance of the 'hello' contract
hello = deploy_contract<hello>();
}

// Instance of the 'hello' contract
contract_tester<hello> hello;
};

// Test for the 'hi' action of the 'hello' contract
EOSIO_TEST_BEGIN(hello_test)
// Declare a test fixture
hello_tester tester;

// Call the 'hi' action and check the output
tester.hello.hi(N(alice));
tester.hello.produce_block();
REQUIRE_MATCHING_OUTPUT("Hello, alice", tester.hello.console());
EOSIO_TEST_END

# Compile and run our unit tests
eosio-cpp -o hello_test.wasm hello_test.cpp --abigen
cleos set contract hello_test . -p hello_test@active

Preparing Your Contract for Deployment

Obtaining the Necessary Resources

Deploying Your Contract

# Set our contract on the EOS mainnet
cleos set contract myaccount /path/to/contract -p myaccount@active

# Test our contract on the EOS mainnet
cleos push action myaccount hi '["alice"]' -p alice@active

New to trading? Try crypto trading bots or copy trading on best crypto exchanges

#Started #Smart #Contracts #EOS #Arpit #Khandelwal #Coinmonks #Jan

Click to comment

Leave a Reply

Your email address will not be published. Required fields are marked *