@manifest-network/manifest-mcp-browser 0.1.0 → 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 (137) hide show
  1. package/.github/workflows/publish.yml +4 -2
  2. package/CLAUDE.md +9 -3
  3. package/README.md +6 -1
  4. package/dist/client.d.ts +13 -1
  5. package/dist/client.d.ts.map +1 -1
  6. package/dist/client.js +105 -9
  7. package/dist/client.js.map +1 -1
  8. package/dist/config.d.ts +4 -0
  9. package/dist/config.d.ts.map +1 -1
  10. package/dist/config.js +52 -7
  11. package/dist/config.js.map +1 -1
  12. package/dist/config.test.js +128 -0
  13. package/dist/config.test.js.map +1 -1
  14. package/dist/cosmos.d.ts.map +1 -1
  15. package/dist/cosmos.js +11 -57
  16. package/dist/cosmos.js.map +1 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +16 -25
  19. package/dist/index.js.map +1 -1
  20. package/dist/modules.d.ts +30 -1
  21. package/dist/modules.d.ts.map +1 -1
  22. package/dist/modules.js +67 -3
  23. package/dist/modules.js.map +1 -1
  24. package/dist/modules.test.js +58 -1
  25. package/dist/modules.test.js.map +1 -1
  26. package/dist/queries/auth.d.ts +7 -1
  27. package/dist/queries/auth.d.ts.map +1 -1
  28. package/dist/queries/auth.js +18 -45
  29. package/dist/queries/auth.js.map +1 -1
  30. package/dist/queries/bank.d.ts +7 -1
  31. package/dist/queries/bank.d.ts.map +1 -1
  32. package/dist/queries/bank.js +24 -38
  33. package/dist/queries/bank.js.map +1 -1
  34. package/dist/queries/billing.d.ts +7 -1
  35. package/dist/queries/billing.d.ts.map +1 -1
  36. package/dist/queries/billing.js +28 -54
  37. package/dist/queries/billing.js.map +1 -1
  38. package/dist/queries/distribution.d.ts +7 -1
  39. package/dist/queries/distribution.d.ts.map +1 -1
  40. package/dist/queries/distribution.js +18 -36
  41. package/dist/queries/distribution.js.map +1 -1
  42. package/dist/queries/gov.d.ts +7 -1
  43. package/dist/queries/gov.d.ts.map +1 -1
  44. package/dist/queries/gov.js +24 -41
  45. package/dist/queries/gov.js.map +1 -1
  46. package/dist/queries/index.d.ts +2 -1
  47. package/dist/queries/index.d.ts.map +1 -1
  48. package/dist/queries/index.js +1 -1
  49. package/dist/queries/index.js.map +1 -1
  50. package/dist/queries/staking.d.ts +7 -1
  51. package/dist/queries/staking.d.ts.map +1 -1
  52. package/dist/queries/staking.js +36 -59
  53. package/dist/queries/staking.js.map +1 -1
  54. package/dist/queries/utils.d.ts +42 -10
  55. package/dist/queries/utils.d.ts.map +1 -1
  56. package/dist/queries/utils.js +64 -12
  57. package/dist/queries/utils.js.map +1 -1
  58. package/dist/queries/utils.test.js +68 -8
  59. package/dist/queries/utils.test.js.map +1 -1
  60. package/dist/transactions/bank.d.ts +2 -2
  61. package/dist/transactions/bank.d.ts.map +1 -1
  62. package/dist/transactions/bank.js +9 -18
  63. package/dist/transactions/bank.js.map +1 -1
  64. package/dist/transactions/billing.d.ts +2 -2
  65. package/dist/transactions/billing.d.ts.map +1 -1
  66. package/dist/transactions/billing.js +52 -34
  67. package/dist/transactions/billing.js.map +1 -1
  68. package/dist/transactions/distribution.d.ts +2 -2
  69. package/dist/transactions/distribution.d.ts.map +1 -1
  70. package/dist/transactions/distribution.js +7 -13
  71. package/dist/transactions/distribution.js.map +1 -1
  72. package/dist/transactions/gov.d.ts +2 -2
  73. package/dist/transactions/gov.d.ts.map +1 -1
  74. package/dist/transactions/gov.js +32 -17
  75. package/dist/transactions/gov.js.map +1 -1
  76. package/dist/transactions/index.d.ts +1 -1
  77. package/dist/transactions/index.d.ts.map +1 -1
  78. package/dist/transactions/index.js +1 -1
  79. package/dist/transactions/index.js.map +1 -1
  80. package/dist/transactions/manifest.d.ts +2 -2
  81. package/dist/transactions/manifest.d.ts.map +1 -1
  82. package/dist/transactions/manifest.js +7 -14
  83. package/dist/transactions/manifest.js.map +1 -1
  84. package/dist/transactions/staking.d.ts +2 -2
  85. package/dist/transactions/staking.d.ts.map +1 -1
  86. package/dist/transactions/staking.js +7 -13
  87. package/dist/transactions/staking.js.map +1 -1
  88. package/dist/transactions/utils.d.ts +63 -1
  89. package/dist/transactions/utils.d.ts.map +1 -1
  90. package/dist/transactions/utils.js +121 -2
  91. package/dist/transactions/utils.js.map +1 -1
  92. package/dist/transactions/utils.test.js +351 -1
  93. package/dist/transactions/utils.test.js.map +1 -1
  94. package/dist/types.d.ts +212 -8
  95. package/dist/types.d.ts.map +1 -1
  96. package/dist/types.js.map +1 -1
  97. package/dist/wallet/mnemonic.d.ts +1 -0
  98. package/dist/wallet/mnemonic.d.ts.map +1 -1
  99. package/dist/wallet/mnemonic.js +34 -13
  100. package/dist/wallet/mnemonic.js.map +1 -1
  101. package/package.json +11 -6
  102. package/src/client.ts +119 -9
  103. package/src/config.test.ts +156 -0
  104. package/src/config.ts +59 -7
  105. package/src/cosmos.ts +19 -109
  106. package/src/index.ts +17 -23
  107. package/src/modules.test.ts +60 -0
  108. package/src/modules.ts +124 -7
  109. package/src/queries/auth.ts +35 -74
  110. package/src/queries/bank.ts +40 -58
  111. package/src/queries/billing.ts +46 -86
  112. package/src/queries/distribution.ts +35 -59
  113. package/src/queries/gov.ts +40 -64
  114. package/src/queries/index.ts +10 -1
  115. package/src/queries/staking.ts +55 -91
  116. package/src/queries/utils.test.ts +103 -8
  117. package/src/queries/utils.ts +92 -12
  118. package/src/transactions/bank.ts +9 -33
  119. package/src/transactions/billing.ts +64 -59
  120. package/src/transactions/distribution.ts +7 -29
  121. package/src/transactions/gov.ts +40 -34
  122. package/src/transactions/index.ts +1 -1
  123. package/src/transactions/manifest.ts +7 -29
  124. package/src/transactions/staking.ts +7 -29
  125. package/src/transactions/utils.test.ts +390 -1
  126. package/src/transactions/utils.ts +191 -2
  127. package/src/types.ts +328 -9
  128. package/src/wallet/mnemonic.ts +41 -17
  129. package/.claude/settings.local.json +0 -17
  130. package/dist/browser.d.ts.map +0 -1
  131. package/dist/browser.js.map +0 -1
  132. package/dist/queries/manifest.d.ts +0 -10
  133. package/dist/queries/manifest.d.ts.map +0 -1
  134. package/dist/queries/manifest.js +0 -14
  135. package/dist/queries/manifest.js.map +0 -1
  136. package/dist/wallet/keplr.d.ts.map +0 -1
  137. package/dist/wallet/keplr.js.map +0 -1
