├── .editorconfig ├── .env.example ├── .eslintignore ├── .eslintrc.cjs ├── .gitattributes ├── .github ├── pull_request_template.md └── workflows │ ├── ci.yml │ ├── deploy-dev.yml │ ├── deploy-prod.yml │ ├── refresh-r2.yml │ └── test.yml ├── .gitignore ├── .npmrc ├── .prettierrc.cjs ├── .vscode ├── extensions.json ├── launch.json └── settings.json ├── LICENSE ├── README.md ├── docs ├── bg-image.png ├── contributing.md └── swagger │ ├── .gitkeep │ └── swagger.json ├── environment.ts ├── esbuild.config.cjs ├── package.json ├── pnpm-lock.yaml ├── resources └── api-gateway-errors.yml ├── scripts ├── build-adapters.ts ├── create-adapter.ts ├── delete-adapter.ts ├── find-user.ts ├── get-abi-sig.ts ├── get-contract-info.ts ├── get-tokens.ts ├── insert-llamafolio-tokens.ts ├── nft-floors.ts ├── r2 │ └── upload.sh ├── revalidate-all-contracts.ts ├── revalidate-contracts-rec.ts ├── revalidate-contracts.ts ├── run-adapter-balances.ts ├── run-adapter.ts ├── snapshot-adapters-balances.ts ├── test-multicall.ts ├── update-adapter-balances-prices.ts ├── update-adapter-balances.ts ├── update-adapter.ts ├── update-balances.ts ├── update-coingecko-coins.ts ├── update-governance-proposals.ts ├── update-lend-borrow.ts ├── update-missing-tokens.ts ├── update-protocols-tokens.ts ├── update-protocols.ts ├── update-swagger.ts ├── update-tokens.ts ├── update-yields.ts └── utils │ ├── adapter-balances-job.ts │ └── balances.ts ├── serverless.yml ├── src ├── adapters │ ├── 0vix │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── 1inch-network │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ ├── farm.ts │ │ │ ├── locker.ts │ │ │ ├── lp.ts │ │ │ ├── pool.ts │ │ │ ├── reward.ts │ │ │ └── stake.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── 9inch │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── aave-v2 │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── common │ │ │ ├── rewards.ts │ │ │ └── stake.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── aave-v3 │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── base │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ ├── lending.ts │ │ │ └── stake.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── gnosis │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── abracadabra │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── common │ │ │ ├── farm.ts │ │ │ ├── mStake.ts │ │ │ ├── markets.ts │ │ │ ├── masterchef.ts │ │ │ └── sStake.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── fantom │ │ │ └── index.ts │ │ └── index.ts │ ├── across │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ ├── v1 │ │ │ │ └── contract.ts │ │ │ └── v2 │ │ │ │ ├── balance.ts │ │ │ │ └── contract.ts │ │ └── index.ts │ ├── aerodrome │ │ ├── base │ │ │ └── index.ts │ │ └── index.ts │ ├── affine-defi │ │ ├── index.ts │ │ └── polygon │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ └── index.ts │ ├── agave │ │ ├── gnosis │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── agility-lsd │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ ├── lock.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── alchemix │ │ ├── common │ │ │ ├── stake.ts │ │ │ ├── transmuter-v2.ts │ │ │ └── transmuter.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── fantom │ │ │ └── index.ts │ │ └── index.ts │ ├── alien-base │ │ ├── base │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── alongside │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── alpaca-finance │ │ ├── bsc │ │ │ ├── index.ts │ │ │ └── pools.ts │ │ ├── common │ │ │ └── balances.ts │ │ ├── fantom │ │ │ ├── index.ts │ │ │ └── pools.ts │ │ └── index.ts │ ├── ambient │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ └── pool.ts │ │ └── index.ts │ ├── ambire-wallet │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── amphor │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── angle │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── contract.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── ankr │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ └── balance.ts │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ ├── fantom │ │ │ └── index.ts │ │ └── index.ts │ ├── annex │ │ ├── bsc │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── apeswap-amm │ │ ├── bsc │ │ │ ├── index.ts │ │ │ └── reward.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ └── polygon │ │ │ ├── contract.ts │ │ │ └── index.ts │ ├── apeswap-lending │ │ ├── bsc │ │ │ └── index.ts │ │ └── index.ts │ ├── api3 │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── apollox │ │ ├── bsc │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── apwine │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── arbis-finance │ │ ├── arbitrum │ │ │ ├── index.ts │ │ │ ├── pair.ts │ │ │ └── vault.ts │ │ └── index.ts │ ├── arbitrum-exchange │ │ ├── arbitrum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── arbswap │ │ ├── arbitrum │ │ │ ├── index.ts │ │ │ ├── masterChef.ts │ │ │ ├── pair.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── arc-swap │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── reward.ts │ │ └── index.ts │ ├── arpa-staking │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── arrakis-finance │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balances.ts │ │ │ └── contracts.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── asymetrix-protocol │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── asymmetry-finance │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── atlantis-loans │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ └── farm.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── atlas-usv │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ └── stake.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ └── polygon │ │ │ ├── index.ts │ │ │ └── vest.ts │ ├── augury-finance │ │ ├── index.ts │ │ └── polygon │ │ │ ├── index.ts │ │ │ └── masterchef.ts │ ├── aura │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ ├── extraReward.ts │ │ │ └── pool.ts │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ ├── gnosis │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── avalaunch │ │ ├── avalanche │ │ │ ├── index.ts │ │ │ └── masterChef.ts │ │ └── index.ts │ ├── azuro │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── common │ │ │ └── balance.ts │ │ ├── gnosis │ │ │ └── index.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── b.protocol │ │ ├── common │ │ │ └── balance.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── babylon-finance │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── badger-dao │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── common │ │ │ ├── contract.ts │ │ │ ├── farm.ts │ │ │ └── provider.ts │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── balancer │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── pool.ts │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ ├── locker.ts │ │ │ └── pool.ts │ │ ├── gnosis │ │ │ └── index.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── bancor-v3 │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── pools.ts │ │ └── index.ts │ ├── bank-ai │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── basedmarkets │ │ ├── base │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── baseswap │ │ ├── base │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ ├── index.ts │ │ │ ├── locker.ts │ │ │ ├── reward.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── bedrock-unieth │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── beefy │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── base │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ ├── boost.ts │ │ │ └── pool.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── gnosis │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── beethoven-x │ │ ├── common │ │ │ ├── fBeets.ts │ │ │ └── pool.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── index.ts │ │ └── optimism │ │ │ └── index.ts │ ├── bella-protocol │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── belt-finance │ │ ├── bsc │ │ │ ├── contract.ts │ │ │ ├── farm.ts │ │ │ ├── index.ts │ │ │ ├── lp.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── benddao │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ └── nft.ts │ │ └── index.ts │ ├── benqi-lending │ │ ├── avalanche │ │ │ └── index.ts │ │ └── index.ts │ ├── benqi-staked-avax │ │ ├── avalanche │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── bifrost-liquid-staking │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── big-data-protocol │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── masterChef.ts │ │ └── index.ts │ ├── binance-staked-eth │ │ ├── bsc │ │ │ └── index.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── binaryx-platform │ │ ├── index.ts │ │ └── polygon │ │ │ ├── balance.ts │ │ │ └── index.ts │ ├── biswap │ │ ├── bsc │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ └── lock.ts │ │ └── index.ts │ ├── blackrockfund │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── masterChef.ts │ │ └── index.ts │ ├── blast │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── bloom │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── blueberry-lend │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ └── pool.ts │ │ └── index.ts │ ├── blueprint │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── blur │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── bob-fusion │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── cap-finance │ │ ├── arbitrum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── cat-in-a-box │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ ├── lend.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── cega │ │ ├── ethereum │ │ │ ├── contract.ts │ │ │ ├── farm.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── centrifuge │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ └── pool.ts │ │ └── index.ts │ ├── chainlink │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── channels-finance │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ └── index.ts │ ├── charm-finance │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── staker.ts │ │ └── index.ts │ ├── citadao │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── citadelswap │ │ ├── base │ │ │ ├── index.ts │ │ │ ├── locker.ts │ │ │ └── reward.ts │ │ └── index.ts │ ├── clearpool │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── pool.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── clever │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ ├── farm.ts │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── coinbase-wrapped-staked-eth │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── base │ │ │ └── index.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── coinwind │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── contract.ts │ │ └── index.ts │ ├── colony │ │ ├── avalanche │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── compound-v2 │ │ ├── common │ │ │ └── rewards.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── compound-v3 │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── base │ │ │ └── index.ts │ │ ├── common │ │ │ ├── asset.ts │ │ │ └── balance.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── concentrator │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ ├── pool.ts │ │ │ └── staker.ts │ │ └── index.ts │ ├── conic-finance │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── convex-finance │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── pool.ts │ │ ├── ethereum │ │ │ ├── cvx.ts │ │ │ ├── frax.ts │ │ │ ├── fraxBalance.ts │ │ │ ├── fraxPool.ts │ │ │ ├── fx.ts │ │ │ ├── index.ts │ │ │ ├── locker.ts │ │ │ ├── pool.ts │ │ │ ├── prisma.ts │ │ │ ├── stake.ts │ │ │ └── utils.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── copra-finance │ │ ├── arbitrum │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ └── pool.ts │ │ └── index.ts │ ├── cow-swap │ │ ├── common │ │ │ └── vest.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── gnosis │ │ │ └── index.ts │ │ └── index.ts │ ├── cozy-finance │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── cream-finance │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── creth2 │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── crvusd │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── curve-dex │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── base │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ ├── gauge.ts │ │ │ ├── pool.ts │ │ │ └── registries.ts │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ ├── locker.ts │ │ │ ├── lpBalance.ts │ │ │ ├── pools.ts │ │ │ └── vester.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── gnosis │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── moonbeam │ │ │ └── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── cvault-finance │ │ ├── ethereum │ │ │ ├── contract.ts │ │ │ ├── farm.ts │ │ │ ├── index.ts │ │ │ └── lend.ts │ │ └── index.ts │ ├── cyclone │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── pool.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── cygnus-finance │ │ ├── base │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── davos-protocol │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── vault.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── defi-swap │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── definitive.fi │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── base │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── pool.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── definix │ │ ├── bsc │ │ │ └── index.ts │ │ └── index.ts │ ├── defiplaza │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── deltaprime │ │ ├── avalanche │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ └── pool.ts │ │ └── index.ts │ ├── derivadex │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── dhedge │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── pool.ts │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ └── pool.ts │ │ ├── index.ts │ │ ├── optimism │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── dinero-pirexeth │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── dyad │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── dydx │ │ ├── ethereum │ │ │ ├── deposit.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── eigenlayer │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ └── pool.ts │ │ └── index.ts │ ├── elephant-money │ │ ├── bsc │ │ │ ├── farmer.ts │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── ellipsis-finance │ │ ├── bsc │ │ │ ├── contract.ts │ │ │ ├── farm.ts │ │ │ ├── index.ts │ │ │ ├── locker.ts │ │ │ └── lp.ts │ │ └── index.ts │ ├── equalizer-exchange │ │ ├── fantom │ │ │ └── index.ts │ │ └── index.ts │ ├── equilibria │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ ├── lock.ts │ │ │ ├── pool.ts │ │ │ └── vest.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ └── optimism │ │ │ └── index.ts │ ├── ethena │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── ether.fi │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ ├── node.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── ethos-reserve │ │ ├── index.ts │ │ └── optimism │ │ │ ├── balance.ts │ │ │ └── index.ts │ ├── euclid-finance │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── euler │ │ ├── common │ │ │ ├── markets.ts │ │ │ └── stake.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── everrise │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ └── stake.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── exactly │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── market.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ └── optimism │ │ │ └── index.ts │ ├── extra-finance │ │ ├── base │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ ├── pool.ts │ │ │ └── vault.ts │ │ ├── index.ts │ │ └── optimism │ │ │ └── index.ts │ ├── fantohm │ │ ├── fantom │ │ │ ├── index.ts │ │ │ ├── locker.ts │ │ │ ├── stake.ts │ │ │ └── vest.ts │ │ └── index.ts │ ├── firebot │ │ ├── index.ts │ │ └── polygon │ │ │ ├── balance.ts │ │ │ └── index.ts │ ├── flamincome │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── floor-dao │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ ├── stake.ts │ │ │ └── vester.ts │ │ └── index.ts │ ├── florence-finance │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── fluid │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ └── pool.ts │ │ └── index.ts │ ├── flux-finance │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── fortress-loans │ │ ├── bsc │ │ │ └── index.ts │ │ └── index.ts │ ├── fractional-art │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── vault.ts │ │ └── index.ts │ ├── frax-finance │ │ ├── arbitrum │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ ├── locker.ts │ │ │ └── providers │ │ │ │ ├── curve.ts │ │ │ │ └── saddle.ts │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ ├── contracts.json │ │ │ ├── index.ts │ │ │ ├── locker.ts │ │ │ └── staker.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ ├── polygon │ │ │ └── index.ts │ │ └── providers │ │ │ ├── aave.ts │ │ │ ├── arrakis.ts │ │ │ ├── convex.ts │ │ │ ├── curve.ts │ │ │ ├── fraxpool.ts │ │ │ ├── interface.ts │ │ │ ├── stakedao.ts │ │ │ ├── uniswap.ts │ │ │ ├── uniswap3.ts │ │ │ ├── uniswapBoosted.ts │ │ │ └── uniswapNFT.ts │ ├── fraxlend │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ ├── lend.ts │ │ │ └── registry.ts │ │ └── index.ts │ ├── ft33-dao │ │ ├── base │ │ │ └── index.ts │ │ └── index.ts │ ├── fx-protocol │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── fyde-protocol │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── gains-network │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── common │ │ │ ├── farm.ts │ │ │ ├── locker.ts │ │ │ └── stake.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── gambit-trade │ │ ├── arbitrum │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── gamma │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── base │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── celo │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── contract.ts │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ ├── index.ts │ │ ├── moonbeam │ │ │ └── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── gammaswap │ │ ├── arbitrum │ │ │ ├── index.ts │ │ │ └── pool.ts │ │ └── index.ts │ ├── gearbox │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ ├── leverage.ts │ │ │ └── pools.ts │ │ └── index.ts │ ├── geist │ │ ├── fantom │ │ │ └── index.ts │ │ └── index.ts │ ├── genesis-lrt │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── gensokishi │ │ ├── index.ts │ │ └── polygon │ │ │ ├── index.ts │ │ │ └── stake.ts │ ├── get-protocol │ │ ├── common │ │ │ └── balance.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── gitcoin │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── giveth │ │ ├── gnosis │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ ├── pool.ts │ │ │ └── reward.ts │ │ └── index.ts │ ├── glori-finance │ │ ├── arbitrum │ │ │ ├── index.ts │ │ │ └── masterChef.ts │ │ └── index.ts │ ├── gmx-v1 │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balances.ts │ │ │ ├── contracts.ts │ │ │ └── vault.ts │ │ └── index.ts │ ├── gmx-v2 │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── market.ts │ │ └── index.ts │ ├── gnosis-protocol-v1 │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── gogopool │ │ ├── avalanche │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── goldfinch │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── goodentry │ │ ├── arbitrum │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ └── pool.ts │ │ └── index.ts │ ├── granary-finance │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── base │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── index.ts │ │ └── optimism │ │ │ └── index.ts │ ├── gravita-protocol │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── common │ │ │ ├── lend.ts │ │ │ ├── stake.ts │ │ │ └── vessel.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── gro │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ ├── providers │ │ │ │ ├── balancerProvider.ts │ │ │ │ ├── groProvider.ts │ │ │ │ └── sushiProvider.ts │ │ │ └── vest.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── gyro │ │ ├── bsc │ │ │ ├── index.ts │ │ │ ├── locker.ts │ │ │ └── vester.ts │ │ └── index.ts │ ├── hector-network │ │ ├── fantom │ │ │ ├── farm.ts │ │ │ ├── index.ts │ │ │ ├── locker.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── hex │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ ├── reward.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── hmx │ │ ├── arbitrum │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ ├── index.ts │ │ │ └── vest.ts │ │ └── index.ts │ ├── homora-v2 │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── contract.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── index.ts │ │ └── optimism │ │ │ └── index.ts │ ├── honeyswap │ │ ├── gnosis │ │ │ └── index.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── hop-protocol │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── base │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── pool.ts │ │ ├── gnosis │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── hopr │ │ ├── gnosis │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── horiza │ │ ├── arbitrum │ │ │ ├── index.ts │ │ │ └── locker.ts │ │ └── index.ts │ ├── horizon-protocol │ │ ├── bsc │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── houdini-swap │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── hundred-finance │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── idle │ │ ├── common │ │ │ ├── pool.ts │ │ │ └── tranche.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ └── optimism │ │ │ └── index.ts │ ├── illuvium │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── index.ts │ ├── infusion │ │ ├── base │ │ │ └── index.ts │ │ └── index.ts │ ├── integral │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── interport-finance │ │ ├── common │ │ │ ├── farm.ts │ │ │ ├── masterChef.ts │ │ │ └── vest.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── inverse-finance │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ └── market.ts │ │ └── index.ts │ ├── ipor │ │ ├── ethereum │ │ │ ├── farm.ts │ │ │ ├── index.ts │ │ │ ├── lp.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── iron-bank │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── index.ts │ │ └── optimism │ │ │ ├── farm.ts │ │ │ └── index.ts │ ├── izumi-finance │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── bsc │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ ├── common │ │ │ └── balance.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── jaypeggers │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── jones-dao │ │ ├── arbitrum │ │ │ ├── balances.ts │ │ │ ├── index.ts │ │ │ ├── jpool.ts │ │ │ ├── masterChef.ts │ │ │ └── miniChef.ts │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── karak │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── contract.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── keep3r-network │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── kelp-dao │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── keom-protocol │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── kine-finance │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ ├── farm.ts │ │ │ └── lp.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── kinza-finance │ │ ├── bsc │ │ │ └── index.ts │ │ ├── index.ts │ │ └── opbnb │ │ │ └── index.ts │ ├── klima-dao │ │ ├── common │ │ │ └── stake.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── kokonut-swap │ │ ├── base │ │ │ ├── index.ts │ │ │ └── pool.ts │ │ └── index.ts │ ├── kommunitas │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── common │ │ │ └── locker.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── kwenta │ │ ├── index.ts │ │ └── optimism │ │ │ ├── balance.ts │ │ │ ├── deposit.ts │ │ │ ├── index.ts │ │ │ ├── vault.ts │ │ │ └── vest.ts │ ├── kyberswap │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── base │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ ├── pair.ts │ │ │ └── stake.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── linea │ │ │ └── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── layerbank │ │ ├── index.ts │ │ └── linea │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ └── index.ts │ ├── leonicornswap │ │ ├── bsc │ │ │ └── index.ts │ │ └── index.ts │ ├── levinswap │ │ ├── gnosis │ │ │ └── index.ts │ │ └── index.ts │ ├── lido │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── unstake.ts │ │ ├── index.ts │ │ └── moonbeam │ │ │ └── index.ts │ ├── life-dao │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── common │ │ │ └── stake.ts │ │ └── index.ts │ ├── linear-finance │ │ ├── bsc │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── liqee │ │ ├── bsc │ │ │ └── index.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── liquid-collective │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── liquid-driver │ │ ├── common │ │ │ ├── balance.ts │ │ │ ├── masterchef.ts │ │ │ └── shadowFarm.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── liquid-finance │ │ ├── arbitrum │ │ │ ├── index.ts │ │ │ ├── locker.ts │ │ │ └── masterChef.ts │ │ └── index.ts │ ├── liquity │ │ ├── ethereum │ │ │ ├── farm.ts │ │ │ ├── index.ts │ │ │ ├── lend.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── llama-airforce │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ └── provider.ts │ │ └── index.ts │ ├── llamapay │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ └── streams.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── gnosis │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── locus-finance │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── pool.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── lodestar-finance │ │ ├── arbitrum │ │ │ ├── farm.ts │ │ │ ├── index.ts │ │ │ └── vester.ts │ │ └── index.ts │ ├── looksrare │ │ ├── ethereum │ │ │ ├── balances.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── lusd-chickenbonds │ │ ├── ethereum │ │ │ ├── bondNFT.ts │ │ │ ├── chickenBondManager.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── lybra-v1 │ │ ├── ethereum │ │ │ ├── farm.ts │ │ │ ├── index.ts │ │ │ ├── lend.ts │ │ │ └── vest.ts │ │ └── index.ts │ ├── lybra-v2 │ │ ├── arbitrum │ │ │ ├── farm.ts │ │ │ └── index.ts │ │ ├── ethereum │ │ │ ├── farm.ts │ │ │ ├── index.ts │ │ │ ├── lend.ts │ │ │ └── vest.ts │ │ └── index.ts │ ├── lyra │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── common │ │ │ ├── lp.ts │ │ │ └── stake.ts │ │ ├── ethereum │ │ │ ├── farm.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ └── optimism │ │ │ └── index.ts │ ├── magnate-finance │ │ ├── base │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── magpie │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ ├── cakepie.ts │ │ │ ├── eigenpie.ts │ │ │ ├── magpie.ts │ │ │ ├── penpie.ts │ │ │ ├── radpie.ts │ │ │ └── stake.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ └── optimism │ │ │ └── index.ts │ ├── makerdao │ │ ├── ethereum │ │ │ ├── balances.ts │ │ │ ├── cdpid.ts │ │ │ ├── index.ts │ │ │ └── proxies.ts │ │ └── index.ts │ ├── mantisswap │ │ ├── index.ts │ │ └── polygon │ │ │ ├── balance.ts │ │ │ └── index.ts │ ├── mantle-staked-eth │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── maple │ │ ├── ethereum │ │ │ ├── contract.ts │ │ │ ├── farm.ts │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── matrix-farm │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── base │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── vault.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── index.ts │ │ └── optimism │ │ │ └── index.ts │ ├── mdex │ │ ├── bsc │ │ │ └── index.ts │ │ └── index.ts │ ├── mean-finance │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ └── balance.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── mendi-finance │ │ ├── index.ts │ │ └── linea │ │ │ ├── balance.ts │ │ │ └── index.ts │ ├── merit-circle │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── locker.ts │ │ └── index.ts │ ├── merlins-seal │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── common │ │ │ └── balance.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── mesher │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── meta-pool │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── metronome │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── contract.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ └── optimism │ │ │ └── index.ts │ ├── mev-protocol │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── moonwell │ │ ├── base │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── market.ts │ │ ├── index.ts │ │ └── moonbeam │ │ │ └── index.ts │ ├── morpheus-swap │ │ ├── fantom │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── morphex │ │ ├── fantom │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── morpho-aave │ │ ├── ethereum │ │ │ ├── balances.ts │ │ │ ├── contract.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── morpho-aavev3 │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── morpho-blue │ │ ├── ethereum │ │ │ ├── asset.ts │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ ├── index.ts │ │ │ └── lend.ts │ │ └── index.ts │ ├── morpho-compound │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── healthfactor.ts │ │ │ ├── index.ts │ │ │ └── market.ts │ │ └── index.ts │ ├── mountain-protocol │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── mover │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── mstable │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── mu-exchange │ │ ├── gnosis │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── mugenfinance │ │ ├── arbitrum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── multichain │ │ ├── bsc │ │ │ └── index.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── fantom │ │ │ └── index.ts │ │ └── index.ts │ ├── mummy-finance │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── base │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── contract.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── index.ts │ │ └── optimism │ │ │ └── index.ts │ ├── nasdex │ │ ├── index.ts │ │ └── polygon │ │ │ ├── index.ts │ │ │ └── masterchef.ts │ ├── nemesis-dao │ │ ├── bsc │ │ │ ├── balances.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── neopin-pool │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── nexus-mutual │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── nf3-ape │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── nodedao │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── notional │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── pool.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── olympus-dao │ │ ├── common │ │ │ ├── bond.ts │ │ │ └── stake.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── ondo-finance │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── onyx-protocol │ │ ├── ethereum │ │ │ ├── contract.ts │ │ │ ├── farm.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── openxswap │ │ ├── index.ts │ │ └── optimism │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ └── masterChef.ts │ ├── opium │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── opx-finance │ │ ├── index.ts │ │ └── optimism │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ ├── index.ts │ │ │ └── locker.ts │ ├── opyn-squeeth │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── origin-defi │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── origin-dollar │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ ├── locker.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── overnight-finance │ │ ├── arbitrum │ │ │ ├── contract.ts │ │ │ └── index.ts │ │ ├── base │ │ │ ├── contract.ts │ │ │ └── index.ts │ │ ├── common │ │ │ └── balance.ts │ │ ├── index.ts │ │ ├── optimism │ │ │ ├── contract.ts │ │ │ └── index.ts │ │ └── polygon │ │ │ ├── contract.ts │ │ │ └── index.ts │ ├── paal-ai │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── lock.ts │ │ └── index.ts │ ├── paladin-finance │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ ├── lend.ts │ │ │ ├── pool.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── paladin-warlord │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── pancakeswap │ │ ├── bsc │ │ │ ├── index.ts │ │ │ └── lp.ts │ │ ├── common │ │ │ └── stake.ts │ │ ├── ethereum │ │ │ ├── farm.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── pandora │ │ ├── bsc │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── pangolin │ │ ├── avalanche │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ └── masterChef.ts │ │ └── index.ts │ ├── parallel-protocol │ │ ├── common │ │ │ ├── bptFarm.ts │ │ │ ├── lend.ts │ │ │ ├── lpFarm.ts │ │ │ ├── stake.ts │ │ │ └── vault.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── paraswap │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ ├── index.ts │ │ └── optimism │ │ │ └── index.ts │ ├── peapods-finance │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── pool.ts │ │ └── index.ts │ ├── pearlfi │ │ ├── index.ts │ │ └── polygon │ │ │ ├── farm.ts │ │ │ └── index.ts │ ├── pendle │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ ├── locker.ts │ │ │ └── pool.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ └── optimism │ │ │ └── index.ts │ ├── perennial │ │ ├── arbitrum │ │ │ ├── balance.ts │ │ │ ├── farm.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── perion │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── perpetual-protocol │ │ ├── common │ │ │ └── balance.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ └── optimism │ │ │ └── index.ts │ ├── piedao │ │ ├── ethereum │ │ │ ├── farm.ts │ │ │ ├── index.ts │ │ │ ├── lock.ts │ │ │ ├── providers │ │ │ │ ├── balancer.ts │ │ │ │ ├── pie.ts │ │ │ │ └── sushi.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── pika-protocol │ │ ├── index.ts │ │ └── optimism │ │ │ ├── balance.ts │ │ │ └── index.ts │ ├── pingu-exchange │ │ ├── arbitrum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── platypus-finance │ │ ├── avalanche │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── pods │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── polkastarter │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ └── lock.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── poolside │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── base │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ ├── common │ │ │ └── balance.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── popsicle-finance │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ ├── farm.ts │ │ │ └── yield.ts │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── preon-finance │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── common │ │ │ └── balance.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── prime-staked-eth │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── prisma-finance │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ ├── index.ts │ │ │ └── locker.ts │ │ └── index.ts │ ├── protectorate-protocol │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── proxy │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── pstake-finance │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ └── stake.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── puffer-finance │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── purple-bridge-dex │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── qidao │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── base │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ ├── vault.ts │ │ │ └── yields.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── linea │ │ │ └── index.ts │ │ ├── moonbeam │ │ │ └── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── quickswap-dex │ │ ├── index.ts │ │ └── polygon │ │ │ ├── index.ts │ │ │ └── stake.ts │ ├── radiant-v1 │ │ ├── arbitrum │ │ │ └── index.ts │ │ └── index.ts │ ├── radiant-v2 │ │ ├── arbitrum │ │ │ ├── index.ts │ │ │ ├── lendingPool.ts │ │ │ └── multifee.ts │ │ ├── bsc │ │ │ ├── index.ts │ │ │ └── multifee.ts │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── multifee.ts │ │ └── index.ts │ ├── radioshack │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── raft │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ ├── farm.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── rage-trade │ │ ├── arbitrum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── railgun │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ └── balance.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── ramses-exchange │ │ ├── arbitrum │ │ │ ├── index.ts │ │ │ └── locker.ts │ │ └── index.ts │ ├── range-protocol │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── base │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── pool.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── realt │ │ ├── gnosis │ │ │ ├── contract.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── reaper-farm │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── pool.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── index.ts │ │ └── optimism │ │ │ └── index.ts │ ├── redacted │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ ├── lock.ts │ │ │ ├── stake.ts │ │ │ └── vest.ts │ │ └── index.ts │ ├── reflexer │ │ ├── ethereum │ │ │ ├── farm.ts │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── renzo │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── reserve │ │ ├── base │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── lock.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── restake-finance │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── retro │ │ ├── index.ts │ │ └── polygon │ │ │ ├── balance.ts │ │ │ └── index.ts │ ├── rhino.fi │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── ribbon-finance │ │ ├── common │ │ │ ├── contract.ts │ │ │ ├── farm.ts │ │ │ └── locker.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── rocket-pool │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── rocketswap-base │ │ ├── base │ │ │ └── index.ts │ │ └── index.ts │ ├── rook │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── rubicon │ │ ├── index.ts │ │ └── optimism │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ └── pool.ts │ ├── sakeperp │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── masterchef.ts │ │ └── index.ts │ ├── scale │ │ ├── base │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ ├── index.ts │ │ │ └── locker.ts │ │ └── index.ts │ ├── scream │ │ ├── fantom │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── sdai │ │ ├── gnosis │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── seamless-protocol │ │ ├── base │ │ │ └── index.ts │ │ └── index.ts │ ├── sentiment │ │ ├── arbitrum │ │ │ ├── index.ts │ │ │ └── staker.ts │ │ └── index.ts │ ├── set-protocol │ │ ├── ethereum │ │ │ ├── contract.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── sharedstake │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── shell-protocol │ │ ├── arbitrum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── sherlock │ │ ├── ethereum │ │ │ ├── farm.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── shibaswap │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── sideshift │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── silo-finance │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── pool.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── smardex │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── base │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ ├── farm.ts │ │ │ └── pool.ts │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── smoothy │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ └── stake.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── snowbank │ │ ├── avalanche │ │ │ ├── index.ts │ │ │ ├── stake.ts │ │ │ └── vest.ts │ │ └── index.ts │ ├── solid-world │ │ ├── index.ts │ │ └── polygon │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ └── index.ts │ ├── solidlizard │ │ ├── arbitrum │ │ │ ├── index.ts │ │ │ └── pair.ts │ │ └── index.ts │ ├── solidly-v2 │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── solv-protocol │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ ├── pool.ts │ │ │ └── vesting.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── sommelier │ │ ├── ethereum │ │ │ ├── farm.ts │ │ │ ├── index.ts │ │ │ ├── locker.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── sonne-finance │ │ ├── base │ │ │ └── index.ts │ │ ├── index.ts │ │ └── optimism │ │ │ ├── index.ts │ │ │ └── stake.ts │ ├── soswap │ │ ├── base │ │ │ └── index.ts │ │ └── index.ts │ ├── spark │ │ ├── common │ │ │ └── contract.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── gnosis │ │ │ └── index.ts │ │ └── index.ts │ ├── spartacus │ │ ├── fantom │ │ │ ├── index.ts │ │ │ ├── stake.ts │ │ │ └── vest.ts │ │ └── index.ts │ ├── spartadex │ │ ├── arbitrum │ │ │ └── index.ts │ │ └── index.ts │ ├── sphere-finance │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── spice-finance │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── spiritswap │ │ ├── fantom │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── spookyswap │ │ ├── fantom │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── spool │ │ ├── ethereum │ │ │ ├── genesis.ts │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── stabl.fi │ │ ├── index.ts │ │ └── polygon │ │ │ ├── balance.ts │ │ │ └── index.ts │ ├── stader │ │ ├── bsc │ │ │ ├── farm.ts │ │ │ └── index.ts │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── index.ts │ │ └── polygon │ │ │ ├── farm.ts │ │ │ └── index.ts │ ├── stafi │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── stake.link │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── stakedao │ │ ├── common │ │ │ ├── balance.ts │ │ │ ├── pool.ts │ │ │ ├── stake.ts │ │ │ └── vest.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── stakehound │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── stakewise │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── lend.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── gnosis │ │ │ └── index.ts │ │ └── index.ts │ ├── stargate │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── base │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ ├── contract.ts │ │ │ ├── farm.ts │ │ │ └── lp.ts │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── vest.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── linea │ │ │ └── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── steer-protocol │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── base │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── pool.ts │ │ ├── index.ts │ │ ├── linea │ │ │ └── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── strike │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── sturdy │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ └── index.ts │ │ ├── fantom │ │ │ └── index.ts │ │ └── index.ts │ ├── stusdt │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── sudoswap │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ ├── farm.ts │ │ │ ├── index.ts │ │ │ └── locker.ts │ │ └── index.ts │ ├── summer.fi │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── superfarm │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── sushiswap │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balances.ts │ │ │ ├── contract.ts │ │ │ └── reward.ts │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── gnosis │ │ │ └── index.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── swaap │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── common │ │ │ └── pool.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── swapbased │ │ ├── base │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ └── masterChef.ts │ │ └── index.ts │ ├── swapr │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── pool.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── gnosis │ │ │ └── index.ts │ │ └── index.ts │ ├── swell │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── synapse │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ ├── contract.ts │ │ │ └── farm.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── synclub-staked-bnb │ │ ├── bsc │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── syncus │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── synthetix │ │ ├── common │ │ │ ├── balance.ts │ │ │ ├── farm.ts │ │ │ └── provider │ │ │ │ ├── arrakis.ts │ │ │ │ ├── balancer.ts │ │ │ │ ├── curve.ts │ │ │ │ ├── snx.ts │ │ │ │ └── uniswap.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ └── optimism │ │ │ └── index.ts │ ├── tangible │ │ ├── index.ts │ │ └── polygon │ │ │ ├── farm.ts │ │ │ ├── index.ts │ │ │ ├── lock.ts │ │ │ └── stake.ts │ ├── templedao │ │ ├── ethereum │ │ │ ├── balances.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── tender-finance │ │ ├── arbitrum │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── tensorplex │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── tetu │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ ├── farm.ts │ │ │ ├── lp.ts │ │ │ ├── pool.ts │ │ │ └── vault.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── index.ts │ │ └── polygon │ │ │ ├── index.ts │ │ │ └── locker.ts │ ├── thales │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── base │ │ │ └── index.ts │ │ ├── common │ │ │ ├── market.ts │ │ │ └── stake.ts │ │ ├── index.ts │ │ └── optimism │ │ │ └── index.ts │ ├── the-idols │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── the-open-dao-sos │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── thena │ │ ├── bsc │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ └── pair.ts │ │ └── index.ts │ ├── tholgar │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── tigris │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── common │ │ │ └── stake.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── timewarp │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ └── stake.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── tokemak │ │ ├── ethereum │ │ │ ├── contract.ts │ │ │ ├── index.ts │ │ │ └── locker.ts │ │ └── index.ts │ ├── tokenlon │ │ ├── ethereum │ │ │ ├── farm.ts │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── tonpound │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── tornado-cash │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── toupee.tech │ │ ├── base │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ ├── index.ts │ │ │ └── lend.ts │ │ └── index.ts │ ├── tprotocol │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── trader-joe │ │ ├── avalanche │ │ │ ├── balances.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── treasuredao │ │ ├── arbitrum │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ ├── locker.ts │ │ │ └── pool.ts │ │ └── index.ts │ ├── truefi │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ └── pools.ts │ │ └── index.ts │ ├── trufin-protocol │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── trustswap │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ └── lock.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── umami-finance │ │ ├── arbitrum │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ └── pool.ts │ │ └── index.ts │ ├── unicly │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── uniswap-v2 │ │ ├── ethereum │ │ │ └── index.ts │ │ └── index.ts │ ├── uniswap-v3 │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── base │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── celo │ │ │ └── index.ts │ │ ├── common │ │ │ └── pools.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── unitus │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ ├── lend.ts │ │ │ └── staker.ts │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ ├── lock.ts │ │ │ └── stake.ts │ │ ├── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── unsheth │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── usdfi-lending │ │ ├── bsc │ │ │ └── index.ts │ │ └── index.ts │ ├── uwu-lend │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ ├── lending.ts │ │ │ └── multifee.ts │ │ └── index.ts │ ├── valas-finance │ │ ├── bsc │ │ │ └── index.ts │ │ └── index.ts │ ├── vapordex │ │ ├── avalanche │ │ │ └── index.ts │ │ └── index.ts │ ├── vault-tech │ │ ├── ethereum │ │ │ ├── index.ts │ │ │ └── vault.ts │ │ └── index.ts │ ├── vector-finance │ │ ├── avalanche │ │ │ ├── farm.ts │ │ │ ├── index.ts │ │ │ └── locker.ts │ │ └── index.ts │ ├── vector-reserve │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── velodrome-v1 │ │ ├── index.ts │ │ └── optimism │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ └── pair.ts │ ├── velodrome-v2 │ │ ├── index.ts │ │ └── optimism │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ ├── locker.ts │ │ │ └── pair.ts │ ├── venus │ │ ├── bsc │ │ │ ├── index.ts │ │ │ ├── lend.ts │ │ │ ├── rewards.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── verse │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── vesper │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── pool.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── virtuswap │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── common │ │ │ └── balance.ts │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── volta-club │ │ ├── avalanche │ │ │ ├── balances.ts │ │ │ ├── index.ts │ │ │ └── rewards.ts │ │ └── index.ts │ ├── vulcandex │ │ ├── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── wagmi │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── index.ts │ │ └── zksync-era │ │ │ └── index.ts │ ├── wallet │ │ └── index.ts │ ├── wepiggy │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ └── rewards.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── whiteheart │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── wigoswap │ │ ├── fantom │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── winr-protocol │ │ ├── arbitrum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── wombat-exchange │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ ├── contract.ts │ │ │ ├── farm.ts │ │ │ ├── lock.ts │ │ │ └── lp.ts │ │ └── index.ts │ ├── woofi │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── avalanche │ │ │ └── index.ts │ │ ├── bsc │ │ │ └── index.ts │ │ ├── common │ │ │ ├── contract.ts │ │ │ ├── farm.ts │ │ │ └── stake.ts │ │ ├── ethereum │ │ │ └── index.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── optimism │ │ │ └── index.ts │ │ └── polygon │ │ │ └── index.ts │ ├── x2y2 │ │ ├── ethereum │ │ │ ├── farm.ts │ │ │ ├── index.ts │ │ │ └── stake.ts │ │ └── index.ts │ ├── yama-finance │ │ ├── arbitrum │ │ │ ├── CDP.ts │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── yamato-protocol │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── yearn-finance │ │ ├── arbitrum │ │ │ └── index.ts │ │ ├── base │ │ │ └── index.ts │ │ ├── common │ │ │ ├── balance.ts │ │ │ └── vault.ts │ │ ├── ethereum │ │ │ ├── farm.ts │ │ │ └── index.ts │ │ ├── fantom │ │ │ └── index.ts │ │ ├── index.ts │ │ └── optimism │ │ │ ├── farm.ts │ │ │ └── index.ts │ ├── yieldflow │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── index.ts │ │ │ └── pool.ts │ │ └── index.ts │ ├── yoshi-exchange │ │ ├── bsc │ │ │ └── index.ts │ │ ├── fantom │ │ │ └── index.ts │ │ └── index.ts │ ├── zerolend │ │ ├── index.ts │ │ └── zksync-era │ │ │ └── index.ts │ ├── zharta │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ ├── contract.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── zircuit-staking │ │ ├── ethereum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── zoodao │ │ ├── arbitrum │ │ │ ├── balance.ts │ │ │ └── index.ts │ │ └── index.ts │ └── zyberswap │ │ ├── arbitrum │ │ ├── balance.ts │ │ └── index.ts │ │ └── index.ts ├── db │ ├── adapters.ts │ ├── balances-ddb.ts │ ├── balances.ts │ ├── calendar.ts │ ├── clickhouse.ts │ ├── contracts.ts │ ├── dynamo.ts │ ├── gas.ts │ ├── governance.ts │ ├── history.ts │ ├── labels.ts │ ├── lendBorrow.ts │ ├── marshall.ts │ ├── protocols.ts │ ├── tokens.ts │ ├── tokensTransfers.ts │ └── yields.ts ├── handlers │ ├── corsPreflight.ts │ ├── fallback.ts │ ├── getBalances.ts │ ├── getBalancesTokens.ts │ ├── getCalendar.ts │ ├── getContract.ts │ ├── getGasChart.ts │ ├── getGasUsed.ts │ ├── getHistory.ts │ ├── getHistoryStats.ts │ ├── getInfoAddress.ts │ ├── getInfoStats.ts │ ├── getLabels.ts │ ├── getLatestProtocols.ts │ ├── getLatestSnapshot.ts │ ├── getLatestTokensTransfers.ts │ ├── getNFTs.ts │ ├── getNFTsHistory.ts │ ├── getProtocolContracts.ts │ ├── getProtocolHolders.ts │ ├── getProtocols.ts │ ├── getSyncStatus.ts │ ├── getToken.ts │ ├── getTokenBalanceChart.ts │ ├── getTokenBorrow.ts │ ├── getTokenHolders.ts │ ├── getTokenLend.ts │ ├── getTokenYields.ts │ ├── getTrendingContracts.ts │ ├── response.ts │ ├── revalidateAdapters.ts │ ├── updateBalances.ts │ ├── updateCoingeckoCoins.ts │ ├── updateGovernanceProposals.ts │ ├── updateLendBorrow.ts │ ├── updateProtocols.ts │ ├── updateProtocolsTokens.ts │ └── updateYields.ts ├── labels │ ├── defillama.ts │ ├── ens │ │ └── index.ts │ ├── index.ts │ ├── llamafolio │ │ └── index.ts │ └── opensea │ │ └── index.ts └── lib │ ├── aave │ └── v2 │ │ └── lending.ts │ ├── adapter.ts │ ├── array.ts │ ├── balance.ts │ ├── balancer │ └── underlying.ts │ ├── cache.ts │ ├── calendar.ts │ ├── call.ts │ ├── category.ts │ ├── chains.ts │ ├── coingecko.ts │ ├── compound │ └── v2 │ │ └── market.ts │ ├── contract.ts │ ├── curve │ ├── gauge.ts │ ├── helper.ts │ ├── lp.ts │ ├── pool.ts │ └── registries.ts │ ├── ens.ts │ ├── erc20.ts │ ├── error.ts │ ├── fetcher.ts │ ├── fmt.ts │ ├── geist │ ├── lending.ts │ └── stake.ts │ ├── gmx │ ├── underlying.ts │ └── vault.ts │ ├── governance.ts │ ├── lambda.ts │ ├── lock.ts │ ├── logger.ts │ ├── masterchef │ ├── masterChefBalance.ts │ ├── masterChefContract.ts │ ├── masterchef.ts │ └── newMasterchef.ts │ ├── math.ts │ ├── multicall.ts │ ├── nft │ ├── alchemy.ts │ ├── ankr.ts │ ├── blacklist.ts │ ├── center.ts │ ├── class.ts │ ├── defillama.ts │ ├── index.ts │ ├── infura.ts │ ├── nft-port.ts │ ├── nft-scan.ts │ ├── opensea.ts │ ├── quick-node.ts │ ├── reservoir.ts │ ├── sequence.ts │ └── types.ts │ ├── pools.ts │ ├── price.ts │ ├── pricePerShare.ts │ ├── promise.ts │ ├── protocols.ts │ ├── slack.ts │ ├── stake.ts │ ├── token.ts │ ├── type.ts │ └── uniswap │ └── v2 │ ├── factory.ts │ └── pair.ts ├── test ├── routes.sh └── setup │ └── global.ts ├── tsconfig.json └── vitest.config.ts /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | max_line_length = 120 7 | indent_size = 2 8 | indent_style = space 9 | insert_final_newline = true 10 | trim_trailing_whitespace = true 11 | 12 | [*.md,*.sh] 13 | max_line_length = 80 14 | 15 | [*ignore] 16 | insert_final_newline = false 17 | -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/llamafolio/llamafolio-api/bf669cbaf424a7694954d151e39e143d28ff2e35/.env.example -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | migrations/ 2 | llamafolio-tokens/ 3 | LICENSE 4 | node_modules/ 5 | .esbuild 6 | resources 7 | dist 8 | .serverless 9 | coverage 10 | migrations 11 | test/*.json 12 | test/**/*.json 13 | _ 14 | pnpm-lock.yaml 15 | docs -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | ## Summary 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | ## Checklist 16 | 17 | - [ ] I checked my changes for obvious issues, debug statements and commented code 18 | - [ ] I tested adapter results with the CLI 19 | 20 | 21 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | shamefully-hoist=true 2 | auto-install-peers=true 3 | enable-pre-post-scripts=true 4 | strict-peer-dependencies=false -------------------------------------------------------------------------------- /.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | /** @type {import('prettier').Config} */ 2 | module.exports = { 3 | printWidth: 120, 4 | semi: false, 5 | singleQuote: true, 6 | trailingComma: 'all', 7 | overrides: [ 8 | { 9 | files: ['*.json', '*.jsonc'], 10 | options: { 11 | parser: 'json', 12 | }, 13 | }, 14 | ], 15 | plugins: ['prettier-plugin-sh', 'prettier-plugin-sql'], 16 | } 17 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "mikestead.dotenv", 4 | "dbaeumer.vscode-eslint", 5 | "github.vscode-github-actions", 6 | "esbenp.prettier-vscode", 7 | "EditorConfig.EditorConfig", 8 | "bierner.comment-tagged-templates" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /docs/bg-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/llamafolio/llamafolio-api/bf669cbaf424a7694954d151e39e143d28ff2e35/docs/bg-image.png -------------------------------------------------------------------------------- /docs/swagger/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/llamafolio/llamafolio-api/bf669cbaf424a7694954d151e39e143d28ff2e35/docs/swagger/.gitkeep -------------------------------------------------------------------------------- /scripts/update-yields.ts: -------------------------------------------------------------------------------- 1 | import '../environment' 2 | 3 | import { client } from '../src/db/clickhouse' 4 | import { fetchYields, insertYields } from '../src/db/yields' 5 | 6 | async function main() { 7 | try { 8 | const yields = await fetchYields() 9 | 10 | await insertYields(client, yields) 11 | 12 | console.log(`Inserted ${yields.length} yields`) 13 | } catch (e) { 14 | console.log('Failed to update yields', e) 15 | } 16 | } 17 | 18 | main() 19 | .then(() => { 20 | process.exit(0) 21 | }) 22 | .catch((e) => { 23 | console.error(e) 24 | process.exit(1) 25 | }) 26 | -------------------------------------------------------------------------------- /src/adapters/0vix/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as polygon from './polygon' 4 | 5 | const adapter: Adapter = { 6 | id: '0vix', 7 | polygon, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/1inch-network/common/stake.ts: -------------------------------------------------------------------------------- 1 | import type { Balance, BalancesContext, Contract } from '@lib/adapter' 2 | import { getBalancesOf } from '@lib/erc20' 3 | import type { Token } from '@lib/token' 4 | 5 | export async function getInchStakingBalances(ctx: BalancesContext, staker: Contract): Promise { 6 | return (await getBalancesOf(ctx, [staker] as Token[])).map((res) => ({ ...res, category: 'stake' })) 7 | } 8 | -------------------------------------------------------------------------------- /src/adapters/1inch-network/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | import * as ethereum from './ethereum' 5 | 6 | const adapter: Adapter = { 7 | id: '1inch-network', 8 | ethereum, 9 | bsc, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/9inch/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: '9inch', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/aave-v2/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as avalanche from './avalanche' 4 | import * as ethereum from './ethereum' 5 | import * as polygon from './polygon' 6 | 7 | const adapter: Adapter = { 8 | id: 'aave-v2', 9 | avalanche, 10 | ethereum, 11 | polygon, 12 | } 13 | 14 | export default adapter 15 | -------------------------------------------------------------------------------- /src/adapters/aave-v3/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as avalanche from './avalanche' 5 | import * as base from './base' 6 | import * as bsc from './bsc' 7 | import * as ethereum from './ethereum' 8 | import * as fantom from './fantom' 9 | import * as gnosis from './gnosis' 10 | import * as optimism from './optimism' 11 | import * as polygon from './polygon' 12 | 13 | const adapter: Adapter = { 14 | id: 'aave-v3', 15 | arbitrum, 16 | avalanche, 17 | fantom, 18 | polygon, 19 | ethereum, 20 | optimism, 21 | base, 22 | gnosis, 23 | bsc, 24 | } 25 | 26 | export default adapter 27 | -------------------------------------------------------------------------------- /src/adapters/abracadabra/index.ts: -------------------------------------------------------------------------------- 1 | import * as arbitrum from '@adapters/abracadabra/arbitrum' 2 | import * as avalanche from '@adapters/abracadabra/avalanche' 3 | import * as ethereum from '@adapters/abracadabra/ethereum' 4 | import * as fantom from '@adapters/abracadabra/fantom' 5 | import type { Adapter } from '@lib/adapter' 6 | 7 | const adapter: Adapter = { 8 | id: 'abracadabra', 9 | avalanche, 10 | ethereum, 11 | fantom, 12 | arbitrum, 13 | } 14 | 15 | // TODO: healthfactor 16 | // Abracadabra is restructuring its docs to be more readable for developpers 17 | // https://docs.abracadabra.money/ 18 | 19 | export default adapter 20 | -------------------------------------------------------------------------------- /src/adapters/across/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'across', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/aerodrome/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as base from './base' 4 | 5 | const adapter: Adapter = { 6 | id: 'aerodrome', 7 | base: base, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/affine-defi/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as polygon from './polygon' 4 | 5 | const adapter: Adapter = { 6 | id: 'affine-defi', 7 | polygon: polygon, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/agave/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as gnosis from './gnosis' 4 | 5 | const adapter: Adapter = { 6 | id: 'agave', 7 | gnosis, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/agility-lsd/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'agility-lsd', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/alchemix/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | import * as fantom from './fantom' 5 | 6 | const adapter: Adapter = { 7 | id: 'alchemix', 8 | ethereum, 9 | fantom, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/alien-base/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as base from './base' 4 | 5 | const adapter: Adapter = { 6 | id: 'alien-base', 7 | base, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/alongside/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'alongside', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/alpaca-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | import * as fantom from './fantom' 5 | 6 | const adapter: Adapter = { 7 | id: 'alpaca-finance', 8 | bsc, 9 | fantom, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/ambient/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'ambient', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/ambire-wallet/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'ambire-wallet', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/amphor/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'amphor', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/angle/arbitrum/index.ts: -------------------------------------------------------------------------------- 1 | import type { GetBalancesHandler } from '@lib/adapter' 2 | import { resolveBalances } from '@lib/balance' 3 | 4 | export const getContracts = async () => { 5 | return { 6 | contracts: {}, 7 | } 8 | } 9 | 10 | export const getBalances: GetBalancesHandler = async (ctx, contracts) => { 11 | const balances = await resolveBalances(ctx, contracts, {}) 12 | 13 | return { 14 | groups: [{ balances }], 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/adapters/angle/avalanche/index.ts: -------------------------------------------------------------------------------- 1 | import type { GetBalancesHandler } from '@lib/adapter' 2 | import { resolveBalances } from '@lib/balance' 3 | 4 | export const getContracts = async () => { 5 | return { 6 | contracts: {}, 7 | } 8 | } 9 | 10 | export const getBalances: GetBalancesHandler = async (ctx, contracts) => { 11 | const balances = await resolveBalances(ctx, contracts, {}) 12 | 13 | return { 14 | groups: [{ balances }], 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/adapters/angle/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | // import * as arbitrum from './arbitrum' 4 | // import * as avalanche from './avalanche' 5 | import * as ethereum from './ethereum' 6 | // import * as optimism from './optimism' 7 | // import * as polygon from './polygon' 8 | 9 | const adapter: Adapter = { 10 | id: 'angle', 11 | ethereum, 12 | // arbitrum, 13 | // optimism, 14 | // polygon, 15 | // avalanche, 16 | } 17 | 18 | // TODO: Altchains using API logic ? 19 | 20 | export default adapter 21 | -------------------------------------------------------------------------------- /src/adapters/angle/optimism/index.ts: -------------------------------------------------------------------------------- 1 | import type { GetBalancesHandler } from '@lib/adapter' 2 | import { resolveBalances } from '@lib/balance' 3 | 4 | export const getContracts = async () => { 5 | return { 6 | contracts: {}, 7 | } 8 | } 9 | 10 | export const getBalances: GetBalancesHandler = async (ctx, contracts) => { 11 | const balances = await resolveBalances(ctx, contracts, {}) 12 | 13 | return { 14 | groups: [{ balances }], 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/adapters/angle/polygon/index.ts: -------------------------------------------------------------------------------- 1 | import type { GetBalancesHandler } from '@lib/adapter' 2 | import { resolveBalances } from '@lib/balance' 3 | 4 | export const getContracts = async () => { 5 | return { 6 | contracts: {}, 7 | } 8 | } 9 | 10 | export const getBalances: GetBalancesHandler = async (ctx, contracts) => { 11 | const balances = await resolveBalances(ctx, contracts, {}) 12 | 13 | return { 14 | groups: [{ balances }], 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/adapters/ankr/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as avalanche from './avalanche' 4 | import * as bsc from './bsc' 5 | import * as ethereum from './ethereum' 6 | import * as fantom from './fantom' 7 | 8 | const adapter: Adapter = { 9 | id: 'ankr', 10 | ethereum, 11 | bsc, 12 | fantom, 13 | avalanche, 14 | } 15 | 16 | export default adapter 17 | -------------------------------------------------------------------------------- /src/adapters/annex/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | 5 | const adapter: Adapter = { 6 | id: 'annex', 7 | bsc, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/apeswap-amm/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | import * as ethereum from './ethereum' 5 | import * as polygon from './polygon' 6 | 7 | const adapter: Adapter = { 8 | id: 'apeswap-amm', 9 | bsc, 10 | ethereum, 11 | polygon, 12 | } 13 | 14 | export default adapter 15 | -------------------------------------------------------------------------------- /src/adapters/apeswap-lending/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | 5 | const adapter: Adapter = { 6 | id: 'apeswap-lending', 7 | bsc, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/api3/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'api3', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/apollox/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | 5 | const adapter: Adapter = { 6 | id: 'apollox', 7 | bsc, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/apwine/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'apwine', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/arbis-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'arbis-finance', 7 | arbitrum: arbitrum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/arbitrum-exchange/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'arbitrum-exchange', 7 | arbitrum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/arbswap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'arbswap', 7 | arbitrum: arbitrum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/arc-swap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'arc-swap', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/arpa-staking/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'arpa-staking', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/arrakis-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as ethereum from './ethereum' 5 | import * as optimism from './optimism' 6 | import * as polygon from './polygon' 7 | 8 | const adapter: Adapter = { 9 | id: 'arrakis-finance', 10 | ethereum, 11 | polygon, 12 | optimism, 13 | arbitrum, 14 | } 15 | 16 | export default adapter 17 | -------------------------------------------------------------------------------- /src/adapters/asymetrix-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'asymetrix-protocol', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/asymmetry-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'asymmetry-finance', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/atlantis-loans/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as avalanche from './avalanche' 4 | import * as bsc from './bsc' 5 | import * as polygon from './polygon' 6 | 7 | const adapter: Adapter = { 8 | id: 'atlantis-loans', 9 | bsc, 10 | polygon, 11 | avalanche, 12 | } 13 | 14 | // /!\ RugPull 15 | 16 | export default adapter 17 | -------------------------------------------------------------------------------- /src/adapters/atlas-usv/common/stake.ts: -------------------------------------------------------------------------------- 1 | import type { Balance, BalancesContext, Contract } from '@lib/adapter' 2 | import { call } from '@lib/call' 3 | import { abi } from '@lib/erc20' 4 | 5 | export async function getStakeBalance(ctx: BalancesContext, contract: Contract): Promise { 6 | const underlyings = contract.underlyings?.[0] as Contract 7 | 8 | const amount = await call({ ctx, target: contract.address, params: [ctx.address], abi: abi.balanceOf }) 9 | 10 | const balance: Balance = { 11 | ...contract, 12 | amount, 13 | underlyings: [{ ...underlyings, amount }], 14 | rewards: undefined, 15 | category: 'stake', 16 | } 17 | 18 | return balance 19 | } 20 | -------------------------------------------------------------------------------- /src/adapters/atlas-usv/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as avalanche from './avalanche' 4 | import * as bsc from './bsc' 5 | import * as ethereum from './ethereum' 6 | import * as polygon from './polygon' 7 | 8 | const adapter: Adapter = { 9 | id: 'atlas-usv', 10 | avalanche, 11 | bsc, 12 | ethereum, 13 | polygon, 14 | } 15 | 16 | export default adapter 17 | -------------------------------------------------------------------------------- /src/adapters/augury-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as polygon from './polygon' 4 | 5 | const adapter: Adapter = { 6 | id: 'augury-finance', 7 | polygon: polygon, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/aura/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as ethereum from './ethereum' 5 | import * as gnosis from './gnosis' 6 | import * as optimism from './optimism' 7 | import * as polygon from './polygon' 8 | 9 | const adapter: Adapter = { 10 | id: 'aura', 11 | ethereum, 12 | arbitrum, 13 | optimism, 14 | polygon, 15 | gnosis, 16 | } 17 | 18 | export default adapter 19 | -------------------------------------------------------------------------------- /src/adapters/avalaunch/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as avalanche from './avalanche' 4 | 5 | const adapter: Adapter = { 6 | id: 'avalaunch', 7 | avalanche: avalanche, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/azuro/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as gnosis from './gnosis' 5 | import * as polygon from './polygon' 6 | 7 | const adapter: Adapter = { 8 | id: 'azuro', 9 | polygon, 10 | gnosis, 11 | arbitrum, 12 | } 13 | 14 | export default adapter 15 | -------------------------------------------------------------------------------- /src/adapters/b.protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'b.protocol', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/babylon-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'babylon-finance', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/badger-dao/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as ethereum from './ethereum' 5 | import * as fantom from './fantom' 6 | import * as polygon from './polygon' 7 | 8 | const adapter: Adapter = { 9 | id: 'badger-dao', 10 | ethereum, 11 | fantom, 12 | arbitrum, 13 | polygon, 14 | } 15 | 16 | export default adapter 17 | -------------------------------------------------------------------------------- /src/adapters/balancer/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as avalanche from './avalanche' 5 | import * as ethereum from './ethereum' 6 | import * as gnosis from './gnosis' 7 | import * as polygon from './polygon' 8 | 9 | const adapter: Adapter = { 10 | id: 'balancer', 11 | ethereum, 12 | polygon, 13 | arbitrum, 14 | gnosis, 15 | avalanche, 16 | } 17 | 18 | export default adapter 19 | -------------------------------------------------------------------------------- /src/adapters/bancor-v3/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'bancor-v3', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/bank-ai/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'bank-ai', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/basedmarkets/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as base from './base' 4 | 5 | const adapter: Adapter = { 6 | id: 'basedmarkets', 7 | base: base, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/baseswap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as base from './base' 4 | 5 | const adapter: Adapter = { 6 | id: 'baseswap', 7 | base: base, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/bedrock-unieth/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'bedrock-unieth', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/beefy/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as base from './base' 5 | import * as bsc from './bsc' 6 | import * as ethereum from './ethereum' 7 | import * as fantom from './fantom' 8 | import * as gnosis from './gnosis' 9 | import * as optimism from './optimism' 10 | import * as polygon from './polygon' 11 | 12 | const adapter: Adapter = { 13 | id: 'beefy', 14 | ethereum, 15 | polygon, 16 | optimism, 17 | arbitrum, 18 | bsc, 19 | base, 20 | fantom, 21 | gnosis, 22 | } 23 | 24 | export default adapter 25 | -------------------------------------------------------------------------------- /src/adapters/beethoven-x/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as fantom from './fantom' 4 | import * as optimism from './optimism' 5 | 6 | const adapter: Adapter = { 7 | id: 'beethoven-x', 8 | optimism: optimism, 9 | fantom: fantom, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/bella-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'bella-protocol', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/belt-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | 5 | const adapter: Adapter = { 6 | id: 'belt-finance', 7 | bsc, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/benddao/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'benddao', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/benqi-lending/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as avalanche from './avalanche' 4 | 5 | const adapter: Adapter = { 6 | id: 'benqi-lending', 7 | avalanche, 8 | } 9 | 10 | // TODO: rewards on lending/borrowing 11 | // https://docs.benqi.fi/ 12 | 13 | export default adapter 14 | -------------------------------------------------------------------------------- /src/adapters/benqi-staked-avax/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as avalanche from './avalanche' 4 | 5 | const adapter: Adapter = { 6 | id: 'benqi-staked-avax', 7 | avalanche, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/bifrost-liquid-staking/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'bifrost-liquid-staking', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/big-data-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'big-data-protocol', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/binance-staked-eth/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | import * as ethereum from './ethereum' 5 | 6 | const adapter: Adapter = { 7 | id: 'binance-staked-eth', 8 | bsc, 9 | ethereum, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/binaryx-platform/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as polygon from './polygon' 4 | 5 | const adapter: Adapter = { 6 | id: 'binaryx-platform', 7 | polygon: polygon, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/biswap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | 5 | const adapter: Adapter = { 6 | id: 'biswap', 7 | bsc, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/blackrockfund/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'blackrockfund', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/blast/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'blast', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/bloom/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'bloom', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/blueberry-lend/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'blueberry-lend', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/blueprint/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'blueprint', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/blur/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'blur', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/bob-fusion/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'bob-fusion', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/cap-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'cap-finance', 7 | arbitrum, 8 | } 9 | 10 | // TODO: getPerpetualsBalances 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/cat-in-a-box/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'cat-in-a-box', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/cega/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'cega', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/centrifuge/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'centrifuge', 7 | ethereum: ethereum, 8 | } 9 | 10 | // TODO : Find the contract that users interact with and replace DAI with it to access balance function 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/chainlink/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'chainlink', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/channels-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as bsc from './bsc' 5 | 6 | const adapter: Adapter = { 7 | id: 'channels-finance', 8 | bsc: bsc, 9 | arbitrum: arbitrum, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/charm-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'charm-finance', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/citadao/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'citadao', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/citadelswap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as base from './base' 4 | 5 | const adapter: Adapter = { 6 | id: 'citadelswap', 7 | base: base, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/clearpool/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | import * as optimism from './optimism' 5 | import * as polygon from './polygon' 6 | 7 | const adapter: Adapter = { 8 | id: 'clearpool', 9 | ethereum: ethereum, 10 | optimism: optimism, 11 | polygon: polygon, 12 | } 13 | 14 | export default adapter 15 | -------------------------------------------------------------------------------- /src/adapters/clever/ethereum/farm.ts: -------------------------------------------------------------------------------- 1 | import type { Balance, BalancesContext, Contract } from '@lib/adapter' 2 | import { getCurveUnderlyingsBalances } from '@lib/curve/helper' 3 | import { getBalancesOf } from '@lib/erc20' 4 | 5 | export async function getCleFarmBalances(ctx: BalancesContext, farmers: Contract[]): Promise { 6 | const balances = await getBalancesOf(ctx, farmers, { getAddress: (c) => c.address }) 7 | return (await getCurveUnderlyingsBalances(ctx, balances)).map((res: any) => ({ ...res, category: 'farm' })) 8 | } 9 | -------------------------------------------------------------------------------- /src/adapters/clever/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'clever', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/coinbase-wrapped-staked-eth/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as base from './base' 5 | import * as ethereum from './ethereum' 6 | import * as optimism from './optimism' 7 | import * as polygon from './polygon' 8 | 9 | const adapter: Adapter = { 10 | id: 'coinbase-wrapped-staked-eth', 11 | arbitrum, 12 | base, 13 | ethereum, 14 | optimism, 15 | polygon, 16 | } 17 | 18 | export default adapter 19 | -------------------------------------------------------------------------------- /src/adapters/coinwind/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | 5 | const adapter: Adapter = { 6 | id: 'coinwind', 7 | bsc, 8 | // TODO: Find masterChef contract to export common farm logic on ethereum chain 9 | } 10 | 11 | export default adapter 12 | -------------------------------------------------------------------------------- /src/adapters/colony/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as avalanche from './avalanche' 4 | 5 | const adapter: Adapter = { 6 | id: 'colony', 7 | avalanche, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/compound-v2/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'compound-v2', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/compound-v3/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as base from './base' 5 | import * as ethereum from './ethereum' 6 | import * as polygon from './polygon' 7 | 8 | const adapter: Adapter = { 9 | id: 'compound-v3', 10 | ethereum, 11 | polygon, 12 | arbitrum, 13 | base, 14 | } 15 | 16 | export default adapter 17 | -------------------------------------------------------------------------------- /src/adapters/concentrator/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'concentrator', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/conic-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'conic-finance', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/convex-finance/ethereum/cvx.ts: -------------------------------------------------------------------------------- 1 | import type { Contract } from '@lib/adapter' 2 | 3 | export const cvxCRVStaker: Contract = { 4 | chain: 'ethereum', 5 | address: '0x3fe65692bfcd0e6cf84cb1e7d24108e434a7587e', 6 | token: '0x62B9c7356A2Dc64a1969e19C23e4f579F9810Aa7', 7 | rewarder: '0x7091dbb7fcbA54569eF1387Ac89Eb2a5C9F6d2EA', 8 | } 9 | 10 | export const stkCvxCrvStaker: Contract = { 11 | chain: 'ethereum', 12 | address: '0xaa0c3f5f7dfd688c6e646f66cd2a6b66acdbe434', 13 | underlyings: ['0x62b9c7356a2dc64a1969e19c23e4f579f9810aa7'], 14 | } 15 | -------------------------------------------------------------------------------- /src/adapters/convex-finance/ethereum/fx.ts: -------------------------------------------------------------------------------- 1 | // NOTE: same logic as Frax 2 | import type { Contract } from '@lib/adapter' 3 | 4 | export const cvxFxnStaking: Contract = { 5 | name: 'cvxFxnStaking', 6 | chain: 'ethereum', 7 | address: '0xec60cd4a5866fb3b0dd317a46d3b474a24e06bef', 8 | token: '0x365accfca291e7d3914637abf1f7635db165bb09', // FXN 9 | underlyings: ['0x183395dbd0b5e93323a7286d1973150697fffcb3'], // cvxFXN 10 | category: 'stake', 11 | } 12 | -------------------------------------------------------------------------------- /src/adapters/convex-finance/ethereum/prisma.ts: -------------------------------------------------------------------------------- 1 | // NOTE: same logic as Frax 2 | import type { Contract } from '@lib/adapter' 3 | 4 | export const cvxPrismaStaking: Contract = { 5 | name: 'cvxPrismaStaking', 6 | chain: 'ethereum', 7 | address: '0x0c73f1cfd5c9dfc150c8707aa47acbd14f0be108', 8 | token: '0xda47862a83dac0c112ba89c6abc2159b95afd71c', // PRISMA 9 | underlyings: ['0x34635280737b5bfe6c7dc2fc3065d60d66e78185'], // cvxPRISMA 10 | category: 'stake', 11 | } 12 | -------------------------------------------------------------------------------- /src/adapters/convex-finance/ethereum/utils.ts: -------------------------------------------------------------------------------- 1 | import { parseEther } from 'viem' 2 | 3 | export const getCvxCliffRatio = (cvxTotalSupply: bigint, crvAmount: bigint) => { 4 | const CLIFFSIZE = 10n ** 5n * parseEther('1.0') 5 | const MAXSUPPLY = 10n ** 8n * parseEther('1.0') 6 | const CLIFFCOUNT = 10n ** 3n 7 | 8 | const currentCliff = cvxTotalSupply / CLIFFSIZE 9 | 10 | if (currentCliff < MAXSUPPLY) { 11 | const remainingCliff = CLIFFCOUNT - currentCliff 12 | 13 | return (crvAmount * remainingCliff) / CLIFFCOUNT 14 | } 15 | 16 | return 0n 17 | } 18 | -------------------------------------------------------------------------------- /src/adapters/convex-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as ethereum from './ethereum' 5 | import * as polygon from './polygon' 6 | 7 | const adapter: Adapter = { 8 | id: 'convex-finance', 9 | ethereum, 10 | polygon, 11 | arbitrum, 12 | } 13 | 14 | export default adapter 15 | -------------------------------------------------------------------------------- /src/adapters/copra-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'copra-finance', 7 | arbitrum: arbitrum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/cow-swap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | import * as gnosis from './gnosis' 5 | 6 | const adapter: Adapter = { 7 | id: 'cow-swap', 8 | ethereum: ethereum, 9 | gnosis: gnosis, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/cozy-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'cozy-finance', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/cream-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as bsc from './bsc' 5 | import * as ethereum from './ethereum' 6 | import * as polygon from './polygon' 7 | 8 | const adapter: Adapter = { 9 | id: 'cream-finance', 10 | ethereum: ethereum, 11 | bsc: bsc, 12 | polygon: polygon, 13 | arbitrum: arbitrum, 14 | } 15 | 16 | export default adapter 17 | -------------------------------------------------------------------------------- /src/adapters/creth2/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'creth2', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/crvusd/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'crvusd', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/cvault-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'cvault-finance', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/cyclone/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | import * as ethereum from './ethereum' 5 | import * as polygon from './polygon' 6 | 7 | const adapter: Adapter = { 8 | id: 'cyclone', 9 | ethereum: ethereum, 10 | bsc: bsc, 11 | polygon: polygon, 12 | } 13 | 14 | export default adapter 15 | -------------------------------------------------------------------------------- /src/adapters/cygnus-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as base from './base' 4 | 5 | const adapter: Adapter = { 6 | id: 'cygnus-finance', 7 | base: base, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/davos-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | import * as polygon from './polygon' 5 | import * as arbitrum from './arbitrum' 6 | import * as optimism from './optimism' 7 | 8 | const adapter: Adapter = { 9 | id: 'davos-protocol', 10 | ethereum: ethereum, 11 | polygon: polygon, 12 | arbitrum: arbitrum, 13 | optimism: optimism, 14 | } 15 | 16 | export default adapter 17 | -------------------------------------------------------------------------------- /src/adapters/defi-swap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'defi-swap', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/definitive.fi/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as avalanche from './avalanche' 5 | import * as base from './base' 6 | import * as ethereum from './ethereum' 7 | import * as optimism from './optimism' 8 | import * as polygon from './polygon' 9 | 10 | const adapter: Adapter = { 11 | id: 'definitive.fi', 12 | optimism: optimism, 13 | base: base, 14 | arbitrum: arbitrum, 15 | polygon: polygon, 16 | ethereum: ethereum, 17 | avalanche: avalanche, 18 | } 19 | 20 | export default adapter 21 | -------------------------------------------------------------------------------- /src/adapters/definix/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | 5 | const adapter: Adapter = { 6 | id: 'definix', 7 | bsc, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/defiplaza/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'defiplaza', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/deltaprime/avalanche/balance.ts: -------------------------------------------------------------------------------- 1 | import type { Balance, BalancesContext, Contract } from '@lib/adapter' 2 | import { getSingleStakeBalances } from '@lib/stake' 3 | 4 | export async function getDeltaFarmBalances(ctx: BalancesContext, pools: Contract[]): Promise { 5 | return (await getSingleStakeBalances(ctx, pools)).map((balance) => ({ 6 | ...balance, 7 | decimals: balance.underlyings?.[0].decimals, 8 | })) 9 | } 10 | -------------------------------------------------------------------------------- /src/adapters/deltaprime/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as avalanche from './avalanche' 4 | 5 | const adapter: Adapter = { 6 | id: 'deltaprime', 7 | avalanche, 8 | } 9 | 10 | // TODO: Leveraged farming 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/derivadex/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'derivadex', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/dhedge/common/pool.ts: -------------------------------------------------------------------------------- 1 | import type { BaseContext, Contract } from '@lib/adapter' 2 | import { call } from '@lib/call' 3 | 4 | const abi = { 5 | getDeployedFunds: { 6 | inputs: [], 7 | name: 'getDeployedFunds', 8 | outputs: [{ internalType: 'address[]', name: '', type: 'address[]' }], 9 | stateMutability: 'view', 10 | type: 'function', 11 | }, 12 | } as const 13 | 14 | export async function getdHedgePools(ctx: BaseContext, factory: Contract, token: Contract): Promise { 15 | const poolAddresses = await call({ ctx, target: factory.address, abi: abi.getDeployedFunds }) 16 | return poolAddresses.map((address) => ({ chain: ctx.chain, address, underlyings: [token] })) 17 | } 18 | -------------------------------------------------------------------------------- /src/adapters/dhedge/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | import * as optimism from './optimism' 5 | import * as polygon from './polygon' 6 | 7 | const adapter: Adapter = { 8 | id: 'dhedge', 9 | optimism: optimism, 10 | polygon: polygon, 11 | ethereum: ethereum, 12 | } 13 | 14 | export default adapter 15 | -------------------------------------------------------------------------------- /src/adapters/dinero-pirexeth/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'dinero-pirexeth', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/dyad/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'dyad', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/dydx/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'dydx', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/eigenlayer/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'eigenlayer', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/elephant-money/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | 5 | const adapter: Adapter = { 6 | id: 'elephant-money', 7 | bsc, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/ellipsis-finance/bsc/contract.ts: -------------------------------------------------------------------------------- 1 | import type { BaseContext, Contract } from '@lib/adapter' 2 | 3 | const API_URL = 'https://api.ellipsis.finance/api/getPoolsCrypto' 4 | 5 | export async function getEllipsisContracts(ctx: BaseContext): Promise { 6 | const response = await fetch(API_URL) 7 | const res: any = await response.json() 8 | 9 | return res.data.allPools.map((d: any) => ({ 10 | chain: ctx.chain, 11 | name: d.name, 12 | address: d.lpToken.address, 13 | lpToken: d.lpToken.address, 14 | symbol: d.lpToken.symbol, 15 | decimals: d.lpToken.decimals, 16 | pool: d.address, 17 | pid: d.poolIndex, 18 | tokens: d.tokens, 19 | underlyings: d.underlying, 20 | })) 21 | } 22 | -------------------------------------------------------------------------------- /src/adapters/ellipsis-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | 5 | const adapter: Adapter = { 6 | id: 'ellipsis-finance', 7 | bsc, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/equalizer-exchange/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as fantom from './fantom' 4 | 5 | const adapter: Adapter = { 6 | id: 'equalizer-exchange', 7 | fantom, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/equilibria/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as bsc from './bsc' 5 | import * as ethereum from './ethereum' 6 | import * as optimism from './optimism' 7 | 8 | const adapter: Adapter = { 9 | id: 'equilibria', 10 | ethereum: ethereum, 11 | arbitrum: arbitrum, 12 | bsc: bsc, 13 | optimism: optimism, 14 | } 15 | 16 | export default adapter 17 | -------------------------------------------------------------------------------- /src/adapters/ethena/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'ethena', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/ether.fi/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'ether.fi', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/ethos-reserve/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as optimism from './optimism' 4 | 5 | const adapter: Adapter = { 6 | id: 'ethos-reserve', 7 | optimism, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/euclid-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'euclid-finance', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/euler/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'euler', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/everrise/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as avalanche from './avalanche' 4 | import * as bsc from './bsc' 5 | import * as ethereum from './ethereum' 6 | import * as fantom from './fantom' 7 | import * as polygon from './polygon' 8 | 9 | const adapter: Adapter = { 10 | id: 'everrise', 11 | ethereum, 12 | bsc, 13 | avalanche, 14 | fantom, 15 | polygon, 16 | } 17 | 18 | export default adapter 19 | -------------------------------------------------------------------------------- /src/adapters/exactly/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | import * as optimism from './optimism' 5 | 6 | const adapter: Adapter = { 7 | id: 'exactly', 8 | optimism, 9 | ethereum, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/extra-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as base from './base' 4 | import * as optimism from './optimism' 5 | 6 | const adapter: Adapter = { 7 | id: 'extra-finance', 8 | optimism, 9 | base, 10 | } 11 | 12 | // TODO: Find how to get Extra emission + Leveraged Farming when contracts have been verified on optimismScan 13 | 14 | export default adapter 15 | -------------------------------------------------------------------------------- /src/adapters/fantohm/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as fantom from './fantom' 4 | 5 | const adapter: Adapter = { 6 | id: 'fantohm', 7 | fantom, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/firebot/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as polygon from './polygon' 4 | 5 | const adapter: Adapter = { 6 | id: 'firebot', 7 | polygon: polygon, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/flamincome/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'flamincome', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/floor-dao/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'floor-dao', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/florence-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'florence-finance', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/fluid/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'fluid', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/flux-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'flux-finance', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/fortress-loans/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | 5 | const adapter: Adapter = { 6 | id: 'fortress-loans', 7 | bsc, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/fractional-art/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'fractional-art', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/frax-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as avalanche from './avalanche' 5 | import * as bsc from './bsc' 6 | import * as ethereum from './ethereum' 7 | import * as fantom from './fantom' 8 | import * as optimism from './optimism' 9 | import * as polygon from './polygon' 10 | 11 | const adapter: Adapter = { 12 | id: 'frax-finance', 13 | ethereum, 14 | arbitrum, 15 | avalanche, 16 | bsc, 17 | fantom, 18 | optimism, 19 | polygon, 20 | } 21 | 22 | export default adapter 23 | -------------------------------------------------------------------------------- /src/adapters/frax-finance/providers/aave.ts: -------------------------------------------------------------------------------- 1 | import type { BalancesContext, BaseContext, Contract } from '@lib/adapter' 2 | 3 | import type { ProviderBalancesParams } from './interface' 4 | 5 | export const aaveProvider = async (_ctx: BaseContext, pools: Contract[]): Promise => { 6 | for (const pool of pools) { 7 | pool.underlyings = ['0x853d955aCEf822Db058eb8505911ED77F175b99e'] // FRAX 8 | } 9 | 10 | return pools 11 | } 12 | 13 | export const aaveBalancesProvider = async ( 14 | _ctx: BalancesContext, 15 | pools: ProviderBalancesParams[], 16 | ): Promise => { 17 | return pools 18 | } 19 | -------------------------------------------------------------------------------- /src/adapters/frax-finance/providers/interface.ts: -------------------------------------------------------------------------------- 1 | import type { Balance } from '@lib/adapter' 2 | 3 | export type ProviderBalancesParams = Balance & { 4 | stakeAddress?: `0x${string}` 5 | amount: bigint 6 | totalSupply: bigint 7 | lpToken: `0x{string}` 8 | provider: string 9 | curvePool?: `0x${string}` 10 | uniPoolAddress?: `0x${string}` 11 | } 12 | -------------------------------------------------------------------------------- /src/adapters/fraxlend/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'fraxlend', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/ft33-dao/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as base from './base' 4 | 5 | const adapter: Adapter = { 6 | id: 'ft33-dao', 7 | base: base, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/fx-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'fx-protocol', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/fyde-protocol/ethereum/balance.ts: -------------------------------------------------------------------------------- 1 | import type { Balance, BalancesContext, Contract } from '@lib/adapter' 2 | import { call } from '@lib/call' 3 | import { abi as erc20Abi } from '@lib/erc20' 4 | 5 | export async function getFydeFarmBalance(ctx: BalancesContext, farmer: Contract): Promise { 6 | const balance = await call({ ctx, target: farmer.address, params: [ctx.address], abi: erc20Abi.balanceOf }) 7 | return { ...farmer, amount: balance, underlyings: undefined, rewards: undefined, category: 'farm' } 8 | } 9 | -------------------------------------------------------------------------------- /src/adapters/fyde-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'fyde-protocol', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/gains-network/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as polygon from './polygon' 5 | 6 | const adapter: Adapter = { 7 | id: 'gains-network', 8 | arbitrum, 9 | polygon, 10 | } 11 | 12 | // TODO: Perpertuals on both polygon + arb + find logic on stake rewards 13 | 14 | export default adapter 15 | -------------------------------------------------------------------------------- /src/adapters/gambit-trade/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'gambit-trade', 7 | arbitrum: arbitrum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/gamma/common/contract.ts: -------------------------------------------------------------------------------- 1 | import type { BaseContext, Contract } from '@lib/adapter' 2 | 3 | export async function getPoolContractsFromAPI(ctx: BaseContext, API_URLs: string[]): Promise { 4 | const contracts: Contract[] = [] 5 | 6 | for (const API_URL of API_URLs) { 7 | const response = await fetch(API_URL) 8 | const datas = await response.json() 9 | 10 | contracts.push( 11 | ...Object.entries(datas).map(([address, data]: any) => ({ 12 | chain: ctx.chain, 13 | address, 14 | pool: data.poolAddress, 15 | underlyings: [data.token0, data.token1], 16 | })), 17 | ) 18 | } 19 | 20 | return contracts 21 | } 22 | -------------------------------------------------------------------------------- /src/adapters/gamma/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as avalanche from './avalanche' 5 | import * as base from './base' 6 | import * as bsc from './bsc' 7 | import * as celo from './celo' 8 | import * as ethereum from './ethereum' 9 | import * as moonbeam from './moonbeam' 10 | import * as optimism from './optimism' 11 | import * as polygon from './polygon' 12 | 13 | const adapter: Adapter = { 14 | id: 'gamma', 15 | polygon, 16 | optimism, 17 | arbitrum, 18 | ethereum, 19 | bsc, 20 | celo, 21 | base, 22 | avalanche, 23 | moonbeam, 24 | } 25 | 26 | // TODO: Find logic behind rewards 27 | // https://docs.gamma.xyz/gamma/learn/scans 28 | 29 | export default adapter 30 | -------------------------------------------------------------------------------- /src/adapters/gammaswap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'gammaswap', 7 | arbitrum: arbitrum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/gearbox/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'gearbox', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/geist/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as fantom from './fantom' 4 | 5 | const adapter: Adapter = { 6 | id: 'geist-finance', 7 | fantom, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/genesis-lrt/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'genesis-lrt', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/gensokishi/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as polygon from './polygon' 4 | 5 | const adapter: Adapter = { 6 | id: 'gensokishi', 7 | polygon, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/get-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | import * as polygon from './polygon' 5 | 6 | const adapter: Adapter = { 7 | id: 'get-protocol', 8 | ethereum: ethereum, 9 | polygon: polygon, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/gitcoin/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'gitcoin', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/giveth/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as gnosis from './gnosis' 4 | 5 | const adapter: Adapter = { 6 | id: 'giveth', 7 | gnosis: gnosis, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/glori-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'glori-finance', 7 | arbitrum: arbitrum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/gmx-v1/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as avalanche from './avalanche' 5 | 6 | const adapter: Adapter = { 7 | id: 'gmx-v1', 8 | arbitrum, 9 | avalanche, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/gmx-v2/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as avalanche from './avalanche' 5 | 6 | const adapter: Adapter = { 7 | id: 'gmx-v2', 8 | avalanche: avalanche, 9 | arbitrum: arbitrum, 10 | } 11 | 12 | // TODO: Perps logic 13 | 14 | export default adapter 15 | -------------------------------------------------------------------------------- /src/adapters/gnosis-protocol-v1/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'gnosis-protocol-v1', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/gogopool/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as avalanche from './avalanche' 4 | 5 | const adapter: Adapter = { 6 | id: 'gogopool', 7 | avalanche: avalanche, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/goldfinch/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'goldfinch', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/goodentry/arbitrum/pool.ts: -------------------------------------------------------------------------------- 1 | import type { BaseContext, Contract } from '@lib/adapter' 2 | import { getPairsDetails } from '@lib/uniswap/v2/factory' 3 | 4 | export async function getGoodEntryContracts(ctx: BaseContext, poolsAddresses: `0x${string}`[]): Promise { 5 | const pools = poolsAddresses.map((address) => ({ chain: ctx.chain, address })) 6 | 7 | return getPairsDetails(ctx, pools) 8 | } 9 | -------------------------------------------------------------------------------- /src/adapters/goodentry/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'goodentry', 7 | arbitrum: arbitrum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/granary-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as avalanche from './avalanche' 5 | import * as base from './base' 6 | import * as bsc from './bsc' 7 | import * as ethereum from './ethereum' 8 | import * as fantom from './fantom' 9 | import * as optimism from './optimism' 10 | 11 | const adapter: Adapter = { 12 | id: 'granary-finance', 13 | avalanche, 14 | ethereum, 15 | fantom, 16 | optimism, 17 | arbitrum, 18 | bsc, 19 | base, 20 | } 21 | 22 | export default adapter 23 | -------------------------------------------------------------------------------- /src/adapters/gravita-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as ethereum from './ethereum' 5 | 6 | const adapter: Adapter = { 7 | id: 'gravita-protocol', 8 | ethereum, 9 | arbitrum, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/gro/common/providers/groProvider.ts: -------------------------------------------------------------------------------- 1 | import type { Balance, BalancesContext, BaseContext, Contract } from '@lib/adapter' 2 | 3 | export async function getGroProvider(_ctx: BaseContext, contracts: Contract[]): Promise { 4 | for (const contract of contracts) { 5 | contract.underlyings = [contract.address] 6 | } 7 | 8 | return contracts 9 | } 10 | 11 | export async function getGroProviderBalances(_ctx: BalancesContext, contracts: Balance[]): Promise { 12 | return contracts 13 | } 14 | -------------------------------------------------------------------------------- /src/adapters/gro/common/providers/sushiProvider.ts: -------------------------------------------------------------------------------- 1 | import type { Balance, BalancesContext, BaseContext, Contract } from '@lib/adapter' 2 | import { getPairsDetails } from '@lib/uniswap/v2/factory' 3 | import { getUnderlyingBalances } from '@lib/uniswap/v2/pair' 4 | 5 | export async function getSushiProvider(ctx: BaseContext, contracts: Contract[]): Promise { 6 | return getPairsDetails(ctx, contracts) 7 | } 8 | 9 | export async function getSushiProviderBalances(ctx: BalancesContext, contracts: Balance[]): Promise { 10 | return getUnderlyingBalances(ctx, contracts) 11 | } 12 | -------------------------------------------------------------------------------- /src/adapters/gro/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as avalanche from './avalanche' 4 | import * as ethereum from './ethereum' 5 | 6 | const adapter: Adapter = { 7 | id: 'gro', 8 | ethereum, 9 | avalanche, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/gyro/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | 5 | const adapter: Adapter = { 6 | id: 'gyro', 7 | bsc, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/hector-network/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as fantom from './fantom' 4 | 5 | const adapter: Adapter = { 6 | id: 'hector-network', 7 | fantom, 8 | } 9 | 10 | // TODO : Locked 11 | // https://docs.hector.network/hector-network/introduction 12 | 13 | export default adapter 14 | -------------------------------------------------------------------------------- /src/adapters/hex/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'hex', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/hmx/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'hmx', 7 | arbitrum: arbitrum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/homora-v2/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as avalanche from './avalanche' 4 | import * as ethereum from './ethereum' 5 | import * as fantom from './fantom' 6 | import * as optimism from './optimism' 7 | 8 | const adapter: Adapter = { 9 | id: 'homora-v2', 10 | ethereum, 11 | avalanche, 12 | optimism, 13 | fantom, 14 | } 15 | 16 | export default adapter 17 | -------------------------------------------------------------------------------- /src/adapters/honeyswap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as gnosis from './gnosis' 4 | import * as polygon from './polygon' 5 | 6 | const adapter: Adapter = { 7 | id: 'honeyswap', 8 | gnosis, 9 | polygon, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/hop-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as base from './base' 5 | import * as gnosis from './gnosis' 6 | import * as optimism from './optimism' 7 | import * as polygon from './polygon' 8 | 9 | const adapter: Adapter = { 10 | id: 'hop-protocol', 11 | optimism: optimism, 12 | arbitrum: arbitrum, 13 | polygon: polygon, 14 | gnosis: gnosis, 15 | base: base, 16 | } 17 | 18 | export default adapter 19 | -------------------------------------------------------------------------------- /src/adapters/hopr/gnosis/contract.ts: -------------------------------------------------------------------------------- 1 | import type { BaseContext, Contract } from '@lib/adapter' 2 | 3 | const HOPR: Contract = { 4 | chain: 'gnosis', 5 | address: '0xd057604a14982fe8d88c5fc25aac3267ea142a08', 6 | decimals: 18, 7 | symbol: 'HOPR', 8 | } 9 | 10 | export async function getHoprContracts(ctx: BaseContext, stakersAddresses: `0x${string}`[]): Promise { 11 | return stakersAddresses.map((address) => ({ chain: ctx.chain, address, token: HOPR.address, rewards: [HOPR] })) 12 | } 13 | -------------------------------------------------------------------------------- /src/adapters/hopr/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as gnosis from './gnosis' 4 | 5 | const adapter: Adapter = { 6 | id: 'hopr', 7 | gnosis: gnosis, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/horiza/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'horiza', 7 | arbitrum: arbitrum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/horizon-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | 5 | const adapter: Adapter = { 6 | id: 'horizon-protocol', 7 | bsc, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/houdini-swap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'houdini-swap', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/hundred-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as ethereum from './ethereum' 5 | import * as fantom from './fantom' 6 | import * as optimism from './optimism' 7 | import * as polygon from './polygon' 8 | 9 | const adapter: Adapter = { 10 | id: 'hundred-finance', 11 | arbitrum, 12 | ethereum, 13 | fantom, 14 | optimism, 15 | polygon, 16 | } 17 | 18 | // TODO: Stake(+/- gauge) 19 | // https://docs.hundred.finance/ 20 | 21 | export default adapter 22 | -------------------------------------------------------------------------------- /src/adapters/idle/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | import * as optimism from './optimism' 5 | 6 | const adapter: Adapter = { 7 | id: 'idle', 8 | ethereum: ethereum, 9 | optimism: optimism, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/illuvium/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'illuvium', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/infusion/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as base from './base' 4 | 5 | const adapter: Adapter = { 6 | id: 'infusion', 7 | base: base, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/integral/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as ethereum from './ethereum' 5 | 6 | const adapter: Adapter = { 7 | id: 'integral', 8 | ethereum: ethereum, 9 | arbitrum: arbitrum, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/interport-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'interport-finance', 7 | 8 | ethereum: ethereum, 9 | } 10 | 11 | export default adapter 12 | -------------------------------------------------------------------------------- /src/adapters/inverse-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'inverse-finance', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/ipor/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'ipor', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/iron-bank/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as avalanche from './avalanche' 4 | import * as ethereum from './ethereum' 5 | import * as fantom from './fantom' 6 | import * as optimism from './optimism' 7 | 8 | const adapter: Adapter = { 9 | id: 'iron-bank', 10 | avalanche, 11 | ethereum, 12 | fantom, 13 | optimism, 14 | } 15 | 16 | export default adapter 17 | -------------------------------------------------------------------------------- /src/adapters/izumi-finance/index.ts: -------------------------------------------------------------------------------- 1 | // https://developer.izumi.finance/iZiSwap/deployed_contracts/mainnet.html 2 | 3 | import type { Adapter } from '@lib/adapter' 4 | 5 | import * as arbitrum from './arbitrum' 6 | // import * as bsc from './bsc' 7 | import * as ethereum from './ethereum' 8 | import * as polygon from './polygon' 9 | 10 | const adapter: Adapter = { 11 | id: 'izumi-finance', 12 | // bsc, 13 | ethereum, 14 | polygon, 15 | arbitrum, 16 | } 17 | 18 | export default adapter 19 | -------------------------------------------------------------------------------- /src/adapters/jaypeggers/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'jaypeggers', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/jones-dao/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as ethereum from './ethereum' 5 | 6 | const adapter: Adapter = { 7 | id: 'jones-dao', 8 | arbitrum: arbitrum, 9 | ethereum: ethereum, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/karak/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | import * as arbitrum from './arbitrum' 5 | 6 | const adapter: Adapter = { 7 | id: 'karak', 8 | ethereum: ethereum, 9 | arbitrum: arbitrum, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/keep3r-network/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'keep3r-network', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/kelp-dao/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'kelp-dao', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/keom-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as polygon from './polygon' 4 | 5 | const adapter: Adapter = { 6 | id: 'keom-protocol', 7 | polygon: polygon, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/kine-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | import * as ethereum from './ethereum' 5 | import * as polygon from './polygon' 6 | 7 | const adapter: Adapter = { 8 | id: 'kine-finance', 9 | ethereum: ethereum, 10 | bsc: bsc, 11 | polygon: polygon, 12 | } 13 | 14 | export default adapter 15 | -------------------------------------------------------------------------------- /src/adapters/kinza-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | import * as opbnb from './opbnb' 5 | 6 | const adapter: Adapter = { 7 | id: 'kinza-finance', 8 | bsc: bsc, 9 | opbnb: opbnb, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/klima-dao/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as polygon from './polygon' 4 | 5 | const adapter: Adapter = { 6 | id: 'klima-dao', 7 | polygon, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/kokonut-swap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as base from './base' 4 | 5 | const adapter: Adapter = { 6 | id: 'kokonut-swap', 7 | base: base, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/kommunitas/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as polygon from './polygon' 5 | 6 | const adapter: Adapter = { 7 | id: 'kommunitas', 8 | polygon: polygon, 9 | arbitrum: arbitrum, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/kwenta/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as optimism from './optimism' 4 | 5 | const adapter: Adapter = { 6 | id: 'kwenta', 7 | optimism: optimism, 8 | } 9 | 10 | // TODO: Find a way to get perpetuals & futures 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/kyberswap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as avalanche from './avalanche' 5 | import * as base from './base' 6 | import * as bsc from './bsc' 7 | import * as ethereum from './ethereum' 8 | import * as fantom from './fantom' 9 | import * as linea from './linea' 10 | import * as optimism from './optimism' 11 | import * as polygon from './polygon' 12 | 13 | const adapter: Adapter = { 14 | id: 'kyberswap', 15 | arbitrum: arbitrum, 16 | optimism: optimism, 17 | ethereum: ethereum, 18 | linea: linea, 19 | avalanche: avalanche, 20 | fantom: fantom, 21 | bsc: bsc, 22 | polygon: polygon, 23 | base: base, 24 | } 25 | 26 | export default adapter 27 | -------------------------------------------------------------------------------- /src/adapters/layerbank/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as linea from './linea' 4 | 5 | const adapter: Adapter = { 6 | id: 'layerbank', 7 | linea: linea, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/leonicornswap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | 5 | const adapter: Adapter = { 6 | id: 'leonicornswap', 7 | bsc, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/levinswap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as gnosis from './gnosis' 4 | 5 | const adapter: Adapter = { 6 | id: 'levinswap', 7 | gnosis: gnosis, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/lido/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | import * as moonbeam from './moonbeam' 5 | 6 | const adapter: Adapter = { 7 | id: 'lido', 8 | ethereum, 9 | moonbeam, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/life-dao/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as avalanche from './avalanche' 4 | 5 | const adapter: Adapter = { 6 | id: 'life-dao', 7 | avalanche, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/linear-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | 5 | const adapter: Adapter = { 6 | id: 'linear-finance', 7 | bsc, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/liqee/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | import * as ethereum from './ethereum' 5 | 6 | const adapter: Adapter = { 7 | id: 'liqee', 8 | bsc, 9 | ethereum, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/liquid-collective/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'liquid-collective', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/liquid-driver/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as fantom from './fantom' 4 | import * as polygon from './polygon' 5 | 6 | const adapter: Adapter = { 7 | id: 'liquid-driver', 8 | fantom: fantom, 9 | polygon, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/liquid-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'liquid-finance', 7 | arbitrum: arbitrum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/liquity/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'liquity', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/llama-airforce/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'llama-airforce', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/llamapay/arbitrum/index.ts: -------------------------------------------------------------------------------- 1 | import type { AdapterConfig, GetBalancesHandler } from '@lib/adapter' 2 | 3 | import { getPayeeStreams } from '../common/streams' 4 | 5 | // TODO: an account can be the recipient of a stream without interacting with any smart contract 6 | export const getContracts = async () => { 7 | return { 8 | contracts: {}, 9 | } 10 | } 11 | 12 | export const getBalances: GetBalancesHandler = async (ctx) => { 13 | const streams = await getPayeeStreams(ctx) 14 | 15 | return { 16 | groups: [{ balances: streams }], 17 | } 18 | } 19 | 20 | export const config: AdapterConfig = { 21 | startDate: 1651276800, 22 | } 23 | -------------------------------------------------------------------------------- /src/adapters/llamapay/avalanche/index.ts: -------------------------------------------------------------------------------- 1 | import type { AdapterConfig, GetBalancesHandler } from '@lib/adapter' 2 | 3 | import { getPayeeStreams } from '../common/streams' 4 | 5 | // TODO: an account can be the recipient of a stream without interacting with any smart contract 6 | export const getContracts = async () => { 7 | return { 8 | contracts: {}, 9 | } 10 | } 11 | 12 | export const getBalances: GetBalancesHandler = async (ctx) => { 13 | const streams = await getPayeeStreams(ctx) 14 | 15 | return { 16 | groups: [{ balances: streams }], 17 | } 18 | } 19 | 20 | export const config: AdapterConfig = { 21 | startDate: 1650326400, 22 | } 23 | -------------------------------------------------------------------------------- /src/adapters/llamapay/bsc/index.ts: -------------------------------------------------------------------------------- 1 | import type { AdapterConfig, GetBalancesHandler } from '@lib/adapter' 2 | 3 | import { getPayeeStreams } from '../common/streams' 4 | 5 | // TODO: an account can be the recipient of a stream without interacting with any smart contract 6 | export const getContracts = async () => { 7 | return { 8 | contracts: {}, 9 | } 10 | } 11 | 12 | export const getBalances: GetBalancesHandler = async (ctx) => { 13 | const streams = await getPayeeStreams(ctx) 14 | 15 | return { 16 | groups: [{ balances: streams }], 17 | } 18 | } 19 | 20 | export const config: AdapterConfig = { 21 | startDate: 1651276800, 22 | } 23 | -------------------------------------------------------------------------------- /src/adapters/llamapay/ethereum/index.ts: -------------------------------------------------------------------------------- 1 | import type { AdapterConfig, GetBalancesHandler } from '@lib/adapter' 2 | 3 | import { getPayeeStreams } from '../common/streams' 4 | 5 | // TODO: an account can be the recipient of a stream without interacting with any smart contract 6 | export const getContracts = async () => { 7 | return { 8 | contracts: {}, 9 | } 10 | } 11 | 12 | export const getBalances: GetBalancesHandler = async (ctx) => { 13 | const streams = await getPayeeStreams(ctx) 14 | 15 | return { 16 | groups: [{ balances: streams }], 17 | } 18 | } 19 | 20 | export const config: AdapterConfig = { 21 | startDate: 1651276800, 22 | } 23 | -------------------------------------------------------------------------------- /src/adapters/llamapay/fantom/index.ts: -------------------------------------------------------------------------------- 1 | import type { AdapterConfig, GetBalancesHandler } from '@lib/adapter' 2 | 3 | import { getPayeeStreams } from '../common/streams' 4 | 5 | // TODO: an account can be the recipient of a stream without interacting with any smart contract 6 | export const getContracts = async () => { 7 | return { 8 | contracts: {}, 9 | } 10 | } 11 | 12 | export const getBalances: GetBalancesHandler = async (ctx) => { 13 | const streams = await getPayeeStreams(ctx) 14 | 15 | return { 16 | groups: [{ balances: streams }], 17 | } 18 | } 19 | 20 | export const config: AdapterConfig = { 21 | startDate: 1651276800, 22 | } 23 | -------------------------------------------------------------------------------- /src/adapters/llamapay/gnosis/index.ts: -------------------------------------------------------------------------------- 1 | import type { AdapterConfig, GetBalancesHandler } from '@lib/adapter' 2 | 3 | import { getPayeeStreams } from '../common/streams' 4 | 5 | // TODO: an account can be the recipient of a stream without interacting with any smart contract 6 | export const getContracts = async () => { 7 | return { 8 | contracts: {}, 9 | } 10 | } 11 | 12 | export const getBalances: GetBalancesHandler = async (ctx) => { 13 | const streams = await getPayeeStreams(ctx) 14 | 15 | return { 16 | groups: [{ balances: streams }], 17 | } 18 | } 19 | 20 | export const config: AdapterConfig = { 21 | startDate: 1651276800, 22 | } 23 | -------------------------------------------------------------------------------- /src/adapters/llamapay/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as avalanche from './avalanche' 5 | import * as bsc from './bsc' 6 | import * as ethereum from './ethereum' 7 | import * as fantom from './fantom' 8 | import * as gnosis from './gnosis' 9 | import * as optimism from './optimism' 10 | import * as polygon from './polygon' 11 | 12 | const adapter: Adapter = { 13 | id: 'llamapay', 14 | arbitrum, 15 | avalanche, 16 | bsc, 17 | ethereum, 18 | fantom, 19 | gnosis, 20 | optimism, 21 | polygon, 22 | } 23 | 24 | export default adapter 25 | -------------------------------------------------------------------------------- /src/adapters/llamapay/optimism/index.ts: -------------------------------------------------------------------------------- 1 | import type { AdapterConfig, GetBalancesHandler } from '@lib/adapter' 2 | 3 | import { getPayeeStreams } from '../common/streams' 4 | 5 | // TODO: an account can be the recipient of a stream without interacting with any smart contract 6 | export const getContracts = async () => { 7 | return { 8 | contracts: {}, 9 | } 10 | } 11 | 12 | export const getBalances: GetBalancesHandler = async (ctx) => { 13 | const streams = await getPayeeStreams(ctx) 14 | 15 | return { 16 | groups: [{ balances: streams }], 17 | } 18 | } 19 | 20 | export const config: AdapterConfig = { 21 | startDate: 1651276800, 22 | } 23 | -------------------------------------------------------------------------------- /src/adapters/llamapay/polygon/index.ts: -------------------------------------------------------------------------------- 1 | import type { AdapterConfig, GetBalancesHandler } from '@lib/adapter' 2 | 3 | import { getPayeeStreams } from '../common/streams' 4 | 5 | // TODO: an account can be the recipient of a stream without interacting with any smart contract 6 | export const getContracts = async () => { 7 | return { 8 | contracts: {}, 9 | } 10 | } 11 | 12 | export const getBalances: GetBalancesHandler = async (ctx) => { 13 | const streams = await getPayeeStreams(ctx) 14 | 15 | return { 16 | groups: [{ balances: streams }], 17 | } 18 | } 19 | 20 | export const config: AdapterConfig = { 21 | startDate: 1651276800, 22 | } 23 | -------------------------------------------------------------------------------- /src/adapters/locus-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as ethereum from './ethereum' 5 | 6 | const adapter: Adapter = { 7 | id: 'locus-finance', 8 | ethereum: ethereum, 9 | arbitrum: arbitrum, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/lodestar-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'lodestar-finance', 7 | arbitrum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/looksrare/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'looksrare', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/lusd-chickenbonds/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'lusd-chickenbonds', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/lybra-v1/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'lybra-v1', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/lybra-v2/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as ethereum from './ethereum' 5 | 6 | const adapter: Adapter = { 7 | id: 'lybra-v2', 8 | ethereum, 9 | arbitrum, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/lyra/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as ethereum from './ethereum' 5 | import * as optimism from './optimism' 6 | 7 | const adapter: Adapter = { 8 | id: 'lyra', 9 | arbitrum, 10 | optimism, 11 | ethereum, 12 | } 13 | 14 | // TODO: Perpetuals 15 | 16 | export default adapter 17 | -------------------------------------------------------------------------------- /src/adapters/magnate-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as base from './base' 4 | 5 | const adapter: Adapter = { 6 | id: 'magnate-finance', 7 | base, 8 | } 9 | // /!\ RUGPULL 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/magpie/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as bsc from './bsc' 5 | import * as ethereum from './ethereum' 6 | import * as optimism from './optimism' 7 | 8 | const adapter: Adapter = { 9 | id: 'magpie', 10 | arbitrum, 11 | bsc, 12 | ethereum, 13 | optimism, 14 | } 15 | 16 | export default adapter 17 | -------------------------------------------------------------------------------- /src/adapters/makerdao/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'makerdao', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/mantisswap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as polygon from './polygon' 4 | 5 | const adapter: Adapter = { 6 | id: 'mantisswap', 7 | polygon, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/mantle-staked-eth/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'mantle-staked-eth', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/maple/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'maple', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/matrix-farm/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as base from './base' 5 | import * as fantom from './fantom' 6 | import * as optimism from './optimism' 7 | 8 | const adapter: Adapter = { 9 | id: 'matrix-farm', 10 | arbitrum: arbitrum, 11 | base: base, 12 | fantom: fantom, 13 | optimism: optimism, 14 | } 15 | 16 | export default adapter 17 | -------------------------------------------------------------------------------- /src/adapters/mdex/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | 5 | const adapter: Adapter = { 6 | id: 'mdex', 7 | bsc, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/mean-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as bsc from './bsc' 5 | import * as ethereum from './ethereum' 6 | import * as optimism from './optimism' 7 | import * as polygon from './polygon' 8 | 9 | const adapter: Adapter = { 10 | id: 'mean-finance', 11 | arbitrum, 12 | polygon, 13 | optimism, 14 | ethereum, 15 | bsc: bsc, 16 | } 17 | 18 | export default adapter 19 | -------------------------------------------------------------------------------- /src/adapters/mendi-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as linea from './linea' 4 | 5 | const adapter: Adapter = { 6 | id: 'mendi-finance', 7 | linea: linea, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/merit-circle/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'merit-circle', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/merlins-seal/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as ethereum from './ethereum' 5 | 6 | const adapter: Adapter = { 7 | id: 'merlins-seal', 8 | arbitrum: arbitrum, 9 | ethereum: ethereum, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/mesher/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'mesher', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/meta-pool/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'meta-pool', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/metronome/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | import * as optimism from './optimism' 5 | 6 | const adapter: Adapter = { 7 | id: 'metronome', 8 | ethereum, 9 | optimism, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/mev-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'mev-protocol', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/moonwell/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as base from './base' 4 | import * as moonbeam from './moonbeam' 5 | 6 | const adapter: Adapter = { 7 | id: 'moonwell', 8 | moonbeam, 9 | base, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/morpheus-swap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as fantom from './fantom' 4 | 5 | const adapter: Adapter = { 6 | id: 'morpheus-swap', 7 | fantom, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/morphex/fantom/contract.ts: -------------------------------------------------------------------------------- 1 | import type { BaseContext, Contract } from '@lib/adapter' 2 | import { getVaultTokens } from '@lib/gmx/vault' 3 | 4 | export async function getMorphexContract(ctx: BaseContext, contract: Contract, vault: Contract): Promise { 5 | return { 6 | ...contract, 7 | underlyings: await getVaultTokens(ctx, vault), 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/adapters/morphex/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as fantom from './fantom' 4 | 5 | const adapter: Adapter = { 6 | id: 'morphex', 7 | fantom, 8 | } 9 | 10 | // TODO: Perpetuals logic 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/morpho-aave/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'morpho-aave', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/morpho-aavev3/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'morpho-aavev3', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/morpho-blue/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'morpho-blue', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/morpho-compound/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'morpho-compound', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/mountain-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'mountain-protocol', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/mover/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'mover', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/mstable/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'mstable', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/mu-exchange/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as gnosis from './gnosis' 4 | 5 | const adapter: Adapter = { 6 | id: 'mu-exchange', 7 | gnosis: gnosis, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/mugenfinance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'mugenfinance', 7 | arbitrum: arbitrum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/multichain/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | import * as ethereum from './ethereum' 5 | import * as fantom from './fantom' 6 | 7 | const adapter: Adapter = { 8 | id: 'multichain', 9 | ethereum, 10 | bsc, 11 | fantom, 12 | } 13 | 14 | export default adapter 15 | -------------------------------------------------------------------------------- /src/adapters/mummy-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as base from './base' 5 | import * as fantom from './fantom' 6 | import * as optimism from './optimism' 7 | 8 | const adapter: Adapter = { 9 | id: 'mummy-finance', 10 | base: base, 11 | fantom: fantom, 12 | optimism: optimism, 13 | arbitrum: arbitrum, 14 | } 15 | 16 | export default adapter 17 | -------------------------------------------------------------------------------- /src/adapters/nasdex/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as polygon from './polygon' 4 | 5 | const adapter: Adapter = { 6 | id: 'nasdex', 7 | polygon: polygon, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/nemesis-dao/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | 5 | const adapter: Adapter = { 6 | id: 'nemesis-dao', 7 | bsc, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/neopin-pool/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | import * as polygon from './polygon' 5 | 6 | const adapter: Adapter = { 7 | id: 'neopin-pool', 8 | ethereum: ethereum, 9 | polygon: polygon, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/nexus-mutual/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'nexus-mutual', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/nf3-ape/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'nf3-ape', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/nodedao/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'nodedao', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/notional/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'notional', 7 | ethereum: ethereum, 8 | } 9 | 10 | // TODO: Find how to get pendingRewards + Metadatas (Debt Maturity, HFs..) 11 | export default adapter 12 | -------------------------------------------------------------------------------- /src/adapters/olympus-dao/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'olympus-dao', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/ondo-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | import * as polygon from './polygon' 5 | 6 | const adapter: Adapter = { 7 | id: 'ondo-finance', 8 | ethereum, 9 | polygon, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/onyx-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'onyx-protocol', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/openxswap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as optimism from './optimism' 4 | 5 | const adapter: Adapter = { 6 | id: 'openxswap', 7 | optimism: optimism, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/opium/ethereum/balance.ts: -------------------------------------------------------------------------------- 1 | import type { Balance, BalancesContext, Contract } from '@lib/adapter' 2 | import { getBalancesOf } from '@lib/erc20' 3 | import { getPricesPerSharesBalances } from '@lib/pricePerShare' 4 | 5 | export async function getOpiumBalances(ctx: BalancesContext, pools: Contract[]): Promise { 6 | const balances = await getBalancesOf(ctx, pools, { getAddress: (contract) => contract.address }) 7 | return getPricesPerSharesBalances(ctx, balances, { getCategory: () => 'stake' }) 8 | } 9 | -------------------------------------------------------------------------------- /src/adapters/opium/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'opium', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/opx-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as optimism from './optimism' 4 | 5 | const adapter: Adapter = { 6 | id: 'opx-finance', 7 | optimism: optimism, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/opx-finance/optimism/contract.ts: -------------------------------------------------------------------------------- 1 | import type { BaseContext, Contract } from '@lib/adapter' 2 | import { getVaultTokens } from '@lib/gmx/vault' 3 | 4 | export async function getOpxOLPContract(ctx: BaseContext, fOLP: Contract, vault: Contract): Promise { 5 | return { ...fOLP, underlyings: await getVaultTokens(ctx, vault) } 6 | } 7 | -------------------------------------------------------------------------------- /src/adapters/opyn-squeeth/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'opyn-squeeth', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/origin-defi/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'origin-defi', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/origin-dollar/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'origin-dollar', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/overnight-finance/arbitrum/index.ts: -------------------------------------------------------------------------------- 1 | import { farmers } from '@adapters/overnight-finance/arbitrum/contract' 2 | import { getOvernightFarmBalances } from '@adapters/overnight-finance/common/balance' 3 | import type { GetBalancesHandler } from '@lib/adapter' 4 | import { resolveBalances } from '@lib/balance' 5 | 6 | export const getContracts = () => { 7 | return { 8 | contracts: { farmers }, 9 | } 10 | } 11 | 12 | export const getBalances: GetBalancesHandler = async (ctx, contracts) => { 13 | const balances = await resolveBalances(ctx, contracts, { 14 | farmers: getOvernightFarmBalances, 15 | }) 16 | 17 | return { 18 | groups: [{ balances }], 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/adapters/overnight-finance/base/contract.ts: -------------------------------------------------------------------------------- 1 | import type { Contract } from '@lib/adapter' 2 | 3 | export const farmers: Contract[] = [ 4 | { 5 | chain: 'base', 6 | address: '0x494cdc9ecde630179f31754480aca7179000a881', 7 | underlyings: ['0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA'], 8 | }, 9 | { 10 | chain: 'base', 11 | address: '0x304b98f3f4096f94b8f09e8944ef255b04545e96', 12 | underlyings: ['0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA'], 13 | }, 14 | { 15 | chain: 'base', 16 | address: '0x270df474f4bd2b92a45a46228683c971765e81a7', 17 | underlyings: ['0x50c5725949a6f0c72e6c4a641f24049a917db0cb'], 18 | }, 19 | ] 20 | -------------------------------------------------------------------------------- /src/adapters/overnight-finance/base/index.ts: -------------------------------------------------------------------------------- 1 | import { farmers } from '@adapters/overnight-finance/base/contract' 2 | import { getOvernightFarmBalances } from '@adapters/overnight-finance/common/balance' 3 | import type { GetBalancesHandler } from '@lib/adapter' 4 | import { resolveBalances } from '@lib/balance' 5 | 6 | export const getContracts = () => { 7 | return { 8 | contracts: { farmers }, 9 | } 10 | } 11 | 12 | export const getBalances: GetBalancesHandler = async (ctx, contracts) => { 13 | const balances = await resolveBalances(ctx, contracts, { 14 | farmers: getOvernightFarmBalances, 15 | }) 16 | 17 | return { 18 | groups: [{ balances }], 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/adapters/overnight-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as base from './base' 5 | import * as optimism from './optimism' 6 | import * as polygon from './polygon' 7 | 8 | const adapter: Adapter = { 9 | id: 'overnight-finance', 10 | optimism, 11 | base, 12 | arbitrum, 13 | polygon, 14 | } 15 | 16 | export default adapter 17 | -------------------------------------------------------------------------------- /src/adapters/paal-ai/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'paal-ai', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/paladin-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'paladin-finance', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/paladin-warlord/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'paladin-warlord', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/pancakeswap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | import * as ethereum from './ethereum' 5 | 6 | const adapter: Adapter = { 7 | id: 'pancakeswap', 8 | bsc, 9 | ethereum, 10 | } 11 | /** 12 | * TODO: Cake rewards autocompound on staking section 13 | * docs: https://docs.pancakeswap.finance/products/syrup-pool/new-cake-pool 14 | */ 15 | 16 | export default adapter 17 | -------------------------------------------------------------------------------- /src/adapters/pandora/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | 5 | const adapter: Adapter = { 6 | id: 'pandora', 7 | bsc, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/pangolin/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as avalanche from './avalanche' 4 | 5 | const adapter: Adapter = { 6 | id: 'pangolin', 7 | avalanche, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/parallel-protocol/common/vault.ts: -------------------------------------------------------------------------------- 1 | import type { BaseContext, Contract } from '@lib/adapter' 2 | import { getERC20Details } from '@lib/erc20' 3 | 4 | export async function getVaultWithAssets( 5 | ctx: BaseContext, 6 | PAR: Contract, 7 | vault: Contract, 8 | assetsAddresses: `0x${string}`[], 9 | ): Promise { 10 | const assets = (await getERC20Details(ctx, assetsAddresses)) as Contract[] 11 | 12 | return { ...PAR, vault: vault.address, tokens: assets } 13 | } 14 | -------------------------------------------------------------------------------- /src/adapters/parallel-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | import * as fantom from './fantom' 5 | import * as polygon from './polygon' 6 | 7 | const adapter: Adapter = { 8 | id: 'parallel-protocol', 9 | ethereum: ethereum, 10 | polygon: polygon, 11 | fantom: fantom, 12 | } 13 | 14 | export default adapter 15 | -------------------------------------------------------------------------------- /src/adapters/paraswap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | import * as optimism from './optimism' 5 | 6 | const adapter: Adapter = { 7 | id: 'paraswap', 8 | ethereum, 9 | optimism, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/peapods-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'peapods-finance', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/pearlfi/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as polygon from './polygon' 4 | 5 | const adapter: Adapter = { 6 | id: 'pearlfi', 7 | polygon, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/pendle/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as bsc from './bsc' 5 | import * as ethereum from './ethereum' 6 | import * as optimism from './optimism' 7 | 8 | const adapter: Adapter = { 9 | id: 'pendle', 10 | ethereum: ethereum, 11 | arbitrum: arbitrum, 12 | bsc: bsc, 13 | optimism: optimism, 14 | } 15 | 16 | // TODO: find a way to retrieve real pendingRewards 17 | export default adapter 18 | -------------------------------------------------------------------------------- /src/adapters/perennial/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'perennial', 7 | arbitrum, 8 | } 9 | 10 | // TODO: Perennial perpetuals on both arb + eth 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/perion/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'perion', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/perpetual-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | import * as optimism from './optimism' 5 | 6 | const adapter: Adapter = { 7 | id: 'perpetual-protocol', 8 | optimism: optimism, 9 | ethereum: ethereum, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/piedao/ethereum/providers/sushi.ts: -------------------------------------------------------------------------------- 1 | import type { Balance, BalancesContext } from '@lib/adapter' 2 | import { getUnderlyingBalances } from '@lib/uniswap/v2/pair' 3 | 4 | export const sushiProvider = async (ctx: BalancesContext, pools: Balance[]): Promise => { 5 | return getUnderlyingBalances(ctx, pools) 6 | } 7 | -------------------------------------------------------------------------------- /src/adapters/piedao/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'piedao', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/pika-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as optimism from './optimism' 4 | 5 | const adapter: Adapter = { 6 | id: 'pika-protocol', 7 | optimism, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/pingu-exchange/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'pingu-exchange', 7 | arbitrum: arbitrum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/platypus-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as avalanche from './avalanche' 4 | 5 | const adapter: Adapter = { 6 | id: 'platypus-finance', 7 | avalanche, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/pods/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'pods', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/polkastarter/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | import * as ethereum from './ethereum' 5 | 6 | const adapter: Adapter = { 7 | id: 'polkastarter', 8 | ethereum, 9 | bsc, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/poolside/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as avalanche from './avalanche' 4 | import * as base from './base' 5 | import * as ethereum from './ethereum' 6 | 7 | const adapter: Adapter = { 8 | id: 'poolside', 9 | avalanche: avalanche, 10 | ethereum: ethereum, 11 | base: base, 12 | } 13 | 14 | export default adapter 15 | -------------------------------------------------------------------------------- /src/adapters/popsicle-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as bsc from './bsc' 5 | import * as ethereum from './ethereum' 6 | import * as fantom from './fantom' 7 | import * as polygon from './polygon' 8 | 9 | const adapter: Adapter = { 10 | id: 'popsicle-finance', 11 | arbitrum, 12 | fantom, 13 | bsc, 14 | ethereum, 15 | polygon, 16 | } 17 | 18 | export default adapter 19 | -------------------------------------------------------------------------------- /src/adapters/preon-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as polygon from './polygon' 5 | 6 | const adapter: Adapter = { 7 | id: 'preon-finance', 8 | arbitrum: arbitrum, 9 | polygon: polygon, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/prime-staked-eth/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'prime-staked-eth', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/prisma-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'prisma-finance', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/protectorate-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'protectorate-protocol', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/proxy/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as polygon from './polygon' 4 | 5 | const adapter: Adapter = { 6 | id: 'proxy', 7 | polygon: polygon, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/pstake-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | import * as ethereum from './ethereum' 5 | 6 | const adapter: Adapter = { 7 | id: 'pstake-finance', 8 | ethereum, 9 | bsc, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/puffer-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'puffer-finance', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/purple-bridge-dex/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as polygon from './polygon' 4 | 5 | const adapter: Adapter = { 6 | id: 'purple-bridge-dex', 7 | polygon: polygon, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/qidao/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as avalanche from './avalanche' 5 | import * as base from './base' 6 | import * as ethereum from './ethereum' 7 | import * as fantom from './fantom' 8 | import * as linea from './linea' 9 | import * as moonbeam from './moonbeam' 10 | import * as optimism from './optimism' 11 | import * as polygon from './polygon' 12 | 13 | const adapter: Adapter = { 14 | id: 'qidao', 15 | linea: linea, 16 | ethereum: ethereum, 17 | optimism: optimism, 18 | base: base, 19 | avalanche: avalanche, 20 | fantom: fantom, 21 | arbitrum: arbitrum, 22 | polygon: polygon, 23 | moonbeam: moonbeam, 24 | } 25 | 26 | export default adapter 27 | -------------------------------------------------------------------------------- /src/adapters/quickswap-dex/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as polygon from './polygon' 4 | 5 | const adapter: Adapter = { 6 | id: 'quickswap-dex', 7 | polygon, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/radiant-v1/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'radiant-v1', 7 | arbitrum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/radiant-v2/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as bsc from './bsc' 5 | import * as ethereum from './ethereum' 6 | 7 | const adapter: Adapter = { 8 | id: 'radiant-v2', 9 | arbitrum, 10 | bsc, 11 | ethereum, 12 | } 13 | 14 | export default adapter 15 | -------------------------------------------------------------------------------- /src/adapters/radioshack/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as avalanche from './avalanche' 4 | import * as bsc from './bsc' 5 | import * as ethereum from './ethereum' 6 | import * as fantom from './fantom' 7 | import * as optimism from './optimism' 8 | import * as polygon from './polygon' 9 | 10 | const adapter: Adapter = { 11 | id: 'radioshack', 12 | fantom: fantom, 13 | optimism: optimism, 14 | ethereum: ethereum, 15 | polygon: polygon, 16 | avalanche: avalanche, 17 | bsc: bsc, 18 | } 19 | 20 | export default adapter 21 | -------------------------------------------------------------------------------- /src/adapters/raft/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'raft', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/rage-trade/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'rage-trade', 7 | arbitrum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/railgun/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | import * as ethereum from './ethereum' 5 | import * as polygon from './polygon' 6 | 7 | const adapter: Adapter = { 8 | id: 'railgun', 9 | ethereum, 10 | bsc, 11 | polygon, 12 | } 13 | 14 | export default adapter 15 | -------------------------------------------------------------------------------- /src/adapters/ramses-exchange/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'ramses-exchange', 7 | arbitrum: arbitrum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/range-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as base from './base' 5 | import * as bsc from './bsc' 6 | import * as ethereum from './ethereum' 7 | import * as polygon from './polygon' 8 | 9 | const adapter: Adapter = { 10 | id: 'range-protocol', 11 | ethereum, 12 | arbitrum, 13 | bsc, 14 | base, 15 | polygon, 16 | } 17 | 18 | export default adapter 19 | -------------------------------------------------------------------------------- /src/adapters/realt/gnosis/contract.ts: -------------------------------------------------------------------------------- 1 | import type { BaseContext, Contract } from '@lib/adapter' 2 | 3 | export async function getRealTContracts(ctx: BaseContext): Promise { 4 | const URL = 'https://api.realt.community/v1/token' 5 | const datas: any = await fetch(URL).then((res) => res.json()) 6 | 7 | return datas 8 | .filter((data: any) => data.gnosisContract !== null && !data.shortName.includes('OLD')) 9 | .map((data: any) => { 10 | const { symbol, gnosisContract } = data 11 | 12 | return { 13 | chain: ctx.chain, 14 | address: gnosisContract, 15 | decimals: 18, 16 | symbol, 17 | } 18 | }) 19 | } 20 | -------------------------------------------------------------------------------- /src/adapters/realt/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as gnosis from './gnosis' 4 | 5 | const adapter: Adapter = { 6 | id: 'realt', 7 | gnosis: gnosis, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/reaper-farm/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as bsc from './bsc' 5 | import * as fantom from './fantom' 6 | import * as optimism from './optimism' 7 | 8 | const adapter: Adapter = { 9 | id: 'reaper-farm', 10 | optimism: optimism, 11 | fantom: fantom, 12 | arbitrum: arbitrum, 13 | bsc: bsc, 14 | } 15 | 16 | export default adapter 17 | -------------------------------------------------------------------------------- /src/adapters/redacted/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'redacted', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/reflexer/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'reflexer', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/renzo/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'renzo', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/reserve/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as base from './base' 4 | import * as ethereum from './ethereum' 5 | 6 | const adapter: Adapter = { 7 | id: 'reserve', 8 | ethereum, 9 | base, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/restake-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'restake-finance', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/retro/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as polygon from './polygon' 4 | 5 | const adapter: Adapter = { 6 | id: 'retro', 7 | polygon, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/rhino.fi/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'rhino.fi', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/ribbon-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'ribbon-finance', 7 | ethereum, 8 | } 9 | 10 | /** 11 | * TODO: 12 | * - Logic to get rewards from farming part 13 | * - Logic on Avalanche chain 14 | */ 15 | 16 | export default adapter 17 | -------------------------------------------------------------------------------- /src/adapters/rocket-pool/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'rocket-pool', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/rocketswap-base/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as base from './base' 4 | 5 | const adapter: Adapter = { 6 | id: 'rocketswap-base', 7 | base: base, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/rook/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'rook', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/rubicon/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as optimism from './optimism' 4 | 5 | const adapter: Adapter = { 6 | id: 'rubicon', 7 | optimism: optimism, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/sakeperp/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'sakeperp', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/scale/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as base from './base' 4 | 5 | const adapter: Adapter = { 6 | id: 'scale', 7 | base: base, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/scream/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as fantom from './fantom' 4 | 5 | const adapter: Adapter = { 6 | id: 'scream', 7 | fantom, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/sdai/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as gnosis from './gnosis' 4 | 5 | const adapter: Adapter = { 6 | id: 'sdai', 7 | gnosis: gnosis, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/seamless-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as base from './base' 4 | 5 | const adapter: Adapter = { 6 | id: 'seamless-protocol', 7 | base: base, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/sentiment/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'sentiment', 7 | arbitrum, 8 | } 9 | 10 | // TODO: Lending/Borrowing 11 | // https://docs.sentiment.xyz/ 12 | 13 | export default adapter 14 | -------------------------------------------------------------------------------- /src/adapters/set-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'set-protocol', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/sharedstake/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'sharedstake', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/shell-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'shell-protocol', 7 | arbitrum: arbitrum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/sherlock/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'sherlock', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/shibaswap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'shibaswap', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/sideshift/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'sideshift', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/silo-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as ethereum from './ethereum' 5 | 6 | const adapter: Adapter = { 7 | id: 'silo-finance', 8 | ethereum, 9 | arbitrum, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/smardex/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as base from './base' 5 | import * as bsc from './bsc' 6 | import * as ethereum from './ethereum' 7 | import * as polygon from './polygon' 8 | 9 | const adapter: Adapter = { 10 | id: 'smardex', 11 | ethereum, 12 | arbitrum, 13 | bsc, 14 | polygon, 15 | base, 16 | } 17 | 18 | export default adapter 19 | -------------------------------------------------------------------------------- /src/adapters/smoothy/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | import * as ethereum from './ethereum' 5 | 6 | const adapter: Adapter = { 7 | id: 'smoothy', 8 | ethereum, 9 | bsc, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/snowbank/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as avalanche from './avalanche' 4 | 5 | const adapter: Adapter = { 6 | id: 'snowbank', 7 | avalanche, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/solid-world/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as polygon from './polygon' 4 | 5 | const adapter: Adapter = { 6 | id: 'solid-world', 7 | polygon: polygon, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/solidlizard/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'solidlizard', 7 | arbitrum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/solidly-v2/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'solidly-v2', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/solv-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as bsc from './bsc' 5 | import * as ethereum from './ethereum' 6 | import * as polygon from './polygon' 7 | 8 | const adapter: Adapter = { 9 | id: 'solv-protocol', 10 | ethereum: ethereum, 11 | bsc: bsc, 12 | arbitrum: arbitrum, 13 | polygon: polygon, 14 | } 15 | 16 | export default adapter 17 | -------------------------------------------------------------------------------- /src/adapters/sommelier/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'sommelier', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/sonne-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as base from './base' 4 | import * as optimism from './optimism' 5 | 6 | const adapter: Adapter = { 7 | id: 'sonne-finance', 8 | optimism, 9 | base, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/soswap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as base from './base' 4 | 5 | const adapter: Adapter = { 6 | id: 'soswap', 7 | base: base, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/spark/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | import * as gnosis from './gnosis' 5 | 6 | const adapter: Adapter = { 7 | id: 'spark', 8 | ethereum, 9 | gnosis, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/spartacus/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as fantom from './fantom' 4 | 5 | const adapter: Adapter = { 6 | id: 'spartacus', 7 | fantom, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/spartadex/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'spartadex', 7 | arbitrum: arbitrum, 8 | } 9 | 10 | // TODO: Find vest and farming contracts 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/sphere-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as polygon from './polygon' 4 | 5 | const adapter: Adapter = { 6 | id: 'sphere-finance', 7 | polygon, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/spice-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'spice-finance', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/spiritswap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as fantom from './fantom' 4 | 5 | const adapter: Adapter = { 6 | id: 'spiritswap', 7 | fantom, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/spookyswap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as fantom from './fantom' 4 | 5 | const adapter: Adapter = { 6 | id: 'spookyswap', 7 | fantom, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/spool/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'spool-protocol', 7 | ethereum, 8 | } 9 | 10 | // TODO : Find the logic around strategies used to farm 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/stabl.fi/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as polygon from './polygon' 4 | 5 | const adapter: Adapter = { 6 | id: 'stabl.fi', 7 | polygon: polygon, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/stader/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | import * as ethereum from './ethereum' 5 | import * as fantom from './fantom' 6 | import * as polygon from './polygon' 7 | 8 | const adapter: Adapter = { 9 | id: 'stader', 10 | bsc, 11 | fantom, 12 | polygon, 13 | ethereum, 14 | } 15 | 16 | export default adapter 17 | -------------------------------------------------------------------------------- /src/adapters/stafi/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'stafi', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/stake.link/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'stake.link', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/stakedao/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'stakedao', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/stakehound/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'stakehound', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/stakewise/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | import * as gnosis from './gnosis' 5 | 6 | const adapter: Adapter = { 7 | id: 'stakewise', 8 | ethereum, 9 | gnosis, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/stargate/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as avalanche from './avalanche' 5 | import * as base from './base' 6 | import * as bsc from './bsc' 7 | import * as ethereum from './ethereum' 8 | import * as fantom from './fantom' 9 | import * as linea from './linea' 10 | import * as optimism from './optimism' 11 | import * as polygon from './polygon' 12 | 13 | const adapter: Adapter = { 14 | id: 'stargate', 15 | arbitrum, 16 | avalanche, 17 | bsc, 18 | ethereum, 19 | fantom, 20 | optimism, 21 | polygon, 22 | base, 23 | linea, 24 | } 25 | 26 | export default adapter 27 | -------------------------------------------------------------------------------- /src/adapters/steer-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as avalanche from './avalanche' 5 | import * as base from './base' 6 | import * as bsc from './bsc' 7 | import * as linea from './linea' 8 | import * as optimism from './optimism' 9 | import * as polygon from './polygon' 10 | 11 | const adapter: Adapter = { 12 | id: 'steer-protocol', 13 | polygon: polygon, 14 | arbitrum: arbitrum, 15 | linea: linea, 16 | optimism: optimism, 17 | base: base, 18 | bsc: bsc, 19 | avalanche: avalanche, 20 | } 21 | 22 | export default adapter 23 | -------------------------------------------------------------------------------- /src/adapters/strike/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'strike', 7 | ethereum, 8 | } 9 | 10 | // TODO: Rewards on Lending/Borrowing, LP farming 11 | // https://docs.strike.org/ 12 | 13 | export default adapter 14 | -------------------------------------------------------------------------------- /src/adapters/sturdy/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | import * as fantom from './fantom' 5 | 6 | const adapter: Adapter = { 7 | id: 'sturdy', 8 | ethereum, 9 | fantom, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/stusdt/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'stusdt', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/sudoswap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'sudoswap', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/summer.fi/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'summer.fi', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/superfarm/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'superfarm', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/sushiswap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as avalanche from './avalanche' 5 | import * as bsc from './bsc' 6 | import * as ethereum from './ethereum' 7 | import * as fantom from './fantom' 8 | import * as gnosis from './gnosis' 9 | import * as polygon from './polygon' 10 | 11 | const adapter: Adapter = { 12 | id: 'sushiswap', 13 | ethereum, 14 | polygon, 15 | arbitrum, 16 | fantom, 17 | avalanche, 18 | bsc, 19 | gnosis, 20 | } 21 | 22 | export default adapter 23 | -------------------------------------------------------------------------------- /src/adapters/swaap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as ethereum from './ethereum' 5 | import * as polygon from './polygon' 6 | 7 | const adapter: Adapter = { 8 | id: 'swaap', 9 | polygon: polygon, 10 | ethereum: ethereum, 11 | arbitrum: arbitrum, 12 | } 13 | 14 | export default adapter 15 | -------------------------------------------------------------------------------- /src/adapters/swapbased/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as base from './base' 4 | 5 | const adapter: Adapter = { 6 | id: 'swapbased', 7 | base: base, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/swapr/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as ethereum from './ethereum' 5 | import * as gnosis from './gnosis' 6 | 7 | const adapter: Adapter = { 8 | id: 'swapr', 9 | gnosis: gnosis, 10 | arbitrum: arbitrum, 11 | ethereum: ethereum, 12 | } 13 | 14 | export default adapter 15 | -------------------------------------------------------------------------------- /src/adapters/swell/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'swell', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/synapse/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as avalanche from './avalanche' 5 | import * as bsc from './bsc' 6 | import * as ethereum from './ethereum' 7 | import * as fantom from './fantom' 8 | import * as optimism from './optimism' 9 | import * as polygon from './polygon' 10 | 11 | const adapter: Adapter = { 12 | id: 'synapse', 13 | arbitrum, 14 | avalanche, 15 | bsc, 16 | ethereum, 17 | fantom, 18 | optimism, 19 | polygon, 20 | } 21 | 22 | export default adapter 23 | -------------------------------------------------------------------------------- /src/adapters/synclub-staked-bnb/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | 5 | const adapter: Adapter = { 6 | id: 'synclub-staked-bnb', 7 | bsc, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/syncus/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'syncus', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/synthetix/common/provider/snx.ts: -------------------------------------------------------------------------------- 1 | import type { ProviderBalancesParams } from '@adapters/badger-dao/common/provider' 2 | import type { Balance, BalancesContext } from '@lib/adapter' 3 | 4 | export const getSnxProvider = async ( 5 | _ctx: BalancesContext, 6 | pools: ProviderBalancesParams[], 7 | ): Promise => { 8 | for (const pool of pools) { 9 | const { amount, underlyings } = pool 10 | if (underlyings && underlyings.length < 2) { 11 | ;(pool.underlyings![0] as Balance).amount = amount 12 | } 13 | } 14 | 15 | return pools 16 | } 17 | -------------------------------------------------------------------------------- /src/adapters/synthetix/common/provider/uniswap.ts: -------------------------------------------------------------------------------- 1 | import type { Balance, BalancesContext } from '@lib/adapter' 2 | import { getUnderlyingBalances } from '@lib/uniswap/v2/pair' 3 | 4 | export async function getUniswapProvider(ctx: BalancesContext, pools: Balance[]): Promise { 5 | return getUnderlyingBalances(ctx, pools) 6 | } 7 | -------------------------------------------------------------------------------- /src/adapters/synthetix/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | import * as optimism from './optimism' 5 | 6 | const adapter: Adapter = { 7 | id: 'synthetix', 8 | ethereum, 9 | optimism, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/tangible/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as polygon from './polygon' 4 | 5 | const adapter: Adapter = { 6 | id: 'tangible', 7 | polygon, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/templedao/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'templedao', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/tender-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'tender-finance', 7 | arbitrum: arbitrum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/tensorplex/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'tensorplex', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/tetu/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | import * as ethereum from './ethereum' 5 | import * as fantom from './fantom' 6 | import * as polygon from './polygon' 7 | 8 | const adapter: Adapter = { 9 | id: 'tetu', 10 | polygon, 11 | fantom, 12 | ethereum, 13 | bsc, 14 | } 15 | 16 | export default adapter 17 | -------------------------------------------------------------------------------- /src/adapters/thales/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as base from './base' 5 | import * as optimism from './optimism' 6 | 7 | const adapter: Adapter = { 8 | id: 'thales', 9 | optimism: optimism, 10 | arbitrum: arbitrum, 11 | base: base, 12 | } 13 | 14 | export default adapter 15 | -------------------------------------------------------------------------------- /src/adapters/the-idols/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'the-idols', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/the-open-dao-sos/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'the-open-dao-sos', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/thena/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | 5 | const adapter: Adapter = { 6 | id: 'thena', 7 | bsc, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/tholgar/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'tholgar', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/tigris/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as polygon from './polygon' 5 | 6 | const adapter: Adapter = { 7 | id: 'tigris', 8 | arbitrum: arbitrum, 9 | polygon: polygon, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/timewarp/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | import * as ethereum from './ethereum' 5 | 6 | const adapter: Adapter = { 7 | id: 'timewarp', 8 | bsc, 9 | ethereum, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/tokemak/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'tokemak', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/tokenlon/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'tokenlon', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/tonpound/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'tonpound', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/tornado-cash/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'tornado-cash', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/toupee.tech/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as base from './base' 4 | 5 | const adapter: Adapter = { 6 | id: 'toupee.tech', 7 | base: base, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/tprotocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'tprotocol', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/trader-joe/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as avalanche from './avalanche' 4 | 5 | const adapter: Adapter = { 6 | id: 'trader-joe', 7 | avalanche, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/treasuredao/arbitrum/pool.ts: -------------------------------------------------------------------------------- 1 | import type { BaseContext, Contract } from '@lib/adapter' 2 | 3 | const MAGIC: Contract = { 4 | chain: 'arbitrum', 5 | address: '0x539bde0d7dbd336b79148aa742883198bbf60342', 6 | decimals: 18, 7 | symbol: 'MAGIC', 8 | } 9 | 10 | export async function getTreasurePools(ctx: BaseContext, pools: `0x${string}`[]): Promise { 11 | return pools.map((pool) => ({ chain: ctx.chain, address: pool, token: MAGIC.address, rewards: [MAGIC] })) 12 | } 13 | -------------------------------------------------------------------------------- /src/adapters/treasuredao/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'treasuredao', 7 | arbitrum: arbitrum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/truefi/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'truefi', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/trufin-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'trufin-protocol', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/trustswap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as avalanche from './avalanche' 4 | import * as bsc from './bsc' 5 | import * as ethereum from './ethereum' 6 | import * as polygon from './polygon' 7 | 8 | const adapter: Adapter = { 9 | id: 'trustswap', 10 | ethereum, 11 | avalanche, 12 | polygon, 13 | bsc, 14 | } 15 | 16 | export default adapter 17 | -------------------------------------------------------------------------------- /src/adapters/umami-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'umami-finance', 7 | arbitrum: arbitrum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/unicly/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'unicly', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/uniswap-v2/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'uniswap-v2', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/uniswap-v3/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as base from './base' 5 | import * as bsc from './bsc' 6 | import * as celo from './celo' 7 | import * as ethereum from './ethereum' 8 | import * as optimism from './optimism' 9 | import * as polygon from './polygon' 10 | 11 | const adapter: Adapter = { 12 | id: 'uniswap-v3', 13 | ethereum, 14 | arbitrum, 15 | polygon, 16 | optimism, 17 | celo, 18 | base, 19 | bsc, 20 | } 21 | 22 | export default adapter 23 | -------------------------------------------------------------------------------- /src/adapters/unitus/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as bsc from './bsc' 5 | import * as ethereum from './ethereum' 6 | import * as optimism from './optimism' 7 | import * as polygon from './polygon' 8 | 9 | const adapter: Adapter = { 10 | id: 'unitus', 11 | arbitrum: arbitrum, 12 | ethereum: ethereum, 13 | bsc: bsc, 14 | optimism: optimism, 15 | polygon: polygon, 16 | } 17 | 18 | export default adapter 19 | -------------------------------------------------------------------------------- /src/adapters/unsheth/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'unsheth', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/usdfi-lending/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | 5 | const adapter: Adapter = { 6 | id: 'usdfi-lending', 7 | bsc: bsc, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/uwu-lend/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'uwu-lend', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/valas-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | 5 | const adapter: Adapter = { 6 | id: 'valas-finance', 7 | bsc, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/vapordex/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as avalanche from './avalanche' 4 | 5 | const adapter: Adapter = { 6 | id: 'vapordex', 7 | avalanche: avalanche, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/vault-tech/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'vault-tech', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/vector-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as avalanche from './avalanche' 4 | 5 | const adapter: Adapter = { 6 | id: 'vector-finance', 7 | avalanche, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/vector-reserve/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'vector-reserve', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/velodrome-v1/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as optimism from './optimism' 4 | 5 | const adapter: Adapter = { 6 | id: 'velodrome-v1', 7 | optimism: optimism, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/velodrome-v2/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as optimism from './optimism' 4 | 5 | const adapter: Adapter = { 6 | id: 'velodrome-v2', 7 | optimism: optimism, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/venus/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | 5 | const adapter: Adapter = { 6 | id: 'venus', 7 | bsc, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/verse/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'verse', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/vesper/common/pool.ts: -------------------------------------------------------------------------------- 1 | import type { BaseContext, Contract } from '@lib/adapter' 2 | 3 | export async function getVesperStakeContracts(ctx: BaseContext, url: string): Promise { 4 | const response = await fetch(url) 5 | const vaults: any[] = await response.json() 6 | 7 | return vaults.map((vault) => ({ 8 | chain: ctx.chain, 9 | name: vault.name, 10 | address: vault.address, 11 | underlyings: [vault.collateral.address], 12 | rewarder: vault.rewardsContractAddress, 13 | })) 14 | } 15 | -------------------------------------------------------------------------------- /src/adapters/vesper/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as avalanche from './avalanche' 4 | import * as ethereum from './ethereum' 5 | import * as optimism from './optimism' 6 | import * as polygon from './polygon' 7 | 8 | const adapter: Adapter = { 9 | id: 'vesper', 10 | ethereum, 11 | optimism, 12 | avalanche, 13 | polygon, 14 | } 15 | 16 | export default adapter 17 | -------------------------------------------------------------------------------- /src/adapters/virtuswap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as polygon from './polygon' 5 | 6 | const adapter: Adapter = { 7 | id: 'virtuswap', 8 | polygon: polygon, 9 | arbitrum: arbitrum, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/volta-club/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as avalanche from './avalanche' 4 | 5 | const adapter: Adapter = { 6 | id: 'volta-club', 7 | avalanche, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/vulcandex/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as polygon from './polygon' 4 | 5 | const adapter: Adapter = { 6 | id: 'vulcandex', 7 | polygon: polygon, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/wagmi/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | import * as fantom from './fantom' 5 | import * as zksyncEra from './zksync-era' 6 | 7 | const adapter: Adapter = { 8 | id: 'wagmi', 9 | ethereum: ethereum, 10 | fantom: fantom, 11 | 'zksync-era': zksyncEra, 12 | } 13 | 14 | export default adapter 15 | -------------------------------------------------------------------------------- /src/adapters/wepiggy/index.ts: -------------------------------------------------------------------------------- 1 | import * as arbitrum from '@adapters/wepiggy/arbitrum' 2 | import * as bsc from '@adapters/wepiggy/bsc' 3 | import * as ethereum from '@adapters/wepiggy/ethereum' 4 | import * as optimism from '@adapters/wepiggy/optimism' 5 | import * as polygon from '@adapters/wepiggy/polygon' 6 | import type { Adapter } from '@lib/adapter' 7 | 8 | const adapter: Adapter = { 9 | id: 'wepiggy', 10 | arbitrum, 11 | bsc, 12 | ethereum, 13 | optimism, 14 | polygon, 15 | } 16 | 17 | export default adapter 18 | -------------------------------------------------------------------------------- /src/adapters/whiteheart/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'whiteheart', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/wigoswap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as fantom from './fantom' 4 | 5 | const adapter: Adapter = { 6 | id: 'wigoswap', 7 | fantom, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/winr-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'winr-protocol', 7 | arbitrum: arbitrum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/wombat-exchange/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as bsc from './bsc' 5 | 6 | const adapter: Adapter = { 7 | id: 'wombat-exchange', 8 | bsc, 9 | arbitrum, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/woofi/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as avalanche from './avalanche' 5 | import * as bsc from './bsc' 6 | import * as ethereum from './ethereum' 7 | import * as fantom from './fantom' 8 | import * as optimism from './optimism' 9 | import * as polygon from './polygon' 10 | 11 | const adapter: Adapter = { 12 | id: 'woofi', 13 | avalanche, 14 | arbitrum, 15 | bsc, 16 | polygon, 17 | optimism, 18 | fantom, 19 | ethereum, 20 | } 21 | 22 | export default adapter 23 | -------------------------------------------------------------------------------- /src/adapters/x2y2/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'x2y2', 7 | ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/yama-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'yama-finance', 7 | arbitrum: arbitrum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/yamato-protocol/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'yamato-protocol', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/yearn-finance/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | import * as base from './base' 5 | import * as ethereum from './ethereum' 6 | import * as fantom from './fantom' 7 | import * as optimism from './optimism' 8 | 9 | const adapter: Adapter = { 10 | id: 'yearn-finance', 11 | arbitrum, 12 | ethereum, 13 | fantom, 14 | optimism, 15 | base, 16 | } 17 | 18 | export default adapter 19 | -------------------------------------------------------------------------------- /src/adapters/yieldflow/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'yieldflow', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/yoshi-exchange/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as bsc from './bsc' 4 | import * as fantom from './fantom' 5 | 6 | const adapter: Adapter = { 7 | id: 'yoshi-exchange', 8 | fantom, 9 | bsc, 10 | } 11 | 12 | export default adapter 13 | -------------------------------------------------------------------------------- /src/adapters/zerolend/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as zksyncEra from './zksync-era' 4 | 5 | const adapter: Adapter = { 6 | id: 'zerolend', 7 | 'zksync-era': zksyncEra, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/zharta/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'zharta', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/zircuit-staking/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as ethereum from './ethereum' 4 | 5 | const adapter: Adapter = { 6 | id: 'zircuit-staking', 7 | ethereum: ethereum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/zoodao/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'zoodao', 7 | arbitrum: arbitrum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/adapters/zyberswap/index.ts: -------------------------------------------------------------------------------- 1 | import type { Adapter } from '@lib/adapter' 2 | 3 | import * as arbitrum from './arbitrum' 4 | 5 | const adapter: Adapter = { 6 | id: 'zyberswap', 7 | arbitrum, 8 | } 9 | 10 | export default adapter 11 | -------------------------------------------------------------------------------- /src/db/marshall.ts: -------------------------------------------------------------------------------- 1 | Object.defineProperties(BigInt.prototype, { 2 | toJSON: { 3 | value: function (this: bigint) { 4 | return this.toString() 5 | }, 6 | configurable: true, 7 | }, 8 | }) 9 | -------------------------------------------------------------------------------- /src/handlers/corsPreflight.ts: -------------------------------------------------------------------------------- 1 | import { response } from '@handlers/response' 2 | import type { APIGatewayProxyHandler } from 'aws-lambda' 3 | 4 | export const handler: APIGatewayProxyHandler = async () => { 5 | return response({ 6 | statusCode: 200, 7 | body: {}, 8 | headers: { 9 | 'cache-control': 'max-age=31536000, s-maxage=31536000', // Caches preflight req on browser and proxy for 1 year 10 | 'access-control-allow-methods': 'OPTIONS,GET', 11 | 'access-control-allow-headers': 12 | 'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token,X-Amz-User-Agent', 13 | }, 14 | }) 15 | } 16 | -------------------------------------------------------------------------------- /src/handlers/fallback.ts: -------------------------------------------------------------------------------- 1 | import { response } from '@handlers/response' 2 | import type { APIGatewayProxyHandler } from 'aws-lambda' 3 | 4 | export const handler: APIGatewayProxyHandler = async () => { 5 | return response({ 6 | statusCode: 400, 7 | body: { message: "Endpoint doesn't exist" }, 8 | maxAge: 3600, 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /src/labels/ens/index.ts: -------------------------------------------------------------------------------- 1 | import { getRPCClient } from '@lib/chains' 2 | 3 | export function fetchENSName(address: `0x${string}`) { 4 | return getRPCClient({ chain: 'ethereum' }).getEnsName({ address }) 5 | } 6 | -------------------------------------------------------------------------------- /src/labels/index.ts: -------------------------------------------------------------------------------- 1 | export type LabelSource = 'ens' | 'llamafolio' | 'opensea' 2 | -------------------------------------------------------------------------------- /src/labels/llamafolio/index.ts: -------------------------------------------------------------------------------- 1 | export interface LlamaLabel { 2 | labels?: string[] 3 | links?: { [key: string]: string } 4 | } 5 | 6 | export async function fetchLlamaFolioLabel(address: `0x${string}`): Promise { 7 | const response = await fetch( 8 | `https://raw.githubusercontent.com/llamafolio/llamafolio-labels/main/labels/${address}.json`, 9 | ) 10 | 11 | if (response.ok) { 12 | const json = await response.json() 13 | return json 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/labels/opensea/index.ts: -------------------------------------------------------------------------------- 1 | export async function fetchOpenSeaUser(address: `0x${string}`): Promise { 2 | const response = await fetch(`https://api.opensea.io/user/${address}?format=json`) 3 | 4 | if (response.ok) { 5 | const json = await response.json() 6 | return json.username 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/lib/cache.ts: -------------------------------------------------------------------------------- 1 | export interface Cache { 2 | has(key: K): boolean 3 | set(key: K, value: V): void 4 | get(key: K): V | undefined 5 | } 6 | -------------------------------------------------------------------------------- /src/lib/contract.ts: -------------------------------------------------------------------------------- 1 | export const ADDRESS_ZERO: `0x${string}` = '0x0000000000000000000000000000000000000000' 2 | 3 | export function isHex(string_: string): string_ is `0x${string}` { 4 | const regexp = /^0x[\dA-Fa-f]{40}$/ 5 | return regexp.test(string_) 6 | } 7 | -------------------------------------------------------------------------------- /src/lib/curve/registries.ts: -------------------------------------------------------------------------------- 1 | import type { BaseContext } from '@lib/adapter' 2 | import type { Chain } from '@lib/chains' 3 | 4 | const chainId = (chain: Chain) => (chain === 'gnosis' ? 'xdai' : chain) 5 | 6 | export async function getCurveRegistriesIds(ctx: BaseContext) { 7 | const API_URL = 'https://api.curve.fi/api/getPlatforms' 8 | const { data } = await fetch(API_URL).then((res) => res.json()) 9 | 10 | return data.platforms[chainId(ctx.chain)] 11 | } 12 | -------------------------------------------------------------------------------- /src/lib/error.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Error utilities 3 | */ 4 | 5 | export function raise(error: unknown): never { 6 | console.error('raise', error) 7 | throw new Error(typeof error === 'string' ? error : JSON.stringify(error, undefined, 2)) 8 | } 9 | -------------------------------------------------------------------------------- /src/lib/logger.ts: -------------------------------------------------------------------------------- 1 | import pino from 'pino' 2 | 3 | const defaultLogger = pino() 4 | 5 | export default defaultLogger 6 | -------------------------------------------------------------------------------- /src/lib/nft/blacklist.ts: -------------------------------------------------------------------------------- 1 | export const BLACKLISTED_TRASH = [ 2 | // uses weird non-ascii characters that mess up editors 3 | '0x463d56ffd4d463e22444a03072ec0b75e1e49af2', 4 | ] 5 | -------------------------------------------------------------------------------- /src/lib/nft/class.ts: -------------------------------------------------------------------------------- 1 | import type { Chain } from '@lib/chains' 2 | import type { Address } from 'viem' 3 | 4 | export abstract class UserNFTs { 5 | constructor( 6 | public readonly walletAddress: Address, 7 | public readonly chain: Chain, 8 | ) {} 9 | 10 | abstract fetch(): Promise 11 | } 12 | -------------------------------------------------------------------------------- /src/lib/nft/types.ts: -------------------------------------------------------------------------------- 1 | export const NFT_ERC_TYPES = ['erc721', 'erc1155'] as const 2 | 3 | export type NFT_ERC_TYPE = (typeof NFT_ERC_TYPES)[number] 4 | -------------------------------------------------------------------------------- /vitest.config.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | import tsconfigPaths from 'vite-tsconfig-paths' 4 | import { defineConfig } from 'vitest/config' 5 | 6 | export default defineConfig({ 7 | plugins: [tsconfigPaths()], 8 | test: { 9 | globals: true, 10 | allowOnly: true, 11 | globalSetup: ['./test/setup/global.ts'], 12 | env: { 13 | NODE_ENV: 'test', 14 | // disable experimental node warnings 15 | NODE_NO_WARNINGS: '1', 16 | }, 17 | deps: { registerNodeLoader: true }, 18 | }, 19 | }) 20 | --------------------------------------------------------------------------------