Ethereum PHP
PHP interface to Ethereum JSON-RPC API.
EthBlockParam.php
Go to the documentation of this file.
1 <?php
2 
3 namespace Ethereum\DataType;
5 
11 class EthBlockParam extends EthQ
12 {
13  const TAGS = [
14  "latest",
15  "earliest",
16  "pending",
17  ];
18 
28  public function __construct($val = 'latest', array $params = [])
29  {
30  parent::__construct($val, $params);
31  }
32 
45  public function validate($val, array $params)
46  {
47  $return = null;
48  if ($this->isTag($val)) {
49  $return = $val;
50  } else {
51  $return = parent::validate($val, $params);
52  }
53 
54  if (is_null($return)) {
55  throw new \InvalidArgumentException('No valid block param: ' . $val);
56  }
57 
58  return $return;
59  }
60 
68  public function val()
69  {
70  if ($this->isTag()) {
71  return $this->value;
72  } else {
73  return $this->value->toString();
74  }
75  }
76 
85  protected function isTag($val = false)
86  {
87  if (!$val) {
88  $val = $this->value;
89  }
90 
91  return (!is_int($val) && in_array($val, self::TAGS));
92  }
93 
101  public function hexVal()
102  {
103  if ($this->isTag()) {
104  return $this->value;
105  } else {
106  $val = intval($this->value->toString());
107  $val = ($val === 0) ? $val : $this->value->toHex(false);
108 
109  // Unpaded positive Hex value.
110  return $this->ensureHexPrefix($val);
111  }
112  }
113 
118  protected function validateAddress($val, array $params)
119  {
120  return parent::validate($val, $params);
121  }
122 }
validateAddress($val, array $params)
validate($val, array $params)
__construct($val='latest', array $params=[])