跳到主要内容

管理通证

本指南提供使用 OCAP Client 管理同质化通证的分步说明。您将学习如何设置通证工厂(它作为您通证的蓝图),然后用它来铸造(创建新通证)和销毁(销毁现有通证)。这些操作是在您的应用程序中创建和管理自定义经济体系的基础。

铸造通证后,您可以在账户之间转移它们。有关该过程的更多详细信息,请参阅转移通证和 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,该 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,该 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,该 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 指南,了解具体操作方法。