2.2.9 • Published 4 months ago

cooptypes v2.2.9

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

COOPTYPES

npm version npm downloads bundle JSDocs License

Модуль cooptypes содержит информацию для работы со смарт-контрактами кооперативной экономики. В этом модуле представлены реестры действий и таблиц каждого смарт-контракта, а также имена аккаунтов для разных блокчейн-сетей.

Каждое действие содержит интерфейс транзакции, информацию о требуемой авторизации и имя действия, которое нужно вызвать на уровне смарт-контракта.

Каждая таблица содержит интерфейс для работы с данными и информацию о пространстве хранения информации в блокчейне.

Как пользоваться

Перейти на страницу документации и ознакомиться с набором пространств имен контрактов, в каджом из которых есть действия и таблицы, а также, интерфейсы данных, имена контрактов, пространств хранения и требуемая авторизация. Всё это доступно из интерфейса IDE после импорта контракта.

Получение таблиц

import EosApi from 'eosjs-api';
import {SovietContract} from 'cooptypes'

const options = {
    httpEndpoint: 'http://127.0.0.1:8888',
  };

const api = new EosApi(options);
const coopname = 'testcoop' - тестовое имя аккаунта кооператива

const _scope = SovietContract.Tables.Boards.scope

Получив _scope, необходимо проверить его и подставить переменную:

let scope

if (_scope === '_coopname' )
  scope = coopname
