@veramo/did-provider-web
Version:
Veramo plugin that can enable creation and control of did:web identifiers.
48 lines • 1.64 kB
JavaScript
import { AbstractIdentifierProvider } from '@veramo/did-manager';
import Debug from 'debug';
const debug = Debug('veramo:web-did:identifier-provider');
/**
* {@link @veramo/did-manager#DIDManager} identifier provider for `did:web` identifiers
* @public
*/
export class WebDIDProvider extends AbstractIdentifierProvider {
defaultKms;
constructor(options) {
super();
this.defaultKms = options.defaultKms;
}
async createIdentifier({ kms, alias, options }, context) {
const keyType = options?.keyType || 'Secp256k1';
const key = await context.agent.keyManagerCreate({ kms: kms || this.defaultKms, type: keyType });
const identifier = {
did: 'did:web:' + alias,
controllerKeyId: key.kid,
keys: [key],
services: [],
};
debug('Created', identifier.did);
return identifier;
}
async updateIdentifier(args, context) {
throw new Error('WebDIDProvider updateIdentifier not supported yet.');
}
async deleteIdentifier(identifier, context) {
for (const { kid } of identifier.keys) {
await context.agent.keyManagerDelete({ kid });
}
return true;
}
async addKey({ identifier, key, options }, context) {
return { success: true };
}
async addService({ identifier, service, options }, context) {
return { success: true };
}
async removeKey(args, context) {
return { success: true };
}
async removeService(args, context) {
return { success: true };
}
}
//# sourceMappingURL=web-did-provider.js.map