Introduction
EOS is a blockchain-based software platform that provides infrastructure for decentralized applications (dApps). It aims to provide high scalability, low latency, and a user-friendly experience for developers and end-users.
Hello world
Let's start with the classic "Hello World" example in EOS smart contract development.
// Hello World contract
#include <eosio/eosio.hpp>
using namespace eosio;
class [[eosio::contract]] hello : public contract {
public:
using contract::contract;
[[eosio::action]]
void hi(name user) {
print("Hello, ", user);
}
};
EOSIO_DISPATCH(hello, (hi))
In this example, we define a contract called "hello". Inside the contract, we define a method called "hi" which takes a parameter of type "name". The "name" type in EOS represents an account name.
The [eosio::action]
attribute specifies that the method can be invoked as an action on the contract. The print
function is used to output the greeting message.
To compile and deploy this contract, you can use the EOSIO command-line tools. Here's how you can do it:
$ eosio-cpp -o hello.wasm hello.cpp
$ cleos set contract <account_name> <contract_directory>
Replace <account_name>
with the name of the account you want to associate the contract with, and <contract_directory>
with the directory containing the contract files.
Finally, you can invoke the "hi" action using the EOSIO command-line tools:
$ cleos push action <contract_account> hi '["<user_name>"]' -p <user_name>
Replace <contract_account>
with the name of the account where the contract is deployed, and <user_name>
with the desired user name.
You should see the output Hello, <user_name>
printed on the console.
Conclusion
In this tutorial, we learned how to create a simple "Hello World" smart contract using EOS. EOS provides a powerful platform for building decentralized applications, and this is just the tip of the iceberg.
By exploring the EOS documentation and community resources, you can discover many more features and possibilities for building dApps on the EOS blockchain.