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

CheckerCreator   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 20
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 5

Test Coverage

Coverage 28.57%

Importance

Changes 0
Metric Value
dl 0
loc 20
ccs 2
cts 7
cp 0.2857
rs 10
c 0
b 0
f 0
wmc 2
lcom 1
cbo 5

2 Methods

Rating   Name   Duplication   Size   Complexity  
A fromEcAdapter() 0 7 1
A create() 0 4 1
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