智能合约盲盒游戏链游开发原理丨智能合约盲盒游戏链游系统开发技术分析及源码功能
WeIdentity DID智能合约,负责链上ID体系建立,具体包括生成DID(Distributed IDentity)、生成DID Document、DID在链上的读取与更新。
WeIdentity Authority智能合约,负责进行联盟链权限管理,具体包括链上DID角色的定义、操作与权限的定义与控制。
//定义角色相关代号
uint constant public ROLE_AUTHORITY_ISSUER=100;
uint constant public ROLE_COMMITTEE=101;
uint constant public ROLE_ADMIN=102;
//定义操作相关常数
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设计7O98开发O7I8
mapping(address=>bool)private authorityIssuerRoleBearer;
mapping(address=>bool)private committeeMemberRoleBearer;
mapping(address=>bool)private adminRoleBearer;
//构造器并赋予合约部署者相关权限
function RoleController()public{
authorityIssuerRoleBearer[msg.sender]=true;
adminRoleBearer[msg.sender]=true;
committeeMemberRoleBearer[msg.sender]=true;
}开发需求及模式:MrsFu123
//查询某地址是否有某操作的权限
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;
}