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 +48 -0
- package/dexe-plugin/skills/dexe-create-proposal/SKILL.md +21 -3
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/avatarUpload.d.ts +57 -0
- package/dist/lib/avatarUpload.d.ts.map +1 -0
- package/dist/lib/avatarUpload.js +95 -0
- package/dist/lib/avatarUpload.js.map +1 -0
- package/dist/lib/qr.d.ts +9 -2
- package/dist/lib/qr.d.ts.map +1 -1
- package/dist/lib/qr.js +24 -12
- package/dist/lib/qr.js.map +1 -1
- package/dist/tools/daoCreate.d.ts.map +1 -1
- package/dist/tools/daoCreate.js +27 -8
- package/dist/tools/daoCreate.js.map +1 -1
- package/dist/tools/flow.d.ts +25 -5
- package/dist/tools/flow.d.ts.map +1 -1
- package/dist/tools/flow.js +79 -35
- package/dist/tools/flow.js.map +1 -1
- package/dist/tools/ipfs.d.ts.map +1 -1
- package/dist/tools/ipfs.js +43 -47
- package/dist/tools/ipfs.js.map +1 -1
- package/dist/tools/otc.d.ts.map +1 -1
- package/dist/tools/otc.js +26 -14
- package/dist/tools/otc.js.map +1 -1
- package/package.json +1 -1
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
|
-
|
|
20
|
-
|
|
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/
|
|
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
|
|
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
|
package/dist/lib/qr.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
|
69
|
-
const
|
|
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:
|
|
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.",
|
package/dist/lib/qr.js.map
CHANGED
|
@@ -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
|
|
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;
|
|
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"}
|
package/dist/tools/daoCreate.js
CHANGED
|
@@ -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
|
|
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 =
|
|
358
|
+
daoMeta.avatarCID = avatarCidV1;
|
|
340
359
|
daoMeta.avatarFileName = input.avatarFileName;
|
|
341
|
-
daoMeta.avatarUrl =
|
|
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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"}
|