Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
63.64% covered (warning)
63.64%
7 / 11
20.00% covered (danger)
20.00%
1 / 5
CRAP
0.00% covered (danger)
0.00%
0 / 1
Commitment
63.64% covered (warning)
63.64%
7 / 11
20.00% covered (danger)
20.00%
1 / 5
7.73
0.00% covered (danger)
0.00%
0 / 1
 __construct
85.71% covered (warning)
85.71%
6 / 7
0.00% covered (danger)
0.00%
0 / 1
2.01
 finalized
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 confirmed
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 processed
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 __toString
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace Attestto\SolanaPhpSdk\Util;
4
5use Attestto\SolanaPhpSdk\Exceptions\InputValidationException;
6
7class Commitment
8{
9    const FINALIZED = 'finalized';
10    const CONFIRMED = 'confirmed';
11    const PROCESSED = 'processed';
12
13    protected string $commitmentLevel;
14
15    /**
16     * @param string $commitmentLevel
17     */
18    public function __construct(string $commitmentLevel)
19    {
20        if (! in_array($commitmentLevel, [
21            self::FINALIZED,
22            self::CONFIRMED,
23            self::PROCESSED,
24        ])) {
25            throw new InputValidationException('Invalid commitment level.');
26        }
27
28        $this->commitmentLevel = $commitmentLevel;
29    }
30
31    /**
32     * @return static
33     */
34    public static function finalized(): Commitment
35    {
36        return new static(static::FINALIZED);
37    }
38
39    /**
40     * @return static
41     */
42    public static function confirmed(): Commitment
43    {
44        return new static(static::CONFIRMED);
45    }
46
47    /**
48     * @return static
49     */
50    public static function processed(): Commitment
51    {
52        return new static(static::PROCESSED);
53    }
54
55    /**
56     * @return string
57     */
58    public function __toString()
59    {
60        return $this->commitmentLevel;
61    }
62}