@j0nnyboi/amman
Version:
A modern mandatory toolbelt to help test solana SDK libraries and apps on a locally running validator.
49 lines (46 loc) • 2.25 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.airdropHelp = exports.handleAirdropCommand = void 0;
const amman_client_1 = require("@j0nnyboi/amman-client");
const web3_js_1 = require("@safecoin/web3.js");
const assert_1 = require("assert");
const path_1 = __importDefault(require("path"));
const utils_1 = require("../../utils");
const fs_1 = require("../../utils/fs");
async function handleAirdropCommand(pubKeyOrPathToKeypairFile, amount, label, commitment) {
let keystring = pubKeyOrPathToKeypairFile;
if (!(0, amman_client_1.isValidSolanaAddress)(pubKeyOrPathToKeypairFile)) {
(0, utils_1.logDebug)(`Resolving public key from file: ${pubKeyOrPathToKeypairFile}`);
(0, assert_1.strict)(path_1.default.extname(pubKeyOrPathToKeypairFile) === '.json', 'Argument to airdrop needs to be a PublicKey string or a path to a keypair JSON file');
const fullPath = path_1.default.resolve(pubKeyOrPathToKeypairFile);
const keypair = await (0, fs_1.keypairFromFile)(fullPath);
keystring = keypair.publicKey.toBase58();
}
const connection = new web3_js_1.Connection(amman_client_1.LOCALHOST, commitment);
const amman = amman_client_1.Amman.instance({
ammanClientOpts: { autoUnref: false, ack: true },
});
amman.addr.addLabel(label, keystring);
(0, utils_1.logInfo)(`Airdropping ${amount} Sol to account '${keystring}' labeled '${label}'`);
await amman.airdrop(connection, new web3_js_1.PublicKey(keystring), amount);
return { connection };
}
exports.handleAirdropCommand = handleAirdropCommand;
function airdropHelp() {
return `
Airdrops provided Sol to the provided public key.
Usage:
amman airdrop <amount> <public key or path to keypair file>
Options:
--commitment=${utils_1.commitments.join('|')} [default: singleGossip]
The commitment to use for Airdrop transaction
Examples:
amman airdrop DTTTQyKBNPDFa3cHfFJwDWcNPRJgemSisyWaohFbMRPi 100
amman airdrop ./keypairs/payer.json 100
`;
}
exports.airdropHelp = airdropHelp;
//# sourceMappingURL=airdrop.js.map