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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 10 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[build]

# https://docs.rs/tracing/latest/tracing/field/index.html#using-valuable
rustflags = ["--cfg", "tracing_unstable"]

[env]
TS_RS_EXPORT_DIR = { value = "app/packages/payy/src/ts-rs-bindings", relative = true }

[alias]
xtask = "run --bin xtask -q --"
61 changes: 59 additions & 2 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,2 +1,59 @@
/fixtures/params/*.srs filter=lfs diff=lfs merge=lfs -text
audits/kalos_2024_02_23.pdf filter=lfs diff=lfs merge=lfs -text
# Smart contract binaries - suppress diffs
eth/contracts/**/*.bin binary -diff

# Generated Solidity verifiers (90-97 KB each, auto-generated from Noir)
eth/noir/*.sol -diff

# Hardhat/Solidity artifacts and generated bindings
eth/artifacts/**/*.json linguist-generated=true -diff
eth/artifacts/**/*.d.ts linguist-generated=true -diff
eth/artifacts/contracts/**/*.sol linguist-generated=true -diff

# Noir compiled programs (large JSON or binary, up to 1.6 MB)
fixtures/programs/* -diff

# Verification keys and cryptographic data
fixtures/keys/* -diff
fixtures/keys/*_key_fields.json -diff

# Proof files
fixtures/proofs/*.proof -diff
fixtures/circuits/*.proof -diff
pkg/node/tests/cache/*.proof -diff

# Cryptographic parameters
fixtures/params/*.dat -diff

# Insta snapshot files (keep diffs)
**/snapshots/*.snap text
linting/tests/__snapshots__/*.yml text

# Test fixtures (includes 1.8 MB large_wallet_mateo.json)
pkg/wallet-data-dep/tests/fixtures/*.json -diff
pkg/bungee-client-http/fixtures/*.json -diff

# Package lock files (auto-generated dependencies)
yarn.lock linguist-generated=true
package-lock.json linguist-generated=true
Cargo.lock linguist-generated=true
bun.lock linguist-generated=true
bun.lockb binary linguist-generated=true
flake.lock linguist-generated=true

# Generated source code
pkg/database/src/schema.rs linguist-generated=true
**/ts-rs-bindings/*.ts linguist-generated=true
.github/actions/**/dist/*.js linguist-generated=true -diff

# Large generated/reference data
app/packages/emoji-shortcode-mapping/*.json -diff
app/packages/link/src/app/img/note.svg -diff

# Contract compiler artifacts
eth/contracts/noir/*.linkrefs.json -diff

# Binary assets
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
3 changes: 3 additions & 0 deletions .github/actions/cloud-cache/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node_modules
!dist/index.js
!dist/post/index.js
88 changes: 88 additions & 0 deletions .github/actions/cloud-cache/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: 'Cloud Cache'
description: 'Restores and saves a directory to cloud storage as a cache (tar.zst compressed), using a primary key and fallback keys. Supports GCS and S3.'
inputs:
provider:
description: 'Storage provider: gcs or s3'
required: false
default: 'gcs'
gcs-key:
description: 'Base64 encoded JSON service account key for GCS'
required: false
s3-access-key:
description: 'Access key for S3'
required: false
s3-secret-key:
description: 'Secret key for S3'
required: false
s3-endpoint:
description: 'Endpoint URL for S3 (for non-AWS S3-compatible services)'
required: false
s3-region:
description: 'Region for S3 (default: auto)'
required: false
default: 'auto'
bucket:
description: 'Bucket name (GCS or S3)'
required: true
prefix:
description: 'Prefix path in the bucket (optional)'
required: false
default: ''
primary-key:
description: 'Primary key for the cache (without .tar.zst extension)'
required: false
default: ''
primary-key-generator:
description: 'Shell script (bash) to generate the primary key, appending the key (without .tar.zst extension) to $PRIMARY_KEY'
required: false
default: ''
fallback-keys:
description: 'Comma-separated list of fallback keys to check (in order of priority, without .tar.zst extension)'
required: false
default: ''
fallback-key-generator:
description: 'Shell script (bash) to generate fallback keys dynamically, appending one key (without .tar.zst extension) per line to $FALLBACK_KEYS'
required: false
default: ''
local-path:
description: 'Local directory path to restore the cache to and save from'
required: true
skip-upload:
description: 'Skip the cache upload'
required: false
default: 'false'
skip-download:
description: 'Skip restoring (downloading) the cache'
required: false
default: 'false'
retries:
description: 'Total retry attempts per part (download/upload)'
required: false
default: '3'
retry-delay-ms:
description: 'Base backoff in ms for retries (jittered)'
required: false
default: '100'
download-part-count:
description: 'Target number of download parts when restoring (>=1)'
required: false
default: '128'
download-concurrency:
description: 'Max concurrent download parts'
required: false
default: '32'
upload-concurrency:
description: 'Max concurrent S3 upload parts (multipart)'
required: false
default: '32'
outputs:
path:
description: 'Local directory path for the cache'
cache-hit:
description: 'True if exact cache hit on primary key'
restored:
description: 'True if a cache was restored (any key matched, downloaded and extracted)'
runs:
using: 'node16'
main: 'dist/index.js'
post: 'dist/post/index.js'
6 changes: 6 additions & 0 deletions .github/actions/cloud-cache/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/usr/bin/env bash

alias ncc="npx @vercel/ncc"

ncc build index.js -o dist
ncc build post.js --out dist/post
Loading
Loading