Commit Graph

159 Commits

Author SHA1 Message Date
Vladyslav Burzakovskyy
14c64410f7 FiatRates: change input & output time values to Unix timestamps
make currency parameter optional, return all rates if it's empty

update tests
2020-01-08 17:57:47 +01:00
Martin Boehm
f2ff7985b1 Improve explorer responsiveness 2020-01-04 00:57:17 +01:00
Martin Boehm
35c9da1ce8 Improve explorer navbar responsiveness, update copyright year #327, #343 2020-01-02 17:29:14 +01:00
Martin Boehm
225ac85a2a Add optional fiat rate to balance history 2019-12-18 00:02:24 +01:00
Martin Boehm
15e2c0bf41 Add websocket method getBalanceHistory 2019-12-17 14:37:24 +01:00
Vladyslav Burzakovskyy
f6111af5da Add fiat rates functionality (#316)
* Add initial commit for fiat rates functionality

* templates.go: use bash from current user's environment

* bitcoinrpc.go: add FiatRates and FiatRatesParams to config

* blockbook.go: add initFiatRatesDownloader kickoff

* bitcoin.json: add coingecko API URL

* rockdb.go: add FindTicker and StoreTicker functions

* rocksdb_test.go: add a simple test for storing and getting FiatRate tickers

* rocksdb: add FindLastTicker and convertDate, make FindTicker return strings

* rocksdb: add ConvertDate function and CoinGeckoTicker struct, update tests

* blockbook.go, fiat: finalize the CoinGecko downloader

* coingecko.go: do not stop syncing when encountered an error

* rocksdb_test: fix the exported function name

* worker.go: make getBlockInfoFromBlockID a public function

* public.go: apiTickers kickoff

* rocksdb_test: fix the unittest comment

* coingecko.go: update comments

* blockbook.go, fiat: reword CoinGecko -> FiatRates, fix binary search upper bound, remove assignment of goroutine call result

* rename coingecko -> fiat_rates

* fiat_rates: export only the necessary methods

* blockbook.go: update log message

* bitcoinrpc.go: remove fiatRates settings

* use CurrencyRatesTicker structure everywhere, fix time format string, update tests, use UTC time

* add /api/v2/tickers tests, store rates as strings (json.Number)

* fiat_rates: add more tests, metrics and tickers-list endpoint, make the "currency" parameter mandatory

* public, worker: move FiatRates API logic to worker.go

* fiat_rates: add a future date test, fix comments, add more checks, store time as a pointer

* rocksdb_test: remove unneeded code

* fiat_rates: add a "ping" call to check server availability

* fiat_rates: do not return empty ticker, return nil instead if not found

add a test for non-existent ticker

* rocksdb_test: remove Sleep from tests

* worker.go: do not propagate all API errors to the client

* move InitTestFiatRates from rocksdb.go to public_test.go

* public.go: fix FiatRatesFindLastTicker result check

* fiat_rates: mock API server responses

* remove commented-out code

* fiat_rates: add comment explaining what periodSeconds attribute is used for

* websocket.go: implement fiatRates websocket endpoints & add tests

* fiatRates: add getFiatRatesTickersList websocket endpoint & test

* fiatRates: make websocket getFiatRatesByDate accept an array of dates, add more tests

* fiatRates: remove getFiatRatesForBlockID from websocket endpoints

* fiatRates: remove "if test", use custom startTime instead

Update tests and mock data

* fiatRates: finalize websocket functionality

add "date" parameter to TickerList

return data timestamps where needed

fix sync bugs (nil timestamp, duplicate save)

* fiatRates: add FiatRates configs for different coins

* worker.go: make GetBlockInfoFromBlockID private again

* fiatRates: wait & retry on errors, remove Ping function

* websocket.go: remove incorrect comment

* fiatRates: move coingecko-related code to a separate file, use interface

* fiatRates: if the new rates are the same as previous, try five more times, and only then store them

* coingecko: fix getting actual rates, add a timestamp parameter to get uncached responses

* vertcoin_testnet.json: remove fiat rates parameters

* fiat_rates: add timestamp to log message about skipping the repeating rates
2019-12-17 10:40:02 +01:00
Martin Boehm
d01fc3d914 Detect RBF transactions in explorer and API #237 2019-07-30 16:43:13 +02:00
Martin Boehm
4ba0769433 Add "ping" message to the websocket interface #238 2019-07-19 14:59:03 +02:00
Martin Boehm
104f6f9a9d Add boolean flag isAddress vin and vout in API #209 2019-06-19 14:16:06 +02:00
Martin Boehm
bf461d0737 Add "gap" parameter to websocket "getAccountInfo" method #206 2019-06-18 12:21:22 +02:00
Martin Boehm
6447cdb1b7 Switch from TREZOR to Trezor according to new design guidelines #201 2019-06-17 15:39:35 +02:00
Martin Boehm
d26995a1e4 Show blockbook status in case of backend error 2019-06-05 13:29:06 +02:00
Martin Boehm
6ec0175937 Refactor totalTokens to usedTokens in API 2019-05-27 12:24:25 +02:00
Martin Boehm
9f8cf071dd Stop displaying first seen tx time when unknown 2019-04-10 13:54:20 +02:00
Martin Boehm
127d24be06 Give option to show derived xpub addresses in explorer 2019-04-05 17:32:26 +02:00
Martin Boehm
b64d76d8f9 Show first seen date of mempool transaction in explorer 2019-04-03 14:09:27 +02:00
Martin Boehm
987aec47f9 Show mempool content in explorer 2019-04-02 11:39:38 +02:00
Martin Boehm
bd89ab8256 Add getTransactionSpecific to websocket interface 2019-03-01 15:37:38 +01:00
Martin Boehm
1c35c632cb Add tokens to return level choice to websocket interface 2019-03-01 15:25:16 +01:00
Martin Boehm
7b590d9958 Unify AccountDetails levels in GetAccount and GetXpub api calls 2019-02-28 15:07:07 +01:00
Martin Boehm
88d9e09ad4 Highlight own ethereum addresses in explorer like in xpub explorer 2019-02-14 14:53:35 +01:00
Martin Boehm
f3ec1e6b77 Return unique transactions from GetXpubAddress 2019-02-13 17:57:30 +01:00
Martin Boehm
4846af9f60 Control token detail level returned by xpub api 2019-02-12 15:15:10 +01:00
Martin Boehm
273436f109 Include mempool transactions in GetAddressForXpub 2019-02-08 00:42:38 +01:00
Martin Boehm
64c8ae9a62 Estimate full derivation path from xpub 2019-02-05 20:47:54 +01:00
Martin Boehm
266b0575b6 Highlight xpub addresses in explorer 2019-02-04 16:53:49 +01:00
Martin Boehm
9d3cd3b3e9 Implement loading of transactions in GetAddressForXpub - WIP 2019-02-03 23:42:44 +01:00
Martin Boehm
57b40ad6dc Hide xpub addresses with zero balance in explorer by default 2019-01-31 15:04:09 +01:00
Martin Boehm
8f1f1c87ac Modify the discovery of xpub addresses 2019-01-31 08:30:18 +01:00
Martin Boehm
225830d3e9 Implement GetAddressForXpub and xpub explorer view - WIP 2019-01-30 17:56:15 +01:00
Martin Boehm
f3cbd5e20e Cleanup the test-websocket page 2019-01-21 10:05:44 +01:00
Martin Boehm
9af314f7aa Add websocket method getTransaction 2019-01-16 16:10:30 +01:00
Martin Boehm
1c29283bf0 Add getAccountUtxo method to websocket interface 2019-01-14 17:12:33 +01:00
Martin Boehm
d77fb35bb5 Minify explorer html templates 2019-01-09 15:20:05 +01:00
Martin Boehm
00c1fd6661 Limit number of found transactions for address by page size 2019-01-09 11:48:19 +01:00
Martin Boehm
2c3af5129e Generalize tokens instead of ERC20 tokens in API 2019-01-07 15:45:00 +01:00
Martin Boehm
1e8506bdf7 Add websocket method getBlockHash 2019-01-04 16:10:24 +01:00
Martin Boehm
2552a429e8 Store data in addresses column in more compact way 2019-01-03 17:19:56 +01:00
Martin Boehm
7da714bec4 Generalize erc20transfers to tokentransfers in api 2018-12-20 13:18:38 +01:00
Martin Boehm
81e105dd4f Refactor tx api 2018-12-19 13:59:18 +01:00
Martin Boehm
bab500d3f8 Notify on mempool erc20 transfer transaction 2018-12-19 10:06:25 +01:00
Martin Boehm
7edea80209 Add estimateFee method to websocket interface 2018-12-18 09:52:46 +01:00
Martin Boehm
f332c0aa9e Add getInfo websocket method 2018-12-16 00:26:41 +01:00
Martin Boehm
a04b2b67b5 Filter address transactions by height from-to and contract 2018-12-14 16:42:35 +01:00
Martin Boehm
35a13e0647 Handle old style ethereum transactions that do not set status 2018-12-14 12:08:06 +01:00
Martin Boehm
e9e6b472b6 Keep api v1 as compatible with blockbook 0.1.x, add api v2 2018-12-13 14:31:34 +01:00
Martin Boehm
9c142663ce Add type api.Amount for proper formatting of amounts in json 2018-12-13 00:41:58 +01:00
Martin Boehm
d01081fd83 Allow websocket connections from all origins 2018-12-11 12:14:05 +01:00
Martin Boehm
4b39519750 Change websocket address subscription behavior 2018-12-11 11:50:43 +01:00
Martin Boehm
13f7b48ae6 Add websocket interface 2018-12-10 17:22:37 +01:00
Martin Boehm
75e2ffa025 Add websocket implementation WIP 2018-12-10 00:26:04 +01:00
Martin Boehm
5af08584ab Show nonce in address detail in explorer 2018-12-06 13:15:25 +01:00
Martin Boehm
55ae22bab1 Add socketio method getAccountInfo 2018-12-05 11:41:07 +01:00
Martin Boehm
ec1647c864 Show tx success/failure in txdetail 2018-12-04 12:20:05 +01:00
Martin Boehm
9a04c862d6 Filter address transactions by input/output or token 2018-12-04 11:54:15 +01:00
Martin Boehm
a08f568353 Show block for EthereumType coins 2018-12-03 16:34:38 +01:00
Martin Boehm
fead52881f Show ERC20 contracts for address 2018-12-03 15:48:07 +01:00
Martin Boehm
463eab9d2d Show ethereum specific data in tx detail in explorer 2018-11-28 14:56:45 +01:00
Martin Boehm
995d169172 Merge branch 'master' into ethereum 2018-11-26 13:04:13 +01:00
Martin Boehm
0fe03703eb Show correctly spent nonstandard outputs in explorer 2018-11-26 12:44:13 +01:00
Martin Boehm
7a990f9b5b Implement explorer for EthereumType coin - WIP 2018-11-26 00:20:01 +01:00
Martin Boehm
792fa76887 Use CoinLabel in meta and title in explorer #84 2018-11-15 19:42:21 +01:00
Martin Boehm
6072aa5e9e Handle coin specific tx data more efficiently 2018-11-15 16:18:29 +01:00
Martin Boehm
28b3a4d1b4 Implement ETH GetChainInfo 2018-11-15 16:16:01 +01:00
Martin Boehm
4422661918 Implement Send Transaction in explorer 2018-10-22 15:41:27 +02:00
Martin Boehm
9eac099e64 Add link to block from tx detail in explorer 2018-10-17 11:07:40 +02:00
Martin Boehm
8140af1a69 Show coin specific transaction data in explorer and api 2018-10-16 12:25:31 +02:00
Jakub Matys
26e3a1bbe6 Text data moved to build directory 2018-10-15 12:59:42 +02:00
Jakub Matys
3b696d677e Text data (about, URL of TOS) stored in plain text files 2018-10-15 12:51:04 +02:00
Martin Boehm
a16ef2904e Use coin label in the explorer header 2018-10-10 00:23:31 +02:00
Martin Boehm
f9809d7507 Return inputs for socket.io getAddressHistory and getDetailedTransaction 2018-10-06 23:35:03 +02:00
Martin Boehm
deb4bc9338 Add hash to the list of blocks in explorer 2018-10-01 17:02:07 +02:00
Martin Boehm
44da0c8c41 Show spending transactions in explorer 2018-09-27 13:44:13 +02:00
Martin Boehm
2fd3d9d940 Adjust column sizes of blocks view 2018-09-20 23:32:10 +02:00
Martin Boehm
8ad6d1d52c Remove /explorer part from URL, blockbook status with external explorer 2018-09-20 22:07:42 +02:00
Martin Boehm
d6b9cd496b Start public interface in limited mode before initial sync #51 2018-09-20 12:15:46 +02:00
Martin Boehm
d22fedbf22 Improve browser compatibility 2018-09-20 08:51:13 +02:00
Martin Boehm
8c1ccda82e Fix block view in explorer 2018-09-18 12:44:07 +02:00
Martin Boehm
df67d7dcaf Improve paging between blocks in explorer 2018-09-18 11:00:20 +02:00
Martin Boehm
d87d52b2fd Add view of block to explorer 2018-09-17 18:28:08 +02:00
Martin Boehm
41e89d265e Hide backend db size if not known in explorer 2018-09-17 12:35:10 +02:00
Martin Boehm
175c841870 Show tx hex in transaction detail in explorer 2018-09-17 11:54:40 +02:00
Martin Boehm
f80c4d572e Add application status page to explorer 2018-09-17 11:17:40 +02:00
Martin Boehm
70bdd6c8fb Add outpoint link to inputs in explorer txdetail 2018-09-17 10:51:20 +02:00
Martin Boehm
bebddbcd11 Implement list of blocks 2018-09-14 12:10:03 +02:00
Martin Boehm
435b6f4e80 Show search results using redirect in explorer 2018-09-14 00:13:25 +02:00
Martin Boehm
13dfa46edc Add QR code to address view in explorer 2018-09-13 23:52:39 +02:00
Martin Boehm
955dcfa346 Tune explorer navbar 2018-09-13 22:59:24 +02:00
Martin Boehm
c6462bb0e7 Add search for tx/address to explorer 2018-09-13 14:25:24 +02:00
Martin Boehm
a259d4713c Show tx without inputs or outputs in explorer 2018-09-13 13:16:44 +02:00
Martin Boehm
fb0c766ee4 Add paging to explorer 2018-09-05 15:13:45 +02:00
Martin Boehm
63ad3ffff2 Link spending transaction to output in explorer 2018-09-03 17:25:57 +02:00
Martin Boehm
984f24a76d Handle pay-to-pubkey addresses in Bcash 2018-09-03 15:45:08 +02:00
Martin Boehm
1109cd7878 Use AddressDescriptor for queries in api worker 2018-08-31 15:23:04 +02:00
Martin Boehm
1a931d8a65 Implement view of OP_RETURN scripts 2018-08-30 15:25:03 +02:00
Martin Boehm
be19523065 Refactor of address handling, renamed addrID to addr descriptor addrDesc 2018-08-29 15:31:19 +02:00
Martin Boehm
b56b6c7a9b Get data for explorer using index v3 - WIP 2018-08-27 15:36:33 +02:00
Martin Boehm
7d708ef868 Unify handling and error handling of pages in public interface 2018-08-24 16:17:43 +02:00
Martin Boehm
6fb71a7734 Highlight inputs/outputs of shown address 2018-07-02 14:41:37 +02:00
Martin Boehm
7e68630377 Add initial implementation of address explorer 2018-06-30 02:02:16 +02:00