LLFourn
326bfe82a8
Remove Blockchain from wallet
...
Although somewhat convenient to have, coupling the Wallet with
the blockchain trait causes development friction and complexity.
What if sometimes the wallet is "offline" (no access to the blockchain)
but sometimes its online?
The only thing the Wallet needs the blockchain for is to sync.
But not all applications will even use the sync method and the sync
method doesn't require the full blockchain functionality.
So we instead pass the blockchain in when we want to sync.
- To further reduce the coupling with blockchain I removed the get_height call from `new` and just use the height of the
last sync in the database.
- I split up the blockchain trait a bit into subtraits.
2022-02-24 20:39:00 +11:00
rajarshimaitra
08f312a82f
Remove verify
flag from TransactionDetails
2022-02-09 12:29:47 +05:30
thunderbiscuit
7f8103dd76
Fix typos in comments
2021-11-23 14:09:54 -05:00
Alekos Filini
5830226216
[database] Wrap BlockTime
in another struct to allow adding more
...
fields in the future
2021-11-10 12:30:42 +01:00
Alekos Filini
2c77329333
Rename ConfirmationTime
to BlockTime
2021-11-10 12:30:38 +01:00
Alekos Filini
2892edf94b
[db] Add the last_sync_time
database entry
...
This will be used to store the height and timestamp after every sync.
2021-11-10 12:29:47 +01:00
Sudarsan Balaji
59f795f176
Make MemoryDatabase Send + Sync
2021-10-15 21:36:36 +05:30
Lucas Soriano del Pino
acf157a99a
Fix use statements in populate_test_db macro
...
- Use re-exported `bitcoin` so that users of the macro don't need to
depend on `bitcoin` directly.
- Add missing `use std::str::FromStr`.
2021-08-30 14:08:17 +10:00
Riccardo Casatta
e52550cfec
Add flush method to Database trait
2021-08-03 12:33:31 +02:00
Alekos Filini
a186d82f9a
[wallet] Verify unconfirmed transactions after syncing
...
Verify the unconfirmed transactions we download against the consensus
rules. This is currently exposed as an extra `verify` feature, since it
depends on a pre-release version of `bitcoinconsensus`.
Closes #352
2021-07-01 16:36:42 +02:00
Riccardo Casatta
0bbfa5f989
make fee in TransactionDetails Option, add confirmation_time field as Option
...
confirmation_time contains both a block height and block timestamp and is
Some only for confirmed transaction
2021-06-14 15:29:24 +02:00
Alekos Filini
18254110c6
Merge commit 'refs/pull/348/head' of github.com:bitcoindevkit/bdk
2021-06-11 11:41:23 +02:00
Tobin Harding
12de13b95c
Remove redundant borrows
...
Clippy emits:
warning: this expression borrows a reference
As suggested remove the borrows from the front of vars that are already references.
2021-06-10 13:16:07 +10:00
Riccardo Casatta
bfef2e3cfe
Implements RPC Backend
2021-06-03 10:55:58 +02:00
LLFourn
00bdf08f2a
Remove testutils feature so doctests worka again
...
I wanted to only conditionally compile testutils but it's needed in
doctests which we can't conditionally compile for:
https://github.com/rust-lang/rust/issues/67295
2021-05-19 16:45:48 +10:00
Riccardo Casatta
192965413c
Convert upper-case acronyms as suggested by CamelCase convention
...
see https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms
2021-04-07 22:14:54 +02:00
Steve Myers
12ae1c3479
Update license to Apache 2.0 or MIT, copyright to Bitcoin Dev Kit Developers
2021-03-03 13:23:25 -08:00
LLFourn
a7183f34ef
s/UTXO/LocalUtxo/g
...
Since this struct has a "keychain" it is not a general "UTXO" but a
local wallet UTXO.
2021-02-26 13:33:52 +11:00
LLFourn
f74f17e227
Change "received_tx" into "populate_test_db" macro
...
A `[cfg(test)]` function is not as helpful as a macro since it can't be
called in the context of a doctest.
Also adds doctest_wallet macro which can be used to create a wallet in a
doctest.
2021-01-22 14:23:36 +11:00
Alekos Filini
1713d621d4
Rename ScriptType
to KeychainKind
...
This avoids confusion with the "type of script".
2020-12-14 17:14:24 +01:00
LLFourn
8dcb75dfa4
Replace UTXO::is_internal with script_type
...
This means less conversion and logic mapping from bool to ScriptType and
back again.
2020-12-04 10:46:25 +11:00
Riccardo Casatta
755d76bf54
remove unneeded pub modifier
2020-11-16 12:11:37 +01:00
Steve Myers
aea9abff8a
[ci] Fix clippy warnings, enable clippy checks
2020-10-10 10:31:07 -07:00
Alekos Filini
57ea653f1c
[database] Add AnyDatabase
and ConfigurableDatabase
...
This is related to #43
2020-09-15 15:39:15 +02:00
Alekos Filini
7065c1fed6
Write more docs
2020-09-04 11:44:49 +02:00
Alekos Filini
d61e974dbe
Add the license to every file
2020-08-31 11:48:25 +02:00
Alekos Filini
53b5f23fb2
[tests] Add tests for Wallet::create_tx()
2020-08-11 11:31:11 +02:00
Alekos Filini
8d9ccf8d0b
[wallet] Allow limiting the use of internal utxos in TxBuilder
2020-08-10 17:18:13 +02:00
Alekos Filini
ea62337f0d
[database] Replace DerivationPaths with single u32s
2020-06-30 15:21:14 +02:00
Alekos Filini
e5ff696e73
[database] fix deletion on batch objects
2020-05-08 23:29:16 +02:00
Alekos Filini
75a9c30c9a
Add a generalized "Blockchain" interface
2020-05-03 18:16:11 +02:00
Alekos Filini
0988c8b8d5
[database] Add an in-memory database
2020-04-29 18:06:09 +02:00