Commit Graph

314 Commits

Author SHA1 Message Date
tomFlowee 30ea4aeb98 api docs 2023-07-20 17:45:37 +02:00
tomFlowee 69562c6767 Finish the method signature, add size. 2023-07-17 21:02:43 +02:00
tomFlowee b4cb8098f9 Add new exported class StringUtils
This uses old methods from the ugly utilstrencodings files
and cleans them up to allow us to install this header file and
use these methods outside of theHub repo.
2023-07-15 12:27:44 +02:00
tomFlowee 33d1bc27f4 Work slowly to fix the disease of unsigned char
There factually is no difference between char and unsigned char
except in very rare cases (like bitshifting). But in APIs they
are incompatible, which is a pain...
2023-07-15 12:24:40 +02:00
tomFlowee ebaccb6fee Move include to cpp file 2023-07-15 11:36:19 +02:00
tomFlowee 10510fcb99 Add ProtoBuilder / ProtoParser classes
Protocol Buffers interaction is just another serialization standard,
while its widespread it has fortunately mostly been kept out of
anything relevant or important. Mostly due to the fact that is
really quite bad from a technical perspective.

This adds simple and basic support for creating and parsing
protocol buffer messages, mostly to allow interoperability.
If you want quality: use the MessagBuilder/MessageParser ones instead.
2023-07-14 11:45:47 +02:00
tomFlowee 1e3a4aeee3 Add out of bounds check for MessageParser 2023-07-09 17:09:07 +02:00
tomFlowee 148720afa5 Remove outdated comment. 2023-06-14 16:47:39 +02:00
tomFlowee c637e66cb1 Make compile on gcc 13 2023-05-06 23:29:34 +02:00
tomFlowee 3becd7aa45 Remove unused log sections and code
Decentralized all things!

But, really, don't put the logging sections for external apps in the
library code.
2023-04-04 15:47:25 +02:00
tomFlowee 805c2d9893 Split out the too-big logging section 'p2pnet'.
This introduces the spv-sync debug section as a child of the p2p lib
logging section.
2023-04-01 22:58:11 +02:00
tomFlowee 1d75226cd6 Add comments 2023-01-30 17:10:12 +01:00
tomFlowee b5b493542b Rework base58 and tests
The unit tests testing base58 encoding were using univalue JSON
parsing, since we deprecatd univalue to be a hub-private lib
this has now been ported to Qts JSON parser.
Which also makes the clunky cmake hack nice to replace with the
QRC files concept.

As I was in there anyway, the base58 methods being global scope
C-style methods has now been fixed by putting them in a namespace.
2022-12-13 11:34:54 +01:00
tomFlowee c63519fa47 Move 3rdparty libraries around.
The leveldb and univalue 3rd party libraries are not installed and
not needed by anyone outside of the Hub.
So move them there, making it easier for 3rd party usage.
2022-12-13 11:34:54 +01:00
tomFlowee 6de770466b Avoid possible references-of-deleted
This sanity check might avoid issues in future code by not assuming a
log channel (or anything it depends on) will avoid using logging at the
moment it is shutting down.
2022-11-25 14:01:05 +01:00
tomFlowee f3fb02a522 Make channel interface available
The manager now has an addChannel() method for anyone wanting to
implement a separate logging channel.
2022-11-24 18:14:14 +01:00
tomFlowee f798bf6fe5 On adding log-file output, instantly open it.
This allows this API to be used in more places and do the expected
thing.
2022-11-11 19:03:57 +01:00
tomFlowee 58afd8ab6a Make compile with older libc 2022-09-13 20:30:38 +02:00
tomFlowee c6720314ff API fix 2022-08-13 23:42:40 +02:00
tomFlowee 8ff3802687 Fixes in the HDMaster* classes 2022-07-11 18:04:14 +02:00
tomFlowee 887fbef139 Add some convenients methods. 2022-07-11 13:31:24 +02:00
tomFlowee a737803198 Install HDMasterPubkey.h 2022-07-11 12:55:31 +02:00
tomFlowee 0c2ddfe760 fix language in comment 2022-07-10 12:07:11 +02:00
tomFlowee 9a9a2d0829 Avoid duplicating magic numbers
Move the prefix numbers all to one place to avoid copy-pasting them.
Also make the xpub more complete.
2022-07-08 13:14:41 +02:00
tomFlowee f318774663 Add HDMasterPubkey to derive xpub style addresses
This also alters the 'toString()' on HDMasterKey to stop giving
a rather useless xpub and turn it into a dedicated toXPubString()

