Code Monkey home page Code Monkey logo

bots's People

Contributors

brandonseydel avatar stojce avatar tomoaki12345 avatar tomvanbraeckel avatar zackcoburn 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  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

bots's Issues

Messageresult: Did not place order because available volume too low

Hi there, I am trying to create "buy" order (sometimes "sell", it doesn't matter) and I get this: "Received messageresult from EtherDelta API, result is: Did not place order because available volume too low."

I send amount 999999999, but its happens with any amount.

How to fix this ? What am I doing wrong ? Thanks.

pyhton API: where does "42" prefix come from?

tosend = '42["getMarket",{"token":"' + self.token + '","user":"' + self.userAccount + '"}]'

Here it seems like all the method invocations contain a leading "42" number. I didn't find this described in the docs. Where does it come from?
I'm trying to replicate the python client behaviour using scala and akka-http without much luck. I keep ending up with the following response:

0{"sid":"ndWNgwRDSzvcRkioAABg","upgrades":[],"pingInterval":25000,"pingTimeout":60000}
40

cc @tomvanbraeckel

could not getMarket

I have tried the example. everything works fine. However, if i want to getMarket, for example KNC, I got undefined as return. is my implementation wrong?

Mistyped?

Is it right (tokenGive two times)?

        var plainData = new object[] {
            Config.AddressEtherDelta,
            tokenGive,
            amountGet,
            tokenGive,
            amountGive,
            expires,
            orderNonce
        };

Does the dotnet library work at all?

Invalid Signature

Hi,

I have studied the code you use to create a signature :

https://github.com/etherdelta/bots/blob/master/js/service.js

 const sign = (msgToSignIn, privateKeyIn) => {
      const prefixMessage = (msgIn) => {
        let msg = msgIn;
        msg = new Buffer(msg.slice(2), 'hex');
        msg = Buffer.concat([
          new Buffer(`\x19Ethereum Signed Message:\n${msg.length.toString()}`),
          msg]);
        msg = self.web3.sha3(`0x${msg.toString('hex')}`, { encoding: 'hex' });
        msg = new Buffer(msg.slice(2), 'hex');
        return `0x${msg.toString('hex')}`;
      };
      const privateKey = privateKeyIn.substring(0, 2) === '0x' ?
        privateKeyIn.substring(2, privateKeyIn.length) : privateKeyIn;
      const msgToSign = prefixMessage(msgToSignIn);
      try {
        const sig = ethUtil.ecsign(
          new Buffer(msgToSign.slice(2), 'hex'),
          new Buffer(privateKey, 'hex'));
        const r = `0x${sig.r.toString('hex')}`;
        const s = `0x${sig.s.toString('hex')}`;
        const v = sig.v;
        const result = { r, s, v, msg: msgToSign };
        return result;
      } catch (err) {
        throw new Error(err);
      }
    };

With that I have modified the function CreateOrder in the c# Bot, because the signature mechanism didn't work :

internal Order CreateOrder(OrderType orderType, BigInteger expires, BigInteger price, BigInteger amount)
        {
            if (Config.PrivateKey.Length != 64)
                throw new Exception("WARNING: user_wallet_private_key must be a hexadecimal string of 64 characters long");

            var uc = new UnitConversion();

            var amountBigNum = amount;
            var amountBaseBigNum = (amount * price) / uc.ToWei(1);
            var tokenGet = orderType == OrderType.Buy ? Config.Token : ZeroToken;
            var tokenGive = orderType == OrderType.Sell ? Config.Token : ZeroToken;
            var amountGet = orderType == OrderType.Buy ? amountBigNum : amountBaseBigNum;
            var amountGive = orderType == OrderType.Sell ? amountBigNum : amountBaseBigNum;
            var orderNonce = new Random().Next();

            var contractAddr = Web3.ToChecksumAddress(Config.AddressEtherDelta);
            tokenGet = Web3.ToChecksumAddress(tokenGet);
            tokenGive = Web3.ToChecksumAddress(tokenGive);
            var user = Web3.ToChecksumAddress(Config.User);

            /*
            * First Step : Hash the order
            */
            var plainData = new object[]
                            {
                                contractAddr,
                                tokenGet,
                                amountGet,
                                tokenGive,
                                amountGive,
                                expires,
                                orderNonce
                            };


            var prms = new[] {
                new Parameter("address",1),
                new Parameter("address",1),
                new Parameter("uint256",1),
                new Parameter("address",1),
                new Parameter("uint256",1),
                new Parameter("uint256",1),
                new Parameter("uint256",1)
            };

            var pe = new ParametersEncoder();
            var data = pe.EncodeParameters(prms, plainData);

            var ms = new MessageSigner();
            var messageHashBytes = ms.Hash(data);

            /*
             * Second step : create the ethSignaturePrefixx
             */
            var ethSignaturePrefixByteArray = Encoding.ASCII.GetBytes($"\u0019Ethereum Signed Message:\n{messageHashBytes.Length}");

            /*
             * Third Step : add the ethPrefix to the hashBytes and hash again
             */       
            int length = ethSignaturePrefixByteArray.Length + messageHashBytes.Length;
            byte[] sum = new byte[length];

            ethSignaturePrefixByteArray.CopyTo(sum, 0);
            messageHashBytes.CopyTo(sum, ethSignaturePrefixByteArray.Length);

            var signatureBase = ms.Hash(sum);

            /*
             * Fourth Step : Sign the message
             * I have created a custom function CreateStringSignature2
             * CreateStringSignature2 is the same function that CreateStringSignature in Nethereum
             * the only difference is that CreateStringSignature2 is public
            */
            var key = new EthECKey(Config.PrivateKey.HexToByteArray(), true);
            var signature = CreateStringSignature2(key.SignAndCalculateV(signatureBase));
            var ethEcdsa = MessageSigner.ExtractEcdsaSignature(signature);

            /*
             * Fifth Step : Create the order
             */
            var order = new Order
            {
                AmountGet = new HexBigInteger(amountGet),
                AmountGive = new HexBigInteger(amountGive),
                TokenGet = tokenGet,
                TokenGive = tokenGive,
                ContractAddr = contractAddr,
                Expires = expires,
                Nonce = orderNonce,
                User = user,
                V = ethEcdsa.V,
                R = ethEcdsa.R.ToHex(true),
                S = ethEcdsa.S.ToHex(true)
            };

            /*
             * Checking Signature
             */

            /*
             * First Step : Create a Fake WebSocket Message
             */
            var message = new Message
            {
                Event = "message",
                Data = new
                {
                    amountGive = order.AmountGive.Value,
                    tokenGive = order.TokenGive,
                    amountGet = order.AmountGet.Value,
                    tokenGet = order.TokenGet,
                    contractAddr = Config.AddressEtherDelta,
                    expires = order.Expires,
                    nonce = order.Nonce,
                    user = order.User,
                    v = order.V,
                    r = order.R,
                    s = order.S,
                }
            }.ToString();

            /*
             * Second Step : Hash the message
             */
            Message messageParsed = Message.ParseMessage(message);

            var orderChecking = (JObject)messageParsed.Data;

            plainData = new object[]
                            {
                                Web3.ToChecksumAddress(orderChecking["contractAddr"].ToString()),
                                Web3.ToChecksumAddress(orderChecking["tokenGet"].ToString()),
                                new BigInteger((decimal)orderChecking["amountGet"]),
                                Web3.ToChecksumAddress(orderChecking["tokenGive"].ToString()),
                                new BigInteger((decimal)orderChecking["amountGive"]),
                                new BigInteger((decimal)orderChecking["expires"]),
                                new BigInteger((decimal)orderChecking["nonce"]),
                            };


            prms = new[] {
                                 new Parameter("address",1),
                                 new Parameter("address",1),
                                 new Parameter("uint256",1),
                                 new Parameter("address",1),
                                 new Parameter("uint256",1),
                                 new Parameter("uint256",1),
                                 new Parameter("uint256",1)
                             };

            pe = new ParametersEncoder();
            data = pe.EncodeParameters(prms, plainData);

            messageHashBytes = ms.Hash(data);

            /*
             * Third step : create the ethSignaturePrefix
            */
            ethSignaturePrefixByteArray = Encoding.ASCII.GetBytes($"\u0019Ethereum Signed Message:\n{messageHashBytes.Length}");

            /*
            * Fourth Step : add the ethPrefix to the hashBytes and hash again
            */
            length = ethSignaturePrefixByteArray.Length + messageHashBytes.Length;
            sum = new byte[length];

            ethSignaturePrefixByteArray.CopyTo(sum, 0);
            messageHashBytes.CopyTo(sum, ethSignaturePrefixByteArray.Length);

            signatureBase = ms.Hash(sum);

            /*
             * Retreive the public key and compare
             */
            string publicKey = ms.EcRecover(signatureBase, signature);

            if (publicKey.ToLower() != Config.User.ToLower())
                throw new Exception("WARNING: incorect signature");

            return order;
        }

At the end of the function I check if the publickey that I have retreived from the signature matchs my public key and it works. But as soon as I send the message via the websocket I have a error :

Did not place order because available volume too low.

This error means for me that my signature is not correct.

If I remove the prefix I have still a error
I don't understand why. Can you help me ?
Thanks
Jehan

Error while running maker.py and taker.py files

I get the following error while running the maker.py file
Traceback (most recent call last):
File "/home/prajit/web3.py/web3/contract.py", line 748, in call_contract_function
output_data = decode_abi(output_types, return_data)
File "/home/prajit/venv/lib/python3.5/site-packages/eth_abi/abi.py", line 109, in decode_abi
return decoder(stream)
File "/home/prajit/venv/lib/python3.5/site-packages/eth_abi/decoding.py", line 102, in call
return self.decode(stream)
File "/home/prajit/venv/lib/python3.5/site-packages/eth_utils/functional.py", line 22, in inner
return callback(fn(*args, **kwargs))
File "/home/prajit/venv/lib/python3.5/site-packages/eth_abi/decoding.py", line 140, in decode
yield decoder(stream)
File "/home/prajit/venv/lib/python3.5/site-packages/eth_abi/decoding.py", line 102, in call
return self.decode(stream)
File "/home/prajit/venv/lib/python3.5/site-packages/eth_abi/decoding.py", line 165, in decode
raw_data = cls.read_data_from_stream(stream)
File "/home/prajit/venv/lib/python3.5/site-packages/eth_abi/decoding.py", line 247, in read_data_from_stream
len(data),
eth_abi.exceptions.InsufficientDataBytes: Tried to read 32 bytes. Only got 0 bytes

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "maker.py", line 28, in
es.printBalances(token, userAccount)
File "/home/prajit/etherdeltaclientservice.py", line 184, in printBalances
print("Wallet token balance: %.18f tokens" % self.getBalance(token, userAccount))
File "/home/prajit/etherdeltaclientservice.py", line 77, in getBalance
balance = self.contractToken.call().balanceOf(user)
File "/home/prajit/web3.py/web3/contract.py", line 770, in call_contract_function
raise BadFunctionCallOutput(msg) from e
web3.exceptions.BadFunctionCallOutput: Could not decode contract function call balanceOf return data 0x for output_types ['uint256']

This is the error i get while running taker.py file

Traceback (most recent call last):
File "/home/prajit/web3.py/web3/contract.py", line 748, in call_contract_function
output_data = decode_abi(output_types, return_data)
File "/home/prajit/venv/lib/python3.5/site-packages/eth_abi/abi.py", line 109, in decode_abi
return decoder(stream)
File "/home/prajit/venv/lib/python3.5/site-packages/eth_abi/decoding.py", line 102, in call
return self.decode(stream)
File "/home/prajit/venv/lib/python3.5/site-packages/eth_utils/functional.py", line 22, in inner
return callback(fn(*args, **kwargs))
File "/home/prajit/venv/lib/python3.5/site-packages/eth_abi/decoding.py", line 140, in decode
yield decoder(stream)
File "/home/prajit/venv/lib/python3.5/site-packages/eth_abi/decoding.py", line 102, in call
return self.decode(stream)
File "/home/prajit/venv/lib/python3.5/site-packages/eth_abi/decoding.py", line 165, in decode
raw_data = cls.read_data_from_stream(stream)
File "/home/prajit/venv/lib/python3.5/site-packages/eth_abi/decoding.py", line 247, in read_data_from_stream
len(data),
eth_abi.exceptions.InsufficientDataBytes: Tried to read 32 bytes. Only got 0 bytes

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "taker.py", line 24, in
es.printBalances(token, userAccount)
File "/home/prajit/etherdeltaclientservice.py", line 184, in printBalances
print("Wallet token balance: %.18f tokens" % self.getBalance(token, userAccount))
File "/home/prajit/etherdeltaclientservice.py", line 77, in getBalance
balance = self.contractToken.call().balanceOf(user)
File "/home/prajit/web3.py/web3/contract.py", line 770, in call_contract_function
raise BadFunctionCallOutput(msg) from e
web3.exceptions.BadFunctionCallOutput: Could not decode contract function call balanceOf return data 0x for output_types ['uint256']

Basically they are the same errors. Can someone help me figure out whats the problem?

FileNotFoundError: Can't find etherdelta or token.json

As the title says, I can't load the ABI in Python. I followed the install directions (got websocket and web3) but get this error whenever I run the etherdeltaclientservice_test file:

FileNotFoundError: [Errno 2] No such file or directory: '../contracts/etherdelta.json'

What did I miss? Thanks in advance.

"Could not connect to socket" error when trying to call taker.js

Hello, I have faced with and issue that I am unable to connect to socket when trying to use maker.js or taker.js files. Here is the console response:
selection_002
Is there something wrong with socket connection or possibly some issues in node code?

P.S. I have configured proper user address in taker.js and I tried to use different connections for it and result the same - "Could not connect to socket"
selection_003

Yeah! I automatically took a profitable trade last night for the first time :D

Just thought you should know given the journey I've been on trying to get this shit up and running.

Unfortunately (and word of warning for anyone else reading), I thiiiiiiiiink game theory says that this actually can't be a profitable endeavor. Sort of like prisoner's dilemma. I didn't actually make money running last night due to being beaten out by others at a rate that makes the amount I pay in gas fees not sustainable.

Sooo I'm going to take a day of rest, then get started on capturing trade data and working on market making.

@zackcoburn Is your understanding that it's not actually profitable to try and run one of these typo-buying bots? People will just increase their bots gas usage until all the profits disappear. There's always a chance you lose out -- either being a block behind the successful trade, or failing to pay as much in gas as the other bot. Some bots pay 50% fees. I ran with 55% fees as gas last night and had 3 successful trades out of 18. So, on average, running at a loss still. Does that align with your understanding? Any ideas on other clever things I could try to make profits while building up to market making? :)

