[使用bitcoin-abc从公钥获取比特币现金地址

问题描述 投票:0回答:1

嘿,我正在使用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,但是我没有得到正确的地址。...

我也找不到任何示例代码

任何想法?

public-key cryptocurrency
1个回答
0
投票

我成功到达压缩的比特币现金地址:

CPubKey cPubKey = CPubKey(hash.begin(), hash.end()); 
auto dst = GetDestinationForKey(cPubKey, OutputType::LEGACY); 
std::string encoded = EncodeCashAddr(dst, *netParams);

当“哈希”是压缩公共密钥(66个字符)的std :: vector且“已编码”是比特币现金地址已压缩时

如果有人知道如何获取常规地址(未压缩),请告诉我

© www.soinside.com 2019 - 2024. All rights reserved.