diff --git a/src/cosmosconnection.spec.ts b/src/cosmosconnection.spec.ts index 8bcd9bd5..897b863e 100644 --- a/src/cosmosconnection.spec.ts +++ b/src/cosmosconnection.spec.ts @@ -73,11 +73,11 @@ describe("CosmosConnection", () => { it("displays a given token", async () => { pendingWithoutCosmos(); const connection = await CosmosConnection.establish(httpUrl); - const token = await connection.getToken("ATOM" as TokenTicker); + const token = await connection.getToken("cosm" as TokenTicker); expect(token).toEqual({ fractionalDigits: 6, - tokenName: "Atom", - tokenTicker: "ATOM" as TokenTicker, + tokenName: "Cosm", + tokenTicker: "cosm" as TokenTicker, }); connection.disconnect(); }); @@ -96,12 +96,18 @@ describe("CosmosConnection", () => { pendingWithoutCosmos(); const connection = await CosmosConnection.establish(httpUrl); const tokens = await connection.getAllTokens(); + // TODO: make this more flexible expect(tokens).toEqual([ { fractionalDigits: 6, - tokenName: "Atom", - tokenTicker: "ATOM" as TokenTicker, + tokenName: "Cosm", + tokenTicker: "cosm" as TokenTicker, }, + { + fractionalDigits: 6, + tokenName: "Stake", + tokenTicker: "stake" as TokenTicker, + } ]); connection.disconnect(); }); diff --git a/src/cosmosconnection.ts b/src/cosmosconnection.ts index 2cad6de1..45460485 100644 --- a/src/cosmosconnection.ts +++ b/src/cosmosconnection.ts @@ -93,12 +93,17 @@ export class CosmosConnection implements BlockchainConnection { private constructor(restClient: RestClient, chainData: ChainData) { this.restClient = restClient; this.chainData = chainData; + // TODO: this is an argument this.primaryToken = { fractionalDigits: 6, - tokenName: "Atom", - tokenTicker: "ATOM" as TokenTicker, + tokenName: "Cosm", + tokenTicker: "cosm" as TokenTicker, }; - this.supportedTokens = [this.primaryToken]; + this.supportedTokens = [this.primaryToken, { + fractionalDigits: 6, + tokenName: "Stake", + tokenTicker: "stake" as TokenTicker, + }]; } public disconnect(): void { @@ -128,6 +133,7 @@ export class CosmosConnection implements BlockchainConnection { const account = result.value; const supportedCoins = account.coins.filter(({ denom }) => this.supportedTokens.find( + // TODO: ugly special case - fix this ({ tokenTicker }) => (tokenTicker === "ATOM" && denom === "uatom") || tokenTicker === denom, ), ); diff --git a/src/decode.ts b/src/decode.ts index 8018b2b1..c368c804 100644 --- a/src/decode.ts +++ b/src/decode.ts @@ -46,6 +46,7 @@ export function decodeFullSignature(signature: amino.StdSignature, nonce: number } export function decodeAmount(amount: amino.Coin): Amount { + // TODO: more uglyness here (breaks unit tests) if (amount.denom !== "uatom") { throw new Error("Only ATOM amounts are supported"); } @@ -53,6 +54,7 @@ export function decodeAmount(amount: amino.Coin): Amount { fractionalDigits: 6, quantity: amount.amount, tokenTicker: atom, + // tokenTicker: amount.denom as TokenTicker, }; }