function TransactionSignature(arg) {
  if (!(this instanceof TransactionSignature)) {
    return new TransactionSignature(arg);
  }
  if (arg instanceof TransactionSignature) {
    return arg;
  }
  if (arg && typeof arg === 'object') {
    return this._fromObject(arg);
  }
  throw new errors.InvalidArgument('TransactionSignatures must be instantiated from an object');
}
@desc
Wrapper around Signature with fields related to signing a transaction specifically

@param {Object|string|TransactionSignature} arg
@constructor