Skip to content

Commit 8c2c788

Browse files
Thomas Kerinafk11
Thomas Kerin
authored andcommitted
remove short constants, should follow upstream
1 parent de452f0 commit 8c2c788

8 files changed

+56
-63
lines changed

Diff for: README.md

+27-20
Original file line numberDiff line numberDiff line change
@@ -14,39 +14,46 @@ get a trusted copy.
1414

1515
## Requirements
1616

17-
Version v2.0.0 can run on PHP versions 5.3 - 5.6, and PHP 7.0 - 7.1.
17+
Version v3.0.0 can be run on PHP versions > 7.0.
18+
- In theory can be built with versions before Bitcoin Core v0.13.0.
1819

19-
It must be built against Bitcoin Core v0.13.0 upwards.
20+
Version v2.0.0 can run on PHP versions 5.3 - 5.6, and PHP 7.0 - 7.2, 7.3-RC
21+
- It must be built against Bitcoin Core v0.13.0 upwards.
22+
23+
See how to install a certain branch in the installation section.
2024

2125
## Supported features
2226

23-
BITCOINCONSENSUS_VERIFY_NONE
24-
BITCOINCONSENSUS_VERIFY_P2SH
25-
BITCOINCONSENSUS_VERIFY_DERSIG
26-
BITCOINCONSENSUS_VERIFY_CHECKLOCKTIMEVERIFY
27-
BITCOINCONSENSUS_VERIFY_CHECKSEQUENCEVERIFY
28-
BITCOINCONSENSUS_VERIFY_WITNESS
27+
28+
Script verification flags:
29+
30+
BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_NONE
31+
BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_P2SH
32+
BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_DERSIG
2933

3034
Optional (depends on bitcoinconsensus.h build):
31-
BITCOINCONSENSUS_VERIFY_NULLDUMMY
35+
BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_CHECKLOCKTIMEVERIFY
36+
BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_CHECKSEQUENCEVERIFY
37+
BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_WITNESS
38+
BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_NULLDUMMY
3239

33-
## Compatibility
40+
Error codes for bitcoinconsensus_verify_script{,with_amount}
3441

