Skip to content

Commit

Permalink
Docos
Browse files Browse the repository at this point in the history
  • Loading branch information
bokkypoobah committed Dec 7, 2017
1 parent 02de5fb commit 934bbad
Show file tree
Hide file tree
Showing 11 changed files with 337 additions and 337 deletions.
61 changes: 39 additions & 22 deletions README.md
Expand Up @@ -30,9 +30,9 @@ This repository contains the Devery protocol contracts on the Ethereum Network.

### Stored Data

* `mapping(appAccount => App[appAccount, appName, feeAccount, active]) apps`
* `mapping(brandAccount => Brand[brandAccount, appAccount, brandName, active]) brands`
* `mapping(productAccount => Product[productAccount, brandAccount, description, details, year, origin, active]) products`
* `mapping(appAccount => App[address appAccount, string appName, address feeAccount, uint fee, bool active]) apps`
* `mapping(brandAccount => Brand[address brandAccount, address appAccount, string brandName, bool active]) brands`
* `mapping(productAccount => Product[address productAccount, address brandAccount, string description, string details, uint year, string origin, bool active]) products`
* `mapping(sha3(itemPublicKey) => productAccount) markings`
* `mapping(markerAccount => (brandAccount => permission)) permissions`

Expand Down Expand Up @@ -87,53 +87,70 @@ This repository contains the Devery protocol contracts on the Ethereum Network.
```
# Account EtherBalanceChange Token Name
-- ------------------------------------------ --------------------------- ------------------------------ ---------------------------
0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 62.009912518000000000 0.000000000000000000 Account #0 - Miner
1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -0.004998436000000000 0.000000000000000000 Account #1 - Contract Owner
0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 69.005449306000000000 0.000000000000000000 Account #0 - Miner
1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -0.003927892000000000 99000.000000000000000000 Account #1 - Contract Owner
2 0xa22ab8a9d641ce77e06d98b7d7065d324d3d6976 0.000000000000000000 0.000000000000000000 Account #2 - Wallet
3 0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0 0.000000000000000000 0.000000000000000000 Account #3
3 0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0 0.000000000000000000 0.246246246000000000 Account #3 - Devery Fee Account
4 0xa44a08d3f6933c69212114bb66e2df1813651844 0.000000000000000000 0.000000000000000000 Account #4
5 0xa55a151eb00fded1634d27d1127b4be4627079ea -0.000821940000000000 0.000000000000000000 Bevery App Account
6 0xa66a85ede0cbe03694aa9d9de0bb19c99ff55bd9 -0.000237772000000000 0.000000000000000000 Mevery App Account
7 0xa77a2b9d4b1c010a22a7c565dc418cef683dbcec -0.000252900000000000 0.000000000000000000 Zevery App Account
8 0xa88a05d2b88283ce84c8325760b72a64591279a2 0.000000000000000000 0.000000000000000000 Bevery Fee Account
5 0xa55a151eb00fded1634d27d1127b4be4627079ea -0.000454551000000000 0.000000000000000000 Bevery App Account
6 0xa66a85ede0cbe03694aa9d9de0bb19c99ff55bd9 -0.000154833000000000 0.000000000000000000 Mevery App Account
7 0xa77a2b9d4b1c010a22a7c565dc418cef683dbcec -0.000154897000000000 0.000000000000000000 Zevery App Account
8 0xa88a05d2b88283ce84c8325760b72a64591279a2 0.000000000000000000 2.222222222000000000 Bevery Fee Account
9 0xa99a0ae3354c06b1459fd441a32a3f71005d7da0 0.000000000000000000 0.000000000000000000 Mevery Fee Account
10 0xaaaa9de1e6c564446ebca0fd102d8bd92093c756 0.000000000000000000 0.000000000000000000 Zevery Fee Account
11 0xabba43e7594e3b76afb157989e93c6621497fd4b -0.002504824000000000 0.000000000000000000 Bevery Brand 1 Account
11 0xabba43e7594e3b76afb157989e93c6621497fd4b -0.000550603000000000 997.531531532000000000 Bevery Brand 1 Account
12 0xacca534c9f62ab495bd986e002ddf0f054caae4f 0.000000000000000000 0.000000000000000000 Bevery Brand 2 Account
13 0xadda9b762a00ff12711113bfdc36958b73d7f915 0.000000000000000000 0.000000000000000000 Bevery Brand 1 Product A Account
14 0xaeea63b5479b50f79583ec49dacdcf86ddeff392 0.000000000000000000 0.000000000000000000 Bevery Brand 1 Product B Account
15 0xaffa4d3a80add8ce4018540e056dacb649589394 -0.000548259000000000 0.000000000000000000 Bevery Marker 1
16 0xb00bfde102270687324f9205b693859df64f8923 -0.000548387000000000 0.000000000000000000 Bevery Marker 2
15 0xaffa4d3a80add8ce4018540e056dacb649589394 -0.000118201000000000 0.000000000000000000 Bevery Marker 1
16 0xb00bfde102270687324f9205b693859df64f8923 -0.000088329000000000 0.000000000000000000 Bevery Marker 2
17 0xb11be1d4ef8e94d01cb2695092a79d139a8dad98 0.000000000000000000 0.000000000000000000 Bevery Brand 1 Product A Item 1
18 0xb22be2d9eef0d7e260cf96a64feea0b95ed3e74f 0.000000000000000000 0.000000000000000000 Bevery Brand 1 Product B Item 2
19 0x0e946b999033257976aa5cbe0e3530618ca1582d 0.000000000000000000 0.000000000000000000 Devery Registry
19 0x4c01da023142a1b222d185880f75cbb78916ac99 0.000000000000000000 0.000000000000000000 Devery Registry
20 0x8662046fb8b0a6c03f49dd0a922a5e60c55f8118 0.000000000000000000 0.000000000000000000 Token 'TestEVE' 'Test EVE'
-- ------------------------------------------ --------------------------- ------------------------------ ---------------------------
0.000000000000000000 Total Token Balances
100000.000000000000000000 Total Token Balances
-- ------------------------------------------ --------------------------- ------------------------------ ---------------------------
PASS Mark Items - Mark Bevery Brand 1 Product A Item 1
PASS Mark Items - Mark Bevery Brand 1 Product A Item 2
registryContractAddress=0x0e946b999033257976aa5cbe0e3530618ca1582d
markItems1Tx status=0x1 Success gas=500000 gasUsed=118201 costETH=0.000118201 costUSD=0.036372929921 @ ETH/USD=307.721 gasPrice=1 gwei block=1358 txIx=0 txId=0x5f9b27135f7b56cd743629925b5634acbe44e3dc7a3335078f36631bcbb377d3 @ 1512615027 Thu, 07 Dec 2017 02:50:27 UTC
markItems2Tx status=0x1 Success gas=500000 gasUsed=88329 costETH=0.000088329 costUSD=0.027180688209 @ ETH/USD=307.721 gasPrice=1 gwei block=1358 txIx=1 txId=0xca3f4d740c82a4b4e5b1aa5a8aa0c505b3c4274044fd44c406752f1ba072d6b7 @ 1512615027 Thu, 07 Dec 2017 02:50:27 UTC
registryContractAddress=0x4c01da023142a1b222d185880f75cbb78916ac99
registry.owner=0xa11aae29840fbb5c86e6fd4cf809eba183aef433
registry.newOwner=0x0000000000000000000000000000000000000000
registry.token=0x8662046fb8b0a6c03f49dd0a922a5e60c55f8118
registry.feeAccount=0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0
registry.fee=123123123000000000 0.123123123 ETH
registry.appAccountsLength=3
registry.appAccounts(0)=0xa55a151eb00fded1634d27d1127b4be4627079ea ["0xa55a151eb00fded1634d27d1127b4be4627079ea","Bevery","0xa88a05d2b88283ce84c8325760b72a64591279a2",true]
registry.appAccounts(1)=0xa77a2b9d4b1c010a22a7c565dc418cef683dbcec ["0xa77a2b9d4b1c010a22a7c565dc418cef683dbcec","Zevery","0xaaaa9de1e6c564446ebca0fd102d8bd92093c756",true]
registry.appAccounts(2)=0xa66a85ede0cbe03694aa9d9de0bb19c99ff55bd9 ["0xa66a85ede0cbe03694aa9d9de0bb19c99ff55bd9","Mevery","0xa99a0ae3354c06b1459fd441a32a3f71005d7da0",true]
registry.appAccounts(0)=0xa55a151eb00fded1634d27d1127b4be4627079ea ["0xa55a151eb00fded1634d27d1127b4be4627079ea","Bevery","0xa88a05d2b88283ce84c8325760b72a64591279a2","1111111111000000000",true]
registry.appAccounts(1)=0xa77a2b9d4b1c010a22a7c565dc418cef683dbcec ["0xa77a2b9d4b1c010a22a7c565dc418cef683dbcec","Zevery","0xaaaa9de1e6c564446ebca0fd102d8bd92093c756","3333333333000000000",true]
registry.appAccounts(2)=0xa66a85ede0cbe03694aa9d9de0bb19c99ff55bd9 ["0xa66a85ede0cbe03694aa9d9de0bb19c99ff55bd9","Mevery","0xa99a0ae3354c06b1459fd441a32a3f71005d7da0","2222222222000000000",true]
registry.brandAccountsLength=2
registry.brandAccounts(0)=0xabba43e7594e3b76afb157989e93c6621497fd4b ["0xabba43e7594e3b76afb157989e93c6621497fd4b","0xa55a151eb00fded1634d27d1127b4be4627079ea","Bevery Brand 1",true]
registry.brandAccounts(1)=0xacca534c9f62ab495bd986e002ddf0f054caae4f ["0xacca534c9f62ab495bd986e002ddf0f054caae4f","0xa55a151eb00fded1634d27d1127b4be4627079ea","Bevery Brand 2",true]
registry.productAccountsLength=2
registry.productAccounts(0)=0xadda9b762a00ff12711113bfdc36958b73d7f915 ["0xadda9b762a00ff12711113bfdc36958b73d7f915","0xabba43e7594e3b76afb157989e93c6621497fd4b","Bevery Brand 1 Product A","eeeeks","2016","AU",true]
registry.productAccounts(1)=0xaeea63b5479b50f79583ec49dacdcf86ddeff392 ["0xaeea63b5479b50f79583ec49dacdcf86ddeff392","0xabba43e7594e3b76afb157989e93c6621497fd4b","Bevery Brand 1 Product B","yiikes","2017","AU",true]
Marked 0 #20 {"itemHash":"0x2b3634a5c18d4e8930e0f611da00ec8a02f8621a48cfe55f3ed01f2403714bcd","marker":"0xaffa4d3a80add8ce4018540e056dacb649589394","productAccount":"0xadda9b762a00ff12711113bfdc36958b73d7f915"}
Marked 1 #20 {"itemHash":"0x72155cd1c213c52cf878b5a5870f491df385a53fc68499ec839865239c19a7d1","marker":"0xb00bfde102270687324f9205b693859df64f8923","productAccount":"0xaeea63b5479b50f79583ec49dacdcf86ddeff392"}
Marked 0 #1358 {"appFee":"1111111111000000000","appFeeAccount":"0xa88a05d2b88283ce84c8325760b72a64591279a2","fee":"123123123000000000","feeAccount":"0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0","itemHash":"0x2b3634a5c18d4e8930e0f611da00ec8a02f8621a48cfe55f3ed01f2403714bcd","marker":"0xaffa4d3a80add8ce4018540e056dacb649589394","productAccount":"0xadda9b762a00ff12711113bfdc36958b73d7f915"}
Marked 1 #1358 {"appFee":"1111111111000000000","appFeeAccount":"0xa88a05d2b88283ce84c8325760b72a64591279a2","fee":"123123123000000000","feeAccount":"0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0","itemHash":"0x72155cd1c213c52cf878b5a5870f491df385a53fc68499ec839865239c19a7d1","marker":"0xb00bfde102270687324f9205b693859df64f8923","productAccount":"0xaeea63b5479b50f79583ec49dacdcf86ddeff392"}
tokenContractAddress=0x8662046fb8b0a6c03f49dd0a922a5e60c55f8118
token.owner=0xa11aae29840fbb5c86e6fd4cf809eba183aef433
token.newOwner=0x0000000000000000000000000000000000000000
token.symbol=TestEVE
token.name=Test EVE
token.decimals=18
token.totalSupply=100000
Transfer 0 #1358: from=0xabba43e7594e3b76afb157989e93c6621497fd4b to=0xa88a05d2b88283ce84c8325760b72a64591279a2 tokens=1.111111111
Transfer 1 #1358: from=0xabba43e7594e3b76afb157989e93c6621497fd4b to=0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0 tokens=0.123123123
Transfer 2 #1358: from=0xabba43e7594e3b76afb157989e93c6621497fd4b to=0xa88a05d2b88283ce84c8325760b72a64591279a2 tokens=1.111111111
Transfer 3 #1358: from=0xabba43e7594e3b76afb157989e93c6621497fd4b to=0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0 tokens=0.123123123
Checking Bevery Brand 1 Product A Item 1: 0xb11be1d4ef8e94d01cb2695092a79d139a8dad98 productAccount=0xadda9b762a00ff12711113bfdc36958b73d7f915 brandAccount=0xabba43e7594e3b76afb157989e93c6621497fd4b appAccount=0xa55a151eb00fded1634d27d1127b4be4627079ea
productDetails: ["0xadda9b762a00ff12711113bfdc36958b73d7f915","0xabba43e7594e3b76afb157989e93c6621497fd4b","Bevery Brand 1 Product A","eeeeks","2016","AU",true]
Checking Bevery Brand 1 Product A Item 2: 0xb22be2d9eef0d7e260cf96a64feea0b95ed3e74f productAccount=0xaeea63b5479b50f79583ec49dacdcf86ddeff392 brandAccount=0xabba43e7594e3b76afb157989e93c6621497fd4b appAccount=0xa55a151eb00fded1634d27d1127b4be4627079ea
productDetails: ["0xaeea63b5479b50f79583ec49dacdcf86ddeff392","0xabba43e7594e3b76afb157989e93c6621497fd4b","Bevery Brand 1 Product B","yiikes","2017","AU",true]
Checking Invalid Item: 0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0 productAccount=0x0000000000000000000000000000000000000000 brandAccount=0x0000000000000000000000000000000000000000 appAccount=0x0000000000000000000000000000000000000000
Checking Invalid Item: 0xa44a08d3f6933c69212114bb66e2df1813651844 productAccount=0x0000000000000000000000000000000000000000 brandAccount=0x0000000000000000000000000000000000000000 appAccount=0x0000000000000000000000000000000000000000
```

