Completed
Push — master ( 319c7a...cdee94 )
by thomas
79:06 queued 75:43
created

ScriptFactory::scriptSig()   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 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
cc 1
eloc 2
nc 1
nop 0
crap 1
1
<?php
2
3
namespace BitWasp\Bitcoin\Script;
4
5
use BitWasp\Bitcoin\Bitcoin;
6
use BitWasp\Bitcoin\Math\Math;
7
use BitWasp\Bitcoin\Script\Factory\InputScriptFactory;
8
use BitWasp\Bitcoin\Script\Factory\OutputScriptFactory;
9
use BitWasp\Bitcoin\Script\Factory\P2shScriptFactory;
10
use BitWasp\Bitcoin\Script\Factory\ScriptCreator;
11
use BitWasp\Bitcoin\Script\Factory\ScriptInfoFactory;
12
use BitWasp\Buffertools\Buffer;
13
14
class ScriptFactory
15
{
16
    /**
17
     * @param Buffer|null $buffer
18
     * @param Opcodes|null $opcodes
19
     * @param Math|null $math
20
     * @return ScriptCreator
21
     */
22 1125
    public static function create(Buffer $buffer = null, Opcodes $opcodes = null, Math $math = null)
23
    {
24 1125
        return new ScriptCreator($math ?: Bitcoin::getMath(), $opcodes ?: new Opcodes(), $buffer);
25
    }
26
27
    /**
28
     * @return InputScriptFactory
29
     */
30 93
    public static function scriptSig()
31
    {
32 93
        return new InputScriptFactory();
33
    }
34
35
    /**
36
     * @return OutputScriptFactory
37
     */
38 321
    public static function scriptPubKey()
39
    {
40 321
        return new OutputScriptFactory();
41
    }
42
43
    /**
44
     * @return P2shScriptFactory
45
     */
46
    public static function p2sh()
47
    {
48
        return new P2shScriptFactory(self::scriptPubKey());
49
    }
50
51
    /**
52
     * @param ScriptInterface $script
53
     * @param ScriptInterface|null $redeemScript
54
     * @return ScriptInfo\ScriptInfoInterface
55
     */
56 135
    public static function info(ScriptInterface $script, ScriptInterface $redeemScript = null)
57
    {
58 135
        return (new ScriptInfoFactory())->load($script, $redeemScript);
59
    }
60
61
     /**
62
     * @param Buffer|string $string
63
     * @return Script
64
     */
65 708
    public static function fromHex($string)
66
    {
67 708
        return self::create($string instanceof Buffer ? $string : Buffer::hex($string))->getScript();
68
    }
69
}
70