UNPKG

golos-lib-js

Version:

Golos-js the JavaScript library with API for GOLOS blockchain

59 lines (58 loc) 1.31 kB
"use strict"; var _asyncKeychain = require("./asyncKeychain"); var _misc = require("../utils/misc"); async function waitForKc() { if (typeof document === 'undefined' || !document.getElementById('golos_keychain_inpage')) { return false; } let init = false; for (let i = 0; i < 200; ++i) { init = typeof window.golosKeychain !== 'undefined'; if (init) break; await (0, _misc.delay)(10); } if (!init) { throw new Error('Golos Keychain extension is broken due to some bug'); } return true; } async function assertKc() { if (!(await waitForKc())) { throw new Error('Golos Keychain extension is not installed or disabled'); } } async function kcLogin() { await assertKc(); await _asyncKeychain.singles.login(); } async function kcLoggedIn() { if (!(await waitForKc())) return { authorized: false }; return await _asyncKeychain.singles.loggedIn(); } async function kcLogout() { const state = await kcLoggedIn(); if (state && state.authorized) { await _asyncKeychain.singles.logout(); return true; } return false; } async function kcSign(_ref) { let { tx } = _ref; await assertKc(); return await _asyncKeychain.singles.sign({ tx }); } module.exports = { kcLogin, kcLoggedIn, kcLogout, waitForKc, assertKc, kcSign };