Add Simplicity verification

Unactivated.
This commit is contained in:
Russell O'Connor 2024-06-10 12:19:21 -04:00
parent 96fb8f5d15
commit 1698454c2a
4 changed files with 227 additions and 0 deletions

View file

@ -6,6 +6,9 @@
#include <script/script_error.h>
#include <string>
extern "C" {
#include <simplicity/errorCodes.h>
}
std::string ScriptErrorString(const ScriptError serror)
{
@ -129,6 +132,54 @@ std::string ScriptErrorString(const ScriptError serror)
return "Arithmetic opcode error";
case SCRIPT_ERR_ECMULTVERIFYFAIL:
return "EC scalar mult verify fail";
case SCRIPT_ERR_SIMPLICITY_WRONG_LENGTH:
return "Simplicity witness has incorrect length";
case SCRIPT_ERR_SIMPLICITY_DATA_OUT_OF_RANGE:
return SIMPLICITY_ERR_MSG(SIMPLICITY_ERR_DATA_OUT_OF_RANGE);
case SCRIPT_ERR_SIMPLICITY_DATA_OUT_OF_ORDER:
return SIMPLICITY_ERR_MSG(SIMPLICITY_ERR_DATA_OUT_OF_ORDER);
case SCRIPT_ERR_SIMPLICITY_FAIL_CODE:
return SIMPLICITY_ERR_MSG(SIMPLICITY_ERR_FAIL_CODE);
case SCRIPT_ERR_SIMPLICITY_STOP_CODE:
return SIMPLICITY_ERR_MSG(SIMPLICITY_ERR_STOP_CODE);
case SCRIPT_ERR_SIMPLICITY_HIDDEN:
return SIMPLICITY_ERR_MSG(SIMPLICITY_ERR_HIDDEN);
case SCRIPT_ERR_SIMPLICITY_BITSTREAM_EOF:
return SIMPLICITY_ERR_MSG(SIMPLICITY_ERR_BITSTREAM_EOF);
case SCRIPT_ERR_SIMPLICITY_BITSTREAM_TRAILING_BYTES:
return SIMPLICITY_ERR_MSG(SIMPLICITY_ERR_BITSTREAM_TRAILING_BYTES);
case SCRIPT_ERR_SIMPLICITY_BITSTREAM_ILLEGAL_PADDING:
return SIMPLICITY_ERR_MSG(SIMPLICITY_ERR_BITSTREAM_ILLEGAL_PADDING);
case SCRIPT_ERR_SIMPLICITY_TYPE_INFERENCE_UNIFICATION:
return SIMPLICITY_ERR_MSG(SIMPLICITY_ERR_TYPE_INFERENCE_UNIFICATION);
case SCRIPT_ERR_SIMPLICITY_TYPE_INFERENCE_OCCURS_CHECK:
return SIMPLICITY_ERR_MSG(SIMPLICITY_ERR_TYPE_INFERENCE_OCCURS_CHECK);
case SCRIPT_ERR_SIMPLICITY_TYPE_INFERENCE_NOT_PROGRAM:
return SIMPLICITY_ERR_MSG(SIMPLICITY_ERR_TYPE_INFERENCE_NOT_PROGRAM);
case SCRIPT_ERR_SIMPLICITY_WITNESS_EOF:
return SIMPLICITY_ERR_MSG(SIMPLICITY_ERR_WITNESS_EOF);
case SCRIPT_ERR_SIMPLICITY_WITNESS_TRAILING_BYTES:
return SIMPLICITY_ERR_MSG(SIMPLICITY_ERR_WITNESS_TRAILING_BYTES);
case SCRIPT_ERR_SIMPLICITY_WITNESS_ILLEGAL_PADDING:
return SIMPLICITY_ERR_MSG(SIMPLICITY_ERR_WITNESS_ILLEGAL_PADDING);
case SCRIPT_ERR_SIMPLICITY_UNSHARED_SUBEXPRESSION:
return SIMPLICITY_ERR_MSG(SIMPLICITY_ERR_UNSHARED_SUBEXPRESSION);
case SCRIPT_ERR_SIMPLICITY_CMR:
return SIMPLICITY_ERR_MSG(SIMPLICITY_ERR_CMR);
case SCRIPT_ERR_SIMPLICITY_EXEC_BUDGET:
return SIMPLICITY_ERR_MSG(SIMPLICITY_ERR_EXEC_BUDGET);
case SCRIPT_ERR_SIMPLICITY_EXEC_MEMORY:
return SIMPLICITY_ERR_MSG(SIMPLICITY_ERR_EXEC_MEMORY);
case SCRIPT_ERR_SIMPLICITY_EXEC_JET:
return SIMPLICITY_ERR_MSG(SIMPLICITY_ERR_EXEC_JET);
case SCRIPT_ERR_SIMPLICITY_EXEC_ASSERT:
return SIMPLICITY_ERR_MSG(SIMPLICITY_ERR_EXEC_ASSERT);
case SCRIPT_ERR_SIMPLICITY_ANTIDOS:
return SIMPLICITY_ERR_MSG(SIMPLICITY_ERR_ANTIDOS);
case SCRIPT_ERR_SIMPLICITY_HIDDEN_ROOT:
return SIMPLICITY_ERR_MSG(SIMPLICITY_ERR_HIDDEN_ROOT);
case SCRIPT_ERR_SIMPLICITY_AMR:
return SIMPLICITY_ERR_MSG(SIMPLICITY_ERR_AMR);
case SCRIPT_ERR_UNKNOWN_ERROR:
case SCRIPT_ERR_ERROR_COUNT:
default: break;