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

Разработчикам¶
Канонические имена полей и типов — в файле components/controller/schema.gql монорепозитория; интерактивно — в документации GraphQL-API.
Список документов¶
🛠️ SDK: Queries.Documents.GetDocuments | Query.getDocuments
import { Queries } from '@coopenomics/sdk';
const variables: Queries.Documents.GetDocuments.IInput = {
data: {
actions?: <null | DocumentAction[]>;
after_block?: <null | number>;
before_block?: <null | number>;
filter: <any>;
limit?: <null | number>;
page?: <null | number>;
type?: <null | string>;
username: <string>;
};
};
const { [Queries.Documents.GetDocuments.name]: result } = await client.Query(
Queries.Documents.GetDocuments.query,
{ variables }
);
Результат:
interface IOutput {
getDocuments: {
currentPage: <number>; // Текущая страница
items: <{
acts: <{
action?: {
account: <string>;
account_ram_deltas: <{
account: <string>;
delta: <number>;
}[]>;
action_ordinal: <number>;
actor_certificate?: <({ username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | null | undefined; inn: string; } | { username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | ... 1 more ... | undefined; } | { ...; }) & {}>; // Сертификат пользователя (сокращенная информация)
authorization: <{
actor: <string>;
permission: <string>;
}[]>;
block_id: <string>;
block_num: <number>;
chain_id: <string>;
console: <string>;
context_free: <boolean>;
creator_action_ordinal: <number>;
data: <unknown>; // Данные действия в формате JSON
elapsed: <number>;
global_sequence: <string>;
name: <string>;
receipt: {
abi_sequence: <number>;
act_digest: <string>;
auth_sequence: <{
account: <string>;
sequence: <string>;
}[]>;
code_sequence: <number>;
global_sequence: <string>;
receiver: <string>;
recv_sequence: <string>;
};
receiver: <string>;
transaction_id: <string>;
};
documentAggregate?: {
document: {
doc_hash: <string>;
hash: <string>;
meta: <unknown>;
meta_hash: <string>;
signatures: <{
id: <number>;
is_valid?: <... | ... | ... | ...>;
meta: <unknown>;
public_key: <string>;
signature: <string>;
signed_at: <string>;
signed_hash: <string>;
signer: <string>;
signer_certificate?: <... | ...>; // Сертификат подписанта (сокращенная информация)
}[]>;
version: <string>;
};
hash: <string>;
rawDocument?: {
binary: <string>; // Бинарное содержимое документа (base64)
full_title: <string>; // Полное название документа
hash: <string>; // Хэш документа
html: <string>; // HTML содержимое документа
meta: <unknown>; // Метаданные документа
};
};
}[]>; // Массив объект(ов) актов с агрегатами, относящихся к заявлению
decision?: {
action: {
account: <string>;
account_ram_deltas: <{
account: <string>;
delta: <number>;
}[]>;
action_ordinal: <number>;
actor_certificate?: <({ username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | null | undefined; inn: string; } | { username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | ... 1 more ... | undefined; } | { ...; }) & {}>; // Сертификат пользователя (сокращенная информация)
authorization: <{
actor: <string>;
permission: <string>;
}[]>;
block_id: <string>;
block_num: <number>;
chain_id: <string>;
console: <string>;
context_free: <boolean>;
creator_action_ordinal: <number>;
data: <unknown>; // Данные действия в формате JSON
elapsed: <number>;
global_sequence: <string>;
name: <string>;
receipt: {
abi_sequence: <number>;
act_digest: <string>;
auth_sequence: <{
account: <string>;
sequence: <string>;
}[]>;
code_sequence: <number>;
global_sequence: <string>;
receiver: <string>;
recv_sequence: <string>;
};
receiver: <string>;
transaction_id: <string>;
};
documentAggregate: {
document: {
doc_hash: <string>;
hash: <string>;
meta: <unknown>;
meta_hash: <string>;
signatures: <{
id: <number>;
is_valid?: <null | boolean>;
meta: <unknown>;
public_key: <string>;
signature: <string>;
signed_at: <string>;
signed_hash: <string>;
signer: <string>;
signer_certificate?: <({ username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | null | undefined; inn: string; } | { username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | ... 1 more ... | undefined; } | { ...; }) & {}>; // Сертификат подписанта (сокращенная информация)
}[]>;
version: <string>;
};
hash: <string>;
rawDocument?: {
binary: <string>; // Бинарное содержимое документа (base64)
full_title: <string>; // Полное название документа
hash: <string>; // Хэш документа
html: <string>; // HTML содержимое документа
meta: <unknown>; // Метаданные документа
};
};
votes_against: <{
account: <string>;
account_ram_deltas: <{
account: <string>;
delta: <number>;
}[]>;
action_ordinal: <number>;
actor_certificate?: <({ username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | null | undefined; inn: string; } | { username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | ... 1 more ... | undefined; } | { ...; }) & {}>; // Сертификат пользователя (сокращенная информация)
authorization: <{
actor: <string>;
permission: <string>;
}[]>;
block_id: <string>;
block_num: <number>;
chain_id: <string>;
console: <string>;
context_free: <boolean>;
creator_action_ordinal: <number>;
data: <unknown>; // Данные действия в формате JSON
elapsed: <number>;
global_sequence: <string>;
name: <string>;
receipt: {
abi_sequence: <number>;
act_digest: <string>;
auth_sequence: <{
account: <string>;
sequence: <string>;
}[]>;
code_sequence: <number>;
global_sequence: <string>;
receiver: <string>;
recv_sequence: <string>;
};
receiver: <string>;
transaction_id: <string>;
}[]>;
votes_for: <{
account: <string>;
account_ram_deltas: <{
account: <string>;
delta: <number>;
}[]>;
action_ordinal: <number>;
actor_certificate?: <({ username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | null | undefined; inn: string; } | { username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | ... 1 more ... | undefined; } | { ...; }) & {}>; // Сертификат пользователя (сокращенная информация)
authorization: <{
actor: <string>;
permission: <string>;
}[]>;
block_id: <string>;
block_num: <number>;
chain_id: <string>;
console: <string>;
context_free: <boolean>;
creator_action_ordinal: <number>;
data: <unknown>; // Данные действия в формате JSON
elapsed: <number>;
global_sequence: <string>;
name: <string>;
receipt: {
abi_sequence: <number>;
act_digest: <string>;
auth_sequence: <{
account: <string>;
sequence: <string>;
}[]>;
code_sequence: <number>;
global_sequence: <string>;
receiver: <string>;
recv_sequence: <string>;
};
receiver: <string>;
transaction_id: <string>;
}[]>;
};
links: <{
document: {
doc_hash: <string>;
hash: <string>;
meta: <unknown>;
meta_hash: <string>;
signatures: <{
id: <number>;
is_valid?: <null | boolean>;
meta: <unknown>;
public_key: <string>;
signature: <string>;
signed_at: <string>;
signed_hash: <string>;
signer: <string>;
signer_certificate?: <({ username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | null | undefined; inn: string; } | { username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | ... 1 more ... | undefined; } | { ...; }) & {}>; // Сертификат подписанта (сокращенная информация)
}[]>;
version: <string>;
};
hash: <string>;
rawDocument?: {
binary: <string>; // Бинарное содержимое документа (base64)
full_title: <string>; // Полное название документа
hash: <string>; // Хэш документа
html: <string>; // HTML содержимое документа
meta: <unknown>; // Метаданные документа
};
}[]>; // Массив связанных документов с агрегатами, извлечённых из мета-данных
statement?: {
action: {
account: <string>;
account_ram_deltas: <{
account: <string>;
delta: <number>;
}[]>;
action_ordinal: <number>;
actor_certificate?: <({ username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | null | undefined; inn: string; } | { username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | ... 1 more ... | undefined; } | { ...; }) & {}>; // Сертификат пользователя (сокращенная информация)
authorization: <{
actor: <string>;
permission: <string>;
}[]>;
block_id: <string>;
block_num: <number>;
chain_id: <string>;
console: <string>;
context_free: <boolean>;
creator_action_ordinal: <number>;
data: <unknown>; // Данные действия в формате JSON
elapsed: <number>;
global_sequence: <string>;
name: <string>;
receipt: {
abi_sequence: <number>;
act_digest: <string>;
auth_sequence: <{
account: <string>;
sequence: <string>;
}[]>;
code_sequence: <number>;
global_sequence: <string>;
receiver: <string>;
recv_sequence: <string>;
};
receiver: <string>;
transaction_id: <string>;
};
documentAggregate: {
document: {
doc_hash: <string>;
hash: <string>;
meta: <unknown>;
meta_hash: <string>;
signatures: <{
id: <number>;
is_valid?: <null | boolean>;
meta: <unknown>;
public_key: <string>;
signature: <string>;
signed_at: <string>;
signed_hash: <string>;
signer: <string>;
signer_certificate?: <({ username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | null | undefined; inn: string; } | { username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | ... 1 more ... | undefined; } | { ...; }) & {}>; // Сертификат подписанта (сокращенная информация)
}[]>;
version: <string>;
};
hash: <string>;
rawDocument?: {
binary: <string>; // Бинарное содержимое документа (base64)
full_title: <string>; // Полное название документа
hash: <string>; // Хэш документа
html: <string>; // HTML содержимое документа
meta: <unknown>; // Метаданные документа
};
};
};
}[]>; // Элементы текущей страницы
totalCount: <number>; // Общее количество элементов
totalPages: <number>; // Общее количество страниц
};
}
Поиск документов¶
🛠️ SDK: Queries.Search.SearchDocuments | Query.searchDocuments
Полнотекстовый поиск по документам кооператива
import { Queries } from '@coopenomics/sdk';
const variables: Queries.Search.SearchDocuments.IInput = {
data: {
limit?: <number>;
query: <string>;
};
};
const { [Queries.Search.SearchDocuments.name]: result } = await client.Query(
Queries.Search.SearchDocuments.query,
{ variables }
);
Результат:
interface IOutput {
searchDocuments: <ISearchResult[]>;
}
Класс для подписи содержимого документов: 🛠️ Classes.Document.