Neverending Package Mountain
    Have ideas to improve npm?Join in the discussion! »

    @remix-project/remix-solidity
    TypeScript icon, indicating that this package has built-in type declarations

    0.3.35 • Public • Published

    Remix-Solidity

    npm version npm npm GitHub contributions welcome

    @remix-project/remix-solidity is a tool to load and run solidity compiler. It works underneath Remix IDE "Solidity Compiler" plugin which is used to load different versions of compiler and compile the smart contracts.

    Installation

    @remix-project/remix-solidity is an NPM package and can be installed using NPM as:

    npm install @remix-project/remix-solidity

    How to use

    @remix-project/remix-solidity exports:

        {
            Compiler: Compiler,
            CompilerInput: CompilerInput
        }
    

    CompilerInput can be used to form the compiler input by passing the options

    Compiler is a class containing various methods to perform compiler related actions. Have a look to Compiler interface:

    class Compiler {
        handleImportCall: (fileurl: string, cb: Function) => void;
        event: EventManager;
        state: CompilerState;
        constructor(handleImportCall: (fileurl: string, cb: Function) => void);
        /**
         * @dev Setter function for CompilerState's properties (used by IDE)
         * @param key key
         * @param value value of key in CompilerState
         */
        set<K extends keyof CompilerState>(key: K, value: CompilerState[K]): void;
        /**
         * @dev Internal function to compile the contract after gathering imports
         * @param files source file
         * @param missingInputs missing import file path list
         */
        internalCompile(files: Source, missingInputs?: string[]): void;
        /**
         * @dev Compile source files (used by IDE)
         * @param files source files
         * @param target target file name (This is passed as it is to IDE)
         */
        compile(files: Source, target: string): void;
        /**
         * @dev Called when compiler is loaded, set current compiler version
         * @param version compiler version
         */
        onCompilerLoaded(version: string): void;
        /**
         * @dev Called when compiler is loaded internally (without worker)
         */
        onInternalCompilerLoaded(): void;
        /**
         * @dev Called when compilation is finished
         * @param data compilation result data
         * @param missingInputs missing imports
         * @param source Source
         */
        onCompilationFinished(data: CompilationResult, missingInputs?: string[], source?: SourceWithTarget): void;
        /**
         * @dev Load compiler using given URL (used by IDE)
         * @param usingWorker if true, load compiler using worker
         * @param url URL to load compiler from
         */
        loadVersion(usingWorker: boolean, url: string): void;
        /**
         * @dev Load compiler using 'script' element (without worker)
         * @param url URL to load compiler from
         */
        loadInternal(url: string): void;
        /**
         * @dev Load compiler using web worker
         * @param url URL to load compiler from
         */
        loadWorker(url: string): void;
        /**
         * @dev Gather imports for compilation
         * @param files file sources
         * @param importHints import file list
         * @param cb callback
         */
        gatherImports(files: Source, importHints?: string[], cb?: gatherImportsCallbackInterface): void;
        /**
         * @dev Truncate version string
         * @param version version
         */
        truncateVersion(version: string): string;
        /**
         * @dev Update ABI according to current compiler version
         * @param data Compilation result
         */
        updateInterface(data: CompilationResult): CompilationResult;
        /**
         * @dev Get contract obj of the given contract name from last compilation result.
         * @param name contract name
         */
        getContract(name: string): Record<string, any> | null;
        /**
         * @dev Call the given callback for all the contracts from last compilation result
         * @param cb callback
         */
        visitContracts(cb: visitContractsCallbackInterface): void | null;
        /**
         * @dev Get the compiled contracts data from last compilation result
         */
        getContracts(): CompilationResult['contracts'] | null;
        /**
         * @dev Get sources from last compilation result
         */
        getSources(): Source | null | undefined;
        /**
         * @dev Get sources of passed file name from last compilation result
         * @param fileName file name
         */
        getSource(fileName: string): Source['filename'] | null;
        /**
         * @dev Get source name at passed index from last compilation result
         * @param index    - index of the source
         */
        getSourceName(index: number): string | null;
    }
    

    Contribute

    Please feel free to open an issue or a pull request.

    In case you want to add some code, do have a look to our contribution guidelnes here. Reach us on Gitter in case of any queries.

    License

    MIT © 2018-21 Remix Team

    Keywords

    none

    Install

    npm i @remix-project/remix-solidity

    DownloadsWeekly Downloads

    88

    Version

    0.3.35

    License

    MIT

    Unpacked Size

    67.5 kB

    Total Files

    24

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar