diff --git a/qa/rpc-tests/signrawtransactions.py b/qa/rpc-tests/signrawtransactions.py index d51d6ee6..286fc868 100755 --- a/qa/rpc-tests/signrawtransactions.py +++ b/qa/rpc-tests/signrawtransactions.py @@ -33,7 +33,7 @@ class SignRawTransactionsTest(BitcoinTestFramework): 'scriptPubKey': '76a91460baa0f494b38ce3c940dea67f3804dc52d1fb9488ac'} ] - outputs = {'mpLQjfK79b7CCV4VMJWEWAj5Mpx8Up5zxB': 0.1} + outputs = {'tmJXomn8fhYy3AFqDEteifjHRMUdKtBuTGM': 0.1} rawTx = self.nodes[0].createrawtransaction(inputs, outputs) rawTxSigned = self.nodes[0].signrawtransaction(rawTx, inputs, privKeys) @@ -74,7 +74,7 @@ class SignRawTransactionsTest(BitcoinTestFramework): 'scriptPubKey': 'badbadbadbad'} ] - outputs = {'mpLQjfK79b7CCV4VMJWEWAj5Mpx8Up5zxB': 0.1} + outputs = {'tmJXomn8fhYy3AFqDEteifjHRMUdKtBuTGM': 0.1} rawTx = self.nodes[0].createrawtransaction(inputs, outputs) rawTxSigned = self.nodes[0].signrawtransaction(rawTx, scripts, privKeys) diff --git a/qa/rpc-tests/wallet.py b/qa/rpc-tests/wallet.py index f0f7c8ca..7f9541fb 100755 --- a/qa/rpc-tests/wallet.py +++ b/qa/rpc-tests/wallet.py @@ -233,10 +233,7 @@ class WalletTest (BitcoinTestFramework): assert_equal(self.nodes[2].z_getbalance(mytaddr), Decimal('10.0')); # add zaddr to node 2 - # payment address: tneMWwNSjPkPaz7p5ed3XJbrz8XwpfBvaha3jaGU26EstNN8HKMYVyzgwMmVcmtaw7b5uuaF4Hr8P4UPZEMkuTkXQa8STzF - # spending key: TKWRfN47drnaFDbHBSYT2McbPjbmFjjTrGuntj3tAMnnGDg2Kp19 - self.nodes[2].z_importkey("TKWRfN47drnaFDbHBSYT2McbPjbmFjjTrGuntj3tAMnnGDg2Kp19") - myzaddr = "tneMWwNSjPkPaz7p5ed3XJbrz8XwpfBvaha3jaGU26EstNN8HKMYVyzgwMmVcmtaw7b5uuaF4Hr8P4UPZEMkuTkXQa8STzF" + myzaddr = self.nodes[2].z_getnewaddress() # send node 2 taddr to zaddr recipients = [] diff --git a/src/base58.cpp b/src/base58.cpp index a6152e69..12e2496d 100644 --- a/src/base58.cpp +++ b/src/base58.cpp @@ -179,9 +179,9 @@ bool CBase58Data::SetString(const char* psz, unsigned int nVersionBytes) return true; } -bool CBase58Data::SetString(const std::string& str) +bool CBase58Data::SetString(const std::string& str, unsigned int nVersionBytes) { - return SetString(str.c_str()); + return SetString(str.c_str(), nVersionBytes); } std::string CBase58Data::ToString() const @@ -251,6 +251,16 @@ bool CBitcoinAddress::IsValid(const CChainParams& params) const return fCorrectSize && fKnownVersion; } +bool CBitcoinAddress::SetString(const char* pszAddress) +{ + return CBase58Data::SetString(pszAddress, 2); +} + +bool CBitcoinAddress::SetString(const std::string& strAddress) +{ + return SetString(strAddress.c_str()); +} + CTxDestination CBitcoinAddress::Get() const { if (!IsValid()) @@ -305,7 +315,7 @@ bool CBitcoinSecret::IsValid() const bool CBitcoinSecret::SetString(const char* pszSecret) { - return CBase58Data::SetString(pszSecret) && IsValid(); + return CBase58Data::SetString(pszSecret, 1) && IsValid(); } bool CBitcoinSecret::SetString(const std::string& strSecret) diff --git a/src/base58.h b/src/base58.h index 8a442b1b..d3967ec4 100644 --- a/src/base58.h +++ b/src/base58.h @@ -84,8 +84,8 @@ protected: void SetData(const std::vector &vchVersionIn, const unsigned char *pbegin, const unsigned char *pend); public: - bool SetString(const char* psz, unsigned int nVersionBytes = 1); - bool SetString(const std::string& str); + bool SetString(const char* psz, unsigned int nVersionBytes); + bool SetString(const std::string& str, unsigned int nVersionBytes); std::string ToString() const; int CompareTo(const CBase58Data& b58) const; @@ -131,6 +131,8 @@ public: bool Set(const CTxDestination &dest); bool IsValid() const; bool IsValid(const CChainParams ¶ms) const; + bool SetString(const char* pszSecret); + bool SetString(const std::string& strSecret); CBitcoinAddress() {} CBitcoinAddress(const CTxDestination &dest) { Set(dest); } diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 0c7e91e1..e5059349 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -113,15 +113,19 @@ public: //vSeeds.push_back(CDNSSeedData("xf2.org", "bitseed.xf2.org")); // Jeff Garzik //vSeeds.push_back(CDNSSeedData("bitcoin.jonasschnelli.ch", "seed.bitcoin.jonasschnelli.ch")); // Jonas Schnelli - base58Prefixes[PUBKEY_ADDRESS] = std::vector(1,0); - base58Prefixes[SCRIPT_ADDRESS] = std::vector(1,5); - base58Prefixes[SECRET_KEY] = std::vector(1,128); - base58Prefixes[EXT_PUBLIC_KEY] = boost::assign::list_of(0x04)(0x88)(0xB2)(0x1E).convert_to_container >(); - base58Prefixes[EXT_SECRET_KEY] = boost::assign::list_of(0x04)(0x88)(0xAD)(0xE4).convert_to_container >(); - // guarantees the first two characters, when base58 encoded, are "zc" - base58Prefixes[ZCPAYMENT_ADDRRESS] = {22,154}; - // guarantees the first two characters, when base58 encoded, are "SK" - base58Prefixes[ZCSPENDING_KEY] = {171,54}; + // guarantees the first 2 characters, when base58 encoded, are "t1" + base58Prefixes[PUBKEY_ADDRESS] = {0x1C,0xB8}; + // guarantees the first 2 characters, when base58 encoded, are "t3" + base58Prefixes[SCRIPT_ADDRESS] = {0x1C,0xBD}; + // the first character, when base58 encoded, is "5" or "K" or "L" (as in Bitcoin) + base58Prefixes[SECRET_KEY] = {0x80}; + // do not rely on these BIP32 prefixes; they are not specified and may change + base58Prefixes[EXT_PUBLIC_KEY] = {0x04,0x88,0xB2,0x1E}; + base58Prefixes[EXT_SECRET_KEY] = {0x04,0x88,0xAD,0xE4}; + // guarantees the first 2 characters, when base58 encoded, are "zc" + base58Prefixes[ZCPAYMENT_ADDRRESS] = {0x16,0x9A}; + // guarantees the first 2 characters, when base58 encoded, are "SK" + base58Prefixes[ZCSPENDING_KEY] = {0xAB,0x36}; vFixedSeeds = std::vector(pnSeed6_main, pnSeed6_main + ARRAYLEN(pnSeed6_main)); @@ -143,18 +147,18 @@ public: // Founders reward script expects a vector of 2-of-3 multisig addresses vFoundersRewardAddress = { - "37dSC2gL2SftgVJBHemBfWtSsNwuNfeTkz", "3KENXyYPCx4SZPGqE2Qp64Vrt49JNxvCbH", "3B2t3k6oQBACSmZArbYiseYsbsxBFFsHXG", "3QuE4MQXQwuzynXJwLPuWaciKjmRqkj9Yg", - "3FGDxAMPbjgq2ZTSFdoeWTHUu8i3nZcENb", "3HMUFCvai1KtyJ3woLXyY5dGTWjBwmD3M2", "3Mqskxz8RexngVRBkZnGVCLp1Z7wyqFjVE", "359NbXKBNezXEUqvU1cqJkfdZTHbzfsQfV", - "3KGJQmUe7zjMFkTGskiBH6JBNuymJRzU3a", "36PjhjMcMkU9kjgvCocAke5VSF6JzKXuqZ", "35fucu9Bh1AKad9zMvDgDhc3kmoj6ZcFNV", "35EnKe4u16128G6j1efUT27Vwqha6MgWDH", - "3FWa1GEjWWY3eFuFK8ht2HBhH8ZT1zXJcR", "3ByiCPMp3vNYjq1fQrQx2LXbMJ3uyiUfH6", "3DNWVawdGNJJ3sp9aMgyjtFv74rPivPUcM", "3HKAkRbUbUTV2vs1qSoEbhpoUAjNAmGxrm", - "3CV41uQT2B6FU8H57rAh22d4wyDG8FrK37", "361jTn1yhDRHji9qMrwq8p2qbSxrEfcf58", "3A4hTEi36fQdvTczkiNESqdtoADRFEUGdr", "36LBGQ4CNWRtEVxdRk8Lym52rFqRx5aAy9", - "34Hvy7rqUToVzQKu6v6gN69Qo1M37ktKpZ", "3Qii1z7vD5EFpGx3yFAqDBLQ9kCdfpxwpC", "3HNSu7ibS7yu4FW3Sf2D36Ms8BKDhBTPQo", "36djsWiivpZwPC4eZqMAFoS87VgxkjDHen", - "3E7dsoe6eJavv6HEwADC7eV2JjHXZE8wx4", "3Ks5EBz94K2TgAx19vxvwX6A2cUf1AWNfJ", "3GuGkVkqD1k9wYJNikNhMxK8ci8HGnJ3HN", "3QPjeeX5FFwEbDk8RHDXCPunsgHp9YLXsV", - "3MY2DeyRPJaUKZwpKTGsT31vZMLtVk66FP", "36f92vZ3jo3TYBXVGv55BptKmL2MDL47ZF", "3DDUDXN3aSgXckFnTdFTV1t8HjkifNKbJM", "3ArUZmHERS6CDyNYb1DhnCZ7XCCoWEURAb", - "3QnJ98YuZcVZhxs49kwwDmf5BUYPbjvKRQ", "3DNdji6oCCTVbLF4iuzamAv73MGQ9LsKNb", "3Q5cGqEzkBLMac8DNSdVesZPUcucFP3jqU", "3JuQnoHp6Qm9N39ETD4yRHhj1CCKXo3deG", - "3EQftBB2MsZ4wNgGxKfhMREU3hNk29VZeW", "38baEewZky2kRaMSvjxh2x3eDdHt1ovVnu", "32kq15rjjtjaj1Z5dW8N6DikKxBeEbCZ5B", "34tta8VkpCZFNZyM9oWf656QcNwDB2qoRV", - "33nGWUV4nKjAM7XWYNTf5Fe6aBahCe22RN", "36tt5b1MDeYks6N7Zhk5gDs3sNZjkh4mG7", "32eS4cHrpJv7MkGQzkA7KwYZuNCvbpCzm4", "39Wqmd6f23mFWsMurx9d9YbaHxyEmXpw4G", - "32x1txo29hfy6fm5kMryX2175qz7ocU8iz", "3KR3wPnecQgpndUGAdwWCfehbEES4DES3C", "3HBPRij6s8Thv2AnRytLEZ9pW6Wqoztcr6", "3N3BPLx8rHfEdqPnEWuguYfAXtDXc8sK53", + "t3QW3CN6TzmTVH8M5E5aJoKzN838zAEBCuS", "t3c6yYJxXBGr3A2KjATDwDsbn8iLP9AsXfk", "t3TuV45WwNVwo3Qc4o2Mr1TenrY9FwRM18Z", "t3hmq4gpfPGhbaRaCsmD2ePidaPxWf3upsg", + "t3Y8pxVmXa4URdCWLC4cmeGPQ9nu8eSJMvG", "t3aE5FYLigL7VZw6qjmM6ftjBiAvGiPkjo5", "t3eiUmJQGPykPH8U5gzbPd1SjGDK2k6SFvb", "t3N1ybrjKLyn7q7tpQSRxSZmYp7UgkEgHDb", + "t3c8uR6tn6KWwrPWApBXJQuQ6daAr8bcaMg", "t3PGLi4mkL5FkMNjp9ERHtTBQguHPjT3yqA", "t3NYWdEZKfKwvBGCtJM2oMWhy1Rzot3yL3Q", "t3N7PKyV2yQnciu9cx5UbaqDRCVtev9qHpN", + "t3YPB1besUqKeEtx9FZX1A6HcXnkXq9Vc3r", "t3UrKCimx2FA9LU4ZMHE5A9dWbxEzm5MgLj", "t3WF7VvMmEh5teWs3WnW6shMqMj3UbX6p33", "t3aBmkm1cZoF5dZuumscMjWviipvSx6hFLR", + "t3VMf2EpazVsr4mKy4Gyp9qizCdQLrWTm9J", "t3NtLU7S7fYCtLMCjJHkxGd8kr79w7UhtpX", "t3SwJTa8B4zCEX6fth9BMaejp3pQW11DTB8", "t3PCnGjULLqDUq91XNAwU7aAx6v2WkAP12v", + "t3MAXyTGySnb6b3No3LuoVuFL3fY7recEin", "t3hbK2KY4BQ1rQuzwufyxLzSKQQPiP9XidW", "t3aF3uT8jQSmVetYwP5qLAuTnNqWJRNLQu7", "t3PWLsr8ru9MXyq7YWGAHPcY3N9t3Zp45uo", + "t3WzEt94EcdNXWjL8sb2KFTawZPUcL42MoX", "t3cjgEXQH2dp4Gozu6Mn45LC5HGfjrSAf9V", "t3ZmskqAyBLXkYBMGfBBpVmR3sNKN79anu3", "t3hGLeywDDaiqBro2Mi2eLD1i8LUttrBfbT", + "t3eQdDzPZMdN4vCziFt5zar7qp1XyMwgnD6", "t3PXk3FyBi7q48paPDLtCKdzF1zDS4bpjM3", "t3W65DrnBYmU8DPJgQ44acpz3YPwoNE8pc5", "t3Tj5a6hNPksnpcRSXS2pv1f2mrPtL2bqGb", + "t3heu9Ty3XwHAJbux6Bm4MakzS8jUL3EkFD", "t3WFEk3WwAXF6ByHxfLohtz22J1TUwsL6iu", "t3gxDHAf8iW7xBFB7JsScngfJjH6h3QBfot", "t3bn1o8hx4jYjxgC8Pdt6Z6oeFrPQPtT8pC", + "t3XHGtWbALCLfY1jAtkUpVELPJMZpqxBtgE", "t3RUBEzMhjHpM2DQLsAmpAm9ZUHUxnEQAtM", "t3KdS1RGsiDXBKebyZvwVE2pfacNj28KLqB", "t3MmVaTutnXLqyD2F6EKnDtCKs38HxkVAdH", + "t3LesWouCkeWkwkaQUoGnD4k1pqmn3AYkt4", "t3PmV5vRVByLMTjR1W8ZCp2xy82kpb6n99u", "t3KX34whzndhhxPKJwAyETkeVA2Q1TzBhor", "t3SPSmxWnzNYr7WQooNxkHMhVYdAKY6M5Dr", + "t3KpcuJDA82TZhJoygng6eq72LWBCYtp7W8", "t3cHewjCnajURPGXA74kdLUkcqtRWpN3QkG", "t3a3zS49EqTFJWfDgNQhTNNFjkkhveqQssP", "t3eunPgNGpcSqEUSgAwip3Mm5nYQcPvacvX", }; assert(vFoundersRewardAddress.size() <= consensus.GetLastFoundersRewardBlockHeight()); } @@ -196,13 +200,19 @@ public: vSeeds.clear(); vSeeds.push_back(CDNSSeedData("z.cash", "dnsseed.testnet.z.cash")); // Zcash - base58Prefixes[PUBKEY_ADDRESS] = std::vector(1,111); - base58Prefixes[SCRIPT_ADDRESS] = std::vector(1,196); - base58Prefixes[SECRET_KEY] = std::vector(1,239); - base58Prefixes[EXT_PUBLIC_KEY] = boost::assign::list_of(0x04)(0x35)(0x87)(0xCF).convert_to_container >(); - base58Prefixes[EXT_SECRET_KEY] = boost::assign::list_of(0x04)(0x35)(0x83)(0x94).convert_to_container >(); - base58Prefixes[ZCPAYMENT_ADDRRESS] = {20,81}; - base58Prefixes[ZCSPENDING_KEY] = {177,235}; + // guarantees the first 2 characters, when base58 encoded, are "tm" + base58Prefixes[PUBKEY_ADDRESS] = {0x1D,0x25}; + // guarantees the first 2 characters, when base58 encoded, are "t2" + base58Prefixes[SCRIPT_ADDRESS] = {0x1C,0xBA}; + // the first character, when base58 encoded, is "9" or "c" (as in Bitcoin) + base58Prefixes[SECRET_KEY] = {0xEF}; + // do not rely on these BIP32 prefixes; they are not specified and may change + base58Prefixes[EXT_PUBLIC_KEY] = {0x04,0x35,0x87,0xCF}; + base58Prefixes[EXT_SECRET_KEY] = {0x04,0x35,0x83,0x94}; + // guarantees the first 2 characters, when base58 encoded, are "zt" + base58Prefixes[ZCPAYMENT_ADDRRESS] = {0x16,0xB6}; + // guarantees the first 2 characters, when base58 encoded, are "ST" + base58Prefixes[ZCSPENDING_KEY] = {0xAC,0x08}; vFixedSeeds = std::vector(pnSeed6_test, pnSeed6_test + ARRAYLEN(pnSeed6_test)); @@ -223,18 +233,18 @@ public: // Founders reward script expects a vector of 2-of-3 multisig addresses vFoundersRewardAddress = { - "2NF5QVDMtYBHaUzPLTxirybjwPjm9wVwacv", "2N8qoHsvVvdrDc89dXjpBWZHMbWdaHVc3rg", "2N8xpkGmATvu1GjgpjSjmt5L5V5fnEhW89v", "2MtTJnZRWNKJtmr5NN5jnjL9hTqP6tFBuLE", - "2N3Jbuca4yhcqMCa36w5Jy9NdLf7Te2BBZr", "2NAkLyEyxv1y1tvE3LawvaFXZ12GKDyXc9K", "2NEA5WxHJfpFWijWuJLwyjNmNYAKSdBFrFt", "2N68WRnm7HJYZRBL7XtqRJVQD7dCJtQx4Vg", - "2NAieMb6ZfC2RJ6c19Ch4JER6yqgRAd1CeG", "2Mvw6JtXth8cYPHxD2DGwF2fzL6C5g66w6w", "2N3treWEan8WhpKurCNTdsgh6JtTD8hLMEY", "2N46cPyaEBFb1MxHJWdtXKhfRjKWhoAF2VY", - "2N2hFwZYHvKCjqVJHCYwpy6FaBycyjcKaHB", "2N3wQ8GyAbtb4FXgymzK99ZUDdrdDVQBGNx", "2N2tq2AcVroDciF5H3WpkHraUiK6eZZgJqR", "2N6g8Q9Z6mZwQzTw1s5KoSaVTKYxBVDMeqc", - "2NFfPnK3jj85sn9mWe5EivUdnUPykMRXGp6", "2MwC4NhXRQSZzN9cfeg88Cdsp6DiXn2Axt9", "2MsTXMg8TBfKQvj7UJfMXKp3naKYv9ty3jv", "2MzPMV6sPt45J2qU1Uvft2U1ES1q9Cnw74J", - "2NEo5vX2Gvg83FbSUTfndQqkZbFHd1zJnZz", "2Mtkiihqt6wTV5uwvdmf9nTZKgEzZx6BMXB", "2MvM6urpNbfS2QFPFeUEoM14VKgBKoV8Qws", "2Mv3FDtDtyiHQA6u6kDWoiBKDkL5JFuA4Se", - "2MtyHB5chweTMBXXVPqSLAWHF6fgajGisi6", "2N3BU59PLVRWmPvffumGNWJdorY8ex5NKHq", "2NEiq16k9nQzYxWL1mvJVN32ticcL3b65vW", "2NB1groo8MTEAvPDbgcmzHsr56rSpbmXj48", - "2MwMr9dW3hrkgsmpWivobrwScfXC8hFsg4N", "2My9qRCuUBJ9aZohh8f4VQoXvBgmP9pBE11", "2MyHm9yFdm3aou91PLWzEVDeWrcrC5re4GS", "2N73XvH7vdzKr7UGHFkAeAUJFz4o8zTFeZY", - "2MwPLTmV6469VBcDxcsnotq4Qbf8CRX7DWz", "2MtmeB8wEGepSRodY7sq7myZVmFsBWAXYpW", "2N1WmRvcqMomQGePwvkd5QrKXQuYePDZh9Z", "2MwuBXGGBAPK2TupdoQK2Fw63vitJb7RUJZ", - "2Mz4XXqLy2TC5bmBczjakVeqajFo5D3jma2", "2NB19923xi5D9MPqZZvkvH5VbQ2MNRfW9e2", "2NBKhC9RJPPxA8B8bdPvvYvGGjkSoTfdrKh", "2Mzn2q4ZmReBsSQFHRscXav4Xt44wXWeo9a", - "2N1BqHdQV1r6NBeF3bbj3rE1by3MPrwgbbb", "2N6VpEUSwCvh1FCuVKb9eZCxcFnZuzcxB6f", "2N2Uq4i7DYaq2ngJZi4eXf9DAXuDYCDKMzc", "2MwsKBtaZeVKzD51otkAyBDoeuaDDK8wgqe", - "2NCajs4c2PeW8pWZxyMUiV3rDkEYyYnRAhQ", "2MuGtcBJQLfJD6GFbXy7iTtG8QasgZ8qd3Y", "2NFZ3yjeBSS3FKMy1N1zTeSEyqiRgnH35v4", "2Mvv8o9U4dbJjgWPvLDy3L6Sh74Wmynf36q", + "t2UNzUUx8mWBCRYPRezvA363EYXyEpHokyi", "t2N9PH9Wk9xjqYg9iin1Ua3aekJqfAtE543", "t2NGQjYMQhFndDHguvUw4wZdNdsssA6K7x2", "t27ktmq1kbeCWiQ5TZ7w5npSzcdbBmTB7v6", + "t2GcBttAKD2WTHka8HyGc2dfvVTKYZUfHmJ", "t2Q3vxWaD9LrdqUE8Xd9Ddjpr9pUQ2aGotK", "t2TTfWDsYu998fHWzVP9Gns4fgxXXRi1Wzu", "t2KS6R4MMWdSBMjLCiw2iMyhWGRQPmyRqDn", + "t2Q2ELrgotWv3Eec6LEtMMiiQ8dtW38u8Tj", "t2AEgJA88vTWAKqxJDFUEJWyHUtQAZi5G1D", "t2HCSdmpq1TQKksuwPQevwAzPTgfJ2rkMbG", "t2HQCPFAUQaUdJWHPhg5pPBxit7inaJzubE", + "t2Fzqvq8Y9e6Mn3JNPb982aYsLmq4b5HmhH", "t2HEz7YZQqDUgC5h4y2WSD3mWneqJNVRjjJ", "t2GCR1SCk687Eeo5NEZ23MLsms7JjVWBgfG", "t2KyiPR9Lztq2w1w747X6W4nkUMAGL8M9KN", + "t2UxymadyxSyVihmbq7S1yxw5dCBqJ1S4jT", "t2AVeMy7fdmTcJhckqiKRG8B7F1vccEhSqU", "t26m7LwihQzD2sH7ZVhYpPJM5j7kzwbfKW9", "t2DgwUNTe7NxuyPU6fxsB5xJXap3E4yWXrN", + "t2U6funcXA11fC9SZehyvUL3rk3Vhuh7fzS", "t284JhyS8LGM72Tx1porSqwrcq3CejthP1p", "t29egu8QcpzKeLoPLqWS6QVMnUUPQdF6eNm", "t29LqD9p9D3B26euBwFi6mfcWu8HPA38VNs", + "t28GsAMCxAyLy85XaasddDzaYFTtfewr86y", "t2GV44QyaikQPLUfm6oTfZnw71LLjnR7gDG", "t2U2QzNLQ1jtAu4L6xxVnRXLBsQpQvGRR2g", "t2QKGr5PNan7nrwDgseyHMN9NFeeuUjCh8b", + "t2AfS8u6HwBeJpKpbuxztvRjupKQDXqnrwa", "t2CTRQUViQd3CWMhnKhFnUHqDLUyTxmWhJs", "t2CbM9EqszNURqh1UXZBXYhwp1R4GwEhWRE", "t2LM7uYiAsKDU42GNSnMwDxbZ8s1DowQzYH", + "t2AgvT35LHR378AE3ouz6xKMhkTLHLJC6nD", "t285EAQXUVyi4NMddJv2QqTrnv45GRMbP8e", "t2EpMRCD5b8f2DCQ37npNULcpZhkjC8muqA", "t2BCmWXrRPiCeQTpizSWKKRPM5X6PS7umDY", + "t2DN7X6wDFn5hYKBiBmn3Z98st419yaTVTH", "t2QJj8HeCwQ6mHwqekxxDLZntYpZTHNU62t", "t2QdHBR1Yciqn4j8gpS8DcQZZtYetKvfNj3", "t2E5cpLA1ey5VNxFNcuopeQMq2rH2NHiPdu", + "t2EVRGtzjFAyz8CF8ndvLuiJu7qZUfDa93H", "t2KoQDk3BSFadBkuaWdLwchFuQamzw9RE4L", "t2FnR3yhTmuiejEJeu6qpidWTghRd1HpjLt", "t2BAuBAAospDc9d1u5nNGEi6x4NRJBD2PQ2", + "t2RtKrLCGcyPkm4a4APg1YY9Wu2m4R2PgrB", "t28aUbSteZzBq2pFgj1K1XNZRZP5mMMyakV", "t2Urdy1ERfkvsFuy6Z4BkhvYGzWdmivfAFR", "t2ADinR4JrvCMd4Q1XGALPajzFrirqvhED6", }; assert(vFoundersRewardAddress.size() <= consensus.GetLastFoundersRewardBlockHeight()); } @@ -296,7 +306,7 @@ public: }; // Founders reward script expects a vector of 2-of-3 multisig addresses - vFoundersRewardAddress = { "2N2e2FRfP9D1dRN1oRWkH7pbFM69eGNAuQ4" }; + vFoundersRewardAddress = { "t2FwcEhFdNXuFMv1tcYwaBJtYVtMj8b1uTg" }; assert(vFoundersRewardAddress.size() <= consensus.GetLastFoundersRewardBlockHeight()); } }; diff --git a/src/gtest/test_foundersreward.cpp b/src/gtest/test_foundersreward.cpp index 66e3081d..4c65b11a 100644 --- a/src/gtest/test_foundersreward.cpp +++ b/src/gtest/test_foundersreward.cpp @@ -90,11 +90,11 @@ TEST(founders_reward_test, general) { CChainParams params = Params(); // First testnet reward: - // address = 2NF5QVDMtYBHaUzPLTxirybjwPjm9wVwacv + // address = t2UNzUUx8mWBCRYPRezvA363EYXyEpHokyi // script = OP_HASH160 ef775f1f997f122a062fff1a2d7443abd1f9c642 OP_EQUAL // raw script = a914ef775f1f997f122a062fff1a2d7443abd1f9c64287 EXPECT_EQ(params.GetFoundersRewardScriptAtHeight(1), ParseHex("a914ef775f1f997f122a062fff1a2d7443abd1f9c64287")); - EXPECT_EQ(params.GetFoundersRewardAddressAtHeight(1), "2NF5QVDMtYBHaUzPLTxirybjwPjm9wVwacv"); + EXPECT_EQ(params.GetFoundersRewardAddressAtHeight(1), "t2UNzUUx8mWBCRYPRezvA363EYXyEpHokyi"); int maxHeight = params.GetConsensus().GetLastFoundersRewardBlockHeight(); @@ -175,4 +175,4 @@ TEST(founders_reward_test, per_address_reward_mainnet) { TEST(founders_reward_test, per_address_reward_testnet) { SelectParams(CBaseChainParams::TESTNET); verifyNumberOfRewards(); -} \ No newline at end of file +} diff --git a/src/test/data/base58_keys_valid.json b/src/test/data/base58_keys_valid.json index e1e252e2..6cfed385 100644 --- a/src/test/data/base58_keys_valid.json +++ b/src/test/data/base58_keys_valid.json @@ -1,6 +1,6 @@ [ [ - "1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i", + "t1T8yaLVhNqxA5KJcmiqqFN88e8DNp2PBfF", "65a16059864a2fdbc7c99a4723a8395bc6f188eb", { "addrType": "pubkey", @@ -9,7 +9,7 @@ } ], [ - "3CMNFxN1oHBc4R1EpboAL5yzHGgE611Xou", + "t3VDyGHn9mbyCf448m2cHTu5uXvsJpKHbiZ", "74f209f6ea907e2ea48f74fae05782ae8a665257", { "addrType": "script", @@ -18,7 +18,7 @@ } ], [ - "mo9ncXisMeAoXwqcV5EWuyncbmCcQN4rVs", + "tmHMBeeYRuc2eVicLNfP15YLxbQsooCA6jb", "53c0307d6851aa0ce7825ba883c6bd9ad242b486", { "addrType": "pubkey", @@ -27,7 +27,7 @@ } ], [ - "2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br", + "t2Fbo6DBKKVYw1SfrY8bEgz56hYEhywhEN6", "6349a418fc4578d10a372b54b45c280cc8c4382f", { "addrType": "script", @@ -72,7 +72,7 @@ } ], [ - "1Ax4gZtb7gAit2TivwejZHYtNNLT18PUXJ", + "t1TpfguJj5zxKUfWcsNTrh6eod2XXsTKtvB", "6d23156cbbdcc82a5a47eee4c2c7c583c18b6bf4", { "addrType": "pubkey", @@ -81,7 +81,7 @@ } ], [ - "3QjYXhTkvuj8qPaXHTTWb5wjXhdsLAAWVy", + "t3hc9Y2stuEWjS2dRDtGdiu3enMpxAbeUiK", "fcc5460dd6e2487c7d75b1963625da0e8f4c5975", { "addrType": "script", @@ -90,7 +90,7 @@ } ], [ - "n3ZddxzLvAY9o7184TB4c6FJasAybsw4HZ", + "tmXm2g5ouU8Pzksmqx3KYmeoeaWrAvj3rB5", "f1d470f9b02370fdec2e6b708b08ac431bf7a5f7", { "addrType": "pubkey", @@ -99,7 +99,7 @@ } ], [ - "2NBFNJTktNa7GZusGbDbGKRZTxdK9VVez3n", + "t2QYxHjM8btztWTsMnFnZNurm7RXENk9ZhR", "c579342c2c4c9220205e2cdc285617040c924a0a", { "addrType": "script", @@ -144,7 +144,7 @@ } ], [ - "1C5bSj1iEGUgSTbziymG7Cn18ENQuT36vv", + "t1UxCT4RrCbGH36etfQaPF1svNtZVhsqs5A", "7987ccaa53d02c8873487ef919677cd3db7a6912", { "addrType": "pubkey", @@ -153,7 +153,7 @@ } ], [ - "3AnNxabYGoTxYiTEZwFEnerUoeFXK2Zoks", + "t3Teyxv1gF8FZ9MW8WN4MvTxQ4JScABsKfL", "63bcc565f9e68ee0189dd5cc67f1b0e5f02f45cb", { "addrType": "script", @@ -162,7 +162,7 @@ } ], [ - "n3LnJXCqbPjghuVs8ph9CYsAe4Sh4j97wk", + "tmXYBLe2Q9MbXfgGb2QqdN7RWdi7tQ2z8ya", "ef66444b5b17f14e8fae6e7e19b045a78c54fd79", { "addrType": "pubkey", @@ -171,7 +171,7 @@ } ], [ - "2NB72XtkjpnATMggui83aEtPawyyKvnbX2o", + "t2QQcXALz4745JEgzuAEsJNgt6nBQpsqegu", "c3e55fceceaa4391ed2a9677f4a4d34eacd021a0", { "addrType": "script", @@ -216,7 +216,7 @@ } ], [ - "1Gqk4Tv79P91Cc1STQtU3s1W6277M2CVWu", + "t1ZiM4oLF7hvboF4LPqhbBg7RLgJCCJC6Tj", "adc1cc2081a27206fae25792f28bbc55b831549d", { "addrType": "pubkey", @@ -225,7 +225,7 @@ } ], [ - "33vt8ViH5jsr115AGkW6cEmEz9MpvJSwDk", + "t3LoV8q8R44fSbe84DBKDk3sAEoYum4hQYj", "188f91a931947eddd7432d6e614387e32b244709", { "addrType": "script", @@ -234,7 +234,7 @@ } ], [ - "mhaMcBxNh5cqXm4aTQ6EcVbKtfL6LGyK2H", + "tmBmkeJmwF3UgVXqJLzEin49ftK1HmsqYup", "1694f5bc1a7295b600f40018a618a6ea48eeb498", { "addrType": "pubkey", @@ -243,7 +243,7 @@ } ], [ - "2MxgPqX1iThW3oZVk9KoFcE5M4JpiETssVN", + "t2Byypnbxh2Pfk7VqLMzYfiNeD72o6yvtqX", "3b9b3fd7a50d4f08d1a5b0f62f644fa7115ae2f3", { "addrType": "script", @@ -288,7 +288,7 @@ } ], [ - "1JwMWBVLtiqtscbaRHai4pqHokhFCbtoB4", + "t1boxWWuUs3dVUFeUMiPqCdwD4QtL1AMx9G", "c4c1b72491ede1eedaca00618407ee0b772cad0d", { "addrType": "pubkey", @@ -297,7 +297,7 @@ } ], [ - "3QCzvfL4ZRvmJFiWWBVwxfdaNBT8EtxB5y", + "t3h5bvzkCXkiMttmQScK56UjVcqeD3NnReW", "f6fe69bcb548a829cce4c57bf6fff8af3a5981f9", { "addrType": "script", @@ -306,7 +306,7 @@ } ], [ - "mizXiucXRCsEriQCHUkCqef9ph9qtPbZZ6", + "tmDBvm2S5yAj5pVAvB4th1DDVpLq3KuN8S1", "261f83568a098a8638844bd7aeca039d5f2352c0", { "addrType": "pubkey", @@ -315,7 +315,7 @@ } ], [ - "2NEWDzHWwY5ZZp8CQWbB7ouNMLqCia6YRda", + "t2TooyZ7BmQTBkgCVhdNQsPfeVdQoWqsHQa", "e930e1834a4d234702773951d627cce82fbb5d2e", { "addrType": "script", @@ -360,7 +360,7 @@ } ], [ - "19dcawoKcZdQz365WpXWMhX6QCUpR9SY4r", + "t1SWDbHDTatR1ag8yTFLdVWd1erfu7Pbbjk", "5eadaf9bb7121f0f192561a5a62f5e5f54210292", { "addrType": "pubkey", @@ -369,7 +369,7 @@ } ], [ - "37Sp6Rv3y4kVd1nQ1JV5pfqXccHNyZm1x3", + "t3QKR6mLBwPY6DeqHwjJCxUwSsGUToB5sWJ", "3f210e7277c899c3a155cc1c90f4106cbddeec6e", { "addrType": "script", @@ -378,7 +378,7 @@ } ], [ - "myoqcgYiehufrsnnkqdqbp69dddVDMopJu", + "tmU1EeoNHCfmWpeZWeRnKmNeVdHJgZjse5G", "c8a3c2a09a298592c3e180f02487cd91ba3400b5", { "addrType": "pubkey", @@ -387,7 +387,7 @@ } ], [ - "2N7FuwuUuoTBrDFdrAZ9KxBmtqMLxce9i1C", + "t2LZVwB5A2n5U9odwMbLd1g5Bz9Z3ZFoCJH", "99b31df7c9068d1481b596578ddbb4d3bd90baeb", { "addrType": "script", @@ -432,7 +432,7 @@ } ], [ - "13p1ijLwsnrcuyqcTvJXkq2ASdXqcnEBLE", + "t1Lgcj4m5r7eDWctWQM7ete85hHivQxMjBZ", "1ed467017f043e91ed4c44b4e8dd674db211c4e6", { "addrType": "pubkey", @@ -441,7 +441,7 @@ } ], [ - "3ALJH9Y951VCGcVZYAdpA3KchoP9McEj1G", + "t3TCuHUxH3LGnsFYTUbSwHrRXxTaEA8hAaf", "5ece0cadddc415b1980f001785947120acdb36fc", { "addrType": "script", diff --git a/src/test/data/bitcoin-util-test.json b/src/test/data/bitcoin-util-test.json index 6090421c..ddcff21c 100644 --- a/src/test/data/bitcoin-util-test.json +++ b/src/test/data/bitcoin-util-test.json @@ -39,8 +39,8 @@ "in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0", "in=bf829c6bcf84579331337659d31f89dfd138f7f7785802d5501c92333145ca7c:18", "in=22a6f904655d53ae2ff70e701a0bbd90aa3975c0f40bfc6cc996a9049e31cdfc:1", - "outaddr=0.18:13tuJJDR2RgArmgfv6JScSdreahzgc4T6o", - "outaddr=4:1P8yWvZW8jVihP1bzHeqfE4aoXNX8AVa46"], + "outaddr=0.18:t1LmWJddYzkTmTQjZrX7ZkFjmuEu5XKpGKb", + "outaddr=4:t1g1aXFye74HKJ24VviTxo3AW4BZbyCni5H"], "output_cmp": "txcreate1.hex" }, { "exec": "./bitcoin-tx", @@ -54,7 +54,7 @@ "set=privatekeys:[\"5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDf\"]", "set=prevtxs:[{\"txid\":\"4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc59485\",\"vout\":0,\"scriptPubKey\":\"4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc59485\"}]", "sign=ALL", - "outaddr=0.001:193P6LtvS4nCnkDvM9uXn1gsSRqh4aDAz7"], + "outaddr=0.001:t1Ruz6gK4QPZoPPGpHaieupnnh62mktjQE7"], "output_cmp": "txcreatesign.hex" } ] diff --git a/src/test/key_tests.cpp b/src/test/key_tests.cpp index 329883b2..37e1eb24 100644 --- a/src/test/key_tests.cpp +++ b/src/test/key_tests.cpp @@ -25,13 +25,13 @@ static const string strSecret1 ("5HxWvvfubhXpYYpS3tJkw6fq9jE9j18THftkZjHHfmF static const string strSecret2 ("5KC4ejrDjv152FGwP386VD1i2NYc5KkfSMyv1nGy1VGDxGHqVY3"); static const string strSecret1C ("Kwr371tjA9u2rFSMZjTNun2PXXP3WPZu2afRHTcta6KxEUdm1vEw"); static const string strSecret2C ("L3Hq7a8FEQwJkW1M2GNKDW28546Vp5miewcCzSqUD9kCAXrJdS3g"); -static const CBitcoinAddress addr1 ("1QFqqMUD55ZV3PJEJZtaKCsQmjLT6JkjvJ"); -static const CBitcoinAddress addr2 ("1F5y5E5FMc5YzdJtB9hLaUe43GDxEKXENJ"); -static const CBitcoinAddress addr1C("1NoJrossxPBKfCHuJXT4HadJrXRE9Fxiqs"); -static const CBitcoinAddress addr2C("1CRj2HyM1CXWzHAXLQtiGLyggNT9WQqsDs"); +static const CBitcoinAddress addr1 ("t1h8SqgtM3QM5e2M8EzhhT1yL2PXXtA6oqe"); +static const CBitcoinAddress addr2 ("t1Xxa5ZVPKvs9bGMn7aWTiHjyHvR31XkUst"); +static const CBitcoinAddress addr1C("t1ffus9J1vhxvFqLoExGBRPjE7BcJxiSCTC"); +static const CBitcoinAddress addr2C("t1VJL2dPUyXK7avDRGqhqQA5bw2eEMdhyg6"); -static const string strAddressBad("1HV9Lc3sNHZxwj4Zk6fB38tEmBryq2cBiF"); +static const string strAddressBad("t1aMkLwU1LcMZYN7TgXUJAwzA1r44dbLkSp"); #ifdef KEY_TESTS_DUMPINFO diff --git a/src/test/rpc_tests.cpp b/src/test/rpc_tests.cpp index 5899671d..7eaeda9f 100644 --- a/src/test/rpc_tests.cpp +++ b/src/test/rpc_tests.cpp @@ -99,7 +99,7 @@ BOOST_AUTO_TEST_CASE(rpc_rawsign) "\"vout\":1,\"scriptPubKey\":\"a914b10c9df5f7edf436c697f02f1efdba4cf399615187\"," "\"redeemScript\":\"512103debedc17b3df2badbcdd86d5feb4562b86fe182e5998abd8bcd4f122c6155b1b21027e940bb73ab8732bfdf7f9216ecefca5b94d6df834e77e108f68e66f126044c052ae\"}]"; r = CallRPC(string("createrawtransaction ")+prevout+" "+ - "{\"3HqAe9LtNBjnsfM4CyYaWTnvCaUYT7v4oZ\":11}"); + "{\"t3ahmeUm2LWXPUJPx9QMheGtqTEfdDdgr7p\":11}"); string notsigned = r.get_str(); string privkey1 = "\"KzsXybp9jX64P5ekX1KUxRQ79Jht9uzW7LorgwE65i5rWACL6LQe\""; string privkey2 = "\"Kyhdf5LuKTRx4ge69ybABsiUAWjVRK4XGxAKk2FQLp2HjGMy87Z4\""; diff --git a/src/test/rpc_wallet_tests.cpp b/src/test/rpc_wallet_tests.cpp index 46229a9a..5a4bd3a0 100644 --- a/src/test/rpc_wallet_tests.cpp +++ b/src/test/rpc_wallet_tests.cpp @@ -110,11 +110,11 @@ BOOST_AUTO_TEST_CASE(rpc_wallet) * setaccount *********************************/ BOOST_CHECK_NO_THROW(CallRPC("setaccount " + setaccountDemoAddress.ToString() + " nullaccount")); - /* 1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XZ is not owned by the test wallet. */ - BOOST_CHECK_THROW(CallRPC("setaccount 1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XZ nullaccount"), runtime_error); + /* t1VtArtnn1dGPiD2WFfMXYXW5mHM3q1GpgV is not owned by the test wallet. */ + BOOST_CHECK_THROW(CallRPC("setaccount t1VtArtnn1dGPiD2WFfMXYXW5mHM3q1GpgV nullaccount"), runtime_error); BOOST_CHECK_THROW(CallRPC("setaccount"), runtime_error); - /* 1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4X (33 chars) is an illegal address (should be 34 chars) */ - BOOST_CHECK_THROW(CallRPC("setaccount 1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4X nullaccount"), runtime_error); + /* t1VtArtnn1dGPiD2WFfMXYXW5mHM3q1Gpg (34 chars) is an illegal address (should be 35 chars) */ + BOOST_CHECK_THROW(CallRPC("setaccount t1VtArtnn1dGPiD2WFfMXYXW5mHM3q1Gpg nullaccount"), runtime_error); /********************************* @@ -214,15 +214,15 @@ BOOST_AUTO_TEST_CASE(rpc_wallet) BOOST_CHECK_NO_THROW(retValue = CallRPC("signmessage " + demoAddress.ToString() + " mymessage")); BOOST_CHECK_THROW(CallRPC("signmessage"), runtime_error); /* Should throw error because this address is not loaded in the wallet */ - BOOST_CHECK_THROW(CallRPC("signmessage 1QFqqMUD55ZV3PJEJZtaKCsQmjLT6JkjvJ mymessage"), runtime_error); + BOOST_CHECK_THROW(CallRPC("signmessage t1h8SqgtM3QM5e2M8EzhhT1yL2PXXtA6oqe mymessage"), runtime_error); /* missing arguments */ BOOST_CHECK_THROW(CallRPC("verifymessage " + demoAddress.ToString()), runtime_error); BOOST_CHECK_THROW(CallRPC("verifymessage " + demoAddress.ToString() + " " + retValue.get_str()), runtime_error); /* Illegal address */ - BOOST_CHECK_THROW(CallRPC("verifymessage 1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4X " + retValue.get_str() + " mymessage"), runtime_error); + BOOST_CHECK_THROW(CallRPC("verifymessage t1VtArtnn1dGPiD2WFfMXYXW5mHM3q1Gpg " + retValue.get_str() + " mymessage"), runtime_error); /* wrong address */ - BOOST_CHECK(CallRPC("verifymessage 1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XZ " + retValue.get_str() + " mymessage").get_bool() == false); + BOOST_CHECK(CallRPC("verifymessage t1VtArtnn1dGPiD2WFfMXYXW5mHM3q1GpgV " + retValue.get_str() + " mymessage").get_bool() == false); /* Correct address and signature but wrong message */ BOOST_CHECK(CallRPC("verifymessage " + demoAddress.ToString() + " " + retValue.get_str() + " wrongmessage").get_bool() == false); /* Correct address, message and signature*/ @@ -265,9 +265,9 @@ BOOST_AUTO_TEST_CASE(rpc_wallet_getbalance) BOOST_CHECK_THROW(CallRPC("z_getbalance too many args"), runtime_error); BOOST_CHECK_THROW(CallRPC("z_getbalance invalidaddress"), runtime_error); - BOOST_CHECK_NO_THROW(CallRPC("z_getbalance mhu9XfNv9o9JfTmEoTA6xKJHBfH2BVF8qG")); - BOOST_CHECK_THROW(CallRPC("z_getbalance mhu9XfNv9o9JfTmEoTA6xKJHBfH2BVF8qG -1"), runtime_error); - BOOST_CHECK_NO_THROW(CallRPC("z_getbalance mhu9XfNv9o9JfTmEoTA6xKJHBfH2BVF8qG 0")); + BOOST_CHECK_NO_THROW(CallRPC("z_getbalance tmC6YZnCUhm19dEXxh3Jb7srdBJxDawaCab")); + BOOST_CHECK_THROW(CallRPC("z_getbalance tmC6YZnCUhm19dEXxh3Jb7srdBJxDawaCab -1"), runtime_error); + BOOST_CHECK_NO_THROW(CallRPC("z_getbalance tmC6YZnCUhm19dEXxh3Jb7srdBJxDawaCab 0")); BOOST_CHECK_THROW(CallRPC("z_getbalance tnRZ8bPq2pff3xBWhTJhNkVUkm2uhzksDeW5PvEa7aFKGT9Qi3YgTALZfjaY4jU3HLVKBtHdSXxoPoLA3naMPcHBcY88FcF 1"), runtime_error); @@ -278,9 +278,9 @@ BOOST_AUTO_TEST_CASE(rpc_wallet_getbalance) BOOST_CHECK_THROW(CallRPC("z_listreceivedbyaddress too many args"), runtime_error); // negative minconf not allowed - BOOST_CHECK_THROW(CallRPC("z_listreceivedbyaddress mhu9XfNv9o9JfTmEoTA6xKJHBfH2BVF8qG -1"), runtime_error); + BOOST_CHECK_THROW(CallRPC("z_listreceivedbyaddress tmC6YZnCUhm19dEXxh3Jb7srdBJxDawaCab -1"), runtime_error); // invalid zaddr, taddr not allowed - BOOST_CHECK_THROW(CallRPC("z_listreceivedbyaddress mhu9XfNv9o9JfTmEoTA6xKJHBfH2BVF8qG 0"), runtime_error); + BOOST_CHECK_THROW(CallRPC("z_listreceivedbyaddress tmC6YZnCUhm19dEXxh3Jb7srdBJxDawaCab 0"), runtime_error); // don't have the spending key BOOST_CHECK_THROW(CallRPC("z_listreceivedbyaddress tnRZ8bPq2pff3xBWhTJhNkVUkm2uhzksDeW5PvEa7aFKGT9Qi3YgTALZfjaY4jU3HLVKBtHdSXxoPoLA3naMPcHBcY88FcF 1"), runtime_error); } @@ -753,10 +753,10 @@ BOOST_AUTO_TEST_CASE(rpc_z_sendmany_parameters) // bad from address BOOST_CHECK_THROW(CallRPC("z_sendmany " - "INVALIDmwehwBzEHJTB5hiyxjmVkuFu9CHD2Cojjs []"), runtime_error); + "INVALIDtmRr6yJonqGK23UVhrKuyvTpF8qxQQjKigJ []"), runtime_error); // empty amounts BOOST_CHECK_THROW(CallRPC("z_sendmany " - "mwehwBzEHJTB5hiyxjmVkuFu9CHD2Cojjs []"), runtime_error); + "tmRr6yJonqGK23UVhrKuyvTpF8qxQQjKigJ []"), runtime_error); // don't have the spending key for this address BOOST_CHECK_THROW(CallRPC("z_sendmany " @@ -765,9 +765,9 @@ BOOST_AUTO_TEST_CASE(rpc_z_sendmany_parameters) // duplicate address BOOST_CHECK_THROW(CallRPC("z_sendmany " - "mwehwBzEHJTB5hiyxjmVkuFu9CHD2Cojjs " - "[{\"address\":\"mvBkHw3UTeV2ivipmSA6uo8yjN4DqZ5KoG\", \"amount\":50.0}," - " {\"address\":\"mvBkHw3UTeV2ivipmSA6uo8yjN4DqZ5KoG\", \"amount\":12.0} ]" + "tmRr6yJonqGK23UVhrKuyvTpF8qxQQjKigJ " + "[{\"address\":\"tmQP9L3s31cLsghVYf2Jb5MhKj1jRBPoeQn\", \"amount\":50.0}," + " {\"address\":\"tmQP9L3s31cLsghVYf2Jb5MhKj1jRBPoeQn\", \"amount\":12.0} ]" ), runtime_error); // memo bigger than allowed length of ZC_MEMO_SIZE @@ -776,7 +776,7 @@ BOOST_AUTO_TEST_CASE(rpc_z_sendmany_parameters) std::string badmemo(v.begin(), v.end()); CZCPaymentAddress pa = pwalletMain->GenerateNewZKey(); std::string zaddr1 = pa.ToString(); - BOOST_CHECK_THROW(CallRPC(string("z_sendmany mwehwBzEHJTB5hiyxjmVkuFu9CHD2Cojjs ") + BOOST_CHECK_THROW(CallRPC(string("z_sendmany tmRr6yJonqGK23UVhrKuyvTpF8qxQQjKigJ ") + "[{\"address\":\"" + zaddr1 + "\", \"amount\":123.456}]"), runtime_error); // Test constructor of AsyncRPCOperation_sendmany @@ -793,7 +793,7 @@ BOOST_AUTO_TEST_CASE(rpc_z_sendmany_parameters) } try { - std::shared_ptr operation( new AsyncRPCOperation_sendmany("mwehwBzEHJTB5hiyxjmVkuFu9CHD2Cojjs", {}, {}, 1) ); + std::shared_ptr operation( new AsyncRPCOperation_sendmany("tmRr6yJonqGK23UVhrKuyvTpF8qxQQjKigJ", {}, {}, 1) ); } catch (const Object& objError) { BOOST_CHECK( find_error(objError, "No recipients")); } @@ -805,7 +805,7 @@ BOOST_AUTO_TEST_CASE(rpc_z_sendmany_parameters) BOOST_CHECK( find_error(objError, "payment address is invalid")); } - // This test is for testnet addresses which begin with 't' not 'z'. + // Testnet payment addresses begin with 'zt'. This test detects an incorrect prefix. try { std::vector recipients = { SendManyRecipient("dummy",1.0, "") }; std::shared_ptr operation( new AsyncRPCOperation_sendmany("zcMuhvq8sEkHALuSU2i4NbNQxshSAYrpCExec45ZjtivYPbuiFPwk6WHy4SvsbeZ4siy1WheuRGjtaJmoD1J8bFqNXhsG6U", recipients, {}, 1) ); @@ -817,7 +817,7 @@ BOOST_AUTO_TEST_CASE(rpc_z_sendmany_parameters) // invokes a method on pwalletMain, which is undefined in the google test environment. try { std::vector recipients = { SendManyRecipient("dummy",1.0, "") }; - std::shared_ptr operation( new AsyncRPCOperation_sendmany("tnpoQJVnYBZZqkFadj2bJJLThNCxbADGB5gSGeYTAGGrT5tejsxY9Zc1BtY8nnHmZkBUkJ1oSfbhTJhm72WiZizvkZz5aH1", recipients, {}, 1) ); + std::shared_ptr operation( new AsyncRPCOperation_sendmany("ztjiDe569DPNbyTE6TSdJTaSDhoXEHLGvYoUnBU1wfVNU52TEyT6berYtySkd21njAeEoh8fFJUT42kua9r8EnhBaEKqCpP", recipients, {}, 1) ); } catch (const Object& objError) { BOOST_CHECK( find_error(objError, "no spending key found for zaddr")); } @@ -938,9 +938,9 @@ BOOST_AUTO_TEST_CASE(rpc_z_sendmany_internals) // add_taddr_outputs_to_tx() will append many vouts to a raw transaction { std::vector recipients = { - SendManyRecipient("my53aS89nQ8SgJ8YgJ34cMHTWR33P5RTJ5",CAmount(1.23), ""), - SendManyRecipient("mzFCFsENQq5VxfCeKwTTb1QPWKYcKXPNvj",CAmount(4.56), ""), - SendManyRecipient("n4MmVRZdq7EgcJXgcvF5jkZT7wzH2CaWkv",CAmount(7.89), ""), + SendManyRecipient("tmTGScYwiLMzHe4uGZtBYmuqoW4iEoYNMXt",CAmount(1.23), ""), + SendManyRecipient("tmUSbHz3vxnwLvRyNDXbwkZxjVyDodMJEhh",CAmount(4.56), ""), + SendManyRecipient("tmYZAXYPCP56Xa5JQWWPZuK7o7bfUQW6kkd",CAmount(7.89), ""), }; std::shared_ptr operation( new AsyncRPCOperation_sendmany(zaddr1, recipients, {}, 1) ); std::shared_ptr ptr = std::dynamic_pointer_cast (operation);