mcpField
M
mesh-core-cst

mesh-core-cst

github.com/meshjs开发243 次安装36 周前更新
代码仓库

关于 mesh-core-cst

用于使用 `@meshsdk/core-cst` 的技能;该 TypeScript 包提供底层 Cardano 工具,面向直接处理交易序列化、地址、Plutus 数据和签名的开发者。

主要功能

  1. 01将交易序列化为 CBOR 或反向解析
  2. 02解析哈希、地址和密钥
  3. 03签署并验证 CIP-8 消息
  4. 04为 Plutus 脚本应用参数
  5. 05转换不同格式的 Plutus 数据
  6. 06解析和转换 Cardano 地址

适用场景

  1. 01序列化 Cardano 交易主体
  2. 02验证 CIP-8 签名消息
  3. 03为 Plutus 脚本设置参数
  4. 04在 JSON 与 CBOR 间转换 Plutus 数据

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/meshjs/skills --skill mesh-core-cst

安装后在 Claude Code 中输入/mesh-core-cst确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

CORE-CST.md
PATTERNS.md
README.md
TROUBLESHOOTING.md

详细介绍

Mesh SDK Core CST 技能

使用 @meshsdk/core-cst 的 AI 辅助 Cardano 底层工具。

软件包信息

npm install @meshsdk/core-cst
# or
npm install @meshsdk/core  # includes core-cst + transaction + wallet + provider

什么是 core-cst?

@meshsdk/core-cst 提供底层工具,用于:

  • 序列化 - 将交易转换为 CBOR,或从 CBOR 转换回来
  • 解析器 - 从各种格式中提取哈希、地址和密钥
  • 消息签名 - CIP-8 COSE 签名与验证
  • Plutus 工具 - 为脚本应用参数、规范化编码
  • 数据转换 - Plutus 数据 ↔ JSON ↔ CBOR
  • 地址工具 - 解析、序列化和转换地址格式

快速参考

解析器
import {
  resolveDataHash,
  resolvePaymentKeyHash,
  resolveStakeKeyHash,
  resolveRewardAddress,
  resolvePlutusScriptAddress,
  resolvePlutusScriptHash,
  resolveNativeScriptAddress,
  resolveNativeScriptHash,
  resolvePoolId,
  resolvePrivateKey,
  resolveTxHash,
  resolveScriptRef,
  resolveScriptHashDRepId,
  resolveEd25519KeyHash,
} from '@meshsdk/core-cst';

// Get data hash from Plutus data
const hash = resolveDataHash({ constructor: 0, fields: [] });

// Get payment key hash from address
const keyHash = resolvePaymentKeyHash('addr_test1qp...');

// Get stake/reward address from base address
const rewardAddr = resolveRewardAddress('addr_test1qp...');

// Get script address from Plutus script
const scriptAddr = resolvePlutusScriptAddress(
  { code: '59...', version: 'V2' },
  0  // networkId
);

// Get tx hash from tx CBOR
const txHash = resolveTxHash(txCborHex);
消息签名(CIP-8)
import { signData, checkSignature } from '@meshsdk/core-cst';

// Sign data
const signature = signData('Hello Cardano!', signer);
// { key: 'a401...', signature: '845846...' }

// Verify signature
const isValid = await checkSignature(
  'Hello Cardano!',
  signature,
  'addr_test1qp...'  // optional address verification
);
Plutus 工具
import { applyParamsToScript, normalizePlutusScript } from '@meshsdk/core-cst';

// Apply parameters to parameterized script
const appliedScript = applyParamsToScript(
  rawScriptHex,
  [{ constructor: 0, fields: [{ bytes: 'abc123' }] }],
  'Mesh'  // or 'JSON' or 'CBOR'
);

// Normalize script encoding
const normalized = normalizePlutusScript(scriptHex, 'DoubleCBOR');
数据转换
import {
  toPlutusData,
  fromBuilderToPlutusData,
  fromPlutusDataToJson,
  parseDatumCbor,
} from '@meshsdk/core-cst';

// Mesh Data → PlutusData
const plutusData = toPlutusData({ constructor: 0, fields: ['hello', 42] });

// BuilderData → PlutusData (handles Mesh/JSON/CBOR)
const data = fromBuilderToPlutusData({ type: 'Mesh', content: myData });

// PlutusData → JSON
const json = fromPlutusDataToJson(plutusData);

// Parse datum CBOR to JSON
const datum = parseDatumCbor<MyDatumType>(datumCborHex);
地址工具
import {
  deserializeBech32Address,
  serialzeAddress,
  scriptHashToBech32,
  addrBech32ToPlutusDataHex,
} from '@meshsdk/core-cst';

// Deserialize address to components
const { pubKeyHash, scriptHash, stakeCredentialHash } =
  deserializeBech32Address('addr_test1qp...');

// Script hash to bech32 address
const addr = scriptHashToBech32(scriptHash, stakeKeyHash, 0);

// Address to Plutus data (for on-chain use)
const addrPlutusHex = addrBech32ToPlutusDataHex('addr_test1qp...');
CardanoSDKSerializer
import { CardanoSDKSerializer } from '@meshsdk/core-cst';

const serializer = new CardanoSDKSerializer(protocolParams);

// Serialize transaction body
const txCbor = serializer.serializeTxBody(meshTxBuilderBody);

// Add signing keys to transaction
const signedTx = serializer.addSigningKeys(txCbor, [privateKeyHex]);

// Serialize data
const dataCbor = serializer.serializeData({ type: 'Mesh', content: myData });

// Serialize address from components
const addr = serializer.serializeAddress({
  pubKeyHash: '...',
  stakeCredentialHash: '...',
}, 0);

文件

模块导出

模块用途
resolvers哈希/地址解析函数
serializerCardanoSDKSerializer 类
message-signingCIP-8 COSE 工具
plutus-tools脚本参数化
utils数据、地址和编码工具
types从 @cardano-sdk/core 重新导出

重要说明

  1. 这是一个底层软件包 - 大多数用户应改用 @meshsdk/transaction
  2. Mesh 内部使用 - 为 MeshTxBuilder 序列化提供支持
  3. 需要了解 Cardano 基元 - CBOR、Plutus 数据和地址
  4. 重新导出 cardano-sdk - 可通过 Cardano、Serialization、Crypto 导出项访问

评论

支持 Markdown