UNPKG

@ew-did-registry/did-resolver-interface

Version:

The package resolve CRUD operations on DID Documents

82 lines (81 loc) 3.12 kB
import { BigNumber } from 'ethers'; import { IDIDDocument, DIDAttribute, IUpdateData, DelegateTypes, IPublicKey, IServiceEndpoint, IAuthentication, PubKeyType, DocumentSelector, IDIDLogData } from './models'; export interface IResolver { /** * Constructor takes keys and resolver settings to create a new Resolver * constructor(settings?: IResolverSettings); * * Private members: * settings; */ /** * Read method resolves the DID Document for the provided DID. * Should not be confused with “read” method in DID Document Lite, * which returns the required attribute from the DID Document. * * @param {string} did * @returns {Promise<IDIDDocument>} */ read(did: string): Promise<IDIDDocument>; /** * Returns the current owner for certain DID. * If DID document has not been created, did will be identical to address. * After creation DID owner can be changed. * * @param {string} did * @returns {Promise<string>} */ identityOwner(did: string): Promise<string>; /** * Checks if the delegate is present for a particular DID. * Returns boolean. * * @param {string} identityDID * @param {DelegateTypes} delegateType * @param {string} delegateDID * @returns {Promise<boolean>} */ validDelegate(identityDID: string, delegateType: DelegateTypes, delegateDID: string): Promise<boolean>; readAttribute(did: string, selector: DocumentSelector): Promise<IPublicKey | IServiceEndpoint | IAuthentication | undefined>; readOwnerPubKey(did: string): Promise<string | undefined>; /** * Reads events starting from specified block * * @param block {number} - block to start reading from * * @returns - part of document along with last read block */ readFromBlock(did: string, topBlock: BigNumber): Promise<IDIDLogData>; lastBlock(did: string): Promise<BigNumber>; } export interface IOperator extends IResolver { /** * Registers a DID-Document for a given DID, and defines the provided context. * * @param {string} did * @param {string} context * @returns {boolean} */ create(): Promise<boolean>; /** * Updates relevant attribute of the DID Document. * * @param {string} did * @param { DIDAttribute } attribute * @param { IUpdateData } value * @param { number } validity * @returns {boolean} */ update(did: string, attribute: DIDAttribute, value: IUpdateData, validity?: number | BigNumber): Promise<BigNumber>; /** * Attempts to deactivate the DID Document for a given DID. * Successful, if the transaction is accepted by the smart contract. * Deactivation should be done by the owner of DID. * * @param {string} did * @returns {boolean} */ deactivate(did: string): Promise<void>; revokeDelegate(did: string, delegateType: PubKeyType, delegateDID: string): Promise<boolean>; revokeAttribute(did: string, attributeType: DIDAttribute, updateData: IUpdateData): Promise<boolean>; }