@patchworkdev/common
Version:
Patchwork Development Kit
70 lines (69 loc) • 2.21 kB
TypeScript
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;
}