@activeledger/activeprotocol
Version:
Underlying protocol which handles consensus and the smart contract virtual machine of Activeledger
105 lines • 3.56 kB
JavaScript
class ContractControl {
constructor() {
this.smartContracts = {};
}
initialiseContract(payload, event, emitter) {
var _a;
const contractData = ((_a = payload.contractData) === null || _a === void 0 ? void 0 : _a.data) ? payload.contractData : {};
this.smartContracts[payload.umid] =
new (require(payload.contractLocation).default)(payload.date, payload.remoteAddress, payload.umid, payload.transaction, payload.inputs, payload.outputs, payload.readonly, contractData, payload.signatures, payload.key, emitter, global.self);
if ("setEvent" in this.smartContracts[payload.umid]) {
this.smartContracts[payload.umid].setEvent(event);
}
}
getActivityStreams(umid) {
return this.smartContracts[umid].getActivityStreams();
}
getContractData(umid) {
if (this.smartContracts[umid].updatedContractData) {
return this.smartContracts[umid].exportContractData();
}
}
setInternodeComms(umid, comms, key) {
this.smartContracts[umid].setInterNodeComms(key, comms);
}
getInternodeComms(umid) {
return this.smartContracts[umid].getThisInterNodeComms();
}
clearInternodeComms(umid) {
return this.smartContracts[umid].getClearInterNodeComms();
}
returnContractData(umid) {
return this.smartContracts[umid].getReturnToRemote();
}
throwFrom(umid) {
return this.smartContracts[umid].throwTo;
}
async runRead(umid, readMethod) {
var _a, _b;
const read = (_b = (_a = this.smartContracts[umid])[readMethod]) === null || _b === void 0 ? void 0 : _b.call(_a);
return read ? read : false;
}
async runVerify(umid, sigless) {
var _a, _b;
const verify = (_b = (_a = this.smartContracts[umid]).verify) === null || _b === void 0 ? void 0 : _b.call(_a, sigless);
return verify ? verify : true;
}
runVote(umid) {
try {
return this.smartContracts[umid].vote();
}
catch (_a) {
return Promise.resolve(false);
}
}
runCommit(umid, possibleTerritoriality) {
try {
return this.smartContracts[umid].commit(possibleTerritoriality);
}
catch (e) {
return Promise.reject("Commit Try/Catch Failed");
}
}
postProcess(umid, territoriality, who) {
if ("postProcess" in this.smartContracts[umid]) {
return this.smartContracts[umid].postProcess(territoriality, who);
}
else {
return Promise.resolve();
}
}
reconcile(umid) {
if ("reconcile" in this.smartContracts[umid]) {
return this.smartContracts[umid].reconcile();
}
else {
return Promise.resolve();
}
}
destroy(umid) {
delete this.smartContracts[umid];
}
getTimeout(umid) {
return this.smartContracts[umid]
? this.smartContracts[umid].getTimeout()
: null;
}
setSysConfig(umid, sysConfig) {
if ("sysConfig" in this.smartContracts[umid]) {
this.smartContracts[umid].sysConfig(sysConfig);
}
}
reloadSysConfig(umid) {
if ("sysConfig" in this.smartContracts[umid]) {
return this.smartContracts[umid].configReload();
}
else {
return false;
}
}
}
module.exports = (function () {
return new ContractControl();
})();
export {};
//# sourceMappingURL=vmscript.js.map