fix: resolve stack-too-deep in EthScarcityAbundance test
Extract _decodeVwapTick and _logEvent helpers to reduce stack depth in _recenterAndLog. Also add via_ir=true to maxperf profile.
This commit is contained in:
parent
a46c30cff6
commit
491c8f65b6
5 changed files with 26 additions and 32 deletions
|
|
@ -10,7 +10,7 @@
|
||||||
$KRK has a price floor backed by real ETH. The protocol adapts automatically. You just hold.
|
$KRK has a price floor backed by real ETH. The protocol adapts automatically. You just hold.
|
||||||
</div>
|
</div>
|
||||||
<div class="header-cta">
|
<div class="header-cta">
|
||||||
<KButton @click="navigateTo('/get-krk')">Get $KRK</KButton>
|
<KButton @click="router.push('/app/get-krk')">Get $KRK</KButton>
|
||||||
</div>
|
</div>
|
||||||
<div class="blur-effect"></div>
|
<div class="blur-effect"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -37,7 +37,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="centered-cta">
|
<div class="centered-cta">
|
||||||
<KButton @click="navigateTo('/get-krk')">Get $KRK</KButton>
|
<KButton @click="router.push('/app/get-krk')">Get $KRK</KButton>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<section class="protocol-health-section">
|
<section class="protocol-health-section">
|
||||||
|
|
@ -50,7 +50,7 @@
|
||||||
<p>
|
<p>
|
||||||
Watch the protocol in real time. Supply dynamics, ETH reserves, position history — all live, no wallet needed.
|
Watch the protocol in real time. Supply dynamics, ETH reserves, position history — all live, no wallet needed.
|
||||||
</p>
|
</p>
|
||||||
<KButton @click="navigateTo('')">View Protocol</KButton>
|
<KButton @click="router.push('/app')">View Protocol</KButton>
|
||||||
</template>
|
</template>
|
||||||
</LeftRightComponent>
|
</LeftRightComponent>
|
||||||
</section>
|
</section>
|
||||||
|
|
@ -67,13 +67,8 @@
|
||||||
<li>Hold. The protocol does the rest.</li>
|
<li>Hold. The protocol does the rest.</li>
|
||||||
</ol>
|
</ol>
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
<<<<<<< HEAD
|
|
||||||
<KButton @click="router.push('/app/get-krk')">Get $KRK</KButton>
|
<KButton @click="router.push('/app/get-krk')">Get $KRK</KButton>
|
||||||
<KButton @click="router.push('/docs/how-it-works')">How It Works →</KButton>
|
<KButton @click="router.push('/docs/how-it-works')">How It Works →</KButton>
|
||||||
=======
|
|
||||||
<KButton @click="navigateTo('/get-krk')">Get $KRK</KButton>
|
|
||||||
<KButton outlined @click="router.push('/docs')">Read the Docs</KButton>
|
|
||||||
>>>>>>> 88126c0 (fix: landing page user test fixes (#162))
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</LeftRightComponent>
|
</LeftRightComponent>
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
Self-adjusting liquidity with an ETH-backed floor. Real upside, protected downside.
|
Self-adjusting liquidity with an ETH-backed floor. Real upside, protected downside.
|
||||||
</div>
|
</div>
|
||||||
<div class="header-cta">
|
<div class="header-cta">
|
||||||
<KButton @click="navigateTo('/get-krk')">Buy $KRK</KButton>
|
<KButton @click="router.push('/app/get-krk')">Buy $KRK</KButton>
|
||||||
</div>
|
</div>
|
||||||
<div class="blur-effect"></div>
|
<div class="blur-effect"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -37,7 +37,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="centered-cta">
|
<div class="centered-cta">
|
||||||
<KButton @click="navigateTo('/get-krk')">Buy $KRK</KButton>
|
<KButton @click="router.push('/app/get-krk')">Buy $KRK</KButton>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<section class="protocol-health-section">
|
<section class="protocol-health-section">
|
||||||
|
|
@ -50,7 +50,7 @@
|
||||||
<p>
|
<p>
|
||||||
Track supply dynamics, ETH reserves, and position history in real-time. See exactly how the protocol manages your position — no wallet required.
|
Track supply dynamics, ETH reserves, and position history in real-time. See exactly how the protocol manages your position — no wallet required.
|
||||||
</p>
|
</p>
|
||||||
<KButton @click="navigateTo('')">View Dashboard</KButton>
|
<KButton @click="router.push('/app')">View Dashboard</KButton>
|
||||||
</template>
|
</template>
|
||||||
</LeftRightComponent>
|
</LeftRightComponent>
|
||||||
</section>
|
</section>
|
||||||
|
|
@ -67,13 +67,8 @@
|
||||||
<li>Hold. The protocol handles the rest.</li>
|
<li>Hold. The protocol handles the rest.</li>
|
||||||
</ol>
|
</ol>
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
<<<<<<< HEAD
|
|
||||||
<KButton @click="router.push('/app/get-krk')">Buy $KRK</KButton>
|
<KButton @click="router.push('/app/get-krk')">Buy $KRK</KButton>
|
||||||
<KButton @click="router.push('/docs/how-it-works')">How It Works →</KButton>
|
<KButton @click="router.push('/docs/how-it-works')">How It Works →</KButton>
|
||||||
=======
|
|
||||||
<KButton @click="navigateTo('/get-krk')">Buy $KRK</KButton>
|
|
||||||
<KButton outlined @click="router.push('/docs')">See How It Works</KButton>
|
|
||||||
>>>>>>> 88126c0 (fix: landing page user test fixes (#162))
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</LeftRightComponent>
|
</LeftRightComponent>
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
An autonomous protocol managing $KRK liquidity 24/7. Making moves. Growing reserves. You just hold.
|
An autonomous protocol managing $KRK liquidity 24/7. Making moves. Growing reserves. You just hold.
|
||||||
</div>
|
</div>
|
||||||
<div class="header-cta">
|
<div class="header-cta">
|
||||||
<KButton @click="navigateTo('/get-krk')">Get Your Edge</KButton>
|
<KButton @click="router.push('/app/get-krk')">Get Your Edge</KButton>
|
||||||
</div>
|
</div>
|
||||||
<div class="blur-effect"></div>
|
<div class="blur-effect"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -51,7 +51,7 @@
|
||||||
<p>
|
<p>
|
||||||
Track every adjustment, every fee capture, every position shift. Live metrics, growing reserves, expanding trading vault — all visible on-chain.
|
Track every adjustment, every fee capture, every position shift. Live metrics, growing reserves, expanding trading vault — all visible on-chain.
|
||||||
</p>
|
</p>
|
||||||
<KButton @click="navigateTo('')">See Live Metrics</KButton>
|
<KButton @click="router.push('/app')">See Live Metrics</KButton>
|
||||||
</template>
|
</template>
|
||||||
</LeftRightComponent>
|
</LeftRightComponent>
|
||||||
</section>
|
</section>
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ via_ir = true
|
||||||
bytecode_size_limit = 0
|
bytecode_size_limit = 0
|
||||||
|
|
||||||
[profile.maxperf]
|
[profile.maxperf]
|
||||||
|
via_ir = true
|
||||||
bytecode_size_limit = 0
|
bytecode_size_limit = 0
|
||||||
# See more config options https://github.com/foundry-rs/foundry/tree/master/config
|
# See more config options https://github.com/foundry-rs/foundry/tree/master/config
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -407,6 +407,19 @@ contract EthScarcityAbundance is Test {
|
||||||
_recoverStuck();
|
_recoverStuck();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function _decodeVwapTick(bytes memory data) internal pure returns (int24) {
|
||||||
|
(,,,, int24 vwap) = abi.decode(data, (int24, uint256, uint256, uint256, int24));
|
||||||
|
return vwap;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _logEvent(bytes memory data, string memory label, string memory eventName) internal view {
|
||||||
|
(int24 tick, uint256 ethBal, uint256 supply,,) = abi.decode(data, (int24, uint256, uint256, uint256, int24));
|
||||||
|
console2.log(string.concat(" ", eventName, ":"), label);
|
||||||
|
console2.log(" tick:", tick);
|
||||||
|
console2.log(" ethBal:", ethBal / 1e18);
|
||||||
|
console2.log(" supply:", supply / 1e18);
|
||||||
|
}
|
||||||
|
|
||||||
function _recenterAndLog(string memory label) internal returns (bool sawScarcity, bool sawAbundance, int24 eventVwapTick) {
|
function _recenterAndLog(string memory label) internal returns (bool sawScarcity, bool sawAbundance, int24 eventVwapTick) {
|
||||||
vm.warp(block.timestamp + 1 hours);
|
vm.warp(block.timestamp + 1 hours);
|
||||||
vm.roll(block.number + 1);
|
vm.roll(block.number + 1);
|
||||||
|
|
@ -422,23 +435,13 @@ contract EthScarcityAbundance is Test {
|
||||||
for (uint256 i = 0; i < logs.length; i++) {
|
for (uint256 i = 0; i < logs.length; i++) {
|
||||||
if (logs[i].topics.length == 0) continue;
|
if (logs[i].topics.length == 0) continue;
|
||||||
if (logs[i].topics[0] == SCARCITY_SIG) {
|
if (logs[i].topics[0] == SCARCITY_SIG) {
|
||||||
(int24 tick, uint256 ethBal, uint256 supply,, int24 vwapTick) = abi.decode(logs[i].data, (int24, uint256, uint256, uint256, int24));
|
|
||||||
sawScarcity = true;
|
sawScarcity = true;
|
||||||
eventVwapTick = vwapTick;
|
eventVwapTick = _decodeVwapTick(logs[i].data);
|
||||||
console2.log(" EthScarcity:", label);
|
_logEvent(logs[i].data, label, "EthScarcity");
|
||||||
console2.log(" tick:", tick);
|
|
||||||
console2.log(" ethBal:", ethBal / 1e18);
|
|
||||||
console2.log(" supply:", supply / 1e18);
|
|
||||||
console2.log(" vwapTick:", vwapTick);
|
|
||||||
} else if (logs[i].topics[0] == ABUNDANCE_SIG) {
|
} else if (logs[i].topics[0] == ABUNDANCE_SIG) {
|
||||||
(int24 tick, uint256 ethBal, uint256 supply,, int24 vwapTick) = abi.decode(logs[i].data, (int24, uint256, uint256, uint256, int24));
|
|
||||||
sawAbundance = true;
|
sawAbundance = true;
|
||||||
eventVwapTick = vwapTick;
|
eventVwapTick = _decodeVwapTick(logs[i].data);
|
||||||
console2.log(" EthAbundance:", label);
|
_logEvent(logs[i].data, label, "EthAbundance");
|
||||||
console2.log(" tick:", tick);
|
|
||||||
console2.log(" ethBal:", ethBal / 1e18);
|
|
||||||
console2.log(" supply:", supply / 1e18);
|
|
||||||
console2.log(" vwapTick:", vwapTick);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue