Example #1
0
        internal async Task <TransactionReceipt> TakeOrder(Order order, BigInteger amount)
        {
            var funvtionInput = 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(),
                amount
            };

            var fnTest   = EtherDeltaContract.GetFunction("testTrade");
            var willPass = await fnTest.CallAsync <bool>(funvtionInput);

            if (!willPass)
            {
                Log("Order will fail");
                throw new Exception("Order will fail");
            }

            var fnTrade = EtherDeltaContract.GetFunction("trade");
            var data    = fnTrade.GetData(funvtionInput);

            var txCount = await Web3.Eth.Transactions.GetTransactionCount.SendRequestAsync(Config.User);

            var encoded = Web3.OfflineTransactionSigner.SignTransaction(Config.PrivateKey, Config.AddressEtherDelta, amount,
                                                                        txCount, Config.GasPrice, Config.GasLimit, data);

            var txId = await Web3.Eth.Transactions.SendRawTransaction.SendRequestAsync(encoded.EnsureHexPrefix());

            var receipt = await Web3.Eth.Transactions.GetTransactionReceipt.SendRequestAsync(txId);

            return(receipt);
        }
Example #2
0
        internal async Task <BigInteger> GetEtherDeltaBalance(string token, string user)
        {
            BigInteger balance = 0;

            try
            {
                if (token == "ETH")
                {
                    token = ZeroToken;
                }

                var tokenFunction = EtherDeltaContract.GetFunction("balanceOf");
                balance = await tokenFunction.CallAsync <BigInteger>(token, user);

                Log("ETHER DELTA - GET BALANCE");
            }
            catch (Exception ex)
            {
                Log(ex.Message);
            }

            return(balance);
        }