@solidus-network/sdk 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +71 -0
- package/dist/chain/auth.d.ts +8 -0
- package/dist/chain/auth.d.ts.map +1 -0
- package/dist/chain/auth.js +78 -0
- package/dist/chain/auth.js.map +1 -0
- package/dist/chain/credentials.d.ts +17 -0
- package/dist/chain/credentials.d.ts.map +1 -0
- package/dist/chain/credentials.js +175 -0
- package/dist/chain/credentials.js.map +1 -0
- package/dist/chain/did.d.ts +16 -0
- package/dist/chain/did.d.ts.map +1 -0
- package/dist/chain/did.js +111 -0
- package/dist/chain/did.js.map +1 -0
- package/dist/chain/index.d.ts +13 -0
- package/dist/chain/index.d.ts.map +1 -0
- package/dist/chain/index.js +19 -0
- package/dist/chain/index.js.map +1 -0
- package/dist/chain/rpc.d.ts +9 -0
- package/dist/chain/rpc.d.ts.map +1 -0
- package/dist/chain/rpc.js +25 -0
- package/dist/chain/rpc.js.map +1 -0
- package/dist/chain/transaction.d.ts +27 -0
- package/dist/chain/transaction.d.ts.map +1 -0
- package/dist/chain/transaction.js +78 -0
- package/dist/chain/transaction.js.map +1 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +52 -0
- package/dist/index.js.map +1 -0
- package/dist/stub/credentials.d.ts +6 -0
- package/dist/stub/credentials.d.ts.map +1 -0
- package/dist/stub/credentials.js +123 -0
- package/dist/stub/credentials.js.map +1 -0
- package/dist/stub/crypto.d.ts +10 -0
- package/dist/stub/crypto.d.ts.map +1 -0
- package/dist/stub/crypto.js +38 -0
- package/dist/stub/crypto.js.map +1 -0
- package/dist/stub/db.d.ts +5 -0
- package/dist/stub/db.d.ts.map +1 -0
- package/dist/stub/db.js +28 -0
- package/dist/stub/db.js.map +1 -0
- package/dist/stub/did.d.ts +5 -0
- package/dist/stub/did.d.ts.map +1 -0
- package/dist/stub/did.js +52 -0
- package/dist/stub/did.js.map +1 -0
- package/dist/stub/migrations/001_stub_schema.sql +51 -0
- package/package.json +34 -0
package/dist/stub/db.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import postgres from 'postgres';
|
|
2
|
+
import { readFileSync } from 'node:fs';
|
|
3
|
+
import { join, dirname } from 'node:path';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
5
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
6
|
+
let _sql = null;
|
|
7
|
+
export function getSql() {
|
|
8
|
+
if (!_sql) {
|
|
9
|
+
const url = process.env['SOLIDUS_STUB_DB_URL'];
|
|
10
|
+
if (!url)
|
|
11
|
+
throw new Error('SOLIDUS_STUB_DB_URL is required when SOLIDUS_SDK_MODE=stub');
|
|
12
|
+
_sql = postgres(url, { max: 5 });
|
|
13
|
+
}
|
|
14
|
+
return _sql;
|
|
15
|
+
}
|
|
16
|
+
export async function runMigrations() {
|
|
17
|
+
const sql = getSql();
|
|
18
|
+
const migrationPath = join(__dirname, 'migrations', '001_stub_schema.sql');
|
|
19
|
+
const migration = readFileSync(migrationPath, 'utf-8');
|
|
20
|
+
await sql.unsafe(migration);
|
|
21
|
+
}
|
|
22
|
+
export async function closeConnection() {
|
|
23
|
+
if (_sql) {
|
|
24
|
+
await _sql.end();
|
|
25
|
+
_sql = null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=db.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/stub/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAEzD,IAAI,IAAI,GAAwB,IAAI,CAAA;AAEpC,MAAM,UAAU,MAAM;IACpB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;QAC9C,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;QACvF,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;IAClC,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAA;IACpB,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,qBAAqB,CAAC,CAAA;IAC1E,MAAM,SAAS,GAAG,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;IACtD,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;AAC7B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,IAAI,CAAC,GAAG,EAAE,CAAA;QAChB,IAAI,GAAG,IAAI,CAAA;IACb,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { DID, DIDDocument } from '@solidus-network/types';
|
|
2
|
+
export declare function didCreate(publicKeyHex: string): Promise<DID>;
|
|
3
|
+
export declare function didResolve(did: string): Promise<DIDDocument | null>;
|
|
4
|
+
export declare function didDeactivate(did: string, _signerKey: string): Promise<void>;
|
|
5
|
+
//# sourceMappingURL=did.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"did.d.ts","sourceRoot":"","sources":["../../src/stub/did.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAYtD,wBAAsB,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAWlE;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAgCzE;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKlF"}
|
package/dist/stub/did.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { getSql } from './db.js';
|
|
3
|
+
import { encodePublicKey } from './crypto.js';
|
|
4
|
+
export async function didCreate(publicKeyHex) {
|
|
5
|
+
const sql = getSql();
|
|
6
|
+
const id = `did:solidus:stub:${randomUUID()}`;
|
|
7
|
+
const now = new Date().toISOString();
|
|
8
|
+
await sql `
|
|
9
|
+
INSERT INTO stub_dids (did, public_key, controller, network)
|
|
10
|
+
VALUES (${id}, ${publicKeyHex}, ${id}, 'stub')
|
|
11
|
+
`;
|
|
12
|
+
return { id, controller: id, created: now, updated: now, network: 'stub' };
|
|
13
|
+
}
|
|
14
|
+
export async function didResolve(did) {
|
|
15
|
+
const sql = getSql();
|
|
16
|
+
const rows = await sql `
|
|
17
|
+
SELECT did, public_key, controller, created_at, updated_at
|
|
18
|
+
FROM stub_dids
|
|
19
|
+
WHERE did = ${did} AND deactivated = false
|
|
20
|
+
`;
|
|
21
|
+
if (rows.length === 0)
|
|
22
|
+
return null;
|
|
23
|
+
const row = rows[0];
|
|
24
|
+
const vmId = `${row.did}#key-1`;
|
|
25
|
+
return {
|
|
26
|
+
'@context': [
|
|
27
|
+
'https://www.w3.org/ns/did/v1',
|
|
28
|
+
'https://w3id.org/security/suites/ed25519-2020/v1',
|
|
29
|
+
],
|
|
30
|
+
id: row.did,
|
|
31
|
+
controller: row.controller,
|
|
32
|
+
verificationMethod: [
|
|
33
|
+
{
|
|
34
|
+
id: vmId,
|
|
35
|
+
type: 'Ed25519VerificationKey2020',
|
|
36
|
+
controller: row.did,
|
|
37
|
+
publicKeyMultibase: encodePublicKey(row.public_key),
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
authentication: [vmId],
|
|
41
|
+
assertionMethod: [vmId],
|
|
42
|
+
created: row.created_at.toISOString(),
|
|
43
|
+
updated: row.updated_at.toISOString(),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export async function didDeactivate(did, _signerKey) {
|
|
47
|
+
const sql = getSql();
|
|
48
|
+
await sql `
|
|
49
|
+
UPDATE stub_dids SET deactivated = true, updated_at = now() WHERE did = ${did}
|
|
50
|
+
`;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=did.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"did.js","sourceRoot":"","sources":["../../src/stub/did.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAU7C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,YAAoB;IAClD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAA;IACpB,MAAM,EAAE,GAAG,oBAAoB,UAAU,EAAE,EAAE,CAAA;IAC7C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAEpC,MAAM,GAAG,CAAA;;cAEG,EAAE,KAAK,YAAY,KAAK,EAAE;GACrC,CAAA;IAED,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;AAC5E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW;IAC1C,MAAM,GAAG,GAAG,MAAM,EAAE,CAAA;IACpB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAU;;;kBAGhB,GAAG;GAClB,CAAA;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAElC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAA;IACpB,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAA;IAE/B,OAAO;QACL,UAAU,EAAE;YACV,8BAA8B;YAC9B,kDAAkD;SACnD;QACD,EAAE,EAAE,GAAG,CAAC,GAAG;QACX,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,kBAAkB,EAAE;YAClB;gBACE,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,4BAA4B;gBAClC,UAAU,EAAE,GAAG,CAAC,GAAG;gBACnB,kBAAkB,EAAE,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC;aACpD;SACF;QACD,cAAc,EAAE,CAAC,IAAI,CAAC;QACtB,eAAe,EAAE,CAAC,IAAI,CAAC;QACvB,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE;QACrC,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE;KACtC,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW,EAAE,UAAkB;IACjE,MAAM,GAAG,GAAG,MAAM,EAAE,CAAA;IACpB,MAAM,GAAG,CAAA;8EACmE,GAAG;GAC9E,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS stub_signing_key (
|
|
2
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
3
|
+
private_key TEXT NOT NULL,
|
|
4
|
+
public_key TEXT NOT NULL,
|
|
5
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
6
|
+
);
|
|
7
|
+
|
|
8
|
+
CREATE TABLE IF NOT EXISTS stub_dids (
|
|
9
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
10
|
+
did TEXT NOT NULL UNIQUE,
|
|
11
|
+
public_key TEXT NOT NULL,
|
|
12
|
+
controller TEXT NOT NULL,
|
|
13
|
+
network TEXT NOT NULL DEFAULT 'stub',
|
|
14
|
+
deactivated BOOLEAN NOT NULL DEFAULT false,
|
|
15
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
16
|
+
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
CREATE TABLE IF NOT EXISTS stub_credentials (
|
|
20
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
21
|
+
credential_id TEXT NOT NULL UNIQUE,
|
|
22
|
+
subject_did TEXT NOT NULL,
|
|
23
|
+
issuer_did TEXT NOT NULL,
|
|
24
|
+
type TEXT[] NOT NULL,
|
|
25
|
+
claims JSONB NOT NULL,
|
|
26
|
+
proof_value TEXT NOT NULL,
|
|
27
|
+
issued_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
28
|
+
expires_at TIMESTAMPTZ,
|
|
29
|
+
revoked BOOLEAN NOT NULL DEFAULT false,
|
|
30
|
+
revoked_at TIMESTAMPTZ,
|
|
31
|
+
network TEXT NOT NULL DEFAULT 'stub'
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
CREATE TABLE IF NOT EXISTS stub_revocations (
|
|
35
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
36
|
+
credential_id TEXT NOT NULL,
|
|
37
|
+
revoked_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
CREATE TABLE IF NOT EXISTS stub_challenges (
|
|
41
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
42
|
+
challenge TEXT NOT NULL UNIQUE,
|
|
43
|
+
domain TEXT NOT NULL,
|
|
44
|
+
used BOOLEAN NOT NULL DEFAULT false,
|
|
45
|
+
expires_at TIMESTAMPTZ NOT NULL DEFAULT (now() + INTERVAL '5 minutes'),
|
|
46
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
CREATE INDEX IF NOT EXISTS idx_stub_dids_did ON stub_dids (did);
|
|
50
|
+
CREATE INDEX IF NOT EXISTS idx_stub_creds_subject ON stub_credentials (subject_did);
|
|
51
|
+
CREATE INDEX IF NOT EXISTS idx_stub_creds_id ON stub_credentials (credential_id);
|
package/package.json
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@solidus-network/sdk",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Solidus Network SDK — DID resolution, verifiable credential issuance and verification, and on-chain queries via JSON-RPC.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"types": "./dist/index.d.ts"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": ["dist", "README.md", "LICENSE"],
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"@noble/ed25519": "^2.1.0",
|
|
17
|
+
"@noble/hashes": "^1.5.0",
|
|
18
|
+
"@solidus-network/auth": "0.1.0",
|
|
19
|
+
"@solidus-network/types": "0.1.0",
|
|
20
|
+
"bs58": "^6.0.0",
|
|
21
|
+
"postgres": "^3.4.4"
|
|
22
|
+
},
|
|
23
|
+
"keywords": ["solidus", "did", "verifiable-credentials", "vc", "blockchain", "decentralized-identity", "sdk"],
|
|
24
|
+
"author": "Solidus Network (https://solidus.network)",
|
|
25
|
+
"license": "Apache-2.0",
|
|
26
|
+
"homepage": "https://solidus.network",
|
|
27
|
+
"bugs": { "url": "https://github.com/solidusnetwork/sdk/issues" },
|
|
28
|
+
"repository": {
|
|
29
|
+
"type": "git",
|
|
30
|
+
"url": "git+https://github.com/solidusnetwork/sdk.git",
|
|
31
|
+
"directory": "sdk"
|
|
32
|
+
},
|
|
33
|
+
"publishConfig": { "access": "public" }
|
|
34
|
+
}
|