vana-cli 0.35.1 → 0.36.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/dist/cli/app/claim.d.ts +67 -0
- package/dist/cli/app/claim.d.ts.map +1 -0
- package/dist/cli/app/claim.js +164 -0
- package/dist/cli/app/claim.js.map +1 -0
- package/dist/cli/app/index.d.ts.map +1 -1
- package/dist/cli/app/index.js +11 -0
- package/dist/cli/app/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `vana app claim` - hand the app's owner one link that adds this app to
|
|
3
|
+
* their Vana Account, so they can fund its escrow there.
|
|
4
|
+
*
|
|
5
|
+
* An app registered from the CLI has its own key and is in nobody's Apps
|
|
6
|
+
* list, and Account's Fund page only serves apps in the signed-in Account.
|
|
7
|
+
* This signs a BuilderClaimLink with the app key and prints a link to
|
|
8
|
+
* Account; whoever opens it while signed in adds the app with one click and
|
|
9
|
+
* lands on its Fund page. The key never leaves this machine and nothing has
|
|
10
|
+
* to call back into it, so it works from a sandbox or another machine too.
|
|
11
|
+
*/
|
|
12
|
+
import { type GatewayClient } from "@opendatalabs/vana-sdk";
|
|
13
|
+
import { readAppProfile, saveAppProfile } from "../../core/app-profile.js";
|
|
14
|
+
import { resolveAppKey } from "../../core/app-key.js";
|
|
15
|
+
import { type ResolvedNetwork } from "../../core/network.js";
|
|
16
|
+
import { type AppCommandOptions } from "./outcome.js";
|
|
17
|
+
/**
|
|
18
|
+
* Must match Account's BUILDER_CLAIM_LINK_TYPES. The app name is signed so
|
|
19
|
+
* nobody can relabel the link; Account shows it instead of the URL's host.
|
|
20
|
+
*/
|
|
21
|
+
export declare const BUILDER_CLAIM_LINK_TYPES: {
|
|
22
|
+
readonly BuilderClaimLink: readonly [{
|
|
23
|
+
readonly name: "granteeAddress";
|
|
24
|
+
readonly type: "address";
|
|
25
|
+
}, {
|
|
26
|
+
readonly name: "network";
|
|
27
|
+
readonly type: "string";
|
|
28
|
+
}, {
|
|
29
|
+
readonly name: "nonce";
|
|
30
|
+
readonly type: "bytes32";
|
|
31
|
+
}, {
|
|
32
|
+
readonly name: "expiry";
|
|
33
|
+
readonly type: "uint64";
|
|
34
|
+
}, {
|
|
35
|
+
readonly name: "appName";
|
|
36
|
+
readonly type: "string";
|
|
37
|
+
}];
|
|
38
|
+
};
|
|
39
|
+
/** Account's limit for an app name. */
|
|
40
|
+
export declare const CLAIM_LINK_APP_NAME_MAX_LENGTH = 64;
|
|
41
|
+
/** Account accepts links up to an hour out; stay inside it with room for clock skew. */
|
|
42
|
+
export declare const CLAIM_LINK_TTL_SEC: number;
|
|
43
|
+
export interface ClaimLink {
|
|
44
|
+
url: string;
|
|
45
|
+
expiry: number;
|
|
46
|
+
}
|
|
47
|
+
export declare function buildClaimLink(input: {
|
|
48
|
+
privateKey: `0x${string}`;
|
|
49
|
+
network: ResolvedNetwork;
|
|
50
|
+
appName?: string;
|
|
51
|
+
nowSec?: number;
|
|
52
|
+
nonce?: `0x${string}`;
|
|
53
|
+
}): Promise<ClaimLink>;
|
|
54
|
+
export interface ClaimOptions extends AppCommandOptions {
|
|
55
|
+
/** Name to show in the owner's Account; remembered like `register --app-name`. */
|
|
56
|
+
appName?: string;
|
|
57
|
+
}
|
|
58
|
+
export interface ClaimDeps {
|
|
59
|
+
createClient?: (gatewayUrl: string) => GatewayClient;
|
|
60
|
+
readProfile?: typeof readAppProfile;
|
|
61
|
+
saveProfile?: typeof saveAppProfile;
|
|
62
|
+
resolveKey?: typeof resolveAppKey;
|
|
63
|
+
openUrl?: (url: string) => void;
|
|
64
|
+
isTty?: boolean;
|
|
65
|
+
}
|
|
66
|
+
export declare function runAppClaim(options: ClaimOptions, deps?: ClaimDeps): Promise<number>;
|
|
67
|
+
//# sourceMappingURL=claim.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim.d.ts","sourceRoot":"","sources":["../../../src/cli/app/claim.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAGL,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGtE;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;CAQ3B,CAAC;AAEX,uCAAuC;AACvC,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAEjD,wFAAwF;AACxF,eAAO,MAAM,kBAAkB,QAAU,CAAC;AAE1C,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE;IAC1C,UAAU,EAAE,KAAK,MAAM,EAAE,CAAC;IAC1B,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;CACvB,GAAG,OAAO,CAAC,SAAS,CAAC,CAkCrB;AAED,MAAM,WAAW,YAAa,SAAQ,iBAAiB;IACrD,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,aAAa,CAAC;IACrD,WAAW,CAAC,EAAE,OAAO,cAAc,CAAC;IACpC,WAAW,CAAC,EAAE,OAAO,cAAc,CAAC;IACpC,UAAU,CAAC,EAAE,OAAO,aAAa,CAAC;IAClC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,WAAW,CAC/B,OAAO,EAAE,YAAY,EACrB,IAAI,GAAE,SAAc,GACnB,OAAO,CAAC,MAAM,CAAC,CA8FjB"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `vana app claim` - hand the app's owner one link that adds this app to
|
|
3
|
+
* their Vana Account, so they can fund its escrow there.
|
|
4
|
+
*
|
|
5
|
+
* An app registered from the CLI has its own key and is in nobody's Apps
|
|
6
|
+
* list, and Account's Fund page only serves apps in the signed-in Account.
|
|
7
|
+
* This signs a BuilderClaimLink with the app key and prints a link to
|
|
8
|
+
* Account; whoever opens it while signed in adds the app with one click and
|
|
9
|
+
* lands on its Fund page. The key never leaves this machine and nothing has
|
|
10
|
+
* to call back into it, so it works from a sandbox or another machine too.
|
|
11
|
+
*/
|
|
12
|
+
import crypto from "node:crypto";
|
|
13
|
+
import { createGatewayClient, } from "@opendatalabs/vana-sdk";
|
|
14
|
+
import { privateKeyToAccount } from "viem/accounts";
|
|
15
|
+
import { readAppProfile, saveAppProfile } from "../../core/app-profile.js";
|
|
16
|
+
import { AppKeyMissingError, InvalidAppKeyError, resolveAppKey, } from "../../core/app-key.js";
|
|
17
|
+
import { UnknownNetworkError, resolveNetwork, } from "../../core/network.js";
|
|
18
|
+
import { openBrowser } from "../auth.js";
|
|
19
|
+
import { emitAppOutcome } from "./outcome.js";
|
|
20
|
+
import { builderRegistrationDomainFor } from "./register.js";
|
|
21
|
+
/**
|
|
22
|
+
* Must match Account's BUILDER_CLAIM_LINK_TYPES. The app name is signed so
|
|
23
|
+
* nobody can relabel the link; Account shows it instead of the URL's host.
|
|
24
|
+
*/
|
|
25
|
+
export const BUILDER_CLAIM_LINK_TYPES = {
|
|
26
|
+
BuilderClaimLink: [
|
|
27
|
+
{ name: "granteeAddress", type: "address" },
|
|
28
|
+
{ name: "network", type: "string" },
|
|
29
|
+
{ name: "nonce", type: "bytes32" },
|
|
30
|
+
{ name: "expiry", type: "uint64" },
|
|
31
|
+
{ name: "appName", type: "string" },
|
|
32
|
+
],
|
|
33
|
+
};
|
|
34
|
+
/** Account's limit for an app name. */
|
|
35
|
+
export const CLAIM_LINK_APP_NAME_MAX_LENGTH = 64;
|
|
36
|
+
/** Account accepts links up to an hour out; stay inside it with room for clock skew. */
|
|
37
|
+
export const CLAIM_LINK_TTL_SEC = 50 * 60;
|
|
38
|
+
export async function buildClaimLink(input) {
|
|
39
|
+
const account = privateKeyToAccount(input.privateKey);
|
|
40
|
+
const expiry = (input.nowSec ?? Math.floor(Date.now() / 1000)) + CLAIM_LINK_TTL_SEC;
|
|
41
|
+
const nonce = input.nonce ??
|
|
42
|
+
`0x${crypto.randomBytes(32).toString("hex")}`;
|
|
43
|
+
const appName = (input.appName ?? "")
|
|
44
|
+
.trim()
|
|
45
|
+
.slice(0, CLAIM_LINK_APP_NAME_MAX_LENGTH);
|
|
46
|
+
const signature = await account.signTypedData({
|
|
47
|
+
domain: builderRegistrationDomainFor(input.network),
|
|
48
|
+
types: BUILDER_CLAIM_LINK_TYPES,
|
|
49
|
+
primaryType: "BuilderClaimLink",
|
|
50
|
+
message: {
|
|
51
|
+
granteeAddress: account.address,
|
|
52
|
+
network: input.network.name,
|
|
53
|
+
nonce,
|
|
54
|
+
expiry: BigInt(expiry),
|
|
55
|
+
appName,
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
const params = new URLSearchParams({
|
|
59
|
+
network: input.network.name,
|
|
60
|
+
address: account.address.toLowerCase(),
|
|
61
|
+
nonce,
|
|
62
|
+
expiry: String(expiry),
|
|
63
|
+
signature,
|
|
64
|
+
});
|
|
65
|
+
if (appName)
|
|
66
|
+
params.set("name", appName);
|
|
67
|
+
return {
|
|
68
|
+
url: `${input.network.accountUrl}/developers/apps/claim?${params}`,
|
|
69
|
+
expiry,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
export async function runAppClaim(options, deps = {}) {
|
|
73
|
+
let network;
|
|
74
|
+
try {
|
|
75
|
+
network = resolveNetwork(options.network);
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
if (error instanceof UnknownNetworkError) {
|
|
79
|
+
return emitAppOutcome(options, {
|
|
80
|
+
status: "failed",
|
|
81
|
+
code: "bad_usage",
|
|
82
|
+
message: error.message,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
throw error;
|
|
86
|
+
}
|
|
87
|
+
let key;
|
|
88
|
+
try {
|
|
89
|
+
key = (deps.resolveKey ?? resolveAppKey)({ allowGenerate: false });
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
if (error instanceof AppKeyMissingError) {
|
|
93
|
+
return emitAppOutcome(options, {
|
|
94
|
+
status: "failed",
|
|
95
|
+
code: "builder_unknown",
|
|
96
|
+
message: "No app key on this machine yet.",
|
|
97
|
+
remedy: "vana app register",
|
|
98
|
+
network: network.name,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
if (error instanceof InvalidAppKeyError) {
|
|
102
|
+
return emitAppOutcome(options, {
|
|
103
|
+
status: "failed",
|
|
104
|
+
code: "bad_usage",
|
|
105
|
+
message: error.message,
|
|
106
|
+
network: network.name,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
throw error;
|
|
110
|
+
}
|
|
111
|
+
let registered = "unknown";
|
|
112
|
+
try {
|
|
113
|
+
registered = await (deps.createClient ?? createGatewayClient)(network.gatewayUrl).isRegisteredBuilder(key.address);
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
// Offline: the link still works once the gateway answers Account.
|
|
117
|
+
}
|
|
118
|
+
if (registered === false) {
|
|
119
|
+
return emitAppOutcome(options, {
|
|
120
|
+
status: "failed",
|
|
121
|
+
code: "builder_unknown",
|
|
122
|
+
message: `This app is not registered on ${network.name} yet, so there is nothing to claim.`,
|
|
123
|
+
remedy: "vana app register",
|
|
124
|
+
network: network.name,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
if (options.appName?.trim()) {
|
|
128
|
+
try {
|
|
129
|
+
(deps.saveProfile ?? saveAppProfile)(key.address, {
|
|
130
|
+
name: options.appName,
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
// Remembering the name is a convenience; the link carries it anyway.
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
const appName = options.appName?.trim() ||
|
|
138
|
+
(deps.readProfile ?? readAppProfile)(key.address).name ||
|
|
139
|
+
"";
|
|
140
|
+
const link = await buildClaimLink({
|
|
141
|
+
privateKey: key.privateKey,
|
|
142
|
+
network,
|
|
143
|
+
appName,
|
|
144
|
+
});
|
|
145
|
+
const isTty = deps.isTty ?? Boolean(process.stdout.isTTY);
|
|
146
|
+
if (isTty && !options.json && !options.noInput) {
|
|
147
|
+
(deps.openUrl ?? openBrowser)(link.url);
|
|
148
|
+
}
|
|
149
|
+
const fundUrl = `${network.accountUrl}/developers/apps/${network.name}/${key.address.toLowerCase()}/fund`;
|
|
150
|
+
return emitAppOutcome(options, {
|
|
151
|
+
status: "done",
|
|
152
|
+
code: "ok",
|
|
153
|
+
message: "Send this link to the app's owner. Opened while signed in to Vana Account, it adds the app to their Apps and goes to Fund escrow.",
|
|
154
|
+
network: network.name,
|
|
155
|
+
data: {
|
|
156
|
+
appName: appName || undefined,
|
|
157
|
+
claimUrl: link.url,
|
|
158
|
+
expiresAt: new Date(link.expiry * 1000).toISOString(),
|
|
159
|
+
address: key.address,
|
|
160
|
+
fundUrl,
|
|
161
|
+
},
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=claim.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim.js","sourceRoot":"","sources":["../../../src/cli/app/claim.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/app/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/app/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,iBAAiB,GAClC,IAAI,CAgMN"}
|
package/dist/cli/app/index.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* `register` and `whoami`. The consent flow (`request`, `requests`), the
|
|
6
6
|
* read loop, derivatives and write land as their milestones clear.
|
|
7
7
|
*/
|
|
8
|
+
import { runAppClaim } from "./claim.js";
|
|
8
9
|
import { runAppEscrowBalance, runAppEscrowFund } from "./escrow.js";
|
|
9
10
|
import { runAppOnchain } from "./onchain.js";
|
|
10
11
|
import { runAppRead } from "./read.js";
|
|
@@ -143,6 +144,16 @@ export function registerAppCommands(program, getOptions) {
|
|
|
143
144
|
...commandOptions,
|
|
144
145
|
});
|
|
145
146
|
});
|
|
147
|
+
app
|
|
148
|
+
.command("claim")
|
|
149
|
+
.description("Print a link that adds this app to its owner's Vana Account, to fund its escrow")
|
|
150
|
+
.option("--app-name <name>", "Name the owner sees in their Account (remembered; defaults to the one from register)")
|
|
151
|
+
.action(async (commandOptions) => {
|
|
152
|
+
process.exitCode = await runAppClaim({
|
|
153
|
+
...getOptions(),
|
|
154
|
+
appName: commandOptions.appName,
|
|
155
|
+
});
|
|
156
|
+
});
|
|
146
157
|
app
|
|
147
158
|
.command("whoami")
|
|
148
159
|
.description("Show the app identity, key source and registration state")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/app/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/app/index.ts"],"names":[],"mappings":"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"}
|