UNPKG

@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
"use strict"; 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