@ew-did-registry/did-resolver-interface
Version:
The package resolve CRUD operations on DID Documents
82 lines (81 loc) • 3.12 kB
TypeScript
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>;
}