# 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 ![](https://hackmd.io/_uploads/Hktnx_rsc.png) #### 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 ![](https://hackmd.io/_uploads/rJi43it59.jpg) ### Deposit&Stake ![](https://hackmd.io/_uploads/HkOnd47D9.png) ### Boost ![](https://hackmd.io/_uploads/rywxGOmPc.png)