Skip to content

Commit 88ac906

Browse files
author
diogorac
committed
fixing tx id
1 parent f7634b4 commit 88ac906

File tree

2 files changed

+31
-7
lines changed

2 files changed

+31
-7
lines changed

src/transaction.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,15 @@ void bigchain_fulfill_and_serialize(BIGCHAIN_TX *tx, uint8_t *json_tx, uint16_t
5151

5252
memset(json_tx, 0, maxlen);
5353
bigchain_build_json_tx(tx, json_tx);
54-
55-
sha3_256((const unsigned char*)json_tx, MIN(maxlen, strlen(json_tx)), tx->id);
5654

55+
uint8_t tx_id[32] = {0};
56+
sha3_256((const unsigned char*)json_tx, MIN(maxlen, strlen(json_tx)), tx_id);
57+
58+
for(uint8_t i =0; i<32; i++)
59+
{
60+
sprintf(tx->id + i*2, "%02x", tx_id[i]);
61+
}
62+
5763
memset(json_tx, 0, maxlen);
5864
bigchain_build_json_tx(tx, json_tx);
5965
}

tests/test_sig.c

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,19 +105,37 @@ void test_bigchain_build_json_tx(void) {
105105

106106
// Base64
107107
char fullfil[] = "pGSAIFVOiXAbbcqbKGEfs2FBcTouGFICDo6ooC4n2kDvrMwlgUCNMaKJ6aV03acNBqcYCffEWAcNQdhxS1o7beb6Ispxft0Ymgv2-oUlOFAeT6KeP65wLs_SOSKrLRaAIA_U75kC";
108-
uint8_t transaction_id[] = {0xeb,0x39,0x0d,0x15,0x7b,0xc9,0x8d,0xba,0x07,0x26,0x46,0x31,0x11,0xc7,0x31,0x9a,0x28,0x13,0x2d,0x62,0x3b,0x29,0x7b,0x97,0xa9,0x1c,0x96,0x1d,0x1a,0xe1,0xe9,0x07};
108+
uint8_t transaction_id[] = "eb390d157bc98dba0726463111c7319a28132d623b297b97a91c961d1ae1e907";
109109

110110
TEST_ASSERT_EQUAL(0, memcmp(tx.inputs->fulfillment, fullfil, 137));
111-
TEST_ASSERT_EQUAL(0, memcmp(tx.id, transaction_id, 32));
111+
TEST_ASSERT_EQUAL(0, memcmp(tx.id, transaction_id, 64));
112112

113113
}
114+
void test_bigchain_build_json_tx2(void) {
115+
BIGCHAIN_TX tx;
116+
117+
char json[800] = {0};
118+
memcpy(json, tx_json, strlen(tx_json));
119+
120+
memset(&tx, 0, sizeof(BIGCHAIN_TX));
121+
prepare_tx(&tx);
122+
// bigchain_build_json_tx(&tx, json);
114123

124+
char sig[128] = {0};
125+
bigchain_sign_transaction((uint8_t*)json, strlen(json), (uint8_t*)privkey, (uint8_t*)pubkey, (uint8_t*)sig);
126+
bigchain_fulfill_and_serialize(&tx, (uint8_t*)json, 800, (uint8_t*)sig, (uint8_t*)pubkey);
127+
uint8_t transaction_id[] = {0xeb,0x39,0x0d,0x15,0x7b,0xc9,0x8d,0xba,0x07,0x26,0x46,0x31,0x11,0xc7,0x31,0x9a,0x28,0x13,0x2d,0x62,0x3b,0x29,0x7b,0x97,0xa9,0x1c,0x96,0x1d,0x1a,0xe1,0xe9,0x07};
128+
129+
// TEST_ASSERT_EQUAL(0, memcmp(tx.inputs->fulfillment, fullfil, 137));
130+
TEST_ASSERT_EQUAL(0, memcmp(tx.id, transaction_id, 32));
131+
}
115132

116133
int main(void) {
117134
UNITY_BEGIN();
118-
RUN_TEST(test_sig);
119-
RUN_TEST(test_bigchain_build_json_inputs);
120-
RUN_TEST(test_bigchain_build_json_outputs);
135+
// RUN_TEST(test_sig);
136+
// RUN_TEST(test_bigchain_build_json_inputs);
137+
// RUN_TEST(test_bigchain_build_json_outputs);
121138
RUN_TEST(test_bigchain_build_json_tx);
139+
// RUN_TEST(test_bigchain_build_json_tx2);
122140
return UNITY_END();
123141
}

0 commit comments

Comments
 (0)