CalDescent
e2b241d416
Fix ConcurrentModificationException in getCachedSigValidTransactions()
2022-05-27 10:15:41 +02:00
CalDescent
aeb94fb879
Merge branch 'master' into pirate-chain
2022-05-27 09:16:38 +02:00
8e71cbd822
Reduce static Bitcoin trade fee
2022-05-26 16:25:07 -04:00
9896ec2ba6
Fix typo
2022-05-26 15:37:38 -04:00
9f9a74809e
Add Bitcoin ACCTv3
...
This provides support for restoring BTC in the Trade Portal.
2022-05-26 15:34:51 -04:00
acce81cdcd
Add tray menu item to show Build Version
...
Core build version in a message dialog for OS which cannot display the entire tooltip.
2022-05-26 15:10:04 -04:00
CalDescent
d72953ae78
Drop expired transactions from the import queue before they are considered "sig valid".
...
This should prevent expired transactions from being kept alive, adding unnecessary load to the import queue.
2022-05-25 19:06:08 +01:00
CalDescent
32213b1236
Catch all exceptions in PirateLightClient
2022-05-24 20:48:57 +01:00
CalDescent
761d461bad
Bump bouncycastle version to 1.70, necessary for ALPN support in some JDKs.
2022-05-24 20:35:19 +01:00
CalDescent
774a3b3dcd
Catch RuntimeException, so that the gRPC client is shutdown.
2022-05-24 19:52:23 +01:00
CalDescent
30567d0e87
Correctly handle shutdown of gRPC managed channel on error.
2022-05-24 19:32:41 +01:00
CalDescent
6b53eb5384
Pirate Chain uses the 'b' prefix for P2SH addresses, but the light wallet library is configured to use 't3' (from Zcash), so it's easiest to just derive a different prefix for each destination.
...
This could be simplified by configuring the light wallet library to use the correct 'b' prefix, but this didn't work when first attempted.
2022-05-23 23:14:54 +01:00
CalDescent
767ef62b64
Added PirateChain.isValidWalletKey()
2022-05-23 22:11:23 +01:00
CalDescent
f7e6d1e5c8
Merge branch 'master' into pirate-chain
2022-05-23 21:55:49 +01:00
CalDescent
551686c2de
Updated AdvancedInstaller project for v3.3.1
2022-05-23 21:54:25 +01:00
CalDescent
b73c041cc3
Bump version to 3.3.1
2022-05-23 20:31:36 +01:00
CalDescent
9e8d85285f
Removed extra unnecessary digest after writing new data.
2022-05-22 16:13:08 +01:00
CalDescent
f41fbb3b3d
Removed "consecutive blocks" limitation in block minter.
2022-05-22 16:13:04 +01:00
CalDescent
3f5240157e
Return more detailed errors in trade portal APIs.
2022-05-22 16:11:20 +01:00
CalDescent
7c807f754e
First draft of Pirate Chain trade bot. Not tested yet.
...
This has been modified to a) use full public keys instead of PKH, and b) hand off all transaction building, signing, and broadcasting to the (heavily customized) Pirate light wallet library.
2022-05-22 16:07:48 +01:00
CalDescent
9e1b23caf6
Removed unused constants.
2022-05-22 16:01:12 +01:00
CalDescent
c2bad62d36
Updated status text when not initialized.
2022-05-22 16:00:37 +01:00
CalDescent
4516d44cc0
UnspentOutput additions to support latest PirateChainHTLC methods
2022-05-22 15:55:40 +01:00
CalDescent
9c02b01318
Added PirateChainHTLC.getUnspentFundingTxid(), allowing a minimum amount to be specified.
...
This will ensure that the correct fundingTxid can be redeemed or refunded by the trade bot.
2022-05-22 15:55:01 +01:00
CalDescent
08fab451d2
Added PirateChainHTLC.getFundingTxid(), to lookup the txid that funded a P2SH.
2022-05-22 15:49:14 +01:00
CalDescent
d47570c642
First draft of Pirate Chain ACCT, with modifications to allow for 33 byte public keys instead of 20 byte PKH. Pirate Chain HTLCs are required to use full public keys rather than hashes.
2022-05-22 12:23:01 +01:00
CalDescent
4547386b1f
Increase receiving_account_info column size from 32 to 128 bytes, to allow for Pirate Chain sapling shielded addresses, which are much longer.
2022-05-21 15:24:37 +01:00
CalDescent
ab01dc5e54
Implemented address validation for Pirate Chain
2022-05-21 09:22:49 +01:00
CalDescent
380c742aad
Pirate chain minimum order size temporarily decreased to 0.0001, for testing only.
2022-05-21 09:11:24 +01:00
CalDescent
368359917b
Use LegacyZcashAddress (copied and modified from bitcoinj) to derive and encode Pirate Chain P2SH addresses.
...
It wasn't possible to use bitcoinj directly because Zcash-style P2SH addresses have 2 prefix characters (t3), which isn't supported by bitcoinj.
2022-05-20 21:27:38 +01:00
CalDescent
1c1b570cb3
Added Pirate TLC and raw transaction tests
2022-05-20 21:22:18 +01:00
CalDescent
3fe43372a7
Added PirateChainHTLC - uses a different HTLC format suitable for Pirate Chain.
...
Also removes transaction building code, since this is handled by the light wallet library.
2022-05-20 21:21:51 +01:00
CalDescent
c7bc1d7dcd
Hardcode fee to MAINNET_FEE when sending coins.
2022-05-20 21:16:12 +01:00
CalDescent
a7ea6ec80d
Added wrapper methods for Pirate LiteWalletJni P2SH funding/redeeming/refunding.
...
These require a heavily customized version of both piratewallet-light-cli and librustzcash.
2022-05-20 21:14:50 +01:00
CalDescent
9cf574b9e5
Added support for Pirate Chain transaction lookups and deserialization, necessary for HTLC status checks.
2022-05-20 21:07:54 +01:00
CalDescent
20e63a1190
Removed "consecutive blocks" limitation in block minter.
2022-05-20 13:38:56 +01:00
CalDescent
f6fc5de520
Removed extra unnecessary digest after writing new data.
2022-05-20 13:36:56 +01:00
CalDescent
0b89118cd1
Fixed bug in Pirate wallet transaction parsing.
2022-05-20 13:35:52 +01:00
CalDescent
fa3a81575a
Reduce wasted time that could otherwise be spent validating queued transaction signatures.
2022-05-14 12:53:36 +01:00
CalDescent
6990766f75
Speed up unconfirmed transaction propagation.
...
Currently, new transactions take a very long time to be included in each block (or reach the intended recipient), because each node has to obtain a repository lock and import the transaction before it notifies its peers. This can take a long time due to the lock being held by the block minter or synchronizer, and this compounds with every peer that the transaction is routed through.
Validating signatures doesn't require a lock, and so can take place very soon after receipt of a new transaction. This change causes each node to broadcast a new transaction to its peers as soon as its signature is validated, rather than waiting until after the import.
When a notified peer then makes a request for the transaction data itself, this can now be loaded from the sig-valid import queue as an alternative to the repository (since they won't be in the repository until after the import, which likely won't have happened yet).
One small downside to this approach is that each unconfirmed transaction is now notified twice - once after the signature is deemed valid, and again in Controller.onNewTransaction(), but this should be an acceptable trade off given the speed improvements it should achieve. Another downside is that it could cause invalid transactions (with valid signatures) to propagate, but these would quickly be added to each peer's invalidUnconfirmedTransactions list after the import failure, and therefore be ignored.
2022-05-14 12:43:54 +01:00
CalDescent
e1e1a66a0b
Improvements and fixes to PirateWallet
2022-05-14 12:10:35 +01:00
CalDescent
e552994f68
Merge branch 'master' into pirate-chain
2022-05-13 13:23:26 +01:00
CalDescent
b33afd99a5
Bump invalid transaction import logging from trace to debug.
2022-05-13 13:22:58 +01:00
CalDescent
3c2ba4a0ea
Improved logging when importing transactions.
2022-05-13 12:31:48 +01:00
CalDescent
ab0fc07ee9
Refactored transaction importer, to separate signature validation from importing.
...
Importing has to be single threaded since it requires the database lock, but there's nothing to stop us from validating signatures on multiple threads, as no lock is required. So it makes sense to separate these two functions to allow for possible multi threaded signature validation in the future, to speed up the process.
Everything remains single threaded in this commit. It should be functionally the same as before, to reduce risk.
2022-05-13 12:31:19 +01:00
CalDescent
001650d48e
Fixed typo in currently unused getSignaturesInvolvingAddress() method.
2022-05-13 11:28:55 +01:00
CalDescent
659431ebfd
Added "txTypes" parameter to GET /transactions/unconfirmed, to allow optional filtering of unconfirmed transactions by one or more types
2022-05-13 11:28:21 +01:00
CalDescent
0a419cb105
Added "creator" parameter to GET /transactions/unconfirmed, to allow filtering unconfirmed transactions by creator's public key
2022-05-13 11:13:39 +01:00
CalDescent
a4d4d17b82
Added /wallets to .gitignore, in preparation for pirate chain support.
2022-05-12 19:34:53 +01:00
CalDescent
0829ff6908
Fixed bugs in tooltip, introduced in lite node branch
2022-05-12 19:33:12 +01:00