Giter Club home page Giter Club logo

robonomics_contracts's People

Contributors

akru avatar ensrationis avatar evgenrad81 avatar gitter-badger avatar ibarabash avatar ryazanov-dmitry avatar vol4tim avatar vourhey avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

robonomics_contracts's Issues

XRT deposit to Main XRT adress

Good day,

I made a mistake to withdraw funds from Bilaxy Exchange to your adres.

Txid :

0xc5b05c9fea9569f5e9ca7cfe69e08e149dce0cd6c2bfcb3e4201b0f03875d599

from :

0x253ff8d3b639243e2c9c4a36a4c461aa7fc5fe0d

Number of XRT coins : 21.892052

Can you guys help me out?

Thanks in advance,

Roy

Solidity 0.4.* migration

Currenly Core compiled with solc 0.2, at the first Core it's not compatible with solc 0.4 by code syntax features.

Lighthouse wars prevention

The problem

In current state of network is possible scenario below:

  1. Some trustful lighthouse with big stake and good infrastructure catch robonomics transactions with a high lighthouse fees.
  2. Third party person connect to lighthouse channel as a sniffer, grab signed messages, match by self, settle via self created tiny stake lighthouse and collect lighthouse fees.

Current message format have no tool to prevent this scenario.


Proposal

Extend messages with special field lighthouse that fix message settle to only one lighthouse. The message can be encoded as lighthouse name (on ENS) or as lighthouse address (raw Ethereum address). For early implementation raw address is enough because in other case all message fields like a validator or token should be corce to namehash format.


Affected

Lot is Mortal

Сделать объекты Lot и Market смертным. А также пересобрать Market Builder в тестовой и основной сетях.

Transaction based gas price estimation

The problem

Currently used constant approach to gas price. But realistic value of gas price is very important for gas based token emission.


Proposal

Make gas price estimator based on tx.gasprice filtered by moving average(SMA, EMA, etc.).


Affected

Create ACL system

Access control list system is alternative for onlyOwner security check. We should discuss that and create model for ACL system.

option in withdrew function for onetime mint extra tokens

В функцию вывода добавить возможность сделать так, что бы при выводе генерировались и отправлялись на кошелек фонда дополнительные токены. Например мы хотим 26% от общих выпущенных токенов отправить фонду. Значит выпускаем дополнительно totalsold/76*26

Error, when installing libraries or contract on testrpc

$ testrpc -v
EthereumJS TestRPC v3.0.0
$ node -v
v6.9.1
$ npm -v
4.0.2

