create account

Part 2: Building a To-do list with EOS by eos-asia

View this thread on: hive.blogpeakd.comecency.com
· @eos-asia · (edited)
$18.26
Part 2: Building a To-do list with EOS
### [EOS Asia](https://steemit.com/eos-blockproducers/@eos-asia/eos-asia-block-producer-candidacy)
The article is written by [EOS Asia](https://www.eosasia.one), Asia’s most technical and international EOS Block Producer Candidate. EOS Asia is also the developer behind [EOS Gems](https://eosgems.io) and [Traffic Exchange Token](https://www.txtnet.io).

![demo.gif](https://steemitimages.com/DQmZUcESwzTzu3gQPnTgBaoNdsc5kNCZJrBYJTD8qB3as53/demo.gif)

This post is the second in a series of posts made to help EOS smart contracts developers go from beginner-to-production. If you have any suggestions of topics you’d like to a deep-dive on, please leave it in the comments! If you’re not familiar with deploying a simple smart contract yet, I suggest you check out [the previous tutorial](https://steemit.com/devs/@eos-asia/eos-smart-contracts-part-1-getting-started-ping-equivalent-in-eos).

The majority of smart contract use-cases require developers to work with persistent data on the blockchain. In this tutorial, we’ll go through an example scenario where we build a todo list and teach you how to implement the standard operations (CRUD) when working with data.

## Diving into Boost.MultiIndex
Since EOS smart contracts are based on C++, we make use of a library called [Boost.MultiIndex Containers](https://www.boost.org/doc/libs/1_63_0/libs/multi_index/doc/index.html). In its own words:

> The Boost Multi-index Containers Library provides a class template named multi_index_container which enables the construction of containers maintaining one or more indices with different sorting and access semantics. Indices provide interfaces similar to those of STL containers, making using them familiar. The concept of multi-indexing over the same collection of elements is borrowed from relational database terminology and allows for the specification of complex data structures in the spirit of multiply indexed relational tables where simple sets and maps are not enough.  

Let’s break that description down by explaining some concepts and associating them against something developers with traditional database experience would be more familiar with:
- Containers: Class that contains many elements (table)
- Elements: Data objects (rows in a table)
- Interface: Container methods that retrieve elements (query)

In EOS smart contracts, you use multi-index containers by defining them with `eosio::multi_index`. If you look at example contracts that make use of this feature, like the [dice contract example](https://github.com/EOSIO/eos/blob/master/contracts/dice/dice.cpp), it can be a little daunting to figure out exactly which piece is dealing with persistent data manipulation. (Nothing to fear, we’ll help you understand this and soon enough you can implement smart-contracts with storage on your own.)

The narrative throughout our explanation will be to build a todo list. We should be able to check off items we’ve done, add new items, and remove items that are no longer needed. Given this example, we’ll be using `todos` for our container name, and `todo` for our element structure.

We’ll get started with initializing our first container, first we pass two template parameters into `eosio::multi_index`. The first will be the name of our container, and the second is the data structure defining the element. Let’s built a very minimal example of our todo model:
```c++
struct todo {
  uint64_t id;

  uint64_t primary_key() const { return id; }
  EOSLIB_SERIALIZE(todo, (id))
};

typedef eosio::multi_index<N(todos), todo> todo_table;
todo_table todos;
```

This works! We simply define an ID as 64bit (unsigned) integer, and create a way to access it (via primary_key) We define our multi_index as a typedef since we don’t want to instantiate it yet. At this point, our todo model it isn’t quite useful yet. Let’s add a few additional properties:
```c++
struct todo {
  uint64_t id;
  std::string description;
  uint64_t completed;

  EOSLIB_SERIALIZE(todo, (id)(description)(completed))
};

typedef eosio::multi_index<N(todos), todo> todo_table;
todo_table todos;
```

Now we’re getting there. A description of the todo (e.g. “Finish writing novel”) and a state to determine whether it’s been completed or not should be enough for now.

For the convenience of auto-generating our ABI (Application Binary Interface), we’ll specify a type comment that helps the generator above the container definition: `@abi table profiles i64`.

Incase you’re wondering what that `i64` in the comment above means. This is our lookup index. By default, we need a way to lookup elements in our container, so our first 64 bits (basically the first key if it’s a 64bit type) will serve that purpose. It’s common to use `uint64_t id;`  for the first key, but you could also use an `account_name` type [since account_name is also uint64_t under the hood](https://github.com/EOSIO/eos/blob/2f2c8c7e3811caca178a7553192c8fe59a22576d/contracts/eosiolib/types.h#L22).

At this point, we should have a minimally functioning container who’s code should look something like:
```c++
// @abi table todos i64
struct todo {
  uint64_t id;
  std::string description;
  uint64_t completed;

  uint64_t primary_key() const { return id; }
  EOSLIB_SERIALIZE(todo, (id)(description)(completed))
};

typedef eosio::multi_index<N(todos), todo> todo_table;
todo_table todos;
```

## Working with your new container
Now that we have a container defined, we can work with the elements inside of it. The way we’ll handle mutating those elements will be via actions in our smart contract.

There are four basic functions of persistent storage: Create, Retrieve, Update, and Delete. In our case, we don’t have to worry about Retrieve, since that will be handled by the front-end loading our contract instead of an action. For the other three, we’ll create an action for each:

### Create
Appending a todo item to our todo list can be done with `emplace`:
```c++
// @abi action
void create(account_name author, const uint32_t id, const std::string& description) {
  todos.emplace(author, [&](auto& new_todo) {
    new_todo.id  = id;
    new_todo.description = description;
    new_todo.completed = 0;
  });

  eosio::print("todo#", id, " created");
}
```
An important detail to not here is that we pass in the author as a parameter as well. This is necessary for the first parameter in the `emplace` method.

### Update/Complete 
We’ll create an action to complete our todo by updating the `completed` attribute. Like so:
```c++
// @abi action
void complete(account_name author, const uint32_t id) {
  auto todo_lookup = todos.find(id);
  eosio_assert(todo_lookup != todos.end(), "Todo does not exist");

  todos.modify(todo_lookup, author, [&](auto& modifiable_todo) {
    modifiable_todo.completed = 1;
  });

  eosio::print("todo#", id, " marked as complete");
}
```

### Delete
Given this is an internal smart contract, we don’t have to worry about security or permissions quite yet. This allows us to focus on the minimal working version of the delete action:
```c++
// @abi action
void destroy(account_name author, const uint32_t id) {
  auto todo_lookup = todos.find(id);
  todos.erase(todo_lookup);

  eosio::print("todo#", id, " destroyed");
}
```

## Deploying, testing, and hooking actions up to a front-end
Our previous tutorial linked an EOS smart contract with a webpage front-end using a simple ping/pong example. Now that we have our actions to work with persistent data on the EOS blockchain, we can build the front end for our todo list.

### Deploying
Deploying our contract should be straightforward, let’s step through it:
- Build the contract ABI and WASM: `eosiocpp -o hello.wast hello.cpp && eosiocpp -g hello.abi hello.cpp`
- Set up account/wallet: 
```bash
cleos create account eosio todo.user EOS7ijWCBmoXBi3CgtK7DJxentZZeTkeUnaSDvyro9dq7Sd1C3dC4 EOS7ijWCBmoXBi3CgtK7DJxentZZeTkeUnaSDvyro9dq7Sd1C3dC4

cleos set contract todo.user ../todo -p todo.user
```

Testing the contract is straightforward:
```bash
$ cleos push action todo create '["todo", 1, "hello world"]' -p todo.user
executed transaction: bc5bfbd1e07f6e3361d894c26d4822edcdc2e42420bdd38b46a4fe55538affcf  248 bytes  107520 cycles
#          todo <= todo::create                 {"author":"todo","id":1,"description":"hello world"}
>> todo created
```

Then accessing the data can be done like so:
```bash
$ cleos get table todo todo todos
```

### Testing on the front-end
I’ll spare the readers from delving into the React.js code, though I highly encourage you check it out for yourselves in [the example repository](https://github.com/eosasia/eos-todo). 

If you'd like us to dive deeper on what it takes to hook up your EOS contracts with a browser-based front end, whether using React, Vue, Angular, or plain ol’ Javascript, let us know in the comments or tell us on our Telegram channel @eosasia!

Socials
[Telegram](https://t.me/EOSAsia)
[Twitter @EOSAsia_one](https://twitter.com/EOSAsia_one)
[Medium](https://medium.com/@eosasia)
[Website](https://eosasia.one/)
[Steemit](https://steemit.com/@eos-asia)
Business: cp@eosasia.one
Tech: dapp@eosasia.one
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 33 others
👎  ,
properties (23)
authoreos-asia
permlinkpart-2-building-a-to-do-list-with-eos-or-working-with-persistent-data-in-eos
categoryeos
json_metadata{"tags":["eos","tutorial","eosasia","blockchain"],"users":["eosasia"],"image":["https://steemitimages.com/DQmZUcESwzTzu3gQPnTgBaoNdsc5kNCZJrBYJTD8qB3as53/demo.gif"],"links":["https://steemit.com/eos-blockproducers/@eos-asia/eos-asia-block-producer-candidacy","https://www.eosasia.one","https://eosgems.io","https://www.txtnet.io","https://steemit.com/devs/@eos-asia/eos-smart-contracts-part-1-getting-started-ping-equivalent-in-eos","https://www.boost.org/doc/libs/1_63_0/libs/multi_index/doc/index.html","https://github.com/EOSIO/eos/blob/master/contracts/dice/dice.cpp","https://github.com/EOSIO/eos/blob/2f2c8c7e3811caca178a7553192c8fe59a22576d/contracts/eosiolib/types.h#L22","https://github.com/eosasia/eos-todo","https://t.me/EOSAsia","https://twitter.com/EOSAsia_one","https://medium.com/@eosasia","https://eosasia.one/","https://steemit.com/@eos-asia"],"app":"steemit/0.1","format":"markdown"}
created2018-05-16 03:23:15
last_update2018-05-16 03:27:51
depth0
children18
last_payout2018-05-23 03:23:15
cashout_time1969-12-31 23:59:59
total_payout_value13.927 HBD
curator_payout_value4.333 HBD
pending_payout_value0.000 HBD
promoted20.000 HBD
body_length9,127
author_reputation205,922,811,942
root_title"Part 2: Building a To-do list with EOS"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id55,933,434
net_rshares3,717,548,012,473
author_curate_reward""
vote details (99)
@aclarkuk82 ·
Boom baby, I love this, RESTEEM!!!!!!!!
👍  ,
properties (23)
authoraclarkuk82
permlinkre-eos-asia-part-2-building-a-to-do-list-with-eos-or-working-with-persistent-data-in-eos-20180516t033045805z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit/0.1"}
created2018-05-16 03:30:45
last_update2018-05-16 03:30:45
depth1
children0
last_payout2018-05-23 03:30:45
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length39
author_reputation901,192,097,946
root_title"Part 2: Building a To-do list with EOS"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id55,934,342
net_rshares277,648,915
author_curate_reward""
vote details (2)
@andrewleong ·
im excited with EOS, now the price is discounted, can collect some more if can.
properties (22)
authorandrewleong
permlinkre-eos-asia-part-2-building-a-to-do-list-with-eos-or-working-with-persistent-data-in-eos-20180516t165641907z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit/0.1"}
created2018-05-16 16:56:42
last_update2018-05-16 16:56:42
depth1
children1
last_payout2018-05-23 16:56:42
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length79
author_reputation51,266,634
root_title"Part 2: Building a To-do list with EOS"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id56,042,729
net_rshares0
@antonsteemit ·
Definitely a good idea
properties (22)
authorantonsteemit
permlinkre-andrewleong-re-eos-asia-part-2-building-a-to-do-list-with-eos-or-working-with-persistent-data-in-eos-20180517t015005323z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit/0.1"}
created2018-05-17 01:50:06
last_update2018-05-17 01:50:06
depth2
children0
last_payout2018-05-24 01:50:06
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length22
author_reputation7,534,465,964,895
root_title"Part 2: Building a To-do list with EOS"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id56,105,854
net_rshares0
@antonsteemit ·
Loving this... have been playing around with different smart contracts, let's see if EOS would be a better place lol
properties (22)
authorantonsteemit
permlinkre-eos-asia-part-2-building-a-to-do-list-with-eos-or-working-with-persistent-data-in-eos-20180517t014941284z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit/0.1"}
created2018-05-17 01:49:42
last_update2018-05-17 01:49:42
depth1
children0
last_payout2018-05-24 01:49:42
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length116
author_reputation7,534,465,964,895
root_title"Part 2: Building a To-do list with EOS"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id56,105,816
net_rshares0
@carlospz ·
Hey men awsome post, keep it up i have been loking for information of this kind
properties (22)
authorcarlospz
permlinkre-eos-asia-part-2-building-a-to-do-list-with-eos-or-working-with-persistent-data-in-eos-20180520t054359111z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit/0.1"}
created2018-05-20 05:44:03
last_update2018-05-20 05:44:03
depth1
children0
last_payout2018-05-27 05:44:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length79
author_reputation2,198,551,919
root_title"Part 2: Building a To-do list with EOS"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id56,655,886
net_rshares0
@chuchoafonso ·
Good post bro, un saludo desde venezuela, gracias por la información, te dejo aqui mi post, creo que puede interesarte :D https://steemit.com/money/@chuchoafonso/earn-money-playing-your-favorite-video-games
properties (22)
authorchuchoafonso
permlinkre-eos-asia-part-2-building-a-to-do-list-with-eos-or-working-with-persistent-data-in-eos-20180519t215131218z
categoryeos
json_metadata{"tags":["eos"],"links":["https://steemit.com/money/@chuchoafonso/earn-money-playing-your-favorite-video-games"],"app":"steemit/0.1"}
created2018-05-19 21:21:42
last_update2018-05-19 21:21:42
depth1
children0
last_payout2018-05-26 21:21:42
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length206
author_reputation56,983,456,705,587
root_title"Part 2: Building a To-do list with EOS"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id56,605,000
net_rshares0
@criptraders ·
Omg this is awsome, now i follow  u for more content like this
properties (22)
authorcriptraders
permlinkre-eos-asia-part-2-building-a-to-do-list-with-eos-or-working-with-persistent-data-in-eos-20180519t091144264z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit/0.1"}
created2018-05-19 09:11:48
last_update2018-05-19 09:11:48
depth1
children0
last_payout2018-05-26 09:11:48
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length62
author_reputation11,710,441,351
root_title"Part 2: Building a To-do list with EOS"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id56,514,961
net_rshares0
@dhouse ·
$0.58
I'm really pumped for EOS. I sold a lot of mine at $21-ish, but price action aside, it's gonna be a really awesome platform. I do have quite a few concerns about DPoS, though (see: Lisk).
👍  
properties (23)
authordhouse
permlinkre-eos-asia-part-2-building-a-to-do-list-with-eos-or-working-with-persistent-data-in-eos-20180516t151434355z
categoryeos
json_metadata{"tags":["eos"],"community":"busy","app":"busy/2.4.0"}
created2018-05-16 15:14:36
last_update2018-05-16 15:14:36
depth1
children0
last_payout2018-05-23 15:14:36
cashout_time1969-12-31 23:59:59
total_payout_value0.556 HBD
curator_payout_value0.024 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length187
author_reputation4,150,202,158,075
root_title"Part 2: Building a To-do list with EOS"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id56,027,167
net_rshares119,093,944,282
author_curate_reward""
vote details (1)
@idrisbhat ·
Why is ETH different from EOS
properties (22)
authoridrisbhat
permlinkre-eos-asia-part-2-building-a-to-do-list-with-eos-or-working-with-persistent-data-in-eos-20180522t130439872z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit/0.1"}
created2018-05-22 13:04:42
last_update2018-05-22 13:04:42
depth1
children0
last_payout2018-05-29 13:04:42
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length29
author_reputation18,220,906,423
root_title"Part 2: Building a To-do list with EOS"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id57,074,816
net_rshares0
@jalele ·
$3.64
Why is EOS different from ETH?
👍  
properties (23)
authorjalele
permlinkre-eos-asia-part-2-building-a-to-do-list-with-eos-or-working-with-persistent-data-in-eos-20180518t082827745z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit/0.1"}
created2018-05-18 08:28:27
last_update2018-05-18 08:28:27
depth1
children1
last_payout2018-05-25 08:28:27
cashout_time1969-12-31 23:59:59
total_payout_value2.729 HBD
curator_payout_value0.909 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length30
author_reputation72,175,047,931
root_title"Part 2: Building a To-do list with EOS"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id56,336,473
net_rshares760,419,082,205
author_curate_reward""
vote details (1)
@liondani ·
properties (23)
authorliondani
permlinkre-jalele-re-eos-asia-part-2-building-a-to-do-list-with-eos-or-working-with-persistent-data-in-eos-20180519t225535912z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit/0.1"}
created2018-05-19 22:55:36
last_update2018-05-19 22:55:36
depth2
children0
last_payout2018-05-26 22:55:36
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length41
author_reputation95,095,146,236,111
root_title"Part 2: Building a To-do list with EOS"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id56,615,825
net_rshares4,042,460,891
author_curate_reward""
vote details (11)
@katteasis · (edited)
Is there any way to practice smart EOS smart contracts without installing it on my computer(because I use windows)? I would also like to learn more about front end implementation. Followed!
👍  
properties (23)
authorkatteasis
permlinkre-eos-asia-part-2-building-a-to-do-list-with-eos-or-working-with-persistent-data-in-eos-20180516t125540578z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit/0.1"}
created2018-05-16 12:56:00
last_update2018-05-16 13:04:39
depth1
children4
last_payout2018-05-23 12:56:00
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length189
author_reputation22,664,890,626,849
root_title"Part 2: Building a To-do list with EOS"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id56,005,360
net_rshares113,103,870
author_curate_reward""
vote details (1)
@aclarkuk82 ·
There is a testnet Running. I assume but yet to confirm that you should be able to hit the API of that to play around some. It is run by jungle, if you google eos jungle testnet you will find it.
👍  
properties (23)
authoraclarkuk82
permlinkre-katteasis-re-eos-asia-part-2-building-a-to-do-list-with-eos-or-working-with-persistent-data-in-eos-20180516t134827751z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit/0.1"}
created2018-05-16 13:48:30
last_update2018-05-16 13:48:30
depth2
children0
last_payout2018-05-23 13:48:30
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length195
author_reputation901,192,097,946
root_title"Part 2: Building a To-do list with EOS"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id56,013,076
net_rshares110,047,009
author_curate_reward""
vote details (1)
@eos-asia ·
Author here. (Tyler) A lot of people seem to be facing this same issue– they're OK with picking up smart contract development, but setting up the local environment is so cumbersome that they put it off. We're considering ways to either help with this directly or find a tool the community produces to recommend in our future tutorials.
properties (22)
authoreos-asia
permlinkre-katteasis-re-eos-asia-part-2-building-a-to-do-list-with-eos-or-working-with-persistent-data-in-eos-20180520t012552487z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit/0.1"}
created2018-05-20 01:25:51
last_update2018-05-20 01:25:51
depth2
children2
last_payout2018-05-27 01:25:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length335
author_reputation205,922,811,942
root_title"Part 2: Building a To-do list with EOS"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id56,630,480
net_rshares0
@sschechter · (edited)
@katteasis I have a Windows machine but I set up a separate Ubuntu instance running inside of Virtual Box. I prefer this setup because it keeps everything in a separate container as the EOS project installs a ton of dependencies that I don't need commingled with the rest of my files, and I can always destroy and re-create instances if something goes awry.  Additionally (optional), I bought more RAM and moved this VM to a separate SSD, so its like I'm running two separate computers off my CPU without any loss of performance, and for little cost. Nsjames of Scatter made a good video describing how to do this:
https://github.com/nsjames/Scatter-Tutorials/blob/master/setup.md
properties (22)
authorsschechter
permlinkre-eos-asia-re-katteasis-re-eos-asia-part-2-building-a-to-do-list-with-eos-or-working-with-persistent-data-in-eos-20180616t144831490z
categoryeos
json_metadata{"tags":["eos"],"users":["katteasis"],"links":["https://github.com/nsjames/Scatter-Tutorials/blob/master/setup.md"],"app":"steemit/0.1"}
created2018-06-16 14:48:39
last_update2018-06-16 14:51:30
depth3
children1
last_payout2018-06-23 14:48:39
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length680
author_reputation102,192,758
root_title"Part 2: Building a To-do list with EOS"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id60,986,388
net_rshares0
@sschechter ·
Thank You!!
👍  
properties (23)
authorsschechter
permlinkre-eos-asia-part-2-building-a-to-do-list-with-eos-or-working-with-persistent-data-in-eos-20180516t041049782z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit/0.1"}
created2018-05-16 04:10:54
last_update2018-05-16 04:10:54
depth1
children0
last_payout2018-05-23 04:10:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length11
author_reputation102,192,758
root_title"Part 2: Building a To-do list with EOS"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id55,939,147
net_rshares110,047,009
author_curate_reward""
vote details (1)
@waqaar ·
EOS main competitor Etherum, demands users to pay for every transaction. EOS willnot do so. This will incerase adoption. Isn't it?
properties (22)
authorwaqaar
permlinkre-eos-asia-part-2-building-a-to-do-list-with-eos-or-working-with-persistent-data-in-eos-20180524t154959843z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit/0.1"}
created2018-05-24 15:50:03
last_update2018-05-24 15:50:03
depth1
children0
last_payout2018-05-31 15:50:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length130
author_reputation1,917,744,548
root_title"Part 2: Building a To-do list with EOS"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id57,479,300
net_rshares0