Skip to content

Commit

Permalink
Add reservations flag to project show command (#94)
Browse files Browse the repository at this point in the history
  • Loading branch information
jlmonroy13 authored Nov 27, 2024
1 parent 713f391 commit fe59e65
Showing 1 changed file with 13 additions and 1 deletion.
14 changes: 13 additions & 1 deletion src/commands/project/show.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,32 @@
import { Flags } from "@oclif/core";
import { Arg } from "@oclif/core/lib/interfaces";
import { Result } from "ethers/lib/utils";
import { BlockchainCommand } from "../../base";
import { formatProject, getContract, getProvider, parseHash, pretty } from "../../helpers";
import { formatNode, formatProject, getContract, getProvider, parseHash, pretty } from "../../helpers";

export default class ProjectShow extends BlockchainCommand {
static summary = "Show details of an EarthFast Network project.";
static examples = ["<%= config.bin %> <%= command.id %> 0x123abc..."];
static usage = "<%= command.id %> ID";
static args: Arg[] = [{ name: "ID", description: "The ID of the project to show.", required: true }];
static flags = {
reservations: Flags.boolean({ description: "Show reservations for the project", default: false }),
};

public async run(): Promise<Record<string, unknown>> {
const { args, flags } = await this.parse(ProjectShow);
const provider = await getProvider(flags.network, flags.rpc);
const projects = await getContract(flags.network, flags.abi, "EarthfastProjects", provider);
const reservations = await getContract(flags.network, flags.abi, "EarthfastReservations", provider);
const projectId = parseHash(args.ID);
const record = await projects.getProject(projectId);
const output = formatProject(record);

if (flags.reservations) {
const reservationResults: Result[] = await reservations.getReservations(projectId, 0, 1000);
output.reservations = reservationResults.map((r) => formatNode(r));
}

this.log(pretty(output));
return output;
}
Expand Down

0 comments on commit fe59e65

Please sign in to comment.