scrypto-dev
Version:
CLI tool for Scrypto development on Radix DLT - deploy packages, generate types, manage accounts, and more
64 lines • 3.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.faucet = faucet;
const babylon_gateway_api_sdk_1 = require("@radixdlt/babylon-gateway-api-sdk");
const environment_1 = require("../utils/environment");
const transaction_1 = require("../utils/transaction");
async function faucet() {
console.log("💰 Requesting tokens from faucet...");
const network = (0, environment_1.getCurrentNetwork)();
if (!network) {
console.log('❌ No environment set. Use "scrypto-dev set-env <network>" to set one.');
return;
}
console.log(`🌐 Current network: ${network}`);
if (network !== "stokenet") {
console.log("❌ Faucet is only available on the Stokenet network.");
return;
}
const activeAccount = (0, environment_1.getActiveAccount)();
if (!activeAccount) {
console.log('❌ No active account set. Use "scrypto-dev set-address <account-id>" to set one. Or generate a new address with "scrypto-dev new-address".');
return;
}
if (!activeAccount.privateKey) {
console.log("❌ Active account does not have a private key stored.");
console.log("💡 The account needs a private key to sign the faucet transaction.");
return;
}
console.log(`🎯 Active account: ${activeAccount.address}`);
try {
console.log("🔄 Building faucet transaction...");
const manifest = (0, transaction_1.createFaucetManifest)(activeAccount.address);
console.log("📡 Submitting transaction to network...");
const result = await (0, transaction_1.buildAndSubmitTransaction)(manifest);
console.log(`✅ Transaction submitted successfully!`);
console.log(`🆔 Transaction ID: ${result.transactionId}`);
console.log("⏳ Waiting for transaction confirmation...");
if (result.status.status === babylon_gateway_api_sdk_1.TransactionStatus.CommittedSuccess) {
console.log("🎉 Faucet request completed successfully!");
console.log("💰 Tokens have been sent to your account.");
// Note: Receipt details access may vary based on API version
console.log("📊 Transaction confirmed on network");
}
else if (result.status.status === babylon_gateway_api_sdk_1.TransactionStatus.CommittedFailure) {
console.log("❌ Faucet request failed!");
console.log(` Error: ${result.status.error_message || 'Unknown error'}`);
}
else {
console.log(`⚠️ Transaction status: ${result.status.status}`);
}
}
catch (error) {
console.error("❌ Failed to request faucet tokens:", error instanceof Error ? error.message : error);
if (error instanceof Error) {
if (error.message.includes("timeout")) {
console.log("💡 The transaction may still be processing. Check your account balance in a few minutes.");
}
else if (error.message.includes("insufficient")) {
console.log("💡 There might be insufficient funds for transaction fees.");
}
}
}
}
//# sourceMappingURL=faucet.js.map