@0xpolygonid/js-sdk
Version:
SDK to work with Polygon ID
117 lines (116 loc) • 5 kB
TypeScript
import { BasicMessage, DIDDocument, IPackageManager, PackerParams } from '../types';
import { DID } from '@iden3/js-iden3-core';
import { Proposal, ProposalRequestCredential, ProposalRequestMessage, ProposalMessage } from '../types/protocol/proposal-request';
import { IIdentityWallet } from '../../identity';
import { AbstractMessageHandler, BasicHandlerOptions, IProtocolMessageHandler } from './message-handler';
/** @beta ProposalRequestCreationOptions represents proposal-request creation options */
export type ProposalRequestCreationOptions = {
credentials: ProposalRequestCredential[];
did_doc?: DIDDocument;
expires_time?: Date;
};
/** @beta ProposalCreationOptions represents proposal creation options */
export type ProposalCreationOptions = {
expires_time?: Date;
};
/**
* @beta
* createProposalRequest is a function to create protocol proposal-request protocol message
* @param {DID} sender - sender did
* @param {DID} receiver - receiver did
* @param {ProposalRequestCreationOptions} opts - creation options
* @returns `Promise<ProposalRequestMessage>`
*/
export declare function createProposalRequest(sender: DID, receiver: DID, opts: ProposalRequestCreationOptions): ProposalRequestMessage;
/**
* @beta
* createProposal is a function to create protocol proposal protocol message
* @param {DID} sender - sender did
* @param {DID} receiver - receiver did
* @param {Proposal[]} proposals - proposals
* @returns `Promise<ProposalRequestMessage>`
*/
export declare function createProposal(sender: DID, receiver: DID, proposals?: Proposal[], opts?: ProposalCreationOptions): ProposalMessage;
/**
* @beta
* Interface that allows the processing of the proposal-request
*
* @interface ICredentialProposalHandler
*/
export interface ICredentialProposalHandler {
/**
* @beta
* unpacks proposal-request
* @param {Uint8Array} request - raw byte message
* @returns `Promise<ProposalRequestMessage>`
*/
parseProposalRequest(request: Uint8Array): Promise<ProposalRequestMessage>;
/**
* @beta
* handle proposal-request
* @param {Uint8Array} request - raw byte message
* @param {ProposalRequestHandlerOptions} opts - handler options
* @returns {Promise<Uint8Array>}` - proposal response message
*/
handleProposalRequest(request: Uint8Array, opts?: ProposalRequestHandlerOptions): Promise<Uint8Array>;
/**
* @beta
* handle proposal protocol message
* @param {ProposalMessage} proposal - proposal message
* @param {ProposalHandlerOptions} opts - options
* @returns `Promise<{
proposal: ProposalMessage;
}>`
*/
handleProposal(proposal: ProposalMessage, opts?: ProposalHandlerOptions): Promise<{
proposal: ProposalMessage;
}>;
}
/** @beta ProposalRequestHandlerOptions represents proposal-request handler options */
export type ProposalRequestHandlerOptions = BasicHandlerOptions;
/** @beta ProposalHandlerOptions represents proposal handler options */
export type ProposalHandlerOptions = BasicHandlerOptions & {
proposalRequest?: ProposalRequestMessage;
};
/** @beta CredentialProposalHandlerParams represents credential proposal handler params */
export type CredentialProposalHandlerParams = {
agentUrl: string;
proposalResolverFn: (context: string, type: string) => Promise<Proposal>;
packerParams: PackerParams;
};
/**
*
* Allows to process ProposalRequest protocol message
* @beta
* @class CredentialProposalHandler
* @implements implements ICredentialProposalHandler interface
*/
export declare class CredentialProposalHandler extends AbstractMessageHandler implements ICredentialProposalHandler, IProtocolMessageHandler {
private readonly _packerMgr;
private readonly _identityWallet;
private readonly _params;
/**
* @beta Creates an instance of CredentialProposalHandler.
* @param {IPackageManager} _packerMgr - package manager to unpack message envelope
* @param {IIdentityWallet} _identityWallet - identity wallet
* @param {CredentialProposalHandlerParams} _params - credential proposal handler params
*
*/
constructor(_packerMgr: IPackageManager, _identityWallet: IIdentityWallet, _params: CredentialProposalHandlerParams);
handle(message: BasicMessage, context: ProposalRequestHandlerOptions): Promise<BasicMessage | null>;
/**
* @inheritdoc ICredentialProposalHandler#parseProposalRequest
*/
parseProposalRequest(request: Uint8Array): Promise<ProposalRequestMessage>;
private handleProposalRequestMessage;
/**
* @inheritdoc ICredentialProposalHandler#handleProposalRequest
*/
handleProposalRequest(request: Uint8Array, opts?: ProposalRequestHandlerOptions): Promise<Uint8Array>;
/**
* @inheritdoc ICredentialProposalHandler#handleProposal
*/
handleProposal(proposal: ProposalMessage, opts?: ProposalHandlerOptions): Promise<{
proposal: ProposalMessage;
}>;
}