code: function (from, data, value, gasLimit, txRunner, callbacks, finalCallback) {
      if (!callbacks.confirmationCb || !callbacks.gasEstimationForceSend || !callbacks.promptCb) {
        return finalCallback('all the callbacks must have been defined')
      }
      var tx = { from: from, to: null, data: data, useCall: false, value: value, gasLimit: gasLimit }
      txRunner.rawRun(tx, callbacks.confirmationCb, callbacks.gasEstimationForceSend, callbacks.promptCb, (error, txResult) => {
        // see universaldapp.js line 660 => 700 to check possible values of txResult (error case)
        finalCallback(error, txResult)
      })
    }
docs: deploy the given contract
  
  @param {String} from    - sender address
  @param {String} data    - data to send with the transaction ( return of txFormat.buildData(...) ).
  @param {String} value    - decimal representation of value.
  @param {String} gasLimit    - decimal representation of gas limit.
  @param {Object} txRunner    - TxRunner.js instance
  @param {Object} callbacks    - { confirmationCb, gasEstimationForceSend, promptCb }
  [validate transaction] confirmationCb (network, tx, gasEstimation, continueTxExecution, cancelCb)
  [transaction failed, force send] gasEstimationForceSend (error, continueTxExecution, cancelCb)
  [personal mode enabled, need password to continue] promptCb (okCb, cancelCb)
  @param {Function} finalCallback    - last callback.