import { Column, Entity, Index, OneToMany } from 'typeorm'; import { BlockchainInput } from './BlockchainInput'; import { BlockchainKernel } from './BlockchainKernel'; import { BlockchainOutput } from './BlockchainOutput'; @Entity('blockchain_block', { schema: 'public' }) export class BlockchainBlock { @Index() @Column('character varying', { nullable: false, primary: true, length: 64, name: 'hash', }) Hash: string; @Column('integer', { nullable: false, name: 'version', }) Version: number; @Column('integer', { nullable: false, name: 'height', }) Height: number; @Column('timestamp with time zone', { nullable: false, name: 'timestamp', }) Timestamp: Date; @Column('character varying', { nullable: false, length: 64, name: 'output_root', }) OutputRoot: string; @Column('character varying', { nullable: false, length: 64, name: 'range_proof_root', }) RangeProofRoot: string; @Column('character varying', { nullable: false, length: 64, name: 'kernel_root', }) KernelRoot: string; @Column('text', { nullable: false, name: 'nonce', }) Nonce: string; @Column('bigint', { nullable: false, name: 'total_difficulty_cuckaroo', }) TotalDifficultyCuckaroo: string; @Column('bigint', { nullable: false, name: 'total_difficulty_cuckatoo', }) TotalDifficultyCuckatoo: string; @Column('bigint', { nullable: false, name: 'total_difficulty_progpow', }) TotalDifficultyProgpow: string; @Column('bigint', { nullable: false, name: 'total_difficulty_randomx', }) TotalDifficultyRandomx: string; @Column('character varying', { nullable: false, length: 64, name: 'previous_id', }) PreviousId: string; @Column('character varying', { nullable: false, length: 64, name: 'total_kernel_offset', }) TotalKernelOffset: string; @Column('integer', { nullable: false, name: 'edge_bits', }) EdgeBits: number; @Column('character varying', { nullable: false, length: 64, name: 'proof', }) Proof: string; @Column('character varying', { nullable: false, length: 64, name: 'prev_root', }) PrevRoot: string; @Column('integer', { nullable: false, name: 'secondary_scaling', }) SecondaryScaling: number; @OneToMany( type => BlockchainInput, blockchain_input => blockchain_input.Block, ) BlockchainInputs: BlockchainInput[]; @OneToMany( type => BlockchainKernel, blockchain_kernel => blockchain_kernel.Block, ) BlockchainKernels: BlockchainKernel[]; @OneToMany( type => BlockchainOutput, blockchain_output => blockchain_output.Block, ) BlockchainOutputs: BlockchainOutput[]; }