dexe-mcp 0.5.8 → 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/CHANGELOG.md +641 -536
- package/README.md +289 -270
- package/SECURITY.md +96 -46
- package/dist/config.d.ts +9 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +60 -0
- package/dist/config.js.map +1 -1
- package/dist/governor/adapter.d.ts +90 -0
- package/dist/governor/adapter.d.ts.map +1 -0
- package/dist/governor/adapter.js +169 -0
- package/dist/governor/adapter.js.map +1 -0
- package/dist/governor/configs/compound.json +32 -0
- package/dist/governor/configs/optimism.json +28 -0
- package/dist/governor/configs/uniswap.json +32 -0
- package/dist/governor/encoder.d.ts +59 -0
- package/dist/governor/encoder.d.ts.map +1 -0
- package/dist/governor/encoder.js +290 -0
- package/dist/governor/encoder.js.map +1 -0
- package/dist/governor/index.d.ts +11 -0
- package/dist/governor/index.d.ts.map +1 -0
- package/dist/governor/index.js +20 -0
- package/dist/governor/index.js.map +1 -0
- package/dist/governor/loader.d.ts +42 -0
- package/dist/governor/loader.d.ts.map +1 -0
- package/dist/governor/loader.js +103 -0
- package/dist/governor/loader.js.map +1 -0
- package/dist/governor/tally.d.ts +48 -0
- package/dist/governor/tally.d.ts.map +1 -0
- package/dist/governor/tally.js +103 -0
- package/dist/governor/tally.js.map +1 -0
- package/dist/governor/tools/build.d.ts +3 -0
- package/dist/governor/tools/build.d.ts.map +1 -0
- package/dist/governor/tools/build.js +137 -0
- package/dist/governor/tools/build.js.map +1 -0
- package/dist/governor/tools/extras.d.ts +4 -0
- package/dist/governor/tools/extras.d.ts.map +1 -0
- package/dist/governor/tools/extras.js +197 -0
- package/dist/governor/tools/extras.js.map +1 -0
- package/dist/governor/tools/read.d.ts +4 -0
- package/dist/governor/tools/read.d.ts.map +1 -0
- package/dist/governor/tools/read.js +174 -0
- package/dist/governor/tools/read.js.map +1 -0
- package/dist/governor/tools/simulate.d.ts +6 -0
- package/dist/governor/tools/simulate.d.ts.map +1 -0
- package/dist/governor/tools/simulate.js +191 -0
- package/dist/governor/tools/simulate.js.map +1 -0
- package/dist/lib/broadcastGuards.d.ts +41 -0
- package/dist/lib/broadcastGuards.d.ts.map +1 -0
- package/dist/lib/broadcastGuards.js +85 -0
- package/dist/lib/broadcastGuards.js.map +1 -0
- package/dist/lib/ethersProvider.d.ts +96 -0
- package/dist/lib/ethersProvider.d.ts.map +1 -0
- package/dist/lib/ethersProvider.js +170 -0
- package/dist/lib/ethersProvider.js.map +1 -0
- package/dist/lib/signer.d.ts +2 -0
- package/dist/lib/signer.d.ts.map +1 -1
- package/dist/lib/signer.js +4 -0
- package/dist/lib/signer.js.map +1 -1
- package/dist/tools/flow.d.ts.map +1 -1
- package/dist/tools/flow.js +13 -0
- package/dist/tools/flow.js.map +1 -1
- package/dist/tools/getConfig.d.ts.map +1 -1
- package/dist/tools/getConfig.js +17 -0
- package/dist/tools/getConfig.js.map +1 -1
- package/dist/tools/inbox.js +8 -8
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +6 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/predict.js +17 -17
- package/dist/tools/safe.d.ts +5 -0
- package/dist/tools/safe.d.ts.map +1 -0
- package/dist/tools/safe.js +264 -0
- package/dist/tools/safe.js.map +1 -0
- package/dist/tools/simulate.d.ts +7 -0
- package/dist/tools/simulate.d.ts.map +1 -1
- package/dist/tools/simulate.js +8 -0
- package/dist/tools/simulate.js.map +1 -1
- package/dist/tools/subgraph.js +162 -162
- package/dist/tools/txSend.d.ts.map +1 -1
- package/dist/tools/txSend.js +25 -0
- package/dist/tools/txSend.js.map +1 -1
- package/package.json +95 -92
package/dist/tools/subgraph.js
CHANGED
|
@@ -28,174 +28,174 @@ const ENV_HINT = {
|
|
|
28
28
|
subgraphInteractionsUrl: "DEXE_SUBGRAPH_INTERACTIONS_URL",
|
|
29
29
|
};
|
|
30
30
|
// ---------- queries ----------
|
|
31
|
-
const DAO_LIST_QUERY = /* GraphQL */ `
|
|
32
|
-
query getGovPoolsList($offset: Int!, $limit: Int!, $queryString: String!) {
|
|
33
|
-
daoPools(
|
|
34
|
-
skip: $offset
|
|
35
|
-
first: $limit
|
|
36
|
-
where: { name_contains_nocase: $queryString }
|
|
37
|
-
orderBy: votersCount
|
|
38
|
-
orderDirection: desc
|
|
39
|
-
) {
|
|
40
|
-
id
|
|
41
|
-
name
|
|
42
|
-
erc20Token
|
|
43
|
-
erc721Token
|
|
44
|
-
votersCount
|
|
45
|
-
proposalCount
|
|
46
|
-
totalCurrentTokenDelegated
|
|
47
|
-
totalCurrentTokenDelegatees
|
|
48
|
-
creationTime
|
|
49
|
-
creationBlock
|
|
50
|
-
}
|
|
51
|
-
}
|
|
31
|
+
const DAO_LIST_QUERY = /* GraphQL */ `
|
|
32
|
+
query getGovPoolsList($offset: Int!, $limit: Int!, $queryString: String!) {
|
|
33
|
+
daoPools(
|
|
34
|
+
skip: $offset
|
|
35
|
+
first: $limit
|
|
36
|
+
where: { name_contains_nocase: $queryString }
|
|
37
|
+
orderBy: votersCount
|
|
38
|
+
orderDirection: desc
|
|
39
|
+
) {
|
|
40
|
+
id
|
|
41
|
+
name
|
|
42
|
+
erc20Token
|
|
43
|
+
erc721Token
|
|
44
|
+
votersCount
|
|
45
|
+
proposalCount
|
|
46
|
+
totalCurrentTokenDelegated
|
|
47
|
+
totalCurrentTokenDelegatees
|
|
48
|
+
creationTime
|
|
49
|
+
creationBlock
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
52
|
`;
|
|
53
|
-
const DAO_MEMBERS_QUERY = /* GraphQL */ `
|
|
54
|
-
query getVotersInPool($poolId: String!, $offset: Int!, $limit: Int!) {
|
|
55
|
-
voterInPools(skip: $offset, first: $limit, where: { pool: $poolId }) {
|
|
56
|
-
id
|
|
57
|
-
APR
|
|
58
|
-
currentDelegateesCount
|
|
59
|
-
currentDelegatorsCount
|
|
60
|
-
engagedProposalsCount
|
|
61
|
-
joinedTimestamp
|
|
62
|
-
receivedDelegation
|
|
63
|
-
receivedNFTDelegation
|
|
64
|
-
receivedTreasuryDelegation
|
|
65
|
-
totalClaimedUSD
|
|
66
|
-
totalLockedUSD
|
|
67
|
-
totalPersonalVotingRewardUSD
|
|
68
|
-
totalMicropoolVotingRewardUSD
|
|
69
|
-
totalTreasuryVotingRewardUSD
|
|
70
|
-
expertNft {
|
|
71
|
-
id
|
|
72
|
-
tokenId
|
|
73
|
-
}
|
|
74
|
-
voter {
|
|
75
|
-
id
|
|
76
|
-
totalProposalsCreated
|
|
77
|
-
totalVotedProposals
|
|
78
|
-
totalVotes
|
|
79
|
-
currentVotesReceived
|
|
80
|
-
currentVotesDelegated
|
|
81
|
-
totalClaimedUSD
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
53
|
+
const DAO_MEMBERS_QUERY = /* GraphQL */ `
|
|
54
|
+
query getVotersInPool($poolId: String!, $offset: Int!, $limit: Int!) {
|
|
55
|
+
voterInPools(skip: $offset, first: $limit, where: { pool: $poolId }) {
|
|
56
|
+
id
|
|
57
|
+
APR
|
|
58
|
+
currentDelegateesCount
|
|
59
|
+
currentDelegatorsCount
|
|
60
|
+
engagedProposalsCount
|
|
61
|
+
joinedTimestamp
|
|
62
|
+
receivedDelegation
|
|
63
|
+
receivedNFTDelegation
|
|
64
|
+
receivedTreasuryDelegation
|
|
65
|
+
totalClaimedUSD
|
|
66
|
+
totalLockedUSD
|
|
67
|
+
totalPersonalVotingRewardUSD
|
|
68
|
+
totalMicropoolVotingRewardUSD
|
|
69
|
+
totalTreasuryVotingRewardUSD
|
|
70
|
+
expertNft {
|
|
71
|
+
id
|
|
72
|
+
tokenId
|
|
73
|
+
}
|
|
74
|
+
voter {
|
|
75
|
+
id
|
|
76
|
+
totalProposalsCreated
|
|
77
|
+
totalVotedProposals
|
|
78
|
+
totalVotes
|
|
79
|
+
currentVotesReceived
|
|
80
|
+
currentVotesDelegated
|
|
81
|
+
totalClaimedUSD
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
85
|
`;
|
|
86
|
-
const DELEGATION_MAP_QUERY = /* GraphQL */ `
|
|
87
|
-
query getDefaultDelegationsFromPool($offset: Int!, $limit: Int!, $delegatorIn: [String!]) {
|
|
88
|
-
voterInPoolPairs(
|
|
89
|
-
skip: $offset
|
|
90
|
-
first: $limit
|
|
91
|
-
where: { delegator_: { voter_in: $delegatorIn } }
|
|
92
|
-
) {
|
|
93
|
-
id
|
|
94
|
-
creationTimestamp
|
|
95
|
-
delegatedAmount
|
|
96
|
-
delegatedNfts
|
|
97
|
-
delegatedUSD
|
|
98
|
-
delegatedVotes
|
|
99
|
-
delegatee {
|
|
100
|
-
expertNft {
|
|
101
|
-
id
|
|
102
|
-
}
|
|
103
|
-
voter {
|
|
104
|
-
id
|
|
105
|
-
}
|
|
106
|
-
totalClaimedUSD
|
|
107
|
-
}
|
|
108
|
-
delegator {
|
|
109
|
-
voter {
|
|
110
|
-
id
|
|
111
|
-
}
|
|
112
|
-
pool {
|
|
113
|
-
id
|
|
114
|
-
erc20Token
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
86
|
+
const DELEGATION_MAP_QUERY = /* GraphQL */ `
|
|
87
|
+
query getDefaultDelegationsFromPool($offset: Int!, $limit: Int!, $delegatorIn: [String!]) {
|
|
88
|
+
voterInPoolPairs(
|
|
89
|
+
skip: $offset
|
|
90
|
+
first: $limit
|
|
91
|
+
where: { delegator_: { voter_in: $delegatorIn } }
|
|
92
|
+
) {
|
|
93
|
+
id
|
|
94
|
+
creationTimestamp
|
|
95
|
+
delegatedAmount
|
|
96
|
+
delegatedNfts
|
|
97
|
+
delegatedUSD
|
|
98
|
+
delegatedVotes
|
|
99
|
+
delegatee {
|
|
100
|
+
expertNft {
|
|
101
|
+
id
|
|
102
|
+
}
|
|
103
|
+
voter {
|
|
104
|
+
id
|
|
105
|
+
}
|
|
106
|
+
totalClaimedUSD
|
|
107
|
+
}
|
|
108
|
+
delegator {
|
|
109
|
+
voter {
|
|
110
|
+
id
|
|
111
|
+
}
|
|
112
|
+
pool {
|
|
113
|
+
id
|
|
114
|
+
erc20Token
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
119
|
`;
|
|
120
|
-
const DELEGATION_INCOMING_QUERY = /* GraphQL */ `
|
|
121
|
-
query getPoolIncomingDelegations($offset: Int!, $limit: Int!, $voterIn: [String!]) {
|
|
122
|
-
voterInPoolPairs(
|
|
123
|
-
skip: $offset
|
|
124
|
-
first: $limit
|
|
125
|
-
where: { delegatee_: { voter_in: $voterIn } }
|
|
126
|
-
) {
|
|
127
|
-
id
|
|
128
|
-
delegatedAmount
|
|
129
|
-
delegatedNfts
|
|
130
|
-
delegatedUSD
|
|
131
|
-
delegatedVotes
|
|
132
|
-
delegator {
|
|
133
|
-
voter {
|
|
134
|
-
id
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
delegatee {
|
|
138
|
-
voter {
|
|
139
|
-
id
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
120
|
+
const DELEGATION_INCOMING_QUERY = /* GraphQL */ `
|
|
121
|
+
query getPoolIncomingDelegations($offset: Int!, $limit: Int!, $voterIn: [String!]) {
|
|
122
|
+
voterInPoolPairs(
|
|
123
|
+
skip: $offset
|
|
124
|
+
first: $limit
|
|
125
|
+
where: { delegatee_: { voter_in: $voterIn } }
|
|
126
|
+
) {
|
|
127
|
+
id
|
|
128
|
+
delegatedAmount
|
|
129
|
+
delegatedNfts
|
|
130
|
+
delegatedUSD
|
|
131
|
+
delegatedVotes
|
|
132
|
+
delegator {
|
|
133
|
+
voter {
|
|
134
|
+
id
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
delegatee {
|
|
138
|
+
voter {
|
|
139
|
+
id
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
144
|
`;
|
|
145
|
-
const VALIDATORS_QUERY = /* GraphQL */ `
|
|
146
|
-
query getDaoPoolValidators($offset: Int!, $limit: Int!, $address: String!) {
|
|
147
|
-
validatorInPools(
|
|
148
|
-
skip: $offset
|
|
149
|
-
first: $limit
|
|
150
|
-
orderBy: balance
|
|
151
|
-
orderDirection: desc
|
|
152
|
-
where: { pool: $address }
|
|
153
|
-
) {
|
|
154
|
-
id
|
|
155
|
-
balance
|
|
156
|
-
validatorAddress
|
|
157
|
-
}
|
|
158
|
-
}
|
|
145
|
+
const VALIDATORS_QUERY = /* GraphQL */ `
|
|
146
|
+
query getDaoPoolValidators($offset: Int!, $limit: Int!, $address: String!) {
|
|
147
|
+
validatorInPools(
|
|
148
|
+
skip: $offset
|
|
149
|
+
first: $limit
|
|
150
|
+
orderBy: balance
|
|
151
|
+
orderDirection: desc
|
|
152
|
+
where: { pool: $address }
|
|
153
|
+
) {
|
|
154
|
+
id
|
|
155
|
+
balance
|
|
156
|
+
validatorAddress
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
159
|
`;
|
|
160
|
-
const USER_ACTIVITY_QUERY = /* GraphQL */ `
|
|
161
|
-
query getUserTransactions($offset: Int!, $limit: Int!, $address: Bytes!) {
|
|
162
|
-
transactions(
|
|
163
|
-
skip: $offset
|
|
164
|
-
first: $limit
|
|
165
|
-
where: { user: $address }
|
|
166
|
-
orderBy: timestamp
|
|
167
|
-
orderDirection: desc
|
|
168
|
-
) {
|
|
169
|
-
id
|
|
170
|
-
type
|
|
171
|
-
user
|
|
172
|
-
timestamp
|
|
173
|
-
interactionsCount
|
|
174
|
-
}
|
|
175
|
-
}
|
|
160
|
+
const USER_ACTIVITY_QUERY = /* GraphQL */ `
|
|
161
|
+
query getUserTransactions($offset: Int!, $limit: Int!, $address: Bytes!) {
|
|
162
|
+
transactions(
|
|
163
|
+
skip: $offset
|
|
164
|
+
first: $limit
|
|
165
|
+
where: { user: $address }
|
|
166
|
+
orderBy: timestamp
|
|
167
|
+
orderDirection: desc
|
|
168
|
+
) {
|
|
169
|
+
id
|
|
170
|
+
type
|
|
171
|
+
user
|
|
172
|
+
timestamp
|
|
173
|
+
interactionsCount
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
176
|
`;
|
|
177
|
-
const EXPERTS_QUERY = /* GraphQL */ `
|
|
178
|
-
query getLocalExpertsByPool($offset: Int!, $limit: Int!, $daoAddress: Bytes!) {
|
|
179
|
-
voterInPools(
|
|
180
|
-
skip: $offset
|
|
181
|
-
first: $limit
|
|
182
|
-
where: { pool_: { id: $daoAddress }, expertNft_: { id_not: null } }
|
|
183
|
-
) {
|
|
184
|
-
id
|
|
185
|
-
receivedTreasuryDelegation
|
|
186
|
-
receivedDelegation
|
|
187
|
-
voter {
|
|
188
|
-
id
|
|
189
|
-
}
|
|
190
|
-
expertNft {
|
|
191
|
-
id
|
|
192
|
-
tokenId
|
|
193
|
-
}
|
|
194
|
-
pool {
|
|
195
|
-
id
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
}
|
|
177
|
+
const EXPERTS_QUERY = /* GraphQL */ `
|
|
178
|
+
query getLocalExpertsByPool($offset: Int!, $limit: Int!, $daoAddress: Bytes!) {
|
|
179
|
+
voterInPools(
|
|
180
|
+
skip: $offset
|
|
181
|
+
first: $limit
|
|
182
|
+
where: { pool_: { id: $daoAddress }, expertNft_: { id_not: null } }
|
|
183
|
+
) {
|
|
184
|
+
id
|
|
185
|
+
receivedTreasuryDelegation
|
|
186
|
+
receivedDelegation
|
|
187
|
+
voter {
|
|
188
|
+
id
|
|
189
|
+
}
|
|
190
|
+
expertNft {
|
|
191
|
+
id
|
|
192
|
+
tokenId
|
|
193
|
+
}
|
|
194
|
+
pool {
|
|
195
|
+
id
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
199
|
`;
|
|
200
200
|
// ---------- register ----------
|
|
201
201
|
export function registerSubgraphTools(server, ctx) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"txSend.d.ts","sourceRoot":"","sources":["../../src/tools/txSend.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"txSend.d.ts","sourceRoot":"","sources":["../../src/tools/txSend.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAG7D,wBAAgB,eAAe,CAC7B,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,aAAa,GACpB,IAAI,CA6KN"}
|
package/dist/tools/txSend.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { resolveChain } from "../config.js";
|
|
3
|
+
import { runBroadcastGuards, BroadcastGuardError } from "../lib/broadcastGuards.js";
|
|
3
4
|
export function registerTxTools(server, config, signer) {
|
|
4
5
|
server.tool("dexe_tx_send", "Sign and broadcast a transaction using the configured DEXE_PRIVATE_KEY. " +
|
|
5
6
|
"Pass the TxPayload fields returned by any dexe_*_build_* tool. " +
|
|
@@ -31,6 +32,30 @@ export function registerTxTools(server, config, signer) {
|
|
|
31
32
|
}, async ({ to, data, value, chainId, gasLimit, waitConfirmations }) => {
|
|
32
33
|
const chain = resolveChain(config, chainId);
|
|
33
34
|
const wallet = signer.requireSigner(chain.chainId);
|
|
35
|
+
// Signer broadcast guards (B6/B7/B9/B10) — no-ops unless their env vars
|
|
36
|
+
// are set. Run before spending any gas.
|
|
37
|
+
try {
|
|
38
|
+
await runBroadcastGuards({ to, data, value, chainId: chain.chainId, from: wallet.address }, config);
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
if (e instanceof BroadcastGuardError) {
|
|
42
|
+
return {
|
|
43
|
+
content: [
|
|
44
|
+
{
|
|
45
|
+
type: "text",
|
|
46
|
+
text: JSON.stringify({
|
|
47
|
+
status: "rejected",
|
|
48
|
+
guard: e.guard,
|
|
49
|
+
reason: e.message,
|
|
50
|
+
chainId: chain.chainId,
|
|
51
|
+
}, null, 2),
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
isError: true,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
throw e;
|
|
58
|
+
}
|
|
34
59
|
const tx = await wallet.sendTransaction({
|
|
35
60
|
to,
|
|
36
61
|
data,
|
package/dist/tools/txSend.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"txSend.js","sourceRoot":"","sources":["../../src/tools/txSend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,YAAY,EAAmB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"txSend.js","sourceRoot":"","sources":["../../src/tools/txSend.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,92 +1,95 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "dexe-mcp",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "MCP server for the DeXe Protocol — full DAO operations coverage: deploy DAOs, build every proposal type, IPFS metadata, stake/vote/delegate/execute/claim calldata. Plus dev tooling (build/test/introspect/decode).",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"license": "MIT",
|
|
7
|
-
"author": "Edward Arinin <edward.arinin@gmail.com>",
|
|
8
|
-
"homepage": "https://github.com/edward-arinin-web-dev/dexe-mcp#readme",
|
|
9
|
-
"repository": {
|
|
10
|
-
"type": "git",
|
|
11
|
-
"url": "git+https://github.com/edward-arinin-web-dev/dexe-mcp.git"
|
|
12
|
-
},
|
|
13
|
-
"bugs": {
|
|
14
|
-
"url": "https://github.com/edward-arinin-web-dev/dexe-mcp/issues"
|
|
15
|
-
},
|
|
16
|
-
"keywords": [
|
|
17
|
-
"mcp",
|
|
18
|
-
"model-context-protocol",
|
|
19
|
-
"claude",
|
|
20
|
-
"claude-code",
|
|
21
|
-
"hardhat",
|
|
22
|
-
"solidity",
|
|
23
|
-
"ethereum",
|
|
24
|
-
"dexe",
|
|
25
|
-
"dao",
|
|
26
|
-
"governance",
|
|
27
|
-
"smart-contracts",
|
|
28
|
-
"dev-tools",
|
|
29
|
-
"dao-operations",
|
|
30
|
-
"proposals",
|
|
31
|
-
"ipfs",
|
|
32
|
-
"pinata",
|
|
33
|
-
"calldata-builder"
|
|
34
|
-
],
|
|
35
|
-
"bin": {
|
|
36
|
-
"dexe-mcp": "dist/index.js"
|
|
37
|
-
},
|
|
38
|
-
"main": "dist/index.js",
|
|
39
|
-
"files": [
|
|
40
|
-
"dist",
|
|
41
|
-
"README.md",
|
|
42
|
-
"CHANGELOG.md",
|
|
43
|
-
"FUTURE.md",
|
|
44
|
-
"SECURITY.md",
|
|
45
|
-
"LICENSE",
|
|
46
|
-
".mcp.example.json"
|
|
47
|
-
],
|
|
48
|
-
"scripts": {
|
|
49
|
-
"build": "tsc",
|
|
50
|
-
"dev": "tsx watch src/index.ts",
|
|
51
|
-
"start": "node dist/index.js",
|
|
52
|
-
"test": "vitest run",
|
|
53
|
-
"test:watch": "vitest",
|
|
54
|
-
"test:compat": "node tests/compat/diff-otc.mjs",
|
|
55
|
-
"typecheck": "tsc --noEmit",
|
|
56
|
-
"prepublishOnly": "npm run typecheck && npm run build",
|
|
57
|
-
"swarm:preflight": "tsx scripts/swarm/preflight.ts",
|
|
58
|
-
"swarm:fund": "tsx scripts/swarm/fund-pool.ts",
|
|
59
|
-
"swarm:run": "tsx scripts/swarm/orchestrator.ts",
|
|
60
|
-
"swarm:smoke": "tsx scripts/swarm/orchestrator.ts --scenarios=S00-reset,S01-delegation-chain-3hop --dry-run"
|
|
61
|
-
},
|
|
62
|
-
"dependencies": {
|
|
63
|
-
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
64
|
-
"ethers": "^6.13.0",
|
|
65
|
-
"execa": "^9.5.0",
|
|
66
|
-
"multiformats": "^13.4.2",
|
|
67
|
-
"p-limit": "^6.2.0",
|
|
68
|
-
"remark-gfm": "^4.0.1",
|
|
69
|
-
"remark-parse": "^11.0.0",
|
|
70
|
-
"remark-slate-transformer": "^0.9.0",
|
|
71
|
-
"unified": "^11.0.5",
|
|
72
|
-
"zod": "^3.23.8"
|
|
73
|
-
},
|
|
74
|
-
"overrides": {
|
|
75
|
-
"fast-uri": ">=3.1.2",
|
|
76
|
-
"hono": ">=4.12.18",
|
|
77
|
-
"ip-address": ">=10.1.1",
|
|
78
|
-
"express-rate-limit": ">=8.4.0"
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "dexe-mcp",
|
|
3
|
+
"version": "0.6.0",
|
|
4
|
+
"description": "MCP server for the DeXe Protocol — full DAO operations coverage: deploy DAOs, build every proposal type, IPFS metadata, stake/vote/delegate/execute/claim calldata. Plus dev tooling (build/test/introspect/decode).",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"author": "Edward Arinin <edward.arinin@gmail.com>",
|
|
8
|
+
"homepage": "https://github.com/edward-arinin-web-dev/dexe-mcp#readme",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/edward-arinin-web-dev/dexe-mcp.git"
|
|
12
|
+
},
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/edward-arinin-web-dev/dexe-mcp/issues"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"mcp",
|
|
18
|
+
"model-context-protocol",
|
|
19
|
+
"claude",
|
|
20
|
+
"claude-code",
|
|
21
|
+
"hardhat",
|
|
22
|
+
"solidity",
|
|
23
|
+
"ethereum",
|
|
24
|
+
"dexe",
|
|
25
|
+
"dao",
|
|
26
|
+
"governance",
|
|
27
|
+
"smart-contracts",
|
|
28
|
+
"dev-tools",
|
|
29
|
+
"dao-operations",
|
|
30
|
+
"proposals",
|
|
31
|
+
"ipfs",
|
|
32
|
+
"pinata",
|
|
33
|
+
"calldata-builder"
|
|
34
|
+
],
|
|
35
|
+
"bin": {
|
|
36
|
+
"dexe-mcp": "dist/index.js"
|
|
37
|
+
},
|
|
38
|
+
"main": "dist/index.js",
|
|
39
|
+
"files": [
|
|
40
|
+
"dist",
|
|
41
|
+
"README.md",
|
|
42
|
+
"CHANGELOG.md",
|
|
43
|
+
"FUTURE.md",
|
|
44
|
+
"SECURITY.md",
|
|
45
|
+
"LICENSE",
|
|
46
|
+
".mcp.example.json"
|
|
47
|
+
],
|
|
48
|
+
"scripts": {
|
|
49
|
+
"build": "tsc",
|
|
50
|
+
"dev": "tsx watch src/index.ts",
|
|
51
|
+
"start": "node dist/index.js",
|
|
52
|
+
"test": "vitest run --passWithNoTests",
|
|
53
|
+
"test:watch": "vitest",
|
|
54
|
+
"test:compat": "node tests/compat/diff-otc.mjs",
|
|
55
|
+
"typecheck": "tsc --noEmit",
|
|
56
|
+
"prepublishOnly": "npm run typecheck && npm run build",
|
|
57
|
+
"swarm:preflight": "tsx scripts/swarm/preflight.ts",
|
|
58
|
+
"swarm:fund": "tsx scripts/swarm/fund-pool.ts",
|
|
59
|
+
"swarm:run": "tsx scripts/swarm/orchestrator.ts",
|
|
60
|
+
"swarm:smoke": "tsx scripts/swarm/orchestrator.ts --scenarios=S00-reset,S01-delegation-chain-3hop --dry-run"
|
|
61
|
+
},
|
|
62
|
+
"dependencies": {
|
|
63
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
64
|
+
"ethers": "^6.13.0",
|
|
65
|
+
"execa": "^9.5.0",
|
|
66
|
+
"multiformats": "^13.4.2",
|
|
67
|
+
"p-limit": "^6.2.0",
|
|
68
|
+
"remark-gfm": "^4.0.1",
|
|
69
|
+
"remark-parse": "^11.0.0",
|
|
70
|
+
"remark-slate-transformer": "^0.9.0",
|
|
71
|
+
"unified": "^11.0.5",
|
|
72
|
+
"zod": "^3.23.8"
|
|
73
|
+
},
|
|
74
|
+
"overrides": {
|
|
75
|
+
"fast-uri": ">=3.1.2",
|
|
76
|
+
"hono": ">=4.12.18",
|
|
77
|
+
"ip-address": ">=10.1.1",
|
|
78
|
+
"express-rate-limit": ">=8.4.0",
|
|
79
|
+
"esbuild": ">=0.25.0",
|
|
80
|
+
"ws": ">=8.20.1"
|
|
81
|
+
},
|
|
82
|
+
"devDependencies": {
|
|
83
|
+
"@types/node": "^22.10.0",
|
|
84
|
+
"tsx": "^4.19.0",
|
|
85
|
+
"typescript": "^5.7.0",
|
|
86
|
+
"vitest": "^3.0.0"
|
|
87
|
+
},
|
|
88
|
+
"engines": {
|
|
89
|
+
"node": ">=20.0.0"
|
|
90
|
+
},
|
|
91
|
+
"publishConfig": {
|
|
92
|
+
"access": "public",
|
|
93
|
+
"provenance": true
|
|
94
|
+
}
|
|
95
|
+
}
|