UNPKG

lisk-framework

Version:

Lisk blockchain application platform

36 lines 1.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SidechainInteroperabilityMethod = void 0; const base_interoperability_method_1 = require("../base_interoperability_method"); const utils_1 = require("../utils"); const chain_account_1 = require("../stores/chain_account"); const terminated_state_1 = require("../stores/terminated_state"); class SidechainInteroperabilityMethod extends base_interoperability_method_1.BaseInteroperabilityMethod { async isChannelActive(context, chainID) { const ownChainAccount = await this.getOwnChainAccount(context); if (chainID.equals(ownChainAccount.chainID)) { return false; } const chainAccountStore = this.stores.get(chain_account_1.ChainAccountStore); const chainAccountExists = await chainAccountStore.has(context, chainID); if (chainAccountExists) { const chainAccount = await chainAccountStore.get(context, chainID); return chainAccount.status === 1; } const mainchainID = (0, utils_1.getMainchainID)(chainID); if (!(await chainAccountStore.has(context, mainchainID))) { return false; } const mainchainAccount = await chainAccountStore.get(context, mainchainID); if (mainchainAccount.status !== 1) { return false; } const terminatedStateExists = await this.stores.get(terminated_state_1.TerminatedStateStore).has(context, chainID); if (terminatedStateExists) { return false; } return true; } } exports.SidechainInteroperabilityMethod = SidechainInteroperabilityMethod; //# sourceMappingURL=method.js.map