Bitcoin Core  0.19.99
P2P Digital Currency
Public Member Functions | Private Attributes | Static Private Attributes | List of all members
CScriptCompressor Class Reference

Compact serializer for scripts. More...

#include <compressor.h>

Collaboration diagram for CScriptCompressor:
[legend]

Public Member Functions

 CScriptCompressor (CScript &scriptIn)
 
template<typename Stream >
void Serialize (Stream &s) const
 
template<typename Stream >
void Unserialize (Stream &s)
 

Private Attributes

CScriptscript
 

Static Private Attributes

static const unsigned int nSpecialScripts = 6
 make this static for now (there are only 6 special scripts defined) this can potentially be extended together with a new nVersion for transactions, in which case this value becomes dependent on nVersion and nHeight of the enclosing transaction. More...
 

Detailed Description

Compact serializer for scripts.

It detects common cases and encodes them much more efficiently. 3 special cases are defined:

Other scripts up to 121 bytes require 1 byte + script length. Above that, scripts up to 16505 bytes require 2 bytes + script length.

Definition at line 36 of file compressor.h.

Constructor & Destructor Documentation

◆ CScriptCompressor()

CScriptCompressor::CScriptCompressor ( CScript scriptIn)
inlineexplicit

Definition at line 49 of file compressor.h.

Member Function Documentation

◆ Serialize()

template<typename Stream >
void CScriptCompressor::Serialize ( Stream &  s) const
inline

Definition at line 52 of file compressor.h.

Here is the call graph for this function:

◆ Unserialize()

template<typename Stream >
void CScriptCompressor::Unserialize ( Stream &  s)
inline

Definition at line 64 of file compressor.h.

Here is the call graph for this function:

Member Data Documentation

◆ nSpecialScripts

const unsigned int CScriptCompressor::nSpecialScripts = 6
staticprivate

make this static for now (there are only 6 special scripts defined) this can potentially be extended together with a new nVersion for transactions, in which case this value becomes dependent on nVersion and nHeight of the enclosing transaction.

Definition at line 45 of file compressor.h.

◆ script

CScript& CScriptCompressor::script
private

Definition at line 47 of file compressor.h.


The documentation for this class was generated from the following file: