dexe-mcp 0.20.0 → 0.21.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/CHANGELOG.md CHANGED
@@ -1,5 +1,53 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.21.0 — 2026-07-06
4
+
5
+ ### One-call avatar updates + file-path uploads
6
+
7
+ "Update the DAO avatar, here's the image" used to take three tools and a
8
+ context-busting file read: the agent had to read the image from disk, base64
9
+ it through the conversation, call `dexe_ipfs_upload_avatar`, then thread the
10
+ CID into `dexe_proposal_create`. Now the server reads local files itself.
11
+
12
+ - **`newAvatarPath` on `dexe_proposal_create`** (modify_dao_profile) and
13
+ **`avatarPath` on `dexe_dao_create`**: pass a local image path; the server
14
+ reads, magic-byte-validates, pins, and wires the CID — one call total.
15
+ `newAvatarBase64` also accepted; combining path and CID inputs errors.
16
+ - **`filePath` on `dexe_ipfs_upload_avatar` (10 MB cap) and
17
+ `dexe_ipfs_upload_file` (25 MB cap)** as the preferred alternative to base64.
18
+ - Shared implementation in `src/lib/avatarUpload.ts`
19
+ (`pinAvatarFromInput` / `readAvatarInput`; `buildAvatarUrl` moved here).
20
+ - `modify_dao_profile` with a by-reference `newAvatarCID` now gets the same
21
+ best-effort fetch-and-sniff gate as the other by-CID paths (v0.20.0), and
22
+ `dexe_dao_create` honours `DEXE_IPFS_AVATAR_GATEWAY` instead of hardcoding
23
+ dweb.link.
24
+ - De-escalated agent guidance: server instructions and the
25
+ `dexe-create-proposal` skill no longer mandate `dexe_context` first when the
26
+ user already named the target; both now tell agents to pass image paths
27
+ instead of reading files.
28
+
29
+ ## 0.20.1 — 2026-07-06
30
+
31
+ ### Composite flows render the WalletConnect QR inline
32
+
33
+ The v0.18.0 "instant QR" only covered `dexe_wc_connect` / `dexe_tx_send` /
34
+ `dexe_wc_status` — those return the QR as real MCP content blocks (ASCII +
35
+ `image/png`), which clients render inline. The composite write flows
36
+ (`dexe_proposal_create`, `dexe_proposal_vote_and_execute`, `dexe_dao_create`,
37
+ OTC buy/claim/open-sale) buried the pairing QR inside the JSON `pairing`
38
+ field instead, so no client could render it and assistants fell back to
39
+ hand-rolled PNG files and deep-link strings.
40
+
41
+ - `sendOrCollect`'s no-signer branch now also returns ready-to-attach QR
42
+ content blocks; all six composite return sites prepend them via a shared
43
+ `attachPairingQr` helper — identical presentation to `dexe_wc_connect`.
44
+ - New `wcQrBlocks()` in `src/lib/qr.ts` (the scannable blocks without the
45
+ JSON envelope); `wcPairingContent()` now composes it.
46
+ - The JSON `pairing` field stays for programmatic callers but drops the
47
+ escaped `ascii` dump in favour of `qrFallbackUrl` + an accurate `renderHint`.
48
+ - `dexe_otc_dao_open_sale` re-parses the proposal_create envelope from the
49
+ last text block (it may now lead with QR blocks) and preserves them.
50
+
3
51
  ## 0.20.0 — 2026-07-06
4
52
 
5
53
  ### Avatars: real JPEG generation + magic-byte validation (bug #34)
@@ -16,8 +16,10 @@ metadata with the correct `{proposalName, proposalDescription, category, isMeta,
16
16
  changes}` shape, and calls `createProposalAndVote`. With `DEXE_PRIVATE_KEY` it
17
17
  signs+broadcasts; otherwise it returns ordered `TxPayload`s.
18
18
 
