mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-05-23 23:36:56 +00:00

* [NOD-1451] Implement block validator * [NOD-1451] Implement block validator * [NOD-1451] Fix merge errors * [NOD-1451] Implement block validator * [NOD-1451] Implement checkTransactionInIsolation * [NOD-1451] Copy txscript to validator * [NOD-1451] Change txscript to new design * [NOD-1451] Add checkTransactionInContext * [NOD-1451] Add checkBlockSize * [NOD-1451] Add error handling * [NOD-1451] Implement checkTransactionInContext * [NOD-1451] Add checkTransactionMass placeholder * [NOD-1451] Finish validators * [NOD-1451] Add comments and stringers * [NOD-1451] Return model.TransactionValidator interface * [NOD-1451] Premake rule errors for each "code" * [NOD-1451] Populate transaction mass * [NOD-1451] Renmae functions * [NOD-1451] Always use skipPow=false * [NOD-1451] Renames * [NOD-1451] Remove redundant types from WriteElement * [NOD-1451] Fix error message * [NOD-1451] Add checkTransactionPayload * [NOD-1451] Add ValidateProofOfWorkAndDifficulty to block validator interface * [NOD-1451] Move stringers to model * [NOD-1451] Fix error message
35 lines
1.5 KiB
Go
35 lines
1.5 KiB
Go
/*
|
|
Package txscript implements the kaspa transaction script language.
|
|
|
|
This package provides data structures and functions to parse and execute
|
|
kaspa transaction scripts.
|
|
|
|
Script Overview
|
|
|
|
Kaspa transaction scripts are written in a stack-base, FORTH-like language.
|
|
|
|
The kaspa script language consists of a number of opcodes which fall into
|
|
several categories such pushing and popping data to and from the stack,
|
|
performing basic and bitwise arithmetic, conditional branching, comparing
|
|
hashes, and checking cryptographic signatures. Scripts are processed from left
|
|
to right and intentionally do not provide loops.
|
|
|
|
Typical kaspa scripts at the time of this writing are of several standard
|
|
forms which consist of a spender providing a public key and a signature
|
|
which proves the spender owns the associated private key. This information
|
|
is used to prove the the spender is authorized to perform the transaction.
|
|
|
|
One benefit of using a scripting language is added flexibility in specifying
|
|
what conditions must be met in order to spend kaspa.
|
|
|
|
Errors
|
|
|
|
Errors returned by this package are of type txscript.Error. This allows the
|
|
caller to programmatically determine the specific error by examining the
|
|
ErrorCode field of the type asserted txscript.Error while still providing rich
|
|
error messages with contextual information. A convenience function named
|
|
IsErrorCode is also provided to allow callers to easily check for a specific
|
|
error code. See ErrorCode in the package documentation for a full list.
|
|
*/
|
|
package txscript
|