Roman Zeyde
678630038b
Remove unused TransactionCache
(cherry picked from commit a31e828976
)
6 years ago
Roman Zeyde
08322b2144
Drop Electrum JSON-RPC support
It can be re-added later as a separate crate.
(cherry picked from commit e02e57d916
)
6 years ago
Nadav Ivgi
e718eeaf4a
Match Electrum's merkle proof format
Not the format we need, but at least its a known format
(cherry picked from commit 9067911215991993d593bd18d9c94b9d21e32fbf)
(cherry picked from commit dde87da6f0
)
6 years ago
Lawrence Nahum
bdfb1030c9
use correct default rpc port for liquidd
6 years ago
Roman Zeyde
ff32483a09
Run 'cargo +stable fmt --all'
6 years ago
Roman Zeyde
b2829e7ac3
Update rust-bitcoin to 0.15.1 and re-generate Cargo.lock
Also update `elements` dependency to support latest rust-bitcoin:
5f4531fb30
6 years ago
Nadav Ivgi
324ff289c2
Fix transaction ordering
(cherry picked from commit fbc5ed63fa
)
6 years ago
Nadav Ivgi
d2e2c940e0
Expose the block version and merkle root
(cherry picked from commit 8fba51c5f2
)
6 years ago
Nadav Ivgi
c6d7ae938f
Change query.get_merkle_proof() to take the block hash
(cherry picked from commit 79d00326a4
)
6 years ago
Nadav Ivgi
8d3189a76d
Use new blockhash=>txids index to fetch block txs
So that GET /block/:hash/txs won't depend on bitcoind.
(cherry picked from commit 004552e086
)
6 years ago
Nadav Ivgi
ffa6e080b5
Implement GET /tx/:txid/merkle-proof
This required keeping a map of blockhash=>txids in our database,
so that we don't need to query bitcoind for it.
GET /block/:hash/txids was also added along the way, based on the
new indexes.
Future work: make /block/:hash/txs use the new index as well.
This is the last endpoint still involving bitcoind.
(cherry picked from commit 32e96c137d
)
6 years ago
Nadav Ivgi
3abba23a92
Reduce to 25 txs per page
(cherry picked from commit 56f5a8ea1e
)
6 years ago
Nadav Ivgi
8efbc671b7
Always return status in /tx/:txid
(cherry picked from commit 64fdc164dd
)
6 years ago
Nadav Ivgi
69578f32c0
Add Cache-Control header based on confirmation depth
(cherry picked from commit bc4fb7e9e3
)
6 years ago
Nadav Ivgi
d0772322bc
Add --http-addr option to configure the HTTP server listen address/port
(cherry picked from commit 681ff1a0fe
)
6 years ago
Nadav Ivgi
73306f3445
Grammar
(cherry picked from commit 46ec3b9a7b
)
6 years ago
Nadav Ivgi
a328d93ff1
Remove unused imports
6 years ago
Nadav Ivgi
ce2dc91eda
Refactor API paths and formats
6 years ago
Nadav Ivgi
e82c904f26
Fix typo
6 years ago
Nadav Ivgi
1e2dbec653
Don't encode p2pk addresses
6 years ago
Nadav Ivgi
5da0c64f00
Format inflation_keys in whole numbers, see https://github.com/ElementsProject/rust-elements/issues/7
6 years ago
Nadav Ivgi
b3c4537601
Remove CORS
6 years ago
Nadav Ivgi
266d94401b
Add asset to GET /address/:addr/utxo
6 years ago
Nadav Ivgi
3953423833
Add issuance details to txin
6 years ago
Nadav Ivgi
d26b152901
Don't error for addresses with too many txs, return a valid response with no txs info instead
(cherry picked from commit 2f7793ffa1
)
6 years ago
Nadav Ivgi
24b9435b43
Error handling refactoringg
- Introduce HttpError (replaces StringError)
- Return errors as Err()
- Hide internal errors, explicitly define which errors should be user-visible
(cherry picked from commit a8c0501b15
)
6 years ago
Nadav Ivgi
2149bb6123
Don't send Access-Control-Allow-Origin
will be added by reverse proxies as needed
(cherry picked from commit 97df9fb955
)
6 years ago
Nadav Ivgi
71b7780482
Accept verificationprogress if its close to 1
6 years ago
Nadav Ivgi
b486c4ddc4
Wait for bitcoind to fully sync-up (verificationprogress==1) before starting the HTTP server
6 years ago
Nadav Ivgi
2d7b3f7945
Implement Liquid address encoding, refs #57
6 years ago
Nadav Ivgi
33397c21bb
Add parent chain configuration
Used for verifying the genesis hash of peg-out requests,
and for encoding peg-out addresses.
6 years ago
Nadav Ivgi
7534bff544
Don't load spending txs of unspendable outputs
6 years ago
Nadav Ivgi
7b45b48447
Parse and expose peg-out information
6 years ago
Nadav Ivgi
b60e4037b1
Only fetch as many txids as needed in order to know that there are too many.
And increase the limit to 100.
(cherry picked from commit 83a6c40b0c65c3af5e049a5a61cabf937ebb98ad)
6 years ago
Nadav Ivgi
97052aabde
Implement endpoints for finding spending txs
GET /tx/:txid/outspends and GET /tx/:txid/outspend/:vout
(cherry picked from commit bb8250ae4c675b748efe36cf1a84957eca546625)
6 years ago
Nadav Ivgi
97fcdf7a76
Only start HTTP server once when the index is fully synced
This also disables the Electrum RPC server, which we don't use.
(cherry picked from commit b74fff4e8864d683b6fba7db74612a5c21bbf159)
6 years ago
Nadav Ivgi
aa6c362236
Expose transaction input nSequence
(cherry picked from commit 46d56a05d630be2e64a362cc34c4f908c7c704c5)
6 years ago
Nadav Ivgi
a9a30c1b96
Change error message for too many txs
(cherry picked from commit 06d667d3fba4cd8c698a560f9cbd28facf745c42)
6 years ago
Nadav Ivgi
223a492e01
Implement GET /address/:addr/utxo
(cherry picked from commit 47dce129f0e61304029acaf91fc0f4968a98bbfd)
6 years ago
Nadav Ivgi
e3eed32606
Verify addresses are on the correct network
(cherry picked from commit a03724e6aaa4881577ccba8473b1431859148d2f)
6 years ago
Nadav Ivgi
5a84b7f25f
Reply with StringError messages
(cherry picked from commit 4f56a4f62d4ba2310167bd0533df7799af88496e)
6 years ago
Nadav Ivgi
a59cdf40ff
Reject addresses with too many funding txs
(cherry picked from commit dc443227fbb09359705bd115cf158ff3d42e07c9)
6 years ago
Nadav Ivgi
1eb5db42a1
Initial implementation for address API
Added GET /address/:addr and GET /address/:addr/txs
This required some changes in electrs internals, to keep track of the
block hash associated with a txs (inside the now misnamed TxnHeight)
and to return full transaction objects and not just ids from load_txns_by_prefix.
Transactions are now always loaded from the txstore. The original load_txn()
mechanism and the tx_cache are retired.
TransactionValue may now also contain an optional "status" field, which
is populated for address txs (but not elsewhere).
(cherry picked from commit 27ae74d834360c34f56723a2e975bbc5c5966629)
6 years ago
Nadav Ivgi
200eacf278
Exclude block proof from GET /blocks
6 years ago
Nadav Ivgi
e7dae35baf
Expose block proof information
6 years ago
Nadav Ivgi
2f12ceb520
Expose transaction version and locktime
(cherry picked from commit 3037298ea40da3e428c4b1d24d3a0b1297fedbed)
6 years ago
Nadav Ivgi
485edce3db
Return the hash instead of redirecting in GET /block-height/:height
(cherry picked from commit d8959f74e0aa32a3fe5abde1a88221a7a3ad901b)
6 years ago
Nadav Ivgi
b15f0a38d6
Replace /blocks/tip with /tip/height and /tip/hash
Instead of redirecting, we now return either the height or the hash directly.
(cherry picked from commit 14f885ef5ac25dd8b9ccf40325dc890b9f94e652)
6 years ago
Nadav Ivgi
3e32deafa9
Avoid query string arguments
Instead, pass the start_height/start_index as part of the path.
This enables better caching under some configurations.
The per-page block limit is now fixed and no longer user configurable.
Plus some refactoring.
(cherry picked from commit 6a7b5e0e098efa3bb30f6d2c1ed4fca19773d66e)
6 years ago
Nadav Ivgi
707ae5facc
Get unconfirmed txs from in-memory mempool
With this, GET /tx/:txid and GET /tx/:txid/hex no longer communicate with bitcoind.
txstore_get() was renamed to tx_get() and changed to return an Option like the
underlying functions do.
(cherry picked from commit 1171afa686d8bc9b86c6d666c8c660162a866343)
6 years ago