考虑一个场景,您正在与智能合约进行交互,并且需要将资产转移到接收方的钱包中。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
被添加到链式调用中,以在交易中包含对 BaseAssetId
的 100
单位的转移。
您可以使用 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();