A library provided by Ebakus for giving access to EbakusDB.
Main Network: ... Testnet Network: ...
version 5.0.0
First install truffle via npm using npm install -g truffle
.
Please visit Truffle's installation guide for further information and requirements.
This process will allow you to both link your contract to the current on-chain library as well as deploy it in your local environment for development.
- Place the EbakusDB.sol file in your truffle
contracts/
directory. - Place the EbakusDB.json file in your truffle
build/contracts/
directory. - Amend the deployment .js file in your truffle
migrations/
directory as follows:
var EbakusDB = artifacts.require('EbakusDB');
var YourContract = artifacts.require("./YourContract.sol");
...
module.exports = function(deployer) {
deployer.deploy(EbakusDB, {overwrite: false});
deployer.link(EbakusDB, YourContract);
deployer.deploy(YourContract);
};
Note: The .link()
function should be called before you .deploy(YourStandardTokenContract)
. Also, be sure to include the {overwrite: false}
when writing the deployer i.e. .deploy(TokenLib, {overwrite: false})
. This prevents deploying the library onto the main network at your cost and uses the library already on the blockchain. The function should still be called however because it allows you to use it in your development environment. See below
You can read about available EbakusDB methods and their documentation inline here. You can find an example contract using the EbakusDB here.
pragma solidity ^0.5.0;
import "./EbakusDB.sol";
contract Example {
string TableName = "Users";
struct User {
uint64 Id;
string Name;
string Pass;
}
constructor() public {
string memory tablesAbi = '[{"type":"table","name":"Users","inputs":[{"name":"Id","type":"uint64"},{"name":"Name","type":"string"},{"name":"Pass","type":"string"}]}]';
EbakusDB.createTable(TableName, "Name", tablesAbi);
}
function main() external {
// Insert entry
User memory u = User(1, "Harry", "123");
bytes memory input = abi.encode(u.Id, u.Name, u.Pass);
EbakusDB.insertObj(TableName, input);
// Get back entry
User memory u1;
bytes memory out = EbakusDB.get(TableName, "Name", "Harry");
(u1.Id, u1.Name, u1.Pass) = abi.decode(out, (uint64, string, string));
}
...
}
- Initial release