@portkey/did
v2.16.0-alpha.0
Published
<p align="center"> <a href="https://portkeydocs.readthedocs.io/en/pre-release/PortkeyDIDSDK/index.html"> <img width="200" src= "https://raw.githubusercontent.com/Portkey-Wallet/portkey-web/master/logo.png"/> </a> </p>
Downloads
3,774
Maintainers
Keywords
Readme
Prerequisites
Package.json Scripts
| Script | Description |
| -------- | -------------------------------------------------- |
| clean | Uses rm
to remove dist/
|
| build | Uses tsc
to build package and dependent packages |
| lint | Uses eslint
to lint package |
| lint:fix | Uses eslint
to check and fix any warnings |
| format | Uses prettier
to format the code |
Getting Started
The @portkey/did
library is a collection of modules that contain functionality for the did ecosystem.
@portkey/accounts
is for the portkey account.@portkey/utils
is for the portkey utils.@portkey/contracts
is for the portkey contracts.@portkey/graphql
is for the portkey graphql.@portkey/request
is for the portkey request.@portkey/types
is for the portkey types.@portkey/utils
is for the portkey utils.@portkey/validator
is for the portkey validator.
Installation
Using NPM
npm install @portkey/did
Using Yarn
yarn add @portkey/did
After that you need configure did server node、graphQL node、storage suite.
class Store implements IStorageSuite {
async getItem(key: string) {
return localStorage.getItem(key);
}
async setItem(key: string, value: string) {
return localStorage.setItem(key, value);
}
async removeItem(key: string) {
return localStorage.removeItem(key);
}
}
did.setConfig({
requestDefaults: {
baseURL: 'your did server node',
timeout: 'timeout', // optional default 8000ms
},
graphQLUrl: 'your graphQL node',
storageMethod: new Store(),
});
That’s it! now you can use the did
object.
@portkey/did
API Reference
did.setConfig
Where you configure did server node, graphQL node, storage suite.
did.setConfig({
requestDefaults: {
baseURL: 'you did server node',
timeout: 'timeout', // optional default 8000ms
},
graphQLUrl: 'your graphQL node',
storageMethod: 'your storage suite',
});
did.login
type: loginAccount
Email or mobile phone number or Google or Apple login.
did.login(type: 'loginAccount', params: AccountLoginParams): Promise<LoginResult>;
Example
did.login('loginAccount', {
chainId: 'chainId',
loginGuardianIdentifier: 'loginGuardianIdentifier',
guardiansApproved: [
{
type: 'Email',
identifier: 'identifier',
verifierId: 'verifierId',
verificationDoc: 'verificationDoc',
signature: 'signature',
},
],
extraData: 'extraData',
context: {
requestId: 'requestId',
clientId: 'clientId',
},
});
type: scan
Logged in management to add management.
login(type: 'scan', params: ScanLoginParams): Promise<true>;
Example
did.login('scan',{
chainId: 'chainId',
caHash: 'caHash',
managerInfo: {
address: 'address',
extraData: 'extraData'
};
})
getLoginStatus
getLoginStatus(params: { chainId: ChainId; sessionId: string }): Promise<RecoverStatusResult>;
Example
did.getLoginStatus({
chainId: 'chainId',
sessionId: 'sessionId',
});
logout
logout(params: EditManagerParams): Promise<boolean>;
Example
did.logout({ chainId: 'chainId' });
register
register(params: Omit<RegisterParams, 'manager'>): Promise<RegisterResult>;
Example
did.register({
type: 'Email',
loginGuardianIdentifier: 'loginGuardianIdentifier',
extraData: 'extraData',
chainId: 'chainId',
verifierId: 'verifierId',
verificationDoc: 'verificationDoc',
signature: 'signature',
context: {
requestId: 'requestId',
clientId: 'clientId',
},
});
getRegisterStatus
getRegisterStatus(params: { chainId: ChainId; sessionId: string }): Promise<RegisterStatusResult>;
Example
did.getRegisterStatus({
chainId: 'chainId',
sessionId: 'sessionId',
});
getHolderInfo
getHolderInfo by graphQL.
getHolderInfo(params: Pick<GetHolderInfoParams, 'manager' | 'chainId'>): Promise<GetCAHolderByManagerResult>;
Example
did.getHolderInfo({
manager: 'manager', // optional
chainId: 'chainId',
});
getHolderInfo by server.
getHolderInfo(params: Omit<GetHolderInfoParams, 'manager'>): Promise<IHolderInfo>;
Example
did.getHolderInfo({
caHash: 'caHash', // loginGuardianIdentifier and caHash choose one
loginGuardianIdentifier: 'loginGuardianIdentifier', // loginGuardianIdentifier and caHash choose one
chainId: 'chainId',
});
getVerifierServers
Get the VerifierServer information of the corresponding chain.
getVerifierServers(chainId: ChainId): Promise<VerifierItem[]>;
Example
did.getVerifierServers({
chainId: 'chainId',
});
check manager is exist
Check whether the manager has management permissions for the account.
checkManagerIsExist(params:{chainId: ChainId, caHash:string, manager:string}): Promise<boolean>;
Example
did.checkManagerIsExist({
chainId: 'chainId',
caHash: 'caHash',
manager: 'manager'
});
services
services.getVerificationCode
send verification code.
getVerificationCode(params: SendVerificationCodeRequestParams): Promise<SendVerificationCodeResult>;
Example
did.services.getVerificationCode({
params: {
chainId: 'chainId',
guardianIdentifier: 'guardianIdentifier',
type: 'Email',
verifierId: 'verifierId',
operationType: 'operationType',
},
headers: {
reCaptchaToken: 'reCaptchaToken',
},
});
services.verifyVerificationCode
verify verification code.
verifyVerificationCode(params: VerifyVerificationCodeParams): Promise<VerifyVerificationCodeResult>;
Example
did.services.verifyVerificationCode({
verifierSessionId: 'verifierSessionId',
chainId: 'chainId',
guardianIdentifier: 'guardianIdentifier',
verifierId: 'verifierId',
verificationCode: 'verificationCode',
operationType: 'operationType',
});
services.verifyGoogleToken
verify Google token.
verifyGoogleToken(params: VerifierSocialTokenParams): Promise<VerifyVerificationCodeResult>;
Example
did.services.verifyGoogleToken({
chainId: 'chainId',
accessToken: 'accessToken',
verifierId: 'verifierId',
operationType: 'operationType',
});
services.verifyAppleToken
verify Apple token.
verifyAppleToken(params: VerifyAppleTokenParams): Promise<VerifyVerificationCodeResult>;
Example
did.services.verifyAppleToken({
chainId: 'chainId',
verifierId: 'verifierId',
identityToken: 'identityToken',
operationType: 'operationType',
});
services.sendAppleUserExtraInfo
send Apple user extra info.
sendAppleUserExtraInfo(params: SendAppleUserExtraInfoParams): Promise<SendAppleUserExtraInfoResult>;
Example
did.services.sendAppleUserExtraInfo({
identityToken: 'identityToken',
userInfo: {
name: {
firstName: 'firstName',
lastName: 'lastName',
},
email: 'email',
},
});