Mikes-MacBook-Air-2:core mikefluff$ ./aira_deploy.js -O -C AddressList --library
Compile...
(compiled)
/Volumes/USB/prog/Ethereum/core/node_modules/solc/soljson.js:1
(function (exports, require, module, __filename, __dirname) { var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=function print(x){process["stdout"].write(x+"\n")};if(!Module["printErr"])Module["printErr"]=function printErr(x){process["stderr"].write(x+"\n")};var nodeFS=require("fs");var nodePath=require("path");Module["read"]=function read(filename,binary){filename=nodePath"normalize";var ret=nodeFS"readFileSync"

TypeError: cb is not a function
at /Volumes/USB/prog/Ethereum/core/lib/compiler.js:70:17
at /Volumes/USB/prog/Ethereum/core/node_modules/hash-files/lib/hash.js:69:4
at /Volumes/USB/prog/Ethereum/core/node_modules/async/lib/async.js:726:13
at /Volumes/USB/prog/Ethereum/core/node_modules/async/lib/async.js:52:16
at replenish (/Volumes/USB/prog/Ethereum/core/node_modules/async/lib/async.js:306:28)
at /Volumes/USB/prog/Ethereum/core/node_modules/async/lib/async.js:326:29
at /Volumes/USB/prog/Ethereum/core/node_modules/async/lib/async.js:44:16
at /Volumes/USB/prog/Ethereum/core/node_modules/async/lib/async.js:723:17
at /Volumes/USB/prog/Ethereum/core/node_modules/async/lib/async.js:167:37
at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:445:3)

Mikes-MacBook-Air-2:core mikefluff$ ./aira_deploy.sh -C Core -A '["MyDAO", "My first DAO"]'
Compile...
(cache)

Contract: Core
WARN: No libs loaded!
Binary size: 6.0859375K

Error: VM Exception while processing transaction: out of gas
at Object.InvalidResponse (/Volumes/USB/prog/Ethereum/core/node_modules/web3/lib/web3/errors.js:35:16)
at /Volumes/USB/prog/Ethereum/core/node_modules/web3/lib/web3/requestmanager.js:86:36
at request.onreadystatechange (/Volumes/USB/prog/Ethereum/core/node_modules/web3/lib/web3/httpprovider.js:110:13)
at dispatchEvent (/Volumes/USB/prog/Ethereum/core/node_modules/xmlhttprequest/lib/XMLHttpRequest.js:591:25)
at setState (/Volumes/USB/prog/Ethereum/core/node_modules/xmlhttprequest/lib/XMLHttpRequest.js:610:14)
at IncomingMessage. (/Volumes/USB/prog/Ethereum/core/node_modules/xmlhttprequest/lib/XMLHttpRequest.js:447:13)
at emitNone (events.js:91:20)
at IncomingMessage.emit (events.js:185:7)
at endReadableNT (_stream_readable.js:974:12)
at _combinedTickCallback (internal/process/next_tick.js:74:11)

Message hash collision

The problem

It’s possible to create and use in liability opening the message from different senders and the same ‘messageHash’. This collision is can be used for rewriting messages by attacker.

Solution
Use sender address in message hashing scheme.

Affected

Robonomics validator interface

This is part of #49.

The problem

Observing network is a concept from Robonomics Whitepaper p5.5. Observing network can have very very different implementation. But interface for them should be strictly specified.

Basically for liability contract only one thing is important: the decision of observing network around liability result. For this reason I propose validator contract interface below.

/**
 * @dev Observing network contract interface
 */
contract IValidator {
    /**
     * @dev Get decision of liability, is used by liability contract only
     * @notice Transaction will fail when have no decision
     */
    function decision() external returns (bool);
}

Method decision should be called from liability smart contract in finalization procedure and result of this is decision around liability result report: observer agree or not agree with this result.

NEW ETHEREUM TOKEN STANDARD ERC777

#ERC777 standard includes new #Ethereum functions, but, it goes a lot further and implements some very innovative features and implements an extensive range of transaction-handling mechanisms that #ERC20 users cannot enjoy...

Getter for size of array

При работе с контрактом через web3js есть проблема с массивами.
Хорошо-бы добавить геттер, который будет возвращать размер массива.
Сейчас возникла проблема с массивом group из контракта ACLStorage.sol

Optimize gas estimation

The Problem

Currently gas estimation isn't so effective. Moving gas estimation to Lighthouse contract can be more effective because it closer to transaction entry point in most cases.

Changes

  • Lighthouse: added startGasEstimation modifier
  • LiabilityFactory: added endGasEstimation modifier
  • LiabilityFactory: added liabilityCreated and liabilityFinalized hooks for gas accounting
  • LiabilityFactory: gasUtilizing -> gasConsumed

Affected

Market.sol: get lot data function

@akru how I can view lot data without adding lot contract in watch contract? - probably no way :) Can you create function for viewing lot data with market or agent or regulator contract?

Core.sol: removeModule problem

"Aira BuilderDAO" in "DAO factory" at address "0xa76422591378d14fb6d94c9da48a42498d8b51da" create DAO in that romoveModule method not work.

Order cancellation function

When #52 will implemented is possible to add order cancellation method to factory contract. Typically cancel can be called by order sender when sender wants to force disallow liability creation with him message. Currently we have no method to force close order excluding deadline, but it's motive to spam network with too short lifetime messages.

p2p random generator contract

необходимо имплементировать вот этот протокол https://github.com/Matchpool/contracts/blob/master/contracts/Contribution.sol

Вкратце, что я понял:
1)игрок отправляет seed
2) держатель банкрола (не контракт) забирает seed из контракта
3) подписывает ее закрытым ключем (я проверил метод в JS ethUtil.ecsign из EthereumJS) и отправляет эту подпись обратно в контракт (и дополнительные данные r,s,v для валидации подписи)
4) контракт проверяет, что хеш прислал именно держателем банкрола, и что подписан именно seed клиента через функцию ecrecover
5) собно полученный хеш пропускаем через uint(hash)%maxnum; и получается число от 0 до maxnum.

пример https://gist.github.com/noxonsu/82eff25bf0c537dce1a331b0b8863137

Introducing validator set

Smart contract with set of validator is more flexible way to implement validators network.

Proposal

IValidator should implement special method that returns true when argument address is in validator set.
Any address from validator set can finalize liability when validator contract is set for liability contract.

Robonomics blockchain interface

The problem

Currently Robonomics blockchain infrastructure isn't have strict specification. It's mean that it have a big changes between releases. The main aim of this proposal is making Robonomics smart contracts more stable.

The approach providen here is making Robonomics smart contract interfaces and architecture reference. Robonomics blockchain interfaces is a set of solidity contracts that contains methods and states of smart contract as minimal as it possible. It placed at robonomics_contracts/contracts/robonomics/interface. All things of this should be documented so well and should not be changed without necessity.

Affected

Scalable Market

Current flat implementation of Market contract isn't scalable and have strong performance issues.
In my opinion is needed to prepare scalable market requirements and model.

The Blockchain Congress builder owner not is transaction sender

Desc: I was tried to use Congress builder twice with null in field _client and fill this field with my address, but owner and first congress member was "The Blockchain Congress builder "

Builded contract example: 0xb9accd738d7b9ef0a04d2a4f24833f7a9b1b4e9e
Type: The Blockchain Congress

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.