message: Refactor: `puser-software` signTransaction to address send
  Only send it to the `ethers` transaction signer callback if one
  was originally provided in the transaction object.
  This helps with cases where you need to deploy a contract.
diff: @@ -51,7 +51,10 @@ export const signTransaction = async ({
  inputData,
  } = transactionObjectValidator(transactionObject);
  try {
  - const signedTransaction: string = await callback({
  + const signedTransaction: string = await callback(
  + Object.assign(
  + {},
  + {
  /*
  * Ethers needs it's own "proprietary" version of bignumber to work.
  */
  @@ -62,13 +65,19 @@ export const signTransaction = async ({
  gasLimit: bigNumberify(gasLimit.toString()),
  chainId,
  nonce,
  - to: addressNormalizer(to),
  /*
  * Ethers needs it's own "proprietary" version of bignumber to work.
  */
  value: bigNumberify(value.toString()),
  data: hexSequenceNormalizer(inputData),
  - });
  + },
  + /*
  + * Only send (and normalize) the destingation address if one was
  + * provided in the initial transaction object.
  + */
  + typeof to !== 'undefined' ? { to: addressNormalizer(to) } : {},
  + ),
  + );
  return hexSequenceNormalizer(signedTransaction);
  } catch (caughtError) {
  throw new Error(
  