gelatodigital/swap-orders-lib

Migrate nonEthereum chains to "gas-model"

Closed this issue · 0 comments

Currently, we calculate the fee for every limit order in two ways. On Ethereum, we calculate the Fee based on the gas cost. On other chains, the assumption was, that we can take a percentage "0.1%" of the order volume, which would pay for the transactions and because of that specify an exact execution price. This assumption proves to be wrong since transaction costs keep rising which means that the limit order volume on nonEth chains is not sufficient to pay for the transaction costs.

Solution:
Switch "percentage-model" to "gas-model".

Step 1:
In packages/limit-orders-lib/src/utils/index.ts hook, add side effect realExecutionPrice on Order object to open orders. Use useGasOverhead hook to calculate.

Step 2:
in packages/limit-orders-lib/src/limit-orders/index.ts change isEthereumChain to usestransactionCostDependentFee, include new chainId's.

Step 3:
In backend change isEthereumChain to usestransactionCostDependentFee