4、交易签名实现

比特币系列交易签名

查询UTXO交易信息网站
https://blockchain.info/tx/7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18?show_adv=true
校验签名信息网站
https://live.blockcypher.com/btc-testnet/decodetx/
下面干点正事👇
private void test5(){
        // 币种类型 根据BIP44生产的对应币种 比如BTC/ETH/DOGE ...
        CoinType netParams = CoinConfigUtils.getInstance().getCoinType("0Y");
        // 1、UTXO 列表
        List<UTXO> utxoList = new ArrayList<>();
        // 私钥
        ECKey privKey = ECKey.fromPrivate(StringUtils.parseHexString("自己的私钥"));
        // 接收地址
        Address receiveAddress = Address.fromBase58(netParams, "DQZuuK8tHCj573qLGLiANRKJcukENboG4X");
        // 交易
        Transaction tx = new Transaction(netParams);
        // 添加要发送金额、输出的地址
        tx.addOutput(Coin.valueOf(1000000),receiveAddress);
        // 如果需要找零
        // tx.addOutput(Coin.valueOf(找零数量),自己的地址);
        // 一次UTXO
        // (1) hashID
        Sha256Hash hashId = Sha256Hash.wrap("9c560ce5b128830b7a09bdf6c584b723eb688da0b31028ee739d92461e22d681");
        // (2) 下标
        int index = 0;
        // (3) 交易金额
        Coin coin = Coin.valueOf(399990000);
        // (4) 区块高度
        int height = 2226079;
        // (5) 是否是创世区块
        boolean isCoinBase = false;
        // (6) 待签名脚本
        Script script = new Script(StringUtils.parseHexString("76a914e195b52651163c5d6d7dca2cc3388bce4d700d8288ac"));
        UTXO utxo = new UTXO(hashId,index,coin,height,isCoinBase,script);
        utxoList.add(utxo);
        // 用私钥签名每个输出 utxo
        for (UTXO sUtxo : utxoList) {
            TransactionOutPoint outPoint = new TransactionOutPoint(netParams, sUtxo.getIndex(), sUtxo.getHash());
            tx.addSignedInput(outPoint, sUtxo.getScript(), privKey, Transaction.SigHash.ALL, true);
        }

        tx.getConfidence().setSource(TransactionConfidence.Source.SELF);
        tx.setPurpose(Transaction.Purpose.USER_PAYMENT);
        // 5、生成交易签名
        String hexString = StringUtils.toHexString(tx.bitcoinSerialize());

    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、快速术语检索 比特币地址:(例如:1DSrfJdB2AnWaFNgSbv3MZC2m74996JafV)由一串...
    不如假如阅读 16,185评论 4 87
  • 以太坊白皮书地址:https://github.com/ethereum/wiki/wiki/White-Pape...
    rectinajh阅读 17,942评论 0 46
  • 以太坊(Ethereum ):下一代智能合约和去中心化应用平台 翻译:巨蟹 、少平 译者注:中文读者可以到以太坊爱...
    车圣阅读 3,829评论 1 7
  • 第一次读张爱玲的书,是因为有人反复推荐,本来以为自己是无缘与她相遇的,耐不住磨,就想着要挑一本书来看。 张的许多书...
    龙荒阅读 603评论 0 1
  • 青春是一场盛大的暗恋。 尽管我们的高中可能没有那么帅气的阿亮学长,尽管我们最后都没有变成小水那么优秀的姑娘。 ...
    慢慢小鱼阅读 328评论 3 2