[−][src]Struct cash_tx_builder::TxBuilder
Transaction builder
Methods
impl<F: Fn(&str) -> Option<(Vec<u8>, bool)>> TxBuilder<F>
[src]
pub fn new(address_parser: F) -> TxBuilder<F>
[src]
Construct new transaction builder
Arguments
pub fn from_tx(tx: &Transaction, address_parser: F) -> Result<TxBuilder<F>>
[src]
Construct transaction builder from Transaction
Arguments
-
tx
- transaction -
address_parser
- address parser closureArguments
- address
Returns
- hashed
public key
or hashedredeem script
true
if address is P2PKH,false
if address is P2SH
or
None
Example
let hex = hex!("0100000001339a4b15a25a107057a2aedba3655bfe9aca9dbfc8c4281adbff519764385569010000006a47304402204bdde4960e3733c64b8debc7c2ce609699e418de91e055594a7fd53f07e618b90220066f02e1f9a3e26e76ff4220de3b2b17dab63684c1fb9ef567ed2056ba3a96d44121030a7decd850db8d31c819bd34a0f9934f9c51e1f78718f59c886a3c8389c0d1deffffffff02d7f52d01000000001976a914214ffcd3e7668da243cc4006759f6fe5f3c60bfe88ac10270000000000001976a91492fc13573caf1bd38bd65738428406f4af80793a88ac00000000"); let txid = "7bdc016701e4c5d7ec34e99954ec3921140728d2c58b1da3cf6aa34c760d8a47"; let tx = Transaction::try_from(&hex[..])?; let txb = TxBuilder::from_tx(&tx, parser)?; assert_eq!(txb.txid(), txid);
pub fn set_version(&mut self, v: u32)
[src]
Set transaction version (default: 2)
Arguments
v
- version
Example
txb.set_version(1); assert_eq!(txb.to_vec()[0..4], (0x01 as u32).to_le_bytes());
pub fn set_fork_id(&mut self, id: u32)
[src]
Set fork id (default: 0)
Arguments
id
- forkid
Example
let hash_type = sig_hash::ALL | sig_hash::FORKID; txb.set_fork_id(1); let sighash = txb.witness_v0_hash(hash_type, 0, None, None)?; assert_eq!(sighash, hex!("e99f87c70a16dfa390ea0ddd0748709a8548b7b97c62f91754d74264c687db62"));
pub fn add_input(
&mut self,
txid: &str,
index: u32,
value: Option<u64>,
script: Option<&[u8]>,
sequence_no: Option<u32>
) -> Result<()>
[src]
&mut self,
txid: &str,
index: u32,
value: Option<u64>,
script: Option<&[u8]>,
sequence_no: Option<u32>
) -> Result<()>
Add input
Arguments
txid
- previous transaction hashindex
- previous txout-indexvalue
- (option) previous valuescript
- (option) previousscriptPubKey
sequence_no
- (option) sequence number
pub fn set_script_sig(&mut self, index: usize, script: &[u8]) -> Result<()>
[src]
pub fn add_address_output(&mut self, value: u64, address: &str) -> Result<()>
[src]
pub fn add_null_data_output(&mut self, data: &[u8]) -> Result<()>
[src]
Add output by null data
Arguments
data
- extra data
Example
txb.add_null_data_output(b"hoge"); assert_eq!(&txb.to_vec()[17..21], b"hoge");
pub fn add_output(&mut self, value: u64, script: &[u8])
[src]
Add output by null data
Arguments
value
- satoshiscript
-scriptPubKey
Example
let script = hex!("76a91432b57f34861bcbe33a701be9ac3a50288fbc0a3d88ac"); txb.add_output(1000, &script); assert_eq!(&txb.to_vec()[15..40], script);
pub fn to_vec(&self) -> Vec<u8>
[src]
pub fn witness_v0_hash(
&self,
hash_type: u32,
index: u32,
prev_value: Option<u64>,
prev_script: Option<&[u8]>
) -> Result<Vec<u8>>
[src]
&self,
hash_type: u32,
index: u32,
prev_value: Option<u64>,
prev_script: Option<&[u8]>
) -> Result<Vec<u8>>
Get digest according to bip143
spec
Arguments
hash_type
- sighash typeindex
- input indexprev_value
- (option) previous valueprev_script
- (option) previous script
pub fn txid(&self) -> String
[src]
Trait Implementations
Auto Trait Implementations
Blanket Implementations
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From for T
[src]
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Same for T
type Output = T
Should always be Self