@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.
- package/.github/workflows/publish.yml +4 -2
- package/CLAUDE.md +11 -6
- package/README.md +1 -1
- package/dist/client.d.ts +6 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +77 -21
- package/dist/client.js.map +1 -1
- package/dist/cosmos.d.ts.map +1 -1
- package/dist/cosmos.js +7 -57
- package/dist/cosmos.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -25
- package/dist/index.js.map +1 -1
- package/dist/modules.d.ts +30 -1
- package/dist/modules.d.ts.map +1 -1
- package/dist/modules.js +98 -1
- package/dist/modules.js.map +1 -1
- package/dist/modules.test.js +60 -1
- package/dist/modules.test.js.map +1 -1
- package/dist/queries/auth.d.ts +7 -1
- package/dist/queries/auth.d.ts.map +1 -1
- package/dist/queries/auth.js +18 -45
- package/dist/queries/auth.js.map +1 -1
- package/dist/queries/bank.d.ts +7 -1
- package/dist/queries/bank.d.ts.map +1 -1
- package/dist/queries/bank.js +24 -38
- package/dist/queries/bank.js.map +1 -1
- package/dist/queries/billing.d.ts +7 -1
- package/dist/queries/billing.d.ts.map +1 -1
- package/dist/queries/billing.js +28 -54
- package/dist/queries/billing.js.map +1 -1
- package/dist/queries/distribution.d.ts +7 -1
- package/dist/queries/distribution.d.ts.map +1 -1
- package/dist/queries/distribution.js +18 -36
- package/dist/queries/distribution.js.map +1 -1
- package/dist/queries/gov.d.ts +7 -1
- package/dist/queries/gov.d.ts.map +1 -1
- package/dist/queries/gov.js +24 -41
- package/dist/queries/gov.js.map +1 -1
- package/dist/queries/index.d.ts +2 -1
- package/dist/queries/index.d.ts.map +1 -1
- package/dist/queries/index.js +1 -1
- package/dist/queries/index.js.map +1 -1
- package/dist/queries/sku.d.ts +13 -0
- package/dist/queries/sku.d.ts.map +1 -0
- package/dist/queries/sku.js +60 -0
- package/dist/queries/sku.js.map +1 -0
- package/dist/queries/staking.d.ts +7 -1
- package/dist/queries/staking.d.ts.map +1 -1
- package/dist/queries/staking.js +36 -59
- package/dist/queries/staking.js.map +1 -1
- package/dist/queries/utils.d.ts +60 -10
- package/dist/queries/utils.d.ts.map +1 -1
- package/dist/queries/utils.js +80 -12
- package/dist/queries/utils.js.map +1 -1
- package/dist/queries/utils.test.js +68 -8
- package/dist/queries/utils.test.js.map +1 -1
- package/dist/transactions/bank.d.ts +2 -2
- package/dist/transactions/bank.d.ts.map +1 -1
- package/dist/transactions/bank.js +9 -18
- package/dist/transactions/bank.js.map +1 -1
- package/dist/transactions/billing.d.ts +2 -2
- package/dist/transactions/billing.d.ts.map +1 -1
- package/dist/transactions/billing.js +125 -89
- package/dist/transactions/billing.js.map +1 -1
- package/dist/transactions/distribution.d.ts +2 -2
- package/dist/transactions/distribution.d.ts.map +1 -1
- package/dist/transactions/distribution.js +7 -13
- package/dist/transactions/distribution.js.map +1 -1
- package/dist/transactions/gov.d.ts +2 -2
- package/dist/transactions/gov.d.ts.map +1 -1
- package/dist/transactions/gov.js +29 -20
- package/dist/transactions/gov.js.map +1 -1
- package/dist/transactions/index.d.ts +1 -1
- package/dist/transactions/index.d.ts.map +1 -1
- package/dist/transactions/index.js +1 -1
- package/dist/transactions/index.js.map +1 -1
- package/dist/transactions/manifest.d.ts +2 -2
- package/dist/transactions/manifest.d.ts.map +1 -1
- package/dist/transactions/manifest.js +7 -14
- package/dist/transactions/manifest.js.map +1 -1
- package/dist/transactions/sku.d.ts +7 -0
- package/dist/transactions/sku.d.ts.map +1 -0
- package/dist/transactions/sku.js +184 -0
- package/dist/transactions/sku.js.map +1 -0
- package/dist/transactions/staking.d.ts +2 -2
- package/dist/transactions/staking.d.ts.map +1 -1
- package/dist/transactions/staking.js +7 -13
- package/dist/transactions/staking.js.map +1 -1
- package/dist/transactions/utils.d.ts +65 -1
- package/dist/transactions/utils.d.ts.map +1 -1
- package/dist/transactions/utils.js +123 -2
- package/dist/transactions/utils.js.map +1 -1
- package/dist/transactions/utils.test.js +351 -1
- package/dist/transactions/utils.test.js.map +1 -1
- package/dist/types.d.ts +218 -8
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/wallet/mnemonic.d.ts +1 -0
- package/dist/wallet/mnemonic.d.ts.map +1 -1
- package/dist/wallet/mnemonic.js +34 -13
- package/dist/wallet/mnemonic.js.map +1 -1
- package/package.json +5 -1
- package/src/client.ts +84 -21
- package/src/cosmos.ts +13 -109
- package/src/index.ts +17 -23
- package/src/modules.test.ts +62 -0
- package/src/modules.ts +155 -5
- package/src/queries/auth.ts +35 -74
- package/src/queries/bank.ts +40 -58
- package/src/queries/billing.ts +46 -86
- package/src/queries/distribution.ts +35 -59
- package/src/queries/gov.ts +40 -64
- package/src/queries/index.ts +10 -1
- package/src/queries/sku.ts +85 -0
- package/src/queries/staking.ts +55 -91
- package/src/queries/utils.test.ts +103 -8
- package/src/queries/utils.ts +119 -12
- package/src/transactions/bank.ts +9 -33
- package/src/transactions/billing.ts +155 -141
- package/src/transactions/distribution.ts +7 -29
- package/src/transactions/gov.ts +33 -37
- package/src/transactions/index.ts +1 -1
- package/src/transactions/manifest.ts +7 -29
- package/src/transactions/sku.ts +232 -0
- package/src/transactions/staking.ts +7 -29
- package/src/transactions/utils.test.ts +390 -1
- package/src/transactions/utils.ts +194 -2
- package/src/types.ts +344 -9
- package/src/wallet/mnemonic.ts +41 -17
- package/.claude/settings.local.json +0 -20
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import { cosmos } from '@manifest-network/manifestjs';
|
|
2
|
-
import {
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;
|
|
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
|
|
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[],
|
|
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,
|
|
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"}
|
package/dist/transactions/gov.js
CHANGED
|
@@ -1,7 +1,27 @@
|
|
|
1
1
|
import { cosmos } from '@manifest-network/manifestjs';
|
|
2
2
|
import { ManifestMCPError, ManifestMCPErrorCode } from '../types.js';
|
|
3
|
-
import {
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
101
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,
|
|
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;
|
|
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;
|
|
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
|
|
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[],
|
|
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,
|
|
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 {
|
|
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,
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;
|
|
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
|
|
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[],
|
|
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,
|
|
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 {
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
63
|
+
throwUnsupportedSubcommand('tx', 'staking', subcommand);
|
|
70
64
|
}
|
|
71
65
|
}
|
|
72
66
|
//# sourceMappingURL=staking.js.map
|