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

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 (131) hide show
  1. package/.github/workflows/publish.yml +4 -2
  2. package/CLAUDE.md +11 -6
  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 +98 -1
  17. package/dist/modules.js.map +1 -1
  18. package/dist/modules.test.js +60 -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/sku.d.ts +13 -0
  45. package/dist/queries/sku.d.ts.map +1 -0
  46. package/dist/queries/sku.js +60 -0
  47. package/dist/queries/sku.js.map +1 -0
  48. package/dist/queries/staking.d.ts +7 -1
  49. package/dist/queries/staking.d.ts.map +1 -1
  50. package/dist/queries/staking.js +36 -59
  51. package/dist/queries/staking.js.map +1 -1
  52. package/dist/queries/utils.d.ts +60 -10
  53. package/dist/queries/utils.d.ts.map +1 -1
  54. package/dist/queries/utils.js +80 -12
  55. package/dist/queries/utils.js.map +1 -1
  56. package/dist/queries/utils.test.js +68 -8
  57. package/dist/queries/utils.test.js.map +1 -1
  58. package/dist/transactions/bank.d.ts +2 -2
  59. package/dist/transactions/bank.d.ts.map +1 -1
  60. package/dist/transactions/bank.js +9 -18
  61. package/dist/transactions/bank.js.map +1 -1
  62. package/dist/transactions/billing.d.ts +2 -2
  63. package/dist/transactions/billing.d.ts.map +1 -1
  64. package/dist/transactions/billing.js +125 -89
  65. package/dist/transactions/billing.js.map +1 -1
  66. package/dist/transactions/distribution.d.ts +2 -2
  67. package/dist/transactions/distribution.d.ts.map +1 -1
  68. package/dist/transactions/distribution.js +7 -13
  69. package/dist/transactions/distribution.js.map +1 -1
  70. package/dist/transactions/gov.d.ts +2 -2
  71. package/dist/transactions/gov.d.ts.map +1 -1
  72. package/dist/transactions/gov.js +29 -20
  73. package/dist/transactions/gov.js.map +1 -1
  74. package/dist/transactions/index.d.ts +1 -1
  75. package/dist/transactions/index.d.ts.map +1 -1
  76. package/dist/transactions/index.js +1 -1
  77. package/dist/transactions/index.js.map +1 -1
  78. package/dist/transactions/manifest.d.ts +2 -2
  79. package/dist/transactions/manifest.d.ts.map +1 -1
  80. package/dist/transactions/manifest.js +7 -14
  81. package/dist/transactions/manifest.js.map +1 -1
  82. package/dist/transactions/sku.d.ts +7 -0
  83. package/dist/transactions/sku.d.ts.map +1 -0
  84. package/dist/transactions/sku.js +184 -0
  85. package/dist/transactions/sku.js.map +1 -0
  86. package/dist/transactions/staking.d.ts +2 -2
  87. package/dist/transactions/staking.d.ts.map +1 -1
  88. package/dist/transactions/staking.js +7 -13
  89. package/dist/transactions/staking.js.map +1 -1
  90. package/dist/transactions/utils.d.ts +65 -1
  91. package/dist/transactions/utils.d.ts.map +1 -1
  92. package/dist/transactions/utils.js +123 -2
  93. package/dist/transactions/utils.js.map +1 -1
  94. package/dist/transactions/utils.test.js +351 -1
  95. package/dist/transactions/utils.test.js.map +1 -1
  96. package/dist/types.d.ts +218 -8
  97. package/dist/types.d.ts.map +1 -1
  98. package/dist/types.js.map +1 -1
  99. package/dist/wallet/mnemonic.d.ts +1 -0
  100. package/dist/wallet/mnemonic.d.ts.map +1 -1
  101. package/dist/wallet/mnemonic.js +34 -13
  102. package/dist/wallet/mnemonic.js.map +1 -1
  103. package/package.json +5 -1
  104. package/src/client.ts +84 -21
  105. package/src/cosmos.ts +13 -109
  106. package/src/index.ts +17 -23
  107. package/src/modules.test.ts +62 -0
  108. package/src/modules.ts +155 -5
  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/sku.ts +85 -0
  116. package/src/queries/staking.ts +55 -91
  117. package/src/queries/utils.test.ts +103 -8
  118. package/src/queries/utils.ts +119 -12
  119. package/src/transactions/bank.ts +9 -33
  120. package/src/transactions/billing.ts +155 -141
  121. package/src/transactions/distribution.ts +7 -29
  122. package/src/transactions/gov.ts +33 -37
  123. package/src/transactions/index.ts +1 -1
  124. package/src/transactions/manifest.ts +7 -29
  125. package/src/transactions/sku.ts +232 -0
  126. package/src/transactions/staking.ts +7 -29
  127. package/src/transactions/utils.test.ts +390 -1
  128. package/src/transactions/utils.ts +194 -2
  129. package/src/types.ts +344 -9
  130. package/src/wallet/mnemonic.ts +41 -17
  131. package/.claude/settings.local.json +0 -20