19
- Call **`dexe_context`** first it returns the signer, active chain, and the
20
- DAOs/proposals from prior sessions (so you already have the `govPool` to target).
19
+ If you don't already know the target `govPool`/chain, call **`dexe_context`** —
20
+ it returns the signer, active chain, and the DAOs/proposals from prior sessions.
21
+ When the user already told you the DAO and what to do, go straight to
22
+ `dexe_proposal_create`.
21
23
 
22
24
  **Do not hand-sequence** approve/deposit/create, and do not hand-build the IPFS
23
25
  metadata — the composite does both correctly. **Do not guess ABIs/selectors**;
@@ -38,7 +40,7 @@ Pass `proposalType` + the type's inputs in `params`:
38
40
  | `token_distribution` | `{ distributionProposal, proposalId, token, amount, isNative? }` |
39
41
  | `token_sale` | `{ tokenSaleProposal, tiers:[…], latestTierId? }` |
40
42
  | `custom_abi` | `{ target, signature, method, args?, value? }` |
41
- | `modify_dao_profile` | top-level `newDaoName/newDaoDescription/newAvatarCID/newWebsiteUrl/newSocialLinks` |
43
+ | `modify_dao_profile` | top-level `newDaoName/newDaoDescription/newWebsiteUrl/newSocialLinks`; avatar via `newAvatarPath` (local image path — the server uploads + validates it; do NOT read the file yourself) or `newAvatarCID` |
42
44
  | `custom` | top-level `actionsOnFor:[{executor,value,data}]` (+ optional `category`) |
43
45
 
44
46
  Any other catalog type → the tool errors and names the dedicated
@@ -57,6 +59,22 @@ dexe_proposal_create({
57
59
  })
