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: OutPointReference to the pegin output on the mainchain
value: u64The value, in satoshis, of the pegin
asset: AssetIdAsset type being pegged in
genesis_hash: BlockHashHash 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: BlockHashThe 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.