Skip to content

钱包转账

本指南展示了如何在账户和合约之间转移资产,以及如何在转账前验证你的余额。

钱包之间的转账

在 SDK 中,钱包之间的资产转移非常简单。

ts
const myWallet = Wallet.fromPrivateKey(privateKey, provider);

const recipient = Wallet.generate({ provider });

const txResponse = await myWallet.transfer(recipient.address, 100, baseAssetId);

await txResponse.waitForResult();

等待交易处理完成后,资产将成功转移到接收者的钱包。

也可以直接用字符串指定接收者的地址:

ts
const myWallet = Wallet.fromPrivateKey(privateKey, provider);

const address = 'fuel1zc7r2rwuzl3uskfc0w737780uqd8sn6lfm3wgqf9wa767gs3sems5d6kxj';

const txResponse = await myWallet.transfer(address, 100, baseAssetId);

如果转账的是基础链币(如 ETH),可以省略 assetId

ts
const myWallet = Wallet.fromPrivateKey(privateKey, provider);

const recipient = Wallet.generate({ provider });

const txResponse = await myWallet.transfer(recipient.address, 100);

转账到合约

从你的钱包向已部署的合约转账同样简便,只需要合约的地址。

你可以使用合约的 id 来向已部署的合约实例转账:

ts
const myWallet = Wallet.fromPrivateKey(privateKey, provider);

const txResponse = await myWallet.transferToContract(contract.id, 100, baseAssetId);

await txResponse.waitForResult();

或者,你可以直接使用合约的字符串地址,采用 Bech32 格式:

ts
const myWallet = Wallet.fromPrivateKey(privateKey, provider);

const contractAddress = contract.id.toString();

const txResponse = await myWallet.transferToContract(contractAddress, 100, baseAssetId);

await txResponse.waitForResult();

余额

在转移资产之前,请确保你的钱包有足够的资金。在没有足够资金的情况下进行转账将导致错误:not enough coins to fit the target

关于如何查询余额,你可以参考检查询余额页面的内容。