An array of boolean values representing the current execution status of the program. This allows the state to track nested conditional branches.
OP_NOTIF operations push a new boolean onto the
OP_ELSE flips the top boolean, and
the top boolean from the
Other instructions are only evaluated if
controlStack contains no
vfExec in the C++ implementation.
If present, the error returned by the most recent virtual machine operation.
The full list of instructions to be evaluated by the virtual machine.
Instruction Pointer – the array index of
instructions that will be read
to identify the next instruction. Once
ip exceeds the last index of
ip === instructions.length), evaluation is complete.
lastCodeSeparator indicates the index of the most recently executed
OP_CODESEPARATOR instruction. In each of the signing serialization
instructions are sliced at
lastCodeSeparator, and the
subarray is re-encoded. The resulting bytecode is called the
scriptCode), and is part of the data hashed to
create the signing serialization digest.
By default, this is
-1, which indicates that the whole
array is included in the signing serialization.
An array of the
Uint8Array values used in signature verification over the
course of this program. Each raw signing serialization and data signature
message should be pushed to this array in the order it was computed.
This property is not used within any AuthenticationVirtualMachine, but it is provided in the program state to assist with analysis. Because these messages must always be computed and hashed during evaluation, recording them in the state does not meaningfully affect performance.
The stack is the primary workspace of the virtual machine. Most virtual machine operations create, read, update, or delete bytecode values held on the stack.
Generated using TypeDoc
The "alternate stack" is separate stack on which
OP_FROMALTSTACKoperate in bitcoin virtual machines.