Completed
Push — master ( 68a797...460d12 )
by thomas
24:41
created

CheckerCreator::fromEcAdapter()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 1
dl 0
loc 7
ccs 0
cts 5
cp 0
crap 2
rs 10
c 0
b 0
f 0
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
    public static function fromEcAdapter(EcAdapterInterface $ecAdapter)
20
    {
21
        $derSigSer = EcSerializer::getSerializer(DerSignatureSerializerInterface::class);
22
        $txSigSer = new TransactionSignatureSerializer($derSigSer);
23
        $pkSer = EcSerializer::getSerializer(PublicKeySerializerInterface::class);
24
        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 113
    public function create(TransactionInterface $tx, int $nInput, TransactionOutputInterface $txOut): CheckerBase
33
    {
34 113
        return new Checker($this->ecAdapter, $tx, $nInput, $txOut->getValue(), $this->txSigSerializer, $this->pubKeySerializer);
35
    }
36
}
37