Completed
Pull Request — master (#241)
by thomas
133:23 queued 63:06
created

ScriptWitnessSerializer::fromParser()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 15
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 15
rs 9.4285
cc 2
eloc 9
nc 2
nop 2
1
<?php
2
3
namespace BitWasp\Bitcoin\Serializer\Script;
4
5
use BitWasp\Bitcoin\Script\ScriptWitness;
6
use BitWasp\Bitcoin\Script\ScriptWitnessInterface;
7
use BitWasp\Buffertools\Buffer;
8
use BitWasp\Buffertools\Parser;
9
use BitWasp\Buffertools\TemplateFactory;
10
11
class ScriptWitnessSerializer
12
{
13
14
    public function fromParser(Parser $parser, $size)
15
    {
16
        echo "parsing script witness\n";
17
        $varstring = (new TemplateFactory())->varstring()->getTemplate();
18
19
        $entries = [];
20
21
        for ($j = 0; $j < $size; $j++) {
22
            echo "$j\n";
23
            list ($data) = $varstring->parse($parser);
24
            $entries[] = $data;
25
        }
26
27
        return new ScriptWitness($entries);
28
    }
29
30
    public function serialize(ScriptWitnessInterface $witness)
31
    {
32
        $varstring = (new TemplateFactory())->varstring()->getTemplate();
33
34
        $str = '';
35
        foreach ($witness as $value) {
36
            $str .= $varstring->write([$value])->getBinary();
37
        }
38
39
        return new Buffer($str);
40
    }
41
}
42