-
Notifications
You must be signed in to change notification settings - Fork 160
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Multi identity #424
[WIP] Multi identity #424
Conversation
Some thoughts (I realise this is only a PoC, so some of the below may have been intentionally ignored for this code):
e.g. interface for KeyRing contract is: a dummy implementation of KeyRing (which just supports single addresses per keyring) is then: we could offer issuers different KeyRing implementations depending on their use-case (i.e. whether they want to allow multiple keys per identity, and the controls around that behaviour).
|
Makes sense, will incorporate in next Iteration.
That's how I started building it out but STFactory went out of gas (its still out of gas even after removing the extra functions). Maybe I should just change the permission check in IdentityStorage from
I thought about stoing keys onchain but i just couldn't find a proper use of them. Yeah, we can fetch what keys are valid but what's the use of that info to a smart contract? |
Thanks. Contract size issues for the ST are a pain. Maybe this is something we need to try and tackle more directly in 3.0.0 although good options are quite limited. Agree on the key side - can't think of an immediate reason why storing them on-chain is useful, other than to help with copy / paste type issues (i.e. have everyone reference them through consts on one of the contracts). |
break; | ||
} | ||
} | ||
require(canSet); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if associatedTokens.length == 0 then it seems like onlySecurityToken will always pass. Could move the require statement outside of the if clause.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If there are no associated tokens then by whom and why is this contract being used? :p
My original thinking was that the first security token that gets associated with this identity store should be free to do so and others will have to go through this modifier to be added. I'll look into a better flow to have this and ST associated and modify the logic accordingly.
Hey @maxsam4 - an interesting ERC which may be relevant for the IdentityStorage is: Next step is to do this fully in 3.0.0 - for now please can you just put in the IdentityStorage part rather than the KeyRing piece - on the KeyRing side it is bound up in the conversation around multi-sig / meta-transactions, so I think it is premature to add it now and we need to reach a firmer conclusion on the broader conversation first. |
Thanks for the feedback @adamdossa. I'll look into the ERC. I'll put the key ring development on hold and focus on research around multi-sigs vs key rings and meta tx. I'll continue the implementation of identity storage. Perhaps after refactoring to solidity 0.5.0. |
Closing this PR for now. Please don't delete the branch :) |
Trying different approaches.
Tests not updated.
Do not merge.