Of course, most things can be achieved off-chain. The chain is only used to update public key information (that can be used to verify those off-chain attestations).
To update those keys on behalf of an identity, you have to have control of the identity, and that is what the ethr-did-registry smart-contract ensures.
If you have more questions about these things, please post them on https://github.com/uport-project/veramo/discussions
There are more people there that can answer.
Hello everyone, I'm trying to lookup for DID owner (while connected with the local Ganache network).
The sample code is:
const providerConfig = {
rpcUrl: "http://127.0.0.1:8545",
chainNameOrId: "5777",
};
const { EthrDID } = require("ethr-did");
let createDid = async () => {
const keypair = EthrDID.createKeyPair();
const ethrDid = new EthrDID({ ...keypair, ...providerConfig });
const owner = await ethrDid.lookupOwner();
console.log(owner);
};
createDid();
However, I'm getting the following error:
node_modules/@ethersproject/logger/lib/index.js:187
var error = new Error(message);
^
Error: call revert exception (method="identityOwner(address)", errorArgs=null, errorName=null, errorSignature=null, reason=null, code=CALL_EXCEPTION, version=abi/5.3.0)
..... // remove for brevity
reason: null,
code: 'CALL_EXCEPTION',
method: 'identityOwner(address)',
errorArgs: null,
errorName: null,
errorSignature: null,
address: '0xdca7ef03e98e0dc2b855be647c39abe984fcf21b',
args: [ '0xAE007a5da29A546064D0CD52d61209f00da25585' ],
transaction: {
data: '0x8733d4e8000000000000000000000000ae007a5da29a546064d0cd52d61209f00da25585',
to: '0xdCa7EF03e98e0DC2B855bE647C39ABe984fcF21B'
}
}
any help what I'm missing here? thanks