giseldo/neodataset huggingface dataset:
Withdrawals feat flag

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

(Summarize the bug encountered concisely)

### Steps to reproduce

(How one can reproduce the issue - this is very important)

### Platform information 

(Browser, device, system stats, screen size)

### What is the current *bug* behavior?

(What actually happens)

### What is the expected *correct* behavior?

(What you should see instead)

### Relevant logs and/or screenshots

(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

Story points: 1.0
Exclude notifications from banned & deleted users

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

Currently, if the user in a notification has been deleted by the owner (or possibly also banned), it will cause an error like below.

### Steps to reproduce

Send a notif to yourself from a test user, ban the test user

### Platform information 

Web, likely platform agnostic

### What is the current *bug* behavior?

Breaks notifs 

### What is the expected *correct* behavior?

It should NOT break there - it should skip over the notification anyway,

it should also filter out blocked and banned users on the backend

Delete the notification if ACL fails.

### Relevant logs and/or screenshots

![image](/uploads/d651a1267e52cf5e232fe63153914a13/image.png)

![image](/uploads/d51ee2c796b4efab00316a514cc21484/image.png)

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

Story points: 2.0
If Minds+ image post, process blurred image in advacned and deliver from filestore on read

Today (1st July 2021) we had to disabled to blurring on the fly (https://gitlab.com/minds/engine/-/commit/edf8109a1312e85b612cbb1d77ce8e803fb6f1cc) as it consumes a lot of memory.

- [x] Move this to be part of the 'thumbnails' creation flow. (ie. create a 'blurred.jpg' flavour)
- [x] On fs/v1/thumbnails deliver this stored version. If it doesn't exists then deliver a common blurred asset.

Story points: 20.0
Suspend channels if their accounts are deemed to be hacked/compromised

- [ ] Extend the moderation/report options to include 'Security' => 'Hacked account'
- [ ] When a report is accepted:
  - [ ] deactivate the account
  - [ ] force change their password to a random string
  - [ ] send an email notifying them
  - [ ] delete all sessions
- [ ] Spec tests

Story points: 1.0
Store unix times to block numbers on background process

Sentry Issue: [ENGINE-S4M](https://sentry.io/organizations/minds-inc/issues/2224057372/?referrer=gitlab_integration)

```
TypeError: Return value of Minds\Core\Blockchain\Services\Etherscan::getBlockNumberByTimestamp() must be of the type int, string returned
  File "/Core/Blockchain/Services/Etherscan.php", line 234, in Minds\Core\Blockchain\Services\Etherscan::getBlockNumberByTimestamp
    return $result['result'];
  File "/Core/Blockchain/Services/BlockFinder.php", line 43, in Minds\Core\Blockchain\Services\BlockFinder::getBlockByTimestamp
    $blockNumber = $this->etherscan->getBlockNumberByTimestamp($unixTimestamp);
  File "/Core/Blockchain/Uniswap/Client.php", line 149, in Minds\Core\Blockchain\Uniswap\Client::getPairs
    'blockNumber' => $this->blockFinder->getBlockByTimestamp($asOf),
  File "/Core/Blockchain/LiquidityPositions/Manager.php", line 92, in Minds\Core\Blockchain\LiquidityPositions\Manager::getSummary
    $pairs = $this->uniswapClient->getPairs($this->getApprorvedLiquidityPairIds());
  File "/Core/Blockchain/LiquidityPositions/Controller.php", line 52, in Minds\Core\Blockchain\LiquidityPositions\Controller::get
    ->getSummary();
...
(27 additional frame(s) were not displayed)

TypeError: Return value of Minds\Core\Blockchain\Services\Etherscan::getBlockNumberByTimestamp() must be of the type int, string returned in /var/www/Minds/engine/Core/Blockchain/Services/Etherscan.php:234
Stack trace:
#0 /var/www/Minds/engine/Core/Blockchain/Services/BlockFinder.php(43): Minds\Core\Blockchain\Services\Etherscan->getBlockNumberByTimestamp(1614787797)
#1 /var/www/Minds/engine/Core/Blockchain/Uniswap/Client.php(149): Minds\Core\Blockchain\Services\BlockFinder->getBlockByTimestamp(1614787797)
#2 /var/www/Minds/engine/Core/Blockchain/LiquidityPositions/Manager.php(92): Minds\Core\Blockchain\Uniswap\Client->getPairs(Array)
#3 /var/www/Minds/engine/Core/Blockchain/LiquidityPositions/Controller.php(52): Minds\Core\Blockchain\LiquidityPositions\Manager->getSummary()
#4 [internal function]: Minds\Core\Blockchain\LiquidityPositions\Controller->get(Object(Zend\Diactoros\ServerRequest))
#5 /var/www/Minds/engine/Core/Router/Middleware/Kernel/RegistryEntryMiddleware.php(60): call_user_func(Array, Object(Ze
```

Story points: 1.0
Jury triage

## Summary

Check on jury system logic to ensure that jury duty requests are being properly sent out to active users. User reporting that it has been 20+ weeks since they submitted an appeal.

## Proposal

Change jury selection logic in production to only select admins to review appeals.

## User issue

![Screen_Shot_2021-02-09_at_11.05.07_AM](/uploads/ac223804686a0117915eda5fb71430ea/Screen_Shot_2021-02-09_at_11.05.07_AM.png)

Story points: 2.0
Implement ability to get yesterdays relevant RewardEntry item

In order to calculate the multiplier (future task), we need to be able to grab the previous days `RewardEntry`.

See https://gitlab.com/minds/engine/-/blob/master/Core/Rewards/Manager.php#L215. This should be applied to both `Liquidity` and `Holding` sections of the `calculate()` function.

Story points: 1.0
Attempting to join cash membership tier produces stripe error.

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

https://www.minds.com/newsfeed/1197982537473724416

when subscribers are trying to become members of my page is not allowing them to send payment. They are getting the following message.

'Your destination account needs to have at least one of the following capabilities enabled: transfers, legacy_payments'

I've changed the bank account 2 times already in my wallet. At this moment Im using the same account that my husband has on his account and its working for him but not for me.

Why is this happening?

### Steps to reproduce

1. Go to https://www.minds.com/pro/dachuniverse
2. Join Now
3. Select a card
4. Hit join membership.

### Platform information 

Replicated Chromium, highly likely to be platform agnostic.

### What is the current *bug* behavior?

Error shown to user.

### What is the expected *correct* behavior?

Error should not be shown to user; people should be able to join

### Relevant logs and/or screenshots

![image](/uploads/e53334785c9db091af6761e8af9002e9/image.png)

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

Story points: 2.0
Ambiguous mobile content upload error - (Major pain point from every new user I brought in)

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

(Summarize the bug encountered concisely)
New users who have not yet verified their email will be presented with generic errors when trying to upload images on the mobile app (something along the lines of "upload failed"). It has resulted in major frustration and an impression of a buggy app.


### Steps to reproduce

Sign up.
Don't realize that you need to verify your email.
Try to upload content on the mobile app

(How one can reproduce the issue - this is very important)

### Platform information 

(Browser, device, system stats, screen size)

### What is the current *bug* behavior?

(What actually happens)

### What is the expected *correct* behavior?

(What you should see instead)

### Relevant logs and/or screenshots

(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

Story points: 1.0
Permaweb backlink issue

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

backlinks in the metatags are linking to minds.com/newsfeed/1

### Steps to reproduce

https://www.minds.com/newsfeed/1190660914447802368

See linked page

### Platform information 

Replicated Firefox Ubuntu 20.04 

### What is the current *bug* behavior?

linking back to minds.com/newsfeed/1

### What is the expected *correct* behavior?

It should link to the post

### Relevant logs and/or screenshots

https://www.minds.com/newsfeed/1190660914447802368

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

Story points: 1.0
Minds Pro Footer Text - 80 char cap with ambiguous error message

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

(Summarize the bug encountered concisely)

### Steps to reproduce

(How one can reproduce the issue - this is very important)

1. Navigate towards the settings for Minds Pro enter more than 80 chars of text in the footer field.
2. Push the save button
3. A brief error popup will appear saying [object Object].


### Platform information 

(Browser, device, system stats, screen size)
Brave Version 1.10.93 Chromium: 83.0.4103.106 (Official Build) (64-bit)
Centos 8

### What is the current *bug* behavior?

(What actually happens)

### What is the expected *correct* behavior?

(What you should see instead)

If the 80 char cap is essential, there should be some indication that this is the case. The error message should also be less ambiguous.

### Relevant logs and/or screenshots

(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)
![Screenshot_from_2020-12-26_01-24-08](/uploads/29b5bdde0efc422cdff38bc0a2dc583a/Screenshot_from_2020-12-26_01-24-08.png)
### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

Story points: 1.0
Filter plus content from discovery

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

https://www.minds.com/newsfeed/1181234113187356672

### Steps to reproduce

(How one can reproduce the issue - this is very important)

### Platform information 

(Browser, device, system stats, screen size)

### What is the current *bug* behavior?

(What actually happens)

### What is the expected *correct* behavior?

(What you should see instead)

### Relevant logs and/or screenshots

(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

Story points: 1.0
Backend module (Core/Messenger) for new Messenger

- [x] Create new v3 module in Core/Messenger
- [x] Use the new router
- [x] Implement SDK (https://gitlab.com/minds/engine/-/issues/1740)
- [x] Idempotent message support
- [x] Schema to record synapse access tokens for each user

## Schema

TDB (@markeharding)

Story points: 2.0
Channel page doesnt immediately show most recent status, needs refresh

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

(Summarize the bug encountered concisely)

### Steps to reproduce

(How one can reproduce the issue - this is very important)

### Platform information 

(Browser, device, system stats, screen size)

### What is the current *bug* behavior?

(What actually happens)

### What is the expected *correct* behavior?

(What you should see instead)

### Relevant logs and/or screenshots

(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

Story points: 2.0
Add in title field to posts saved on permaweb

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

(Summarize the bug encountered concisely)

### Steps to reproduce

(How one can reproduce the issue - this is very important)

### Platform information 

(Browser, device, system stats, screen size)

### What is the current *bug* behavior?

(What actually happens)

### What is the expected *correct* behavior?

(What you should see instead)

### Relevant logs and/or screenshots

(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

Story points: 1.0
Don't export teaser text for text status posts

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

(Summarize the bug encountered concisely)

### Steps to reproduce

(How one can reproduce the issue - this is very important)

### Platform information 

(Browser, device, system stats, screen size)

### What is the current *bug* behavior?

(What actually happens)

### What is the expected *correct* behavior?

(What you should see instead)

### Relevant logs and/or screenshots

(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

Story points: 1.0
Containerize microservice with helm / docker-compose

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

(Summarize the bug encountered concisely)

### Steps to reproduce

make helm chart for service.

### Platform information 

(Browser, device, system stats, screen size)

### What is the current *bug* behavior?

(What actually happens)

### What is the expected *correct* behavior?

(What you should see instead)

### Relevant logs and/or screenshots

(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

Story points: 3.0
Pro assets not saving down

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

Pro assets 

### Steps to reproduce

Not provided

### Platform information 

Not provided

### What is the current *bug* behavior?

Pro assets not saving down

### What is the expected *correct* behavior?

Pro assets should save

### Relevant logs and/or screenshots

Not provided

### Possible fixes

:shrug:

Story points: 1.0
Create earnings overview api

## Tasks
- [x] API to return breakdown of earnings
- [ ] Caching (stripe API's are very slow)
- [x] Move 'Pro Earnings' to left of wallet
- [x] Introduce Earnings tab
- [ ] Add total payout
- [x] Rename Pending Balance to Pending Payouts
- [x] Include payouts in list of transactions
- [x] Remove spacer from top of Cash transactions

## Mockups

https://design.minds.com/hosted/web/michael/front%23-analytics/#artboard1

Story points: 2.0
TypeError: Argument 1 passed to Minds\Core\Analytics\Dashboards\Filters\FiltersCollection::setUser() must be...

Sentry Issue: [ENGINE-PXT](https://sentry.io/organizations/minds-inc/issues/1723632657/?referrer=gitlab_integration)

```
TypeError: Argument 1 passed to Minds\Core\Analytics\Dashboards\Filters\FiltersCollection::setUser() must be an instance of Minds\Entities\User, null given, called in /var/www/Minds/engine/Core/Analytics/Dashboards/TokenDashboard.php on line 67
  File "/Core/Analytics/Dashboards/Filters/FiltersCollection.php", line 42, in Minds\Core\Analytics\Dashboards\Filters\FiltersCollection::setUser
    public function setUser(User $user): self
  File "/Core/Analytics/Dashboards/TokenDashboard.php", line 67, in Minds\Core\Analytics\Dashboards\TokenDashboard::build
    ->setUser($this->user)
  File "/Core/Analytics/Dashboards/TokenDashboard.php", line 91, in Minds\Core\Analytics\Dashboards\TokenDashboard::export
    $this->build();
  File "/Controllers/api/v2/analytics/dashboards.php", line 41, in Minds\Controllers\api\v2\analytics\dashboards::get
    'dashboard' => $dashboard->export(),
  File "/Api/Factory.php", line 87, in Minds\Api\Factory::build
    return $handler->$method($pages);
...
(11 additional frame(s) were not displayed)

TypeError: Argument 1 passed to Minds\Core\Analytics\Dashboards\Filters\FiltersCollection::setUser() must be an instance of Minds\Entities\User, null given, called in /var/www/Minds/engine/Core/Analytics/Dashboards/TokenDashboard.php on line 67 and defined in /var/www/Minds/engine/Core/Analytics/Dashboards/Filters/FiltersCollection.php:42
Stack trace:
#0 /var/www/Minds/engine/Core/Analytics/Dashboards/TokenDashboard.php(67): Minds\Core\Analytics\Dashboards\Filters\FiltersCollection->setUser(NULL)
#1 /var/www/Minds/engine/Core/Analytics/Dashboards/TokenDashboard.php(91): Minds\Core\Analytics\Dashboards\TokenDashboard->build()
#2 /var/www/Minds/engine/Controllers/api/v2/analytics/dashboards.php(41): Minds\Core\Analytics\Dashboards\TokenDashboard->export()
#3 /var/www/Minds/engine/Api/Factory.php(87): Minds\Controllers\api\v2\analytics\dashboards->get(Array)
#4 /var/www/Minds/engine/Controllers/api/api.php(76): Minds\Api\Factory::build(Array, Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response\J
```

Story points: 1.0
Error: Call to a member function getGuid() on null

Sentry Issue: [ENGINE-1VS](https://sentry.io/organizations/minds-inc/issues/1662587438/?referrer=gitlab_integration)

```
Error: Call to a member function getGuid() on null
  File "/Core/Discovery/Manager.php", line 428, in Minds\Core\Discovery\Manager::getSearch
    'cache_key' => $this->user->getGuid(),
  File "/Core/Discovery/Controllers.php", line 61, in Minds\Core\Discovery\Controllers::getSearch
    $entities = $this->manager->getSearch($query, $filter, $type);
  File "/Core/Router/Middleware/Kernel/RegistryEntryMiddleware.php", line 60, in Minds\Core\Router\Middleware\Kernel\RegistryEntryMiddleware::process
    ->withAttribute('parameters', $parameters)
  File "/Core/Router/Dispatcher.php", line 57, in Minds\Core\Router\Dispatcher::handle
    return $middleware->process($request, $this);
  File "/Core/Router/Middleware/Kernel/RequestHandlerMiddleware.php", line 82, in Minds\Core\Router\Middleware\Kernel\RequestHandlerMiddleware::process
    ->withAttribute('_router-registry-entry', $requestHandler)
...
(22 additional frame(s) were not displayed)

Error: Call to a member function getGuid() on null in /var/www/Minds/engine/Core/Discovery/Manager.php:428
Stack trace:
#0 /var/www/Minds/engine/Core/Discovery/Controllers.php(61): Minds\Core\Discovery\Manager->getSearch('Jewish', 'top', 'activity')
#1 [internal function]: Minds\Core\Discovery\Controllers->getSearch(Object(Zend\Diactoros\ServerRequest))
#2 /var/www/Minds/engine/Core/Router/Middleware/Kernel/RegistryEntryMiddleware.php(60): call_user_func(Array, Object(Zend\Diactoros\ServerRequest))
#3 /var/www/Minds/engine/Core/Router/Dispatcher.php(57): Minds\Core\Router\Middleware\Kernel\RegistryEntryMiddleware->process(Object(Zend\Diactoros\ServerRequest), Object(Minds\Core\Router\Dispatcher))
#4 /var/www/Minds/engine/Core/Router/Middleware/Kernel/RequestHandlerMiddleware.php(82): Minds\Core\Router\Dispatcher->handle(Object(Zend\Diactoros\ServerRequest))
#5 /var/www/Minds/engine/Core/Router/Dispatcher.php(57): Minds\Core\Router\Middleware\Kernel\RequestHandlerMiddleware->process(Object(Zend\Diactoros\Serve
```

Story points: 1.0
Cassandra\Exception\InvalidArgumentException: Invalid integer value: 'undefined'

Sentry Issue: [ENGINE-PXR](https://sentry.io/organizations/minds-inc/issues/1723629061/?referrer=gitlab_integration)

```
Cassandra\Exception\InvalidArgumentException: Invalid integer value: 'undefined'
  File "/Core/Boost/Network/Repository.php", line 44, in Cassandra\Varint::__construct
    return new Cassandra\Varint($guid);
  File "/Core/Boost/Network/Repository.php", line 44, in Minds\Core\Boost\Network\Repository::Minds\Core\Boost\Network\{closure}
    return new Cassandra\Varint($guid);
  File "/Core/Boost/Network/Repository.php", line 45, in Minds\Core\Boost\Network\Repository::getList
    }, $opts['guids'])));
  File "/Core/Boost/Network/Repository.php", line 129, in Minds\Core\Boost\Network\Repository::get
    'guids' => [ $guid ],
  File "/Core/Boost/Network/Manager.php", line 110, in Minds\Core\Boost\Network\Manager::get
    $boost = $this->repository->get($urn);
...
(14 additional frame(s) were not displayed)

Cassandra\Exception\InvalidArgumentException: Invalid integer value: 'undefined' in /var/www/Minds/engine/Core/Boost/Network/Repository.php:44
Stack trace:
#0 /var/www/Minds/engine/Core/Boost/Network/Repository.php(44): Cassandra\Varint->__construct('undefined')
#1 [internal function]: Minds\Core\Boost\Network\Repository->Minds\Core\Boost\Network\{closure}('undefined')
#2 /var/www/Minds/engine/Core/Boost/Network/Repository.php(45): array_map(Object(Closure), Array)
#3 /var/www/Minds/engine/Core/Boost/Network/Repository.php(129): Minds\Core\Boost\Network\Repository->getList(Array)
#4 /var/www/Minds/engine/Core/Boost/Network/Manager.php(110): Minds\Core\Boost\Network\Repository->get('urn:boost:newsf...')
#5 /var/www/Minds/engine/Controllers/api/v2/analytics/views.php(32): Minds\Core\Boost\Network\Manager->get('urn:boost:newsf...', Array)
#6 /var/www/Minds/engine/Api/Factory.php(87): Minds\Controllers\api\v2\analytics\views->post(Array)
#7 /var/www/Minds/engine/Controllers/api/api.php(81): Minds\Api\Factory::bui
```

Story points: 1.0