mesh-transaction
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseMesh SDK Transaction Skill
Mesh SDK 交易开发指南
AI-assisted Cardano transaction building using from .
MeshTxBuilder@meshsdk/transaction借助中的实现AI辅助的Cardano交易构建。
@meshsdk/transactionMeshTxBuilderPackage Info
包信息
bash
npm install @meshsdk/transactionbash
npm install @meshsdk/transactionor
或
npm install @meshsdk/core # includes transaction + wallet + provider
undefinednpm install @meshsdk/core # 包含交易、钱包与提供器功能
undefinedQuick Reference
快速参考
| Task | Method Chain |
|---|---|
| Send ADA | |
| Mint tokens (Plutus) | |
| Mint tokens (Native) | |
| Script spending | |
| Stake delegation | |
| Withdraw rewards | |
| Governance vote | |
| DRep registration | |
| 任务 | 方法调用链 |
|---|---|
| 发送ADA | |
| 铸造代币(Plutus) | |
| 铸造代币(原生) | |
| 脚本消费 | |
| 质押委托 | |
| 提取奖励 | |
| 治理投票 | |
| DRep注册 | |
Constructor Options
构造函数选项
typescript
import { MeshTxBuilder } from '@meshsdk/transaction';
const txBuilder = new MeshTxBuilder({
fetcher?: IFetcher, // For querying UTxOs (e.g., BlockfrostProvider)
submitter?: ISubmitter, // For submitting transactions
evaluator?: IEvaluator, // For script execution cost estimation
serializer?: IMeshTxSerializer, // Custom serializer
selector?: IInputSelector, // Custom coin selection
isHydra?: boolean, // Hydra L2 mode (zero fees)
params?: Partial<Protocol>, // Custom protocol parameters
verbose?: boolean, // Enable logging
});typescript
import { MeshTxBuilder } from '@meshsdk/transaction';
const txBuilder = new MeshTxBuilder({
fetcher?: IFetcher, // 用于查询UTXO(例如BlockfrostProvider)
submitter?: ISubmitter, // 用于提交交易
evaluator?: IEvaluator, // 用于估算脚本执行成本
serializer?: IMeshTxSerializer, // 自定义序列化器
selector?: IInputSelector, // 自定义UTXO选择器
isHydra?: boolean, // Hydra二层网络模式(零手续费)
params?: Partial<Protocol>, // 自定义协议参数
verbose?: boolean, // 启用日志输出
});Completion Methods
完成方法
| Method | Async | Balanced | Use Case |
|---|---|---|---|
| Yes | Yes | Production - auto coin selection, fee calculation |
| No | No | Testing - requires manual inputs/fee |
| No | No | Partial build for inspection |
| No | N/A | Add signatures after complete() |
| 方法 | 是否异步 | 是否自动平衡 | 使用场景 |
|---|---|---|---|
| 是 | 是 | 生产环境 - 自动UTXO选择、手续费计算 |
| 否 | 否 | 测试环境 - 需要手动输入UTXO与手续费 |
| 否 | 否 | 用于检查的部分交易构建 |
| 否 | 不适用 | 在complete()之后添加签名 |
Files
相关文件
- TRANSACTION.md - Complete API reference
- PATTERNS.md - Common transaction recipes
- TROUBLESHOOTING.md - Error solutions
- TRANSACTION.md - 完整API参考文档
- PATTERNS.md - 常见交易实现示例
- TROUBLESHOOTING.md - 错误解决方案
Key Concepts
核心概念
Fluent API
链式API
All methods return for chaining:
thistypescript
txBuilder
.txIn(hash, index)
.txOut(address, amount)
.changeAddress(addr)
.complete();所有方法均返回以支持链式调用:
thistypescript
txBuilder
.txIn(hash, index)
.txOut(address, amount)
.changeAddress(addr)
.complete();Script Versions
脚本版本
- - Set before
spendingPlutusScriptV1/V2/V3()for script inputstxIn() - - Set before
mintPlutusScriptV1/V2/V3()for Plutus mintingmint() - - Set before
withdrawalPlutusScriptV1/V2/V3()for script withdrawalswithdrawal() - - Set before
votePlutusScriptV1/V2/V3()for script votesvote()
- - 在
spendingPlutusScriptV1/V2/V3()之前调用,用于指定脚本输入txIn() - - 在
mintPlutusScriptV1/V2/V3()之前调用,用于Plutus脚本铸造mint() - - 在
withdrawalPlutusScriptV1/V2/V3()之前调用,用于脚本提取奖励withdrawal() - - 在
votePlutusScriptV1/V2/V3()之前调用,用于脚本投票vote()
Data Types
数据类型
Datum and redeemer values accept three formats:
- (default) - Mesh Data type
"Mesh" - - Raw constructor format
"JSON" - - Hex-encoded CBOR string
"CBOR"
Datum与Redeemer支持三种格式:
- (默认)- Mesh数据类型
"Mesh" - - 原始构造格式
"JSON" - - 十六进制编码的CBOR字符串
"CBOR"
Reference Scripts
引用脚本
Use methods to reference scripts stored on-chain instead of including them in the transaction (reduces tx size/fees).
*TxInReference()使用方法引用链上存储的脚本,无需将脚本包含在交易中(可减小交易大小并降低手续费)。
*TxInReference()Important Notes
重要注意事项
- Change address required - fails without
complete()changeAddress() - Collateral required - Script transactions need
txInCollateral() - Order matters - Call BEFORE
spendingPlutusScriptV2()for script inputstxIn() - Coin selection - Provide UTxOs via for auto-selection
selectUtxosFrom()
- 必须设置找零地址 - 未调用时
changeAddress()会执行失败complete() - 需要设置抵押UTXO - 脚本交易必须调用
txInCollateral() - 调用顺序至关重要 - 对于脚本输入,需先调用再调用
spendingPlutusScriptV2()txIn() - UTXO选择 - 通过提供UTXO以启用自动选择功能
selectUtxosFrom()