lisk-framework
Version:
Lisk blockchain application platform
36 lines • 1.7 kB
JavaScript
;
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