UNPKG

@originvault/ov-id-sdk

Version:

A TypeScript SDK for managing decentralized identities (DIDs) and verifiable credentials (VCs)

74 lines 3.06 kB
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