<br />
Expand Down
10 changes: 5 additions & 5 deletions contracts/DeveryRegistry.sol
Expand Up @@ -138,7 +138,7 @@ contract DeveryRegistry is Admined {
event ProductAdded(address indexed productAccount, address indexed brandAccount, address indexed appAccount, string description, bool active);
event ProductUpdated(address indexed productAccount, address indexed brandAccount, address indexed appAccount, string description, bool active);
event Permissioned(address indexed marker, address indexed brandAccount, bool permission);
event Marked(address indexed marker, address indexed productAccount, bytes32 itemHash);
event Marked(address indexed marker, address indexed productAccount, address appFeeAccount, address feeAccount, uint appFee, uint fee, bytes32 itemHash);


// ------------------------------------------------------------------------
Expand Down Expand Up @@ -308,15 +308,15 @@ contract DeveryRegistry is Admined {
// ------------------------------------------------------------------------
function mark(address productAccount, bytes32 itemHash) public {
Product storage product = products[productAccount];
require(product.brandAccount != address(0));
require(product.brandAccount != address(0) && product.active);
Brand storage brand = brands[product.brandAccount];
require(brand.brandAccount != address(0));
require(brand.brandAccount != address(0) && brand.active);
App storage app = apps[brand.appAccount];
require(app.appAccount != address(0));
require(app.appAccount != address(0) && app.active);
bool permissioned = permissions[msg.sender][brand.brandAccount];
require(permissioned);
markings[itemHash] = productAccount;
Marked(msg.sender, productAccount, itemHash);
Marked(msg.sender, productAccount, app.feeAccount, feeAccount, app.fee, fee, itemHash);
if (app.fee > 0) {
token.transferFrom(brand.brandAccount, app.feeAccount, app.fee);
}
Expand Down
2 changes: 1 addition & 1 deletion contracts/TestEVEToken.sol
Expand Up @@ -131,7 +131,7 @@ contract TestEVEToken is ERC20Interface, Owned, SafeMath {
}
function transferFrom(address from, address to, uint tokens) public returns (bool success) {
balances[from] = safeSub(balances[from], tokens);
// TODO allowed[from][msg.sender] = safeSub(allowed[from][msg.sender], tokens);
allowed[from][msg.sender] = safeSub(allowed[from][msg.sender], tokens);
balances[to] = safeAdd(balances[to], tokens);
Transfer(from, to, tokens);
return true;
Expand Down
19 changes: 8 additions & 11 deletions test/01_test1.sh
Expand Up @@ -165,23 +165,20 @@ var setTokenAndFeeMessage = "Set Token, Fee Account And Fee";
// -----------------------------------------------------------------------------
console.log("RESULT: " + setTokenAndFeeMessage);
var setTokenAndFee1Tx = registry.setToken(tokenAddress, {from: contractOwnerAccount, gas: 500000, gasPrice: defaultGasPrice});
var setTokenAndFee2Tx = registry.setFee(feeAccount, new BigNumber(0.5).shift(18), {from: contractOwnerAccount, gas: 500000, gasPrice: defaultGasPrice});
var setTokenAndFee2Tx = registry.setFee(feeAccount, new BigNumber(0.123123123).shift(18), {from: contractOwnerAccount, gas: 500000, gasPrice: defaultGasPrice});
var setTokenAndFee3Tx = token.transfer(beveryBrand1Account, new BigNumber(1000).shift(18), {from: contractOwnerAccount, gas: 500000, gasPrice: defaultGasPrice});
var setTokenAndFee4Tx = token.approve(beveryMarker1Account, new BigNumber(1000).shift(18), {from: beveryBrand1Account, gas: 500000, gasPrice: defaultGasPrice});
var setTokenAndFee5Tx = token.approve(beveryMarker2Account, new BigNumber(1000).shift(18), {from: beveryBrand1Account, gas: 500000, gasPrice: defaultGasPrice});
var setTokenAndFee4Tx = token.approve(registryAddress, new BigNumber(1000).shift(18), {from: beveryBrand1Account, gas: 500000, gasPrice: defaultGasPrice});
while (txpool.status.pending > 0) {
}
printBalances();
failIfTxStatusError(setTokenAndFee1Tx, setTokenAndFeeMessage + " - registry.setToken(token)");
failIfTxStatusError(setTokenAndFee2Tx, setTokenAndFeeMessage + " - registry.setFee(feeAccount, fee)");
failIfTxStatusError(setTokenAndFee3Tx, setTokenAndFeeMessage + " - token.transfer(beveryBrand1Account, 1000) from contractOwnerAccount");
failIfTxStatusError(setTokenAndFee4Tx, setTokenAndFeeMessage + " - token.approve(beveryMarker1Account, 1000) from beveryBrand1Account");
failIfTxStatusError(setTokenAndFee5Tx, setTokenAndFeeMessage + " - token.approve(beveryMarker2Account, 1000) from beveryBrand1Account");
failIfTxStatusError(setTokenAndFee4Tx, setTokenAndFeeMessage + " - token.approve(registry, 1000) from beveryBrand1Account");
printTxData("setTokenAndFee1Tx", setTokenAndFee1Tx);
printTxData("setTokenAndFee2Tx", setTokenAndFee2Tx);
printTxData("setTokenAndFee3Tx", setTokenAndFee3Tx);
printTxData("setTokenAndFee4Tx", setTokenAndFee4Tx);
printTxData("setTokenAndFee5Tx", setTokenAndFee5Tx);
printRegistryContractDetails();
printTokenContractDetails();
console.log("RESULT: ");
Expand All @@ -191,9 +188,9 @@ console.log("RESULT: ");
var registerAppsMessage = "Register App Accounts";
// -----------------------------------------------------------------------------
console.log("RESULT: " + registerAppsMessage);
var registerApps1Tx = registry.addApp("Bevery", beveryFeeAccount, new BigNumber(1.5).shift(18), {from: beveryAppAccount, gas: 500000, gasPrice: defaultGasPrice});
var registerApps2Tx = registry.addApp("Mevery", meveryFeeAccount, new BigNumber(2).shift(18), {from: meveryAppAccount, gas: 500000, gasPrice: defaultGasPrice});
var registerApps3Tx = registry.addApp("Zevery", zeveryFeeAccount, new BigNumber(1.5).shift(18), {from: zeveryAppAccount, gas: 500000, gasPrice: defaultGasPrice});
var registerApps1Tx = registry.addApp("Bevery", beveryFeeAccount, new BigNumber(1.111111111).shift(18), {from: beveryAppAccount, gas: 500000, gasPrice: defaultGasPrice});
var registerApps2Tx = registry.addApp("Mevery", meveryFeeAccount, new BigNumber(2.222222222).shift(18), {from: meveryAppAccount, gas: 500000, gasPrice: defaultGasPrice});
var registerApps3Tx = registry.addApp("Zevery", zeveryFeeAccount, new BigNumber(3.333333333).shift(18), {from: zeveryAppAccount, gas: 500000, gasPrice: defaultGasPrice});
while (txpool.status.pending > 0) {
}
printBalances();
Expand Down Expand Up @@ -283,8 +280,8 @@ var result2 = registry.check(beveryBrand1ProductBItem2Account);
console.log("RESULT: Checking Bevery Brand 1 Product A Item 2: " + beveryBrand1ProductBItem2Account + " productAccount=" + result2[0] + " brandAccount=" + result2[1] + " appAccount=" + result2[2]);
var product2 = registry.products(result2[0]);
console.log("RESULT: productDetails: " + JSON.stringify(product2));
var result3 = registry.check(account3);
console.log("RESULT: Checking Invalid Item: " + account3 + " productAccount=" + result3[0] + " brandAccount=" + result3[2] + " appAccount=" + result3[2]);
var result3 = registry.check(account4);
console.log("RESULT: Checking Invalid Item: " + account4 + " productAccount=" + result3[0] + " brandAccount=" + result3[2] + " appAccount=" + result3[2]);
EOF
Expand Down
2 changes: 1 addition & 1 deletion test/DeveryRegistry.js

Large diffs are not rendered by default.

0 comments on commit 934bbad

Please sign in to comment.