A set of smart contracts that handle fund distribution across multiple chains.
A smart contract that pushes the funds that accrued in it to a group of addresses. You can use this contract to distribute native token between the participants according to preset weights.
The participants are managed by an owner - accrued reward must be distributed to the participants before the configuration can be changed. The owner cannot deny a particular participant from receiving their share of the reward, but can deny the reward from being distributed to all participants. If a particular recipient is not able to recieve funds at their address, the payment will fallback to the owner.
This contract is expected to handle native token simply appearing in its balance (opposed to having an explicit receive
function called).
The contract currently assume the block gas limit would be at least 16M gas and the number of malicious participants would be less than 10.
A set of smart contracts that pushes route funds (both native and erc20) across parent and child chains.
These are the supported routes:
-
ArbChildToParentRewardRouter.sol
Route funds from an Arbitrum chain to its parent chain
-
OpChildToParentRewardRouter.sol
Route funds from an OPStack chain to its parent chain
-
ParentToChildRewardRouter.sol
Route funds from a parent chain to a child Arbitrum chain
When setting up a new route, make sure the token exists on both side by the configurated bridge or else fund can be stuck.
- Install Foundry:
curl -L https://foundry.paradigm.xyz | bash
- Download dependency
make install
make update
make build
make test
make coverage
make gas
make snapshot
make gas-check