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 }>;
}>;

返回: 包含以下内容的对象:

  • balance: 当前余额(以聪为单位)
  • tokenBalances: 按代币公钥映射的代币余额,包含用于显示的代币信息

mintTokens()

铸造新代币。

async function mintTokens(tokenAmount: bigint): Promise<string>;

参数:

  • tokenAmount: 要铸造的数量(例如:1000n)

返回: 交易 ID(字符串)

transferTokens()

将代币转移到另一个 Spark 地址。

async function transferTokens({
  tokenPublicKey: string,
  tokenAmount: bigint,
  receiverSparkAddress: string,
  selectedOutputs?: OutputWithPreviousTransactionData[]
}): Promise<string>;

参数:

  • tokenPublicKey: 要转移的代币的公钥
  • tokenAmount: 要转移的代币数量
  • receiverSparkAddress: 接收者的 Spark 地址
  • 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 }>;

getIssuerTokenInfo()

获取代币的详细信息。

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

async function getIssuerTokenInfo(): Promise<IssuerTokenInfo>;

代币活动方法

getIssuerTokenActivity()

获取与此发行者钱包关联的代币的活动。

interface ListAllTokenTransactionsResponse {
  transactions: Transaction[];
  nextCursor?: ListAllTokenTransactionsCursor;
}

async function getIssuerTokenActivity(
  pageSize?: number = 100,
  cursor?: ListAllTokenTransactionsCursor,
  operationTypes?: OperationType[],
  beforeTimestamp?: Date,
  afterTimestamp?: Date
): Promise<ListAllTokenTransactionsResponse>;

参数:

  • pageSize: (可选,默认:100)每页交易数量
  • cursor: (可选)要传入的分页游标
  • operationTypes: (可选)要返回的操作类型(ISSUER_ANNOUNCEISSUER_MINTUSER_TRANSFERISSUER_BURNISSUER_FREEZEISSUER_UNFREEZE
  • beforeTimestamp: (可选)返回此日期之前的交易
  • afterTimestamp: (可选)返回此日期之后的交易

返回: 包含分页信息的代币交易列表

getIssuerTokenDistribution()

获取与此发行者钱包关联的代币的分发信息。

此功能目前正在开发中,将在 Spark 的未来版本中提供。

async function getIssuerTokenDistribution(): Promise<TokenDistribution>;

返回:

  • totalCirculatingSupply: 代币的总流通供应量
  • totalIssued: 已发行的代币总量
  • totalBurned: 已销毁的代币总量
  • numHoldingAddress: 持有代币的地址数量
  • numConfirmedTransactions: 已确认交易的数量