Strategic Interface

devMode
{{ chainName }}
{{ wallet.substring(2, 6) }}..{{ wallet.substring(38) }}
Loading configuration...

Error

{{ error }}

Loading reserve data...

⚠️ {{ reserveDataErrors[selectedReserve] }}

Loading...

{{ selectedReserveName }}

{{ selectedReserve }}
Balance: {{ formatEth(reserveData[selectedReserve].currentFees) }}   Burn: {{ formatEth(reserveData[selectedReserve].ethToTwap) }}

Pool & Swap

MarketCap: ${{ marketCapUsd[selectedReserve].toLocaleString() }} Calculating...
Liquidity: ${{ poolTvlUsd[selectedReserve].toLocaleString() }} Calculating...
{{ swapDirection === 'buy' ? 'ETH' : getSelectedReserveInfo().symbol }}
{{ swapQuote }} (Fee: {{ formatPercent(swapDirection === 'buy' ? reserveData[selectedReserve].buyFee : reserveData[selectedReserve].sellFee) }}%)

Vault Staking

Staked: {{ formatTokenAmount(vaultStaked) }} [Lock: {{ formatVaultLockCountdown }}]
Rewards: {{ formatEth(vaultRewards) }} ETH
Wallet: {{ formatTokenAmount(vaultAvailable) }} {{ getSelectedReserveInfo().symbol }}
Harvest: {{ formatHarvestCooldown }}
{{ showVaultActions ? '▼' : '▶' }} Deposit / Withdraw / Harvest
{{ getSelectedReserveInfo().symbol }}
{{ showVaultTimeLock ? '▼' : '▶' }} Set Time Lock

{{ showNftHoldingsSection ? '▼' : '▶' }} NFT Holdings ({{ reserveData[selectedReserve].nftBalance }})

Collection: {{ reserveData[selectedReserve].collection }}
Scanning tokens {{ nftScanProgress[selectedReserve] }}... (Found: {{ nftFoundCount[selectedReserve] || 0 }}/{{ reserveData[selectedReserve].nftBalance }}) Loading NFT details...
⚠️ {{ nftErrors[selectedReserve] }}
Owned NFTs:
Token #{{ nft.tokenId }} FOR SALE: {{ formatNftPrice(nft.salePrice) }} ETH NOT LISTED
No NFTs found in this reserve.

{{ showSignedTransferSection ? '▼' : '▶' }} Signed Transfers

{{ getSelectedReserveInfo().symbol || 'tokens' }}
Current: {{ signedTransferCurrentApproval === 0n ? '0' : (signedTransferCurrentApproval > 1000000000000000000000000000000000n ? 'UNLIMITED' : formatTokenAmount(signedTransferCurrentApproval)) }}

💡 {{ getSignedFeeDiscountText() }}

From: {{ decodedSignedAuth.from.substring(0, 6) }}...{{ decodedSignedAuth.from.substring(38) }}
To: {{ decodedSignedAuth.to.substring(0, 6) }}...{{ decodedSignedAuth.to.substring(38) }} (you)
Amount: {{ formatTokenAmount(decodedSignedAuth.value) }} {{ decodedSignedAuth.reserveName }}
Tax Fee: -{{ formatTokenAmount(calculateSignedTaxAmount(BigInt(decodedSignedAuth.value))) }} {{ decodedSignedAuth.reserveName }}
You Get: {{ formatTokenAmount(calculateSignedNetAmount(BigInt(decodedSignedAuth.value))) }} {{ decodedSignedAuth.reserveName }}
Expires: {{ formatTimeRemaining(decodedSignedAuth.validBefore) }}
Chain: {{ signedAuthValidation.chainMatch ? '✅ Match' : '❌ Mismatch' }}
Reserve: {{ signedAuthValidation.reserveMatch ? '✅ Match' : '❌ Mismatch' }}
Expired: {{ signedAuthValidation.isExpired ? '❌ Yes' : '✅ No' }}
Claimed: {{ signedAuthValidation.nonceUsed ? '❌ Already' : '✅ Not Yet' }}
Sender Balance: {{ signedAuthValidation.sufficientBalance ? '✅ Sufficient' : '❌ Insufficient' }} ({{ formatTokenAmount(signedAuthValidation.senderBalance) }})
{{ toast.icon }}
{{ toast.message }}