From 4be8ac80dec7695237daa2641b558c91099950d7 Mon Sep 17 00:00:00 2001 From: Xuejie Xiao Date: Mon, 3 Jun 2019 09:31:10 +0800 Subject: [PATCH] fix: test --- lib/ckb/types/transaction.rb | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/lib/ckb/types/transaction.rb b/lib/ckb/types/transaction.rb index dccfa656..a298a7c2 100644 --- a/lib/ckb/types/transaction.rb +++ b/lib/ckb/types/transaction.rb @@ -34,8 +34,13 @@ def sign(key, tx_hash) signed_witnesses = witnesses.map do |witness| old_data = witness.data || [] - signature_hex_var = signature_hex(key, [tx_hash] + old_data) - data = [key.pubkey, signature_hex_var] + old_data + blake2b = CKB::Blake2b.new + blake2b.update(Utils.hex_to_bin(tx_hash)) + data.each do |datum| + blake2b.update(Utils.hex_to_bin(datum)) + end + message = Utils.bin_to_hex(blake2b.digest) + data = [key.pubkey, key.sign(message)] + old_data Types::Witness.from_h(data: data) end @@ -73,21 +78,6 @@ def self.from_h(hash) witnesses: hash[:witnesses].map { |witness| Witness.from_h(witness) } ) end - - private - - def signature_hex(key, data) - blake2b = CKB::Blake2b.new - data.each do |datum| - blake2b.update(Utils.hex_to_bin(datum)) - end - privkey_bin = Utils.hex_to_bin(key.privkey) - secp_key = Secp256k1::PrivateKey.new(privkey: privkey_bin) - signature_bin = secp_key.ecdsa_serialize( - secp_key.ecdsa_sign(blake2b.digest, raw: true) - ) - Utils.bin_to_hex(signature_bin) - end end end end