serialization of joinsplit
This commit is contained in:
parent
534d09457b
commit
a992d84bb2
|
@ -129,8 +129,8 @@ pub fn serialize_join_split(stream: &mut Stream, join_split: &Option<JoinSplit>)
|
|||
};
|
||||
stream.append(&d.ciphertexts);
|
||||
}
|
||||
stream.append(&join_split.pubkey)
|
||||
.append(&join_split.sig);
|
||||
stream.append(&join_split.pubkey);
|
||||
stream.append(&join_split.sig);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -229,6 +229,7 @@ impl Serializable for Transaction {
|
|||
.append_list(&sapling.outputs);
|
||||
}
|
||||
|
||||
println!("serializing tx! ({:?})", self.join_split);
|
||||
serialize_join_split(stream, &self.join_split);
|
||||
|
||||
if let Some(sapling) = self.sapling.as_ref() {
|
||||
|
|
|
@ -5,7 +5,7 @@ use keys::KeyPair;
|
|||
use crypto::dhash256;
|
||||
use hash::H256;
|
||||
use ser::Stream;
|
||||
use chain::{Transaction, TransactionOutput, OutPoint, TransactionInput};
|
||||
use chain::{Transaction, TransactionOutput, OutPoint, TransactionInput, JoinSplit};
|
||||
use {Script, Builder};
|
||||
|
||||
#[derive(Debug, PartialEq, Clone, Copy)]
|
||||
|
@ -104,6 +104,7 @@ pub struct TransactionInputSigner {
|
|||
pub inputs: Vec<UnsignedTransactionInput>,
|
||||
pub outputs: Vec<TransactionOutput>,
|
||||
pub lock_time: u32,
|
||||
pub join_split: Option<JoinSplit>
|
||||
}
|
||||
|
||||
/// Used for resigning and loading test transactions
|
||||
|
@ -114,6 +115,7 @@ impl From<Transaction> for TransactionInputSigner {
|
|||
inputs: t.inputs.into_iter().map(Into::into).collect(),
|
||||
outputs: t.outputs,
|
||||
lock_time: t.lock_time,
|
||||
join_split: t.join_split,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -177,7 +179,8 @@ impl TransactionInputSigner {
|
|||
outputs: outputs,
|
||||
version: self.version,
|
||||
lock_time: self.lock_time,
|
||||
..Default::default() // TODO
|
||||
join_split: self.join_split.clone(),
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
let mut stream = Stream::default();
|
||||
|
@ -260,6 +263,7 @@ mod tests {
|
|||
lock_time: 0,
|
||||
inputs: vec![unsigned_input],
|
||||
outputs: vec![output],
|
||||
join_split: None,
|
||||
};
|
||||
|
||||
let hash = input_signer.signature_hash(0, &previous_output, SighashBase::All.into());
|
||||
|
|
|
@ -435,7 +435,6 @@ mod tests {
|
|||
use script::{Script, VerificationFlags, TransactionSignatureChecker, TransactionInputSigner, verify_script};
|
||||
|
||||
#[test]
|
||||
#[ignore]
|
||||
fn join_split() {
|
||||
|
||||
let input_hex = "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff05021d010101ffffffff021070d90000000000232102bdbbb2eb3066bb138d31349ce32b7f05871ac08cfb382023155249b213417d82ac045c36000000000017a9147d46a730d31f97b1930d3368a967c309bd4d136a8700000000";
|
||||
|
@ -448,7 +447,7 @@ mod tests {
|
|||
let output_script: Script = coinbase_tx.outputs()[0].script_pubkey.clone().into();
|
||||
let input_script: Script = spending_tx.inputs()[0].script_sig.clone().into();
|
||||
|
||||
let signer: TransactionInputSigner = coinbase_tx.into();
|
||||
let signer: TransactionInputSigner = spending_tx.into();
|
||||
|
||||
let checker = TransactionSignatureChecker {
|
||||
signer: signer,
|
||||
|
|
Loading…
Reference in New Issue