Compare commits
55 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8611c9bfb0 | |||
| f725a21e19 | |||
| 1cfb9824af | |||
| 6628163ab2 | |||
| bc5713626e | |||
| f23f09406b | |||
| 3187c6026d | |||
| fbf3e387b4 | |||
| 2e11d991ee | |||
| c7bc5a75cb | |||
| 267427a027 | |||
| 957d970ce3 | |||
| 4249339b92 | |||
| bb59279eb6 | |||
| 0f6b2d5cb7 | |||
| 3b677628e5 | |||
| 89ae957020 | |||
| 370a9879a2 | |||
| 9738e9ef78 | |||
| 95a07a5ee5 | |||
| 178800d35f | |||
| 824704d359 | |||
| 257324387d | |||
| aeee4e566d | |||
| fa8e831358 | |||
| e02a15a94c | |||
| 91b37f2efc | |||
| a117ad0f41 | |||
| 80e7f6c3df | |||
| 8bb02fd71b | |||
| 81a159ddfc | |||
| 04ea8b74b9 | |||
| c0dbc41c6a | |||
| df2a9021cf | |||
| 138510e751 | |||
| 2647718fc2 | |||
| 35910cee3d | |||
| 08da6158c5 | |||
| 86024438a7 | |||
| 28f2946dc2 | |||
| c0df3f3e1a | |||
| 154505aa1f | |||
| 34792c3942 | |||
| 885f49922a | |||
| ff9f00f893 | |||
| de10df2237 | |||
| 74fc3eacfa | |||
| 4c7dfb1cd5 | |||
| bc13017122 | |||
| dc4d0002b7 | |||
| 852579429e | |||
| 13a28f653b | |||
| 74216dfd94 | |||
| b084ac7e01 | |||
| 90d37db911 |
+23
-23
@@ -54,34 +54,34 @@ jobs:
|
||||
- name: Typecheck
|
||||
run: nr typecheck
|
||||
|
||||
test:
|
||||
runs-on: ${{ matrix.os }}
|
||||
# test:
|
||||
# runs-on: ${{ matrix.os }}
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node: [lts/*]
|
||||
os: [ubuntu-latest, windows-latest, macos-latest]
|
||||
fail-fast: false
|
||||
# strategy:
|
||||
# matrix:
|
||||
# node: [lts/*]
|
||||
# os: [ubuntu-latest, windows-latest, macos-latest]
|
||||
# fail-fast: false
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
# steps:
|
||||
# - uses: actions/checkout@v3
|
||||
|
||||
- name: Install pnpm
|
||||
uses: pnpm/action-setup@v2
|
||||
# - name: Install pnpm
|
||||
# uses: pnpm/action-setup@v2
|
||||
|
||||
- name: Set node ${{ matrix.node }}
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node }}
|
||||
# - name: Set node ${{ matrix.node }}
|
||||
# uses: actions/setup-node@v3
|
||||
# with:
|
||||
# node-version: ${{ matrix.node }}
|
||||
|
||||
- name: Setup
|
||||
run: npm i -g @antfu/ni
|
||||
# - name: Setup
|
||||
# run: npm i -g @antfu/ni
|
||||
|
||||
- name: Install
|
||||
run: nci
|
||||
# - name: Install
|
||||
# run: nci
|
||||
|
||||
- name: Build
|
||||
run: nr build
|
||||
# - name: Build
|
||||
# run: nr build
|
||||
|
||||
- name: Test
|
||||
run: nr test
|
||||
# - name: Test
|
||||
# run: nr test
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
ignore-workspace-root-check=true
|
||||
shell-emulator=true
|
||||
# ignore-workspace-root-check=true
|
||||
# shell-emulator=true
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# cooptypes
|
||||
# COOPTYPES
|
||||
|
||||
[![npm version][npm-version-src]][npm-version-href]
|
||||
[![npm downloads][npm-downloads-src]][npm-downloads-href]
|
||||
@@ -6,20 +6,114 @@
|
||||
[![JSDocs][jsdocs-src]][jsdocs-href]
|
||||
[![License][license-src]][license-href]
|
||||
|
||||
## Обозначения
|
||||
_username - имя аккаунта пользователя до 12 символов.
|
||||
Модуль cooptypes содержит информацию для работы со смарт-контрактами кооперативной
|
||||
экономики. В этом модуле представлены реестры действий и таблиц каждого
|
||||
смарт-контракта, а также имена аккаунтов для разных блокчейн-сетей.
|
||||
|
||||
_coopname - имя аккаунта кооператива до 12 символов.
|
||||
Каждое действие содержит интерфейс транзакции, информацию о требуемой авторизации и имя действия, которое нужно вызвать на уровне смарт-контракта.
|
||||
|
||||
_chairman - имя аккаунта председателя кооператива до 12 символов.
|
||||
Каждая таблица содержит интерфейс для работы с данными и информацию о пространстве хранения информации в блокчейне.
|
||||
|
||||
_admin - имя аккаунта администратора кооператива до 12 символов.
|
||||
## Как пользоваться
|
||||
Перейти на страницу документации и ознакомиться с набором пространств имен контрактов, в каджом из которых есть действия и таблицы, а также, интерфейсы данных, имена контрактов, пространств хранения и требуемая авторизация. Всё это доступно из интерфейса IDE после импорта контракта.
|
||||
|
||||
_contract - собственное имя аккаунта контракта до 12 символов, в котором вызывается действие.
|
||||
### Получение таблиц
|
||||
|
||||
## License
|
||||
```
|
||||
import EosApi from 'eosjs-api';
|
||||
import {SovietContract} from 'cooptypes'
|
||||
|
||||
[MIT](./LICENSE) License © 2024-PRESENT [Alex Ant](https://github.com/dacom-dark-sun)
|
||||
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](https://github.com/copenomics/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) License © 2024-PRESENT [CBS VOSKHOD](https://github.com/copenomics)
|
||||
|
||||
<!-- Badges -->
|
||||
|
||||
|
||||
+7
-9
@@ -1,17 +1,15 @@
|
||||
{
|
||||
"name": "cooptypes",
|
||||
"type": "module",
|
||||
"version": "0.5.11",
|
||||
"packageManager": "pnpm@9.0.6",
|
||||
"version": "1.0.8",
|
||||
"description": "_description_",
|
||||
"author": "Alex Ant <dacom.dark.sun@gmail.com>",
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/copenomics/cooptypes.git"
|
||||
"url": "git+https://github.com/coopenomics/cooptypes.git"
|
||||
},
|
||||
"keywords": [],
|
||||
"sideEffects": false,
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./dist/index.d.ts",
|
||||
@@ -19,9 +17,6 @@
|
||||
"require": "./dist/index.cjs"
|
||||
}
|
||||
},
|
||||
"main": "./dist/index.mjs",
|
||||
"module": "./dist/index.mjs",
|
||||
"types": "./dist/index.d.ts",
|
||||
"typesVersions": {
|
||||
"*": {
|
||||
"*": [
|
||||
@@ -38,11 +33,12 @@
|
||||
"dev": "unbuild --stub",
|
||||
"lint": "eslint .",
|
||||
"prepublishOnly": "nr build",
|
||||
"release": "bumpp && npm publish",
|
||||
"release": "bumpp && npm publish && pnpm gh-pages --nojekyll -d docs",
|
||||
"start": "esno src/index.ts",
|
||||
"test": "vitest",
|
||||
"typecheck": "tsc --noEmit",
|
||||
"prepare": "simple-git-hooks"
|
||||
"prepare": "simple-git-hooks",
|
||||
"doc": "typedoc"
|
||||
},
|
||||
"dependencies": {
|
||||
"@typescript-eslint/parser": "^7.8.0"
|
||||
@@ -51,11 +47,13 @@
|
||||
"@antfu/eslint-config": "^2.16.1",
|
||||
"@antfu/ni": "^0.21.12",
|
||||
"@antfu/utils": "^0.7.7",
|
||||
"@types/express": "^4.17.21",
|
||||
"@types/node": "^20.12.8",
|
||||
"better-docs": "^2.7.3",
|
||||
"bumpp": "^9.4.1",
|
||||
"eslint": "^9.1.1",
|
||||
"esno": "^4.7.0",
|
||||
"gh-pages": "^6.1.1",
|
||||
"jsdoc": "^4.0.3",
|
||||
"lint-staged": "^15.2.2",
|
||||
"pnpm": "^9.0.6",
|
||||
|
||||
Generated
+4857
-3726
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
packages:
|
||||
- playground
|
||||
- docs
|
||||
- packages/*
|
||||
- examples/*
|
||||
@@ -1,2 +1,2 @@
|
||||
export * as Deposits from './deposits'
|
||||
export * as Withdrws from './withdraws'
|
||||
export * as Withdraws from './withdraws'
|
||||
|
||||
@@ -13,6 +13,11 @@ export * as UpdateAccount from './updateAccount'
|
||||
*/
|
||||
export * as CreateAccount from './createAccount'
|
||||
|
||||
/**
|
||||
* Действие регистрации карточки пользователя в кооперативе
|
||||
*/
|
||||
export * as RegisterUser from './registerUser'
|
||||
|
||||
/**
|
||||
* Действие регистрации карточки организации в кооперативе
|
||||
*/
|
||||
|
||||
@@ -20,5 +20,6 @@ export * as SetRights from './setRights'
|
||||
|
||||
/**
|
||||
* Действие для инициализации контракта.
|
||||
* @private
|
||||
*/
|
||||
export * as Init from './init'
|
||||
|
||||
@@ -3,7 +3,7 @@ import type * as Soviet from '../../../../interfaces/soviet'
|
||||
import { Actors } from '../../../../common'
|
||||
|
||||
/**
|
||||
* Действие выполняется за подписью {@link Actors._init | системного контракта}.
|
||||
* Действие выполняется за подписью {@link Actors._system | системного контракта}.
|
||||
*/
|
||||
export const authorizations = [
|
||||
{ permissions: [Permissions.active], actor: Actors._system },
|
||||
|
||||
@@ -30,3 +30,8 @@ export * as Decisions from './decisions'
|
||||
* Пространство управления собраниями и советами.
|
||||
*/
|
||||
export * as Boards from './boards'
|
||||
|
||||
/**
|
||||
* Пространство управления администраторами.
|
||||
*/
|
||||
export * as Admins from './admins'
|
||||
|
||||
@@ -2,34 +2,34 @@
|
||||
* Действие фиксирует документ в реестре перед отправкой в совет на голосование.
|
||||
* @private
|
||||
*/
|
||||
export * as Draft from './draft'
|
||||
export * as NewSubmitted from './newsubmitted'
|
||||
|
||||
/**
|
||||
* Действие фиксирует связанную группу подписанных документов, которые отправляются в совет на голосование.
|
||||
* @private
|
||||
*/
|
||||
export * as Batch from './batch'
|
||||
export * as NewBatch from './newbatch'
|
||||
|
||||
/**
|
||||
* Действие фиксирует в реестре заявление, по которому принято решение советом кооператива.
|
||||
* @private
|
||||
*/
|
||||
export * as Statement from './statement'
|
||||
export * as NewResolved from './newresolved'
|
||||
|
||||
/**
|
||||
* Действие фиксирует в реестре подписанные акты приёма-передачи имущества.
|
||||
* @private
|
||||
*/
|
||||
export * as Act from './act'
|
||||
export * as NewAct from './newact'
|
||||
|
||||
/**
|
||||
* Действие фиксирует в реестре принятое решение советом.
|
||||
* @private
|
||||
*/
|
||||
export * as Decision from './decision'
|
||||
export * as NewDecision from './newdecision'
|
||||
|
||||
/**
|
||||
* Действие фиксирует в реестре идентификатор созданной целевой потребительской программы кооператива.
|
||||
* @private
|
||||
*/
|
||||
export * as Program from './program'
|
||||
export * as NewProgram from './newprogram'
|
||||
|
||||
+2
-2
@@ -10,10 +10,10 @@ export const authorizations = [{ permissions: [Permissions.active], actor: Contr
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'act'
|
||||
export const actionName = 'newact'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие фиксирует в реестре подписанные акты приёма-передачи имущества.
|
||||
*/
|
||||
export type IAct = Soviet.IAct
|
||||
export type INewAct = Soviet.INewact
|
||||
+2
-2
@@ -10,10 +10,10 @@ export const authorizations = [{ permissions: [Permissions.active], actor: Contr
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'batch'
|
||||
export const actionName = 'newbatch'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие фиксирует связанную группу подписанных документов, которые отправляются в совет на голосование.
|
||||
*/
|
||||
export type IBatch = Soviet.IBatch
|
||||
export type INewBatch = Soviet.INewbatch
|
||||
+2
-2
@@ -10,10 +10,10 @@ export const authorizations = [{ permissions: [Permissions.active], actor: Contr
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'decision'
|
||||
export const actionName = 'newdecision'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие фиксирует в реестре принятое решение совета.
|
||||
*/
|
||||
export type IDecision = Soviet.IDecision
|
||||
export type INewDecision = Soviet.INewdecision
|
||||
+2
-2
@@ -10,10 +10,10 @@ export const authorizations = [{ permissions: [Permissions.active], actor: Contr
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'program'
|
||||
export const actionName = 'newprogram'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие фиксирует созданную программу после создания и возвращает её идентификатор
|
||||
*/
|
||||
export type IProgram = Soviet.IProgram
|
||||
export type INewProgram = Soviet.INewprogram
|
||||
+2
-2
@@ -10,11 +10,11 @@ export const authorizations = [{ permissions: [Permissions.active], actor: Contr
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'statement'
|
||||
export const actionName = 'newresolved'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие фиксирует принятое заявление в реестре после принятия решения советом кооператива.
|
||||
* @private
|
||||
*/
|
||||
export type IStatement = Soviet.IStatement
|
||||
export type INewResolved = Soviet.INewresolved
|
||||
+2
-2
@@ -10,10 +10,10 @@ export const authorizations = [{ permissions: [Permissions.active], actor: Contr
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'draft'
|
||||
export const actionName = 'newsubmitted'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие фиксирует документ в реестре перед отправкой в совет.
|
||||
*/
|
||||
export type IDraft = Soviet.IDraft
|
||||
export type INewSubmitted = Soviet.INewsubmitted
|
||||
@@ -0,0 +1,70 @@
|
||||
import type { IEntrepreneurData, IIndividualData, IOrganizationData } from '../users'
|
||||
|
||||
export interface ITable {
|
||||
chain_id: string
|
||||
block_num: number
|
||||
block_id: string
|
||||
present: string
|
||||
code: string
|
||||
scope: string
|
||||
table: string
|
||||
primary_key: string
|
||||
value?: any
|
||||
}
|
||||
|
||||
export interface IAction {
|
||||
transaction_id: string
|
||||
account: string
|
||||
block_num: number
|
||||
block_id: string
|
||||
chain_id: string
|
||||
name: string
|
||||
receiver: string
|
||||
authorization: Array<{
|
||||
actor: string
|
||||
permission: string
|
||||
}>
|
||||
data: any
|
||||
action_ordinal: number
|
||||
global_sequence: string
|
||||
account_ram_deltas: Array<{
|
||||
account: string
|
||||
delta: number
|
||||
}>
|
||||
console: string
|
||||
receipt: {
|
||||
receiver: string
|
||||
act_digest: string
|
||||
global_sequence: string
|
||||
recv_sequence: string
|
||||
auth_sequence: Array<{
|
||||
account: string
|
||||
sequence: string
|
||||
}>
|
||||
code_sequence: number
|
||||
abi_sequence: number
|
||||
}
|
||||
creator_action_ordinal: number
|
||||
context_free: boolean
|
||||
elapsed: number
|
||||
}
|
||||
|
||||
export interface IExtendedTable extends ITable {
|
||||
|
||||
}
|
||||
|
||||
export interface IExtendedAction extends IAction {
|
||||
user: IIndividualData | IEntrepreneurData | IOrganizationData | null
|
||||
}
|
||||
|
||||
export interface IGetActions {
|
||||
results: IAction[]
|
||||
page: number
|
||||
limit: number
|
||||
}
|
||||
|
||||
export interface IGetTables {
|
||||
results: ITable[]
|
||||
page: number
|
||||
limit: number
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
import type { SovietContract } from '../../contracts'
|
||||
import type { IAction, IExtendedAction } from '../blockchain'
|
||||
|
||||
export type LangType = 'ru'
|
||||
|
||||
export interface IChainDocument {
|
||||
hash: string
|
||||
public_key: string
|
||||
signature: string
|
||||
meta: string
|
||||
}
|
||||
|
||||
// Определение базового интерфейса для мета-информации
|
||||
export interface IMetaDocument {
|
||||
code: string
|
||||
action: string
|
||||
title: string
|
||||
registry_id: number
|
||||
lang: LangType
|
||||
generator: string
|
||||
version: string
|
||||
coopname: string
|
||||
username: string
|
||||
created_at: string
|
||||
block_num: number
|
||||
timezone: string
|
||||
}
|
||||
|
||||
export interface IGeneratedDocument {
|
||||
full_title?: string
|
||||
html: string
|
||||
hash: string
|
||||
meta: IMetaDocument
|
||||
binary: Uint8Array
|
||||
}
|
||||
|
||||
export interface IComplexStatement {
|
||||
action: IExtendedAction
|
||||
document: IGeneratedDocument
|
||||
}
|
||||
|
||||
export interface IComplexDecision {
|
||||
action: IExtendedAction
|
||||
document: IGeneratedDocument
|
||||
votes_for: IExtendedAction[]
|
||||
votes_against: IExtendedAction[]
|
||||
}
|
||||
|
||||
export interface IComplexAct {
|
||||
action?: IExtendedAction
|
||||
document?: IGeneratedDocument
|
||||
}
|
||||
|
||||
export interface IComplexDocument {
|
||||
statement: IComplexStatement
|
||||
decision: IComplexDecision
|
||||
acts: IComplexAct[]
|
||||
}
|
||||
|
||||
export interface IGetComplexDocuments {
|
||||
results: IComplexDocument[]
|
||||
page: number
|
||||
limit: number
|
||||
}
|
||||
|
||||
export interface IAgenda {
|
||||
table: SovietContract.Tables.Decisions.IDecision
|
||||
action: IAction
|
||||
}
|
||||
|
||||
export interface IComplexAgenda extends IAgenda {
|
||||
documents: IComplexDocument
|
||||
}
|
||||
|
||||
/**
|
||||
* Общий интерфейс для генерации/регенерации документа
|
||||
*/
|
||||
export interface IGenerate extends Omit<Partial<IMetaDocument>, 'registry_id' | 'title'> {
|
||||
code: string
|
||||
action: string
|
||||
coopname: string
|
||||
username: string
|
||||
[key: string]: any
|
||||
}
|
||||
|
||||
export interface IGenerateJoinCoop extends IGenerate {
|
||||
signature: string
|
||||
skip_save: boolean
|
||||
}
|
||||
|
||||
export interface IGenerateJoinCoopDecision extends IGenerate {
|
||||
decision_id: number
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
export * as Documents from './documents'
|
||||
export * as Users from './users'
|
||||
export * as Blockchain from './blockchain'
|
||||
export * as Model from './model'
|
||||
@@ -0,0 +1,37 @@
|
||||
import type { SovietContract } from '../../contracts'
|
||||
import type { Details, IIndividualData, IOrganizationData } from '../users'
|
||||
|
||||
export interface ICooperativeData extends IOrganizationData {
|
||||
announce: string
|
||||
description: string
|
||||
is_branched: boolean
|
||||
is_enrolled: boolean
|
||||
registration: string
|
||||
initial: string
|
||||
minimum: string
|
||||
members: MembersData[]
|
||||
chairman: IIndividualData
|
||||
totalMembers: number
|
||||
}
|
||||
|
||||
export interface MembersData extends SovietContract.Interfaces.IBoardMember, IIndividualData {
|
||||
is_chairman: boolean
|
||||
}
|
||||
|
||||
export interface IAnnounce {
|
||||
phone: string
|
||||
email: string
|
||||
}
|
||||
|
||||
export interface IContacts {
|
||||
full_name: string
|
||||
full_address: string
|
||||
details: Details
|
||||
phone: string
|
||||
email: string
|
||||
chairman: {
|
||||
first_name: string
|
||||
last_name: string
|
||||
middle_name: string
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
export type Country = 'Russia' | 'Other'
|
||||
|
||||
export interface Details {
|
||||
inn: string
|
||||
ogrn: string
|
||||
}
|
||||
export type Currency = 'RUB' | 'Other'
|
||||
|
||||
export interface IBankAccount {
|
||||
currency: Currency
|
||||
card_number?: string // < номер карты
|
||||
bank_name: string // < наименование банка
|
||||
account_number: string // < номер счёта
|
||||
details: {
|
||||
bik: string // < бик
|
||||
corr: string // < корр счёт
|
||||
kpp: string // < кпп
|
||||
}
|
||||
}
|
||||
|
||||
export interface IIndividualData {
|
||||
username: string
|
||||
first_name: string
|
||||
last_name: string
|
||||
middle_name: string
|
||||
birthdate: string
|
||||
full_address: string
|
||||
phone: string
|
||||
email: string
|
||||
}
|
||||
|
||||
export interface IOrganizationData {
|
||||
username: string
|
||||
type: 'coop' | 'ooo' | 'oao' | 'zao' | 'pao' | 'ao'
|
||||
is_cooperative: boolean
|
||||
short_name: string
|
||||
full_name: string
|
||||
represented_by: {
|
||||
first_name: string
|
||||
last_name: string
|
||||
middle_name: string
|
||||
position: string
|
||||
based_on: string
|
||||
}
|
||||
country: Country
|
||||
city: string
|
||||
full_address: string
|
||||
phone: string
|
||||
email: string
|
||||
details: Details
|
||||
bank_account: IBankAccount
|
||||
}
|
||||
|
||||
export interface IEntrepreneurData {
|
||||
username: string
|
||||
first_name: string
|
||||
last_name: string
|
||||
middle_name: string
|
||||
birthdate: string
|
||||
phone: string
|
||||
email: string
|
||||
country: Country
|
||||
city: string
|
||||
full_address: string
|
||||
details: Details
|
||||
bank_account: IBankAccount
|
||||
}
|
||||
|
||||
export type IUserData = IIndividualData | IOrganizationData | IEntrepreneurData
|
||||
@@ -12,3 +12,4 @@
|
||||
|
||||
export * as _Common from './common'
|
||||
export * from './contracts'
|
||||
export * as Cooperative from './cooperative'
|
||||
|
||||
@@ -82,6 +82,8 @@ export interface IOrganization {
|
||||
announce: string
|
||||
description: string
|
||||
is_cooperative: boolean
|
||||
is_branched: boolean
|
||||
is_enrolled: boolean
|
||||
coop_type: IName
|
||||
registration: IAsset
|
||||
initial: IAsset
|
||||
|
||||
+45
-33
@@ -8,14 +8,6 @@ export type ISignature = string
|
||||
export type ITimePointSec = string
|
||||
export type IUint64 = number | string
|
||||
|
||||
export interface IAct {
|
||||
coopname: IName
|
||||
username: IName
|
||||
action: IName
|
||||
decision_id: IUint64
|
||||
document: IDocument
|
||||
}
|
||||
|
||||
export interface IAddbalance {
|
||||
coopname: IName
|
||||
username: IName
|
||||
@@ -91,12 +83,6 @@ export interface IAutosigner {
|
||||
decision_id: IUint64
|
||||
}
|
||||
|
||||
export interface IBatch {
|
||||
coopname: IName
|
||||
action: IName
|
||||
batch_id: IUint64
|
||||
}
|
||||
|
||||
export interface IBlockbal {
|
||||
coopname: IName
|
||||
username: IName
|
||||
@@ -187,11 +173,13 @@ export interface IDecision {
|
||||
username: IName
|
||||
type: IName
|
||||
batch_id: IUint64
|
||||
statement: IDocument
|
||||
votes_for: IName[]
|
||||
votes_against: IName[]
|
||||
validated: boolean
|
||||
approved: boolean
|
||||
authorized: boolean
|
||||
authorized_by: IName
|
||||
authorization: IDocument
|
||||
created_at: ITimePointSec
|
||||
}
|
||||
@@ -221,12 +209,6 @@ export interface IDocument {
|
||||
meta: string
|
||||
}
|
||||
|
||||
export interface IDraft {
|
||||
coopname: IName
|
||||
username: IName
|
||||
decision_id: IUint64
|
||||
}
|
||||
|
||||
export interface IEditaddress {
|
||||
coopname: IName
|
||||
chairman: IName
|
||||
@@ -277,6 +259,49 @@ export interface IJoincoops {
|
||||
notice: string
|
||||
}
|
||||
|
||||
export interface INewact {
|
||||
coopname: IName
|
||||
username: IName
|
||||
action: IName
|
||||
decision_id: IUint64
|
||||
document: IDocument
|
||||
}
|
||||
|
||||
export interface INewbatch {
|
||||
coopname: IName
|
||||
action: IName
|
||||
batch_id: IUint64
|
||||
}
|
||||
|
||||
export interface INewdecision {
|
||||
coopname: IName
|
||||
username: IName
|
||||
action: IName
|
||||
decision_id: IUint64
|
||||
document: IDocument
|
||||
}
|
||||
|
||||
export interface INewprogram {
|
||||
coopname: IName
|
||||
program_id: IUint64
|
||||
}
|
||||
|
||||
export interface INewresolved {
|
||||
coopname: IName
|
||||
username: IName
|
||||
action: IName
|
||||
decision_id: IUint64
|
||||
document: IDocument
|
||||
}
|
||||
|
||||
export interface INewsubmitted {
|
||||
coopname: IName
|
||||
username: IName
|
||||
action: IName
|
||||
decision_id: IUint64
|
||||
document: IDocument
|
||||
}
|
||||
|
||||
export interface IOnewallet {
|
||||
username: IName
|
||||
coopname: IName
|
||||
@@ -311,11 +336,6 @@ export interface IProgcomarket {
|
||||
fixed_membership_contribution: IAsset
|
||||
}
|
||||
|
||||
export interface IProgram {
|
||||
coopname: IName
|
||||
program_id: IUint64
|
||||
}
|
||||
|
||||
export interface IProgwallet {
|
||||
id: IUint64
|
||||
coopname: IName
|
||||
@@ -361,14 +381,6 @@ export interface IStaff {
|
||||
updated_at: ITimePointSec
|
||||
}
|
||||
|
||||
export interface IStatement {
|
||||
coopname: IName
|
||||
username: IName
|
||||
action: IName
|
||||
decision_id: IUint64
|
||||
document: IDocument
|
||||
}
|
||||
|
||||
export interface ISubbalance {
|
||||
coopname: IName
|
||||
username: IName
|
||||
|
||||
Reference in New Issue
Block a user