Package disc

Interface BlockchainContract

All Known Subinterfaces:
AcceptanceAct, AdvancePayment, ProvisionPayment, RepaymentContract, ScheduledPayment, Token

public interface BlockchainContract
Представляет блокчейн контракт, встроенный в конкретную сущность системы
  • Method Details

    • getBlockchainId

      @NonNull String getBlockchainId()
      Returns:
      идентификатор данной ревизии (состояния контракта) в блокчейне. Определяет только какое то одно неизменяемое состояние контракта. Если контракт меняется, меняется и этот идентификатор
    • getOriginBlockchainId

      @NonNull String getOriginBlockchainId()
      Returns:
      идентификатор исходного контракта в его субчейне (этот идентификатор никогда не меняется при изменении данных контракта, то есть, при регистрации новых его ревизий). Стабильный идентификатор которым можно пользоваться для ссылок.
    • getBlockchainContractBinary

      @org.checkerframework.checker.nullness.qual.NonNull byte[] getBlockchainContractBinary()
      Returns:
      бинарный упакованный контракт.
    • isApprovedByBlockchain

      boolean isApprovedByBlockchain()
      Returns:
      проверить что контракт зарегистрирован и утвержден сетью
    • registerInBlockchain

      void registerInBlockchain() throws RegistrationException, NetworkException
      Зарегистрировать контракт в блокчейне. Если контракт уже зарегистрирован, не вызывает ошибку.
      Throws:
      RegistrationException - если контракт не имеет необходимой подписи, имеет неверное значение или еще как то не соответствует одижаниям
      NetworkException - при проблемах с сетью, имеющих обычно временный характер
    • refresh

      <T extends BlockchainContract> @Nullable T refresh()
      Получить последнюю версию контракта (и связанного с ним объекта) известную системе. Если контракт еше не зарегистрирован в блокчейне, вернет null.
      Type Parameters:
      T - тип реального объекта инкорпорирующего блокчейн-контракт
      Returns:
      обновленный объект или null