updateDocument(contract, sender, document, currency)
Feature
Return raw operation that update exist did document.
Parameters
string
contract Address,
string
sender,
document
document, //document must in document type.
string
currency ID
Return Value
object
update did document operation
[ parameter did document structure ]
{
_hint: "mitum-did-document”,
"@context": string,
id: string,
authentication: (asymkeyAuth | socialLoginAuth)[],
verificationMethod: [],
service: {
id: string,
type: string,
service_end_point: string
}
}
type asymkeyAuth = {
_hint: "mitum-did-asymmetric-key-authentication”,
id: string,
authType: "EcdsaSecp256k1VerificationKey2019",
controller: string,
publicKey: string,
}
type socialLoginAuth = {
_hint: "mitum-did-social-login-authentication”,
id: string,
authType: "VerifiableCredential",
controller: string,
serviceEndpoint: string,
proof: {
verificationMethod: string
}
}
example1. Case of using document in object (json) format
const contract = "0x99e749E6e00fc6BA3E965881589D185cc5B447d4fca";
const sender = "0xe3a93FeDE11D53283091bD639BDd24c59b8B8C60fca";
const currencyId = "MCC";
const didDocument = {
"_hint": "mitum-did-document-v0.0.1",
"@context": "https://www.w3.org/ns/did/v1",
"id": "did:mitum:0xe3a93FeDE11D53283091bD639BDd24c59b8B8C60fca",
"authentication": [
{
"_hint": "mitum-did-social-login-authentication-v0.0.1",
"id": "did:dxd:0xe3a93FeDE11D53283091bD639BDd24c59b8B8C60fca#auth_key",
"authType": "EcdsaSecp256k1VerificationKey2019",
"controller": "did:mitum:0xe3a93FeDE11D53283091bD639BDd24c59b8B8C60fca",
"publicKey": "0225fc6d03f7843418f4df6c65a21ebecc6217a6cf90ec0e3f4746dff93fc8f210fpu"
}
],
"verificationMethod": [],
"service": {
"id": "did:mitum:0xe3a93FeDE11D53283091bD639BDd24c59b8B8C60fca",
"type": "mitumDappType",
"service_end_point": "http://localhost:3000"
}
};
const updateOperation = mitum.authdid.updateDocument(contract, sender, didDocument, currencyID);
console.log(updateOperation);
// output
Operation {
id: 'mitum',
fact: UpdateDocumentFact {
hint: Hint { s: 'mitum-did-update-did-document-operation-fact' },
token: Token { s: '2024-12-06 05:31:30.612 +0000 UTC' },
_hash: <Buffer 80 29 f9 31 96 a7 71 d4 6d 6f 7f 33 1a 4d 2f b9 cd a3 41 e1 54 6a 26 6a a4 14 d0 55 b5 1a dd 83>,
sender: Address {
s: '0xe3a93FeDE11D53283091bD639BDd24c59b8B8C60fca',
type: 'mitum'
},
contract: Address {
s: '0x99e749E6e00fc6BA3E965881589D185cc5B447d4fca',
type: 'mitum'
},
currency: CurrencyID { s: 'MCC' },
did: LongString {
s: 'did:mitum:0xe3a93FeDE11D53283091bD639BDd24c59b8B8C60fca'
},
document: Document {
hint: [Hint],
context: [LongString],
id: [LongString],
authentication: [Array],
verificationMethod: [],
service_id: [LongString],
service_type: [LongString],
service_end_point: [LongString]
}
},
hint: Hint { s: 'mitum-did-update-did-document-operation' },
_factSigns: [],
_hash: <Buffer >
}
example2. Case of using getDDocByDID and fix authentication info.
const contract = "0x99e749E6e00fc6BA3E965881589D185cc5B447d4fca";
const sender = "0xe3a93FeDE11D53283091bD639BDd24c59b8B8C60fca";
const currencyID = "MCC";
const did = "did:mitum:0xe3a93FeDE11D53283091bD639BDd24c59b8B8C60fca";
// Note: an asynchronous request.
const getAndUpdateDocument = async () => {
const info = await mitum.authdid.getDocument(contract, did);
if ('data' in info) {
const didDocument = info.data;
didDocument.authentication = ([
{
"_hint": "mitum-did-social-login-authentication-v0.0.1",
"id": "did:dxd:0xe3a93FeDE11D53283091bD639BDd24c59b8B8C60fca#auth_key",
"authType": "EcdsaSecp256k1VerificationKey2019",
"controller": "did:mitum:0xe3a93FeDE11D53283091bD639BDd24c59b8B8C60fca",
"publicKey": "0225fc6d03f7843418f4df6c65a21ebecc6217a6cf90ec0e3f4746dff93fc8f210fpu"
}]
)
const op = mitum.authdid.updateDocument(contract, sender, didDocument, currencyID);
// add sign and send code here.
}
};
getAndUpdateDocument();
Last updated