Compare commits
86 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 | |||
| c2a9def867 | |||
| 663c483cd5 | |||
| 14c44e7874 | |||
| 46d0c98487 | |||
| a35f7b7f89 | |||
| f20fef12ac | |||
| 1531f32af4 | |||
| d49c97b6f2 | |||
| ce930e611a | |||
| 51eb5ae5a4 | |||
| 36656e920c | |||
| 0fff6207d7 | |||
| 4e7030a2dd | |||
| b7889d9f42 | |||
| 9aae4e0c26 | |||
| 759c43401f | |||
| 060ff2ed0f | |||
| cfb85ea2c8 | |||
| 33a1158747 | |||
| 086646b5c4 | |||
| 88b6c743fa | |||
| b2bff2bbcb | |||
| 9204f8945f | |||
| dba0892b85 | |||
| 997781dc97 | |||
| 01b48fb559 | |||
| 154cf87308 | |||
| adc4a6862f | |||
| c13b0f3b61 | |||
| 2df3389123 | |||
| c42f6a09bc |
+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 -->
|
||||
|
||||
@@ -29,7 +123,7 @@ _contract - собственное имя аккаунта контракта д
|
||||
[npm-downloads-href]: https://npmjs.com/package/cooptypes
|
||||
[bundle-src]: https://img.shields.io/bundlephobia/minzip/cooptypes?style=flat&colorA=080f12&colorB=1fa669&label=minzip
|
||||
[bundle-href]: https://bundlephobia.com/result?p=cooptypes
|
||||
[license-src]: https://img.shields.io/github/license/intellect-run/cooptypes.svg?style=flat&colorA=080f12&colorB=1fa669
|
||||
[license-href]: https://github.com/intellect-run/cooptypes/blob/main/LICENSE
|
||||
[license-src]: https://img.shields.io/github/license/copenomics/cooptypes.svg?style=flat&colorA=080f12&colorB=1fa669
|
||||
[license-href]: https://github.com/copenomics/cooptypes/blob/main/LICENSE
|
||||
[jsdocs-src]: https://img.shields.io/badge/jsdocs-reference-080f12?style=flat&colorA=080f12&colorB=1fa669
|
||||
[jsdocs-href]: https://www.jsdocs.io/package/cooptypes
|
||||
|
||||
+6
-2
@@ -1,7 +1,11 @@
|
||||
// @ts-check
|
||||
import antfu from '@antfu/eslint-config'
|
||||
|
||||
// @ts-check
|
||||
|
||||
export default antfu(
|
||||
{
|
||||
typescript: true,
|
||||
},
|
||||
{
|
||||
ignores: [
|
||||
'docs/**/*',
|
||||
@@ -9,7 +13,7 @@ export default antfu(
|
||||
},
|
||||
{
|
||||
rules: {
|
||||
// overrides
|
||||
'jsdoc/empty-tags': 'off', // Добавьте это правило игнора
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
+16
-15
@@ -1,17 +1,15 @@
|
||||
{
|
||||
"name": "cooptypes",
|
||||
"type": "module",
|
||||
"version": "0.2.0",
|
||||
"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/intellect-run/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,22 +33,28 @@
|
||||
"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"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@antfu/eslint-config": "^2.16.0",
|
||||
"@antfu/eslint-config": "^2.16.1",
|
||||
"@antfu/ni": "^0.21.12",
|
||||
"@antfu/utils": "^0.7.7",
|
||||
"@types/node": "^20.12.7",
|
||||
"@types/express": "^4.17.21",
|
||||
"@types/node": "^20.12.8",
|
||||
"better-docs": "^2.7.3",
|
||||
"bumpp": "^9.4.0",
|
||||
"bumpp": "^9.4.1",
|
||||
"eslint": "^9.1.1",
|
||||
"esno": "^4.7.0",
|
||||
"jsdoc": "^4.0.2",
|
||||
"gh-pages": "^6.1.1",
|
||||
"jsdoc": "^4.0.3",
|
||||
"lint-staged": "^15.2.2",
|
||||
"pnpm": "^9.0.6",
|
||||
"rimraf": "^5.0.5",
|
||||
@@ -62,8 +63,8 @@
|
||||
"typedoc-plugin-inline-sources": "^1.0.2",
|
||||
"typescript": "^5.4.5",
|
||||
"unbuild": "^2.0.0",
|
||||
"vite": "^5.2.10",
|
||||
"vitest": "^1.5.2"
|
||||
"vite": "^5.2.11",
|
||||
"vitest": "^1.5.3"
|
||||
},
|
||||
"simple-git-hooks": {
|
||||
"pre-commit": "pnpm lint-staged"
|
||||
|
||||
Generated
+4872
-3767
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
packages:
|
||||
- playground
|
||||
- docs
|
||||
- packages/*
|
||||
- examples/*
|
||||
@@ -13,6 +13,11 @@ export const _coopname = '_coopname'
|
||||
*/
|
||||
export const _chairman = '_chairman'
|
||||
|
||||
/**
|
||||
* Обобщенное имя аккаунта члена совета кооператива, которое должно быть заменено на реальное.
|
||||
*/
|
||||
export const _member = '_member'
|
||||
|
||||
/**
|
||||
* Обобщенное имя аккаунта администратора кооператива, которое должно быть заменено на реальное.
|
||||
*/
|
||||
|
||||
@@ -37,3 +37,13 @@ export const _token = {
|
||||
production: 'eosio.token',
|
||||
testnet: 'eosio.token',
|
||||
} as const
|
||||
|
||||
export const _msig = {
|
||||
production: 'eosio.msig',
|
||||
testnet: 'eosio.msig',
|
||||
} as const
|
||||
|
||||
export const _wrap = {
|
||||
production: 'eosio.wrap',
|
||||
testnet: 'eosio.wrap',
|
||||
} as const
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export * as createTranslation from './createTranslation'
|
||||
export * as createDraft from './createDraft'
|
||||
export * as deleteDraft from './deleteDraft'
|
||||
export * as editTranslation from './editTranslation'
|
||||
export * as CreateTranslation from './createTranslation'
|
||||
export * as CreateDraft from './createDraft'
|
||||
export * as DeleteDraft from './deleteDraft'
|
||||
export * as EditTranslation from './editTranslation'
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
|
||||
@@ -15,4 +15,4 @@ export const scope = Actors._contract
|
||||
* @interface
|
||||
* Таблица содержит переводы черновиков документов.
|
||||
*/
|
||||
export type IDrafts = Draft.IDrafts
|
||||
export type IDraft = Draft.IOnedraft
|
||||
|
||||
@@ -15,4 +15,4 @@ export const scope = Actors._contract
|
||||
* @interface
|
||||
* Таблица содержит переводы черновиков документов.
|
||||
*/
|
||||
export type ITranslations = Draft.ITranslations
|
||||
export type ITranslation = Draft.ITranslation
|
||||
|
||||
@@ -2,85 +2,84 @@
|
||||
* @private
|
||||
* Вызывается контрактом автоматически по ходу выполнения логики для прозрачного добавления фонда накопления.
|
||||
*/
|
||||
export * as addAccumulation from './addAccumulation'
|
||||
export * as AddAccumulation from './addAccumulation'
|
||||
|
||||
/**
|
||||
* @private
|
||||
* Вызывается контрактом автоматически по ходу выполнения логики для прозрачного списания фонда накопления.
|
||||
*/
|
||||
export * as subAccumulation from './subAccumulation'
|
||||
export * as SubAccumulation from './subAccumulation'
|
||||
|
||||
/**
|
||||
* @private
|
||||
* Вызывается контрактом автоматически по ходу выполнения логики для прозрачного увеличения паевого фонда.
|
||||
*/
|
||||
export * as addCirculation from './addCirculation'
|
||||
export * as AddCirculation from './addCirculation'
|
||||
|
||||
/**
|
||||
* @private
|
||||
* Вызывается контрактом автоматически по ходу выполнения логики для прозрачного списания членских взносов по фонду.
|
||||
*/
|
||||
export * as addExpense from './addExpense'
|
||||
export * as AddExpense from './addExpense'
|
||||
|
||||
/**
|
||||
* @private
|
||||
* Вызывается контрактом _soviet автоматически по ходу выполнения логики для установки решения совета кооператива о использовании фонда.
|
||||
*/
|
||||
export * as authorizeWithdraw from './authorizeWithdraw'
|
||||
export * as AuthorizeWithdraw from './authorizeWithdraw'
|
||||
|
||||
/**
|
||||
* Вызывается администратором для подтверждения о совершении вывода.
|
||||
*/
|
||||
export * as completeWithdraw from './completeWithdraw'
|
||||
export * as CompleteWithdraw from './completeWithdraw'
|
||||
|
||||
/**
|
||||
* Вызывается контрактом автоматически по ходу выполнения логики для возврата идентификатора нового фонда после его создания.
|
||||
* @private
|
||||
*/
|
||||
export * as newFund from './newFund'
|
||||
export * as NewFund from './newFund'
|
||||
|
||||
/**
|
||||
* Вызывается председателем для создания фонда
|
||||
*/
|
||||
export * as createFund from './createFund'
|
||||
export * as CreateFund from './createFund'
|
||||
|
||||
/**
|
||||
* Вызывается председателем для удаления фонда
|
||||
*/
|
||||
export * as deleteFund from './deleteFund'
|
||||
export * as DeleteFund from './deleteFund'
|
||||
|
||||
/**
|
||||
* Вызывается председателем для редактирования фонда
|
||||
*/
|
||||
export * as editFund from './editFund'
|
||||
export * as EditFund from './editFund'
|
||||
|
||||
/**
|
||||
* Действие используется для создания вывода средств из фонда накопления или по фонду списания, которое
|
||||
* затем требует решения совета исполнения с помощью действия {@link authorizeWithdraw | авторизации} и последующего подтверждения исполнения с помощью действия {@link completeWithdraw | подтверждения}.
|
||||
* Действие используется для создания вывода средств из фонда накопления или по фонду списания.
|
||||
*/
|
||||
export * as createWithdraw from './createWithdraw'
|
||||
export * as CreateWithdraw from './createWithdraw'
|
||||
|
||||
/**
|
||||
* Метод используется при создании цифрового кооператива для инициализации его фондов с нулевыми значениями.
|
||||
* @private
|
||||
*/
|
||||
export * as init from './init'
|
||||
export * as Init from './init'
|
||||
|
||||
/**
|
||||
* Действие вызывается контрактом в процессе исполнения для возврата идентификатора нового списания или вывода.
|
||||
* @private
|
||||
*/
|
||||
export * as newWithdraw from './newWithdraw'
|
||||
export * as NewWithdraw from './newWithdraw'
|
||||
|
||||
/**
|
||||
* Действие для распределения членского взноса по фондам накопления согласно принятым положениям
|
||||
* и сохранения остатка после распределения в кошельке для дальнейшего списания по статьям.
|
||||
* @private
|
||||
*/
|
||||
export * as spreadAmount from './spreadAmount'
|
||||
export * as SpreadAmount from './spreadAmount'
|
||||
|
||||
/**
|
||||
* Метод списания средств из паевого фонда вызывается контрактом шлюза при выполнении поручения на вывод средств с кошелька.
|
||||
* @private
|
||||
*/
|
||||
export * as subCirculation from './subCirculation'
|
||||
export * as SubCirculation from './subCirculation'
|
||||
|
||||
@@ -15,4 +15,4 @@ export const scope = ContractNames._fund
|
||||
* @interface
|
||||
* Таблица содержит переводы черновиков документов.
|
||||
*/
|
||||
export type IAccumulatedFunds = Fund.IAccfunds
|
||||
export type IAccumulatedFund = Fund.IAccfund
|
||||
|
||||
@@ -14,4 +14,4 @@ export const scope = ContractNames._fund
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type IExpensedFunds = Fund.IExpfunds
|
||||
export type IExpensedFund = Fund.IExpfund
|
||||
|
||||
@@ -14,4 +14,4 @@ export const scope = ContractNames._fund
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type IFundWithdraws = Fund.IFwithdraws
|
||||
export type IFundWithdraw = Fund.IFwithdraw
|
||||
|
||||
@@ -1,44 +1,44 @@
|
||||
/**
|
||||
* Вызывается техническим аккаунтом кооператива для создания объекта депозита со статусом платежа.
|
||||
*/
|
||||
export * as createDeposit from './createDeposit'
|
||||
export * as CreateDeposit from './createDeposit'
|
||||
|
||||
/*
|
||||
* Действие используется для установки статуса депозита в 'completed' и обновления его заметки.
|
||||
* Это действие также производит выпуск токенов учёта на лицевой счёт пользователя, основываясь на данных депозита.
|
||||
*/
|
||||
export * as completeDeposit from './completeDeposit'
|
||||
export * as CompleteDeposit from './completeDeposit'
|
||||
|
||||
/**
|
||||
* Действие `dpfail` используется для обозначения неудачи в обработке депозита, устанавливая его статус в 'failed' и обновляя заметку.
|
||||
*/
|
||||
export * as failDeposit from './failDeposit'
|
||||
export * as FailDeposit from './failDeposit'
|
||||
|
||||
/**
|
||||
* Действие вызывается контрактом автоматически по ходу выполнения логики для возврата идентификатора нового депозита.
|
||||
* @private
|
||||
*/
|
||||
export * as newDepositId from './newDepositId'
|
||||
export * as NewDepositId from './newDepositId'
|
||||
|
||||
/**
|
||||
* Действие вызывается контрактом автоматически по ходу выполнения логики для возврата идентификатора нового депозита.
|
||||
* @private
|
||||
*/
|
||||
export * as newWithdrawId from './newWithdrawId'
|
||||
export * as NewWithdrawId from './newWithdrawId'
|
||||
|
||||
/**
|
||||
* Действие вызывается для создания заявки на возврат паевого взноса пользователем.
|
||||
*/
|
||||
export * as createWithdraw from './createWithdraw'
|
||||
export * as CreateWithdraw from './createWithdraw'
|
||||
|
||||
/**
|
||||
*
|
||||
* Действие вызывается администратором для подтверждения платежа по возврату паевого взноса пользователю.
|
||||
*/
|
||||
export * as completeWithdraw from './completeWithdraw'
|
||||
export * as CompleteWithdraw from './completeWithdraw'
|
||||
|
||||
/**
|
||||
*
|
||||
* Действие вызывается администратором для информировании пользователя о возникновании ошибки в процессе возврата паевого взноса.
|
||||
*/
|
||||
export * as failWithdraw from './failWithdraw'
|
||||
export * as FailWithdraw from './failWithdraw'
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
export * as Deposits from './deposits'
|
||||
export * as Withdrws from './withdraws'
|
||||
export * as Withdraws from './withdraws'
|
||||
|
||||
@@ -22,3 +22,34 @@ export * as RegistratorContract from './registrator'
|
||||
* Смарт-контракт управления системными токенами.
|
||||
*/
|
||||
export * as TokenContract from './token'
|
||||
|
||||
/**
|
||||
* Смарт-контракт советов кооперативов.
|
||||
*/
|
||||
export * as SovietContract from './soviet'
|
||||
|
||||
/**
|
||||
* Смарт-контракт маркетплейса кооператива.
|
||||
*/
|
||||
export * as MarketContract from './marketplace'
|
||||
|
||||
/**
|
||||
* Смарт-контракт для мульти-подписей транзакций.
|
||||
*/
|
||||
export * as MsigContract from './msig'
|
||||
|
||||
/**
|
||||
* Контракт eosio.wrap позволяет блок продюсерам обходить проверки авторизации или выполнять привилегированные действия с одобрением 15 из 21 продюсера, тем самым упрощает действия блок продюсеров суперпользователей. Это также упрощает аудит этих действий.
|
||||
*
|
||||
* Данный контракт не предоставляет новых полномочий или привилегий, которые уже не существуют в блокчейнах на базе EOSIO. В таких блокчейнах 15 из 21 блок продюсера могут изменить разрешения аккаунта или модифицировать код контракта аккаунта, если решат, что это полезно для блокчейна и сообщества. Однако текущий метод не прозрачен и оставляет нежелательные последствия на определенных системных аккаунтах, поэтому контракт eosio.wrap решает эту проблему, предоставляя более простой метод выполнения важных управленческих действий.
|
||||
*
|
||||
* Единственное действие, реализуемое системным контрактом eosio.wrap, - это действие exec. Это действие позволяет выполнить транзакцию, которая передается в метод exec в виде упакованной транзакции в формате JSON через параметр 'trx' и аккаунт executer, который выполняет транзакцию. Аккаунт executer также будет использоваться для оплаты затрат RAM и CPU, необходимых для выполнения транзакции.
|
||||
*/
|
||||
export * as WrapContract from './wrap'
|
||||
|
||||
/**
|
||||
* Системный контракт предоставляет основную функциональность для управления ресурсами, правами доступа,
|
||||
* параметрами блокчейна, созданием аккаунтов и прочими системными задачами, необходимыми
|
||||
* для работы и поддержания блокчейн-сети.
|
||||
*/
|
||||
export * as SystemContract from './system'
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
import * as Permissions from '../../../common/permissions'
|
||||
import type * as Marketplace from '../../../interfaces/marketplace'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
* Требуется авторизация {@link Actors._username | аккаунта пользователя}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._username }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'accept'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type IAcceptRequest = Marketplace.IAccept
|
||||
@@ -0,0 +1,19 @@
|
||||
import * as Permissions from '../../../common/permissions'
|
||||
import * as ContractNames from '../../../common/names'
|
||||
import type * as Marketplace from '../../../interfaces/marketplace'
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
* Требуется авторизация {@link ContractNames._soviet | аккаунта контракта совета}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: ContractNames._soviet }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'authorize'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type IAuthorize = Marketplace.IAuthorize
|
||||
@@ -0,0 +1,19 @@
|
||||
import * as Permissions from '../../../common/permissions'
|
||||
import type * as Marketplace from '../../../interfaces/marketplace'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
* Требуется авторизация {@link Actors._username | аккаунта пользователя}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._username }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'cancel'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type ICancelRequest = Marketplace.ICancel
|
||||
@@ -0,0 +1,19 @@
|
||||
import * as Permissions from '../../../common/permissions'
|
||||
import type * as Marketplace from '../../../interfaces/marketplace'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
* Требуется авторизация {@link Actors._username | аккаунта пользователя}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._username }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'complete'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type ICompleteRequest = Marketplace.IComplete
|
||||
@@ -0,0 +1,19 @@
|
||||
import * as Permissions from '../../../common/permissions'
|
||||
import type * as Marketplace from '../../../interfaces/marketplace'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
* Требуется авторизация {@link Actors._chairman | аккаунта председателя}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._chairman }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'recievecnfrm'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type IConfirmRecieve = Marketplace.IRecievecnfrm
|
||||
@@ -0,0 +1,19 @@
|
||||
import * as Permissions from '../../../common/permissions'
|
||||
import type * as Marketplace from '../../../interfaces/marketplace'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
* Требуется авторизация {@link Actors._chairman | аккаунта председателя}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._chairman }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'supplycnfrm'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type IConfirmSupply = Marketplace.ISupplycnfrm
|
||||
@@ -0,0 +1,19 @@
|
||||
import * as Permissions from '../../../common/permissions'
|
||||
import type * as Marketplace from '../../../interfaces/marketplace'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
* Требуется авторизация {@link Actors._username | аккаунта пользователя}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._username }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'offer'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type ICreateOffer = Marketplace.IOffer
|
||||
@@ -0,0 +1,19 @@
|
||||
import * as Permissions from '../../../common/permissions'
|
||||
import type * as Marketplace from '../../../interfaces/marketplace'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
* Требуется авторизация {@link Actors._username | аккаунта пользователя}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._username }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'order'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type ICreateOrder = Marketplace.IOrder
|
||||
@@ -0,0 +1,19 @@
|
||||
import * as Permissions from '../../../common/permissions'
|
||||
import type * as Marketplace from '../../../interfaces/marketplace'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
* Требуется авторизация {@link Actors._username | аккаунта пользователя}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._username }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'decline'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type IDeclineRequest = Marketplace.IDecline
|
||||
@@ -0,0 +1,19 @@
|
||||
import * as Permissions from '../../../common/permissions'
|
||||
import type * as Marketplace from '../../../interfaces/marketplace'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
* Требуется авторизация {@link Actors._chairman | аккаунта председателя}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._chairman }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'delivered'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type IDeliverOnRequest = Marketplace.IDelivered
|
||||
@@ -0,0 +1,95 @@
|
||||
/**
|
||||
* Действие для подтверждения готовности выполнить поставку по входящей заявке.
|
||||
*/
|
||||
export * as AcceptRequest from './acceptRequest'
|
||||
|
||||
/**
|
||||
* Действие вызывается автоматически после принятия решения советом для оповещения смарт-контракта маркетплейса.
|
||||
* @private
|
||||
*/
|
||||
export * as Authorize from './authorize'
|
||||
|
||||
/**
|
||||
* Действие для отмены заявки на поставку.
|
||||
*/
|
||||
export * as CancelRequest from './cancelRequest'
|
||||
|
||||
/**
|
||||
* Действие для успешного завершения цикла поставки по заявке и разблокирования средств поставщика в кошельке.
|
||||
*/
|
||||
export * as CompleteRequest from './completeRequest'
|
||||
|
||||
/**
|
||||
* Действие для подтверждения председателем получения поставки с подписью на акте приёма-передачи.
|
||||
*/
|
||||
export * as ConfirmRecieve from './confirmRecieve'
|
||||
|
||||
/**
|
||||
* Действие для подтверждения председателем совершения поставки с подписью на акте приёма-передачи.
|
||||
*/
|
||||
export * as ConfirmSupply from './confirmSupply'
|
||||
|
||||
/**
|
||||
* Действие для создания заявки на поставку имущества.
|
||||
*/
|
||||
export * as CreateOffer from './createOffer'
|
||||
|
||||
/**
|
||||
* Действие для создания заявки на получение имущества.
|
||||
*/
|
||||
export * as CreateOrder from './createOrder'
|
||||
|
||||
/**
|
||||
* Действие для отклонения готовности выполнить поставку по входящей заявке.
|
||||
*/
|
||||
export * as DeclineRequest from './declineRequest'
|
||||
|
||||
/**
|
||||
* Действие для подтверждения готовности выполнить поставку по входящей заявке.
|
||||
*/
|
||||
export * as DeliverOnRequest from './deliverOnRequest'
|
||||
|
||||
/**
|
||||
* Действие для модерации заявки на поставку.
|
||||
*/
|
||||
export * as ModerateRequest from './moderateRequest'
|
||||
|
||||
/**
|
||||
* Приватное действие для возврата нового идентификатора заявки на поставку после создания заявки.
|
||||
*/
|
||||
export * as NewRequestId from './newRequestId'
|
||||
|
||||
/**
|
||||
* Действие для открытия спора по заявке на поставку.
|
||||
*/
|
||||
export * as OpenDispute from './openDispute'
|
||||
|
||||
/**
|
||||
* Действие для отказа в прохождении модерации с указанием причины.
|
||||
*/
|
||||
export * as ProhibitRequest from './prohibitRequest'
|
||||
|
||||
/**
|
||||
* Действие для публикации заявки на поставку.
|
||||
*/
|
||||
export * as PublishRequest from './publishRequest'
|
||||
|
||||
/**
|
||||
* Действие для подтверждения получения имущества пользователем из кооператива с подписью акта приёма-передачи.
|
||||
*/
|
||||
export * as RecieveOnRequest from './recieveOnRequest'
|
||||
|
||||
/**
|
||||
* Действие для подтверждения поставки имущества пользователем в кооператив с подписью акта приёма-передачи.
|
||||
*/
|
||||
export * as SupplyOnRequest from './supplyOnRequest'
|
||||
|
||||
/**
|
||||
* Действие для снятия заявки на поставку с публикации.
|
||||
*/
|
||||
export * as UnpublishRequest from './unpublishRequest'
|
||||
|
||||
/**
|
||||
* Действие для обновления заявки на поставку.
|
||||
*/
|
||||
export * as UpdateRequests from './updateRequest'
|
||||
@@ -0,0 +1,19 @@
|
||||
import * as Permissions from '../../../common/permissions'
|
||||
import type * as Marketplace from '../../../interfaces/marketplace'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
* Требуется авторизация {@link Actors._admin | аккаунта администратора}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active, Permissions.special], actor: Actors._admin }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'moderate'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type IModerateRequest = Marketplace.IModerate
|
||||
@@ -0,0 +1,20 @@
|
||||
import * as Permissions from '../../../common/permissions'
|
||||
import * as ContractNames from '../../../common/names'
|
||||
import type * as Marketplace from '../../../interfaces/marketplace'
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
* Требуется авторизация {@link ContractNames._marketplace | аккаунта контракта маркетплейса}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: ContractNames._marketplace }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'newid'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* @private
|
||||
*/
|
||||
export type INewRequestId = Marketplace.INewid
|
||||
@@ -0,0 +1,19 @@
|
||||
import * as Permissions from '../../../common/permissions'
|
||||
import type * as Marketplace from '../../../interfaces/marketplace'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
* Требуется авторизация {@link Actors._username | аккаунта пользователя}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._username }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'dispute'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type IOpenDispute = Marketplace.IDispute
|
||||
@@ -0,0 +1,19 @@
|
||||
import * as Permissions from '../../../common/permissions'
|
||||
import type * as Marketplace from '../../../interfaces/marketplace'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
* Требуется авторизация {@link Actors._admin | аккаунта администратора}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active, Permissions.special], actor: Actors._admin }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'prohibit'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type IProhibitRequest = Marketplace.IProhibit
|
||||
@@ -0,0 +1,19 @@
|
||||
import * as Permissions from '../../../common/permissions'
|
||||
import type * as Marketplace from '../../../interfaces/marketplace'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
* Требуется авторизация {@link Actors._username | аккаунта пользователя}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._username }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'publish'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type IPublishRequest = Marketplace.IPublish
|
||||
@@ -0,0 +1,19 @@
|
||||
import * as Permissions from '../../../common/permissions'
|
||||
import type * as Marketplace from '../../../interfaces/marketplace'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
* Требуется авторизация {@link Actors._username | аккаунта пользователя}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._username }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'recieve'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type IRecieveOnRequest = Marketplace.IRecieve
|
||||
@@ -0,0 +1,19 @@
|
||||
import * as Permissions from '../../../common/permissions'
|
||||
import type * as Marketplace from '../../../interfaces/marketplace'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
* Требуется авторизация {@link Actors._username | аккаунта пользователя}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._username }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'supply'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type ISupplyOnRequest = Marketplace.ISupply
|
||||
@@ -0,0 +1,19 @@
|
||||
import * as Permissions from '../../../common/permissions'
|
||||
import type * as Marketplace from '../../../interfaces/marketplace'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
* Требуется авторизация {@link Actors._username | аккаунта пользователя}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._username }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'unpublish'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type IUnpublishRequest = Marketplace.IUnpublish
|
||||
@@ -0,0 +1,19 @@
|
||||
import * as Permissions from '../../../common/permissions'
|
||||
import type * as Marketplace from '../../../interfaces/marketplace'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
* Требуется авторизация {@link Actors._username | аккаунта пользователя}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._username }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'update'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type IUpdateRequest = Marketplace.IUpdate
|
||||
@@ -0,0 +1,11 @@
|
||||
import * as contractNames from '../../common/names'
|
||||
|
||||
export * as Actions from './actions'
|
||||
export * as Tables from './tables'
|
||||
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
export * as Interfaces from '../../interfaces/marketplace'
|
||||
|
||||
export const contractName = contractNames._marketplace
|
||||
@@ -0,0 +1,4 @@
|
||||
/**
|
||||
* Таблица с заявками на поставки
|
||||
*/
|
||||
export * as Requests from './requests'
|
||||
@@ -0,0 +1,21 @@
|
||||
import type * as Marketplace from '../../../interfaces/marketplace'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя таблицы
|
||||
*/
|
||||
export const tableName = 'requests'
|
||||
|
||||
/**
|
||||
* Таблица хранится в {@link Actors._coopname | области памяти кооператива}.
|
||||
*/
|
||||
/**
|
||||
* Этот файл содержит интерфейс для таблицы "deposits".
|
||||
*/
|
||||
export const scope = Actors._coopname
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Таблица содержит переводы черновиков документов.
|
||||
*/
|
||||
export type IRequest = Marketplace.IRequest
|
||||
@@ -0,0 +1,23 @@
|
||||
import * as Permissions from '../../../common/permissions'
|
||||
import type * as Msig from '../../../interfaces/msig'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
* Требуется авторизация {@link Actors._username | аккаунта пользователя}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._username }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'approve'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* @prop proposer - имя аккаунта, предложившего транзакцию.
|
||||
* @prop proposal_name - имя утверждаемого предложения.
|
||||
* @prop level - уровень разрешения для утверждения.
|
||||
* @prop proposal_hash - хэш транзакции для дополнительной проверки.
|
||||
*/
|
||||
export type IApproveProposal = Msig.IApprove
|
||||
@@ -0,0 +1,22 @@
|
||||
import * as Permissions from '../../../common/permissions'
|
||||
import type * as Msig from '../../../interfaces/msig'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
* Требуется авторизация {@link Actors._username | аккаунта пользователя}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._username }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'cancel'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* @prop proposer - имя аккаунта, предложившего транзакцию.
|
||||
* @prop proposal_name - имя отменяемого предложения.
|
||||
* @prop canceler - имя аккаунта, отменяющего предложение (должен быть либо `proposer`, либо после истечения срока).
|
||||
*/
|
||||
export type ICancelProposal = Msig.ICancel
|
||||
@@ -0,0 +1,22 @@
|
||||
import * as Permissions from '../../../common/permissions'
|
||||
import type * as Msig from '../../../interfaces/msig'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
* Требуется авторизация {@link Actors._username | аккаунта пользователя}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._username }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'exec'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* @prop proposer - имя аккаунта, предложившего транзакцию.
|
||||
* @prop proposal_name - имя исполняемого предложения.
|
||||
* @prop executer - имя аккаунта, исполняющего транзакцию.
|
||||
*/
|
||||
export type IExecProposal = Msig.IExec
|
||||
@@ -0,0 +1,41 @@
|
||||
/**
|
||||
* Создает предложение мультиподписи `proposal_name` от имени `proposer`, которое требует одобрения от аккаунтов,
|
||||
* указанных в `requested`. Предложение содержит транзакцию `trx`, которая выполнится, если получит все нужные подписи.
|
||||
* Если такое предложение уже существует, оно будет заменено новым.
|
||||
*/
|
||||
export * as ProposeTransaction from './proposeTransaction'
|
||||
|
||||
/**
|
||||
* Утверждает предложение `proposal_name`, созданное аккаунтом `proposer`, используя разрешение `level`.
|
||||
* При успехе переносят разрешение `level` из списка ожидающих в список предоставленных одобрений предложения.
|
||||
* Расходы на изменение состояния хранилища берет на себя `proposer`.
|
||||
*/
|
||||
export * as ApproveProposal from './approveProposal'
|
||||
|
||||
/**
|
||||
* Отзывает утверждение транзакцию под названием `proposal_name`, созданную аккаунтом `proposer`, используя разрешение `level`.
|
||||
* Перемещает разрешение `level` обратно в список ожидающих одобрения.
|
||||
*/
|
||||
export * as UnapproveProposal from './unapproveProposal'
|
||||
|
||||
/**
|
||||
* Отменяет предложение `proposal_name`, созданное аккаунтом `proposer`. Может отменить только создатель предложения
|
||||
* `proposer` или другой аккаунт после истечения срока допустимости предложения.
|
||||
*/
|
||||
export * as CancelProposal from './cancelProposal'
|
||||
|
||||
/**
|
||||
* Исполняет предложение мультиподписи `proposal_name`, созданное `proposer`, аккаунтом `executer`.
|
||||
* Условия выполнения: `executer` должен иметь авторизацию, предложение должно существовать, получены все необходимые утверждения,
|
||||
* срок допустимости предложения не истек, и ни одно из утвердивших разрешений не инвалидировано.
|
||||
* Предложение исполняется как отложенная транзакция и удаляется из таблицы.
|
||||
*/
|
||||
export * as ExecProposal from './execProposal'
|
||||
|
||||
/**
|
||||
* Действие, которое делает недействительными все неподтвержденные предложения мультиподписи для аккаунта `account`.
|
||||
* После его вызова любые подписи от `account` для текущих и будущих предложений игнорируются, пока аккаунт снова не участвует в мультиподписи.
|
||||
* Используется в случае, если ключи к аккаунту были скомпроментированы.
|
||||
* @prop account - EOSIO аккаунт, который используется для инвалидации подписей
|
||||
*/
|
||||
export * as InvalidateProposal from './invalidateAccount'
|
||||
@@ -0,0 +1,19 @@
|
||||
import * as Permissions from '../../../common/permissions'
|
||||
import type * as Msig from '../../../interfaces/msig'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
* Требуется авторизация {@link Actors._username | аккаунта пользователя}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._username }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'invalidate'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type IInvalidateAccount = Msig.IInvalidate
|
||||
@@ -0,0 +1,23 @@
|
||||
import * as Permissions from '../../../common/permissions'
|
||||
import type * as Msig from '../../../interfaces/msig'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
* Требуется авторизация {@link Actors._username | аккаунта пользователя}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._username }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'propose'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* @prop proposer - имя аккаунта, создающего предложение.
|
||||
* @prop proposal_name - уникальное имя предложения.
|
||||
* @prop requested - массив уровней разрешений для одобрения предложения.
|
||||
* @prop trx - сериализованная транзакция для предложения.
|
||||
*/
|
||||
export type IProposeTransaction = Msig.IPropose
|
||||
@@ -0,0 +1,22 @@
|
||||
import * as Permissions from '../../../common/permissions'
|
||||
import type * as Msig from '../../../interfaces/msig'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
* Требуется авторизация {@link Actors._username | аккаунта пользователя}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._username }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'unapprove'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* @prop proposer - имя аккаунта, предложившего транзакцию.
|
||||
* @prop proposal_name - имя предложения, для которого отзывается утверждение.
|
||||
* @prop level - уровень разрешения, отзывающий утверждение.
|
||||
*/
|
||||
export type IUnapproveProposal = Msig.IUnapprove
|
||||
@@ -0,0 +1,11 @@
|
||||
import * as contractNames from '../../common/names'
|
||||
|
||||
export * as Actions from './actions'
|
||||
export * as Tables from './tables'
|
||||
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
export * as Interfaces from '../../interfaces/msig'
|
||||
|
||||
export const contractName = contractNames._msig
|
||||
@@ -0,0 +1,17 @@
|
||||
import type * as Marketplace from '../../../interfaces/msig'
|
||||
import { ContractNames } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя таблицы
|
||||
*/
|
||||
export const tableName = 'approvals'
|
||||
|
||||
/**
|
||||
* Таблица хранится в {@link ContractNames._msig | области памяти контракта}.
|
||||
*/
|
||||
export const scope = ContractNames._msig
|
||||
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type IApproval = Marketplace.IOldApprovalsInfo
|
||||
@@ -0,0 +1,17 @@
|
||||
import type * as Marketplace from '../../../interfaces/msig'
|
||||
import { ContractNames } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя таблицы
|
||||
*/
|
||||
export const tableName = 'approvals2'
|
||||
|
||||
/**
|
||||
* Таблица хранится в {@link ContractNames._msig | области памяти контракта}.
|
||||
*/
|
||||
export const scope = ContractNames._msig
|
||||
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type IApproval = Marketplace.IApproval
|
||||
@@ -0,0 +1,20 @@
|
||||
/**
|
||||
* Таблица хранит информацию о предоставленных утверждениях для каждого предложения мультиподписи.
|
||||
* @deprecated
|
||||
*/
|
||||
export * as Approvals from './approvals'
|
||||
|
||||
/**
|
||||
* Таблица хранит информацию о предоставленных утверждениях для каждого предложения мультиподписи.
|
||||
*/
|
||||
export * as Approvals2 from './approvals2'
|
||||
|
||||
/**
|
||||
* Таблица отслеживает аккаунты, инвалидировавшие свои разрешения для участия в мультиподписных предложениях.
|
||||
*/
|
||||
export * as Invalidations from './invalidations'
|
||||
|
||||
/**
|
||||
* Содержит все активные предложения мультиподписи, включая данные о транзакциях и текущем статусе их одобрения.
|
||||
*/
|
||||
export * as Proposals from './proposals'
|
||||
@@ -0,0 +1,17 @@
|
||||
import type * as Marketplace from '../../../interfaces/msig'
|
||||
import { ContractNames } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя таблицы
|
||||
*/
|
||||
export const tableName = 'invals'
|
||||
|
||||
/**
|
||||
* Таблица хранится в {@link ContractNames._msig | области памяти контракта}.
|
||||
*/
|
||||
export const scope = ContractNames._msig
|
||||
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type IInvalidation = Marketplace.IInvalidation
|
||||
@@ -0,0 +1,17 @@
|
||||
import type * as Marketplace from '../../../interfaces/msig'
|
||||
import { ContractNames } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя таблицы
|
||||
*/
|
||||
export const tableName = 'proposal'
|
||||
|
||||
/**
|
||||
* Таблица хранится в {@link ContractNames._msig | области памяти контракта}.
|
||||
*/
|
||||
export const scope = ContractNames._msig
|
||||
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type IProposal = Marketplace.IProposal
|
||||
@@ -5,7 +5,7 @@ import { Actors } from '../../../common'
|
||||
/**
|
||||
* Требуется авторизация аккаунта {@link Actors._admin | администратора} c позитивным балансом AXON для оплаты аренды ресурсов.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._admin }] as const
|
||||
export const authorizations = [{ permissions: [Permissions.active, Permissions.special], actor: Actors._admin }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
|
||||
@@ -1,35 +1,46 @@
|
||||
/**
|
||||
* Действие верификации аккаунта
|
||||
*/
|
||||
export * as verificateAccount from './verificateAccount'
|
||||
export * as VerificateAccount from './verificateAccount'
|
||||
|
||||
/**
|
||||
* Действие обновления публичных данных аккаунта
|
||||
*/
|
||||
export * as updateAccount from './updateAccount'
|
||||
export * as UpdateAccount from './updateAccount'
|
||||
|
||||
/**
|
||||
* Действие создания нового аккаунта
|
||||
*/
|
||||
export * as createAccount from './createAccount'
|
||||
export * as CreateAccount from './createAccount'
|
||||
|
||||
/**
|
||||
* Действие регистрации карточки пользователя в кооперативе
|
||||
*/
|
||||
export * as RegisterUser from './registerUser'
|
||||
|
||||
/**
|
||||
* Действие регистрации карточки организации в кооперативе
|
||||
*/
|
||||
export * as registerOrganization from './registerOrganization'
|
||||
export * as RegisterOrganization from './registerOrganization'
|
||||
|
||||
/**
|
||||
* Действие замены активного ключа пользователя за подписью системного аккаунта делегатов.
|
||||
*/
|
||||
export * as changeKey from './changeKey'
|
||||
export * as ChangeKey from './changeKey'
|
||||
|
||||
/**
|
||||
* Действие подачи заявления на вступление в кооператив
|
||||
*/
|
||||
export * as joinCooperative from './joinCooperative'
|
||||
export * as JoinCooperative from './joinCooperative'
|
||||
|
||||
/**
|
||||
* Действие, которое вызывается контрактом _soviet для подтверждения заявки на вступление в кооператив после принятия советом решения.
|
||||
* @private
|
||||
*/
|
||||
export * as confirmJoin from './confirmJoin'
|
||||
export * as ConfirmJoin from './confirmJoin'
|
||||
|
||||
/**
|
||||
* Действие, которые вызывается системным контрактом для инициализации.
|
||||
* @private
|
||||
*/
|
||||
export * as Init from './init'
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
import * as Permissions from '../../../common/permissions'
|
||||
import * as ContractNames from '../../../common/names'
|
||||
import type * as Registrator from '../../../interfaces/registrator'
|
||||
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: ContractNames._system }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'init'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type IInit = Registrator.IInit
|
||||
@@ -5,7 +5,7 @@ import { Actors } from '../../../common'
|
||||
/**
|
||||
* Требуется авторизация администратора кооператива или пользователя.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._admin }, { permissions: [Permissions.active], actor: Actors._username }] as const
|
||||
export const authorizations = [{ permissions: [Permissions.active, Permissions.special], actor: Actors._admin }, { permissions: [Permissions.active], actor: Actors._username }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
|
||||
@@ -2,7 +2,7 @@ import * as Permissions from '../../../common/permissions'
|
||||
import type * as Registrator from '../../../interfaces/registrator'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._admin }] as const
|
||||
export const authorizations = [{ permissions: [Permissions.active, Permissions.special], actor: Actors._admin }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
|
||||
@@ -2,7 +2,7 @@ import * as Permissions from '../../../common/permissions'
|
||||
import type * as Registrator from '../../../interfaces/registrator'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._admin }] as const
|
||||
export const authorizations = [{ permissions: [Permissions.active, Permissions.special], actor: Actors._admin }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
|
||||
@@ -15,4 +15,4 @@ export const scope = ContractNames._registrator
|
||||
* @interface
|
||||
* Таблица содержит реестр аккаунтов системы.
|
||||
*/
|
||||
export type IAccounts = Registrator.IAccounts
|
||||
export type IAccount = Registrator.IAccount
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
import { Actors } from '../../../common'
|
||||
import type * as Registrator from '../../../interfaces/registrator'
|
||||
/**
|
||||
* Имя таблицы
|
||||
*/
|
||||
export const tableName = 'balances'
|
||||
|
||||
/**
|
||||
* Таблица хранится в {@link Actors._coopname | области памяти кооператива}.
|
||||
*/
|
||||
export const scope = Actors._coopname
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Таблица содержит баланс для регистрации новых аккаунтов кооперативом.
|
||||
*/
|
||||
export type IBalances = Registrator.IBalancesBase
|
||||
@@ -4,17 +4,7 @@
|
||||
*/
|
||||
export * as Accounts from './accounts'
|
||||
|
||||
// /**
|
||||
// * Таблица содержит баланс для регистрации новых аккаунтов кооперативом.
|
||||
// */
|
||||
// export * as Balances from './balances'
|
||||
|
||||
/**
|
||||
* Таблица содержит реестр организаций-пайщиков кооператива.
|
||||
* Таблица содержит реестр организаций системы.
|
||||
*/
|
||||
export * as Organizations from './organizations'
|
||||
|
||||
/**
|
||||
* Таблица содержит реестр пользователей-пайщиков кооператива.
|
||||
*/
|
||||
export * as Users from './users'
|
||||
|
||||
@@ -15,4 +15,4 @@ export const scope = ContractNames._registrator
|
||||
* @interface
|
||||
* Таблица содержит реестр организаций-пайщиков кооператива.
|
||||
*/
|
||||
export type IUsers = Registrator.IOrgs
|
||||
export type IOrganization = Registrator.IOrganization
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
import { Actors } from '../../../../common'
|
||||
|
||||
/**
|
||||
* Действие выполняется за подписью {@link Actors._chairman | председателя}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._chairman }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'creaddress'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие создаёт новый адрес.
|
||||
*/
|
||||
export type ICreateAddress = Soviet.ICreaddress
|
||||
@@ -0,0 +1,19 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
import { Actors } from '../../../../common'
|
||||
|
||||
/**
|
||||
* Действие выполняется за подписью {@link Actors._chairman | председателя}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._chairman }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'deladdress'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие удаляет адресс.
|
||||
*/
|
||||
export type IDeleteAddress = Soviet.IDeladdress
|
||||
@@ -0,0 +1,19 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
import { Actors } from '../../../../common'
|
||||
|
||||
/**
|
||||
* Действие выполняется за подписью {@link Actors._chairman | председателя}.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._chairman }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'editaddress'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие редактирует адресс.
|
||||
*/
|
||||
export type IEditAddress = Soviet.IEditaddress
|
||||
@@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Действие создаёт новый адрес.
|
||||
*/
|
||||
export * as CreateAddress from './createAddress'
|
||||
|
||||
/**
|
||||
* Действие удаляет адресс.
|
||||
*/
|
||||
export * as DeleteAddress from './deleteAddress'
|
||||
|
||||
/**
|
||||
* Действие редактирует адресс.
|
||||
*/
|
||||
export * as EditAddress from './editAddress'
|
||||
@@ -0,0 +1,21 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
import { Actors } from '../../../../common'
|
||||
|
||||
/**
|
||||
* Действие выполняется за подписью {@link Actors._chairman | председателя}.
|
||||
*/
|
||||
export const authorizations = [
|
||||
{ permissions: [Permissions.active], actor: Actors._chairman },
|
||||
] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'addstaff'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие добавления администратора.
|
||||
*/
|
||||
export type IAddAdmin = Soviet.IAddstaff
|
||||
@@ -0,0 +1,21 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
import { Actors } from '../../../../common'
|
||||
|
||||
/**
|
||||
* Действие выполняется за подписью {@link Actors._chairman | председателя}.
|
||||
*/
|
||||
export const authorizations = [
|
||||
{ permissions: [Permissions.active], actor: Actors._chairman },
|
||||
] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'rmstaff'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие удаления администратора.
|
||||
*/
|
||||
export type IDeleteAdmin = Soviet.IRmstaff
|
||||
@@ -0,0 +1,25 @@
|
||||
/**
|
||||
* Действие добавления администратора.
|
||||
*/
|
||||
export * as AddAdmin from './addAdmin'
|
||||
|
||||
/**
|
||||
* Действие удаления администратора.
|
||||
*/
|
||||
export * as DeleteAdmin from './deleteAdmin'
|
||||
|
||||
/**
|
||||
* Действие регистрации платежа.
|
||||
*/
|
||||
export * as RegisterPayment from './registerPayment'
|
||||
|
||||
/**
|
||||
* Действие установки прав администраторов.
|
||||
*/
|
||||
export * as SetRights from './setRights'
|
||||
|
||||
/**
|
||||
* Действие для инициализации контракта.
|
||||
* @private
|
||||
*/
|
||||
export * as Init from './init'
|
||||
@@ -0,0 +1,21 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
import { Actors } from '../../../../common'
|
||||
|
||||
/**
|
||||
* Действие выполняется за подписью {@link Actors._system | системного контракта}.
|
||||
*/
|
||||
export const authorizations = [
|
||||
{ permissions: [Permissions.active], actor: Actors._system },
|
||||
] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'init'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие добавления администратора.
|
||||
*/
|
||||
export type IInit = Soviet.IInit
|
||||
@@ -0,0 +1,21 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
import { Actors } from '../../../../common'
|
||||
|
||||
/**
|
||||
* Действие выполняется за подписью {@link Actors._admin | администратора}.
|
||||
*/
|
||||
export const authorizations = [
|
||||
{ permissions: [Permissions.active, Permissions.special], actor: Actors._admin },
|
||||
] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'regpaid'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие регистрации получения оплаты вступительного взноса.
|
||||
*/
|
||||
export type IRegisterPayment = Soviet.IRegpaid
|
||||
@@ -0,0 +1,21 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
import { Actors } from '../../../../common'
|
||||
|
||||
/**
|
||||
* Действие выполняется за подписью {@link Actors._chairman | председателя}.
|
||||
*/
|
||||
export const authorizations = [
|
||||
{ permissions: [Permissions.active], actor: Actors._chairman },
|
||||
] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'setrights'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие изменений прав доступа администратора.
|
||||
*/
|
||||
export type ISetRights = Soviet.ISetrights
|
||||
@@ -0,0 +1,15 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
import { Actors } from '../../../../common'
|
||||
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._chairman }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'createboard'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type ICreateboard = Soviet.ICreateboard
|
||||
@@ -0,0 +1,2 @@
|
||||
export * as CreateBoard from './createBoard'
|
||||
export * as UpdateBoard from './updateBoard'
|
||||
@@ -0,0 +1,16 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
import { Actors } from '../../../../common'
|
||||
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: Actors._chairman }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'updateboard'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие изменения данных доски совета.
|
||||
*/
|
||||
export type IUpdateBoard = Soviet.IUpdateboard
|
||||
@@ -0,0 +1,21 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
import { Actors } from '../../../../common'
|
||||
|
||||
/**
|
||||
* Действие выполняется за подписью {@link Actors._chairman | председателя}.
|
||||
*/
|
||||
export const authorizations = [
|
||||
{ permissions: [Permissions.active], actor: Actors._chairman },
|
||||
] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'authorize'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие утверждения принятого советом решения.
|
||||
*/
|
||||
export type IAuthorize = Soviet.IAuthorize
|
||||
@@ -0,0 +1,21 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
import { Actors } from '../../../../common'
|
||||
|
||||
/**
|
||||
* Действие выполняется за подписью {@link Actors._member | члена совета}.
|
||||
*/
|
||||
export const authorizations = [
|
||||
{ permissions: [Permissions.active], actor: Actors._member },
|
||||
] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'automate'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Подключает автоматизацию принятия решений по указанным типам вопросов на повестке для члена совета.
|
||||
*/
|
||||
export type IAutomate = Soviet.IAutomate
|
||||
@@ -0,0 +1,21 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
import { Actors } from '../../../../common'
|
||||
|
||||
/**
|
||||
* Действие выполняется за подписью {@link Actors._member | члена совета}.
|
||||
*/
|
||||
export const authorizations = [
|
||||
{ permissions: [Permissions.active], actor: Actors._member },
|
||||
] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'cancelvote'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Принимает отмену голоса. Метод позволяет члену совета отменить свой голос, если решение еще не принято.
|
||||
*/
|
||||
export type IVoteAgainstDecision = Soviet.IVoteagainst
|
||||
@@ -0,0 +1,21 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
import { Actors } from '../../../../common'
|
||||
|
||||
/**
|
||||
* Действие выполняется за подписью {@link Actors._member | члена совета}.
|
||||
*/
|
||||
export const authorizations = [
|
||||
{ permissions: [Permissions.active], actor: Actors._member },
|
||||
] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'disautomate'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Отключает автоматизацию принятия решений по указанным типам вопросов на повестке для члена совета.
|
||||
*/
|
||||
export type IDisautomate = Soviet.IDisautomate
|
||||
@@ -0,0 +1,25 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
import { Actors } from '../../../../common'
|
||||
|
||||
/**
|
||||
* Действие выполняется за подписью любого {@link Actors._username | пользователя}.
|
||||
*/
|
||||
export const authorizations = [
|
||||
{ permissions: [Permissions.active], actor: Actors._username },
|
||||
] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'exec'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие исполнения принятого решения.
|
||||
* Обычно вызывается председателем сразу после утверждения решения,
|
||||
* чтобы оно вступило в силу и контракты исполнили его.
|
||||
* Однако, любой пользователь/кооператив может вызвать исполнение решения после того,
|
||||
* как оно было принято советом, если председатель по-какой-либо причине не исполнил его сам.
|
||||
*/
|
||||
export type IExec = Soviet.IExec
|
||||
@@ -0,0 +1,22 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import * as ContractNames from '../../../../common/names'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
|
||||
/**
|
||||
* Действие выполняется автоматически за подписью контракта {@link ContractNames._fund | фондов}.
|
||||
*/
|
||||
export const authorizations = [
|
||||
{ permissions: [Permissions.active], actor: ContractNames._fund },
|
||||
] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'fundwithdraw'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие поставляет в совет на голосование документ о необходимости использования средств фондов кооператива (кроме паевого).
|
||||
* @private
|
||||
*/
|
||||
export type IFundWithdrawDecision = Soviet.IFundwithdraw
|
||||
@@ -0,0 +1,73 @@
|
||||
/**
|
||||
* Принимает голос "ПРОТИВ" от члена совета по повестке собрания.
|
||||
*/
|
||||
export * as VoteAgainst from './voteAgainst'
|
||||
|
||||
/**
|
||||
* Принимает голос "ПРОТИВ" от члена совета по повестке собрания.
|
||||
*/
|
||||
export * as VoteFor from './voteFor'
|
||||
|
||||
/**
|
||||
* Принимает отмену голоса. Метод позволяет члену совета отменить свой голос, если решение еще не принято.
|
||||
*/
|
||||
export * as CancelVote from './cancelVote'
|
||||
|
||||
/**
|
||||
* Действие утверждения принятого советом решения.
|
||||
*/
|
||||
export * as Authorize from './authorize'
|
||||
|
||||
/**
|
||||
* Действие исполнения принятого решения.
|
||||
* Обычно вызывается председателем сразу после утверждения решения,
|
||||
* чтобы оно вступило в силу и контракты исполнили его.
|
||||
* Однако, любой пользователь/кооператив может вызвать исполнение решения после того,
|
||||
* как оно было принято советом, если председатель по-какой-либо причине не исполнил его сам.
|
||||
*/
|
||||
export * as Exec from './exec'
|
||||
|
||||
/**
|
||||
* Действие поставляет в совет на голосование заявления на взнос и возврат взноса двух пайщиков целевой потребительской программы маркетплейса.
|
||||
* @private
|
||||
*/
|
||||
export * as MarketDecision from './marketDecision'
|
||||
|
||||
/**
|
||||
* Действие поставляет в совет на голосование заявление на возврат паевого взноса.
|
||||
* @private
|
||||
*/
|
||||
export * as WithdrawDecision from './withdrawDecision'
|
||||
|
||||
/**
|
||||
* Действие поставляет в совет на голосование документ о необходимости использования средств фондов кооператива (кроме паевого).
|
||||
* @private
|
||||
*/
|
||||
export * as FundWithdrawDecision from './fundWithdrawDecision'
|
||||
|
||||
/**
|
||||
* Действие поставляет в совет на голосование заявление на вступление в кооператив.
|
||||
* @private
|
||||
*/
|
||||
export * as JoinCoopDecision from './joinCoopDecision'
|
||||
|
||||
/**
|
||||
* Действие поставляет в совет информацию о завершении процесса клиринга и инициирует выпуск закрывающих документов в реестр.
|
||||
* @private
|
||||
*/
|
||||
export * as ProductRecieved from './productRecieved'
|
||||
|
||||
/**
|
||||
* Действие валидации документов, поданных на голосование в совет.
|
||||
*/
|
||||
export * as Validate from './validate'
|
||||
|
||||
/**
|
||||
* Подключает автоматизацию принятия решений по указанным типам вопросов на повестке для члена совета.
|
||||
*/
|
||||
export * as Automate from './automate'
|
||||
|
||||
/**
|
||||
* Отключает автоматизацию принятия решений по указанным типам вопросов на повестке для члена совета.
|
||||
*/
|
||||
export * as Disautomate from './disautomate'
|
||||
@@ -0,0 +1,22 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import * as ContractNames from '../../../../common/names'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
|
||||
/**
|
||||
* Действие выполняется автоматически за подписью контракта {@link ContractNames._registrator | шлюза}.
|
||||
*/
|
||||
export const authorizations = [
|
||||
{ permissions: [Permissions.active], actor: ContractNames._registrator },
|
||||
] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'joincoop'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие поставляет в совет на голосование заявление на вступление в кооператив.
|
||||
* @private
|
||||
*/
|
||||
export type IJoinCoopDecision = Soviet.IJoincoop
|
||||
@@ -0,0 +1,22 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import * as ContractNames from '../../../../common/names'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
|
||||
/**
|
||||
* Действие выполняется автоматически за подписью контракта {@link ContractNames._marketplace | маркетплейса}.
|
||||
*/
|
||||
export const authorizations = [
|
||||
{ permissions: [Permissions.active], actor: ContractNames._marketplace },
|
||||
] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'change'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие поставляет в совет на голосование заявления на взнос и возврат взноса двух пайщиков целевой потребительской программы маркетплейса.
|
||||
* @private
|
||||
*/
|
||||
export type IMarketDecision = Soviet.IChange
|
||||
@@ -0,0 +1,22 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import * as ContractNames from '../../../../common/names'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
|
||||
/**
|
||||
* Действие выполняется автоматически за подписью контракта {@link ContractNames._marketplace | маркетплейса}.
|
||||
*/
|
||||
export const authorizations = [
|
||||
{ permissions: [Permissions.active], actor: ContractNames._marketplace },
|
||||
] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'recieved'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие поставляет в совет информацию о завершении процесса клиринга и инициирует выпуск закрывающих документов в реестр.
|
||||
* @private
|
||||
*/
|
||||
export type IProductRecieved = Soviet.IRecieved
|
||||
@@ -0,0 +1,21 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
import { Actors } from '../../../../common'
|
||||
|
||||
/**
|
||||
* Действие выполняется за подписью {@link Actors._admin | администратора}.
|
||||
*/
|
||||
export const authorizations = [
|
||||
{ permissions: [Permissions.active, Permissions.special], actor: Actors._admin },
|
||||
] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'validated'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие валидации документов, поданных на голосование в совет.
|
||||
*/
|
||||
export type IValidate = Soviet.IValidate
|
||||
@@ -0,0 +1,21 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
import { Actors } from '../../../../common'
|
||||
|
||||
/**
|
||||
* Действие выполняется за подписью {@link Actors._member | члена совета}.
|
||||
*/
|
||||
export const authorizations = [
|
||||
{ permissions: [Permissions.active], actor: Actors._member },
|
||||
] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'voteagainst'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Принимает голос "ПРОТИВ" от члена совета по повестке собрания.
|
||||
*/
|
||||
export type IVoteAgainstDecision = Soviet.IVoteagainst
|
||||
@@ -0,0 +1,21 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
import { Actors } from '../../../../common'
|
||||
|
||||
/**
|
||||
* Действие выполняется за подписью {@link Actors._member | члена совета}.
|
||||
*/
|
||||
export const authorizations = [
|
||||
{ permissions: [Permissions.active], actor: Actors._member },
|
||||
] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'votefor'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Принимает голос "ПРОТИВ" от члена совета по повестке собрания.
|
||||
*/
|
||||
export type IVoteForDecision = Soviet.IVotefor
|
||||
@@ -0,0 +1,22 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import * as ContractNames from '../../../../common/names'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
|
||||
/**
|
||||
* Действие выполняется автоматически за подписью контракта {@link ContractNames._gateway | шлюза}.
|
||||
*/
|
||||
export const authorizations = [
|
||||
{ permissions: [Permissions.active], actor: ContractNames._gateway },
|
||||
] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'withdraw'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие поставляет в совет на голосование заявление на возврат паевого взноса.
|
||||
* @private
|
||||
*/
|
||||
export type IWithdrawDecision = Soviet.IWithdraw
|
||||
@@ -0,0 +1,37 @@
|
||||
/**
|
||||
* Пространство действий для работы с реестрами.
|
||||
* @private
|
||||
*/
|
||||
export * as Registry from './registry'
|
||||
|
||||
/**
|
||||
* Пространство действий для работы с адресами кооператива.
|
||||
*/
|
||||
export * as Addresses from './addresses'
|
||||
|
||||
/**
|
||||
* Пространство атомарных действий для работы с кошельками пайщиков.
|
||||
* Все методы являются приватными и вызываются только смарт-контрактами.
|
||||
* @private
|
||||
*/
|
||||
export * as Wallet from './wallet'
|
||||
|
||||
/**
|
||||
* Пространство действий для работы с целевыми потребительскими программами.
|
||||
*/
|
||||
export * as Programs from './programs'
|
||||
|
||||
/**
|
||||
* Пространство решений членов совета.
|
||||
*/
|
||||
export * as Decisions from './decisions'
|
||||
|
||||
/**
|
||||
* Пространство управления собраниями и советами.
|
||||
*/
|
||||
export * as Boards from './boards'
|
||||
|
||||
/**
|
||||
* Пространство управления администраторами.
|
||||
*/
|
||||
export * as Admins from './admins'
|
||||
@@ -0,0 +1,21 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
import { Actors } from '../../../../common'
|
||||
|
||||
/**
|
||||
* Действие выполняется за подписью {@link Actors._chairman | председателя}.
|
||||
*/
|
||||
export const authorizations = [
|
||||
{ permissions: [Permissions.active], actor: Actors._chairman },
|
||||
] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'createprog'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие редактирует целевую потребительскую программу маркетплейса.
|
||||
*/
|
||||
export type ICreateMarketProgram = Soviet.ICreateprog
|
||||
@@ -0,0 +1,21 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
import { Actors } from '../../../../common'
|
||||
|
||||
/**
|
||||
* Действие выполняется за подписью {@link Actors._chairman | председателя}.
|
||||
*/
|
||||
export const authorizations = [
|
||||
{ permissions: [Permissions.active], actor: Actors._chairman },
|
||||
] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'disableprog'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие отключает целевую потребительскую программу маркетплейса.
|
||||
*/
|
||||
export type IDisableMarketProgram = Soviet.IDisableprog
|
||||
@@ -0,0 +1,21 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
import { Actors } from '../../../../common'
|
||||
|
||||
/**
|
||||
* Действие выполняется за подписью {@link Actors._chairman | председателя}.
|
||||
*/
|
||||
export const authorizations = [
|
||||
{ permissions: [Permissions.active], actor: Actors._chairman },
|
||||
] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'editprog'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие редактирует целевую потребительскую программу маркетплейса.
|
||||
*/
|
||||
export type IEditMarketProgram = Soviet.IEditprog
|
||||
@@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Действие создаёт целевую потребительскую программу маркетплейса.
|
||||
*/
|
||||
export * as CreateMarketProgram from './createMarketProgram'
|
||||
|
||||
/**
|
||||
* Действие редактирует целевую потребительскую программу маркетплейса.
|
||||
*/
|
||||
export * as EditMarketProgram from './editMarketProgram'
|
||||
|
||||
/**
|
||||
* Действие отключает целевую потребительскую программу маркетплейса.
|
||||
*/
|
||||
export * as DisableMarketProgram from './disableMarketProgram'
|
||||
@@ -0,0 +1,35 @@
|
||||
/**
|
||||
* Действие фиксирует документ в реестре перед отправкой в совет на голосование.
|
||||
* @private
|
||||
*/
|
||||
export * as NewSubmitted from './newsubmitted'
|
||||
|
||||
/**
|
||||
* Действие фиксирует связанную группу подписанных документов, которые отправляются в совет на голосование.
|
||||
* @private
|
||||
*/
|
||||
export * as NewBatch from './newbatch'
|
||||
|
||||
/**
|
||||
* Действие фиксирует в реестре заявление, по которому принято решение советом кооператива.
|
||||
* @private
|
||||
*/
|
||||
export * as NewResolved from './newresolved'
|
||||
|
||||
/**
|
||||
* Действие фиксирует в реестре подписанные акты приёма-передачи имущества.
|
||||
* @private
|
||||
*/
|
||||
export * as NewAct from './newact'
|
||||
|
||||
/**
|
||||
* Действие фиксирует в реестре принятое решение советом.
|
||||
* @private
|
||||
*/
|
||||
export * as NewDecision from './newdecision'
|
||||
|
||||
/**
|
||||
* Действие фиксирует в реестре идентификатор созданной целевой потребительской программы кооператива.
|
||||
* @private
|
||||
*/
|
||||
export * as NewProgram from './newprogram'
|
||||
@@ -0,0 +1,19 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import * as ContractNames from '../../../../common/names'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
|
||||
/**
|
||||
* Действие выполняется автоматически по ходу работы системы за подписью контракта _soviet.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: ContractNames._soviet }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'newact'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие фиксирует в реестре подписанные акты приёма-передачи имущества.
|
||||
*/
|
||||
export type INewAct = Soviet.INewact
|
||||
@@ -0,0 +1,19 @@
|
||||
import * as Permissions from '../../../../common/permissions'
|
||||
import * as ContractNames from '../../../../common/names'
|
||||
import type * as Soviet from '../../../../interfaces/soviet'
|
||||
|
||||
/**
|
||||
* Действие выполняется автоматически по ходу работы системы за подписью контракта _soviet.
|
||||
*/
|
||||
export const authorizations = [{ permissions: [Permissions.active], actor: ContractNames._soviet }] as const
|
||||
|
||||
/**
|
||||
* Имя действия
|
||||
*/
|
||||
export const actionName = 'newbatch'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие фиксирует связанную группу подписанных документов, которые отправляются в совет на голосование.
|
||||
*/
|
||||
export type INewBatch = Soviet.INewbatch
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user