跳到正文

sendTransaction ​

发送 TBC 链交易。支持多种操作类型,包括 P2PKH 转账、NFT 操作、FT 操作、PoolNFT 流动性管理和稳定币操作。

用法 ​

ts
const params = [{ flag: "P2PKH", address: "收款地址", satoshis: 10000 }];
const { txid } = await Turing.sendTransaction(params);

接口定义 ​

ts
interface FTData {
  name: string;       // 代币名称
  symbol: string;     // 代币符号
  decimal: number;    // 小数位数
  amount: number;     // 发行数量
}

interface CollectionData {
  collectionName: string;  // 集合名称
  description: string;     // 集合描述
  supply: number;          // 集合供应量
  file: string;            // base64 编码的文件
}

interface NFTData {
  nftName: string;      // NFT 名称
  symbol: string;       // NFT 符号
  description: string;  // NFT 描述
  attributes: string;   // NFT 属性
  file?: string;        // base64 编码的文件(可选)
}

interface NonMergeRequestParam {
  flag: "P2PKH" | "COLLECTION_CREATE" | "NFT_CREATE" | "NFT_TRANSFER" | "FT_MINT" | "FT_TRANSFER" | "POOLNFT_MINT" | "POOLNFT_INIT" | "POOLNFT_LP_INCREASE" | "POOLNFT_LP_CONSUME" | "POOLNFT_LP_BURN" | "POOLNFT_SWAP_TO_TOKEN" | "POOLNFT_SWAP_TO_TBC" | "STABLECOIN_TRANSFER";
  address?: string;
  satoshis?: number | string;              // 单位为 satoshis,大数请使用 string
  collection_data?: string;
  ft_data?: string;
  nft_data?: string;
  collection_id?: string;
  nft_contract_address?: string;
  ft_contract_address?: string;            // FT 或稳定币合约交易 ID
  tbc_amount?: number | string;            // 大数请使用 string
  ft_amount?: number | string;             // 大数请使用 string
  with_lock?: boolean;
  lpCostAddress?: string;
  lpCostAmount?: number | string;          // 大数请使用 string
  pubKeyLock?: string[];
  poolNFT_version?: 1 | 2;                // 强制为 2,若提供为别的值转为 2
  serviceFeeRate?: number;
  serverProvider_tag?: string;
  lpPlan?: 1 | 2 | 3 | 4 | 5 | 6;          // 创建池默认 1;Swap 可省略并由钱包从链上识别
  isLockTime?: boolean;
  lockTime?: number | string;              // 锁仓至指定区块高度(POOLNFT 相关),大数请使用 string
  broadcastEnabled?: boolean;
}

type MergeRequestParam =
  | {
      flag: "FT_MERGE" | "STABLECOIN_MERGE";
      ft_contract_address: string;
    }
  | {
      flag: "POOLNFT_MERGE" | "FTLP_MERGE";
      nft_contract_address: string;
    };

type RequestParam = NonMergeRequestParam | MergeRequestParam;

const params = [param: RequestParam];

独立 Merge 请求只接受对应的合约字段。它们会始终广播,不接受 broadcastEnabled。

返回值 ​

ts
interface SendTransactionResponse {
  txid?: string;   // 交易 ID(broadcastEnabled 为 true 时)
  txraw?: string;  // 签名后的原始交易 hex(broadcastEnabled 为 false 时)
  error?: string;  // 错误信息
}
字段类型说明
txidstring广播成功后的交易 ID
txrawstringbroadcastEnabled 为 false 时返回的原始交易 hex
errorstring交易失败时的错误信息

响应行为 ​

对于非 Merge 请求,broadcastEnabled: false 会通过 txraw 返回本次请求的业务交易。如果一个业务操作返回多笔以逗号分隔的原始交易,必须按顺序广播。

独立的 FT_MERGE、STABLECOIN_MERGE、POOLNFT_MERGE 和 FTLP_MERGE 请求始终广播并返回 txid,不会返回 txraw。

错误处理 ​

ts
const result = await Turing.sendTransaction(params);

if (result.error) {
  console.error("交易失败:", result.error);
  return;
}

console.log("成功!txid:", result.txid);

交易类型 ​

  • P2PKH — 标准 TBC 转账。
  • NFT — 集合创建、NFT 创建和 NFT 转移。
  • FT — FT 铸造、转移和 UTXO 合并。
  • PoolNFT — 流动性池创建、管理、交换和 UTXO 合并。
  • Stablecoin — 稳定币转移和 UTXO 合并。

各分类页均先提供完整的参数与操作说明,再提供带默认模板的在线示例。非 Merge 示例默认请求返回业务 txraw;独立的 FT_MERGE、POOLNFT_MERGE、FTLP_MERGE 和 STABLECOIN_MERGE 请求始终广播、返回 txid,并要求执行前明确确认风险。