if (_scope === '_username)
  scope = username
... и так далее

scope - это области памяти хранения информации в смарт-контракте, которые представлены в виде универсальных параметров _username, _coopname или прочих, в соответствии с которыми необходимо подставить переменную.

Например, для получения таблицы с членами совета кооператива, необходимо подставить область памяти _coopname, или, 'testcoop', как было определено выше для тестового кооператива. Также, вместо _coopname могут быть указаны имена других контрактов или пользователей. Область памяти определяется тем, как именно смарт-контракт хранит информацию.

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

api.getTableRows(
    {
        json: true,
        code: SovietContract.contractName.production, //извлекаем имя контракта
        scope, //подставляем ранее полученную область памяти
        table: SovietContract.Tables.Boards.tableName, //извлекаем имя таблицы в контракте
        limit: 10, // устанавливаем лимит

        // не обязательные параметры запроса
        /*  upper_bound, // - верхняя граница
            lower_bound, // - нижняя граница
            key_type, // - тип ключа
            index_position, // нижняя граница
        */
    })

Те же параметры scope, table, code могут быть использованы для получения информации из модуля COOPARSER. Последнее используется, когда необходимо получить исторические данные и нет необходимости проверять их актуальность по наличию таблиц в блокчейне. Однако, таблицы в блокчейне необходимо всегда проверять перед отправкой любой транзакции действия. Нельзя полагаться на данные из парсера при подготовке транзакции действия.

Транзакция действий

Состояние любого смарт-контракта может изменяться только с помощью действий. Для того, чтобы совершить действия, необходимо сформировать и отправить транзакцию с помощью библиотеки eosjs или альтернатив.

import { Api, JsonRpc } from 'eosjs';
import { JsSignatureProvider } from 'eosjs/dist/eosjs-jssig';
import { TextEncoder, TextDecoder } from 'util';
import fetch from 'isomorphic-fetch';

const signatureProvider = new JsSignatureProvider([wif]);
const api = new Api({ rpc, signatureProvider, textDecoder: new TextDecoder(), textEncoder: new TextEncoder() });

транзакция может содержать в себе массив действий, которые будут применяться последовательно друг за другом. Ниже мы сформируем транзакцию регистрации нового аккаунта, которая может быть вызвана только администратором или председателем кооператива.

  const result = await eos.transact(
    {
      actions: [
        {
          //здесь мы извлекаем имя контракта
          account: RegistratorContract.contractName.production,
          //здесь мы извлекаем имя действия
          name: RegistratorContract.Actions.CreateAccount.actionName,
          authorization: [
            {
              // требуемые авторизации хранятся в RegistratorContract.Actions.CreateAccount.authorizations, откуда могут быть извлечены программно или вручную.
              actor: chairman,
              permission: 'active',
            },
          ],
          data: {
            // подставляем данные действия
          } as RegistratorContract.Actions.CreateAccount.ICreateAccount,
          // здесь извлекаем интерфейс для действия
        },
      ]
    }
  );

Лицензия

MIT License © 2024-PRESENT CBS VOSKHOD

2.2.9

4 months ago

2.2.8

5 months ago

2.2.7

5 months ago

2.2.6

5 months ago

2.2.0

6 months ago

2.2.3

6 months ago

2.2.2

6 months ago

2.2.5

6 months ago

2.2.4

6 months ago

2.1.8

7 months ago

2.1.7

7 months ago

2.1.4

8 months ago

2.1.4-alpha.0

8 months ago

2.1.3

8 months ago

2.1.2-alpha.8

9 months ago

2.1.2

9 months ago

2.0.2

9 months ago

2.0.8

9 months ago

2.0.2-alpha.0

9 months ago

1.0.26

9 months ago

2.0.1

9 months ago

2.0.2-alpha.1

9 months ago

1.0.22-alpha.0

10 months ago

1.0.22-alpha.1

10 months ago

2.0.10-alpha.3

9 months ago

1.0.22-alpha.6

10 months ago

1.0.22-alpha.2

10 months ago

1.0.22-alpha.3

10 months ago

2.1.0

9 months ago

1.0.22-alpha.4

10 months ago

1.0.22-alpha.5

10 months ago

1.0.26-alpha.0

10 months ago

1.0.26-alpha.1

10 months ago

1.0.26-alpha.4

9 months ago

1.0.26-alpha.2

9 months ago

1.0.21

11 months ago

1.0.20

11 months ago

1.0.20-alpha.1

11 months ago

1.0.20-alpha.0

11 months ago

1.0.19

11 months ago

1.0.18

11 months ago

1.0.18-alpha.0

11 months ago

1.0.17

12 months ago

1.0.17-alpha.3

12 months ago

1.0.2

12 months ago

1.0.12-testnet.1

12 months ago

1.0.1

12 months ago

1.0.0

12 months ago

1.0.16

12 months ago

1.0.7

12 months ago

1.0.3

12 months ago

1.0.16-alpha.0

12 months ago

1.0.14-alpha.0

12 months ago

1.0.17-alpha.0

12 months ago

1.0.11-testnet.0

12 months ago

1.0.13-alpha.0

12 months ago

0.5.22

1 year ago

0.5.29

1 year ago

0.5.27

1 year ago

0.5.28

1 year ago

0.5.25

1 year ago

0.5.26

1 year ago

0.5.23

1 year ago

0.5.24

1 year ago

1.0.11

12 months ago

1.0.10

12 months ago

1.0.15

12 months ago

1.0.14

12 months ago

1.0.13

12 months ago

1.0.12

12 months ago

0.5.20

1 year ago

0.5.19

1 year ago

0.5.18

1 year ago

0.5.16

1 year ago

0.5.17

1 year ago

0.5.14

1 year ago

0.5.15

1 year ago

0.5.12

1 year ago

0.5.13

1 year ago

0.5.10

1 year ago

0.5.11

1 year ago

0.5.8

1 year ago

0.5.7

1 year ago

0.5.4

1 year ago

0.5.3

1 year ago

0.5.5

1 year ago

0.5.2

1 year ago

0.5.1

1 year ago

0.5.0

1 year ago

0.4.3

1 year ago

0.4.2

1 year ago

0.4.1

1 year ago

0.4.0

1 year ago

0.3.1

1 year ago

0.2.0

1 year ago

0.1.0

1 year ago

0.0.5

1 year ago

0.0.4

1 year ago