Author contract can freeze trading
villesundell opened this issue · comments
Apparently the idea (at least according to the specification and SimpleMarket implementation) to transfer author's share of the trade is an eosio.token::transfer(), however, the author being a smart contract, can have a dispatcher which could assert(), making the whole transaction to fail, effectively freezing trading.
And it seems to be a design choice (and wise, if you ask me, since I am a code-is-law guy 😆), that the author should not be able to freeze trading.
There could be a withdrawal mechanism, but then the specification needs to be amended.
I think there should be a specification for a such a mechanism, since author by design is a smart contract (SA is "Dapp for dapps" afterall), which need to support such a mechanism. That's why it should not be arbitrary ad-hoc-mechanism per each exchange.