diff --git a/src/commands/node/list.ts b/src/commands/node/list.ts index eaae952..4eb20bf 100644 --- a/src/commands/node/list.ts +++ b/src/commands/node/list.ts @@ -1,6 +1,7 @@ import { Flags } from "@oclif/core"; import { BlockchainCommand } from "../../base"; import { getContract, getProvider, normalizeHex } from "../../helpers"; +import { supportedNetworks } from "../../networks"; export default class NodeList extends BlockchainCommand { static description = "Lists content nodes on the Armada Network."; @@ -15,8 +16,8 @@ export default class NodeList extends BlockchainCommand { public async run(): Promise { const { flags } = await this.parse(NodeList); - const provider = await getProvider(flags); - const nodes = await getContract(flags, "nodes", provider); + const provider = await getProvider(flags.network as supportedNetworks); + const nodes = await getContract(flags.network as supportedNetworks, "nodes", provider); const operator = normalizeHex(flags.operator); const data = await nodes.getNodes(operator, flags.topology, flags.skip, flags.size); console.log(data); diff --git a/src/commands/project/content.ts b/src/commands/project/content.ts index abcc116..b3cb9cb 100644 --- a/src/commands/project/content.ts +++ b/src/commands/project/content.ts @@ -1,5 +1,6 @@ import { TransactionCommand } from "../../base"; import { decodeEvent, getContract, getSigner, normalizeHex } from "../../helpers"; +import { supportedNetworks } from "../../networks"; export default class ProjectContent extends TransactionCommand { static summary = "Publishes the provided bundle on the network."; @@ -13,9 +14,9 @@ export default class ProjectContent extends TransactionCommand { ]; public async run(): Promise { - const { args } = await this.parse(ProjectContent); - const signer = await getSigner(args); - const projects = await getContract(args, "projects", signer); + const { args, flags } = await this.parse(ProjectContent); + const signer = await getSigner(flags.network as supportedNetworks, flags.ledger); + const projects = await getContract(flags.network as supportedNetworks, "projects", signer); const projectId = normalizeHex(args.ID); const bundleSha = normalizeHex(args.SHA); const tx = await projects.setProjectContent(projectId, args.URL, bundleSha); diff --git a/src/commands/project/create.ts b/src/commands/project/create.ts index f85cc1e..cb27190 100644 --- a/src/commands/project/create.ts +++ b/src/commands/project/create.ts @@ -1,5 +1,6 @@ import { TransactionCommand } from "../../base"; import { decodeEvent, getContract, getSigner, normalizeHex } from "../../helpers"; +import { supportedNetworks } from "../../networks"; export default class ProjectCreate extends TransactionCommand { static summary = "Registers a new project on the Armada Network."; @@ -13,13 +14,13 @@ export default class ProjectCreate extends TransactionCommand { ]; public async run(): Promise { - const { args } = await this.parse(ProjectCreate); + const { args, flags } = await this.parse(ProjectCreate); if (!!args.URL !== !!args.SHA) { this.error("URL and SHA must be specified together"); } - const signer = await getSigner(args); - const projects = await getContract(args, "projects", signer); + const signer = await getSigner(flags.network as supportedNetworks, flags.ledger); + const projects = await getContract(flags.network as supportedNetworks, "projects", signer); const address = await signer.getAddress(); const bundleSha = normalizeHex(args.SHA); const tx = await projects.createProject([address, args.NAME, args.EMAIL, args.URL, bundleSha]); diff --git a/src/helpers.ts b/src/helpers.ts index 38df33b..03cbea2 100644 --- a/src/helpers.ts +++ b/src/helpers.ts @@ -1,4 +1,4 @@ -import type { TransactionReceipt } from "@ethersproject/abstract-provider"; +import type { Provider, TransactionReceipt } from "@ethersproject/abstract-provider"; import { Contract, ethers, Signer } from "ethers"; import { Result } from "ethers/lib/utils"; import inquirer from "inquirer"; @@ -15,18 +15,18 @@ export function normalizeHex(s: string | undefined): string { } } -export async function getProvider(argv: { [name: string]: unknown }) { - const url = getNetworkRpcUrl(argv.network as supportedNetworks); +export async function getProvider(network: supportedNetworks): Promise { + const url = getNetworkRpcUrl(network); const provider = new ethers.providers.JsonRpcProvider(url); return provider; } -export async function getSigner(argv: { [name: string]: unknown }): Promise { - const url = getNetworkRpcUrl(argv.network as supportedNetworks); +export async function getSigner(network: supportedNetworks, ledger: boolean): Promise { + const url = getNetworkRpcUrl(network); const provider = new ethers.providers.JsonRpcProvider(url); let signer: Signer; - if (argv.ledger) { + if (ledger) { console.log("Make sure the Ledger wallet is unlocked and the Ethereum application is open"); signer = new LedgerSigner(provider); const address = await signer.getAddress(); @@ -67,11 +67,11 @@ export async function getSigner(argv: { [name: string]: unknown }): Promise { - const abi = getArmadaAbi(argv.network as supportedNetworks, name); + const abi = getArmadaAbi(network, name); if (signerOrProvider instanceof Signer) { const signer = signerOrProvider; const contract = new Contract(abi.address, abi.abi, signer.provider);