From 93660741decc41cba52e6b0049488e202556fc6d Mon Sep 17 00:00:00 2001 From: serapath Date: Thu, 14 Dec 2017 04:48:17 +0700 Subject: [PATCH 1/2] ADD npm run remixd + mochfolder --- package.json | 12 ++-- .../app/ethereum/constitution.sol | 6 ++ .../mockfilesandfolder/app/solidity/mode.sol | 6 ++ test-browser/mockfilesandfolder/ballot.sol | 65 +++++++++++++++++++ .../mockfilesandfolder/src/gmbh/company.sol | 6 ++ .../mockfilesandfolder/src/gmbh/contract.sol | 6 ++ .../mockfilesandfolder/src/gmbh/test.sol | 6 ++ .../mockfilesandfolder/src/leasing.sol | 14 ++++ .../mockfilesandfolder/src/ug/finance.sol | 6 ++ .../mockfilesandfolder/src/voting.sol | 6 ++ .../mockfilesandfolder/test/client/credit.sol | 21 ++++++ 11 files changed, 149 insertions(+), 5 deletions(-) create mode 100644 test-browser/mockfilesandfolder/app/ethereum/constitution.sol create mode 100644 test-browser/mockfilesandfolder/app/solidity/mode.sol create mode 100644 test-browser/mockfilesandfolder/ballot.sol create mode 100644 test-browser/mockfilesandfolder/src/gmbh/company.sol create mode 100644 test-browser/mockfilesandfolder/src/gmbh/contract.sol create mode 100644 test-browser/mockfilesandfolder/src/gmbh/test.sol create mode 100644 test-browser/mockfilesandfolder/src/leasing.sol create mode 100644 test-browser/mockfilesandfolder/src/ug/finance.sol create mode 100644 test-browser/mockfilesandfolder/src/voting.sol create mode 100644 test-browser/mockfilesandfolder/test/client/credit.sol diff --git a/package.json b/package.json index d3ee62a8fa..483c19e2b9 100644 --- a/package.json +++ b/package.json @@ -19,11 +19,6 @@ "csjs-inject": "^1.0.1", "csslint": "^1.0.2", "deep-equal": "^1.0.1", - "npm-link-local": "^1.1.0", - "remix-core": "latest", - "remix-lib": "latest", - "remix-solidity": "latest", - "remix-debugger": "latest", "ethereumjs-abi": "https://github.com/ethereumjs/ethereumjs-abi", "ethereumjs-block": "^1.6.0", "ethereumjs-tx": "^1.3.3", @@ -42,8 +37,14 @@ "mkdirp": "^0.5.1", "nightwatch": "^0.9.3", "notify-error": "^1.2.0", + "npm-link-local": "^1.1.0", "npm-run-all": "^4.0.2", "onchange": "^3.2.1", + "remix-core": "latest", + "remix-debugger": "latest", + "remix-lib": "latest", + "remix-solidity": "latest", + "remixd": "^0.1.2", "rimraf": "^2.6.1", "selenium-standalone": "^6.0.1", "solc": "https://github.com/ethereum/solc-js", @@ -154,6 +155,7 @@ "nightwatch_remote_safari": "nightwatch --config nightwatch.js --env safari", "onchange": "onchange build/app.js -- npm-run-all lint", "prepublish": "mkdirp build; npm-run-all -ls downloadsolc build", + "remixd": "remixd -S ./test-browser/mockfilesandfolder", "selenium": "execr --silent selenium-standalone start", "selenium-install": "selenium-standalone install", "serve": "execr --silent http-server .", diff --git a/test-browser/mockfilesandfolder/app/ethereum/constitution.sol b/test-browser/mockfilesandfolder/app/ethereum/constitution.sol new file mode 100644 index 0000000000..8c2c9e0da9 --- /dev/null +++ b/test-browser/mockfilesandfolder/app/ethereum/constitution.sol @@ -0,0 +1,6 @@ +contract Constitution { + + function Found(uint8 _numProposals) { + proposals.length = _numProposals; + } +} diff --git a/test-browser/mockfilesandfolder/app/solidity/mode.sol b/test-browser/mockfilesandfolder/app/solidity/mode.sol new file mode 100644 index 0000000000..6027379cfe --- /dev/null +++ b/test-browser/mockfilesandfolder/app/solidity/mode.sol @@ -0,0 +1,6 @@ +contract Mode { + + function Normal(uint8 _numProposals) { + proposals.length = _numProposals; + } +} diff --git a/test-browser/mockfilesandfolder/ballot.sol b/test-browser/mockfilesandfolder/ballot.sol new file mode 100644 index 0000000000..99219a5d23 --- /dev/null +++ b/test-browser/mockfilesandfolder/ballot.sol @@ -0,0 +1,65 @@ +pragma solidity ^0.4.0; +contract Ballot { + + struct Voter { + uint weight; + bool voted; + uint8 vote; + address delegate; + } + struct Proposal { + uint voteCount; + } + + address chairperson; + mapping(address => Voter) voters; + Proposal[] proposals; + + /// Create a new ballot with $(_numProposals) different proposals. + function Ballot(uint8 _numProposals) { + chairperson = msg.sender; + voters[chairperson].weight = 1; + proposals.length = _numProposals; + } + + /// Give $(voter) the right to vote on this ballot. + /// May only be called by $(chairperson). + function giveRightToVote(address voter) { + if (msg.sender != chairperson || voters[voter].voted) return; + voters[voter].weight = 1; + } + + /// Delegate your vote to the voter $(to). + function delegate(address to) { + Voter sender = voters[msg.sender]; // assigns reference + if (sender.voted) return; + while (voters[to].delegate != address(0) && voters[to].delegate != msg.sender) + to = voters[to].delegate; + if (to == msg.sender) return; + sender.voted = true; + sender.delegate = to; + Voter delegate = voters[to]; + if (delegate.voted) + proposals[delegate.vote].voteCount += sender.weight; + else + delegate.weight += sender.weight; + } + + /// Give a single vote to proposal $(proposal). + function vote(uint8 proposal) { + Voter sender = voters[msg.sender]; + if (sender.voted || proposal >= proposals.length) return; + sender.voted = true; + sender.vote = proposal; + proposals[proposal].voteCount += sender.weight; + } + + function winningProposal() constant returns (uint8 winningProposal) { + uint256 winningVoteCount = 0; + for (uint8 proposal = 0; proposal < proposals.length; proposal++) + if (proposals[proposal].voteCount > winningVoteCount) { + winningVoteCount = proposals[proposal].voteCount; + winningProposal = proposal; + } + } +} diff --git a/test-browser/mockfilesandfolder/src/gmbh/company.sol b/test-browser/mockfilesandfolder/src/gmbh/company.sol new file mode 100644 index 0000000000..1b9da1a0cf --- /dev/null +++ b/test-browser/mockfilesandfolder/src/gmbh/company.sol @@ -0,0 +1,6 @@ +contract Assets { + + function add(uint8 _numProposals) { + proposals.length = _numProposals; + } +} diff --git a/test-browser/mockfilesandfolder/src/gmbh/contract.sol b/test-browser/mockfilesandfolder/src/gmbh/contract.sol new file mode 100644 index 0000000000..27ea2cb127 --- /dev/null +++ b/test-browser/mockfilesandfolder/src/gmbh/contract.sol @@ -0,0 +1,6 @@ +contract gmbh { + + function register(uint8 _numProposals) { + proposals.length = _numProposals; + } +} diff --git a/test-browser/mockfilesandfolder/src/gmbh/test.sol b/test-browser/mockfilesandfolder/src/gmbh/test.sol new file mode 100644 index 0000000000..d1a6e04941 --- /dev/null +++ b/test-browser/mockfilesandfolder/src/gmbh/test.sol @@ -0,0 +1,6 @@ +contract test { + + function Test(uint8 _numProposals) { + proposals.length = _numProposals; + } +} diff --git a/test-browser/mockfilesandfolder/src/leasing.sol b/test-browser/mockfilesandfolder/src/leasing.sol new file mode 100644 index 0000000000..ce3c278aa1 --- /dev/null +++ b/test-browser/mockfilesandfolder/src/leasing.sol @@ -0,0 +1,14 @@ +contract lease { + + function Vote(uint8 _numProposals) { + proposals.length = _numProposals; + } +} + + +contract borrow { + + function Vote(uint8 _numProposals) { + proposals.length = _numProposals; + } +} diff --git a/test-browser/mockfilesandfolder/src/ug/finance.sol b/test-browser/mockfilesandfolder/src/ug/finance.sol new file mode 100644 index 0000000000..0f0dc02842 --- /dev/null +++ b/test-browser/mockfilesandfolder/src/ug/finance.sol @@ -0,0 +1,6 @@ +contract Finance { + + function Loan(uint8 _numProposals) { + proposals.length = _numProposals; + } +} diff --git a/test-browser/mockfilesandfolder/src/voting.sol b/test-browser/mockfilesandfolder/src/voting.sol new file mode 100644 index 0000000000..37a7a96905 --- /dev/null +++ b/test-browser/mockfilesandfolder/src/voting.sol @@ -0,0 +1,6 @@ +contract voting { + + function Vote(uint8 _numProposals) { + proposals.length = _numProposals; + } +} diff --git a/test-browser/mockfilesandfolder/test/client/credit.sol b/test-browser/mockfilesandfolder/test/client/credit.sol new file mode 100644 index 0000000000..6a8bd4fad8 --- /dev/null +++ b/test-browser/mockfilesandfolder/test/client/credit.sol @@ -0,0 +1,21 @@ +contract credit_1 { + + struct Proposal { + uint voteCount; + } + + function Ballot(uint8 _numProposals) { + proposals.length = _numProposals; + } +} + +contract credit_2 { + + struct Proposal { + uint voteCount; + } + + function Ballot(uint8 _numProposals) { + proposals.length = _numProposals; + } +} From ef06d92ad05d95b44bc1a0ca232121e181d4ea96 Mon Sep 17 00:00:00 2001 From: serapath Date: Thu, 14 Dec 2017 15:41:13 +0700 Subject: [PATCH 2/2] rename to ./contracts/ --- .../app/ethereum/constitution.sol | 0 .../mockfilesandfolder => contracts}/app/solidity/mode.sol | 0 {test-browser/mockfilesandfolder => contracts}/ballot.sol | 0 .../mockfilesandfolder => contracts}/src/gmbh/company.sol | 0 .../mockfilesandfolder => contracts}/src/gmbh/contract.sol | 0 .../mockfilesandfolder => contracts}/src/gmbh/test.sol | 0 {test-browser/mockfilesandfolder => contracts}/src/leasing.sol | 0 .../mockfilesandfolder => contracts}/src/ug/finance.sol | 0 {test-browser/mockfilesandfolder => contracts}/src/voting.sol | 0 .../mockfilesandfolder => contracts}/test/client/credit.sol | 0 package.json | 2 +- 11 files changed, 1 insertion(+), 1 deletion(-) rename {test-browser/mockfilesandfolder => contracts}/app/ethereum/constitution.sol (100%) rename {test-browser/mockfilesandfolder => contracts}/app/solidity/mode.sol (100%) rename {test-browser/mockfilesandfolder => contracts}/ballot.sol (100%) rename {test-browser/mockfilesandfolder => contracts}/src/gmbh/company.sol (100%) rename {test-browser/mockfilesandfolder => contracts}/src/gmbh/contract.sol (100%) rename {test-browser/mockfilesandfolder => contracts}/src/gmbh/test.sol (100%) rename {test-browser/mockfilesandfolder => contracts}/src/leasing.sol (100%) rename {test-browser/mockfilesandfolder => contracts}/src/ug/finance.sol (100%) rename {test-browser/mockfilesandfolder => contracts}/src/voting.sol (100%) rename {test-browser/mockfilesandfolder => contracts}/test/client/credit.sol (100%) diff --git a/test-browser/mockfilesandfolder/app/ethereum/constitution.sol b/contracts/app/ethereum/constitution.sol similarity index 100% rename from test-browser/mockfilesandfolder/app/ethereum/constitution.sol rename to contracts/app/ethereum/constitution.sol diff --git a/test-browser/mockfilesandfolder/app/solidity/mode.sol b/contracts/app/solidity/mode.sol similarity index 100% rename from test-browser/mockfilesandfolder/app/solidity/mode.sol rename to contracts/app/solidity/mode.sol diff --git a/test-browser/mockfilesandfolder/ballot.sol b/contracts/ballot.sol similarity index 100% rename from test-browser/mockfilesandfolder/ballot.sol rename to contracts/ballot.sol diff --git a/test-browser/mockfilesandfolder/src/gmbh/company.sol b/contracts/src/gmbh/company.sol similarity index 100% rename from test-browser/mockfilesandfolder/src/gmbh/company.sol rename to contracts/src/gmbh/company.sol diff --git a/test-browser/mockfilesandfolder/src/gmbh/contract.sol b/contracts/src/gmbh/contract.sol similarity index 100% rename from test-browser/mockfilesandfolder/src/gmbh/contract.sol rename to contracts/src/gmbh/contract.sol diff --git a/test-browser/mockfilesandfolder/src/gmbh/test.sol b/contracts/src/gmbh/test.sol similarity index 100% rename from test-browser/mockfilesandfolder/src/gmbh/test.sol rename to contracts/src/gmbh/test.sol diff --git a/test-browser/mockfilesandfolder/src/leasing.sol b/contracts/src/leasing.sol similarity index 100% rename from test-browser/mockfilesandfolder/src/leasing.sol rename to contracts/src/leasing.sol diff --git a/test-browser/mockfilesandfolder/src/ug/finance.sol b/contracts/src/ug/finance.sol similarity index 100% rename from test-browser/mockfilesandfolder/src/ug/finance.sol rename to contracts/src/ug/finance.sol diff --git a/test-browser/mockfilesandfolder/src/voting.sol b/contracts/src/voting.sol similarity index 100% rename from test-browser/mockfilesandfolder/src/voting.sol rename to contracts/src/voting.sol diff --git a/test-browser/mockfilesandfolder/test/client/credit.sol b/contracts/test/client/credit.sol similarity index 100% rename from test-browser/mockfilesandfolder/test/client/credit.sol rename to contracts/test/client/credit.sol diff --git a/package.json b/package.json index 483c19e2b9..54845a9548 100644 --- a/package.json +++ b/package.json @@ -155,7 +155,7 @@ "nightwatch_remote_safari": "nightwatch --config nightwatch.js --env safari", "onchange": "onchange build/app.js -- npm-run-all lint", "prepublish": "mkdirp build; npm-run-all -ls downloadsolc build", - "remixd": "remixd -S ./test-browser/mockfilesandfolder", + "remixd": "remixd -S ./contracts", "selenium": "execr --silent selenium-standalone start", "selenium-install": "selenium-standalone install", "serve": "execr --silent http-server .",