Skip to content

Commit 2bbf327

Browse files
authored
Merge pull request #28 from LiquidCats/fix-add-cbor-driver
[FIX] update CBOR to make compatible with Laravel 10
2 parents b2c1bb6 + 14265b4 commit 2bbf327

File tree

3 files changed

+14
-10
lines changed

3 files changed

+14
-10
lines changed

composer.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
"php": "^8.2",
1212
"ext-gmp": "*",
1313
"ext-bcmath": "*",
14-
"laravel/framework": ">=v7.0.0",
15-
"spomky-labs/cbor-php": "2.0.0"
14+
"laravel/framework": ">=v7.0.0|>=v10.0.0",
15+
"spomky-labs/cbor-php": "^3.0"
1616
},
1717
"require-dev": {
1818
"phpunit/phpunit": "~8.0"

src/Drivers/CborDriver.php

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use CBOR\TAg;
1010
use CBOR\StringStream;
1111
use CBOR\OtherObject;
12+
use CBOR\Tag\GenericTag;
1213
use Illuminate\Support\Str;
1314
use Merkeleon\PhpCryptocurrencyAddressValidation\Utils\Base58Decoder;
1415
use Throwable;
@@ -25,10 +26,10 @@ public function __construct(array $options)
2526
parent::__construct($options);
2627

2728
$otherObjectManager = new OtherObject\OtherObjectManager();
28-
$tagManager = new Tag\TagObjectManager();
29-
3029
$otherObjectManager->add(OtherObject\SimpleObject::class);
31-
$tagManager->add(Tag\PositiveBigIntegerTag::class);
30+
31+
$tagManager = new Tag\TagManager();
32+
$tagManager->add(Tag\UnsignedBigIntegerTag::class);
3233

3334
$this->decoder = new Decoder($tagManager, $otherObjectManager);
3435
}
@@ -54,24 +55,28 @@ public function check(string $address): bool
5455
return false;
5556
}
5657

57-
$normalizedData = $object->getNormalizedData();
58+
/** @var array $normalizedData */
59+
$normalizedData = $object->normalize();
5860

5961
if (count($normalizedData) !== 2) {
6062
return false;
6163
}
6264
if (!is_numeric($normalizedData[1])) {
6365
return false;
6466
}
65-
if (!$normalizedData[0] instanceof ByteStringObject) {
67+
68+
if (!$normalizedData[0] instanceof GenericTag) {
6669
return false;
6770
}
6871

69-
$bs = $normalizedData[0];
72+
/** @var ByteStringObject $bs */
73+
$bs = $normalizedData[0]->getValue();
74+
7075
if (!in_array($bs->getLength(), array_values($this->options), true)) {
7176
return false;
7277
}
7378

74-
$crcCalculated = crc32($normalizedData[0]->getValue());
79+
$crcCalculated = crc32($bs->getValue());
7580
$validCrc = $normalizedData[1];
7681

7782
return $crcCalculated === (int)$validCrc;

tests/ValidatorTest.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@ public function currencyAddressProvider(): array
6969
'Cardano #3' => [CurrencyEnum::CARDANO, 'mainnet', true, 'addr1qxy3w62dupy9pzmpdfzxz4k240w5vawyagl5m9djqquyymrtm3grn7gpnjh7rwh2dy62hk8639lt6kzn32yxq960usnq9pexvt'],
7070
'Cardano #4' => [CurrencyEnum::CARDANO, 'mainnet', true, 'Ae2tdPwUPEYwNguM7TB3dMnZMfZxn1pjGHyGdjaF4mFqZF9L3bj6cdhiH8t'],
7171
'Cardano #5' => [CurrencyEnum::CARDANO, 'mainnet', true, 'DdzFFzCqrht2KYLcX8Vu53urCG52NxpgrGQvP9Mcp15Q8BkB9df9GndFDBRjoWTPuNkLW3yeQiFVet1KA7mraEkJ84AK2RwcEh3khs12'],
72-
7372
'Cardano #6' => [CurrencyEnum::CARDANO, 'testnet', true, '37btjrVyb4KBbrmcxh3qQzswqDB4SCU8L68vYBJshaeYQ8rHVBfrAfuXZNyFHtR8QXUKR4CtytMyX4DwhsPYKKgFSpq8f5KxNz2s6Guqr6c6LzcHck'],
7473
'Cardano #7' => [CurrencyEnum::CARDANO, 'testnet', true, '2cWKMJemoBaipAW1NGegM2qWevSgpL9baiizayY4NnTBvxRGyppr2uym7F9eEtRLehFek'],
7574
'Cardano #8' => [CurrencyEnum::CARDANO, 'testnet', true, 'addr_test1qzfst6x8f4r47vm4qfeuj7g8r5pgkjnv5cuzjk94u8p7sd3gtlpjssk2fy95k4z5lr48tu48fcqstnzte44d8f8v8vhs9pwu4x'],

0 commit comments

Comments
 (0)