Main additions:
+ bitcoin_address_ex
+ bitcoin_addr2rmd160_ex
These functions with support taddr param. For example, for HUSH prefix is
{ 0x1C, 0xB8 }, where is taddr = 0x1C and addrtype = 0xB8.
All functions that used bitcoin_address and bitcoin_addr2rmd160 should be
rewritten with new *_ex analogs. currently it's done only for functions
used in split funds.
Also, if we want to support other type of such coins, we should change
condition "if (strcmp(coin->chain->symbol, "HUSH") == 0)" on more universal.
For example we can taddr in struct iguana_chain, but this needs to rewrite
all logic, for example, init structures, init static struct iguana_chain Chains[]
array and other things.
Adding prefix byte causes global changes in iguana.
p.s. With these changes HUSH splitfund in iguana works fine, but we need
to test notarizations on testnet (!) first, and change these functions
calls:
bitcoin_address -> bitcoin_address_ex
bitcoin_addr2rmd160 -> bitcoin_addr2rmd160_ex
everywhere it used. This is not finished yet.
Add improved Concurrency as one of the desired benefits.
Clarify that WASM isn't an immediate goal.
Explain what practical steps we're going to take during the port.
I've gathered some information about the possible goals behind the MM rewrite.
Documenting the goals (the vision) is often important for the project success, it affects future design decisions and helps team communication by establishing shared values.