Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
FOUNDRY_OUT="target/foundry"

UTS=0xF4D4Fd14Ff7A51aaf113f254fCeC6005598B2bc2
11 changes: 11 additions & 0 deletions .env.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
L1_MESSENGER=0x50c7d3e7f7c656493D1D76aaa1a836CedfCBB16A
L2_MESSENGER=0xBa50f5340FB9F3Bd074bD638c9BE13eCB36E603d

UTS=0xF4D4Fd14Ff7A51aaf113f254fCeC6005598B2bc2
FEE_ORACLE=0x7f2A06e64Ef079Af08D9083144E0C917D6dFce0d

ANCHORING_MANAGER_IMPL=0xC0E20e0cd2724A480a8454a544e47C0cbBcdaB5e
ANCHORING_MANAGER=0x30dBB185D59CF8517cAFfE076D2Ea7B83933808D

ANCHORING_GATEWAY_IMPL=0x97EE9CD89F22E9dD92Bf7CE79B13D6690368fBEe
ANCHORING_GATEWAY=0xBa770953AeF1ED159289Bc587Ac3A60e9a12b2E7
6 changes: 6 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,9 @@
[submodule "lib/openzeppelin-contracts-upgradeable"]
path = lib/openzeppelin-contracts-upgradeable
url = https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable
[submodule "lib/scroll-contracts"]
path = lib/scroll-contracts
url = https://github.com/scroll-tech/scroll-contracts
[submodule "lib/eas-contracts"]
path = lib/eas-contracts
url = https://github.com/ethereum-attestation-service/eas-contracts
57 changes: 56 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,12 @@ itoa = "1.0"
jiff = "0.2.20"
once_cell = { version = "1.21", default-features = false }
paste = "1.0"
phf = { version = "0.13.1", default-features = false }
rand = "0.10"
regex = "1.12"
reqwest = { version = "0.13", default-features = false }
rocksdb = "0.24"
serde = "1.0"
serde-wasm-bindgen = "0.6"
serde_json = "1.0"
serde_with = "3.16"
strum = "0.27"
Expand All @@ -76,7 +76,7 @@ tower-http = "0.6"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
url = "2.5"
wasm-bindgen = "0.2"