58
60
  ```
59
61
 
62
+ ## Example: update the DAO avatar (ONE call — no upload step, no file reading)
63
+
64
+ ```jsonc
65
+ dexe_proposal_create({
66
+ govPool: "0x…",
67
+ proposalType: "modify_dao_profile",
68
+ title: "New DAO avatar",
69
+ newAvatarPath: "C:/Users/me/Pictures/logo.png" // server reads, validates, pins
70
+ })
71
+ ```
72
+
73
+ The server reads the image from disk, rejects non-raster bytes (SVG never
74
+ renders on app.dexe.io), pins it, rebuilds the metadata, and creates the
75
+ proposal. Do not call `dexe_ipfs_upload_avatar` first and do not read the
76
+ image file into the conversation.
77
+
60
78
  ## Failure modes this guards against
61
79
 
62
80
  1. **Sequence** — the composite runs approve→deposit→create; never do it by hand.
package/dist/index.js CHANGED
@@ -64,8 +64,9 @@ async function main() {
64
64
  const config = await loadConfig();
65
65
  const server = new McpServer({ name: "dexe-mcp", version: "0.1.5" }, {
66
66
  instructions: "Tools for DeXe Protocol governance DAOs (plus a generic dexe_gov_* surface for external OpenZeppelin/Compound Governor DAOs). " +
67
- "Call dexe_context FIRST it returns the signer, active chain, env readiness, and the DAOs/proposals from prior sessions so you don't start from zero. " +
67
+ "Call dexe_context first WHEN you need orientation (signer, active chain, env readiness, DAOs/proposals from prior sessions) skip it when the user already gave you the target DAO and chain. " +
68
68
  "Prefer the composite flow tools over hand-sequencing calldata: dexe_dao_create (deploy a DAO), dexe_proposal_create (any proposal — pass proposalType + params), dexe_proposal_vote_and_execute. " +
69
+ "For images (DAO avatars): pass a LOCAL FILE PATH (avatarPath / newAvatarPath / filePath) and the server reads, validates, and pins it — never read image files or pass base64 through the conversation. " +
69
70
  "They handle the approve→deposit→create sequence, correct IPFS metadata, and the known deploy/proposal reverts. When depositing, ERC20.approve the UserKeeper, never GovPool. Validate DAO deploys on BSC testnet (chain 97). " +
70
71
  "Before any dexe_get_* / dexe_list_contracts / dexe_find_selector, run dexe_compile once per session. dexe_decode_proposal and dexe_read_gov_state need an RPC. " +
71
72
  "The tool surface is gated by DEXE_TOOLSETS (default 'core,proposals'). Set DEXE_TOOLSETS=full for every tool, or add sets: read, vote, governor, dev. " +
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Shared avatar-ingestion helper: one implementation behind
3
+ * `dexe_ipfs_upload_avatar`, `dexe_proposal_create` (modify_dao_profile), and
4
+ * `dexe_dao_create`.
5
+ *
6
+ * Accepts the image either as a local file path (preferred — the server reads
7
+ * the bytes itself, so the agent never round-trips base64 through its context)
8
+ * or as base64. Every path goes through the same magic-byte raster gate before
9
+ * pinning, so an SVG/HTML impostor can't reach IPFS under a `.jpeg` name.
10
+ */
11
+ import { type RasterFormat } from "./imageSniff.js";
12
+ import { type PinataClient } from "./ipfs.js";
13
+ /** Avatars render at ≤512px on app.dexe.io — 10 MB is already generous. */
14
+ export declare const MAX_AVATAR_BYTES: number;
15
+ /**
16
+ * Subdomain-gateway host used to build the `avatarUrl` field stored inside
17
+ * DAO metadata. Must speak the `<cidV1>.ipfs.<host>/<filename>` schema so the
18
+ * DeXe frontend's `parseAvatarFromIpfsResponse` can round-trip the URL.
19
+ *
20
+ * Default is `dweb.link` — the frontend's historical `4everland.io` fails to
21
+ * discover freshly-pinned CIDs for tens of minutes, during which the backend
22
+ * cache can't fetch the avatar. Configurable via `DEXE_IPFS_AVATAR_GATEWAY`
23
+ * (host, no scheme).
24
+ */
25
+ export declare function avatarSubdomainHost(): string;
26
+ export declare function buildAvatarUrl(cidV1: string, fileName: string): string;
27
+ export interface AvatarInput {
28
+ /** Absolute path to a local image file — preferred over base64. */
29
+ filePath?: string;
30
+ /** Base64-encoded image bytes (no data-URL prefix). */
31
+ base64?: string;
32
+ }
33
+ /** Resolve an avatar input to raw bytes, with actionable errors. */
34
+ export declare function readAvatarInput({ filePath, base64 }: AvatarInput): Promise<Uint8Array>;
35
+ export interface PinnedAvatar {
36
+ avatarCID: string;
37
+ avatarFileName: string;
38
+ avatarUrl: string;
39
+ detectedFormat: RasterFormat;
40
+ /** Pin size reported by Pinata (includes the directory wrapper block). */
41
+ size: number;
42
+ pinnedAt: string;
43
+ /** Actual image byte length that was pinned. */
44
+ byteLength: number;
45
+ }
46
+ /**
47
+ * Read → validate (magic bytes) → pin → return the
48
+ * `{avatarCID, avatarFileName, avatarUrl}` triple DAO metadata expects.
49
+ * The filename is normalized to `.jpeg` to match the frontend contract
50
+ * (the serving chain keys off that extension); the pinned MIME is the
51
+ * format actually sniffed from the bytes.
52
+ */
53
+ export declare function pinAvatarFromInput(input: AvatarInput & {
54
+ fileName?: string;
55
+ pinata: PinataClient;
56
+ }): Promise<PinnedAvatar>;
57
+ //# sourceMappingURL=avatarUpload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatarUpload.d.ts","sourceRoot":"","sources":["../../src/lib/avatarUpload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAEvD,2EAA2E;AAC3E,eAAO,MAAM,gBAAgB,QAAmB,CAAC;AAEjD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAG5C;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,MAAM,WAAW,WAAW;IAC1B,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,oEAAoE;AACpE,wBAAsB,eAAe,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAgC5F;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,YAAY,CAAC;IAC7B,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,WAAW,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAC/D,OAAO,CAAC,YAAY,CAAC,CAqBvB"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Shared avatar-ingestion helper: one implementation behind
3
+ * `dexe_ipfs_upload_avatar`, `dexe_proposal_create` (modify_dao_profile), and
4
+ * `dexe_dao_create`.
5
+ *
6
+ * Accepts the image either as a local file path (preferred — the server reads
7
+ * the bytes itself, so the agent never round-trips base64 through its context)
8
+ * or as base64. Every path goes through the same magic-byte raster gate before
9
+ * pinning, so an SVG/HTML impostor can't reach IPFS under a `.jpeg` name.
10
+ */
11
+ import { readFile } from "node:fs/promises";
12
+ import { assertRasterAvatar } from "./imageSniff.js";
13
+ import { toCidV1 } from "./ipfs.js";
14
+ /** Avatars render at ≤512px on app.dexe.io — 10 MB is already generous. */
15
+ export const MAX_AVATAR_BYTES = 10 * 1024 * 1024;
16
+ /**
17
+ * Subdomain-gateway host used to build the `avatarUrl` field stored inside
18
+ * DAO metadata. Must speak the `<cidV1>.ipfs.<host>/<filename>` schema so the
19
+ * DeXe frontend's `parseAvatarFromIpfsResponse` can round-trip the URL.
20
+ *
21
+ * Default is `dweb.link` — the frontend's historical `4everland.io` fails to
22
+ * discover freshly-pinned CIDs for tens of minutes, during which the backend
23
+ * cache can't fetch the avatar. Configurable via `DEXE_IPFS_AVATAR_GATEWAY`
24
+ * (host, no scheme).
25
+ */
26
+ export function avatarSubdomainHost() {
27
+ const override = process.env.DEXE_IPFS_AVATAR_GATEWAY?.trim().replace(/^https?:\/\//i, "").replace(/\/$/, "");
28
+ return override || "dweb.link";
29
+ }
30
+ export function buildAvatarUrl(cidV1, fileName) {
31
+ return `https://${cidV1}.ipfs.${avatarSubdomainHost()}/${fileName}`;
32
+ }
33
+ /** Resolve an avatar input to raw bytes, with actionable errors. */
34
+ export async function readAvatarInput({ filePath, base64 }) {
35
+ if (filePath && base64) {
36
+ throw new Error("Pass either `filePath` or `base64`, not both.");
37
+ }
38
+ if (filePath) {
39
+ let buf;
40
+ try {
41
+ buf = await readFile(filePath);
42
+ }
43
+ catch (e) {
44
+ throw new Error(`Cannot read avatar file at "${filePath}": ${e instanceof Error ? e.message : String(e)}. ` +
45
+ "Pass an absolute path to an existing image file (JPEG/PNG/WebP/GIF).");
46
+ }
47
+ if (buf.length === 0)
48
+ throw new Error(`Avatar file at "${filePath}" is empty.`);
49
+ if (buf.length > MAX_AVATAR_BYTES) {
50
+ throw new Error(`Avatar file is ${(buf.length / 1024 / 1024).toFixed(1)} MB — max ${MAX_AVATAR_BYTES / 1024 / 1024} MB. ` +
51
+ "Resize/compress the image first (it renders at 512px or less).");
52
+ }
53
+ return Uint8Array.from(buf);
54
+ }
55
+ if (base64) {
56
+ const bytes = Uint8Array.from(Buffer.from(base64, "base64"));
57
+ if (bytes.length === 0)
58
+ throw new Error("`base64` decoded to zero bytes — check the payload.");
59
+ if (bytes.length > MAX_AVATAR_BYTES) {
60
+ throw new Error(`Avatar is ${(bytes.length / 1024 / 1024).toFixed(1)} MB — max ${MAX_AVATAR_BYTES / 1024 / 1024} MB.`);
61
+ }
62
+ return bytes;
63
+ }
64
+ throw new Error("Provide the avatar image as `filePath` (preferred for local files) or `base64`.");
65
+ }
66
+ /**
67
+ * Read → validate (magic bytes) → pin → return the
68
+ * `{avatarCID, avatarFileName, avatarUrl}` triple DAO metadata expects.
69
+ * The filename is normalized to `.jpeg` to match the frontend contract
70
+ * (the serving chain keys off that extension); the pinned MIME is the
71
+ * format actually sniffed from the bytes.
72
+ */
73
+ export async function pinAvatarFromInput(input) {
74
+ const bytes = await readAvatarInput(input);
75
+ const sniffed = assertRasterAvatar(bytes);
76
+ const raw = input.fileName ?? "avatar";
77
+ const base = raw.includes(".") ? raw.substring(0, raw.lastIndexOf(".")) : raw;
78
+ const normalized = `${base || "avatar"}.jpeg`;
79
+ const res = await input.pinata.pinFile(bytes, {
80
+ fileName: normalized,
81
+ contentType: sniffed.mime,
82
+ name: normalized,
83
+ });
84
+ const avatarCID = toCidV1(res.cid);
85
+ return {
86
+ avatarCID,
87
+ avatarFileName: normalized,
88
+ avatarUrl: buildAvatarUrl(avatarCID, normalized),
89
+ detectedFormat: sniffed.format,
90
+ size: res.size,
91
+ pinnedAt: res.pinnedAt,
92
+ byteLength: bytes.length,
93
+ };
94
+ }
95
+ //# sourceMappingURL=avatarUpload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatarUpload.js","sourceRoot":"","sources":["../../src/lib/avatarUpload.ts"],"names":[],"mappings":"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"}
package/dist/lib/qr.d.ts CHANGED
@@ -20,7 +20,7 @@ export declare function renderQr(text: string): Promise<RenderedQr>;
20
20
  /** External fallback image URL for clients that can render neither ASCII nor an image block. */
