@manifest-network/manifest-mcp-browser 0.1.7 → 0.1.9
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/client.d.ts +5 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +8 -2
- package/dist/client.js.map +1 -1
- 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 +4 -8
- 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/transactions/utils.d.ts.map +1 -1
- package/dist/transactions/utils.js +5 -6
- package/dist/transactions/utils.js.map +1 -1
- package/dist/types.d.ts +2 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/package.json +13 -3
- 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/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA+EA;;GAEG;AACH,MAAM,CAAN,IAAY,oBAkCX;AAlCD,WAAY,oBAAoB;IAC9B,uBAAuB;IACvB,yDAAiC,CAAA;IACjC,yDAAiC,CAAA;IAEjC,gBAAgB;IAChB,qEAA6C,CAAA;IAC7C,6EAAqD,CAAA;IACrD,mEAA2C,CAAA;IAC3C,6DAAqC,CAAA;IAErC,gBAAgB;IAChB,yEAAiD,CAAA;IACjD,uEAA+C,CAAA;IAE/C,eAAe;IACf,qDAA6B,CAAA;IAC7B,+DAAuC,CAAA;IACvC,2DAAmC,CAAA;IAEnC,qBAAqB;IACrB,+CAAuB,CAAA;IACvB,qEAA6C,CAAA;IAC7C,mEAA2C,CAAA;IAC3C,2EAAmD,CAAA;IACnD,yDAAiC,CAAA;IACjC,iEAAyC,CAAA;IAEzC,gBAAgB;IAChB,yDAAiC,CAAA;IACjC,iEAAyC,CAAA;IAEzC,iBAAiB;IACjB,uDAA+B,CAAA;AACjC,CAAC,EAlCW,oBAAoB,KAApB,oBAAoB,QAkC/B;AAED;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAIzC,YACE,IAA0B,EAC1B,OAAe,EACf,OAAiC;QAEjC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,sDAAsD;QACtD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@manifest-network/manifest-mcp-browser",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9",
|
|
4
4
|
"description": "Browser-compatible MCP server for Cosmos SDK blockchain interactions with Manifest Network using CosmJS",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -12,11 +12,12 @@
|
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"scripts": {
|
|
15
|
-
"build": "tsc",
|
|
15
|
+
"build": "tsc -p tsconfig.build.json",
|
|
16
16
|
"dev": "tsc --watch",
|
|
17
17
|
"lint": "tsc --noEmit",
|
|
18
18
|
"test": "vitest run",
|
|
19
|
-
"test:watch": "vitest"
|
|
19
|
+
"test:watch": "vitest",
|
|
20
|
+
"version": "node -e \"var v=require('./package.json').version;require('fs').writeFileSync('src/version.ts','export const VERSION = \\x27'+v+'\\x27;\\n')\" && git add src/version.ts"
|
|
20
21
|
},
|
|
21
22
|
"keywords": [
|
|
22
23
|
"mcp",
|
|
@@ -32,11 +33,20 @@
|
|
|
32
33
|
},
|
|
33
34
|
"author": "Felix C. Morency",
|
|
34
35
|
"license": "MIT",
|
|
36
|
+
"files": [
|
|
37
|
+
"dist"
|
|
38
|
+
],
|
|
35
39
|
"dependencies": {
|
|
40
|
+
"@cosmjs/encoding": "0.32.4",
|
|
41
|
+
"@cosmjs/proto-signing": "0.32.4",
|
|
42
|
+
"@cosmjs/stargate": "npm:@manifest-network/stargate@0.32.4-ll.3",
|
|
36
43
|
"@manifest-network/manifestjs": "2.2.0-billing-v2.1",
|
|
37
44
|
"@modelcontextprotocol/sdk": "1.25.3",
|
|
38
45
|
"limiter": "3.0.0"
|
|
39
46
|
},
|
|
47
|
+
"overrides": {
|
|
48
|
+
"@cosmjs/stargate": "npm:@manifest-network/stargate@0.32.4-ll.3"
|
|
49
|
+
},
|
|
40
50
|
"devDependencies": {
|
|
41
51
|
"@types/node": "20.19.30",
|
|
42
52
|
"typescript": "5.9.3",
|
package/.github/workflows/ci.yml
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
name: CI
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [main]
|
|
6
|
-
pull_request:
|
|
7
|
-
branches: [main]
|
|
8
|
-
|
|
9
|
-
jobs:
|
|
10
|
-
build-and-test:
|
|
11
|
-
runs-on: ubuntu-latest
|
|
12
|
-
|
|
13
|
-
strategy:
|
|
14
|
-
matrix:
|
|
15
|
-
node-version: [18, 20, 22]
|
|
16
|
-
|
|
17
|
-
steps:
|
|
18
|
-
- name: Checkout repository
|
|
19
|
-
uses: actions/checkout@v4
|
|
20
|
-
|
|
21
|
-
- name: Setup Node.js ${{ matrix.node-version }}
|
|
22
|
-
uses: actions/setup-node@v4
|
|
23
|
-
with:
|
|
24
|
-
node-version: ${{ matrix.node-version }}
|
|
25
|
-
cache: 'npm'
|
|
26
|
-
|
|
27
|
-
- name: Install dependencies
|
|
28
|
-
run: npm ci
|
|
29
|
-
|
|
30
|
-
- name: Run linter
|
|
31
|
-
run: npm run lint
|
|
32
|
-
|
|
33
|
-
- name: Run tests
|
|
34
|
-
run: npm test
|
|
35
|
-
|
|
36
|
-
- name: Build
|
|
37
|
-
run: npm run build
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
name: Publish to npm
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
tags:
|
|
6
|
-
- 'v*'
|
|
7
|
-
|
|
8
|
-
jobs:
|
|
9
|
-
publish:
|
|
10
|
-
runs-on: ubuntu-latest
|
|
11
|
-
|
|
12
|
-
# Required for npm trusted publishing (OIDC)
|
|
13
|
-
permissions:
|
|
14
|
-
contents: read
|
|
15
|
-
id-token: write
|
|
16
|
-
|
|
17
|
-
steps:
|
|
18
|
-
- name: Checkout repository
|
|
19
|
-
uses: actions/checkout@v4
|
|
20
|
-
|
|
21
|
-
- name: Setup Node.js
|
|
22
|
-
uses: actions/setup-node@v4
|
|
23
|
-
with:
|
|
24
|
-
node-version: 20
|
|
25
|
-
cache: 'npm'
|
|
26
|
-
|
|
27
|
-
- name: Upgrade npm for OIDC trusted publishing
|
|
28
|
-
run: npm install -g npm@latest && npm --version
|
|
29
|
-
|
|
30
|
-
- name: Install dependencies
|
|
31
|
-
run: npm ci
|
|
32
|
-
|
|
33
|
-
- name: Run linter
|
|
34
|
-
run: npm run lint
|
|
35
|
-
|
|
36
|
-
- name: Run tests
|
|
37
|
-
run: npm test
|
|
38
|
-
|
|
39
|
-
- name: Build
|
|
40
|
-
run: npm run build
|
|
41
|
-
|
|
42
|
-
- name: Verify package version matches tag
|
|
43
|
-
run: |
|
|
44
|
-
PACKAGE_VERSION=$(node -p "require('./package.json').version")
|
|
45
|
-
TAG_VERSION=${GITHUB_REF#refs/tags/v}
|
|
46
|
-
if [ "$PACKAGE_VERSION" != "$TAG_VERSION" ]; then
|
|
47
|
-
echo "Package version ($PACKAGE_VERSION) does not match tag version ($TAG_VERSION)"
|
|
48
|
-
exit 1
|
|
49
|
-
fi
|
|
50
|
-
echo "Version verified: $PACKAGE_VERSION"
|
|
51
|
-
|
|
52
|
-
- name: Publish to npm
|
|
53
|
-
run: npm publish --access public --provenance
|
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":""}
|