crypto-common = "0.2.0-rc.5"
digest = "0.11.0-rc.4"
Expand Down
149 changes: 6 additions & 143 deletions apps/web/src/components/verify/AttestationDetail.vue
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ function formatTimestamp(ts: bigint | number): string {
<template v-if="attestation.attestation.kind === 'bitcoin'">
{{ t('Bitcoin block #{height}', { height: attestation.attestation.height }) }}
</template>
<template v-else-if="attestation.attestation.kind === 'ethereum-uts'">
<template v-else-if="attestation.attestation.kind.startsWith('eas')">
<span class="inline-flex items-center gap-1">
<img
v-if="SCROLL_CHAIN_IDS.has(attestation.attestation.chain)"
Expand All @@ -140,7 +140,7 @@ function formatTimestamp(ts: bigint | number): string {
</span>
<AlertTriangle
v-if="
attestation.attestation.kind === 'ethereum-uts' &&
attestation.attestation.kind.startsWith('eas') &&
isTestnetOrUnknown(attestation.attestation.chain)
"
class="h-3.5 w-3.5 shrink-0 text-pending"
Expand Down Expand Up @@ -185,7 +185,7 @@ function formatTimestamp(ts: bigint | number): string {
</template>

<!-- Ethereum UTS attestation details -->
<template v-else-if="attestation.attestation.kind === 'ethereum-uts'">
<template v-else-if="attestation.attestation.kind.startsWith('eas')">
<div class="space-y-1.5 font-mono text-[11px]">
<div class="flex items-center justify-between">
<span class="text-white/30">{{ t('Type') }}</span>
Expand All @@ -196,7 +196,7 @@ function formatTimestamp(ts: bigint | number): string {
alt="Scroll"
class="h-3.5 w-3.5"
/>
{{ t('Ethereum UTS') }}
{{ t('EAS') }}
</span>
</div>
<div class="flex items-center justify-between">
Expand All @@ -207,75 +207,18 @@ function formatTimestamp(ts: bigint | number): string {
}})</span
>
</div>
<div class="flex items-center justify-between">
<span class="text-white/30">{{ t('Block Height') }}</span>
<span class="flex items-center gap-1">
<span class="text-white/70">{{
attestation.attestation.height
}}</span>
<a
v-if="
getEtherscanBlockUrl(
attestation.attestation.chain,
attestation.attestation.height,
)
"
:href="
getEtherscanBlockUrl(
attestation.attestation.chain,
attestation.attestation.height,
)!
"
target="_blank"
rel="noopener"
class="text-neon-cyan hover:text-neon-cyan/80"
>
<ExternalLink class="h-3 w-3" />
</a>
</span>
</div>
<template
v-if="
attestation.status === 'VALID' && attestation.additionalInfo
"
>
<div
v-if="attestation.additionalInfo.sender"
class="flex items-center justify-between"
>
<span class="text-white/30">{{ t('Sender') }}</span>
<span class="flex items-center gap-1">
<span class="text-white/50">{{
truncateHex(attestation.additionalInfo.sender)
}}</span>
<a
v-if="
getEtherscanAddressUrl(
attestation.attestation.chain,
attestation.additionalInfo.sender,
)
"
:href="
getEtherscanAddressUrl(
attestation.attestation.chain,
attestation.additionalInfo.sender,
)!
"
target="_blank"
rel="noopener"
class="text-neon-cyan hover:text-neon-cyan/80"
>
<ExternalLink class="h-3 w-3" />
</a>
</span>
</div>
<div
v-if="attestation.additionalInfo.timestamp"
v-if="attestation.additionalInfo.time"
class="flex items-center justify-between"
>
<span class="text-white/30">{{ t('Timestamp') }}</span>
<span class="text-white/50">{{
formatTimestamp(attestation.additionalInfo.timestamp)
formatTimestamp(attestation.additionalInfo.time)
}}</span>
</div>
<div
Expand All @@ -288,86 +231,6 @@ function formatTimestamp(ts: bigint | number): string {
}}</span>
</div>
</template>
<template v-if="attestation.attestation.metadata">
<div
v-if="attestation.attestation.metadata.contract"
class="flex items-center justify-between"
>
<span class="text-white/30">{{ t('Contract') }}</span>
<span class="flex items-center gap-1">
<span class="text-white/50">{{
truncateHex(
hexlify(
attestation.attestation.metadata.contract as Uint8Array,
),
)
}}</span>
<a
v-if="
getEtherscanAddressUrl(
attestation.attestation.chain,
hexlify(
attestation.attestation.metadata
.contract as Uint8Array,
),
)
"
:href="
getEtherscanAddressUrl(
attestation.attestation.chain,
hexlify(
attestation.attestation.metadata
.contract as Uint8Array,
),
)!
"
target="_blank"
rel="noopener"
class="text-neon-cyan hover:text-neon-cyan/80"
>
<ExternalLink class="h-3 w-3" />
</a>
</span>
</div>
<div
v-if="attestation.attestation.metadata.txHash"
class="flex items-center justify-between"
>
<span class="text-white/30">{{ t('Tx Hash') }}</span>
<span class="flex items-center gap-1">
<span class="text-white/50">{{
truncateHex(
hexlify(
attestation.attestation.metadata.txHash as Uint8Array,
),
)
}}</span>
<a
v-if="
getEtherscanTxUrl(
attestation.attestation.chain,
hexlify(
attestation.attestation.metadata.txHash as Uint8Array,
),
)
"
:href="
getEtherscanTxUrl(
attestation.attestation.chain,
hexlify(
attestation.attestation.metadata.txHash as Uint8Array,
),
)!
"
target="_blank"
rel="noopener"
class="text-neon-cyan hover:text-neon-cyan/80"
>
<ExternalLink class="h-3 w-3" />
</a>
</span>
</div>
</template>
<!-- Testnet / unknown network warning -->
<div
v-if="isTestnetOrUnknown(attestation.attestation.chain)"
Expand Down
Loading