@midnight-ntwrk/midnight-did-api 0.4.0-snapshot.51.a3d433c5e196
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 +218 -0
- package/dist/api-logger.d.ts +3 -0
- package/dist/api-logger.js +8 -0
- package/dist/api-logger.js.map +1 -0
- package/dist/browser.d.ts +6 -0
- package/dist/browser.js +6 -0
- package/dist/browser.js.map +1 -0
- package/dist/config-profiles.d.ts +75 -0
- package/dist/config-profiles.js +75 -0
- package/dist/config-profiles.js.map +1 -0
- package/dist/config.d.ts +37 -0
- package/dist/config.js +50 -0
- package/dist/config.js.map +1 -0
- package/dist/contract-instance.d.ts +7 -0
- package/dist/contract-instance.js +6 -0
- package/dist/contract-instance.js.map +1 -0
- package/dist/contract-lifecycle-operations.d.ts +4 -0
- package/dist/contract-lifecycle-operations.js +40 -0
- package/dist/contract-lifecycle-operations.js.map +1 -0
- package/dist/contract-lifecycle.d.ts +6 -0
- package/dist/contract-lifecycle.js +7 -0
- package/dist/contract-lifecycle.js.map +1 -0
- package/dist/controller-operations.d.ts +9 -0
- package/dist/controller-operations.js +49 -0
- package/dist/controller-operations.js.map +1 -0
- package/dist/deploy.d.ts +6 -0
- package/dist/deploy.js +7 -0
- package/dist/deploy.js.map +1 -0
- package/dist/did-operations.d.ts +6 -0
- package/dist/did-operations.js +7 -0
- package/dist/did-operations.js.map +1 -0
- package/dist/did-subject.d.ts +6 -0
- package/dist/did-subject.js +11 -0
- package/dist/did-subject.js.map +1 -0
- package/dist/document-operations.d.ts +5 -0
- package/dist/document-operations.js +17 -0
- package/dist/document-operations.js.map +1 -0
- package/dist/domain-to-runtime.d.ts +4 -0
- package/dist/domain-to-runtime.js +7 -0
- package/dist/domain-to-runtime.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/ledger-mappers.d.ts +15 -0
- package/dist/ledger-mappers.js +137 -0
- package/dist/ledger-mappers.js.map +1 -0
- package/dist/ledger-state.d.ts +6 -0
- package/dist/ledger-state.js +24 -0
- package/dist/ledger-state.js.map +1 -0
- package/dist/lib.d.ts +15 -0
- package/dist/lib.js +16 -0
- package/dist/lib.js.map +1 -0
- package/dist/lightweight.d.ts +1 -0
- package/dist/lightweight.js +9 -0
- package/dist/lightweight.js.map +1 -0
- package/dist/logger-utils.d.ts +3 -0
- package/dist/logger-utils.js +26 -0
- package/dist/logger-utils.js.map +1 -0
- package/dist/network-mapping.d.ts +6 -0
- package/dist/network-mapping.js +20 -0
- package/dist/network-mapping.js.map +1 -0
- package/dist/package-paths.d.ts +10 -0
- package/dist/package-paths.js +31 -0
- package/dist/package-paths.js.map +1 -0
- package/dist/polyfills.d.ts +1 -0
- package/dist/polyfills.js +7 -0
- package/dist/polyfills.js.map +1 -0
- package/dist/private-state-storage.d.ts +8 -0
- package/dist/private-state-storage.js +18 -0
- package/dist/private-state-storage.js.map +1 -0
- package/dist/private-state.d.ts +13 -0
- package/dist/private-state.js +75 -0
- package/dist/private-state.js.map +1 -0
- package/dist/providers.d.ts +13 -0
- package/dist/providers.js +32 -0
- package/dist/providers.js.map +1 -0
- package/dist/release-artifacts.d.ts +41 -0
- package/dist/release-artifacts.js +60 -0
- package/dist/release-artifacts.js.map +1 -0
- package/dist/resolution.d.ts +15 -0
- package/dist/resolution.js +46 -0
- package/dist/resolution.js.map +1 -0
- package/dist/runtime-to-domain.d.ts +4 -0
- package/dist/runtime-to-domain.js +7 -0
- package/dist/runtime-to-domain.js.map +1 -0
- package/dist/seed.d.ts +1 -0
- package/dist/seed.js +13 -0
- package/dist/seed.js.map +1 -0
- package/dist/service-operations.d.ts +6 -0
- package/dist/service-operations.js +17 -0
- package/dist/service-operations.js.map +1 -0
- package/dist/transaction-intents.d.ts +9 -0
- package/dist/transaction-intents.js +27 -0
- package/dist/transaction-intents.js.map +1 -0
- package/dist/types.d.ts +60 -0
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -0
- package/dist/update.d.ts +7 -0
- package/dist/update.js +8 -0
- package/dist/update.js.map +1 -0
- package/dist/verification-method-operations.d.ts +19 -0
- package/dist/verification-method-operations.js +60 -0
- package/dist/verification-method-operations.js.map +1 -0
- package/dist/verification-method-relations.d.ts +13 -0
- package/dist/verification-method-relations.js +40 -0
- package/dist/verification-method-relations.js.map +1 -0
- package/dist/wallet-context.d.ts +3 -0
- package/dist/wallet-context.js +55 -0
- package/dist/wallet-context.js.map +1 -0
- package/dist/wallet-dust.d.ts +10 -0
- package/dist/wallet-dust.js +28 -0
- package/dist/wallet-dust.js.map +1 -0
- package/dist/wallet-keys.d.ts +5 -0
- package/dist/wallet-keys.js +27 -0
- package/dist/wallet-keys.js.map +1 -0
- package/dist/wallet-provider.d.ts +3 -0
- package/dist/wallet-provider.js +29 -0
- package/dist/wallet-provider.js.map +1 -0
- package/dist/wallet-sdk-config.d.ts +32 -0
- package/dist/wallet-sdk-config.js +23 -0
- package/dist/wallet-sdk-config.js.map +1 -0
- package/dist/wallet-state.d.ts +6 -0
- package/dist/wallet-state.js +32 -0
- package/dist/wallet-state.js.map +1 -0
- package/dist/wallet.d.ts +9 -0
- package/dist/wallet.js +17 -0
- package/dist/wallet.js.map +1 -0
- package/examples/README.md +60 -0
- package/examples/bootstrap-issuer-did.ts +313 -0
- package/examples/deploy-did.ts +40 -0
- package/examples/update-did.ts +84 -0
- package/package.json +88 -0
- package/tsconfig.build.json +5 -0
- package/tsconfig.json +23 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export const randomBytes = (length) => {
|
|
2
|
+
if (!globalThis.crypto?.getRandomValues) {
|
|
3
|
+
throw new Error("randomBytes requires Web Crypto getRandomValues");
|
|
4
|
+
}
|
|
5
|
+
const bytes = new Uint8Array(length);
|
|
6
|
+
globalThis.crypto.getRandomValues(bytes);
|
|
7
|
+
return bytes;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=lightweight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lightweight.js","sourceRoot":"","sources":["../src/lightweight.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAc,EAAc,EAAE;IACxD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { createWriteStream } from "node:fs";
|
|
2
|
+
import * as fs from "node:fs/promises";
|
|
3
|
+
import * as path from "node:path";
|
|
4
|
+
import pino from "pino";
|
|
5
|
+
import pinoPretty from "pino-pretty";
|
|
6
|
+
export const BigIntReplacer = (_key, value) => typeof value === "bigint" ? value.toString() : value;
|
|
7
|
+
export const createLogger = async (logPath) => {
|
|
8
|
+
await fs.mkdir(path.dirname(logPath), { recursive: true });
|
|
9
|
+
const pretty = pinoPretty({
|
|
10
|
+
colorize: true,
|
|
11
|
+
sync: true,
|
|
12
|
+
});
|
|
13
|
+
const level = process.env.DEBUG_LEVEL !== undefined &&
|
|
14
|
+
process.env.DEBUG_LEVEL !== null &&
|
|
15
|
+
process.env.DEBUG_LEVEL !== ""
|
|
16
|
+
? process.env.DEBUG_LEVEL
|
|
17
|
+
: "info";
|
|
18
|
+
return pino({
|
|
19
|
+
level,
|
|
20
|
+
depthLimit: 20,
|
|
21
|
+
}, pino.multistream([
|
|
22
|
+
{ stream: pretty, level },
|
|
23
|
+
{ stream: createWriteStream(logPath), level },
|
|
24
|
+
]));
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=logger-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger-utils.js","sourceRoot":"","sources":["../src/logger-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,KAAc,EAAE,EAAE,CAC7D,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AAEvD,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,OAAe,EAAwB,EAAE;IAC1E,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,MAAM,MAAM,GAA4B,UAAU,CAAC;QACjD,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;IACH,MAAM,KAAK,GACT,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,SAAS;QACrC,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,IAAI;QAChC,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,EAAE;QAC5B,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW;QACzB,CAAC,CAAC,MAAM,CAAC;IACb,OAAO,IAAI,CACT;QACE,KAAK;QACL,UAAU,EAAE,EAAE;KACf,EACD,IAAI,CAAC,WAAW,CAAC;QACf,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;QACzB,EAAE,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE;KAC9C,CAAC,CACH,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { MidnightNetwork } from "@midnight-ntwrk/midnight-did/midnight";
|
|
2
|
+
import type { NetworkId } from "@midnight-ntwrk/midnight-js-network-id";
|
|
3
|
+
export type RuntimeToDomainNetworkMap = Readonly<Record<NetworkId, MidnightNetwork>>;
|
|
4
|
+
export type DomainToRuntimeNetworkMap = Readonly<Record<Exclude<MidnightNetwork, MidnightNetwork.Offchain>, NetworkId>>;
|
|
5
|
+
export declare const RUNTIME_TO_DOMAIN_NETWORK_MAP: RuntimeToDomainNetworkMap;
|
|
6
|
+
export declare const DOMAIN_TO_RUNTIME_NETWORK_MAP: DomainToRuntimeNetworkMap;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { MidnightNetwork } from "@midnight-ntwrk/midnight-did/midnight";
|
|
2
|
+
const runtimeToDomainNetworkMap = {
|
|
3
|
+
undeployed: MidnightNetwork.Undeployed,
|
|
4
|
+
devnet: MidnightNetwork.DevNet,
|
|
5
|
+
testnet: MidnightNetwork.Testnet,
|
|
6
|
+
mainnet: MidnightNetwork.Mainnet,
|
|
7
|
+
preview: MidnightNetwork.Preview,
|
|
8
|
+
preprod: MidnightNetwork.Preprod,
|
|
9
|
+
};
|
|
10
|
+
const domainToRuntimeNetworkMap = {
|
|
11
|
+
[MidnightNetwork.Undeployed]: "undeployed",
|
|
12
|
+
[MidnightNetwork.DevNet]: "devnet",
|
|
13
|
+
[MidnightNetwork.Testnet]: "testnet",
|
|
14
|
+
[MidnightNetwork.Mainnet]: "mainnet",
|
|
15
|
+
[MidnightNetwork.Preview]: "preview",
|
|
16
|
+
[MidnightNetwork.Preprod]: "preprod",
|
|
17
|
+
};
|
|
18
|
+
export const RUNTIME_TO_DOMAIN_NETWORK_MAP = Object.freeze(runtimeToDomainNetworkMap);
|
|
19
|
+
export const DOMAIN_TO_RUNTIME_NETWORK_MAP = Object.freeze(domainToRuntimeNetworkMap);
|
|
20
|
+
//# sourceMappingURL=network-mapping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-mapping.js","sourceRoot":"","sources":["../src/network-mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAWxE,MAAM,yBAAyB,GAAG;IAChC,UAAU,EAAE,eAAe,CAAC,UAAU;IACtC,MAAM,EAAE,eAAe,CAAC,MAAM;IAC9B,OAAO,EAAE,eAAe,CAAC,OAAO;IAChC,OAAO,EAAE,eAAe,CAAC,OAAO;IAChC,OAAO,EAAE,eAAe,CAAC,OAAO;IAChC,OAAO,EAAE,eAAe,CAAC,OAAO;CACqB,CAAC;AAExD,MAAM,yBAAyB,GAAG;IAChC,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,YAAY;IAC1C,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,QAAQ;IAClC,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,SAAS;IACpC,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,SAAS;IACpC,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,SAAS;IACpC,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,SAAS;CAIrC,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GACxC,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,6BAA6B,GACxC,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const MIDNIGHT_DID_ZK_CONFIG_PATH_ENV = "MIDNIGHT_DID_ZK_CONFIG_PATH";
|
|
2
|
+
export interface ApiContractConfig {
|
|
3
|
+
readonly privateStateStoreName: "did-private-state";
|
|
4
|
+
readonly zkConfigPath: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const resolveApiPackageRoot: (moduleUrl: string) => string;
|
|
7
|
+
export declare const resolveDefaultZkConfigPath: (apiPackageRoot: string) => string;
|
|
8
|
+
export declare const createContractConfig: (apiPackageRoot: string) => ApiContractConfig;
|
|
9
|
+
export declare const currentDir: string;
|
|
10
|
+
export declare const contractConfig: ApiContractConfig;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
export const MIDNIGHT_DID_ZK_CONFIG_PATH_ENV = "MIDNIGHT_DID_ZK_CONFIG_PATH";
|
|
5
|
+
export const resolveApiPackageRoot = (moduleUrl) => {
|
|
6
|
+
const fileDir = path.dirname(fileURLToPath(moduleUrl));
|
|
7
|
+
const parentDir = path.resolve(fileDir, "..");
|
|
8
|
+
if (path.basename(parentDir) === "dist") {
|
|
9
|
+
return path.resolve(parentDir, "..");
|
|
10
|
+
}
|
|
11
|
+
return parentDir;
|
|
12
|
+
};
|
|
13
|
+
const configuredZkConfigPath = () => {
|
|
14
|
+
const value = process.env[MIDNIGHT_DID_ZK_CONFIG_PATH_ENV]?.trim();
|
|
15
|
+
return value ? path.resolve(value) : undefined;
|
|
16
|
+
};
|
|
17
|
+
const defaultZkConfigPathCandidates = (apiPackageRoot) => [
|
|
18
|
+
path.resolve(apiPackageRoot, "..", "contract", "dist", "managed", "did"),
|
|
19
|
+
path.resolve(apiPackageRoot, "..", "contract", "src", "managed", "did"),
|
|
20
|
+
];
|
|
21
|
+
export const resolveDefaultZkConfigPath = (apiPackageRoot) => {
|
|
22
|
+
const candidates = defaultZkConfigPathCandidates(apiPackageRoot);
|
|
23
|
+
return candidates.find((candidate) => existsSync(candidate)) ?? candidates[1];
|
|
24
|
+
};
|
|
25
|
+
export const createContractConfig = (apiPackageRoot) => ({
|
|
26
|
+
privateStateStoreName: "did-private-state",
|
|
27
|
+
zkConfigPath: configuredZkConfigPath() ?? resolveDefaultZkConfigPath(apiPackageRoot),
|
|
28
|
+
});
|
|
29
|
+
export const currentDir = resolveApiPackageRoot(import.meta.url);
|
|
30
|
+
export const contractConfig = createContractConfig(currentDir);
|
|
31
|
+
//# sourceMappingURL=package-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-paths.js","sourceRoot":"","sources":["../src/package-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,CAAC,MAAM,+BAA+B,GAAG,6BAA6B,CAAC;AAO7E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAiB,EAAU,EAAE;IACjE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAE9C,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,MAAM,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,GAAuB,EAAE;IACtD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,EAAE,IAAI,EAAE,CAAC;IACnE,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjD,CAAC,CAAC;AAEF,MAAM,6BAA6B,GAAG,CAAC,cAAsB,EAAY,EAAE,CAAC;IAC1E,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC;IACxE,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC;CACxE,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,cAAsB,EAAU,EAAE;IAC3E,MAAM,UAAU,GAAG,6BAA6B,CAAC,cAAc,CAAC,CAAC;IACjE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,cAAsB,EACH,EAAE,CAAC,CAAC;IACvB,qBAAqB,EAAE,mBAAmB;IAC1C,YAAY,EACV,sBAAsB,EAAE,IAAI,0BAA0B,CAAC,cAAc,CAAC;CACzE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,cAAc,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { WebSocket } from "ws";
|
|
2
|
+
// Apollo/ws expects a WebSocket constructor on globalThis in Node.js runtimes.
|
|
3
|
+
// Keep this side effect separate so deep imports can opt into the same runtime
|
|
4
|
+
// setup as the public package barrel.
|
|
5
|
+
// @ts-expect-error assign for apollo/ws
|
|
6
|
+
globalThis.WebSocket = WebSocket;
|
|
7
|
+
//# sourceMappingURL=polyfills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polyfills.js","sourceRoot":"","sources":["../src/polyfills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAE/B,+EAA+E;AAC/E,+EAA+E;AAC/E,sCAAsC;AACtC,wCAAwC;AACxC,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type LevelPrivateStateProviderConfig } from "@midnight-ntwrk/midnight-js-level-private-state-provider";
|
|
2
|
+
import { type Config } from "./config.js";
|
|
3
|
+
import { type MidnightDIDProviders, type MidnightDIDWalletContext } from "./types.js";
|
|
4
|
+
type DIDPrivateStateProviderOptions = Partial<LevelPrivateStateProviderConfig> & Pick<LevelPrivateStateProviderConfig, "accountId" | "privateStoragePasswordProvider">;
|
|
5
|
+
export declare const derivePrivateStoragePassword: (secretKey: Uint8Array) => string;
|
|
6
|
+
export declare const createPrivateStateProviderOptions: (ctx: Pick<MidnightDIDWalletContext, "unshieldedKeystore">, config: Pick<Config, "midnightDbName">, accountId: string) => DIDPrivateStateProviderOptions;
|
|
7
|
+
export declare const createDIDPrivateStateProvider: (ctx: Pick<MidnightDIDWalletContext, "unshieldedKeystore">, config: Pick<Config, "midnightDbName">, accountId: string) => MidnightDIDProviders["privateStateProvider"];
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { levelPrivateStateProvider, } from "@midnight-ntwrk/midnight-js-level-private-state-provider";
|
|
2
|
+
import { toHex } from "@midnight-ntwrk/midnight-js-utils";
|
|
3
|
+
import { contractConfig } from "./config.js";
|
|
4
|
+
// Kept from the original SDK wiring: the level provider expects a password
|
|
5
|
+
// shape with at least one non-hex suffix character.
|
|
6
|
+
const PRIVATE_STORAGE_PASSWORD_SUFFIX = "!A";
|
|
7
|
+
export const derivePrivateStoragePassword = (secretKey) => `${toHex(secretKey)}${PRIVATE_STORAGE_PASSWORD_SUFFIX}`;
|
|
8
|
+
export const createPrivateStateProviderOptions = (ctx, config, accountId) => {
|
|
9
|
+
const storagePassword = derivePrivateStoragePassword(ctx.unshieldedKeystore.getSecretKey());
|
|
10
|
+
return {
|
|
11
|
+
midnightDbName: config.midnightDbName,
|
|
12
|
+
privateStateStoreName: contractConfig.privateStateStoreName,
|
|
13
|
+
accountId,
|
|
14
|
+
privateStoragePasswordProvider: () => storagePassword,
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export const createDIDPrivateStateProvider = (ctx, config, accountId) => levelPrivateStateProvider(createPrivateStateProviderOptions(ctx, config, accountId));
|
|
18
|
+
//# sourceMappingURL=private-state-storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"private-state-storage.js","sourceRoot":"","sources":["../src/private-state-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,GAE1B,MAAM,0DAA0D,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAE1D,OAAO,EAAe,cAAc,EAAE,MAAM,aAAa,CAAC;AAQ1D,2EAA2E;AAC3E,oDAAoD;AACpD,MAAM,+BAA+B,GAAG,IAAI,CAAC;AAQ7C,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,SAAqB,EAAU,EAAE,CAC5E,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,+BAA+B,EAAE,CAAC;AAE1D,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAC/C,GAAyD,EACzD,MAAsC,EACtC,SAAiB,EACe,EAAE;IAClC,MAAM,eAAe,GAAG,4BAA4B,CAClD,GAAG,CAAC,kBAAkB,CAAC,YAAY,EAAE,CACtC,CAAC;IAEF,OAAO;QACL,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,qBAAqB,EAAE,cAAc,CAAC,qBAAqB;QAC3D,SAAS;QACT,8BAA8B,EAAE,GAAG,EAAE,CAAC,eAAe;KACtD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,GAAyD,EACzD,MAAsC,EACtC,SAAiB,EAC6B,EAAE,CAChD,yBAAyB,CAGvB,iCAAiC,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type MidnightDIDPrivateState, type MidnightDIDPrivateStateIds, type MidnightDIDProviders } from "./types.js";
|
|
2
|
+
export declare const isRestorableDIDPrivateState: (privateState: MidnightDIDPrivateState | null | undefined) => privateState is MidnightDIDPrivateState;
|
|
3
|
+
export declare const bindPrivateStateProvider: (providers: MidnightDIDProviders, contractAddress: string) => void;
|
|
4
|
+
export declare function restorePrivateState(providers: MidnightDIDProviders, privateStateId?: MidnightDIDPrivateStateIds): Promise<MidnightDIDPrivateState | null>;
|
|
5
|
+
export declare function requirePrivateState(providers: MidnightDIDProviders, privateStateId?: MidnightDIDPrivateStateIds): Promise<MidnightDIDPrivateState>;
|
|
6
|
+
export interface RecoverPendingControllerPrivateStateOptions {
|
|
7
|
+
readonly rotationFinalized: true;
|
|
8
|
+
}
|
|
9
|
+
export declare function savePrivateState(providers: MidnightDIDProviders, privateState: MidnightDIDPrivateState, privateStateId?: MidnightDIDPrivateStateIds): Promise<void>;
|
|
10
|
+
export declare function initPrivateState(providers: MidnightDIDProviders): Promise<MidnightDIDPrivateState>;
|
|
11
|
+
export declare function savePendingControllerPrivateState(providers: MidnightDIDProviders, privateState: MidnightDIDPrivateState): Promise<void>;
|
|
12
|
+
export declare function clearPendingControllerPrivateState(providers: MidnightDIDProviders): Promise<void>;
|
|
13
|
+
export declare function recoverPendingControllerPrivateState(providers: MidnightDIDProviders, options?: RecoverPendingControllerPrivateStateOptions): Promise<MidnightDIDPrivateState>;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { getLogger } from "./api-logger.js";
|
|
2
|
+
import { randomBytes } from "./lightweight.js";
|
|
3
|
+
import { MidnightDIDPendingControllerPrivateStateId, MidnightDIDPrivateStateId, } from "./types.js";
|
|
4
|
+
const isContractAddressUnsetError = (error) => error instanceof Error && error.message.includes("Contract address not set");
|
|
5
|
+
export const isRestorableDIDPrivateState = (privateState) => privateState != null &&
|
|
6
|
+
privateState.secretKey instanceof Uint8Array &&
|
|
7
|
+
privateState.secretKey.length === 32;
|
|
8
|
+
export const bindPrivateStateProvider = (providers, contractAddress) => {
|
|
9
|
+
providers.privateStateProvider.setContractAddress(contractAddress);
|
|
10
|
+
};
|
|
11
|
+
export async function restorePrivateState(providers, privateStateId = MidnightDIDPrivateStateId) {
|
|
12
|
+
let providedPrivateState = null;
|
|
13
|
+
try {
|
|
14
|
+
providedPrivateState =
|
|
15
|
+
await providers.privateStateProvider.get(privateStateId);
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
if (!isContractAddressUnsetError(error)) {
|
|
19
|
+
throw error;
|
|
20
|
+
}
|
|
21
|
+
getLogger().info("Private state restore skipped (contract address not set yet).");
|
|
22
|
+
}
|
|
23
|
+
if (isRestorableDIDPrivateState(providedPrivateState)) {
|
|
24
|
+
getLogger().info("The private state is restored from the privateStateProvider");
|
|
25
|
+
return providedPrivateState;
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
export async function requirePrivateState(providers, privateStateId = MidnightDIDPrivateStateId) {
|
|
30
|
+
const privateState = await restorePrivateState(providers, privateStateId);
|
|
31
|
+
if (!isRestorableDIDPrivateState(privateState)) {
|
|
32
|
+
throw new Error("DID controller private state is missing or malformed; import the controller secret before using this contract");
|
|
33
|
+
}
|
|
34
|
+
return privateState;
|
|
35
|
+
}
|
|
36
|
+
export async function savePrivateState(providers, privateState, privateStateId = MidnightDIDPrivateStateId) {
|
|
37
|
+
await providers.privateStateProvider.set(privateStateId, privateState);
|
|
38
|
+
}
|
|
39
|
+
export async function initPrivateState(providers) {
|
|
40
|
+
const providedPrivateState = await restorePrivateState(providers);
|
|
41
|
+
if (isRestorableDIDPrivateState(providedPrivateState)) {
|
|
42
|
+
return providedPrivateState;
|
|
43
|
+
}
|
|
44
|
+
getLogger().info("Creating the new private state..");
|
|
45
|
+
const secretKey = randomBytes(32);
|
|
46
|
+
const privateState = { secretKey };
|
|
47
|
+
try {
|
|
48
|
+
await savePrivateState(providers, privateState);
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
if (isContractAddressUnsetError(error)) {
|
|
52
|
+
getLogger().info("Private state save skipped (contract address not set yet).");
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
throw error;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return privateState;
|
|
59
|
+
}
|
|
60
|
+
export async function savePendingControllerPrivateState(providers, privateState) {
|
|
61
|
+
await savePrivateState(providers, privateState, MidnightDIDPendingControllerPrivateStateId);
|
|
62
|
+
}
|
|
63
|
+
export async function clearPendingControllerPrivateState(providers) {
|
|
64
|
+
await providers.privateStateProvider.remove(MidnightDIDPendingControllerPrivateStateId);
|
|
65
|
+
}
|
|
66
|
+
export async function recoverPendingControllerPrivateState(providers, options) {
|
|
67
|
+
if (options?.rotationFinalized !== true) {
|
|
68
|
+
throw new Error("Pending controller private state can only be recovered after confirming the key-rotation transaction finalized");
|
|
69
|
+
}
|
|
70
|
+
const pendingPrivateState = await requirePrivateState(providers, MidnightDIDPendingControllerPrivateStateId);
|
|
71
|
+
await savePrivateState(providers, pendingPrivateState);
|
|
72
|
+
await clearPendingControllerPrivateState(providers);
|
|
73
|
+
return pendingPrivateState;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=private-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"private-state.js","sourceRoot":"","sources":["../src/private-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import "./polyfills.js";
|
|
2
|
+
import { type Config } from "./config.js";
|
|
3
|
+
import { type MidnightDIDCircuits, type MidnightDIDWalletContext } from "./types.js";
|
|
4
|
+
import { createWalletAndMidnightProvider } from "./wallet-provider.js";
|
|
5
|
+
export { createWalletAndMidnightProvider };
|
|
6
|
+
export declare const configureProviders: (ctx: MidnightDIDWalletContext, config: Config) => Promise<{
|
|
7
|
+
privateStateProvider: import("@midnight-ntwrk/midnight-js-types").PrivateStateProvider<import("./types.js").MidnightDIDPrivateStateIds, import("@midnight-ntwrk/midnight-did-contract").DIDPrivateState>;
|
|
8
|
+
publicDataProvider: import("@midnight-ntwrk/midnight-js-types").PublicDataProvider;
|
|
9
|
+
zkConfigProvider: import("@midnight-ntwrk/midnight-js-node-zk-config-provider").NodeZkConfigProvider<MidnightDIDCircuits>;
|
|
10
|
+
proofProvider: import("@midnight-ntwrk/midnight-js-types").ProofProvider;
|
|
11
|
+
walletProvider: import("@midnight-ntwrk/midnight-js-types").WalletProvider & import("@midnight-ntwrk/midnight-js-types").MidnightProvider;
|
|
12
|
+
midnightProvider: import("@midnight-ntwrk/midnight-js-types").WalletProvider & import("@midnight-ntwrk/midnight-js-types").MidnightProvider;
|
|
13
|
+
}>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import "./polyfills.js";
|
|
2
|
+
import { contractConfig } from "./config.js";
|
|
3
|
+
import { createDIDPrivateStateProvider } from "./private-state-storage.js";
|
|
4
|
+
import { createWalletAndMidnightProvider } from "./wallet-provider.js";
|
|
5
|
+
export { createWalletAndMidnightProvider };
|
|
6
|
+
const loadProviderAdapters = async () => {
|
|
7
|
+
const [{ httpClientProofProvider }, { indexerPublicDataProvider }, { NodeZkConfigProvider },] = await Promise.all([
|
|
8
|
+
import("@midnight-ntwrk/midnight-js-http-client-proof-provider"),
|
|
9
|
+
import("@midnight-ntwrk/midnight-js-indexer-public-data-provider"),
|
|
10
|
+
import("@midnight-ntwrk/midnight-js-node-zk-config-provider"),
|
|
11
|
+
]);
|
|
12
|
+
return {
|
|
13
|
+
httpClientProofProvider,
|
|
14
|
+
indexerPublicDataProvider,
|
|
15
|
+
NodeZkConfigProvider,
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
export const configureProviders = async (ctx, config) => {
|
|
19
|
+
const { httpClientProofProvider, indexerPublicDataProvider, NodeZkConfigProvider, } = await loadProviderAdapters();
|
|
20
|
+
const walletAndMidnightProvider = await createWalletAndMidnightProvider(ctx);
|
|
21
|
+
const zkConfigProvider = new NodeZkConfigProvider(contractConfig.zkConfigPath);
|
|
22
|
+
const accountId = walletAndMidnightProvider.getCoinPublicKey();
|
|
23
|
+
return {
|
|
24
|
+
privateStateProvider: createDIDPrivateStateProvider(ctx, config, accountId),
|
|
25
|
+
publicDataProvider: indexerPublicDataProvider(config.indexer, config.indexerWS),
|
|
26
|
+
zkConfigProvider,
|
|
27
|
+
proofProvider: httpClientProofProvider(config.proofServer, zkConfigProvider),
|
|
28
|
+
walletProvider: walletAndMidnightProvider,
|
|
29
|
+
midnightProvider: walletAndMidnightProvider,
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=providers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,CAAC;AAExB,OAAO,EAAe,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAK3E,OAAO,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC;AAEvE,OAAO,EAAE,+BAA+B,EAAE,CAAC;AAE3C,MAAM,oBAAoB,GAAG,KAAK,IAAI,EAAE;IACtC,MAAM,CACJ,EAAE,uBAAuB,EAAE,EAC3B,EAAE,yBAAyB,EAAE,EAC7B,EAAE,oBAAoB,EAAE,EACzB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpB,MAAM,CAAC,wDAAwD,CAAC;QAChE,MAAM,CAAC,0DAA0D,CAAC;QAClE,MAAM,CAAC,qDAAqD,CAAC;KAC9D,CAAC,CAAC;IAEH,OAAO;QACL,uBAAuB;QACvB,yBAAyB;QACzB,oBAAoB;KACrB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,GAA6B,EAC7B,MAAc,EACd,EAAE;IACF,MAAM,EACJ,uBAAuB,EACvB,yBAAyB,EACzB,oBAAoB,GACrB,GAAG,MAAM,oBAAoB,EAAE,CAAC;IACjC,MAAM,yBAAyB,GAAG,MAAM,+BAA+B,CAAC,GAAG,CAAC,CAAC;IAC7E,MAAM,gBAAgB,GAAG,IAAI,oBAAoB,CAC/C,cAAc,CAAC,YAAY,CAC5B,CAAC;IACF,MAAM,SAAS,GAAG,yBAAyB,CAAC,gBAAgB,EAAE,CAAC;IAE/D,OAAO;QACL,oBAAoB,EAAE,6BAA6B,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC;QAC3E,kBAAkB,EAAE,yBAAyB,CAC3C,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,SAAS,CACjB;QACD,gBAAgB;QAChB,aAAa,EAAE,uBAAuB,CACpC,MAAM,CAAC,WAAW,EAClB,gBAAgB,CACjB;QACD,cAAc,EAAE,yBAAyB;QACzC,gBAAgB,EAAE,yBAAyB;KAC5C,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export declare const MIDNIGHT_DID_API_VERSION: "0.4.0-snapshot.51.a3d433c5e196";
|
|
2
|
+
export declare const MIDNIGHT_DID_PACKAGE_NAME: "@midnight-ntwrk/midnight-did-api";
|
|
3
|
+
export declare const MIDNIGHT_DID_NPM_REGISTRY: "https://registry.npmjs.org/";
|
|
4
|
+
export declare const MIDNIGHT_DID_GITHUB_REPOSITORY: "midnightntwrk/midnight-did";
|
|
5
|
+
export declare const MIDNIGHT_DID_GHCR_ARTIFACT_REPOSITORY: "ghcr.io/midnightntwrk/midnight-did-zk-artifacts";
|
|
6
|
+
export type MidnightDidReleaseChannel = "snapshot" | "rc" | "release";
|
|
7
|
+
export interface MidnightDidZkArtifactProviderLayout {
|
|
8
|
+
readonly proverKey: "keys/{circuitId}.prover";
|
|
9
|
+
readonly verifierKey: "keys/{circuitId}.verifier";
|
|
10
|
+
readonly zkir: "zkir/{circuitId}.bzkir";
|
|
11
|
+
}
|
|
12
|
+
export interface MidnightDidGithubReleaseArtifactLocation {
|
|
13
|
+
readonly repository: typeof MIDNIGHT_DID_GITHUB_REPOSITORY;
|
|
14
|
+
readonly tag: string;
|
|
15
|
+
readonly archiveUrl: string;
|
|
16
|
+
readonly manifestUrl: string;
|
|
17
|
+
readonly sha256Url: string;
|
|
18
|
+
}
|
|
19
|
+
export interface MidnightDidGhcrArtifactLocation {
|
|
20
|
+
readonly repository: typeof MIDNIGHT_DID_GHCR_ARTIFACT_REPOSITORY;
|
|
21
|
+
readonly reference: string;
|
|
22
|
+
}
|
|
23
|
+
export interface MidnightDidZkArtifactLocations {
|
|
24
|
+
readonly version: string;
|
|
25
|
+
readonly channel: MidnightDidReleaseChannel;
|
|
26
|
+
readonly npm: {
|
|
27
|
+
readonly packageName: typeof MIDNIGHT_DID_PACKAGE_NAME;
|
|
28
|
+
readonly registry: typeof MIDNIGHT_DID_NPM_REGISTRY;
|
|
29
|
+
};
|
|
30
|
+
readonly ghcr: MidnightDidGhcrArtifactLocation;
|
|
31
|
+
readonly githubRelease: MidnightDidGithubReleaseArtifactLocation | null;
|
|
32
|
+
readonly workflowArtifactName: string;
|
|
33
|
+
readonly archiveName: string;
|
|
34
|
+
readonly manifestName: string;
|
|
35
|
+
readonly sha256Name: string;
|
|
36
|
+
readonly providerLayout: MidnightDidZkArtifactProviderLayout;
|
|
37
|
+
}
|
|
38
|
+
export declare const safeMidnightDidArtifactVersion: (version: string) => string;
|
|
39
|
+
export declare const classifyMidnightDidReleaseVersion: (version: string) => MidnightDidReleaseChannel;
|
|
40
|
+
export declare const createMidnightDidZkArtifactLocations: (version?: string) => MidnightDidZkArtifactLocations;
|
|
41
|
+
export declare const MIDNIGHT_DID_ZK_ARTIFACT_LOCATIONS: MidnightDidZkArtifactLocations;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
export const MIDNIGHT_DID_API_VERSION = "0.4.0-snapshot.51.a3d433c5e196";
|
|
2
|
+
export const MIDNIGHT_DID_PACKAGE_NAME = "@midnight-ntwrk/midnight-did-api";
|
|
3
|
+
export const MIDNIGHT_DID_NPM_REGISTRY = "https://registry.npmjs.org/";
|
|
4
|
+
export const MIDNIGHT_DID_GITHUB_REPOSITORY = "midnightntwrk/midnight-did";
|
|
5
|
+
export const MIDNIGHT_DID_GHCR_ARTIFACT_REPOSITORY = "ghcr.io/midnightntwrk/midnight-did-zk-artifacts";
|
|
6
|
+
export const safeMidnightDidArtifactVersion = (version) => version.replace(/[^0-9A-Za-z._-]/gu, "_");
|
|
7
|
+
export const classifyMidnightDidReleaseVersion = (version) => {
|
|
8
|
+
if (/^\d+\.\d+\.\d+-snapshot\.[0-9A-Za-z._-]+$/u.test(version)) {
|
|
9
|
+
return "snapshot";
|
|
10
|
+
}
|
|
11
|
+
if (/^\d+\.\d+\.\d+-rc[1-9]\d*$/u.test(version)) {
|
|
12
|
+
return "rc";
|
|
13
|
+
}
|
|
14
|
+
if (/^\d+\.\d+\.\d+$/u.test(version)) {
|
|
15
|
+
return "release";
|
|
16
|
+
}
|
|
17
|
+
throw new Error(`Unsupported Midnight DID release version shape: ${version}`);
|
|
18
|
+
};
|
|
19
|
+
export const createMidnightDidZkArtifactLocations = (version = MIDNIGHT_DID_API_VERSION) => {
|
|
20
|
+
const channel = classifyMidnightDidReleaseVersion(version);
|
|
21
|
+
const safeVersion = safeMidnightDidArtifactVersion(version);
|
|
22
|
+
const archiveName = `midnight-did-zk-artifacts-${safeVersion}.tar.gz`;
|
|
23
|
+
const manifestName = `midnight-did-zk-artifacts-${safeVersion}.manifest.json`;
|
|
24
|
+
const sha256Name = `${archiveName}.sha256`;
|
|
25
|
+
const workflowArtifactName = `midnight-did-zk-artifacts-${version}`;
|
|
26
|
+
const releaseTag = channel === "snapshot" ? null : `v${version}`;
|
|
27
|
+
const githubRelease = releaseTag
|
|
28
|
+
? {
|
|
29
|
+
repository: MIDNIGHT_DID_GITHUB_REPOSITORY,
|
|
30
|
+
tag: releaseTag,
|
|
31
|
+
archiveUrl: `https://github.com/${MIDNIGHT_DID_GITHUB_REPOSITORY}/releases/download/${releaseTag}/${archiveName}`,
|
|
32
|
+
manifestUrl: `https://github.com/${MIDNIGHT_DID_GITHUB_REPOSITORY}/releases/download/${releaseTag}/${manifestName}`,
|
|
33
|
+
sha256Url: `https://github.com/${MIDNIGHT_DID_GITHUB_REPOSITORY}/releases/download/${releaseTag}/${sha256Name}`,
|
|
34
|
+
}
|
|
35
|
+
: null;
|
|
36
|
+
return {
|
|
37
|
+
version,
|
|
38
|
+
channel,
|
|
39
|
+
npm: {
|
|
40
|
+
packageName: MIDNIGHT_DID_PACKAGE_NAME,
|
|
41
|
+
registry: MIDNIGHT_DID_NPM_REGISTRY,
|
|
42
|
+
},
|
|
43
|
+
ghcr: {
|
|
44
|
+
repository: MIDNIGHT_DID_GHCR_ARTIFACT_REPOSITORY,
|
|
45
|
+
reference: `${MIDNIGHT_DID_GHCR_ARTIFACT_REPOSITORY}:${version}`,
|
|
46
|
+
},
|
|
47
|
+
githubRelease,
|
|
48
|
+
workflowArtifactName,
|
|
49
|
+
archiveName,
|
|
50
|
+
manifestName,
|
|
51
|
+
sha256Name,
|
|
52
|
+
providerLayout: {
|
|
53
|
+
proverKey: "keys/{circuitId}.prover",
|
|
54
|
+
verifierKey: "keys/{circuitId}.verifier",
|
|
55
|
+
zkir: "zkir/{circuitId}.bzkir",
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
export const MIDNIGHT_DID_ZK_ARTIFACT_LOCATIONS = createMidnightDidZkArtifactLocations();
|
|
60
|
+
//# sourceMappingURL=release-artifacts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release-artifacts.js","sourceRoot":"","sources":["../src/release-artifacts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,wBAAwB,GAAG,gCAAyC,CAAC;AAClF,MAAM,CAAC,MAAM,yBAAyB,GACpC,kCAA2C,CAAC;AAC9C,MAAM,CAAC,MAAM,yBAAyB,GACpC,6BAAsC,CAAC;AACzC,MAAM,CAAC,MAAM,8BAA8B,GACzC,4BAAqC,CAAC;AACxC,MAAM,CAAC,MAAM,qCAAqC,GAChD,iDAA0D,CAAC;AAuC7D,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,OAAe,EAAU,EAAE,CACxE,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;AAE5C,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAC/C,OAAe,EACY,EAAE;IAC7B,IAAI,4CAA4C,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/D,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,IAAI,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACrC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,mDAAmD,OAAO,EAAE,CAAC,CAAC;AAChF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAClD,UAAkB,wBAAwB,EACV,EAAE;IAClC,MAAM,OAAO,GAAG,iCAAiC,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,6BAA6B,WAAW,SAAS,CAAC;IACtE,MAAM,YAAY,GAAG,6BAA6B,WAAW,gBAAgB,CAAC;IAC9E,MAAM,UAAU,GAAG,GAAG,WAAW,SAAS,CAAC;IAC3C,MAAM,oBAAoB,GAAG,6BAA6B,OAAO,EAAE,CAAC;IACpE,MAAM,UAAU,GAAG,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;IACjE,MAAM,aAAa,GAAG,UAAU;QAC9B,CAAC,CAAC;YACE,UAAU,EAAE,8BAA8B;YAC1C,GAAG,EAAE,UAAU;YACf,UAAU,EAAE,sBAAsB,8BAA8B,sBAAsB,UAAU,IAAI,WAAW,EAAE;YACjH,WAAW,EAAE,sBAAsB,8BAA8B,sBAAsB,UAAU,IAAI,YAAY,EAAE;YACnH,SAAS,EAAE,sBAAsB,8BAA8B,sBAAsB,UAAU,IAAI,UAAU,EAAE;SAChH;QACH,CAAC,CAAC,IAAI,CAAC;IAET,OAAO;QACL,OAAO;QACP,OAAO;QACP,GAAG,EAAE;YACH,WAAW,EAAE,yBAAyB;YACtC,QAAQ,EAAE,yBAAyB;SACpC;QACD,IAAI,EAAE;YACJ,UAAU,EAAE,qCAAqC;YACjD,SAAS,EAAE,GAAG,qCAAqC,IAAI,OAAO,EAAE;SACjE;QACD,aAAa;QACb,oBAAoB;QACpB,WAAW;QACX,YAAY;QACZ,UAAU;QACV,cAAc,EAAE;YACd,SAAS,EAAE,yBAAyB;YACpC,WAAW,EAAE,2BAA2B;YACxC,IAAI,EAAE,wBAAwB;SAC/B;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kCAAkC,GAC7C,oCAAoC,EAAE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { MidnightDIDDocument } from "@midnight-ntwrk/midnight-did";
|
|
2
|
+
import { type DIDResolutionErrorCode, type DIDDocumentMetadata } from "@midnight-ntwrk/midnight-did-domain";
|
|
3
|
+
import { type DeployedMidnightDIDContract, type MidnightDIDProviders } from "./types.js";
|
|
4
|
+
export declare const resolve: (providers: MidnightDIDProviders, didContract: DeployedMidnightDIDContract) => Promise<{
|
|
5
|
+
didDocument: MidnightDIDDocument;
|
|
6
|
+
didDocumentMetadata: DIDDocumentMetadata;
|
|
7
|
+
} | null>;
|
|
8
|
+
export type MidnightDIDResolutionResult = {
|
|
9
|
+
didDocument: MidnightDIDDocument | null;
|
|
10
|
+
didDocumentMetadata: DIDDocumentMetadata;
|
|
11
|
+
didResolutionMetadata: {
|
|
12
|
+
error?: DIDResolutionErrorCode;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
export declare const resolveDIDResolutionResult: (providers: MidnightDIDProviders, didContract: DeployedMidnightDIDContract) => Promise<MidnightDIDResolutionResult>;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { LedgerToDomain, } from "@midnight-ntwrk/midnight-did";
|
|
2
|
+
import { parseContractAddress } from "@midnight-ntwrk/midnight-did/midnight";
|
|
3
|
+
import { getLogger } from "./api-logger.js";
|
|
4
|
+
import { getMidnightNetwork } from "./did-subject.js";
|
|
5
|
+
import { getMidnightDIDLedgerState } from "./ledger-state.js";
|
|
6
|
+
import { BigIntReplacer } from "./logger-utils.js";
|
|
7
|
+
export const resolve = async (providers, didContract) => {
|
|
8
|
+
const network = getMidnightNetwork();
|
|
9
|
+
const contractAddress = didContract.deployTxData.public.contractAddress;
|
|
10
|
+
const midnightContractAddress = parseContractAddress(contractAddress);
|
|
11
|
+
const didContractState = await getMidnightDIDLedgerState(providers, midnightContractAddress);
|
|
12
|
+
if (didContractState === null) {
|
|
13
|
+
getLogger().info(`There is no Midnight DID contract deployed at ${contractAddress}.`);
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
const didDocument = LedgerToDomain.ledgerStateToDIDDocument(didContractState, network, midnightContractAddress);
|
|
17
|
+
const didDocumentMetadata = LedgerToDomain.ledgerStateToMetadata(didContractState);
|
|
18
|
+
getLogger().info(`MidnightDID Resolution Result:\n ${JSON.stringify({ didDocument, didDocumentMetadata }, BigIntReplacer, 2)}`);
|
|
19
|
+
return { didDocument, didDocumentMetadata };
|
|
20
|
+
};
|
|
21
|
+
export const resolveDIDResolutionResult = async (providers, didContract) => {
|
|
22
|
+
try {
|
|
23
|
+
const result = await resolve(providers, didContract);
|
|
24
|
+
if (result === null) {
|
|
25
|
+
return {
|
|
26
|
+
didDocument: null,
|
|
27
|
+
didDocumentMetadata: {},
|
|
28
|
+
didResolutionMetadata: { error: "notFound" },
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
didDocument: result.didDocument,
|
|
33
|
+
didDocumentMetadata: result.didDocumentMetadata,
|
|
34
|
+
didResolutionMetadata: {},
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
getLogger().error(`MidnightDID resolution failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
39
|
+
return {
|
|
40
|
+
didDocument: null,
|
|
41
|
+
didDocumentMetadata: {},
|
|
42
|
+
didResolutionMetadata: { error: "internalError" },
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=resolution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolution.js","sourceRoot":"","sources":["../src/resolution.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,GAEf,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAM7E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMnD,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAC1B,SAA+B,EAC/B,WAAwC,EAIhC,EAAE;IACV,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;IACrC,MAAM,eAAe,GAAG,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,eAAe,CAAC;IACxE,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,eAAe,CAAC,CAAC;IACtE,MAAM,gBAAgB,GAAG,MAAM,yBAAyB,CACtD,SAAS,EACT,uBAAuB,CACxB,CAAC;IACF,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;QAC9B,SAAS,EAAE,CAAC,IAAI,CACd,iDAAiD,eAAe,GAAG,CACpE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,WAAW,GAAG,cAAc,CAAC,wBAAwB,CACzD,gBAAgB,EAChB,OAAO,EACP,uBAAuB,CACxB,CAAC;IACF,MAAM,mBAAmB,GACvB,cAAc,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IACzD,SAAS,EAAE,CAAC,IAAI,CACd,yCAAyC,IAAI,CAAC,SAAS,CACrD,EAAE,WAAW,EAAE,mBAAmB,EAAE,EACpC,cAAc,EACd,CAAC,CACF,EAAE,CACJ,CAAC;IACF,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;AAC9C,CAAC,CAAC;AAUF,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,EAC7C,SAA+B,EAC/B,WAAwC,EACF,EAAE;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACrD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO;gBACL,WAAW,EAAE,IAAI;gBACjB,mBAAmB,EAAE,EAAE;gBACvB,qBAAqB,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;aAC7C,CAAC;QACJ,CAAC;QACD,OAAO;YACL,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;YAC/C,qBAAqB,EAAE,EAAE;SAC1B,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,SAAS,EAAE,CAAC,KAAK,CACf,kCACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACvD,EAAE,CACH,CAAC;QACF,OAAO;YACL,WAAW,EAAE,IAAI;YACjB,mBAAmB,EAAE,EAAE;YACvB,qBAAqB,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE;SAClD,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-to-domain.js","sourceRoot":"","sources":["../src/runtime-to-domain.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,GAE9B,MAAM,sBAAsB,CAAC;AAE9B,MAAM,OAAO,eAAe;IAC1B,MAAM,KAAK,UAAU;QACnB,OAAO,6BAA6B,CAAC;IACvC,CAAC;CACF"}
|
package/dist/seed.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const parseSeed: (value: string) => string;
|
package/dist/seed.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
const SEED_HEX_BYTES = 32;
|
|
3
|
+
const SEED_HEX_LENGTH = SEED_HEX_BYTES * 2;
|
|
4
|
+
const SeedSchema = z
|
|
5
|
+
.string()
|
|
6
|
+
.trim()
|
|
7
|
+
.transform((value) => value.toLowerCase())
|
|
8
|
+
.pipe(z
|
|
9
|
+
.string()
|
|
10
|
+
.regex(/^[0-9a-f]+$/u, "Seed must contain only hexadecimal characters")
|
|
11
|
+
.length(SEED_HEX_LENGTH, `Seed must be exactly ${SEED_HEX_LENGTH} hex characters (${SEED_HEX_BYTES} bytes)`));
|
|
12
|
+
export const parseSeed = (value) => SeedSchema.parse(value);
|
|
13
|
+
//# sourceMappingURL=seed.js.map
|
package/dist/seed.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../src/seed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,cAAc,GAAG,EAAE,CAAC;AAC1B,MAAM,eAAe,GAAG,cAAc,GAAG,CAAC,CAAC;AAE3C,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,EAAE;KACR,IAAI,EAAE;KACN,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;KACzC,IAAI,CACH,CAAC;KACE,MAAM,EAAE;KACR,KAAK,CAAC,cAAc,EAAE,+CAA+C,CAAC;KACtE,MAAM,CACL,eAAe,EACf,wBAAwB,eAAe,oBAAoB,cAAc,SAAS,CACnF,CACJ,CAAC;AAEJ,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Service } from "@midnight-ntwrk/midnight-did-domain";
|
|
2
|
+
import { type FinalizedTxData } from "@midnight-ntwrk/midnight-js-types";
|
|
3
|
+
import { type DeployedMidnightDIDContract } from "./types.js";
|
|
4
|
+
export declare const addService: (didContract: DeployedMidnightDIDContract, service: Service) => Promise<FinalizedTxData>;
|
|
5
|
+
export declare const updateService: (didContract: DeployedMidnightDIDContract, service: Service) => Promise<FinalizedTxData>;
|
|
6
|
+
export declare const removeService: (didContract: DeployedMidnightDIDContract, serviceId: string) => Promise<FinalizedTxData>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DIDContract } from "@midnight-ntwrk/midnight-did-contract";
|
|
2
|
+
import { normalizeBoundFragmentId } from "./did-subject.js";
|
|
3
|
+
import { serviceToLedger } from "./ledger-mappers.js";
|
|
4
|
+
export const addService = async (didContract, service) => {
|
|
5
|
+
const result = await didContract.callTx.setService(serviceToLedger(didContract, service), DIDContract.MapMutation.Insert);
|
|
6
|
+
return result.public;
|
|
7
|
+
};
|
|
8
|
+
export const updateService = async (didContract, service) => {
|
|
9
|
+
const result = await didContract.callTx.setService(serviceToLedger(didContract, service), DIDContract.MapMutation.Update);
|
|
10
|
+
return result.public;
|
|
11
|
+
};
|
|
12
|
+
export const removeService = async (didContract, serviceId) => {
|
|
13
|
+
const normalizedServiceId = normalizeBoundFragmentId(didContract, serviceId, "serviceId");
|
|
14
|
+
const result = await didContract.callTx.removeService(normalizedServiceId);
|
|
15
|
+
return result.public;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=service-operations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-operations.js","sourceRoot":"","sources":["../src/service-operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAIpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,WAAwC,EACxC,OAAgB,EACU,EAAE;IAC5B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,UAAU,CAChD,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,EACrC,WAAW,CAAC,WAAW,CAAC,MAAM,CAC/B,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,WAAwC,EACxC,OAAgB,EACU,EAAE;IAC5B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,UAAU,CAChD,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,EACrC,WAAW,CAAC,WAAW,CAAC,MAAM,CAC/B,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,WAAwC,EACxC,SAAiB,EACS,EAAE;IAC5B,MAAM,mBAAmB,GAAG,wBAAwB,CAClD,WAAW,EACX,SAAS,EACT,WAAW,CACZ,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAC3E,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as ledger from "@midnight-ntwrk/ledger-v8";
|
|
2
|
+
type SerializableIntent = {
|
|
3
|
+
serialize: () => Uint8Array;
|
|
4
|
+
};
|
|
5
|
+
export type TransactionIntentContainer = {
|
|
6
|
+
intents?: Map<number, SerializableIntent>;
|
|
7
|
+
};
|
|
8
|
+
export declare const signTransactionIntents: (tx: TransactionIntentContainer, signFn: (payload: Uint8Array) => ledger.Signature, proofMarker: "proof" | "pre-proof") => void;
|
|
9
|
+
export {};
|