Кошелек Etherium на 1С
Администрирование - Информационная безопасность
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
1
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Реализация кошелька на Blockchain Etherium написанный на 1С.
Возможности:
- Получение баланса по приватному ключу.
- Получение гиперссылок на etherscan
- Отправка транзакции(eth)
Планируется:
- Получение данных по токенам Смартконтрактов
- Взаимодействие со Смартконтрактами
- Улучшение Дизайна
- Публикация Смартконтрактов и токенов.
- Сжигание токенов.
- Блокировка токенов.
- Хранение приватных ключей в зашифрованном виде.
итп
Часть кода написана на JavaSript. В виду того что Solidity основан на JavaSrcipt VM, думаю это норма.
За основу взят официальный API Etherium Fundation - docs.ethers
Ограничения кошелек работает в тестовой сети Rinkeby. Может работать и на остальных, но это позже.
Для получения тестовых эфиров в сети Rinkeby используйте сайт https://rinkebyfaucet.com/
Для создания кошелька эфира по мнемонической фразе используйте https://www.myetherwallet.com/
Части кода
Инициализация кошелька:
let privateKey = "0xdc8b766bd5681056438e8f57f04d0b2ed0aa987adaeff3e305a8d4da62150736";
let provider = ethers.getDefaultProvider('rinkeby');
let wallet = new ethers.Wallet(privateKey, provider);
Получение баланса кошелька
let balancePromise = wallet.getBalance();
balancePromise.then((balance) => {
console.log(balance);
});
Отправка транзакции в сеть(Перевод монет и токенов)
let amount = ethers.utils.parseEther('0.000000000001');
//let amount = 1;
let tx = {
to: Reciever_address,
value: amount
};
let sendPromise = wallet.sendTransaction(tx);
sendPromise.then((tx) => {
document.write(JSON.stringify(tx));
console.log(tx);
});
Как мы видим выше, функции выполняются Асинхронно. В 1С этого добиться тяжело даже после того как ввели префикс Асинх. Пришлось использовать обработчики ожидания -
&НаКлиенте
Процедура Баланс()
элементы.ГиперсслкаКошелек.Заголовок = "Получение данных!";
Документ = Элементы.ДокументHTML.Документ;
//Объект.БалансКошелькаETH=АсинхронныеВызовы.БалансАсинхронно(Документ);
Документ.defaultView.Check_balance();
БалансКошелькаETH = Документ.defaultView.async_balance();
Если БалансКошелькаETH="Nll" тогда
ПодключитьОбработчикОжидания("Баланс",1);
иначе
объект.БалансКошелькаETH=БалансКошелькаETH;
ОтключитьОбработчикОжидания("Баланс");
элементы.ГиперсслкаКошелек.Заголовок = Документ.defaultView.GetWallet();
Документ.defaultView.return_OK()
КонецЕсли;
КонецПроцедуры
В связи с чем работа замедляется на 1 - 3 секунды
Всем спасибо.
Проверено на следующих конфигурациях и релизах:
- 1С:Зарплата и кадры бюджетного учреждения, релизы 1.0.121.2
Вступайте в нашу телеграмм-группу Инфостарт