MCPcopy Create free account
hub / github.com/ElementsProject/elements / test_elements

Function test_elements

src/simplicity/test.c:354–512  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

352}
353
354static void test_elements(void) {
355 unsigned char cmr[32], amr[32];
356 sha256_fromMidstate(cmr, elementsCheckSigHashAllTx1_cmr);
357 sha256_fromMidstate(amr, elementsCheckSigHashAllTx1_amr);
358
359 unsigned char genesisHash[32] = {0x0f, 0x91, 0x88, 0xf1, 0x3c, 0xb7, 0xb2, 0xc7, 0x1f, 0x2a, 0x33, 0x5e, 0x3a, 0x4f, 0xc3, 0x28, 0xbf, 0x5b, 0xeb, 0x43, 0x60, 0x12, 0xaf, 0xca, 0x59, 0x0b, 0x1a, 0x11, 0x46, 0x6e, 0x22, 0x06};
360 rawElementsTapEnv rawTaproot = (rawElementsTapEnv)
361 { .controlBlock = (unsigned char [33]){0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x78, 0xce, 0x56, 0x3f, 0x89, 0xa0, 0xed, 0x94, 0x14, 0xf5, 0xaa, 0x28, 0xad, 0x0d, 0x96, 0xd6, 0x79, 0x5f, 0x9c, 0x63}
362 , .pathLen = 0
363 , .scriptCMR = cmr
364 };
365 elementsTapEnv* taproot = simplicity_elements_mallocTapEnv(&rawTaproot);
366
367 printf("Test elements\n");
368 {
369 rawElementsTransaction testTx1 = (rawElementsTransaction)
370 { .txid = (unsigned char[32]){0xdb, 0x9a, 0x3d, 0xe0, 0xb6, 0xb8, 0xcc, 0x74, 0x1e, 0x4d, 0x6c, 0x8f, 0x19, 0xce, 0x75, 0xec, 0x0d, 0xfd, 0x01, 0x02, 0xdb, 0x9c, 0xb5, 0xcd, 0x27, 0xa4, 0x1a, 0x66, 0x91, 0x66, 0x3a, 0x07}
371 , .input = (rawElementsInput[])
372 { { .annex = NULL
373 , .prevTxid = (unsigned char[32]){0xeb, 0x04, 0xb6, 0x8e, 0x9a, 0x26, 0xd1, 0x16, 0x04, 0x6c, 0x76, 0xe8, 0xff, 0x47, 0x33, 0x2f, 0xb7, 0x1d, 0xda, 0x90, 0xff, 0x4b, 0xef, 0x53, 0x70, 0xf2, 0x52, 0x26, 0xd3, 0xbc, 0x09, 0xfc}
374 , .prevIx = 0
375 , .sequence = 0xfffffffe
376 , .issuance = {0}
377 , .scriptSig = {0}
378 , .txo = { .asset = (unsigned char[33]){0x01, 0x23, 0x0f, 0x4f, 0x5d, 0x4b, 0x7c, 0x6f, 0xa8, 0x45, 0x80, 0x6e, 0xe4, 0xf6, 0x77, 0x13, 0x45, 0x9e, 0x1b, 0x69, 0xe8, 0xe6, 0x0f, 0xce, 0xe2, 0xe4, 0x94, 0x0c, 0x7a, 0x0d, 0x5d, 0xe1, 0xb2}
379 , .value = (unsigned char[9]){0x01, 0x00, 0x00, 0x00, 0x02, 0x54, 0x0b, 0xe4, 0x00}
380 , .scriptPubKey = {0}
381 } } }
382 , .output = (rawElementsOutput[])
383 { { .asset = (unsigned char[33]){0x01, 0x23, 0x0f, 0x4f, 0x5d, 0x4b, 0x7c, 0x6f, 0xa8, 0x45, 0x80, 0x6e, 0xe4, 0xf6, 0x77, 0x13, 0x45, 0x9e, 0x1b, 0x69, 0xe8, 0xe6, 0x0f, 0xce, 0xe2, 0xe4, 0x94, 0x0c, 0x7a, 0x0d, 0x5d, 0xe1, 0xb2}
384 , .value = (unsigned char[9]){0x01, 0x00, 0x00, 0x00, 0x02, 0x54, 0x0b, 0xd7, 0x1c}
385 , .nonce = NULL
386 , .scriptPubKey = { .buf = (unsigned char [26]){0x19, 0x76, 0xa9, 0x14, 0x48, 0x63, 0x3e, 0x2c, 0x0e, 0xe9, 0x49, 0x5d, 0xd3, 0xf9, 0xc4, 0x37, 0x32, 0xc4, 0x7f, 0x47, 0x02, 0xa3, 0x62, 0xc8, 0x88, 0xac}
387 , .len = 26
388 }
389 }
390 , { .asset = (unsigned char[33]){0x01, 0x23, 0x0f, 0x4f, 0x5d, 0x4b, 0x7c, 0x6f, 0xa8, 0x45, 0x80, 0x6e, 0xe4, 0xf6, 0x77, 0x13, 0x45, 0x9e, 0x1b, 0x69, 0xe8, 0xe6, 0x0f, 0xce, 0xe2, 0xe4, 0x94, 0x0c, 0x7a, 0x0d, 0x5d, 0xe1, 0xb2}
391 , .value = (unsigned char[9]){0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xe4}
392 , .nonce = NULL
393 , .scriptPubKey = {0}
394 } }
395 , .numInputs = 1
396 , .numOutputs = 2
397 , .version = 0x00000002
398 , .lockTime = 0x00000000
399 };
400 elementsTransaction* tx1 = simplicity_elements_mallocTransaction(&testTx1);
401 if (tx1) {
402 successes++;
403 simplicity_err execResult;
404 {
405 unsigned char cmrResult[32];
406 if (simplicity_elements_computeCmr(&execResult, cmrResult, elementsCheckSigHashAllTx1, sizeof_elementsCheckSigHashAllTx1) && IS_OK(execResult)) {
407 if (0 == memcmp(cmrResult, cmr, sizeof(unsigned char[8]))) {
408 successes++;
409 } else {
410 failures++;
411 printf("Unexpected CMR of elementsCheckSigHashAllTx1\n");

Callers 1

mainFunction · 0.85

Calls 10

sha256_fromMidstateFunction · 0.85
printfFunction · 0.85
IS_OKFunction · 0.85
sha256_toMidstateFunction · 0.85

Tested by

no test coverage detected