@metaplex-foundation/amman
Advanced tools
Comparing version 0.2.0 to 0.3.0
@@ -36,2 +36,6 @@ #!/usr/bin/env node | ||
// ----------------- | ||
// logs | ||
// ----------------- | ||
.command('logs', `Launches 'solana logs' and pipes them through a prettifier`) | ||
// ----------------- | ||
// airdrop | ||
@@ -138,2 +142,9 @@ // ----------------- | ||
// ----------------- | ||
// logs | ||
// ----------------- | ||
case 'logs': { | ||
(0, commands_1.handleLogsCommand)(); | ||
break; | ||
} | ||
// ----------------- | ||
// airdrop | ||
@@ -140,0 +151,0 @@ // ----------------- |
export * from './account'; | ||
export * from './airdrop'; | ||
export * from './label'; | ||
export * from './logs'; | ||
export * from './run'; | ||
export * from './start'; |
@@ -16,4 +16,5 @@ "use strict"; | ||
__exportStar(require("./label"), exports); | ||
__exportStar(require("./logs"), exports); | ||
__exportStar(require("./run"), exports); | ||
__exportStar(require("./start"), exports); | ||
//# sourceMappingURL=index.js.map |
@@ -12,5 +12,8 @@ "use strict"; | ||
const types_1 = require("../../relay/types"); | ||
const solana_logs_1 = require("../utils/solana-logs"); | ||
const utils_2 = require("../utils"); | ||
exports.DEFAULT_START_CONFIG = { | ||
validator: validator_1.DEFAULT_VALIDATOR_CONFIG, | ||
relay: types_1.DEFAULT_RELAY_CONFIG, | ||
streamTransactionLogs: true, | ||
}; | ||
@@ -32,2 +35,5 @@ async function handleStartCommand(args) { | ||
await (0, validator_1.initValidator)(config.validator, config.relay, config.storage); | ||
if (config.streamTransactionLogs) { | ||
(0, solana_logs_1.pipeSolanaLogs)((0, utils_2.cliAmmanInstance)()); | ||
} | ||
return { needHelp: false }; | ||
@@ -42,9 +48,13 @@ } | ||
exports.handleStartCommand = handleStartCommand; | ||
function resolveConfig({ config }) { | ||
async function resolveConfig({ config }) { | ||
if (config == null) { | ||
return tryLoadLocalConfigRc(); | ||
const { config: localConfig, configPath } = await tryLoadLocalConfigRc(); | ||
return { config: { ...exports.DEFAULT_START_CONFIG, ...localConfig }, configPath }; | ||
} | ||
else { | ||
const configPath = path_1.default.resolve(config); | ||
return { config: require(configPath), configPath }; | ||
return { | ||
config: { ...exports.DEFAULT_START_CONFIG, ...require(configPath) }, | ||
configPath, | ||
}; | ||
} | ||
@@ -51,0 +61,0 @@ } |
@@ -0,1 +1,2 @@ | ||
export * from './address-labels'; | ||
export * from './token-balances'; |
@@ -13,3 +13,4 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
__exportStar(require("./address-labels"), exports); | ||
__exportStar(require("./token-balances"), exports); | ||
//# sourceMappingURL=index.js.map |
@@ -0,9 +1,18 @@ | ||
/** @private */ | ||
export declare const AMMAN_RELAY_PORT = 50474; | ||
/** @private */ | ||
export declare const AMMAN_RELAY_URI: string; | ||
/** @private */ | ||
export declare const MSG_UPDATE_ADDRESS_LABELS = "update:address-labels"; | ||
/** @private */ | ||
export declare const ACK_UPDATE_ADDRESS_LABELS = "ack:update:address-labels"; | ||
/** @private */ | ||
export declare const MSG_CLEAR_ADDRESS_LABELS = "clear:address-labels"; | ||
/** @private */ | ||
export declare const MSG_CLEAR_TRANSACTIONS = "clear:transactions"; | ||
/** @private */ | ||
export declare const MSG_GET_KNOWN_ADDRESS_LABELS = "get:known-address-labels"; | ||
/** @private */ | ||
export declare const MSG_WATCH_ACCOUNT_INFO = "watch:account-info"; | ||
/** @private */ | ||
export declare const MSG_UPDATE_ACCOUNT_INFO = "update:account-info"; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.MSG_UPDATE_ACCOUNT_INFO = exports.MSG_WATCH_ACCOUNT_INFO = exports.MSG_GET_KNOWN_ADDRESS_LABELS = exports.MSG_CLEAR_TRANSACTIONS = exports.MSG_CLEAR_ADDRESS_LABELS = exports.ACK_UPDATE_ADDRESS_LABELS = exports.MSG_UPDATE_ADDRESS_LABELS = exports.AMMAN_RELAY_URI = exports.AMMAN_RELAY_PORT = void 0; | ||
/** @private */ | ||
exports.AMMAN_RELAY_PORT = 50474; | ||
/** @private */ | ||
exports.AMMAN_RELAY_URI = `http://localhost:${exports.AMMAN_RELAY_PORT}`; | ||
/** @private */ | ||
exports.MSG_UPDATE_ADDRESS_LABELS = 'update:address-labels'; | ||
/** @private */ | ||
exports.ACK_UPDATE_ADDRESS_LABELS = 'ack:update:address-labels'; | ||
/** @private */ | ||
exports.MSG_CLEAR_ADDRESS_LABELS = 'clear:address-labels'; | ||
/** @private */ | ||
exports.MSG_CLEAR_TRANSACTIONS = 'clear:transactions'; | ||
/** @private */ | ||
exports.MSG_GET_KNOWN_ADDRESS_LABELS = 'get:known-address-labels'; | ||
/** @private */ | ||
exports.MSG_WATCH_ACCOUNT_INFO = 'watch:account-info'; | ||
/** @private */ | ||
exports.MSG_UPDATE_ACCOUNT_INFO = 'update:account-info'; | ||
//# sourceMappingURL=consts.js.map |
@@ -6,2 +6,3 @@ /// <reference types="node" /> | ||
import { AmmanAccountProvider, AmmanAccountRendererMap } from '../types'; | ||
import { Program } from '../validator/types'; | ||
/** | ||
@@ -17,3 +18,3 @@ * A simple socket.io server which communicates to the Amman Explorere as well as accepting connections | ||
private readonly allKnownLabels; | ||
constructor(io: Server, accountProvider: AccountProvider); | ||
constructor(io: Server, accountProvider: AccountProvider, allKnownLabels?: Record<string, string>); | ||
hookConnectionEvents(): void; | ||
@@ -28,3 +29,3 @@ hookMessages(socket: Socket): void; | ||
private static createApp; | ||
static startServer(accountProviders: Record<string, AmmanAccountProvider>, accountRenderers: AmmanAccountRendererMap, killRunning?: boolean): Promise<{ | ||
static startServer(accountProviders: Record<string, AmmanAccountProvider>, accountRenderers: AmmanAccountRendererMap, programs: Program[], killRunning?: boolean): Promise<{ | ||
app: HttpServer; | ||
@@ -31,0 +32,0 @@ io: Server; |
@@ -17,6 +17,8 @@ "use strict"; | ||
class RelayServer { | ||
constructor(io, accountProvider) { | ||
constructor(io, accountProvider, | ||
// Keyed pubkey:label | ||
allKnownLabels = {}) { | ||
this.io = io; | ||
this.accountProvider = accountProvider; | ||
this.allKnownLabels = {}; | ||
this.allKnownLabels = allKnownLabels; | ||
this.hookConnectionEvents(); | ||
@@ -76,3 +78,3 @@ } | ||
class Relay { | ||
static createApp(accountProvider) { | ||
static createApp(accountProvider, knownLabels) { | ||
const server = (0, http_1.createServer)(); | ||
@@ -84,6 +86,6 @@ const io = new socket_io_1.Server(server, { | ||
}); | ||
const relayServer = new RelayServer(io, accountProvider); | ||
const relayServer = new RelayServer(io, accountProvider, knownLabels); | ||
return { app: server, io, relayServer }; | ||
} | ||
static async startServer(accountProviders, accountRenderers, killRunning = true) { | ||
static async startServer(accountProviders, accountRenderers, programs, killRunning = true) { | ||
if (killRunning) { | ||
@@ -93,3 +95,9 @@ await (0, http_2.killRunningServer)(consts_1.AMMAN_RELAY_PORT); | ||
const accountProvider = providers_1.AccountProvider.fromRecord(accountProviders, accountRenderers); | ||
const { app, io, relayServer } = this.createApp(accountProvider); | ||
const knownLabels = programs | ||
.filter((x) => x.label != null) | ||
.reduce((acc, x) => { | ||
acc[x.programId] = x.label; | ||
return acc; | ||
}, {}); | ||
const { app, io, relayServer } = this.createApp(accountProvider, knownLabels); | ||
return new Promise((resolve, reject) => { | ||
@@ -96,0 +104,0 @@ app.on('error', reject).listen(consts_1.AMMAN_RELAY_PORT, () => { |
@@ -10,2 +10,3 @@ /// <reference types="node" /> | ||
storage?: StorageConfig; | ||
streamTransactionLogs?: boolean; | ||
}; | ||
@@ -15,2 +16,6 @@ export declare type AmmanAccount = { | ||
}; | ||
/** | ||
* The type that an account provider needs to implement so that amman can deserialize account data. | ||
* @category diagnostics | ||
*/ | ||
export declare type AmmanAccountProvider = { | ||
@@ -17,0 +22,0 @@ byteSize: number | ((args: any) => void); |
@@ -76,3 +76,3 @@ "use strict"; | ||
if (launchExplorerRelay) { | ||
server_1.Relay.startServer(accountProviders, accountRenderers, killRunningRelay) | ||
server_1.Relay.startServer(accountProviders, accountRenderers, programs, killRunningRelay) | ||
.then(({ app }) => { | ||
@@ -79,0 +79,0 @@ (0, utils_1.logInfo)('Successfully launched Relay at %s', (0, http_1.resolveServerAddress)(app)); |
@@ -5,2 +5,3 @@ import { Commitment } from '@solana/web3.js'; | ||
* | ||
* @property label a human-readable label for the program. | ||
* @property programId the public key under which to deploy the program | ||
@@ -12,2 +13,3 @@ * | ||
export declare type Program = { | ||
label?: string; | ||
programId: string; | ||
@@ -14,0 +16,0 @@ deployPath: string; |
{ | ||
"name": "@metaplex-foundation/amman", | ||
"version": "0.2.0", | ||
"version": "0.3.0", | ||
"description": "A modern mandatory toolbelt to help test solana SDK libraries and apps on a locally running validator.", | ||
@@ -61,2 +61,3 @@ "main": "dist/amman.js", | ||
"socket.io-client": "^4.4.1", | ||
"split2": "^4.1.0", | ||
"text-table": "^0.2.0", | ||
@@ -71,2 +72,3 @@ "wait-on": "^6.0.0", | ||
"@types/numeral": "^2.0.2", | ||
"@types/split2": "^3.2.1", | ||
"@types/text-table": "^0.2.2", | ||
@@ -73,0 +75,0 @@ "@types/wait-on": "^5.3.1", |
@@ -31,4 +31,5 @@ # Amman | ||
mock storage if so configured | ||
amman stop Stops the relay and storage and kills the running solana test | ||
validator | ||
amman stop Stops the relay and storage and kills the running solana | ||
test validator | ||
amman logs Launches 'solana logs' and pipes them through a prettifier | ||
amman airdrop Airdrops provided Sol to the payer | ||
@@ -86,3 +87,7 @@ amman label Adds labels for accounts or transactions to amman | ||
programs: [ | ||
{ programId: programIds.metadata, deployPath: localDeployPath('mpl_token_metadata') }, | ||
{ | ||
label: 'Token Metadata Program', | ||
programId: programIds.metadata, | ||
deployPath: localDeployPath('mpl_token_metadata') | ||
}, | ||
], | ||
@@ -89,0 +94,0 @@ jsonRpcUrl: LOCALHOST, |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
283610
165
4417
113
17
14
+ Addedsplit2@^4.1.0
+ Addedsplit2@4.2.0(transitive)