message: Use poll() from ethers.js
diff: import { Signer } from 'ethers';
  -import { BigNumber, BigNumberish, bigNumberify } from 'ethers/utils';
  +import { BigNumber, BigNumberish, bigNumberify, poll } from 'ethers/utils';
  import {
  Provider,
  TransactionRequest,
  @@ -150,9 +150,17 @@ export default class EthersSigner extends Signer {
  if (!transaction) {
  await this.provider.waitForTransaction(txHash);
  }
  - while (!transaction) {
  - transaction = await this.provider.getTransaction(txHash);
  +
  + return poll(async() => {
  + const response = await this.provider.getTransaction(txHash);
  + // If this request goes wrong, it returns null. But poll specifically
  + // retries on undefined...
  + if (response == null) {
  + return undefined;
  }
  - return transaction;
  + return response;
  + }, {
  + timeout: 60000 // One minute
  + });
  }
  }
  