let returnType: {
  address: Address;
  onTransactionRequested?: (
  ) => Promise<void>;
  sendBatchTransaction?: (
    txs: Array<SendTransactionOption>,
  ) => Promise<SendTransactionResult>;
  sendRawTransaction?: (
    tx: SendRawTransactionOptions,
  ) => Promise<SendTransactionResult>;
  sendTransaction: (
    tx: SendTransactionOption,
  ) => Promise<SendTransactionResult>;
  signMessage: ({
    message,
  }: {
    message: SignableMessage;
  }) => Promise<Hex>;
  signTransaction?: (tx: SerializableTransaction) => Promise<Hex>;
  signTypedData: (
    _typedData: ox__TypedData.Definition<typedData, primaryType>,
  ) => Promise<Hex>;
  watchAsset?: (asset: WatchAssetParams) => Promise<boolean>;
};