From accef527feb0edd5dabf6501d8c4ead43db89b83 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Mon, 10 Feb 2020 11:39:02 +0100 Subject: [PATCH] Move and test loadTokenTickers --- packages/faucet/src/actions/start/start.ts | 13 ++++--------- packages/faucet/src/faucet.spec.ts | 12 ++++++++++++ packages/faucet/src/faucet.ts | 14 +++++++------- packages/faucet/src/multichainhelpers.ts | 6 ------ 4 files changed, 23 insertions(+), 22 deletions(-) diff --git a/packages/faucet/src/actions/start/start.ts b/packages/faucet/src/actions/start/start.ts index 29b6027a..90af7ca1 100644 --- a/packages/faucet/src/actions/start/start.ts +++ b/packages/faucet/src/actions/start/start.ts @@ -8,12 +8,7 @@ import { isValidAddress } from "../../addresses"; import * as constants from "../../constants"; import { logAccountsState, logSendJob } from "../../debugging"; import { Faucet } from "../../faucet"; -import { - availableTokensFromHolder, - identitiesOfFirstWallet, - loadAccounts, - loadTokenTickers, -} from "../../multichainhelpers"; +import { availableTokensFromHolder, identitiesOfFirstWallet, loadAccounts } from "../../multichainhelpers"; import { setSecretAndCreateIdentities } from "../../profile"; import { SendJob } from "../../types"; import { HttpError } from "./httperror"; @@ -55,7 +50,9 @@ export async function start(args: ReadonlyArray): Promise { await setSecretAndCreateIdentities(profile, constants.mnemonic, connectedChainId); - const chainTokens = await loadTokenTickers(connection); + const faucet = new Faucet(constants.tokenConfig, connection, connector.codec, profile); + + const chainTokens = await faucet.loadTokenTickers(); console.info("Chain tokens:", chainTokens); const accounts = await loadAccounts(profile, connection); @@ -71,8 +68,6 @@ export async function start(args: ReadonlyArray): Promise { const distibutorIdentities = identitiesOfFirstWallet(profile).slice(1); - const faucet = new Faucet(constants.tokenConfig, connection, connector.codec, profile); - await faucet.refill(); setInterval(async () => faucet.refill(), 60_000); // ever 60 seconds diff --git a/packages/faucet/src/faucet.spec.ts b/packages/faucet/src/faucet.spec.ts index fe5610b7..6526a504 100644 --- a/packages/faucet/src/faucet.spec.ts +++ b/packages/faucet/src/faucet.spec.ts @@ -107,4 +107,16 @@ describe("Faucet", () => { connection.disconnect(); }); }); + + describe("loadTokenTickers", () => { + it("works", async () => { + pendingWithoutCosmos(); + const connection = await CosmWasmConnection.establish(httpUrl, defaultPrefix, defaultConfig); + const { profile } = await makeProfile(); + const faucet = new Faucet(defaultConfig, connection, codec, profile); + const tickers = await faucet.loadTokenTickers(); + expect(tickers).toEqual(["COSM", "STAKE"]); + connection.disconnect(); + }); + }); }); diff --git a/packages/faucet/src/faucet.ts b/packages/faucet/src/faucet.ts index ac8f1b8d..c8e49a8b 100644 --- a/packages/faucet/src/faucet.ts +++ b/packages/faucet/src/faucet.ts @@ -4,18 +4,14 @@ import { isBlockInfoFailed, isBlockInfoPending, SendTransaction, + TokenTicker, TxCodec, } from "@iov/bcp"; import { UserProfile } from "@iov/keycontrol"; import { sleep } from "@iov/utils"; import { debugAccount, logAccountsState, logSendJob } from "./debugging"; -import { - availableTokensFromHolder, - identitiesOfFirstWallet, - loadAccounts, - loadTokenTickers, -} from "./multichainhelpers"; +import { availableTokensFromHolder, identitiesOfFirstWallet, loadAccounts } from "./multichainhelpers"; import { TokenManager } from "./tokenmanager"; import { SendJob } from "./types"; @@ -63,9 +59,13 @@ export class Faucet { } } + public async loadTokenTickers(): Promise> { + return (await this.connection.getAllTokens()).map(token => token.tokenTicker); + } + public async refill(): Promise { console.info(`Connected to network: ${this.connection.chainId()}`); - console.info(`Tokens on network: ${(await loadTokenTickers(this.connection)).join(", ")}`); + console.info(`Tokens on network: ${(await this.loadTokenTickers()).join(", ")}`); const holderIdentity = identitiesOfFirstWallet(this.profile)[0]; diff --git a/packages/faucet/src/multichainhelpers.ts b/packages/faucet/src/multichainhelpers.ts index 2bfcfbb6..dc9e1164 100644 --- a/packages/faucet/src/multichainhelpers.ts +++ b/packages/faucet/src/multichainhelpers.ts @@ -33,12 +33,6 @@ export async function loadAccounts( return out; } -export async function loadTokenTickers( - connection: BlockchainConnection, -): Promise> { - return (await connection.getAllTokens()).map(token => token.tokenTicker); -} - export function availableTokensFromHolder(holderAccount: Account): ReadonlyArray { return holderAccount.balance.map(coin => coin.tokenTicker); }