21
21
  export declare function qrFallbackUrl(uri: string): string;
22
22
  /** One MCP `content[]` item — text or image. Kept loose to match the tool call sites. */
23
- type PairingContent = {
23
+ export type PairingContent = {
24
24
  type: "text";
25
25
  text: string;
26
26
  } | {
@@ -28,6 +28,14 @@ type PairingContent = {
28
28
  data: string;
29
29
  mimeType: string;
30
30
  };
31
+ /**
32
+ * Just the scannable part of a pairing response: a captioned ASCII QR text
33
+ * block plus an `image/png` block. Composite write flows attach these to
34
+ * their no-signer responses so the QR renders inline exactly like
35
+ * `dexe_wc_connect` — the JSON envelope stays the caller's business.
36
+ * Empty array when QR rendering is unavailable.
37
+ */
38
+ export declare function wcQrBlocks(uri: string): Promise<PairingContent[]>;
31
39
  /**
32
40
  * Build the MCP `content[]` for a WalletConnect pairing response, shared by
33
41
  * `dexe_wc_connect` and `dexe_tx_send`'s auto-pairing branch so the QR + the
@@ -39,5 +47,4 @@ type PairingContent = {
39
47
  * `renderHint` telling the assistant to echo the ASCII block verbatim.
40
48
  */
41
49
  export declare function wcPairingContent(uri: string, chainId: number, extra?: Record<string, unknown>): Promise<PairingContent[]>;
42
- export {};
43
50
  //# sourceMappingURL=qr.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"qr.d.ts","sourceRoot":"","sources":["../../src/lib/qr.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,MAAM,WAAW,UAAU;IACzB,uEAAuE;IACvE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,iFAAiF;IACjF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAqBD;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAmBhE;AAED,gGAAgG;AAChG,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,yFAAyF;AACzF,KAAK,cAAc,GACf;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,cAAc,EAAE,CAAC,CAkC3B"}
1
+ {"version":3,"file":"qr.d.ts","sourceRoot":"","sources":["../../src/lib/qr.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,MAAM,WAAW,UAAU;IACzB,uEAAuE;IACvE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,iFAAiF;IACjF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAqBD;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAmBhE;AAED,gGAAgG;AAChG,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,yFAAyF;AACzF,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAavE;AAED;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,cAAc,EAAE,CAAC,CAwB3B"}
package/dist/lib/qr.js CHANGED
@@ -54,6 +54,27 @@ export async function renderQr(text) {
54
54
  export function qrFallbackUrl(uri) {
55
55
  return `https://api.qrserver.com/v1/create-qr-code/?size=400x400&data=${encodeURIComponent(uri)}`;
56
56
  }
57
+ /**
58
+ * Just the scannable part of a pairing response: a captioned ASCII QR text
59
+ * block plus an `image/png` block. Composite write flows attach these to
60
+ * their no-signer responses so the QR renders inline exactly like
61
+ * `dexe_wc_connect` — the JSON envelope stays the caller's business.
62
+ * Empty array when QR rendering is unavailable.
63
+ */
64
+ export async function wcQrBlocks(uri) {
65
+ const { ascii, pngBase64 } = await renderQr(uri);
66
+ const blocks = [];
67
+ if (ascii) {
68
+ blocks.push({
69
+ type: "text",
70
+ text: `📱 Scan with your phone wallet (MetaMask / Trust / Rainbow):\n\n${ascii}`,
71
+ });
72
+ }
73
+ if (pngBase64) {
74
+ blocks.push({ type: "image", data: pngBase64, mimeType: "image/png" });
75
+ }
76
+ return blocks;
77
+ }
57
78
  /**
58
79
  * Build the MCP `content[]` for a WalletConnect pairing response, shared by
59
80
  * `dexe_wc_connect` and `dexe_tx_send`'s auto-pairing branch so the QR + the
@@ -65,17 +86,8 @@ export function qrFallbackUrl(uri) {
65
86
  * `renderHint` telling the assistant to echo the ASCII block verbatim.
66
87
  */
67
88
  export async function wcPairingContent(uri, chainId, extra) {
68
- const { ascii, pngBase64 } = await renderQr(uri);
69
- const content = [];
70
- if (ascii) {
71
- content.push({
72
- type: "text",
73
- text: `📱 Scan with your phone wallet (MetaMask / Trust / Rainbow):\n\n${ascii}`,
74
- });
75
- }
76
- if (pngBase64) {
77
- content.push({ type: "image", data: pngBase64, mimeType: "image/png" });
78
- }
89
+ const content = await wcQrBlocks(uri);
90
+ const hasAscii = content.some((c) => c.type === "text");
79
91
  content.push({
80
92
  type: "text",
81
93
  text: JSON.stringify({
@@ -83,7 +95,7 @@ export async function wcPairingContent(uri, chainId, extra) {
83
95
  chainId,
84
96
  uri,
85
97
  qrFallbackUrl: qrFallbackUrl(uri),
86
- renderHint: ascii
98
+ renderHint: hasAscii
87
99
  ? "Echo the ASCII QR block above VERBATIM in a code block so the user can scan it. Do not summarize or redraw it."
88
100
  : "QR rendering unavailable — show the user `qrFallbackUrl` to open a scannable image, or `uri` to paste into their wallet.",
89
101
  next: "Approve the session on your phone, then poll dexe_wc_status until `connected` is true.",
@@ -1 +1 @@
1
- {"version":3,"file":"qr.js","sourceRoot":"","sources":["../../src/lib/qr.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAeH,IAAI,MAAqC,CAAC;AAE1C,KAAK,UAAU,UAAU;IACvB,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAA4B,CAAC;QAChE,yEAAyE;QACzE,8CAA8C;QAC9C,MAAM,GAAG,GAAG,GAAG,CAAC,OAA8C,CAAC;QAC/D,MAAM,SAAS,GACb,CAAC,OAAQ,GAA8B,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAE,GAA6B,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7G,CAAC,GAAG,IAAI,OAAQ,GAA8B,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAE,GAA6B,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACvH,MAAM,GAAG,SAAS,IAAI,IAAI,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAY;IACzC,MAAM,EAAE,GAAG,MAAM,UAAU,EAAE,CAAC;IAC9B,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAEjD,IAAI,KAAK,GAAkB,IAAI,CAAC;IAChC,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,IAAI,CAAC;QACH,kFAAkF;QAClF,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,GAAG,IAAI,CAAC;IACf,CAAC;IACD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;QACnF,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9B,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,iEAAiE,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;AACpG,CAAC;AAOD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAW,EACX,OAAe,EACf,KAA+B;IAE/B,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,OAAO,GAAqB,EAAE,CAAC;IAErC,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,mEAAmE,KAAK,EAAE;SACjF,CAAC,CAAC;IACL,CAAC;IACD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,CAAC,IAAI,CAAC;QACX,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;YACE,MAAM,EAAE,SAAS;YACjB,OAAO;YACP,GAAG;YACH,aAAa,EAAE,aAAa,CAAC,GAAG,CAAC;YACjC,UAAU,EAAE,KAAK;gBACf,CAAC,CAAC,gHAAgH;gBAClH,CAAC,CAAC,0HAA0H;YAC9H,IAAI,EAAE,wFAAwF;YAC9F,GAAG,KAAK;SACT,EACD,IAAI,EACJ,CAAC,CACF;KACF,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"qr.js","sourceRoot":"","sources":["../../src/lib/qr.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"daoCreate.d.ts","sourceRoot":"","sources":["../../src/tools/daoCreate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAMpE,OAAO,EAA0C,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AA+CvD,KAAK,eAAe,GAAG,IAAI,CAAC,YAAY,EAAE,gBAAgB,GAAG,MAAM,CAAC,CAAC;AASrE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,QAAQ,GAAG,YAAY,CAAC;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,eAAe,CAsDnF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,eAAe,GAAG;IACtD,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CA6BA;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,EACjB,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,oBAAoB,EACxB,KAAK,CAAC,EAAE,UAAU,GACjB,IAAI,CAwRN"}
1
+ {"version":3,"file":"daoCreate.d.ts","sourceRoot":"","sources":["../../src/tools/daoCreate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAMpE,OAAO,EAA0C,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAgDvD,KAAK,eAAe,GAAG,IAAI,CAAC,YAAY,EAAE,gBAAgB,GAAG,MAAM,CAAC,CAAC;AASrE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,QAAQ,GAAG,YAAY,CAAC;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,eAAe,CAsDnF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,eAAe,GAAG;IACtD,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CA6BA;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,EACjB,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,oBAAoB,EACxB,KAAK,CAAC,EAAE,UAAU,GACjB,IAAI,CA0SN"}
@@ -1,15 +1,16 @@
1
1
  import { z } from "zod";
2
2
  import { parseUnits, formatUnits, ZeroAddress } from "ethers";
3
3
  import { RpcProvider } from "../rpc.js";
4
- import { PinataClient } from "../lib/ipfs.js";
4
+ import { PinataClient, toCidV1 } from "../lib/ipfs.js";
5
5
  import { markdownToSlate } from "../lib/markdownToSlate.js";
6
6
  import { resolveChain } from "../config.js";
7
7
  import { pinataUploadHint } from "../lib/requireEnv.js";
8
- import { sendOrCollect } from "./flow.js";
8
+ import { attachPairingQr, sendOrCollect } from "./flow.js";
9
9
  import { buildDeployGovPool, DeployParamsSchema } from "./daoDeploy.js";
10
10
  import { checkDeployCap, checkUserKeeperAsset, checkTreasuryRemainder, checkLinearInitData, checkQuorumReachable, assertPreflight, } from "../lib/preflight.js";
11
11
  import { quorumPctFromRaw } from "../lib/quorumRisk.js";
12
12
  import { checkAvatarCidBytes } from "../lib/imageSniff.js";
13
+ import { buildAvatarUrl, pinAvatarFromInput } from "../lib/avatarUpload.js";
13
14
  import { resolveGateways } from "./ipfs.js";
14
15
  /**
15
16
  * `dexe_dao_create` — the one-call DAO deploy composite. Two ways to call it:
@@ -172,6 +173,8 @@ export function registerDaoCreateTools(server, ctx, signer, wc, state) {
172
173
  socialLinks: z.array(z.tuple([z.string(), z.string()])).default([]).describe("[[network, url], ...]"),
173
174
  avatarCID: z.string().default("").describe("IPFS CID of an already-pinned JPEG avatar (dexe_ipfs_upload_avatar)"),
174
175
  avatarFileName: z.string().default("avatar.jpeg"),
176
+ avatarPath: z.string().default("").describe("Local image path for the DAO avatar (JPEG/PNG/WebP/GIF, max 10 MB) — the server uploads + validates it. " +
177
+ "Preferred over avatarCID; replaces the separate upload call."),
175
178
  // ---- SIMPLE mode fields (used when `params` is omitted) ----
176
179
  symbol: z.string().optional().describe("SIMPLE mode: gov token symbol (e.g. 'GENA'). Required when `params` is omitted."),
177
180
  totalSupply: z
@@ -327,18 +330,34 @@ export function registerDaoCreateTools(server, ctx, signer, wc, state) {
327
330
  socialLinks: input.socialLinks,
328
331
  documents: [],
329
332
  };
330
- if (input.avatarCID) {
333
+ if (input.avatarPath && input.avatarCID) {
334
+ return err("Pass either `avatarCID` or `avatarPath`, not both.");
335
+ }
336
+ if (input.avatarPath) {
337
+ // One-call path: read + validate (magic bytes) + pin server-side.
338
+ try {
339
+ const pinned = await pinAvatarFromInput({ filePath: input.avatarPath, pinata });
340
+ daoMeta.avatarCID = pinned.avatarCID;
341
+ daoMeta.avatarFileName = pinned.avatarFileName;
342
+ daoMeta.avatarUrl = pinned.avatarUrl;
343
+ }
344
+ catch (e) {
345
+ return err(e instanceof Error ? e.message : String(e));
346
+ }
347
+ }
348
+ else if (input.avatarCID) {
331
349
  // avatarCID arrives by reference — the upload tools validate their own
332
350
  // bytes, but nothing forces the caller to have used them. Best-effort
333
351
  // fetch + sniff; hard-block only on confirmed non-raster bytes (an SVG
334
352
  // here becomes a permanently broken avatar on app.dexe.io).
335
- const avatarCheck = await checkAvatarCidBytes(input.avatarCID, input.avatarFileName, resolveGateways(ctx));
353
+ const avatarCidV1 = toCidV1(input.avatarCID);
354
+ const avatarCheck = await checkAvatarCidBytes(avatarCidV1, input.avatarFileName, resolveGateways(ctx));
336
355
  if (!avatarCheck.ok) {
337
356
  return err(avatarCheck.error ?? "avatarCID failed raster validation");
338
357
  }
339
- daoMeta.avatarCID = input.avatarCID;
358
+ daoMeta.avatarCID = avatarCidV1;
340
359
  daoMeta.avatarFileName = input.avatarFileName;
341
- daoMeta.avatarUrl = `https://${input.avatarCID}.ipfs.dweb.link/${input.avatarFileName}`;
360
+ daoMeta.avatarUrl = buildAvatarUrl(avatarCidV1, input.avatarFileName);
342
361
  }
343
362
  let descriptionURL;
344
363
  try {
@@ -383,7 +402,7 @@ export function registerDaoCreateTools(server, ctx, signer, wc, state) {
383
402
  /* ignore */
384
403
  }
385
404
  }
386
- return ok({
405
+ return attachPairingQr(ok({
387
406
  mode: result.mode,
388
407
  daoName: input.daoName,
389
408
  chainId,
@@ -395,7 +414,7 @@ export function registerDaoCreateTools(server, ctx, signer, wc, state) {
395
414
  steps: result.steps,
396
415
  ...(result.enableWrites ? { enableWrites: result.enableWrites } : {}),
397
416
  ...(result.pairing ? { pairing: result.pairing } : {}),
398
- });
417
+ }), result.pairingContent);
399
418
  });
400
419
  }
401
420
  //# sourceMappingURL=daoCreate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"daoCreate.js","sourceRoot":"","sources":["../../src/tools/daoCreate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daoCreate.js","sourceRoot":"","sources":["../../src/tools/daoCreate.ts"],"names":[],"mappings":"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"}