In current implementation some RegistryAdmin functions are restricted to GIF_ADMIN_ROLE. This role is granted upon registry admin initialization, in completeSetup().
Problem:
RegistryAdmin does not provide any function for granting/revoking roles thus GIF_ADMIN_ROLE cannot be transferred
Solution 1:
1). add transferGifAdmin(address from, address to)
2). transfer is atomic combination of revoke(oldAddress) and grant(newAddress)
Solution 2:
1). make RegistryAdmin inherit NftOwnable
2). link it to nft id owned by gif admin (e.g. some service nft id or staking)
3). for function restricted to gif admin role use onlyOwner() modifier instead of restricted()
In current implementation some
RegistryAdminfunctions are restricted toGIF_ADMIN_ROLE. This role is granted upon registry admin initialization, incompleteSetup().Problem:
RegistryAdmindoes not provide any function for granting/revoking roles thusGIF_ADMIN_ROLEcannot be transferredSolution 1:
1). add
transferGifAdmin(address from, address to)2). transfer is atomic combination of
revoke(oldAddress)andgrant(newAddress)Solution 2:
1). make
RegistryAdmininheritNftOwnable2). link it to nft id owned by gif admin (e.g. some service nft id or staking)
3). for function restricted to gif admin role use
onlyOwner()modifier instead ofrestricted()