Libdap-chain-python

From wiki.cellframe.net
Jump to navigation Jump to search

libdap-chain-python

Это библиотека которая позволяет работать с libdap-chain из языка программирования Python. По сути libdap-chain-python является враппингом(обёрткой) над библиотекой libdap-chain и через python-cellframe предоставляет доступ программисту Python к библиотеки libdap-chain.

Инициализация

Процесс инициализации описан в документации к Python-cellframe а для инициализации модуля libdap-chain-python нужно в JSON строк в массиве строк с название modules указать строку "Crypto", тогда впроцессе инициализации Python-cellframe произведёт инициализацию libdap-chain-python.

Предоставляемые типы объектов

Chain

Представляет собой обёртку над структурой dap_chain_t и обладает следующими методами

  • findById - Функция является статической и принимает на вход два параметра объект ChainNetID и объект ChainID. Возвращает объект Chain. Является обёрткой над функцией dap_chain_find_by_id.
  • loadFromCfg - Функция является статической и принимает на вход четыре параметра: объект типа ChainLedger, строку, которая является названием сети, объект типа ChainNetID и строку, которая является названием конфигурационного файла. Возвращает объект типа Chain. Является обёрткой над функцией dap_chain_load_from_cfg.
  • hasFileStore - Функция не принимает на вход аргументов. Возвращает логическое значение. Является обёрткой над функцией dap_chain_has_file_store.
  • saveAll - Функция не принимает на вход аргументов. Возвращает числовое значение. Является обёрткой над функцией dap_chain_save_all.
  • loadAll - Функция не принимает на вход аргументов. Возвращает числовое значение. Является обёрткой над функцией dap_chain_load_all.

Тип объекта chain обладает конструктором(PyDapChainObject_new) и деструктором(PyDapChainObject_dealloc)

ChainType

Представляет собой обёртку над структурой dap_chain_type_t. И является аналогом обычного enum. Функции, которые он предоставляет, являются статическими, возвращают объект типа ChainType, который содержит поле dap_chain_type_t, которое приравнено соответствующему числовому значению из перечисления

  • CHAIN_TYPE_FIRST
  • CHAIN_TYPE_TOKEN
  • CHAIN_TYPE_EMISSION
  • CHAIN_TYPE_TX
  • CHAIN_TYPE_LAST

ChainAtomIter

Представляет собой обёртку над структурой dap_chain_atom_iter_t.

ChainCell

Представляет собой обёртку над структурой dap_chain_cell_t. Предоставляет для работы с ней следующие функции.

ChainCommon

Данный объект является обёрткой над dap_chain_common и предоставляет следующие функции

ChainID

Представляет собой обёртку над структурой dap_chain_id_t. И предоставляет доступ к данной структуре.

ChainCellID

Представляет собой обёртку над структурой dap_chain_cell_id_t. И предоставляет доступ к данной структуре.

ChainNodeAddr

Представляет собой обёртку над структурой dap_chain_node_addr_t. Соответственно поле является указателем на структуру данную структуру. Также данный объект предоставляет доступ к данной структуре.

ChainNetID

Представляет собой обёртку над структурой dap_chain_net_id_t. Также данный объект предоставляет доступ к данной структуре.

ChainHashSlow

Представляет собой обёртку над структурой dap_chain_hash_slow_t. Соответственно поле является указателем на структуру данную структуру. Также данный объект предоставляет доступ к данной структуре.

ChainHashFast

Представляет собой обёртку над структурой dap_chain_hash_fast_t. Соответственно поле является указателем на структуру данную структуру. Также данный объект предоставляет доступ к данной структуре.

ChainHashSlowKind

Представляет собой обёртку над структурой dap_chain_hash_slow_kind_t. Соответственно поле является указателем на структуру данную структуру. Также данный объект предоставляет доступ к данной структуре.

ChainAddr

Представляет собой обёртку над структурой dap_chain_addr_t. Соответственно поле является указателем на структуру данную структуру. Также данный объект предоставляет доступ к данной структуре.

ChainCS

