Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php declare(strict_types=1); namespace BitWasp\BitcoinConsensus\Tests; class BitcoinC..
Decoded Output download
<?php
declare(strict_types=1);
namespace BitWasp\BitcoinConsensus\Tests;
class BitcoinConsensusTest extends \PHPUnit_Framework_TestCase
{
public function testNullDummy()
{
$nullDummyBit = 1 << 4;
$expectFindInALL = false;
if (defined('BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_NULLDUMMY')) {
$expectFindInALL = true;
$this->assertEquals($nullDummyBit, BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_NULLDUMMY);
$this->assertEquals($nullDummyBit, BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_ALL & (BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_NULLDUMMY));
}
$this->assertEquals($expectFindInALL, (BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_ALL & ($nullDummyBit)) != 0);
}
public function testFlagsAll()
{
$expectFlags =
BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_NONE |
BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_P2SH |
BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_DERSIG |
BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_CHECKLOCKTIMEVERIFY |
BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_CHECKSEQUENCEVERIFY |
BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_WITNESS;
if (defined('BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_NULLDUMMY')) {
$expectFlags = $expectFlags | BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_NULLDUMMY;
}
$this->assertEquals($expectFlags, BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_ALL);
}
public function testVersion()
{
$this->assertEquals(1, bitcoinconsensus_version());
}
public function getSignerScriptTests()
{
$vectors = json_decode(file_get_contents(__DIR__ . '/signer-fixtures.json') , true);
$results = array();
foreach ($vectors['valid'] as $vector) {
if (array_key_exists('whex', $vector) && $vector['whex'] != "") {
$tx = $vector['whex'];
} else {
$tx = $vector['hex'];
}
foreach ($vector['raw']['ins'] as $nIn => $input) {
$results[] = array(
$input['scriptPubKey'], $input['value'], $tx, $nIn, BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_ALL, true, $vector
);
}
}
return $results;
}
public function getBitcoinScriptTests()
{
$vectors = json_decode(file_get_contents(__DIR__ . '/data.json') , true);
$results = array();
foreach ($vectors as $vector) {
if ($vector === null) break;
if ($vector['flags'] == ($vector['flags']&BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_ALL)) {
$results[] = array(
$vector['scriptPubKey'], (int) $vector['amount'], $vector['tx'], $vector['nIn'], $vector['flags'], $vector['result'], $vector
);
}
}
return $results;
}
public function getScriptFixtures()
{
$vectors = array();
foreach (array(
'getSignerScriptTests',
'getBitcoinScriptTests'
) as $fxn) {
$vectors = array_merge($vectors, $this->{$fxn}());
}
return $vectors;
}
/**
* @param bool $eResult
* @param string $scriptHex
* @param string $txHex
* @param int $nInput
* @param int $flags
* @dataProvider getScriptFixtures
*/
public function testValidOk($scriptHex, $amount, $txHex, $nInput, $flags, $eResult, $d = array())
{
$script = pack("H*", $scriptHex);
$tx = pack("H*", $txHex);
$error = 0;
if ($flags & (BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_P2SH | BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_WITNESS)) {
$result = (bool)itcoinconsensus_verify_script_with_amount($script, $amount, $tx, $nInput, $flags, $error);
} else {
$result = (bool) itcoinconsensus_verify_script($script, $tx, $nInput, $flags, $error);
}
$this->assertEquals($eResult, $result);
if ($eResult == 1) {
$this->assertEquals(0, $error);
}
}
}
?>
Did this file decode correctly?
Original Code
<?php
declare(strict_types=1);
namespace BitWasp\BitcoinConsensus\Tests;
class BitcoinConsensusTest extends \PHPUnit_Framework_TestCase
{
public function testNullDummy()
{
$nullDummyBit = 1 << 4;
$expectFindInALL = false;
if (defined('BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_NULLDUMMY')) {
$expectFindInALL = true;
$this->assertEquals($nullDummyBit, BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_NULLDUMMY);
$this->assertEquals($nullDummyBit, BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_ALL & (BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_NULLDUMMY));
}
$this->assertEquals($expectFindInALL, (BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_ALL & ($nullDummyBit)) != 0);
}
public function testFlagsAll()
{
$expectFlags =
BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_NONE |
BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_P2SH |
BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_DERSIG |
BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_CHECKLOCKTIMEVERIFY |
BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_CHECKSEQUENCEVERIFY |
BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_WITNESS;
if (defined('BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_NULLDUMMY')) {
$expectFlags = $expectFlags | BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_NULLDUMMY;
}
$this->assertEquals($expectFlags, BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_ALL);
}
public function testVersion()
{
$this->assertEquals(1, bitcoinconsensus_version());
}
public function getSignerScriptTests()
{
$vectors = json_decode(file_get_contents(__DIR__ . '/signer-fixtures.json') , true);
$results = array();
foreach ($vectors['valid'] as $vector) {
if (array_key_exists('whex', $vector) && $vector['whex'] != "") {
$tx = $vector['whex'];
} else {
$tx = $vector['hex'];
}
foreach ($vector['raw']['ins'] as $nIn => $input) {
$results[] = array(
$input['scriptPubKey'], $input['value'], $tx, $nIn, BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_ALL, true, $vector
);
}
}
return $results;
}
public function getBitcoinScriptTests()
{
$vectors = json_decode(file_get_contents(__DIR__ . '/data.json') , true);
$results = array();
foreach ($vectors as $vector) {
if ($vector === null) break;
if ($vector['flags'] == ($vector['flags']&BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_ALL)) {
$results[] = array(
$vector['scriptPubKey'], (int) $vector['amount'], $vector['tx'], $vector['nIn'], $vector['flags'], $vector['result'], $vector
);
}
}
return $results;
}
public function getScriptFixtures()
{
$vectors = array();
foreach (array(
'getSignerScriptTests',
'getBitcoinScriptTests'
) as $fxn) {
$vectors = array_merge($vectors, $this->{$fxn}());
}
return $vectors;
}
/**
* @param bool $eResult
* @param string $scriptHex
* @param string $txHex
* @param int $nInput
* @param int $flags
* @dataProvider getScriptFixtures
*/
public function testValidOk($scriptHex, $amount, $txHex, $nInput, $flags, $eResult, $d = array())
{
$script = pack("H*", $scriptHex);
$tx = pack("H*", $txHex);
$error = 0;
if ($flags & (BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_P2SH | BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_WITNESS)) {
$result = (bool)\bitcoinconsensus_verify_script_with_amount($script, $amount, $tx, $nInput, $flags, $error);
} else {
$result = (bool) \bitcoinconsensus_verify_script($script, $tx, $nInput, $flags, $error);
}
$this->assertEquals($eResult, $result);
if ($eResult == 1) {
$this->assertEquals(0, $error);
}
}
}
Function Calls
None |
Stats
MD5 | f79ee68695cce41d5d2a3cc00209c530 |
Eval Count | 0 |
Decode Time | 107 ms |