Completed
Pull Request — master (#821)
by thomas
22:10
created

CheckerCreator::create()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 3
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 1
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace BitWasp\Bitcoin\Transaction\Factory\Checker;
6
7
use BitWasp\Bitcoin\Crypto\EcAdapter\Adapter\EcAdapterInterface;
8
use BitWasp\Bitcoin\Crypto\EcAdapter\EcSerializer;
9
use BitWasp\Bitcoin\Crypto\EcAdapter\Serializer\Key\PublicKeySerializerInterface;
10
use BitWasp\Bitcoin\Crypto\EcAdapter\Serializer\Signature\DerSignatureSerializerInterface;
11
use BitWasp\Bitcoin\Script\Interpreter\CheckerBase;
12
use BitWasp\Bitcoin\Script\Interpreter\Checker;
13
use BitWasp\Bitcoin\Serializer\Signature\TransactionSignatureSerializer;
14
use BitWasp\Bitcoin\Transaction\TransactionInterface;
15
use BitWasp\Bitcoin\Transaction\TransactionOutputInterface;
16
17
class CheckerCreator extends CheckerCreatorBase
18
{
19 2
    public static function fromEcAdapter(EcAdapterInterface $ecAdapter)
20
    {
21 2
        $derSigSer = EcSerializer::getSerializer(DerSignatureSerializerInterface::class);
22 2
        $txSigSer = new TransactionSignatureSerializer($derSigSer);
23 2
        $pkSer = EcSerializer::getSerializer(PublicKeySerializerInterface::class);
24 2
        return new CheckerCreator($ecAdapter, $txSigSer, $pkSer);
25
    }
26
    /**
27
     * @param TransactionInterface $tx
28
     * @param int $nInput
29
     * @param TransactionOutputInterface $txOut
30
     * @return CheckerBase
31
     */
32 114
    public function create(TransactionInterface $tx, int $nInput, TransactionOutputInterface $txOut): CheckerBase
33
    {
34 114
        return new Checker($this->ecAdapter, $tx, $nInput, $txOut->getValue(), $this->txSigSerializer, $this->pubKeySerializer);
35
    }
36
}
37