Предстовляет собой объекту над структурой dap_chain_cs_t. Имеет конструктор (DapChainCSObject_new). Объект типа ChainCS предоставляет следующие функции:

  • csAdd - Данная функция принимает в качестве параметров, два аргумента, строку и функцию обратного вызовва. Возвращает 0 или NULL в случае ошибки. Функция оборачивает функцию dap_chain_cs_add и соответственно добавляет строку в конценсус
  • csCreate - Данная функция в качестве входных параметров принимает объект типа Chain. Возвращает числовое значение. Функция является обёрткой для функции dap_chain_cs_create и соответственно создаёт конценсус для определённой цепочки
  • classAdd - Данная функция принимает в качестве параметров, два аргумента, строку и функцию обратного вызовва. Возвращает 0 или NULL в случае ошибки. Функция оборачивает функцию dap_chain_class_add и соответственно добавляет строку в класс
  • classCreate -Данная функция в качестве входных параметров принимает объект типа Chain. Возвращает числовое значение. Функция является обёрткой для функции dap_chain_class_create и соответственно создаёт конценсус для определённого класса

ChainDatumTypeID

Представляет собой обёртку над структурой dap_chain_datum_typeid_t. Соответственно поле является указателем на структуру данную структуру. Также данный объект предоставляет доступ к данной структуре.

ChainDatum

Представляет собой обёртку над структурой dap_chain_datum_t. Соответственно поле является указателем на структуру данную структуру. Также данный объект предоставляет доступ к данной структуре. Так же объект обладает конструктором, который принимает на вход три параметра, число не больше 216 т.e. типа uint16_t или unsigned short, объект типа Bytes, и его размер.

ChainDatumIter

Представляет собой обёртку над структурой dap_chain_datum_iter_t. Соответственно поле является указателем на структуру данную структуру. Также данный объект предоставляет доступ к данной структуре.

ChainDatumToken

Представляет собой обёртку над структурой dap_chain_datum_token_t. Соответственно поле является указателем на структуру данную структуру. Также данный объект предоставляет доступ к данной структуре.

ChainDatumTokenEmisson

Представляет собой обёртку над структурой dap_chain_datum_token_emission_t. Соответственно поле является указателем на структуру данную структуру. Также данный объект предоставляет доступ к данной структуре.

ChainTxItemType

Представляет собой обёртку над структурой dap_chain_tx_item_type_t. И является аналогом обычного enum. Функции, которые он предоставляет, являются статическими, возвращают объект типа ChainType, который содержит поле dap_chain_type_t, которое приравнено соответствующему числовому значению из перечисления

  • TX_ITEM_TYPE_IN - Функция возвращает значение из перечления dap_chain_tx_item_type. Данная функция является статической.
  • TX_ITEM_TYPE_OUT - Функция возвращает значение из перечления dap_chain_tx_item_type. Данная функция является статической.
  • TX_ITEM_TYPE_PKEY - Функция возвращает значение из перечления dap_chain_tx_item_type. Данная функция является статической.
  • TX_ITEM_TYPE_SIG - Функция возвращает значение из перечления dap_chain_tx_item_type. Данная функция является статической.
  • TX_ITEM_TYPE_TOKEN - Функция возвращает значение из перечления dap_chain_tx_item_type. Данная функция является статической.
  • TX_ITEM_TYPE_IN_COND - Функция возвращает значение из перечления dap_chain_tx_item_type. Данная функция является статической.
  • TX_ITEM_TYPE_OUT_COND - Функция возвращает значение из перечления dap_chain_tx_item_type. Данная функция является статической.
  • TX_ITEM_TYPE_RECEIPT - Функция возвращает значение из перечления dap_chain_tx_item_type. Данная функция является статической.

ChainTxCondType

Представляет собой обёртку над структурой dap_chain_tx_cond_type_t. Соответственно поле является указателем на структуру данную структуру. Также данный объект предоставляет доступ к данной структуре.

ChainDatumTx

