@offchainlabs/fund-distribution-contracts
v1.0.1
Published
A set of smart contracts that handle fund distribution across multiple chains.
Downloads
2,127
Readme
Fund Distribution Contracts
A set of smart contracts that handle fund distribution across multiple chains.
Reward Distributor
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.
Fee Routers
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.
Installation
- Install Foundry:
curl -L https://foundry.paradigm.xyz | bash
- Download dependency
make install
Dependencies
make update
Compilation
make build
Testing
make test
Code Coverage
make coverage
Gas Report
make gas
Gas Snapshot
make snapshot
Compare with Gas Snapshot
make gas-check