TronAddress.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. namespace IEXBase\TronAPI;
  3. use IEXBase\TronAPI\Exception\TronException;
  4. class TronAddress
  5. {
  6. /**
  7. * Результаты генерации адресов
  8. *
  9. * @var array
  10. */
  11. protected $response = [];
  12. /**
  13. * Конструктор
  14. * @param array $data
  15. * @throws TronException
  16. */
  17. public function __construct(array $data)
  18. {
  19. $this->response = $data;
  20. // Проверяем ключи, перед выводом результатов
  21. if(!$this->array_keys_exist($this->response, ['address_hex', 'private_key', 'public_key'])) {
  22. throw new TronException('Incorrectly generated address');
  23. }
  24. }
  25. /**
  26. * Получение адреса
  27. *
  28. * @param bool $is_base58
  29. * @return string
  30. */
  31. public function getAddress(bool $is_base58 = false): string
  32. {
  33. return $this->response[($is_base58 == false) ? 'address_hex' : 'address_base58'];
  34. }
  35. /**
  36. * Получение публичного ключа
  37. *
  38. * @return string
  39. */
  40. public function getPublicKey(): string
  41. {
  42. return $this->response['public_key'];
  43. }
  44. /**
  45. * Получение приватного ключа
  46. *
  47. * @return string
  48. */
  49. public function getPrivateKey(): string
  50. {
  51. return $this->response['private_key'];
  52. }
  53. /**
  54. * Получение результатов в массике
  55. *
  56. * @return array
  57. */
  58. public function getRawData(): array
  59. {
  60. return $this->response;
  61. }
  62. /**
  63. * Проверка нескольких ключей
  64. *
  65. * @param array $array
  66. * @param array $keys
  67. * @return bool
  68. */
  69. private function array_keys_exist(array $array, array $keys = []): bool
  70. {
  71. $count = 0;
  72. if (!is_array($keys)) {
  73. $keys = func_get_args();
  74. array_shift($keys);
  75. }
  76. foreach ($keys as $key) {
  77. if (isset( $array[$key]) || array_key_exists($key, $array)) {
  78. $count ++;
  79. }
  80. }
  81. return count($keys) === $count;
  82. }
  83. }