# Loopfi DF
[toc]
## Lock Incentive
## Reward Allocation
1. L1 earmark
| Destination | Pecentage |
| ----------- |:---------:|
| Treasury | 15% |
| Booster | 85% |
2. L1 forward reward
| Destination | Pecentage |
| ----------- |:---------:|
| earmarker | 1% |
| Bridge | 99% |
3. L1 earmark & forward
| Destination | Pecentage |
|:----------- |:---------:|
| Treasury | 15% |
| earmarker | 0.85% |
| Bridge | 84.15% |
4. L2 earmark
| Destination | Pecentage |
| ----------- |:---------:|
| pDFStaking | 99.9% |
| earmarker | 0.1% |
## ABI For ArbSys
```
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "caller",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "destination",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "uniqueId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "uint256",
"name": "batchNumber",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "indexInBatch",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "arbBlockNum",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "ethBlockNum",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "callvalue",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "L2ToL1Transaction",
"type": "event"
},
```
## Ethereum -> Arbitrum(07-02):
### DF(使用Arbitrum的bridge):
具体方法同之前的usx 从 [ethereum 到 arbitrum 的跨链](https://hackmd.io/5QvObfeMRme4ZJC6DuJYQg?view#Ethereum--gt-Arbitrum)
Ethereum DF: 0x431ad2ff6a9C365805eBaD47Ee021148d6f7DBe0
Ethereum l1 erc20 gateway(approval): 0xcEe284F754E854890e311e3280b767F80797180d
Ethereum l1 gateway router: 0x72Ce9c846789fdB6fC1f34aC4AD25Dd9ef7031ef
Arbitrum DF: 0xaE6aab43C4f3E0cea4Ab83752C278f8dEbabA689
Arbitrum l2 gateway: 0x5288c571Fd7aD117beA99bF60FE0846C4E84F933
Arbitrum l2 destination: 0xb4B8B6F88361F48403514059f1f16C8E78d61FFD(此值根据l1 erc20 gateway计算得出)
Rinkeby l1 erc20 gateway(approval): 0x91169Dbb45e6804743F94609De50D511C437572E
Rinkeby l1 gateway router: 0x70C143928eCfFaf9F5b406f7f4fC28Dc43d68380
Arbitrum Test l2 gateway: 0x9413AD42910c1eA60c737dB5f58d1C504498a3cD
Arbitrum Test l2 destination: 0xa2279DBb45e6804743f94609de50d511c437683f
(此值根据l1 erc20 gateway计算得出)
getMaxGas(
l2_provider,
l1_erc20_gateway, // <<<----
l2_destination, // <<<----
## 在 Ethereum 上 claim DF (07-02)
安装所需要的package: `npm install @arbitrum/sdk ethers`
首先拿到 `txnHash`, 它是 L2 触发跨链的交易哈希,拿到交易哈希后,解析event
合约: https://arbiscan.io/address/0x5288c571fd7ad117bea99bf60fe0846c4e84f933#readProxyContract
解析topics为 `0x5baaa87db386365b5c161be377bc3d8e317e8d98d71a3ca7ed7d555340c8f767` 的 event,拿到最后一个topic的数值,记为 `batchNum`,例如 这笔交易: https://arbiscan.io/tx/0x742b611b4e5741d4c5ffd2f85d8463b703ff74a3ac20dce71d564b1305e72a25#eventlog ,topics 为`0x5baaa87db386365b5c161be377bc3d8e317e8d98d71a3ca7ed7d555340c8f767`的最后一个数值为:`0x00000000000000000000000000000000000000000000000000000000000018eb`
然后运行以下程序,得到所需的`poolInfo`,
helper.js
```
const { providers, Wallet } = require('ethers')
const {
L2TransactionReceipt,
getL2Network,
L2ToL1MessageStatus,
} = require('@arbitrum/sdk')
// Set up: instantiate L1 wallet connected to provider
const walletPrivateKey = "0x348ce564d427a3311b6536bbcff9390d69395b06ed6c486954e971d960fe8709"
// Ethereum-Arbitrum
// const l1Provider = new providers.JsonRpcProvider(xxxx)
// const l2Provider = new providers.JsonRpcProvider("https://arb1.arbitrum.io/rpc")
// Rinkeby-Arbitrum_Test
const l1Provider = new providers.JsonRpcProvider(xxxx)
const l2Provider = new providers.JsonRpcProvider("https://rinkeby.arbitrum.io/rpc")
const l1Wallet = new Wallet(walletPrivateKey, l1Provider)
// First, let's find the Arbitrum txn from the txn hash provided
const receipt = await l2Provider.getTransactionReceipt(txnHash)
const l2Receipt = new L2TransactionReceipt(receipt)
// Note that in principle, a single transaction could trigger any number of outgoing messages; the common case will be there's only one.
// For the sake of this script, we assume there's only one / just grad the first one.
const messages = await l2Receipt.getL2ToL1Messages(l1Wallet, l2Provider)
const l2ToL1Msg = messages[0]
// Check if already executed
// if ((await l2ToL1Msg.status(l2Provider)) == L2ToL1MessageStatus.EXECUTED) {
// return
// }
// Now fetch the proof info we'll need in order to execute, or check execution
const proofInfo = await l2ToL1Msg.getOutboxProof(l2Provider)
```
以上 `proofInfo` 返回结构为:
```
{
proof: string[];
path: BigNumber;
l2Sender: string;
l1Dest: string;
l2Block: BigNumber;
l1Block: BigNumber;
timestamp: BigNumber;
amount: BigNumber;
calldataForL1: string;
}
```
所以 调用的方法为:
```
claimFunds(
uint256 batchNum,
bytes32[] calldata proof,
uint256 index,
address l2Sender,
address destAddr,
uint256 l2Block,
uint256 l1Block,
uint256 l2Timestamp,
uint256 amount,
bytes calldata calldataForL1
)
```
所需的参数均可以通过以上获取到。
```javascript
await depositor.claimFunds(
batchNum,
proof,
index,
l2Sender,
destAddr,
l2Block,
l1Block,
l2Timestamp,
amount,
calldataForL1
)
```
## 07-14
### L1 on Mainnet
| | address | link |
| ---------------- | ------------------------------------------ | ------------------------------------------------------------------------------- |
| ProxyAdmin | 0xCaba6cfd4C83E1806467d937842D18128f90C13b | [link](https://etherscan.io/address/0xCaba6cfd4C83E1806467d937842D18128f90C13b) |
| DF | 0x431ad2ff6a9C365805eBaD47Ee021148d6f7DBe0 | [link](https://etherscan.io/address/0x431ad2ff6a9C365805eBaD47Ee021148d6f7DBe0) |
| veDFManager | 0xc0d7f11455aacD225c6fd1Be7dDF0bCf93b31cb3 | [link](https://etherscan.io/address/0xc0d7f11455aacD225c6fd1Be7dDF0bCf93b31cb3) |
| DFVoterProxyImpl | 0x8aF6E2d167d2776abDC8a021c9D903111120817A | [link](https://etherscan.io/address/0x8aF6E2d167d2776abDC8a021c9D903111120817A) |
| lpf | 0x3650B69f86cB593f116e276C30666834336c0647 | [link](https://etherscan.io/address/0x3650B69f86cB593f116e276C30666834336c0647) |
| voter | 0xCdA96E0ee957A15A69aA94c0Ad2FE576b3D9aF87 | [link](https://etherscan.io/address/0xCdA96E0ee957A15A69aA94c0Ad2FE576b3D9aF87) |
| depositor | 0x60c467bD7ad8cBf963c4E52B115B3DDD296b5B89 |[link](https://etherscan.io/address/0x60c467bD7ad8cBf963c4E52B115B3DDD296b5B89) |
| treasury | 0x2E3499Db9bFC793924083B2d771CfC19863ca62C |[link](https://etherscan.io/address/0x2E3499Db9bFC793924083B2d771CfC19863ca62C) |
| booster | 0x10ae3C1ff769DacB12d74706E7DaaEc4bCCDD0BA |[link](https://etherscan.io/address/0x10ae3C1ff769DacB12d74706E7DaaEc4bCCDD0BA) |
## 07-13
### L1 on Rinkeby
| | address | link |
|:-----------------|:-------------------------------------------|:----------------------------------------------------------------------------------------|
| proxyAdmin | 0x6850e101bC35382587D62a8247cBFFb8f9f80fEC | [link](https://rinkeby.etherscan.io/address/0x6850e101bC35382587D62a8247cBFFb8f9f80fEC) |
| DF | 0x8C1D7E98F7D4449eb7aD42864d46389eE7518dB3 | [link](https://rinkeby.etherscan.io/address/0x8C1D7E98F7D4449eb7aD42864d46389eE7518dB3) |
| veDFManager | 0x60217706bEFc1C12ca069f627479E522d7580589 | [link](https://rinkeby.etherscan.io/address/0x60217706bEFc1C12ca069f627479E522d7580589) |
| DFVoterProxyImpl | 0xDB557b2f5516d8089BF61d5a95631eD4c9C2e681 | [link](https://rinkeby.etherscan.io/address/0xDB557b2f5516d8089BF61d5a95631eD4c9C2e681) |
| lpf | 0x725b720fDf0C44f966bF42Cf8B6C7F8Bf20F751f | [link](https://rinkeby.etherscan.io/address/0x725b720fDf0C44f966bF42Cf8B6C7F8Bf20F751f) |
| voter | 0xFf7EF3bb9d4AF60870707B73D2fa138fa7b45CaD | [link](https://rinkeby.etherscan.io/address/0xFf7EF3bb9d4AF60870707B73D2fa138fa7b45CaD) |
| depositor | 0x85385347281690BCAb93b6d6B33babC2CE275800 | [link](https://rinkeby.etherscan.io/address/0x85385347281690BCAb93b6d6B33babC2CE275800) |
| treasury | 0xD18D813db66adf82B74F90Fc786878D42b21e46b | [link](https://rinkeby.etherscan.io/address/0xD18D813db66adf82B74F90Fc786878D42b21e46b) |
| booster | 0x6D319126eD7946e0F6A8EFb693F488688fA73A22 | [link](https://rinkeby.etherscan.io/address/0x6D319126eD7946e0F6A8EFb693F488688fA73A22) |
### L2 on Arbitrum Rinkeby
| | address | link |
|:---------------|:-------------------------------------------|:---------------------------------------------------------------------------------------|
| DF | 0x6a671cC26EaBd652F2c745Ca83c4815f5066AC12 | [link](https://testnet.arbiscan.io/address/0x6a671cC26EaBd652F2c745Ca83c4815f5066AC12) |
| lpf | 0x504682EC7ff1E3d5dE6F8D524F4d167DFa797465 | [link](https://testnet.arbiscan.io/address/0x504682EC7ff1E3d5dE6F8D524F4d167DFa797465) |
| booster | 0xd10ac68B613Cb2e790784eB3050A714C10EE74Ef | [link](https://testnet.arbiscan.io/address/0xd10ac68B613Cb2e790784eB3050A714C10EE74Ef) |
| pDF | 0x5718b4fc4f6C73590Da95fffb84579F35bb0f800 | [link](https://testnet.arbiscan.io/address/0x5718b4fc4f6C73590Da95fffb84579F35bb0f800) |
| pDFStaking | 0x1014185309A61027b49e98497aE66C9e05AaD55B | [link](https://testnet.arbiscan.io/address/0x1014185309A61027b49e98497aE66C9e05AaD55B) |
| pDFExtraReward | 0x1698055c5224d615E68e2Fd4183452C1234d2a33 | [link](https://testnet.arbiscan.io/address/0x1698055c5224d615E68e2Fd4183452C1234d2a33) |
| depositor | 0xc5405b97e3eD0D23b20E6B82d9A74398af698031 | [link](https://testnet.arbiscan.io/address/0xc5405b97e3eD0D23b20E6B82d9A74398af698031) |
## 07-07
### L1 on Rinkeby
| | address | link |
|:-----------------|:-------------------------------------------|:----------------------------------------------------------------------------------------|
| proxyAdmin | 0x6850e101bC35382587D62a8247cBFFb8f9f80fEC | [link](https://rinkeby.etherscan.io/address/0x6850e101bC35382587D62a8247cBFFb8f9f80fEC) |
| DF | 0x8C1D7E98F7D4449eb7aD42864d46389eE7518dB3 | [link](https://rinkeby.etherscan.io/address/0x8C1D7E98F7D4449eb7aD42864d46389eE7518dB3) |
| veDFManager | 0x60217706bEFc1C12ca069f627479E522d7580589 | [link](https://rinkeby.etherscan.io/address/0x60217706bEFc1C12ca069f627479E522d7580589) |
| DFVoterProxyImpl | 0xDB557b2f5516d8089BF61d5a95631eD4c9C2e681 | [link](https://rinkeby.etherscan.io/address/0xDB557b2f5516d8089BF61d5a95631eD4c9C2e681) |
| voter | 0x6280C7e82A4805AB45aE6bB45DEA5902842F880b | [link](https://rinkeby.etherscan.io/address/0x6280C7e82A4805AB45aE6bB45DEA5902842F880b) |
| treasury | 0xF70330af1b83f465588262192F6eF09d69e27Db9 | [link](https://rinkeby.etherscan.io/address/0xF70330af1b83f465588262192F6eF09d69e27Db9) |
| lpf | 0x725b720fDf0C44f966bF42Cf8B6C7F8Bf20F751f | [link](https://rinkeby.etherscan.io/address/0x725b720fDf0C44f966bF42Cf8B6C7F8Bf20F751f) |
| apyHelper | 0xA934e055b017a6c11f4365a1FF7211D31BeaA082 | [link](https://rinkeby.etherscan.io/address/0xA934e055b017a6c11f4365a1FF7211D31BeaA082) |
| depositor | 0x10a206DD4BbAE2d15dF1BB72cF33c6a55259ccCe | [link](https://rinkeby.etherscan.io/address/0x10a206DD4BbAE2d15dF1BB72cF33c6a55259ccCe) |
| booster | 0x5bdf090613B62628d6D46A5A4c2B903A16903705 | [link](https://rinkeby.etherscan.io/address/0x5bdf090613B62628d6D46A5A4c2B903A16903705) |
### L2 on Arbitrum Rinkeby
| | address | link |
|:-------------- |:------------------------------------------ |:-------------------------------------------------------------------------------------- |
| DF | 0x6a671cC26EaBd652F2c745Ca83c4815f5066AC12 | [link](https://testnet.arbiscan.io/address/0x6a671cC26EaBd652F2c745Ca83c4815f5066AC12) |
| apyHelper | 0x2bd0ee211fef397e8BBeAd88B5C895e5092F478e | [link](https://testnet.arbiscan.io/address/0x2bd0ee211fef397e8BBeAd88B5C895e5092F478e) |
| booster | 0xAB86F7259de3a4D65E4cc79d46d06b9BC58AC18d | [link](https://testnet.arbiscan.io/address/0xAB86F7259de3a4D65E4cc79d46d06b9BC58AC18d) |
| L2 trigger | 0xa2279DBb45e6804743f94609de50d511c437683f | [link](https://testnet.arbiscan.io/address/0xa2279DBb45e6804743f94609de50d511c437683f) |
| pDF | 0x2293044610B9A0eaf259c9Af62e8303c0E389DA2 | [link](https://testnet.arbiscan.io/address/0x2293044610B9A0eaf259c9Af62e8303c0E389DA2) |
| pDFStaking | 0xF77508f5deEc008238C226e074E00455be7B9c74 | [link](https://testnet.arbiscan.io/address/0xF77508f5deEc008238C226e074E00455be7B9c74) |
| pDFExtraReward | 0x7BA89BEAB220945666A28E58a1d54c9A713d88Ba | [link](https://testnet.arbiscan.io/address/0x7BA89BEAB220945666A28E58a1d54c9A713d88Ba) |
| depositor | 0xF05c416552355b346Ae867C21F93abcA0dd93161 | [link](https://testnet.arbiscan.io/address/0xF05c416552355b346Ae867C21F93abcA0dd93161) |
| lpf | 0x504682EC7ff1E3d5dE6F8D524F4d167DFa797465 | [link](https://testnet.arbiscan.io/address/0x504682EC7ff1E3d5dE6F8D524F4d167DFa797465) |
## 07-03
### L1 on Rinkeby
| | address | link |
|:-----------------|:-------------------------------------------|:----------------------------------------------------------------------------------------|
| proxyAdmin | 0x6850e101bC35382587D62a8247cBFFb8f9f80fEC | [link](https://rinkeby.etherscan.io/address/0x6850e101bC35382587D62a8247cBFFb8f9f80fEC) |
| DF | 0x8C1D7E98F7D4449eb7aD42864d46389eE7518dB3 | [link](https://rinkeby.etherscan.io/address/0x8C1D7E98F7D4449eb7aD42864d46389eE7518dB3) |
| veDFManager | 0x60217706bEFc1C12ca069f627479E522d7580589 | [link](https://rinkeby.etherscan.io/address/0x60217706bEFc1C12ca069f627479E522d7580589) |
| DFVoterProxyImpl | 0xDB557b2f5516d8089BF61d5a95631eD4c9C2e681 | [link](https://rinkeby.etherscan.io/address/0xDB557b2f5516d8089BF61d5a95631eD4c9C2e681) |
| voter | 0x6280C7e82A4805AB45aE6bB45DEA5902842F880b | [link](https://rinkeby.etherscan.io/address/0x6280C7e82A4805AB45aE6bB45DEA5902842F880b) |
| depositor | 0x52edA2E6bf8B10D855A9bC9CdA6DAa311f9632C7 | [link](https://rinkeby.etherscan.io/address/0x52edA2E6bf8B10D855A9bC9CdA6DAa311f9632C7) |
| treasury | 0xF70330af1b83f465588262192F6eF09d69e27Db9 | [link](https://rinkeby.etherscan.io/address/0xF70330af1b83f465588262192F6eF09d69e27Db9) |
| lpf | 0x725b720fDf0C44f966bF42Cf8B6C7F8Bf20F751f | [link](https://rinkeby.etherscan.io/address/0x725b720fDf0C44f966bF42Cf8B6C7F8Bf20F751f) |
| apyHelper | 0xA934e055b017a6c11f4365a1FF7211D31BeaA082 | [link](https://rinkeby.etherscan.io/address/0xA934e055b017a6c11f4365a1FF7211D31BeaA082) |
| booster | 0xEc88cbE3415179470E3C309e0bEBbC11F0Dc3350 | [link](https://rinkeby.etherscan.io/address/0xEc88cbE3415179470E3C309e0bEBbC11F0Dc3350) |
### L2 on Arbitrum Rinkeby
| | address | link |
|:---------------|:-------------------------------------------|:---------------------------------------------------------------------------------------|
| DF | 0x6a671cC26EaBd652F2c745Ca83c4815f5066AC12 | [link](https://testnet.arbiscan.io/address/0x6a671cC26EaBd652F2c745Ca83c4815f5066AC12) |
| apyHelper | 0x2bd0ee211fef397e8BBeAd88B5C895e5092F478e | [link](https://testnet.arbiscan.io/address/0x2bd0ee211fef397e8BBeAd88B5C895e5092F478e) |
| booster | 0xF5A838fa72c77Dd3E8D4fEfe6862697CF1D5fC14 | [link](https://testnet.arbiscan.io/address/0xF5A838fa72c77Dd3E8D4fEfe6862697CF1D5fC14) |
| pDF | 0xa498e01C2192AabdC6eB5163A45b64bff9E717B9 | [link](https://testnet.arbiscan.io/address/0xa498e01C2192AabdC6eB5163A45b64bff9E717B9) |
| pDFStaking | 0xD425Ce07D393CF5FF7b709E788a125ac7ffCdd8f | [link](https://testnet.arbiscan.io/address/0xD425Ce07D393CF5FF7b709E788a125ac7ffCdd8f) |
| pDFExtraReward | 0x21ed0F16940318C0c546A04991aB616805229673 | [link](https://testnet.arbiscan.io/address/0x21ed0F16940318C0c546A04991aB616805229673) |
| depositor | 0x1cD0b4aFA81568F967c769d48607796A6A2E8B71 | [link](https://testnet.arbiscan.io/address/0x1cD0b4aFA81568F967c769d48607796A6A2E8B71) |
| lpf | 0x504682EC7ff1E3d5dE6F8D524F4d167DFa797465 | [link](https://testnet.arbiscan.io/address/0x504682EC7ff1E3d5dE6F8D524F4d167DFa797465) |
## 06-17
### L1 on Kovan
| | address | link |
|:------------------|:-------------------------------------------|:--------------------------------------------------------------------------------------|
| DF | 0x79E40d67DA6eAE5eB4A93Fc6a56A7961625E15F3 | [link](https://kovan.etherscan.io/address/0x79E40d67DA6eAE5eB4A93Fc6a56A7961625E15F3) |
| cBridge | 0x5279deb9c8eBc6Ff072dBfAAdbc7B0BA1adDeD31 | [link](https://kovan.etherscan.io/address/0x5279deb9c8eBc6Ff072dBfAAdbc7B0BA1adDeD31) |
| proxyAdmin | 0x33844AD6675469e1f13ec95ACCd8242a77eCD70f | [link](https://kovan.etherscan.io/address/0x33844AD6675469e1f13ec95ACCd8242a77eCD70f) |
| veDFManager | 0x7259153980146593E1128d3460f356eC08FC25A5 | [link](https://kovan.etherscan.io/address/0x7259153980146593E1128d3460f356eC08FC25A5) |
| apyHelper | 0x3e980F6B075d948B7d2a30609BD4188BCff0993d | [link](https://kovan.etherscan.io/address/0x3e980F6B075d948B7d2a30609BD4188BCff0993d) |
| DFVoterProxyImpl | 0x5fdC6a5916144b31874Bbd305f945f94ea3a6cb0 | [link](https://kovan.etherscan.io/address/0x5fdC6a5916144b31874Bbd305f945f94ea3a6cb0) |
| voter | 0x42C6bA6f252aa1a81f8256781c3027be3f58E412 | [link](https://kovan.etherscan.io/address/0x42C6bA6f252aa1a81f8256781c3027be3f58E412) |
| booster | 0x491c9E9797B176c54F40424390Dd5Ab3aEAA02Ff | [link](https://kovan.etherscan.io/address/0x491c9E9797B176c54F40424390Dd5Ab3aEAA02Ff) |
| pDF | 0xD6B9692c7A1e8de5477Dc570A404B24B51c30d2a | [link](https://kovan.etherscan.io/address/0xD6B9692c7A1e8de5477Dc570A404B24B51c30d2a) |
| pDFStaking | 0xA9c80b3C85EDDd07DB7Fc66a2E41236471467025 | [link](https://kovan.etherscan.io/address/0xA9c80b3C85EDDd07DB7Fc66a2E41236471467025) |
| depositor | 0x7CC9ddc0De2E39BcD8310260152d9DEb05F90B3D | [link](https://kovan.etherscan.io/address/0x7CC9ddc0De2E39BcD8310260152d9DEb05F90B3D) |
| treasury | 0x479B045255b67Df0466b6488F1592463ACd3086D | [link](https://kovan.etherscan.io/address/0x479B045255b67Df0466b6488F1592463ACd3086D) |
| depositProxyL2 | 0xf59e40Cf3a725147a9CE984b31a2dF85167D2b07 | [link](https://kovan.etherscan.io/address/0xf59e40Cf3a725147a9CE984b31a2dF85167D2b07) |
### L2 on Goerli
| | address | link |
|:---------------|:-------------------------------------------|:---------------------------------------------------------------------------------------|
| cBridge | 0xD86E43f400e65d1e68fE1eea409799506C51652F | [link](https://goerli.etherscan.io/address/0xD86E43f400e65d1e68fE1eea409799506C51652F) |
| DF | 0xB359f50FBCcb38b3Ee32A9DA523313F3Ad4C12BC | [link](https://goerli.etherscan.io/address/0xB359f50FBCcb38b3Ee32A9DA523313F3Ad4C12BC) |
| apyHelper | 0x524B4e48E9ADb3eDEb6f1Aa87932B73cAe192db0 | [link](https://goerli.etherscan.io/address/0x524B4e48E9ADb3eDEb6f1Aa87932B73cAe192db0) |
| lpf | 0x35170ef67d5231aA224Ae88ea3FB2592EaDC2e1b | [link](https://goerli.etherscan.io/address/0x35170ef67d5231aA224Ae88ea3FB2592EaDC2e1b) |
| booster | 0x632D1B295FA9A8E36500d84404d5316E0cDd3941 | [link](https://goerli.etherscan.io/address/0x632D1B295FA9A8E36500d84404d5316E0cDd3941) |
| pDF | 0xF9BA268e7f8f6bef80a6c74f916295e1cB50485d | [link](https://goerli.etherscan.io/address/0xF9BA268e7f8f6bef80a6c74f916295e1cB50485d) |
| pDFStaking | 0x08197367C0bE30665D68e2C6e48bDb7071142b40 | [link](https://goerli.etherscan.io/address/0x08197367C0bE30665D68e2C6e48bDb7071142b40) |
| pDFExtraReward | 0x6235eF28796CF4B5071784F60bE6581fDaE9C930 | [link](https://goerli.etherscan.io/address/0x6235eF28796CF4B5071784F60bE6581fDaE9C930) |
| depositor | 0xC52953db2C5764aB192C84eCd08508b0A7815E1D | [link](https://goerli.etherscan.io/address/0xC52953db2C5764aB192C84eCd08508b0A7815E1D) |
## 06-09
### L1 on Kovan New Liquidity Mining
| | address | link |
|:------------------|:-------------------------------------------|:--------------------------------------------------------------------------------------|
| LPF-DF Pair | 0x9934597443Fdb344c38E6704d71A16A0f0AAB8A0 | [link](https://kovan.etherscan.io/address/0x9934597443Fdb344c38E6704d71A16A0f0AAB8A0) |
| LPF-USX Pair | 0x96CBf1E253556F077AFC5B13d801D8E38DF3A283 | [link](https://kovan.etherscan.io/address/0x96CBf1E253556F077AFC5B13d801D8E38DF3A283) |
| pDF-DF Pair | 0x3ee035850c83d43fd2b8beee7e30120772d32787 | [link](https://kovan.etherscan.io/address/0x3ee035850c83d43fd2b8beee7e30120772d32787) |
| LPF | 0x8FCB4B81A8b3126416efE3738D78F9e0B958C130 | [link](https://kovan.etherscan.io/address/0x8FCB4B81A8b3126416efE3738D78F9e0B958C130) |
| DF | 0x79E40d67DA6eAE5eB4A93Fc6a56A7961625E15F3 | [link](https://kovan.etherscan.io/address/0x79E40d67DA6eAE5eB4A93Fc6a56A7961625E15F3) |
| USX | 0xF76eAd4da04BbeB97d29F83e2Ec3a621d0FB3c6e | [link](https://kovan.etherscan.io/address/0xF76eAd4da04BbeB97d29F83e2Ec3a621d0FB3c6e) |
| pDF | 0x336877eFB214Df11A91d37061382ee8A6Fd9D26C | [link](https://kovan.etherscan.io/address/0x336877eFB214Df11A91d37061382ee8A6Fd9D26C) |
| rewardDistributor | 0x8422D6e91c6A7c484a201e5C9aF148c803ac5249 | [link](https://kovan.etherscan.io/address/0x8422D6e91c6A7c484a201e5C9aF148c803ac5249) |
| LPF-DF Staking | 0x03168ed03Bd62e1BC1CE78ae38ABa214cFE3517d | [link](https://kovan.etherscan.io/address/0x03168ed03Bd62e1BC1CE78ae38ABa214cFE3517d) |
| LPF-USX Staking | 0x36ecBBAD75b0173e1f927f59791Ed5BA711DF8B4 | [link](https://kovan.etherscan.io/address/0x36ecBBAD75b0173e1f927f59791Ed5BA711DF8B4) |
| pDF-DF Staking | 0x10ECEB8ED6eE76088fB4147848BA57341101deee | [link](https://kovan.etherscan.io/address/0x10ECEB8ED6eE76088fB4147848BA57341101deee) |
## 05-26
### L1 on Kovan with veDF integration
| | address | link |
|:-----------------|:-------------------------------------------|:--------------------------------------------------------------------------------------|
| DF | 0x79E40d67DA6eAE5eB4A93Fc6a56A7961625E15F3 | [link](https://kovan.etherscan.io/address/0x79E40d67DA6eAE5eB4A93Fc6a56A7961625E15F3) |
| cBridge | 0x5279deb9c8eBc6Ff072dBfAAdbc7B0BA1adDeD31 | [link](https://kovan.etherscan.io/address/0x5279deb9c8eBc6Ff072dBfAAdbc7B0BA1adDeD31) |
| proxyAdmin | 0x33844AD6675469e1f13ec95ACCd8242a77eCD70f | [link](https://kovan.etherscan.io/address/0x33844AD6675469e1f13ec95ACCd8242a77eCD70f) |
| veDFManager | 0x7259153980146593E1128d3460f356eC08FC25A5 | [link](https://kovan.etherscan.io/address/0x7259153980146593E1128d3460f356eC08FC25A5) |
| apyHelper | 0x3e980F6B075d948B7d2a30609BD4188BCff0993d | [link](https://kovan.etherscan.io/address/0x3e980F6B075d948B7d2a30609BD4188BCff0993d) |
| DFVoterProxyImpl | 0x5bAF98d0254C0B6685b967D2d8dfF07a3b155FF9 | [link](https://kovan.etherscan.io/address/0x5bAF98d0254C0B6685b967D2d8dfF07a3b155FF9) |
| voter | 0x78A737C58337dF97ef31D060f77702cFBB911159 | [link](https://kovan.etherscan.io/address/0x78A737C58337dF97ef31D060f77702cFBB911159) |
| booster | 0x32F16dBaB9e3C8AE9b1531e6a3ACB2C47a4B7eFC | [link](https://kovan.etherscan.io/address/0x32F16dBaB9e3C8AE9b1531e6a3ACB2C47a4B7eFC) |
| velDF | 0x336877eFB214Df11A91d37061382ee8A6Fd9D26C | [link](https://kovan.etherscan.io/address/0x336877eFB214Df11A91d37061382ee8A6Fd9D26C) |
| velDFStaking | 0xB980a56Cb74b5ce9BC26114c2b616A0482738CAF | [link](https://kovan.etherscan.io/address/0xB980a56Cb74b5ce9BC26114c2b616A0482738CAF) |
| depositor | 0x1e6D0C361d5f5B93Fa0dcC453b741BE275a01A31 | [link](https://kovan.etherscan.io/address/0x1e6D0C361d5f5B93Fa0dcC453b741BE275a01A31) |
| treasury | 0x04B6f6176147b5c6b4619B3BCBD1aA5d7b66DB79 | [link](https://kovan.etherscan.io/address/0x04B6f6176147b5c6b4619B3BCBD1aA5d7b66DB79) |
| depositProxyL2 | 0x74fE112170Bf2bf009f6D4DddDdCFE4CC5A34BA6 | [link](https://kovan.etherscan.io/address/0x74fE112170Bf2bf009f6D4DddDdCFE4CC5A34BA6) |
### L2 on Arbitrum Fork
- rpc: https://rpc.tenderly.co/fork/6d9c44fa-2aba-424d-b94f-26ccbb49b90c
- chain id: 42161
| | address | link |
|:-------------|:-------------------------------------------|:-------------------------------------------------------------------------------|
| DF | 0xaE6aab43C4f3E0cea4Ab83752C278f8dEbabA689 | [link](https://arbiscan.io/address/0xaE6aab43C4f3E0cea4Ab83752C278f8dEbabA689) |
| velo | 0xE189e9585b392624c343b750632C00b452022d53 | [link](https://arbiscan.io/address/0xE189e9585b392624c343b750632C00b452022d53) |
| booster | 0xD86E43f400e65d1e68fE1eea409799506C51652F | [link](https://arbiscan.io/address/0xD86E43f400e65d1e68fE1eea409799506C51652F) |
| velDF | 0xB359f50FBCcb38b3Ee32A9DA523313F3Ad4C12BC | [link](https://arbiscan.io/address/0xB359f50FBCcb38b3Ee32A9DA523313F3Ad4C12BC) |
| velDFStaking | 0x23b43BFE32cd10b2E3baAf8d5F0D763728922DA0 | [link](https://arbiscan.io/address/0x23b43BFE32cd10b2E3baAf8d5F0D763728922DA0) |
| depositor | 0xA671198aC02b668b33F70A13131aC3175f60D100 | [link](https://arbiscan.io/address/0xA671198aC02b668b33F70A13131aC3175f60D100) |
| veloStaking | 0x304708B4914f6009e34A542d3da3c14464b15D4c | [link](https://arbiscan.io/address/0x304708B4914f6009e34A542d3da3c14464b15D4c) |
| chef | 0x6356Db2b8C550B41195efE605b02dbD2d42F0393 | [link](https://arbiscan.io/address/0x6356Db2b8C550B41195efE605b02dbD2d42F0393) |
| apyHelper | 0xad38Bd6d45D1D8FF2B7486406c68EdF301B1eb8B | [link](https://arbiscan.io/address/0xad38Bd6d45D1D8FF2B7486406c68EdF301B1eb8B) |
| veloDFPair | 0x428663216f2ec5d4180e89b187664d2333efe229 | [link](https://arbiscan.io/address/0x428663216f2ec5d4180e89b187664d2333efe229) |
~~| veloUSXPair | 0x9a89B8a35A65969E321b1fa448724da1bb9bBC2a | [link](https://goerli.etherscan.io/address/0x9a89B8a35A65969E321b1fa448724da1bb9bBC2a) |
| velDFDFPair | 0x3a0a002ad721c2E595F713b522656691F54a7Be7 | [link](https://goerli.etherscan.io/address/0x3a0a002ad721c2E595F713b522656691F54a7Be7) |~~
## 05-26 Liquidity Mining
### L1 on Kovan
| | address | link |
|:-----------------|:-------------------------------------------|:--------------------------------------------------------------------------------------|
| DF | 0x06146373f4Bddd186Ccb4B549781b97A18802bae | [link](https://kovan.etherscan.io/address/0x06146373f4Bddd186Ccb4B549781b97A18802bae) |
| cBridge | 0x5279deb9c8eBc6Ff072dBfAAdbc7B0BA1adDeD31 | [link](https://kovan.etherscan.io/address/0x5279deb9c8eBc6Ff072dBfAAdbc7B0BA1adDeD31) |
| proxyAdmin | 0x33844AD6675469e1f13ec95ACCd8242a77eCD70f | [link](https://kovan.etherscan.io/address/0x33844AD6675469e1f13ec95ACCd8242a77eCD70f) |
| veDFManager | 0xDe2c0aF7DAC9288cf9EEc3f1C0ae2835cc53Ef21 | [link](https://kovan.etherscan.io/address/0xDe2c0aF7DAC9288cf9EEc3f1C0ae2835cc53Ef21) |
| apyHelper | 0x3e980F6B075d948B7d2a30609BD4188BCff0993d | [link](https://kovan.etherscan.io/address/0x3e980F6B075d948B7d2a30609BD4188BCff0993d) |
| DFVoterProxyImpl | 0x084A202a6EAe124Fd19d3c726CD0F8162783dD9e | [link](https://kovan.etherscan.io/address/0x084A202a6EAe124Fd19d3c726CD0F8162783dD9e) |
| voter | 0xb0CEee6A40E94cdD72Ada7D498418bF0931E681D | [link](https://kovan.etherscan.io/address/0xb0CEee6A40E94cdD72Ada7D498418bF0931E681D) |
| booster | 0x2b4feaCAebf4fA26F39B80Da01E74D6D0608229c | [link](https://kovan.etherscan.io/address/0x2b4feaCAebf4fA26F39B80Da01E74D6D0608229c) |
| velDF | 0x951260c9dE6Ee102adf29C3fb8ba20A96E5e0f04 | [link](https://kovan.etherscan.io/address/0x951260c9dE6Ee102adf29C3fb8ba20A96E5e0f04) |
| velDFStaking | 0x77E3B5AFFeB24aE26fee2Ced6573102F1280f025 | [link](https://kovan.etherscan.io/address/0x77E3B5AFFeB24aE26fee2Ced6573102F1280f025) |
| depositor | 0x38458E22d04Bb2F7ED554A034d47B55FAaAfa493 | [link](https://kovan.etherscan.io/address/0x38458E22d04Bb2F7ED554A034d47B55FAaAfa493) |
| depositProxyL2 | 0xfACbd02E86D9e1778fdE8eFd18CF9393515611C0 | [link](https://kovan.etherscan.io/address/0xfACbd02E86D9e1778fdE8eFd18CF9393515611C0) |
### L2 on Goerli
| | address | link |
|:-------------|:-------------------------------------------|:---------------------------------------------------------------------------------------|
| cBridge | 0xD86E43f400e65d1e68fE1eea409799506C51652F | [link](https://goerli.etherscan.io/address/0xD86E43f400e65d1e68fE1eea409799506C51652F) |
| DF | 0xB359f50FBCcb38b3Ee32A9DA523313F3Ad4C12BC | [link](https://goerli.etherscan.io/address/0xB359f50FBCcb38b3Ee32A9DA523313F3Ad4C12BC) |
| apyHelper | 0x524B4e48E9ADb3eDEb6f1Aa87932B73cAe192db0 | [link](https://goerli.etherscan.io/address/0x524B4e48E9ADb3eDEb6f1Aa87932B73cAe192db0) |
| velo | 0x35170ef67d5231aA224Ae88ea3FB2592EaDC2e1b | [link](https://goerli.etherscan.io/address/0x35170ef67d5231aA224Ae88ea3FB2592EaDC2e1b) |
| booster | 0x05e65497f294f2713Cc88A0AC2a6292c8a31Ba14 | [link](https://goerli.etherscan.io/address/0x05e65497f294f2713Cc88A0AC2a6292c8a31Ba14) |
| velDF | 0x81004bB91c611B646b630426eB8A46f0eBea69F5 | [link](https://goerli.etherscan.io/address/0x81004bB91c611B646b630426eB8A46f0eBea69F5) |
| velDFStaking | 0x7b48d9C51135dF0769dE7bb66827C023b4285758 | [link](https://goerli.etherscan.io/address/0x7b48d9C51135dF0769dE7bb66827C023b4285758) |
| depositor | 0x9Dd80cb0d3E4a7dEbbcd91E5D3112842D866f82e | [link](https://goerli.etherscan.io/address/0x9Dd80cb0d3E4a7dEbbcd91E5D3112842D866f82e) |
| veloStaking | 0x2293044610B9A0eaf259c9Af62e8303c0E389DA2 | [link](https://goerli.etherscan.io/address/0x2293044610B9A0eaf259c9Af62e8303c0E389DA2) |
| veloDFPair | 0xF05c416552355b346Ae867C21F93abcA0dd93161 | [link](https://goerli.etherscan.io/address/0xF05c416552355b346Ae867C21F93abcA0dd93161) |
| veloUSXPair | 0x9a89B8a35A65969E321b1fa448724da1bb9bBC2a | [link](https://goerli.etherscan.io/address/0x9a89B8a35A65969E321b1fa448724da1bb9bBC2a) |
| velDFDFPair | 0x3a0a002ad721c2E595F713b522656691F54a7Be7 | [link](https://goerli.etherscan.io/address/0x3a0a002ad721c2E595F713b522656691F54a7Be7) |
| chef | 0x690d2b7136E5b2e180189Db2FBb115672225b023 | [link](https://goerli.etherscan.io/address/0x690d2b7136E5b2e180189Db2FBb115672225b023) |
## 05-18 update
### L1 on Kovan
| | address | link |
|:-----------------|:-------------------------------------------|:--------------------------------------------------------------------------------------|
| DF | 0x06146373f4Bddd186Ccb4B549781b97A18802bae | [link](https://kovan.etherscan.io/address/0x06146373f4Bddd186Ccb4B549781b97A18802bae) |
| cBridge | 0x5279deb9c8eBc6Ff072dBfAAdbc7B0BA1adDeD31 | [link](https://kovan.etherscan.io/address/0x5279deb9c8eBc6Ff072dBfAAdbc7B0BA1adDeD31) |
| proxyAdmin | 0x33844AD6675469e1f13ec95ACCd8242a77eCD70f | [link](https://kovan.etherscan.io/address/0x33844AD6675469e1f13ec95ACCd8242a77eCD70f) |
| veDFManager | 0xDe2c0aF7DAC9288cf9EEc3f1C0ae2835cc53Ef21 | [link](https://kovan.etherscan.io/address/0xDe2c0aF7DAC9288cf9EEc3f1C0ae2835cc53Ef21) |
| DFVoterProxyImpl | 0xE226887aF795EfdF32966873a10D6B87d22CFFdF | [link](https://kovan.etherscan.io/address/0xE226887aF795EfdF32966873a10D6B87d22CFFdF) |
| voter | 0x15F267b7654B9562B949a871fd7D4131706A89d2 | [link](https://kovan.etherscan.io/address/0x15F267b7654B9562B949a871fd7D4131706A89d2) |
| velo | 0xcD8958dc9d4543B33Af1A0e66cDEa0808dE4cCE2 | [link](https://kovan.etherscan.io/address/0xcD8958dc9d4543B33Af1A0e66cDEa0808dE4cCE2) |
| booster | 0x838076735FD9bc9E3524651BDd959D206A876380 | [link](https://kovan.etherscan.io/address/0x838076735FD9bc9E3524651BDd959D206A876380) |
| velDF | 0xdED05690a937cAAf135b5BBDFCed7d5dd3E91641 | [link](https://kovan.etherscan.io/address/0xdED05690a937cAAf135b5BBDFCed7d5dd3E91641) |
| rewardFactory | 0x6293f9af8bA8c1E9217CB2177953784CE3259e1B | [link](https://kovan.etherscan.io/address/0x6293f9af8bA8c1E9217CB2177953784CE3259e1B) |
| velDFStaking | 0x2c52fB48A5e8a4E708eAF69E0Fd6021514c994eb | [link](https://kovan.etherscan.io/address/0x2c52fB48A5e8a4E708eAF69E0Fd6021514c994eb) |
| depositor | 0xc690DbCb7b4f856291Bac15c6396A46bA8046332 | [link](https://kovan.etherscan.io/address/0xc690DbCb7b4f856291Bac15c6396A46bA8046332) |
| veloRewardPool | 0x63070F26CAe09E78e5004ddAF7A4244203f3B4fE | [link](https://kovan.etherscan.io/address/0x63070F26CAe09E78e5004ddAF7A4244203f3B4fE) |
| apyHelper | 0x3e980F6B075d948B7d2a30609BD4188BCff0993d | [link](https://kovan.etherscan.io/address/0x3e980F6B075d948B7d2a30609BD4188BCff0993d) |
| depositProxyL2 | 0xb39e1D2928dc001Fba40c67560a1c01Bd57A40e6 | [link](https://kovan.etherscan.io/address/0xb39e1D2928dc001Fba40c67560a1c01Bd57A40e6) |
### L2 on Goerli
| | address | link |
|:------------------|:-------------------------------------------|:---------------------------------------------------------------------------------------|
| cBridge | 0xD86E43f400e65d1e68fE1eea409799506C51652F | [link](https://goerli.etherscan.io/address/0xD86E43f400e65d1e68fE1eea409799506C51652F) |
| DF | 0xB359f50FBCcb38b3Ee32A9DA523313F3Ad4C12BC | [link](https://goerli.etherscan.io/address/0xB359f50FBCcb38b3Ee32A9DA523313F3Ad4C12BC) |
| velo | 0x23b43BFE32cd10b2E3baAf8d5F0D763728922DA0 | [link](https://goerli.etherscan.io/address/0x23b43BFE32cd10b2E3baAf8d5F0D763728922DA0) |
| rewardDistributor | 0xf31D1EF403b7aa9811777f89761CFba2D7B397B9 | [link](https://goerli.etherscan.io/address/0xf31D1EF403b7aa9811777f89761CFba2D7B397B9) |
| velDF | 0x191397f929dAf294C744b60cD2A0EE11DA9652D9 | [link](https://goerli.etherscan.io/address/0x191397f929dAf294C744b60cD2A0EE11DA9652D9) |
| velDFStaking | 0x94DA2Ff69D83eaE1E77706dAB651fbf98e3dD80c | [link](https://goerli.etherscan.io/address/0x94DA2Ff69D83eaE1E77706dAB651fbf98e3dD80c) |
| depositor | 0x1FC94B633F5F25171F86B7b4Ac845e762E3233Bd | [link](https://goerli.etherscan.io/address/0x1FC94B633F5F25171F86B7b4Ac845e762E3233Bd) |
| veloReward | 0x614433c6F8d8dDf0596D0336a5C0a3d26bBD6c66 | [link](https://goerli.etherscan.io/address/0x614433c6F8d8dDf0596D0336a5C0a3d26bBD6c66) |
| apyHelper | 0x524B4e48E9ADb3eDEb6f1Aa87932B73cAe192db0 | [link](https://goerli.etherscan.io/address/0x524B4e48E9ADb3eDEb6f1Aa87932B73cAe192db0) |
## 05-16 Update
### L1 on Kovan
| | address | link |
|:-----------------|:-------------------------------------------|:--------------------------------------------------------------------------------------|
| DF | 0x06146373f4Bddd186Ccb4B549781b97A18802bae | [link](https://kovan.etherscan.io/address/0x06146373f4Bddd186Ccb4B549781b97A18802bae) |
| veDFManager | 0x81396e759110f69738e80CE25fD5F5481698Df67 | [link](https://kovan.etherscan.io/address/0x81396e759110f69738e80CE25fD5F5481698Df67) |
| cBridge | 0x5279deb9c8eBc6Ff072dBfAAdbc7B0BA1adDeD31 | [link](https://kovan.etherscan.io/address/0x5279deb9c8eBc6Ff072dBfAAdbc7B0BA1adDeD31) |
| proxyAdmin | 0x33844AD6675469e1f13ec95ACCd8242a77eCD70f | [link](https://kovan.etherscan.io/address/0x33844AD6675469e1f13ec95ACCd8242a77eCD70f) |
| DFVoterProxyImpl | 0x399Ef80Cde9b6dF70a950F08DD23A2cb259A236b | [link](https://kovan.etherscan.io/address/0x399Ef80Cde9b6dF70a950F08DD23A2cb259A236b) |
| voter | 0x501373EA00d6A66BB05CEbf27f71A9E5F4e6d3bf | [link](https://kovan.etherscan.io/address/0x501373EA00d6A66BB05CEbf27f71A9E5F4e6d3bf) |
| velo | 0x90b82C3218C1695A58021a2c3b2A4d9030C2540D | [link](https://kovan.etherscan.io/address/0x90b82C3218C1695A58021a2c3b2A4d9030C2540D) |
| booster | 0x573F730AB47F25ca83B102094767A52b8cf8A32C | [link](https://kovan.etherscan.io/address/0x573F730AB47F25ca83B102094767A52b8cf8A32C) |
| velDF | 0xb3EA4910De3697b04504Ae3bFC9D991210da8425 | [link](https://kovan.etherscan.io/address/0xb3EA4910De3697b04504Ae3bFC9D991210da8425) |
| depositor | 0x86F46a3988CAd0F144515c3e4E1e502260272613 | [link](https://kovan.etherscan.io/address/0x86F46a3988CAd0F144515c3e4E1e502260272613) |
| rewardFactory | 0xa6e559788d1ED74eeAa2d3BF118A92FdfA0cea22 | [link](https://kovan.etherscan.io/address/0xa6e559788d1ED74eeAa2d3BF118A92FdfA0cea22) |
| velDFStaking | 0x6Af480FF56fB5E909A0Ca80b7F23F2347592A1fC | [link](https://kovan.etherscan.io/address/0x6Af480FF56fB5E909A0Ca80b7F23F2347592A1fC) |
| veloRewardPool | 0x7367117E05fB63411142f81f915184974B894F3E | [link](https://kovan.etherscan.io/address/0x7367117E05fB63411142f81f915184974B894F3E) |
| depositProxyL2 | 0x0bAEA640A45fF8fFd8666aDe27bD3a4adB982cBc | [link](https://kovan.etherscan.io/address/0x0bAEA640A45fF8fFd8666aDe27bD3a4adB982cBc) |
### L2 on Goerli
| | address | link |
|:------------------|:-------------------------------------------|:---------------------------------------------------------------------------------------|
| cBridge | 0xD86E43f400e65d1e68fE1eea409799506C51652F | [link](https://goerli.etherscan.io/address/0xD86E43f400e65d1e68fE1eea409799506C51652F) |
| DF | 0xB359f50FBCcb38b3Ee32A9DA523313F3Ad4C12BC | [link](https://goerli.etherscan.io/address/0xB359f50FBCcb38b3Ee32A9DA523313F3Ad4C12BC) |
| velo | 0x23b43BFE32cd10b2E3baAf8d5F0D763728922DA0 | [link](https://goerli.etherscan.io/address/0x23b43BFE32cd10b2E3baAf8d5F0D763728922DA0) |
| rewardDistributor | 0x038362bd36AA7Baf45aC5b3EE75b784C2Fed8e86 | [link](https://goerli.etherscan.io/address/0x038362bd36AA7Baf45aC5b3EE75b784C2Fed8e86) |
| velDF | 0x8146fb1875c409bF3350b1485abDEAA4b9CA0B65 | [link](https://goerli.etherscan.io/address/0x8146fb1875c409bF3350b1485abDEAA4b9CA0B65) |
| depositor | 0x5E24a9c5A4f727c86980bE27fDee4B1C3CC08bc2 | [link](https://goerli.etherscan.io/address/0x5E24a9c5A4f727c86980bE27fDee4B1C3CC08bc2) |
| velDFStaking | 0x05c6bDc344a74852d44B7111C38e361389C1fa81 | [link](https://goerli.etherscan.io/address/0x05c6bDc344a74852d44B7111C38e361389C1fa81) |
| veloReward | 0xeEB7C7280385AC9fAa609Fbc32AC64Df8ABACC02 | [link](https://goerli.etherscan.io/address/0xeEB7C7280385AC9fAa609Fbc32AC64Df8ABACC02) |
## 05-10 Update
### L1 on Kovan
| | address | link |
|:---------------|:-------------------------------------------|:--------------------------------------------------------------------------------------|
| DF | 0x06146373f4Bddd186Ccb4B549781b97A18802bae | [link](https://kovan.etherscan.io/address/0x06146373f4Bddd186Ccb4B549781b97A18802bae) |
| veDFManager | 0x81396e759110f69738e80CE25fD5F5481698Df67 | [link](https://kovan.etherscan.io/address/0x81396e759110f69738e80CE25fD5F5481698Df67) |
| voter | 0xA9D8F44195f8a09706eAF3Feb1e868d6eA62658d | [link](https://kovan.etherscan.io/address/0xA9D8F44195f8a09706eAF3Feb1e868d6eA62658d) |
| velo | 0xDC3D838C0A5AdC2A795A24f5a9F0750a78A7E359 | [link](https://kovan.etherscan.io/address/0xDC3D838C0A5AdC2A795A24f5a9F0750a78A7E359) |
| booster | 0x247da7789AB395E6811A4bdDF1dE18db3dF59191 | [link](https://kovan.etherscan.io/address/0x247da7789AB395E6811A4bdDF1dE18db3dF59191) |
| velDF | 0x9Ba1D58491EF75D3B7d94aDfde88Abc5A848262f | [link](https://kovan.etherscan.io/address/0x9Ba1D58491EF75D3B7d94aDfde88Abc5A848262f) |
| depositor | 0x4EA3929F0c44Cc60130eF7ed5Ac1DfF5bD503B95 | [link](https://kovan.etherscan.io/address/0x4EA3929F0c44Cc60130eF7ed5Ac1DfF5bD503B95) |
| rewardFactory | 0xF90a900372C0bFA0D6d4510A03B365e99e904CAb | [link](https://kovan.etherscan.io/address/0xF90a900372C0bFA0D6d4510A03B365e99e904CAb) |
| velDFStaking | 0x000B8CAF65C2Be9697Ed02D64E1f5AC544c240bD | [link](https://kovan.etherscan.io/address/0x000B8CAF65C2Be9697Ed02D64E1f5AC544c240bD) |
| veloRewardPool | 0x0F3a4e42C6dE0C3cC0B693800A009D7C4b519b26 | [link](https://kovan.etherscan.io/address/0x0F3a4e42C6dE0C3cC0B693800A009D7C4b519b26) |
| cBridge | 0x5279deb9c8eBc6Ff072dBfAAdbc7B0BA1adDeD31 | [link](https://kovan.etherscan.io/address/0x5279deb9c8eBc6Ff072dBfAAdbc7B0BA1adDeD31) |
| depositProxyL2 | 0xC3f7713f88c0A2758893B7C41287c9a14968090E | [link](https://kovan.etherscan.io/address/0xC3f7713f88c0A2758893B7C41287c9a14968090E) |
### L2 on Goerli
| | address | link |
|:------------------|:-------------------------------------------|:---------------------------------------------------------------------------------------|
| cBridge | 0xD86E43f400e65d1e68fE1eea409799506C51652F | [link](https://goerli.etherscan.io/address/0xD86E43f400e65d1e68fE1eea409799506C51652F) |
| DF | 0xB359f50FBCcb38b3Ee32A9DA523313F3Ad4C12BC | [link](https://goerli.etherscan.io/address/0xB359f50FBCcb38b3Ee32A9DA523313F3Ad4C12BC) |
| velo | 0x23b43BFE32cd10b2E3baAf8d5F0D763728922DA0 | [link](https://goerli.etherscan.io/address/0x23b43BFE32cd10b2E3baAf8d5F0D763728922DA0) |
| rewardDistributor | 0xA671198aC02b668b33F70A13131aC3175f60D100 | [link](https://goerli.etherscan.io/address/0xA671198aC02b668b33F70A13131aC3175f60D100) |
| velDF | 0x304708B4914f6009e34A542d3da3c14464b15D4c | [link](https://goerli.etherscan.io/address/0x304708B4914f6009e34A542d3da3c14464b15D4c) |
| depositor | 0x6F4b714e5a9B32391E0c1EF177BccCce1B210eD6 | [link](https://goerli.etherscan.io/address/0x6F4b714e5a9B32391E0c1EF177BccCce1B210eD6) |
| velDFStaking | 0xD1A914121F1A748E2f38f8572d815C95c2521E0B | [link](https://goerli.etherscan.io/address/0xD1A914121F1A748E2f38f8572d815C95c2521E0B) |
| veloReward | 0x6356Db2b8C550B41195efE605b02dbD2d42F0393 | [link](https://goerli.etherscan.io/address/0x6356Db2b8C550B41195efE605b02dbD2d42F0393) |
## 05-05 Kovan Update
### On L1
| | address | link |
|:--------------------|:-------------------------------------------|:--------------------------------------------------------------------------------------|
| DF | 0x06146373f4Bddd186Ccb4B549781b97A18802bae | [link](https://kovan.etherscan.io/address/0x06146373f4Bddd186Ccb4B549781b97A18802bae) |
| veDFManager | 0x65a47CC537A478c9215Da90A5E0B423f06A0078e | [link](https://kovan.etherscan.io/address/0x65a47CC537A478c9215Da90A5E0B423f06A0078e) |
| voter | 0xB1d343863bdBD6a185aDF2A7e275e9B2C31C81EB | [link](https://kovan.etherscan.io/address/0xB1d343863bdBD6a185aDF2A7e275e9B2C31C81EB) |
| velo | 0xf89201981cE799093b2Cb8f03E30736d09f937FD | [link](https://kovan.etherscan.io/address/0xf89201981cE799093b2Cb8f03E30736d09f937FD) |
| booster | 0xd8fAD440125522c004DBD2F78c1422d367dAB589 | [link](https://kovan.etherscan.io/address/0xd8fAD440125522c004DBD2F78c1422d367dAB589) |
| velDF | 0xd2B670c829885F8eC4ec78Ef46E5516b18fB606f | [link](https://kovan.etherscan.io/address/0xd2B670c829885F8eC4ec78Ef46E5516b18fB606f) |
| depositor | 0x970786ebA8616729d05DfCB21461394bEe5d1cFc | [link](https://kovan.etherscan.io/address/0x970786ebA8616729d05DfCB21461394bEe5d1cFc) |
| rewardFactory | 0xB2C0F4269d32F9Eb7a255E73983823F27b858C08 | [link](https://kovan.etherscan.io/address/0xB2C0F4269d32F9Eb7a255E73983823F27b858C08) |
| velDFStaking | 0xA3D4790398025D3Dff7DBaC76621d65a89F06916 | [link](https://kovan.etherscan.io/address/0xA3D4790398025D3Dff7DBaC76621d65a89F06916) |
| depositProxyL2 | 0xf73aE43031B45169f4b64E152D949B9857cd2444 | [link](https://kovan.etherscan.io/address/0xf73aE43031B45169f4b64E152D949B9857cd2444) |
### On L2
| | address | link |
|:--------------------|:-------------------------------------------|:--------------------------------------------------------------------------------------|
| DF | 0x06146373f4Bddd186Ccb4B549781b97A18802bae | [link](https://kovan.etherscan.io/address/0x06146373f4Bddd186Ccb4B549781b97A18802bae) |
| velo | 0xf89201981cE799093b2Cb8f03E30736d09f937FD | [link](https://kovan.etherscan.io/address/0xf89201981cE799093b2Cb8f03E30736d09f937FD) |
| cBridge | 0x96F17D0B222b209cC67A3237C339Cf11C9e111CF | [link](https://kovan.etherscan.io/address/0x96F17D0B222b209cC67A3237C339Cf11C9e111CF) |
| rewardDistributorL2 | 0x72d022238db0D8CAAc081C34E60A81791dad6616 | [link](https://kovan.etherscan.io/address/0x72d022238db0D8CAAc081C34E60A81791dad6616) |
| velDFL2 | 0xf5B649dd110B932E8F5341Cd539E094d5fB75729 | [link](https://kovan.etherscan.io/address/0xf5B649dd110B932E8F5341Cd539E094d5fB75729) |
| depositorL2 | 0xecEEa6C3339026F1Fe125832d39F53bCF1465C50 | [link](https://kovan.etherscan.io/address/0xecEEa6C3339026F1Fe125832d39F53bCF1465C50) |
| velDFStakingL2 | 0x3EAA03CC6A774d2fFF3AEe4C19d556eAC33C9320 | [link](https://kovan.etherscan.io/address/0x3EAA03CC6A774d2fFF3AEe4C19d556eAC33C9320) |
| veloReward | 0xa2d3860e95777687f733590cdB2F67Da13723BAc | [link](https://kovan.etherscan.io/address/0xa2d3860e95777687f733590cdB2F67Da13723BAc) |
## 04-20 Kovan:
| Contract Name | Contract Address | Link |
| -------------- | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------- |
| DF Mocked | 0x06146373f4Bddd186Ccb4B549781b97A18802bae | [0x06146373f4Bddd186Ccb4B549781b97A18802bae](https://kovan.etherscan.io/address/0x06146373f4Bddd186Ccb4B549781b97A18802bae) |
| veDF | 0x65a47CC537A478c9215Da90A5E0B423f06A0078e | [0x65a47CC537A478c9215Da90A5E0B423f06A0078e](https://kovan.etherscan.io/address/0x65a47CC537A478c9215Da90A5E0B423f06A0078e) |
| voter proxy | 0xB1d343863bdBD6a185aDF2A7e275e9B2C31C81EB | [0xB1d343863bdBD6a185aDF2A7e275e9B2C31C81EB](https://kovan.etherscan.io/address/0xB1d343863bdBD6a185aDF2A7e275e9B2C31C81EB) |
| velo | 0xf89201981cE799093b2Cb8f03E30736d09f937FD | [0xf89201981cE799093b2Cb8f03E30736d09f937FD](https://kovan.etherscan.io/address/0xf89201981cE799093b2Cb8f03E30736d09f937FD) |
| booster | 0xd8fAD440125522c004DBD2F78c1422d367dAB589 | [0xd8fAD440125522c004DBD2F78c1422d367dAB589](https://kovan.etherscan.io/address/0xd8fAD440125522c004DBD2F78c1422d367dAB589) |
| reward factory | 0xB2C0F4269d32F9Eb7a255E73983823F27b858C08 | [0xB2C0F4269d32F9Eb7a255E73983823F27b858C08](https://kovan.etherscan.io/address/0xB2C0F4269d32F9Eb7a255E73983823F27b858C08) |
| cvxCrvToken | 0xd2B670c829885F8eC4ec78Ef46E5516b18fB606f | [0xd2B670c829885F8eC4ec78Ef46E5516b18fB606f](https://kovan.etherscan.io/address/0xd2B670c829885F8eC4ec78Ef46E5516b18fB606f) |
| crvDepositor | 0x970786ebA8616729d05DfCB21461394bEe5d1cFc | [0x970786ebA8616729d05DfCB21461394bEe5d1cFc](https://kovan.etherscan.io/address/0x970786ebA8616729d05DfCB21461394bEe5d1cFc) |
| baseRewardPool | 0xA3D4790398025D3Dff7DBaC76621d65a89F06916 | [0xA3D4790398025D3Dff7DBaC76621d65a89F06916](https://kovan.etherscan.io/address/0xA3D4790398025D3Dff7DBaC76621d65a89F06916) |
| | | |
| | | |
## ABI
All abi can be found in https://github.com/dforce-network/Stranger/tree/new_arch/abi
| Contract | ABI |
|:-------------- |:--------------------------------------------------------------------------------------------------------- |
| depositor | [IDFDepositor.json](https://github.com/dforce-network/Stranger/tree/new_arch/abi/IDFDepositor.json) |
| depositorL2 | [IDFDepositorL2.json](https://github.com/dforce-network/Stranger/tree/new_arch/abi/IDFDepositorL2.json) |
| booster | [IBooster.json](https://github.com/dforce-network/Stranger/tree/new_arch/abi/IBooster.json) |
| pDFStaking | [IBaseRewardPool.json](https://github.com/dforce-network/Stranger/tree/new_arch/abi/IBaseRewardPool.json) |
| pDFExtraReward | [IBaseRewardPool.json](https://github.com/dforce-network/Stranger/tree/new_arch/abi/IBaseRewardPool.json) |
| DF | ERC20.json |
| Loopfi | ERC20.json |
| pDF | ERC20.json |
| apyHelper | [APYHelper.json](https://github.com/dforce-network/Stranger/tree/new_arch/abi/APYHelper.json) |
## Usage
### User Operation
#### pDF on L2
1. Deposit && Stake
`deposit(_amount, _lock, _stakeAddress)`
`_amount`: 存DF的数量
`_lock`: 是否锁仓
`_stakeAddress`: stake 合约地址
*需要先approve,DF.approve(depositor.address, MAX)*
Example:
```javascript
// deposite
await depositor.deposit(depositAmount, false, AddressZero);
await depositor.deposit(depositAmount, false);
// deposite & staking
await depositor.deposit(depositAmount, false, velDFStaking.address);
// deposite & trigger lock up
await depositor.deposit(depositAmount, true, AddressZero);
// deposite & trigger lock up & staking
await depositor.deposit(depositAmount, true, velDFStaking.address);
// deposit all
await depositor.depositAll(false, AddressZero)
// deposit all & trigger lock up
await depositor.depositAll(true, AddressZero)
// deposite all & trigger lock up & staking
await depositor.depositAll(false, velDFStaking.address)
```
2. pDF Stake && GetReward
User should get `DF` and `Loopfi` token as reward
`getReward(bool earmark)`
`withdraw(amount, claim, earmark)`
`claim`: 是否触发奖励的领取
`earmark`: 是否触发奖励的分发到staking
```javascript
// Stake
await pDFStaking.stake(amount);
await pDFStaking.stakeAll();
// Claim Reward
await pDFStaking.getReward(false);
// Claim Reward & Earmark
await pDFStaking.getReward(true);
// Withdraw
await pDFStaking.withdraw(amount, false, false)
// Withdraw && Claim Reward
await pDFStaking.withdraw(amount, true, false)
// Withdraw && Claim Reward && Earmark
await pDFStaking.withdraw(amount, true, true)
// Withdraw All
await pDFStaking.withdrawAll(false, false)
// Withdraw All && Claim Reward
await pDFStaking.withdrawAll(true, false)
// Withdraw All && Claim Reward && Earmark
await pDFStaking.withdrawAll(true, true)
```
3. Trigger DF Lock on L1, or cross bridge on L2
```javascript
await depositor.lockDF()
```
4. Trigger Claim reward on L1
```javascript
await booster.earmarkRewards(0);
```
5. Trigger forward reward from L1 to L2
```javascript
await booster.forwardRewards(maxGas, gasPriceBid, data);
```
6. Multicall for claim & forward
```javascript
await booster.earmarkAndForward(maxGas, gasPriceBid, data);
```
7. Multicall for claim & lock on L2
```javascript
const txs = [
{
id: "0x00e0a6bcb8d683aa807244874eba5d057b3699b23ac51ba1f6b520db982ef247",
batchNum: "5567"
},
{
id: "0x6084bd3191ba4e7b19a670a08ca600818ad6649d210b0a833316e6903995e899",
batchNum: "5567"
}
];
const proofInfo = await getAllPendingProofInfo(txs);
const claimData = proofInfo.map((info) => depositor.interface.encodeFunctionData["claimFunds", [info.batchNum, info.proof, ...]])
const lockData = depositor.interface.encodeFunctionData("lockDF", []);
await depositor.multicall([...claimData, lockData]);
```
7. Get the cross chain threshold on L2
```javascript
await depositor.lockThreshold();
```
#### Loopfi on L2
1. Liquidity Mining
`Pool index`:
0: Velo/DF Pair
1: Velo/USX Pair
2: velDF/DF Pair
```javascript
// Stake LP into Pool i
await chef.deposit(i, amount);
// Withdraw
await chef.withdraw(i, amount);
// Get reward for account, wallet address
await chef.claim(i, account);
```
## Data
### User
#### pDF
- pDF balance
```javascript
await pDF.balanceOf(account);
```
- pDF amount without triggering lock
```javascript
lockIncentive = await depositor.lockIncentive();
FEE_DENOMINATOR = await depositor.FEE_DENOMINATOR();
pDFAmount = dfAmount.sub(dfAmount.mul(lockIncentive).div(FEE_DENOMINATOR));
```
- pDF Staked
```javascript
await pDFStaking.balanceOf(account);
```
- Staking Earned, available to claim
```javascript
await pDFStaking.earned(account);
await pDFExtraReward.earned(account);
```
### Incentive
1. Trigger Lock DF on L1
*Note: amount is not available in claimData*
```javascript
const res = await depositor.callStatic.multicall([...claimData, lockData]);
const incentive = BigNumber.from(res[res.length - 1]);
```
2. Trigger earmark and forward Rewards on L1
```javascript
await booster.callStatic.forwardRewards();
await booster.callStatic.earmarkAndForward();
```
3. Trigger Lock DF(cross chain) on L2
```javascript
await depositor.incentiveDF();
```
4. Trigger earmark Rewards on L2
```javascript
await pDFStaking.callStatic.earmarkRewards();
```
### Global
- pDF totalSupply
```javascript
await pDF.totalSupply();
```
- pDF Staked totalSupply
```javascript
await pDFStaking.totalSupply();
```
- Velo staking on L2 total staked
```javascript
await veloStaking.totalSupply();
```
- Liquidity mining on L2 total staked
```javascript
await LP.balanceOf(chef.address);
```
- APY for L2
```javascript
const dfRewardRate = await pDFStaking.rewardRate();
const dfRewardPerYear = dfRewardRate.mul(365 * 24 * 3600);
const dfAPY = dfRewardPerYear
.mul(100)
.div(await task.contracts.pDFStaking.totalSupply());
const lpfPrice = ethers.utils.parseEther("1");
const dfPrice = ethers.utils.parseEther("0.04");
const lpfRewardRate = await pDFExtraReward.rewardRate();
const lpfRewardPerYear = lpfRewardRate.mul(365 * 24 * 3600).mul(lpfPrice);
const lpfAPY = lpfRewardPerYear
.mul(100)
.div((await task.contracts.pDFStaking.totalSupply()).mul(dfPrice));
apy = dfAPY.add(lpfAPY);
```
### RewardRate
- pDFStaking
```javascript
// Reward is distributed by second
await pDFStaking.rewardRate()
```
- LPFMasterChef
```javascript
// Reward is distributed by block
const totalRewardPerBlock = await LPFMasterChef.rewardPerBlock();
const totalAllocPoint = await LPFMasterChef.totalAllocPoint();
const poolInfo = await LPFMasterChef.poolInfo(pid);
const poolRewardPerBlock = totalRewardPerBlock.mul(poolInfo.allocPoint).div(totalAllocPoint)
```
## Permissions
| Contract | Roles | Final | Functions |
|:------------------------ |:--------------------- |:---------------- |:--------------------------------------------------------------------------------------------------------------------------------------- |
| BaseRewardPool | rewardManager | constructor | addExtraReward, clearExtraRewards |
| | operator | Booster | queueNewRewards,setOperator |
| Booster | owner | msg.sender | setOwner, setRewardContracts, shutdownSystem |
| | feeManager | msg.sender | setFeeManager, setFees, setTreasury |
| | depositorManager | msg.sender | setL2Depositor |
| | voteDelegate | msg.sender | setVoteDelegate,delegate |
| BoosterL2 | owner | msg.sender | setOwner, setRewardContracts, shutdownSystem |
| | feeManager | msg.sender | setFeeManager, setFees |
| DFDepositor | feeManager | msg.sender | setFeeManager, setFees, initialLock, unlockDF |
| | owner | msg.sender | approveX, setL2Depositor |
| DFVoterProxy | owner | msg.sender | approveX, setOwner, setOperator, setDepositor |
| | operator | setOperator | setStashAccess,delegate,claimDF,execute |
| | stashPool[msg.sender] | setStashAccess() | withdraw |
| | depositor | | createLock,increaseByAmount,increaseByTime,release |
| ~~RewardFactory~~ | operator | constructor | setAccess, CreateDFRewards, CreateTokenRewards |
| Loopfi Token | owner | msg.sender | addMinters,setMinterCaps,removeMinter |
| LPFMasterChef | owner | msg.sender | add, set |
| LPFRewardPool | owner | msg.sender | approveX |
| pDFToken | operator | constructor | setOperator, mint, burn |
| DFDepositorL2 | feeManager | msg.sender | setFeeManager, setFees |
| | owner | msg.sender | approveX |
| RewardDistributor | owner | msg.sender | setRecipientRewardRate,addRecipient,removeRecipient,addRecipientAndSetRewardRate,newStakingPoolAndSetRewardRate,rescueStakingPoolTokens |
| StakingPool | owner | msg.sender | setRewardRate, rescueTokens |
| TreasuryFunds | operator | constructor | setOperator, withdrawTo, execute |
| VirtualBalanceRewardPool | operator | constructor | queueNewRewards |
## Diagrams
### System Status
#### Initial
1. layer2端有一个bridge的门槛,比如50w DF,在存款没有超过50w之前是不会有DF被bridge到layer1的。
2. 第一笔bridge到达layer1需要至少7天(依赖于layer2)。
3. 当第一笔bridge被lock到veDF之后,收益开始累积。
4. 当第一笔reward被claim并且bridge到layer2,layer2上的固定时长分发会被开启,例如7天。
5. 第一笔reward累计时长越接近7天,layer2的分发APY越接近真实layer1的回报率
#### Active
#### Finish
### System Chart

#### Ethereum side
* Staker: To lock assets into Staking Protocols and acts as a voter powered by veToken.
* Booster:Get rewards from Staking Protocols and boost them to Layer2.
* Depositor Proxy: Act as a Layer2 depositor, to deposit assets(bridge from Layer2), get rewards and bridge them to Layer2.
* Staking Protocols: Protocols support token staking and provide high staking yield, such as Curve, dForce, Balancer, BendDao, and so on.
#### Layer2 side
* Depositor: Users deposits Tokens into depositor and receive pTokens as depositing certificate. Loopfi will bridge Tokens to Ethereum and lock them into Staking Protocols.
* Booster: Get rewards via bridging from Ethereum and boost them to Reward Pool.
* Reward Pool: It's staking pool(config as a fix duration distribution pool) to distribute rewards from layer1 to users who stakes their pTokens, new coming rewards from layer1 will restart the distribution with the same duration.
#### Cross-Chain Bridges
* Cross-chain bridge infrastructure, support token bridging and inter-chain communication.
### New Scheme without Layer1 users

### Deposit&Stake

### Boost
