Releases: StackmateNetwork/stackmate-core
Fixed string parse bug on policy compiler
Primary fix for policy compiler bug.
Other minor fixes in better types.
Address Index in FFI Output
Output to get_address functions now also return the index.
SQLite Db returns last used address - returning index helps users toggle between getting last_used_address or manually indexing.
SQLite Update
This release adds SQLite without breaking the old Memory DB implementation.
Note that SQLite DB is not encrypted at rest. Clients must always encrypt the db as a file after use to prevent leak of public wallet data.
Note that even with file encryption, the db will remain vulnerable to an attacker for the duration of the following functions calls:
- sqlite_sync
- sqlite_balance
- sqlite_history
- sqlite_last_unused_address
- sqlite_build_tx
- sqlite_build_fee_bump
Taproot XOnlyPubkey Fix
Derived keys were not enforcing XOnlyPubkey Versions for Taproot wallets.
As a result 50% of derived keys were unable to create taproot wallets (since they derived a 03 rather than 02 key).
This is now fixed.
BDK 19
Taproot
Taproot Descriptors Prototype
DO NOT USE FOR A PRODUCTION RELEASE.
This version uses bleeding edge bdk!
Now supports new tr
script_type in policy
ffi to create taproot descriptors which can be used with all wallet functions.
This version has also included tests to verify support for:
- Legacy Single
pkh
1 addresses, - Legacy Script
sh
OR Legacy Script Compatiblesh-wsh
3 addresses
Raise the anon set!
Native Tor
Adds a native tor bundle with a daemon and client that can be compiled to Android and IOS.
The api provides a start
function to launch the daemon. This is where all required config
must be passed:
-
path
to tor working directory is a required variable. Tor creates a working directory in the path in a directory calledlibstackmate-tor
. On Linux and Android, if the path is not found, it will use/tmp/libstackmate-tor/
. -
socks5_port
is the main tor proxy port through which traffic is routed. Tor usually uses 9050. It is best to use a random number to avoid collision with other running Tor instances. Whatver port value is chosen forsocks5
- 100 will be thecontrol_port
. For example if you choose 39050 for socks5, then the control port will be set as 38950. -
http_proxy
is an optional param which might be required if Tor is unable to start due to another Tor instance or VPN proxying outbound network traffic. In such cases the appropriate error to use a http proxy will be returned.
start
returns a control_key
that the client must use in order to control the tor daemon.
The api provides 2 control functions: progress
and shutdown
. Requires :
control_port
:socks5_port
- 100control_key
: output ofstart
progress
returns a bootstrap progress
PROGRESS integer, where 0 is not started, 100 is fully connected, and 101 is an error. A future update will return the entire respnse string which also contains summary of bootstrap phase.
shutdown
returns a boolean. *NOTE: When running Tor in a flutter isole, check if exiting the main process also kills the isolate. AFAIK, it does.
shudown will mainly be used if tor needs to be restarted.
More control functions can be added as per client requirement.
Socks5 Config For Torified Clients
Now supports passing socks5 proxy port to route blockchain backend requests.
Requires clients to run their own tor instance and pass the socks5 port.
macOS binary currently has a bug. Will be updated soon.
Better transaction history
Transaction history fields timestamp
and height
now represent confirmation time and height.
If they are 0, the tx is not confirmed yet.
`list_unspent` & `build_fee_bump`
Two new api additions.