diff --git a/packages/tendermint-rpc/src/adaptors/v0-33/responses.ts b/packages/tendermint-rpc/src/adaptors/v0-33/responses.ts index 81af176e..4740558e 100644 --- a/packages/tendermint-rpc/src/adaptors/v0-33/responses.ts +++ b/packages/tendermint-rpc/src/adaptors/v0-33/responses.ts @@ -13,7 +13,6 @@ import { Base64, Base64String, DateTime, - DateTimeString, dictionaryToStringMap, Hex, HexString, @@ -286,7 +285,7 @@ interface RpcHeader { readonly version: RpcBlockVersion; readonly chain_id: string; readonly height: IntegerString; - readonly time: DateTimeString; + readonly time: string; readonly num_txs: IntegerString; readonly total_txs: IntegerString; @@ -382,7 +381,7 @@ function decodeBroadcastTxCommit(data: RpcBroadcastTxCommitResponse): responses. type RpcSignature = { readonly block_id_flag: number; readonly validator_address: HexString; - readonly timestamp: DateTimeString; + readonly timestamp: string; readonly signature: Base64String; }; @@ -436,7 +435,7 @@ function decodeValidatorGenesis(data: RpcValidatorGenesis): responses.Validator } interface RpcGenesisResponse { - readonly genesis_time: DateTimeString; + readonly genesis_time: string; readonly chain_id: string; readonly consensus_params: RpcConsensusParams; // The validators key is used to specify a set of validators for testnets or PoA blockchains. @@ -519,7 +518,7 @@ interface RpcSyncInfo { readonly latest_block_hash: HexString; readonly latest_app_hash: HexString; readonly latest_block_height: IntegerString; - readonly latest_block_time: DateTimeString; + readonly latest_block_time: string; readonly catching_up: boolean; } diff --git a/packages/tendermint-rpc/src/encodings.spec.ts b/packages/tendermint-rpc/src/encodings.spec.ts index e64c517a..ea89db8e 100644 --- a/packages/tendermint-rpc/src/encodings.spec.ts +++ b/packages/tendermint-rpc/src/encodings.spec.ts @@ -2,7 +2,6 @@ import { ReadonlyDate } from "readonly-date"; import { DateTime, - DateTimeString, encodeBlockId, encodeBytes, encodeInt, @@ -15,13 +14,13 @@ import { ReadonlyDateWithNanoseconds } from "./responses"; describe("encodings", () => { describe("DateTime", () => { it("decodes a string", () => { - expect(DateTime.decode("2020-12-15T10:57:26.778Z" as DateTimeString).nanoseconds).toEqual(0); - expect(DateTime.decode("2020-12-15T10:57:26.7789Z" as DateTimeString).nanoseconds).toEqual(900000); - expect(DateTime.decode("2020-12-15T10:57:26.77809Z" as DateTimeString).nanoseconds).toEqual(90000); - expect(DateTime.decode("2020-12-15T10:57:26.778009Z" as DateTimeString).nanoseconds).toEqual(9000); - expect(DateTime.decode("2020-12-15T10:57:26.7780009Z" as DateTimeString).nanoseconds).toEqual(900); - expect(DateTime.decode("2020-12-15T10:57:26.77800009Z" as DateTimeString).nanoseconds).toEqual(90); - expect(DateTime.decode("2020-12-15T10:57:26.778000009Z" as DateTimeString).nanoseconds).toEqual(9); + expect(DateTime.decode("2020-12-15T10:57:26.778Z").nanoseconds).toEqual(0); + expect(DateTime.decode("2020-12-15T10:57:26.7789Z").nanoseconds).toEqual(900000); + expect(DateTime.decode("2020-12-15T10:57:26.77809Z").nanoseconds).toEqual(90000); + expect(DateTime.decode("2020-12-15T10:57:26.778009Z").nanoseconds).toEqual(9000); + expect(DateTime.decode("2020-12-15T10:57:26.7780009Z").nanoseconds).toEqual(900); + expect(DateTime.decode("2020-12-15T10:57:26.77800009Z").nanoseconds).toEqual(90); + expect(DateTime.decode("2020-12-15T10:57:26.778000009Z").nanoseconds).toEqual(9); }); it("encodes a string", () => { diff --git a/packages/tendermint-rpc/src/encodings.ts b/packages/tendermint-rpc/src/encodings.ts index aaab84a1..964554ca 100644 --- a/packages/tendermint-rpc/src/encodings.ts +++ b/packages/tendermint-rpc/src/encodings.ts @@ -7,7 +7,6 @@ import { BlockId, ReadonlyDateWithNanoseconds, Version } from "./responses"; export type Base64String = string & As<"base64">; export type HexString = string & As<"hex">; export type IntegerString = string & As<"integer">; -export type DateTimeString = string & As<"datetime">; /** * A runtime checker that ensures a given value is set (i.e. not undefined or null) @@ -172,7 +171,7 @@ export class Base64 { } export class DateTime { - public static decode(dateTimeString: DateTimeString): ReadonlyDateWithNanoseconds { + public static decode(dateTimeString: string): ReadonlyDateWithNanoseconds { const readonlyDate = fromRfc3339(dateTimeString); const nanosecondsMatch = dateTimeString.match(/\.(\d+)Z$/); const nanoseconds = nanosecondsMatch ? nanosecondsMatch[1].slice(3) : ""; @@ -180,10 +179,10 @@ export class DateTime { return readonlyDate as ReadonlyDateWithNanoseconds; } - public static encode(dateTime: ReadonlyDateWithNanoseconds): DateTimeString { + public static encode(dateTime: ReadonlyDateWithNanoseconds): string { const millisecondIso = dateTime.toISOString(); const nanoseconds = dateTime.nanoseconds?.toString() ?? ""; - return `${millisecondIso.slice(0, -1)}${nanoseconds.padStart(6, "0")}Z` as DateTimeString; + return `${millisecondIso.slice(0, -1)}${nanoseconds.padStart(6, "0")}Z`; } } diff --git a/packages/tendermint-rpc/types/encodings.d.ts b/packages/tendermint-rpc/types/encodings.d.ts index 83a48433..8a455cc0 100644 --- a/packages/tendermint-rpc/types/encodings.d.ts +++ b/packages/tendermint-rpc/types/encodings.d.ts @@ -3,7 +3,6 @@ import { BlockId, ReadonlyDateWithNanoseconds, Version } from "./responses"; export declare type Base64String = string & As<"base64">; export declare type HexString = string & As<"hex">; export declare type IntegerString = string & As<"integer">; -export declare type DateTimeString = string & As<"datetime">; /** * A runtime checker that ensures a given value is set (i.e. not undefined or null) * @@ -67,8 +66,8 @@ export declare class Base64 { static decode(base64String: Base64String): Uint8Array; } export declare class DateTime { - static decode(dateTimeString: DateTimeString): ReadonlyDateWithNanoseconds; - static encode(dateTime: ReadonlyDateWithNanoseconds): DateTimeString; + static decode(dateTimeString: string): ReadonlyDateWithNanoseconds; + static encode(dateTime: ReadonlyDateWithNanoseconds): string; } export declare class Hex { static encode(data: Uint8Array): HexString;