Представляет собой обёртку над структурой dap_chain_datum_tx_t. Соответственно поле является указателем на структуру данную структуру. Также данный объект предоставляет доступ к данной структуре и имеет следующий конструктор (PyDapChainDatumTxObject_create) и деструктор (PyDapChainDatumTxObject_delete). Так же объект типа ChainDatumTx предоставляет следующие функции:

  • getSize - Данная функиция принимает не принимает на вход аргументов. Функция возвращает числовое значение, размер объекта ChainDatumTx, точнее структуры, которую он оборачивает. Функция оборачивает функцию dap_chain_datum_tx_get_size;
  • addItem - Данная функиция принимает на вход два параметра, список объектов типа ChainTxOutCond и число от 0 до 255. Данная функция является статической. Функция возвращает список объектов типа ChainDatumTx или NULL в случае ошибки. Функция из принятых данных создаёт коллекцию с новым типом данных. Функция оборачивает функцию dap_chain_datum_tx_add_item;
  • addInItem - Данная функция принимает на вход три параметра: список объектов типа ChainDatumTx, объект типа ChainHashFast, число не более uint32_t, то есть 0xFFFFFFFF (4294967295). Данная функция является статической. Функция возвращает список объектов типа ChainDatumTX. Функция производит быстрое вычисление хэша.Функция оборачивает функцию dap_chain_datum_tx_add_in_item;
  • addOutItem - Данная функция принимает на вход три параметра: список объектов типа ChainDatumTx, объект типа ChainAddr, число не более uint64_t, то есть не более 264. Данная функция является статической. Функция возвращает список объектов типа ChainDatumTx. Функция добавляет в datum информацию из структуры dap_chain_addr. Функция оборачивает функцию dap_chain_datum_tx_add_out_item;
  • addOutCond - Данная функция принимает в качестве аргументов шесть параметров: список объектов типа ChainDatumTx, объект типа CryptoKey, объект типа ChainAddr, число не более uint64_t, то есть не более 264, объект типа Bytes, количество элементов, которые хранятся внутри объекта типа Bytes. Данная функция является статической. Функция возвращает список объектов типа ChainDatumTx. Функция является обёрткой над dap_chain_datum_tx_add_out_cond_item;
  • addSignItem - Данная функция принимает на вход в качестве параметров следующие аргументы: список объектов типа ChainDatumTx, объект типа CryptoKey. Функция возвращает список объектов типа ChainDatumTx. Данная функция производит подпись датыма, с помощью заданного ключа. Функция является обёрткой над функцией dap_chain_datum_tx_add_sign_item;
  • verifySign - Данная функция не принимает на вход аргументов, возвращает числовое значение. Производит верификацию подписи. Данная функция является обёрткой над функцией dap_chain_datum_tx_verify_sign.

ChainTxOutCond

Представляет собой обёртку над структурой dap_chain_tx_out_cond_t. Соответственно поле является указателем на структуру данную структуру. Также данный объект предоставляет доступ к данной структуре.

ChainLedger

