Transferring Assets

Icon Link资产转移

考虑一个场景,您正在与智能合约进行交互,并且需要将资产转移到接收方的钱包中。addTransfer方法使您能够将这些操作无缝地组合到单个交易中。

addTransfer方法允许您将资产转移附加到您的合约调用交易中。您可以按照以下示例使用它:

const recipient = Wallet.generate({ provider });
 
await contract.functions
  .echo_u64(100)
  .addTransfer({
    destination: recipient.address,
    amount: 100,
    assetId: baseAssetId,
  })
  .call();

在上面的示例中,我们首先使用合约调用调用 echo_u64 函数。随后,addTransfer 被添加到链式调用中,以在交易中包含对 BaseAssetId100 单位的转移。

Icon Link批量转移

您可以使用 addBatchTransfer 将一批转移添加到单个交易中:

const recipient1 = Wallet.generate({ provider });
const recipient2 = Wallet.generate({ provider });
 
const transferParams: TransferParams[] = [
  { destination: recipient1.address, amount: 100, assetId: baseAssetId },
  { destination: recipient1.address, amount: 400, assetId: ASSET_A },
  { destination: recipient2.address, amount: 300, assetId: ASSET_B },
];
 
await contract.functions.echo_u64(100).addBatchTransfer(transferParams).call();