From 4f69138e3322302fc7fc22c13c53d6f360d396c7 Mon Sep 17 00:00:00 2001 From: 0xpeluche <110820448+0xpeluche@users.noreply.github.com> Date: Sat, 17 Aug 2024 12:11:20 +0200 Subject: [PATCH] feat: Adapter, defi.money (#11330) * feat:Adapter, defi-money * add methodology * add yield part * doublecounted: true * split project in two different products * code refactor * remove pool2 --------- Co-authored-by: 0xpeluche <0xpeluche@protonmail.com> Co-authored-by: g1nt0ki <99907941+g1nt0ki@users.noreply.github.com> --- projects/defi-money/index.js | 51 ++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 projects/defi-money/index.js diff --git a/projects/defi-money/index.js b/projects/defi-money/index.js new file mode 100644 index 000000000000..ed6010732ea8 --- /dev/null +++ b/projects/defi-money/index.js @@ -0,0 +1,51 @@ +const { sumTokens2 } = require("../helper/unwrapLPs") + +const config = { + optimism: { + controller: "0x1337F001E280420EcCe9E7B934Fa07D67fdb62CD", + MONEY: "0x7e803F4edd6528caFBf5C5d03Cc106b04379C24b", + stakeLPs: [ + // "0x7e803F4edd6528caFBf5C5d03Cc106b04379C24b", // MONEY - already included in tvl + "0xE8f00491afa68B4A653C77e5f92DBA0F8df3a185", // crvUSD/MONEY + "0xa398a48C2738fd6c79F5654823Fb93456B0fDaF6", // USDT/MONEY + "0x36afCD1083eE9186A2b984E10d75C1E14b99B75e", // USDC/MONEY + "0xcf38a66DeD7825cfEF66046c256Aa0EDbd41BEf5", // DAI/MONEY + "0x73C3eC2b8e00929824a529e60fb6ed8aF193c7cc", // FRAX/MONEY + ], + }, + arbitrum: { + controller: "0x1337F001E280420EcCe9E7B934Fa07D67fdb62CD", + MONEY: "0xEbE54BEE7A397919C53850bA68E126b0A6b295ed", + stakeLPs: [ + // "0xEbE54BEE7A397919C53850bA68E126b0A6b295ed", // MONEY - already included in tvl + "0xF2852d7e810d3EC7094bFE1D7DDCa5044c259c25", // crvUSD/MONEY + "0x6e59b326984fC132F16a977cd20E38641A9043De", // USDT/MONEY + "0xdE718A791226c93B53C77D60E5D4693C05a31422", // USDC/MONEY + "0xE3763d545707F435e21eeBbe75070495c806B744", // DAI/MONEY + "0x07aDF588508b923B8eA0389d27b61b9CB8a197Cb", // FRAX/MONEY + ], + }, +} + +const tvl = async (api) => { + const { controller, } = config[api.chain] + const colls = await api.call({ target: controller, abi: 'address[]:get_all_collaterals' }) + const amms = await api.multiCall({ abi: 'function get_amm(address) view returns (address)', calls: colls, target: controller }) + return sumTokens2({ api, tokensAndOwners2: [colls, amms]}) +} + +const pool2 = async (api) => { + const { stakeLPs = [], } = config[api.chain] + const tokens = await api.multiCall({ abi: 'address:STAKE_TOKEN', calls: stakeLPs }) + return sumTokens2({ api, tokensAndOwners2: [tokens, stakeLPs]}) +} + +module.exports = { + methodology: "TVL corresponds to the collateral deposited in the markets", +} + +Object.keys(config).forEach((chain) => { + module.exports[chain] = { + tvl, pool2, + } +})