{"_id":"@avareum/farm-info","_rev":"2-a9911d51fbad23ebd643f7e64627378e","name":"@avareum/farm-info","dist-tags":{"latest":"0.29.0"},"versions":{"0.28.0":{"name":"@avareum/farm-info","version":"0.28.0","main":"lib/index.js","types":"lib","license":"MIT","author":{"name":"avareum"},"scripts":{"test-dev":"jest --clearCache && jest --watch --runInBand --detectOpenHandles --no-cache ","test":"jest","format":"prettier --write \"src/**/*.ts\"","lint":"tslint -p tsconfig.json","clean":"rm -rf lib","coverage":"jest --coverage","bump-minor":"git commit -am \"Version bump to $(npm version minor | cut -c 2-)\" > /dev/null 2>&1 && git push","bump-patch":"git commit -am \"Version bump to $(npm version patch | cut -c 2-)\" > /dev/null 2>&1 && git push","prebuild":"npm run clean","build":"tsc --project tsconfig.build.json","prepare":"npm run build","prepublishOnly":"npm test && npm run lint","dev":"tsc -b -w","prerelease":"export VERSION=$(grep '\"version\"' package.json | cut -d '\"' -f 4 | head -n 1) && export GIT_MERGE_AUTOEDIT=no && echo Release $VERSION && git fetch . develop:main && git push --all --follow-tags && unset GIT_MERGE_AUTOEDIT","release":"npm run build && npm publish --access=public"},"devDependencies":{"@types/jest":"^27.4.1","@types/node-fetch":"^3.0.3","jest":"^27.5.1","ts-jest":"^27.1.3","tslint":"^6.1.3","typescript":"^4.5.5"},"peerDependencies":{"@defillama/sdk":"^2.3.46","@ethersproject/units":"^5.5.0","@undefiorg/pancake-swap-sdk":"2.4.0","@uniswap/token-lists":"^1.0.0-beta.27","@uniswap/v2-periphery":"^1.1.0-beta.0","bignumber.js":"^9.0.2","dotenv":"^16.0.0","ethers":"^5.5.4","lodash":"^4.17.21","node-fetch":"2","web3":"^1.7.0","web3-core-helpers":"^1.7.0"},"gitHead":"bc525bb3fd0768e41269a960789233dc02c5b303","description":"Decode Defi Farm for human readable.","_id":"@avareum/farm-info@0.28.0","_nodeVersion":"16.13.0","_npmVersion":"8.5.0","dist":{"integrity":"sha512-KCiWSTzA7erv0SXeDmiqqcrtH8/r2dB1fGPPsNIZ2SG2IC7uTZ/Urvi7kim7iCHd13gwEbVdPGW+FmrbC7lbAw==","shasum":"55c8a62e8fcc0b1d43d20b7c7116844054001c01","tarball":"https://registry.npmjs.org/@avareum/farm-info/-/farm-info-0.28.0.tgz","fileCount":520,"unpackedSize":1768161,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiHaYmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpHPw/+Mg3rO8Ki+hOAxiXkBg4Z2OuhUyk0+qnFCSQoFTkKq/NTZt/p\r\n/+gKdmbfEtjOEwh5s5oGQj46MgLn0nKrWF1Dvp3OiJ/Vt1oTKJBmky3y0Z33\r\n/4tzgzIeJMDWPgqOs3J+GArKL+Xx8xyt6pDWO24DDku+AZqGUqR4R/iY96ce\r\n6AZTc+SWrFtX80tS6BuTZZoqGjAdpEhREjYOgsgV5UFVebzReGkxOJdE5Zox\r\n0VHjnXz6E8Vr9sfKSyjNYTHdBCUEKNtB01MSSJO4KocxN51Y71a+Ty39C9F0\r\npJ3sEGh+RxoAQBJS4nQKD5U51LGWzfBs0V7CYtLnT6b5GlQEaTCpdAWXqs6a\r\nIjbtWtC2ZZtVLKGy6HrMYfWjUKV9q5YX/iysKzfra9y7PiVeSdpK8lM7XBYd\r\nYnlTnDj+Pz6HEwn96tkqUC57NttX6uvNsV5IilG93Mr19+iJe/VStGEUaZ34\r\n8iU8AM84hbtm8slLQw/FvJygn80hnA+94f7fjtDw1Z8XXMUSZ+2V5DMfgqDr\r\n+WrfvThGxiJKJkI+iJO6Hiq7m/BFnxxbQ/DiwUyoqsYr6xJefn9Nnr/61YSo\r\nDKtrf863gHOyUX+IcyFHRThPaKdZLXNiESaKYQfsIXLZfNj5W4S8ZrnWrkUT\r\nNzr6E4GCrGCBDMAHB2lxG3R9HrglT8OyVUE=\r\n=vbHE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEuiHvkKhpdCCmEpx09kHrtfvAGTGhdOwkxL24ZtYsQkAiBRCDhPwhr78lHt3Hd3YYeSqJo4MW5iJjeFHQbT1aWaHA=="}]},"_npmUser":{"name":"katopz","email":"katopz@gmail.com"},"directories":{},"maintainers":[{"name":"katopz","email":"katopz@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/farm-info_0.28.0_1646110246613_0.4641577325611026"},"_hasShrinkwrap":false},"0.29.0":{"name":"@avareum/farm-info","version":"0.29.0","main":"lib/index.js","types":"lib","license":"MIT","author":{"name":"avareum"},"scripts":{"test-dev":"jest --clearCache && jest --watch --runInBand --detectOpenHandles --no-cache ","test":"jest","format":"prettier --write \"src/**/*.ts\"","lint":"tslint -p tsconfig.json","clean":"rm -rf lib","coverage":"jest --coverage","bump-minor":"git commit -am \"Version bump to $(npm version minor | cut -c 2-)\" > /dev/null 2>&1 && git push","bump-patch":"git commit -am \"Version bump to $(npm version patch | cut -c 2-)\" > /dev/null 2>&1 && git push","prebuild":"npm run clean","build":"tsc --project tsconfig.build.json","prepare":"npm run build","prepublishOnly":"npm test && npm run lint","dev":"tsc -b -w","prerelease":"export VERSION=$(grep '\"version\"' package.json | cut -d '\"' -f 4 | head -n 1) && export GIT_MERGE_AUTOEDIT=no && echo Release $VERSION && git fetch . develop:main && git push --all --follow-tags && unset GIT_MERGE_AUTOEDIT","release":"npm run build && npm publish --access=public"},"devDependencies":{"@types/jest":"^27.4.1","@types/node-fetch":"^3.0.3","jest":"^27.5.1","ts-jest":"^27.1.3","tslint":"^6.1.3","typescript":"^4.5.5"},"dependencies":{"@defillama/sdk":"^2.3.46","@ethersproject/units":"^5.5.0","@gelatonetwork/limit-orders-lib":"^4.3.0-alpha.1","@pancakeswap/sdk":"^2.4.5","@uniswap/token-lists":"^1.0.0-beta.27","@uniswap/v2-periphery":"^1.1.0-beta.0","bignumber.js":"^9.0.2","dotenv":"^16.0.0","ethers":"^5.5.4","local-storage":"^2.0.0","lodash":"^4.17.21","node-fetch":"2","numeral":"^2.0.6","web3":"^1.7.0","web3-core-helpers":"^1.7.0"},"gitHead":"ae0cbebeb0ecad1dbf772e49cd4f5b67c666eb7f","description":"Decode Defi Farm for human readable.","_id":"@avareum/farm-info@0.29.0","_nodeVersion":"16.13.0","_npmVersion":"8.5.0","dist":{"integrity":"sha512-N/xLZm9yngPhCz3/xWGlg9OqnKl/DYWAYVcJtWyFUsJ+kl0DAUjPLMfeT/a6BIL/4TD8BhPkr/6EdP1apW5wWg==","shasum":"39b831aa6f7b577d7d759f80ff27b3570f590313","tarball":"https://registry.npmjs.org/@avareum/farm-info/-/farm-info-0.29.0.tgz","fileCount":920,"unpackedSize":5492600,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGx5A9QTN0gQa+Chc+ZwIhf11wVbCQyCO7P3h2m+n3sWAiA+jaPEyOGbrUoCboJMtUjkSaOWSuEiHDR+DRrjJKF2aA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiluZ0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoi3A//ULdFvp5YVkRWqC1ZFu5rdrR1mKnZgl8ebn/EeqMxdjubDx0p\r\n+5mYPihulOIPNjZQY0iIJmPiA1h0nAHYYc/c+f6xgriOUywW/YgGTendawNK\r\nHp4iFSuez7wVlapU6KIKhV33w4dQC/SBTPNjpyr7FF3eT9QhumTWeblJZoTP\r\nBYs+2VkSsycxmDBumy6aJAT6jYtRQrR2Ylth6ZTOUS7M93aS/oly4F55Hx1g\r\n3ebrvkBr+fGV+YuwDOggxGja8eaW/Qb1Ow6c6fmJgmEz9xL3CuDCa6W4H3iF\r\nogqi2R46qOZsoOoLMe29BbxpnzVpYAREktAHRaprDiiq2uSsdXuhWErcz9fm\r\nbiBn/ethTeWwri6ZV90qGnMyqOl1I/IVWWwk+wH2UZuwuQSP1PuWN5Eg4Blx\r\nUClK998LTWTC+jrL/y/o99KRzDGejNJ/wugO6PituDGa3xm+Y8geVvhzJQPv\r\ncTWthrhQbQzLWpG5SJLQeeReCE5mGy/5KITiSXFlTVBoeq1LBnxN/aQppJHv\r\nzrmHZSKGyS/IRlMWnA2KoL/CATrdTK3RiXGnJr40U/dsa5BeXSKGYz7dXH0r\r\ngwxViXHbRrnnIgo36GfbPr+Gb8GQcrZoewv963S6cyOYh8ADUUOeO6MYB2TV\r\nKLci7C/hz6pov4be7vkYlEnLonEiOwajBpg=\r\n=Z2dv\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"katopz","email":"katopz@gmail.com"},"directories":{},"maintainers":[{"name":"katopz","email":"katopz@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/farm-info_0.29.0_1654056564501_0.7623635033094456"},"_hasShrinkwrap":false}},"time":{"created":"2022-03-01T04:50:46.541Z","0.28.0":"2022-03-01T04:50:46.918Z","modified":"2022-06-01T04:09:24.745Z","0.29.0":"2022-06-01T04:09:24.663Z"},"maintainers":[{"name":"katopz","email":"katopz@gmail.com"}],"description":"Decode Defi Farm for human readable.","author":{"name":"avareum"},"license":"MIT","readme":"# DeFarm\n\nDecode Defi Farm for human readable.\n\n## Features\n\n- [x] `ALPACA`: fetchLendsBySymbols\n- [x] `CAKE`: fetchFarmsWithAPRBySymbols\n- [x] `CAKE`: fetchTokenUSDPricesBySymbols\n- [x] `ALPACA`: `USER` Get user's active position with addition info.\n- [x] `CAKE`: `USER` fetchPoolReward\n\n## TODO\n\n- [x] `ALPACA`: `USER` Get account tx to get investment information.\n\n## Installation\n\n```\nnpm\n```\n\n## Development\n\n```\nnpm dev\n```\n\n## Test\n\n```\nnpm test\nnpm test-dev\n```\n\n## Release\n\n```\nnpm login\nnpm run release\n```\n\n## Example: USD Price\n\n### `CAKE` price from pancakeswap\n\n```typescript\nimport { pancakeswap } from \"@avareum/farm-info\";\nconst results = await pancakeswap.fetchTokenUSDPricesBySymbols([\"CAKE\"]);\nconsole.log(results);\n```\n\n### `ALPACA`, `ETH`, `BNB` prices from pancakeswap\n\n```typescript\nimport { pancakeswap } from \"@avareum/farm-info\";\nconst results = await pancakeswap.fetchTokenUSDPricesBySymbols([\n  \"ALPACA\",\n  \"ETH\",\n  \"BNB\",\n]);\nconsole.log(results);\n```\n\n### `ibALPACA` price from pancakeswap\n\n```typescript\nimport { alpaca } from \"@avareum/farm-info\";\n\n// It's a good idea to check for supported symbols before calling fetchTokenUSDPricesBySymbols\nconst supportedSymbols = alpaca.getSupportedUSDSymbols();\nconsole.log(supportedSymbols);\n\n// Better use to fetch only supported `ibToken` prices\nconst [ibALPACA] = await alpaca.fetchTokenUSDPricesBySymbols([\"ibALPACA\"]);\nconsole.log(results);\n```\n\n---\n\n## Example: Farm's info\n\n### `ALPACA` lend info w/ price\n\n```typescript\nimport { alpaca } from \"@avareum/farm-info\";\nconst results = await alpaca.fetchLendsBySymbols([\"ALPACA\"]);\nconsole.log(results);\n```\n\n### `CAKE-BNB` pool info w/ price + APR\n\n```typescript\nimport { pancakeswap } from \"@avareum/farm-info\";\nconst results = await pancakeswap.fetchFarmsWithAPRBySymbols([\"CAKE-BNB LP\"]);\nconsole.log(results);\n```\n\n---\n\n## Example: User's info\n\n### Get user balance\n\n```typescript\nimport { alpaca } from \"@avareum/farm-info\";\nconst balances = await alpaca.fetchUserBalance(\n  \"0x8155430e4860e791aeddb43e4764d15de7e0def1\"\n);\nconsole.log(results);\n```\n\n### Get user related farm info\n\n```typescript\nimport { alpaca } from \"@avareum/farm-info\";\nconst lends = await alpaca.fetchUserLends(\n  \"0x8155430e4860e791aeddb43e4764d15de7e0def1\"\n);\nconst stakes = await alpaca.fetchUserStakes(\n  \"0x8155430e4860e791aeddb43e4764d15de7e0def1\"\n);\n```\n\n### TODO\n\n- [ ] fix wrong symbol name which grab from event.\n- [ ] Support `addCollateral` with debt.\n- [ ] summary `stake`, `lend`.\n- [ ] Define `liquidate` position state.\n- [ ] Add all `kill` related support.\n- [ ] Use `0x0002e89a801bf95a131fbbbdfd3097fa84809d7c` for stress kill test.\n- [ ] `kill` in action https://bscscan.com/tx/0xc14748b07056596783c7054dc1b345283aa4e39846ba13fb7084621b7f37f1f8\n- [ ] `kill` list https://explorer.bitquery.io/bsc/txs/calls?contract=0xd7d069493685a581d27824fc46eda46b7efc0063&method=d29a0025\n- [ ] add `AUSD` support.\n- [ ] more unit test!\n","readmeFilename":"README.md"}