Closed deemru closed 4 days ago
arbitrageDelay
addr1.unstakeLand()
addr2.stakeLand()
!=
usdtAmt
profitAmount
wlgAmount = fraction(usdtAmt - profitAmount, MULT8, wlgPrice)
buyPrice
deltaFunds
reissued
burned
wlgAmt
getWlgStats()
userAmount
totalPieces
claimInternal()
Reworked, audit concerns considered
arbitrageDelay
can be bypassed byaddr1.unstakeLand()
+addr2.stakeLand()
https://github.com/waveslands/ride/blob/4cf7b76500be852b9e2667ad3709b5c376395408/wlgold.ride#L19-L21!=
next https://github.com/waveslands/ride/blob/4cf7b76500be852b9e2667ad3709b5c376395408/wlgold.ride#L113-L114 https://github.com/waveslands/ride/blob/4cf7b76500be852b9e2667ad3709b5c376395408/wlgold.ride#L148-L149usdtAmt
goes toprofitAmount
then we simply should havewlgAmount = fraction(usdtAmt - profitAmount, MULT8, wlgPrice)
but we actually have unnecessarybuyPrice
,deltaFunds
andreissued
https://github.com/waveslands/ride/blob/4cf7b76500be852b9e2667ad3709b5c376395408/wlgold.ride#L124-L130 same forburned
which iswlgAmt
https://github.com/waveslands/ride/blob/4cf7b76500be852b9e2667ad3709b5c376395408/wlgold.ride#L161getWlgStats()
which still need correction outside of it https://github.com/waveslands/ride/blob/4cf7b76500be852b9e2667ad3709b5c376395408/wlgold.ride#L122-L124 but https://github.com/waveslands/ride/blob/4cf7b76500be852b9e2667ad3709b5c376395408/wlgold.ride#L155userAmount
depends on variabletotalPieces
so we can have different numbers ifclaimInternal()
was or was not called (in other words we have to callclaimInternal()
for every user on everytotalPieces
change) https://github.com/waveslands/ride/blob/4cf7b76500be852b9e2667ad3709b5c376395408/wlglib.ride#L119-L120