ваше сообщение коммита
This commit is contained in:
@@ -6,6 +6,28 @@ import axios from 'axios';
|
||||
* Предоставляет списки доступных сетей, URL RPC и функции для работы с ними
|
||||
*/
|
||||
export default function useBlockchainNetworks() {
|
||||
// Список сетей, получаемый с бэкенда
|
||||
const networks = ref([]);
|
||||
const loadingNetworks = ref(false);
|
||||
|
||||
// Загрузка сетей с бэкенда
|
||||
const fetchNetworks = async () => {
|
||||
loadingNetworks.value = true;
|
||||
try {
|
||||
const { data } = await axios.get('/api/settings/rpc');
|
||||
const networksArr = data.data || [];
|
||||
networks.value = networksArr.map(n => ({
|
||||
value: n.network_id,
|
||||
label: n.network_id, // Можно заменить на красивое имя, если появится
|
||||
url: n.rpc_url
|
||||
}));
|
||||
} catch (e) {
|
||||
networks.value = [];
|
||||
} finally {
|
||||
loadingNetworks.value = false;
|
||||
}
|
||||
};
|
||||
|
||||
// Группы сетей для отображения в интерфейсе
|
||||
const networkGroups = [
|
||||
{
|
||||
@@ -56,7 +78,7 @@ export default function useBlockchainNetworks() {
|
||||
];
|
||||
|
||||
// Создаем плоский список всех сетей для удобного использования в компонентах
|
||||
const networks = computed(() => {
|
||||
const networksComputed = computed(() => {
|
||||
return networkGroups.flatMap(group => group.options);
|
||||
});
|
||||
|
||||
@@ -122,12 +144,12 @@ export default function useBlockchainNetworks() {
|
||||
|
||||
// Функция получения списка всех доступных сетей в плоском формате
|
||||
const getAllNetworks = () => {
|
||||
return networks.value;
|
||||
return networksComputed.value;
|
||||
};
|
||||
|
||||
// Функция получения метаданных сети по ID
|
||||
const getNetworkMetadata = (networkId) => {
|
||||
return networks.value.find(network => network.value === networkId) || null;
|
||||
return networksComputed.value.find(network => network.value === networkId) || null;
|
||||
};
|
||||
|
||||
// Состояние для тестирования RPC
|
||||
@@ -171,12 +193,15 @@ export default function useBlockchainNetworks() {
|
||||
};
|
||||
|
||||
return {
|
||||
networks,
|
||||
fetchNetworks,
|
||||
loadingNetworks,
|
||||
// Данные
|
||||
networkGroups,
|
||||
networkEntry,
|
||||
testingRpc,
|
||||
testingRpcId,
|
||||
networks, // Экспортируем плоский список сетей
|
||||
networksComputed, // Экспортируем плоский список сетей
|
||||
|
||||
// Методы
|
||||
getChainIdByNetworkId,
|
||||
|
||||
@@ -240,6 +240,7 @@
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="deployNetwork">Выберите сеть блокчейн для деплоя:</label>
|
||||
<select id="deployNetwork" v-model="dleDeploymentSettings.blockchainNetwork" class="form-control">
|
||||
<option v-if="loadingNetworks" disabled>Загрузка сетей...</option>
|
||||
<option v-for="network in networks" :key="network.value" :value="network.value">
|
||||
{{ network.label }}
|
||||
</option>
|
||||
@@ -334,7 +335,9 @@ const {
|
||||
testRpcConnection,
|
||||
testingRpc,
|
||||
testingRpcId,
|
||||
networks
|
||||
networks,
|
||||
fetchNetworks,
|
||||
loadingNetworks
|
||||
} = useBlockchainNetworks();
|
||||
|
||||
// Добавляем настройки безопасности и подключения
|
||||
@@ -546,6 +549,7 @@ watch(selectedClass, () => {
|
||||
// --- Начальная загрузка данных ---
|
||||
onMounted(() => {
|
||||
fetchIsicCodes({ level: 1 }, sectionOptions, isLoadingSections);
|
||||
fetchNetworks(); // Загружаем список сетей для деплоя
|
||||
|
||||
// Автоподстановка адреса авторизированного пользователя в первого партнера, если есть права админа
|
||||
if (address.value && isAdmin.value && dleDeploymentSettings.partners.length > 0) {
|
||||
@@ -622,7 +626,8 @@ const formattedDLEParams = computed(() => {
|
||||
votingDelay: Math.round(dleDeploymentSettings.votingDelayDays * 24 * 60 * 60 / 13), // конвертируем дни в блоки (13 секунд на блок)
|
||||
votingPeriod: Math.round(dleDeploymentSettings.votingPeriodDays * 24 * 60 * 60 / 13), // конвертируем дни в блоки
|
||||
proposalThreshold: dleDeploymentSettings.proposalThreshold,
|
||||
quorumPercentage: dleDeploymentSettings.quorumPercent
|
||||
quorumPercentage: dleDeploymentSettings.quorumPercent,
|
||||
privateKey: securitySettings.deployerPrivateKey
|
||||
};
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user