Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1735 commits
Select commit Hold shift + click to select a range
8399a6f
fix(relayer): exclude extra data from serialization
manoranjith Dec 11, 2025
a858019
chore(relayer): pg_cron moved to app cron
nboisde Dec 10, 2025
e1e5e81
chore(relayer): applying changes for cron
nboisde Dec 11, 2025
69348bc
chore(relayer): adding debug logs for cron
nboisde Dec 11, 2025
67253dd
chore(relayer): moving cron tasks
nboisde Dec 11, 2025
16be514
chore(relayer): adding default config for test suite to skip intensiv…
nboisde Dec 12, 2025
2bf3c0d
chore(relayer): adding config for expiry and cron interval
nboisde Dec 12, 2025
2715121
chore(relayer): passing sql interval settings in todo
nboisde Dec 12, 2025
d64d49d
chore(relayer): removing y settings support for intervals
nboisde Dec 12, 2025
c9d4df5
fix(relayer): handle the ext_job_id returned from db correctly
manoranjith Dec 11, 2025
204c43c
fix: handle orchestrator dispatch errors in V1 handlers
manoranjith Dec 12, 2025
2ead400
fix(relayer): atomic transaction for share insertion and completion
manoranjith Dec 12, 2025
127cc24
feat(relayer): update models for consistency
manoranjith Dec 12, 2025
f97edc5
chore(relayer)!: move retry-after to header and add tests
manoranjith Dec 12, 2025
7335350
refactor(relayer): rename the ext_job_id from two sources for clarity
manoranjith Dec 12, 2025
a80620a
chore(relayer): update version in cargo.toml -> v0.8.0-rc.5
manoranjith Dec 12, 2025
8ca55d1
chore(relayer): wip metrics
nboisde Dec 4, 2025
901aaf7
chore(relayer): metrics input proof status
nboisde Dec 4, 2025
a7d20d2
chore(relayer): adding status metrics update to pub dec
nboisde Dec 5, 2025
b857e32
chore(relayer): metrics wip adding histoVec for status timing
nboisde Dec 5, 2025
730ea23
chore(relayer): adding updated at metrics for statuses pub dec
nboisde Dec 5, 2025
cd89fbf
chore(relayer): adding metrics for statuses for user dec
nboisde Dec 5, 2025
332e4f6
chore(relayer): alerting on statuses document to be refined
nboisde Dec 5, 2025
307164a
chore(relayer): metrics on active and idle connection and acquire
nboisde Dec 8, 2025
671bffd
chore(relayer): metrics for query durations and failures
nboisde Dec 8, 2025
cbae328
chore(relayer): sql metrics documentation
nboisde Dec 8, 2025
2d130ef
chore(relayer): versionning http metrics
nboisde Dec 8, 2025
3a9c26d
chore(relayer): transaction metrics declaration
nboisde Dec 10, 2025
c6aaeab
chore(relayer): clippy sat sub
nboisde Dec 10, 2025
e1459ff
chore(relayer): metrics for v2 keyurl
nboisde Dec 10, 2025
b2871a4
fix(relayer): fix metrics init by adding health handler
manoranjith Dec 10, 2025
88e4a24
chore(relayer): Adding metrics to share reception queries
nboisde Dec 13, 2025
cc86288
chore(relayer): applying metrics to block repo
nboisde Dec 13, 2025
fb8b61e
chore(relayer): adding metrics to in app cron timeout
nboisde Dec 13, 2025
811bd97
chore(relayer): adding metrics to expiry cron
nboisde Dec 13, 2025
ff93cc8
chore(relayer): clippy
nboisde Dec 13, 2025
2d07880
chore(relayer): integrating engine metrics
nboisde Dec 14, 2025
ab88276
chore(relayer): bump v0.8.0-rc.6 for metrics
nboisde Dec 14, 2025
b4457ae
chore(relayer): applying changes refactor to metrics
nboisde Dec 14, 2025
7ed68b2
chore(relayer): adding configurable bucket for transaction
nboisde Dec 14, 2025
0d2b291
test(relayer): fix keyurl test
manoranjith Dec 12, 2025
4c190b5
ci(relayer): add missing key url test run in ci
manoranjith Dec 12, 2025
3dcabcf
ci(relayer): in ci tests, use add timeout and use make cmds
manoranjith Dec 16, 2025
e8ade95
chore(relayer): make two conn pools, one each for app & cron
manoranjith Dec 16, 2025
3f2169b
chore(relayer): attempt once to init sql pool and report failure
manoranjith Dec 16, 2025
217ed36
chore(relayer): use task manager to spawn cron & monitor task
manoranjith Dec 16, 2025
1fd80b1
fix(relayer): min connections to 0 in tests
manoranjith Dec 16, 2025
3a1b57e
test(relayer): add proper shutdown for relayer in tests
manoranjith Dec 12, 2025
0779633
chore(relayer): fix internal server error message
manoranjith Dec 16, 2025
59cc3f1
chore(relayer): updating to v0.8.0-rc.7
nboisde Dec 16, 2025
3ef0ddb
chore(relayer): improve logging in gw listener
manoranjith Dec 17, 2025
4b01499
feat(relayer): add parallel listeners with deduplication
manoranjith Dec 17, 2025
3e63548
refactor(relayer): refactor listener into modular functions
manoranjith Dec 17, 2025
3a58910
chore(relayer): move listener reconnection logic from lib to app
manoranjith Dec 17, 2025
a2cf013
chore(relayer): add in-flight status in migrations
manoranjith Dec 17, 2025
d76b957
chore(relayer): bump version to v0.8.0-rc.8
manoranjith Dec 17, 2025
f743dd6
chore(relayer): bump version to v0.8.0
manoranjith Dec 18, 2025
bd1323c
test(relayer): add missing tests for parallel listeners
manoranjith Dec 17, 2025
6a1c655
test(relayer): make cron configurable and add tests
manoranjith Dec 18, 2025
bed3293
test(relayer): add negative test cases for transaction errors
manoranjith Dec 18, 2025
93d42ad
chore(relayer): separate preparing transaction and transaction loop
nboisde Dec 18, 2025
7ead85f
chore(relayer): queuing wip
nboisde Dec 22, 2025
e813292
chore(relayer): requests for tx in flight status update
nboisde Dec 22, 2025
d95cab2
chore(relayer): hooks and in flight status integration
nboisde Dec 22, 2025
9cb2979
chore(relayer): clippy
nboisde Dec 23, 2025
139398d
chore(relayer): passing receipt extraction to hook for input proof
nboisde Dec 27, 2025
b734499
chore(relayer): removing helper returning receipt
nboisde Dec 27, 2025
2835a65
chore(relayer): remove send raw tx sync from engine, separated
nboisde Dec 27, 2025
a650e21
chore(relayer): upgrading ruint and alloy to address cve
nboisde Dec 29, 2025
efd5d6b
fix(relayer): add request-id and log (warn) rate limit errors
manoranjith Dec 30, 2025
7635d98
chore(relayer): merge 504 errors into 503 errors
manoranjith Dec 30, 2025
28da354
chore(relayer): mempool struct
nboisde Jan 1, 2026
71dda36
chore(relayer): queue, wip before error dispatcher
nboisde Jan 1, 2026
1fabff6
chore(relayer): queue integration and error dispatch for input proof
nboisde Jan 1, 2026
0a75284
chore(relayer): adding queuing to public decrypt
nboisde Jan 1, 2026
09df80c
chore(relayer): queue integration in user decrypt flow
nboisde Jan 2, 2026
08f08c2
chore(relayer): adding tx queue configuration
nboisde Jan 2, 2026
a6bde87
chore(relayer): adding throttling queue to orchestrator and renaming
nboisde Jan 2, 2026
2c352b6
chore(relayer): changing unbounded to bounded
nboisde Jan 4, 2026
eaadb35
chore(relayer): adding error management to queue and refactor
nboisde Jan 5, 2026
454d7e2
chore(relayer): soft_capacity added to throttler
nboisde Jan 5, 2026
ecd1647
chore(relayer): moving throttler instanciation
nboisde Jan 5, 2026
bd92872
chore(relayer): bouncing applied on public decrypt v1 v2
nboisde Jan 6, 2026
f21e239
chore(relayer): adding bouncing onto user_decrypt
nboisde Jan 6, 2026
dca79d1
chore(relayer): bouncing on input proof
nboisde Jan 6, 2026
3df061f
chore(relayer): update default config values for queue
manoranjith Jan 6, 2026
216f5cf
refactor(relayer): fix a naming issue
manoranjith Jan 6, 2026
b5c03b8
chore(relayer)!: use rate_limited error label for protocol overloaded
manoranjith Jan 6, 2026
be98a01
feat(relayer): add admin endpoint for updating throttle rate
manoranjith Jan 6, 2026
c6e86ef
refactor(relayer): use derive default for UsageLimit enum
manoranjith Jan 6, 2026
8c9cb4b
chore(relayer): release v0.8.2
nboisde Jan 6, 2026
2f8eb90
chore(relayer): settings for readiness check
nboisde Jan 7, 2026
467ce48
chore(relayer): wip on public decrypt readiness queue
nboisde Jan 7, 2026
5316a06
chore(relayer): public decrypt readiness flow
nboisde Jan 7, 2026
df3ccbb
chore(relayer): pub dec readiness bouncer
nboisde Jan 7, 2026
9af400d
chore(relayer): user decrypt readiness processor
nboisde Jan 7, 2026
0d06266
chore(relayer): readiness check proc user decrypt
nboisde Jan 7, 2026
a78f650
chore(relayer): integration fhevm readiness user dec
nboisde Jan 7, 2026
30af33c
chore(relayer): user decrypt readiness bouncing
nboisde Jan 7, 2026
8e67581
chore(relayer): clippy
nboisde Jan 7, 2026
d55602f
chore: minor dockerfile improvements
enitrat Jan 8, 2026
8a24ee6
chore(relayer): declaring one tx queue per flow
nboisde Jan 12, 2026
d2490b5
chore(relayer): throttlers declaration refactor
nboisde Jan 12, 2026
533c20e
chore(relayer): queue metrics declaration
nboisde Jan 12, 2026
af56604
chore(relayer): adding metrics to queues
nboisde Jan 12, 2026
275fe9c
chore(relayer): init metrics for throttlers unit tests
nboisde Jan 12, 2026
f03a750
chore(relayer): rename fhevm_relayer.rs to startup.rs for clarity
manoranjith Dec 11, 2025
c7d0234
feat(relayer): add startup recovery
manoranjith Jan 8, 2026
22dba61
chore(relayer): reset in-flight->processing during recovery
manoranjith Jan 8, 2026
f53ab36
chore(relayer): add tests for startup recovery
manoranjith Jan 12, 2026
9133bdb
fix(relayer): deserialize ct handles to fix recovery
manoranjith Jan 12, 2026
5ffad99
chore(relayer): treat extra data as string everywhere internally
manoranjith Dec 11, 2025
e6f169f
chore(relayer): make repo updates idempotent
manoranjith Jan 7, 2026
f90c230
fix(relayer): handle user decrypt insert share response correctly
manoranjith Jan 12, 2026
6806523
feat(relayer): add configurable cron startup delay after recovery
manoranjith Jan 12, 2026
871edb5
feat(relayer): handle reverts due to pause, funds insuff, invalid signs
manoranjith Dec 31, 2025
b86b0c9
fix(relayer)!: make a new ext_job_id when repeating failed/timed_out …
manoranjith Jan 13, 2026
13687e7
fix(relayer): remove 408 response on v1 pub decrypt
manoranjith Jan 14, 2026
a9d6f12
fix(relayer): add deduplication at http handler for v1 pub decrypt
manoranjith Jan 15, 2026
ee191f1
chore(relayer): extend deduplication to other three cases as well
manoranjith Jan 15, 2026
6c647ac
chore(relayer): use same conn for fetching shares
manoranjith Jan 15, 2026
00a8485
test(relayer): per test schema in same db for isolation
manoranjith Jan 15, 2026
42b0737
ci(relayer): install psql natively for more conn
manoranjith Jan 15, 2026
7104c08
fix(relayer): type in throttler name via /admin
manoranjith Jan 15, 2026
1b59172
chore(relayer): version bump
nboisde Jan 15, 2026
bacd2df
chore(relayer): fix clippy errors
manoranjith Jan 16, 2026
30192a4
feat(relayer): make each listener url configurable
manoranjith Jan 16, 2026
44a59af
chore(relayer): filter by event topics in ws subscription
manoranjith Jan 16, 2026
5eb83b6
chore(relayer): recycle ws connections on listener
manoranjith Jan 16, 2026
ce49a0d
feat(relayer): add polling based listener
manoranjith Jan 17, 2026
61ada1b
chore(relayer): continue after max retries for ws reconn
manoranjith Jan 17, 2026
8fe4ad7
fix(relayer): do nothing on dupl event in gw handler
manoranjith Jan 17, 2026
27809f6
fix(relayer): redact private key in logs
manoranjith Jan 17, 2026
05a6290
chore(relayer): bump to v0.8.5
manoranjith Jan 17, 2026
8d6ec47
chore(relayer): adding array to yaml seq conf
nboisde Jan 17, 2026
7d6db37
chore(relayer): bumping version to relayer v0.8.6
nboisde Jan 17, 2026
0d7a69e
chore(relayer): separate config for read http url
nboisde Jan 18, 2026
ec23459
fix(relayer): race condition in user decrypt queries
manoranjith Jan 18, 2026
0a7bbdc
chore(relayer): handle revert acl selector
nboisde Jan 19, 2026
9efa4c7
feat(relayer): dynamic retry-after based on queue status
manoranjith Jan 19, 2026
7cd1dcd
fix(relayer): address clippy warnings in recovery tests
manoranjith Jan 16, 2026
816e677
fix(relayer): show JobId as hex in logs
manoranjith Jan 19, 2026
9f63c9c
fix(relayer): decrement metrics on expiry purge
manoranjith Jan 19, 2026
4dbe059
fix(relayer): init status metrics from DB on startup
manoranjith Jan 19, 2026
5ab8462
chore(relayer): redact uneeded data from logs
manoranjith Jan 19, 2026
f8084fd
fix(relayer): redact blockchain RPC URLs in logs
manoranjith Jan 19, 2026
50cc467
fix(relayer): pass full error upstream
manoranjith Jan 19, 2026
3800afe
chore(relayer): handle conversion errors
manoranjith Jan 19, 2026
fe874e4
chore(relayer): alert log on fail w/ empty reason
manoranjith Jan 19, 2026
4b04ed6
docs(relayer): add logging policy docs
manoranjith Jan 19, 2026
31fdca9
feat(relayer): add logging primitives
manoranjith Jan 19, 2026
ea650ea
chore(relayer): improve logs in tx engine, helper
manoranjith Jan 19, 2026
bbe40a4
chore(relayer): improve logs in tx throttler
manoranjith Jan 19, 2026
dee9e08
chore(relayer): improve logs in tx processor
manoranjith Jan 19, 2026
0efc874
chore(relayer): improve logs in cron workers
manoranjith Jan 19, 2026
a2d87b1
chore(relayer): improve logs in cron workers
manoranjith Jan 19, 2026
7159cfb
chore(relayer): improve logs in public decr handlers
manoranjith Jan 19, 2026
f1f094e
chore(relayer): improve logs in user decr handlers
manoranjith Jan 19, 2026
86fb4fa
chore(relayer): improve logs in input proof handlers
manoranjith Jan 19, 2026
bfb782e
chore(relayer): bump relayer & migrate to v0.8.7
manoranjith Jan 19, 2026
812ee04
fix(relayer): clippy issue (use fallible incorrectly)
manoranjith Jan 19, 2026
7fd23d2
feat(relayer): dedup + job based for input proofs
manoranjith Jan 16, 2026
ab4006c
chore(relayer): improve logs in input proof handlers
manoranjith Jan 19, 2026
a853101
fix(relayer): improved logs + config validation
manoranjith Jan 19, 2026
466ea63
chore(relayer): down migration for v0.8.8 -> 0.8.7
manoranjith Jan 19, 2026
9f9dcea
chore(relayer): bump relayer & migrate to v0.8.8
manoranjith Jan 19, 2026
5a565be
chore(relayer): revise eta computation formulae
manoranjith Jan 20, 2026
4230c17
feat(relayer): incldue ecdsa errors to inv sign
manoranjith Jan 20, 2026
af26bcb
chore(relayer): bump relayer & migrate to v0.8.9
manoranjith Jan 20, 2026
34a94ad
fix(relayer): correct return type for inv sig
manoranjith Jan 20, 2026
35e9092
chore(relayer): bump relayer & migrate to v0.8.10
manoranjith Jan 20, 2026
aa433d4
fix(relayer): make clippy happy (#850)
enitrat Jan 22, 2026
3d1e417
fix(relayer): update tests for invalid_signature API change (#851)
enitrat Jan 22, 2026
0771677
fix(ci): use bracket notation for jq service map access (#852)
enitrat Jan 26, 2026
800c587
fix(relayer): correct read_http_url validation and error message (#853)
enitrat Jan 26, 2026
679e8c3
feat: implement delegated user decryption use case for V2 endpoints
isaacdecoded Jan 28, 2026
96a8106
chore(relayer): bump relayer & migrate to v0.9.0-rc.2
manoranjith Feb 2, 2026
ab61830
fix(ci): upgrade raven-actions/actionlint to v2.1.1
manoranjith Feb 2, 2026
1585947
fix(relayer): make updated_at trigger conditional on actual row changes
manoranjith Jan 30, 2026
3eb5d4a
fix(relayer): skip timestamp update in input proof ON CONFLICT
manoranjith Jan 30, 2026
fb097bf
fix(relayer): add status field to V2 POST error responses
manoranjith Jan 30, 2026
a16ca6b
chore(relayer): use enum for response.status field
manoranjith Jan 30, 2026
c153a12
test(relayer): update integ test to validate status
manoranjith Jan 30, 2026
e1ef3bf
test(relayer): add negative test cases in v2 tests
manoranjith Jan 30, 2026
3656e44
fix(relayer): use UUIDv4 for request_id in HTTP handlers
manoranjith Jan 30, 2026
df4fabd
feat(relayer): add HTTP response logging for V2 endpoints
manoranjith Jan 30, 2026
5cbf1ab
feat(relayer): add HTTP response logging for delegated user decrypt
manoranjith Jan 30, 2026
c133a34
fix(relayer): race due to send_raw_tx_sync latency spike
manoranjith Jan 30, 2026
de07216
fix(relayer): port V2 response fixes to delegated user decrypt handler
manoranjith Jan 30, 2026
20c0cfc
fix(relayer): fix case conversion bug for err msg
manoranjith Feb 4, 2026
0adb99a
fix(relayer): reorder migrations due to hot fix
manoranjith Feb 4, 2026
ebec5d0
fix(relayer): dependabot issue by upgrading package
manoranjith Feb 4, 2026
4669986
fix(relayer): add missing error handlers for deleg
manoranjith Feb 4, 2026
a6de2b7
chore(relayer): bump relayer & migrate to v0.9.0-rc.3
manoranjith Jan 30, 2026
b0ea164
chore(relayer): remove Tower rate limiter middleware (#865)
zmalatrax Feb 9, 2026
ed48376
chore: remove code outside relayer scope (#869)
zmalatrax Feb 18, 2026
031d322
chore(relayer): add test coverage tooling (#953)
paulo-zama Feb 17, 2026
adb4990
chore: update README (#870)
zmalatrax Feb 20, 2026
f16906a
chore: update alloy deps (#876)
zmalatrax Feb 20, 2026
e858664
ci: simplify CI for relayer-only repository (#873)
zmalatrax Feb 20, 2026
377e6c8
chore(relayer): relayer-sdk metrics (#986) (#872)
paulo-zama Feb 20, 2026
5a6a670
feat: enhance makefile devx (#877)
zmalatrax Feb 23, 2026
57192fa
docs: refactor README to use makefile targets (#880)
zmalatrax Feb 24, 2026
0a4f4a0
chore(relayer): documentation update - deletion policy (#1074)
paulo-zama Feb 24, 2026
d2abec7
chore: remove unused deps, update deps (#878)
zmalatrax Feb 25, 2026
ae91f74
fix(relayer): no matching rows on SQL insert/update (#989)
paulo-zama Feb 23, 2026
f012989
chore(relayer): Cleanup custom metrics (#951)
paulo-zama Feb 24, 2026
3d9ec38
test(relayer): prove queued-to-failure bug
manoranjith Feb 26, 2026
492fdd8
fix(relayer): queued-to-failure SQL transitions
manoranjith Feb 26, 2026
c5be399
test(relayer): assert error labels in V2 tests
manoranjith Feb 26, 2026
755d9ba
fix(relayer): fix timeout label assigning in V2 GET
manoranjith Feb 26, 2026
038ed54
fix(relayer): use correct selector for delegated decrypt
manoranjith Feb 27, 2026
4a47527
ci(relayer): add delegated user decrypt test to ci
manoranjith Feb 27, 2026
bd6adab
chore(relayer): improve comments
manoranjith Feb 27, 2026
81f962e
test(relayer): rm redundant test in test utility
manoranjith Mar 3, 2026
b4e22f4
fix(relayer): v2 proof rejection returns 200 OK
manoranjith Mar 3, 2026
97336e5
refactor(relayer): deduplicate classify_error
manoranjith Mar 3, 2026
876a1d1
feat(relayer): validate ACL on host chain directly
manoranjith Feb 26, 2026
7767c7c
feat(relayer): remove MultichainACL bindings
manoranjith Mar 2, 2026
df1486e
test(relayer): add host ACL integration tests
manoranjith Feb 27, 2026
1fdb4de
fix(relayer): redact RPC URLs from contract errors
manoranjith Mar 2, 2026
6841708
refactor(relayer): split host/gateway/readiness
manoranjith Mar 4, 2026
84bfdb5
chore: remove v1 routes (#891)
zmalatrax Mar 9, 2026
7e87a8d
refactor: move event_id mapping to inner enums (#894)
zmalatrax Mar 10, 2026
1bbd1dc
refactor: remove orchestrator deadcode generics (#895)
zmalatrax Mar 10, 2026
396ba90
fix(relayer): delete transaction_helper_test.rs which silently swallo…
zmalatrax Mar 11, 2026
142e5b0
fix: move all validation to settings (#898)
zmalatrax Mar 11, 2026
f6feae9
chore(relayer): update histogram bucket config
paulo-zama Mar 11, 2026
c41e803
refactor: reduce throttler boilerplate (#900)
zmalatrax Mar 11, 2026
f63f5c1
refactor: remove eyre for anyhow (#899)
zmalatrax Mar 11, 2026
787405c
chore(relayer): migrate once_cell::sync::OnceCell to std::sync::OnceL…
zmalatrax Mar 11, 2026
8509907
chore(relayer): ci - pipeline update
paulo-zama Mar 4, 2026
3477387
feat(relayer): add AWS KMS signer support (#903)
manoranjith Mar 13, 2026
73940cf
fix(relayer): removing filters from listener (#914)
nboisde Mar 17, 2026
1654c26
refactor: adjust extra data validations to be propagated verbatim
isaacdecoded Mar 17, 2026
7a4fa01
fix(relayer): wiz security findings in Dockerfiles (#1165)
paulo-zama Mar 19, 2026
6c20b30
refactor: revise log levels (#920)
zmalatrax Mar 20, 2026
8b90c9b
fix(relayer): dependabot alerts and improve metrics (#1174)
paulo-zama Mar 20, 2026
2959130
refactor: make data deletion opt-in with explicit `expiry_enabled` co…
zmalatrax Mar 23, 2026
ae0385a
fix: use old isUserDecryptionReady signature for backward compatibili…
zmalatrax Mar 23, 2026
65fdb4e
refactor(relayer): unify V2 error response types (#915)
manoranjith Mar 23, 2026
7ee76df
feat(relayer): update open api spec + cmd to gen it (#803)
manoranjith Mar 23, 2026
dad85d4
docs(relayer): add mainnet self-hosting guide and restructure README …
zmalatrax Mar 23, 2026
1f82e36
chore(relayer): migrate relayer to fhevm (#914)
paulo-zama Mar 24, 2026
14a2572
chore(relayer): migrate relayer to fhevm (#914)
paulo-zama Mar 24, 2026
2963255
chore(relayer): migrate relayer to fhevm (#914)
paulo-zama Mar 24, 2026
16ac4d4
chore(relayer): migrate relayer to fhevm (#914)
paulo-zama Mar 24, 2026
46e0daf
chore(relayer): migrate relayer to fhevm (#914)
paulo-zama Mar 26, 2026
09e540b
chore(relayer): migrate relayer to fhevm (#914)
paulo-zama Mar 26, 2026
f164252
chore(relayer): migrate relayer to fhevm (#914)
paulo-zama Mar 26, 2026
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
  •  
  •  
  •  
3 changes: 2 additions & 1 deletion .github/config/commitlint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ const Configuration = {
'sdk',
'test-suite',
'charts',
'common'
'common',
'relayer'
]
],
},
Expand Down
33 changes: 33 additions & 0 deletions relayer/.cargo/audit.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# All of the options which can be passed via CLI arguments can also be
# permanently specified in this file.

[advisories]
# The ignored vulnerability RUSTSEC-2024-0388 is tracked by #59
# The ignored vulnerability RUSTSEC-2025-0009 is tracked by #150
# Vulnerability RUSTSEC-2023-0071 is not tracked: rsa used by sqlx but not included on relayer (verified with cargo tree)
ignore = ["RUSTSEC-2024-0388", "RUSTSEC-2025-0009", "RUSTSEC-2023-0071"]
informational_warnings = ["unmaintained"]
severity_threshold = "medium"

# Advisory Database Configuration
[database]
path = ".cargo/advisory-db" # Path where advisory git repo will be cloned
url = "https://github.com/RustSec/advisory-db.git" # URL to git repo
fetch = true # Perform a `git fetch` before auditing (default: true)
stale = false # Allow stale advisory DB (i.e. no commits for 90 days, default: false)

# Output Configuration
[output]
deny = [] # exit on error if unmaintained dependencies are found
format = "terminal" # "terminal" (human readable report) or "json"
quiet = false # Only print information on error
show_tree = false # Show inverse dependency trees along with advisories (default: true)

# Target Configuration
[target]
os = "linux"
# arch = "x86_64"

[yanked]
enabled = true # Warn for yanked crates in Cargo.lock (default: true)
update_index = true # Auto-update the crates.io index (default: true)
244 changes: 244 additions & 0 deletions relayer/.cargo/deny.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,244 @@
# This template contains all of the possible sections and their default values

# Note that all fields that take a lint level have these possible values:
# * deny - An error will be produced and the check will fail
# * warn - A warning will be produced, but the check will not fail
# * allow - No warning or error will be produced, though in some cases a note
# will be

# The values provided in this template are the default values that will be used
# when any section or field is not specified in your own configuration

# Root options

# The graph table configures how the dependency graph is constructed and thus
# which crates the checks are performed against
[graph]
# If 1 or more target triples (and optionally, target_features) are specified,
# only the specified targets will be checked when running `cargo deny check`.
# This means, if a particular package is only ever used as a target specific
# dependency, such as, for example, the `nix` crate only being used via the
# `target_family = "unix"` configuration, that only having windows targets in
# this list would mean the nix crate, as well as any of its exclusive
# dependencies not shared by any other crates, would be ignored, as the target
# list here is effectively saying which targets you are building for.
targets = [
# The triple can be any string, but only the target triples built in to
# rustc (as of 1.40) can be checked against actual config expressions
#"x86_64-unknown-linux-musl",
# You can also specify which target_features you promise are enabled for a
# particular target. target_features are currently not validated against
# the actual valid features supported by the target architecture.
#{ triple = "wasm32-unknown-unknown", features = ["atomics"] },
]
# When creating the dependency graph used as the source of truth when checks are
# executed, this field can be used to prune crates from the graph, removing them
# from the view of cargo-deny. This is an extremely heavy hammer, as if a crate
# is pruned from the graph, all of its dependencies will also be pruned unless
# they are connected to another crate in the graph that hasn't been pruned,
# so it should be used with care. The identifiers are [Package ID Specifications]
# (https://doc.rust-lang.org/cargo/reference/pkgid-spec.html)
#exclude = []
# If true, metadata will be collected with `--all-features`. Note that this can't
# be toggled off if true, if you want to conditionally enable `--all-features` it
# is recommended to pass `--all-features` on the cmd line instead
all-features = false
# If true, metadata will be collected with `--no-default-features`. The same
# caveat with `all-features` applies
no-default-features = false
# If set, these feature will be enabled when collecting metadata. If `--features`
# is specified on the cmd line they will take precedence over this option.
#features = []

# The output table provides options for how/if diagnostics are outputted
[output]
# When outputting inclusion graphs in diagnostics that include features, this
# option can be used to specify the depth at which feature edges will be added.
# This option is included since the graphs can be quite large and the addition
# of features from the crate(s) to all of the graph roots can be far too verbose.
# This option can be overridden via `--feature-depth` on the cmd line
feature-depth = 1

# This section is considered when running `cargo deny check advisories`
# More documentation for the advisories section can be found here:
# https://embarkstudios.github.io/cargo-deny/checks/advisories/cfg.html
[advisories]
# The path where the advisory databases are cloned/fetched into
#db-path = "$CARGO_HOME/advisory-dbs"
# The url(s) of the advisory databases to use
#db-urls = ["https://github.com/rustsec/advisory-db"]
# A list of advisory IDs to ignore. Note that ignored advisories will still
# output a note when they are encountered.
ignore = [
#"RUSTSEC-0000-0000",
#{ id = "RUSTSEC-0000-0000", reason = "you can specify a reason the advisory is ignored" },
#"a-crate-that-is-yanked@0.1.1", # you can also ignore yanked crate versions if you wish
#{ crate = "a-crate-that-is-yanked@0.1.1", reason = "you can specify why you are ignoring the yanked crate" },
]
# If this is true, then cargo deny will use the git executable to fetch advisory database.
# If this is false, then it uses a built-in git library.
# Setting this to true can be helpful if you have special authentication requirements that cargo-deny does not support.
# See Git Authentication for more information about setting up git authentication.
#git-fetch-with-cli = true

# This section is considered when running `cargo deny check licenses`
# More documentation for the licenses section can be found here:
# https://embarkstudios.github.io/cargo-deny/checks/licenses/cfg.html
[licenses]
# List of explicitly allowed licenses
# See https://spdx.org/licenses/ for list of possible licenses
# [possible values: any SPDX 3.11 short identifier (+ optional exception)].
allow = [
"0BSD",
"Apache-2.0",
"BSD-2-Clause",
"BSD-3-Clause",
"BSD-3-Clause-Clear",
"CC0-1.0",
"ISC",
"MIT",
"MPL-2.0",
# "OpenSSL", no longer used
"Unicode-3.0",
"Unlicense",
"Zlib",
]
# The confidence threshold for detecting a license from license text.
# The higher the value, the more closely the license text must be to the
# canonical license text of a valid SPDX license file.
# [possible values: any between 0.0 and 1.0].
confidence-threshold = 1.0
# Allow 1 or more licenses on a per-crate basis, so that particular licenses
# aren't accepted for every possible crate as with the normal allow list
#exceptions = [
# # Each entry is the crate and version constraint, and its specific allow
# # list
# #{ allow = ["Zlib"], crate = "adler32" },
#]

# Some crates don't have (easily) machine readable licensing information,
# adding a clarification entry for it allows you to manually specify the
# licensing information
[[licenses.clarify]]
# The package spec the clarification applies to
crate = "ring"
# The SPDX expression for the license requirements of the crate
expression = "MIT AND ISC AND OpenSSL"
# One or more files in the crate's source used as the "source of truth" for
# the license expression. If the contents match, the clarification will be used
# when running the license check, otherwise the clarification will be ignored
# and the crate will be checked normally, which may produce warnings or errors
# depending on the rest of your configuration
license-files = [
{ path = "LICENSE", hash = 0xbd0eed23},
]

[licenses.private]
# If true, ignores workspace crates that aren't published, or are only
# published to private registries.
# To see how to mark a crate as unpublished (to the official registry),
# visit https://doc.rust-lang.org/cargo/reference/manifest.html#the-publish-field.
ignore = false
# One or more private registries that you might publish crates to, if a crate
# is only published to private registries, and ignore is true, the crate will
# not have its license(s) checked
registries = [
#"https://sekretz.com/registry
]

# This section is considered when running `cargo deny check bans`.
# More documentation about the 'bans' section can be found here:
# https://embarkstudios.github.io/cargo-deny/checks/bans/cfg.html
[bans]
# Lint level for when multiple versions of the same crate are detected
multiple-versions = "warn"
# Lint level for when a crate version requirement is `*`
wildcards = "allow"
# The graph highlighting used when creating dotgraphs for crates
# with multiple versions
# * lowest-version - The path to the lowest versioned duplicate is highlighted
# * simplest-path - The path to the version with the fewest edges is highlighted
# * all - Both lowest-version and simplest-path are used
highlight = "all"
# The default lint level for `default` features for crates that are members of
# the workspace that is being checked. This can be overridden by allowing/denying
# `default` on a crate-by-crate basis if desired.
workspace-default-features = "allow"
# The default lint level for `default` features for external crates that are not
# members of the workspace. This can be overridden by allowing/denying `default`
# on a crate-by-crate basis if desired.
external-default-features = "allow"
# List of crates that are allowed. Use with care!
allow = [
#"ansi_term@0.11.0",
#{ crate = "ansi_term@0.11.0", reason = "you can specify a reason it is allowed" },
]
# List of crates to deny
deny = [
#"ansi_term@0.11.0",
#{ crate = "ansi_term@0.11.0", reason = "you can specify a reason it is banned" },
# Wrapper crates can optionally be specified to allow the crate when it
# is a direct dependency of the otherwise banned crate
#{ crate = "ansi_term@0.11.0", wrappers = ["this-crate-directly-depends-on-ansi_term"] },
]

# List of features to allow/deny
# Each entry the name of a crate and a version range. If version is
# not specified, all versions will be matched.
#[[bans.features]]
#crate = "reqwest"
# Features to not allow
#deny = ["json"]
# Features to allow
#allow = [
# "rustls",
# "__rustls",
# "__tls",
# "hyper-rustls",
# "rustls",
# "rustls-pemfile",
# "rustls-tls-webpki-roots",
# "tokio-rustls",
# "webpki-roots",
#]
# If true, the allowed features must exactly match the enabled feature set. If
# this is set there is no point setting `deny`
#exact = true

# Certain crates/versions that will be skipped when doing duplicate detection.
skip = [
#"ansi_term@0.11.0",
#{ crate = "ansi_term@0.11.0", reason = "you can specify a reason why it can't be updated/removed" },
]
# Similarly to `skip` allows you to skip certain crates during duplicate
# detection. Unlike skip, it also includes the entire tree of transitive
# dependencies starting at the specified crate, up to a certain depth, which is
# by default infinite.
skip-tree = [
#"ansi_term@0.11.0", # will be skipped along with _all_ of its direct and transitive dependencies
#{ crate = "ansi_term@0.11.0", depth = 20 },
]

# This section is considered when running `cargo deny check sources`.
# More documentation about the 'sources' section can be found here:
# https://embarkstudios.github.io/cargo-deny/checks/sources/cfg.html
[sources]
# Lint level for what to happen when a crate from a crate registry that is not
# in the allow list is encountered
unknown-registry = "warn"
# Lint level for what to happen when a crate from a git repository that is not
# in the allow list is encountered
unknown-git = "warn"
# List of URLs for allowed crate registries. Defaults to the crates.io index
# if not specified. If it is specified but empty, no registries are allowed.
allow-registry = ["https://github.com/rust-lang/crates.io-index"]
# List of URLs for allowed Git repositories
allow-git = []

[sources.allow-org]
# github.com organizations to allow git sources for
github = []
# gitlab.com organizations to allow git sources for
gitlab = []
# bitbucket.org organizations to allow git sources for
bitbucket = []
3 changes: 3 additions & 0 deletions relayer/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
target
trace*
rustc-ice*
10 changes: 10 additions & 0 deletions relayer/.env.compose
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
RUST_BACKTRACE=1
RUST_LOG=info,fhevm_relayer=debug
RUST_SPAN_EVENTS=active


AWS_REGION=eu-central-1
AWS_ENDPOINT_URL=http://console-aws:4566
AWS_ENDPOINT=http://console-aws:4566

GATEWAY_PRIVATE_KEY=0xcb97ef45d352446a6adf810cf8f63c73ada027160c271da9bb8cfcb3d944d257 # accounts[3] L2%
6 changes: 6 additions & 0 deletions relayer/.env.sql-dev.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
RELAYER_DB=relayer
POSTGRES_HOST=127.0.0.1
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_PORT=5433
DATABASE_URL=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${RELAYER_DB}
81 changes: 81 additions & 0 deletions relayer/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# Logs
logs
*.log

# Coverage
coverage
*.lcov

# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local
.env*.local

# Editor directories and files
.vscode
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

# docker pg data
volume/

*rustc-ice*

.obsidian

# temporay (migration) - During enerated by Cargo
# will have compiled files and executables
debug/
target/
target-test/

.git

# Database directory for crash recovery
.database/

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

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

# RustRover
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/

# Added by cargo
/target
/target-debug

# Local config file
config/local*.yaml

# Advisory db and lock file
Advisory-db*

# Test
.anvil1.pid
.anvil2.pid
hardhat/contracts/sql.db

# MacOS artifacts
.DS_Store

# Rustc internal compilation error files
rustc-ice*

# chrome-tracing files (useful to profile/debug async code)
trace-*
.luarc.json
Loading
Loading