Completed
Pull Request — master (#591)
by thomas
22:54 queued 09:12
created

TransactionFactory::mutate()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 1
dl 0
loc 4
ccs 2
cts 2
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace BitWasp\Bitcoin\Transaction;
6
7
use BitWasp\Bitcoin\Serializer\Transaction\TransactionSerializer;
8
use BitWasp\Bitcoin\Transaction\Factory\TxBuilder;
9
use BitWasp\Bitcoin\Transaction\Mutator\TxMutator;
10
use BitWasp\Buffertools\Buffer;
11
use BitWasp\Buffertools\BufferInterface;
12
13
class TransactionFactory
14
{
15
    /**
16
     * @return TxBuilder
17
     */
18 5
    public static function build(): TxBuilder
19
    {
20 5
        return new TxBuilder();
21
    }
22
23
    /**
24
     * @param TransactionInterface $transaction
25
     * @return TxMutator
26
     */
27 90
    public static function mutate(TransactionInterface $transaction): TxMutator
28
    {
29 90
        return new TxMutator($transaction);
30
    }
31
32
    /**
33
     * @param string $hex
34
     * @return TransactionInterface
35
     * @throws \Exception
36
     */
37 15
    public static function fromHex(string $hex): TransactionInterface
38
    {
39 15
        return self::fromBuffer(Buffer::hex($hex));
40
    }
41
42
    /**
43
     * @param BufferInterface $buffer
44
     * @return TransactionInterface
45
     */
46 22
    public static function fromBuffer(BufferInterface $buffer): TransactionInterface
47
    {
48 22
        return (new TransactionSerializer())->parse($buffer);
49
    }
50
}
51