You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is by design - the MATM is allowed to override TransferManagers that return NA (e.g. the GeneralTransferManager if addresses are not on it's list), but not override a TM that returns INVALID (e.g. if an address has traded over its volume restriction in the VolumeRestrictionTM).
For transfers that really need to be forced through, regardless of any restrictions, the issuer can use the forceTransfer method directly.
Hi,
I was looking through the ManualApprovalTransferManager code and was just wondering if
polymath-core/contracts/modules/TransferManager/ManualApprovalTransferManager.sol
Lines 98 to 103 in 12b1680
should
return Result.ForceValid
instead ofResult.Valid
.polymath-core/contracts/modules/TransferManager/ManualApprovalTransferManager.sol
Line 82 in 12b1680
The above implies that MATM should bypass other restrictions, and this applies for the approval case as well.
At the current state, since in
polymath-core/contracts/tokens/SecurityToken.sol
Line 629 in 12b1680
If another module returns Result.INVALID, then isInvalid will be true, causing verifyTransfer to return false and hence cause the transaction to fail.
This defeats the purpose of MATM which suppose to bypass all other restrictions and transfer modules for both the block and approvals of transactions.
Thanks!
The text was updated successfully, but these errors were encountered: