UNPKG

@patchworkdev/common

Version:

Patchwork Development Kit

70 lines (69 loc) 2.21 kB
import { ContractConfig, Feature, FieldConfig, FieldType, FunctionConfig, ValidNameIdentifier, Visibility } from '../types'; export type ContractFieldType = { solidityType: string; name: string; bits: number; isString: boolean; }; export declare class ContractStorageField implements FieldConfig { id: number; permissionId: number; type: FieldType; arrayLength: number; visibility: Visibility; key: string; description: string; functionConfig: FunctionConfig; solidityType: string; fieldTypeSolidityEnum: string; slot: number; isString: boolean; elementBits: number; totalBits: number; offset: number; } export declare class ContractStorageSlot { fieldIDs: number[]; } export declare class ContractStorage { slots: ContractStorageSlot[]; fields: ContractStorageField[]; } export interface ContractSchema extends ContractConfig { features: Feature[]; storage: ContractStorage; hasLiteRef(): boolean; getMetadataStructName(): string; liteRefField(which: number): ContractStorageField; liteRefFieldCount(): number; liteRefArrayLength(which: number): number; liteRefSlotNumber(which: number): number; validate(): any; slots(): number; getField(fieldID: number): ContractStorageField; } export declare class ContractSchemaImpl implements ContractSchema { scopeName: string; name: ValidNameIdentifier; symbol: string; baseURI: string; schemaURI: string; imageURI: string; fields: FieldConfig[]; features: Feature[]; fragments: string[]; storage: ContractStorage; constructor(config: ContractConfig); orderFieldsPacked(origFields: ContractStorageField[]): ContractStorageField[]; buildStorage(rawEntries: FieldConfig[]): ContractStorage; hasLiteRef(): boolean; getMetadataStructName(): string; liteRefField(which: number): ContractStorageField; liteRefFieldCount(): number; liteRefArrayLength(which: number): number; liteRefSlotNumber(which: number): number; validate(): void; slots(): number; getField(fieldID: number): ContractStorageField; getFieldTypeEnum(name: string): ContractFieldType; }