Skip to content

RU PHP API

Andrey Nedobylsky edited this page Nov 28, 2019 · 1 revision

PHP API

API классы для PHP. Доступны в /api/php

Класс NodeRPC

Данный класс предоставляет базовый набор методов для реализации запросов к блокчейну.

Конструктор:

public function __construct([$RPCUrl = 'http://localhost:3001/', $password = ''])

Агрументы:

  • $RPCUrl (string) - Адрес удаленного сервера, к которому происходит подключение в формате “http://address:port
  • $password (string) - Пароль для подключения к удаленному серверу

Returns mixed:

Проинициализированный объект с набором методов.

cURL запрос к серверу:

private static function curlRequest([$method = 'get', $url, $params = [], $password = ''])

Аргументы:

  • $method (string) - Метод выполнения запроса
  • $url (string) - Адрес к которому выполняется запрос
  • $params (array) - Массив параметров запроса (для POST)
  • $password (string) - Пароль(в случае, если подключение защищено паролем)

Returns mixed | string:

Возвращает ответ сервера на запрос

RPC запрос к серверу:

protected function request([$method, $params = [], $paramStr = ''])

Аргументы:

  • $method (string) - Метод, вызываемый на сервере
  • $params (array) - Массив параметров запроса (для POST)
  • $paramStr (string) - Параметры, которые будут добавлены в URL запроса

Returns array | mixed | InvalidMethodException | ReturnException | RpcCallException :

Возвращает тело ответа от сервера либо исключение

Получение информации и статуса блокчейна:

public function getInfo()

Returns mixed | InvalidMethodException | ReturnException | RpcCallException :

Возвращает объект c информацией о блокчейне либо исключение

Создание и регистрация нового кошелька:

public function createWallet()

Returns mixed | InvalidMethodException | ReturnException | RpcCallException:

Возвращает информацию о новом кошельке либо исключение

Получение адреса текущего кошелька:

public function getWallet()

Returns mixed | InvalidMethodException | ReturnException | RpcCallException:

Возвращает объект с адресом текущего кошелька  либо исключение

Изменение текущего кошелька на новый. Список транзакций при этом будет пересчитан, что может занять значительное время:

public function changeWalletByData($id, $private, $public)

Аргументы:

  • $id (string) - Адрес нового кошелька
  • $privateKey (string) - Приватный ключ для нового кошелька
  • $publicKey (string) - Публичный ключ для нового кошелька

Returns array| InvalidMethodException | ReturnException | RpcCallException:

Возвращает новый кошелек либо исключение

Изменение текущего кошелька на новый. Список транзакций при этом будет пересчитан, что может занять значительное время:

public function changeWallet($wallet)

Аргументы:

  • $wallet (array) - Массив, полученный из метода createWallet

Returns array| InvalidMethodException | ReturnException | RpcCallException:

Возвращает новый кошелек либо исключение

Класс EcmaSmartRPC

Данный класс предоставляет основной набор методов для работы с ECMA контрактами. Унаследован от NodeRPC.

Конструктор:

public function __construct([$RPCUrl = 'http://localhost:3001/', $password = ''])

Агрументы:

  • $RPCUrl (string) - Адрес удаленного сервера, к которому происходит подключение в формате “http://address:port
  • $password (string) - Пароль для подключения к удаленному серверу

Returns mixed:

Проинициализированный объект с набором методов.

Получение информации о подсистеме смарт контрактов ECMA.

public function ecmaGetInfo()

Returns array | mixed:

Возвращает объект с информацией о подсистеме смарт контрактов ECMA.

Получение информации о контракте:

public function ecmaGetContractInfo($contractAddress)

Аргументы:

  • $contractAddress (string) - Адрес контракта, информацию о котором хотим получить

Returns array | mixed:

Возвращает объекта с информацией о контракте.

Получение свойства контракта:

public function ecmaGetContractProperty($contractAddress, $property)

Аргументы:

  • $contractAddress (string) - Адрес контракта, информацию о котором хотим получить
  • $property (string) - Имя свойства

Returns array | mixed:

Возвращает объект с запрашиваемым свойствам. Тип возвращаемого значения зависит от типа свойства.

Вызов метода контракта, с последующим откатом изменений:

public function ecmaCallMethod($contractAddress, $method, $params)

Аргументы:

  • $contractAddress (string) - Адрес контракта
  • $method (string) - Имя вызываемого метода
  • $params (array) - Параметры для метода

Returns array | mixed:

Возвращает результат вызова или ошибку.

Вызов метода контракта, с последующей записью изменений в цепочку блоков:

public function ecmaDeployMethod($contractAddress, $method, $params)

Аргументы:

  • $contractAddress (string) - Адрес контракта
  • $method (string) - Имя вызываемого метода
  • $params (array) - Параметры для метода

Returns array | mixed:

Возвращает содержимое блока или ошибку.

Запуск нового контракта в сеть:

public function ecmaDeployContract($source [, _$resourceRent _= '0'])

Аргументы:

  • $source(string) - Исходный JavaScript код смарт контракта
  • $resourceRent (string | number) - Количество токенов выделяемых для аренды ресурсов

Returns array | mixed:

Возвращается объект контракта либо ошибка

Запуск нового контракта в сеть с подписанным блоком:

public function ecmaDeployContractSignedBlock($block [, _$resourceRent _= '0'])

Аргументы:

  • $block (object) - JavaScript объект подписанного блока контракта
  • $resourceRent (string | number) - Количество токенов выделяемых для аренды ресурсов

Returns array | mixed:

Возвращается объект контракта либо ошибка

Вызов метода контракта, с последующей записью изменений в цепочку блоков. В отличии от deployMethod принимает на вход подписанный блок EcmaContractCallBlock:

public function ecmaDeployMethodSignedBlock($contractAddress, $block)

Аргументы:

  • $contractAddress (string) - Адрес контракта
  • $block (object) - JavaScript объект подписанного блока контракта

Returns array | mixed:

Возвращает содержимое блока или ошибку.