35-
v2.0.0 brings the library in line with the expectations upstream. It only
36-
exposes a minimal set of network activated script validation flags in
37-
[bitcoinconsensus.h](https://github.com/bitcoin/bitcoin/blob/master/src/script/bitcoinconsensus.h).
42+
BITCOINCONSENSUS_ERR_OK no error
43+
BITCOINCONSENSUS_ERR_TX_INDEX input index not set in transaction
44+
BITCOINCONSENSUS_ERR_TX_SIZE_MISMATCH (not possible)
45+
BITCOINCONSENSUS_ERR_TX_DESERIALIZE invalid transaction serialization
46+
BITCOINCONSENSUS_ERR_AMOUNT_REQUIRED used segwit flag with old function
47+
BITCOINCONSENSUS_ERR_INVALID_FLAGS invalid script verification flags used
3848

39-
The BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_* constants have been removed in
40-
favor of BITCOINCONSENSUS_VERIFY_*.
49+
## Compatibility
4150

42-
At build time, it will check if newer (opt-in) flags are exported (such as
43-
NULLDUMMY) by the bitcoinconsensus.h. If so, the flags for these will be compiled
44-
in.
51+
Script verification constants following the naming `BITCOINCONSENSUS_VERIFY_x`
52+
were removed in favor of those following upstreams naming.
4553

4654
## To Install:
4755
```
48-
git clone [email protected]:bitwasp/bitcoinconsensus-php
49-
cd bitcoinconsensus-php
56+
git clone -b v3.0.0 [email protected]:bit-wasp/bitcoinconsensus-php
5057
cd bitcoinconsensus-php/bitcoinconsensus
5158
phpize && ./configure --with-bitcoinconsensus && make && sudo make install
5259
```

Diff for: bitcoinconsensus/bitcoinconsensus.c

+7-13
Original file line numberDiff line numberDiff line change
@@ -114,48 +114,40 @@ PHP_MINIT_FUNCTION(bitcoinconsensus)
114114
REGISTER_LONG_CONSTANT("BITCOINCONSENSUS_ERR_INVALID_FLAGS", bitcoinconsensus_ERR_INVALID_FLAGS, CONST_CS | CONST_PERSISTENT);
115115
#endif
116116

117-
REGISTER_LONG_CONSTANT("BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_NONE", 0, CONST_CS | CONST_PERSISTENT);
118-
REGISTER_LONG_CONSTANT("BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_P2SH", (1U << 0), CONST_CS | CONST_PERSISTENT);
119-
REGISTER_LONG_CONSTANT("BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_DERSIG", (1U << 2), CONST_CS | CONST_PERSISTENT);
117+
REGISTER_LONG_CONSTANT("BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_NONE", bitcoinconsensus_SCRIPT_FLAGS_VERIFY_NONE, CONST_CS | CONST_PERSISTENT);
118+
REGISTER_LONG_CONSTANT("BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_P2SH", bitcoinconsensus_SCRIPT_FLAGS_VERIFY_P2SH, CONST_CS | CONST_PERSISTENT);
119+
REGISTER_LONG_CONSTANT("BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_DERSIG", bitcoinconsensus_SCRIPT_FLAGS_VERIFY_DERSIG, CONST_CS | CONST_PERSISTENT);
120120

121121
unsigned int flags = bitcoinconsensus_SCRIPT_FLAGS_VERIFY_NONE |
122122
bitcoinconsensus_SCRIPT_FLAGS_VERIFY_P2SH | bitcoinconsensus_SCRIPT_FLAGS_VERIFY_DERSIG;
123123

124-
REGISTER_LONG_CONSTANT("BITCOINCONSENSUS_VERIFY_NONE", bitcoinconsensus_SCRIPT_FLAGS_VERIFY_NONE, CONST_CS | CONST_PERSISTENT);
125-
REGISTER_LONG_CONSTANT("BITCOINCONSENSUS_VERIFY_P2SH", bitcoinconsensus_SCRIPT_FLAGS_VERIFY_P2SH, CONST_CS | CONST_PERSISTENT);
126-
REGISTER_LONG_CONSTANT("BITCOINCONSENSUS_VERIFY_DERSIG", bitcoinconsensus_SCRIPT_FLAGS_VERIFY_DERSIG, CONST_CS | CONST_PERSISTENT);
127-
128124
#if HAVE_DECL_BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_CHECKLOCKTIMEVERIFY == 1
129125
REGISTER_LONG_CONSTANT("BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_CHECKLOCKTIMEVERIFY", bitcoinconsensus_SCRIPT_FLAGS_VERIFY_CHECKLOCKTIMEVERIFY, CONST_CS | CONST_PERSISTENT);
130-
REGISTER_LONG_CONSTANT("BITCOINCONSENSUS_VERIFY_CHECKLOCKTIMEVERIFY", bitcoinconsensus_SCRIPT_FLAGS_VERIFY_CHECKLOCKTIMEVERIFY, CONST_CS | CONST_PERSISTENT);
131126
flags |= bitcoinconsensus_SCRIPT_FLAGS_VERIFY_CHECKLOCKTIMEVERIFY;
132127
#endif
133128

134129
#if HAVE_DECL_BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_CHECKSEQUENCEVERIFY == 1
135130
REGISTER_LONG_CONSTANT("BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_CHECKSEQUENCEVERIFY", bitcoinconsensus_SCRIPT_FLAGS_VERIFY_CHECKSEQUENCEVERIFY, CONST_CS | CONST_PERSISTENT);
136-
REGISTER_LONG_CONSTANT("BITCOINCONSENSUS_VERIFY_CHECKSEQUENCEVERIFY", bitcoinconsensus_SCRIPT_FLAGS_VERIFY_CHECKSEQUENCEVERIFY, CONST_CS | CONST_PERSISTENT);
137131
flags |= bitcoinconsensus_SCRIPT_FLAGS_VERIFY_CHECKSEQUENCEVERIFY;
138132
#endif
139133

140134
#if HAVE_DECL_BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_WITNESS == 1
141135
REGISTER_LONG_CONSTANT("BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_WITNESS", bitcoinconsensus_SCRIPT_FLAGS_VERIFY_WITNESS, CONST_CS | CONST_PERSISTENT);
142-
REGISTER_LONG_CONSTANT("BITCOINCONSENSUS_VERIFY_WITNESS", bitcoinconsensus_SCRIPT_FLAGS_VERIFY_WITNESS, CONST_CS | CONST_PERSISTENT);
143136
flags |= bitcoinconsensus_SCRIPT_FLAGS_VERIFY_WITNESS;
144137
#endif
145138

146139
#if HAVE_DECL_BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_NULLDUMMY == 1
147140
REGISTER_LONG_CONSTANT("BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_NULLDUMMY", bitcoinconsensus_SCRIPT_FLAGS_VERIFY_NULLDUMMY, CONST_CS | CONST_PERSISTENT);
148-
REGISTER_LONG_CONSTANT("BITCOINCONSENSUS_VERIFY_NULLDUMMY", bitcoinconsensus_SCRIPT_FLAGS_VERIFY_NULLDUMMY, CONST_CS | CONST_PERSISTENT);
149141
flags |= bitcoinconsensus_SCRIPT_FLAGS_VERIFY_NULLDUMMY;
150142
#endif
151143

152144
#if HAVE_DECL_BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_ALL == 1
153145
flags = bitcoinconsensus_SCRIPT_FLAGS_VERIFY_ALL;
154146
#endif
155147

156-
REGISTER_LONG_CONSTANT("BITCOINCONSENSUS_VERIFY_ALL", flags, CONST_CS | CONST_PERSISTENT);
148+
REGISTER_LONG_CONSTANT("BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_ALL", flags, CONST_CS | CONST_PERSISTENT);
157149

158-
return SUCCESS;
150+
return SUCCESS;
159151
}
160152

