ваше сообщение коммита
This commit is contained in:
@@ -10,76 +10,63 @@
|
||||
* GitHub: https://github.com/HB3-ACCELERATOR
|
||||
*/
|
||||
|
||||
import api from '@/api/axios';
|
||||
// Сервис для работы с DLE v2
|
||||
import axios from 'axios';
|
||||
|
||||
/**
|
||||
* Сервис для работы с DLE v2 (Digital Legal Entity)
|
||||
* Современный подход с единым контрактом
|
||||
* Создает новое DLE v2
|
||||
* @param {Object} dleParams - Параметры DLE
|
||||
* @returns {Promise<Object>} - Результат создания
|
||||
*/
|
||||
class DLEV2Service {
|
||||
/**
|
||||
* Создает новое DLE v2
|
||||
* @param {Object} dleParams - Параметры DLE
|
||||
* @returns {Promise<Object>} - Результат создания
|
||||
*/
|
||||
async createDLE(dleParams) {
|
||||
try {
|
||||
const response = await api.post('/dle-v2', dleParams);
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
// console.error('Ошибка при создании DLE v2:', error);
|
||||
throw error;
|
||||
}
|
||||
export const createDLE = async (dleParams) => {
|
||||
try {
|
||||
const response = await axios.post('/api/dle-v2', dleParams);
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
console.error('Ошибка при создании DLE:', error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Получает список всех DLE v2
|
||||
* @returns {Promise<Array>} - Список DLE v2
|
||||
*/
|
||||
async getAllDLEs() {
|
||||
try {
|
||||
const response = await api.get('/dle-v2');
|
||||
return response.data.data || [];
|
||||
} catch (error) {
|
||||
// console.error('Ошибка при получении списка DLE v2:', error);
|
||||
return [];
|
||||
}
|
||||
/**
|
||||
* Получает список всех DLE v2
|
||||
* @returns {Promise<Object>} - Список DLE
|
||||
*/
|
||||
export const getAllDLEs = async () => {
|
||||
try {
|
||||
const response = await axios.get('/api/dle-v2');
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
console.error('Ошибка при получении списка DLE:', error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Получает настройки по умолчанию для DLE v2
|
||||
* @returns {Promise<Object>} - Настройки по умолчанию
|
||||
*/
|
||||
async getDefaults() {
|
||||
try {
|
||||
const response = await api.get('/dle-v2/defaults');
|
||||
return response.data.data;
|
||||
} catch (error) {
|
||||
// console.error('Ошибка при получении настроек по умолчанию DLE v2:', error);
|
||||
return {
|
||||
votingDelay: 1,
|
||||
votingPeriod: 45818,
|
||||
proposalThreshold: '100000',
|
||||
quorumPercentage: 4,
|
||||
minTimelockDelay: 2
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Получает информацию о конкретном DLE v2
|
||||
* @param {string} dleAddress - Адрес DLE
|
||||
* @returns {Promise<Object>} - Информация о DLE
|
||||
*/
|
||||
export const getDLEInfo = async (dleAddress) => {
|
||||
try {
|
||||
const response = await axios.get(`/api/dle-v2/${dleAddress}`);
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
console.error('Ошибка при получении информации о DLE:', error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Удаляет DLE v2 по адресу
|
||||
* @param {string} dleAddress - Адрес DLE
|
||||
* @returns {Promise<Object>} - Результат удаления
|
||||
*/
|
||||
async deleteDLE(dleAddress) {
|
||||
try {
|
||||
const response = await api.delete(`/dle-v2/${dleAddress}`);
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
// console.error('Ошибка при удалении DLE v2:', error);
|
||||
throw error;
|
||||
}
|
||||
/**
|
||||
* Получает параметры по умолчанию для создания DLE v2
|
||||
* @returns {Promise<Object>} - Параметры по умолчанию
|
||||
*/
|
||||
export const getDefaultParams = async () => {
|
||||
try {
|
||||
const response = await axios.get('/api/dle-v2/default-params');
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
console.error('Ошибка при получении параметров по умолчанию:', error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
export default new DLEV2Service();
|
||||
};
|
||||
@@ -569,6 +569,9 @@
|
||||
v-model="unifiedPrivateKey"
|
||||
class="form-control"
|
||||
placeholder="Введите приватный ключ (0x... или без префикса)"
|
||||
@input="() => { console.log('Input event triggered'); validatePrivateKey('unified'); }"
|
||||
@focus="() => console.log('Input field focused')"
|
||||
@blur="() => console.log('Input field blurred')"
|
||||
>
|
||||
<span class="input-icon" @click="showUnifiedKey = !showUnifiedKey">
|
||||
<i :class="showUnifiedKey ? 'fas fa-eye-slash' : 'fas fa-eye'"></i>
|
||||
@@ -1951,15 +1954,18 @@ const toggleKeyVisibility = (chainId) => {
|
||||
};
|
||||
|
||||
// Валидация приватного ключа с дебаунсом
|
||||
const validatePrivateKey = (chainId) => {
|
||||
const validatePrivateKey = async (chainId) => {
|
||||
console.log('Функция validatePrivateKey вызвана для chainId:', chainId);
|
||||
|
||||
// Очищаем предыдущий таймер
|
||||
if (validatePrivateKey.timeout) {
|
||||
clearTimeout(validatePrivateKey.timeout);
|
||||
}
|
||||
|
||||
// Устанавливаем новый таймер для дебаунса
|
||||
validatePrivateKey.timeout = setTimeout(() => {
|
||||
validatePrivateKey.timeout = setTimeout(async () => {
|
||||
const key = chainId === 'unified' ? unifiedPrivateKey.value : privateKeys[chainId];
|
||||
console.log('Ключ для валидации:', key);
|
||||
|
||||
if (!key) {
|
||||
keyValidation[chainId] = null;
|
||||
@@ -1967,26 +1973,33 @@ const validatePrivateKey = (chainId) => {
|
||||
}
|
||||
|
||||
try {
|
||||
// Простая валидация длины и формата
|
||||
const cleanKey = key.startsWith('0x') ? key.slice(2) : key;
|
||||
// Логируем отправляемый ключ (только для отладки)
|
||||
console.log('Отправляем приватный ключ для валидации:', key);
|
||||
console.log('Длина ключа:', key.length);
|
||||
console.log('Полный ключ:', key);
|
||||
|
||||
if (cleanKey.length === 64 && /^[a-fA-F0-9]+$/.test(cleanKey)) {
|
||||
// Генерируем адрес из приватного ключа (упрощенная версия)
|
||||
const address = '0x' + cleanKey.substring(0, 40);
|
||||
|
||||
keyValidation[chainId] = {
|
||||
isValid: true,
|
||||
address: address,
|
||||
error: null
|
||||
};
|
||||
// Отправляем запрос на бэкенд для валидации
|
||||
const response = await axios.post('/api/dle-v2/validate-private-key', {
|
||||
privateKey: key
|
||||
});
|
||||
|
||||
console.log('Ответ от сервера:', response.data);
|
||||
|
||||
if (response.data.success) {
|
||||
keyValidation[chainId] = response.data.data;
|
||||
} else {
|
||||
throw new Error('Некорректный формат ключа');
|
||||
keyValidation[chainId] = {
|
||||
isValid: false,
|
||||
address: null,
|
||||
error: response.data.message
|
||||
};
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Ошибка валидации приватного ключа:', error);
|
||||
keyValidation[chainId] = {
|
||||
isValid: false,
|
||||
address: null,
|
||||
error: 'Некорректный приватный ключ'
|
||||
error: error.response?.data?.message || 'Ошибка валидации приватного ключа'
|
||||
};
|
||||
}
|
||||
}, 300); // Задержка 300мс
|
||||
@@ -2107,6 +2120,9 @@ watch([() => dleSettings.name, () => dleSettings.tokenSymbol, selectedNetworks],
|
||||
|
||||
// Инициализация
|
||||
onMounted(() => {
|
||||
console.log('🚀 DleDeployFormView компонент загружен - ТЕСТ ОБНОВЛЕНИЯ');
|
||||
alert('Компонент загружен - проверьте консоль');
|
||||
|
||||
// Загружаем список стран
|
||||
loadCountries();
|
||||
|
||||
@@ -2209,7 +2225,10 @@ const deploySmartContracts = async () => {
|
||||
supportedChainIds: dleSettings.selectedNetworks || [],
|
||||
|
||||
// Текущая цепочка (будет установлена при деплое)
|
||||
currentChainId: dleSettings.selectedNetworks[0] || 1
|
||||
currentChainId: dleSettings.selectedNetworks[0] || 1,
|
||||
|
||||
// Приватный ключ для деплоя
|
||||
privateKey: unifiedPrivateKey.value
|
||||
};
|
||||
|
||||
console.log('Данные для деплоя DLE:', deployData);
|
||||
@@ -2247,6 +2266,9 @@ const isFormValid = computed(() => {
|
||||
dleSettings.governanceQuorum > 0 &&
|
||||
dleSettings.governanceQuorum <= 100 &&
|
||||
dleSettings.selectedNetworks.length > 0 &&
|
||||
// Проверка приватного ключа
|
||||
unifiedPrivateKey.value &&
|
||||
keyValidation.unified?.isValid &&
|
||||
// Валидация координат
|
||||
validateCoordinates(dleSettings.coordinates)
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user