@@ -1,7 +1,27 @@
1
1
  import { cosmos } from '@manifest-network/manifestjs';
2
2
  import { ManifestMCPError, ManifestMCPErrorCode } from '../types.js';
3
- import { parseAmount, buildTxResult, parseBigInt, validateArgsLength } from './utils.js';
3
+ import { throwUnsupportedSubcommand } from '../modules.js';
4
+ import { parseAmount, buildTxResult, parseBigInt, validateArgsLength, extractFlag, requireArgs } from './utils.js';
4
5
  const { MsgVote, MsgDeposit, MsgVoteWeighted, VoteOption } = cosmos.gov.v1;
6
+ /** 10^18 as BigInt for fixed-point math */
7
+ const FIXED18_ONE = BigInt('1000000000000000000');
8
+ /**
9
+ * Format a fixed-18 BigInt as a decimal string without precision loss.
10
+ * E.g., 500000000000000000n -> "0.5", 1000000000000000000n -> "1.0"
11
+ */
12
+ function formatFixed18(value) {
13
+ const isNegative = value < BigInt(0);
14
+ const absValue = isNegative ? -value : value;
15
+ const intPart = absValue / FIXED18_ONE;
16
+ const fracPart = absValue % FIXED18_ONE;
17
+ // Pad fraction to 18 digits, then trim trailing zeros
18
+ const fracStr = fracPart.toString().padStart(18, '0').replace(/0+$/, '');
19
+ const sign = isNegative ? '-' : '';
20
+ if (fracStr === '') {
21
+ return `${sign}${intPart}.0`;
22
+ }
23
+ return `${sign}${intPart}.${fracStr}`;
24
+ }
5
25
  /**
6
26
  * Parse a decimal weight string to an 18-decimal fixed-point string.
7
27
  * Uses string manipulation to avoid floating-point precision loss.
@@ -49,22 +69,16 @@ function parseVoteOption(optionStr) {
49
69
  /**
50
70
  * Route gov transaction to appropriate handler
51
71
  */
