@myronkoch/andromeda-mcp-server
Version:
Production-ready MCP server for Andromeda blockchain - v2.0 with 98% functionality, fixed core bugs, and complete ADO ecosystem support
250 lines • 14.5 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.QueryAirdropSchema = exports.ClaimAirdropTokensSchema = exports.DeployMerkleAirdropSchema = exports.ClaimStakingRewardsSchema = exports.UnstakeCW20TokensSchema = exports.StakeCW20TokensSchema = exports.DeployCW20StakingSchema = exports.FinalizeAuctionSchema = exports.PlaceAuctionBidSchema = exports.StartAuctionSchema = exports.DeployAuctionSchema = exports.QueryCW20SaleSchema = exports.CancelCW20SaleSchema = exports.PurchaseCW20TokensSchema = exports.StartCW20SaleSchema = exports.DeployCW20ExchangeSchema = exports.SplitterUpdateSchema = exports.AuctionBidSchema = exports.MarketplaceListSchema = exports.CW721MintSchema = exports.CW20MintSchema = exports.PublishADOSchema = exports.MigrateADOSchema = exports.DeployADOSchema = exports.AppInfoSchema = exports.CreateAppSchema = exports.GraphQLQuerySchema = exports.ADOCodeIdSchema = exports.ADODBQuerySchema = exports.DateRangeSchema = exports.TransferSchema = exports.WalletSchema = exports.ADOExecuteSchema = exports.ADOQuerySchema = exports.AddressSchema = exports.TransactionSchema = exports.BlockHeightSchema = void 0;
const zod_1 = require("zod");
// Input validation schemas
exports.BlockHeightSchema = zod_1.z.object({
height: zod_1.z.number().optional().describe('Block height to query (latest if not specified)')
});
exports.TransactionSchema = zod_1.z.object({
txHash: zod_1.z.string().describe('Transaction hash to query')
});
exports.AddressSchema = zod_1.z.object({
address: zod_1.z.string().describe('Andromeda address to query')
});
exports.ADOQuerySchema = zod_1.z.object({
contractAddress: zod_1.z.string().describe('ADO contract address'),
query: zod_1.z.record(zod_1.z.any()).describe('Query message to send to ADO')
});
exports.ADOExecuteSchema = zod_1.z.object({
contractAddress: zod_1.z.string().describe('ADO contract address'),
msg: zod_1.z.record(zod_1.z.any()).describe('Execute message to send to ADO'),
funds: zod_1.z.array(zod_1.z.object({
denom: zod_1.z.string(),
amount: zod_1.z.string()
})).optional().describe('Funds to send with execution'),
mnemonic: zod_1.z.string().describe('Wallet mnemonic for signing transaction'),
gas: zod_1.z.string().optional().describe('Gas limit (default: auto)')
});
exports.WalletSchema = zod_1.z.object({
mnemonic: zod_1.z.string().describe('BIP-39 mnemonic phrase for wallet generation')
});
exports.TransferSchema = zod_1.z.object({
recipient: zod_1.z.string().describe('Recipient address'),
amount: zod_1.z.string().describe('Amount to transfer'),
denom: zod_1.z.string().default('uandr').describe('Token denomination'),
mnemonic: zod_1.z.string().describe('Sender wallet mnemonic'),
memo: zod_1.z.string().optional().describe('Transaction memo')
});
exports.DateRangeSchema = zod_1.z.object({
startDate: zod_1.z.string().optional().describe('Start date (ISO string)'),
endDate: zod_1.z.string().optional().describe('End date (ISO string)'),
limit: zod_1.z.number().default(100).describe('Maximum number of results')
});
exports.ADODBQuerySchema = zod_1.z.object({
adoType: zod_1.z.string().optional().describe('ADO type to query'),
startAfter: zod_1.z.string().optional().describe('Pagination start after')
});
exports.ADOCodeIdSchema = zod_1.z.object({
adoType: zod_1.z.string().describe('ADO type to get code ID for'),
version: zod_1.z.string().optional().describe('Specific version (latest if not specified)')
});
exports.GraphQLQuerySchema = zod_1.z.object({
query: zod_1.z.string().describe('GraphQL query string'),
variables: zod_1.z.record(zod_1.z.any()).optional().describe('GraphQL variables')
});
exports.CreateAppSchema = zod_1.z.object({
name: zod_1.z.string().describe('Name of the App'),
components: zod_1.z.array(zod_1.z.object({
name: zod_1.z.string(),
ado_type: zod_1.z.string(),
component_type: zod_1.z.record(zod_1.z.any())
})).describe('ADO components to include in the App'),
mnemonic: zod_1.z.string().describe('Wallet mnemonic for signing transaction')
});
exports.AppInfoSchema = zod_1.z.object({
appAddress: zod_1.z.string().describe('App contract address')
});
exports.DeployADOSchema = zod_1.z.object({
adoType: zod_1.z.string().describe('Type of ADO to deploy'),
name: zod_1.z.string().describe('Name for the ADO instance'),
instantiateMsg: zod_1.z.record(zod_1.z.any()).describe('Instantiation message'),
mnemonic: zod_1.z.string().describe('Wallet mnemonic for signing transaction'),
codeId: zod_1.z.number().optional().describe('Code ID (will fetch from ADODB if not provided)')
});
exports.MigrateADOSchema = zod_1.z.object({
contractAddress: zod_1.z.string().describe('ADO contract address to migrate'),
newCodeId: zod_1.z.number().describe('New code ID to migrate to'),
migrateMsg: zod_1.z.record(zod_1.z.any()).describe('Migration message'),
mnemonic: zod_1.z.string().describe('Wallet mnemonic for signing transaction')
});
exports.PublishADOSchema = zod_1.z.object({
codeId: zod_1.z.number().describe('Code ID to publish'),
adoType: zod_1.z.string().describe('ADO type name'),
version: zod_1.z.string().describe('Version number'),
mnemonic: zod_1.z.string().describe('Publisher wallet mnemonic')
});
exports.CW20MintSchema = zod_1.z.object({
contractAddress: zod_1.z.string().describe('CW20 contract address'),
recipient: zod_1.z.string().describe('Recipient address'),
amount: zod_1.z.string().describe('Amount to mint'),
mnemonic: zod_1.z.string().describe('Minter wallet mnemonic')
});
exports.CW721MintSchema = zod_1.z.object({
contractAddress: zod_1.z.string().describe('CW721 contract address'),
tokenId: zod_1.z.string().describe('NFT token ID'),
owner: zod_1.z.string().describe('NFT owner address'),
mnemonic: zod_1.z.string().describe('Minter wallet mnemonic'),
tokenUri: zod_1.z.string().optional().describe('Token metadata URI'),
extension: zod_1.z.record(zod_1.z.any()).optional().describe('Extension metadata'),
});
exports.MarketplaceListSchema = zod_1.z.object({
marketplaceAddress: zod_1.z.string().describe('Marketplace contract address'),
nftContract: zod_1.z.string().describe('NFT contract address'),
tokenId: zod_1.z.string().describe('NFT token ID'),
price: zod_1.z.object({
amount: zod_1.z.string(),
denom: zod_1.z.string()
}).describe('Listing price'),
mnemonic: zod_1.z.string().describe('Seller wallet mnemonic')
});
exports.AuctionBidSchema = zod_1.z.object({
auctionAddress: zod_1.z.string().describe('Auction contract address'),
amount: zod_1.z.string().describe('Bid amount'),
denom: zod_1.z.string().default('uandr').describe('Token denomination'),
mnemonic: zod_1.z.string().describe('Bidder wallet mnemonic')
});
exports.SplitterUpdateSchema = zod_1.z.object({
splitterAddress: zod_1.z.string().describe('Splitter contract address'),
recipients: zod_1.z.array(zod_1.z.object({
address: zod_1.z.string(),
percent: zod_1.z.string()
})).describe('New recipient configuration'),
mnemonic: zod_1.z.string().describe('Admin wallet mnemonic')
});
// CW20 Exchange Schemas
exports.DeployCW20ExchangeSchema = zod_1.z.object({
tokenAddress: zod_1.z.string().describe('CW20 token contract address to create exchange for'),
name: zod_1.z.string().describe('Name for the CW20 Exchange instance'),
mnemonic: zod_1.z.string().describe('Wallet mnemonic for signing transaction')
});
exports.StartCW20SaleSchema = zod_1.z.object({
exchangeAddress: zod_1.z.string().describe('CW20 Exchange contract address'),
tokenAddress: zod_1.z.string().describe('CW20 token contract address'),
amount: zod_1.z.string().describe('Amount of tokens to put up for sale'),
asset: zod_1.z.object({
type: zod_1.z.enum(['native', 'cw20']),
value: zod_1.z.string()
}).describe('Asset that can be used to purchase the tokens'),
exchangeRate: zod_1.z.string().describe('Amount of purchasing asset required for one token'),
mnemonic: zod_1.z.string().describe('Seller wallet mnemonic'),
recipient: zod_1.z.string().optional().describe('Recipient of sale proceeds (defaults to sender)'),
startTime: zod_1.z.number().optional().describe('Sale start time in milliseconds'),
duration: zod_1.z.number().optional().describe('Sale duration in milliseconds')
});
exports.PurchaseCW20TokensSchema = zod_1.z.object({
exchangeAddress: zod_1.z.string().describe('CW20 Exchange contract address'),
purchaseAsset: zod_1.z.object({
type: zod_1.z.enum(['native', 'cw20']),
address: zod_1.z.string(),
amount: zod_1.z.string(),
denom: zod_1.z.string()
}).describe('Asset to use for purchasing tokens'),
mnemonic: zod_1.z.string().describe('Buyer wallet mnemonic'),
recipient: zod_1.z.string().optional().describe('Recipient of purchased tokens (defaults to sender)')
});
exports.CancelCW20SaleSchema = zod_1.z.object({
exchangeAddress: zod_1.z.string().describe('CW20 Exchange contract address'),
asset: zod_1.z.object({
type: zod_1.z.enum(['native', 'cw20']),
value: zod_1.z.string()
}).describe('Asset of the sale to cancel'),
mnemonic: zod_1.z.string().describe('Exchange owner wallet mnemonic')
});
exports.QueryCW20SaleSchema = zod_1.z.object({
exchangeAddress: zod_1.z.string().describe('CW20 Exchange contract address'),
asset: zod_1.z.object({
type: zod_1.z.enum(['native', 'cw20']),
value: zod_1.z.string()
}).describe('Asset of the sale to query')
});
// Auction Schemas
exports.DeployAuctionSchema = zod_1.z.object({
name: zod_1.z.string().describe('Name for the Auction instance'),
authorizedTokenAddresses: zod_1.z.array(zod_1.z.string()).optional().describe('Authorized NFT contract addresses'),
authorizedCw20Address: zod_1.z.string().optional().describe('Authorized CW20 payment token address'),
mnemonic: zod_1.z.string().describe('Wallet mnemonic for signing transaction')
});
exports.StartAuctionSchema = zod_1.z.object({
auctionAddress: zod_1.z.string().describe('Auction contract address'),
tokenId: zod_1.z.string().describe('NFT token ID to auction'),
tokenAddress: zod_1.z.string().describe('NFT contract address'),
startTime: zod_1.z.number().optional().describe('Auction start time (milliseconds since epoch)'),
duration: zod_1.z.number().describe('Auction duration in milliseconds'),
coinDenom: zod_1.z.string().default('uandr').describe('Denomination for bids'),
startingBid: zod_1.z.string().optional().describe('Minimum starting bid amount'),
recipient: zod_1.z.string().optional().describe('Recipient of auction proceeds'),
mnemonic: zod_1.z.string().describe('Wallet mnemonic for signing transaction')
});
exports.PlaceAuctionBidSchema = zod_1.z.object({
auctionAddress: zod_1.z.string().describe('Auction contract address'),
tokenId: zod_1.z.string().describe('NFT token ID being auctioned'),
tokenAddress: zod_1.z.string().describe('NFT contract address'),
bidAmount: zod_1.z.string().describe('Bid amount'),
denom: zod_1.z.string().default('uandr').describe('Token denomination'),
mnemonic: zod_1.z.string().describe('Bidder wallet mnemonic')
});
exports.FinalizeAuctionSchema = zod_1.z.object({
auctionAddress: zod_1.z.string().describe('Auction contract address'),
tokenId: zod_1.z.string().describe('NFT token ID being auctioned'),
tokenAddress: zod_1.z.string().describe('NFT contract address'),
mnemonic: zod_1.z.string().describe('Wallet mnemonic for signing transaction')
});
// CW20-Staking Schemas (DeFi-focused)
exports.DeployCW20StakingSchema = zod_1.z.object({
name: zod_1.z.string().describe('Name for the CW20-Staking instance'),
stakingToken: zod_1.z.string().describe('CW20 token contract address for staking'),
rewardToken: zod_1.z.string().describe('CW20 token contract address for rewards'),
rewardAllocation: zod_1.z.string().describe('Reward allocation for the reward token'),
mnemonic: zod_1.z.string().describe('Wallet mnemonic for signing transaction'),
unbondingPeriod: zod_1.z.number().optional().describe('Unbonding period in seconds (optional)')
});
exports.StakeCW20TokensSchema = zod_1.z.object({
stakingAddress: zod_1.z.string().describe('CW20-Staking contract address'),
tokenAddress: zod_1.z.string().describe('CW20 token contract address to stake'),
amount: zod_1.z.string().describe('Amount of tokens to stake'),
mnemonic: zod_1.z.string().describe('Staker wallet mnemonic')
});
exports.UnstakeCW20TokensSchema = zod_1.z.object({
stakingAddress: zod_1.z.string().describe('CW20-Staking contract address'),
amount: zod_1.z.string().describe('Amount of tokens to unstake'),
mnemonic: zod_1.z.string().describe('Staker wallet mnemonic')
});
exports.ClaimStakingRewardsSchema = zod_1.z.object({
stakingAddress: zod_1.z.string().describe('CW20-Staking contract address'),
mnemonic: zod_1.z.string().describe('Staker wallet mnemonic')
});
// Merkle Airdrop Schemas
exports.DeployMerkleAirdropSchema = zod_1.z.object({
name: zod_1.z.string().describe('Name for the Merkle Airdrop instance'),
asset: zod_1.z.object({
type: zod_1.z.enum(['native', 'cw20']),
value: zod_1.z.string()
}).describe('Asset to distribute in the airdrop'),
merkleRoot: zod_1.z.string().describe('Merkle root hash for the airdrop tree'),
totalAmount: zod_1.z.string().describe('Total amount to distribute'),
mnemonic: zod_1.z.string().describe('Wallet mnemonic for signing transaction'),
startTime: zod_1.z.number().optional().describe('Airdrop start time in milliseconds'),
endTime: zod_1.z.number().optional().describe('Airdrop end time in milliseconds')
});
exports.ClaimAirdropTokensSchema = zod_1.z.object({
airdropAddress: zod_1.z.string().describe('Merkle Airdrop contract address'),
amount: zod_1.z.string().describe('Amount to claim'),
proof: zod_1.z.array(zod_1.z.string()).describe('Merkle proof for the claim'),
mnemonic: zod_1.z.string().describe('Claimer wallet mnemonic')
});
exports.QueryAirdropSchema = zod_1.z.object({
airdropAddress: zod_1.z.string().describe('Merkle Airdrop contract address'),
address: zod_1.z.string().describe('Address to check claim status for')
});
//# sourceMappingURL=validation.js.map