aboutsummaryrefslogtreecommitdiffstats
path: root/packages/typescript-typings/types/solc/index.d.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/typescript-typings/types/solc/index.d.ts')
-rw-r--r--packages/typescript-typings/types/solc/index.d.ts105
1 files changed, 105 insertions, 0 deletions
diff --git a/packages/typescript-typings/types/solc/index.d.ts b/packages/typescript-typings/types/solc/index.d.ts
new file mode 100644
index 000000000..fefad9f6a
--- /dev/null
+++ b/packages/typescript-typings/types/solc/index.d.ts
@@ -0,0 +1,105 @@
+declare module 'solc' {
+ export { ErrorType, ErrorSeverity, SolcError, StandardContractOutput, StandardOutput } from 'ethereum-types';
+ import { SolcError } from 'ethereum-types';
+ export interface ContractCompilationResult {
+ srcmap: string;
+ srcmapRuntime: string;
+ bytecode: string;
+ runtimeBytecode: string;
+ interface: string;
+ }
+ export interface CompilationResult {
+ errors: string[];
+ contracts: {
+ [contractIdentifier: string]: ContractCompilationResult;
+ };
+ sources: {
+ [sourceName: string]: {
+ AST: any;
+ };
+ };
+ sourceList: string[];
+ }
+ export interface ImportContents {
+ contents: string;
+ }
+ export interface InputSources {
+ sources: {
+ [fileName: string]: string;
+ };
+ }
+ export interface BaseSource {
+ keccak256?: string;
+ }
+ export interface InMemorySource extends BaseSource {
+ content: string;
+ }
+ export interface UrlSource extends BaseSource {
+ urls: string[];
+ }
+ export type Source = UrlSource | InMemorySource;
+ export type OutputField =
+ | '*'
+ | 'ast'
+ | 'legacyAST'
+ | 'abi'
+ | 'devdoc'
+ | 'userdoc'
+ | 'metadata'
+ | 'ir'
+ | 'evm.assembly'
+ | 'evm.legacyAssembly'
+ | 'evm.bytecode.object'
+ | 'evm.bytecode.opcodes'
+ | 'evm.bytecode.sourceMap'
+ | 'evm.bytecode.linkReferences'
+ | 'evm.deployedBytecode.object'
+ | 'evm.deployedBytecode.opcodes'
+ | 'evm.deployedBytecode.sourceMap'
+ | 'evm.deployedBytecode.linkReferences'
+ | 'evm.methodIdentifiers'
+ | 'evm.gasEstimates'
+ | 'ewasm.wast'
+ | 'ewasm.wasm';
+ export interface CompilerSettings {
+ remappings?: string[];
+ optimizer?: {
+ enabled: boolean;
+ runs?: number;
+ };
+ evmVersion?: 'homestead' | 'tangerineWhistle' | 'spuriousDragon' | 'byzantium' | 'constantinople';
+ metadata?: {
+ useLiteralContent: true;
+ };
+ libraries?: {
+ [fileName: string]: {
+ [libName: string]: string;
+ };
+ };
+ outputSelection: {
+ [fileName: string]: {
+ [contractName: string]: OutputField[];
+ };
+ };
+ }
+ export interface StandardInput {
+ language: 'Solidity' | 'serpent' | 'lll' | 'assembly';
+ sources: {
+ [fileName: string]: Source;
+ };
+ settings: CompilerSettings;
+ }
+ export interface SolcInstance {
+ compile(
+ sources: InputSources,
+ optimizerEnabled: number,
+ findImports: (importPath: string) => ImportContents,
+ ): CompilationResult;
+ compileStandardWrapper(input: string, findImports?: (importPath: string) => ImportContents): string;
+ }
+ export function loadRemoteVersion(
+ versionName: string,
+ cb: (err: SolcError | null, res?: SolcInstance) => void,
+ ): void;
+ export function setupMethods(solcBin: any): SolcInstance;
+}