All Projects → oraclesorg → oracles-contract

oraclesorg / oracles-contract

Licence: MIT license
New version of POA Network consensus contracts is here: https://github.com/poanetwork/poa-network-consensus-contracts

Programming Languages

javascript
184084 projects - #8 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to oracles-contract

open-api
api.openfuture.io
Stars: ✭ 41 (+64%)
Mutual labels:  dapp, ethereum-dapp, solidity-contracts
contracts
Contracts for FundRequest (platform, token, crowdsale)
Stars: ✭ 56 (+124%)
Mutual labels:  dapp, ethereum-dapp, solidity-contracts
Decentralized eCom
A decentralized e-commerce platform! Tech Stack: Ethereum (Solidity) on the backend, Web3 binding to ReactJS frontend!
Stars: ✭ 82 (+228%)
Mutual labels:  ethereum-dapp, solidity-contracts, solidity-dapps
web3-starter
An opinionated web3 starter for building dApps
Stars: ✭ 67 (+168%)
Mutual labels:  dapp, solidity-contracts, solidity-dapps
crypto-against-humanity
Crypto Against Humanity - The never ending global game of shame.
Stars: ✭ 23 (-8%)
Mutual labels:  dapp, ethereum-dapp
Golden Wallet React Native
Golden - Best Wallet Ever
Stars: ✭ 201 (+704%)
Mutual labels:  dapp, ethereum-dapp
svelte-box
A truffle box for svelte
Stars: ✭ 60 (+140%)
Mutual labels:  dapp, ethereum-dapp
DCLib
⚙️ DApp toolkit
Stars: ✭ 12 (-52%)
Mutual labels:  dapp, ethereum-dapp
Trust Wallet Ios
📱 Trust - Ethereum Wallet and Web3 DApp Browser for iOS
Stars: ✭ 1,228 (+4812%)
Mutual labels:  dapp, ethereum-dapp
zksync-dapp-checkout
zkCheckout — trustable permissionless DeFi payment gateway. Brand new zkSync dApp w/t all L2 perks: fast&cheap transfers / simple&quick withdrawal
Stars: ✭ 37 (+48%)
Mutual labels:  dapp, ethereum-dapp
awesome-solidity-gas-optimization
Best resources for Solidity gas optimizations ⛽
Stars: ✭ 893 (+3472%)
Mutual labels:  solidity-contracts, solidity-dapps
Angular Truffle Starter Dapp
Angular CLI + Truffle Starter Dapp; write, compile & deploy smart contracts on Ethereum blockchains
Stars: ✭ 174 (+596%)
Mutual labels:  dapp, ethereum-dapp
Eth Vue
Featured in Awesome Vue [https://github.com/vuejs/awesome-vue], a curated list maintained by vuejs of awesome things related to the Vue.js framework, and Awesome List [https://awesomelists.net/150-Vue.js/3863-Open+Source/18749-DOkwufulueze-eth-vue], this Truffle Box provides everything you need to quickly build Ethereum dApps that have authentication features with vue, including configuration for easy deployment to the Ropsten Network. It's also Gravatar-enabled. Connecting to a running Ganache blockchain network from Truffle is also possible -- for fast development and testing purposes. Built on Truffle 5 and Vue 3, eth-vue uses vuex for state management, vuex-persist for local storage of app state, and vue-router for routing. Authentication functionalities are handled by Smart Contracts running on the Ethereum blockchain.
Stars: ✭ 171 (+584%)
Mutual labels:  dapp, ethereum-dapp
ArianeeMaster
Smart contracts & tools for Arianee Protocol
Stars: ✭ 30 (+20%)
Mutual labels:  dapp, solidity-contracts
Unstoppable Wallet Android
A secure and decentralized Bitcoin and other cryptocurrency wallet for Android phones. Supports Bitcoin, Ethereum, EOS, Binance Chain, Bitcoin Cash, DASH, ...
Stars: ✭ 165 (+560%)
Mutual labels:  dapp, ethereum-dapp
E-Voting-App
A simple E-voting Decentralised App using the Ethereum Blockchain, Solidity and the MERN(MongoDB, Express.js, ReactJS, Node.js) stack
Stars: ✭ 84 (+236%)
Mutual labels:  ethereum-dapp, solidity-contracts
NFT-Dapp-Boilerplate
A highly scalable NFT and DEFI boilerplate with pre added web3 and different wallets with a focus on performance and best practices
Stars: ✭ 51 (+104%)
Mutual labels:  dapp, ethereum-dapp
vue-web3
🐙 Web3 blockchain bindings for Vue.js (inspired by Vuefire and Drizzle)
Stars: ✭ 63 (+152%)
Mutual labels:  dapp, ethereum-dapp
poa-faucet
POA Network faucet
Stars: ✭ 39 (+56%)
Mutual labels:  dapp, ethereum-dapp
ethereum-dapp-ipfs-node.js-mongodb
以太坊开发DApp实战教程——用区块链、星际文件系统(IPFS)、Node.js和MongoDB来构建电商平台
Stars: ✭ 46 (+84%)
Mutual labels:  dapp, ethereum-dapp

Oracles POA Network smart contracts

Ethereum smart contracts to manage validators in Oracles POA Network

Oracles POA Network contracts features checklist

ValidatorsStorage and ValidatorsManager contracts.

These are contracts for storing and managing the data for validators.

Description Status
1 Validator's personal data addition is available for valid initial key from ceremony good
2 Validator's personal data addition is forbidden for invalid initial key from ceremony good
3 Validator's personal data addition is forbidden for the same valid initial key from ceremony twice good
4 Validator's personal data addition is forbidden from ceremony, if counter of initial keys, invalidated from ceremony, reached the limit good
5 Validator's personal data addition is available for valid voting key from governance good
6 Validator's personal data addition is forbidden for invalid voting key from governance good
7 Validator's personal data addition is forbidden for the same valid voting key from governance twice good
8 Validator's personal data addition is forbidden from governance, if counter of validators, added from governance, reached the limit good
9 Mining key is added to validators' array after generation of new production keys good
10 Personal data: output zip code is equal to input zip code and it is a bignumber good
11 Personal data: output licenseExpiredAt is equal to input licenseExpiredAt and it is a bignumber good
12 Personal data: output licenseID is equal to input licenseID good
13 Personal data: output fullname is equal to input fullname good
14 Personal data: output streetname is equal to input streetname good
15 Personal data: output state is equal to input state good
16 Personal data: output sisablingDate is empty good

KeysStorage and KeysManager contracts.

These are contracts for storing and managing the data for Oracles POA Network Keys Generation dApp.

Description Status
1 Initial key addition is available for contract owner good
2 Initial key addition fails to add same key twice good
3 Initial key is valid after execution of addInitialKey function good
4 Initial key generation is forbidden for non-owner of contract good
5 It is allowed to add only limited number of initial keys (25) good
6 Production keys generation fails for invalid initial key good
7 Production keys generation fails for used initial key good
8 Licenses counter is incremented by generation of production keys good
9 Initial keys invalidation counter is incremented by generation of production keys good
10 Mining, voting and payout keys are generated after execution createKeys function, and they are valid good
11 Initial key is invalidated immediately after mining/payout/voting keys are created good

BallotsStorage and BallotsManager contracts.

These are contracts for storing and managing the data for Oracles POA Network Governance dApp.

To be done...

Known Ethereum contracts attack vectors checklist

Attack vector Description Status
1 Race Conditions The order of transactions themselves (within a block) is easily subject to manipulation good
1.a Reentrancy Functions can be called repeatedly, before the first invocation of the function was finished good
1.b Cross-function Race Conditions A similar attack using two different functions that share the same state good
1.c Pitfalls in Race Condition Solutions Avoiding of calling functions which call external functions good
2 Timestamp Dependence Timestamp of the block can be manipulated by the miner
3 Integer Overflow and Underflow Usage of unlimited increments can cause such issue good
4 DoS with (Unexpected) Throw Unexpected throw is reached with some contract method for any user, because of malicious user called it before with bad parameters good
5 DoS with Block Gas Limit Block gas limit can be reached, for example, with looping through an array with unknown size and sending send() in a single transaction. Sending should be divided to multiple transactions good

Compiling of Oracles contract

Install dapp cli

  1. git clone https://github.com/oraclesorg/oracles-contract // clone repository

  2. cd oracles-contract/ // move to folder with project

  3. git submodule update --init --recursive // get submodules data

  4. dapp build // compiling of contracts to ./out

Expected result:

./out/Oracles.bin - bytecode of Oracles contract

./out/Oracles.abi - binary interface of Oracles contract

How to run tests

  • Start testrpc process with specific accounts and balances. Use make testrpc command.
  • Run tests with command truffle test.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].