-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[SC-452] Refactor forwarders and receivers #17
Changes from 32 commits
7dbdfe8
cf2c3c1
ca6a389
ede7a78
8e5b368
d3d7e21
616c215
506ecc0
9bea858
418dbb4
17c1b3d
5b03ea7
f2c3076
2ece5a4
1d966d5
17d300c
8975d01
46c876f
7af6b4c
5540ccd
0040372
d828811
200b503
5897ab7
1928687
5a8dcfc
75e24ce
9d081f1
747c428
8190995
05e3840
3fcbcce
5669f7d
dc07c16
aade8f0
9874e5c
46ee62c
743b951
7eb7d7a
bc5911a
842bf17
3e47e33
6be2397
177227a
611fe91
f222fe2
eea3d6e
0c2893d
fd8a5f8
1b6d35f
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,6 @@ | ||
[submodule "lib/forge-std"] | ||
path = lib/forge-std | ||
url = https://github.com/foundry-rs/forge-std | ||
[submodule "lib/openzeppelin-contracts"] | ||
path = lib/openzeppelin-contracts | ||
url = https://github.com/openzeppelin/openzeppelin-contracts |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,20 @@ | ||
# xchain-helpers | ||
|
||
This repository contains tooling for multichain testing such as cross-chain e2e testing support. | ||
This repository three tools for use with multi-chain development. Domains refer to blockchains which are connected by bridges. Domains may have multiple bridges connecting them, for example both the Optimism Native Bridge and Circle CCTP connect Ethereum and Optimism domains. | ||
|
||
## Forwarders | ||
|
||
These libraries provide standardized syntax for sending a message to a bridge. | ||
|
||
## Receivers | ||
|
||
The most common pattern is to have an authorized contract forward a message to another "business logic" contract to abstract away bridge dependencies. Receivers are contracts which perform this generic translation - decoding the bridge-specific message and forwarding to another `target` contract. The `target` contract should have logic to restrict who can call it and permission this to one or more bridge receivers. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We should talk about how the receiver itself has the restrictions/requires specific to the bridge and talk about the use of fallbacks and how it routs the message There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. added another paragraph |
||
|
||
![xchain-helpers](.assets/xchain-helpers.png) | ||
|
||
## E2E Testing Infrastructure | ||
|
||
Provides tooling to record messages sent to supported bridges and relay them on the other side simulating a real message going across. | ||
|
||
*** | ||
*The IP in this repository was assigned to Mars SPC Limited in respect of the MarsOne SP* |
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
has three
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed