@manifest-network/manifest-mcp-browser 0.1.7 → 0.1.8
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 +5 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +0 -10
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -7
- package/dist/index.js.map +1 -1
- package/dist/queries/index.d.ts +1 -0
- package/dist/queries/index.d.ts.map +1 -1
- package/dist/queries/index.js +1 -0
- package/dist/queries/index.js.map +1 -1
- package/dist/transactions/bank.d.ts.map +1 -1
- package/dist/transactions/bank.js +7 -5
- package/dist/transactions/bank.js.map +1 -1
- package/dist/transactions/gov.d.ts.map +1 -1
- package/dist/transactions/gov.js +7 -5
- package/dist/transactions/gov.js.map +1 -1
- package/dist/transactions/index.d.ts +1 -0
- package/dist/transactions/index.d.ts.map +1 -1
- package/dist/transactions/index.js +1 -0
- package/dist/transactions/index.js.map +1 -1
- package/dist/types.d.ts +0 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +5 -2
- package/.github/workflows/ci.yml +0 -37
- package/.github/workflows/publish.yml +0 -53
- package/CLAUDE.md +0 -113
- package/dist/config.test.d.ts +0 -2
- package/dist/config.test.d.ts.map +0 -1
- package/dist/config.test.js +0 -251
- package/dist/config.test.js.map +0 -1
- package/dist/modules.test.d.ts +0 -2
- package/dist/modules.test.d.ts.map +0 -1
- package/dist/modules.test.js +0 -161
- package/dist/modules.test.js.map +0 -1
- package/dist/queries/utils.test.d.ts +0 -2
- package/dist/queries/utils.test.d.ts.map +0 -1
- package/dist/queries/utils.test.js +0 -117
- package/dist/queries/utils.test.js.map +0 -1
- package/dist/transactions/utils.test.d.ts +0 -2
- package/dist/transactions/utils.test.d.ts.map +0 -1
- package/dist/transactions/utils.test.js +0 -567
- package/dist/transactions/utils.test.js.map +0 -1
- package/src/client.ts +0 -288
- package/src/config.test.ts +0 -299
- package/src/config.ts +0 -174
- package/src/cosmos.ts +0 -106
- package/src/index.ts +0 -478
- package/src/modules.test.ts +0 -191
- package/src/modules.ts +0 -470
- package/src/queries/auth.ts +0 -97
- package/src/queries/bank.ts +0 -99
- package/src/queries/billing.ts +0 -124
- package/src/queries/distribution.ts +0 -114
- package/src/queries/gov.ts +0 -104
- package/src/queries/group.ts +0 -146
- package/src/queries/index.ts +0 -17
- package/src/queries/sku.ts +0 -85
- package/src/queries/staking.ts +0 -154
- package/src/queries/utils.test.ts +0 -156
- package/src/queries/utils.ts +0 -121
- package/src/transactions/bank.ts +0 -86
- package/src/transactions/billing.ts +0 -286
- package/src/transactions/distribution.ts +0 -76
- package/src/transactions/gov.ts +0 -164
- package/src/transactions/group.ts +0 -458
- package/src/transactions/index.ts +0 -8
- package/src/transactions/manifest.ts +0 -67
- package/src/transactions/sku.ts +0 -232
- package/src/transactions/staking.ts +0 -85
- package/src/transactions/utils.test.ts +0 -626
- package/src/transactions/utils.ts +0 -417
- package/src/types.ts +0 -548
- package/src/wallet/index.ts +0 -2
- package/src/wallet/mnemonic.ts +0 -146
- package/tsconfig.json +0 -23
package/CLAUDE.md
DELETED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
# CLAUDE.md
|
|
2
|
-
|
|
3
|
-
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
-
|
|
5
|
-
## Project Overview
|
|
6
|
-
|
|
7
|
-
Browser-compatible MCP (Model Context Protocol) server for Cosmos SDK blockchain interactions with Manifest Network using CosmJS. This is a browser-friendly alternative to `manifest-mcp` that uses CosmJS/HTTP instead of CLI.
|
|
8
|
-
|
|
9
|
-
## Build Commands
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
npm run build # TypeScript compilation to dist/
|
|
13
|
-
npm run dev # Watch mode for TypeScript
|
|
14
|
-
npm run lint # Type-check without emitting (tsc --noEmit)
|
|
15
|
-
npm test # Run tests with vitest
|
|
16
|
-
npm run test:watch # Run tests in watch mode
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Architecture
|
|
20
|
-
|
|
21
|
-
### Entry Point
|
|
22
|
-
|
|
23
|
-
- `src/index.ts` - Main entry point, exports `ManifestMCPServer` class, `createMnemonicServer()`, and all public APIs
|
|
24
|
-
|
|
25
|
-
### Core Components
|
|
26
|
-
|
|
27
|
-
**ManifestMCPServer** (`src/index.ts`)
|
|
28
|
-
- Wraps MCP SDK `Server` to handle tool requests
|
|
29
|
-
- Exposes 5 MCP tools: `get_account_info`, `cosmos_query`, `cosmos_tx`, `list_modules`, `list_module_subcommands`
|
|
30
|
-
|
|
31
|
-
**CosmosClientManager** (`src/client.ts`)
|
|
32
|
-
- Singleton pattern per chainId:rpcUrl combination
|
|
33
|
-
- Provides lazy-initialized query client (manifestjs RPC) and signing client (CosmJS Stargate)
|
|
34
|
-
- Registers all Manifest protobuf types from `@manifest-network/manifestjs`
|
|
35
|
-
|
|
36
|
-
**Wallet Providers** (`src/wallet/`)
|
|
37
|
-
- `WalletProvider` interface defines `getAddress()` and `getSigner()` methods (wallet-agnostic)
|
|
38
|
-
- Any wallet providing `OfflineSigner` works (cosmos-kit, Web3Auth, Keplr, Leap, etc.)
|
|
39
|
-
- `MnemonicWalletProvider` - Built-in provider using `DirectSecp256k1HdWallet` for testing
|
|
40
|
-
|
|
41
|
-
### Query/Transaction Routing
|
|
42
|
-
|
|
43
|
-
**cosmos.ts** - Main router that validates module/subcommand names and dispatches to module handlers
|
|
44
|
-
|
|
45
|
-
**queries/** - Module-specific query handlers
|
|
46
|
-
- Each file exports `route{Module}Query()` function
|
|
47
|
-
- Uses manifestjs RPC query client (`liftedinit.ClientFactory.createRPCQueryClient`)
|
|
48
|
-
- Shared utilities in `utils.ts`: `parseBigInt()`, `parseInteger()`, `createPagination()`, `extractPaginationArgs()`, `extractBooleanFlag()`
|
|
49
|
-
- All paginated queries support `--limit` flag (default: 100, max: 1000)
|
|
50
|
-
|
|
51
|
-
**transactions/** - Module-specific transaction handlers
|
|
52
|
-
- Each file exports `route{Module}Transaction()` function
|
|
53
|
-
- Uses CosmJS `SigningStargateClient` with Manifest registries
|
|
54
|
-
- Uses manifestjs enums (e.g., `VoteOption` from `cosmos.gov.v1`, `Unit` from `liftedinit.sku.v1`)
|
|
55
|
-
- Shared utilities in `utils.ts`:
|
|
56
|
-
- `requireArgs()` - Validate required argument count with helpful error messages
|
|
57
|
-
- `parseAmount()` - Parse amount strings with helpful error hints
|
|
58
|
-
- `parseBigIntWithCode()` - Base implementation used by both queries and transactions
|
|
59
|
-
- `parseHexBytes()` - Parse and validate hex strings to Uint8Array (browser-compatible via `@cosmjs/encoding`)
|
|
60
|
-
- `bytesToHex()` - Convert Uint8Array to hex string (browser-compatible via `@cosmjs/encoding`)
|
|
61
|
-
- `validateAddress()` - Bech32 validation using `@cosmjs/encoding`
|
|
62
|
-
- `validateMemo()` - Enforce 256 char limit (Cosmos SDK default)
|
|
63
|
-
- `validateArgsLength()` - Enforce 100 args max to prevent DoS
|
|
64
|
-
- `extractFlag()` - Extract `--flag value` pairs from args
|
|
65
|
-
- `buildTxResult()` - Build transaction result objects
|
|
66
|
-
- `parseVoteOption()` - Parse vote option strings to enum values (shared by gov and group)
|
|
67
|
-
- `extractBooleanFlag()` - Extract valueless boolean flags from args (e.g., `--active-only`)
|
|
68
|
-
- `MAX_META_HASH_BYTES` - Shared constant for meta hash validation (64 bytes)
|
|
69
|
-
|
|
70
|
-
**modules.ts** - Static registry of all supported modules and subcommands (no dynamic CLI discovery)
|
|
71
|
-
|
|
72
|
-
### Supported Modules
|
|
73
|
-
|
|
74
|
-
Query: bank, staking, distribution, gov, auth, billing, sku, group
|
|
75
|
-
Transaction: bank, staking, distribution, gov, billing, manifest, sku, group
|
|
76
|
-
|
|
77
|
-
### Key Dependencies
|
|
78
|
-
|
|
79
|
-
- `@manifest-network/manifestjs` - Protobuf types, registries, RPC client factory, and enums (e.g., `VoteOption`)
|
|
80
|
-
- `@modelcontextprotocol/sdk` - MCP server implementation
|
|
81
|
-
- `@cosmjs/stargate` - Signing client, gas price parsing
|
|
82
|
-
- `@cosmjs/encoding` - Bech32 address validation (`fromBech32`), hex conversion (`fromHex`, `toHex`)
|
|
83
|
-
- `@cosmjs/proto-signing` - Wallet and signer interfaces
|
|
84
|
-
|
|
85
|
-
### Security Features
|
|
86
|
-
|
|
87
|
-
**Input Validation:**
|
|
88
|
-
- Bech32 address validation using `@cosmjs/encoding`
|
|
89
|
-
- Amount format validation with helpful error hints
|
|
90
|
-
- Memo length limit (256 chars, Cosmos SDK default)
|
|
91
|
-
- Args array length limit (100 max)
|
|
92
|
-
- BigInt empty string rejection (prevents silent 0n)
|
|
93
|
-
- Hex string validation for address-bytes queries
|
|
94
|
-
- HTTPS enforcement for RPC URLs (HTTP only allowed for localhost/127.0.0.1/::1)
|
|
95
|
-
|
|
96
|
-
**Resource Limits:**
|
|
97
|
-
- Rate limiting via `limiter` package (default: 10 requests/second, configurable)
|
|
98
|
-
- Default pagination limit of 100 items for all list queries
|
|
99
|
-
- Transaction broadcast timeout (60 seconds)
|
|
100
|
-
- Broadcast poll interval (3 seconds)
|
|
101
|
-
|
|
102
|
-
**Sensitive Data:**
|
|
103
|
-
- Error responses sanitize sensitive fields (mnemonic, privateKey, secret, etc.)
|
|
104
|
-
- Mnemonic cleared on wallet disconnect
|
|
105
|
-
- No logging of sensitive data
|
|
106
|
-
|
|
107
|
-
### Error Handling
|
|
108
|
-
|
|
109
|
-
All errors use `ManifestMCPError` class with typed `ManifestMCPErrorCode` enum (see `src/types.ts`).
|
|
110
|
-
|
|
111
|
-
### Type Exports
|
|
112
|
-
|
|
113
|
-
`ManifestQueryClient` type in `client.ts` is derived from manifestjs `liftedinit.ClientFactory.createRPCQueryClient` return type.
|
package/dist/config.test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.test.d.ts","sourceRoot":"","sources":["../src/config.test.ts"],"names":[],"mappings":""}
|
package/dist/config.test.js
DELETED
|
@@ -1,251 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { createConfig, validateConfig, createValidatedConfig } from './config.js';
|
|
3
|
-
import { ManifestMCPError, ManifestMCPErrorCode } from './types.js';
|
|
4
|
-
describe('createConfig', () => {
|
|
5
|
-
it('should apply default values', () => {
|
|
6
|
-
const config = createConfig({
|
|
7
|
-
chainId: 'test-chain',
|
|
8
|
-
rpcUrl: 'https://example.com',
|
|
9
|
-
gasPrice: '1.0umfx',
|
|
10
|
-
});
|
|
11
|
-
expect(config.chainId).toBe('test-chain');
|
|
12
|
-
expect(config.rpcUrl).toBe('https://example.com');
|
|
13
|
-
expect(config.gasPrice).toBe('1.0umfx');
|
|
14
|
-
expect(config.gasAdjustment).toBe(1.3);
|
|
15
|
-
expect(config.addressPrefix).toBe('manifest');
|
|
16
|
-
});
|
|
17
|
-
it('should preserve provided optional values', () => {
|
|
18
|
-
const config = createConfig({
|
|
19
|
-
chainId: 'test-chain',
|
|
20
|
-
rpcUrl: 'https://example.com',
|
|
21
|
-
gasPrice: '1.0umfx',
|
|
22
|
-
gasAdjustment: 2.0,
|
|
23
|
-
addressPrefix: 'custom',
|
|
24
|
-
});
|
|
25
|
-
expect(config.gasAdjustment).toBe(2.0);
|
|
26
|
-
expect(config.addressPrefix).toBe('custom');
|
|
27
|
-
});
|
|
28
|
-
it('should apply default rateLimit', () => {
|
|
29
|
-
const config = createConfig({
|
|
30
|
-
chainId: 'test-chain',
|
|
31
|
-
rpcUrl: 'https://example.com',
|
|
32
|
-
gasPrice: '1.0umfx',
|
|
33
|
-
});
|
|
34
|
-
expect(config.rateLimit).toBeDefined();
|
|
35
|
-
expect(config.rateLimit?.requestsPerSecond).toBe(10);
|
|
36
|
-
});
|
|
37
|
-
it('should preserve provided rateLimit', () => {
|
|
38
|
-
const config = createConfig({
|
|
39
|
-
chainId: 'test-chain',
|
|
40
|
-
rpcUrl: 'https://example.com',
|
|
41
|
-
gasPrice: '1.0umfx',
|
|
42
|
-
rateLimit: { requestsPerSecond: 20 },
|
|
43
|
-
});
|
|
44
|
-
expect(config.rateLimit?.requestsPerSecond).toBe(20);
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
describe('validateConfig', () => {
|
|
48
|
-
it('should return valid for correct config', () => {
|
|
49
|
-
const result = validateConfig({
|
|
50
|
-
chainId: 'manifest-testnet',
|
|
51
|
-
rpcUrl: 'https://rpc.example.com',
|
|
52
|
-
gasPrice: '1.0umfx',
|
|
53
|
-
});
|
|
54
|
-
expect(result.valid).toBe(true);
|
|
55
|
-
expect(result.errors).toHaveLength(0);
|
|
56
|
-
});
|
|
57
|
-
it('should detect missing required fields', () => {
|
|
58
|
-
const result = validateConfig({});
|
|
59
|
-
expect(result.valid).toBe(false);
|
|
60
|
-
expect(result.errors).toContain('chainId is required');
|
|
61
|
-
expect(result.errors).toContain('rpcUrl is required');
|
|
62
|
-
expect(result.errors).toContain('gasPrice is required');
|
|
63
|
-
});
|
|
64
|
-
it('should validate chainId format', () => {
|
|
65
|
-
const result = validateConfig({
|
|
66
|
-
chainId: '-invalid',
|
|
67
|
-
rpcUrl: 'https://example.com',
|
|
68
|
-
gasPrice: '1.0umfx',
|
|
69
|
-
});
|
|
70
|
-
expect(result.valid).toBe(false);
|
|
71
|
-
expect(result.errors.some(e => e.includes('chainId'))).toBe(true);
|
|
72
|
-
});
|
|
73
|
-
it('should validate rpcUrl format', () => {
|
|
74
|
-
const result = validateConfig({
|
|
75
|
-
chainId: 'test',
|
|
76
|
-
rpcUrl: 'not-a-url',
|
|
77
|
-
gasPrice: '1.0umfx',
|
|
78
|
-
});
|
|
79
|
-
expect(result.valid).toBe(false);
|
|
80
|
-
expect(result.errors.some(e => e.includes('rpcUrl'))).toBe(true);
|
|
81
|
-
});
|
|
82
|
-
it('should validate gasPrice format', () => {
|
|
83
|
-
const result = validateConfig({
|
|
84
|
-
chainId: 'test',
|
|
85
|
-
rpcUrl: 'https://example.com',
|
|
86
|
-
gasPrice: 'invalid',
|
|
87
|
-
});
|
|
88
|
-
expect(result.valid).toBe(false);
|
|
89
|
-
expect(result.errors.some(e => e.includes('gasPrice'))).toBe(true);
|
|
90
|
-
});
|
|
91
|
-
it('should validate optional gasAdjustment', () => {
|
|
92
|
-
const result = validateConfig({
|
|
93
|
-
chainId: 'test',
|
|
94
|
-
rpcUrl: 'https://example.com',
|
|
95
|
-
gasPrice: '1.0umfx',
|
|
96
|
-
gasAdjustment: -1,
|
|
97
|
-
});
|
|
98
|
-
expect(result.valid).toBe(false);
|
|
99
|
-
expect(result.errors.some(e => e.includes('gasAdjustment'))).toBe(true);
|
|
100
|
-
});
|
|
101
|
-
it('should validate optional addressPrefix', () => {
|
|
102
|
-
const result = validateConfig({
|
|
103
|
-
chainId: 'test',
|
|
104
|
-
rpcUrl: 'https://example.com',
|
|
105
|
-
gasPrice: '1.0umfx',
|
|
106
|
-
addressPrefix: 'INVALID',
|
|
107
|
-
});
|
|
108
|
-
expect(result.valid).toBe(false);
|
|
109
|
-
expect(result.errors.some(e => e.includes('addressPrefix'))).toBe(true);
|
|
110
|
-
});
|
|
111
|
-
it('should accept HTTPS URLs', () => {
|
|
112
|
-
const result = validateConfig({
|
|
113
|
-
chainId: 'test',
|
|
114
|
-
rpcUrl: 'https://rpc.example.com',
|
|
115
|
-
gasPrice: '1.0umfx',
|
|
116
|
-
});
|
|
117
|
-
expect(result.valid).toBe(true);
|
|
118
|
-
});
|
|
119
|
-
it('should accept HTTP URLs for localhost', () => {
|
|
120
|
-
const result = validateConfig({
|
|
121
|
-
chainId: 'test',
|
|
122
|
-
rpcUrl: 'http://localhost:26657',
|
|
123
|
-
gasPrice: '1.0umfx',
|
|
124
|
-
});
|
|
125
|
-
expect(result.valid).toBe(true);
|
|
126
|
-
});
|
|
127
|
-
it('should accept HTTP URLs for 127.0.0.1', () => {
|
|
128
|
-
const result = validateConfig({
|
|
129
|
-
chainId: 'test',
|
|
130
|
-
rpcUrl: 'http://127.0.0.1:26657',
|
|
131
|
-
gasPrice: '1.0umfx',
|
|
132
|
-
});
|
|
133
|
-
expect(result.valid).toBe(true);
|
|
134
|
-
});
|
|
135
|
-
it('should accept HTTP URLs for IPv6 localhost', () => {
|
|
136
|
-
const result = validateConfig({
|
|
137
|
-
chainId: 'test',
|
|
138
|
-
rpcUrl: 'http://[::1]:26657',
|
|
139
|
-
gasPrice: '1.0umfx',
|
|
140
|
-
});
|
|
141
|
-
expect(result.valid).toBe(true);
|
|
142
|
-
});
|
|
143
|
-
it('should reject HTTP URLs for non-localhost', () => {
|
|
144
|
-
const result = validateConfig({
|
|
145
|
-
chainId: 'test',
|
|
146
|
-
rpcUrl: 'http://rpc.example.com',
|
|
147
|
-
gasPrice: '1.0umfx',
|
|
148
|
-
});
|
|
149
|
-
expect(result.valid).toBe(false);
|
|
150
|
-
expect(result.errors.some(e => e.includes('HTTPS'))).toBe(true);
|
|
151
|
-
});
|
|
152
|
-
it('should accept valid rateLimit config', () => {
|
|
153
|
-
const result = validateConfig({
|
|
154
|
-
chainId: 'test',
|
|
155
|
-
rpcUrl: 'https://example.com',
|
|
156
|
-
gasPrice: '1.0umfx',
|
|
157
|
-
rateLimit: { requestsPerSecond: 5 },
|
|
158
|
-
});
|
|
159
|
-
expect(result.valid).toBe(true);
|
|
160
|
-
});
|
|
161
|
-
it('should reject non-integer rateLimit.requestsPerSecond', () => {
|
|
162
|
-
const result = validateConfig({
|
|
163
|
-
chainId: 'test',
|
|
164
|
-
rpcUrl: 'https://example.com',
|
|
165
|
-
gasPrice: '1.0umfx',
|
|
166
|
-
rateLimit: { requestsPerSecond: 5.5 },
|
|
167
|
-
});
|
|
168
|
-
expect(result.valid).toBe(false);
|
|
169
|
-
expect(result.errors.some(e => e.includes('requestsPerSecond'))).toBe(true);
|
|
170
|
-
});
|
|
171
|
-
it('should reject negative rateLimit.requestsPerSecond', () => {
|
|
172
|
-
const result = validateConfig({
|
|
173
|
-
chainId: 'test',
|
|
174
|
-
rpcUrl: 'https://example.com',
|
|
175
|
-
gasPrice: '1.0umfx',
|
|
176
|
-
rateLimit: { requestsPerSecond: -1 },
|
|
177
|
-
});
|
|
178
|
-
expect(result.valid).toBe(false);
|
|
179
|
-
expect(result.errors.some(e => e.includes('requestsPerSecond'))).toBe(true);
|
|
180
|
-
});
|
|
181
|
-
it('should reject zero rateLimit.requestsPerSecond', () => {
|
|
182
|
-
const result = validateConfig({
|
|
183
|
-
chainId: 'test',
|
|
184
|
-
rpcUrl: 'https://example.com',
|
|
185
|
-
gasPrice: '1.0umfx',
|
|
186
|
-
rateLimit: { requestsPerSecond: 0 },
|
|
187
|
-
});
|
|
188
|
-
expect(result.valid).toBe(false);
|
|
189
|
-
expect(result.errors.some(e => e.includes('requestsPerSecond'))).toBe(true);
|
|
190
|
-
});
|
|
191
|
-
it('should reject null rateLimit', () => {
|
|
192
|
-
const result = validateConfig({
|
|
193
|
-
chainId: 'test',
|
|
194
|
-
rpcUrl: 'https://example.com',
|
|
195
|
-
gasPrice: '1.0umfx',
|
|
196
|
-
rateLimit: null,
|
|
197
|
-
});
|
|
198
|
-
expect(result.valid).toBe(false);
|
|
199
|
-
expect(result.errors.some(e => e.includes('rateLimit must be a plain object'))).toBe(true);
|
|
200
|
-
});
|
|
201
|
-
it('should reject non-object rateLimit', () => {
|
|
202
|
-
const result = validateConfig({
|
|
203
|
-
chainId: 'test',
|
|
204
|
-
rpcUrl: 'https://example.com',
|
|
205
|
-
gasPrice: '1.0umfx',
|
|
206
|
-
rateLimit: 'invalid',
|
|
207
|
-
});
|
|
208
|
-
expect(result.valid).toBe(false);
|
|
209
|
-
expect(result.errors.some(e => e.includes('rateLimit must be a plain object'))).toBe(true);
|
|
210
|
-
});
|
|
211
|
-
it('should reject array rateLimit', () => {
|
|
212
|
-
const result = validateConfig({
|
|
213
|
-
chainId: 'test',
|
|
214
|
-
rpcUrl: 'https://example.com',
|
|
215
|
-
gasPrice: '1.0umfx',
|
|
216
|
-
rateLimit: [],
|
|
217
|
-
});
|
|
218
|
-
expect(result.valid).toBe(false);
|
|
219
|
-
expect(result.errors.some(e => e.includes('rateLimit must be a plain object'))).toBe(true);
|
|
220
|
-
});
|
|
221
|
-
});
|
|
222
|
-
describe('createValidatedConfig', () => {
|
|
223
|
-
it('should return config for valid input', () => {
|
|
224
|
-
const config = createValidatedConfig({
|
|
225
|
-
chainId: 'test-chain',
|
|
226
|
-
rpcUrl: 'https://example.com',
|
|
227
|
-
gasPrice: '1.0umfx',
|
|
228
|
-
});
|
|
229
|
-
expect(config.chainId).toBe('test-chain');
|
|
230
|
-
});
|
|
231
|
-
it('should throw ManifestMCPError for invalid input', () => {
|
|
232
|
-
expect(() => createValidatedConfig({
|
|
233
|
-
chainId: '',
|
|
234
|
-
rpcUrl: '',
|
|
235
|
-
gasPrice: '',
|
|
236
|
-
})).toThrow(ManifestMCPError);
|
|
237
|
-
});
|
|
238
|
-
it('should have INVALID_CONFIG error code', () => {
|
|
239
|
-
try {
|
|
240
|
-
createValidatedConfig({
|
|
241
|
-
chainId: '',
|
|
242
|
-
rpcUrl: '',
|
|
243
|
-
gasPrice: '',
|
|
244
|
-
});
|
|
245
|
-
}
|
|
246
|
-
catch (error) {
|
|
247
|
-
expect(error.code).toBe(ManifestMCPErrorCode.INVALID_CONFIG);
|
|
248
|
-
}
|
|
249
|
-
});
|
|
250
|
-
});
|
|
251
|
-
//# sourceMappingURL=config.test.js.map
|
package/dist/config.test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.test.js","sourceRoot":"","sources":["../src/config.test.ts"],"names":[],"mappings":"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"}
|
package/dist/modules.test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"modules.test.d.ts","sourceRoot":"","sources":["../src/modules.test.ts"],"names":[],"mappings":""}
|
package/dist/modules.test.js
DELETED
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { getAvailableModules, getModuleSubcommands, isSubcommandSupported, getSupportedModules, throwUnsupportedSubcommand, } from './modules.js';
|
|
3
|
-
import { ManifestMCPError, ManifestMCPErrorCode } from './types.js';
|
|
4
|
-
describe('getAvailableModules', () => {
|
|
5
|
-
it('should return query and tx modules', () => {
|
|
6
|
-
const modules = getAvailableModules();
|
|
7
|
-
expect(modules.queryModules).toBeDefined();
|
|
8
|
-
expect(modules.txModules).toBeDefined();
|
|
9
|
-
expect(modules.queryModules.length).toBeGreaterThan(0);
|
|
10
|
-
expect(modules.txModules.length).toBeGreaterThan(0);
|
|
11
|
-
});
|
|
12
|
-
it('should include expected query modules', () => {
|
|
13
|
-
const modules = getAvailableModules();
|
|
14
|
-
const queryNames = modules.queryModules.map(m => m.name);
|
|
15
|
-
expect(queryNames).toContain('bank');
|
|
16
|
-
expect(queryNames).toContain('staking');
|
|
17
|
-
expect(queryNames).toContain('distribution');
|
|
18
|
-
expect(queryNames).toContain('gov');
|
|
19
|
-
expect(queryNames).toContain('auth');
|
|
20
|
-
expect(queryNames).toContain('billing');
|
|
21
|
-
expect(queryNames).toContain('sku');
|
|
22
|
-
expect(queryNames).toContain('group');
|
|
23
|
-
});
|
|
24
|
-
it('should include expected tx modules', () => {
|
|
25
|
-
const modules = getAvailableModules();
|
|
26
|
-
const txNames = modules.txModules.map(m => m.name);
|
|
27
|
-
expect(txNames).toContain('bank');
|
|
28
|
-
expect(txNames).toContain('staking');
|
|
29
|
-
expect(txNames).toContain('distribution');
|
|
30
|
-
expect(txNames).toContain('gov');
|
|
31
|
-
expect(txNames).toContain('billing');
|
|
32
|
-
expect(txNames).toContain('manifest');
|
|
33
|
-
expect(txNames).toContain('sku');
|
|
34
|
-
expect(txNames).toContain('group');
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
describe('getModuleSubcommands', () => {
|
|
38
|
-
it('should return subcommands for valid query module', () => {
|
|
39
|
-
const subcommands = getModuleSubcommands('query', 'bank');
|
|
40
|
-
expect(subcommands.length).toBeGreaterThan(0);
|
|
41
|
-
expect(subcommands.some(s => s.name === 'balance')).toBe(true);
|
|
42
|
-
expect(subcommands.some(s => s.name === 'balances')).toBe(true);
|
|
43
|
-
});
|
|
44
|
-
it('should return subcommands for valid tx module', () => {
|
|
45
|
-
const subcommands = getModuleSubcommands('tx', 'bank');
|
|
46
|
-
expect(subcommands.length).toBeGreaterThan(0);
|
|
47
|
-
expect(subcommands.some(s => s.name === 'send')).toBe(true);
|
|
48
|
-
});
|
|
49
|
-
it('should throw ManifestMCPError for unknown module', () => {
|
|
50
|
-
expect(() => getModuleSubcommands('query', 'unknown')).toThrow(ManifestMCPError);
|
|
51
|
-
});
|
|
52
|
-
it('should have UNKNOWN_MODULE error code', () => {
|
|
53
|
-
try {
|
|
54
|
-
getModuleSubcommands('query', 'unknown');
|
|
55
|
-
}
|
|
56
|
-
catch (error) {
|
|
57
|
-
expect(error.code).toBe(ManifestMCPErrorCode.UNKNOWN_MODULE);
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
it('should include aliases in subcommands', () => {
|
|
61
|
-
const bankSubcommands = getModuleSubcommands('query', 'bank');
|
|
62
|
-
expect(bankSubcommands.some(s => s.name === 'total')).toBe(true);
|
|
63
|
-
const stakingSubcommands = getModuleSubcommands('tx', 'staking');
|
|
64
|
-
expect(stakingSubcommands.some(s => s.name === 'undelegate')).toBe(true);
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
describe('isSubcommandSupported', () => {
|
|
68
|
-
it('should return true for supported query subcommands', () => {
|
|
69
|
-
expect(isSubcommandSupported('query', 'bank', 'balance')).toBe(true);
|
|
70
|
-
expect(isSubcommandSupported('query', 'staking', 'delegation')).toBe(true);
|
|
71
|
-
});
|
|
72
|
-
it('should return true for supported tx subcommands', () => {
|
|
73
|
-
expect(isSubcommandSupported('tx', 'bank', 'send')).toBe(true);
|
|
74
|
-
expect(isSubcommandSupported('tx', 'staking', 'delegate')).toBe(true);
|
|
75
|
-
});
|
|
76
|
-
it('should return false for unsupported subcommands', () => {
|
|
77
|
-
expect(isSubcommandSupported('query', 'bank', 'unknown')).toBe(false);
|
|
78
|
-
expect(isSubcommandSupported('tx', 'bank', 'unknown')).toBe(false);
|
|
79
|
-
});
|
|
80
|
-
it('should return false for unknown modules', () => {
|
|
81
|
-
expect(isSubcommandSupported('query', 'unknown', 'balance')).toBe(false);
|
|
82
|
-
expect(isSubcommandSupported('tx', 'unknown', 'send')).toBe(false);
|
|
83
|
-
});
|
|
84
|
-
it('should support aliases', () => {
|
|
85
|
-
expect(isSubcommandSupported('query', 'bank', 'total')).toBe(true);
|
|
86
|
-
expect(isSubcommandSupported('tx', 'staking', 'undelegate')).toBe(true);
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
describe('getSupportedModules', () => {
|
|
90
|
-
it('should return query and tx module maps', () => {
|
|
91
|
-
const modules = getSupportedModules();
|
|
92
|
-
expect(modules.query).toBeDefined();
|
|
93
|
-
expect(modules.tx).toBeDefined();
|
|
94
|
-
});
|
|
95
|
-
it('should include subcommand arrays for each module', () => {
|
|
96
|
-
const modules = getSupportedModules();
|
|
97
|
-
expect(Array.isArray(modules.query.bank)).toBe(true);
|
|
98
|
-
expect(modules.query.bank).toContain('balance');
|
|
99
|
-
expect(modules.query.bank).toContain('balances');
|
|
100
|
-
expect(Array.isArray(modules.tx.bank)).toBe(true);
|
|
101
|
-
expect(modules.tx.bank).toContain('send');
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
|
-
describe('throwUnsupportedSubcommand', () => {
|
|
105
|
-
it('should throw ManifestMCPError for unsupported query subcommand', () => {
|
|
106
|
-
expect(() => throwUnsupportedSubcommand('query', 'bank', 'unknown')).toThrow(ManifestMCPError);
|
|
107
|
-
});
|
|
108
|
-
it('should throw ManifestMCPError for unsupported tx subcommand', () => {
|
|
109
|
-
expect(() => throwUnsupportedSubcommand('tx', 'bank', 'unknown')).toThrow(ManifestMCPError);
|
|
110
|
-
});
|
|
111
|
-
it('should use UNSUPPORTED_QUERY error code for queries', () => {
|
|
112
|
-
try {
|
|
113
|
-
throwUnsupportedSubcommand('query', 'bank', 'unknown');
|
|
114
|
-
}
|
|
115
|
-
catch (error) {
|
|
116
|
-
expect(error.code).toBe(ManifestMCPErrorCode.UNSUPPORTED_QUERY);
|
|
117
|
-
}
|
|
118
|
-
});
|
|
119
|
-
it('should use UNSUPPORTED_TX error code for transactions', () => {
|
|
120
|
-
try {
|
|
121
|
-
throwUnsupportedSubcommand('tx', 'bank', 'unknown');
|
|
122
|
-
}
|
|
123
|
-
catch (error) {
|
|
124
|
-
expect(error.code).toBe(ManifestMCPErrorCode.UNSUPPORTED_TX);
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
it('should include module and subcommand in error message', () => {
|
|
128
|
-
try {
|
|
129
|
-
throwUnsupportedSubcommand('query', 'staking', 'badcmd');
|
|
130
|
-
}
|
|
131
|
-
catch (error) {
|
|
132
|
-
const message = error.message;
|
|
133
|
-
expect(message).toContain('staking');
|
|
134
|
-
expect(message).toContain('badcmd');
|
|
135
|
-
expect(message).toContain('query');
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
it('should include availableSubcommands in error details', () => {
|
|
139
|
-
try {
|
|
140
|
-
throwUnsupportedSubcommand('tx', 'bank', 'unknown');
|
|
141
|
-
}
|
|
142
|
-
catch (error) {
|
|
143
|
-
const details = error.details;
|
|
144
|
-
expect(details?.availableSubcommands).toBeDefined();
|
|
145
|
-
expect(details?.availableSubcommands).toContain('send');
|
|
146
|
-
expect(details?.availableSubcommands).toContain('multi-send');
|
|
147
|
-
}
|
|
148
|
-
});
|
|
149
|
-
it('should include correct subcommands for each module', () => {
|
|
150
|
-
try {
|
|
151
|
-
throwUnsupportedSubcommand('query', 'gov', 'unknown');
|
|
152
|
-
}
|
|
153
|
-
catch (error) {
|
|
154
|
-
const details = error.details;
|
|
155
|
-
expect(details?.availableSubcommands).toContain('proposal');
|
|
156
|
-
expect(details?.availableSubcommands).toContain('proposals');
|
|
157
|
-
expect(details?.availableSubcommands).toContain('vote');
|
|
158
|
-
}
|
|
159
|
-
});
|
|
160
|
-
});
|
|
161
|
-
//# sourceMappingURL=modules.test.js.map
|
package/dist/modules.test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"modules.test.js","sourceRoot":"","sources":["../src/modules.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.test.d.ts","sourceRoot":"","sources":["../../src/queries/utils.test.ts"],"names":[],"mappings":""}
|