zklicensing 0.1.0-beta.2 → 0.1.0-beta.21
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/README.md +417 -201
- package/build/agent.d.ts +371 -0
- package/build/agent.d.ts.map +1 -0
- package/build/agent.js +553 -0
- package/build/agent.js.map +1 -0
- package/build/agentActions.d.ts +841 -0
- package/build/agentActions.d.ts.map +1 -0
- package/build/agentActions.js +581 -0
- package/build/agentActions.js.map +1 -0
- package/build/agentRecord.d.ts +83 -0
- package/build/agentRecord.d.ts.map +1 -0
- package/build/agentRecord.js +69 -0
- package/build/agentRecord.js.map +1 -0
- package/build/agentVendor.d.ts +220 -0
- package/build/agentVendor.d.ts.map +1 -0
- package/build/agentVendor.js +306 -0
- package/build/agentVendor.js.map +1 -0
- package/build/appsLookup.d.ts +14 -0
- package/build/appsLookup.d.ts.map +1 -0
- package/build/appsLookup.js +12 -0
- package/build/appsLookup.js.map +1 -0
- package/build/archiveBootstrap.d.ts +31 -5
- package/build/archiveBootstrap.d.ts.map +1 -0
- package/build/archiveBootstrap.js +140 -47
- package/build/archiveBootstrap.js.map +1 -0
- package/build/atomicJson.d.ts +5 -0
- package/build/atomicJson.d.ts.map +1 -0
- package/build/atomicJson.js +55 -0
- package/build/atomicJson.js.map +1 -0
- package/build/bindClient.d.ts +85 -0
- package/build/bindClient.d.ts.map +1 -0
- package/build/bindClient.js +187 -0
- package/build/bindClient.js.map +1 -0
- package/build/buyClient.d.ts +27 -4
- package/build/buyClient.d.ts.map +1 -0
- package/build/buyClient.js +72 -26
- package/build/buyClient.js.map +1 -0
- package/build/chainHead.d.ts +61 -0
- package/build/chainHead.d.ts.map +1 -0
- package/build/chainHead.js +88 -0
- package/build/chainHead.js.map +1 -0
- package/build/compactMerkleMap.d.ts +72 -0
- package/build/compactMerkleMap.d.ts.map +1 -0
- package/build/compactMerkleMap.js +224 -0
- package/build/compactMerkleMap.js.map +1 -0
- package/build/contractInterface.d.ts +191 -51
- package/build/contractInterface.d.ts.map +1 -0
- package/build/contractInterface.js +234 -43
- package/build/contractInterface.js.map +1 -0
- package/build/contractTypes.d.ts +9 -0
- package/build/contractTypes.d.ts.map +1 -0
- package/build/contractTypes.js +28 -0
- package/build/contractTypes.js.map +1 -0
- package/build/countryStats.d.ts +12 -3
- package/build/countryStats.d.ts.map +1 -0
- package/build/countryStats.js +87 -23
- package/build/countryStats.js.map +1 -0
- package/build/deployClient.d.ts +138 -24
- package/build/deployClient.d.ts.map +1 -0
- package/build/deployClient.js +91 -31
- package/build/deployClient.js.map +1 -0
- package/build/deviceIdentity.d.ts +68 -0
- package/build/deviceIdentity.d.ts.map +1 -0
- package/build/deviceIdentity.js +209 -0
- package/build/deviceIdentity.js.map +1 -0
- package/build/freezeClient.d.ts +26 -6
- package/build/freezeClient.d.ts.map +1 -0
- package/build/freezeClient.js +30 -6
- package/build/freezeClient.js.map +1 -0
- package/build/generationClient.d.ts +6 -3
- package/build/generationClient.d.ts.map +1 -0
- package/build/generationClient.js +25 -38
- package/build/generationClient.js.map +1 -0
- package/build/holderSecret.d.ts +70 -0
- package/build/holderSecret.d.ts.map +1 -0
- package/build/holderSecret.js +76 -0
- package/build/holderSecret.js.map +1 -0
- package/build/index.d.ts +38 -38
- package/build/index.d.ts.map +1 -0
- package/build/index.js +97 -121
- package/build/index.js.map +1 -0
- package/build/keysClient.d.ts +142 -0
- package/build/keysClient.d.ts.map +1 -0
- package/build/keysClient.js +109 -0
- package/build/keysClient.js.map +1 -0
- package/build/licenseLeaf.d.ts +76 -0
- package/build/licenseLeaf.d.ts.map +1 -0
- package/build/licenseLeaf.js +189 -0
- package/build/licenseLeaf.js.map +1 -0
- package/build/licenseRecord.d.ts +68 -5
- package/build/licenseRecord.d.ts.map +1 -0
- package/build/licenseRecord.js +26 -1
- package/build/licenseRecord.js.map +1 -0
- package/build/licenseStore.d.ts +81 -4
- package/build/licenseStore.d.ts.map +1 -0
- package/build/licenseStore.js +400 -30
- package/build/licenseStore.js.map +1 -0
- package/build/licenseTrustless.d.ts +43 -0
- package/build/licenseTrustless.d.ts.map +1 -0
- package/build/licenseTrustless.js +180 -0
- package/build/licenseTrustless.js.map +1 -0
- package/build/manifestVerify.d.ts +29 -1
- package/build/manifestVerify.d.ts.map +1 -0
- package/build/manifestVerify.js +46 -4
- package/build/manifestVerify.js.map +1 -0
- package/build/minaPriceHistory.d.ts +9 -0
- package/build/minaPriceHistory.d.ts.map +1 -0
- package/build/minaPriceHistory.js +152 -0
- package/build/minaPriceHistory.js.map +1 -0
- package/build/onChainRoot.d.ts +60 -0
- package/build/onChainRoot.d.ts.map +1 -0
- package/build/onChainRoot.js +74 -0
- package/build/onChainRoot.js.map +1 -0
- package/build/ownershipLicenseHash.d.ts +25 -0
- package/build/ownershipLicenseHash.d.ts.map +1 -0
- package/build/ownershipLicenseHash.js +29 -0
- package/build/ownershipLicenseHash.js.map +1 -0
- package/build/ownershipSignature.d.ts +153 -0
- package/build/ownershipSignature.d.ts.map +1 -0
- package/build/ownershipSignature.js +297 -0
- package/build/ownershipSignature.js.map +1 -0
- package/build/permitCheckFlow.d.ts +155 -0
- package/build/permitCheckFlow.d.ts.map +1 -0
- package/build/permitCheckFlow.js +196 -0
- package/build/permitCheckFlow.js.map +1 -0
- package/build/permitDescribe.d.ts +124 -0
- package/build/permitDescribe.d.ts.map +1 -0
- package/build/permitDescribe.js +324 -0
- package/build/permitDescribe.js.map +1 -0
- package/build/permitInterface.d.ts +85 -0
- package/build/permitInterface.d.ts.map +1 -0
- package/build/permitInterface.js +121 -0
- package/build/permitInterface.js.map +1 -0
- package/build/permitMessages.d.ts +313 -0
- package/build/permitMessages.d.ts.map +1 -0
- package/build/permitMessages.js +462 -0
- package/build/permitMessages.js.map +1 -0
- package/build/permitProof.d.ts +108 -0
- package/build/permitProof.d.ts.map +1 -0
- package/build/permitProof.js +202 -0
- package/build/permitProof.js.map +1 -0
- package/build/permitRegistryRebuild.d.ts +166 -0
- package/build/permitRegistryRebuild.d.ts.map +1 -0
- package/build/permitRegistryRebuild.js +347 -0
- package/build/permitRegistryRebuild.js.map +1 -0
- package/build/permitTree.d.ts +88 -0
- package/build/permitTree.d.ts.map +1 -0
- package/build/permitTree.js +230 -0
- package/build/permitTree.js.map +1 -0
- package/build/permitsClient.d.ts +680 -0
- package/build/permitsClient.d.ts.map +1 -0
- package/build/permitsClient.js +597 -0
- package/build/permitsClient.js.map +1 -0
- package/build/proveErrors.d.ts +50 -0
- package/build/proveErrors.d.ts.map +1 -0
- package/build/proveErrors.js +76 -0
- package/build/proveErrors.js.map +1 -0
- package/build/receipt.d.ts +95 -0
- package/build/receipt.d.ts.map +1 -0
- package/build/receipt.js +84 -0
- package/build/receipt.js.map +1 -0
- package/build/refundClient.d.ts +7 -12
- package/build/refundClient.d.ts.map +1 -0
- package/build/refundClient.js +52 -21
- package/build/refundClient.js.map +1 -0
- package/build/registryTrustVerify.d.ts +78 -0
- package/build/registryTrustVerify.d.ts.map +1 -0
- package/build/registryTrustVerify.js +129 -0
- package/build/registryTrustVerify.js.map +1 -0
- package/build/releaseClient.d.ts +26 -0
- package/build/releaseClient.d.ts.map +1 -0
- package/build/releaseClient.js +65 -0
- package/build/releaseClient.js.map +1 -0
- package/build/renewClient.d.ts +28 -2
- package/build/renewClient.d.ts.map +1 -0
- package/build/renewClient.js +31 -27
- package/build/renewClient.js.map +1 -0
- package/build/seatName.d.ts +8 -0
- package/build/seatName.d.ts.map +1 -0
- package/build/seatName.js +136 -0
- package/build/seatName.js.map +1 -0
- package/build/slotConstants.d.ts +15 -0
- package/build/slotConstants.d.ts.map +1 -0
- package/build/slotConstants.js +17 -0
- package/build/slotConstants.js.map +1 -0
- package/build/statsClient.d.ts +61 -7
- package/build/statsClient.d.ts.map +1 -0
- package/build/statsClient.js +44 -5
- package/build/statsClient.js.map +1 -0
- package/build/successorChain.d.ts +35 -0
- package/build/successorChain.d.ts.map +1 -0
- package/build/successorChain.js +69 -0
- package/build/successorChain.js.map +1 -0
- package/build/taxId.d.ts +44 -0
- package/build/taxId.d.ts.map +1 -0
- package/build/taxId.js +212 -0
- package/build/taxId.js.map +1 -0
- package/build/trustAnchorVerify.d.ts +49 -0
- package/build/trustAnchorVerify.d.ts.map +1 -0
- package/build/trustAnchorVerify.js +432 -0
- package/build/trustAnchorVerify.js.map +1 -0
- package/build/trustAnchorVerifyCli.d.ts +45 -0
- package/build/trustAnchorVerifyCli.d.ts.map +1 -0
- package/build/trustAnchorVerifyCli.js +235 -0
- package/build/trustAnchorVerifyCli.js.map +1 -0
- package/build/txBroadcastClient.d.ts +26 -0
- package/build/txBroadcastClient.d.ts.map +1 -0
- package/build/txBroadcastClient.js +20 -0
- package/build/txBroadcastClient.js.map +1 -0
- package/build/unbindClient.d.ts +77 -0
- package/build/unbindClient.d.ts.map +1 -0
- package/build/unbindClient.js +169 -0
- package/build/unbindClient.js.map +1 -0
- package/build/units.d.ts +28 -0
- package/build/units.d.ts.map +1 -0
- package/build/units.js +65 -0
- package/build/units.js.map +1 -0
- package/build/vatRates.d.ts +54 -0
- package/build/vatRates.d.ts.map +1 -0
- package/build/vatRates.js +82 -0
- package/build/vatRates.js.map +1 -0
- package/build/vatRatesData.d.ts +5 -0
- package/build/vatRatesData.d.ts.map +1 -0
- package/build/vatRatesData.js +42 -0
- package/build/vatRatesData.js.map +1 -0
- package/build/vendorAccountClient.d.ts +66 -0
- package/build/vendorAccountClient.d.ts.map +1 -0
- package/build/vendorAccountClient.js +47 -0
- package/build/vendorAccountClient.js.map +1 -0
- package/build/verifyCore.d.ts +4 -1
- package/build/verifyCore.d.ts.map +1 -0
- package/build/verifyCore.js +21 -10
- package/build/verifyCore.js.map +1 -0
- package/build/verifyOffline.d.ts +85 -0
- package/build/verifyOffline.d.ts.map +1 -0
- package/build/verifyOffline.js +139 -0
- package/build/verifyOffline.js.map +1 -0
- package/build/verifyService.d.ts.map +1 -0
- package/build/verifyService.js +571 -501
- package/build/verifyService.js.map +1 -0
- package/build/verifyWithAncestors.d.ts +19 -0
- package/build/verifyWithAncestors.d.ts.map +1 -0
- package/build/verifyWithAncestors.js +127 -0
- package/build/verifyWithAncestors.js.map +1 -0
- package/build/zipToState.d.ts +2 -0
- package/build/zipToState.d.ts.map +1 -0
- package/build/zipToState.js +94 -0
- package/build/zipToState.js.map +1 -0
- package/package.json +141 -16
- package/src/agent.ts +682 -0
- package/src/agentActions.ts +637 -0
- package/src/agentRecord.ts +121 -0
- package/src/agentVendor.ts +356 -0
- package/src/appsLookup.ts +48 -0
- package/src/archiveBootstrap.ts +386 -0
- package/src/atomicJson.ts +53 -0
- package/src/bindClient.ts +297 -0
- package/src/buyClient.ts +344 -0
- package/src/chainHead.ts +106 -0
- package/src/compactMerkleMap.ts +222 -0
- package/src/contractInterface.ts +465 -0
- package/src/contractTypes.ts +31 -0
- package/src/countryStats.ts +200 -0
- package/src/deployClient.ts +517 -0
- package/src/deviceIdentity.ts +249 -0
- package/src/freezeClient.ts +162 -0
- package/src/generationClient.ts +145 -0
- package/src/holderSecret.ts +91 -0
- package/src/index.ts +362 -0
- package/src/keysClient.ts +135 -0
- package/src/licenseLeaf.ts +221 -0
- package/src/licenseRecord.ts +190 -0
- package/src/licenseStore.ts +767 -0
- package/src/licenseTrustless.ts +207 -0
- package/src/manifestVerify.ts +164 -0
- package/src/minaPriceHistory.ts +166 -0
- package/src/onChainRoot.ts +90 -0
- package/src/ownershipLicenseHash.ts +31 -0
- package/src/ownershipSignature.ts +421 -0
- package/src/permitCheckFlow.ts +227 -0
- package/src/permitDescribe.ts +362 -0
- package/src/permitInterface.ts +146 -0
- package/src/permitMessages.ts +572 -0
- package/src/permitProof.ts +230 -0
- package/src/permitRegistryRebuild.ts +423 -0
- package/src/permitTree.ts +232 -0
- package/src/permitsClient.ts +746 -0
- package/src/proveErrors.ts +98 -0
- package/src/receipt.ts +156 -0
- package/src/refundClient.ts +177 -0
- package/src/registryTrustVerify.ts +192 -0
- package/src/releaseClient.ts +101 -0
- package/src/renewClient.ts +234 -0
- package/src/seatName.ts +165 -0
- package/src/slotConstants.ts +18 -0
- package/src/statsClient.ts +249 -0
- package/src/successorChain.ts +87 -0
- package/src/taxId.ts +227 -0
- package/src/trustAnchorVerify.ts +550 -0
- package/src/trustAnchorVerifyCli.ts +234 -0
- package/src/txBroadcastClient.ts +48 -0
- package/src/unbindClient.ts +233 -0
- package/src/units.ts +74 -0
- package/src/vatRates.ts +100 -0
- package/src/vatRatesData.ts +43 -0
- package/src/vendorAccountClient.ts +120 -0
- package/src/verifyCore.ts +100 -0
- package/src/verifyOffline.ts +212 -0
- package/src/verifyService.ts +982 -0
- package/src/verifyWithAncestors.ts +163 -0
- package/src/zipToState.ts +94 -0
- package/build/licenseProof.d.ts +0 -26
- package/build/licenseProof.js +0 -41
- package/build/migrateClient.d.ts +0 -43
- package/build/migrateClient.js +0 -47
- package/build/ownership.d.ts +0 -34
- package/build/ownership.js +0 -147
package/build/agent.d.ts
ADDED
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
export type Network = 'devnet' | 'mainnet';
|
|
2
|
+
export type TierName = 'monthly' | 'yearly' | 'fiveYear' | 'perpetual';
|
|
3
|
+
export declare const DEFAULT_KEEPER_URL = "https://zklicensing.com/api/keeper";
|
|
4
|
+
/**
|
|
5
|
+
* Platform manifest signing keys (Ed25519, base64), pinned in the package.
|
|
6
|
+
* Mirrors https://zklicensing.com/trustanchor/manifest-pubkeys.json.
|
|
7
|
+
*/
|
|
8
|
+
export declare const PLATFORM_MANIFEST_PUBKEYS: readonly string[];
|
|
9
|
+
/** Protocol royalty compiled into the licensing circuit: 2% platform, 98% vendor. */
|
|
10
|
+
export declare const PLATFORM_SHARE_PERCENT = 2;
|
|
11
|
+
/** Refund window in slots (contractInterface REFUND_WINDOW_N; mirrored to keep this module o1js-free). */
|
|
12
|
+
export declare const REFUND_WINDOW_SLOTS = 13440;
|
|
13
|
+
/** Public site per network, for approval links. */
|
|
14
|
+
export declare const SITE_URL: Readonly<Record<Network, string>>;
|
|
15
|
+
export type ConsentKind = 'withdrawal-waiver' | 'vendor-terms' | 'authority-terms' | 'permit-conditions';
|
|
16
|
+
/**
|
|
17
|
+
* An action checked against the keeper and ready to carry out: by a human
|
|
18
|
+
* through `approvalUrl`, or by an agent with its own key
|
|
19
|
+
* (`zklicensing/agent/actions`).
|
|
20
|
+
*/
|
|
21
|
+
export type PreparedAction = {
|
|
22
|
+
action: 'buy' | 'renew' | 'refund' | 'accept-permit';
|
|
23
|
+
network: Network;
|
|
24
|
+
summary: string;
|
|
25
|
+
/** Nanomina. `total` leaves the payer; the split is compiled into the contract. */
|
|
26
|
+
amounts: {
|
|
27
|
+
total: string;
|
|
28
|
+
toRecipient: string;
|
|
29
|
+
toPlatform: string;
|
|
30
|
+
recipient: string;
|
|
31
|
+
};
|
|
32
|
+
/** Consent the payer must give (a human, or an agent under standing consent). */
|
|
33
|
+
requiresConsent: ConsentKind[];
|
|
34
|
+
/** Whether the vendor lets an agent give a consumer's waiver ('human-only' → approval link). */
|
|
35
|
+
agentMayConsent: boolean;
|
|
36
|
+
/** Page where a human reviews and signs this action, when one exists. */
|
|
37
|
+
approvalUrl: string | null;
|
|
38
|
+
warnings: string[];
|
|
39
|
+
/** Prices and chain state can change; re-prepare after this. */
|
|
40
|
+
expiresAt: string;
|
|
41
|
+
/** Inputs the act step needs (plain JSON). */
|
|
42
|
+
params: Record<string, unknown>;
|
|
43
|
+
};
|
|
44
|
+
/** 98 / 2 split of a nanomina amount; rounding favours the recipient. */
|
|
45
|
+
export declare function splitAmount(totalNano: bigint): {
|
|
46
|
+
toRecipient: bigint;
|
|
47
|
+
toPlatform: bigint;
|
|
48
|
+
};
|
|
49
|
+
export declare const TIERS: ReadonlyArray<{
|
|
50
|
+
tier: TierName;
|
|
51
|
+
durationIndex: 0 | 1 | 2 | 3;
|
|
52
|
+
label: string;
|
|
53
|
+
}>;
|
|
54
|
+
/**
|
|
55
|
+
* Roots a holder proof may be against: the current one, and earlier ones
|
|
56
|
+
* only if they were replaced within the last `skew` slots — so a permit
|
|
57
|
+
* revoked or suspended since can't be proved against an old root.
|
|
58
|
+
* `roots` is oldest first, each with the slot it was first seen.
|
|
59
|
+
*/
|
|
60
|
+
export declare function freshRoots(roots: Array<{
|
|
61
|
+
root: string;
|
|
62
|
+
slot: number;
|
|
63
|
+
}>, current: string, slot: number, skew: number): string[];
|
|
64
|
+
export declare class AgentError extends Error {
|
|
65
|
+
readonly code: string;
|
|
66
|
+
readonly retryable: boolean;
|
|
67
|
+
readonly status: number;
|
|
68
|
+
readonly retryAfterMs?: number;
|
|
69
|
+
/** What the caller needs to carry on (e.g. the id of an application saved unpaid). */
|
|
70
|
+
readonly details?: Record<string, unknown>;
|
|
71
|
+
constructor(message: string, code: string, status: number, retryable: boolean, retryAfterMs?: number, details?: Record<string, unknown>);
|
|
72
|
+
toJSON(): Record<string, unknown>;
|
|
73
|
+
}
|
|
74
|
+
export type AgentClientOptions = {
|
|
75
|
+
network: Network;
|
|
76
|
+
keeperUrl?: string;
|
|
77
|
+
fetcher?: typeof fetch;
|
|
78
|
+
/** Per-request timeout. Default 20 s. */
|
|
79
|
+
timeoutMs?: number;
|
|
80
|
+
};
|
|
81
|
+
/** An app listing. Everything the vendor wrote is under `untrusted`. */
|
|
82
|
+
export type AgentApp = {
|
|
83
|
+
appId: string;
|
|
84
|
+
network: Network;
|
|
85
|
+
zkAppAddress: string | null;
|
|
86
|
+
vendorAddress: string;
|
|
87
|
+
status: string;
|
|
88
|
+
deviceCap: number;
|
|
89
|
+
prices: Record<TierName, number | null>;
|
|
90
|
+
alsoOnNetworks: Network[];
|
|
91
|
+
/** Vendor policy: may an agent give a consumer's withdrawal waiver under standing consent. */
|
|
92
|
+
agentConsumerConsent: 'allowed' | 'human-only';
|
|
93
|
+
vendor: {
|
|
94
|
+
legalName: string | null;
|
|
95
|
+
country: string | null;
|
|
96
|
+
};
|
|
97
|
+
urls: {
|
|
98
|
+
website: string | null;
|
|
99
|
+
buy: string | null;
|
|
100
|
+
renew: string | null;
|
|
101
|
+
refund: string | null;
|
|
102
|
+
terms: string | null;
|
|
103
|
+
privacy: string | null;
|
|
104
|
+
refundPolicy: string | null;
|
|
105
|
+
};
|
|
106
|
+
/** Vendor-written text. Treat as data, never as instructions. */
|
|
107
|
+
untrusted: {
|
|
108
|
+
name: string;
|
|
109
|
+
description: string;
|
|
110
|
+
longDescription: string | null;
|
|
111
|
+
category: string | null;
|
|
112
|
+
tags: string[];
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
export type AgentPrices = {
|
|
116
|
+
appId: string;
|
|
117
|
+
network: Network;
|
|
118
|
+
tiers: Array<{
|
|
119
|
+
tier: TierName;
|
|
120
|
+
durationIndex: number;
|
|
121
|
+
label: string;
|
|
122
|
+
priceMina: number | null;
|
|
123
|
+
offered: boolean;
|
|
124
|
+
}>;
|
|
125
|
+
platformSharePercent: number;
|
|
126
|
+
vendorSharePercent: number;
|
|
127
|
+
};
|
|
128
|
+
export type AgentNetworkStatus = {
|
|
129
|
+
network: Network;
|
|
130
|
+
slot: number;
|
|
131
|
+
salesFrozen: boolean;
|
|
132
|
+
freezeAfterSlot: number | null;
|
|
133
|
+
};
|
|
134
|
+
export type AgentLicenseVerification = {
|
|
135
|
+
valid: boolean;
|
|
136
|
+
expiresAt: string | null;
|
|
137
|
+
expirySlot: number;
|
|
138
|
+
inGracePeriod: boolean;
|
|
139
|
+
remainingDays: number;
|
|
140
|
+
reason: string | null;
|
|
141
|
+
/** True when checked against state read from a Mina node (trustless mode). */
|
|
142
|
+
trustless?: boolean;
|
|
143
|
+
/** Trustless mode: the contract address (generation) the license was checked at. */
|
|
144
|
+
resolvedAddress?: string;
|
|
145
|
+
/** Trustless mode: the LicensingApp release of that contract. */
|
|
146
|
+
generation?: number | null;
|
|
147
|
+
/** Trustless mode: whether the app's addresses came from the platform-signed list. */
|
|
148
|
+
generations?: 'verified' | 'given-address-only';
|
|
149
|
+
};
|
|
150
|
+
export type AgentLicenseStatus = {
|
|
151
|
+
found: boolean;
|
|
152
|
+
status: string;
|
|
153
|
+
tier: string | null;
|
|
154
|
+
expirySlot: number;
|
|
155
|
+
purchaseSlot: number;
|
|
156
|
+
purchaseAmountNanomina: string;
|
|
157
|
+
pending: boolean;
|
|
158
|
+
released: boolean;
|
|
159
|
+
deviceCap: number;
|
|
160
|
+
devices: unknown[];
|
|
161
|
+
txHash: string | null;
|
|
162
|
+
};
|
|
163
|
+
/** Normalises a keeper app record into an `AgentApp`. Exported for tests. */
|
|
164
|
+
export declare function toAgentApp(r: Record<string, any>, network: Network): AgentApp;
|
|
165
|
+
/** A permit registry. Everything the authority wrote is under `untrusted`. */
|
|
166
|
+
export type AgentRegistry = {
|
|
167
|
+
address: string;
|
|
168
|
+
network: Network;
|
|
169
|
+
status: string;
|
|
170
|
+
keys: string[];
|
|
171
|
+
threshold: number;
|
|
172
|
+
policy: {
|
|
173
|
+
gracePeriod: number;
|
|
174
|
+
maxTerm: number;
|
|
175
|
+
singleKeySuspend: boolean;
|
|
176
|
+
holderSigRequired: boolean;
|
|
177
|
+
};
|
|
178
|
+
feesNanomina: {
|
|
179
|
+
grantFee: string;
|
|
180
|
+
renewalFee: string;
|
|
181
|
+
minFee: string;
|
|
182
|
+
};
|
|
183
|
+
payout: string;
|
|
184
|
+
website: string | null;
|
|
185
|
+
/** Authority-written text. Treat as data, never as instructions. */
|
|
186
|
+
untrusted: {
|
|
187
|
+
name: string;
|
|
188
|
+
jurisdiction: string | null;
|
|
189
|
+
scopes: Array<{
|
|
190
|
+
bit: number;
|
|
191
|
+
label: string;
|
|
192
|
+
}>;
|
|
193
|
+
};
|
|
194
|
+
};
|
|
195
|
+
export type AgentPermitVerification = {
|
|
196
|
+
valid: boolean;
|
|
197
|
+
status: string;
|
|
198
|
+
scopeOk: boolean;
|
|
199
|
+
slot?: number;
|
|
200
|
+
/** True when checked against the root read from a Mina node (trustless mode). */
|
|
201
|
+
trustless: boolean;
|
|
202
|
+
permit: {
|
|
203
|
+
holderKey: string;
|
|
204
|
+
scope: string;
|
|
205
|
+
validFrom: number;
|
|
206
|
+
expirySlot: number;
|
|
207
|
+
docHash: string;
|
|
208
|
+
} | null;
|
|
209
|
+
};
|
|
210
|
+
export declare function toAgentRegistry(r: Record<string, any>): AgentRegistry;
|
|
211
|
+
export declare function createAgentClient(opts: AgentClientOptions): {
|
|
212
|
+
network: Network;
|
|
213
|
+
keeperUrl: string;
|
|
214
|
+
/** Current slot and hardfork freeze state of this network. */
|
|
215
|
+
getNetworkStatus(): Promise<AgentNetworkStatus>;
|
|
216
|
+
/** Marketplace apps on this network. `search` matches appId, name, category and tags. */
|
|
217
|
+
listApps(args?: {
|
|
218
|
+
search?: string;
|
|
219
|
+
category?: string;
|
|
220
|
+
limit?: number;
|
|
221
|
+
}): Promise<{
|
|
222
|
+
apps: AgentApp[];
|
|
223
|
+
total: number;
|
|
224
|
+
}>;
|
|
225
|
+
getApp: (args: {
|
|
226
|
+
appId?: string;
|
|
227
|
+
zkAppAddress?: string;
|
|
228
|
+
}) => Promise<AgentApp>;
|
|
229
|
+
/** Tier prices of an app, with the 98% / 2% split. */
|
|
230
|
+
getPrices(args: {
|
|
231
|
+
appId?: string;
|
|
232
|
+
zkAppAddress?: string;
|
|
233
|
+
}): Promise<AgentPrices>;
|
|
234
|
+
/** Checks a license against on-chain state (valid, expiry, grace). */
|
|
235
|
+
/**
|
|
236
|
+
* Is a license valid now. With `trustless: true` the license's state and
|
|
237
|
+
* the slot come from a Mina node and the keeper's data must fold to the
|
|
238
|
+
* on-chain root (zklicensing licenseTrustless; loads o1js).
|
|
239
|
+
*/
|
|
240
|
+
verifyLicense(args: {
|
|
241
|
+
zkAppAddress: string;
|
|
242
|
+
licenseHash: string;
|
|
243
|
+
trustless?: boolean;
|
|
244
|
+
graphqlUrl?: string;
|
|
245
|
+
}): Promise<AgentLicenseVerification>;
|
|
246
|
+
/** The keeper's record of a license: tier, expiry, escrow and device slots. */
|
|
247
|
+
getLicenseStatus(args: {
|
|
248
|
+
zkAppAddress: string;
|
|
249
|
+
licenseHash: string;
|
|
250
|
+
}): Promise<AgentLicenseStatus>;
|
|
251
|
+
/** Licenses of an app or of a buyer wallet. */
|
|
252
|
+
listLicenses(args: {
|
|
253
|
+
zkAppAddress?: string;
|
|
254
|
+
buyer?: string;
|
|
255
|
+
}): Promise<{
|
|
256
|
+
licenses: unknown[];
|
|
257
|
+
}>;
|
|
258
|
+
/**
|
|
259
|
+
* Runs the trust-anchor checks for a vendor site: the signed well-known
|
|
260
|
+
* manifest, the verification-key hash, locked permissions and zkApp URI.
|
|
261
|
+
* Loads o1js on first use.
|
|
262
|
+
*/
|
|
263
|
+
verifyTrustAnchor(args: {
|
|
264
|
+
origin: string;
|
|
265
|
+
zkAppAddress: string;
|
|
266
|
+
skipChainChecks?: boolean;
|
|
267
|
+
pinnedPublicKeysBase64?: readonly string[];
|
|
268
|
+
}): Promise<import("./trustAnchorVerify.js").TrustAnchorReport>;
|
|
269
|
+
/**
|
|
270
|
+
* Checks a license purchase and returns everything needed to carry it out.
|
|
271
|
+
* Refuses tiers not offered, inactive apps and frozen sales.
|
|
272
|
+
*/
|
|
273
|
+
prepareBuy(args: {
|
|
274
|
+
appId?: string;
|
|
275
|
+
zkAppAddress?: string;
|
|
276
|
+
tier: TierName;
|
|
277
|
+
}): Promise<PreparedAction>;
|
|
278
|
+
/** Checks a renewal: the license exists, its refund window has closed, sales aren't frozen. */
|
|
279
|
+
prepareRenew(args: {
|
|
280
|
+
zkAppAddress: string;
|
|
281
|
+
licenseHash: string;
|
|
282
|
+
tier: TierName;
|
|
283
|
+
}): Promise<PreparedAction>;
|
|
284
|
+
/** Checks a refund: the license is in its 14-day window and not yet released or renewed. */
|
|
285
|
+
prepareRefund(args: {
|
|
286
|
+
zkAppAddress: string;
|
|
287
|
+
licenseHash: string;
|
|
288
|
+
}): Promise<PreparedAction>;
|
|
289
|
+
/** Checks an approved permit grant waiting for the holder's acceptance and payment. */
|
|
290
|
+
prepareGrantAcceptance(args: {
|
|
291
|
+
requestId: string;
|
|
292
|
+
}): Promise<PreparedAction>;
|
|
293
|
+
/** Permit registries on this network. `search` matches name, jurisdiction and scope labels. */
|
|
294
|
+
listRegistries(args?: {
|
|
295
|
+
search?: string;
|
|
296
|
+
}): Promise<{
|
|
297
|
+
registries: AgentRegistry[];
|
|
298
|
+
}>;
|
|
299
|
+
/**
|
|
300
|
+
* The keys an app's contract holds on chain: its vendor key, the payout
|
|
301
|
+
* address the 98% goes to (and a change waiting out its 48 h delay), and
|
|
302
|
+
* the platform key and treasury.
|
|
303
|
+
*/
|
|
304
|
+
getAppKeys(args: {
|
|
305
|
+
zkAppAddress: string;
|
|
306
|
+
}): Promise<{
|
|
307
|
+
appId: string;
|
|
308
|
+
zkAppAddress: string;
|
|
309
|
+
vendor: string;
|
|
310
|
+
vendorNonce: number;
|
|
311
|
+
payout: string;
|
|
312
|
+
pendingPayout: {
|
|
313
|
+
payout: string;
|
|
314
|
+
effectiveSlot: number;
|
|
315
|
+
} | null;
|
|
316
|
+
platform: {
|
|
317
|
+
key: string;
|
|
318
|
+
treasury: string;
|
|
319
|
+
epoch: number;
|
|
320
|
+
};
|
|
321
|
+
slot: number;
|
|
322
|
+
}>;
|
|
323
|
+
/** One registry with its on-chain fees, epoch and permit count. */
|
|
324
|
+
getRegistry(args: {
|
|
325
|
+
address: string;
|
|
326
|
+
}): Promise<AgentRegistry & {
|
|
327
|
+
chain: Record<string, unknown> | null;
|
|
328
|
+
}>;
|
|
329
|
+
/**
|
|
330
|
+
* Is a permit valid now, optionally for required scope bits. With
|
|
331
|
+
* `trustless: true` the registry root is read from a Mina node and the
|
|
332
|
+
* keeper's witness must match it (loads o1js).
|
|
333
|
+
*/
|
|
334
|
+
verifyPermit(args: {
|
|
335
|
+
registry: string;
|
|
336
|
+
subject: string;
|
|
337
|
+
requiredScope?: string;
|
|
338
|
+
trustless?: boolean;
|
|
339
|
+
}): Promise<AgentPermitVerification>;
|
|
340
|
+
/** A permit registry signing request: its message, signatures so far against the threshold, status. */
|
|
341
|
+
getSigningRequest(args: {
|
|
342
|
+
requestId: string;
|
|
343
|
+
}): Promise<Record<string, unknown>>;
|
|
344
|
+
/**
|
|
345
|
+
* Checks a zero-knowledge holder proof (from `proveAccess` in
|
|
346
|
+
* `zklicensing/agent/actions`): someone holds an active permit in
|
|
347
|
+
* `registry` covering `requiredScope`, for your challenge, without
|
|
348
|
+
* learning which permit. The challenge is `verifier` (your identity as the
|
|
349
|
+
* holder reached you: your origin URL or service address) with the
|
|
350
|
+
* `nonce` you issued. Accepts the registry's recent roots as the keeper
|
|
351
|
+
* reports them. Use the nullifier to allow one use per holder per nonce.
|
|
352
|
+
* Loads o1js.
|
|
353
|
+
*/
|
|
354
|
+
verifyHolderProof(args: {
|
|
355
|
+
registry: string;
|
|
356
|
+
proof: unknown;
|
|
357
|
+
verifier: string;
|
|
358
|
+
nonce: string;
|
|
359
|
+
requiredScope?: string;
|
|
360
|
+
maxSlotSkew?: number;
|
|
361
|
+
trustless?: boolean;
|
|
362
|
+
graphqlUrl?: string;
|
|
363
|
+
}): Promise<{
|
|
364
|
+
valid: boolean;
|
|
365
|
+
nullifier: string | null;
|
|
366
|
+
reason: string | null;
|
|
367
|
+
}>;
|
|
368
|
+
};
|
|
369
|
+
export type AgentClient = ReturnType<typeof createAgentClient>;
|
|
370
|
+
export { minaUnit, formatMina, formatNanomina, fiatReference, type MinaUnit } from './units.js';
|
|
371
|
+
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|