Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: Repair transaction_tests.cpp (baseline) #2350

Conversation

jamescowens
Copy link
Member

@jamescowens jamescowens commented Sep 26, 2021

This is a draft (tracking) PR of my efforts to get the transaction_tests working again. Apparently the transaction tests in the transaction_tests.cpp module were disabled in 2017:

// Gridcoin, 2017-03-18: Temporarily disable broken tests. // Possibly missing Gridcoin fields in JSON data. #if 0 ... #endif

My view is that we have to get the current tests working before we try to update the scripting. This is a precursor to #2341.

The approach here is to try and use the Bitcoin transaction tests, and use a CMutableBitcoinTransaction struct and a conversion function that takes the CMutableBitcoinTransaction as a parameter, initializes the missing Gridcoin fields in the Bitcoin test transactions and returns a Gridcoin CTransaction, those fields are not necessary for basic transaction validation, but prevent deserialization of a Bitcoin transaction into a Gridcoin one without a conversion. The deserialization is now working, whereas it was completely broken before due to the transaction test json missing required Gridcoin fields (even if they are empty).

I have also updated the transaction test code itself as it was unmaintained since 2017 and had not been updated to use the UniValue approach. It now looks much like Bitcoin's transaction_tests in the tx_valid and tx_invalid tests, of course backported to our situation.

@jamescowens
Copy link
Member Author

@div72, your help on this would be much appreciated... :)

@jamescowens
Copy link
Member Author

Ok some progress... the output of the transaction_tests at WIP 1 commit.

./test_gridcoin --run_test=transaction_tests --log_level=all
Running 5 test cases...
Entering test module "Gridcoin Test Suite"
test/transaction_tests.cpp(1015): Entering test suite "transaction_tests"
test/transaction_tests.cpp(1017): Entering test case "tx_valid"
2021-09-27T04:30:00Z nFileVersion = 5030202
2021-09-27T04:30:00Z Keys: 0 plaintext, 0 encrypted, 0 w/ metadata, 0 total
2021-09-27T04:30:00Z LoadWallet: started wallet flush thread.
2021-09-27T04:30:00Z Default data directory /home/jowens/.GridcoinResearch

2021-09-27T04:30:00Z Using data directory