161153
PHP_MSHUTDOWN_FUNCTION(bitcoinconsensus)
@@ -173,7 +165,9 @@ PHP_MINFO_FUNCTION(bitcoinconsensus)
173165
const zend_function_entry bitcoinconsensus_functions[] = {
174166
PHP_FE(bitcoinconsensus_version, NULL)
175167
PHP_FE(bitcoinconsensus_verify_script, arginfo_bitcoinconsensus_verify_script)
168+
#if HAVE_DECL_BITCOINCONSENSUS_VERIFY_SCRIPT_WITH_AMOUNT == 1
176169
PHP_FE(bitcoinconsensus_verify_script_with_amount, arginfo_bitcoinconsensus_verify_script_with_amount)
170+
#endif
177171
PHP_FE_END /* Must be the last line in bitcoinconsensus_functions[] */
178172
};
179173

Diff for: bitcoinconsensus/tests/bitcoinconsensus_verify_script_error3.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ if (!extension_loaded("bitcoinconsensus")) print "skip extension not loaded";
99
$scriptPubKey = hex2bin("00140102030401020304010203040102030401020304");
1010
$tx = hex2bin("010000000100000000000000000000000000000000000000000000000000000000000000000000000000ffffffff010065cd1d0000000017a91400000000000000000000000000000000000000008700000000");
1111
$nIn = 0;
12-
$flags = BITCOINCONSENSUS_VERIFY_ALL;
12+
$flags = BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_ALL;
1313
$error = 0;
1414

1515
$result = bitcoinconsensus_verify_script($scriptPubKey, $tx, $nIn, $flags, $error);

