ontology-ts-sdk
Version:
Comprehensive TypeScript library for the Ontology blockchain.
128 lines (127 loc) • 3.95 kB
TypeScript
import { Address, PrivateKey, Signature, SignatureScheme } from '../crypto';
import { AttestNotifyEvent } from './attestNotifyEvent';
import { ClaimProof } from './claimProof';
import { Message, Metadata } from './message';
/**
* Type of revocation.
*/
export declare enum RevocationType {
AttestContract = "AttestContract",
RevocationList = "RevocationList"
}
/**
* Revocation definition.
*/
export interface Revocation {
/**
* Type of revocation.
*/
type: RevocationType;
/**
* Url of revocation list if type is RevocationList
*/
url?: string;
/**
* Address of attest contract if type is AttestContract
*/
addr?: string;
}
/**
* Verifiable claim.
*
* TODO: override verify to add claim proof verification.
*/
export declare class Claim extends Message {
static deserialize(jwt: string): Claim;
version: string;
context: string;
content: any;
revocation?: Revocation;
useProof: boolean;
proof?: ClaimProof;
constructor(metadata: Metadata, signature?: Signature | undefined, useProof?: boolean);
/**
* Overrides default message verification with added attest verification.
*
* TODO: return more than boolean
*
* const VerifyOntidClaimResult = {
* CLAIM_NOT_ONCHAIN : 'CLAIM_NOT_ONCHAIN',
* INVALID_SIGNATURE : 'INVALID_SIGNATURE',
* PK_IN_REVOKED : 'PK_IN_REVOKED',
* NO_ISSUER_PK : 'NO_ISSUER_PK',
* EXPIRED_CLAIM : 'EXPIRED_CLAIM',
* REVOKED_CLAIM : 'REVOKED_CLAIM',
* VALID_CLAIM : 'VALID_CLAIM'
* };
*
* @param url Restful endpoint of Ontology node
* @param checkAttest Should be the attest tested
*/
verify(url: string, checkAttest?: boolean): Promise<boolean>;
/**
* Serializes the claim into JWT/JWT-X format.
*
* Override default implementation by adding proof if available.
*/
serialize(): string;
/**
* Attests the claim onto blockchain.
*
* @param url Websocket endpoint of Ontology node
* @param privateKey Private key to sign the transaction
* @param gasPrice gasPrice
* @param gasLimit gasLimit
* @param payer payer
*/
attest(url: string, gasPrice: string, gasLimit: string, payer: Address, privateKey: PrivateKey): Promise<AttestNotifyEvent>;
/**
* Revokes claim attest from blockchain.
*
* @param gas the cost of the transactoin
* @param payer the payer of the cost
* @param privateKey Private key to sign the transaction
* @param url Websocket endpoint of Ontology node
* @param gasPrice gasPrice
* @param gasLimit gasLimit
* @param payer payer
*/
revoke(url: string, gasPrice: string, gasLimit: string, payer: Address, privateKey: PrivateKey): Promise<boolean>;
/**
* Gets status of the claim attest.
*
* @param url Restful endpoint of Ontology node
*/
getStatus(url: string): Promise<boolean>;
protected payloadToJSON(): any;
protected payloadFromJSON(json: any): void;
/**
* Serializes the header into JWT/JWT-X encoded header.
*
* Override default implementation by adding proof if available.
*
* @param algorithm Signature algorithm used
* @param publicKeyId The ID of a signature public key
*/
protected serializeHeader(algorithm: SignatureScheme | undefined, publicKeyId: string | undefined): string;
/**
* Serializes the proof into JWT-X.
*/
protected serializeProof(): string;
}
/**
* Helper class for deserializing GetStatus response.
* fixme: Ontology node changed the response
*/
export declare class GetStatusResponse {
static deserialize(r: any): GetStatusResponse;
claimId: string;
issuerId: string;
subjectId: string;
status: Status;
}
export declare enum Status {
REVOKED = "00",
ATTESTED = "01",
NOTFOUND = "-1"
}