52
- export async function routeGovTransaction(client, senderAddress, subcommand, args, _config, waitForConfirmation) {
72
+ export async function routeGovTransaction(client, senderAddress, subcommand, args, waitForConfirmation) {
53
73
  validateArgsLength(args, 'gov transaction');
54
74
  switch (subcommand) {
55
75
  case 'vote': {
56
- if (args.length < 2) {
57
- throw new ManifestMCPError(ManifestMCPErrorCode.TX_FAILED, 'vote requires proposal-id and option arguments');
58
- }
76
+ requireArgs(args, 2, ['proposal-id', 'option'], 'gov vote');
59
77
  const [proposalIdStr, optionStr] = args;
60
78
  const proposalId = parseBigInt(proposalIdStr, 'proposal-id');
61
79
  const option = parseVoteOption(optionStr);
62
80
  // Extract optional metadata from args
63
- let metadata = '';
64
- const metadataIndex = args.indexOf('--metadata');
65
- if (metadataIndex !== -1 && args[metadataIndex + 1]) {
66
- metadata = args[metadataIndex + 1];
67
- }
81
+ const { value: metadata = '' } = extractFlag(args, '--metadata', 'gov vote');
68
82
  const msg = {
69
83
  typeUrl: '/cosmos.gov.v1.MsgVote',
70
84
  value: MsgVote.fromPartial({
@@ -78,9 +92,7 @@ export async function routeGovTransaction(client, senderAddress, subcommand, arg
78
92
  return buildTxResult('gov', 'vote', result, waitForConfirmation);
79
93
  }
80
94
  case 'weighted-vote': {
81
- if (args.length < 2) {
82
- throw new ManifestMCPError(ManifestMCPErrorCode.TX_FAILED, 'weighted-vote requires proposal-id and options arguments (format: yes=0.5,no=0.5)');
83
- }
95
+ requireArgs(args, 2, ['proposal-id', 'options'], 'gov weighted-vote');
84
96
  const [proposalIdStr, optionsStr] = args;
85
97
  const proposalId = parseBigInt(proposalIdStr, 'proposal-id');
86
98
  // Parse weighted options (format: yes=0.5,no=0.3,abstain=0.2)
@@ -95,6 +107,11 @@ export async function routeGovTransaction(client, senderAddress, subcommand, arg
95
107
  const weight = parseWeightToFixed18(weightStr);
96
108
  return { option, weight };
97
109
  });
110
+ // Validate that weights sum to exactly 1.0 (10^18 in fixed-point)
111
+ const totalWeight = options.reduce((sum, opt) => sum + BigInt(opt.weight), BigInt(0));
112
+ if (totalWeight !== FIXED18_ONE) {
113
+ throw new ManifestMCPError(ManifestMCPErrorCode.TX_FAILED, `Weighted vote options must sum to exactly 1.0. Got ${formatFixed18(totalWeight)} (${options.map(o => o.weight).join(' + ')} = ${totalWeight})`);
114
+ }
98
115
  const msg = {
99
116
  typeUrl: '/cosmos.gov.v1.MsgVoteWeighted',
100
117
  value: MsgVoteWeighted.fromPartial({
@@ -108,9 +125,7 @@ export async function routeGovTransaction(client, senderAddress, subcommand, arg
108
125
  return buildTxResult('gov', 'weighted-vote', result, waitForConfirmation);
109
126
  }
110
127
  case 'deposit': {
111
- if (args.length < 2) {
112
- throw new ManifestMCPError(ManifestMCPErrorCode.TX_FAILED, 'deposit requires proposal-id and amount arguments');
113
- }
128
+ requireArgs(args, 2, ['proposal-id', 'amount'], 'gov deposit');
114
129
  const [proposalIdStr, amountStr] = args;
115
130
  const proposalId = parseBigInt(proposalIdStr, 'proposal-id');
116
131
  const { amount, denom } = parseAmount(amountStr);
@@ -126,7 +141,7 @@ export async function routeGovTransaction(client, senderAddress, subcommand, arg
126
141
  return buildTxResult('gov', 'deposit', result, waitForConfirmation);
127
142
  }
128
143
  default:
129
- throw new ManifestMCPError(ManifestMCPErrorCode.UNSUPPORTED_TX, `Unsupported gov transaction subcommand: ${subcommand}`, { availableSubcommands: ['vote', 'weighted-vote', 'deposit'] });
144
+ throwUnsupportedSubcommand('tx', 'gov', subcommand);
130
145
  }
131
146
  }
132
147
  //# sourceMappingURL=gov.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gov.js","sourceRoot":"","sources":["../../src/transactions/gov.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gov.js","sourceRoot":"","sources":["../../src/transactions/gov.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export { parseAmount, buildTxResult, parseBigInt } from './utils.js';
1
+ export { parseAmount, buildTxResult, parseBigInt, parseHexBytes, bytesToHex } from './utils.js';
2
2
  export { routeBankTransaction } from './bank.js';
3
3
  export { routeStakingTransaction } from './staking.js';
4
4
  export { routeDistributionTransaction } from './distribution.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transactions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transactions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAChG,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC"}
@@ -1,4 +1,4 @@
1
- export { parseAmount, buildTxResult, parseBigInt } from './utils.js';
1
+ export { parseAmount, buildTxResult, parseBigInt, parseHexBytes, bytesToHex } from './utils.js';
2
2
  export { routeBankTransaction } from './bank.js';
3
3
  export { routeStakingTransaction } from './staking.js';
4
4
  export { routeDistributionTransaction } from './distribution.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transactions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transactions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAChG,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC"}
@@ -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 manifest transaction to appropriate handler
5
5
  */
6
- export declare function routeManifestTransaction(client: SigningStargateClient, senderAddress: string, subcommand: string, args: string[], _config: ManifestMCPConfig, waitForConfirmation: boolean): Promise<CosmosTxResult>;
6
+ export declare function routeManifestTransaction(client: SigningStargateClient, senderAddress: string, subcommand: string, args: string[], waitForConfirmation: boolean): Promise<CosmosTxResult>;
7
7
  //# sourceMappingURL=manifest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/transactions/manifest.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,wBAAwB,CAC5C,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,CAuEzB"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/transactions/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAM7C;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,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,CAiDzB"}
@@ -1,23 +1,18 @@
1
1
  import { liftedinit } from '@manifest-network/manifestjs';
2
- import { ManifestMCPError, ManifestMCPErrorCode } from '../types.js';
3
- import { parseAmount, buildTxResult, validateAddress, validateArgsLength } from './utils.js';
2
+ import { throwUnsupportedSubcommand } from '../modules.js';
3
+ import { parseAmount, buildTxResult, validateAddress, validateArgsLength, parseColonPair, requireArgs } from './utils.js';
4
4
  const { MsgPayout, MsgBurnHeldBalance } = liftedinit.manifest.v1;
5
5
  /**
6
6
  * Route manifest transaction to appropriate handler
7
7
  */
8
- export async function routeManifestTransaction(client, senderAddress, subcommand, args, _config, waitForConfirmation) {
8
+ export async function routeManifestTransaction(client, senderAddress, subcommand, args, waitForConfirmation) {
9
9
  validateArgsLength(args, 'manifest transaction');
10
10
  switch (subcommand) {
11
11
  case 'payout': {
12
- if (args.length < 1) {
13
- throw new ManifestMCPError(ManifestMCPErrorCode.TX_FAILED, 'payout requires at least one address:amount pair');
14
- }
12
+ requireArgs(args, 1, ['address:amount'], 'manifest payout');
15
13
  // Parse payout pairs (format: address:amount ...)
16
14
  const payoutPairs = args.map((arg) => {
17
- const [address, amountStr] = arg.split(':');
18
- if (!address || !amountStr) {
19
- throw new ManifestMCPError(ManifestMCPErrorCode.TX_FAILED, `Invalid payout pair format: ${arg}. Expected format: address:amount`);
20
- }
15
+ const [address, amountStr] = parseColonPair(arg, 'address', 'amount', 'payout pair');
21
16
  validateAddress(address, 'payout recipient address');
22
17
  const { amount, denom } = parseAmount(amountStr);
23
18
  return { address, coin: { denom, amount } };
@@ -33,9 +28,7 @@ export async function routeManifestTransaction(client, senderAddress, subcommand
33
28
  return buildTxResult('manifest', 'payout', result, waitForConfirmation);
34
29
  }
35
30
  case 'burn-held-balance': {
36
- if (args.length < 1) {
37
- throw new ManifestMCPError(ManifestMCPErrorCode.TX_FAILED, 'burn-held-balance requires at least one amount argument');
38
- }
31
+ requireArgs(args, 1, ['amount'], 'manifest burn-held-balance');
39
32
  // Parse coins to burn
40
33
  const burnCoins = args.map((amountStr) => {
41
34
  const { amount, denom } = parseAmount(amountStr);
@@ -52,7 +45,7 @@ export async function routeManifestTransaction(client, senderAddress, subcommand
52
45
  return buildTxResult('manifest', 'burn-held-balance', result, waitForConfirmation);
53
46
  }
54
47
  default:
55
- throw new ManifestMCPError(ManifestMCPErrorCode.UNSUPPORTED_TX, `Unsupported manifest transaction subcommand: ${subcommand}`, { availableSubcommands: ['payout', 'burn-held-balance'] });
48
+ throwUnsupportedSubcommand('tx', 'manifest', subcommand);
56
49
  }
57
50
  }
58
51
  //# sourceMappingURL=manifest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/transactions/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/transactions/manifest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1H,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;AAEjE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAA6B,EAC7B,aAAqB,EACrB,UAAkB,EAClB,IAAc,EACd,mBAA4B;IAE5B,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;IAEjD,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,iBAAiB,CAAC,CAAC;YAC5D,kDAAkD;YAClD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACnC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;gBACrF,eAAe,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC;gBACrD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;gBACjD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC;YAC9C,CAAC,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG;gBACV,OAAO,EAAE,mCAAmC;gBAC5C,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC;oBAC3B,SAAS,EAAE,aAAa;oBACxB,WAAW;iBACZ,CAAC;aACH,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;YAC3E,OAAO,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAC1E,CAAC;QAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,4BAA4B,CAAC,CAAC;YAC/D,sBAAsB;YACtB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;gBACvC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;gBACjD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG;gBACV,OAAO,EAAE,4CAA4C;gBACrD,KAAK,EAAE,kBAAkB,CAAC,WAAW,CAAC;oBACpC,SAAS,EAAE,aAAa;oBACxB,SAAS;iBACV,CAAC;aACH,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;YAC3E,OAAO,aAAa,CAAC,UAAU,EAAE,mBAAmB,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC;QACrF,CAAC;QAED;YACE,0BAA0B,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC"}
@@ -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 staking transaction to appropriate handler
5
5
  */
6
- export declare function routeStakingTransaction(client: SigningStargateClient, senderAddress: string, subcommand: string, args: string[], _config: ManifestMCPConfig, waitForConfirmation: boolean): Promise<CosmosTxResult>;
6
+ export declare function routeStakingTransaction(client: SigningStargateClient, senderAddress: string, subcommand: string, args: string[], waitForConfirmation: boolean): Promise<CosmosTxResult>;
7
7
  //# sourceMappingURL=staking.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"staking.d.ts","sourceRoot":"","sources":["../../src/transactions/staking.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,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,CAyFzB"}
1
+ {"version":3,"file":"staking.d.ts","sourceRoot":"","sources":["../../src/transactions/staking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAM7C;;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,CAmEzB"}
@@ -1,17 +1,15 @@
1
1
  import { cosmos } from '@manifest-network/manifestjs';
2
- import { ManifestMCPError, ManifestMCPErrorCode } from '../types.js';
3
- import { parseAmount, buildTxResult, validateAddress, validateArgsLength } from './utils.js';
2
+ import { throwUnsupportedSubcommand } from '../modules.js';
3
+ import { parseAmount, buildTxResult, validateAddress, validateArgsLength, requireArgs } from './utils.js';
4
4
  const { MsgDelegate, MsgUndelegate, MsgBeginRedelegate } = cosmos.staking.v1beta1;
5
5
  /**
6
6
  * Route staking transaction to appropriate handler
7
7
  */
8
- export async function routeStakingTransaction(client, senderAddress, subcommand, args, _config, waitForConfirmation) {
8
+ export async function routeStakingTransaction(client, senderAddress, subcommand, args, waitForConfirmation) {
9
9
  validateArgsLength(args, 'staking transaction');
10
10
  switch (subcommand) {
11
11
  case 'delegate': {
12
- if (args.length < 2) {
13
- throw new ManifestMCPError(ManifestMCPErrorCode.TX_FAILED, 'delegate requires validator-address and amount arguments');
14
- }
12
+ requireArgs(args, 2, ['validator-address', 'amount'], 'staking delegate');
15
13
  const [validatorAddress, amountStr] = args;
16
14
  validateAddress(validatorAddress, 'validator address');
17
15
  const { amount, denom } = parseAmount(amountStr);
@@ -28,9 +26,7 @@ export async function routeStakingTransaction(client, senderAddress, subcommand,
28
26
  }
29
27
  case 'unbond':
30
28
  case 'undelegate': {
31
- if (args.length < 2) {
32
- throw new ManifestMCPError(ManifestMCPErrorCode.TX_FAILED, 'unbond requires validator-address and amount arguments');
33
- }
29
+ requireArgs(args, 2, ['validator-address', 'amount'], 'staking unbond');
34
30
  const [validatorAddress, amountStr] = args;
35
31
  validateAddress(validatorAddress, 'validator address');
36
32
  const { amount, denom } = parseAmount(amountStr);
@@ -46,9 +42,7 @@ export async function routeStakingTransaction(client, senderAddress, subcommand,
46
42
  return buildTxResult('staking', 'unbond', result, waitForConfirmation);
47
43
  }
48
44
  case 'redelegate': {
49
- if (args.length < 3) {
50
- throw new ManifestMCPError(ManifestMCPErrorCode.TX_FAILED, 'redelegate requires src-validator, dst-validator, and amount arguments');
51
- }
45
+ requireArgs(args, 3, ['src-validator', 'dst-validator', 'amount'], 'staking redelegate');
52
46
  const [srcValidatorAddress, dstValidatorAddress, amountStr] = args;
53
47
  validateAddress(srcValidatorAddress, 'source validator address');
54
48
  validateAddress(dstValidatorAddress, 'destination validator address');
@@ -66,7 +60,7 @@ export async function routeStakingTransaction(client, senderAddress, subcommand,
66
60
  return buildTxResult('staking', 'redelegate', result, waitForConfirmation);
67
61
  }
68
62
  default:
69
- throw new ManifestMCPError(ManifestMCPErrorCode.UNSUPPORTED_TX, `Unsupported staking transaction subcommand: ${subcommand}`, { availableSubcommands: ['delegate', 'unbond', 'redelegate'] });
63
+ throwUnsupportedSubcommand('tx', 'staking', subcommand);
70
64
  }
71
65
  }
72
66
  //# sourceMappingURL=staking.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"staking.js","sourceRoot":"","sources":["../../src/transactions/staking.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"staking.js","sourceRoot":"","sources":["../../src/transactions/staking.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,58 @@ import { SigningStargateClient } from '@cosmjs/stargate';
2
2
  import { ManifestMCPErrorCode, CosmosTxResult } from '../types.js';
3
3
  /** Maximum number of arguments allowed */
4
4
  export declare const MAX_ARGS = 100;
5
+ /**
6
+ * Result from extracting a flag from args
7
+ */
8
+ export interface ExtractedFlag {
9
+ /** The flag value, or undefined if flag not present */
10
+ value: string | undefined;
11
+ /** Indices consumed by the flag and its value (for filtering) */
12
+ consumedIndices: number[];
13
+ }
14
+ /**
15
+ * Extract a flag value from args array.
16
+ * Returns { value, consumedIndices } or { value: undefined, consumedIndices: [] } if flag not present.
17
+ * Throws if flag is present but value is missing or looks like another flag.
18
+ *
19
+ * @param args - The arguments array to search
20
+ * @param flagName - The flag to look for (e.g., '--memo')
21
+ * @param context - Description for error messages (e.g., 'bank send')
22
+ */
23
+ export declare function extractFlag(args: string[], flagName: string, context: string): ExtractedFlag;
24
+ /**
25
+ * Filter args to remove consumed flag indices
26
+ */
27
+ export declare function filterConsumedArgs(args: string[], consumedIndices: number[]): string[];
5
28
  /** Maximum memo length (Cosmos SDK default) */
6
29
  export declare const MAX_MEMO_LENGTH = 256;
7
30
  /**
8
- * Validate args array length
31
+ * Parse a colon-separated pair (e.g., "address:amount", "sku:quantity").
32
+ * Throws with helpful error if format is invalid.
33
+ *
34
+ * @param input - The string to parse (e.g., "manifest1abc:1000umfx")
35
+ * @param leftName - Name of the left value for error messages (e.g., "address")
36
+ * @param rightName - Name of the right value for error messages (e.g., "amount")
37
+ * @param context - Context for error messages (e.g., "multi-send pair")
38
+ * @returns Tuple of [left, right] values
39
+ */
40
+ export declare function parseColonPair(input: string, leftName: string, rightName: string, context: string): [string, string];
41
+ /**
42
+ * Validate args array length (max limit)
9
43
  */
10
44
  export declare function validateArgsLength(args: string[], context: string): void;
45
+ /**
46
+ * Validate that required arguments are present.
47
+ * Provides helpful error messages with received vs expected args.
48
+ *
49
+ * @param args - The arguments array to validate
50
+ * @param minCount - Minimum number of required arguments
51
+ * @param expectedNames - Names of expected arguments for error messages
52
+ * @param context - Context for error messages (e.g., 'bank send', 'staking delegate')
53
+ * @param errorCode - Error code to use (defaults to TX_FAILED)
54
+ * @throws ManifestMCPError if args.length < minCount
55
+ */
56
+ export declare function requireArgs(args: string[], minCount: number, expectedNames: string[], context: string, errorCode?: ManifestMCPErrorCode): void;
11
57
  /**
12
58
  * Validate a bech32 address using @cosmjs/encoding
13
59
  */
@@ -16,6 +62,22 @@ export declare function validateAddress(address: string, fieldName: string, expe
16
62
  * Validate memo length
17
63
  */
18
64
  export declare function validateMemo(memo: string): void;
65
+ /**
66
+ * Parse and validate a hex string into Uint8Array.
67
+ * Uses @cosmjs/encoding for browser compatibility.
68
+ *
69
+ * @param hexString - The hex string to parse
70
+ * @param fieldName - Name of the field for error messages
71
+ * @param maxBytes - Maximum allowed byte length
72
+ * @param errorCode - Error code to use (defaults to TX_FAILED)
73
+ * @returns Uint8Array of the parsed bytes
74
+ */
75
+ export declare function parseHexBytes(hexString: string, fieldName: string, maxBytes: number, errorCode?: ManifestMCPErrorCode): Uint8Array;
76
+ /**
77
+ * Convert Uint8Array to hex string.
78
+ * Uses @cosmjs/encoding for browser compatibility.
79
+ */
80
+ export declare function bytesToHex(bytes: Uint8Array): string;
19
81
  /**
20
82
  * Safely parse a string to BigInt with proper error handling and configurable error code.
21
83
  * This is the base implementation used by both transaction and query utilities.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/transactions/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAoB,oBAAoB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAErF,0CAA0C;AAC1C,eAAO,MAAM,QAAQ,MAAM,CAAC;AAE5B,+CAA+C;AAC/C,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAOxE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAyBjG;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAO/C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,oBAAoB,GAC9B,MAAM,CAiBR;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAyBhF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC,CAAC,EACtE,mBAAmB,EAAE,OAAO,GAC3B,cAAc,CAkBhB"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/transactions/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAoB,oBAAoB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAErF,0CAA0C;AAC1C,eAAO,MAAM,QAAQ,MAAM,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,uDAAuD;IACvD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,iEAAiE;IACjE,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EAAE,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,aAAa,CAef;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAMtF;AAED,+CAA+C;AAC/C,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,CAAC,MAAM,EAAE,MAAM,CAAC,CAqBlB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAOxE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EAAE,EACd,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EAAE,EACvB,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,oBAAqD,GAC/D,IAAI,CAoBN;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAyBjG;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAO/C;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,oBAAqD,GAC/D,UAAU,CAmCZ;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEpD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,oBAAoB,GAC9B,MAAM,CAiBR;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAyBhF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC,CAAC,EACtE,mBAAmB,EAAE,OAAO,GAC3B,cAAc,CAmBhB"}
@@ -1,17 +1,96 @@
1
- import { fromBech32 } from '@cosmjs/encoding';
1
+ import { fromBech32, fromHex, toHex } from '@cosmjs/encoding';
2
2
  import { ManifestMCPError, ManifestMCPErrorCode } from '../types.js';
3
3
  /** Maximum number of arguments allowed */
4
4
  export const MAX_ARGS = 100;
5
+ /**
6
+ * Extract a flag value from args array.
7
+ * Returns { value, consumedIndices } or { value: undefined, consumedIndices: [] } if flag not present.
8
+ * Throws if flag is present but value is missing or looks like another flag.
9
+ *
10
+ * @param args - The arguments array to search
11
+ * @param flagName - The flag to look for (e.g., '--memo')
12
+ * @param context - Description for error messages (e.g., 'bank send')
13
+ */
14
+ export function extractFlag(args, flagName, context) {
15
+ const flagIndex = args.indexOf(flagName);
16
+ if (flagIndex === -1) {
17
+ return { value: undefined, consumedIndices: [] };
18
+ }
19
+ const value = args[flagIndex + 1];
20
+ if (!value || value.startsWith('--')) {
21
+ throw new ManifestMCPError(ManifestMCPErrorCode.TX_FAILED, `${flagName} flag requires a value in ${context}`);
22
+ }
23
+ return { value, consumedIndices: [flagIndex, flagIndex + 1] };
24
+ }
25
+ /**
26
+ * Filter args to remove consumed flag indices
27
+ */
28
+ export function filterConsumedArgs(args, consumedIndices) {
29
+ if (consumedIndices.length === 0) {
30
+ return args;
31
+ }
32
+ const consumedSet = new Set(consumedIndices);
33
+ return args.filter((_, index) => !consumedSet.has(index));
34
+ }
5
35
  /** Maximum memo length (Cosmos SDK default) */
6
36
  export const MAX_MEMO_LENGTH = 256;
7
37
  /**
8
- * Validate args array length
38
+ * Parse a colon-separated pair (e.g., "address:amount", "sku:quantity").
39
+ * Throws with helpful error if format is invalid.
40
+ *
41
+ * @param input - The string to parse (e.g., "manifest1abc:1000umfx")
42
+ * @param leftName - Name of the left value for error messages (e.g., "address")
43
+ * @param rightName - Name of the right value for error messages (e.g., "amount")
44
+ * @param context - Context for error messages (e.g., "multi-send pair")
45
+ * @returns Tuple of [left, right] values
46
+ */
47
+ export function parseColonPair(input, leftName, rightName, context) {
48
+ const colonIndex = input.indexOf(':');
49
+ if (colonIndex === -1) {
50
+ throw new ManifestMCPError(ManifestMCPErrorCode.TX_FAILED, `Invalid ${context} format: "${input}". Missing colon separator. Expected format: ${leftName}:${rightName}`);
51
+ }
52
+ if (colonIndex === 0) {
53
+ throw new ManifestMCPError(ManifestMCPErrorCode.TX_FAILED, `Invalid ${context} format: "${input}". Missing ${leftName}. Expected format: ${leftName}:${rightName}`);
54
+ }
55
+ if (colonIndex === input.length - 1) {
56
+ throw new ManifestMCPError(ManifestMCPErrorCode.TX_FAILED, `Invalid ${context} format: "${input}". Missing ${rightName}. Expected format: ${leftName}:${rightName}`);
57
+ }
58
+ return [input.slice(0, colonIndex), input.slice(colonIndex + 1)];
59
+ }
60
+ /**
61
+ * Validate args array length (max limit)
9
62
  */
10
63
  export function validateArgsLength(args, context) {
11
64
  if (args.length > MAX_ARGS) {
12
65
  throw new ManifestMCPError(ManifestMCPErrorCode.TX_FAILED, `Too many arguments for ${context}: ${args.length}. Maximum allowed: ${MAX_ARGS}`);
13
66
  }
14
67
  }
68
+ /**
69
+ * Validate that required arguments are present.
70
+ * Provides helpful error messages with received vs expected args.
71
+ *
72
+ * @param args - The arguments array to validate
73
+ * @param minCount - Minimum number of required arguments
74
+ * @param expectedNames - Names of expected arguments for error messages
75
+ * @param context - Context for error messages (e.g., 'bank send', 'staking delegate')
76
+ * @param errorCode - Error code to use (defaults to TX_FAILED)
77
+ * @throws ManifestMCPError if args.length < minCount
78
+ */
79
+ export function requireArgs(args, minCount, expectedNames, context, errorCode = ManifestMCPErrorCode.TX_FAILED) {
80
+ if (args.length >= minCount) {
81
+ return;
82
+ }
83
+ const expectedList = expectedNames.slice(0, minCount).join(', ');
84
+ const receivedList = args.length === 0
85
+ ? 'none'
86
+ : args.map(a => `"${a}"`).join(', ');
87
+ throw new ManifestMCPError(errorCode, `${context} requires ${minCount} argument(s): ${expectedList}. Received ${args.length}: ${receivedList}`, {
88
+ expectedArgs: expectedNames.slice(0, minCount),
89
+ receivedArgs: args,
90
+ receivedCount: args.length,
91
+ requiredCount: minCount,
92
+ });
93
+ }
15
94
  /**
16
95
  * Validate a bech32 address using @cosmjs/encoding
17
96
  */
@@ -40,6 +119,45 @@ export function validateMemo(memo) {
40
119
  throw new ManifestMCPError(ManifestMCPErrorCode.TX_FAILED, `Memo too long: ${memo.length} characters. Maximum allowed: ${MAX_MEMO_LENGTH}`);
41
120
  }
42
121
  }
122
+ /**
123
+ * Parse and validate a hex string into Uint8Array.
124
+ * Uses @cosmjs/encoding for browser compatibility.
125
+ *
126
+ * @param hexString - The hex string to parse
127
+ * @param fieldName - Name of the field for error messages
128
+ * @param maxBytes - Maximum allowed byte length
129
+ * @param errorCode - Error code to use (defaults to TX_FAILED)
130
+ * @returns Uint8Array of the parsed bytes
131
+ */
132
+ export function parseHexBytes(hexString, fieldName, maxBytes, errorCode = ManifestMCPErrorCode.TX_FAILED) {
133
+ // Check for empty string
134
+ if (!hexString || hexString.trim() === '') {
135
+ throw new ManifestMCPError(errorCode, `Invalid ${fieldName}: empty value. Expected a hex string.`);
136
+ }
137
+ // Check even length (each byte is 2 hex chars)
138
+ if (hexString.length % 2 !== 0) {
139
+ throw new ManifestMCPError(errorCode, `Invalid ${fieldName}: hex string must have even length. Got ${hexString.length} characters.`);
140
+ }
141
+ // Check max length
142
+ const byteLength = hexString.length / 2;
143
+ if (byteLength > maxBytes) {
144
+ throw new ManifestMCPError(errorCode, `Invalid ${fieldName}: exceeds maximum ${maxBytes} bytes. Got ${byteLength} bytes (${hexString.length} hex chars).`);
145
+ }
146
+ // Use @cosmjs/encoding for browser-compatible hex parsing
147
+ try {
148
+ return fromHex(hexString);
149
+ }
150
+ catch (error) {
151
+ throw new ManifestMCPError(errorCode, `Invalid ${fieldName}: "${hexString}". Must contain only hexadecimal characters (0-9, a-f, A-F).`);
152
+ }
153
+ }
154
+ /**
155
+ * Convert Uint8Array to hex string.
156
+ * Uses @cosmjs/encoding for browser compatibility.
157
+ */
158
+ export function bytesToHex(bytes) {
159
+ return toHex(bytes);
160
+ }
43
161
  /**
44
162
  * Safely parse a string to BigInt with proper error handling and configurable error code.
45
163
  * This is the base implementation used by both transaction and query utilities.
@@ -104,6 +222,7 @@ export function buildTxResult(module, subcommand, result, waitForConfirmation) {
104
222
  rawLog: result.rawLog || undefined,
105
223
  gasUsed: String(result.gasUsed),
106
224
  gasWanted: String(result.gasWanted),
225
+ events: result.events,
107
226
  };
108
227
  if (waitForConfirmation) {
109
228
  txResult.confirmed = result.code === 0;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/transactions/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/transactions/utils.ts"],"names":[],"mappings":"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"}