@originvault/ov-id-sdk
Version:
A TypeScript SDK for managing decentralized identities (DIDs) and verifiable credentials (VCs)
74 lines • 3.06 kB
JavaScript
import { createAgent } from '@veramo/core';
import { DIDManager, MemoryDIDStore } from '@veramo/did-manager';
import { KeyManager, MemoryKeyStore, MemoryPrivateKeyStore } from '@veramo/key-manager';
import { CredentialPlugin } from '@veramo/credential-w3c';
import { KeyManagementSystem } from '@veramo/kms-local';
import { DIDResolverPlugin } from '@veramo/did-resolver';
import { KeyDIDProvider } from '@veramo/did-provider-key';
import { CheqdDIDProvider } from '@cheqd/did-provider-cheqd';
import { Resolver } from 'did-resolver';
import dotenv from 'dotenv';
dotenv.config();
export const keyStore = new MemoryKeyStore();
export const privateKeyStore = new MemoryPrivateKeyStore();
export var CheqdNetwork;
(function (CheqdNetwork) {
CheqdNetwork["Mainnet"] = "mainnet";
CheqdNetwork["Testnet"] = "testnet";
})(CheqdNetwork || (CheqdNetwork = {}));
/**
* Creates a CheqdDIDProvider for the specified network type.
* @param networkType - The network type (Mainnet or Testnet).
* @param cosmosPayerSeed - The Cosmos payer seed.
* @param rpcUrl - The RPC URL.
* @returns A CheqdDIDProvider instance.
*/
export function createCheqdProvider(networkType, cosmosPayerSeed, rpcUrl) {
return new CheqdDIDProvider({
defaultKms: 'local',
networkType,
dkgOptions: { chain: networkType === CheqdNetwork.Mainnet ? 'cheqdMainnet' : 'cheqdTestnet' },
rpcUrl,
cosmosPayerSeed,
});
}
/**
* Creates an OVAgent with the specified plugins and resolvers.
* @param cheqdProvider - The CheqdDIDProvider instance.
* @param universalResolver - The universal resolver configuration.
* @param additionalResolvers - Additional resolvers to include.
* @returns A configured agent instance.
*/
export function createOVAgent(cheqdProvider, universalResolver, additionalResolvers = {}, cheqdTestnetProvider) {
const testnetProvider = cheqdTestnetProvider ? cheqdTestnetProvider : createCheqdProvider(CheqdNetwork.Testnet, process.env.COSMOS_PAYER_SEED || '', process.env.CHEQD_RPC_URL || 'https://rpc.cheqd.network');
return createAgent({
plugins: [
new KeyManager({
store: keyStore,
kms: {
local: new KeyManagementSystem(privateKeyStore),
},
}),
new DIDManager({
store: new MemoryDIDStore(),
defaultProvider: 'did:cheqd:mainnet',
providers: {
'did:cheqd': cheqdProvider,
'did:cheqd:mainnet': cheqdProvider,
'did:cheqd:testnet': testnetProvider,
'did:key': new KeyDIDProvider({
defaultKms: 'local',
}),
}
}),
new DIDResolverPlugin({
resolver: new Resolver({
...universalResolver,
...additionalResolvers
})
}),
new CredentialPlugin(),
],
});
}
//# sourceMappingURL=OVAgent.js.map