poa-dapps-voting/README.md

890 lines
66 KiB
Markdown
Raw Normal View History

# Oracles network Voting Dapp
## Initial page (Settings)
Choose your voting key from the list to continue. You can return to this page from any page by clicking **Settings** button.
![](./settings.png)
## Ballots page
You'll see the page with the list of all ballots. Here you can switch to see only your **UNANSWERED** or **EXPIRED** ballots.
**Search** by ballots' data is available too.
Single ballot page is opened by clicking **VOTE NOW** button.
![](./ballots.png)
## Single ballot page
Here you can vote for or against notary. If total number of votes > 3, notary will be added or deleted from the network depending on votes majority after voting will be finished.
![](./ballot.png)
## New ballot page
Click **NEW BALLOT** button from any page to create a new ballot.
![](./new_ballot.png)
## Configuration file
`./assets/javascripts/config.json`
```
{
"environment": "live",
"Ethereum": {
"dev": {
"rpc": "http://127.0.0.1:8545",
"account": "Oracles_contract_owner_address",
"contractAddress": "Oracles_contract_address"
},
"live": {
"rpc": "http://127.0.0.1:8540",
"account": "Oracles_contract_owner_address",
"contractAddress": "Oracles_contract_address"
},
"contracts": {
"Oracles": {
"bin": "0x606060405260036009556000600b60006101000a81548160ff021916908360000b60ff160217905550600c600b60016101000a81548160ff021916908360000b60ff1602179055506000600b60026101000a81548160ff021916908360000b60ff1602179055506034600b60036101000a81548160ff021916908360000b60ff1602179055506020604051908101604052807370de02424c1b3b1ada0fab8dd1d70e04727bd08273ffffffffffffffffffffffffffffffffffffffff16815250600c906001620000d192919062001ea5565b5060206040519081016040528073dd0bb0e2a1594240fed0c2f2c17c1e9ab4f8712673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250600d9060016200013492919062001f34565b5060206040519081016040528072ba7af2c7a8d724bf526e79b965d1ae7748aa3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250600e9060016200019692919062001f34565b5060206040519081016040528073dd0bb0e2a1594240fed0c2f2c17c1e9ab4f8712673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250600f906001620001f992919062001f34565b5060206040519081016040528073dd0bb0e2a1594240fed0c2f2c17c1e9ab4f8712673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525060109060016200025c92919062001f34565b5060806040519081016040528062b347e363ffffffff1681526020016301c85e1463ffffffff168152602001630235c8d763ffffffff1681526020016301690cb163ffffffff168152506011906004620002b892919062001fc3565b505b60006000600060006000600060005b33600060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600096505b600c80549050871015620003de576020604051908101604052806001151581525060046000600c8a8154811015156200034557fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055509050505b868060010197505062000310565b600095505b600d80549050861015620004b1576020604051908101604052806001151581525060016000600d898154811015156200041857fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055509050505b8580600101965050620003e3565b600094505b600f8054905085101562000584576020604051908101604052806001151581525060026000600f88815481101515620004eb57fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055509050505b8480600101955050620004b6565b600093505b60108054905084101562000657576020604051908101604052806001151581525060036000601087815481101515620005be57fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055509050505b838060010194505062000589565b600092505b600d805490508310156200071b57600580548060010182816200068091906200201d565b916000526020600020900160005b600d868154811015156200069e57fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b82806001019350506200065c565b600091505b600e80549050821015620007df57600680548060010182816200074491906200201d565b916000526020600020900160005b600e858154811015156200076257fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b818060010192505062000720565b610100604051908101604052806040604051908101604
"abi": [
{
"constant": true,
"inputs": [
{
"name": "ballotID",
"type": "uint256"
}
],
"name": "getBallotAffectedKey",
"outputs": [
{
"name": "value",
"type": "address"
}
],
"payable": false,
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "miningKey",
"type": "address"
},
{
"name": "zip",
"type": "uint256"
},
{
"name": "licenseID",
"type": "uint256"
},
{
"name": "licenseExpiredAt",
"type": "uint256"
},
{
"name": "fullName",
"type": "string"
},
{
"name": "streetName",
"type": "string"
},
{
"name": "state",
"type": "string"
}
],
"name": "addValidator",
"outputs": [],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "ballotID",
"type": "uint256"
}
],
"name": "getBallotMemo",
"outputs": [
{
"name": "value",
"type": "string"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "address"
}
],
"name": "miningKeys",
"outputs": [
{
"name": "isActive",
"type": "bool"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "address"
}
],
"name": "validator",
"outputs": [
{
"name": "fullName",
"type": "string"
},
{
"name": "streetName",
"type": "string"
},
{
"name": "state",
"type": "string"
},
{
"name": "zip",
"type": "uint256"
},
{
"name": "licenseID",
"type": "uint256"
},
{
"name": "licenseExpiredAt",
"type": "uint256"
},
{
"name": "disablingDate",
"type": "uint256"
},
{
"name": "disablingTX",
"type": "string"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "ballotID",
"type": "uint256"
}
],
"name": "getBallotVotingStart",
"outputs": [
{
"name": "value",
"type": "uint256"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "addr",
"type": "address"
}
],
"name": "getValidatorFullName",
"outputs": [
{
"name": "value",
"type": "string"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "key",
"type": "address"
}
],
"name": "checkInitialKey",
"outputs": [
{
"name": "value",
"type": "bool"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "uint256"
}
],
"name": "ballotsMapping",
"outputs": [
{
"name": "owner",
"type": "address"
},
{
"name": "miningKey",
"type": "address"
},
{
"name": "affectedKey",
"type": "address"
},
{
"name": "memo",
"type": "string"
},
{
"name": "affectedKeyType",
"type": "uint256"
},
{
"name": "createdAt",
"type": "uint256"
},
{
"name": "votingStart",
"type": "uint256"
},
{
"name": "votingDeadline",
"type": "uint256"
},
{
"name": "votesAmmount",
"type": "int256"
},
{
"name": "result",
"type": "int256"
},
{
"name": "addAction",
"type": "bool"
},
{
"name": "active",
"type": "bool"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "uint256"
}
],
"name": "validators",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getDisabledValidators",
"outputs": [
{
"name": "value",
"type": "address[]"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "address"
}
],
"name": "payoutKeys",
"outputs": [
{
"name": "isActive",
"type": "bool"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "addr",
"type": "address"
}
],
"name": "getValidatorState",
"outputs": [
{
"name": "value",
"type": "string"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "uint256"
}
],
"name": "ballots",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "addr",
"type": "address"
}
],
"name": "getValidatorStreetName",
"outputs": [
{
"name": "value",
"type": "string"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "address"
}
],
"name": "initialKeys",
"outputs": [
{
"name": "isNew",
"type": "bool"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "ballotID",
"type": "uint256"
}
],
"name": "ballotIsVoted",
"outputs": [
{
"name": "value",
"type": "bool"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "ballotID",
"type": "uint256"
}
],
"name": "ballotIsActive",
"outputs": [
{
"name": "value",
"type": "bool"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "addr",
"type": "address"
}
],
"name": "getValidatorLicenseID",
"outputs": [
{
"name": "value",
"type": "uint256"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "addr",
"type": "address"
}
],
"name": "getValidatorLicenseExpiredAt",
"outputs": [
{
"name": "value",
"type": "uint256"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "uint256"
}
],
"name": "disabledValidators",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "ballotID",
"type": "uint256"
}
],
"name": "getBallotOwner",
"outputs": [
{
"name": "value",
"type": "string"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "addr",
"type": "address"
}
],
"name": "getValidatorDisablingDate",
"outputs": [
{
"name": "value",
"type": "uint256"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "owner",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "ballotID",
"type": "uint256"
},
{
"name": "owner",
"type": "address"
},
{
"name": "miningKey",
"type": "address"
},
{
"name": "affectedKey",
"type": "address"
},
{
"name": "affectedKeyType",
"type": "uint256"
},
{
"name": "addAction",
"type": "bool"
},
{
"name": "memo",
"type": "string"
}
],
"name": "addBallot",
"outputs": [],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "ballotID",
"type": "uint256"
}
],
"name": "getBallotAffectedKeyType",
"outputs": [
{
"name": "value",
"type": "uint256"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "ballotID",
"type": "uint256"
}
],
"name": "getBallotVotingEnd",
"outputs": [
{
"name": "value",
"type": "uint256"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "ballotID",
"type": "uint256"
}
],
"name": "getBallotAction",
"outputs": [
{
"name": "value",
"type": "bool"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "ballotID",
"type": "uint256"
}
],
"name": "getBallotMiningKey",
"outputs": [
{
"name": "value",
"type": "address"
}
],
"payable": false,
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "key",
"type": "address"
}
],
"name": "addInitialKey",
"outputs": [],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "ballotID",
"type": "uint256"
}
],
"name": "ballotCreatedAt",
"outputs": [
{
"name": "value",
"type": "uint256"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "ballotID",
"type": "uint256"
}
],
"name": "getVotesAgainst",
"outputs": [
{
"name": "value",
"type": "int256"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getValidators",
"outputs": [
{
"name": "value",
"type": "address[]"
}
],
"payable": false,
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "miningAddr",
"type": "address"
},
{
"name": "payoutAddr",
"type": "address"
},
{
"name": "votingAddr",
"type": "address"
}
],
"name": "createKeys",
"outputs": [],
"payable": false,
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "ballotID",
"type": "uint256"
},
{
"name": "accept",
"type": "bool"
}
],
"name": "vote",
"outputs": [],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "address"
}
],
"name": "votingKeys",
"outputs": [
{
"name": "isActive",
"type": "bool"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "ballotID",
"type": "uint256"
}
],
"name": "getVotesFor",
"outputs": [
{
"name": "value",
"type": "int256"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "addr",
"type": "address"
}
],
"name": "checkPayoutKeyValidity",
"outputs": [
{
"name": "value",
"type": "bool"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "addr",
"type": "address"
}
],
"name": "getValidatorZip",
"outputs": [
{
"name": "value",
"type": "uint256"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getBallots",
"outputs": [
{
"name": "value",
"type": "uint256[]"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "addr",
"type": "address"
}
],
"name": "checkVotingKeyValidity",
"outputs": [
{
"name": "value",
"type": "bool"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "votingLowerLimit",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"type": "function"
}
]
}
}
}
}
```