Compare commits

...

55 Commits

Author SHA1 Message Date
Alex Ant 8611c9bfb0 Автоматическое обновление - 2024-07-09 21:14:51 2024-07-09 21:14:58 +05:00
Alex Ant f725a21e19 Автоматическое обновление - 2024-07-09 20:45:27 2024-07-09 20:45:34 +05:00
Alex Ant 1cfb9824af Автоматическое обновление - 2024-07-09 20:44:52 2024-07-09 20:44:57 +05:00
Alex Ant 6628163ab2 Автоматическое обновление - 2024-07-09 20:36:57 2024-07-09 20:37:03 +05:00
Alex Ant bc5713626e lock 2024-07-09 19:42:02 +05:00
Alex Ant f23f09406b Автоматическое обновление - 2024-07-09 19:35:05 2024-07-09 19:35:13 +05:00
Alex Ant 3187c6026d Автоматическое обновление 2024-07-09 19:23:57 +05:00
Alex Ant fbf3e387b4 Автоматическое обновление 2024-07-09 19:18:49 +05:00
Alex Ant 2e11d991ee push 2024-07-09 18:58:45 +05:00
Alex Ant c7bc5a75cb new types 2024-07-09 18:38:36 +05:00
Alex Ant 267427a027 chore: release v1.0.3 2024-07-08 18:31:14 +05:00
Alex Ant 957d970ce3 chore: release v1.0.2 2024-07-08 13:44:44 +05:00
Alex Ant 4249339b92 chore: release v1.0.1 2024-07-08 11:33:43 +05:00
Alex Ant bb59279eb6 chore: release v1.0.0 2024-07-08 11:25:35 +05:00
Alex Ant 0f6b2d5cb7 release 2024-07-08 11:25:00 +05:00
Alex Ant 3b677628e5 update! 2024-07-08 11:22:30 +05:00
Alex Ant 89ae957020 update cooperative model 2024-07-08 11:08:15 +05:00
Alex Ant 370a9879a2 chore: release v0.5.29 2024-06-28 13:17:52 +05:00
Alex Ant 9738e9ef78 update types 2024-06-28 13:16:42 +05:00
Alex Ant 95a07a5ee5 chore: release v0.5.28 2024-06-28 12:19:46 +05:00
Alex Ant 178800d35f add username 2024-06-28 12:19:17 +05:00
Alex Ant 824704d359 chore: release v0.5.27 2024-06-28 12:01:30 +05:00
Alex Ant 257324387d cooperativeData interface 2024-06-28 12:01:06 +05:00
Alex Ant aeee4e566d chore: release v0.5.26 2024-06-28 11:44:38 +05:00
Alex Ant fa8e831358 update 2024-06-28 11:43:50 +05:00
Alex Ant e02a15a94c chore: release v0.5.25 2024-06-27 08:26:27 +05:00
Alex Ant 91b37f2efc admins page 2024-06-27 08:23:52 +05:00
Alex Ant a117ad0f41 chore: release v0.5.24 2024-06-25 15:29:19 +05:00
Alex Ant 80e7f6c3df update 2024-06-25 15:27:56 +05:00
Alex Ant 8bb02fd71b chore: release v0.5.23 2024-06-25 14:23:57 +05:00
Alex Ant 81a159ddfc update 2024-06-25 14:21:36 +05:00
Alex Ant 04ea8b74b9 chore: release v0.5.22 2024-06-20 18:03:44 +05:00
Alex Ant c0dbc41c6a update 2024-06-20 18:02:50 +05:00
Alex Ant df2a9021cf chore: release v0.5.21 2024-06-19 20:48:10 +05:00
Alex Ant 138510e751 update 2024-06-19 20:47:53 +05:00
Alex Ant 2647718fc2 chore: release v0.5.20 2024-06-15 15:56:30 +05:00
Alex Ant 35910cee3d next 2024-06-15 15:55:39 +05:00
Alex Ant 08da6158c5 chore: release v0.5.19 2024-06-10 17:24:50 +05:00
Alex Ant 86024438a7 registerUser 2024-06-10 17:24:26 +05:00
Alex Ant 28f2946dc2 docs-publish 2024-06-01 16:01:32 +05:00
Alex Ant c0df3f3e1a chore: release v0.5.18 2024-06-01 12:52:54 +05:00
Alex Ant 154505aa1f update 2024-06-01 12:51:16 +05:00
Alex Ant 34792c3942 chore: release v0.5.17 2024-06-01 12:07:43 +05:00
Alex Ant 885f49922a update 2024-06-01 12:06:28 +05:00
Alex Ant ff9f00f893 update 2024-06-01 11:18:41 +05:00
Alex Ant de10df2237 chore: release v0.5.16 2024-06-01 11:07:27 +05:00
Alex Ant 74fc3eacfa update 2024-06-01 11:07:01 +05:00
Alex Ant 4c7dfb1cd5 chore: release v0.5.15 2024-05-28 18:58:11 +05:00
Alex Ant bc13017122 update 2024-05-28 18:57:43 +05:00
Alex Ant dc4d0002b7 chore: release v0.5.14 2024-05-28 15:46:11 +05:00
Alex Ant 852579429e fix 2024-05-28 15:45:34 +05:00
Alex Ant 13a28f653b chore: release v0.5.13 2024-05-28 15:39:30 +05:00
Alex Ant 74216dfd94 decision -> newdecision, etc 2024-05-28 15:38:52 +05:00
Alex Ant b084ac7e01 chore: release v0.5.12 2024-05-22 19:20:20 +05:00
Alex Ant 90d37db911 update type 2024-05-22 19:19:46 +05:00
26 changed files with 5344 additions and 3827 deletions
+23 -23
View File
@@ -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
+2 -2
View File
@@ -1,2 +1,2 @@
ignore-workspace-root-check=true
shell-emulator=true
# ignore-workspace-root-check=true
# shell-emulator=true
+103 -9
View File
@@ -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
View File
@@ -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",
+4857 -3726
View File
File diff suppressed because it is too large Load Diff
-5
View File
@@ -1,5 +0,0 @@
packages:
- playground
- docs
- packages/*
- examples/*
+1 -1
View File
@@ -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'
+1 -1
View File
@@ -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 },
+5
View File
@@ -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'
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
+70
View File
@@ -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
}
+93
View File
@@ -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
}
+4
View File
@@ -0,0 +1,4 @@
export * as Documents from './documents'
export * as Users from './users'
export * as Blockchain from './blockchain'
export * as Model from './model'
+37
View File
@@ -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
}
}
+69
View File
@@ -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
+1
View File
@@ -12,3 +12,4 @@
export * as _Common from './common'
export * from './contracts'
export * as Cooperative from './cooperative'
+2
View File
@@ -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
View File
@@ -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