pub struct PeginData<'tx> {
pub outpoint: OutPoint,
pub value: u64,
pub asset: AssetId,
pub genesis_hash: BlockHash,
pub claim_script: &'tx [u8],
pub tx: &'tx [u8],
pub merkle_proof: &'tx [u8],
pub referenced_block: BlockHash,
}
Expand description
Parsed data from a transaction input’s pegin witness
Fields§
§outpoint: OutPoint
Reference to the pegin output on the mainchain
value: u64
The value, in satoshis, of the pegin
asset: AssetId
Asset type being pegged in
genesis_hash: BlockHash
Hash of genesis block of originating blockchain
claim_script: &'tx [u8]
The claim script that we should hash to tweak our address. Unparsed to avoid unnecessary allocation and copying. Typical use is simply to feed it raw into a hash function.
tx: &'tx [u8]
Mainchain transaction; not parsed to save time/memory since the parsed transaction is typically not useful without auxiliary data (e.g. knowing how to compute pegin addresses for the sidechain).
merkle_proof: &'tx [u8]
Merkle proof of transaction inclusion; also not parsed
referenced_block: BlockHash
The Bitcoin block that the pegin output appears in; scraped from the transaction inclusion proof
Implementations§
source§impl<'tx> PeginData<'tx>
impl<'tx> PeginData<'tx>
sourcepub fn from_pegin_witness(
pegin_witness: &'tx [Vec<u8>],
prevout: OutPoint
) -> Result<PeginData<'tx>, &'static str>
pub fn from_pegin_witness( pegin_witness: &'tx [Vec<u8>], prevout: OutPoint ) -> Result<PeginData<'tx>, &'static str>
Construct the pegin data from a pegin witness. Returns None if not a valid pegin witness.
sourcepub fn to_pegin_witness(&self) -> Vec<Vec<u8>>
pub fn to_pegin_witness(&self) -> Vec<Vec<u8>>
Construct a pegin witness from the pegin data.
sourcepub fn parse_tx(&self) -> Result<Transaction, Error>
pub fn parse_tx(&self) -> Result<Transaction, Error>
Parse the mainchain tx provided as pegin data.
sourcepub fn parse_merkle_proof(&self) -> Result<MerkleBlock, Error>
pub fn parse_merkle_proof(&self) -> Result<MerkleBlock, Error>
Parse the merkle inclusion proof provided as pegin data.