Ask about my smart contract interacts with ED

@zackcoburn and others, Hi.My smart contract wants to use ED's deposit function but at Ropsten two of my functions faild to action.
Errored: Gas required exceeds block gas limit: 30000000000000. An important gas estimation might also be the sign of a problem in the contract code. Please check loops and be sure you did not sent value to a non payable function (that's also the reason of strong gas estimation).
My code like this:
contract BotForEthdelta
{
//Failed. This function is for my contract deposit to ED.
function ContractToDelta(uint256 v) payable {
EtherDelta(addrEthDelta).deposit.value(v/10000 ether).gas(100)();//addrEthDelta is Ropsten's ED address(I founded it.), 1v= 1eth/10000
//has imported etherdeltatest.sol and my contract's balance is enougth.
}
//Failed. This function is for anyone deposit to ED throught my contract with value setting.
function SenderToDelta() payable {
EtherDelta(addrEthDelta).deposit.value(msg.value).gas(100)();//addrEthDelta is Ropsten's ED address(I founded it.)
}
//Can be run. Since I can not deposit to ED, decoded output ="-"
function BalanceInDelta(address addrEthDelta) returns (uint){
return (EtherDelta(addrEthDelta).balanceOf(0, address(this)));
}
}
BTW: Any test ED address provide for us?

Dotnet taker doesn't work

Hi all and thanks to all that contributed to these bots.

Have you tried the taker dotnet bot? It cant take any trade.
Problems:

  1. function input object lacks the sender address parameter (easy solution)
  2. Cant pass testTrade, due to 0 available volume. I tried to check available volume on multiple orders with below method, everytime i get 0.

var functionInput = new object[] {
order.TokenGet,
order.AmountGet.Value,
order.TokenGive,
order.AmountGive.Value,
order.Expires,
order.Nonce,
order.User,
order.V,
order.R.HexToByteArray(),
order.S.HexToByteArray(),
};
var availableVol = await EtherDeltaContract.GetFunction("availableVolume").CallAsync(functionInput);

Anyone able to find a solution?

Error running"node taker.js"

Getting this error when running "node taker.js". I have added the address and private key on line 9 and 10.

const [walletETH, walletToken, EtherDeltaETH, EtherDeltaToken] = results;
^

SyntaxError: Unexpected token [
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:374:25)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Function.Module.runMain (module.js:442:10)
at startup (node.js:136:18)
at node.js:966:3

Help needed with install

I am running Ubuntu 16.04 LTS. I followed all installation instructions shown here on github of this project. However, when executing the .py files it return me errors regarding missing modules. I then installed them all using pip install but there are too many of them. I installed all prerequisites.

(very) possibly it is me, not understanding python too much. Is there a short overview of the steps from scratch to executing .py files? So like 1. install the zip file, 2. terminal -> enter command x 3. etcetera.

If there is any more input needed, please ask. Thanks.

Buy orders are successful, but sell orders aren't working for me

Hey there, I'm using the python maker and am trying to debug an issue I'm seeing. I have the following account balances for a token:

Wallet account balance: 0.048600659999999997 ETH
Wallet token balance: 0.000000000000000000 tokens
EtherDelta ETH balance: 0.228337000000000012 ETH
EtherDelta token balance: 1700.000000000000000000 tokens

My "buy" order is able to get placed successfully, but my "sell" order gives me the following error:

Received messageresult from EtherDelta API, result is: Did not place order because available volume too low.

Here are the attempted order placements:

Creating 'sell' order for 0.050000000000000003 tokens @ 0.000153527958448218 ETH/token
...
Creating 'buy' order for 542.789301542363887165 tokens @ 0.000092116775068931 ETH/token
...

The resulting orderbook is:

My Order book
-------------
--------
0.00009211677506893083 542.789

I'm lost because I seem to have a sufficient token balance deposited in ED in order to make the sell. Any idea what might be going on? Thanks so much!

[Bug] Copy/Paste Error on maker.py L92

I was reading through the source code for the maker bot, and it seems as though there was a line copied without replacing the variable name. See L92.

    # Create sell orders
    for sellordernr in range(1,sellOrdersToPlace+1):
        price = midmarket + sellordernr * midmarket * marginfactor
        amount = sellVolumeToPlace / sellOrdersToPlace
        ...

    # Create buy orders
    for sellordernr in range(1,sellOrdersToPlace+1):
        price = midmarket - sellordernr * midmarket * marginfactor
        amount = float(buyVolumeToPlace) / float(price) / float(buyOrdersToPlace)
        ...

Suggested fix:

L92-93
-    for sellordernr in range(1,sellOrdersToPlace+1):
-        price = midmarket - sellordernr * midmarket * marginfactor
+    for buyordernr in range(1,buyOrdersToPlace+1):
+        price = midmarket - buyordernr * midmarket * marginfactor

Compare to maker.js

  for (let i = 0; i < sellOrdersToPlace; i += 1) {
    const price = midMarket + ((i + 1) * midMarket * 0.05);
    const amount = service.toEth(sellVolumeToPlace / sellOrdersToPlace, token.decimals);
   ...
  for (let i = 0; i < buyOrdersToPlace; i += 1) {
    const price = midMarket - ((i + 1) * midMarket * 0.05);
    const amount = service.toEth(buyVolumeToPlace / price / buyOrdersToPlace, token.decimals);

bots/python install broken

Following instructions as per README.md in bots/python I get the following compile error:

(venv) aspera@ubuntu:$ uname -a
Linux ubuntu 4.10.0-28-generic #32
16.04.2-Ubuntu SMP Thu Jul 20 10:19:48 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
(venv) aspera@ubuntu:$
(venv) aspera@ubuntu:
$ pip install -r web3.py/requirements-dev.txt
Requirement already satisfied: bumpversion in ./venv/lib/python3.5/site-packages (from -r web3.py/requirements-dev.txt (line 1))
Collecting eth-testrpc>=1.3.3 (from -r web3.py/requirements-dev.txt (line 2))
Using cached eth_testrpc-1.3.3-py3-none-any.whl
Collecting ethereum<2.0,>=1.6.1 (from -r web3.py/requirements-dev.txt (line 3))
Collecting flaky>=3.3.0 (from -r web3.py/requirements-dev.txt (line 4))
Using cached flaky-3.4.0-py2.py3-none-any.whl
Collecting flake8==3.4.1 (from -r web3.py/requirements-dev.txt (line 5))
Using cached flake8-3.4.1-py2.py3-none-any.whl
Collecting hypothesis>=3.31.2 (from -r web3.py/requirements-dev.txt (line 6))
Collecting py-geth==1.10.2 (from -r web3.py/requirements-dev.txt (line 7))
Using cached py_geth-1.10.2-py3-none-any.whl
Collecting pytest>=3.2.1 (from -r web3.py/requirements-dev.txt (line 8))
Using cached pytest-3.3.2-py2.py3-none-any.whl
Collecting pytest-mock==1.* (from -r web3.py/requirements-dev.txt (line 9))
Using cached pytest_mock-1.6.3-py2.py3-none-any.whl
Collecting pytest-pythonpath>=0.3 (from -r web3.py/requirements-dev.txt (line 10))
Collecting pytest-watch==4.* (from -r web3.py/requirements-dev.txt (line 11))
Collecting pytest-xdist==1.* (from -r web3.py/requirements-dev.txt (line 12))
Using cached pytest_xdist-1.21.0-py2.py3-none-any.whl
Collecting tox>=1.8.0 (from -r web3.py/requirements-dev.txt (line 13))
Using cached tox-2.9.1-py2.py3-none-any.whl
Collecting when-changed (from -r web3.py/requirements-dev.txt (line 14))
Collecting Werkzeug>=0.11.10 (from eth-testrpc>=1.3.3->-r web3.py/requirements-dev.txt (line 2))
Using cached Werkzeug-0.14.1-py2.py3-none-any.whl
Requirement already satisfied: json-rpc>=1.10.3 in ./venv/lib/python3.5/site-packages (from eth-testrpc>=1.3.3->-r web3.py/requirements-dev.txt (line 2))
Requirement already satisfied: rlp>=0.4.7 in ./venv/lib/python3.5/site-packages (from eth-testrpc>=1.3.3->-r web3.py/requirements-dev.txt (line 2))
Requirement already satisfied: click>=6.6 in ./venv/lib/python3.5/site-packages (from eth-testrpc>=1.3.3->-r web3.py/requirements-dev.txt (line 2))
Requirement already satisfied: secp256k1 in ./venv/lib/python3.5/site-packages (from ethereum<2.0,>=1.6.1->-r web3.py/requirements-dev.txt (line 3))
Requirement already satisfied: PyYAML in ./venv/lib/python3.5/site-packages (from ethereum<2.0,>=1.6.1->-r web3.py/requirements-dev.txt (line 3))
Requirement already satisfied: pbkdf2 in ./venv/lib/python3.5/site-packages (from ethereum<2.0,>=1.6.1->-r web3.py/requirements-dev.txt (line 3))
Requirement already satisfied: pysha3>=1.0.1 in ./venv/lib/python3.5/site-packages (from ethereum<2.0,>=1.6.1->-r web3.py/requirements-dev.txt (line 3))
Requirement already satisfied: pyethash in ./venv/lib/python3.5/site-packages (from ethereum<2.0,>=1.6.1->-r web3.py/requirements-dev.txt (line 3))
Requirement already satisfied: repoze.lru in ./venv/lib/python3.5/site-packages (from ethereum<2.0,>=1.6.1->-r web3.py/requirements-dev.txt (line 3))
Collecting scrypt (from ethereum<2.0,>=1.6.1->-r web3.py/requirements-dev.txt (line 3))
Using cached scrypt-0.8.0.tar.gz
Requirement already satisfied: bitcoin in ./venv/lib/python3.5/site-packages (from ethereum<2.0,>=1.6.1->-r web3.py/requirements-dev.txt (line 3))
Requirement already satisfied: pycryptodome>=3.3.1 in ./venv/lib/python3.5/site-packages (from ethereum<2.0,>=1.6.1->-r web3.py/requirements-dev.txt (line 3))
Collecting mccabe<0.7.0,>=0.6.0 (from flake8==3.4.1->-r web3.py/requirements-dev.txt (line 5))
Using cached mccabe-0.6.1-py2.py3-none-any.whl
Collecting pyflakes<1.6.0,>=1.5.0 (from flake8==3.4.1->-r web3.py/requirements-dev.txt (line 5))
Using cached pyflakes-1.5.0-py2.py3-none-any.whl
Collecting pycodestyle<2.4.0,>=2.0.0 (from flake8==3.4.1->-r web3.py/requirements-dev.txt (line 5))
Using cached pycodestyle-2.3.1-py2.py3-none-any.whl
Collecting attrs (from hypothesis>=3.31.2->-r web3.py/requirements-dev.txt (line 6))
Using cached attrs-17.4.0-py2.py3-none-any.whl
Collecting coverage (from hypothesis>=3.31.2->-r web3.py/requirements-dev.txt (line 6))
Using cached coverage-4.4.2-cp35-cp35m-manylinux1_x86_64.whl
Collecting semantic-version>=2.6.0 (from py-geth==1.10.2->-r web3.py/requirements-dev.txt (line 7))
Using cached semantic_version-2.6.0-py3-none-any.whl
Requirement already satisfied: six>=1.10.0 in ./venv/lib/python3.5/site-packages (from pytest>=3.2.1->-r web3.py/requirements-dev.txt (line 8))
Collecting pluggy<0.7,>=0.5 (from pytest>=3.2.1->-r web3.py/requirements-dev.txt (line 8))
Requirement already satisfied: setuptools in ./venv/lib/python3.5/site-packages (from pytest>=3.2.1->-r web3.py/requirements-dev.txt (line 8))
Collecting py>=1.5.0 (from pytest>=3.2.1->-r web3.py/requirements-dev.txt (line 8))
Using cached py-1.5.2-py2.py3-none-any.whl
Collecting watchdog>=0.6.0 (from pytest-watch==4.->-r web3.py/requirements-dev.txt (line 11))
Collecting docopt>=0.6.2 (from pytest-watch==4.
->-r web3.py/requirements-dev.txt (line 11))
Collecting colorama>=0.3.3 (from pytest-watch==4.->-r web3.py/requirements-dev.txt (line 11))
Using cached colorama-0.3.9-py2.py3-none-any.whl
Collecting pytest-forked (from pytest-xdist==1.
->-r web3.py/requirements-dev.txt (line 12))
Using cached pytest_forked-0.2-py2.py3-none-any.whl
Collecting execnet>=1.1 (from pytest-xdist==1.->-r web3.py/requirements-dev.txt (line 12))
Using cached execnet-1.5.0-py2.py3-none-any.whl
Collecting virtualenv>=1.11.2; python_version != "3.2" (from tox>=1.8.0->-r web3.py/requirements-dev.txt (line 13))
Using cached virtualenv-15.1.0-py2.py3-none-any.whl
Requirement already satisfied: cffi>=1.3.0 in ./venv/lib/python3.5/site-packages (from secp256k1->ethereum<2.0,>=1.6.1->-r web3.py/requirements-dev.txt (line 3))
Collecting argh>=0.24.1 (from watchdog>=0.6.0->pytest-watch==4.
->-r web3.py/requirements-dev.txt (line 11))
Using cached argh-0.26.2-py2.py3-none-any.whl
Collecting pathtools>=0.1.1 (from watchdog>=0.6.0->pytest-watch==4.->-r web3.py/requirements-dev.txt (line 11))
Collecting apipkg>=1.4 (from execnet>=1.1->pytest-xdist==1.
->-r web3.py/requirements-dev.txt (line 12))
Using cached apipkg-1.4-py2.py3-none-any.whl
Requirement already satisfied: pycparser in ./venv/lib/python3.5/site-packages (from cffi>=1.3.0->secp256k1->ethereum<2.0,>=1.6.1->-r web3.py/requirements-dev.txt (line 3))
Building wheels for collected packages: scrypt
Running setup.py bdist_wheel for scrypt ... error
Complete output from command /home/aspera/venv/bin/python3 -u -c "import setuptools, tokenize;file='/tmp/pip-build-l6fiybcd/scrypt/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" bdist_wheel -d /tmp/tmpug1p9tixpip-wheel- --python-tag cp35:
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.5
copying scrypt.py -> build/lib.linux-x86_64-3.5
running build_ext
building '_scrypt' extension
creating build/temp.linux-x86_64-3.5
creating build/temp.linux-x86_64-3.5/src
creating build/temp.linux-x86_64-3.5/scrypt-1.2.0
creating build/temp.linux-x86_64-3.5/scrypt-1.2.0/lib
creating build/temp.linux-x86_64-3.5/scrypt-1.2.0/lib/crypto
creating build/temp.linux-x86_64-3.5/scrypt-1.2.0/lib/scryptenc
creating build/temp.linux-x86_64-3.5/scrypt-1.2.0/lib/util
creating build/temp.linux-x86_64-3.5/scrypt-1.2.0/libcperciva
creating build/temp.linux-x86_64-3.5/scrypt-1.2.0/libcperciva/alg
creating build/temp.linux-x86_64-3.5/scrypt-1.2.0/libcperciva/crypto
creating build/temp.linux-x86_64-3.5/scrypt-1.2.0/libcperciva/util
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DHAVE_CONFIG_H -DHAVE_CLOCK_GETTIME=1 -DHAVE_LIBRT=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_STRUCT_SYSINFO=1 -DHAVE_STRUCT_SYSINFO_MEM_UNIT=1 -DHAVE_STRUCT_SYSINFO_TOTALRAM=1 -DHAVE_SYSINFO=1 -DHAVE_SYS_SYSINFO_H=1 -D_FILE_OFFSET_BITS=64 -Iscrypt-1.2.0 -Iscrypt-1.2.0/lib -Iscrypt-1.2.0/lib/scryptenc -Iscrypt-1.2.0/lib/crypto -Iscrypt-1.2.0/lib/util -Iscrypt-1.2.0/libcperciva/cpusupport -Iscrypt-1.2.0/libcperciva/alg -Iscrypt-1.2.0/libcperciva/util -Iscrypt-1.2.0/libcperciva/crypto -I/usr/include/python3.5m -I/home/aspera/venv/include/python3.5m -c src/scrypt.c -o build/temp.linux-x86_64-3.5/src/scrypt.o -O2
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DHAVE_CONFIG_H -DHAVE_CLOCK_GETTIME=1 -DHAVE_LIBRT=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_STRUCT_SYSINFO=1 -DHAVE_STRUCT_SYSINFO_MEM_UNIT=1 -DHAVE_STRUCT_SYSINFO_TOTALRAM=1 -DHAVE_SYSINFO=1 -DHAVE_SYS_SYSINFO_H=1 -D_FILE_OFFSET_BITS=64 -Iscrypt-1.2.0 -Iscrypt-1.2.0/lib -Iscrypt-1.2.0/lib/scryptenc -Iscrypt-1.2.0/lib/crypto -Iscrypt-1.2.0/lib/util -Iscrypt-1.2.0/libcperciva/cpusupport -Iscrypt-1.2.0/libcperciva/alg -Iscrypt-1.2.0/libcperciva/util -Iscrypt-1.2.0/libcperciva/crypto -I/usr/include/python3.5m -I/home/aspera/venv/include/python3.5m -c scrypt-1.2.0/lib/crypto/crypto_scrypt_smix_sse2.c -o build/temp.linux-x86_64-3.5/scrypt-1.2.0/lib/crypto/crypto_scrypt_smix_sse2.o -O2
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DHAVE_CONFIG_H -DHAVE_CLOCK_GETTIME=1 -DHAVE_LIBRT=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_STRUCT_SYSINFO=1 -DHAVE_STRUCT_SYSINFO_MEM_UNIT=1 -DHAVE_STRUCT_SYSINFO_TOTALRAM=1 -DHAVE_SYSINFO=1 -DHAVE_SYS_SYSINFO_H=1 -D_FILE_OFFSET_BITS=64 -Iscrypt-1.2.0 -Iscrypt-1.2.0/lib -Iscrypt-1.2.0/lib/scryptenc -Iscrypt-1.2.0/lib/crypto -Iscrypt-1.2.0/lib/util -Iscrypt-1.2.0/libcperciva/cpusupport -Iscrypt-1.2.0/libcperciva/alg -Iscrypt-1.2.0/libcperciva/util -Iscrypt-1.2.0/libcperciva/crypto -I/usr/include/python3.5m -I/home/aspera/venv/include/python3.5m -c scrypt-1.2.0/lib/crypto/crypto_scrypt_smix.c -o build/temp.linux-x86_64-3.5/scrypt-1.2.0/lib/crypto/crypto_scrypt_smix.o -O2
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DHAVE_CONFIG_H -DHAVE_CLOCK_GETTIME=1 -DHAVE_LIBRT=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_STRUCT_SYSINFO=1 -DHAVE_STRUCT_SYSINFO_MEM_UNIT=1 -DHAVE_STRUCT_SYSINFO_TOTALRAM=1 -DHAVE_SYSINFO=1 -DHAVE_SYS_SYSINFO_H=1 -D_FILE_OFFSET_BITS=64 -Iscrypt-1.2.0 -Iscrypt-1.2.0/lib -Iscrypt-1.2.0/lib/scryptenc -Iscrypt-1.2.0/lib/crypto -Iscrypt-1.2.0/lib/util -Iscrypt-1.2.0/libcperciva/cpusupport -Iscrypt-1.2.0/libcperciva/alg -Iscrypt-1.2.0/libcperciva/util -Iscrypt-1.2.0/libcperciva/crypto -I/usr/include/python3.5m -I/home/aspera/venv/include/python3.5m -c scrypt-1.2.0/lib/crypto/crypto_scrypt.c -o build/temp.linux-x86_64-3.5/scrypt-1.2.0/lib/crypto/crypto_scrypt.o -O2
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DHAVE_CONFIG_H -DHAVE_CLOCK_GETTIME=1 -DHAVE_LIBRT=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_STRUCT_SYSINFO=1 -DHAVE_STRUCT_SYSINFO_MEM_UNIT=1 -DHAVE_STRUCT_SYSINFO_TOTALRAM=1 -DHAVE_SYSINFO=1 -DHAVE_SYS_SYSINFO_H=1 -D_FILE_OFFSET_BITS=64 -Iscrypt-1.2.0 -Iscrypt-1.2.0/lib -Iscrypt-1.2.0/lib/scryptenc -Iscrypt-1.2.0/lib/crypto -Iscrypt-1.2.0/lib/util -Iscrypt-1.2.0/libcperciva/cpusupport -Iscrypt-1.2.0/libcperciva/alg -Iscrypt-1.2.0/libcperciva/util -Iscrypt-1.2.0/libcperciva/crypto -I/usr/include/python3.5m -I/home/aspera/venv/include/python3.5m -c scrypt-1.2.0/lib/scryptenc/scryptenc.c -o build/temp.linux-x86_64-3.5/scrypt-1.2.0/lib/scryptenc/scryptenc.o -O2
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DHAVE_CONFIG_H -DHAVE_CLOCK_GETTIME=1 -DHAVE_LIBRT=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_STRUCT_SYSINFO=1 -DHAVE_STRUCT_SYSINFO_MEM_UNIT=1 -DHAVE_STRUCT_SYSINFO_TOTALRAM=1 -DHAVE_SYSINFO=1 -DHAVE_SYS_SYSINFO_H=1 -D_FILE_OFFSET_BITS=64 -Iscrypt-1.2.0 -Iscrypt-1.2.0/lib -Iscrypt-1.2.0/lib/scryptenc -Iscrypt-1.2.0/lib/crypto -Iscrypt-1.2.0/lib/util -Iscrypt-1.2.0/libcperciva/cpusupport -Iscrypt-1.2.0/libcperciva/alg -Iscrypt-1.2.0/libcperciva/util -Iscrypt-1.2.0/libcperciva/crypto -I/usr/include/python3.5m -I/home/aspera/venv/include/python3.5m -c scrypt-1.2.0/lib/scryptenc/scryptenc_cpuperf.c -o build/temp.linux-x86_64-3.5/scrypt-1.2.0/lib/scryptenc/scryptenc_cpuperf.o -O2
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DHAVE_CONFIG_H -DHAVE_CLOCK_GETTIME=1 -DHAVE_LIBRT=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_STRUCT_SYSINFO=1 -DHAVE_STRUCT_SYSINFO_MEM_UNIT=1 -DHAVE_STRUCT_SYSINFO_TOTALRAM=1 -DHAVE_SYSINFO=1 -DHAVE_SYS_SYSINFO_H=1 -D_FILE_OFFSET_BITS=64 -Iscrypt-1.2.0 -Iscrypt-1.2.0/lib -Iscrypt-1.2.0/lib/scryptenc -Iscrypt-1.2.0/lib/crypto -Iscrypt-1.2.0/lib/util -Iscrypt-1.2.0/libcperciva/cpusupport -Iscrypt-1.2.0/libcperciva/alg -Iscrypt-1.2.0/libcperciva/util -Iscrypt-1.2.0/libcperciva/crypto -I/usr/include/python3.5m -I/home/aspera/venv/include/python3.5m -c scrypt-1.2.0/lib/util/memlimit.c -o build/temp.linux-x86_64-3.5/scrypt-1.2.0/lib/util/memlimit.o -O2
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DHAVE_CONFIG_H -DHAVE_CLOCK_GETTIME=1 -DHAVE_LIBRT=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_STRUCT_SYSINFO=1 -DHAVE_STRUCT_SYSINFO_MEM_UNIT=1 -DHAVE_STRUCT_SYSINFO_TOTALRAM=1 -DHAVE_SYSINFO=1 -DHAVE_SYS_SYSINFO_H=1 -D_FILE_OFFSET_BITS=64 -Iscrypt-1.2.0 -Iscrypt-1.2.0/lib -Iscrypt-1.2.0/lib/scryptenc -Iscrypt-1.2.0/lib/crypto -Iscrypt-1.2.0/lib/util -Iscrypt-1.2.0/libcperciva/cpusupport -Iscrypt-1.2.0/libcperciva/alg -Iscrypt-1.2.0/libcperciva/util -Iscrypt-1.2.0/libcperciva/crypto -I/usr/include/python3.5m -I/home/aspera/venv/include/python3.5m -c scrypt-1.2.0/libcperciva/alg/sha256.c -o build/temp.linux-x86_64-3.5/scrypt-1.2.0/libcperciva/alg/sha256.o -O2
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DHAVE_CONFIG_H -DHAVE_CLOCK_GETTIME=1 -DHAVE_LIBRT=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_STRUCT_SYSINFO=1 -DHAVE_STRUCT_SYSINFO_MEM_UNIT=1 -DHAVE_STRUCT_SYSINFO_TOTALRAM=1 -DHAVE_SYSINFO=1 -DHAVE_SYS_SYSINFO_H=1 -D_FILE_OFFSET_BITS=64 -Iscrypt-1.2.0 -Iscrypt-1.2.0/lib -Iscrypt-1.2.0/lib/scryptenc -Iscrypt-1.2.0/lib/crypto -Iscrypt-1.2.0/lib/util -Iscrypt-1.2.0/libcperciva/cpusupport -Iscrypt-1.2.0/libcperciva/alg -Iscrypt-1.2.0/libcperciva/util -Iscrypt-1.2.0/libcperciva/crypto -I/usr/include/python3.5m -I/home/aspera/venv/include/python3.5m -c scrypt-1.2.0/libcperciva/crypto/crypto_aes_aesni.c -o build/temp.linux-x86_64-3.5/scrypt-1.2.0/libcperciva/crypto/crypto_aes_aesni.o -O2
**x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DHAVE_CONFIG_H -DHAVE_CLOCK_GETTIME=1 -DHAVE_LIBRT=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_STRUCT_SYSINFO=1 -DHAVE_STRUCT_SYSINFO_MEM_UNIT=1 -DHAVE_STRUCT_SYSINFO_TOTALRAM=1 -DHAVE_SYSINFO=1 -DHAVE_SYS_SYSINFO_H=1 -D_FILE_OFFSET_BITS=64 -Iscrypt-1.2.0 -Iscrypt-1.2.0/lib -Iscrypt-1.2.0/lib/scryptenc -Iscrypt-1.2.0/lib/crypto -Iscrypt-1.2.0/lib/util -Iscrypt-1.2.0/libcperciva/cpusupport -Iscrypt-1.2.0/libcperciva/alg -Iscrypt-1.2.0/libcperciva/util -Iscrypt-1.2.0/libcperciva/crypto -I/usr/include/python3.5m -I/home/aspera/venv/include/python3.5m -c scrypt-1.2.0/libcperciva/crypto/crypto_aes.c -o build/temp.linux-x86_64-3.5/scrypt-1.2.0/libcperciva/crypto/crypto_aes.o -O2
scrypt-1.2.0/libcperciva/crypto/crypto_aes.c:6:25: fatal error: openssl/aes.h: No such file or directory
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1


Failed building wheel for scrypt
**
Running setup.py clean for scrypt
Failed to build scrypt
Installing collected packages: Werkzeug, scrypt, ethereum, eth-testrpc, flaky, mccabe, pyflakes, pycodestyle, flake8, attrs, coverage, hypothesis, semantic-version, py-geth, pluggy, py, pytest, pytest-mock, pytest-pythonpath, argh, pathtools, watchdog, docopt, colorama, pytest-watch, pytest-forked, apipkg, execnet, pytest-xdist, virtualenv, tox, when-changed
Running setup.py install for scrypt ... error
Complete output from command /home/aspera/venv/bin/python3 -u -c "import setuptools, tokenize;file='/tmp/pip-build-l6fiybcd/scrypt/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /tmp/pip-vt3evm98-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/aspera/venv/include/site/python3.5/scrypt:
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.5
copying scrypt.py -> build/lib.linux-x86_64-3.5
running build_ext
building '_scrypt' extension
creating build/temp.linux-x86_64-3.5
creating build/temp.linux-x86_64-3.5/src
creating build/temp.linux-x86_64-3.5/scrypt-1.2.0
creating build/temp.linux-x86_64-3.5/scrypt-1.2.0/lib
creating build/temp.linux-x86_64-3.5/scrypt-1.2.0/lib/crypto
creating build/temp.linux-x86_64-3.5/scrypt-1.2.0/lib/scryptenc
creating build/temp.linux-x86_64-3.5/scrypt-1.2.0/lib/util
creating build/temp.linux-x86_64-3.5/scrypt-1.2.0/libcperciva
creating build/temp.linux-x86_64-3.5/scrypt-1.2.0/libcperciva/alg
creating build/temp.linux-x86_64-3.5/scrypt-1.2.0/libcperciva/crypto
creating build/temp.linux-x86_64-3.5/scrypt-1.2.0/libcperciva/util
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DHAVE_CONFIG_H -DHAVE_CLOCK_GETTIME=1 -DHAVE_LIBRT=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_STRUCT_SYSINFO=1 -DHAVE_STRUCT_SYSINFO_MEM_UNIT=1 -DHAVE_STRUCT_SYSINFO_TOTALRAM=1 -DHAVE_SYSINFO=1 -DHAVE_SYS_SYSINFO_H=1 -D_FILE_OFFSET_BITS=64 -Iscrypt-1.2.0 -Iscrypt-1.2.0/lib -Iscrypt-1.2.0/lib/scryptenc -Iscrypt-1.2.0/lib/crypto -Iscrypt-1.2.0/lib/util -Iscrypt-1.2.0/libcperciva/cpusupport -Iscrypt-1.2.0/libcperciva/alg -Iscrypt-1.2.0/libcperciva/util -Iscrypt-1.2.0/libcperciva/crypto -I/usr/include/python3.5m -I/home/aspera/venv/include/python3.5m -c src/scrypt.c -o build/temp.linux-x86_64-3.5/src/scrypt.o -O2
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DHAVE_CONFIG_H -DHAVE_CLOCK_GETTIME=1 -DHAVE_LIBRT=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_STRUCT_SYSINFO=1 -DHAVE_STRUCT_SYSINFO_MEM_UNIT=1 -DHAVE_STRUCT_SYSINFO_TOTALRAM=1 -DHAVE_SYSINFO=1 -DHAVE_SYS_SYSINFO_H=1 -D_FILE_OFFSET_BITS=64 -Iscrypt-1.2.0 -Iscrypt-1.2.0/lib -Iscrypt-1.2.0/lib/scryptenc -Iscrypt-1.2.0/lib/crypto -Iscrypt-1.2.0/lib/util -Iscrypt-1.2.0/libcperciva/cpusupport -Iscrypt-1.2.0/libcperciva/alg -Iscrypt-1.2.0/libcperciva/util -Iscrypt-1.2.0/libcperciva/crypto -I/usr/include/python3.5m -I/home/aspera/venv/include/python3.5m -c scrypt-1.2.0/lib/crypto/crypto_scrypt_smix_sse2.c -o build/temp.linux-x86_64-3.5/scrypt-1.2.0/lib/crypto/crypto_scrypt_smix_sse2.o -O2
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DHAVE_CONFIG_H -DHAVE_CLOCK_GETTIME=1 -DHAVE_LIBRT=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_STRUCT_SYSINFO=1 -DHAVE_STRUCT_SYSINFO_MEM_UNIT=1 -DHAVE_STRUCT_SYSINFO_TOTALRAM=1 -DHAVE_SYSINFO=1 -DHAVE_SYS_SYSINFO_H=1 -D_FILE_OFFSET_BITS=64 -Iscrypt-1.2.0 -Iscrypt-1.2.0/lib -Iscrypt-1.2.0/lib/scryptenc -Iscrypt-1.2.0/lib/crypto -Iscrypt-1.2.0/lib/util -Iscrypt-1.2.0/libcperciva/cpusupport -Iscrypt-1.2.0/libcperciva/alg -Iscrypt-1.2.0/libcperciva/util -Iscrypt-1.2.0/libcperciva/crypto -I/usr/include/python3.5m -I/home/aspera/venv/include/python3.5m -c scrypt-1.2.0/lib/crypto/crypto_scrypt_smix.c -o build/temp.linux-x86_64-3.5/scrypt-1.2.0/lib/crypto/crypto_scrypt_smix.o -O2
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DHAVE_CONFIG_H -DHAVE_CLOCK_GETTIME=1 -DHAVE_LIBRT=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_STRUCT_SYSINFO=1 -DHAVE_STRUCT_SYSINFO_MEM_UNIT=1 -DHAVE_STRUCT_SYSINFO_TOTALRAM=1 -DHAVE_SYSINFO=1 -DHAVE_SYS_SYSINFO_H=1 -D_FILE_OFFSET_BITS=64 -Iscrypt-1.2.0 -Iscrypt-1.2.0/lib -Iscrypt-1.2.0/lib/scryptenc -Iscrypt-1.2.0/lib/crypto -Iscrypt-1.2.0/lib/util -Iscrypt-1.2.0/libcperciva/cpusupport -Iscrypt-1.2.0/libcperciva/alg -Iscrypt-1.2.0/libcperciva/util -Iscrypt-1.2.0/libcperciva/crypto -I/usr/include/python3.5m -I/home/aspera/venv/include/python3.5m -c scrypt-1.2.0/lib/crypto/crypto_scrypt.c -o build/temp.linux-x86_64-3.5/scrypt-1.2.0/lib/crypto/crypto_scrypt.o -O2
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DHAVE_CONFIG_H -DHAVE_CLOCK_GETTIME=1 -DHAVE_LIBRT=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_STRUCT_SYSINFO=1 -DHAVE_STRUCT_SYSINFO_MEM_UNIT=1 -DHAVE_STRUCT_SYSINFO_TOTALRAM=1 -DHAVE_SYSINFO=1 -DHAVE_SYS_SYSINFO_H=1 -D_FILE_OFFSET_BITS=64 -Iscrypt-1.2.0 -Iscrypt-1.2.0/lib -Iscrypt-1.2.0/lib/scryptenc -Iscrypt-1.2.0/lib/crypto -Iscrypt-1.2.0/lib/util -Iscrypt-1.2.0/libcperciva/cpusupport -Iscrypt-1.2.0/libcperciva/alg -Iscrypt-1.2.0/libcperciva/util -Iscrypt-1.2.0/libcperciva/crypto -I/usr/include/python3.5m -I/home/aspera/venv/include/python3.5m -c scrypt-1.2.0/lib/scryptenc/scryptenc.c -o build/temp.linux-x86_64-3.5/scrypt-1.2.0/lib/scryptenc/scryptenc.o -O2
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DHAVE_CONFIG_H -DHAVE_CLOCK_GETTIME=1 -DHAVE_LIBRT=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_STRUCT_SYSINFO=1 -DHAVE_STRUCT_SYSINFO_MEM_UNIT=1 -DHAVE_STRUCT_SYSINFO_TOTALRAM=1 -DHAVE_SYSINFO=1 -DHAVE_SYS_SYSINFO_H=1 -D_FILE_OFFSET_BITS=64 -Iscrypt-1.2.0 -Iscrypt-1.2.0/lib -Iscrypt-1.2.0/lib/scryptenc -Iscrypt-1.2.0/lib/crypto -Iscrypt-1.2.0/lib/util -Iscrypt-1.2.0/libcperciva/cpusupport -Iscrypt-1.2.0/libcperciva/alg -Iscrypt-1.2.0/libcperciva/util -Iscrypt-1.2.0/libcperciva/crypto -I/usr/include/python3.5m -I/home/aspera/venv/include/python3.5m -c scrypt-1.2.0/lib/scryptenc/scryptenc_cpuperf.c -o build/temp.linux-x86_64-3.5/scrypt-1.2.0/lib/scryptenc/scryptenc_cpuperf.o -O2
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DHAVE_CONFIG_H -DHAVE_CLOCK_GETTIME=1 -DHAVE_LIBRT=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_STRUCT_SYSINFO=1 -DHAVE_STRUCT_SYSINFO_MEM_UNIT=1 -DHAVE_STRUCT_SYSINFO_TOTALRAM=1 -DHAVE_SYSINFO=1 -DHAVE_SYS_SYSINFO_H=1 -D_FILE_OFFSET_BITS=64 -Iscrypt-1.2.0 -Iscrypt-1.2.0/lib -Iscrypt-1.2.0/lib/scryptenc -Iscrypt-1.2.0/lib/crypto -Iscrypt-1.2.0/lib/util -Iscrypt-1.2.0/libcperciva/cpusupport -Iscrypt-1.2.0/libcperciva/alg -Iscrypt-1.2.0/libcperciva/util -Iscrypt-1.2.0/libcperciva/crypto -I/usr/include/python3.5m -I/home/aspera/venv/include/python3.5m -c scrypt-1.2.0/lib/util/memlimit.c -o build/temp.linux-x86_64-3.5/scrypt-1.2.0/lib/util/memlimit.o -O2
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DHAVE_CONFIG_H -DHAVE_CLOCK_GETTIME=1 -DHAVE_LIBRT=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_STRUCT_SYSINFO=1 -DHAVE_STRUCT_SYSINFO_MEM_UNIT=1 -DHAVE_STRUCT_SYSINFO_TOTALRAM=1 -DHAVE_SYSINFO=1 -DHAVE_SYS_SYSINFO_H=1 -D_FILE_OFFSET_BITS=64 -Iscrypt-1.2.0 -Iscrypt-1.2.0/lib -Iscrypt-1.2.0/lib/scryptenc -Iscrypt-1.2.0/lib/crypto -Iscrypt-1.2.0/lib/util -Iscrypt-1.2.0/libcperciva/cpusupport -Iscrypt-1.2.0/libcperciva/alg -Iscrypt-1.2.0/libcperciva/util -Iscrypt-1.2.0/libcperciva/crypto -I/usr/include/python3.5m -I/home/aspera/venv/include/python3.5m -c scrypt-1.2.0/libcperciva/alg/sha256.c -o build/temp.linux-x86_64-3.5/scrypt-1.2.0/libcperciva/alg/sha256.o -O2
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DHAVE_CONFIG_H -DHAVE_CLOCK_GETTIME=1 -DHAVE_LIBRT=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_STRUCT_SYSINFO=1 -DHAVE_STRUCT_SYSINFO_MEM_UNIT=1 -DHAVE_STRUCT_SYSINFO_TOTALRAM=1 -DHAVE_SYSINFO=1 -DHAVE_SYS_SYSINFO_H=1 -D_FILE_OFFSET_BITS=64 -Iscrypt-1.2.0 -Iscrypt-1.2.0/lib -Iscrypt-1.2.0/lib/scryptenc -Iscrypt-1.2.0/lib/crypto -Iscrypt-1.2.0/lib/util -Iscrypt-1.2.0/libcperciva/cpusupport -Iscrypt-1.2.0/libcperciva/alg -Iscrypt-1.2.0/libcperciva/util -Iscrypt-1.2.0/libcperciva/crypto -I/usr/include/python3.5m -I/home/aspera/venv/include/python3.5m -c scrypt-1.2.0/libcperciva/crypto/crypto_aes_aesni.c -o build/temp.linux-x86_64-3.5/scrypt-1.2.0/libcperciva/crypto/crypto_aes_aesni.o -O2
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DHAVE_CONFIG_H -DHAVE_CLOCK_GETTIME=1 -DHAVE_LIBRT=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_STRUCT_SYSINFO=1 -DHAVE_STRUCT_SYSINFO_MEM_UNIT=1 -DHAVE_STRUCT_SYSINFO_TOTALRAM=1 -DHAVE_SYSINFO=1 -DHAVE_SYS_SYSINFO_H=1 -D_FILE_OFFSET_BITS=64 -Iscrypt-1.2.0 -Iscrypt-1.2.0/lib -Iscrypt-1.2.0/lib/scryptenc -Iscrypt-1.2.0/lib/crypto -Iscrypt-1.2.0/lib/util -Iscrypt-1.2.0/libcperciva/cpusupport -Iscrypt-1.2.0/libcperciva/alg -Iscrypt-1.2.0/libcperciva/util -Iscrypt-1.2.0/libcperciva/crypto -I/usr/include/python3.5m -I/home/aspera/venv/include/python3.5m -c scrypt-1.2.0/libcperciva/crypto/crypto_aes.c -o build/temp.linux-x86_64-3.5/scrypt-1.2.0/libcperciva/crypto/crypto_aes.o -O2
scrypt-1.2.0/libcperciva/crypto/crypto_aes.c:6:25: fatal error: openssl/aes.h: No such file or directory
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

----------------------------------------

Command "/home/aspera/venv/bin/python3 -u -c "import setuptools, tokenize;file='/tmp/pip-build-l6fiybcd/scrypt/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /tmp/pip-vt3evm98-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/aspera/venv/include/site/python3.5/scrypt" failed with error code 1 in /tmp/pip-build-l6fiybcd/scrypt/
(venv) aspera@ubuntu:~$

Order will fail

I have 0.001 ETH (maybe less actually than displayed) on Wallet and 0.009 ETH on EtherDelta. I try to buy 0.06 PPT for 0.0010200000000000012 ETH using dotnet library, but TakeOrder throw exception "Order will fail". Why?

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.