Basic implementation
The following is an overview of an example smart contract that uses vRAM
#pragma once
#include "../dappservices/ipfs.hpp"
#include "../dappservices/multi_index.hpp"
#define DAPPSERVICES_ACTIONS() \
XSIGNAL_DAPPSERVICE_ACTION \
IPFS_DAPPSERVICE_ACTIONS
/*** IPFS: (xcommit)(xcleanup)(xwarmup) ***/
#define DAPPSERVICE_ACTIONS_COMMANDS() \
IPFS_SVC_COMMANDS()
/*** UPDATE CONTRACT NAME ***/
#define CONTRACT_NAME() mycontract
using std::string;
CONTRACT_START()
public:
/*** YOUR LOGIC ***/
private:
struct [[eosio::table]] vramaccounts {
asset balance;
uint64_t primary_key()const { return balance.symbol.code().raw(); }
};
/*** VRAM MULTI_INDEX TABLE ***/
typedef dapp::multi_index<"vaccounts"_n, vramaccounts> cold_accounts_t;
/*** FOR CLIENT SIDE QUERY SUPPORT ***/
typedef eosio::multi_index<".vaccounts"_n, vramaccounts> cold_accounts_t_v_abi;
TABLE shardbucket {
std::vector<char> shard_uri;
uint64_t shard;
uint64_t primary_key() const { return shard; }
};
typedef eosio::multi_index<"vaccounts"_n, shardbucket> cold_accounts_t_abi;
/*** ADD ACTIONS ***/
CONTRACT_END((your)(actions)(here))
Last updated