3.4 KiB
3.4 KiB
Shared Libraries
moneyrocketconsensus
The purpose of this library is to make the verification functionality that is critical to Moneyrocket's consensus available to other applications, e.g. to language bindings.
API
The interface is defined in the C header moneyrocketconsensus.h
located in src/script/moneyrocketconsensus.h
.
Version
moneyrocketconsensus_version
returns an unsigned int
with the API version (currently 1
).
Script Validation
moneyrocketconsensus_verify_script
returns an int
with the status of the verification. It will be 1
if the input script correctly spends the previous output scriptPubKey
.
Parameters
const unsigned char *scriptPubKey
- The previous output script that encumbers spending.unsigned int scriptPubKeyLen
- The number of bytes for thescriptPubKey
.const unsigned char *txTo
- The transaction with the input that is spending the previous output.unsigned int txToLen
- The number of bytes for thetxTo
.unsigned int nIn
- The index of the input intxTo
that spends thescriptPubKey
.unsigned int flags
- The script validation flags (see below).moneyrocketconsensus_error* err
- Will have the error/success code for the operation (see below).
Script Flags
moneyrocketconsensus_SCRIPT_FLAGS_VERIFY_NONE
moneyrocketconsensus_SCRIPT_FLAGS_VERIFY_P2SH
- Evaluate P2SH (BIP16) subscriptsmoneyrocketconsensus_SCRIPT_FLAGS_VERIFY_DERSIG
- Enforce strict DER (BIP66) compliancemoneyrocketconsensus_SCRIPT_FLAGS_VERIFY_NULLDUMMY
- Enforce NULLDUMMY (BIP147)moneyrocketconsensus_SCRIPT_FLAGS_VERIFY_CHECKLOCKTIMEVERIFY
- Enable CHECKLOCKTIMEVERIFY (BIP65)moneyrocketconsensus_SCRIPT_FLAGS_VERIFY_CHECKSEQUENCEVERIFY
- Enable CHECKSEQUENCEVERIFY (BIP112)moneyrocketconsensus_SCRIPT_FLAGS_VERIFY_WITNESS
- Enable WITNESS (BIP141)
Errors
moneyrocketconsensus_ERR_OK
- No errors with input parameters (see the return value ofmoneyrocketconsensus_verify_script
for the verification status)moneyrocketconsensus_ERR_TX_INDEX
- An invalid index fortxTo
moneyrocketconsensus_ERR_TX_SIZE_MISMATCH
-txToLen
did not match with the size oftxTo
moneyrocketconsensus_ERR_DESERIALIZE
- An error deserializingtxTo
moneyrocketconsensus_ERR_AMOUNT_REQUIRED
- Input amount is required if WITNESS is usedmoneyrocketconsensus_ERR_INVALID_FLAGS
- Script verificationflags
are invalid (i.e. not part of the libconsensus interface)
Example Implementations
- NMoneyrocket (.NET Bindings)
- node-libmoneyrocketconsensus (Node.js Bindings)
- java-libmoneyrocketconsensus (Java Bindings)
- moneyrocketconsensus-php (PHP Bindings)