tendermint-rpc: Remove DateTimeString type

This commit is contained in:
willclarktech 2020-12-15 12:20:27 +00:00
parent 98a771fcfc
commit 1fe99ffc0f
No known key found for this signature in database
GPG Key ID: 551A86E2E398ADF7
4 changed files with 16 additions and 20 deletions

View File

@ -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;
}

View File

@ -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", () => {

View File

@ -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`;
}
}

View File

@ -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;