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); }
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); }