Diff for: bitcoinconsensus/tests/bitcoinconsensus_verify_script_with_amount_basic1.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ $scriptPubKey = hex2bin("51");
1111
$tx = hex2bin("010000000100000000000000000000000000000000000000000000000000000000000000000000000000ffffffff010065cd1d0000000017a91400000000000000000000000000000000000000008700000000");
1212
$nIn = 0;
1313
$amount = 0;
14-
$flags = BITCOINCONSENSUS_VERIFY_WITNESS | BITCOINCONSENSUS_VERIFY_P2SH;
14+
$flags = BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_WITNESS | BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_P2SH;
1515
$error = 0;
1616

1717
$result = bitcoinconsensus_verify_script_with_amount($scriptPubKey, $amount, $tx, $nIn, $flags, $error);

Diff for: bitcoinconsensus/tests/bitcoinconsensus_verify_script_with_amount_basic2.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ $scriptPubKey = hex2bin("00");
1111
$tx = hex2bin("010000000100000000000000000000000000000000000000000000000000000000000000000000000000ffffffff010065cd1d0000000017a91400000000000000000000000000000000000000008700000000");
1212
$nIn = 0;
1313
$amount = 0;
14-
$flags = BITCOINCONSENSUS_VERIFY_WITNESS | BITCOINCONSENSUS_VERIFY_P2SH;
14+
$flags = BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_WITNESS | BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_P2SH;
1515
$error = 0;
1616

1717
$result = bitcoinconsensus_verify_script_with_amount($scriptPubKey, $amount, $tx, $nIn, $flags, $error);

Diff for: stubs/const.php

+1-8
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,8 @@
1111
const BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_NONE = 0;
1212
const BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_P2SH = 1;
1313
const BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_DERSIG = 4;
14-
const BITCOINCONSENSUS_VERIFY_NONE = 0;
15-
const BITCOINCONSENSUS_VERIFY_P2SH = 1;
16-
const BITCOINCONSENSUS_VERIFY_DERSIG = 4;
1714
const BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_CHECKLOCKTIMEVERIFY = 512;
18-
const BITCOINCONSENSUS_VERIFY_CHECKLOCKTIMEVERIFY = 512;
1915
const BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_CHECKSEQUENCEVERIFY = 1024;
20-
const BITCOINCONSENSUS_VERIFY_CHECKSEQUENCEVERIFY = 1024;
2116
const BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_WITNESS = 2048;
22-
const BITCOINCONSENSUS_VERIFY_WITNESS = 2048;
2317
const BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_NULLDUMMY = 16;
24-
const BITCOINCONSENSUS_VERIFY_NULLDUMMY = 16;
25-
const BITCOINCONSENSUS_VERIFY_ALL = 3605;
18+
const BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_ALL = 3605;

Diff for: tests/BitcoinConsensusTest.php

