跳到主要內容

管理代幣

本指南提供了使用 OCAP 用戶端管理同質化代幣的逐步說明。您將學習如何設定一個代幣工廠,它作為您代幣的藍圖,然後用它來鑄造(創建新代幣)和銷毀(摧毀現有代幣)。這些操作是在您的應用程式中創建和管理自訂經濟體系的基礎。

一旦您鑄造了代幣,就可以在帳戶之間轉移它們。有關該過程的更多詳細資訊,請參閱 轉移代幣與 NFT 指南。

創建代幣工廠

代幣工廠是一個智慧合約,它定義了同質化代幣的屬性和規則,例如其名稱、符號和供應機制。它也管理著鑄造和銷毀的過程。在任何新代幣進入流通之前,創建工廠是第一步。

createTokenFactory 方法會將一個新的代幣工廠部署到區塊鏈上。

參數

  • wallet WalletObject (required) — 工廠擁有者的錢包物件,用於簽署交易。
  • token object (required) — 一個定義待創建代幣屬性的物件。
    • name string (required) — 代幣的全名(例如:'My Awesome Token')。
    • symbol string (required) — 代幣的股票代碼(例如:'MAT')。
    • decimal number (required) — 代幣支援的小數位數。
    • description string — 代幣的簡要描述。
    • icon string — 代幣圖示的 URL。
    • maxTotalSupply number — 可鑄造的最大總供應量。
  • curve object — 聯合曲線的設定,用於以程式化方式控制代幣價格。如果省略,鑄造/銷毀將不與儲備代幣掛鉤。
    • basePrice number — 代幣以儲備貨幣計價的基礎價格。
    • fixedPrice number — 代幣的固定價格,若不使用動態曲線。
    • slope number — 聯合曲線的斜率,決定其陡峭程度。
  • feeRate number (default: 0) — 鑄造與銷毀操作的費率(以基點為單位)。
  • data object — 附加到代幣工廠的選用自訂資料。

回傳值

回傳一個 promise,其會解析為一個包含交易雜湊和新創建代幣工廠地址的陣列。

  • [0] string — 工廠創建的交易雜湊。
  • [1] string — 新代幣工廠的地址。

範例

創建代幣工廠

javascript
import Client from '@ocap/client';
import Wallet from '@ocap/wallet';

const endpoint = 'https://beta.abtnetwork.io/api';
const client = new Client(endpoint);
const wallet = Wallet.fromRandom();

// 首先,確保錢包中有資金。您可以從水龍頭獲取測試代幣:
// https://faucet.abtnetwork.io/

async function createFactory() {
  try {
    const [hash, factoryAddress] = await client.createTokenFactory({
      wallet,
      token: {
        name: 'My Game Coin',
        symbol: 'MGC',
        decimal: 18,
        description: 'The official currency for My Awesome Game.',
        maxTotalSupply: 1000000,
      },
      feeRate: 100, // 1% 手續費
    });

    console.log('Token factory created successfully!');
    console.log('Transaction Hash:', hash);
    console.log('Factory Address:', factoryAddress);
    return factoryAddress;
  } catch (error) {
    console.error('Error creating token factory:', error);
  }
}

createFactory();

鑄造代幣

鑄造是創建新代幣並將其加入總供應量的過程。這是透過代幣工廠完成的。如果工廠設定了聯合曲線,鑄造將需要以儲備代幣支付。

mintToken 方法會啟動一個交易,從工廠鑄造指定數量的代幣。

參數

  • wallet WalletObject (required) — 為鑄造操作提供資金並簽署交易的錢包。
  • tokenFactory string (required) — 要從中鑄造的代幣工廠地址。
  • amount number (required) — 要鑄造的代幣數量。
  • receiver string (required) — 將接收新鑄造代幣的地址。
  • maxReserve number (required) — 錢包願意花費的儲備代幣最大數量。這可作為一種滑價保護機制。
  • data object — 附加到鑄造交易的選用自訂資料。

回傳值

回傳一個 promise,其會解析為交易雜湊。

  • hash string — 鑄造操作的交易雜湊。

範例

從工廠鑄造代幣

javascript
async function mintNewTokens(factoryAddress) {
  try {
    const hash = await client.mintToken({
      wallet,
      tokenFactory: factoryAddress,
      amount: 5000,
      receiver: wallet.address, // 將代幣鑄造到我們自己的錢包
      maxReserve: 10, // 支付的最大儲備代幣。根據聯合曲線價格進行調整。
    });

    console.log('Tokens minted successfully!');
    console.log('Transaction Hash:', hash);
  } catch (error) {
    console.error('Error minting tokens:', error);
  }
}

// 假設 `factoryAddress` 可從 createFactory 範例中取得
// const factoryAddress = '...';
// mintNewTokens(factoryAddress);

銷毀代幣

銷毀與鑄造相反;它會永久地將代幣從流通中移除。如果代幣工廠使用聯合曲線,銷毀代幣將會按比例返還儲備貨幣給使用者。

burnToken 方法會啟動此過程。

參數

  • wallet WalletObject (required) — 持有待銷毀代幣並將簽署交易的錢包。
  • tokenFactory string (required) — 代幣工廠的地址。
  • amount number (required) — 要銷毀的代幣數量。
  • receiver string (required) — 將接收返還的儲備代幣的地址。
  • minReserve number (required) — 錢包預期收到的最少儲備代幣數量。這可以防止價格滑價。
  • data object — 附加到銷毀交易的選用自訂資料。

回傳值

回傳一個 promise,其會解析為交易雜湊。

  • hash string — 銷毀操作的交易雜湊。

範例

銷毀代幣

javascript
async function burnExistingTokens(factoryAddress) {
  try {
    const hash = await client.burnToken({
      wallet,
      tokenFactory: factoryAddress,
      amount: 1000,
      receiver: wallet.address, // 將儲備代幣接收回我們自己的錢包
      minReserve: 1, // 接收的最小儲備代幣。根據聯合曲線價格進行調整。
    });

    console.log('Tokens burned successfully!');
    console.log('Transaction Hash:', hash);
  } catch (error) {
    console.error('Error burning tokens:', error);
  }
}

// 假設 `factoryAddress` 可從 createFactory 範例中取得
// const factoryAddress = '...';
// burnExistingTokens(factoryAddress);

總結

在本指南中,您學習了管理同質化代幣的完整生命週期:創建工廠、鑄造新代幣,以及銷毀它們以減少供應量。這些強大的基本功能讓您能夠在 OCAP 平台上建立複雜的經濟系統。

既然您知道了如何創建代幣,下一步理所當然就是學習如何轉移它們。請前往 轉移代幣與 NFT 指南查看如何操作。