Constuct a new instance.

@param {Object} config Configuration.
@param {Object} config.web3 A `Web3` instance.
@param {Object} contract.contract Contract data, usually the output of `solc` compiler.
@param {String} config.contract.interface Contract ABI interface JSON.
@param {String} config.contract.bytecode Contract bytecode string.
@param {Object} config.account Address of account to send transactions from.
@param {Number} config.gas Gas amount to use for calls.
function Contract(config) {
      _classCallCheck(this, Contract);

      this._config = config;
      this._web3 = config.web3;
      this._bytecode = config.contract.bytecode;
      this._interface = JSON.parse(config.contract.interface);
      this._contract = this._web3.eth.contract(this._interface);
      this._account = config.account;
      this._gas = config.gas;
      this._logger = DUMMY_LOGGER;
    }