Skip to content
Draft
Show file tree
Hide file tree
Changes from 43 commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
760f15c
add submit_digest poc impl
lightsing Dec 19, 2025
fc5005f
Merge branch 'master' into dev/m1
lightsing Dec 20, 2025
c8a73a7
refactor: timestamp rewrite (#2)
lightsing Dec 23, 2025
05720e9
feat: proof builder (#9)
lightsing Dec 24, 2025
dc8d717
feat: add submit_digest bench (#10)
lightsing Dec 24, 2025
9f03f3e
feat: high performace journal mvp (#6)
lightsing Dec 24, 2025
8b299a0
feat: link journal (#11)
lightsing Dec 24, 2025
fdba30e
Merge branch 'master' into dev/m1
lightsing Dec 24, 2025
308a202
feat: solidity contracts (#14)
lightsing Dec 25, 2025
24ec05c
wip: ts lib & web (#17)
lightsing Feb 19, 2026
735c012
wip: stamper (#8)
lightsing Feb 19, 2026
90f6767
feat: verifier (#21)
lightsing Feb 21, 2026
c71e0f2
feat: support upgrade (#22)
lightsing Feb 21, 2026
5222a53
feat: add verifier (#23)
lightsing Feb 21, 2026
a631d07
add catch
lightsing Feb 21, 2026
c2fc3b1
fix: domain seperation inner node hash (#24)
lightsing Feb 21, 2026
11718c0
feat: cli crate (#25)
lightsing Feb 22, 2026
ada5d4a
Create README.md for UTS CLI tool
lightsing Feb 22, 2026
2c00035
feat: ts sdk (#26)
lightsing Feb 25, 2026
adc84ab
chore: setup monorepo framework: rollup SDK build, vite web app, lint…
Copilot Feb 25, 2026
7d0dd3a
feat(web): DApp for UniversalTimestamps (#28)
Copilot Feb 25, 2026
7720318
Initial plan
Copilot Feb 25, 2026
21774db
feat(web): add i18n support using @lingui/core with Vue integration
Copilot Feb 25, 2026
21df7a6
fix(web): use generateMessageId for correct Lingui catalog key matching
Copilot Feb 25, 2026
d0a0e1e
more strict regex
lightsing Feb 26, 2026
da8736e
remove unused
lightsing Feb 26, 2026
765c7f9
fix: bmt tests forget update after domain seperation (#32)
lightsing Feb 26, 2026
ec0711f
feat: real wal (#30)
lightsing Mar 4, 2026
b8811f2
feat: l1 anchoring (#33)
lightsing Mar 2, 2026
908d8f4
add NFT
lightsing Mar 3, 2026
385fa1f
feat: sol test coverage (#39)
Copilot Mar 3, 2026
086f17a
fix: deploy and eas fixes
lightsing Mar 4, 2026
1becced
Merge remote-tracking branch 'origin/master' into dev/m2
lightsing Mar 4, 2026
813c876
feat: contracts update (#41)
lightsing Mar 4, 2026
fa9d040
feat: stamper upgrade (#42)
lightsing Mar 4, 2026
813316e
fix: clippy (#43)
lightsing Mar 4, 2026
b248598
feat: RocksDB-backed journal (#44)
Copilot Mar 4, 2026
af2a09b
fix docs
lightsing Mar 5, 2026
c8267b2
remove old journal
lightsing Mar 5, 2026
09e3a81
multiple fix
lightsing Mar 5, 2026
b131370
feat: deploy calendar (#45)
lightsing Mar 6, 2026
217df85
add codename explain
lightsing Mar 6, 2026
f7eff58
feat: add relayer (#47)
lightsing Mar 6, 2026
334a9dc
fix: relayer (#48)
lightsing Mar 7, 2026
02f9334
feat: drand beacon injector (#49)
lightsing Mar 9, 2026
d083b79
fix
lightsing Mar 9, 2026
c9dd24a
fix bench
lightsing Mar 9, 2026
39ab711
feat: contracts sdk (#51)
lightsing Mar 9, 2026
17a9077
update url
lightsing Mar 9, 2026
2649ae4
typo
lightsing Mar 9, 2026
e1124b8
feat: UTS book (#52)
roynalnaruto Mar 10, 2026
4ca3f6d
add base_url
lightsing Mar 10, 2026
cbdca02
fix build
lightsing Mar 10, 2026
acf5e51
Merge branch 'master' into dev/m2
lightsing Mar 10, 2026
77340fe
fix
lightsing Mar 10, 2026
9f6f36c
fix
lightsing Mar 10, 2026
de0e0de
fix
lightsing Mar 10, 2026
2b2d279
add env
lightsing Mar 10, 2026
3922ef5
add branch
lightsing Mar 10, 2026
953a545
remove env
lightsing Mar 10, 2026
fcfd39c
Revert "fix build"
lightsing Mar 10, 2026
2041775
fix
lightsing Mar 10, 2026
4e4371c
Update README with links and quick start; fix MathJax rendering in bo…
Copilot Mar 10, 2026
328468c
remove dev docs
lightsing Mar 10, 2026
814eae4
rename to sdk-ts
lightsing Mar 11, 2026
a65f3e8
feat: python sdk (#57)
lightsing Mar 11, 2026
d7b4ece
fix
lightsing Mar 11, 2026
747a475
remove staled
lightsing Mar 11, 2026
4cd11ab
feat: go sdk (#58)
lightsing Mar 12, 2026
5e861e4
feat: docs (#60)
lightsing Mar 16, 2026
f402a07
chore: refactor rust (#61)
lightsing Mar 17, 2026
f169be7
fix build
lightsing Mar 17, 2026
789dc46
feat: add CI workflows for PR checks with path filtering, caching, an…
Copilot Mar 17, 2026
963e6c2
fix: SDK align (#62)
Copilot Mar 17, 2026
0b8e7c2
Merge branch 'master' into dev/m2
lightsing Mar 17, 2026
0cd104d
Merge branch 'master' into dev/m2
lightsing Mar 17, 2026
1dd31c6
naming to distinguish
lightsing Mar 17, 2026
6699ca9
feat: prepare repository for open-source release (#64)
Copilot Mar 17, 2026
bb84a02
fix build
lightsing Mar 17, 2026
d9b76ae
feat: add `retain_attestations` API and CLI `purge` command for remov…
Copilot Mar 18, 2026
ab68c6f
refactor(web): new web
CatSouta Mar 19, 2026
523bb38
Merge branch 'dev/m2' of https://github.com/lightsing/uts into dev/m2
CatSouta Mar 19, 2026
91ef293
fix: retain, replace by filter (#68)
lightsing Mar 20, 2026
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
46 changes: 46 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Project-specific ignores
/.db

# Generated by Cargo
# will have compiled files and executables
debug
target

# These are backup files generated by rustfmt
**/*.rs.bk

# MSVC Windows builds of rustc generate these, which store debugging information
*.pdb

# Generated by cargo mutants
# Contains mutation testing data
**/mutants.out/

# MacOS files
.DS_Store

# IntelliJ IDEA
.idea

# Hardhat/Foundry files
cache
cache-hardhat
artifacts
artifacts-hardhat
broadcast

# Js
node_modules
dist
*.tsbuildinfo
.eslintcache
.rollup.cache

# Project files
.db

# WAL artifacts
.journal
*.wal
checkpoint.meta
checkpoint.meta.tmp
4 changes: 2 additions & 2 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[*.{js,jsx,ts,tsx,css,scss,html,json,md}]
[*.{js,jsx,ts,tsx,css,scss,html,json,md,sql}]
charset = utf-8
insert_final_newline = true
end_of_line = lf
indent_style = space
indent_size = 2
max_line_length = 80
max_line_length = 80
1 change: 1 addition & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
FOUNDRY_OUT="target/foundry"
SQLX_OFFLINE=true
16 changes: 16 additions & 0 deletions .env.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# All addresses here are for Scroll Sepolia testnet deployment.
MASTER_ADDRESS=0x96B7c62f1FC932466264C19376263C980848b760

L1_MESSENGER=0x50c7d3e7f7c656493D1D76aaa1a836CedfCBB16A
L2_MESSENGER=0xBa50f5340FB9F3Bd074bD638c9BE13eCB36E603d
EAS_SCROLL=0xaEF4103A04090071165F78D45D83A0C0782c2B2a # scroll sepolia
EAS_MAINNET=0xC2679fBD37d54388Ce493F1DB75320D236e1815e # sepolia

FEE_ORACLE=0x79bd2bb088b4E75AB26869cbEc1571019aBa06C0
NFT_GENERATOR=0x8F1be71d553cEff8DEf08Af49214896e6D976e74

ANCHORING_MANAGER_IMPL=0x5a5FBf844CBDD1aB6CbAb9151a8C1d855e296A94
ANCHORING_MANAGER=0x7249802D50CB719547F7685d090d4b84e7183C32

ANCHORING_GATEWAY_IMPL=0xf8dF10964a6E583560A71f5aB10d85cF9497F30d
ANCHORING_GATEWAY=0x39Ea3C70A5e26C8dB4a1A5E9A7Fc7Bab04684C08
97 changes: 97 additions & 0 deletions .github/workflows/docker-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
name: Build in Docker

on:
workflow_dispatch:

env:
REGISTRY: ghcr.io
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Lowercase repository name
run: |
echo "REPO=${GITHUB_REPOSITORY,,}" >> ${GITHUB_ENV}

- name: Extract metadata for Calendar
id: meta-calendar
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.REPO }}-calendar
tags: |
type=raw,value=latest
type=sha,format=short

- name: Extract metadata for CLI
id: meta-cli
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.REPO }}-cli
tags: |
type=raw,value=latest
type=sha,format=short

- name: Build and push Calendar App
uses: docker/build-push-action@v5
with:
context: .
push: true
file: Dockerfile
target: calendar-runtime
tags: ${{ steps.meta-calendar.outputs.tags }}
labels: ${{ steps.meta-calendar.outputs.labels }}
cache-from: type=gha,scope=rust-build
cache-to: type=gha,mode=max,scope=rust-build

- name: Build and push CLI App
uses: docker/build-push-action@v5
with:
context: .
push: true
file: Dockerfile
target: cli-runtime
tags: ${{ steps.meta-cli.outputs.tags }}
labels: ${{ steps.meta-cli.outputs.labels }}
cache-from: type=gha,scope=rust-build

- name: Build Builder Stage for Extraction
uses: docker/build-push-action@v5
with:
context: .
load: true
file: Dockerfile
target: builder
tags: rust-builder-temp:latest
cache-from: type=gha,scope=rust-build

- name: Extract Binaries
run: |
docker create --name extract rust-builder-temp:latest
docker cp extract:/app/target/x86_64-unknown-linux-gnu/release/uts-calendar ./uts-calendar
docker cp extract:/app/target/x86_64-unknown-linux-gnu/release/uts ./uts
docker rm extract

- name: Upload Binaries as Artifact
uses: actions/upload-artifact@v4
with:
name: compiled-binaries
path: |
uts-calendar
uts
retention-days: 7
47 changes: 47 additions & 0 deletions .github/workflows/docker-builder.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Manual Build and Push Builder to GHCR

on:
workflow_dispatch:

env:
REGISTRY: ghcr.io

jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata for Base Image
id: meta-base
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ github.repository }}-builder
tags: |
type=raw,value=latest
type=sha,format=short

- name: Build and push Base Image
uses: docker/build-push-action@v5
with:
context: .
push: true
file: Dockerfile.rust
tags: ${{ steps.meta-base.outputs.tags }}
labels: ${{ steps.meta-base.outputs.labels }}
cache-from: type=gha,scope=base
cache-to: type=gha,mode=max,scope=base
9 changes: 9 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,12 @@
[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
[submodule "lib/solady"]
path = lib/solady
url = https://github.com/Vectorized/solady
1 change: 1 addition & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,5 @@ repos:
entry: npx prettier --write
language: system
files: \.(js|jsx|ts|tsx|json|css|scss|md|html|toml)$
exclude: \.sqlx/.*\.json$
pass_filenames: true
4 changes: 3 additions & 1 deletion .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,6 @@ pnpm-lock.yaml

crates/*
lib/*
target/*
target/*

**/.sqlx/*.json
Loading
Loading