嘿,我正在使用https://github.com/Bitcoin-ABC/bitcoin-abc并尝试从ecdsa公钥获取bch地址。
我有这个压缩的公钥:
publickKey = "02c0fe3501b514b1b2136b4d923de0907314a7c92499fd29a0cb7cf9f731711a19"
这是它的比特币地址:“ 39n8cpkeHhJDzhTVkboagHMbr9WYSLv2Yk”
根据https://cashaddr.bitcoincash.org/,这是它的比特币现金地址:“ bitcoincash:ppvt3t9zkp3flgvgunp0wpp6l9t9tc85kvhtg5zkvr”
我试图这样获得bch地址:
const auto netParams = bCreateChainParams(bCBaseChainParams::MAIN);
CTxDestination dst = CKeyID(uint160S(publickKey));
std::string encoded = EncodeCashAddr(dst, *netParams);
我得到了不同的bitcoincash地址(而不是上面的那个)
我也尝试过:
std::vector<uint8_t> hashVector = std::vector<uint8_t>(uncompressKey(publickKey));
bCashAddrContent keyContent{PUBKEY_TYPE, hashVector};
string encoded = EncodeCashAddr("bitcoincash", keyContent);
当uncompressKey函数解压缩ecdsa密钥并从其中删除headres时。
我也尝试使用SCRIPT_TYPE而不是PUBKEY_TYPE,但是我没有得到正确的地址。...
我也找不到任何示例代码
有什么主意吗?
答案 0 :(得分:0)
我成功到达了压缩比特币现金地址:
CPubKey cPubKey = CPubKey(hash.begin(), hash.end());
auto dst = GetDestinationForKey(cPubKey, OutputType::LEGACY);
std::string encoded = EncodeCashAddr(dst, *netParams);
“ hash”是压缩公共密钥(66个字符)的std :: vector且“ encoded”是比特币现金地址已压缩
如果有人知道如何获取常规地址(未压缩),请告诉我