Embark 5.1 adds two new configuration settings for Smart Contract configuration:
`interfaces` - Any Smart Contract that represent an interface or is used for inheritance
`libraries` - Any Smart Contract that is used as a library
This makes the configuration less redundant in cases where otherwise the deploy property has been set to false, such as:
```
deploy: {
Ownable: {
deploy: false
},
...
}
```
The above can now be done via:
```
interfaces: ['Ownable'],
deploy: {
...
}
```
Find the complete documentation [here](https://framework.embarklabs.io/docs/contracts_configuration.html#Defining-interfaces).
## getEvmVersion for conditional tests
Embark tests now include a helper `getEvmVersion` that can be used to consult what EVM the tests are being run on. This is useful when you have certain tests that can only be run in a particular type of node, but you still want to be able to run tests everywhere without them breaking.
For example:
```
it("cannot bid after 5 minutes", async () => {
const evmVersion = await global.getEvmVersion();
if (evmVersion.indexOf("TestRPC") === -1) return;
increaseTime(5000)
await assert.reverts(Auction.methods.bid(), {from: web3.eth.defaultAccount}, 'Returned error: VM Exception while processing transaction: cannot bid after auction expired');
})
```
## Nethermind plugin
Embark now comes with a [Nethermind](https://nethermind.io/) plugin.
More info about the plugin can be found [here](https://github.com/embarklabs/embark/tree/master/packages/plugins/nethermind)
## Changelog
Features
@embark/deployment: introduce interfaces and libraries configuration (73d0443)