Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 11 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,18 @@
"ts-node": "^10.9.1",
"typescript": "^4.8.4"
},
"type": "commonjs",
"dependencies": {
"@veramo/core": "^4.0.0",
"@veramo/credential-w3c": "^4.0.2",
"@veramo/data-store": "^4.0.2",
"@veramo/did-manager": "^4.0.0",
"@veramo/did-provider-ethr": "^4.0.0",
"@veramo/did-provider-web": "^4.0.0",
"@veramo/did-resolver": "^4.0.2",
"@veramo/key-manager": "^4.0.2",
"@veramo/kms-local": "^4.0.2",
"@veramo/core": "4.3.1-next.13",
"@veramo/core-types": "4.3.1-next.13",
"@veramo/credential-w3c": "4.3.1-next.13",
"@veramo/data-store": "4.3.1-next.13",
"@veramo/did-manager": "4.3.1-next.13",
"@veramo/did-provider-ethr": "4.3.1-next.13",
"@veramo/did-provider-web": "4.3.1-next.13",
"@veramo/did-resolver": "4.3.1-next.13",
"@veramo/key-manager": "4.3.1-next.13",
"@veramo/kms-local": "4.3.1-next.13",
"ethr-did-resolver": "^7.0.2",
"sqlite3": "^5.1.2",
"web-did-resolver": "^2.0.21"
Expand Down
6 changes: 4 additions & 2 deletions src/create-credential.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { agent } from './veramo/setup'
const { getAgent } = require('./veramo/setup')

async function main() {
const agent = await getAgent()
const identifier = await agent.didManagerGetByAlias({ alias: 'default' })

const verifiableCredential = await agent.createVerifiableCredential({
Expand All @@ -17,4 +18,5 @@ async function main() {
console.log(JSON.stringify(verifiableCredential, null, 2))
}

main().catch(console.log)
main().catch(console.log)
export {}
6 changes: 4 additions & 2 deletions src/create-identifier.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
import { agent } from './veramo/setup'
const { getAgent } = require('./veramo/setup')

async function main() {
const agent = await getAgent()
const identifier = await agent.didManagerCreate({ alias: 'default' })
console.log(`New identifier created`)
console.log(JSON.stringify(identifier, null, 2))
}

main().catch(console.log)
main().catch(console.log)
export {}
8 changes: 5 additions & 3 deletions src/list-identifiers.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
import { agent } from './veramo/setup'
const { getAgent } = require('./veramo/setup')

async function main() {
const agent = await getAgent()
const identifiers = await agent.didManagerFind()

console.log(`There are ${identifiers.length} identifiers`)

if (identifiers.length > 0) {
identifiers.map((id) => {
identifiers.map((id: any) => {
console.log(id)
console.log('..................')
})
}
}

main().catch(console.log)
main().catch(console.log)
export {}
76 changes: 42 additions & 34 deletions src/veramo/setup.ts
Original file line number Diff line number Diff line change
@@ -1,59 +1,64 @@
// Core interfaces
import { createAgent, IDIDManager, IResolver, IDataStore, IKeyManager, ICredentialPlugin } from '@veramo/core'
// This will be the name for the local sqlite database for demo purposes
const DATABASE_FILE = 'database.sqlite'

// Core identity manager plugin
import { DIDManager } from '@veramo/did-manager'
// You will need to get a project ID from infura https://www.infura.io
const INFURA_PROJECT_ID = '33aab9e0334c44b0a2e0c57c15302608'

// Ethr did identity provider
import { EthrDIDProvider } from '@veramo/did-provider-ethr'
// This will be the secret key for the KMS
const KMS_SECRET_KEY =
'c0710059b687bf53009f7b935903ba48334e569780851008392f3e7f595c347a'
const { Resolver } = require('did-resolver')
const { getResolver: ethrDidResolver } = require('ethr-did-resolver')
const { getResolver: webDidResolver } = require('web-did-resolver')
import { TAgent, IDIDManager, IResolver, IDataStore, IKeyManager, ICredentialPlugin } from '@veramo/core-types'

// Web did identity provider
import { WebDIDProvider } from '@veramo/did-provider-web'
async function getAgent(): Promise<TAgent<IDIDManager & IKeyManager & IDataStore & IResolver & ICredentialPlugin>> {
// Core interfaces
const { createAgent } = await import('@veramo/core')

// Core key manager plugin
import { KeyManager } from '@veramo/key-manager'
// Core identity manager plugin
const { DIDManager } = await import('@veramo/did-manager')

// Custom key management system for RN
import { KeyManagementSystem, SecretBox } from '@veramo/kms-local'
// Ethr did identity provider
const { EthrDIDProvider } = await import('@veramo/did-provider-ethr')

// W3C Verifiable Credential plugin
import { CredentialPlugin } from '@veramo/credential-w3c'
// Web did identity provider
const { WebDIDProvider } = await import('@veramo/did-provider-web')

// Custom resolvers
import { DIDResolverPlugin } from '@veramo/did-resolver'
import { Resolver } from 'did-resolver'
import { getResolver as ethrDidResolver } from 'ethr-did-resolver'
import { getResolver as webDidResolver } from 'web-did-resolver'
// Core key manager plugin
const { KeyManager } = await import('@veramo/key-manager')

// Storage plugin using TypeOrm
import { Entities, KeyStore, DIDStore, IDataStoreORM, PrivateKeyStore, migrations } from '@veramo/data-store'
// Custom key management system for RN
const { KeyManagementSystem, SecretBox } = await import('@veramo/kms-local')

// TypeORM is installed with `@veramo/data-store`
import { DataSource } from 'typeorm'
// W3C Verifiable Credential plugin
const { CredentialPlugin } = await import('@veramo/credential-w3c')

// This will be the name for the local sqlite database for demo purposes
const DATABASE_FILE = 'database.sqlite'
// Custom resolvers
const { DIDResolverPlugin } = await import('@veramo/did-resolver')

// You will need to get a project ID from infura https://www.infura.io
const INFURA_PROJECT_ID = '3586660d179141e3801c3895de1c2eba'

// This will be the secret key for the KMS
const KMS_SECRET_KEY =
'11b574d316903ced6cc3f4787bbcc3047d9c72d1da4d83e36fe714ef785d10c1'
// Storage plugin using TypeOrm
const { Entities, KeyStore, DIDStore, PrivateKeyStore, migrations } = await import('@veramo/data-store')

// TypeORM is installed with `@veramo/data-store`
const { createConnection } = await import('typeorm')

const dbConnection = new DataSource({

const dbConnection = createConnection({
type: 'sqlite',
database: DATABASE_FILE,
synchronize: false,
migrations,
migrationsRun: true,
logging: ['error', 'info', 'warn'],
entities: Entities,
}).initialize()
})

export const agent = createAgent<IDIDManager & IKeyManager & IDataStore & IDataStoreORM & IResolver & ICredentialPlugin>({
const agent = createAgent<IDIDManager & IKeyManager & IDataStore & IResolver & ICredentialPlugin>({
plugins: [
new KeyManager({
// @ts-ignore
store: new KeyStore(dbConnection),
kms: {
local: new KeyManagementSystem(new PrivateKeyStore(dbConnection, new SecretBox(KMS_SECRET_KEY))),
Expand Down Expand Up @@ -81,4 +86,7 @@ const KMS_SECRET_KEY =
}),
new CredentialPlugin(),
],
})
})
return agent
}
module.exports.getAgent = getAgent
6 changes: 4 additions & 2 deletions src/verify-credential.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { agent } from './veramo/setup'
const { getAgent } = require('./veramo/setup')

async function main() {
const agent = await getAgent()
const result = await agent.verifyCredential({
credential: {
"credentialSubject": {
Expand All @@ -26,4 +27,5 @@ async function main() {
console.log(`Credential verified`, result.verified)
}

main().catch(console.log)
main().catch(console.log)
export {}
4 changes: 3 additions & 1 deletion tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@
"preserveConstEnums": true,
"strict": true,
"target": "es6",
"module": "commonjs",
"lib": ["es6"],
"rootDir": "./",
"moduleResolution": "node",
"moduleResolution": "nodenext",
"esModuleInterop": true,
"downlevelIteration": true
}
Expand Down