From 7e270c2215d4a2b596f1b03685721a5cc81c0b29 Mon Sep 17 00:00:00 2001 From: pedro-clabs <77401336+pedro-clabs@users.noreply.github.com> Date: Thu, 3 Jun 2021 12:56:10 +0100 Subject: [PATCH] Add token address support to oracle commands. (#8010) * Add token address support to oracle commands. * Update documentation. --- packages/cli/src/commands/oracle/list.ts | 10 +--------- .../src/commands/oracle/remove-expired-reports.ts | 13 ++----------- packages/cli/src/commands/oracle/report.ts | 13 ++----------- packages/cli/src/commands/oracle/reports.ts | 10 +--------- packages/docs/command-line-interface/oracle.md | 8 ++++---- packages/sdk/contractkit/src/base.ts | 1 - 6 files changed, 10 insertions(+), 45 deletions(-) diff --git a/packages/cli/src/commands/oracle/list.ts b/packages/cli/src/commands/oracle/list.ts index 01a81111952..1bb0d3fa2f3 100644 --- a/packages/cli/src/commands/oracle/list.ts +++ b/packages/cli/src/commands/oracle/list.ts @@ -1,5 +1,4 @@ import { CeloContract } from '@celo/contractkit' -import { stableTokenContractArray } from '@celo/contractkit/lib/base' import { BaseCommand } from '../../base' import { failWith } from '../../utils/cli' @@ -15,7 +14,6 @@ export default class List extends BaseCommand { name: 'token', required: true, description: 'Token to list the oracles for', - options: stableTokenContractArray, default: CeloContract.StableToken, }, ] @@ -26,13 +24,7 @@ export default class List extends BaseCommand { const res = this.parse(List) const sortedOracles = await this.kit.contracts.getSortedOracles() - try { - await this.kit.registry.addressFor(res.args.token) - } catch { - failWith(`The ${res.args.token} contract was not deployed yet`) - } - - const oracles = await sortedOracles.getOracles(res.args.token) + const oracles = await sortedOracles.getOracles(res.args.token).catch((e) => failWith(e)) console.log(oracles) } } diff --git a/packages/cli/src/commands/oracle/remove-expired-reports.ts b/packages/cli/src/commands/oracle/remove-expired-reports.ts index f75fa8f1348..a05be358468 100644 --- a/packages/cli/src/commands/oracle/remove-expired-reports.ts +++ b/packages/cli/src/commands/oracle/remove-expired-reports.ts @@ -1,12 +1,10 @@ import { CeloContract } from '@celo/contractkit' -import { stableTokenContractArray } from '@celo/contractkit/lib/base' import { BaseCommand } from '../../base' import { displaySendTx, failWith } from '../../utils/cli' import { Flags } from '../../utils/command' export default class RemoveExpiredReports extends BaseCommand { - static description = - 'Remove expired oracle reports for a specified token (currently just Celo Dollar, aka "StableToken")' + static description = 'Remove expired oracle reports for a specified token' static args = [ { @@ -14,7 +12,6 @@ export default class RemoveExpiredReports extends BaseCommand { required: true, default: CeloContract.StableToken, description: 'Token to remove expired reports for', - options: stableTokenContractArray, }, ] static flags = { @@ -34,13 +31,7 @@ export default class RemoveExpiredReports extends BaseCommand { async run() { const res = this.parse(RemoveExpiredReports) - try { - await this.kit.registry.addressFor(res.args.token) - } catch { - failWith(`The ${res.args.token} contract was not deployed yet`) - } - - const sortedOracles = await this.kit.contracts.getSortedOracles() + const sortedOracles = await this.kit.contracts.getSortedOracles().catch((e) => failWith(e)) const txo = await sortedOracles.removeExpiredReports(res.args.token) await displaySendTx('removeExpiredReports', txo) } diff --git a/packages/cli/src/commands/oracle/report.ts b/packages/cli/src/commands/oracle/report.ts index 0008c6fba43..c25275a8594 100644 --- a/packages/cli/src/commands/oracle/report.ts +++ b/packages/cli/src/commands/oracle/report.ts @@ -1,5 +1,4 @@ import { CeloContract } from '@celo/contractkit' -import { stableTokenContractArray } from '@celo/contractkit/lib/base' import { flags } from '@oclif/command' import BigNumber from 'bignumber.js' import { BaseCommand } from '../../base' @@ -7,8 +6,7 @@ import { displaySendTx, failWith } from '../../utils/cli' import { Flags } from '../../utils/command' export default class ReportPrice extends BaseCommand { - static description = - 'Report the price of CELO in a specified token (currently just Celo Dollar, aka "StableToken")' + static description = 'Report the price of CELO in a specified token' static args = [ { @@ -16,7 +14,6 @@ export default class ReportPrice extends BaseCommand { required: true, default: CeloContract.StableToken, description: 'Token to report on', - options: stableTokenContractArray, }, ] static flags = { @@ -39,15 +36,9 @@ export default class ReportPrice extends BaseCommand { const sortedOracles = await this.kit.contracts.getSortedOracles() const value = new BigNumber(res.flags.value) - try { - await this.kit.registry.addressFor(res.args.token) - } catch { - failWith(`The ${res.args.token} contract was not deployed yet`) - } - await displaySendTx( 'sortedOracles.report', - await sortedOracles.report(res.args.token, value, res.flags.from) + await sortedOracles.report(res.args.token, value, res.flags.from).catch((e) => failWith(e)) ) this.log(`Reported oracle value: ${value.toString()} ${res.args.token} == 1 CELO`) } diff --git a/packages/cli/src/commands/oracle/reports.ts b/packages/cli/src/commands/oracle/reports.ts index a7533af4b7e..28aa1ad729a 100644 --- a/packages/cli/src/commands/oracle/reports.ts +++ b/packages/cli/src/commands/oracle/reports.ts @@ -1,5 +1,4 @@ import { CeloContract } from '@celo/contractkit' -import { stableTokenContractArray } from '@celo/contractkit/lib/base' import { cli } from 'cli-ux' import { BaseCommand } from '../../base' import { failWith } from '../../utils/cli' @@ -17,7 +16,6 @@ export default class Reports extends BaseCommand { name: 'token', required: true, description: 'Token to list the reports for', - options: stableTokenContractArray, default: CeloContract.StableToken, }, ] @@ -28,13 +26,7 @@ export default class Reports extends BaseCommand { const res = this.parse(Reports) const sortedOracles = await this.kit.contracts.getSortedOracles() - try { - await this.kit.registry.addressFor(res.args.token) - } catch { - failWith(`The ${res.args.token} contract was not deployed yet`) - } - - const reports = await sortedOracles.getReports(res.args.token) + const reports = await sortedOracles.getReports(res.args.token).catch((e) => failWith(e)) cli.table( reports, { diff --git a/packages/docs/command-line-interface/oracle.md b/packages/docs/command-line-interface/oracle.md index 30a0a18b7b3..a595f825f8a 100644 --- a/packages/docs/command-line-interface/oracle.md +++ b/packages/docs/command-line-interface/oracle.md @@ -31,10 +31,10 @@ _See code: [src/commands/oracle/list.ts](https://github.com/celo-org/celo-monore ## `celocli oracle:remove-expired-reports TOKEN` -Remove expired oracle reports for a specified token (currently just Celo Dollar, aka "StableToken") +Remove expired oracle reports for a specified token ``` -Remove expired oracle reports for a specified token (currently just Celo Dollar, aka "StableToken") +Remove expired oracle reports for a specified token USAGE $ celocli oracle:remove-expired-reports TOKEN @@ -61,10 +61,10 @@ _See code: [src/commands/oracle/remove-expired-reports.ts](https://github.com/ce ## `celocli oracle:report TOKEN` -Report the price of CELO in a specified token (currently just Celo Dollar, aka "StableToken") +Report the price of CELO in a specified token ``` -Report the price of CELO in a specified token (currently just Celo Dollar, aka "StableToken") +Report the price of CELO in a specified token USAGE $ celocli oracle:report TOKEN diff --git a/packages/sdk/contractkit/src/base.ts b/packages/sdk/contractkit/src/base.ts index 6e6e9f008fb..0b2b4da000d 100644 --- a/packages/sdk/contractkit/src/base.ts +++ b/packages/sdk/contractkit/src/base.ts @@ -30,7 +30,6 @@ export enum CeloContract { } export type StableTokenContract = CeloContract.StableToken | CeloContract.StableTokenEUR -export const stableTokenContractArray = [CeloContract.StableToken, CeloContract.StableTokenEUR] export type ExchangeContract = CeloContract.Exchange | CeloContract.ExchangeEUR