智能合約盲盒游戲鏈游開(kāi)發(fā)原理丨智能合約盲盒游戲鏈游系統(tǒng)開(kāi)發(fā)技術(shù)分析及源碼功能
WeIdentity DID智能合約,負(fù)責(zé)鏈上ID體系建立,具體包括生成DID(Distributed IDentity)、生成DID Document、DID在鏈上的讀取與更新。
WeIdentity Authority智能合約,負(fù)責(zé)進(jìn)行聯(lián)盟鏈權(quán)限管理,具體包括鏈上DID角色的定義、操作與權(quán)限的定義與控制。
//定義角色相關(guān)代號(hào)
uint constant public ROLE_AUTHORITY_ISSUER=100;
uint constant public ROLE_COMMITTEE=101;
uint constant public ROLE_ADMIN=102;
//定義操作相關(guān)常數(shù)
uint constant public MODIFY_AUTHORITY_ISSUER=200;
uint constant public MODIFY_COMMITTEE=201;
uint constant public MODIFY_ADMIN=202;
uint constant public MODIFY_KEY_CPT=203;
//建立角色映射案例及方案I35設(shè)計(jì)7O98開(kāi)發(fā)O7I8
mapping(address=>bool)private authorityIssuerRoleBearer;
mapping(address=>bool)private committeeMemberRoleBearer;
mapping(address=>bool)private adminRoleBearer;
//構(gòu)造器并賦予合約部署者相關(guān)權(quán)限
function RoleController()public{
authorityIssuerRoleBearer[msg.sender]=true;
adminRoleBearer[msg.sender]=true;
committeeMemberRoleBearer[msg.sender]=true;
}開(kāi)發(fā)需求及模式:MrsFu123
//查詢(xún)某地址是否有某操作的權(quán)限
function checkPermission(address addr,uint operation)public constant returns(bool){
if(operation==MODIFY_AUTHORITY_ISSUER){
if(adminRoleBearer[addr]||committeeMemberRoleBearer[addr]){
return true;
}
}
if(operation==MODIFY_COMMITTEE){
if(adminRoleBearer[addr]){
return true;
}
}
if(operation==MODIFY_ADMIN){
if(adminRoleBearer[addr]){
return true;
}
}
if(operation==MODIFY_KEY_CPT){
if(authorityIssuerRoleBearer[addr]){
return true;
}
}
return false;
}