Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions simplicity-sys/depend/jets_wrapper.c
Original file line number Diff line number Diff line change
Expand Up @@ -347,6 +347,13 @@ WRAP_(output_is_fee)
WRAP_(output_nonce)
WRAP_(output_nonces_hash)
WRAP_(output_null_datum)
WRAP_(output_null_get_bytes_1)
WRAP_(output_null_get_bytes_16)
WRAP_(output_null_get_bytes_2)
WRAP_(output_null_get_bytes_32)
WRAP_(output_null_get_bytes_4)
WRAP_(output_null_get_bytes_64)
WRAP_(output_null_get_bytes_8)
WRAP_(output_range_proof)
WRAP_(output_range_proofs_hash)
WRAP_(output_script_hash)
Expand Down
2 changes: 1 addition & 1 deletion simplicity-sys/depend/simplicity-HEAD-revision.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# This file has been automatically generated.
c6ab4dd8f17838506f92f0d829c40618168817cd
6190147fde1e49239d84834746d6fd215663a734
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,13 @@
case 48: *result = VERSION; return SIMPLICITY_NO_ERROR;
case 49: *result = GENESIS_BLOCK_HASH; return SIMPLICITY_NO_ERROR;
case 50: *result = TRANSACTION_ID; return SIMPLICITY_NO_ERROR;
case 51: *result = OUTPUT_NULL_GET_BYTES_1; return SIMPLICITY_NO_ERROR;
case 52: *result = OUTPUT_NULL_GET_BYTES_2; return SIMPLICITY_NO_ERROR;
case 53: *result = OUTPUT_NULL_GET_BYTES_4; return SIMPLICITY_NO_ERROR;
case 54: *result = OUTPUT_NULL_GET_BYTES_8; return SIMPLICITY_NO_ERROR;
case 55: *result = OUTPUT_NULL_GET_BYTES_16; return SIMPLICITY_NO_ERROR;
case 56: *result = OUTPUT_NULL_GET_BYTES_32; return SIMPLICITY_NO_ERROR;
case 57: *result = OUTPUT_NULL_GET_BYTES_64; return SIMPLICITY_NO_ERROR;
}
break;
}
Expand Down
138 changes: 133 additions & 5 deletions simplicity-sys/depend/simplicity/elements/elementsJets.c
Original file line number Diff line number Diff line change
Expand Up @@ -427,7 +427,7 @@ bool rustsimplicity_0_7_output_null_datum(frameItem* dst, frameItem src, const t
if (writeBit(dst, i < env->tx->numOutputs && env->tx->output[i].isNullData)) {
uint_fast32_t j = rustsimplicity_0_7_read32(&src);
if (writeBit(dst, j < env->tx->output[i].pnd.len)) {
if (writeBit(dst, OP_PUSHDATA4 < env->tx->output[i].pnd.op[j].code)) {
if (writeBit(dst, OP_PUSHBYTES_64 < env->tx->output[i].pnd.op[j].code)) {
skipBits(dst, 2 + 256 - 5);
if (writeBit(dst, OP_1 <= env->tx->output[i].pnd.op[j].code)) {
switch (env->tx->output[i].pnd.op[j].code) {
Expand Down Expand Up @@ -457,10 +457,19 @@ bool rustsimplicity_0_7_output_null_datum(frameItem* dst, frameItem src, const t
}
} else {
switch (env->tx->output[i].pnd.op[j].code) {
case OP_IMMEDIATE: writeBit(dst, 0); writeBit(dst, 0); break;
case OP_PUSHDATA: writeBit(dst, 0); writeBit(dst, 1); break;
case OP_PUSHDATA2: writeBit(dst, 1); writeBit(dst, 0); break;
case OP_PUSHDATA4: writeBit(dst, 1); writeBit(dst, 1); break;
case OP_IMMEDIATE: writeBit(dst, 0); writeBit(dst, 0); break;
case OP_PUSHDATA: writeBit(dst, 0); writeBit(dst, 1); break;
case OP_PUSHDATA2: writeBit(dst, 1); writeBit(dst, 0); break;
case OP_PUSHDATA4: writeBit(dst, 1); writeBit(dst, 1); break;
case OP_PUSHBYTES_1:
case OP_PUSHBYTES_2:
case OP_PUSHBYTES_4:
case OP_PUSHBYTES_8:
case OP_PUSHBYTES_16:
case OP_PUSHBYTES_32:
case OP_PUSHBYTES_64:
/* These were historically part of OP_IMMEDIATE*/
writeBit(dst, 0); writeBit(dst, 0); break;
default: SIMPLICITY_UNREACHABLE;
}
writeHash(dst, &env->tx->output[i].pnd.op[j].dataHash);
Expand All @@ -474,6 +483,125 @@ bool rustsimplicity_0_7_output_null_datum(frameItem* dst, frameItem src, const t
return true;
}

/* output_null_get_8 : TWO^32 * TWO^32 |- S (S TWO^64) */
bool rustsimplicity_0_7_output_null_get_bytes_8(frameItem* dst, frameItem src, const txEnv* env) {
uint_fast32_t i = rustsimplicity_0_7_read32(&src);
if (writeBit(dst, i < env->tx->numOutputs && env->tx->output[i].isNullData)) {
uint_fast32_t j = rustsimplicity_0_7_read32(&src);
if (writeBit(dst, j < env->tx->output[i].pnd.len &&
OP_PUSHBYTES_8 == env->tx->output[i].pnd.op[j].code)) {
write8s(dst, env->tx->output[i].pnd.op[j].data, 8);
} else {
skipBits(dst, 64);
}
} else {
skipBits(dst, 1 + 64);
}
return true;
}

/* output_null_get_1 : TWO^32 * TWO^32 |- S (S TWO^8) */
bool rustsimplicity_0_7_output_null_get_bytes_1(frameItem* dst, frameItem src, const txEnv* env) {
uint_fast32_t i = rustsimplicity_0_7_read32(&src);
if (writeBit(dst, i < env->tx->numOutputs && env->tx->output[i].isNullData)) {
uint_fast32_t j = rustsimplicity_0_7_read32(&src);
if (writeBit(dst, j < env->tx->output[i].pnd.len &&
OP_PUSHBYTES_1 == env->tx->output[i].pnd.op[j].code)) {
write8s(dst, env->tx->output[i].pnd.op[j].data, 1);
} else {
skipBits(dst, 8);
}
} else {
skipBits(dst, 1 + 8);
}
return true;
}

/* output_null_get_2 : TWO^32 * TWO^32 |- S (S TWO^16) */
bool rustsimplicity_0_7_output_null_get_bytes_2(frameItem* dst, frameItem src, const txEnv* env) {
uint_fast32_t i = rustsimplicity_0_7_read32(&src);
if (writeBit(dst, i < env->tx->numOutputs && env->tx->output[i].isNullData)) {
uint_fast32_t j = rustsimplicity_0_7_read32(&src);
if (writeBit(dst, j < env->tx->output[i].pnd.len &&
OP_PUSHBYTES_2 == env->tx->output[i].pnd.op[j].code)) {
write8s(dst, env->tx->output[i].pnd.op[j].data, 2);
} else {
skipBits(dst, 16);
}
} else {
skipBits(dst, 1 + 16);
}
return true;
}

/* output_null_get_4 : TWO^32 * TWO^32 |- S (S TWO^32) */
bool rustsimplicity_0_7_output_null_get_bytes_4(frameItem* dst, frameItem src, const txEnv* env) {
uint_fast32_t i = rustsimplicity_0_7_read32(&src);
if (writeBit(dst, i < env->tx->numOutputs && env->tx->output[i].isNullData)) {
uint_fast32_t j = rustsimplicity_0_7_read32(&src);
if (writeBit(dst, j < env->tx->output[i].pnd.len &&
OP_PUSHBYTES_4 == env->tx->output[i].pnd.op[j].code)) {
write8s(dst, env->tx->output[i].pnd.op[j].data, 4);
} else {
skipBits(dst, 32);
}
} else {
skipBits(dst, 1 + 32);
}
return true;
}

/* output_null_get_16 : TWO^32 * TWO^32 |- S (S TWO^128) */
bool rustsimplicity_0_7_output_null_get_bytes_16(frameItem* dst, frameItem src, const txEnv* env) {
uint_fast32_t i = rustsimplicity_0_7_read32(&src);
if (writeBit(dst, i < env->tx->numOutputs && env->tx->output[i].isNullData)) {
uint_fast32_t j = rustsimplicity_0_7_read32(&src);
if (writeBit(dst, j < env->tx->output[i].pnd.len &&
OP_PUSHBYTES_16 == env->tx->output[i].pnd.op[j].code)) {
write8s(dst, env->tx->output[i].pnd.op[j].data, 16);
} else {
skipBits(dst, 128);
}
} else {
skipBits(dst, 1 + 128);
}
return true;
}

/* output_null_get_32 : TWO^32 * TWO^32 |- S (S TWO^256) */
bool rustsimplicity_0_7_output_null_get_bytes_32(frameItem* dst, frameItem src, const txEnv* env) {
uint_fast32_t i = rustsimplicity_0_7_read32(&src);
if (writeBit(dst, i < env->tx->numOutputs && env->tx->output[i].isNullData)) {
uint_fast32_t j = rustsimplicity_0_7_read32(&src);
if (writeBit(dst, j < env->tx->output[i].pnd.len &&
OP_PUSHBYTES_32 == env->tx->output[i].pnd.op[j].code)) {
write8s(dst, env->tx->output[i].pnd.op[j].data, 32);
} else {
skipBits(dst, 256);
}
} else {
skipBits(dst, 1 + 256);
}
return true;
}

/* output_null_get_64 : TWO^32 * TWO^32 |- S (S TWO^512) */
bool rustsimplicity_0_7_output_null_get_bytes_64(frameItem* dst, frameItem src, const txEnv* env) {
uint_fast32_t i = rustsimplicity_0_7_read32(&src);
if (writeBit(dst, i < env->tx->numOutputs && env->tx->output[i].isNullData)) {
uint_fast32_t j = rustsimplicity_0_7_read32(&src);
if (writeBit(dst, j < env->tx->output[i].pnd.len &&
OP_PUSHBYTES_64 == env->tx->output[i].pnd.op[j].code)) {
write8s(dst, env->tx->output[i].pnd.op[j].data, 64);
} else {
skipBits(dst, 512);
}
} else {
skipBits(dst, 1 + 512);
}
return true;
}

/* output_is_fee : TWO^32 |- S TWO */
bool rustsimplicity_0_7_output_is_fee(frameItem* dst, frameItem src, const txEnv* env) {
uint_fast32_t i = rustsimplicity_0_7_read32(&src);
Expand Down
7 changes: 7 additions & 0 deletions simplicity-sys/depend/simplicity/elements/elementsJets.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,13 @@ bool rustsimplicity_0_7_output_amount(frameItem* dst, frameItem src, const txEnv
bool rustsimplicity_0_7_output_nonce(frameItem* dst, frameItem src, const txEnv* env);
bool rustsimplicity_0_7_output_script_hash(frameItem* dst, frameItem src, const txEnv* env);
bool rustsimplicity_0_7_output_null_datum(frameItem* dst, frameItem src, const txEnv* env);
bool rustsimplicity_0_7_output_null_get_bytes_1(frameItem* dst, frameItem src, const txEnv* env);
bool rustsimplicity_0_7_output_null_get_bytes_2(frameItem* dst, frameItem src, const txEnv* env);
bool rustsimplicity_0_7_output_null_get_bytes_4(frameItem* dst, frameItem src, const txEnv* env);
bool rustsimplicity_0_7_output_null_get_bytes_8(frameItem* dst, frameItem src, const txEnv* env);
bool rustsimplicity_0_7_output_null_get_bytes_16(frameItem* dst, frameItem src, const txEnv* env);
bool rustsimplicity_0_7_output_null_get_bytes_32(frameItem* dst, frameItem src, const txEnv* env);
bool rustsimplicity_0_7_output_null_get_bytes_64(frameItem* dst, frameItem src, const txEnv* env);
bool rustsimplicity_0_7_output_is_fee(frameItem* dst, frameItem src, const txEnv* env);
bool rustsimplicity_0_7_output_surjection_proof(frameItem* dst, frameItem src, const txEnv* env);
bool rustsimplicity_0_7_output_range_proof(frameItem* dst, frameItem src, const txEnv* env);
Expand Down
19 changes: 18 additions & 1 deletion simplicity-sys/depend/simplicity/elements/env.c
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,16 @@ static void parseNullData(parsedNullData* result, opcode** allocation, size_t* a
uint_fast32_t skip = 0;
if (code < 0x4c) {
skip = code;
(*allocation)[result->len].code = OP_IMMEDIATE;
switch (skip) {
case 1: (*allocation)[result->len].code = OP_PUSHBYTES_1; break;
case 2: (*allocation)[result->len].code = OP_PUSHBYTES_2; break;
case 4: (*allocation)[result->len].code = OP_PUSHBYTES_4; break;
case 8: (*allocation)[result->len].code = OP_PUSHBYTES_8; break;
case 16: (*allocation)[result->len].code = OP_PUSHBYTES_16; break;
case 32: (*allocation)[result->len].code = OP_PUSHBYTES_32; break;
case 64: (*allocation)[result->len].code = OP_PUSHBYTES_64; break;
default: (*allocation)[result->len].code = OP_IMMEDIATE; break;
}
} else {
if (scriptPubKey->len == i) { result->op = NULL; return; }
skip = scriptPubKey->buf[i++];
Expand All @@ -225,6 +234,14 @@ static void parseNullData(parsedNullData* result, opcode** allocation, size_t* a
sha256_context ctx = sha256_init((*allocation)[result->len].dataHash.s);
sha256_uchars(&ctx, &scriptPubKey->buf[i], skip);
sha256_finalize(&ctx);
opcodeType oc = (*allocation)[result->len].code;
if (OP_PUSHBYTES_1 == oc || OP_PUSHBYTES_2 == oc || OP_PUSHBYTES_4 == oc ||
OP_PUSHBYTES_8 == oc || OP_PUSHBYTES_16 == oc || OP_PUSHBYTES_32 == oc || OP_PUSHBYTES_64 == oc) {
memcpy((*allocation)[result->len].data, &scriptPubKey->buf[i], skip);
(*allocation)[result->len].len = (uint_fast8_t)skip;
} else {
(*allocation)[result->len].len = 0;
}
}
i += skip;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -342,6 +342,13 @@ OUTPUT_IS_FEE,
OUTPUT_NONCE,
OUTPUT_NONCES_HASH,
OUTPUT_NULL_DATUM,
OUTPUT_NULL_GET_BYTES_1,
OUTPUT_NULL_GET_BYTES_16,
OUTPUT_NULL_GET_BYTES_2,
OUTPUT_NULL_GET_BYTES_32,
OUTPUT_NULL_GET_BYTES_4,
OUTPUT_NULL_GET_BYTES_64,
OUTPUT_NULL_GET_BYTES_8,
OUTPUT_RANGE_PROOF,
OUTPUT_RANGE_PROOFS_HASH,
OUTPUT_SCRIPT_HASH,
Expand Down
6 changes: 6 additions & 0 deletions simplicity-sys/depend/simplicity/elements/primitiveEnumTy.inc
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,13 @@ ty_mw512,
ty_mw1Ki,
ty_mw2Ki,
ty_mmb,
ty_mmw8,
ty_mmw16,
ty_mmw32,
ty_mmw64,
ty_mmw128,
ty_mmw256,
ty_mmw512,
ty_mmspbw256w64,
ty_mmspbw256w256,
ty_mmspw2w256sbw4,
Expand Down
6 changes: 6 additions & 0 deletions simplicity-sys/depend/simplicity/elements/primitiveInitTy.inc
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,13 @@
(*bound_var)[ty_mw1Ki] = (unification_var){ .isBound = true, .bound = { .kind = SUM, .arg = { &(*bound_var)[ty_u], &(*bound_var)[ty_w1Ki] } }};
(*bound_var)[ty_mw2Ki] = (unification_var){ .isBound = true, .bound = { .kind = SUM, .arg = { &(*bound_var)[ty_u], &(*bound_var)[ty_w2Ki] } }};
(*bound_var)[ty_mmb] = (unification_var){ .isBound = true, .bound = { .kind = SUM, .arg = { &(*bound_var)[ty_u], &(*bound_var)[ty_mb] } }};
(*bound_var)[ty_mmw8] = (unification_var){ .isBound = true, .bound = { .kind = SUM, .arg = { &(*bound_var)[ty_u], &(*bound_var)[ty_mw8] } }};
(*bound_var)[ty_mmw16] = (unification_var){ .isBound = true, .bound = { .kind = SUM, .arg = { &(*bound_var)[ty_u], &(*bound_var)[ty_mw16] } }};
(*bound_var)[ty_mmw32] = (unification_var){ .isBound = true, .bound = { .kind = SUM, .arg = { &(*bound_var)[ty_u], &(*bound_var)[ty_mw32] } }};
(*bound_var)[ty_mmw64] = (unification_var){ .isBound = true, .bound = { .kind = SUM, .arg = { &(*bound_var)[ty_u], &(*bound_var)[ty_mw64] } }};
(*bound_var)[ty_mmw128] = (unification_var){ .isBound = true, .bound = { .kind = SUM, .arg = { &(*bound_var)[ty_u], &(*bound_var)[ty_mw128] } }};
(*bound_var)[ty_mmw256] = (unification_var){ .isBound = true, .bound = { .kind = SUM, .arg = { &(*bound_var)[ty_u], &(*bound_var)[ty_mw256] } }};
(*bound_var)[ty_mmw512] = (unification_var){ .isBound = true, .bound = { .kind = SUM, .arg = { &(*bound_var)[ty_u], &(*bound_var)[ty_mw512] } }};
(*bound_var)[ty_mmspbw256w64] = (unification_var){ .isBound = true, .bound = { .kind = SUM, .arg = { &(*bound_var)[ty_u], &(*bound_var)[ty_mspbw256w64] } }};
(*bound_var)[ty_mmspbw256w256] = (unification_var){ .isBound = true, .bound = { .kind = SUM, .arg = { &(*bound_var)[ty_u], &(*bound_var)[ty_mspbw256w256] } }};
(*bound_var)[ty_mmspw2w256sbw4] = (unification_var){ .isBound = true, .bound = { .kind = SUM, .arg = { &(*bound_var)[ty_u], &(*bound_var)[ty_mspw2w256sbw4] } }};
Expand Down
56 changes: 56 additions & 0 deletions simplicity-sys/depend/simplicity/elements/primitiveJetNode.inc
Original file line number Diff line number Diff line change
Expand Up @@ -2743,6 +2743,62 @@
, .targetIx = ty_mmspw2w256sbw4
, .cost = 87 /* milli weight units */
}
,[OUTPUT_NULL_GET_BYTES_1] =
{ .tag = JET
, .jet = rustsimplicity_0_7_output_null_get_bytes_1
, .cmr = {{0x8bf23336u, 0xd47f9e5eu, 0x06ddd129u, 0xf85abde1u, 0xbd3c7348u, 0x6f67492eu, 0x4f9a75e0u, 0xdc49dab3u}}
, .sourceIx = ty_w64
, .targetIx = ty_mmw8
, .cost = 87 /* milli weight units */
}
,[OUTPUT_NULL_GET_BYTES_16] =
{ .tag = JET
, .jet = rustsimplicity_0_7_output_null_get_bytes_16
, .cmr = {{0x6e8728a5u, 0x5aea2152u, 0x7c65df6cu, 0x723f183fu, 0xdcf21755u, 0x4f1ec023u, 0x351bd996u, 0xd867f865u}}
, .sourceIx = ty_w64
, .targetIx = ty_mmw128
, .cost = 87 /* milli weight units */
}
,[OUTPUT_NULL_GET_BYTES_2] =
{ .tag = JET
, .jet = rustsimplicity_0_7_output_null_get_bytes_2
, .cmr = {{0x407b4a04u, 0x151832c0u, 0x01155e4bu, 0xd5d1ba1fu, 0xc281be56u, 0x7a6c4854u, 0x15a08c88u, 0x44fa469cu}}
, .sourceIx = ty_w64
, .targetIx = ty_mmw16
, .cost = 87 /* milli weight units */
}
,[OUTPUT_NULL_GET_BYTES_32] =
{ .tag = JET
, .jet = rustsimplicity_0_7_output_null_get_bytes_32
, .cmr = {{0x8f86b4e8u, 0x74192318u, 0x0f76e15du, 0xc253ab5du, 0x1d4789f5u, 0x92bd89deu, 0xde5fa48eu, 0xbf36a7b0u}}
, .sourceIx = ty_w64
, .targetIx = ty_mmw256
, .cost = 87 /* milli weight units */
}
,[OUTPUT_NULL_GET_BYTES_4] =
{ .tag = JET
, .jet = rustsimplicity_0_7_output_null_get_bytes_4
, .cmr = {{0xf3490672u, 0x71087129u, 0xe32317a4u, 0x8437cdfau, 0x73ea391fu, 0x2bbddcf2u, 0xc6481f57u, 0xd3bf0761u}}
, .sourceIx = ty_w64
, .targetIx = ty_mmw32
, .cost = 87 /* milli weight units */
}
,[OUTPUT_NULL_GET_BYTES_64] =
{ .tag = JET
, .jet = rustsimplicity_0_7_output_null_get_bytes_64
, .cmr = {{0x2d472c26u, 0xb6382ddau, 0x0f0bbd8au, 0x7b3e2445u, 0xd0ff1b81u, 0x0ceb2317u, 0x0a22c013u, 0xd21f4838u}}
, .sourceIx = ty_w64
, .targetIx = ty_mmw512
, .cost = 87 /* milli weight units */
}
,[OUTPUT_NULL_GET_BYTES_8] =
{ .tag = JET
, .jet = rustsimplicity_0_7_output_null_get_bytes_8
, .cmr = {{0xeb1c3a7fu, 0xc1a71350u, 0x9c597ebcu, 0x67661bdbu, 0x48e81105u, 0x69009969u, 0xe24fcf2cu, 0x458d66a7u}}
, .sourceIx = ty_w64
, .targetIx = ty_mmw64
, .cost = 87 /* milli weight units */
}
,[OUTPUT_RANGE_PROOF] =
{ .tag = JET
, .jet = rustsimplicity_0_7_output_range_proof
Expand Down
15 changes: 14 additions & 1 deletion simplicity-sys/depend/simplicity/elements/txEnv.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,21 @@ typedef struct confAmount {
/* In Elements, a null-data scriptPubKey consists of an OP_RETURN followed by data only pushes (i.e. only opcodes less than OP_16).
* This is an enumeration of all such data only push operation names.
* OP_IMMEDIATE represents OP_0 and all the one-byte prefixes of data pushes up to 75 bytes.
* OP_PUSHBYTES_1/2/4/8/16/32/64 represent push operations whose data is exactly 1, 2, 4, 8, 16, 32, or 64 bytes;
* these store the raw bytes inline rather than a hash.
*/
typedef enum opcodeType {
OP_IMMEDIATE,
OP_PUSHDATA,
OP_PUSHDATA2,
OP_PUSHDATA4,
OP_PUSHBYTES_1,
OP_PUSHBYTES_2,
OP_PUSHBYTES_4,
OP_PUSHBYTES_8,
OP_PUSHBYTES_16,
OP_PUSHBYTES_32,
OP_PUSHBYTES_64,
OP_1NEGATE,
OP_RESERVED,
OP_1,
Expand All @@ -90,10 +99,14 @@ typedef enum opcodeType {
* This is a structure represents a digest of all such operations.
* 'code' represents the operation name.
* If 'code' \in {OP_IMMEDIATE, OP_PUSHDATA, OP_PUSHDATA2, OP_PUSHDATA4} then 'dataHash' represents the SHA-256 hash of data pushed
* by the push operation.
* by the push operation, and 'len' is 0.
* If 'code' \in {OP_PUSHBYTES_1, OP_PUSHBYTES_2, OP_PUSHBYTES_4, OP_PUSHBYTES_8, OP_PUSHBYTES_16, OP_PUSHBYTES_32, OP_PUSHBYTES_64}
* then 'dataHash' is the SHA-256 hash of the pushed bytes, 'data' holds the raw pushed bytes, and 'len' is their count.
*/
typedef struct opcode {
sha256_midstate dataHash;
uint8_t data[64];
uint_fast8_t len;
opcodeType code;
} opcode;

Expand Down
2 changes: 1 addition & 1 deletion simplicity-sys/depend/wrapper.c
Original file line number Diff line number Diff line change
Expand Up @@ -92,4 +92,4 @@ void c_skipBits(frameItem *frame, size_t n)
skipBits(frame, n);
}

#endif
#endif
Loading
Loading