@reppo/cli 0.5.0 → 0.6.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/README.md +4 -1
- package/dist/api/agents.d.ts +45 -0
- package/dist/api/agents.d.ts.map +1 -0
- package/dist/api/agents.js +115 -0
- package/dist/api/agents.js.map +1 -0
- package/dist/bin.js +1 -1
- package/dist/chain/receipt.d.ts +14 -0
- package/dist/chain/receipt.d.ts.map +1 -0
- package/dist/chain/receipt.js +14 -0
- package/dist/chain/receipt.js.map +1 -0
- package/dist/commands/claim-emissions.d.ts.map +1 -1
- package/dist/commands/claim-emissions.js +27 -6
- package/dist/commands/claim-emissions.js.map +1 -1
- package/dist/commands/extend-lock.d.ts.map +1 -1
- package/dist/commands/extend-lock.js +46 -6
- package/dist/commands/extend-lock.js.map +1 -1
- package/dist/commands/grant-access.d.ts.map +1 -1
- package/dist/commands/grant-access.js +38 -6
- package/dist/commands/grant-access.js.map +1 -1
- package/dist/commands/lock.d.ts.map +1 -1
- package/dist/commands/lock.js +43 -6
- package/dist/commands/lock.js.map +1 -1
- package/dist/commands/mint-pod.d.ts +25 -0
- package/dist/commands/mint-pod.d.ts.map +1 -1
- package/dist/commands/mint-pod.js +234 -11
- package/dist/commands/mint-pod.js.map +1 -1
- package/dist/commands/unlock.d.ts.map +1 -1
- package/dist/commands/unlock.js +39 -6
- package/dist/commands/unlock.js.map +1 -1
- package/dist/commands/vote.d.ts.map +1 -1
- package/dist/commands/vote.js +35 -6
- package/dist/commands/vote.js.map +1 -1
- package/dist/commands/write-cache.d.ts +20 -0
- package/dist/commands/write-cache.d.ts.map +1 -0
- package/dist/commands/write-cache.js +52 -0
- package/dist/commands/write-cache.js.map +1 -0
- package/dist/config/load.d.ts +11 -0
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +3 -0
- package/dist/config/load.js.map +1 -1
- package/dist/state/idempotency.d.ts +2 -1
- package/dist/state/idempotency.d.ts.map +1 -1
- package/dist/state/idempotency.js +29 -8
- package/dist/state/idempotency.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -24,6 +24,9 @@ The CLI is non-interactive — all credentials come from environment variables:
|
|
|
24
24
|
| `REPPO_RPC_URL` | All commands (optional) | Override RPC endpoint |
|
|
25
25
|
| `REPPO_API_URL` | Platform-API commands (optional) | Override Reppo API base |
|
|
26
26
|
| `REPPO_API_KEY` | `register-agent`, `create-datanet` | Reppo platform API key |
|
|
27
|
+
| `REPPO_AGENT_ID` | `mint-pod` Phase-2 publishing | Agent id from `register-agent`; identifies the `/agents/{id}/pods` POST |
|
|
28
|
+
| `REPPO_AGENT_API_KEY` | `mint-pod` Phase-2 publishing (optional) | Agent Bearer key from `register-agent`; falls back to `REPPO_API_KEY` |
|
|
29
|
+
| `PINATA_JWT` | `mint-pod --dataset` (optional) | Pinata JWT for pinning a dataset to IPFS before publishing |
|
|
27
30
|
|
|
28
31
|
Network can also be set per-call via `--network mainnet|testnet`.
|
|
29
32
|
|
|
@@ -57,7 +60,7 @@ Errors **always** emit JSON on stderr regardless of mode, with a stable `code` f
|
|
|
57
60
|
|
|
58
61
|
- `reppo approve --spender <pod-manager|subnet-manager|ve-reppo|0x…> [--amount <units|max>] [--token reppo|usdc]` — set an ERC20 allowance so subsequent writes (lock, grant-access, mint-pod) don't fail with INSUFFICIENT_ALLOWANCE. Defaults to unlimited (`max`); reads the current allowance first and emits `{status:'no-op'}` if it already covers the request.
|
|
59
62
|
- `reppo vote --pod <id> --votes <n> --like|--dislike` — cast a vote on a pod, spending `<n>` voting power
|
|
60
|
-
- `reppo mint-pod --datanet <id> [--token reppo|primary] [--to <addr>]` — mint a pod into a datanet
|
|
63
|
+
- `reppo mint-pod --datanet <id> [--token reppo|primary] [--to <addr>]` — mint a pod into a datanet. Add `--pod-name <s>` to also publish metadata (Phase 2): after the on-chain mint, register the pod with the platform (`POST /agents/{id}/pods`). Requires `--subnet-uuid <cuid>` (the platform UUID, **not** the numeric `--datanet` id), `--agree-to-terms`, and `REPPO_AGENT_ID` + agent key. Optionally `--pod-description`, `--category`, `--platform`, `--url`, and a dataset: `--dataset <file>` (pinned to IPFS via `PINATA_JWT`) or `--dataset-uri <url>` (used as-is). A Phase-2 failure does not fail the mint — it exits 0 with `metadata.published:false`; re-run with the same `--idempotency-key` to retry.
|
|
61
64
|
- `reppo lock <amount> --duration <seconds>` — lock REPPO into veREPPO for voting power
|
|
62
65
|
- `reppo unlock <lockupId> [--to <addr>]` — withdraw an expired veREPPO lockup, returning the locked REPPO
|
|
63
66
|
- `reppo extend-lock <lockupId> --duration <seconds>` — extend an existing veREPPO lockup
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agents API base. Hardcoded — same host as `register-agent`, distinct from
|
|
3
|
+
* REPPO_API_URL (api.reppo.xyz wallet-auth surface).
|
|
4
|
+
*/
|
|
5
|
+
export declare const AGENTS_API_BASE = "https://reppo.ai/api/v1";
|
|
6
|
+
/** Platform-enforced field ceilings (aeon ISS-012). */
|
|
7
|
+
export declare const POD_NAME_MAX = 50;
|
|
8
|
+
export declare const POD_DESCRIPTION_MAX = 200;
|
|
9
|
+
export interface PodMetadata {
|
|
10
|
+
txHash: string;
|
|
11
|
+
/** Platform subnet UUID (cuid), NOT the on-chain datanet id. */
|
|
12
|
+
subnetId: string;
|
|
13
|
+
podName: string;
|
|
14
|
+
podDescription: string;
|
|
15
|
+
url: string;
|
|
16
|
+
platform: string;
|
|
17
|
+
category: string;
|
|
18
|
+
agreeToTerms: boolean;
|
|
19
|
+
imageURL: string;
|
|
20
|
+
thumbnailURL: string;
|
|
21
|
+
pdfURL: string;
|
|
22
|
+
videoURL: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Pin a local file to IPFS via Pinata. Returns the public-gateway URL
|
|
26
|
+
* (`https://ipfs.io/ipfs/<cid>`) so the pin is verifiable from any gateway —
|
|
27
|
+
* Pinata's role here is pinning, not gating retrieval.
|
|
28
|
+
*
|
|
29
|
+
* Throws `cliError` on a missing file, missing JWT, network error, or any
|
|
30
|
+
* non-2xx / malformed Pinata response.
|
|
31
|
+
*/
|
|
32
|
+
export declare function pinDatasetToIpfs(filePath: string, pinataJwt: string): Promise<string>;
|
|
33
|
+
export interface RegisterResult {
|
|
34
|
+
ok: boolean;
|
|
35
|
+
status: number;
|
|
36
|
+
/** Single-line, trimmed response detail for diagnostics (≤600 chars). */
|
|
37
|
+
detail: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* POST pod metadata to the platform. Returns `{ ok, status, detail }` for any
|
|
41
|
+
* HTTP response (the caller decides whether a non-2xx is fatal). Throws
|
|
42
|
+
* `cliError` only on a network-level failure (DNS/TLS/refused).
|
|
43
|
+
*/
|
|
44
|
+
export declare function registerPodMetadata(agentId: string, agentApiKey: string, metadata: PodMetadata, apiBase?: string): Promise<RegisterResult>;
|
|
45
|
+
//# sourceMappingURL=agents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/api/agents.ts"],"names":[],"mappings":"AAkCA;;;GAGG;AACH,eAAO,MAAM,eAAe,4BAA4B,CAAC;AAGzD,uDAAuD;AACvD,eAAO,MAAM,YAAY,KAAK,CAAC;AAC/B,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAqD3F;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,WAAW,EACrB,OAAO,GAAE,MAAwB,GAChC,OAAO,CAAC,cAAc,CAAC,CAyBzB"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent-scoped platform API (reppo.ai/api/v1/agents/*) — the Phase-2
|
|
3
|
+
* metadata surface for minting. Distinct service from api.reppo.xyz
|
|
4
|
+
* (see api/platform.ts): this one authenticates with the persistent agent
|
|
5
|
+
* apiKey from `reppo register-agent`, not the wallet-auth session token.
|
|
6
|
+
*
|
|
7
|
+
* `mintPodWithREPPO(to, subnetId)` creates the bare ERC-721 on Base but
|
|
8
|
+
* carries no text or dataset URI. The Reppo UI surfaces a pod only after a
|
|
9
|
+
* separate authenticated POST registers its metadata in the platform DB:
|
|
10
|
+
*
|
|
11
|
+
* POST {AGENTS_API_BASE}/agents/{agentId}/pods
|
|
12
|
+
* Authorization: Bearer {agentApiKey}
|
|
13
|
+
* { txHash, subnetId, podName, podDescription, url, platform, category,
|
|
14
|
+
* agreeToTerms, imageURL, thumbnailURL, pdfURL, videoURL }
|
|
15
|
+
*
|
|
16
|
+
* Optionally the pod's dataset is first pinned to IPFS via Pinata, and the
|
|
17
|
+
* resulting public-gateway URL is wired into the POST body.
|
|
18
|
+
*
|
|
19
|
+
* Two hard-won constraints are encoded by the caller (learned in the aeon
|
|
20
|
+
* swarm), documented here so this module's contract is self-explaining:
|
|
21
|
+
* - `subnetId` MUST be the platform subnet UUID (a cuid like
|
|
22
|
+
* `cmnhuowns000bic04e16t6735`), NOT the on-chain datanet id. Sending the
|
|
23
|
+
* numeric id passes the platform's Zod schema but 500s in the downstream
|
|
24
|
+
* UUID lookup.
|
|
25
|
+
* - `podName` ≤ 50 chars, `podDescription` ≤ 200 chars.
|
|
26
|
+
*
|
|
27
|
+
* These functions return structured results / throw `cliError`; they never
|
|
28
|
+
* print. The caller decides exit semantics — a Phase-2 failure must NOT flip
|
|
29
|
+
* a confirmed on-chain mint to "failed", because the tx is already durable.
|
|
30
|
+
*/
|
|
31
|
+
import { readFileSync, existsSync } from 'node:fs';
|
|
32
|
+
import { basename } from 'node:path';
|
|
33
|
+
import { cliError } from '../output/format.js';
|
|
34
|
+
/**
|
|
35
|
+
* Agents API base. Hardcoded — same host as `register-agent`, distinct from
|
|
36
|
+
* REPPO_API_URL (api.reppo.xyz wallet-auth surface).
|
|
37
|
+
*/
|
|
38
|
+
export const AGENTS_API_BASE = 'https://reppo.ai/api/v1';
|
|
39
|
+
const PINATA_PIN_URL = 'https://api.pinata.cloud/pinning/pinFileToIPFS';
|
|
40
|
+
/** Platform-enforced field ceilings (aeon ISS-012). */
|
|
41
|
+
export const POD_NAME_MAX = 50;
|
|
42
|
+
export const POD_DESCRIPTION_MAX = 200;
|
|
43
|
+
/**
|
|
44
|
+
* Pin a local file to IPFS via Pinata. Returns the public-gateway URL
|
|
45
|
+
* (`https://ipfs.io/ipfs/<cid>`) so the pin is verifiable from any gateway —
|
|
46
|
+
* Pinata's role here is pinning, not gating retrieval.
|
|
47
|
+
*
|
|
48
|
+
* Throws `cliError` on a missing file, missing JWT, network error, or any
|
|
49
|
+
* non-2xx / malformed Pinata response.
|
|
50
|
+
*/
|
|
51
|
+
export async function pinDatasetToIpfs(filePath, pinataJwt) {
|
|
52
|
+
if (!existsSync(filePath)) {
|
|
53
|
+
throw cliError('DATASET_FILE_NOT_FOUND', `Dataset file not found: ${filePath}`);
|
|
54
|
+
}
|
|
55
|
+
if (!pinataJwt) {
|
|
56
|
+
throw cliError('MISSING_PINATA_JWT', 'PINATA_JWT is required to pin a --dataset file to IPFS.', 'Set PINATA_JWT, or pass --dataset-uri <url> to skip pinning and supply the URL directly.');
|
|
57
|
+
}
|
|
58
|
+
const name = basename(filePath);
|
|
59
|
+
const form = new FormData();
|
|
60
|
+
// Read the whole file into memory — datasets here are small JSON blobs.
|
|
61
|
+
form.append('file', new Blob([readFileSync(filePath)]), name);
|
|
62
|
+
form.append('pinataMetadata', JSON.stringify({ name }));
|
|
63
|
+
let response;
|
|
64
|
+
try {
|
|
65
|
+
response = await fetch(PINATA_PIN_URL, {
|
|
66
|
+
method: 'POST',
|
|
67
|
+
headers: { Authorization: `Bearer ${pinataJwt}` },
|
|
68
|
+
body: form,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
catch (e) {
|
|
72
|
+
throw cliError('IPFS_PIN_UNREACHABLE', `Could not reach Pinata at ${PINATA_PIN_URL}: ${e.message}.`, 'Check your connection and PINATA_JWT. The on-chain mint already landed; re-run with the same --idempotency-key to retry Phase 2.');
|
|
73
|
+
}
|
|
74
|
+
let body = null;
|
|
75
|
+
try {
|
|
76
|
+
body = (await response.json());
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
// fall through to the !ok / missing-CID handling below
|
|
80
|
+
}
|
|
81
|
+
if (!response.ok || !body?.IpfsHash) {
|
|
82
|
+
const detail = typeof body?.error === 'string'
|
|
83
|
+
? body.error
|
|
84
|
+
: JSON.stringify(body?.error ?? `HTTP ${response.status}`);
|
|
85
|
+
throw cliError('IPFS_PIN_FAILED', `Pinata pin failed (HTTP ${response.status}): ${detail}`, 'Verify PINATA_JWT has the pinFileToIPFS scope. The mint is durable; retry Phase 2 with the same --idempotency-key.');
|
|
86
|
+
}
|
|
87
|
+
return `https://ipfs.io/ipfs/${body.IpfsHash}`;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* POST pod metadata to the platform. Returns `{ ok, status, detail }` for any
|
|
91
|
+
* HTTP response (the caller decides whether a non-2xx is fatal). Throws
|
|
92
|
+
* `cliError` only on a network-level failure (DNS/TLS/refused).
|
|
93
|
+
*/
|
|
94
|
+
export async function registerPodMetadata(agentId, agentApiKey, metadata, apiBase = AGENTS_API_BASE) {
|
|
95
|
+
const url = `${apiBase}/agents/${agentId}/pods`;
|
|
96
|
+
let response;
|
|
97
|
+
try {
|
|
98
|
+
response = await fetch(url, {
|
|
99
|
+
method: 'POST',
|
|
100
|
+
headers: {
|
|
101
|
+
'Content-Type': 'application/json',
|
|
102
|
+
Authorization: `Bearer ${agentApiKey}`,
|
|
103
|
+
},
|
|
104
|
+
body: JSON.stringify(metadata),
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
catch (e) {
|
|
108
|
+
throw cliError('PLATFORM_API_UNREACHABLE', `Could not reach the Reppo platform at ${url}: ${e.message}.`, 'The on-chain mint already landed. Re-run with the same --idempotency-key once the platform is reachable to retry Phase 2.');
|
|
109
|
+
}
|
|
110
|
+
const raw = await response.text().catch(() => '');
|
|
111
|
+
// Collapse whitespace and cap at 600 chars so a failure fits one log line.
|
|
112
|
+
const detail = raw.replace(/\s+/g, ' ').trim().slice(0, 600);
|
|
113
|
+
return { ok: response.ok, status: response.status, detail };
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=agents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/api/agents.ts"],"names":[],"mappings":"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"}
|
package/dist/bin.js
CHANGED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared receipt helpers for write commands. Classifies viem receipt-wait
|
|
3
|
+
* failures so agents get stable error codes instead of INTERNAL_ERROR.
|
|
4
|
+
*/
|
|
5
|
+
import type { Hash, TransactionReceipt } from 'viem';
|
|
6
|
+
type ReceiptWaitClient = {
|
|
7
|
+
waitForTransactionReceipt(args: {
|
|
8
|
+
hash: Hash;
|
|
9
|
+
timeout?: number;
|
|
10
|
+
}): Promise<TransactionReceipt>;
|
|
11
|
+
};
|
|
12
|
+
export declare function waitForWriteReceipt(publicClient: ReceiptWaitClient, hash: Hash, timeoutMs?: number): Promise<TransactionReceipt>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=receipt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"receipt.d.ts","sourceRoot":"","sources":["../../src/chain/receipt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAIrD,KAAK,iBAAiB,GAAG;IACvB,yBAAyB,CAAC,IAAI,EAAE;QAC9B,IAAI,EAAE,IAAI,CAAC;QACX,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACjC,CAAC;AAEF,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,iBAAiB,EAC/B,IAAI,EAAE,IAAI,EACV,SAAS,SAAU,GAClB,OAAO,CAAC,kBAAkB,CAAC,CAa7B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { WaitForTransactionReceiptTimeoutError } from 'viem';
|
|
2
|
+
import { cliError } from '../output/format.js';
|
|
3
|
+
export async function waitForWriteReceipt(publicClient, hash, timeoutMs = 120_000) {
|
|
4
|
+
try {
|
|
5
|
+
return await publicClient.waitForTransactionReceipt({ hash, timeout: timeoutMs });
|
|
6
|
+
}
|
|
7
|
+
catch (err) {
|
|
8
|
+
if (err instanceof WaitForTransactionReceiptTimeoutError) {
|
|
9
|
+
throw cliError('TX_RECEIPT_TIMEOUT', `Timed out after ${timeoutMs / 1000}s waiting for receipt: ${hash}`, 'The tx may still confirm. Re-run with the same --idempotency-key to reconcile once it lands.');
|
|
10
|
+
}
|
|
11
|
+
throw err;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=receipt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"receipt.js","sourceRoot":"","sources":["../../src/chain/receipt.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qCAAqC,EAAE,MAAM,MAAM,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAS/C,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,YAA+B,EAC/B,IAAU,EACV,SAAS,GAAG,OAAO;IAEnB,IAAI,CAAC;QACH,OAAO,MAAM,YAAY,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACpF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,qCAAqC,EAAE,CAAC;YACzD,MAAM,QAAQ,CACZ,oBAAoB,EACpB,mBAAmB,SAAS,GAAG,IAAI,0BAA0B,IAAI,EAAE,EACnE,8FAA8F,CAC/F,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claim-emissions.d.ts","sourceRoot":"","sources":["../../src/commands/claim-emissions.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"claim-emissions.d.ts","sourceRoot":"","sources":["../../src/commands/claim-emissions.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAWzC,qBAAa,qBAAsB,SAAQ,WAAW;IACpD,OAAgB,KAAK,aAAyB;IAE9C,OAAgB,KAAK,4BAUlB;IAEH,GAAG,SAA8C;IACjD,KAAK,SAAgD;IACrD,cAAc,qBAAsC;IACpD,MAAM,UAAsC;IAEtC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CAyKjC"}
|
|
@@ -23,6 +23,8 @@ import { cliError, emit } from '../output/format.js';
|
|
|
23
23
|
import { createClients, nextNonce } from '../chain/clients.js';
|
|
24
24
|
import { podManager } from '../chain/contracts.js';
|
|
25
25
|
import { decodeRevert } from '../chain/errors.js';
|
|
26
|
+
import { handleSubmittedCacheDecision } from './write-cache.js';
|
|
27
|
+
import { waitForWriteReceipt } from '../chain/receipt.js';
|
|
26
28
|
import { begin, markSubmitted, markConfirmed, markFailed, peekIdempotent } from '../state/idempotency.js';
|
|
27
29
|
const COMMAND = 'claim-emissions';
|
|
28
30
|
export class ClaimEmissionsCommand extends BaseCommand {
|
|
@@ -70,9 +72,23 @@ export class ClaimEmissionsCommand extends BaseCommand {
|
|
|
70
72
|
return 0;
|
|
71
73
|
}
|
|
72
74
|
if (decision.kind === 'return-submitted') {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
75
|
+
const clients = createClients({
|
|
76
|
+
network: cfg.network,
|
|
77
|
+
privateKey: pk,
|
|
78
|
+
...(cfg.rpcUrl ? { rpcUrl: cfg.rpcUrl } : {}),
|
|
79
|
+
});
|
|
80
|
+
return handleSubmittedCacheDecision(decision, {
|
|
81
|
+
idempotencyKey: this.idempotencyKey,
|
|
82
|
+
command: COMMAND,
|
|
83
|
+
args,
|
|
84
|
+
network: cfg.network,
|
|
85
|
+
publicClient: clients.publicClient,
|
|
86
|
+
buildResult: () => ({
|
|
87
|
+
podId: podId.toString(),
|
|
88
|
+
epoch: epoch.toString(),
|
|
89
|
+
amountClaimed: { unavailable: 'PodManager V2 does not expose a per-pod emissions-due view' },
|
|
90
|
+
}),
|
|
91
|
+
});
|
|
76
92
|
}
|
|
77
93
|
const clients = createClients({
|
|
78
94
|
network: cfg.network,
|
|
@@ -135,9 +151,14 @@ export class ClaimEmissionsCommand extends BaseCommand {
|
|
|
135
151
|
throw cliError(decoded.code, 'claim-emissions tx failed to submit', decoded.hint);
|
|
136
152
|
}
|
|
137
153
|
// markSubmitted BEFORE waitForReceipt — closes the retry-resend window.
|
|
138
|
-
if (this.idempotencyKey)
|
|
139
|
-
await markSubmitted(this.idempotencyKey, COMMAND, args, tx
|
|
140
|
-
|
|
154
|
+
if (this.idempotencyKey) {
|
|
155
|
+
await markSubmitted(this.idempotencyKey, COMMAND, args, tx, {
|
|
156
|
+
podId: podId.toString(),
|
|
157
|
+
epoch: epoch.toString(),
|
|
158
|
+
amountClaimed: { unavailable: 'PodManager V2 does not expose a per-pod emissions-due view' },
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
const receipt = await waitForWriteReceipt(clients.publicClient, tx);
|
|
141
162
|
if (receipt.status === 'reverted') {
|
|
142
163
|
if (this.idempotencyKey)
|
|
143
164
|
await markFailed(this.idempotencyKey, COMMAND, args, 'TX_REVERTED', tx);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claim-emissions.js","sourceRoot":"","sources":["../../src/commands/claim-emissions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"claim-emissions.js","sourceRoot":"","sources":["../../src/commands/claim-emissions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extend-lock.d.ts","sourceRoot":"","sources":["../../src/commands/extend-lock.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"extend-lock.d.ts","sourceRoot":"","sources":["../../src/commands/extend-lock.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAWzC,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,OAAgB,KAAK,aAAqB;IAE1C,OAAgB,KAAK,4BAUlB;IAEH,QAAQ,SAAqC;IAC7C,QAAQ,SAAgG;IACxG,cAAc,qBAAsC;IACpD,MAAM,UAAsC;IAEtC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CAyNjC"}
|
|
@@ -20,6 +20,8 @@ import { cliError, emit } from '../output/format.js';
|
|
|
20
20
|
import { createClients, nextNonce } from '../chain/clients.js';
|
|
21
21
|
import { veReppo } from '../chain/contracts.js';
|
|
22
22
|
import { decodeRevert } from '../chain/errors.js';
|
|
23
|
+
import { handleSubmittedCacheDecision } from './write-cache.js';
|
|
24
|
+
import { waitForWriteReceipt } from '../chain/receipt.js';
|
|
23
25
|
import { begin, markSubmitted, markConfirmed, markFailed, peekIdempotent } from '../state/idempotency.js';
|
|
24
26
|
const COMMAND = 'extend-lock';
|
|
25
27
|
export class ExtendLockCommand extends BaseCommand {
|
|
@@ -70,9 +72,38 @@ export class ExtendLockCommand extends BaseCommand {
|
|
|
70
72
|
return 0;
|
|
71
73
|
}
|
|
72
74
|
if (decision.kind === 'return-submitted') {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
75
|
+
const clients = createClients({
|
|
76
|
+
network: cfg.network,
|
|
77
|
+
privateKey: pk,
|
|
78
|
+
...(cfg.rpcUrl ? { rpcUrl: cfg.rpcUrl } : {}),
|
|
79
|
+
});
|
|
80
|
+
return handleSubmittedCacheDecision(decision, {
|
|
81
|
+
idempotencyKey: this.idempotencyKey,
|
|
82
|
+
command: COMMAND,
|
|
83
|
+
args,
|
|
84
|
+
network: cfg.network,
|
|
85
|
+
publicClient: clients.publicClient,
|
|
86
|
+
buildResult: async () => {
|
|
87
|
+
try {
|
|
88
|
+
const vrLocal = veReppo(cfg.network);
|
|
89
|
+
const lockupAfter = await clients.publicClient.readContract({
|
|
90
|
+
address: vrLocal.address, abi: vrLocal.abi, functionName: 'lockupData', args: [lockupId],
|
|
91
|
+
});
|
|
92
|
+
return {
|
|
93
|
+
lockupId: lockupId.toString(),
|
|
94
|
+
durationAdded: duration.toString(),
|
|
95
|
+
lockupAfter: {
|
|
96
|
+
amount: lockupAfter[0].toString(),
|
|
97
|
+
expiresAt: lockupAfter[1].toString(),
|
|
98
|
+
votingPower: lockupAfter[3].toString(),
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
return { lockupId: lockupId.toString(), durationAdded: duration.toString() };
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
});
|
|
76
107
|
}
|
|
77
108
|
const clients = createClients({
|
|
78
109
|
network: cfg.network,
|
|
@@ -146,9 +177,18 @@ export class ExtendLockCommand extends BaseCommand {
|
|
|
146
177
|
throw cliError(decoded.code, 'extend-lock tx failed to submit', decoded.hint);
|
|
147
178
|
}
|
|
148
179
|
// markSubmitted BEFORE waitForReceipt — closes the retry-resend window.
|
|
149
|
-
if (this.idempotencyKey)
|
|
150
|
-
await markSubmitted(this.idempotencyKey, COMMAND, args, tx
|
|
151
|
-
|
|
180
|
+
if (this.idempotencyKey) {
|
|
181
|
+
await markSubmitted(this.idempotencyKey, COMMAND, args, tx, {
|
|
182
|
+
lockupId: lockupId.toString(),
|
|
183
|
+
durationAdded: duration.toString(),
|
|
184
|
+
lockupBefore: {
|
|
185
|
+
amount: lockupBefore[0].toString(),
|
|
186
|
+
expiresAt: lockupBefore[1].toString(),
|
|
187
|
+
votingPower: lockupBefore[3].toString(),
|
|
188
|
+
},
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
const receipt = await waitForWriteReceipt(clients.publicClient, tx);
|
|
152
192
|
if (receipt.status === 'reverted') {
|
|
153
193
|
if (this.idempotencyKey)
|
|
154
194
|
await markFailed(this.idempotencyKey, COMMAND, args, 'TX_REVERTED', tx);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extend-lock.js","sourceRoot":"","sources":["../../src/commands/extend-lock.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"extend-lock.js","sourceRoot":"","sources":["../../src/commands/extend-lock.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grant-access.d.ts","sourceRoot":"","sources":["../../src/commands/grant-access.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"grant-access.d.ts","sourceRoot":"","sources":["../../src/commands/grant-access.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAWzC,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,OAAgB,KAAK,aAAsB;IAE3C,OAAgB,KAAK,4BAYlB;IAEH,OAAO,SAAyG;IAChH,EAAE,qBAA6H;IAC/H,cAAc,qBAAsC;IACpD,MAAM,UAAsC;IAEtC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CAwMjC"}
|
|
@@ -29,6 +29,8 @@ import { cliError, emit } from '../output/format.js';
|
|
|
29
29
|
import { createClients, nextNonce } from '../chain/clients.js';
|
|
30
30
|
import { subnetManager, reppoToken } from '../chain/contracts.js';
|
|
31
31
|
import { decodeRevert } from '../chain/errors.js';
|
|
32
|
+
import { handleSubmittedCacheDecision } from './write-cache.js';
|
|
33
|
+
import { waitForWriteReceipt } from '../chain/receipt.js';
|
|
32
34
|
import { begin, markSubmitted, markConfirmed, markFailed, peekIdempotent } from '../state/idempotency.js';
|
|
33
35
|
const COMMAND = 'grant-access';
|
|
34
36
|
export class GrantAccessCommand extends BaseCommand {
|
|
@@ -81,9 +83,34 @@ export class GrantAccessCommand extends BaseCommand {
|
|
|
81
83
|
return 0;
|
|
82
84
|
}
|
|
83
85
|
if (decision.kind === 'return-submitted') {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
86
|
+
const clients = createClients({
|
|
87
|
+
network: cfg.network,
|
|
88
|
+
privateKey: pk,
|
|
89
|
+
...(cfg.rpcUrl ? { rpcUrl: cfg.rpcUrl } : {}),
|
|
90
|
+
});
|
|
91
|
+
return handleSubmittedCacheDecision(decision, {
|
|
92
|
+
idempotencyKey: this.idempotencyKey,
|
|
93
|
+
command: COMMAND,
|
|
94
|
+
args,
|
|
95
|
+
network: cfg.network,
|
|
96
|
+
publicClient: clients.publicClient,
|
|
97
|
+
buildResult: async () => {
|
|
98
|
+
try {
|
|
99
|
+
const smLocal = subnetManager(cfg.network);
|
|
100
|
+
const fee = await clients.publicClient.readContract({
|
|
101
|
+
address: smLocal.address, abi: smLocal.abi, functionName: 'getAccessFeeREPPO', args: [datanetId],
|
|
102
|
+
});
|
|
103
|
+
return {
|
|
104
|
+
datanetId: datanetId.toString(),
|
|
105
|
+
to: target,
|
|
106
|
+
feeREPPO: { raw: fee.toString(), formatted: formatUnits(fee, 18) },
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
return { datanetId: datanetId.toString(), to: target };
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
});
|
|
87
114
|
}
|
|
88
115
|
// Throwing variants — write commands must fail loud on TBD.
|
|
89
116
|
const sm = subnetManager(cfg.network);
|
|
@@ -155,9 +182,14 @@ export class GrantAccessCommand extends BaseCommand {
|
|
|
155
182
|
throw cliError(decoded.code, 'grant-access tx failed to submit', decoded.hint);
|
|
156
183
|
}
|
|
157
184
|
// markSubmitted BEFORE waitForReceipt — closes the retry-resend window.
|
|
158
|
-
if (this.idempotencyKey)
|
|
159
|
-
await markSubmitted(this.idempotencyKey, COMMAND, args, tx
|
|
160
|
-
|
|
185
|
+
if (this.idempotencyKey) {
|
|
186
|
+
await markSubmitted(this.idempotencyKey, COMMAND, args, tx, {
|
|
187
|
+
datanetId: datanetId.toString(),
|
|
188
|
+
to: target,
|
|
189
|
+
feeREPPO: { raw: fee.toString(), formatted: formatUnits(fee, 18) },
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
const receipt = await waitForWriteReceipt(clients.publicClient, tx);
|
|
161
193
|
if (receipt.status === 'reverted') {
|
|
162
194
|
if (this.idempotencyKey)
|
|
163
195
|
await markFailed(this.idempotencyKey, COMMAND, args, 'TX_REVERTED', tx);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grant-access.js","sourceRoot":"","sources":["../../src/commands/grant-access.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"grant-access.js","sourceRoot":"","sources":["../../src/commands/grant-access.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAgB,MAAM,MAAM,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE1G,MAAM,OAAO,GAAG,cAAc,CAAC;AAE/B,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IACjD,MAAM,CAAU,KAAK,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;IAE3C,MAAM,CAAU,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;QACxC,WAAW,EAAE,oEAAoE;QACjF,QAAQ,EAAE;YACR,CAAC,sEAAsE;gBACrE,iCAAiC,CAAC;YACpC,CAAC,kCAAkC;gBACjC,kDAAkD,CAAC;YACrD,CAAC,sBAAsB;gBACrB,iEAAiE,CAAC;YACpE,CAAC,SAAS;gBACR,2CAA2C,CAAC;SAC/C;KACF,CAAC,CAAC;IAEH,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,wCAAwC,EAAE,CAAC,CAAC;IAChH,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,iFAAiF,EAAE,CAAC,CAAC;IAC/H,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACpD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAE5C,KAAK,CAAC,OAAO;QACX,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9B,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC;YAC1B,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,MAAM,QAAQ,CACZ,qBAAqB,EACrB,2BAA2B,EAC3B,+BAA+B,CAChC,CAAC;YACJ,CAAC;YAED,IAAI,SAAiB,CAAC;YACtB,IAAI,CAAC;gBACH,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,QAAQ,CAAC,oBAAoB,EAAE,mDAAmD,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;YAC5G,CAAC;YAED,MAAM,OAAO,GAAG,aAAa,CAAC;gBAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,UAAU,EAAE,EAAE;gBACd,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9C,CAAC,CAAC;YAEH,MAAM,MAAM,GAAY,IAAI,CAAC,EAAE;gBAC7B,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjB,CAAC,CAAC,IAAI,CAAC,EAAE;oBACT,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,QAAQ,CAAC,iBAAiB,EAAE,yBAAyB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3F,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;YAE5B,MAAM,IAAI,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;YAE3E,MAAM,QAAQ,GAAG,MAAM,cAAc,CACnC,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAChD,CAAC;YACF,IAAI,QAAQ,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACzC,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,EAChE,CAAC,2BAA2B,QAAQ,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC3D,OAAO,CAAC,CAAC;YACX,CAAC;YACD,IAAI,QAAQ,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACzC,MAAM,OAAO,GAAG,aAAa,CAAC;oBAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,UAAU,EAAE,EAAE;oBACd,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC9C,CAAC,CAAC;gBACH,OAAO,4BAA4B,CAAC,QAAQ,EAAE;oBAC5C,cAAc,EAAE,IAAI,CAAC,cAAc;oBACnC,OAAO,EAAE,OAAO;oBAChB,IAAI;oBACJ,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,WAAW,EAAE,KAAK,IAAI,EAAE;wBACtB,IAAI,CAAC;4BACH,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;4BAC3C,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;gCAClD,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC;6BACjG,CAAC,CAAC;4BACH,OAAO;gCACL,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;gCAC/B,EAAE,EAAE,MAAM;gCACV,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;6BACnE,CAAC;wBACJ,CAAC;wBAAC,MAAM,CAAC;4BACP,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;wBACzD,CAAC;oBACH,CAAC;iBACF,CAAC,CAAC;YACL,CAAC;YAED,4DAA4D;YAC5D,MAAM,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAEtC,4CAA4C;YAC5C,MAAM,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC3E,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;oBAChC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC;iBACjF,CAAC;gBACF,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;oBAChC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;iBAC7F,CAAC;gBACF,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;oBAChC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC;iBACvF,CAAC;gBACF,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;oBAChC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;iBACnG,CAAC;gBACF,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;oBAChC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;iBAC/G,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,QAAQ,CACZ,mBAAmB,EACnB,WAAW,SAAS,sBAAsB,GAAG,CAAC,OAAO,GAAG,EACxD,6CAA6C,SAAS,4BAA4B,CACnF,CAAC;YACJ,CAAC;YAED,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,QAAQ,CACZ,wBAAwB,EACxB,GAAG,MAAM,kCAAkC,SAAS,GAAG,EACvD,gCAAgC,CACjC,CAAC;YACJ,CAAC;YAED,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;gBAClB,MAAM,QAAQ,CACZ,4BAA4B,EAC5B,cAAc,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC,yBAAyB,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,EAC5F,4CAA4C,CAC7C,CAAC;YACJ,CAAC;YAED,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;gBACpB,MAAM,QAAQ,CACZ,wBAAwB,EACxB,wBAAwB,OAAO,CAAC,OAAO,CAAC,OAAO,wBAAwB,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI;oBACrG,oBAAoB,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,EACjD,8BAA8B,EAAE,CAAC,OAAO,kBAAkB,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU;oBACxF,6FAA6F,CAC9F,CAAC;YACJ,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC;oBACtD,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,0BAA0B;oBAC1E,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO;iBACpD,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;oBACb,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBAChC,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,qBAAqB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;gBACpE,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC;oBACH,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;oBAC/B,EAAE,EAAE,MAAM;oBACV,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;oBAClE,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,IAAI;iBACzC,CAAC,CAAC;gBACH,OAAO,CAAC,CAAC;YACX,CAAC;YAED,IAAI,IAAI,CAAC,cAAc;gBAAE,MAAM,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YAEzE,IAAI,EAAiB,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC7E,EAAE,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC;oBAC5C,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,0BAA0B;oBAC1E,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;oBACzB,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK;iBACnE,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,IAAI,CAAC,cAAc;oBAAE,MAAM,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC5F,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,kCAAkC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACjF,CAAC;YAED,wEAAwE;YACxE,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,MAAM,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;oBAC1D,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;oBAC/B,EAAE,EAAE,MAAM;oBACV,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;iBACnE,CAAC,CAAC;YACL,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YACpE,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAClC,IAAI,IAAI,CAAC,cAAc;oBAAE,MAAM,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;gBACjG,MAAM,QAAQ,CAAC,aAAa,EAAE,6BAA6B,EAAE,EAAE,CAAC,CAAC;YACnE,CAAC;YAED,MAAM,MAAM,GAAG;gBACb,MAAM,EAAE,EAAE;gBACV,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;gBAC/B,EAAE,EAAE,MAAM;gBACV,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;gBAClE,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE;gBACrC,WAAW,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS;oBACpC,CAAC,CAAC,2BAA2B,EAAE,EAAE;oBACjC,CAAC,CAAC,mCAAmC,EAAE,EAAE;aAC5C,CAAC;YACF,IAAI,IAAI,CAAC,cAAc;gBAAE,MAAM,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAE7F,IAAI,CAAC,MAAM,EAAE;gBACX,aAAa,MAAM,sBAAsB,SAAS,EAAE;gBACpD,eAAe,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ;gBAC3C,SAAS,MAAM,CAAC,WAAW,EAAE;gBAC7B,YAAY,OAAO,CAAC,WAAW,EAAE;aAClC,CAAC,CAAC;YACH,OAAO,CAAC,CAAC;QACX,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/commands/lock.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/commands/lock.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAWzC,qBAAa,WAAY,SAAQ,WAAW;IAC1C,OAAgB,KAAK,aAAc;IAEnC,OAAgB,KAAK,4BAUlB;IAEH,MAAM,SAAqC;IAC3C,QAAQ,SAA4F;IACpG,cAAc,qBAAsC;IACpD,MAAM,UAAsC;IAEtC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CA0MjC"}
|