contributionParams.push((contributeError, contributeResultTxHash) => {
    resetReviewResponses();

    if (contributeError) {
      resetReviewResponses();

      // make warning response under error
      el('#campaign_contribute_warning_response').style.display = 'block';
      el('#campaign_contribute_warning_response').innerHTML = '';
      el('#campaign_contribute_warning_response').appendChild(yo`<span>
      <h2 style="margin-top: 0px;">Error While Sending Transaction</h2>
      <p>
        There was an error while sending your contribution transaction:
        ${contributeError.toString()} ${String(JSON.stringify(contributeError, null, 2))}
      </p></span>`);
      return;
    }

    // if tx hash present
    if (contributeResultTxHash) {
      resetReviewResponses();

      // info response
      el('#campaign_contribute_info_response').style.display = 'block';
      el('#campaign_contribute_info_response').innerHTML = '';
      el('#campaign_contribute_info_response').appendChild(yo`<span>
      Your contribution transaction is processing with transaction hash:

      ${contributeResultTxHash}

      -- checkout on
        <a target="_blank"
          style="color: #FFF; text-decoration: underline;"
          href=${etherScanTxHashUrl(contributeResultTxHash, getNetwork())}>
          etherscan
        </a>
      </span>`);
    }

    // check transaction receipt
    const receiptInterval = setInterval(() => {
      web3.eth.getTransactionReceipt(contributeResultTxHash, (receiptError, receiptResult) => {

        // if error while getting receipt
        if (receiptError) {
          resetReviewResponses();

          el('#campaign_contribute_warning_response').style.display = 'block';
          el('#campaign_contribute_warning_response').innerHTML = '';
          el('#campaign_contribute_warning_response').appendChild(yo`<span>
            There was an error while getting your transaction receipt:
              ${receiptError}
              ${String(JSON.stringify(receiptError, null, 2))}
              with transaction hash:
              ${contributeResultTxHash}
          </span>`);

          // clear receipt interval
          clearInterval(receiptInterval);
        }

        // display transaction receipt
        if (receiptResult) {
          if (receiptResult.logs.length === 0) {
            resetReviewResponses();

            el('#campaign_contribute_warning_response').style.display = 'block';
            el('#campaign_contribute_warning_response').innerHTML = '';
            el('#campaign_contribute_warning_response').appendChild(yo`<span>
              <h3 style="margin-top: 0px;">Transaction Error</h3>
              <p>
              There was an error while getting your transaction receipt,
              no logs were found in receipt, indicating an invalid transaction
              with transaction hash: ${contributeResultTxHash}.

              <hr />

              This could mean several things:
              <br />
              (1) The token cap is being exceeded<br />
              (2) The camaign funding cap is being exceeded<br />
              (3) The campaign has expired<br />
              (4) The campaign has failed<br />
              (5) The campaign has succeeded<br />
              (6) You did not contribute enough to equate to one token<br />
              (7) Your contribution was not a factor of the token price (0.125 ether)
              <br /><br /><br />

              Please try your contribution again.<br /><br /><br />

              -- checkout on
                <a target="_blank"
                  style="color: #FFF; text-decoration: underline;"
                  href=${etherScanTxHashUrl(contributeResultTxHash, getNetwork())}>
                  etherscan
                </a>
              </p>
            </span>`);

            // clear receipt interval
            clearInterval(receiptInterval);

            return;
          }

          // info response
          el('#campaign_contribute_info_response').style.display = 'block';
          el('#campaign_contribute_info_response').innerHTML = '';
          el('#campaign_contribute_info_response').appendChild(yo`<span>
            Your transaction was processed:
            ${JSON.stringify(receiptResult, null, 2)}
            with transaction hash:
            ${contributeResultTxHash}
          </span>`);

          // set contribution receipt
          el('#view-campaign-contribute-receipt').innerHTML = '';
          el('#view-campaign-contribute-receipt').appendChild(campaignContributeReceipt({
            receipt: receiptResult,
            from: txObject().from,
            to: selectedCampaign.addr,
            campaignObject: selectedCampaign,
            getLocale, web3,
          }));

          // resent review response
          resetReviewResponses();

          // clear receipt interval
          clearInterval(receiptInterval);

          // receipt page
          getRouter()(`/campaign/${selectedCampaign.id}/contribute/receipt`);
          history.pushState({}, null, `/campaign/${selectedCampaign.id}/contribute/receipt`);
        }
      });

      // up timer by 1 second
      contributionIntervalTimer += contributionReceiptIntervalLength;

      // if interval checking expires
      if (contributionIntervalTimer >= contributionIntervalTimeout) {
        // timeout, reset review
        resetReviewResponses();

        // present response error
        el('#campaign_contribute_warning_response').style.display = 'block';
        el('#campaign_contribute_warning_response').innerHTML = '';
        el('#campaign_contribute_warning_response').appendChild(yo`<span>
          Contribution transaction checking timed out with transaction hash:
          ${contributeResultTxHash}.
          Your contribution either did not process or is taking a very long time to mine..
          Receipt interval polling has stopped.

          <hr />

          This could mean several things:

          <br />

          (1) The token cap is being exceeded<br />
          (2) The camaign funding cap is being exceeded<br />
          (3) The campaign has expired<br />
          (4) The campaign has failed<br />
          (5) The campaign has succeeded<br />
          (6) You did not contribute enough to equate to one token<br />
          (7) Your contribution was not a factor of the token price (0.125 ether)<br />

          <hr />

          <button class="btn btn-primary"
            href=${`/campaign/${selectedCampaignIdInput}/contribute/`}>
            Try Again
          </button>
        </span>`);

        // clear receipt interval
        clearInterval(receiptInterval);
      }
    }, contributionReceiptIntervalLength);
  });
      web3.eth.getTransactionReceipt(contributeResultTxHash, (receiptError, receiptResult) => {

        // if error while getting receipt
        if (receiptError) {
          resetReviewResponses();

          el('#campaign_contribute_warning_response').style.display = 'block';
          el('#campaign_contribute_warning_response').innerHTML = '';
          el('#campaign_contribute_warning_response').appendChild(yo`<span>
            There was an error while getting your transaction receipt:
              ${receiptError}
              ${String(JSON.stringify(receiptError, null, 2))}
              with transaction hash:
              ${contributeResultTxHash}
          </span>`);

          // clear receipt interval
          clearInterval(receiptInterval);
        }

        // display transaction receipt
        if (receiptResult) {
          if (receiptResult.logs.length === 0) {
            resetReviewResponses();

            el('#campaign_contribute_warning_response').style.display = 'block';
            el('#campaign_contribute_warning_response').innerHTML = '';
            el('#campaign_contribute_warning_response').appendChild(yo`<span>
              <h3 style="margin-top: 0px;">Transaction Error</h3>
              <p>
              There was an error while getting your transaction receipt,
              no logs were found in receipt, indicating an invalid transaction
              with transaction hash: ${contributeResultTxHash}.

              <hr />

              This could mean several things:
              <br />
              (1) The token cap is being exceeded<br />
              (2) The camaign funding cap is being exceeded<br />
              (3) The campaign has expired<br />
              (4) The campaign has failed<br />
              (5) The campaign has succeeded<br />
              (6) You did not contribute enough to equate to one token<br />
              (7) Your contribution was not a factor of the token price (0.125 ether)
              <br /><br /><br />

              Please try your contribution again.<br /><br /><br />

              -- checkout on
                <a target="_blank"
                  style="color: #FFF; text-decoration: underline;"
                  href=${etherScanTxHashUrl(contributeResultTxHash, getNetwork())}>
                  etherscan
                </a>
              </p>
            </span>`);

            // clear receipt interval
            clearInterval(receiptInterval);

            return;
          }

          // info response
          el('#campaign_contribute_info_response').style.display = 'block';
          el('#campaign_contribute_info_response').innerHTML = '';
          el('#campaign_contribute_info_response').appendChild(yo`<span>
            Your transaction was processed:
            ${JSON.stringify(receiptResult, null, 2)}
            with transaction hash:
            ${contributeResultTxHash}
          </span>`);

          // set contribution receipt
          el('#view-campaign-contribute-receipt').innerHTML = '';
          el('#view-campaign-contribute-receipt').appendChild(campaignContributeReceipt({
            receipt: receiptResult,
            from: txObject().from,
            to: selectedCampaign.addr,
            campaignObject: selectedCampaign,
            getLocale, web3,
          }));

          // resent review response
          resetReviewResponses();

          // clear receipt interval
          clearInterval(receiptInterval);

          // receipt page
          getRouter()(`/campaign/${selectedCampaign.id}/contribute/receipt`);
          history.pushState({}, null, `/campaign/${selectedCampaign.id}/contribute/receipt`);
        }
      });