@manifest-network/manifest-mcp-browser 0.1.1 → 0.1.5

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.
Files changed (121) hide show
  1. package/.github/workflows/publish.yml +4 -2
  2. package/CLAUDE.md +7 -3
  3. package/README.md +1 -1
  4. package/dist/client.d.ts +6 -1
  5. package/dist/client.d.ts.map +1 -1
  6. package/dist/client.js +77 -21
  7. package/dist/client.js.map +1 -1
  8. package/dist/cosmos.d.ts.map +1 -1
  9. package/dist/cosmos.js +7 -57
  10. package/dist/cosmos.js.map +1 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +16 -25
  13. package/dist/index.js.map +1 -1
  14. package/dist/modules.d.ts +30 -1
  15. package/dist/modules.d.ts.map +1 -1
  16. package/dist/modules.js +65 -1
  17. package/dist/modules.js.map +1 -1
  18. package/dist/modules.test.js +58 -1
  19. package/dist/modules.test.js.map +1 -1
  20. package/dist/queries/auth.d.ts +7 -1
  21. package/dist/queries/auth.d.ts.map +1 -1
  22. package/dist/queries/auth.js +18 -45
  23. package/dist/queries/auth.js.map +1 -1
  24. package/dist/queries/bank.d.ts +7 -1
  25. package/dist/queries/bank.d.ts.map +1 -1
  26. package/dist/queries/bank.js +24 -38
  27. package/dist/queries/bank.js.map +1 -1
  28. package/dist/queries/billing.d.ts +7 -1
  29. package/dist/queries/billing.d.ts.map +1 -1
  30. package/dist/queries/billing.js +28 -54
  31. package/dist/queries/billing.js.map +1 -1
  32. package/dist/queries/distribution.d.ts +7 -1
  33. package/dist/queries/distribution.d.ts.map +1 -1
  34. package/dist/queries/distribution.js +18 -36
  35. package/dist/queries/distribution.js.map +1 -1
  36. package/dist/queries/gov.d.ts +7 -1
  37. package/dist/queries/gov.d.ts.map +1 -1
  38. package/dist/queries/gov.js +24 -41
  39. package/dist/queries/gov.js.map +1 -1
  40. package/dist/queries/index.d.ts +2 -1
  41. package/dist/queries/index.d.ts.map +1 -1
  42. package/dist/queries/index.js +1 -1
  43. package/dist/queries/index.js.map +1 -1
  44. package/dist/queries/staking.d.ts +7 -1
  45. package/dist/queries/staking.d.ts.map +1 -1
  46. package/dist/queries/staking.js +36 -59
  47. package/dist/queries/staking.js.map +1 -1
  48. package/dist/queries/utils.d.ts +42 -10
  49. package/dist/queries/utils.d.ts.map +1 -1
  50. package/dist/queries/utils.js +64 -12
  51. package/dist/queries/utils.js.map +1 -1
  52. package/dist/queries/utils.test.js +68 -8
  53. package/dist/queries/utils.test.js.map +1 -1
  54. package/dist/transactions/bank.d.ts +2 -2
  55. package/dist/transactions/bank.d.ts.map +1 -1
  56. package/dist/transactions/bank.js +9 -18
  57. package/dist/transactions/bank.js.map +1 -1
  58. package/dist/transactions/billing.d.ts +2 -2
  59. package/dist/transactions/billing.d.ts.map +1 -1
  60. package/dist/transactions/billing.js +29 -86
  61. package/dist/transactions/billing.js.map +1 -1
  62. package/dist/transactions/distribution.d.ts +2 -2
  63. package/dist/transactions/distribution.d.ts.map +1 -1
  64. package/dist/transactions/distribution.js +7 -13
  65. package/dist/transactions/distribution.js.map +1 -1
  66. package/dist/transactions/gov.d.ts +2 -2
  67. package/dist/transactions/gov.d.ts.map +1 -1
  68. package/dist/transactions/gov.js +29 -20
  69. package/dist/transactions/gov.js.map +1 -1
  70. package/dist/transactions/index.d.ts +1 -1
  71. package/dist/transactions/index.d.ts.map +1 -1
  72. package/dist/transactions/index.js +1 -1
  73. package/dist/transactions/index.js.map +1 -1
  74. package/dist/transactions/manifest.d.ts +2 -2
  75. package/dist/transactions/manifest.d.ts.map +1 -1
  76. package/dist/transactions/manifest.js +7 -14
  77. package/dist/transactions/manifest.js.map +1 -1
  78. package/dist/transactions/staking.d.ts +2 -2
  79. package/dist/transactions/staking.d.ts.map +1 -1
  80. package/dist/transactions/staking.js +7 -13
  81. package/dist/transactions/staking.js.map +1 -1
  82. package/dist/transactions/utils.d.ts +63 -1
  83. package/dist/transactions/utils.d.ts.map +1 -1
  84. package/dist/transactions/utils.js +121 -2
  85. package/dist/transactions/utils.js.map +1 -1
  86. package/dist/transactions/utils.test.js +351 -1
  87. package/dist/transactions/utils.test.js.map +1 -1
  88. package/dist/types.d.ts +203 -8
  89. package/dist/types.d.ts.map +1 -1
  90. package/dist/types.js.map +1 -1
  91. package/dist/wallet/mnemonic.d.ts +1 -0
  92. package/dist/wallet/mnemonic.d.ts.map +1 -1
  93. package/dist/wallet/mnemonic.js +34 -13
  94. package/dist/wallet/mnemonic.js.map +1 -1
  95. package/package.json +5 -1
  96. package/src/client.ts +84 -21
  97. package/src/cosmos.ts +13 -109
  98. package/src/index.ts +17 -23
  99. package/src/modules.test.ts +60 -0
  100. package/src/modules.ts +122 -5
  101. package/src/queries/auth.ts +35 -74
  102. package/src/queries/bank.ts +40 -58
  103. package/src/queries/billing.ts +46 -86
  104. package/src/queries/distribution.ts +35 -59
  105. package/src/queries/gov.ts +40 -64
  106. package/src/queries/index.ts +10 -1
  107. package/src/queries/staking.ts +55 -91
  108. package/src/queries/utils.test.ts +103 -8
  109. package/src/queries/utils.ts +92 -12
  110. package/src/transactions/bank.ts +9 -33
  111. package/src/transactions/billing.ts +30 -137
  112. package/src/transactions/distribution.ts +7 -29
  113. package/src/transactions/gov.ts +33 -37
  114. package/src/transactions/index.ts +1 -1
  115. package/src/transactions/manifest.ts +7 -29
  116. package/src/transactions/staking.ts +7 -29
  117. package/src/transactions/utils.test.ts +390 -1
  118. package/src/transactions/utils.ts +191 -2
  119. package/src/types.ts +318 -9
  120. package/src/wallet/mnemonic.ts +41 -17
  121. package/.claude/settings.local.json +0 -20
