Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a950a47b28 | |||
| 2609d10c0b | |||
| 7b4cb0f66c | |||
| 26db0e1e69 | |||
| 62e64cbd22 | |||
| 844a47830f |
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "create-nodejs-express-app",
|
||||
"version": "1.7.31-alpha.0",
|
||||
"version": "1.7.31-alpha.1",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "create-nodejs-express-app",
|
||||
"version": "1.7.31-alpha.0",
|
||||
"version": "1.7.31-alpha.1",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@a2seven/yoo-checkout": "^1.1.4",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "coopback",
|
||||
"version": "1.7.31-alpha.0",
|
||||
"version": "1.7.31-alpha.1",
|
||||
"description": "",
|
||||
"private": true,
|
||||
"bin": "bin/createNodejsApp.js",
|
||||
|
||||
@@ -30,7 +30,7 @@ export async function buildComplexDocument(
|
||||
const document = await generator.getDocument({ hash: raw_document.document.hash });
|
||||
const user = await User.findOne({ username: raw_document.username });
|
||||
|
||||
if (user) {
|
||||
if (user && user.type != 'service') {
|
||||
const user_data = await user?.getPrivateData();
|
||||
|
||||
const action: Cooperative.Blockchain.IExtendedAction = {
|
||||
|
||||
@@ -198,7 +198,10 @@ export async function createInitialOrder(username: string, data: ICreateInitialP
|
||||
}
|
||||
|
||||
export async function catchIPN(ipnBody: IYandexIPN) {
|
||||
if (!connection.db) throw new Error('Нет подключения');
|
||||
|
||||
const payments = await connection.db.collection('payments');
|
||||
|
||||
const exist = await payments.findOne({ 'object.id': ipnBody.object.id });
|
||||
|
||||
if (!exist) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "coopdoc-generator-ts",
|
||||
"type": "module",
|
||||
"version": "1.0.75-alpha.0",
|
||||
"version": "1.0.75-alpha.1",
|
||||
"private": true,
|
||||
"packageManager": "pnpm@9.0.6",
|
||||
"description": "",
|
||||
|
||||
@@ -68,7 +68,7 @@ api.getTableRows(
|
||||
})
|
||||
```
|
||||
|
||||
Те же параметры scope, table, code могут быть использованы для получения информации из модуля [COOPARSER](https://github.com/copenomics/cooparser). Последнее используется, когда необходимо получить исторические данные и нет необходимости проверять их актуальность по наличию таблиц в блокчейне. Однако, таблицы в блокчейне необходимо всегда проверять перед отправкой любой транзакции действия. Нельзя полагаться на данные из парсера при подготовке транзакции действия.
|
||||
Те же параметры scope, table, code могут быть использованы для получения информации из модуля [COOPARSER](https://github.com/coopenomics/cooparser). Последнее используется, когда необходимо получить исторические данные и нет необходимости проверять их актуальность по наличию таблиц в блокчейне. Однако, таблицы в блокчейне необходимо всегда проверять перед отправкой любой транзакции действия. Нельзя полагаться на данные из парсера при подготовке транзакции действия.
|
||||
|
||||
### Транзакция действий
|
||||
Состояние любого смарт-контракта может изменяться только с помощью действий. Для того, чтобы совершить действия, необходимо сформировать и отправить транзакцию с помощью библиотеки eosjs или альтернатив.
|
||||
@@ -113,7 +113,7 @@ const api = new Api({ rpc, signatureProvider, textDecoder: new TextDecoder(), te
|
||||
|
||||
## Лицензия
|
||||
|
||||
[MIT](./LICENSE) License © 2024-PRESENT [CBS VOSKHOD](https://github.com/copenomics)
|
||||
[MIT](./LICENSE) License © 2024-PRESENT [CBS VOSKHOD](https://github.com/coopenomics)
|
||||
|
||||
<!-- Badges -->
|
||||
|
||||
@@ -123,7 +123,7 @@ const api = new Api({ rpc, signatureProvider, textDecoder: new TextDecoder(), te
|
||||
[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/copenomics/cooptypes.svg?style=flat&colorA=080f12&colorB=1fa669
|
||||
[license-href]: https://github.com/copenomics/cooptypes/blob/main/LICENSE
|
||||
[license-src]: https://img.shields.io/github/license/coopenomics/cooptypes.svg?style=flat&colorA=080f12&colorB=1fa669
|
||||
[license-href]: https://github.com/coopenomics/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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "cooptypes",
|
||||
"type": "module",
|
||||
"version": "1.0.20-alpha.0",
|
||||
"version": "1.0.20-alpha.1",
|
||||
"description": "_description_",
|
||||
"author": "Alex Ant <dacom.dark.sun@gmail.com>",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -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 = 'cnfrmindoc'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие подтверждает приём заявления администратором
|
||||
*/
|
||||
export type IConfirmIncomeDocument = Soviet.ICnfrmindoc
|
||||
@@ -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 = 'declnindoc'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие отклоняет заявление пайщика администратором
|
||||
*/
|
||||
export type IDeclineIncomeDocument = Soviet.IDeclnindoc
|
||||
@@ -23,3 +23,13 @@ export * as SetRights from './setRights'
|
||||
* @private
|
||||
*/
|
||||
export * as Init from './init'
|
||||
|
||||
/**
|
||||
* Действие подтверждения приёма заявления пайщика
|
||||
*/
|
||||
export * as ConfirmIncomeDocument from './confirmIncomeDocument'
|
||||
|
||||
/**
|
||||
* Действие отклонения приёма заявления пайщика
|
||||
*/
|
||||
export * as DeclineIncomeDocument from './declineIncomeDocument'
|
||||
|
||||
@@ -16,6 +16,6 @@ export const actionName = 'createprog'
|
||||
|
||||
/**
|
||||
* @interface
|
||||
* Действие редактирует целевую потребительскую программу маркетплейса.
|
||||
* Действие редактирует целевую потребительскую программу.
|
||||
*/
|
||||
export type ICreateMarketProgram = Soviet.ICreateprog
|
||||
export type ICreateProgram = Soviet.ICreateprog
|
||||
|
||||
@@ -12,3 +12,8 @@ export * as EditMarketProgram from './editMarketProgram'
|
||||
* Действие отключает целевую потребительскую программу маркетплейса.
|
||||
*/
|
||||
export * as DisableMarketProgram from './disableMarketProgram'
|
||||
|
||||
/**
|
||||
* Действие отправки заявления на присоединение к ЦПП Кооператива
|
||||
*/
|
||||
export * as JoinProgram from './joinProgram'
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
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 = 'joinprog'
|
||||
|
||||
/**
|
||||
* Действие отправки заявления на присоединение к ЦПП кооператива
|
||||
*/
|
||||
export type IJoinProgram = Soviet.IJoinprog
|
||||
@@ -0,0 +1,17 @@
|
||||
import type * as Soviet from '../../../interfaces/soviet'
|
||||
import { Actors } from '../../../common'
|
||||
|
||||
/**
|
||||
* Имя таблицы
|
||||
*/
|
||||
export const tableName = 'indocuments'
|
||||
|
||||
/**
|
||||
* Таблица хранится в {@link Actors._coopname | области памяти кооператива}.
|
||||
*/
|
||||
export const scope = Actors._coopname
|
||||
|
||||
/**
|
||||
* @interface
|
||||
*/
|
||||
export type IIncomeDocument = Soviet.IIndocument
|
||||
@@ -57,3 +57,8 @@ export * as ProgramWallets from './programWallets'
|
||||
* Таблица содержит сводный баланс пайщиков кооператива.
|
||||
*/
|
||||
export * as Wallets from './wallets'
|
||||
|
||||
/**
|
||||
* Таблица содержит заявления пайщиков кооператива, которые ожидают приёма, но не требуют решения совета.
|
||||
*/
|
||||
export * as IncomeDocuments from './incomeDocuments'
|
||||
|
||||
@@ -4,7 +4,7 @@ import { Actors } from '../../../common'
|
||||
/**
|
||||
* Имя таблицы
|
||||
*/
|
||||
export const tableName = 'progcomarket'
|
||||
export const tableName = 'programs'
|
||||
|
||||
/**
|
||||
* Таблица хранится в {@link Actors._coopname | области памяти кооператива}.
|
||||
|
||||
@@ -73,6 +73,11 @@ export interface ICooperative {
|
||||
created_at: ITimePointSec
|
||||
}
|
||||
|
||||
export interface IDelcoop {
|
||||
registrator: IName
|
||||
coopname: IName
|
||||
}
|
||||
|
||||
export interface IDocument {
|
||||
hash: IChecksum256
|
||||
public_key: IPublicKey
|
||||
@@ -162,8 +167,3 @@ export interface IVerification {
|
||||
last_update: ITimePointSec
|
||||
notice: string
|
||||
}
|
||||
|
||||
export interface IDelcoop {
|
||||
registrator: IName
|
||||
coopname: IName
|
||||
}
|
||||
|
||||
@@ -185,7 +185,8 @@ export interface ICreatebranch {
|
||||
export interface ICreateprog {
|
||||
coopname: IName
|
||||
username: IName
|
||||
draft_id: IUint64
|
||||
program_type: IName
|
||||
draft_registry_id: IUint64
|
||||
hash_of_conditions: IChecksum256
|
||||
title: string
|
||||
announce: string
|
||||
@@ -276,7 +277,7 @@ export interface IEditprog {
|
||||
coopname: IName
|
||||
username: IName
|
||||
program_id: IUint64
|
||||
draft_id: IUint64
|
||||
draft_registry_id: IUint64
|
||||
hash_of_conditions: IChecksum256
|
||||
title: string
|
||||
announce: string
|
||||
@@ -401,6 +402,7 @@ export interface IParticipant {
|
||||
export interface IProgram {
|
||||
id: IUint64
|
||||
coopname: IName
|
||||
program_type: IName
|
||||
draft_registry_id: IUint64
|
||||
hash_of_conditions: IChecksum256
|
||||
is_active: boolean
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "coop-notificator",
|
||||
"type": "module",
|
||||
"version": "0.0.24-alpha.0",
|
||||
"version": "0.0.24-alpha.1",
|
||||
"private": true,
|
||||
"packageManager": "pnpm@9.1.1",
|
||||
"description": "_description_",
|
||||
|
||||
+1
-1
@@ -10,5 +10,5 @@
|
||||
"i18n-ally.localesPaths": ["src/i18n"],
|
||||
"typescript.format.enable": true,
|
||||
"typescript.format.indentSwitchCase": false,
|
||||
"typescript.validate.enable": true
|
||||
"typescript.validate.enable": true,
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "terminal",
|
||||
"version": "0.1.35-alpha.0",
|
||||
"version": "0.1.35-alpha.1",
|
||||
"description": "A Terminal Project",
|
||||
"productName": "Terminal App",
|
||||
"author": "Alex Ant <dacom.dark.sun@gmail.com>",
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<template lang='pug'>
|
||||
router-view(v-if="isLoaded")
|
||||
div
|
||||
router-view(v-if="isLoaded")
|
||||
RootPopup
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
@@ -13,6 +15,8 @@ import { Cookies, LocalStorage, QSpinner, useQuasar } from 'quasar';
|
||||
import { COOPNAME } from 'src/shared/config';
|
||||
import { useCardStore } from './providers/card/store';
|
||||
|
||||
import { RootPopup } from 'src/widgets/Desktop/RootPopup';
|
||||
|
||||
const $q = useQuasar()
|
||||
|
||||
const router = useRouter()
|
||||
|
||||
@@ -43,6 +43,7 @@ export const manifest = {
|
||||
title: 'Удостоверение',
|
||||
icon: '',
|
||||
roles: [],
|
||||
programs: ['wallet']
|
||||
},
|
||||
path: 'identity',
|
||||
name: 'user-identity',
|
||||
|
||||
@@ -3,20 +3,20 @@ import { ContractsList, TablesList } from 'src/shared/config';
|
||||
import {
|
||||
IAddressesData,
|
||||
IAdministratorData,
|
||||
ICoopMarketProgramData,
|
||||
ILoadCoopMarketPrograms,
|
||||
ICoopProgramData,
|
||||
ILoadCoopPrograms,
|
||||
ILoadCooperativeAddresses,
|
||||
} from '../model';
|
||||
import {Cooperative, FundContract, RegistratorContract } from 'cooptypes';
|
||||
import {Cooperative, FundContract, RegistratorContract, SovietContract } from 'cooptypes';
|
||||
|
||||
async function loadMarketPrograms(
|
||||
params: ILoadCoopMarketPrograms
|
||||
): Promise<ICoopMarketProgramData[]> {
|
||||
async function loadPrograms(
|
||||
params: ILoadCoopPrograms
|
||||
): Promise<ICoopProgramData[]> {
|
||||
return (await fetchTable(
|
||||
ContractsList.Soviet,
|
||||
SovietContract.contractName.production,
|
||||
params.coopname,
|
||||
TablesList.CoopMarketPrograms
|
||||
)) as ICoopMarketProgramData[];
|
||||
SovietContract.Tables.Programs.tableName
|
||||
)) as ICoopProgramData[];
|
||||
}
|
||||
|
||||
async function loadAdmins(coopname: string): Promise<IAdministratorData[]> {
|
||||
@@ -94,7 +94,7 @@ async function loadCooperativeAddresses(
|
||||
}
|
||||
|
||||
export const api = {
|
||||
loadMarketPrograms,
|
||||
loadPrograms,
|
||||
loadCooperativeAddresses,
|
||||
loadPublicCooperativeData,
|
||||
loadAdmins,
|
||||
|
||||
@@ -3,8 +3,8 @@ import { Ref, ref, ComputedRef, computed } from 'vue';
|
||||
import { api } from '../api';
|
||||
import {
|
||||
IAddressesData,
|
||||
ICoopMarketProgramData,
|
||||
ILoadCoopMarketPrograms,
|
||||
ICoopProgramData,
|
||||
ILoadCoopPrograms,
|
||||
ILoadCooperativeAddresses,
|
||||
IAdministratorData,
|
||||
} from './types';
|
||||
@@ -16,14 +16,14 @@ interface ICooperativeStore {
|
||||
// методы
|
||||
loadFunds: (coopname: string) => Promise<void>;
|
||||
loadAddresses: (params: ILoadCooperativeAddresses) => Promise<void>;
|
||||
loadMarketPrograms: (params: ILoadCoopMarketPrograms) => Promise<void>;
|
||||
loadPrograms: (params: ILoadCoopPrograms) => Promise<void>;
|
||||
loadPrivateCooperativeData: () => Promise<void>;
|
||||
loadContacts: () => Promise<void>;
|
||||
loadPublicCooperativeData: (coopname: string) => Promise<void>;
|
||||
loadAdmins: (coopname: string) => Promise<void>;
|
||||
// данные
|
||||
admins: Ref<IAdministratorData[]>;
|
||||
marketPrograms: Ref<ICoopMarketProgramData[]>;
|
||||
programs: Ref<ICoopProgramData[]>;
|
||||
addresses: Ref<IAddressesData[]>;
|
||||
contacts: Ref<Cooperative.Model.IContacts | undefined>
|
||||
publicCooperativeData: Ref<RegistratorContract.Tables.Cooperatives.ICooperative | undefined>;
|
||||
@@ -39,7 +39,7 @@ interface ICooperativeStore {
|
||||
export const useCooperativeStore = defineStore(
|
||||
namespace,
|
||||
(): ICooperativeStore => {
|
||||
const marketPrograms = ref([] as ICoopMarketProgramData[]);
|
||||
const programs = ref([] as ICoopProgramData[]);
|
||||
const addresses = ref([] as IAddressesData[]);
|
||||
const admins = ref([] as IAdministratorData[]);
|
||||
const publicCooperativeData = ref<RegistratorContract.Tables.Cooperatives.ICooperative>();
|
||||
@@ -83,10 +83,10 @@ export const useCooperativeStore = defineStore(
|
||||
);
|
||||
};
|
||||
|
||||
const loadMarketPrograms = async (
|
||||
params: ILoadCoopMarketPrograms
|
||||
const loadPrograms = async (
|
||||
params: ILoadCoopPrograms
|
||||
): Promise<void> => {
|
||||
marketPrograms.value = await api.loadMarketPrograms(params);
|
||||
programs.value = await api.loadPrograms(params);
|
||||
};
|
||||
|
||||
const loadAddresses = async (
|
||||
@@ -101,12 +101,12 @@ export const useCooperativeStore = defineStore(
|
||||
|
||||
return {
|
||||
loadFunds,
|
||||
loadMarketPrograms,
|
||||
loadPrograms,
|
||||
loadAddresses,
|
||||
loadContacts,
|
||||
loadPublicCooperativeData,
|
||||
loadPrivateCooperativeData,
|
||||
marketPrograms,
|
||||
programs,
|
||||
addresses,
|
||||
contacts,
|
||||
privateCooperativeData,
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { SovietContract } from 'cooptypes';
|
||||
import { IUser } from 'src/shared/lib/types/user';
|
||||
|
||||
export type ICoopMarketProgramData =
|
||||
SovietContract.Tables.MarketPrograms.IMarketPrograms;
|
||||
export type ICoopProgramData =
|
||||
SovietContract.Tables.Programs.IProgram;
|
||||
export type IAddressesData = SovietContract.Tables.Addresses.IAddress;
|
||||
|
||||
export interface ILoadCoopMarketPrograms {
|
||||
export interface ILoadCoopPrograms {
|
||||
coopname: string;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import { computed, ComputedRef, Ref, ref } from 'vue';
|
||||
import { Session } from '@wharfkit/session';
|
||||
import { WalletPluginPrivateKey } from '@wharfkit/wallet-plugin-privatekey';
|
||||
import { FailAlert, readBlockchain } from 'src/shared/api';
|
||||
import { CHAIN_ID, CHAIN_URL } from 'src/shared/config';
|
||||
import { CHAIN_ID, CHAIN_URL, SYSTEM_TOKEN } from 'src/shared/config';
|
||||
import { PrivateKey, Serializer } from '@wharfkit/antelope';
|
||||
import { GetInfoResult } from 'eosjs/dist/eosjs-rpc-interfaces';
|
||||
|
||||
@@ -64,6 +64,7 @@ export const useSessionStore = defineStore('session', (): ISessionStore => {
|
||||
chain: {
|
||||
id: CHAIN_ID,
|
||||
url: CHAIN_URL,
|
||||
systemToken: SYSTEM_TOKEN
|
||||
},
|
||||
walletPlugin: new WalletPluginPrivateKey(
|
||||
globalStore.wif as PrivateKey
|
||||
|
||||
@@ -12,7 +12,7 @@ import {
|
||||
IDepositData,
|
||||
IWithdrawData,
|
||||
IProgramWalletData,
|
||||
ICoopMarketProgramData,
|
||||
ICoopProgramData,
|
||||
ExtendedProgramWalletData,
|
||||
IGetPaymentMethods,
|
||||
IGetResponsePaymentMethodData,
|
||||
@@ -28,6 +28,7 @@ import {
|
||||
ILoadUserProgramWallets,
|
||||
ILoadUserWithdraws,
|
||||
} from '../model';
|
||||
import { SovietContract } from 'cooptypes';
|
||||
|
||||
async function loadSingleUserWalletData(
|
||||
params: ILoadSingleUserWallet
|
||||
@@ -121,15 +122,15 @@ async function loadUserProgramWalletsData(
|
||||
params: ILoadUserProgramWallets
|
||||
): Promise<ExtendedProgramWalletData[]> {
|
||||
const programs = (await fetchTable(
|
||||
ContractsList.Soviet,
|
||||
SovietContract.contractName.production,
|
||||
params.coopname,
|
||||
TablesList.CoopMarketPrograms
|
||||
)) as ICoopMarketProgramData[];
|
||||
SovietContract.Tables.Programs.tableName
|
||||
)) as ICoopProgramData[];
|
||||
|
||||
const program_wallets = (await fetchTable(
|
||||
ContractsList.Soviet,
|
||||
SovietContract.contractName.production,
|
||||
params.coopname,
|
||||
TablesList.ProgramWallets,
|
||||
SovietContract.Tables.ProgramWallets.tableName,
|
||||
params.username,
|
||||
params.username,
|
||||
LimitsList.None,
|
||||
|
||||
@@ -24,9 +24,9 @@ interface IWalletStore {
|
||||
withdraws: Ref<IWithdrawData[]>;
|
||||
methods: Ref<IPaymentMethodData[]>;
|
||||
|
||||
update: (params: ILoadUserWallet) => Promise<void>;
|
||||
loadUserWalet: (params: ILoadUserWallet) => Promise<void>;
|
||||
|
||||
//TODO move to Features
|
||||
//TODO move to features
|
||||
createDeposit: (params: ICreateDeposit) => Promise<IPaymentOrder>;
|
||||
createWithdraw: (params: ICreateWithdraw) => Promise<void>;
|
||||
}
|
||||
@@ -45,16 +45,17 @@ export const useWalletStore = defineStore(namespace, (): IWalletStore => {
|
||||
const program_wallets = ref<ExtendedProgramWalletData[]>([]);
|
||||
const methods = ref<IPaymentMethodData[]>([]);
|
||||
|
||||
const createEmptyWallet = (): IWalletData => ({
|
||||
username: '',
|
||||
coopname: '',
|
||||
available: `0.0000 ${CURRENCY}`,
|
||||
blocked: `0.0000 ${CURRENCY}`,
|
||||
minimum: `0.0000 ${CURRENCY}`,
|
||||
});
|
||||
|
||||
const loadUserWalet = async (params: ILoadUserWallet) => {
|
||||
|
||||
const createEmptyWallet = (): IWalletData => ({
|
||||
username: '',
|
||||
coopname: '',
|
||||
available: `0.0000 ${CURRENCY}`,
|
||||
blocked: `0.0000 ${CURRENCY}`,
|
||||
minimum: `0.0000 ${CURRENCY}`,
|
||||
});
|
||||
|
||||
const update = async (params: ILoadUserWallet) => {
|
||||
try {
|
||||
const data = await Promise.all([
|
||||
api.loadSingleUserWalletData(params),
|
||||
@@ -90,7 +91,7 @@ export const useWalletStore = defineStore(namespace, (): IWalletStore => {
|
||||
deposits,
|
||||
withdraws,
|
||||
methods,
|
||||
update,
|
||||
loadUserWalet,
|
||||
createDeposit,
|
||||
createWithdraw,
|
||||
};
|
||||
|
||||
@@ -2,12 +2,13 @@ import { SovietContract, GatewayContract } from 'cooptypes';
|
||||
|
||||
export type IProgramWalletData =
|
||||
SovietContract.Tables.ProgramWallets.IProgramWallet;
|
||||
export type ICoopMarketProgramData =
|
||||
SovietContract.Tables.MarketPrograms.IMarketPrograms;
|
||||
|
||||
export type ICoopProgramData =
|
||||
SovietContract.Tables.Programs.IProgram;
|
||||
|
||||
export type ExtendedProgramWalletData = IProgramWalletData & {
|
||||
program_type: string;
|
||||
program_details: ICoopMarketProgramData; // | или другие типы будущих программ
|
||||
program_details: ICoopProgramData; // | или другие типы будущих программ
|
||||
};
|
||||
|
||||
export type IDepositData = GatewayContract.Tables.Deposits.IDeposits;
|
||||
|
||||
Vendored
+3
-2
@@ -20,7 +20,8 @@ declare module 'vue-router' {
|
||||
// Расширяем интерфейс RouteMeta, добавляя новые свойства
|
||||
interface RouteMeta {
|
||||
roles?: string[];
|
||||
// title: string
|
||||
// icon: string
|
||||
programs?: string[]
|
||||
title: string
|
||||
icon: string
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -20,8 +20,8 @@ const props = defineProps({
|
||||
})
|
||||
|
||||
const cooperativeStore = useCooperativeStore()
|
||||
cooperativeStore.loadMarketPrograms({ coopname: props.coopname })
|
||||
const programs = computed(() => cooperativeStore.marketPrograms)
|
||||
cooperativeStore.loadPrograms({ coopname: props.coopname })
|
||||
const programs = computed(() => cooperativeStore.programs)
|
||||
|
||||
const isSubmitting = ref(false)
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { TransactResult } from '@wharfkit/session';
|
||||
import { RegistratorContract, SovietContract } from 'cooptypes';
|
||||
import { RegistratorContract } from 'cooptypes';
|
||||
import { useSessionStore } from 'src/entities/Session';
|
||||
import { useGlobalStore } from 'src/shared/store';
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ export function useAddPaymentMethod() {
|
||||
|
||||
async function addPaymentMethod(params: IAddPaymentMethod) {
|
||||
|
||||
await store.update({
|
||||
await store.loadUserWalet({
|
||||
coopname: COOPNAME,
|
||||
username: params.username,
|
||||
})
|
||||
@@ -44,7 +44,7 @@ export function useAddPaymentMethod() {
|
||||
console.log(store.methods, store.methods.length, params.method_id)
|
||||
await sendPOST(`/v1/payments/methods/${params.username}/add`, params)
|
||||
|
||||
await store.update({
|
||||
await store.loadUserWalet({
|
||||
coopname: COOPNAME,
|
||||
username: session.username
|
||||
})
|
||||
|
||||
@@ -17,7 +17,7 @@ export function useDeletePaymentMethod() {
|
||||
|
||||
await sendPOST(`/v1/payments/methods/${username}/delete`, {method_id})
|
||||
|
||||
await store.update({
|
||||
await store.loadUserWalet({
|
||||
coopname: COOPNAME,
|
||||
username: session.username
|
||||
})
|
||||
|
||||
+2
-2
@@ -27,7 +27,7 @@ import { BASE_PAYMENT_FEE, COOPNAME, CURRENCY } from 'src/shared/config'
|
||||
import { SuccessAlert, FailAlert } from 'src/shared/api'
|
||||
import { useSessionStore } from 'src/entities/Session'
|
||||
|
||||
const { createDeposit, update } = useWalletStore()
|
||||
const { createDeposit, loadUserWalet } = useWalletStore()
|
||||
|
||||
//TODO move username to Session entity
|
||||
const session = useSessionStore()
|
||||
@@ -80,7 +80,7 @@ const paymentFail = (): void => {
|
||||
}
|
||||
|
||||
const paymentSuccess = (): void => {
|
||||
update({ coopname: COOPNAME, username: session.username as string } as ILoadUserWallet)
|
||||
loadUserWalet({ coopname: COOPNAME, username: session.username as string } as ILoadUserWallet)
|
||||
clear()
|
||||
SuccessAlert('Платеж успешно принят')
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ export enum TablesList {
|
||||
Deposits = 'deposits', //* Таблица депозитов пайщиков кооператива */
|
||||
Withdraws = 'withdraws', //* Таблица возвратов пайщиков кооператива */
|
||||
ProgramWallets = 'progwallets', //* Таблица кошельков программ кооператива */
|
||||
CoopMarketPrograms = 'progcomarket', //* Таблица балансов ЦПП пайщика кооператива */
|
||||
CoopPrograms = 'progcomarket', //* Таблица балансов ЦПП пайщика кооператива */
|
||||
CoopMarketRequests = 'exchange',
|
||||
CooperativeAddresses = 'addresses',
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
export * from './ui'
|
||||
@@ -0,0 +1,8 @@
|
||||
<template lang="pug">
|
||||
div
|
||||
SignProgramPopup
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { SignProgramPopup } from '../../SignProgramPopup';
|
||||
</script>
|
||||
@@ -0,0 +1 @@
|
||||
export {default as RootPopup} from './RootPopup.vue'
|
||||
@@ -0,0 +1 @@
|
||||
export * from './ui'
|
||||
@@ -0,0 +1,47 @@
|
||||
<template lang="pug">
|
||||
div
|
||||
//- p has_requirements {{ required }}
|
||||
//- p programs {{ coop_programs }}
|
||||
//- p user_programs {{ user_programs }}
|
||||
|
||||
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { useCooperativeStore } from 'src/entities/Cooperative';
|
||||
import { useSessionStore } from 'src/entities/Session';
|
||||
import { useWalletStore } from 'src/entities/Wallet';
|
||||
import { COOPNAME } from 'src/shared/config';
|
||||
import { computed } from 'vue';
|
||||
import { useRoute } from 'vue-router';
|
||||
const route = useRoute()
|
||||
const session = useSessionStore()
|
||||
const wallet = useWalletStore()
|
||||
const coop = useCooperativeStore()
|
||||
|
||||
const required = computed(() => (route.meta?.programs))
|
||||
const coop_programs = computed(() => coop.programs)
|
||||
const user_programs = computed(() => wallet.program_wallets)
|
||||
|
||||
const loadCoopPrograms = async () => {
|
||||
await coop.loadPrograms({
|
||||
coopname: COOPNAME
|
||||
})
|
||||
}
|
||||
|
||||
const loadUserPrograms = async () => {
|
||||
|
||||
if (session.username)
|
||||
wallet.loadUserWalet({
|
||||
coopname: COOPNAME,
|
||||
username: session.username
|
||||
})
|
||||
|
||||
|
||||
}
|
||||
|
||||
loadCoopPrograms()
|
||||
loadUserPrograms()
|
||||
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1 @@
|
||||
export {default as SignProgramPopup} from './SignProgramPopup.vue'
|
||||
@@ -96,7 +96,7 @@ const wallet = useWalletStore()
|
||||
|
||||
const username = computed(() => props.username)
|
||||
|
||||
wallet.update({ coopname: COOPNAME, username: username.value })
|
||||
wallet.loadUserWalet({ coopname: COOPNAME, username: username.value })
|
||||
|
||||
function isSBPData(data: ISBPData | IBankTransferData): data is ISBPData {
|
||||
return (data as ISBPData).phone !== undefined;
|
||||
|
||||
@@ -31,15 +31,15 @@ const props = defineProps({
|
||||
|
||||
const username = computed(() => props.username)
|
||||
|
||||
const update = () => {
|
||||
wallet.update({ coopname: COOPNAME, username: username.value })
|
||||
const updateUserWallet = () => {
|
||||
wallet.loadUserWalet({ coopname: COOPNAME, username: username.value })
|
||||
}
|
||||
|
||||
update()
|
||||
updateUserWallet()
|
||||
|
||||
const interval = setInterval(() => {
|
||||
update()
|
||||
}, 3000)
|
||||
updateUserWallet()
|
||||
}, 10000)
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
clearInterval(interval)
|
||||
|
||||
+2
-2
@@ -9,8 +9,8 @@
|
||||
"coopdoc-generator-ts": "workspace:*",
|
||||
"cooptypes": "workspace:*",
|
||||
"gh-pages": "^6.1.1",
|
||||
"lerna": "^8.1.6",
|
||||
"lint-staged": "^15.2.7",
|
||||
"lerna": "^8.1.8",
|
||||
"lint-staged": "^15.2.9",
|
||||
"terminal": "workspace:*"
|
||||
},
|
||||
"scripts": {
|
||||
|
||||
Generated
+211
-202
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user