Sui.

Bài viết

Chia sẻ kiến thức của bạn.

0xduckmove.
Jul 08, 2025
Thảo Luận

Có cách nào để hợp nhất tiền xu và chia chúng trong cùng một giao dịch bằng sui sdk không?

Chúng ta có thể sử dụng ý định CoinWithBalance Mục đích CoinWithBalance xử lý tất cả các hoạt động, bao gồm cả việc tách và hợp nhất tiền xu. Điều này có nghĩa là bạn không phải lúc nào cũng cần phải lập bản đồ ID đối tượng theo cách thủ công, hợp nhất và sau đó tách - CoinWithBalance sẽ tự động xử lý mọi thứ.

import { coinWithBalance } from "@mysten/sui/transactions";

 const coin = coinWithBalance({
      balance: 1000000000,
      type: "0x9f992cc2430a1f442ca7a5ca7638169f5d5c00e0ebc3977a65e9ac6e497fe5ef::wal::WAL",
    });



  • Sui
2
2
Chia sẻ
Bình luận
.

Câu trả lời

2
MoonBags.
Jul 21 2025, 08:21

sử dụng ý định CoinWithBalance Mục đích CoinWithBalance xử lý tất cả các hoạt động, bao gồm cả việc tách và hợp nhất tiền xu. Điều này có nghĩa là bạn không phải lúc nào cũng cần phải lập bản đồ ID đối tượng theo cách thủ công, hợp nhất và sau đó tách - CoinWithBalance sẽ tự động xử lý mọi thứ.

1
Câu trả lời hay nhất
Bình luận
.
24p30p.
24p30p2046
Jul 9 2025, 05:39

Có, bạn có thể** hợp nhất và chia tiền trong cùng một giao dịch**bằng cách sử dụng Sui SDK bằng cách xây dựng một TransactionBlocklô hàng cả hai hành động trước khi gửi. Điều này rất hữu ích khi bạn muốn hợp nhất mã thông báo của mình và sau đó trích xuất một số lượng cụ thể, tất cả trong một hoạt động nguyên tử. Sui cho phép bạn chuỗi nhiều hành động trong một khối giao dịch duy nhất và miễn là bạn quản lý các tài liệu tham khảo đúng cách, nó hoạt động liền mạch.

@mysten/sui.jsDưới đây là ví dụ vềTypeScriptsử dụng SDK:

import { TransactionBlock } from '@mysten/sui.js/transactions';
import { SuiClient } from '@mysten/sui.js/client';

// Assume you already have your SuiClient and signer configured
const client = new SuiClient({ url: 'https://fullnode.mainnet.sui.io' });
const txb = new TransactionBlock();

// Your coin object IDs
const coin1 = '0xabc...';
const coin2 = '0xdef...';

// Step 1: Merge two coins
const merged = txb.mergeCoins(
  txb.object(coin1), // target coin
  [txb.object(coin2)] // coins to merge into target
);

// Step 2: Split the merged coin into a specific amount
const [splitCoin] = txb.splitCoins(merged, [txb.pure(1000000)]); // amount in MIST (1 SUI = 1e9 MIST)

// (Optional) You can now use `splitCoin` for a transfer or any other action

// Send the transaction
const result = await client.signAndExecuteTransactionBlock({
  transactionBlock: txb,
  signer: yourSigner,
  options: { showEffects: true },
});
console.log('Tx result:', result);

Trong mã này:

  • mergeCoinskết hợp coin2thành coin1và trả về tham chiếu đến đồng tiền đã hợp nhất.
  • splitCoinssử dụng đồng tiền đã hợp nhất đó để trích xuất chính xác 1.000.000 MIST (tức là 0,001 SUI).
  • Sau đó, bạn có thể sử dụng kết quả của việc chia tách (ví dụ:splitCoin) để chuyển hoặc nạp tiền cho một hoạt động khác.

Phương pháp này hiệu quả vì tất cả việc quản lý tiền xu xảy ra trong một giao dịch duy nhất, giảm sử dụng gas và đơn giản hóa logic.

Để đọc thêm và xem các ví dụ bổ sung, hãy kiểm tra tài liệu Sui SDK: https://docs.sui.io/build/sdk.

1
Bình luận
.

Bạn có biết câu trả lời không?

Hãy đăng nhập và chia sẻ nó.

Sui is a Layer 1 protocol blockchain designed as the first internet-scale programmable blockchain platform.

613Bài viết1608Câu trả lời
Sui.X.Peera.

Kiếm phần của bạn từ 1000 Sui

Tích lũy điểm danh tiếng và nhận phần thưởng khi giúp cộng đồng Sui phát triển.

Chiến dịch phần thưởngTháng Bảy