Raven Core
3.0.0
P2P Digital Currency
|
#include "crypto/common.h"
#include "prevector.h"
#include "serialize.h"
#include "amount.h"
#include <assert.h>
#include <climits>
#include <limits>
#include <stdexcept>
#include <stdint.h>
#include <string.h>
#include <string>
#include <vector>
Go to the source code of this file.
Classes | |
class | scriptnum_error |
class | CScriptNum |
class | CScript |
Serialized script, used inside transaction inputs and outputs. More... | |
struct | CScriptWitness |
class | CReserveScript |
Typedefs | |
typedef prevector< 28, unsigned char > | CScriptBase |
We use a prevector for the script to reduce the considerable memory overhead of vectors in cases where they normally contain a small number of small elements. More... | |
Enumerations | |
enum | opcodetype { OP_0 = 0x00, OP_FALSE = OP_0, OP_PUSHDATA1 = 0x4c, OP_PUSHDATA2 = 0x4d, OP_PUSHDATA4 = 0x4e, OP_1NEGATE = 0x4f, OP_RESERVED = 0x50, OP_1 = 0x51, OP_TRUE =OP_1, OP_2 = 0x52, OP_3 = 0x53, OP_4 = 0x54, OP_5 = 0x55, OP_6 = 0x56, OP_7 = 0x57, OP_8 = 0x58, OP_9 = 0x59, OP_10 = 0x5a, OP_11 = 0x5b, OP_12 = 0x5c, OP_13 = 0x5d, OP_14 = 0x5e, OP_15 = 0x5f, OP_16 = 0x60, OP_NOP = 0x61, OP_VER = 0x62, OP_IF = 0x63, OP_NOTIF = 0x64, OP_VERIF = 0x65, OP_VERNOTIF = 0x66, OP_ELSE = 0x67, OP_ENDIF = 0x68, OP_VERIFY = 0x69, OP_RETURN = 0x6a, OP_TOALTSTACK = 0x6b, OP_FROMALTSTACK = 0x6c, OP_2DROP = 0x6d, OP_2DUP = 0x6e, OP_3DUP = 0x6f, OP_2OVER = 0x70, OP_2ROT = 0x71, OP_2SWAP = 0x72, OP_IFDUP = 0x73, OP_DEPTH = 0x74, OP_DROP = 0x75, OP_DUP = 0x76, OP_NIP = 0x77, OP_OVER = 0x78, OP_PICK = 0x79, OP_ROLL = 0x7a, OP_ROT = 0x7b, OP_SWAP = 0x7c, OP_TUCK = 0x7d, OP_CAT = 0x7e, OP_SUBSTR = 0x7f, OP_LEFT = 0x80, OP_RIGHT = 0x81, OP_SIZE = 0x82, OP_INVERT = 0x83, OP_AND = 0x84, OP_OR = 0x85, OP_XOR = 0x86, OP_EQUAL = 0x87, OP_EQUALVERIFY = 0x88, OP_RESERVED1 = 0x89, OP_RESERVED2 = 0x8a, OP_1ADD = 0x8b, OP_1SUB = 0x8c, OP_2MUL = 0x8d, OP_2DIV = 0x8e, OP_NEGATE = 0x8f, OP_ABS = 0x90, OP_NOT = 0x91, OP_0NOTEQUAL = 0x92, OP_ADD = 0x93, OP_SUB = 0x94, OP_MUL = 0x95, OP_DIV = 0x96, OP_MOD = 0x97, OP_LSHIFT = 0x98, OP_RSHIFT = 0x99, OP_BOOLAND = 0x9a, OP_BOOLOR = 0x9b, OP_NUMEQUAL = 0x9c, OP_NUMEQUALVERIFY = 0x9d, OP_NUMNOTEQUAL = 0x9e, OP_LESSTHAN = 0x9f, OP_GREATERTHAN = 0xa0, OP_LESSTHANOREQUAL = 0xa1, OP_GREATERTHANOREQUAL = 0xa2, OP_MIN = 0xa3, OP_MAX = 0xa4, OP_WITHIN = 0xa5, OP_RIPEMD160 = 0xa6, OP_SHA1 = 0xa7, OP_SHA256 = 0xa8, OP_HASH160 = 0xa9, OP_HASH256 = 0xaa, OP_CODESEPARATOR = 0xab, OP_CHECKSIG = 0xac, OP_CHECKSIGVERIFY = 0xad, OP_CHECKMULTISIG = 0xae, OP_CHECKMULTISIGVERIFY = 0xaf, OP_NOP1 = 0xb0, OP_CHECKLOCKTIMEVERIFY = 0xb1, OP_NOP2 = OP_CHECKLOCKTIMEVERIFY, OP_CHECKSEQUENCEVERIFY = 0xb2, OP_NOP3 = OP_CHECKSEQUENCEVERIFY, OP_NOP4 = 0xb3, OP_NOP5 = 0xb4, OP_NOP6 = 0xb5, OP_NOP7 = 0xb6, OP_NOP8 = 0xb7, OP_NOP9 = 0xb8, OP_NOP10 = 0xb9, OP_RVN_ASSET = 0xc0, OP_SMALLINTEGER = 0xfa, OP_PUBKEYS = 0xfb, OP_PUBKEYHASH = 0xfd, OP_PUBKEY = 0xfe, OP_INVALIDOPCODE = 0xff } |
Script opcodes. More... | |
Functions | |
template<typename T > | |
std::vector< unsigned char > | ToByteVector (const T &in) |
const char * | GetOpName (opcodetype opcode) |
bool | GetAssetAmountFromScript (const CScript &script, CAmount &nAmount) |
These are needed because script.h and script.cpp do not have access to asset.h and asset.cpp functions. More... | |
bool | AmountFromNewAssetScript (const CScript &scriptPubKey, CAmount &nAmount) |
bool | AmountFromTransferScript (const CScript &scriptPubKey, CAmount &nAmount) |
bool | AmountFromReissueScript (const CScript &scriptPubKey, CAmount &nAmount) |
bool | ScriptNewAsset (const CScript &scriptPubKey, int &nStartingIndex) |
bool | ScriptTransferAsset (const CScript &scriptPubKey, int &nStartingIndex) |
bool | ScriptReissueAsset (const CScript &scriptPubKey, int &nStartingIndex) |
typedef prevector<28, unsigned char> CScriptBase |
We use a prevector for the script to reduce the considerable memory overhead of vectors in cases where they normally contain a small number of small elements.
Tests in October 2015 showed use of this reduced dbcache memory usage by 23% and made an initial sync 13% faster.
enum opcodetype |
Script opcodes.
Definition at line 530 of file script.cpp.
Definition at line 574 of file script.cpp.
Definition at line 552 of file script.cpp.
These are needed because script.h and script.cpp do not have access to asset.h and asset.cpp functions.
This is because the make file compiles them at different times. This is becauses script files are compiled with other consensus files, and asset files are compiled with core files
These are needed because script.h and script.cpp do not have access to asset.h and asset.cpp functions.
This is because the make file compiles them at different times. The script files are compiled with other consensus files, and asset files are compiled with core files. Used to check if an asset script contains zero assets. Is so, it should be unspendable
Definition at line 461 of file script.cpp.
const char* GetOpName | ( | opcodetype | opcode | ) |
RVN START
RVN END
Definition at line 15 of file script.cpp.
bool ScriptNewAsset | ( | const CScript & | scriptPubKey, |
int & | nStartingIndex | ||
) |
Definition at line 496 of file script.cpp.
bool ScriptReissueAsset | ( | const CScript & | scriptPubKey, |
int & | nStartingIndex | ||
) |
Definition at line 518 of file script.cpp.
bool ScriptTransferAsset | ( | const CScript & | scriptPubKey, |
int & | nStartingIndex | ||
) |
Definition at line 507 of file script.cpp.