2021-09-27T04:30:00Z Gridcoin version v5.3.2.2-g93a459513-dirty (release build - 2021-09-26 18:32:26 -0400)
test/transaction_tests.cpp(1078): info: check '[[["60a20bd93aa49ab4b28d514ec10b06e1829ce6818ec06cd3aabd013ebcdc4bb1",0,"1 0x41 0x04cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4 0x41 0x0461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af 2 OP_CHECKMULTISIG"]],"0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba26000000000490047304402203f16c6f40162ab686621ef3000b04e75418a0c0cb2d8aebeac894ae360ac1e780220ddc15ecdfc3507ac48e1681a33eb60996631bf6bf5bc0a0682c4db743ce7ca2b01ffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac00000000",true]' has passed
2021-09-27T04:30:00Z ERROR: Non-canonical signature: S value negative
2021-09-27T04:30:00Z ERROR: Non-canonical signature: S value negative
test/transaction_tests.cpp(1097): error: in "transaction_tests/tx_valid": Error: CastToBool(stack.back()) == false: e1: e2: Too many signatures have failed: nSigsCount = 1, nKeysCount = 0 Transaction: [[["60a20bd93aa49ab4b28d514ec10b06e1829ce6818ec06cd3aabd013ebcdc4bb1",0,"1 0x41 0x04cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4 0x41 0x0461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af 2 OP_CHECKMULTISIG"]],"0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba26000000000490047304402203f16c6f40162ab686621ef3000b04e75418a0c0cb2d8aebeac894ae360ac1e780220ddc15ecdfc3507ac48e1681a33eb60996631bf6bf5bc0a0682c4db743ce7ca2b01ffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac00000000",true]
test/transaction_tests.cpp(1078): info: check '[[["60a20bd93aa49ab4b28d514ec10b06e1829ce6818ec06cd3aabd013ebcdc4bb1",0,"1 0x41 0x04cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4 0x41 0x0461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af 2 OP_CHECKMULTISIG"]],"0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba260000000004A0048304402203f16c6f40162ab686621ef3000b04e75418a0c0cb2d8aebeac894ae360ac1e780220ddc15ecdfc3507ac48e1681a33eb60996631bf6bf5bc0a0682c4db743ce7ca2bab01ffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac00000000",true]' has passed
2021-09-27T04:30:00Z ERROR: Non-canonical signature: wrong length marker
2021-09-27T04:30:00Z ERROR: Non-canonical signature: wrong length marker
test/transaction_tests.cpp(1097): error: in "transaction_tests/tx_valid": Error: CastToBool(stack.back()) == false: e1: e2: Too many signatures have failed: nSigsCount = 1, nKeysCount = 0 Transaction: [[["60a20bd93aa49ab4b28d514ec10b06e1829ce6818ec06cd3aabd013ebcdc4bb1",0,"1 0x41 0x04cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4 0x41 0x0461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af 2 OP_CHECKMULTISIG"]],"0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba260000000004A0048304402203f16c6f40162ab686621ef3000b04e75418a0c0cb2d8aebeac894ae360ac1e780220ddc15ecdfc3507ac48e1681a33eb60996631bf6bf5bc0a0682c4db743ce7ca2bab01ffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac00000000",true]
test/transaction_tests.cpp(1078): info: check '[[["406b2b06bcd34d3c8733e6b79f7a394c8a431fbf4ff5ac705c93f4076bb77602",0,"DUP HASH160 0x14 0xdc44b1164188067c3a32d4780f5996fa14a4f2d9 EQUALVERIFY CHECKSIG"]],"01000000010276b76b07f4935c70acf54fbf1f438a4c397a9fb7e633873c4dd3bc062b6b40000000008c493046022100d23459d03ed7e9511a47d13292d3430a04627de6235b6e51a40f9cd386f2abe3022100e7d25b080f0bb8d8d5f878bba7d54ad2fda650ea8d158a33ee3cbd11768191fd004104b0e2c879e4daf7b9ab68350228c159766676a14f5815084ba166432aab46198d4cca98fa3e9981d0a90b2effc514b76279476550ba3663fdcaff94c38420e9d5000000000100093d00000000001976a9149a7b0f3b80c6baaeedce0a0842553800f832ba1f88ac00000000",true]' has passed
2021-09-27T04:30:00Z ERROR: Non-canonical signature: unknown hashtype byte
test/transaction_tests.cpp(1097): error: in "transaction_tests/tx_valid": Error: CastToBool(stack.back()) == false: e1: e2: Transaction: [[["406b2b06bcd34d3c8733e6b79f7a394c8a431fbf4ff5ac705c93f4076bb77602",0,"DUP HASH160 0x14 0xdc44b1164188067c3a32d4780f5996fa14a4f2d9 EQUALVERIFY CHECKSIG"]],"01000000010276b76b07f4935c70acf54fbf1f438a4c397a9fb7e633873c4dd3bc062b6b40000000008c493046022100d23459d03ed7e9511a47d13292d3430a04627de6235b6e51a40f9cd386f2abe3022100e7d25b080f0bb8d8d5f878bba7d54ad2fda650ea8d158a33ee3cbd11768191fd004104b0e2c879e4daf7b9ab68350228c159766676a14f5815084ba166432aab46198d4cca98fa3e9981d0a90b2effc514b76279476550ba3663fdcaff94c38420e9d5000000000100093d00000000001976a9149a7b0f3b80c6baaeedce0a0842553800f832ba1f88ac00000000",true]
test/transaction_tests.cpp(1078): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"DUP HASH160 0x14 0x5b6462475454710f3c22f5fdf0b40704c92f25c3 EQUALVERIFY CHECKSIGVERIFY 1"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006a473044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a012103ba8c8b86dea131c22ab967e6dd99bdae8eff7a1f75a2c35f1f944109e3fe5e22ffffffff010000000000000000015100000000",true]' has passed
test/transaction_tests.cpp(1097): error: in "transaction_tests/tx_valid": Error: EvalScript(stack, scriptPubKey, txTo, nIn, nHashType) failed: Transaction: [[["0000000000000000000000000000000000000000000000000000000000000100",0,"DUP HASH160 0x14 0x5b6462475454710f3c22f5fdf0b40704c92f25c3 EQUALVERIFY CHECKSIGVERIFY 1"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006a473044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a012103ba8c8b86dea131c22ab967e6dd99bdae8eff7a1f75a2c35f1f944109e3fe5e22ffffffff010000000000000000015100000000",true]
test/transaction_tests.cpp(1078): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"DUP HASH160 0x14 0x5b6462475454710f3c22f5fdf0b40704c92f25c3 EQUALVERIFY CHECKSIGVERIFY 1 0x47 0x3044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a01"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006a473044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a012103ba8c8b86dea131c22ab967e6dd99bdae8eff7a1f75a2c35f1f944109e3fe5e22ffffffff010000000000000000015100000000",true]' has passed
test/transaction_tests.cpp(1097): error: in "transaction_tests/tx_valid": Error: EvalScript(stack, scriptPubKey, txTo, nIn, nHashType) failed: Transaction: [[["0000000000000000000000000000000000000000000000000000000000000100",0,"DUP HASH160 0x14 0x5b6462475454710f3c22f5fdf0b40704c92f25c3 EQUALVERIFY CHECKSIGVERIFY 1 0x47 0x3044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a01"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006a473044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a012103ba8c8b86dea131c22ab967e6dd99bdae8eff7a1f75a2c35f1f944109e3fe5e22ffffffff010000000000000000015100000000",true]
test/transaction_tests.cpp(1078): info: check '[[["b464e85df2a238416f8bdae11d120add610380ea07f4ef19c5f9dfd472f96c3d",0,"DUP HASH160 0x14 0xbef80ecf3a44500fda1bc92176e442891662aed2 EQUALVERIFY CHECKSIG"],["b7978cc96e59a8b13e0865d3f95657561a7f725be952438637475920bac9eb21",1,"DUP HASH160 0x14 0xbef80ecf3a44500fda1bc92176e442891662aed2 EQUALVERIFY CHECKSIG"]],"01000000023d6cf972d4dff9c519eff407ea800361dd0a121de1da8b6f4138a2f25de864b4000000008a4730440220ffda47bfc776bcd269da4832626ac332adfca6dd835e8ecd83cd1ebe7d709b0e022049cffa1cdc102a0b56e0e04913606c70af702a1149dc3b305ab9439288fee090014104266abb36d66eb4218a6dd31f09bb92cf3cfa803c7ea72c1fc80a50f919273e613f895b855fb7465ccbc8919ad1bd4a306c783f22cd3227327694c4fa4c1c439affffffff21ebc9ba20594737864352e95b727f1a565756f9d365083eb1a8596ec98c97b7010000008a4730440220503ff10e9f1e0de731407a4a245531c9ff17676eda461f8ceeb8c06049fa2c810220c008ac34694510298fa60b3f000df01caa244f165b727d4896eb84f81e46bcc4014104266abb36d66eb4218a6dd31f09bb92cf3cfa803c7ea72c1fc80a50f919273e613f895b855fb7465ccbc8919ad1bd4a306c783f22cd3227327694c4fa4c1c439affffffff01f0da5200000000001976a914857ccd42dded6df32949d4646dfa10a92458cfaa88ac00000000",true]' has passed
2021-09-27T04:30:00Z ERROR: Non-canonical signature: R value negative
test/transaction_tests.cpp(1097): error: in "transaction_tests/tx_valid": Error: CastToBool(stack.back()) == false: e1: e2: Transaction: [[["b464e85df2a238416f8bdae11d120add610380ea07f4ef19c5f9dfd472f96c3d",0,"DUP HASH160 0x14 0xbef80ecf3a44500fda1bc92176e442891662aed2 EQUALVERIFY CHECKSIG"],["b7978cc96e59a8b13e0865d3f95657561a7f725be952438637475920bac9eb21",1,"DUP HASH160 0x14 0xbef80ecf3a44500fda1bc92176e442891662aed2 EQUALVERIFY CHECKSIG"]],"01000000023d6cf972d4dff9c519eff407ea800361dd0a121de1da8b6f4138a2f25de864b4000000008a4730440220ffda47bfc776bcd269da4832626ac332adfca6dd835e8ecd83cd1ebe7d709b0e022049cffa1cdc102a0b56e0e04913606c70af702a1149dc3b305ab9439288fee090014104266abb36d66eb4218a6dd31f09bb92cf3cfa803c7ea72c1fc80a50f919273e613f895b855fb7465ccbc8919ad1bd4a306c783f22cd3227327694c4fa4c1c439affffffff21ebc9ba20594737864352e95b727f1a565756f9d365083eb1a8596ec98c97b7010000008a4730440220503ff10e9f1e0de731407a4a245531c9ff17676eda461f8ceeb8c06049fa2c810220c008ac34694510298fa60b3f000df01caa244f165b727d4896eb84f81e46bcc4014104266abb36d66eb4218a6dd31f09bb92cf3cfa803c7ea72c1fc80a50f919273e613f895b855fb7465ccbc8919ad1bd4a306c783f22cd3227327694c4fa4c1c439affffffff01f0da5200000000001976a914857ccd42dded6df32949d4646dfa10a92458cfaa88ac00000000",true]
2021-09-27T04:30:00Z ERROR: Non-canonical signature: S value negative
test/transaction_tests.cpp(1097): error: in "transaction_tests/tx_valid": Error: CastToBool(stack.back()) == false: e1: e2: Transaction: [[["b464e85df2a238416f8bdae11d120add610380ea07f4ef19c5f9dfd472f96c3d",0,"DUP HASH160 0x14 0xbef80ecf3a44500fda1bc92176e442891662aed2 EQUALVERIFY CHECKSIG"],["b7978cc96e59a8b13e0865d3f95657561a7f725be952438637475920bac9eb21",1,"DUP HASH160 0x14 0xbef80ecf3a44500fda1bc92176e442891662aed2 EQUALVERIFY CHECKSIG"]],"01000000023d6cf972d4dff9c519eff407ea800361dd0a121de1da8b6f4138a2f25de864b4000000008a4730440220ffda47bfc776bcd269da4832626ac332adfca6dd835e8ecd83cd1ebe7d709b0e022049cffa1cdc102a0b56e0e04913606c70af702a1149dc3b305ab9439288fee090014104266abb36d66eb4218a6dd31f09bb92cf3cfa803c7ea72c1fc80a50f919273e613f895b855fb7465ccbc8919ad1bd4a306c783f22cd3227327694c4fa4c1c439affffffff21ebc9ba20594737864352e95b727f1a565756f9d365083eb1a8596ec98c97b7010000008a4730440220503ff10e9f1e0de731407a4a245531c9ff17676eda461f8ceeb8c06049fa2c810220c008ac34694510298fa60b3f000df01caa244f165b727d4896eb84f81e46bcc4014104266abb36d66eb4218a6dd31f09bb92cf3cfa803c7ea72c1fc80a50f919273e613f895b855fb7465ccbc8919ad1bd4a306c783f22cd3227327694c4fa4c1c439affffffff01f0da5200000000001976a914857ccd42dded6df32949d4646dfa10a92458cfaa88ac00000000",true]
test/transaction_tests.cpp(1078): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"DUP HASH160 0x14 0xe52b482f2faa8ecbf0db344f93c84ac908557f33 EQUALVERIFY CHECKSIG"],["0000000000000000000000000000000000000000000000000000000000000200",0,"1"]],"01000000020002000000000000000000000000000000000000000000000000000000000000000000000151ffffffff0001000000000000000000000000000000000000000000000000000000000000000000006b483045022100c9cdd08798a28af9d1baf44a6c77bcc7e279f47dc487c8c899911bc48feaffcc0220503c5c50ae3998a733263c5c0f7061b483e2b56c4c41b456e7d2f5a78a74c077032102d5c25adb51b61339d2b05315791e21bbe80ea470a49db0135720983c905aace0ffffffff010000000000000000015100000000",true]' has passed
2021-09-27T04:30:00Z ERROR: SignatureHash() : nOut=1 out of range
test/transaction_tests.cpp(1078): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0x7a052c840ba73af26755de42cf01cc9e0a49fef0 EQUAL"]],"010000000100010000000000000000000000000000000000000000000000000000000000000000000009085768617420697320ffffffff010000000000000000015100000000",false]' has passed
test/transaction_tests.cpp(1097): error: in "transaction_tests/tx_valid": Error: transaction is spend-to-script-hash and EvalScriptWithErrorDesc(stackCopy, pubKey2, txTo, nIn, nHashType) fails: e3: Transaction: [[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0x7a052c840ba73af26755de42cf01cc9e0a49fef0 EQUAL"]],"010000000100010000000000000000000000000000000000000000000000000000000000000000000009085768617420697320ffffffff010000000000000000015100000000",false]
test/transaction_tests.cpp(1078): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0x8febbed40483661de6958d957412f82deed8e2f7 EQUAL"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006e493046022100c66c9cdf4c43609586d15424c54707156e316d88b0a1534c9e6b0d4f311406310221009c0fe51dbc9c4ab7cc25d3fdbeccf6679fe6827f08edf2b4a9f16ee3eb0e438a0123210338e8034509af564c62644c07691942e0c056752008a173c89f60ab2a88ac2ebfacffffffff010000000000000000015100000000",true]' has passed
2021-09-27T04:30:00Z ERROR: Non-canonical signature: S value is unnecessarily high
test/transaction_tests.cpp(1097): error: in "transaction_tests/tx_valid": Error: Transaction: [[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0x8febbed40483661de6958d957412f82deed8e2f7 EQUAL"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006e493046022100c66c9cdf4c43609586d15424c54707156e316d88b0a1534c9e6b0d4f311406310221009c0fe51dbc9c4ab7cc25d3fdbeccf6679fe6827f08edf2b4a9f16ee3eb0e438a0123210338e8034509af564c62644c07691942e0c056752008a173c89f60ab2a88ac2ebfacffffffff010000000000000000015100000000",true]
test/transaction_tests.cpp(1078): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0x32afac281462b822adbec5094b8d4d337dd5bd6a EQUAL"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006e493046022100e1eadba00d9296c743cb6ecc703fd9ddc9b3cd12906176a226ae4c18d6b00796022100a71aef7d2874deff681ba6080f1b278bac7bb99c61b08a85f4311970ffe7f63f012321030c0588dc44d92bdcbf8e72093466766fdc265ead8db64517b0c542275b70fffbacffffffff010040075af0750700015100000000",true]' has passed
2021-09-27T04:30:00Z ERROR: Non-canonical signature: S value is unnecessarily high
test/transaction_tests.cpp(1097): error: in "transaction_tests/tx_valid": Error: Transaction: [[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0x32afac281462b822adbec5094b8d4d337dd5bd6a EQUAL"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006e493046022100e1eadba00d9296c743cb6ecc703fd9ddc9b3cd12906176a226ae4c18d6b00796022100a71aef7d2874deff681ba6080f1b278bac7bb99c61b08a85f4311970ffe7f63f012321030c0588dc44d92bdcbf8e72093466766fdc265ead8db64517b0c542275b70fffbacffffffff010040075af0750700015100000000",true]
test/transaction_tests.cpp(1078): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0xb558cbf4930954aa6a344363a15668d7477ae716 EQUAL"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006d483045022027deccc14aa6668e78a8c9da3484fbcd4f9dcc9bb7d1b85146314b21b9ae4d86022100d0b43dece8cfb07348de0ca8bc5b86276fa88f7f2138381128b7c36ab2e42264012321029bb13463ddd5d2cc05da6e84e37536cb9525703cfd8f43afdb414988987a92f6acffffffff020040075af075070001510000000000000000015100000000",true]' has passed
2021-09-27T04:30:00Z ERROR: Non-canonical signature: S value is unnecessarily high
test/transaction_tests.cpp(1097): error: in "transaction_tests/tx_valid": Error: Transaction: [[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0xb558cbf4930954aa6a344363a15668d7477ae716 EQUAL"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006d483045022027deccc14aa6668e78a8c9da3484fbcd4f9dcc9bb7d1b85146314b21b9ae4d86022100d0b43dece8cfb07348de0ca8bc5b86276fa88f7f2138381128b7c36ab2e42264012321029bb13463ddd5d2cc05da6e84e37536cb9525703cfd8f43afdb414988987a92f6acffffffff020040075af075070001510000000000000000015100000000",true]
test/transaction_tests.cpp(1078): info: check '[[["0000000000000000000000000000000000000000000000000000000000000000",-1,"1"]],"01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff025151ffffffff010000000000000000015100000000",true]' has passed
test/transaction_tests.cpp(1078): info: check '[[["0000000000000000000000000000000000000000000000000000000000000000",-1,"1"]],"01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff6451515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151ffffffff010000000000000000015100000000",true]' has passed
test/transaction_tests.cpp(1017): Leaving test case "tx_valid"; testing time: 4429us
test/transaction_tests.cpp(1104): Entering test case "tx_invalid"
test/transaction_tests.cpp(1169): error: in "transaction_tests/tx_invalid": Bad test 3: [[["6ca7ec7b1847f6bdbd737176050e6a08d66ccd55bb94ad24f4018024107a5827",0,"0x41 0x043b640e983c9690a14c039a2037ecc3467b27a0dcd58f19d76c7bc118d09fec45adc5370a1c5bf8067ca9f5557a4cf885fdb0fe0dcc9c3a7137226106fbc779a5 CHECKSIG VERIFY 1"]],"010000000127587a10248001f424ad94bb55cd6cd6086a0e05767173bdbdf647187beca76c000000004948304502201b822ad10d6adc1a341ae8835be3f70a25201bbff31f59cbb9c5353a5f0eca18022100ea7b2f7074e9aa9cf70aa8d0ffee13e6b45dddabf1ab961bda378bcdb778fa4701ffffffff0100f2052a010000001976a914fc50c5907d86fed474ba5ce8b12a66e0a4c139d888ac00000000",true]
test/transaction_tests.cpp(1182): error: in "transaction_tests/tx_invalid": [[["6ca7ec7b1847f6bdbd737176050e6a08d66ccd55bb94ad24f4018024107a5827",0,"0x41 0x043b640e983c9690a14c039a2037ecc3467b27a0dcd58f19d76c7bc118d09fec45adc5370a1c5bf8067ca9f5557a4cf885fdb0fe0dcc9c3a7137226106fbc779a5 CHECKSIG VERIFY 1"]],"010000000127587a10248001f424ad94bb55cd6cd6086a0e05767173bdbdf647187beca76c000000004948304502201b822ad10d6adc1a341ae8835be3f70a25201bbff31f59cbb9c5353a5f0eca18022100ea7b2f7074e9aa9cf70aa8d0ffee13e6b45dddabf1ab961bda378bcdb778fa4701ffffffff0100f2052a010000001976a914fc50c5907d86fed474ba5ce8b12a66e0a4c139d888ac00000000",true]
test/transaction_tests.cpp(1169): error: in "transaction_tests/tx_invalid": Bad test 3: [[["0000000000000000000000000000000000000000000000000000000000000100",0,"DUP HASH160 0x14 0x5b6462475454710f3c22f5fdf0b40704c92f25c3 EQUALVERIFY CHECKSIGVERIFY 1 0x4c 0x47 0x3044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a01"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006a473044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a012103ba8c8b86dea131c22ab967e6dd99bdae8eff7a1f75a2c35f1f944109e3fe5e22ffffffff010000000000000000015100000000",true]
test/transaction_tests.cpp(1182): error: in "transaction_tests/tx_invalid": [[["0000000000000000000000000000000000000000000000000000000000000100",0,"DUP HASH160 0x14 0x5b6462475454710f3c22f5fdf0b40704c92f25c3 EQUALVERIFY CHECKSIGVERIFY 1 0x4c 0x47 0x3044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a01"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006a473044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a012103ba8c8b86dea131c22ab967e6dd99bdae8eff7a1f75a2c35f1f944109e3fe5e22ffffffff010000000000000000015100000000",true]
test/transaction_tests.cpp(1169): error: in "transaction_tests/tx_invalid": Bad test 3: [[["0000000000000000000000000000000000000000000000000000000000000100",0,"DUP HASH160 0x14 0x5b6462475454710f3c22f5fdf0b40704c92f25c3 EQUALVERIFY CHECKSIGVERIFY 1 0x4c 0x47 0x3044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a01"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006b4c473044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a012103ba8c8b86dea131c22ab967e6dd99bdae8eff7a1f75a2c35f1f944109e3fe5e22ffffffff010000000000000000015100000000",true]
test/transaction_tests.cpp(1182): error: in "transaction_tests/tx_invalid": [[["0000000000000000000000000000000000000000000000000000000000000100",0,"DUP HASH160 0x14 0x5b6462475454710f3c22f5fdf0b40704c92f25c3 EQUALVERIFY CHECKSIGVERIFY 1 0x4c 0x47 0x3044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a01"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006b4c473044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a012103ba8c8b86dea131c22ab967e6dd99bdae8eff7a1f75a2c35f1f944109e3fe5e22ffffffff010000000000000000015100000000",true]
test/transaction_tests.cpp(1169): error: in "transaction_tests/tx_invalid": Bad test 3: [[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0x7a052c840ba73af26755de42cf01cc9e0a49fef0 EQUAL"]],"010000000100010000000000000000000000000000000000000000000000000000000000000000000009085768617420697320ffffffff010000000000000000015100000000",true]
test/transaction_tests.cpp(1182): error: in "transaction_tests/tx_invalid": [[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0x7a052c840ba73af26755de42cf01cc9e0a49fef0 EQUAL"]],"010000000100010000000000000000000000000000000000000000000000000000000000000000000009085768617420697320ffffffff010000000000000000015100000000",true]
2021-09-27T04:30:00Z ERROR: CheckTransaction() : vin empty
test/transaction_tests.cpp(1182): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0x7a052c840ba73af26755de42cf01cc9e0a49fef0 EQUAL"]],"0100000000010000000000000000015100000000",true]' has passed
2021-09-27T04:30:00Z ERROR: CheckTransaction() : vout empty
test/transaction_tests.cpp(1182): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0x05ab9e14d983742513f0f451e105ffb4198d1dd4 EQUAL"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006d483045022100f16703104aab4e4088317c862daec83440242411b039d14280e03dd33b487ab802201318a7be236672c5c56083eb7a5a195bc57a40af7923ff8545016cd3b571e2a601232103c40e5d339df3f30bf753e7e04450ae4ef76c9e45587d1d993bdc4cd06f0651c7acffffffff0000000000",true]' has passed
2021-09-27T04:30:00Z ERROR: CheckTransaction() : txout.nValue negative
test/transaction_tests.cpp(1182): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0xae609aca8061d77c5e111f6bb62501a6bbe2bfdb EQUAL"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006d4830450220063222cbb128731fc09de0d7323746539166544d6c1df84d867ccea84bcc8903022100bf568e8552844de664cd41648a031554327aa8844af34b4f27397c65b92c04de0123210243ec37dee0e2e053a9c976f43147e79bc7d9dc606ea51010af1ac80db6b069e1acffffffff01ffffffffffffffff015100000000",true]' has passed
test/transaction_tests.cpp(1169): error: in "transaction_tests/tx_invalid": Bad test 3: [[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0x32afac281462b822adbec5094b8d4d337dd5bd6a EQUAL"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006e493046022100e1eadba00d9296c743cb6ecc703fd9ddc9b3cd12906176a226ae4c18d6b00796022100a71aef7d2874deff681ba6080f1b278bac7bb99c61b08a85f4311970ffe7f63f012321030c0588dc44d92bdcbf8e72093466766fdc265ead8db64517b0c542275b70fffbacffffffff010140075af0750700015100000000",true]
test/transaction_tests.cpp(1182): error: in "transaction_tests/tx_invalid": [[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0x32afac281462b822adbec5094b8d4d337dd5bd6a EQUAL"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006e493046022100e1eadba00d9296c743cb6ecc703fd9ddc9b3cd12906176a226ae4c18d6b00796022100a71aef7d2874deff681ba6080f1b278bac7bb99c61b08a85f4311970ffe7f63f012321030c0588dc44d92bdcbf8e72093466766fdc265ead8db64517b0c542275b70fffbacffffffff010140075af0750700015100000000",true]
test/transaction_tests.cpp(1169): error: in "transaction_tests/tx_invalid": Bad test 3: [[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0xb558cbf4930954aa6a344363a15668d7477ae716 EQUAL"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006d483045022027deccc14aa6668e78a8c9da3484fbcd4f9dcc9bb7d1b85146314b21b9ae4d86022100d0b43dece8cfb07348de0ca8bc5b86276fa88f7f2138381128b7c36ab2e42264012321029bb13463ddd5d2cc05da6e84e37536cb9525703cfd8f43afdb414988987a92f6acffffffff020040075af075070001510001000000000000015100000000",true]
test/transaction_tests.cpp(1182): error: in "transaction_tests/tx_invalid": [[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0xb558cbf4930954aa6a344363a15668d7477ae716 EQUAL"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006d483045022027deccc14aa6668e78a8c9da3484fbcd4f9dcc9bb7d1b85146314b21b9ae4d86022100d0b43dece8cfb07348de0ca8bc5b86276fa88f7f2138381128b7c36ab2e42264012321029bb13463ddd5d2cc05da6e84e37536cb9525703cfd8f43afdb414988987a92f6acffffffff020040075af075070001510001000000000000015100000000",true]
test/transaction_tests.cpp(1182): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0x236d0639db62b0773fd8ac34dc85ae19e9aba80a EQUAL"]],"01000000020001000000000000000000000000000000000000000000000000000000000000000000006c47304402204bb1197053d0d7799bf1b30cd503c44b58d6240cccbdc85b6fe76d087980208f02204beeed78200178ffc6c74237bb74b3f276bbb4098b5605d814304fe128bf1431012321039e8815e15952a7c3fada1905f8cf55419837133bd7756c0ef14fc8dfe50c0deaacffffffff0001000000000000000000000000000000000000000000000000000000000000000000006c47304402202306489afef52a6f62e90bf750bbcdf40c06f5c6b138286e6b6b86176bb9341802200dba98486ea68380f47ebb19a7df173b99e6bc9c681d6ccf3bde31465d1f16b3012321039e8815e15952a7c3fada1905f8cf55419837133bd7756c0ef14fc8dfe50c0deaacffffffff010000000000000000015100000000",true]' has passed
2021-09-27T04:30:00Z ERROR: CheckTransaction() : coinbase script size is invalid
test/transaction_tests.cpp(1182): info: check '[[["0000000000000000000000000000000000000000000000000000000000000000",-1,"1"]],"01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0151ffffffff010000000000000000015100000000",true]' has passed
2021-09-27T04:30:00Z ERROR: CheckTransaction() : coinbase script size is invalid
test/transaction_tests.cpp(1182): info: check '[[["0000000000000000000000000000000000000000000000000000000000000000",-1,"1"]],"01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff655151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151ffffffff010000000000000000015100000000",true]' has passed
2021-09-27T04:30:00Z ERROR: CheckTransaction() : coinbase script size is invalid
test/transaction_tests.cpp(1182): info: check '[[["0000000000000000000000000000000000000000000000000000000000000000",-1,"HASH160 0x14 0x02dae7dbbda56097959cba59b1989dd3e47937bf EQUAL"]],"01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff6e49304602210086f39e028e46dafa8e1e3be63906465f4cf038fbe5ed6403dc3e74ae876e6431022100c4625c675cfc5c7e3a0e0d7eaec92ac24da20c73a88eb40d09253e51ac6def5201232103a183ddc41e84753aca47723c965d1b5c8b0e2b537963518355e6dd6cf8415e50acffffffff010000000000000000015100000000",true]' has passed
test/transaction_tests.cpp(1104): Leaving test case "tx_invalid"; testing time: 659us
test/transaction_tests.cpp(1188): Entering test case "basic_transaction_tests"
test/transaction_tests.cpp(1220): info: check 'Simple deserialized transaction should be valid.' has passed
test/transaction_tests.cpp(1224): info: check 'Transaction with duplicate txins should be invalid.' has passed
test/transaction_tests.cpp(1188): Leaving test case "basic_transaction_tests"; testing time: 127us
test/transaction_tests.cpp(1265): Entering test case "test_Get"
test/transaction_tests.cpp(1288): info: check AreInputsStandard(t1, dummyInputs) has passed
test/transaction_tests.cpp(1292): info: check !AreInputsStandard(t1, dummyInputs) has passed
test/transaction_tests.cpp(1296): info: check !AreInputsStandard(t1, dummyInputs) has passed
test/transaction_tests.cpp(1265): Leaving test case "test_Get"; testing time: 3578us
test/transaction_tests.cpp(1299): Entering test case "test_GetThrow"
test/transaction_tests.cpp(1321): info: check 'exception "runtime_error" raised as expected' has passed
test/transaction_tests.cpp(1299): Leaving test case "test_GetThrow"; testing time: 3871us
test/transaction_tests.cpp(1015): Leaving test suite "transaction_tests"; testing time: 12811us
Leaving test module "Gridcoin Test Suite"; testing time: 12938us

*** 23 failures are detected in the test module "Gridcoin Test Suite"

@div72
Copy link
Member

div72 commented Sep 27, 2021

@jamescowens The first 6 transactions in the tx_valid fail due to ECDSA_verify returning bad signature. My hypothesis is that older versions of OpenSSL used to allow non-canonical signatures and newer do not. libsecp256k1 might need to be ported to have the lax version of verify function.

@div72
Copy link
Member

div72 commented Sep 27, 2021

I think we do not need to/should not fix those, they are bitcoin-specific exceptions that (I assume) we do not have. Focusing on BIP-0016 and non-SCRIPT_VERIFY_P2SH support should fix the other failures and is a more efficient use of time in my opinion.

All failures in tx_invalid seem to come from broken indentation of the second validity test, trivial to fix.

@jamescowens
Copy link
Member Author

I think you are right on the ECDSA_verify returning bad signature. Since we really don't even have these cases in our chain, I think we can simply rip these exceptions out. If we don't intend on supporting lax standards, and don't have any in our chain, silly to port over libsecp256k1 just to fix a non-existent (in Gridcoin) case.

@jamescowens
Copy link
Member Author

./test_gridcoin --run_test=transaction_tests --log_level=all
Running 5 test cases...
Entering test module "Gridcoin Test Suite"
test/transaction_tests.cpp(1015): Entering test suite "transaction_tests"
test/transaction_tests.cpp(1017): Entering test case "tx_valid"
2021-09-27T15:16:50Z nFileVersion = 5030202
2021-09-27T15:16:50Z Keys: 0 plaintext, 0 encrypted, 0 w/ metadata, 0 total
2021-09-27T15:16:50Z LoadWallet: started wallet flush thread.
2021-09-27T15:16:50Z Default data directory /home/jowens/.GridcoinResearch

2021-09-27T15:16:50Z Using data directory

2021-09-27T15:16:50Z Gridcoin version v5.3.2.2-g31136773f-dirty (release build - 2021-09-27 00:29:34 -0400)
test/transaction_tests.cpp(1078): info: check '[[["60a20bd93aa49ab4b28d514ec10b06e1829ce6818ec06cd3aabd013ebcdc4bb1",0,"1 0x41 0x04cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4 0x41 0x0461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af 2 OP_CHECKMULTISIG"]],"0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba26000000000490047304402203f16c6f40162ab686621ef3000b04e75418a0c0cb2d8aebeac894ae360ac1e780220ddc15ecdfc3507ac48e1681a33eb60996631bf6bf5bc0a0682c4db743ce7ca2b01ffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac00000000",true]' has passed
2021-09-27T15:16:50Z ERROR: Non-canonical signature: S value negative
2021-09-27T15:16:50Z ERROR: Non-canonical signature: S value negative
test/transaction_tests.cpp(1097): error: in "transaction_tests/tx_valid": Error: CastToBool(stack.back()) == false: e1: e2: Too many signatures have failed: nSigsCount = 1, nKeysCount = 0 Transaction: [[["60a20bd93aa49ab4b28d514ec10b06e1829ce6818ec06cd3aabd013ebcdc4bb1",0,"1 0x41 0x04cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4 0x41 0x0461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af 2 OP_CHECKMULTISIG"]],"0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba26000000000490047304402203f16c6f40162ab686621ef3000b04e75418a0c0cb2d8aebeac894ae360ac1e780220ddc15ecdfc3507ac48e1681a33eb60996631bf6bf5bc0a0682c4db743ce7ca2b01ffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac00000000",true]
test/transaction_tests.cpp(1078): info: check '[[["60a20bd93aa49ab4b28d514ec10b06e1829ce6818ec06cd3aabd013ebcdc4bb1",0,"1 0x41 0x04cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4 0x41 0x0461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af 2 OP_CHECKMULTISIG"]],"0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba260000000004A0048304402203f16c6f40162ab686621ef3000b04e75418a0c0cb2d8aebeac894ae360ac1e780220ddc15ecdfc3507ac48e1681a33eb60996631bf6bf5bc0a0682c4db743ce7ca2bab01ffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac00000000",true]' has passed
2021-09-27T15:16:50Z ERROR: Non-canonical signature: wrong length marker
2021-09-27T15:16:50Z ERROR: Non-canonical signature: wrong length marker
test/transaction_tests.cpp(1097): error: in "transaction_tests/tx_valid": Error: CastToBool(stack.back()) == false: e1: e2: Too many signatures have failed: nSigsCount = 1, nKeysCount = 0 Transaction: [[["60a20bd93aa49ab4b28d514ec10b06e1829ce6818ec06cd3aabd013ebcdc4bb1",0,"1 0x41 0x04cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4 0x41 0x0461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af 2 OP_CHECKMULTISIG"]],"0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba260000000004A0048304402203f16c6f40162ab686621ef3000b04e75418a0c0cb2d8aebeac894ae360ac1e780220ddc15ecdfc3507ac48e1681a33eb60996631bf6bf5bc0a0682c4db743ce7ca2bab01ffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac00000000",true]
test/transaction_tests.cpp(1078): info: check '[[["406b2b06bcd34d3c8733e6b79f7a394c8a431fbf4ff5ac705c93f4076bb77602",0,"DUP HASH160 0x14 0xdc44b1164188067c3a32d4780f5996fa14a4f2d9 EQUALVERIFY CHECKSIG"]],"01000000010276b76b07f4935c70acf54fbf1f438a4c397a9fb7e633873c4dd3bc062b6b40000000008c493046022100d23459d03ed7e9511a47d13292d3430a04627de6235b6e51a40f9cd386f2abe3022100e7d25b080f0bb8d8d5f878bba7d54ad2fda650ea8d158a33ee3cbd11768191fd004104b0e2c879e4daf7b9ab68350228c159766676a14f5815084ba166432aab46198d4cca98fa3e9981d0a90b2effc514b76279476550ba3663fdcaff94c38420e9d5000000000100093d00000000001976a9149a7b0f3b80c6baaeedce0a0842553800f832ba1f88ac00000000",true]' has passed
2021-09-27T15:16:50Z ERROR: Non-canonical signature: unknown hashtype byte
test/transaction_tests.cpp(1097): error: in "transaction_tests/tx_valid": Error: CastToBool(stack.back()) == false: e1: e2: Transaction: [[["406b2b06bcd34d3c8733e6b79f7a394c8a431fbf4ff5ac705c93f4076bb77602",0,"DUP HASH160 0x14 0xdc44b1164188067c3a32d4780f5996fa14a4f2d9 EQUALVERIFY CHECKSIG"]],"01000000010276b76b07f4935c70acf54fbf1f438a4c397a9fb7e633873c4dd3bc062b6b40000000008c493046022100d23459d03ed7e9511a47d13292d3430a04627de6235b6e51a40f9cd386f2abe3022100e7d25b080f0bb8d8d5f878bba7d54ad2fda650ea8d158a33ee3cbd11768191fd004104b0e2c879e4daf7b9ab68350228c159766676a14f5815084ba166432aab46198d4cca98fa3e9981d0a90b2effc514b76279476550ba3663fdcaff94c38420e9d5000000000100093d00000000001976a9149a7b0f3b80c6baaeedce0a0842553800f832ba1f88ac00000000",true]
test/transaction_tests.cpp(1078): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"DUP HASH160 0x14 0x5b6462475454710f3c22f5fdf0b40704c92f25c3 EQUALVERIFY CHECKSIGVERIFY 1"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006a473044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a012103ba8c8b86dea131c22ab967e6dd99bdae8eff7a1f75a2c35f1f944109e3fe5e22ffffffff010000000000000000015100000000",true]' has passed
test/transaction_tests.cpp(1097): error: in "transaction_tests/tx_valid": Error: EvalScript(stack, scriptPubKey, txTo, nIn, nHashType) failed: Transaction: [[["0000000000000000000000000000000000000000000000000000000000000100",0,"DUP HASH160 0x14 0x5b6462475454710f3c22f5fdf0b40704c92f25c3 EQUALVERIFY CHECKSIGVERIFY 1"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006a473044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a012103ba8c8b86dea131c22ab967e6dd99bdae8eff7a1f75a2c35f1f944109e3fe5e22ffffffff010000000000000000015100000000",true]
test/transaction_tests.cpp(1078): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"DUP HASH160 0x14 0x5b6462475454710f3c22f5fdf0b40704c92f25c3 EQUALVERIFY CHECKSIGVERIFY 1 0x47 0x3044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a01"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006a473044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a012103ba8c8b86dea131c22ab967e6dd99bdae8eff7a1f75a2c35f1f944109e3fe5e22ffffffff010000000000000000015100000000",true]' has passed
test/transaction_tests.cpp(1097): error: in "transaction_tests/tx_valid": Error: EvalScript(stack, scriptPubKey, txTo, nIn, nHashType) failed: Transaction: [[["0000000000000000000000000000000000000000000000000000000000000100",0,"DUP HASH160 0x14 0x5b6462475454710f3c22f5fdf0b40704c92f25c3 EQUALVERIFY CHECKSIGVERIFY 1 0x47 0x3044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a01"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006a473044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a012103ba8c8b86dea131c22ab967e6dd99bdae8eff7a1f75a2c35f1f944109e3fe5e22ffffffff010000000000000000015100000000",true]
test/transaction_tests.cpp(1078): info: check '[[["b464e85df2a238416f8bdae11d120add610380ea07f4ef19c5f9dfd472f96c3d",0,"DUP HASH160 0x14 0xbef80ecf3a44500fda1bc92176e442891662aed2 EQUALVERIFY CHECKSIG"],["b7978cc96e59a8b13e0865d3f95657561a7f725be952438637475920bac9eb21",1,"DUP HASH160 0x14 0xbef80ecf3a44500fda1bc92176e442891662aed2 EQUALVERIFY CHECKSIG"]],"01000000023d6cf972d4dff9c519eff407ea800361dd0a121de1da8b6f4138a2f25de864b4000000008a4730440220ffda47bfc776bcd269da4832626ac332adfca6dd835e8ecd83cd1ebe7d709b0e022049cffa1cdc102a0b56e0e04913606c70af702a1149dc3b305ab9439288fee090014104266abb36d66eb4218a6dd31f09bb92cf3cfa803c7ea72c1fc80a50f919273e613f895b855fb7465ccbc8919ad1bd4a306c783f22cd3227327694c4fa4c1c439affffffff21ebc9ba20594737864352e95b727f1a565756f9d365083eb1a8596ec98c97b7010000008a4730440220503ff10e9f1e0de731407a4a245531c9ff17676eda461f8ceeb8c06049fa2c810220c008ac34694510298fa60b3f000df01caa244f165b727d4896eb84f81e46bcc4014104266abb36d66eb4218a6dd31f09bb92cf3cfa803c7ea72c1fc80a50f919273e613f895b855fb7465ccbc8919ad1bd4a306c783f22cd3227327694c4fa4c1c439affffffff01f0da5200000000001976a914857ccd42dded6df32949d4646dfa10a92458cfaa88ac00000000",true]' has passed
2021-09-27T15:16:50Z ERROR: Non-canonical signature: R value negative
test/transaction_tests.cpp(1097): error: in "transaction_tests/tx_valid": Error: CastToBool(stack.back()) == false: e1: e2: Transaction: [[["b464e85df2a238416f8bdae11d120add610380ea07f4ef19c5f9dfd472f96c3d",0,"DUP HASH160 0x14 0xbef80ecf3a44500fda1bc92176e442891662aed2 EQUALVERIFY CHECKSIG"],["b7978cc96e59a8b13e0865d3f95657561a7f725be952438637475920bac9eb21",1,"DUP HASH160 0x14 0xbef80ecf3a44500fda1bc92176e442891662aed2 EQUALVERIFY CHECKSIG"]],"01000000023d6cf972d4dff9c519eff407ea800361dd0a121de1da8b6f4138a2f25de864b4000000008a4730440220ffda47bfc776bcd269da4832626ac332adfca6dd835e8ecd83cd1ebe7d709b0e022049cffa1cdc102a0b56e0e04913606c70af702a1149dc3b305ab9439288fee090014104266abb36d66eb4218a6dd31f09bb92cf3cfa803c7ea72c1fc80a50f919273e613f895b855fb7465ccbc8919ad1bd4a306c783f22cd3227327694c4fa4c1c439affffffff21ebc9ba20594737864352e95b727f1a565756f9d365083eb1a8596ec98c97b7010000008a4730440220503ff10e9f1e0de731407a4a245531c9ff17676eda461f8ceeb8c06049fa2c810220c008ac34694510298fa60b3f000df01caa244f165b727d4896eb84f81e46bcc4014104266abb36d66eb4218a6dd31f09bb92cf3cfa803c7ea72c1fc80a50f919273e613f895b855fb7465ccbc8919ad1bd4a306c783f22cd3227327694c4fa4c1c439affffffff01f0da5200000000001976a914857ccd42dded6df32949d4646dfa10a92458cfaa88ac00000000",true]
2021-09-27T15:16:50Z ERROR: Non-canonical signature: S value negative
test/transaction_tests.cpp(1097): error: in "transaction_tests/tx_valid": Error: CastToBool(stack.back()) == false: e1: e2: Transaction: [[["b464e85df2a238416f8bdae11d120add610380ea07f4ef19c5f9dfd472f96c3d",0,"DUP HASH160 0x14 0xbef80ecf3a44500fda1bc92176e442891662aed2 EQUALVERIFY CHECKSIG"],["b7978cc96e59a8b13e0865d3f95657561a7f725be952438637475920bac9eb21",1,"DUP HASH160 0x14 0xbef80ecf3a44500fda1bc92176e442891662aed2 EQUALVERIFY CHECKSIG"]],"01000000023d6cf972d4dff9c519eff407ea800361dd0a121de1da8b6f4138a2f25de864b4000000008a4730440220ffda47bfc776bcd269da4832626ac332adfca6dd835e8ecd83cd1ebe7d709b0e022049cffa1cdc102a0b56e0e04913606c70af702a1149dc3b305ab9439288fee090014104266abb36d66eb4218a6dd31f09bb92cf3cfa803c7ea72c1fc80a50f919273e613f895b855fb7465ccbc8919ad1bd4a306c783f22cd3227327694c4fa4c1c439affffffff21ebc9ba20594737864352e95b727f1a565756f9d365083eb1a8596ec98c97b7010000008a4730440220503ff10e9f1e0de731407a4a245531c9ff17676eda461f8ceeb8c06049fa2c810220c008ac34694510298fa60b3f000df01caa244f165b727d4896eb84f81e46bcc4014104266abb36d66eb4218a6dd31f09bb92cf3cfa803c7ea72c1fc80a50f919273e613f895b855fb7465ccbc8919ad1bd4a306c783f22cd3227327694c4fa4c1c439affffffff01f0da5200000000001976a914857ccd42dded6df32949d4646dfa10a92458cfaa88ac00000000",true]
test/transaction_tests.cpp(1078): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"DUP HASH160 0x14 0xe52b482f2faa8ecbf0db344f93c84ac908557f33 EQUALVERIFY CHECKSIG"],["0000000000000000000000000000000000000000000000000000000000000200",0,"1"]],"01000000020002000000000000000000000000000000000000000000000000000000000000000000000151ffffffff0001000000000000000000000000000000000000000000000000000000000000000000006b483045022100c9cdd08798a28af9d1baf44a6c77bcc7e279f47dc487c8c899911bc48feaffcc0220503c5c50ae3998a733263c5c0f7061b483e2b56c4c41b456e7d2f5a78a74c077032102d5c25adb51b61339d2b05315791e21bbe80ea470a49db0135720983c905aace0ffffffff010000000000000000015100000000",true]' has passed
2021-09-27T15:16:50Z ERROR: SignatureHash() : nOut=1 out of range
test/transaction_tests.cpp(1078): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0x7a052c840ba73af26755de42cf01cc9e0a49fef0 EQUAL"]],"010000000100010000000000000000000000000000000000000000000000000000000000000000000009085768617420697320ffffffff010000000000000000015100000000",false]' has passed
test/transaction_tests.cpp(1097): error: in "transaction_tests/tx_valid": Error: transaction is spend-to-script-hash and EvalScriptWithErrorDesc(stackCopy, pubKey2, txTo, nIn, nHashType) fails: e3: Transaction: [[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0x7a052c840ba73af26755de42cf01cc9e0a49fef0 EQUAL"]],"010000000100010000000000000000000000000000000000000000000000000000000000000000000009085768617420697320ffffffff010000000000000000015100000000",false]
test/transaction_tests.cpp(1078): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0x8febbed40483661de6958d957412f82deed8e2f7 EQUAL"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006e493046022100c66c9cdf4c43609586d15424c54707156e316d88b0a1534c9e6b0d4f311406310221009c0fe51dbc9c4ab7cc25d3fdbeccf6679fe6827f08edf2b4a9f16ee3eb0e438a0123210338e8034509af564c62644c07691942e0c056752008a173c89f60ab2a88ac2ebfacffffffff010000000000000000015100000000",true]' has passed
2021-09-27T15:16:50Z ERROR: Non-canonical signature: S value is unnecessarily high
test/transaction_tests.cpp(1097): error: in "transaction_tests/tx_valid": Error: Transaction: [[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0x8febbed40483661de6958d957412f82deed8e2f7 EQUAL"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006e493046022100c66c9cdf4c43609586d15424c54707156e316d88b0a1534c9e6b0d4f311406310221009c0fe51dbc9c4ab7cc25d3fdbeccf6679fe6827f08edf2b4a9f16ee3eb0e438a0123210338e8034509af564c62644c07691942e0c056752008a173c89f60ab2a88ac2ebfacffffffff010000000000000000015100000000",true]
test/transaction_tests.cpp(1078): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0x32afac281462b822adbec5094b8d4d337dd5bd6a EQUAL"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006e493046022100e1eadba00d9296c743cb6ecc703fd9ddc9b3cd12906176a226ae4c18d6b00796022100a71aef7d2874deff681ba6080f1b278bac7bb99c61b08a85f4311970ffe7f63f012321030c0588dc44d92bdcbf8e72093466766fdc265ead8db64517b0c542275b70fffbacffffffff010040075af0750700015100000000",true]' has passed
2021-09-27T15:16:50Z ERROR: Non-canonical signature: S value is unnecessarily high
test/transaction_tests.cpp(1097): error: in "transaction_tests/tx_valid": Error: Transaction: [[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0x32afac281462b822adbec5094b8d4d337dd5bd6a EQUAL"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006e493046022100e1eadba00d9296c743cb6ecc703fd9ddc9b3cd12906176a226ae4c18d6b00796022100a71aef7d2874deff681ba6080f1b278bac7bb99c61b08a85f4311970ffe7f63f012321030c0588dc44d92bdcbf8e72093466766fdc265ead8db64517b0c542275b70fffbacffffffff010040075af0750700015100000000",true]
test/transaction_tests.cpp(1078): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0xb558cbf4930954aa6a344363a15668d7477ae716 EQUAL"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006d483045022027deccc14aa6668e78a8c9da3484fbcd4f9dcc9bb7d1b85146314b21b9ae4d86022100d0b43dece8cfb07348de0ca8bc5b86276fa88f7f2138381128b7c36ab2e42264012321029bb13463ddd5d2cc05da6e84e37536cb9525703cfd8f43afdb414988987a92f6acffffffff020040075af075070001510000000000000000015100000000",true]' has passed
2021-09-27T15:16:50Z ERROR: Non-canonical signature: S value is unnecessarily high
test/transaction_tests.cpp(1097): error: in "transaction_tests/tx_valid": Error: Transaction: [[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0xb558cbf4930954aa6a344363a15668d7477ae716 EQUAL"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006d483045022027deccc14aa6668e78a8c9da3484fbcd4f9dcc9bb7d1b85146314b21b9ae4d86022100d0b43dece8cfb07348de0ca8bc5b86276fa88f7f2138381128b7c36ab2e42264012321029bb13463ddd5d2cc05da6e84e37536cb9525703cfd8f43afdb414988987a92f6acffffffff020040075af075070001510000000000000000015100000000",true]
test/transaction_tests.cpp(1078): info: check '[[["0000000000000000000000000000000000000000000000000000000000000000",-1,"1"]],"01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff025151ffffffff010000000000000000015100000000",true]' has passed
test/transaction_tests.cpp(1078): info: check '[[["0000000000000000000000000000000000000000000000000000000000000000",-1,"1"]],"01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff6451515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151ffffffff010000000000000000015100000000",true]' has passed
test/transaction_tests.cpp(1017): Leaving test case "tx_valid"; testing time: 4027us
test/transaction_tests.cpp(1104): Entering test case "tx_invalid"
2021-09-27T15:16:50Z ERROR: Non-canonical signature: S value is unnecessarily high
test/transaction_tests.cpp(1180): info: check '[[["6ca7ec7b1847f6bdbd737176050e6a08d66ccd55bb94ad24f4018024107a5827",0,"0x41 0x043b640e983c9690a14c039a2037ecc3467b27a0dcd58f19d76c7bc118d09fec45adc5370a1c5bf8067ca9f5557a4cf885fdb0fe0dcc9c3a7137226106fbc779a5 CHECKSIG VERIFY 1"]],"010000000127587a10248001f424ad94bb55cd6cd6086a0e05767173bdbdf647187beca76c000000004948304502201b822ad10d6adc1a341ae8835be3f70a25201bbff31f59cbb9c5353a5f0eca18022100ea7b2f7074e9aa9cf70aa8d0ffee13e6b45dddabf1ab961bda378bcdb778fa4701ffffffff0100f2052a010000001976a914fc50c5907d86fed474ba5ce8b12a66e0a4c139d888ac00000000",true]' has passed
test/transaction_tests.cpp(1180): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"DUP HASH160 0x14 0x5b6462475454710f3c22f5fdf0b40704c92f25c3 EQUALVERIFY CHECKSIGVERIFY 1 0x4c 0x47 0x3044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a01"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006a473044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a012103ba8c8b86dea131c22ab967e6dd99bdae8eff7a1f75a2c35f1f944109e3fe5e22ffffffff010000000000000000015100000000",true]' has passed
test/transaction_tests.cpp(1180): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"DUP HASH160 0x14 0x5b6462475454710f3c22f5fdf0b40704c92f25c3 EQUALVERIFY CHECKSIGVERIFY 1 0x4c 0x47 0x3044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a01"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006b4c473044022067288ea50aa799543a536ff9306f8e1cba05b9c6b10951175b924f96732555ed022026d7b5265f38d21541519e4a1e55044d5b9e17e15cdbaf29ae3792e99e883e7a012103ba8c8b86dea131c22ab967e6dd99bdae8eff7a1f75a2c35f1f944109e3fe5e22ffffffff010000000000000000015100000000",true]' has passed
test/transaction_tests.cpp(1180): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0x7a052c840ba73af26755de42cf01cc9e0a49fef0 EQUAL"]],"010000000100010000000000000000000000000000000000000000000000000000000000000000000009085768617420697320ffffffff010000000000000000015100000000",true]' has passed
2021-09-27T15:16:50Z ERROR: CheckTransaction() : vin empty
test/transaction_tests.cpp(1180): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0x7a052c840ba73af26755de42cf01cc9e0a49fef0 EQUAL"]],"0100000000010000000000000000015100000000",true]' has passed
2021-09-27T15:16:50Z ERROR: CheckTransaction() : vout empty
test/transaction_tests.cpp(1180): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0x05ab9e14d983742513f0f451e105ffb4198d1dd4 EQUAL"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006d483045022100f16703104aab4e4088317c862daec83440242411b039d14280e03dd33b487ab802201318a7be236672c5c56083eb7a5a195bc57a40af7923ff8545016cd3b571e2a601232103c40e5d339df3f30bf753e7e04450ae4ef76c9e45587d1d993bdc4cd06f0651c7acffffffff0000000000",true]' has passed
2021-09-27T15:16:50Z ERROR: CheckTransaction() : txout.nValue negative
test/transaction_tests.cpp(1180): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0xae609aca8061d77c5e111f6bb62501a6bbe2bfdb EQUAL"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006d4830450220063222cbb128731fc09de0d7323746539166544d6c1df84d867ccea84bcc8903022100bf568e8552844de664cd41648a031554327aa8844af34b4f27397c65b92c04de0123210243ec37dee0e2e053a9c976f43147e79bc7d9dc606ea51010af1ac80db6b069e1acffffffff01ffffffffffffffff015100000000",true]' has passed
2021-09-27T15:16:50Z ERROR: Non-canonical signature: S value is unnecessarily high
test/transaction_tests.cpp(1180): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0x32afac281462b822adbec5094b8d4d337dd5bd6a EQUAL"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006e493046022100e1eadba00d9296c743cb6ecc703fd9ddc9b3cd12906176a226ae4c18d6b00796022100a71aef7d2874deff681ba6080f1b278bac7bb99c61b08a85f4311970ffe7f63f012321030c0588dc44d92bdcbf8e72093466766fdc265ead8db64517b0c542275b70fffbacffffffff010140075af0750700015100000000",true]' has passed
2021-09-27T15:16:50Z ERROR: Non-canonical signature: S value is unnecessarily high
test/transaction_tests.cpp(1180): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0xb558cbf4930954aa6a344363a15668d7477ae716 EQUAL"]],"01000000010001000000000000000000000000000000000000000000000000000000000000000000006d483045022027deccc14aa6668e78a8c9da3484fbcd4f9dcc9bb7d1b85146314b21b9ae4d86022100d0b43dece8cfb07348de0ca8bc5b86276fa88f7f2138381128b7c36ab2e42264012321029bb13463ddd5d2cc05da6e84e37536cb9525703cfd8f43afdb414988987a92f6acffffffff020040075af075070001510001000000000000015100000000",true]' has passed
test/transaction_tests.cpp(1180): info: check '[[["0000000000000000000000000000000000000000000000000000000000000100",0,"HASH160 0x14 0x236d0639db62b0773fd8ac34dc85ae19e9aba80a EQUAL"]],"01000000020001000000000000000000000000000000000000000000000000000000000000000000006c47304402204bb1197053d0d7799bf1b30cd503c44b58d6240cccbdc85b6fe76d087980208f02204beeed78200178ffc6c74237bb74b3f276bbb4098b5605d814304fe128bf1431012321039e8815e15952a7c3fada1905f8cf55419837133bd7756c0ef14fc8dfe50c0deaacffffffff0001000000000000000000000000000000000000000000000000000000000000000000006c47304402202306489afef52a6f62e90bf750bbcdf40c06f5c6b138286e6b6b86176bb9341802200dba98486ea68380f47ebb19a7df173b99e6bc9c681d6ccf3bde31465d1f16b3012321039e8815e15952a7c3fada1905f8cf55419837133bd7756c0ef14fc8dfe50c0deaacffffffff010000000000000000015100000000",true]' has passed
2021-09-27T15:16:50Z ERROR: CheckTransaction() : coinbase script size is invalid
test/transaction_tests.cpp(1180): info: check '[[["0000000000000000000000000000000000000000000000000000000000000000",-1,"1"]],"01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0151ffffffff010000000000000000015100000000",true]' has passed
2021-09-27T15:16:50Z ERROR: CheckTransaction() : coinbase script size is invalid
test/transaction_tests.cpp(1180): info: check '[[["0000000000000000000000000000000000000000000000000000000000000000",-1,"1"]],"01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff655151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151ffffffff010000000000000000015100000000",true]' has passed
2021-09-27T15:16:50Z ERROR: CheckTransaction() : coinbase script size is invalid
test/transaction_tests.cpp(1180): info: check '[[["0000000000000000000000000000000000000000000000000000000000000000",-1,"HASH160 0x14 0x02dae7dbbda56097959cba59b1989dd3e47937bf EQUAL"]],"01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff6e49304602210086f39e028e46dafa8e1e3be63906465f4cf038fbe5ed6403dc3e74ae876e6431022100c4625c675cfc5c7e3a0e0d7eaec92ac24da20c73a88eb40d09253e51ac6def5201232103a183ddc41e84753aca47723c965d1b5c8b0e2b537963518355e6dd6cf8415e50acffffffff010000000000000000015100000000",true]' has passed
test/transaction_tests.cpp(1104): Leaving test case "tx_invalid"; testing time: 2009us
test/transaction_tests.cpp(1185): Entering test case "basic_transaction_tests"
test/transaction_tests.cpp(1217): info: check 'Simple deserialized transaction should be valid.' has passed
test/transaction_tests.cpp(1221): info: check 'Transaction with duplicate txins should be invalid.' has passed
test/transaction_tests.cpp(1185): Leaving test case "basic_transaction_tests"; testing time: 150us
test/transaction_tests.cpp(1262): Entering test case "test_Get"
test/transaction_tests.cpp(1285): info: check AreInputsStandard(t1, dummyInputs) has passed
test/transaction_tests.cpp(1289): info: check !AreInputsStandard(t1, dummyInputs) has passed
test/transaction_tests.cpp(1293): info: check !AreInputsStandard(t1, dummyInputs) has passed
test/transaction_tests.cpp(1262): Leaving test case "test_Get"; testing time: 2910us
test/transaction_tests.cpp(1296): Entering test case "test_GetThrow"
test/transaction_tests.cpp(1318): info: check 'exception "runtime_error" raised as expected' has passed
test/transaction_tests.cpp(1296): Leaving test case "test_GetThrow"; testing time: 2817us
test/transaction_tests.cpp(1015): Leaving test suite "transaction_tests"; testing time: 11992us
Leaving test module "Gridcoin Test Suite"; testing time: 12131us

*** 11 failures are detected in the test module "Gridcoin Test Suite"

@jamescowens
Copy link
Member Author

tx_invalid tests are working now.

@jamescowens
Copy link
Member Author

Ok. I moved the tests that won't pass into a tx_valid.json.disabled file, which also contains the above test run output to help us later.

@jamescowens
Copy link
Member Author

jamescowens commented Sep 27, 2021

I stripped out all of the troubleshooting versions of the script code now that we know what is going on. I left the initialization of the logger in to log debug statements to the console, because I think it is helpful in this particular test module. I will be squashing the commits before merging.

@jamescowens jamescowens marked this pull request as ready for review September 28, 2021 00:31
@jamescowens
Copy link
Member Author

jamescowens commented Sep 28, 2021

This PR accomplishes its objective, which is to get transaction_tests working with our current scripting version as a baseline for script improvements.

src/primitives/transaction.h Outdated Show resolved Hide resolved
src/test/transaction_tests.cpp Outdated Show resolved Hide resolved
Copy link
Member

@div72 div72 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utACK.

@jamescowens jamescowens removed the request for review from denravonska October 2, 2021 14:59
@jamescowens jamescowens merged commit 61368c2 into gridcoin-community:development Oct 2, 2021
@jamescowens jamescowens deleted the update_transaction_tests_2 branch December 6, 2021 16:36
jamescowens added a commit to jamescowens/Gridcoin-Research that referenced this pull request Feb 27, 2022
…ening flags, don't enable it for Windows gridcoin-community#2284 (@barton2526)

 - build: add upstream compiler warnings gridcoin-community#2288 (@jamescowens)
 - rpc: Create getblockbymintime gridcoin-community#2290 (@RoboticMind)
 - cd: generate release binaries using GitHub actions gridcoin-community#2249 (@div72)
 - util: port upstream span changes gridcoin-community#2323 (@div72)
 - rpc: add additional ban time fields to listbanned gridcoin-community#2334 (@barton2526)
 - test: Add sanity_tests from upstream gridcoin-community#2343 (@barton2526)
 - util, test: Don't allow Base58 decoding of non-Base58 strings. Add Base58 tests. Add whitespace tests. gridcoin-community#2345 (@barton2526)
 - test: Add tests for monetary value formatting and parsing.  Clean up includes in rpc_tests gridcoin-community#2348 (@barton2526)
 - rpc: Implement -rpcwait and -rpcwaittimeout gridcoin-community#2349 (@jamescowens)
 - test: Add crypto_tests (@upstream gridcoin-community#2372 from barton2526)
 - test: Add test for GCC bug 90348 gridcoin-community#2380 (@barton2526)
 - build: add python3.10, 3.11 alias to AC_PATH_PROGS call in configure gridcoin-community#2386 (@barton2526)
 - wallet, contract: Implement contract change option gridcoin-community#2388 (@jamescowens)
 - gui: Implement privacy mode gridcoin-community#2399 (@jamescowens)
 - util: Implement -reindex option, improve -loadblock option gridcoin-community#2394 (@jamescowens)
 - gui: Implement Alt-7 for unlock and lock of wallet gridcoin-community#2406 (@jamescowens)
 - gui, voting: Add a one minute timer to check for current poll expiring and update gui gridcoin-community#2416 (@jamescowens)
 - gui: Implement a warning about split CPID/email mismatch condition gridcoin-community#2414 (@jamescowens)
 - util: clean obsolete config keys gridcoin-community#2424 (@div72)
 - net: Implement an upper limit of 950 for max network connections gridcoin-community#2426 (@jamescowens)

 - build: libevent 2.1.12-stable gridcoin-community#2226 (@barton2526)
 - build: Bump minimum QT support to 5.9.5, Remove obsolete checks gridcoin-community#2251 (@barton2526)
 - doc: Update to https where possible gridcoin-community#2230 (@barton2526)
 - refactor: Replace fprintf with tfm::format gridcoin-community#2262 (@barton2526)
 - qt: Replace deprecated QSignalMapper by lambda expressions gridcoin-community#2261 (@barton2526)
 - refactor: Use functions guaranteed to be locale independent (ToLower, IsDigit, IsSpace) gridcoin-community#2265 (@barton2526)
 - refactor: Replace std::to_string with locale-independent alternative gridcoin-community#2266 (@barton2526)
 - refactor: small python cleanup gridcoin-community#2267 (@barton2526)
 - refactor: Replace local dependent string functions with non-locale versions in strencodings.h/cpp gridcoin-community#2270 (@amescowens)
 - ci: Update KNOWN_VIOLATIONS list for the linter for functions we don't care are locale-dependent gridcoin-community#2271 (@barton2526)
 - refactor: move block storage functions to src/node/blockstorage gridcoin-community#2273 (@div72)
 - refactor: Replace deprecated Qt::SystemLocale{Short,Long}Date, Fix 'QDateTime is deprecated' warnings gridcoin-community#2275 (@barton2526)
 - rpc: optimize getblockbynumber gridcoin-community#2289 (@barton2526)
 - gui: Update connect statements to conform to Qt 5 standard gridcoin-community#2281 (@jamescowens)
 - depends: Bump ccache and curl gridcoin-community#2297 (@barton2526)
 - ci: only print depends/apt output if the step fails gridcoin-community#2287 (@div72)
 - depends: Update to openSSL 1.1.1l gridcoin-community#2302 (@barton2526)
 - rpc: Don't use floating point in getreceivedbyaddress gridcoin-community#2310 (@barton2526)
 - LibreSSL doesn't define OPENSSL_VERSION, use LIBRESSL_VERSION_TEXT instead gridcoin-community#2306 (@barton2526)
 - build: update m4 gridcoin-community#2317 (@div72)
 - qt: Replace deprecated Qt functions gridcoin-community#2316 (@barton2526)
 - build: set minimum required Boost to 1.60 gridcoin-community#2318 (@barton2526)
 - util: Don't use gmtime() or localtime() gridcoin-community#2319 (@barton2526)
 - build: Update univalue subtree gridcoin-community#2335 (@barton2526)
 - refactor: use include guards instead of #pragma once gridcoin-community#2336 (@div72)
 - refactor: Scraper thread safety and code cleanup gridcoin-community#2315 (@jamescowens)
 - qt: Follow Qt docs when implementing rowCount and columnCount gridcoin-community#2333 (@barton2526)
 - qt: Notificator class refactoring.  Notificator always takes 3 args.  Remove Growl support. gridcoin-community#2352 (@barton2526)
 - build: pin OpenSSL version for MacOS gridcoin-community#2354 (@div72)
 - build, util: Update leveldb to 1.22 (@upstream Bitcoin gridcoin-community#2353 from jamescowens)
 - test: Update transaction_tests and associated JSON files from upstream gridcoin-community#2356 (@barton2526)
 - test: Update script_p2sh_tests from upstream gridcoin-community#2357 (@barton2526)
 - refactor: port upstream ui_interface changes gridcoin-community#2355 (@div72)
 - contract: parse strings for claim and message types gridcoin-community#2359 (@div72)
 - test: Update sigopcount_tests and transaction_tests from upstream gridcoin-community#2361 (@barton2526)
 - test, refactor: Update script_tests from upstream gridcoin-community#2360 (@barton2526)
 - test: Update util_tests from upstream gridcoin-community#2363 (@barton2526)
 - test: Update script test JSON files from upstream gridcoin-community#2364 @barton2526)
 - refactor: split clientversion from version gridcoin-community#2367 (@div72)
 - random: port upstream random changes gridcoin-community#2368 (@div72)
 - refactor: convert C-style (void) parameter lists to C++ style () gridcoin-community#2373 (@barton2526)
 - build: Disable -fcf-protection for mingw win32 gridcoin-community#2377 (@jamescowens)
 - gui: Add text output and dialog boxes for -help and -version in GUI client gridcoin-community#2378 (@jamescowens)
 - test, refactor: Use FastRandomContext for all tests. Add a header for test_gridcoin gridcoin-community#2381 (@barton2526)
 - depends: avoid system harfbuzz and bz2 gridcoin-community#2382 (@barton2526)
 - doc: Update Windows build instructions gridcoin-community#2383 (@barton2526)
 - refactor: replace QDateTime::fromTime_t with QDateTime::fromSecsSinceEpoch gridcoin-community#2387 (@barton2526)
 - util: Port of Bitcoin upstream base58.h/cpp at a85442f62bf157b07849accd495c55c73535dc73 gridcoin-community#2384 (@jamescowens)
 - test: update base58_encode_decode.json from upstream gridcoin-community#2391 (@barton2526)
 - depends: Port libdmg-hfsplus changes from upstream gridcoin-community#2389 (@barton2526)
 - doc: Port newer build documentation from Bitcoin gridcoin-community#2162 (@nathanielcwm)
 - rpc: Change getmininginfo to getstakinginfo gridcoin-community#2393 (@jamescowens)
 - researcher: Prefer CPID with active beacon for primary CPID gridcoin-community#2404 (@scribblemaniac)
 - contract: separate legacy type parsing gridcoin-community#2396 (@div72)
 - refactor: Pass values by reference gridcoin-community#2408 (@Pythonix)
 - net: only adjust time with data from outbound nodes gridcoin-community#2411 (@div72)
 - rpc: Change call to FormatISO8601DateTime to FormatISO8601DateTimeDashSep in scanforunspent gridcoin-community#2413 (@jamescowens)
 - build: Adjust depends packages to successfully compile on OpenSUSE gridcoin-community#2260 (@jamescowens)
 - gui: Enable masking of cpid in privacy mode gridcoin-community#2420 (@jamescowens)
 - doc: Update license year range to 2022 gridcoin-community#2421 (@barton2526)
 - contrib: install_db4: use local config.guess/sub gridcoin-community#2436 (@div72)
 - gui: update translations gridcoin-community#2442 (@div72, @3man001)

 - qt: Remove stray QT4 references gridcoin-community#2220 (@barton2526)
 - util: Remove old boost hacks/workarounds gridcoin-community#2231 (@barton2526)
 - refactor: Remove sprintf and printf gridcoin-community#2269 (@jamescowens)
 - depends: Remove boost::program_options dependency gridcoin-community#2277 (@barton2526)
 - refactor: Drop noop gcc version checks gridcoin-community#2278 (@barton2526)
 - util: Remove unused itostr gridcoin-community#2280 (@barton2526)
 - util: Remove deprecated random number generator functions gridcoin-community#2236 (@jamescowens)
 - depends: cleanup package configure flags gridcoin-community#2279 (@barton2526)
 - rpc: remove 'label' filter for rpc command help gridcoin-community#2282 (@barton2526)
 - wallet: remove unused fNoncriticalErrors variable from CWalletDB::FindWalletTx gridcoin-community#2283 (@barton2526)
 - refactor: Optimize and Cleanup CScript::FindAndDelete gridcoin-community#2294 (@barton2526)
 - wallet: Remove unused AskPassphraseDialog::Decrypt gridcoin-community#2299 (@barton2526)
 - refactor, qt: Drop redundant setEditTriggers(NoEditTriggers) calls, Fix typo in QtInputSupport check gridcoin-community#2308 (@barton2526)
 - release: Remove gitian gridcoin-community#2293 (@jamescowens)
 - util: Update scheduler and remove Boost chrono gridcoin-community#2330 (@jamescowens)
 - qt: remove gridcoinresearch.pro gridcoin-community#2332 (@div72)
 - test: Remove unused function dumpKeyInfo gridcoin-community#2347 (@barton2526)
 - build: remove glibc back compat gridcoin-community#2351 (@barton2526)
 - net: remove SOCKS4 support (@core and GUI gridcoin-community#2385 from barton2526)
 - net: remove obsolete "reply" command gridcoin-community#2366 (@div72)
 - net: Remove I2P support from netbase & Correct HE IPv6 Tunnel Broker gridcoin-community#2409 (@Pythonix)
 - qt: Remove locked coins loop gridcoin-community#2410 (@Pythonix)

 - wallet: Close DB on error, use memory_cleanse gridcoin-community#2221 (@barton2526)
 - build: Clean remnants of QTBUG-34748 fix gridcoin-community#2224 (@barton2526)
 - build: use -isysroot over --sysroot on macOS gridcoin-community#2225 (@barton2526)
 - trivial, rpc: Fix and cleanup listreceivedbyX documentation, General Typos gridcoin-community#2227 (@barton2526)
 - trivial: Unbreak build with Boost 1.72.0 gridcoin-community#2228 (@barton2526)
 - doc: Large collection of typos, grammar fixes, and proper capitalization gridcoin-community#2247 (@barton2526)
 - lint: Fix linter warning, fix typo gridcoin-community#2276 (@barton2526)
 - qt: Do not translate file extensions gridcoin-community#2295 (@barton2526)
 - refactor: Drop redundant QString calls gridcoin-community#2296 (@barton2526)
 - rpc: Print OpenSSL version fix gridcoin-community#2298 (@barton2526)
 - gui: Add back in accidentally deleted condition for UnlockStaking and Unlock cases in AskPassphraseDialog::textChanged() gridcoin-community#2305 (@jamescowens)
 - rpc: ParseHash: Fail when length is not 64 gridcoin-community#2313 (@barton2526)
 - Fix locking on WSL using flock instead of fcntl gridcoin-community#2314 (@barton2526)
 - rpc: Fix breakage in protocol.cpp caused by change atoi to ParseInt gridcoin-community#2307 (@jamescowens)
 - net: Small upstream FIXME gridcoin-community#2320 (@barton2526)
 - refactor: Fix advanced compiler warnings gridcoin-community#2292 (@jamescowens)
 - poll: Fix the possible infinite loop warning on GetChoices() in result.cpp gridcoin-community#2322 (@jamescowens)
 - qt: fix broken research wizard signal gridcoin-community#2324 (@div72)
 - refactor: Fix three minor code scanner findings gridcoin-community#2327 (@barton2526)
 - Fix build with Boost 1.77.0 gridcoin-community#2329 (@barton2526)
 - build: Misc upstream depends fixes gridcoin-community#2331 (@barton2526)
 - wallet: Fix improper indent in encryptWallet gridcoin-community#2339 (@jamescowens)
 - wallet: Bugfix - Fundrawtransaction: don't terminate when keypool is empty gridcoin-community#2337 (@barton2526)
 - depends: Fix build for Apple Silicon gridcoin-community#2342 (@div72)
 - build: fix -fstack-clash-protection spam for Clang gridcoin-community#2340 (@div72)
 - util, test: Don't allow Base32/64-decoding or ParseMoney(…) on strings with embedded NUL characters. Add tests.  Add negative test case. gridcoin-community#2344 (@barton2526)
 - test: Repair transaction_tests.cpp (baseline) gridcoin-community#2350 (@jamescowens)
 - scraper: Fix scraper deadlock and make activebeforesb dynamic (not require restart) gridcoin-community#2358 (@jamescowens)
 - scraper: Move lock on cs_mapParts in RecvManifest gridcoin-community#2370 (@jamescowens)
 - build: Make changes to use Gridcoin x.y.z.w client versions gridcoin-community#2371 (@jamescowens)
 - refactor, build: Upstream fixes for the /crypto files. Implement Keccak and SHA3 gridcoin-community#2365 (@barton2526)
 - util: fix FormatVersion gridcoin-community#2376 (@div72)
 - net: initialize nMessageSize to uint32_t max gridcoin-community#2390 (@barton2526)
 - contract: fix double usage of contract change addresses gridcoin-community#2395 (@div72)
 - build: patch qt to explicitly define previously implicit header include gridcoin-community#2397 (@div72)
 - Fix breakage introduced by use of FormatISO8601DateTime gridcoin-community#2398 (@jamescowens)
 - gui: Fix bug in recent transaction list gridcoin-community#2403 (@jamescowens)
 - build: Drop macports support gridcoin-community#2401 (@barton2526)
 - util: Check if specified config file cannot be opened gridcoin-community#2400 (@barton2526)
 - net: Fix masking of irrelevant bits in address groups gridcoin-community#2412 (@Pythonix)
 - rpc: accept int block number for getblocksbatch gridcoin-community#2415 (@scribblemaniac)
 - staking, gui: Fixes a missing miner search interval update for no coins corner case gridcoin-community#2430 (@jamescowens)
 - gui: Add uiInterface.BeaconChanged() call after ActivatePending gridcoin-community#2438 (@jamescowens)
jamescowens added a commit to jamescowens/Gridcoin-Research that referenced this pull request Feb 27, 2022
Added
 - build: add stack-clash and control-flow protection options to hardening flags, don't enable it for Windows gridcoin-community#2284 (@barton2526)
 - build: add upstream compiler warnings gridcoin-community#2288 (@jamescowens)
 - rpc: Create getblockbymintime gridcoin-community#2290 (@RoboticMind)
 - cd: generate release binaries using GitHub actions gridcoin-community#2249 (@div72)
 - util: port upstream span changes gridcoin-community#2323 (@div72)
 - rpc: add additional ban time fields to listbanned gridcoin-community#2334 (@barton2526)
 - test: Add sanity_tests from upstream gridcoin-community#2343 (@barton2526)
 - util, test: Don't allow Base58 decoding of non-Base58 strings. Add Base58 tests. Add whitespace tests. gridcoin-community#2345 (@barton2526)
 - test: Add tests for monetary value formatting and parsing.  Clean up includes in rpc_tests gridcoin-community#2348 (@barton2526)
 - rpc: Implement -rpcwait and -rpcwaittimeout gridcoin-community#2349 (@jamescowens)
 - test: Add crypto_tests (@upstream gridcoin-community#2372 from barton2526)
 - test: Add test for GCC bug 90348 gridcoin-community#2380 (@barton2526)
 - build: add python3.10, 3.11 alias to AC_PATH_PROGS call in configure gridcoin-community#2386 (@barton2526)
 - wallet, contract: Implement contract change option gridcoin-community#2388 (@jamescowens)
 - gui: Implement privacy mode gridcoin-community#2399 (@jamescowens)
 - util: Implement -reindex option, improve -loadblock option gridcoin-community#2394 (@jamescowens)
 - gui: Implement Alt-7 for unlock and lock of wallet gridcoin-community#2406 (@jamescowens)
 - gui, voting: Add a one minute timer to check for current poll expiring and update gui gridcoin-community#2416 (@jamescowens)
 - gui: Implement a warning about split CPID/email mismatch condition gridcoin-community#2414 (@jamescowens)
 - util: clean obsolete config keys gridcoin-community#2424 (@div72)
 - net: Implement an upper limit of 950 for max network connections gridcoin-community#2426 (@jamescowens)

Changed
 - build: libevent 2.1.12-stable gridcoin-community#2226 (@barton2526)
 - build: Bump minimum QT support to 5.9.5, Remove obsolete checks gridcoin-community#2251 (@barton2526)
 - doc: Update to https where possible gridcoin-community#2230 (@barton2526)
 - refactor: Replace fprintf with tfm::format gridcoin-community#2262 (@barton2526)
 - qt: Replace deprecated QSignalMapper by lambda expressions gridcoin-community#2261 (@barton2526)
 - refactor: Use functions guaranteed to be locale independent (ToLower, IsDigit, IsSpace) gridcoin-community#2265 (@barton2526)
 - refactor: Replace std::to_string with locale-independent alternative gridcoin-community#2266 (@barton2526)
 - refactor: small python cleanup gridcoin-community#2267 (@barton2526)
 - refactor: Replace local dependent string functions with non-locale versions in strencodings.h/cpp gridcoin-community#2270 (@amescowens)
 - ci: Update KNOWN_VIOLATIONS list for the linter for functions we don't care are locale-dependent gridcoin-community#2271 (@barton2526)
 - refactor: move block storage functions to src/node/blockstorage gridcoin-community#2273 (@div72)
 - refactor: Replace deprecated Qt::SystemLocale{Short,Long}Date, Fix 'QDateTime is deprecated' warnings gridcoin-community#2275 (@barton2526)
 - rpc: optimize getblockbynumber gridcoin-community#2289 (@barton2526)
 - gui: Update connect statements to conform to Qt 5 standard gridcoin-community#2281 (@jamescowens)
 - depends: Bump ccache and curl gridcoin-community#2297 (@barton2526)
 - ci: only print depends/apt output if the step fails gridcoin-community#2287 (@div72)
 - depends: Update to openSSL 1.1.1l gridcoin-community#2302 (@barton2526)
 - rpc: Don't use floating point in getreceivedbyaddress gridcoin-community#2310 (@barton2526)
 - LibreSSL doesn't define OPENSSL_VERSION, use LIBRESSL_VERSION_TEXT instead gridcoin-community#2306 (@barton2526)
 - build: update m4 gridcoin-community#2317 (@div72)
 - qt: Replace deprecated Qt functions gridcoin-community#2316 (@barton2526)
 - build: set minimum required Boost to 1.60 gridcoin-community#2318 (@barton2526)
 - util: Don't use gmtime() or localtime() gridcoin-community#2319 (@barton2526)
 - build: Update univalue subtree gridcoin-community#2335 (@barton2526)
 - refactor: use include guards instead of #pragma once gridcoin-community#2336 (@div72)
 - refactor: Scraper thread safety and code cleanup gridcoin-community#2315 (@jamescowens)
 - qt: Follow Qt docs when implementing rowCount and columnCount gridcoin-community#2333 (@barton2526)
 - qt: Notificator class refactoring.  Notificator always takes 3 args.  Remove Growl support. gridcoin-community#2352 (@barton2526)
 - build: pin OpenSSL version for MacOS gridcoin-community#2354 (@div72)
 - build, util: Update leveldb to 1.22 (@upstream Bitcoin gridcoin-community#2353 from jamescowens)
 - test: Update transaction_tests and associated JSON files from upstream gridcoin-community#2356 (@barton2526)
 - test: Update script_p2sh_tests from upstream gridcoin-community#2357 (@barton2526)
 - refactor: port upstream ui_interface changes gridcoin-community#2355 (@div72)
 - contract: parse strings for claim and message types gridcoin-community#2359 (@div72)
 - test: Update sigopcount_tests and transaction_tests from upstream gridcoin-community#2361 (@barton2526)
 - test, refactor: Update script_tests from upstream gridcoin-community#2360 (@barton2526)
 - test: Update util_tests from upstream gridcoin-community#2363 (@barton2526)
 - test: Update script test JSON files from upstream gridcoin-community#2364 @barton2526)
 - refactor: split clientversion from version gridcoin-community#2367 (@div72)
 - random: port upstream random changes gridcoin-community#2368 (@div72)
 - refactor: convert C-style (void) parameter lists to C++ style () gridcoin-community#2373 (@barton2526)
 - build: Disable -fcf-protection for mingw win32 gridcoin-community#2377 (@jamescowens)
 - gui: Add text output and dialog boxes for -help and -version in GUI client gridcoin-community#2378 (@jamescowens)
 - test, refactor: Use FastRandomContext for all tests. Add a header for test_gridcoin gridcoin-community#2381 (@barton2526)
 - depends: avoid system harfbuzz and bz2 gridcoin-community#2382 (@barton2526)
 - doc: Update Windows build instructions gridcoin-community#2383 (@barton2526)
 - refactor: replace QDateTime::fromTime_t with QDateTime::fromSecsSinceEpoch gridcoin-community#2387 (@barton2526)
 - util: Port of Bitcoin upstream base58.h/cpp at a85442f62bf157b07849accd495c55c73535dc73 gridcoin-community#2384 (@jamescowens)
 - test: update base58_encode_decode.json from upstream gridcoin-community#2391 (@barton2526)
 - depends: Port libdmg-hfsplus changes from upstream gridcoin-community#2389 (@barton2526)
 - doc: Port newer build documentation from Bitcoin gridcoin-community#2162 (@nathanielcwm)
 - rpc: Change getmininginfo to getstakinginfo gridcoin-community#2393 (@jamescowens)
 - researcher: Prefer CPID with active beacon for primary CPID gridcoin-community#2404 (@scribblemaniac)
 - contract: separate legacy type parsing gridcoin-community#2396 (@div72)
 - refactor: Pass values by reference gridcoin-community#2408 (@Pythonix)
 - net: only adjust time with data from outbound nodes gridcoin-community#2411 (@div72)
 - rpc: Change call to FormatISO8601DateTime to FormatISO8601DateTimeDashSep in scanforunspent gridcoin-community#2413 (@jamescowens)
 - build: Adjust depends packages to successfully compile on OpenSUSE gridcoin-community#2260 (@jamescowens)
 - gui: Enable masking of cpid in privacy mode gridcoin-community#2420 (@jamescowens)
 - doc: Update license year range to 2022 gridcoin-community#2421 (@barton2526)
 - contrib: install_db4: use local config.guess/sub gridcoin-community#2436 (@div72)
 - gui: update translations gridcoin-community#2442 (@div72, @3man001)

Removed
 - qt: Remove stray QT4 references gridcoin-community#2220 (@barton2526)
 - util: Remove old boost hacks/workarounds gridcoin-community#2231 (@barton2526)
 - refactor: Remove sprintf and printf gridcoin-community#2269 (@jamescowens)
 - depends: Remove boost::program_options dependency gridcoin-community#2277 (@barton2526)
 - refactor: Drop noop gcc version checks gridcoin-community#2278 (@barton2526)
 - util: Remove unused itostr gridcoin-community#2280 (@barton2526)
 - util: Remove deprecated random number generator functions gridcoin-community#2236 (@jamescowens)
 - depends: cleanup package configure flags gridcoin-community#2279 (@barton2526)
 - rpc: remove 'label' filter for rpc command help gridcoin-community#2282 (@barton2526)
 - wallet: remove unused fNoncriticalErrors variable from CWalletDB::FindWalletTx gridcoin-community#2283 (@barton2526)
 - refactor: Optimize and Cleanup CScript::FindAndDelete gridcoin-community#2294 (@barton2526)
 - wallet: Remove unused AskPassphraseDialog::Decrypt gridcoin-community#2299 (@barton2526)
 - refactor, qt: Drop redundant setEditTriggers(NoEditTriggers) calls, Fix typo in QtInputSupport check gridcoin-community#2308 (@barton2526)
 - release: Remove gitian gridcoin-community#2293 (@jamescowens)
 - util: Update scheduler and remove Boost chrono gridcoin-community#2330 (@jamescowens)
 - qt: remove gridcoinresearch.pro gridcoin-community#2332 (@div72)
 - test: Remove unused function dumpKeyInfo gridcoin-community#2347 (@barton2526)
 - build: remove glibc back compat gridcoin-community#2351 (@barton2526)
 - net: remove SOCKS4 support (@core and GUI gridcoin-community#2385 from barton2526)
 - net: remove obsolete "reply" command gridcoin-community#2366 (@div72)
 - net: Remove I2P support from netbase & Correct HE IPv6 Tunnel Broker gridcoin-community#2409 (@Pythonix)
 - qt: Remove locked coins loop gridcoin-community#2410 (@Pythonix)

Fixed
 - wallet: Close DB on error, use memory_cleanse gridcoin-community#2221 (@barton2526)
 - build: Clean remnants of QTBUG-34748 fix gridcoin-community#2224 (@barton2526)
 - build: use -isysroot over --sysroot on macOS gridcoin-community#2225 (@barton2526)
 - trivial, rpc: Fix and cleanup listreceivedbyX documentation, General Typos gridcoin-community#2227 (@barton2526)
 - trivial: Unbreak build with Boost 1.72.0 gridcoin-community#2228 (@barton2526)
 - doc: Large collection of typos, grammar fixes, and proper capitalization gridcoin-community#2247 (@barton2526)
 - lint: Fix linter warning, fix typo gridcoin-community#2276 (@barton2526)
 - qt: Do not translate file extensions gridcoin-community#2295 (@barton2526)
 - refactor: Drop redundant QString calls gridcoin-community#2296 (@barton2526)
 - rpc: Print OpenSSL version fix gridcoin-community#2298 (@barton2526)
 - gui: Add back in accidentally deleted condition for UnlockStaking and Unlock cases in AskPassphraseDialog::textChanged() gridcoin-community#2305 (@jamescowens)
 - rpc: ParseHash: Fail when length is not 64 gridcoin-community#2313 (@barton2526)
 - Fix locking on WSL using flock instead of fcntl gridcoin-community#2314 (@barton2526)
 - rpc: Fix breakage in protocol.cpp caused by change atoi to ParseInt gridcoin-community#2307 (@jamescowens)
 - net: Small upstream FIXME gridcoin-community#2320 (@barton2526)
 - refactor: Fix advanced compiler warnings gridcoin-community#2292 (@jamescowens)
 - poll: Fix the possible infinite loop warning on GetChoices() in result.cpp gridcoin-community#2322 (@jamescowens)
 - qt: fix broken research wizard signal gridcoin-community#2324 (@div72)
 - refactor: Fix three minor code scanner findings gridcoin-community#2327 (@barton2526)
 - Fix build with Boost 1.77.0 gridcoin-community#2329 (@barton2526)
 - build: Misc upstream depends fixes gridcoin-community#2331 (@barton2526)
 - wallet: Fix improper indent in encryptWallet gridcoin-community#2339 (@jamescowens)
 - wallet: Bugfix - Fundrawtransaction: don't terminate when keypool is empty gridcoin-community#2337 (@barton2526)
 - depends: Fix build for Apple Silicon gridcoin-community#2342 (@div72)
 - build: fix -fstack-clash-protection spam for Clang gridcoin-community#2340 (@div72)
 - util, test: Don't allow Base32/64-decoding or ParseMoney(…) on strings with embedded NUL characters. Add tests.  Add negative test case. gridcoin-community#2344 (@barton2526)
 - test: Repair transaction_tests.cpp (baseline) gridcoin-community#2350 (@jamescowens)
 - scraper: Fix scraper deadlock and make activebeforesb dynamic (not require restart) gridcoin-community#2358 (@jamescowens)
 - scraper: Move lock on cs_mapParts in RecvManifest gridcoin-community#2370 (@jamescowens)
 - build: Make changes to use Gridcoin x.y.z.w client versions gridcoin-community#2371 (@jamescowens)
 - refactor, build: Upstream fixes for the /crypto files. Implement Keccak and SHA3 gridcoin-community#2365 (@barton2526)
 - util: fix FormatVersion gridcoin-community#2376 (@div72)
 - net: initialize nMessageSize to uint32_t max gridcoin-community#2390 (@barton2526)
 - contract: fix double usage of contract change addresses gridcoin-community#2395 (@div72)
 - build: patch qt to explicitly define previously implicit header include gridcoin-community#2397 (@div72)
 - Fix breakage introduced by use of FormatISO8601DateTime gridcoin-community#2398 (@jamescowens)
 - gui: Fix bug in recent transaction list gridcoin-community#2403 (@jamescowens)
 - build: Drop macports support gridcoin-community#2401 (@barton2526)
 - util: Check if specified config file cannot be opened gridcoin-community#2400 (@barton2526)
 - net: Fix masking of irrelevant bits in address groups gridcoin-community#2412 (@Pythonix)
 - rpc: accept int block number for getblocksbatch gridcoin-community#2415 (@scribblemaniac)
 - staking, gui: Fixes a missing miner search interval update for no coins corner case gridcoin-community#2430 (@jamescowens)
 - gui: Add uiInterface.BeaconChanged() call after ActivatePending gridcoin-community#2438 (@jamescowens)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants