Leander avatar

EOS developer - first contract - HelloWorld

leander

Published: 17 Sept 2018 › Updated: 17 Sept 2018EOS developer - first contract  - HelloWorld

EOS developer - first contract - HelloWorld

EOS Smart contract HelloWorld

  • Platform: MacOS
  • Editor: CLion

Set the environment

  1. create a folder on your hard drive called eos for example.
  2. follow the instructions to deploy your local EOS blockchain in your "eos" folder : https://infinitexlabs.com/first-steps-in-eos-blockchain-development/
  3. Open CLion -> File -> New Project... and open your "eos" folder
  4. On the left colon, open "contracts " and create a new folder called HelloWorld

Build the HelloWorld contract

In your HelloWorld folder you need to create 3 files :

  1. CMakelists.txt
  2. HelloWorld.abi
  3. HelloWorld.cpp

CMakelists.txt

  file(GLOB ABI_FILES "*.abi")
  configure_file("${ABI_FILES}" "${CMAKE_CURRENT_BINARY_DIR}" COPYONLY)
  
  add_wast_executable(TARGET HelloWorld
  INCLUDE_FOLDERS "${STANDARD_INCLUDE_FOLDERS}"
  LIBRARIES libc libc++ eosiolib
  DESTINATION_FOLDER ${CMAKE_CURRENT_BINARY_DIR}
  )

HelloWorld.abi

   empty

HelloWorld.cpp

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

 using namespace eosio;

 class HelloWorld : public eosio::contract {
      public:
      using contract::contract;

       /// @abi action
      void hello(const name user){
           print("Hello, ", name{user});
      }
 };

 EOSIO_ABI(HelloWorld, (hello))

BUILD the smart contract

Add HelloWorld to the eos/contracts/CMakelists.txt.
You will see a list of all the contracts and you can add yours at the end:

   add_subdirectory(HelloWorld)

Screen Shot 2018-09-17 at 11.20.57.png

. Then click the "reload the changes" that appears on top of the page

. And build all the contracts : Menu -> Run -> Build


DEPLOY THE CONTRACT

Make sure your EOS blockchain is running locally in one of your terminal window

Go to your ~Documents/eos/build directory and write :

  sudo make install

Make sure there are no error before you continue.
Navigate to your HelloWorld folder from the command line: cd ~/Documents/eos/contracts/HelloWorld

To compile we can use the eosiocpp command, followed by -o (meaning it should compile) HelloWorld.wasp (the input) HelloWorld.cpp (the output)

 eosiocpp -o HelloWorld.wasp HelloWorld.cpp

Finally we need to generate the abi file using a similar command :

 eosiocpp -g HelloWorld.abi HelloWorld.cpp

Et voila !
The first HelloWorld contract done !

Leave EOS developer - first contract - HelloWorld to:

Written by

Read more #helloworld posts


Best Posts From Leander

We have not curated any of leander's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From Leander