From 0cb955d6630626a7c85952cb829f5b49f8ee6d5e Mon Sep 17 00:00:00 2001 From: buZz Date: Thu, 11 Mar 2021 12:29:38 +0100 Subject: [PATCH 1/4] Add Dogecoin network type --- src/Bitcoin.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/Bitcoin.cpp b/src/Bitcoin.cpp index c8e7582..763b1a7 100644 --- a/src/Bitcoin.cpp +++ b/src/Bitcoin.cpp @@ -16,6 +16,24 @@ using std::string; #define String std::string #endif +const Network Dogecoin = { + 0x1e, // p2pkh + 0x16, // p2sh + "bc", // DOESNT USE BECH32 + 0x9e, // wif + { 0x02, 0xfa, 0xc3, 0x98 }, // xprv + { 0x01, 0x01, 0x01, 0x01 }, // yprv + { 0x01, 0x01, 0x01, 0x01 }, // zprv + { 0x01, 0x01, 0x01, 0x01 }, // Yprv + { 0x01, 0x01, 0x01, 0x01 }, // Zprv + { 0x02, 0xfa, 0xca, 0xfd }, // xpub + { 0x01, 0x01, 0x01, 0x01 }, // ypub + { 0x01, 0x01, 0x01, 0x01 }, // zpub + { 0x01, 0x01, 0x01, 0x01 }, // Ypub + { 0x01, 0x01, 0x01, 0x01 }, // Zpub + 0 // bip32 coin type +} + const Network Mainnet = { 0x00, // p2pkh 0x05, // p2sh @@ -88,7 +106,7 @@ const Network Signet = { 1 // bip32 coin type }; -const Network * networks[4] = { &Mainnet, &Testnet, &Regtest, &Signet }; +const Network * networks[5] = { &Mainnet, &Testnet, &Regtest, &Signet, &Dogecoin }; const char * generateMnemonic(uint8_t numWords){ if(numWords<12 || numWords > 24 || numWords % 3 != 0){ From 99502fbab1f36d434f439661c9b47a8bfcac02dd Mon Sep 17 00:00:00 2001 From: buZz Date: Thu, 11 Mar 2021 12:45:43 +0100 Subject: [PATCH 2/4] Fixed coin index/type for Doge --- src/Bitcoin.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Bitcoin.cpp b/src/Bitcoin.cpp index 763b1a7..32f37fd 100644 --- a/src/Bitcoin.cpp +++ b/src/Bitcoin.cpp @@ -31,7 +31,7 @@ const Network Dogecoin = { { 0x01, 0x01, 0x01, 0x01 }, // zpub { 0x01, 0x01, 0x01, 0x01 }, // Ypub { 0x01, 0x01, 0x01, 0x01 }, // Zpub - 0 // bip32 coin type + 3 // bip32 coin type (actually slip44?) https://github.com/satoshilabs/slips/blob/master/slip-0044.md } const Network Mainnet = { From e227f71dbfb74e8a414e30c8ad0d6f2bf30ee203 Mon Sep 17 00:00:00 2001 From: buZz Date: Thu, 11 Mar 2021 14:02:02 +0100 Subject: [PATCH 3/4] Update Bitcoin.h --- src/Bitcoin.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Bitcoin.h b/src/Bitcoin.h index 28599b6..fb2b44c 100644 --- a/src/Bitcoin.h +++ b/src/Bitcoin.h @@ -67,13 +67,14 @@ typedef struct { uint32_t bip32; } Network; +extern const Network Dogecoin; extern const Network Mainnet; extern const Network Testnet; extern const Network Regtest; extern const Network Signet; -extern const Network * networks[4]; -const uint8_t networks_len = 4; +extern const Network * networks[5]; +const uint8_t networks_len = 5; // number of rounds for mnemonic to seed conversion #define PBKDF2_ROUNDS 2048 From 215de1172624283d8fc4790897900bdedddaaade Mon Sep 17 00:00:00 2001 From: buZz Date: Thu, 11 Mar 2021 15:33:26 +0100 Subject: [PATCH 4/4] typo --- src/Bitcoin.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Bitcoin.cpp b/src/Bitcoin.cpp index 32f37fd..35688ef 100644 --- a/src/Bitcoin.cpp +++ b/src/Bitcoin.cpp @@ -32,7 +32,7 @@ const Network Dogecoin = { { 0x01, 0x01, 0x01, 0x01 }, // Ypub { 0x01, 0x01, 0x01, 0x01 }, // Zpub 3 // bip32 coin type (actually slip44?) https://github.com/satoshilabs/slips/blob/master/slip-0044.md -} +}; const Network Mainnet = { 0x00, // p2pkh