import { Wallet, TimeoutError } from '@coinbase/coinbase-sdk';
// Create a wallet on Base Mainnet
let wallet = await Wallet.create({ networkId: Coinbase.networks.BaseMainnet });
// Out-of-Band: Fund the wallet's default address with USDC
// Create a gasless USDC transfer on Base Mainnet
try {
const transfer = await wallet.createTransfer({
amount: 0.00001,
assetId: Coinbase.assets.Usdc,
destination: anotherWallet,
gasless: true,
skipBatching: true,
});
} catch (error) {
console.error(`Error while transferring: `, error);
}
// Wait for transfer to land on-chain.
try {
await transfer.wait();
} catch (err) {
if (err instanceof TimeoutError) {
console.log("Waiting for transfer timed out");
} else {
console.error("Error while waiting for transfer to complete: ", error);
}
}
// Check if transfer successfully completed on-chain
if (transfer.getStatus() === 'complete') {
console.log('Transfer completed on-chain: ', transfer.toString());
} else {
console.error('Transfer failed on-chain: ', transfer.toString());
}