I know that the gas limit was recently raised to 1,000,000 in the Carthage protocol upgrade, but I feel it still isn’t enough to do some basic things. We have been working on the Dexter decentralized exchange contracts that currently work with FA1.2 contracts. They are written in LIGO and have been optimized with the help of the LIGO language developers.

Currently to perform a trade of XTZ for an FA1.2 to token, which does a few calculations in Dexter, then calls FA1.2 the transfer entrypoint in FA1.2, it costs 449,825 gas. The FA1.2 token is a vanilla implementation in LIGO that follows the specification as closely as possible without any extra features.

We have experimented with a more complicated entry point Token to Token which would allow you to use two Dexter contracts to trade one FA1.2 token for another FA1.2 token with a contiguous series of operations all on chain. Internally it calls token to XTZ in the first Dexter contract, then XTZ to token in the second Dexter contract. Unfortunately the gas cost is about 1,010,000 which exceeds the limit. Currently the decision is not to include the token to token entry point in the first version of Dexter (you can emulate it with two separate calls to the block chain but that is not as nice). If you imagine more complicated contracts like FA2 with more features, it may be even more challenging to call them because of higher gas costs for each of the entry points.

I think gas limits are still preventing smart contract developers from doing interesting things. That said we should be conscious of the limits and try to optimize the contracts as much as possible. I don’t know what negative implications there are to increasing the gas limit further. If anyone knows what they are, please share. I want to gauge interest in further increasing gas limits in the next protocol upgrade.