Submitted by 0xdeadbeef0x
BondNFTs should be transferrable. According the the proposal and the sponsor, BondNFTs should could be sold and borrowed against.
The proposal for context: https://gov.tigris.trade/#/proposal/0x2f2d1d63060a4a2f2718ebf86250056d40380dc7162fb4bf5e5c0b5bee49a6f3
The current implementation limits selling/depositing to only the same day that rewards are distributed for the tigAsset of the bond.
The impact if no rewards are distributed in the same day:
Because other market/platforms used for selling/depositing will not call claimGovFees to distribute rewards, they will revert when trying to transfer the BondNFT.
Realistic examples could be BondNFTs listed on OpenSea.
Example of reasons why rewards would not be distributed in the same day:
BondNFT has a mechanism to update the time tigAsset rewards are distributed. It uses a map that points to the last timestamp rewards were distributed for epoch[tigAsset].
distribute function in BondNFT: https://github.com/code-423n4/2022-12-tigris/blob/588c84b7bb354d20cbca6034544c4faa46e6a80e/contracts/BondNFT.sol#L221
(Please note that if the asset is blacklisted through allowedAsset, the  epoch[tigAsset] will not be updated)
When BondNFTs are transferred, a check is implemented to make sure epoch[tigAsset] is updated to the current day.
According to the sponsor, the reason for this check is to make sure that a bond that should be expired doesnt get transferred while the epoch hasnt yet been updated.
_transfer function in BondNFT:
https://github.com/code-423n4/2022-12-tigris/blob/588c84b7bb354d20cbca6034544c4faa46e6a80e/contracts/BondNFT.sol#L329
As can be seen above, if epoch[tigAsset] is not set to the same day of the transfer, the transfer will fail and the impacts in the impact section will happen.
There is already an implemented test showing that transfers fail when epoch[tigAsset] is not updated: 
https://github.com/code-423n4/2022-12-tigris/blob/588c84b7bb354d20cbca6034544c4faa46e6a80e/test/09.Bonds.js#L472
VS Code, Hardhat
The reason for the check is to validate that a bond.expired updated according to the actual timestamp.
Instead of having
You could replace it with:
TriHaz (Tigris Trade) confirmed 
Alex the Entreprenerd (judge) commented:
GainsGoblin (Tigris Trade) resolved:
