Finally running plasma_cash with Embark
This commit is contained in:
parent
6d37870846
commit
a9c54f50b9
|
@ -17,6 +17,7 @@ dist/
|
||||||
|
|
||||||
# pyenv
|
# pyenv
|
||||||
.python-version
|
.python-version
|
||||||
|
erc721plasma/
|
||||||
|
|
||||||
# dotenv
|
# dotenv
|
||||||
.env
|
.env
|
||||||
|
|
|
@ -26,12 +26,25 @@
|
||||||
"DelegationProxyKernel": { "deploy": false },
|
"DelegationProxyKernel": { "deploy": false },
|
||||||
"ProposalCuration": { "deploy": false },
|
"ProposalCuration": { "deploy": false },
|
||||||
"Democracy": { "deploy": false },
|
"Democracy": { "deploy": false },
|
||||||
"TestToken": {
|
"TestToken": { "deploy": false },
|
||||||
|
"AddressUtils": { "deploy": false },
|
||||||
|
"PollManager": { "deploy": false },
|
||||||
|
"ERC721BasicToken": { "deploy": false },
|
||||||
|
"ERC721Token": { "deploy": false },
|
||||||
|
"RLP": { "deploy": false },
|
||||||
|
"SparseMerkleTree": { "deploy": false },
|
||||||
|
"ECVerify": { "deploy": false },
|
||||||
|
"Transaction": { "deploy": false },
|
||||||
|
"ValidatorManagerContract": {},
|
||||||
|
"RootChain": {
|
||||||
|
"args": ["$ValidatorManagerContract"]
|
||||||
|
},
|
||||||
|
"CryptoCards":{
|
||||||
|
"args": ["$RootChain"]
|
||||||
},
|
},
|
||||||
"MiniMeTokenFactory": {
|
"MiniMeTokenFactory": {
|
||||||
|
|
||||||
},
|
},
|
||||||
"PollManager": { "deploy": false },
|
|
||||||
"SNT": {
|
"SNT": {
|
||||||
"instanceOf": "MiniMeToken",
|
"instanceOf": "MiniMeToken",
|
||||||
"args": [
|
"args": [
|
||||||
|
@ -44,31 +57,16 @@
|
||||||
true
|
true
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"AddressUtils": { "deploy": false },
|
|
||||||
"SupportsInterfaceWithLookup": { "deploy": false },
|
|
||||||
"ERC721BasicToken": { "deploy": false },
|
|
||||||
"ERC721Token": { "deploy": false },
|
|
||||||
"RLP": { "deploy": false },
|
|
||||||
"SparseMerkleTree": { "deploy": false },
|
|
||||||
"ECVerify": { "deploy": false },
|
|
||||||
"Transaction": { "deploy": false },
|
|
||||||
"ValidatorManagerContract": {},
|
|
||||||
"RootChain": {
|
|
||||||
"args": ["$ValidatorManagerContract"]
|
|
||||||
},
|
|
||||||
"PlasmaERC20":{ "deploy": false },
|
"PlasmaERC20":{ "deploy": false },
|
||||||
"PlasmaSNT": {
|
"PlasmaSNT": {
|
||||||
"instanceOf": "PlasmaERC20",
|
"instanceOf": "PlasmaERC20",
|
||||||
"args": ["$RootChain", "$SNT", "PlasmaSNT", "PSNT"],
|
"args": ["$RootChain", "$SNT", "PlasmaSNT", "PSNT"]
|
||||||
"onDeploy": [
|
|
||||||
"ValidatorManagerContract.methods.toggleToken($PlasmaSNT).send()",
|
|
||||||
"PlasmaSNT.methods.setExchangeRate(0, 5000000000000000000).send()"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"afterDeploy": [
|
||||||
|
"ValidatorManagerContract.methods.toggleToken('$CryptoCards').send()",
|
||||||
|
"PlasmaSNT.methods.setExchangeRate(0, 5000000000000000000).send()"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
pragma solidity ^0.4.24;
|
||||||
|
|
||||||
|
import "openzeppelin-solidity/contracts/token/ERC721/ERC721Token.sol";
|
||||||
|
|
||||||
|
|
||||||
|
contract CryptoCards is ERC721Token("CryptoCards", "CCC") {
|
||||||
|
|
||||||
|
address plasma;
|
||||||
|
|
||||||
|
constructor (address _plasma) public {
|
||||||
|
plasma = _plasma;
|
||||||
|
}
|
||||||
|
|
||||||
|
function register() external {
|
||||||
|
// Give each new player 5 cards
|
||||||
|
for (int j = 0; j < 5; j++) {
|
||||||
|
create();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function depositToPlasmaWithData(uint tokenId, bytes _data) public {
|
||||||
|
require(plasma != address(0));
|
||||||
|
safeTransferFrom(
|
||||||
|
msg.sender,
|
||||||
|
plasma,
|
||||||
|
tokenId,
|
||||||
|
_data);
|
||||||
|
}
|
||||||
|
|
||||||
|
function depositToPlasma(uint tokenId) public {
|
||||||
|
require(plasma != address(0));
|
||||||
|
safeTransferFrom(msg.sender, plasma, tokenId);
|
||||||
|
}
|
||||||
|
|
||||||
|
function create() private {
|
||||||
|
uint256 tokenId = allTokens.length + 1;
|
||||||
|
_mint(msg.sender, tokenId);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,3 +1,37 @@
|
||||||
|
|
||||||
|
# @rramos notes
|
||||||
|
I configured the project to run with Embark (Only demo.py was tested). To run this project in Ubuntu, the following steps need to be executed
|
||||||
|
|
||||||
|
1. `npm install`
|
||||||
|
2. Open at least 4 terminals (you can use `tmux` for this)
|
||||||
|
3. In Terminal-1, execute `embark simulator`
|
||||||
|
4. In Terminal-2, execute `embark run`
|
||||||
|
5. In Terminal-3:
|
||||||
|
```
|
||||||
|
cd plasma_cash
|
||||||
|
virtualenv erc721plasma -p python3.6
|
||||||
|
source erc721plasma/bin/activate
|
||||||
|
pip install -r requirements.txt
|
||||||
|
FLASK_APP=./child_chain FLASK_ENV=development flask run --port=8546
|
||||||
|
```
|
||||||
|
6. In Terminal-4:
|
||||||
|
```
|
||||||
|
cd plasma_cash
|
||||||
|
source erc721plasma/bin/activate
|
||||||
|
python demo.py
|
||||||
|
```
|
||||||
|
|
||||||
|
Most of the previous instructions are covered here, I just wrote them here for quick reference.
|
||||||
|
|
||||||
|
If installing the server from scratch:
|
||||||
|
1. Install Nodejs with `nvm`
|
||||||
|
2. Follow the instructions from Embark for its installation,
|
||||||
|
3. `sudo apt install virtualenv python3 python3-dev libssl-dev build-essential`
|
||||||
|
|
||||||
|
_NOTE_: `nvm` and Embark must be installed with a normal user. Don't use `root`!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Development Dependencies
|
# Development Dependencies
|
||||||
|
|
||||||
A patched version of web3.py is used because otherwise it does not work with Ganache due to issue #674. In addition, in order to be able to monitor events, PR #827, which is not merged yet. Pyethereum dependencies broke recently so we need to manually install a slightly older version of rlp encoding. Flask is used for server purposes.
|
A patched version of web3.py is used because otherwise it does not work with Ganache due to issue #674. In addition, in order to be able to monitor events, PR #827, which is not merged yet. Pyethereum dependencies broke recently so we need to manually install a slightly older version of rlp encoding. Flask is used for server purposes.
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
plasma_config = dict(
|
plasma_config = dict(
|
||||||
validator_manager='0x494748735312D87C54Ff36E9dc71f90fb800D7Df',
|
validator_manager='0xd8a512EBD6fd82f44dFFD968EEB0835265497d20',
|
||||||
root_chain='0xe5731c3df7a510fba6c5b2766251ce631C6B1d78',
|
root_chain='0x494748735312D87C54Ff36E9dc71f90fb800D7Df',
|
||||||
token_contract='0x6427A6200Bed37FC1e512BdeA49D25Aa9089CF47',
|
token_contract='0x6427A6200Bed37FC1e512BdeA49D25Aa9089CF47',
|
||||||
|
|
||||||
authority='0xf942d5d524ec07158df4354402bfba8d928c99d0ab34d0799a6158d56156d986',
|
authority='0xf942d5d524ec07158df4354402bfba8d928c99d0ab34d0799a6158d56156d986',
|
||||||
alice='0x88f37cfbaed8c0c515c62a17a3a1ce2f397d08bbf20dcc788b69f11b5a5c9791',
|
alice='0x88f37cfbaed8c0c515c62a17a3a1ce2f397d08bbf20dcc788b69f11b5a5c9791',
|
||||||
bob='0xf4ebc8adae40bfc741b0982c206061878bffed3ad1f34d67c94fa32c3d33eac8',
|
bob='0xf4ebc8adae40bfc741b0982c206061878bffed3ad1f34d67c94fa32c3d33eac8',
|
||||||
|
@ -10,6 +11,7 @@ plasma_config = dict(
|
||||||
mallory='0x130137aa9a7fbc7cadc98c079cda47a999ff41931d9feaab621855beceed71f7',
|
mallory='0x130137aa9a7fbc7cadc98c079cda47a999ff41931d9feaab621855beceed71f7',
|
||||||
eve='0xead83d04f741d2b3ab50be1299c18aa1a82c241606861a9a6d3122443496522d',
|
eve='0xead83d04f741d2b3ab50be1299c18aa1a82c241606861a9a6d3122443496522d',
|
||||||
trudy='0xe6e893ac9f1c1db066a8a83a376554084b0a786e4cdcd91559d68bd4a1dac396',
|
trudy='0xe6e893ac9f1c1db066a8a83a376554084b0a786e4cdcd91559d68bd4a1dac396',
|
||||||
|
|
||||||
players=[
|
players=[
|
||||||
'0x56901d80abc6953d1dc01de2f077b75260f49a3304f665b57ed13514a7e2a2bc',
|
'0x56901d80abc6953d1dc01de2f077b75260f49a3304f665b57ed13514a7e2a2bc',
|
||||||
'0xedc63d0e14b29aaa26c7585e962f93abb59bd7d8b01b585e073dc03d052a000b',
|
'0xedc63d0e14b29aaa26c7585e962f93abb59bd7d8b01b585e073dc03d052a000b',
|
||||||
|
|
|
@ -8,7 +8,7 @@ class DependencyContainer(object):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self._child_chain = None
|
self._child_chain = None
|
||||||
self.root_chain_abi = '../dist/contracts/RootChain.json'
|
self.root_chain_abi = '../dist/contracts/RootChain.json'
|
||||||
self.token_contract_abi = '../dist/contracts/PlasmaERC20.json'
|
self.token_contract_abi = '../dist/contracts/CryptoCards.json'
|
||||||
self.endpoint = 'http://localhost:8545'
|
self.endpoint = 'http://localhost:8545'
|
||||||
self.root_chain = PlasmaCash(
|
self.root_chain = PlasmaCash(
|
||||||
plasma_config['authority'],
|
plasma_config['authority'],
|
||||||
|
|
Loading…
Reference in New Issue