Данный тип объектов представляет собой обёртку над структурой dap_chain_ledger имеет конструктор и деструктор. Конструктор на вход принимает число не больше 216 данное число является чек флагом а так же предоставляет следующие функций

  • setLocalCellId - Данная функция на вход принимает один аргумент в качестве параметра, объект типа ChainCellID. Возвращает ноль. Функция устанавливает локальную ячейку. Функция оборачивает функцию dap_chain_ledger_set_local_cell_id;
  • nodeDatumTxCalcHash - Дананая функия принимает на вход один параметр, объект типа ChainDatumTx. Вовзращает объект типа ChainHashFast. Данная функция вычисляет хэш для датума. Является обёрткой над функцией dap_chain_node_datum_tx_calc_hash;
  • txAdd - Данная функция принимает на вход один параметр, объект типа ChainDatumTx. Функция возвращает числовое значение. Функция добавляет датум в журнал. Функция является обёрткой над функцией dap_chain_ledger_tx_add;
  • tokenAdd - Данная функция в качестве аргументов принимает два параметра: объект типа ChainDatumToken и числовое значение размер токена, который хранится в обрнутой структуре с помощью ChainDatumToken. Функция возвращает числовое значение. Функция добавляет к журналу токет. Функция является обёрткой над dap_chain_ledger_token_add.
  • tokenEmissionAdd - Данная функция в качестве аргументов принимает два параметра: объект типа ChainDatumTokenEmission и числовое значение размер эмиссии токена, который хранится в обрнутой структуре с помощью ChainDatumTokenEmission. Функция возвращает числовое значение. Функция отмечает в журнале эмиссию определённого токена. Функция является обёрткой над dap_chain_ledger_token_emission_add.
  • tokenEmissionFind - Данная функция в качестве аргументов принимает два параметра: объект типа ChainHashFasy и строку - тикер токена. Функция возвращает объект типа ChainDatumTokenEmission. Функция производит поиск эмисси определённого токена в журнале. Функция является обёрткой над dap_chain_ledger_token_emission_find.
  • txGetTokenTickerByHash - Данная функция в качестве аргументов принимает один параметр, объект типа ChainHashFast. Функция возвращает строку. Данная функция возвращает тикер токена по хэшу. Данная функция является обёрткой над dap_chain_ledger_tx_get_token_ticker_by_hash.
  • addrGetTokenTickerAll - Данная функция в качестве входных аргументов принимает три параметра: Объект типа ChainAddr, Список строк - тикеры, размер списка строк. Данная функция вохвращает 0. Функция производит получен всех токенов по ChainAddr. Данная функция является обёрткой над функцией dap_chain_ledger_addr_get_token_ticker_all.
  • addrGetTokenTickerAllFast - Данная функция в качестве входных аргументов принимает три параметра: Объект типа ChainAddr, Список строк - тикеры, размер списка строк. Данная функция вохвращает 0. Функция производит получен всех токенов по ChainAddr. Данная функция является обёрткой над функцией dap_chain_ledger_addr_get_token_ticker_all_fast.
  • txCacheCheck - Данная функция в качестве входных параметров принимает три аргумента: объект типа ChainDatumTx, двумерный список, размер выходного двумерного списка. Функция возвращает числовое значение. Функция производит проверку хэша. Функция оборачивает функцию dap_chain_ledger_tx_cache_check.
  • datumTxCacheCheck - Данная функция в качестве аргументов два параметра: объект типа ChainDatumTx, двумрный список. Функция возвращает число. Функция производит проверку кэша для датума. Функция является обёрткой над функцией dap_chain_node_datum_tx_cache_check.
  • txRemove - Данная функция в качестве входных параметров принимает один аргумент, объект типа ChainHashFast. Функция возвращает числовое значение. Функия удаляет из журнала записи с соответствующим кэшом. Функция оборачивает функцию dap_chain_ledger_tx_remove.
  • purge - Дананя функция не принимает аргументов, возвращает всегда ноль, очишает журнал. Представляет собой обёртку над функцией dap_chain_ledger_purge.
  • count - Дананя функция не принимает аргументов, возвращает числовое значение, подсчитывает количество записей в журнале. Представляет собой обёртку над функцией dap_chain_ledger_count.
  • countFromTo - Данная функция на вход принимает два аргумента: числа, которые представляют собой временные метки, первое число это начало периода второе конец. Функция подсчитывает количество записей в журнале за определённй период. Представляет собой обёртку над функцией dap_chain_ledger_count_from_to.
  • txHashIsUsedOutItem - Данная функция принимает на вход два аргумента: объект типа ChainHashFast и число размерностью c тип int. Возвращает логическое значение. Данная функция проеверяет используется ли данный хэш. Функция является обёрткой над dap_chain_ledger_tx_hash_is_used_out_item
  • calcBalance - Данная функция принимает на вход два аргумента: объект типа ChainAddr и строку - тикер токена. Функция возвращает числовое значение. Функция рассчитывает баланс. Функция является обёрткой над функцией dap_chain_ledger_calc_balance.
  • calcBalanceFull - Данная функция принимает на вход два аргумента: объект типа ChainAddr и строку - тикер токена. Функция возвращает числовое значение. Функция рассчитывает полный баланс. Функция является обёрткой над функцией dap_chain_ledger_calc_balance_full_py.
  • txFindByHash - Дананя функция принимает на вход один аргумент, объект типа ChainHashFast, производит поиск по хэшу. Функция возвращает объект типа ChainDatumTx. Функция является обёрткой над функцией dap_chain_ledger_tx_find_by_hash.
  • txFindByAddr - Данная функция принимает на вход три аргумента: строку - токен, объект типа ChainAddr, объект типа ChainHashFast. Функция производит поиск датумов по содержимому объекта ChainAddr . Функция возвращает объект типа ChainDatumTx. Функция является обёрткой над функцией dap_chain_ledger_tx_find_by_addr.
  • txFindByPkey - Данная функция принимает на вход три аргумента: строку - ключ, размер строки и объект типа ChainHashFast. Функция производит поиск датума по ключу. Функция возвращает объект типа ChainDatumTx. Функция является обёрткой над функцией dap_chain_ledger_tx_find_by_pkey.
  • txCacheFindOutCond - Данная функция на вхорд принимает два аргумента: объект типа ChainAddr и объект типа ChainHashFast. Функция ищет выходные датумы по содержимому объекта ChainAddr. Функция возвращает объект типа ChainDatumTx. Функция является обёрткой над функцией dap_chain_ledger_tx_cache_find_out_cond.
  • txCacheGetOutCondValue - Данная функция на вхорд принимает два аргумента: объект типа ChainAddr и список объектов типа ChainTxOutCond. Функция производит получение хэша по значению. Функция возвращает число. Функция является обёрткой над функцией dap_chain_ledger_tx_cache_get_out_cond_value.