IssuerSparkWallet

IssuerSparkWallet 类扩展了 SparkWalletSparkWallet 的所有功能均可使用),并提供了在 Spark 网络上进行代币发行和管理的功能。

代币管理方法

announceTokenL1()

可能造成 L1 资金损失
同一钱包在 L1 上多次公告将导致 L1 资金损失。
只有钱包在链上确认的首次公告才会被认为有效。
检查返回的 L1 交易 ID 中的 OP_RETURN 是否包含 LRC20 前缀,以验证链上公告。
参考交易: 链接
在比特币 L1 上公告新代币。
async function announceTokenL1(
  tokenName: string,
  tokenTicker: string,
  decimals: number,
  maxSupply: number,
  isFreezable: boolean,
  feeRateSatsPerVb?: number
): Promise<string>;
参数:
  • tokenName: 代币名称(例如:SparkCoin)
  • tokenTicker: 代币代码(例如:SPARKC)
  • decimals: 代币支持的精度(例如:BTC 为 8)
  • maxSupply: 此代币的最大供应量
  • isFreezable: 发行者是否可以冻结此代币
  • feeRateSatsPerVb: (默认:2)每虚拟字节的交易费用
返回: 比特币 L1 交易 ID(字符串)

getBalance()

获取代币的当前余额。
interface TokenInfo {
  tokenPublicKey: string,
  tokenName: string,
  tokenSymbol: string,
  tokenDecimals: number,
  maxSupply: bigint,
};

async function getBalance(): Promise<{
  balance: bigint;
  tokenBalances: Map<string, { balance: bigint, tokenInfo: TokenInfo, bech32mTokenIdentifier: string }>;
}>;
返回: 包含以下内容的对象:
  • balance: 当前余额(以聪为单位)
  • tokenBalances: 按代币公钥映射的代币余额,包含用于显示的代币信息和 Bech32m 代币标识符

mintTokens()

铸造新代币。
async function mintTokens(tokenAmount: bigint): Promise<string>;
参数:
  • tokenAmount: 要铸造的数量(例如:1000n)
返回: 交易 ID(字符串)

transferTokens()

将代币转移到另一个 Spark 地址。
async function transferTokens({
  tokenIdentifier: string,
  tokenAmount: bigint,
  receiverSparkAddress: string,
  selectedOutputs?: OutputWithPreviousTransactionData[]
}): Promise<string>;
参数:
  • tokenIdentifier: 要转移的代币的 Bech32m 代币标识符(例如:btkn1…)
  • tokenAmount: 要转移的代币数量
  • receiverSparkAddress: 接收者的 Spark 地址
  • selectedOutputs: (可选)用于转移的特定输出
返回: 交易 ID(字符串)

batchTransferTokens()

在单个交易中将代币转移给多个接收者。
async function batchTransferTokens({
  tokenIdentifier: string,
  transfers: { tokenAmount: bigint, receiverSparkAddress: string }[],
  selectedOutputs?: OutputWithPreviousTransactionData[]
}): Promise<string>;
参数:
  • tokenIdentifier: 要转移的代币的 Bech32m 代币标识符(例如:btkn1…)
  • transfers: 包含接收者地址和金额的转移对象数组
  • selectedOutputs: (可选)用于转移的特定输出
返回: 交易 ID(字符串)

burnTokens()

销毁现有代币。
async function burnTokens(tokenAmount: bigint): Promise<string>;
参数:
  • tokenAmount: 要销毁的数量(例如:1000n)
返回: 交易 ID(字符串)

freezeTokens()

为特定钱包冻结发行者的代币。
async function freezeTokens(sparkAddress: string): Promise<{
  impactedOutputIds: string[];
  impactedTokenAmount: bigint;
}>;
参数:
  • sparkAddress: 要冻结的 Spark 地址。

unfreezeTokens()

为特定钱包解冻发行者的代币。
async function unfreezeTokens(sparkAddress: string): Promise<{
  impactedOutputIds: string[];
  impactedTokenAmount: bigint;
}>;
参数:
  • sparkAddress: 要解冻的 Spark 地址。

代币信息方法

getIssuerTokenBalance()

获取钱包的代币余额。 参数:
  • sparkAddress: (可选)要获取余额的钱包的 Spark 地址。如果未提供地址,函数将返回发行者钱包的代币余额。
async function getIssuerTokenBalance(sparkAddress?: String): Promise<{ balance: bigint, bech32mTokenIdentifier: string }>;

getIssuerTokenMetadata()

获取代币的元数据。
提示:作为发行者,要获取您的代币公钥,您可以调用 getIssuerTokenMetadata()getIdentityPublicKey()
对于频繁检索代币公钥,我们建议使用 getIdentityPublicKey(),因为它不涉及网络调用。
interface IssuerTokenMetadata {
  tokenPublicKey: string;
  tokenName: string;
  tokenSymbol: string;
  tokenDecimals: number;
  maxSupply: bigint;
  isFreezable: boolean;
  bech32mTokenIdentifier: string;
};

async function getIssuerTokenMetadata(): Promise<IssuerTokenMetadata>;

getIssuerTokenIdentifier()

获取发行者代币的 Bech32m 代币标识符。
async function getIssuerTokenIdentifier(): Promise<string>;
返回: Bech32m 代币标识符(例如:btkn1…)

queryTokenTransactions()

从网络检索代币交易记录,具有灵活的过滤选项。
async function queryTokenTransactions({
  ownerPublicKeys,
  issuerPublicKeys,
  tokenTransactionHashes,
  tokenIdentifiers,
  outputIds,
}: {
  ownerPublicKeys?: string[];
  issuerPublicKeys?: string[];
  tokenTransactionHashes?: string[];
  tokenIdentifiers?: string[];
  outputIds?: string[];
}): Promise<TokenTransactionWithStatus[]>;
参数:
  • ownerPublicKeys: (可选)用于过滤的持有者公钥数组
  • issuerPublicKeys: (可选)用于过滤的发行者公钥数组
  • tokenTransactionHashes: (可选)用于过滤的代币交易哈希数组
  • tokenIdentifiers: (可选)用于过滤的 Bech32m 代币标识符数组
  • outputIds: (可选)用于过滤的输出 ID 数组
返回: 带状态的代币交易数组

代币活动方法

getIssuerTokenDistribution()

获取与此发行者钱包关联的代币的分发信息。
此功能目前正在开发中,将在 Spark 的未来版本中提供。
async function getIssuerTokenDistribution(): Promise<TokenDistribution>;
返回:
  • totalCirculatingSupply: 代币的总流通供应量
  • totalIssued: 已发行的代币总量
  • totalBurned: 已销毁的代币总量
  • numHoldingAddress: 持有代币的地址数量
  • numConfirmedTransactions: 已确认交易的数量

SparkWallet

SparkWallet 类提供与 Spark 网络交互的核心钱包功能。

核心方法

所有 SparkWallet 方法在 IssuerSparkWallet 中也可用。如需完整文档,请参阅 钱包 API 参考