Introducing Resolver-Engine for Ethereum interoperability

How do you import a smart-contract from NPM?

In 0x/sol-compiler

import "openzeppelin-solidity/contracts/ownership/Ownable.sol";

Support for node_modules backtracking.
No support for global node_modules.

In Waffle:

import "openzeppelin-solidity/contracts/ownership/Ownable.sol";

No support for node_modules backtracking.
No support for global node_modules.

In Truffle:

import "openzeppelin-solidity/contracts/ownership/Ownable.sol";

Support for node_modules backtracking.
No support for global node_modules.

How do you import a smart-contract from EthPM?

In Truffle:

import "openzeppelin-solidity/ownership/Ownable.sol”;

Requires Truffle-specific configuration

Anything else
No support

How do you import smart-contract from Github?

In 0x/sol-compiler:

import "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/master/contracts/ownership/Ownable.sol";

In Remix:

import "https://github.com/openzeppelin-solidity/contracts/ownership/Ownable.sol";

No support for branches

In Truffle:

No support

And that’s only a few examples

Mixing and matching tools in the Ethereum community is cumbersome. For example, developing and deploying with Truffle, doing code-coverage with @0x/sol-cov and running tests with Waffle will mean that you’ll have 3-4 (depending on the setup) different Solidity compiler versions running side by side, with different importing semantics altogether.

Today, we’re releasing Resolver-Engine

Together with the Ethereum Foundation we’re working on unifying frameworks, by providing tools for framework developers to use so that building up to a common standard is easier than building it in-house.

Using the Resolver-Engine is extremely easy

Roadmap

In the upcoming months we’re going to improve the API and integrate with more frameworks.

After that we want to unify Smart-Contract artefacts (.json) that are not compatible between frameworks either. Resolver-Engine is written in such a way that would allow easy and singular API for multiple artefacts.

Join us on Telegram and read the code on GitHub

EngineeringOlaf Tomalka