Skip to content
Snippets Groups Projects
Commit d9d236c3 authored by Benoit Lavenier's avatar Benoit Lavenier
Browse files

[enh] Add commonTime in block query

parent 2043d71e
No related branches found
No related tags found
No related merge requests found
Pipeline #7367 failed
...@@ -25,7 +25,7 @@ export type IFieldContext = { ...@@ -25,7 +25,7 @@ export type IFieldContext = {
export function plugModule(server: Server, logger?: any) { export function plugModule(server: Server, logger?: any) {
logger = logger || logger_1.NewLogger(); logger = logger || logger_1.NewLogger();
const schemaFile = path.join(__dirname, 'schema.graphqls'); const schemaFile = path.join(__dirname, 'schema.graphql');
const typeDefs = fs.readFileSync(schemaFile, 'utf8'); const typeDefs = fs.readFileSync(schemaFile, 'utf8');
return makeExecutableSchema({ return makeExecutableSchema({
...@@ -55,11 +55,18 @@ export function plugModule(server: Server, logger?: any) { ...@@ -55,11 +55,18 @@ export function plugModule(server: Server, logger?: any) {
blockchainParameters: () => server.dal.getParameters(), blockchainParameters: () => server.dal.getParameters(),
block: async (_, { number }: { number?: number }) => { block: async (_, { number }: { number?: number }) => {
if (number !== undefined) { const block = (number !== undefined) ?
return server.dal.getBlock(number) await server.dal.getBlock(number) :
await server.dal.getCurrentBlockOrNull();
if (!block) return null;
return {
...block,
// TODO make sure this is the final RFC name
commonTime: async () => {
const parameters = await server.dal.getParameters();
return parameters && (block.medianTime + (parameters.avgGenTime * parameters.medianTimeBlocks / 2)) || null;
} }
const b = await server.dal.getCurrentBlockOrNull() } || null;
return b
}, },
member: async (_, { uid, pub }: { uid: string, pub: string }) => { member: async (_, { uid, pub }: { uid: string, pub: string }) => {
......
export declare interface BlockRef { export declare class Block {
number: number; number: number;
// Block hash // Block hash
hash: string; hash: string;
...@@ -9,6 +9,10 @@ export declare interface BlockRef { ...@@ -9,6 +9,10 @@ export declare interface BlockRef {
// Block median time // Block median time
medianTime: number; medianTime: number;
// = median time + (avgGenTime * medianTime / 2) // commonTime = medianTime + (avgGenTime * medianTimeBlocks / 2)
userTime: number; // TODO check the RFC final name
commonTime: number;
// TODO: check if define in the RFC
issuerName: string;
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment