Стандарты

IZ3 Token

Сандарт токена определяет обязательные условия:

  1. Свойство contract возвращающее информацию о токене {name, ticker, owner, emission, type} и type="token"
  2. Метод init(исходная эмиссия [, разрешен минтинг = false])
  3. Метод balanceOf(адрес)
  4. Метод totalSupply() возвращающий общую сумму выпущеных токенов
  5. Метод transfer(адрес получателя, сумма перевода)
  6. Метод burn(сумма сжигания)
  7. Метод mint(сумма минтинга)
  8. Метод getTransferFee(сумма) передающий стоимость операции перевода
  9. Метод getActionFee(действие, параметры) передающий стоимость выполнения какой-либо операции
  10. События Transfer(адрес отправителя,адрес получателя, сумма) вызываемого при любом движении средств
  11. События Mint(адрес, сумма)
  12. События Burn(адрес, сумма)

Стандарт токена в полной мере реализован встроенным классом TokenContract.

Pay Object

Объект, возвращаемый методой payProcess класса Contract.

{
    amount,             //Сумма платежа, BigNumber
    rawAmount,          //Сумма платежа, исходный вид
    ticker,             //Тикер валюты платежа
    balance,            //Новый баланс контракта, BigNumber
    rawBalance,         //Новый баланс контракта, исходный вид
    caller,             //Адрес контракта токена платежа
    contractName,       //Имя контракта-токена платежа
}

Для проверки валюты платежа рекомендуется проверять адрес вызывающего таким образом:

assert.true(Number(PayObject.caller) === Number(WANTED_TOKEN_ADDR));

Для приема платежа только основного токена сети, используйте:

assert.true(Number(PayObject.caller) === Number(contracts.getMasterContractAddress()));

state

Объект текущего состояния запуска. Один из самых важных объектов виртаульной среды

Рекомендованный метод получить текущий state const state = global.getState();

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

Основные свойства:

  1. state.from - Адрес пользователя, иницировавшего запуск методов смарт контракта. Видно всем контрактам в цепочке вызовов
  2. state.block - Опциональное свойство. Объект блока текущего вызова. См. Block
  3. state.contractAddress - Адрес контракта текущего вызова.
  4. state.extend - Опциональное свойство. Объект дополнительного состояния.
  5. state.randomSeed - Опциональное свойство. Текущая настройка генератора случайных чисел
  6. state.calledFrom - Опциональное свойство. Адрес контракта, совершиевшго текущий вызов
  7. state.delayedMethod - Опциональное свойство. Флаг отложенного вызова
  8. state.callingIndex - Опциональное свойство. Номер текущего вызова в цепочке вызовов

Block

Объект блока. Свойства:

  1. index - текущий номер
  2. previousHash - хеш предыдущего блока
  3. timestamp - метка времени блока
  4. startTimestamp - мета начала генерации блока
  5. data - строка данных
  6. hash - хеш блока
  7. sign - цифровая подпись блока