It was the Bitcointalk forum that inspired us to create Bitcointalksearch.org - Bitcointalk is an excellent site that should be the default page for anybody dealing in cryptocurrency, since it is a virtual gold-mine of data. However, our experience and user feedback led us create our site; Bitcointalk's search is slow, and difficult to get the results you need, because you need to log in first to find anything useful - furthermore, there are rate limiters for their search functionality.
The aim of our project is to create a faster website that yields more results and faster without having to create an account and eliminate the need to log in - your personal data, therefore, will never be in jeopardy since we are not asking for any of your data and you don't need to provide them to use our site with all of its capabilities.
We created this website with the sole purpose of users being able to search quickly and efficiently in the field of cryptocurrency so they will have access to the latest and most accurate information and thereby assisting the crypto-community at large.
How to find if an order is executed, on BTCChina
1. If an order is a market order, or it can be executed immediately like
a market order (e.g. buying at a price much beyond the market price), it
will be executed without producing an item in getOrders list. The order
is simply not there, non existance! This can be verified by just go to
order management in the browser and verify market orders ain't there.
You need to look up transactions to find its trace, but there is no way
to look up transactions in BTCChina's API. (Tried "getTransactions" in
the hope that it is there undocumented.) In this case, the order maps to
a single transaction, with an averaged price. I experimented with a
market order of as large as 60BTC, and it is marked a single transaction
. There is no way to find out how the price averaged up.
2. If an order can not be executed immediately, it will obtain an
order ID. This is different from the Transaction ID, because in this
case an order maps to multiple Transactions if needed. I experimented
with a purchase of 53BTC and it is splitted into
multiple transactions.
An order in the order book has an 'amount' and an 'amount_original'. The
latter being the amount of the order, the former means the remain
effective amount to be dealt with, which is the original amount minus
the amount dealt.
So how do you place a limit order and check its result?
1. Obtain a list of all orders (except those dealt like market orders).
2. Place an order.
3. Obtain a new list of all orders, and compare it with the old one.
The newly placed order is often listed a few seconds later, so you have
to try a few times to make sure it is really not there.
4. If the new order is in the new list of orders, find its ID and track
its progress until it either finish or times out.
5. If the new order is not in the new list of orders, keep trying until
it times out, and then assume it is fully dealt like a market order.
There is a risk: if an order is placed, neither listed nor executed for
so long time that the routine times out, then it would be mistakenly
considered as fully dealt. To prevent this:
6. If the new order is not in the new list of orders, and the routine
times out: Update the wallet once to see if the wallet change reflect
the contract being fully dealt. If not, this triggers an alarm and this
market no longer participate trading before human intervention.
But that introduces a new problem: if the wallet is updated 5 minutes
ago, and some others (human using browser for example) deals, before the
routin deals, then it would trigger a false alarm. So far there are no
good ways to deal with this situation. We will have to live with it.