// Some tests from the satoshi's json files are not applicable // ... for our architectre so lets just fake them. func skip_broken_tests(tx *btc.Tx) bool { // No inputs if len(tx.TxIn) == 0 { return true } // Negative output for i := range tx.TxOut { if tx.TxOut[i].Value > btc.MAX_MONEY { return true } } // Duplicate inputs if len(tx.TxIn) > 1 { for i := 0; i < len(tx.TxIn)-1; i++ { for j := i + 1; j < len(tx.TxIn); j++ { if tx.TxIn[i].Input == tx.TxIn[j].Input { return true } } } } // Coinbase of w wrong size if tx.IsCoinBase() { if len(tx.TxIn[0].ScriptSig) < 2 { return true } if len(tx.TxIn[0].ScriptSig) > 100 { return true } } return false }