Closes: #1
2022-07-07 21:16:50 +02:00
tomFlowee 0eee5a06b6 Split test into two.
Since they are in different libs, it makes sense to put the right part in
the right test dir.
2022-07-07 21:00:53 +02:00
tomFlowee 1ab4d88993 Split version.h
Version.h held mostly stuff for protocol.h, which is a hub-specific file.
The only thing that we actually use is the PROTOCOL_VERSION in our code
and as such that one moved to the interfaces dir.
2022-07-06 22:50:53 +02:00
tomFlowee 05bbba3cb3 Rename class CKey -> PrivateKey 2022-07-06 22:12:33 +02:00
tomFlowee 0f91e9ac46 Remove dead code 2022-07-06 22:08:50 +02:00
tomFlowee c9af7cca4a Rename class CPubKey -> PublicKey 2022-07-06 21:56:34 +02:00
tomFlowee c33d54ed7d Rename class CKeyID -> KeyId 2022-07-06 21:52:47 +02:00
tomFlowee 32c7f28b24 Change cast.
This correctly makes our value signed before turning it into
a negative number.
2022-07-06 14:28:34 +02:00
tomFlowee 1572608605 Make this explicit
Since the default copy constructor of the HDMasterKey uses the copy
constructor of CKey, make the latter have a copy constructor explicitly
defined as well.
2022-07-06 14:10:23 +02:00
tomFlowee bc52d3eda0 Be consistent in the header file and avoid misuse. 2022-07-06 14:09:17 +02:00
tomFlowee 82ca91d836 Use slightly less memory.
This avoids creating an empty static string in most well written apps.
Also use const ref for a loop because that avoids copying.
2022-07-06 14:08:18 +02:00
tomFlowee cfc50b3a9a Always initialize this field in the constructor.
This avoids future problems should the constructor be used elsewhere.
2022-07-06 14:05:44 +02:00
tomFlowee 9fa877f425 Rename hashing methods to start with lowercase 2022-05-17 00:46:54 +02:00
tomFlowee cca8a885bc Fix coding style issues
Follow the coding styleguide and make the methods lowercase on CKey
2022-05-11 13:46:15 +02:00
tomFlowee 7b57024413 Make set() be internally consistent
setting an incorrect value should not keep the old data after we already
update the fValid boolean.
That would give the user the impression that the data was removed while
it really isn't.
2022-05-11 13:20:15 +02:00
tomFlowee aef7366034 Implement BIP69 in TransactionBuilder
This adds support for the
 Lexicographical Indexing of Transaction Inputs and Outputs
anonimize concepts of transactions directly in the transaction builder.
2022-04-15 17:33:55 +02:00
tomFlowee e23925a954 Clean up the API and implement logging on failure 2022-04-06 14:23:37 +02:00
tomFlowee e5c97d1e87 Use non-openssl cleanse 2022-04-06 12:04:23 +02:00
tomFlowee a47a7072b3 Add unit test for allocator too 2022-04-06 11:39:49 +02:00
tomFlowee 0d4b214e23 Move over to the new allocator 2022-04-06 10:24:16 +02:00
tomFlowee 26262783de Allow mid(1, 0) to be called
This now creates a zero size, empty, result.
2022-02-10 18:02:50 +01:00
tomFlowee c0989158c0 Add API docs. 2022-02-08 19:03:14 +01:00
tomFlowee 41e00b134f Add convenience methods on ConstBuffer
this adds indexOf() and toString()
2022-01-25 23:59:54 +01:00
tomFlowee 5bebaeb37c Add another write() helper method. 2022-01-24 13:19:23 +01:00
tomFlowee 7376c28a3c Move pool thread-local getter to utils.
This nicely cleans up the calling usage a static on the connection
manager instance.
2022-01-24 12:06:37 +01:00
tomFlowee 7b5c10845e Add helper method 2022-01-21 22:44:36 +01:00