stromdao-businessobject
Version:
Abstract BusinessObject for StromDAO Energy Blockchain. Abstraction layer between blockchain technology and business logic providing energy market related entities and use cases.
90 lines (83 loc) • 3.25 kB
JavaScript
/*
* StromDAO Business Object: RoleLookup
* =========================================
* Handling of Consensus Frame in Energy Blockchain / Context provider
*
* @author Thorsten Zoerner thorsten.zoerner@stromdao.de
*
*/
this.rolelookup=function(obj_or_address) {
if(typeof obj_or_address == "undefined") obj_or_address=parent.options.rolelookup;
var p1 = new Promise(function(resolve, reject) {
var instance=parent._objInstance(obj_or_address,'StromDAO-BO.sol:RoleLookup');
instance.owner=function() {return parent._owner_promise(instance);};
instance.roles=function(i) {
var p2 = new Promise(function(resolve2, reject2) {
instance.obj.roles(i).then(function(o) {
resolve2(o[0]);
});
});
return p2;
};
instance.setRelation=function(uint256_role,address_target) {
var p2 = new Promise(function(resolve2, reject2) {
instance.obj.setRelation(uint256_role, parent._resolveName(address_target)).then(function(o) {
parent._waitForTransaction(o.hash).then(function() {
resolve2(parent._keepHashRef(o));
});
});
});
return p2;
};
instance.setRelationFrom=function(uint256_role,address_target) {
var p2 = new Promise(function(resolve2, reject2) {
instance.obj.setRelationFrom(uint256_role,address_target).then(function(o) {
parent._waitForTransaction(o.hash).then(function() {
resolve2(parent._keepHashRef(o));
});
});
});
return p2;
};
instance.relations=function(address_target,uint256_role) {
var p2 = new Promise(function(resolve2, reject2) {
instance.obj.relations(address_target,uint256_role).then(function(o) {
resolve2(o[0]);
});
});
return p2;
};
instance.defaults=function(uint256_role) {
var p2 = new Promise(function(resolve2, reject2) {
instance.obj.defaults(uint256_role).then(function(o) {
resolve2(o[0]);
});
});
return p2;
}
instance.getName=function(address_target) {
var p2 = new Promise(function(resolve2, reject2) {
instance.obj.relations(address_target,25).then(function(o) {
parent.stringstorage(o[0]).then(function(p) {
p.str().then(function(str) {
resolve2(str);
});
}).catch(function(r) {resolve2();});
}).catch(function(r) {resolve2("");});
});
return p2;
}
instance.setName=function(string_name) {
var p2 = new Promise(function(resolve2, reject2) {
parent.stringstoragefactory().then(function(ssf) {
ssf.buildAndAssign(25,string_name).then(function(o) {
resolve2(o);
});
});
});
return p2;
}
resolve(instance);
});
return p1;
};