Comments (4)
from contracts.
The new methods to init and set state should be the following (with pseudocode):
initState(bytes32 newState, bytes32 genesisState, bytes31 id, bytes memory kOpProof, bytes memory itp, bytes32 sig) public {
require(identities[id].length == 0);
require(genesisIdFromState(genesisState) == id);
_setState(newState, genesisState, id, kOpProof, itp, sig);
}
setState(bytes32 newState, bytes31 id, bytes memory kOpProof, bytes memory itp, bytes32 sig) public {
require(identities[id].length>0);
lastEvent = identities[id][identities[id].length - 1];
require(lastEvent.BlockN != block.number, "no multiple set in the same block");
_setState(newState, lastEvent.State, id, kOpProof, itp, sig);
}
_setState(bytes32 newState, byte32 oldState, bytes31 id, bytes memory kOpProof, bytes memory itp, bytes32 sig) private {
require(verifyProof(newState, kOpProof) == true);
kOp = KeyFromKOpProof(kOpProof);
require(verifySignature("minorTransition:" + oldState + newState, kOp);
require(verifyTransitionProof(oldState, newState, itp) == true);
identities[id].push(IDState(uint64(block.number), uint64(block.timestamp), newState));
emit StateUpdated(id, uint64(block.number), uint64(block.timestamp), newState);
}
from contracts.
Done the interfices ab460b3
from contracts.
Done
from contracts.
Related Issues (19)
- Our ERC's for Cryptographic attestations HOT 1
- Add revocation method
- Update to last merkle format
- Use aragonOS's UnstructuredStorage library
- Document code and add code coverage
- Does this project align with ERC725?
- Use transparent proxies ala zos
- Add KSignBabyJubJub verification on Identity State update HOT 1
- Update usage of Poseidon hash instead of Mimc7 HOT 1
- Update MerkleTree proof verification with new ClaimAuthKSignBabyJub and Poseidon HOT 1
- Set signature to 64 bytes HOT 1
- Identity State update signature verification & merkleproof with zkSnark proof HOT 1
- Stored block number doesn't correspond to the block in which the identity state is updated
- where is PoseidonUnit*L implementation HOT 1
- "No multiple set in the same block" trigger when eth_estimiateGas call on go-ethereum 1.12.0 HOT 2
- TypeError: Array with zero length specified. HOT 1
- `skipClaimRevocationCheck` is defined in `CredentialAtomicQueryV3` but not used?
- Should signals.challenge be verified for eth-based identity?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from contracts.