2025-07-24 16:08:17 +02:00
|
|
|
|
<template>
|
2025-10-03 13:19:20 +02:00
|
|
|
|
<footer class="k-container">
|
|
|
|
|
|
<div class="k-footer">
|
2026-02-20 17:28:59 +01:00
|
|
|
|
<div class="k-footer__contracts" v-if="krkAddress || stakeAddress">
|
|
|
|
|
|
<div class="k-footer__contracts-title">Verified Contracts</div>
|
|
|
|
|
|
<div class="k-footer__contracts-list">
|
2026-02-22 11:09:26 +00:00
|
|
|
|
<span v-if="krkAddress" class="k-footer__address-row">
|
|
|
|
|
|
<a :href="`https://basescan.org/address/${krkAddress}`" target="_blank" rel="noopener noreferrer">
|
|
|
|
|
|
KRK Token: {{ shortAddress(krkAddress) }}
|
|
|
|
|
|
</a>
|
2026-02-24 22:15:26 +00:00
|
|
|
|
<button class="k-footer__copy-btn" @click="copyAddress(krkAddress, 'krk')" :title="copied === 'krk' ? 'Copied!' : 'Copy address'" :aria-label="copied === 'krk' ? 'Copied!' : 'Copy KRK token address'">
|
2026-02-22 11:09:26 +00:00
|
|
|
|
<svg v-if="copied !== 'krk'" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg>
|
|
|
|
|
|
<svg v-else width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#4ade80" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
|
|
|
|
|
|
</button>
|
|
|
|
|
|
</span>
|
|
|
|
|
|
<span v-if="stakeAddress" class="k-footer__address-row">
|
|
|
|
|
|
<a :href="`https://basescan.org/address/${stakeAddress}`" target="_blank" rel="noopener noreferrer">
|
|
|
|
|
|
Stake: {{ shortAddress(stakeAddress) }}
|
|
|
|
|
|
</a>
|
2026-02-24 22:15:26 +00:00
|
|
|
|
<button class="k-footer__copy-btn" @click="copyAddress(stakeAddress, 'stake')" :title="copied === 'stake' ? 'Copied!' : 'Copy address'" :aria-label="copied === 'stake' ? 'Copied!' : 'Copy Stake contract address'">
|
2026-02-22 11:09:26 +00:00
|
|
|
|
<svg v-if="copied !== 'stake'" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg>
|
|
|
|
|
|
<svg v-else width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#4ade80" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
|
|
|
|
|
|
</button>
|
|
|
|
|
|
</span>
|
2026-02-20 17:28:59 +01:00
|
|
|
|
</div>
|
|
|
|
|
|
<div class="k-footer__audit-note">⚠️ Unaudited — use at your own risk</div>
|
|
|
|
|
|
</div>
|
2026-03-26 21:31:22 +00:00
|
|
|
|
<div class="k-footer__links">
|
|
|
|
|
|
<a href="/pitch-deck.html" target="_blank" rel="noopener noreferrer">Pitch Deck</a>
|
|
|
|
|
|
<span class="k-footer__sep">·</span>
|
|
|
|
|
|
<a href="/docs">Documentation</a>
|
|
|
|
|
|
</div>
|
2026-02-20 17:28:59 +01:00
|
|
|
|
<div class="k-footer__about">
|
2026-02-23 13:04:02 +00:00
|
|
|
|
KrAIken is a project by <u><a href="https://niovi.voyage/" target="_blank">niovi.voyage</a></u
|
2026-02-20 17:28:59 +01:00
|
|
|
|
>.<br />
|
|
|
|
|
|
Autonomous liquidity protocol. Use at your own risk.
|
|
|
|
|
|
</div>
|
2025-10-03 13:19:20 +02:00
|
|
|
|
</div>
|
|
|
|
|
|
</footer>
|
2025-07-24 16:08:17 +02:00
|
|
|
|
</template>
|
|
|
|
|
|
|
2026-02-20 17:28:59 +01:00
|
|
|
|
<script setup lang="ts">
|
2026-02-22 11:09:26 +00:00
|
|
|
|
import { ref } from 'vue';
|
|
|
|
|
|
|
2026-02-20 17:28:59 +01:00
|
|
|
|
const krkAddress = import.meta.env.VITE_KRAIKEN_ADDRESS || '';
|
|
|
|
|
|
const stakeAddress = import.meta.env.VITE_STAKE_ADDRESS || '';
|
2026-02-22 11:09:26 +00:00
|
|
|
|
const copied = ref('');
|
2026-02-20 17:28:59 +01:00
|
|
|
|
|
|
|
|
|
|
function shortAddress(addr: string): string {
|
|
|
|
|
|
if (!addr || addr.length < 10) return addr;
|
|
|
|
|
|
return `${addr.slice(0, 6)}…${addr.slice(-4)}`;
|
|
|
|
|
|
}
|
2026-02-22 11:09:26 +00:00
|
|
|
|
|
|
|
|
|
|
function copyAddress(addr: string, key: string) {
|
|
|
|
|
|
navigator.clipboard.writeText(addr);
|
|
|
|
|
|
copied.value = key;
|
|
|
|
|
|
setTimeout(() => { copied.value = ''; }, 1500);
|
|
|
|
|
|
}
|
2026-02-20 17:28:59 +01:00
|
|
|
|
</script>
|
|
|
|
|
|
|
2025-07-24 16:08:17 +02:00
|
|
|
|
<style lang="sass">
|
|
|
|
|
|
.k-footer
|
|
|
|
|
|
font-size: 14px
|
|
|
|
|
|
line-height: 22px
|
|
|
|
|
|
letter-spacing: 0.15px
|
|
|
|
|
|
padding-bottom: 48px
|
|
|
|
|
|
a
|
|
|
|
|
|
color: #F0F0F0
|
|
|
|
|
|
@media (min-width: 992px)
|
|
|
|
|
|
font-size: 16px
|
2026-02-20 17:28:59 +01:00
|
|
|
|
|
|
|
|
|
|
.k-footer__contracts
|
|
|
|
|
|
margin-bottom: 24px
|
|
|
|
|
|
padding: 16px
|
|
|
|
|
|
background: rgba(255, 255, 255, 0.05)
|
|
|
|
|
|
border-radius: 8px
|
|
|
|
|
|
text-align: center
|
|
|
|
|
|
|
|
|
|
|
|
.k-footer__contracts-title
|
|
|
|
|
|
font-weight: 600
|
|
|
|
|
|
margin-bottom: 8px
|
|
|
|
|
|
font-size: 13px
|
|
|
|
|
|
text-transform: uppercase
|
|
|
|
|
|
letter-spacing: 1px
|
|
|
|
|
|
color: #9A9898
|
|
|
|
|
|
|
|
|
|
|
|
.k-footer__contracts-list
|
|
|
|
|
|
display: flex
|
|
|
|
|
|
gap: 24px
|
|
|
|
|
|
justify-content: center
|
|
|
|
|
|
flex-wrap: wrap
|
|
|
|
|
|
a
|
|
|
|
|
|
font-family: monospace
|
|
|
|
|
|
font-size: 13px
|
|
|
|
|
|
color: #7550AE
|
|
|
|
|
|
text-decoration: none
|
|
|
|
|
|
&:hover
|
|
|
|
|
|
text-decoration: underline
|
|
|
|
|
|
|
2026-02-22 11:09:26 +00:00
|
|
|
|
.k-footer__address-row
|
|
|
|
|
|
display: inline-flex
|
|
|
|
|
|
align-items: center
|
|
|
|
|
|
gap: 6px
|
|
|
|
|
|
|
|
|
|
|
|
.k-footer__copy-btn
|
|
|
|
|
|
background: none
|
|
|
|
|
|
border: none
|
|
|
|
|
|
cursor: pointer
|
|
|
|
|
|
padding: 2px
|
|
|
|
|
|
color: #9A9898
|
|
|
|
|
|
display: inline-flex
|
|
|
|
|
|
align-items: center
|
|
|
|
|
|
vertical-align: middle
|
|
|
|
|
|
&:hover
|
|
|
|
|
|
color: #c084fc
|
|
|
|
|
|
|
2026-02-20 17:28:59 +01:00
|
|
|
|
.k-footer__audit-note
|
|
|
|
|
|
margin-top: 8px
|
|
|
|
|
|
font-size: 12px
|
|
|
|
|
|
color: #9A9898
|
2026-03-26 21:31:22 +00:00
|
|
|
|
|
|
|
|
|
|
.k-footer__links
|
|
|
|
|
|
text-align: center
|
|
|
|
|
|
margin-bottom: 16px
|
|
|
|
|
|
a
|
|
|
|
|
|
color: #9A9898
|
|
|
|
|
|
text-decoration: none
|
|
|
|
|
|
font-size: 13px
|
|
|
|
|
|
&:hover
|
|
|
|
|
|
color: #F0F0F0
|
|
|
|
|
|
text-decoration: underline
|
|
|
|
|
|
|
|
|
|
|
|
.k-footer__sep
|
|
|
|
|
|
color: #9A9898
|
|
|
|
|
|
margin: 0 8px
|
2025-10-03 13:19:20 +02:00
|
|
|
|
</style>
|