Source: trans/DataSign/erc20/E20DataSign.js

'use strict'
let     retResult   = require('../../transUtil').retResult;
let     DataSign    = require('../common/DataSign');
let     ccUtil      = require('../../../api/ccUtil');

/**
 * class use to sign transaction
 * @class
 * @augments  DataSign
 *
 */
class EthDataSign extends DataSign {
  /**
   * @constructor
   * @param {Object} input  - {@link CrossChain#input input}
   * @param {Object} config - {@link CrossChain#config config}
   */
  constructor(input, config) {
    super(input, config);
  }

  /**
   * sign data
   * @override
   * @param tran
   * @returns {{code: boolean, result: null}|transUtil.retResult|{code, result}}
   */
  sign(tran) {
    global.logger.debug("Entering EthDataSign::sign");
    let privateKey = ccUtil.getPrivateKey(
      tran.commonData.from,
      this.input.password,
      this.input.keystorePath);
    let trans = tran.commonData;
    trans.data = tran.contractData;

    let rawTx = ccUtil.signEthByPrivateKey(trans, privateKey);

    retResult.code = true;
    retResult.result = rawTx;
    return retResult;
  }


}

module.exports = EthDataSign;