@@ -1,15 +1,15 @@
1
- import { ManifestMCPError, ManifestMCPErrorCode } from '../types.js';
2
- import { parseBigInt, defaultPagination } from './utils.js';
1
+ import { parseBigInt, requireArgs, extractPaginationArgs } from './utils.js';
2
+ import { throwUnsupportedSubcommand } from '../modules.js';
3
3
  /**
4
4
  * Route staking query to manifestjs query client
5
+ *
6
+ * Paginated queries support --limit flag (default: 100, max: 1000)
5
7
  */
6
8
  export async function routeStakingQuery(queryClient, subcommand, args) {
7
9
  const staking = queryClient.cosmos.staking.v1beta1;
8
10
  switch (subcommand) {
9
11
  case 'delegation': {
10
- if (args.length < 2) {
11
- throw new ManifestMCPError(ManifestMCPErrorCode.QUERY_FAILED, 'delegation requires delegator-address and validator-address arguments');
12
- }
12
+ requireArgs(args, 2, ['delegator-address', 'validator-address'], 'staking delegation');
13
13
  const [delegatorAddr, validatorAddr] = args;
14
14
  const result = await staking.delegation({
15
15
  delegatorAddr,
@@ -18,20 +18,17 @@ export async function routeStakingQuery(queryClient, subcommand, args) {
18
18
  return { delegationResponse: result.delegationResponse };
19
19
  }
20
20
  case 'delegations': {
21
- if (args.length < 1) {
22
- throw new ManifestMCPError(ManifestMCPErrorCode.QUERY_FAILED, 'delegations requires delegator-address argument');
23
- }
24
- const [delegatorAddr] = args;
25
- const result = await staking.delegatorDelegations({ delegatorAddr, pagination: defaultPagination });
21
+ const { pagination, remainingArgs } = extractPaginationArgs(args, 'staking delegations');
22
+ requireArgs(remainingArgs, 1, ['delegator-address'], 'staking delegations');
23
+ const [delegatorAddr] = remainingArgs;
24
+ const result = await staking.delegatorDelegations({ delegatorAddr, pagination });
26
25
  return {
27
26
  delegationResponses: result.delegationResponses,
28
27
  pagination: result.pagination,
29
28
  };
30
29
  }
31
30
  case 'unbonding-delegation': {
32
- if (args.length < 2) {
33
- throw new ManifestMCPError(ManifestMCPErrorCode.QUERY_FAILED, 'unbonding-delegation requires delegator-address and validator-address arguments');
34
- }
31
+ requireArgs(args, 2, ['delegator-address', 'validator-address'], 'staking unbonding-delegation');
35
32
  const [delegatorAddr, validatorAddr] = args;
36
33
  const result = await staking.unbondingDelegation({
37
34
  delegatorAddr,
@@ -40,28 +37,27 @@ export async function routeStakingQuery(queryClient, subcommand, args) {
40
37
  return { unbond: result.unbond };
41
38
  }
42
39
  case 'unbonding-delegations': {
43
- if (args.length < 1) {
44
- throw new ManifestMCPError(ManifestMCPErrorCode.QUERY_FAILED, 'unbonding-delegations requires delegator-address argument');
45
- }
46
- const [delegatorAddr] = args;
47
- const result = await staking.delegatorUnbondingDelegations({ delegatorAddr, pagination: defaultPagination });
40
+ const { pagination, remainingArgs } = extractPaginationArgs(args, 'staking unbonding-delegations');
41
+ requireArgs(remainingArgs, 1, ['delegator-address'], 'staking unbonding-delegations');
42
+ const [delegatorAddr] = remainingArgs;
43
+ const result = await staking.delegatorUnbondingDelegations({ delegatorAddr, pagination });
48
44
  return {
49
45
  unbondingResponses: result.unbondingResponses,
50
46
  pagination: result.pagination,
51
47
  };
52
48
  }
53
49
  case 'redelegations': {
54
- if (args.length < 1) {
55
- throw new ManifestMCPError(ManifestMCPErrorCode.QUERY_FAILED, 'redelegations requires delegator-address argument');
56
- }
57
- const [delegatorAddr] = args;
58
- const srcValidatorAddr = args[1] || '';
59
- const dstValidatorAddr = args[2] || '';
50
+ const { pagination, remainingArgs } = extractPaginationArgs(args, 'staking redelegations');
51
+ requireArgs(remainingArgs, 1, ['delegator-address'], 'staking redelegations');
52
+ const [delegatorAddr] = remainingArgs;
53
+ // Optional: src and dst validator addresses for filtering
54
+ const srcValidatorAddr = remainingArgs[1] || '';
55
+ const dstValidatorAddr = remainingArgs[2] || '';
60
56
  const result = await staking.redelegations({
61
57
  delegatorAddr,
62
58
  srcValidatorAddr,
63
59
  dstValidatorAddr,
64
- pagination: defaultPagination,
60
+ pagination,
65
61
  });
66
62
  return {
67
63
  redelegationResponses: result.redelegationResponses,
@@ -69,35 +65,33 @@ export async function routeStakingQuery(queryClient, subcommand, args) {
69
65
  };
70
66
  }
71
67
  case 'validator': {
72
- if (args.length < 1) {
73
- throw new ManifestMCPError(ManifestMCPErrorCode.QUERY_FAILED, 'validator requires validator-address argument');
74
- }
68
+ requireArgs(args, 1, ['validator-address'], 'staking validator');
75
69
  const [validatorAddr] = args;
76
70
  const result = await staking.validator({ validatorAddr });
77
71
  return { validator: result.validator };
78
72
  }
79
73
  case 'validators': {
80
- const status = args[0] || '';
81
- const result = await staking.validators({ status, pagination: defaultPagination });
74
+ const { pagination, remainingArgs } = extractPaginationArgs(args, 'staking validators');
75
+ // Optional: status filter
76
+ const status = remainingArgs[0] || '';
77
+ const result = await staking.validators({ status, pagination });
82
78
  return { validators: result.validators, pagination: result.pagination };
83
79
  }
84
80
  case 'validator-delegations': {
85
- if (args.length < 1) {
86
- throw new ManifestMCPError(ManifestMCPErrorCode.QUERY_FAILED, 'validator-delegations requires validator-address argument');
87
- }
88
- const [validatorAddr] = args;
89
- const result = await staking.validatorDelegations({ validatorAddr, pagination: defaultPagination });
81
+ const { pagination, remainingArgs } = extractPaginationArgs(args, 'staking validator-delegations');
82
+ requireArgs(remainingArgs, 1, ['validator-address'], 'staking validator-delegations');
83
+ const [validatorAddr] = remainingArgs;
84
+ const result = await staking.validatorDelegations({ validatorAddr, pagination });
90
85
  return {
91
86
  delegationResponses: result.delegationResponses,
92
87
  pagination: result.pagination,
93
88
  };
94
89
  }
95
90
  case 'validator-unbonding-delegations': {
96
- if (args.length < 1) {
97
- throw new ManifestMCPError(ManifestMCPErrorCode.QUERY_FAILED, 'validator-unbonding-delegations requires validator-address argument');
98
- }
99
- const [validatorAddr] = args;
100
- const result = await staking.validatorUnbondingDelegations({ validatorAddr, pagination: defaultPagination });
91
+ const { pagination, remainingArgs } = extractPaginationArgs(args, 'staking validator-unbonding-delegations');
92
+ requireArgs(remainingArgs, 1, ['validator-address'], 'staking validator-unbonding-delegations');
93
+ const [validatorAddr] = remainingArgs;
94
+ const result = await staking.validatorUnbondingDelegations({ validatorAddr, pagination });
101
95
  return {
102
96
  unbondingResponses: result.unbondingResponses,
103
97
  pagination: result.pagination,
@@ -112,30 +106,13 @@ export async function routeStakingQuery(queryClient, subcommand, args) {
112
106
  return { params: result.params };
113
107
  }
114
108
  case 'historical-info': {
115
- if (args.length < 1) {
116
- throw new ManifestMCPError(ManifestMCPErrorCode.QUERY_FAILED, 'historical-info requires height argument');
117
- }
109
+ requireArgs(args, 1, ['height'], 'staking historical-info');
118
110
  const height = parseBigInt(args[0], 'height');
119
111
  const result = await staking.historicalInfo({ height });
120
112
  return { hist: result.hist };
121
113
  }
122
114
  default:
123
- throw new ManifestMCPError(ManifestMCPErrorCode.UNSUPPORTED_QUERY, `Unsupported staking query subcommand: ${subcommand}`, {
124
- availableSubcommands: [
125
- 'delegation',
126
- 'delegations',
127
- 'unbonding-delegation',
128
- 'unbonding-delegations',
129
- 'redelegations',
130
- 'validator',
131
- 'validators',
132
- 'validator-delegations',
133
- 'validator-unbonding-delegations',
134
- 'pool',
135
- 'params',
136
- 'historical-info',
137
- ],
138
- });
115
+ throwUnsupportedSubcommand('query', 'staking', subcommand);
139
116
  }
140
117
  }
141
118
  //# sourceMappingURL=staking.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"staking.js","sourceRoot":"","sources":["../../src/queries/staking.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE5D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,WAAgC,EAChC,UAAkB,EAClB,IAAc;IAEd,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;IAEnD,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,YAAY,EACjC,uEAAuE,CACxE,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,GAAG,IAAI,CAAC;YAC5C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;gBACtC,aAAa;gBACb,aAAa;aACd,CAAC,CAAC;YACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC3D,CAAC;QAED,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,YAAY,EACjC,iDAAiD,CAClD,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,oBAAoB,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,CAAC;YACpG,OAAO;gBACL,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;gBAC/C,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC;QACJ,CAAC;QAED,KAAK,sBAAsB,CAAC,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,YAAY,EACjC,iFAAiF,CAClF,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,GAAG,IAAI,CAAC;YAC5C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC;gBAC/C,aAAa;gBACb,aAAa;aACd,CAAC,CAAC;YACH,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QACnC,CAAC;QAED,KAAK,uBAAuB,CAAC,CAAC,CAAC;YAC7B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,YAAY,EACjC,2DAA2D,CAC5D,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,6BAA6B,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAC7G,OAAO;gBACL,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;gBAC7C,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC;QACJ,CAAC;QAED,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,YAAY,EACjC,mDAAmD,CACpD,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;YAC7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACvC,MAAM,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC;gBACzC,aAAa;gBACb,gBAAgB;gBAChB,gBAAgB;gBAChB,UAAU,EAAE,iBAAiB;aAC9B,CAAC,CAAC;YACH,OAAO;gBACL,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;gBACnD,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC;QACJ,CAAC;QAED,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,YAAY,EACjC,+CAA+C,CAChD,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;YAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QACzC,CAAC;QAED,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,CAAC;YACnF,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;QAC1E,CAAC;QAED,KAAK,uBAAuB,CAAC,CAAC,CAAC;YAC7B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,YAAY,EACjC,2DAA2D,CAC5D,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,oBAAoB,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,CAAC;YACpG,OAAO;gBACL,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;gBAC/C,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC;QACJ,CAAC;QAED,KAAK,iCAAiC,CAAC,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,YAAY,EACjC,qEAAqE,CACtE,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,6BAA6B,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAC7G,OAAO;gBACL,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;gBAC7C,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACxC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QACnC,CAAC;QAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,YAAY,EACjC,0CAA0C,CAC3C,CAAC;YACJ,CAAC;YACD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YACxD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;QAED;YACE,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,iBAAiB,EACtC,yCAAyC,UAAU,EAAE,EACrD;gBACE,oBAAoB,EAAE;oBACpB,YAAY;oBACZ,aAAa;oBACb,sBAAsB;oBACtB,uBAAuB;oBACvB,eAAe;oBACf,WAAW;oBACX,YAAY;oBACZ,uBAAuB;oBACvB,iCAAiC;oBACjC,MAAM;oBACN,QAAQ;oBACR,iBAAiB;iBAClB;aACF,CACF,CAAC;IACN,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"staking.js","sourceRoot":"","sources":["../../src/queries/staking.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,54 @@
1
1
  /** Default page size limit for paginated queries to prevent resource exhaustion */
2
2
  export declare const DEFAULT_PAGE_LIMIT: bigint;
3
+ /** Maximum page size limit to prevent DoS */
4
+ export declare const MAX_PAGE_LIMIT: bigint;
3
5
  /**
4
- * Default pagination configuration for queries
5
- * Uses Cosmos SDK pagination format
6
+ * Cosmos SDK pagination configuration
6
7
  */
7
- export declare const defaultPagination: {
8
- key: Uint8Array<ArrayBuffer>;
9
- offset: bigint;
10
- limit: bigint;
11
- countTotal: boolean;
12
- reverse: boolean;
8
+ export interface PaginationConfig {
9
+ readonly key: Uint8Array;
10
+ readonly offset: bigint;
11
+ readonly limit: bigint;
12
+ readonly countTotal: boolean;
13
+ readonly reverse: boolean;
14
+ }
15
+ /**
16
+ * Create pagination configuration with optional custom limit.
17
+ * Validates that limit is within acceptable bounds.
18
+ *
19
+ * @param limit - Optional custom limit (defaults to DEFAULT_PAGE_LIMIT)
20
+ * @returns Cosmos SDK pagination object
21
+ */
22
+ export declare function createPagination(limit?: bigint): PaginationConfig;
23
+ /**
24
+ * Default pagination configuration for queries (for backwards compatibility)
25
+ * @deprecated Use createPagination() instead for configurable limits
26
+ */
27
+ export declare const defaultPagination: PaginationConfig;
28
+ /**
29
+ * Extract --limit flag from args and return pagination config with remaining args.
30
+ * Use this helper for paginated queries.
31
+ *
32
+ * @param args - The arguments array
33
+ * @param context - Context for error messages
34
+ * @returns Object with pagination config and filtered args
35
+ */
36
+ export declare function extractPaginationArgs(args: string[], context: string): {
37
+ pagination: PaginationConfig;
38
+ remainingArgs: string[];
13
39
  };
14
40
  /**
15
41
  * Safely parse a string to BigInt with proper error handling (for queries)
16
42
  */
17
43
  export declare function parseBigInt(value: string, fieldName: string): bigint;
18
44
  /**
19
- * Safely parse a string to integer with proper error handling
45
+ * Safely parse a string to integer with proper error handling.
46
+ * Named parseInteger to avoid shadowing global parseInt.
47
+ */
48
+ export declare function parseInteger(value: string, fieldName: string): number;
49
+ /**
50
+ * Validate that required arguments are present (for queries).
51
+ * Uses QUERY_FAILED error code by default.
20
52
  */
21
- export declare function parseInt(value: string, fieldName: string): number;
53
+ export declare function requireArgs(args: string[], minCount: number, expectedNames: string[], context: string): void;
22
54
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/queries/utils.ts"],"names":[],"mappings":"AAGA,mFAAmF;AACnF,eAAO,MAAM,kBAAkB,QAAc,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;CAM7B,CAAC;AAEF;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CASjE"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/queries/utils.ts"],"names":[],"mappings":"AAGA,mFAAmF;AACnF,eAAO,MAAM,kBAAkB,QAAc,CAAC;AAE9C,6CAA6C;AAC7C,eAAO,MAAM,cAAc,QAAe,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAiBjE;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,kBAAqB,CAAC;AAEpD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,MAAM,GACd;IAAE,UAAU,EAAE,gBAAgB,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,CAmB3D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CASrE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EAAE,EACd,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EAAE,EACvB,OAAO,EAAE,MAAM,GACd,IAAI,CAEN"}
@@ -1,18 +1,62 @@
1
1
  import { ManifestMCPError, ManifestMCPErrorCode } from '../types.js';
2
- import { parseBigIntWithCode } from '../transactions/utils.js';
2
+ import { parseBigIntWithCode, requireArgs as requireArgsBase, extractFlag, filterConsumedArgs } from '../transactions/utils.js';
3
3
  /** Default page size limit for paginated queries to prevent resource exhaustion */
4
4
  export const DEFAULT_PAGE_LIMIT = BigInt(100);
5
+ /** Maximum page size limit to prevent DoS */
6
+ export const MAX_PAGE_LIMIT = BigInt(1000);
5
7
  /**
6
- * Default pagination configuration for queries
7
- * Uses Cosmos SDK pagination format
8
+ * Create pagination configuration with optional custom limit.
9
+ * Validates that limit is within acceptable bounds.
10
+ *
11
+ * @param limit - Optional custom limit (defaults to DEFAULT_PAGE_LIMIT)
12
+ * @returns Cosmos SDK pagination object
8
13
  */
9
- export const defaultPagination = {
10
- key: new Uint8Array(),
11
- offset: BigInt(0),
12
- limit: DEFAULT_PAGE_LIMIT,
13
- countTotal: false,
14
- reverse: false,
15
- };
14
+ export function createPagination(limit) {
15
+ let effectiveLimit = limit ?? DEFAULT_PAGE_LIMIT;
16
+ // Clamp to valid range
17
+ if (effectiveLimit < BigInt(1)) {
18
+ effectiveLimit = BigInt(1);
19
+ }
20
+ else if (effectiveLimit > MAX_PAGE_LIMIT) {
21
+ effectiveLimit = MAX_PAGE_LIMIT;
22
+ }
23
+ return {
24
+ key: new Uint8Array(),
25
+ offset: BigInt(0),
26
+ limit: effectiveLimit,
27
+ countTotal: false,
28
+ reverse: false,
29
+ };
30
+ }
31
+ /**
32
+ * Default pagination configuration for queries (for backwards compatibility)
33
+ * @deprecated Use createPagination() instead for configurable limits
34
+ */
35
+ export const defaultPagination = createPagination();
36
+ /**
37
+ * Extract --limit flag from args and return pagination config with remaining args.
38
+ * Use this helper for paginated queries.
39
+ *
40
+ * @param args - The arguments array
41
+ * @param context - Context for error messages
42
+ * @returns Object with pagination config and filtered args
43
+ */
44
+ export function extractPaginationArgs(args, context) {
45
+ const { value: limitStr, consumedIndices } = extractFlag(args, '--limit', context);
46
+ const remainingArgs = filterConsumedArgs(args, consumedIndices);
47
+ let pagination;
48
+ if (limitStr) {
49
+ const limit = parseBigInt(limitStr, 'limit');
50
+ if (limit < BigInt(1) || limit > MAX_PAGE_LIMIT) {
51
+ throw new ManifestMCPError(ManifestMCPErrorCode.QUERY_FAILED, `Invalid limit: ${limit}. Must be between 1 and ${MAX_PAGE_LIMIT}.`);
52
+ }
53
+ pagination = createPagination(limit);
54
+ }
55
+ else {
56
+ pagination = createPagination();
57
+ }
58
+ return { pagination, remainingArgs };
59
+ }
16
60
  /**
17
61
  * Safely parse a string to BigInt with proper error handling (for queries)
18
62
  */
@@ -20,13 +64,21 @@ export function parseBigInt(value, fieldName) {
20
64
  return parseBigIntWithCode(value, fieldName, ManifestMCPErrorCode.QUERY_FAILED);
21
65
  }
22
66
  /**
23
- * Safely parse a string to integer with proper error handling
67
+ * Safely parse a string to integer with proper error handling.
68
+ * Named parseInteger to avoid shadowing global parseInt.
24
69
  */
25
- export function parseInt(value, fieldName) {
70
+ export function parseInteger(value, fieldName) {
26
71
  const parsed = Number.parseInt(value, 10);
27
72
  if (Number.isNaN(parsed)) {
28
73
  throw new ManifestMCPError(ManifestMCPErrorCode.QUERY_FAILED, `Invalid ${fieldName}: "${value}". Expected a valid integer.`);
29
74
  }
30
75
  return parsed;
31
76
  }
77
+ /**
78
+ * Validate that required arguments are present (for queries).
79
+ * Uses QUERY_FAILED error code by default.
80
+ */
81
+ export function requireArgs(args, minCount, expectedNames, context) {
82
+ requireArgsBase(args, minCount, expectedNames, context, ManifestMCPErrorCode.QUERY_FAILED);
83
+ }
32
84
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/queries/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,mFAAmF;AACnF,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAE9C;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,GAAG,EAAE,IAAI,UAAU,EAAE;IACrB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjB,KAAK,EAAE,kBAAkB;IACzB,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,KAAK;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,SAAiB;IAC1D,OAAO,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,oBAAoB,CAAC,YAAY,CAAC,CAAC;AAClF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAa,EAAE,SAAiB;IACvD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,YAAY,EACjC,WAAW,SAAS,MAAM,KAAK,8BAA8B,CAC9D,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/queries/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,WAAW,IAAI,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEhI,mFAAmF;AACnF,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAE9C,6CAA6C;AAC7C,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAa3C;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,cAAc,GAAG,KAAK,IAAI,kBAAkB,CAAC;IAEjD,uBAAuB;IACvB,IAAI,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;SAAM,IAAI,cAAc,GAAG,cAAc,EAAE,CAAC;QAC3C,cAAc,GAAG,cAAc,CAAC;IAClC,CAAC;IAED,OAAO;QACL,GAAG,EAAE,IAAI,UAAU,EAAE;QACrB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACjB,KAAK,EAAE,cAAc;QACrB,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,EAAE,CAAC;AAEpD;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAc,EACd,OAAe;IAEf,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACnF,MAAM,aAAa,GAAG,kBAAkB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAEhE,IAAI,UAA4B,CAAC;IACjC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7C,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,cAAc,EAAE,CAAC;YAChD,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,YAAY,EACjC,kBAAkB,KAAK,2BAA2B,cAAc,GAAG,CACpE,CAAC;QACJ,CAAC;QACD,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,gBAAgB,EAAE,CAAC;IAClC,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,SAAiB;IAC1D,OAAO,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,oBAAoB,CAAC,YAAY,CAAC,CAAC;AAClF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,SAAiB;IAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,gBAAgB,CACxB,oBAAoB,CAAC,YAAY,EACjC,WAAW,SAAS,MAAM,KAAK,8BAA8B,CAC9D,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,IAAc,EACd,QAAgB,EAChB,aAAuB,EACvB,OAAe;IAEf,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,oBAAoB,CAAC,YAAY,CAAC,CAAC;AAC7F,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { describe, it, expect } from 'vitest';
2
- import { parseBigInt, parseInt } from './utils.js';
2
+ import { parseBigInt, parseInteger, createPagination, extractPaginationArgs, DEFAULT_PAGE_LIMIT, MAX_PAGE_LIMIT, } from './utils.js';
3
3
  import { ManifestMCPError, ManifestMCPErrorCode } from '../types.js';
4
4
  describe('parseBigInt', () => {
5
5
  it('should parse valid integer strings', () => {
@@ -34,19 +34,19 @@ describe('parseBigInt', () => {
34
34
  }
35
35
  });
36
36
  });
37
- describe('parseInt', () => {
37
+ describe('parseInteger', () => {
38
38
  it('should parse valid integer strings', () => {
39
- expect(parseInt('0', 'status')).toBe(0);
40
- expect(parseInt('123', 'status')).toBe(123);
41
- expect(parseInt('-5', 'status')).toBe(-5);
39
+ expect(parseInteger('0', 'status')).toBe(0);
40
+ expect(parseInteger('123', 'status')).toBe(123);
41
+ expect(parseInteger('-5', 'status')).toBe(-5);
42
42
  });
43
43
  it('should throw ManifestMCPError for invalid integers', () => {
44
- expect(() => parseInt('', 'status')).toThrow(ManifestMCPError);
45
- expect(() => parseInt('abc', 'status')).toThrow(ManifestMCPError);
44
+ expect(() => parseInteger('', 'status')).toThrow(ManifestMCPError);
45
+ expect(() => parseInteger('abc', 'status')).toThrow(ManifestMCPError);
46
46
  });
47
47
  it('should have correct error code', () => {
48
48
  try {
49
- parseInt('invalid', 'status');
49
+ parseInteger('invalid', 'status');
50
50
  }
51
51
  catch (error) {
52
52
  expect(error).toBeInstanceOf(ManifestMCPError);
@@ -54,4 +54,64 @@ describe('parseInt', () => {
54
54
  }
55
55
  });
56
56
  });
57
+ describe('createPagination', () => {
58
+ it('should use default limit when none provided', () => {
59
+ const pagination = createPagination();
60
+ expect(pagination.limit).toBe(DEFAULT_PAGE_LIMIT);
61
+ expect(pagination.offset).toBe(BigInt(0));
62
+ expect(pagination.countTotal).toBe(false);
63
+ expect(pagination.reverse).toBe(false);
64
+ expect(pagination.key).toEqual(new Uint8Array());
65
+ });
66
+ it('should use provided limit', () => {
67
+ const pagination = createPagination(BigInt(50));
68
+ expect(pagination.limit).toBe(BigInt(50));
69
+ });
70
+ it('should clamp limit to minimum of 1', () => {
71
+ const pagination = createPagination(BigInt(0));
72
+ expect(pagination.limit).toBe(BigInt(1));
73
+ const paginationNegative = createPagination(BigInt(-10));
74
+ expect(paginationNegative.limit).toBe(BigInt(1));
75
+ });
76
+ it('should clamp limit to maximum', () => {
77
+ const pagination = createPagination(BigInt(9999));
78
+ expect(pagination.limit).toBe(MAX_PAGE_LIMIT);
79
+ });
80
+ });
81
+ describe('extractPaginationArgs', () => {
82
+ it('should return default pagination when no --limit flag', () => {
83
+ const { pagination, remainingArgs } = extractPaginationArgs(['arg1', 'arg2'], 'test');
84
+ expect(pagination.limit).toBe(DEFAULT_PAGE_LIMIT);
85
+ expect(remainingArgs).toEqual(['arg1', 'arg2']);
86
+ });
87
+ it('should extract --limit flag and value', () => {
88
+ const { pagination, remainingArgs } = extractPaginationArgs(['arg1', '--limit', '50', 'arg2'], 'test');
89
+ expect(pagination.limit).toBe(BigInt(50));
90
+ expect(remainingArgs).toEqual(['arg1', 'arg2']);
91
+ });
92
+ it('should handle --limit at end of args', () => {
93
+ const { pagination, remainingArgs } = extractPaginationArgs(['arg1', '--limit', '25'], 'test');
94
+ expect(pagination.limit).toBe(BigInt(25));
95
+ expect(remainingArgs).toEqual(['arg1']);
96
+ });
97
+ it('should handle --limit at start of args', () => {
98
+ const { pagination, remainingArgs } = extractPaginationArgs(['--limit', '75', 'arg1'], 'test');
99
+ expect(pagination.limit).toBe(BigInt(75));
100
+ expect(remainingArgs).toEqual(['arg1']);
101
+ });
102
+ it('should throw for invalid limit value', () => {
103
+ expect(() => extractPaginationArgs(['--limit', 'abc'], 'test')).toThrow(ManifestMCPError);
104
+ });
105
+ it('should throw for limit below minimum', () => {
106
+ expect(() => extractPaginationArgs(['--limit', '0'], 'test')).toThrow(ManifestMCPError);
107
+ });
108
+ it('should throw for limit above maximum', () => {
109
+ expect(() => extractPaginationArgs(['--limit', '9999'], 'test')).toThrow(ManifestMCPError);
110
+ });
111
+ it('should handle empty args array', () => {
112
+ const { pagination, remainingArgs } = extractPaginationArgs([], 'test');
113
+ expect(pagination.limit).toBe(DEFAULT_PAGE_LIMIT);
114
+ expect(remainingArgs).toEqual([]);
115
+ });
116
+ });
57
117
  //# sourceMappingURL=utils.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../src/queries/utils.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../src/queries/utils.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { SigningStargateClient } from '@cosmjs/stargate';
2
- import { CosmosTxResult, ManifestMCPConfig } from '../types.js';
2
+ import { CosmosTxResult } from '../types.js';
3
3
  /**
4
4
  * Route bank transaction to appropriate handler
5
5
  */
6
- export declare function routeBankTransaction(client: SigningStargateClient, senderAddress: string, subcommand: string, args: string[], _config: ManifestMCPConfig, waitForConfirmation: boolean): Promise<CosmosTxResult>;
6
+ export declare function routeBankTransaction(client: SigningStargateClient, senderAddress: string, subcommand: string, args: string[], waitForConfirmation: boolean): Promise<CosmosTxResult>;
7
7
  //# sourceMappingURL=bank.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bank.d.ts","sourceRoot":"","sources":["../../src/transactions/bank.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAA0C,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAKxG;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,qBAAqB,EAC7B,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,iBAAiB,EAC1B,mBAAmB,EAAE,OAAO,GAC3B,OAAO,CAAC,cAAc,CAAC,CA4FzB"}
1
+ {"version":3,"file":"bank.d.ts","sourceRoot":"","sources":["../../src/transactions/bank.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAM7C;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,qBAAqB,EAC7B,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EAAE,EACd,mBAAmB,EAAE,OAAO,GAC3B,OAAO,CAAC,cAAc,CAAC,CAoEzB"}
@@ -1,25 +1,21 @@
1
1
  import { cosmos } from '@manifest-network/manifestjs';
2
- import { ManifestMCPError, ManifestMCPErrorCode } from '../types.js';
3
- import { parseAmount, buildTxResult, validateAddress, validateMemo, validateArgsLength } from './utils.js';
2
+ import { throwUnsupportedSubcommand } from '../modules.js';
3
+ import { parseAmount, buildTxResult, validateAddress, validateMemo, validateArgsLength, extractFlag, parseColonPair, requireArgs } from './utils.js';
4
4
  const { MsgSend, MsgMultiSend } = cosmos.bank.v1beta1;
5
5
  /**
6
6
  * Route bank transaction to appropriate handler
7
7
  */
8
- export async function routeBankTransaction(client, senderAddress, subcommand, args, _config, waitForConfirmation) {
8
+ export async function routeBankTransaction(client, senderAddress, subcommand, args, waitForConfirmation) {
9
9
  validateArgsLength(args, 'bank transaction');
10
10
  switch (subcommand) {
11
11
  case 'send': {
12
- if (args.length < 2) {
13
- throw new ManifestMCPError(ManifestMCPErrorCode.TX_FAILED, 'send requires recipient-address and amount arguments');
14
- }
12
+ requireArgs(args, 2, ['recipient-address', 'amount'], 'bank send');
15
13
  const [recipientAddress, amountStr] = args;
16
14
  validateAddress(recipientAddress, 'recipient address');
17
15
  const { amount, denom } = parseAmount(amountStr);
18
16
  // Extract optional memo from args
19
- let memo = '';
20
- const memoIndex = args.indexOf('--memo');
21
- if (memoIndex !== -1 && args[memoIndex + 1]) {
22
- memo = args[memoIndex + 1];
17
+ const { value: memo = '' } = extractFlag(args, '--memo', 'bank send');
18
+ if (memo) {
23
19
  validateMemo(memo);
24
20
  }
25
21
  const msg = {
@@ -34,15 +30,10 @@ export async function routeBankTransaction(client, senderAddress, subcommand, ar
34
30
  return buildTxResult('bank', 'send', result, waitForConfirmation);
35
31
  }
36
32
  case 'multi-send': {
37
- if (args.length < 2) {
38
- throw new ManifestMCPError(ManifestMCPErrorCode.TX_FAILED, 'multi-send requires at least one recipient:amount pair');
39
- }
33
+ requireArgs(args, 1, ['recipient:amount'], 'bank multi-send');
40
34
  // Parse format: multi-send recipient1:amount1 recipient2:amount2 ...
41
35
  const outputs = args.map((arg) => {
42
- const [address, amountStr] = arg.split(':');
43
- if (!address || !amountStr) {
44
- throw new ManifestMCPError(ManifestMCPErrorCode.TX_FAILED, `Invalid multi-send format: ${arg}. Expected format: address:amount`);
45
- }
36
+ const [address, amountStr] = parseColonPair(arg, 'address', 'amount', 'multi-send');
46
37
  validateAddress(address, 'recipient address');
47
38
  const { amount, denom } = parseAmount(amountStr);
48
39
  return { address, coins: [{ denom, amount }] };
@@ -70,7 +61,7 @@ export async function routeBankTransaction(client, senderAddress, subcommand, ar
70
61
  return buildTxResult('bank', 'multi-send', result, waitForConfirmation);
71
62
  }
72
63
  default:
73
- throw new ManifestMCPError(ManifestMCPErrorCode.UNSUPPORTED_TX, `Unsupported bank transaction subcommand: ${subcommand}`, { availableSubcommands: ['send', 'multi-send'] });
64
+ throwUnsupportedSubcommand('tx', 'bank', subcommand);
74
65
  }
75
66
  }
76
67
  //# sourceMappingURL=bank.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bank.js","sourceRoot":"","sources":["../../src/transactions/bank.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bank.js","sourceRoot":"","sources":["../../src/transactions/bank.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { SigningStargateClient } from '@cosmjs/stargate';
2
- import { CosmosTxResult, ManifestMCPConfig } from '../types.js';
2
+ import { CosmosTxResult } from '../types.js';
3
3
  /**
4
4
  * Route billing transaction to appropriate handler
5
5
  */
6
- export declare function routeBillingTransaction(client: SigningStargateClient, senderAddress: string, subcommand: string, args: string[], _config: ManifestMCPConfig, waitForConfirmation: boolean): Promise<CosmosTxResult>;
6
+ export declare function routeBillingTransaction(client: SigningStargateClient, senderAddress: string, subcommand: string, args: string[], waitForConfirmation: boolean): Promise<CosmosTxResult>;
7
7
  //# sourceMappingURL=billing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../src/transactions/billing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,OAAO,EAA0C,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAyCxG;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,qBAAqB,EAC7B,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,iBAAiB,EAC1B,mBAAmB,EAAE,OAAO,GAC3B,OAAO,CAAC,cAAc,CAAC,CAyNzB"}
1
+ {"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../src/transactions/billing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,cAAc,EAA0C,MAAM,aAAa,CAAC;AASrF;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,qBAAqB,EAC7B,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EAAE,EACd,mBAAmB,EAAE,OAAO,GAC3B,OAAO,CAAC,cAAc,CAAC,CAgJzB"}