+17-18
Original file line numberDiff line numberDiff line change
@@ -10,31 +10,31 @@ public function testNullDummy()
1010
{
1111
$nullDummyBit = 1 << 4;
1212
$expectFindInALL = false;
13-
if (defined('BITCOINCONSENSUS_VERIFY_NULLDUMMY')) {
13+
if (defined('BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_NULLDUMMY')) {
1414
$expectFindInALL = true;
1515

16-
$this->assertEquals($nullDummyBit, BITCOINCONSENSUS_VERIFY_NULLDUMMY);
17-
$this->assertEquals($nullDummyBit, BITCOINCONSENSUS_VERIFY_ALL & (BITCOINCONSENSUS_VERIFY_NULLDUMMY));
16+
$this->assertEquals($nullDummyBit, BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_NULLDUMMY);
17+
$this->assertEquals($nullDummyBit, BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_ALL & (BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_NULLDUMMY));
1818
}
1919

20-
$this->assertEquals($expectFindInALL, (BITCOINCONSENSUS_VERIFY_ALL & ($nullDummyBit)) != 0);
20+
$this->assertEquals($expectFindInALL, (BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_ALL & ($nullDummyBit)) != 0);
2121
}
2222

2323
public function testFlagsAll()
2424
{
2525
$expectFlags =
26-
BITCOINCONSENSUS_VERIFY_NONE |
27-
BITCOINCONSENSUS_VERIFY_P2SH |
28-
BITCOINCONSENSUS_VERIFY_DERSIG |
29-
BITCOINCONSENSUS_VERIFY_CHECKLOCKTIMEVERIFY |
30-
BITCOINCONSENSUS_VERIFY_CHECKSEQUENCEVERIFY |
31-
BITCOINCONSENSUS_VERIFY_WITNESS;
32-
33-
if (defined('BITCOINCONSENSUS_VERIFY_NULLDUMMY')) {
34-
$expectFlags = $expectFlags | BITCOINCONSENSUS_VERIFY_NULLDUMMY;
26+
BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_NONE |
27+
BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_P2SH |
28+
BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_DERSIG |
29+
BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_CHECKLOCKTIMEVERIFY |
30+
BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_CHECKSEQUENCEVERIFY |
31+
BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_WITNESS;
32+
33+
if (defined('BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_NULLDUMMY')) {
34+
$expectFlags = $expectFlags | BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_NULLDUMMY;
3535
}
3636

37-
$this->assertEquals($expectFlags, BITCOINCONSENSUS_VERIFY_ALL);
37+
$this->assertEquals($expectFlags, BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_ALL);
3838
}
3939

4040
public function testVersion()
@@ -55,7 +55,7 @@ public function getSignerScriptTests()
5555

5656
foreach ($vector['raw']['ins'] as $nIn => $input) {
5757
$results[] = array(
58-
$input['scriptPubKey'], $input['value'], $tx, $nIn, BITCOINCONSENSUS_VERIFY_ALL, true, $vector
58+
$input['scriptPubKey'], $input['value'], $tx, $nIn, BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_ALL, true, $vector
5959
);
6060
}
6161
}
@@ -70,7 +70,7 @@ public function getBitcoinScriptTests()
7070
foreach ($vectors as $vector) {
7171
if ($vector === null) break;
7272

73-
if ($vector['flags'] == ($vector['flags']&BITCOINCONSENSUS_VERIFY_ALL)) {
73+
if ($vector['flags'] == ($vector['flags']&BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_ALL)) {
7474
$results[] = array(
7575
$vector['scriptPubKey'], (int) $vector['amount'], $vector['tx'], $vector['nIn'], $vector['flags'], $vector['result'], $vector
7676
);
@@ -106,8 +106,7 @@ public function testValidOk($scriptHex, $amount, $txHex, $nInput, $flags, $eResu
106106
$tx = pack("H*", $txHex);
107107

108108
$error = 0;
109-
110-
if ($flags & (BITCOINCONSENSUS_VERIFY_P2SH | BITCOINCONSENSUS_VERIFY_WITNESS)) {
109+
if ($flags & (BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_P2SH | BITCOINCONSENSUS_SCRIPT_FLAGS_VERIFY_WITNESS)) {
111110
$result = (bool)\bitcoinconsensus_verify_script_with_amount($script, $amount, $tx, $nInput, $flags, $error);
112111
} else {
113112
$result = (bool) \bitcoinconsensus_verify_script($script, $tx, $nInput, $flags, $error);

Diff for: tools/phpqa/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ RUN set -xe; \
7474
wget -O php.tar.xz.asc "$PHP_ASC_URL"; \
7575
export GNUPGHOME="$(mktemp -d)"; \
7676
for key in $GPG_KEYS; do \
77-
gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \
77+
gpg --keyserver pool.sks-keyservers.net --recv-keys "$key"; \
7878
done; \
7979
gpg --batch --verify php.tar.xz.asc php.tar.xz; \
8080
rm -r "$GNUPGHOME"; \

0 commit comments

Comments
 (0)