@@ -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 { MsgWithdrawDelegatorReward, MsgSetWithdrawAddress, MsgFundCommunityPool } = cosmos.distribution.v1beta1;
5
5
  /**
6
6
  * Route distribution transaction to appropriate handler
7
7
  */
8
- export async function routeDistributionTransaction(client, senderAddress, subcommand, args, _config, waitForConfirmation) {
8
+ export async function routeDistributionTransaction(client, senderAddress, subcommand, args, waitForConfirmation) {
9
9
  validateArgsLength(args, 'distribution transaction');
10
10
  switch (subcommand) {
11
11
  case 'withdraw-rewards': {
12
- if (args.length < 1) {
13
- throw new ManifestMCPError(ManifestMCPErrorCode.TX_FAILED, 'withdraw-rewards requires validator-address argument');
14
- }
12
+ requireArgs(args, 1, ['validator-address'], 'distribution withdraw-rewards');
15
13
  const [validatorAddress] = args;
16
14
  validateAddress(validatorAddress, 'validator address');
17
15
  const msg = {
@@ -25,9 +23,7 @@ export async function routeDistributionTransaction(client, senderAddress, subcom
25
23
  return buildTxResult('distribution', 'withdraw-rewards', result, waitForConfirmation);
26
24
  }
27
25
  case 'set-withdraw-addr': {
28
- if (args.length < 1) {
29
- throw new ManifestMCPError(ManifestMCPErrorCode.TX_FAILED, 'set-withdraw-addr requires withdraw-address argument');
30
- }
26
+ requireArgs(args, 1, ['withdraw-address'], 'distribution set-withdraw-addr');
31
27
  const [withdrawAddress] = args;
32
28
  validateAddress(withdrawAddress, 'withdraw address');
33
29
  const msg = {
@@ -41,9 +37,7 @@ export async function routeDistributionTransaction(client, senderAddress, subcom
41
37
  return buildTxResult('distribution', 'set-withdraw-addr', result, waitForConfirmation);
42
38
  }
43
39
  case 'fund-community-pool': {
44
- if (args.length < 1) {
45
- throw new ManifestMCPError(ManifestMCPErrorCode.TX_FAILED, 'fund-community-pool requires amount argument');
46
- }
40
+ requireArgs(args, 1, ['amount'], 'distribution fund-community-pool');
47
41
  const [amountStr] = args;
48
42
  const { amount, denom } = parseAmount(amountStr);
49
43
  const msg = {
@@ -57,7 +51,7 @@ export async function routeDistributionTransaction(client, senderAddress, subcom
57
51
  return buildTxResult('distribution', 'fund-community-pool', result, waitForConfirmation);
58
52
  }
59
53
  default:
60
- throw new ManifestMCPError(ManifestMCPErrorCode.UNSUPPORTED_TX, `Unsupported distribution transaction subcommand: ${subcommand}`, { availableSubcommands: ['withdraw-rewards', 'set-withdraw-addr', 'fund-community-pool'] });
54
+ throwUnsupportedSubcommand('tx', 'distribution', subcommand);
61
55
  }
62
56
  }
63
57
  //# sourceMappingURL=distribution.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"distribution.js","sourceRoot":"","sources":["../../src/transactions/distribution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"distribution.js","sourceRoot":"","sources":["../../src/transactions/distribution.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 gov transaction to appropriate handler
5
5
  */
6
- export declare function routeGovTransaction(client: SigningStargateClient, senderAddress: string, subcommand: string, args: string[], _config: ManifestMCPConfig, waitForConfirmation: boolean): Promise<CosmosTxResult>;
6
+ export declare function routeGovTransaction(client: SigningStargateClient, senderAddress: string, subcommand: string, args: string[], waitForConfirmation: boolean): Promise<CosmosTxResult>;
7
7
  //# sourceMappingURL=gov.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gov.d.ts","sourceRoot":"","sources":["../../src/transactions/gov.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAA0C,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AA8DxG;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,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,CAwHzB"}
1
+ {"version":3,"file":"gov.d.ts","sourceRoot":"","sources":["../../src/transactions/gov.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAA0C,cAAc,EAAE,MAAM,aAAa,CAAC;AAsFrF;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,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,CA6FzB"}
@@ -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)
@@ -97,9 +109,8 @@ export async function routeGovTransaction(client, senderAddress, subcommand, arg
97
109
  });
98
110
  // Validate that weights sum to exactly 1.0 (10^18 in fixed-point)
99
111
  const totalWeight = options.reduce((sum, opt) => sum + BigInt(opt.weight), BigInt(0));
100
- const oneInFixed18 = BigInt('1000000000000000000'); // 10^18
101
- if (totalWeight !== oneInFixed18) {
102
- throw new ManifestMCPError(ManifestMCPErrorCode.TX_FAILED, `Weighted vote options must sum to exactly 1.0. Got ${Number(totalWeight) / 1e18} (${options.map(o => o.weight).join(' + ')} = ${totalWeight})`);
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})`);
103
114
  }
104
115
  const msg = {
105
116
  typeUrl: '/cosmos.gov.v1.MsgVoteWeighted',
@@ -114,9 +125,7 @@ export async function routeGovTransaction(client, senderAddress, subcommand, arg
114
125
  return buildTxResult('gov', 'weighted-vote', result, waitForConfirmation);
115
126
  }
116
127
  case 'deposit': {
117
- if (args.length < 2) {
118
- throw new ManifestMCPError(ManifestMCPErrorCode.TX_FAILED, 'deposit requires proposal-id and amount arguments');
119
- }
128
+ requireArgs(args, 2, ['proposal-id', 'amount'], 'gov deposit');
120
129
  const [proposalIdStr, amountStr] = args;
121
130
  const proposalId = parseBigInt(proposalIdStr, 'proposal-id');
122
131
  const { amount, denom } = parseAmount(amountStr);
@@ -132,7 +141,7 @@ export async function routeGovTransaction(client, senderAddress, subcommand, arg
132
141
  return buildTxResult('gov', 'deposit', result, waitForConfirmation);
133
142
  }
134
143
  default:
135
- throw new ManifestMCPError(ManifestMCPErrorCode.UNSUPPORTED_TX, `Unsupported gov transaction subcommand: ${subcommand}`, { availableSubcommands: ['vote', 'weighted-vote', 'deposit'] });
144
+ throwUnsupportedSubcommand('tx', 'gov', subcommand);
136
145
  }
137
146
  }
138
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"}
@@ -0,0 +1,7 @@
1
+ import { SigningStargateClient } from '@cosmjs/stargate';
2
+ import { CosmosTxResult } from '../types.js';
3
+ /**
4
+ * Route SKU transaction to appropriate handler
5
+ */
6
+ export declare function routeSkuTransaction(client: SigningStargateClient, senderAddress: string, subcommand: string, args: string[], waitForConfirmation: boolean): Promise<CosmosTxResult>;
7
+ //# sourceMappingURL=sku.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sku.d.ts","sourceRoot":"","sources":["../../src/transactions/sku.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,cAAc,EAA0C,MAAM,aAAa,CAAC;AA0CrF;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,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,CAkLzB"}
@@ -0,0 +1,184 @@
1
+ import { liftedinit } from '@manifest-network/manifestjs';
2
+ import { ManifestMCPError, ManifestMCPErrorCode } from '../types.js';
3
+ import { parseAmount, buildTxResult, validateAddress, validateArgsLength, extractFlag, filterConsumedArgs, requireArgs, parseHexBytes, MAX_META_HASH_BYTES } from './utils.js';
4
+ import { throwUnsupportedSubcommand } from '../modules.js';
5
+ const { MsgCreateProvider, MsgUpdateProvider, MsgDeactivateProvider, MsgCreateSKU, MsgUpdateSKU, MsgDeactivateSKU, MsgUpdateParams, Unit, } = liftedinit.sku.v1;
6
+ /**
7
+ * Parse a unit string to the Unit enum value.
8
+ * Accepts 'per-hour' or 'per-day'.
9
+ */
10
+ function parseUnit(value) {
11
+ switch (value.toLowerCase()) {
12
+ case 'per-hour':
13
+ return Unit.UNIT_PER_HOUR;
14
+ case 'per-day':
15
+ return Unit.UNIT_PER_DAY;
16
+ default:
17
+ throw new ManifestMCPError(ManifestMCPErrorCode.TX_FAILED, `Invalid unit: "${value}". Expected "per-hour" or "per-day".`);
18
+ }
19
+ }
20
+ /**
21
+ * Parse a boolean string ('true' or 'false').
22
+ */
23
+ function parseBooleanString(value, fieldName) {
24
+ const lower = value.toLowerCase();
25
+ if (lower === 'true')
26
+ return true;
27
+ if (lower === 'false')
28
+ return false;
29
+ throw new ManifestMCPError(ManifestMCPErrorCode.TX_FAILED, `Invalid ${fieldName}: "${value}". Expected "true" or "false".`);
30
+ }
31
+ /**
32
+ * Route SKU transaction to appropriate handler
33
+ */
34
+ export async function routeSkuTransaction(client, senderAddress, subcommand, args, waitForConfirmation) {
35
+ validateArgsLength(args, 'sku transaction');
36
+ switch (subcommand) {
37
+ case 'create-provider': {
38
+ // Parse optional --meta-hash flag
39
+ const { value: metaHashHex, consumedIndices } = extractFlag(args, '--meta-hash', 'sku create-provider');
40
+ const metaHash = metaHashHex ? parseHexBytes(metaHashHex, 'meta-hash', MAX_META_HASH_BYTES) : new Uint8Array();
41
+ const positionalArgs = filterConsumedArgs(args, consumedIndices);
42
+ requireArgs(positionalArgs, 3, ['address', 'payout-address', 'api-url'], 'sku create-provider');
43
+ const [address, payoutAddress, apiUrl] = positionalArgs;
44
+ validateAddress(address, 'address');
45
+ validateAddress(payoutAddress, 'payout address');
46
+ const msg = {
47
+ typeUrl: '/liftedinit.sku.v1.MsgCreateProvider',
48
+ value: MsgCreateProvider.fromPartial({
49
+ authority: senderAddress,
50
+ address,
51
+ payoutAddress,
52
+ metaHash,
53
+ apiUrl,
54
+ }),
55
+ };
56
+ const result = await client.signAndBroadcast(senderAddress, [msg], 'auto');
57
+ return buildTxResult('sku', 'create-provider', result, waitForConfirmation);
58
+ }
59
+ case 'update-provider': {
60
+ // Parse optional flags
61
+ const metaHashFlag = extractFlag(args, '--meta-hash', 'sku update-provider');
62
+ const activeFlag = extractFlag(args, '--active', 'sku update-provider');
63
+ const allConsumed = [...metaHashFlag.consumedIndices, ...activeFlag.consumedIndices];
64
+ const positionalArgs = filterConsumedArgs(args, allConsumed);
65
+ requireArgs(positionalArgs, 4, ['provider-uuid', 'address', 'payout-address', 'api-url'], 'sku update-provider');
66
+ const [uuid, address, payoutAddress, apiUrl] = positionalArgs;
67
+ validateAddress(address, 'address');
68
+ validateAddress(payoutAddress, 'payout address');
69
+ const metaHash = metaHashFlag.value ? parseHexBytes(metaHashFlag.value, 'meta-hash', MAX_META_HASH_BYTES) : new Uint8Array();
70
+ const active = activeFlag.value ? parseBooleanString(activeFlag.value, 'active') : true;
71
+ const msg = {
72
+ typeUrl: '/liftedinit.sku.v1.MsgUpdateProvider',
73
+ value: MsgUpdateProvider.fromPartial({
74
+ authority: senderAddress,
75
+ uuid,
76
+ address,
77
+ payoutAddress,
78
+ metaHash,
79
+ active,
80
+ apiUrl,
81
+ }),
82
+ };
83
+ const result = await client.signAndBroadcast(senderAddress, [msg], 'auto');
84
+ return buildTxResult('sku', 'update-provider', result, waitForConfirmation);
85
+ }
86
+ case 'deactivate-provider': {
87
+ requireArgs(args, 1, ['provider-uuid'], 'sku deactivate-provider');
88
+ const [uuid] = args;
89
+ const msg = {
90
+ typeUrl: '/liftedinit.sku.v1.MsgDeactivateProvider',
91
+ value: MsgDeactivateProvider.fromPartial({
92
+ authority: senderAddress,
93
+ uuid,
94
+ }),
95
+ };
96
+ const result = await client.signAndBroadcast(senderAddress, [msg], 'auto');
97
+ return buildTxResult('sku', 'deactivate-provider', result, waitForConfirmation);
98
+ }
99
+ case 'create-sku': {
100
+ // Parse optional --meta-hash flag
101
+ const { value: metaHashHex, consumedIndices } = extractFlag(args, '--meta-hash', 'sku create-sku');
102
+ const metaHash = metaHashHex ? parseHexBytes(metaHashHex, 'meta-hash', MAX_META_HASH_BYTES) : new Uint8Array();
103
+ const positionalArgs = filterConsumedArgs(args, consumedIndices);
104
+ requireArgs(positionalArgs, 4, ['provider-uuid', 'name', 'unit', 'base-price'], 'sku create-sku');
105
+ const [providerUuid, name, unitStr, basePriceStr] = positionalArgs;
106
+ const unit = parseUnit(unitStr);
107
+ const { amount, denom } = parseAmount(basePriceStr);
108
+ const msg = {
109
+ typeUrl: '/liftedinit.sku.v1.MsgCreateSKU',
110
+ value: MsgCreateSKU.fromPartial({
111
+ authority: senderAddress,
112
+ providerUuid,
113
+ name,
114
+ unit,
115
+ basePrice: { denom, amount },
116
+ metaHash,
117
+ }),
118
+ };
119
+ const result = await client.signAndBroadcast(senderAddress, [msg], 'auto');
120
+ return buildTxResult('sku', 'create-sku', result, waitForConfirmation);
121
+ }
122
+ case 'update-sku': {
123
+ // Parse optional flags
124
+ const metaHashFlag = extractFlag(args, '--meta-hash', 'sku update-sku');
125
+ const activeFlag = extractFlag(args, '--active', 'sku update-sku');
126
+ const allConsumed = [...metaHashFlag.consumedIndices, ...activeFlag.consumedIndices];
127
+ const positionalArgs = filterConsumedArgs(args, allConsumed);
128
+ requireArgs(positionalArgs, 5, ['sku-uuid', 'provider-uuid', 'name', 'unit', 'base-price'], 'sku update-sku');
129
+ const [uuid, providerUuid, name, unitStr, basePriceStr] = positionalArgs;
130
+ const unit = parseUnit(unitStr);
131
+ const { amount, denom } = parseAmount(basePriceStr);
132
+ const metaHash = metaHashFlag.value ? parseHexBytes(metaHashFlag.value, 'meta-hash', MAX_META_HASH_BYTES) : new Uint8Array();
133
+ const active = activeFlag.value ? parseBooleanString(activeFlag.value, 'active') : true;
134
+ const msg = {
135
+ typeUrl: '/liftedinit.sku.v1.MsgUpdateSKU',
136
+ value: MsgUpdateSKU.fromPartial({
137
+ authority: senderAddress,
138
+ uuid,
139
+ providerUuid,
140
+ name,
141
+ unit,
142
+ basePrice: { denom, amount },
143
+ metaHash,
144
+ active,
145
+ }),
146
+ };
147
+ const result = await client.signAndBroadcast(senderAddress, [msg], 'auto');
148
+ return buildTxResult('sku', 'update-sku', result, waitForConfirmation);
149
+ }
150
+ case 'deactivate-sku': {
151
+ requireArgs(args, 1, ['sku-uuid'], 'sku deactivate-sku');
152
+ const [uuid] = args;
153
+ const msg = {
154
+ typeUrl: '/liftedinit.sku.v1.MsgDeactivateSKU',
155
+ value: MsgDeactivateSKU.fromPartial({
156
+ authority: senderAddress,
157
+ uuid,
158
+ }),
159
+ };
160
+ const result = await client.signAndBroadcast(senderAddress, [msg], 'auto');
161
+ return buildTxResult('sku', 'deactivate-sku', result, waitForConfirmation);
162
+ }
163
+ case 'update-params': {
164
+ requireArgs(args, 1, ['allowed-address'], 'sku update-params');
165
+ for (const addr of args) {
166
+ validateAddress(addr, 'allowed address');
167
+ }
168
+ const msg = {
169
+ typeUrl: '/liftedinit.sku.v1.MsgUpdateParams',
170
+ value: MsgUpdateParams.fromPartial({
171
+ authority: senderAddress,
172
+ params: {
173
+ allowedList: args,
174
+ },
175
+ }),
176
+ };
177
+ const result = await client.signAndBroadcast(senderAddress, [msg], 'auto');
178
+ return buildTxResult('sku', 'update-params', result, waitForConfirmation);
179
+ }
180
+ default:
181
+ throwUnsupportedSubcommand('tx', 'sku', subcommand);
182
+ }
183
+ }
184
+ //# sourceMappingURL=sku.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sku.js","sourceRoot":"","sources":["../../src/transactions/sku.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 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