{"_id":"@chaos-labs/chainlink-hardhat-plugin","_rev":"16-2c9cefc41403aeddd7a34976e2c0a96c","name":"@chaos-labs/chainlink-hardhat-plugin","description":"Hardhat plugin for configuring Chainlink price feed return values when forking mainnet.","dist-tags":{"latest":"0.0.6"},"versions":{"0.0.2":{"name":"@chaos-labs/chainlink-hardhat-plugin","version":"0.0.2","keywords":["ethereum","smart-contracts","hardhat","hardhat-plugin"],"author":{"name":"Chaos Labs Inc."},"license":"MIT","_id":"@chaos-labs/chainlink-hardhat-plugin@0.0.2","maintainers":[{"name":"slava_scp","email":"vyacheslav@sweetcode.pro"},{"name":"yhayun","email":"johnhayun@chaoslabs.xyz"},{"name":"kpr-labs","email":"omer@kprlabs.io"}],"homepage":"https://github.com/ChaosLabsInc/chainlink-price-feed-config-hardhat-plugin#readme","bugs":{"url":"https://github.com/ChaosLabsInc/chainlink-price-feed-config-hardhat-plugin/issues"},"dist":{"shasum":"880266735825925d3ac998edf74eba94c5b8f4d9","tarball":"https://registry.npmjs.org/@chaos-labs/chainlink-hardhat-plugin/-/chainlink-hardhat-plugin-0.0.2.tgz","fileCount":46,"integrity":"sha512-BGj0gfM8W4UE7XXY4EDIjdkv232YgUNhA4p+3tNgv9KEoZYv651+aVhKhdU9ei8zSN8+8Vd9zOsRlm5YTl/sUg==","signatures":[{"sig":"MEUCIQDuWtLm8R+UXM5YgNoYQ8kgYp8P5VfiuMvspZQLrBHn4wIgPYPCoRBkDnvIUAWRuzbdsi4D3odluUIGZvJNNm4TgEA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":65099,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4A+LCRA9TVsSAnZWagAA2jYP/i7lH9iYHJRnBSPpJHoi\nZbnjBvyKMP95j+8WmKtbKqhF/GqQ73uPiKFiwpjSgEjK68w8LuBJePMJtmNW\nn7MgNVd5rY/qtr4s5y4SxnHhft3X0fjscNYNxV25zzCdkoF1ZVVNG4cY2QuK\naDi2zFUCMlD+az6U34ax+cVBVlWM0MU3pf/8c+PLrBDbci18ZD28WpknXo3G\nQzwu5ZEZhiX3s45mx0gSscE0ll0x2rEh1TK7Zrd96X605rWi3s95VXSJSXDH\nUpa4ivq7XJ3IiKDTtbmbijPRYO7zNu85Bpk2GHK/xv7VoUAS5tfI8jArYirB\nq2zPSXNfl+pRmPFc3yoJM1oAdE+K+Lg0YNoDjPUnifHt7Csyh3cCexQ+1A6E\nWOWvVlI0XeA9jPLHaeu1Gi8gQ7Or8Bje9JSW9JUvVbhaqJLgsfAEYbttvi6V\nD2PMAsLQ1tJEcmm+QPRnoLDi2UeIEetHPmgvkmaTo7Ca35wUbK9ND12RADvK\nquM2ho4sn3as6Zq+9Qo28ET0wPkHByEVWPGrhGVvc8HzZOy+oSizc0E9Zvfb\nnUwma9XChfh7Eaah60D3LngfgLpMOi4HgEhsHfxP3IIGzd+KcIYG3ya6Vs9H\n8sDiIHxhyGi+IUkBZbpFTYTaVebUa5bi6GKciRV22g0QJ5JPMuZKSB7JHRZg\noyjt\r\n=EK01\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"98e93a6b2eab9e37493b3940b8304d07ef7b26a0","scripts":{"lint":"tslint --config tslint.json --project tsconfig.json","test":"mocha --exit --recursive 'test/**/*.test.ts'","build":"tsc","watch":"tsc -w","prepare":"npm run build","lint:fix":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts}' && tslint --fix --config tslint.json --project tsconfig.json","prepublishOnly":"npm test"},"_npmUser":{"name":"kpr-labs","email":"omer@kprlabs.io"},"repository":{"url":"git+https://github.com/ChaosLabsInc/chainlink-price-feed-config-hardhat-plugin.git","type":"git"},"_npmVersion":"8.1.0","description":"Hardhat plugin for configuring Chainlink price feed return values when forking mainnet.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"axios":"^0.24.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^7.1.2","ethers":"^5.5.3","tslint":"^5.16.0","hardhat":"^2.0.0","ts-node":"^8.1.0","prettier":"2.0.5","typescript":"^4.0.3","@types/chai":"^4.1.7","@types/node":"^8.10.38","@types/mocha":"^5.2.6","@types/fs-extra":"^5.0.4","tslint-config-prettier":"^1.18.0","tslint-plugin-prettier":"^2.0.1","@nomiclabs/hardhat-ethers":"^2.0.4"},"peerDependencies":{"ethers":"^5.5.3","hardhat":"^2.0.0","@nomiclabs/hardhat-ethers":"^2.0.4"},"_npmOperationalInternal":{"tmp":"tmp/chainlink-hardhat-plugin_0.0.2_1642073995667_0.502972301571073","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"@chaos-labs/chainlink-hardhat-plugin","version":"0.0.3","keywords":["ethereum","smart-contracts","hardhat","hardhat-plugin"],"author":{"name":"Chaos Labs Inc."},"license":"MIT","_id":"@chaos-labs/chainlink-hardhat-plugin@0.0.3","maintainers":[{"name":"slava_scp","email":"vyacheslav@sweetcode.pro"},{"name":"yhayun","email":"johnhayun@chaoslabs.xyz"},{"name":"kpr-labs","email":"omer@kprlabs.io"}],"homepage":"https://github.com/ChaosLabsInc/chainlink-price-feed-config-hardhat-plugin#readme","bugs":{"url":"https://github.com/ChaosLabsInc/chainlink-price-feed-config-hardhat-plugin/issues"},"dist":{"shasum":"384878410021c81671ff67b4dff682f11c4147d9","tarball":"https://registry.npmjs.org/@chaos-labs/chainlink-hardhat-plugin/-/chainlink-hardhat-plugin-0.0.3.tgz","fileCount":46,"integrity":"sha512-d+6fT2mkdYIyCuRN7ufd6Zw2FzveMFITO+EZdyXgc2VKpjBMI332HoYQA4Y8V6qGsky3D7pHJz792Kd7pGSiRA==","signatures":[{"sig":"MEUCIQD+gt4REgWqoWXCMq9e/fCe1Hufku2Knxqu+BNqSfNFOgIgU5RbsksgA+99HzDmI9Q3iLAUPWqs/qyFmahC/ENkItw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":65099,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4BIICRA9TVsSAnZWagAAuiUP/1SM+cuhQUmGIzryNnMf\naxQ0Vsk0gT15ptBGrSb7LqIFtT91QiYiHYbPjC8EZfQfaLE2etZBOet2V2kP\nz7B7knziB4+a9M9PrApAwdnl8w5cTti6yYu+wgSEXYjX9VmsrdXxBrpkVQRB\nKXaa6oovTcIbo1rkWPaVpDNijhPxVql/VSekKNcIxbCPB+s5oDqQWCe4YAc3\nTVLfKyrQeeX/6N99x87p9ryOT3sSZmdY+jAOBFkfNrAp8SoJ9Z1UCRZDe12u\ncAeKZpTRqDQwDUUhKffwOdpUEiFqb8ExAzRRaymv0dAy4hp0wtlDHVY11ImD\nnUVMMSP/z5HQtARCRYJ+LlRYucGBHU//L7/KTi/zLPYY2+INvBsS53qhx0JW\njDWfqdi+61oy5nGJdXiOyqqzyK61Kbh5Dd1rUTfeQfNR1umXGQoqjlO5M/1k\nhCKHvMVswcWb0TBVxZ3Aj9kzZJFafBHapOxGkpRag0FO63Now77Q7MZjKnuY\n+lqWGPD/Ul6gzrnvfUXHm5Z9H9SDPIrjjqwwtqRsMhnKYZCODgCCm7rLPcZp\nmAxaDG68YWLHgt0N8YlqL99dcTEC8CU5wKftttqFHq0cnVMmQPP4+bBK0w+4\nDsRSEuSuXswkf3HEaProFf2kmspW6gq+eG50nNxniApbrfBuGaTC3Qy+n2gl\nA+i/\r\n=cz30\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"a8fb3f880e636d89e655cceae9393ab618a4ea4d","scripts":{"lint":"tslint --config tslint.json --project tsconfig.json","test":"mocha --exit --recursive 'test/**/*.test.ts'","build":"tsc","watch":"tsc -w","prepare":"npm run build","lint:fix":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts}' && tslint --fix --config tslint.json --project tsconfig.json","prepublishOnly":"npm test"},"_npmUser":{"name":"kpr-labs","email":"omer@kprlabs.io"},"repository":{"url":"git+https://github.com/ChaosLabsInc/chainlink-price-feed-config-hardhat-plugin.git","type":"git"},"_npmVersion":"8.1.0","description":"Hardhat plugin for configuring Chainlink price feed return values when forking mainnet.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"axios":"^0.24.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^7.1.2","ethers":"^5.5.3","tslint":"^5.16.0","hardhat":"^2.0.0","ts-node":"^8.1.0","prettier":"2.0.5","typescript":"^4.0.3","@types/chai":"^4.1.7","@types/node":"^8.10.38","@types/mocha":"^5.2.6","@types/fs-extra":"^5.0.4","tslint-config-prettier":"^1.18.0","tslint-plugin-prettier":"^2.0.1","@nomiclabs/hardhat-ethers":"^2.0.4"},"peerDependencies":{"ethers":"^5.5.3","hardhat":"^2.0.0","@nomiclabs/hardhat-ethers":"^2.0.4"},"_npmOperationalInternal":{"tmp":"tmp/chainlink-hardhat-plugin_0.0.3_1642074632790_0.7110588479585109","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"@chaos-labs/chainlink-hardhat-plugin","version":"0.0.4","keywords":["ethereum","smart-contracts","hardhat","hardhat-plugin"],"author":{"name":"Chaos Labs Inc."},"license":"MIT","_id":"@chaos-labs/chainlink-hardhat-plugin@0.0.4","maintainers":[{"name":"slava_scp","email":"vyacheslav@sweetcode.pro"},{"name":"yhayun","email":"johnhayun@chaoslabs.xyz"},{"name":"kpr-labs","email":"omer@kprlabs.io"}],"homepage":"https://github.com/ChaosLabsInc/chainlink-hardhat-plugin#readme","bugs":{"url":"https://github.com/ChaosLabsInc/chainlink-hardhat-plugin/issues"},"dist":{"shasum":"2f70867bacf4c372c8936c0591a3a6540baf5899","tarball":"https://registry.npmjs.org/@chaos-labs/chainlink-hardhat-plugin/-/chainlink-hardhat-plugin-0.0.4.tgz","fileCount":77,"integrity":"sha512-S+nl7dTqGyN8p8Yf6WxJKxciqB/jUMYzZokd+yB0R04N8cPjXCb1n/qJSxQ81lHVZId2TNwsTpoYxMXSARl3Hg==","signatures":[{"sig":"MEUCIHKKUGUwleTxwor2uuZczH8AVPXxJjOvXLkEB5RYICltAiEAljiPDef9+Q9XP2aRxPQyiApBwKAcGLBd1F6Gi9g4Zuk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":102101,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh/dsQCRA9TVsSAnZWagAA5J4P/A8kQg6twWYfFKH1y1Ic\n5lW9lIEPSN9jm8I20J9PU2m6AdRHNtAilCAelB7WdjqegQ527/zyJdHHS8AU\n/RmOdpv+K1+7dVyDGbknMMhZiPbew/cvrT8rqSuNP7bEP5C5onW6dJYEoLY3\nKw7nNiS88hIxuz9nE415oxbwb1Bj/qoI/JN7dKq8e7PFazfs5pSrjtIFTsxY\nCuO9mW4+/C7mOiG/49ZVrhBvNUJBDfbIsIaZuy3evyzixh9OC+ULjPBj2Hg3\nVSnlZbwxtLoh/gBg9Ui2RdzZfGWFuIq5tF78+E4u+x3CcyBg+vMTKvnhcmRg\nZAIpNzQ2BIc+c81ZwxnyqlqFuKFT0VZZ5ir7113E2xsf1K7s/5gx56Xqf12s\n1U2I2PMXB7US4aJOuYp1l+cI3fSzEZepMhs1tRgOiicHqqKmq4iUtYlpsXGJ\nYY2xrtFtvl/5OU+shIfmyZa0OnWEBgFuFZM4cxj9BWfYnlt84/INnLYvVKra\nRcTnLMI7pfVtTlsrjQf7H92t1lZpNuXLf+VIVUKajurV6yJejmnnGJ+0pBED\nH6BGq7BMcSi97h6RjCWAd9n2Vf+y+qcUcDTZJWgDcVF/7D/7Rb9ArsJwaJw/\nVHpBYfAwZb+6VQbRybXt5oxI441i3x9TGV7yjUTyfH3FEC4kyHaTdkfcwNn8\nn0b0\r\n=fNUz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"f6f7dc48f310e6cb223077bd8dbf762755cae65c","scripts":{"lint":"tslint --config tslint.json --project tsconfig.json","test":"npm run build && mocha --exit --recursive 'test/**/*.test.ts'","build":"tsc","watch":"tsc -w","prepare":"npm run build","lint:fix":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts}' && tslint --fix --config tslint.json --project tsconfig.json","prepublishOnly":"npm test"},"_npmUser":{"name":"kpr-labs","email":"omer@kprlabs.io"},"repository":{"url":"git+https://github.com/ChaosLabsInc/chainlink-hardhat-plugin.git","type":"git"},"_npmVersion":"8.1.0","description":"Hardhat plugin for configuring Chainlink price feed return values when forking mainnet.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"axios":"^0.24.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^7.1.2","ethers":"^5.5.3","tslint":"^5.16.0","hardhat":"^2.0.0","ts-node":"^8.1.0","prettier":"2.0.5","typescript":"^4.0.3","@types/chai":"^4.1.7","@types/node":"^8.10.38","@types/mocha":"^5.2.6","@types/fs-extra":"^5.0.4","tslint-config-prettier":"^1.18.0","tslint-plugin-prettier":"^2.0.1","@nomiclabs/hardhat-ethers":"^2.0.4"},"peerDependencies":{"ethers":"^5.5.3","hardhat":"^2.0.0","@nomiclabs/hardhat-ethers":"^2.0.4"},"_npmOperationalInternal":{"tmp":"tmp/chainlink-hardhat-plugin_0.0.4_1644026640040_0.8544972048984345","host":"s3://npm-registry-packages"}},"0.0.5":{"name":"@chaos-labs/chainlink-hardhat-plugin","version":"0.0.5","keywords":["ethereum","smart-contracts","hardhat","hardhat-plugin"],"author":{"name":"Chaos Labs Inc."},"license":"MIT","_id":"@chaos-labs/chainlink-hardhat-plugin@0.0.5","maintainers":[{"name":"nabrod","email":"nabrod@chaoslabs.xyz"},{"name":"slava_scp","email":"vyacheslav@sweetcode.pro"},{"name":"yhayun","email":"johnhayun@chaoslabs.xyz"},{"name":"kpr-labs","email":"omer@kprlabs.io"}],"homepage":"https://github.com/ChaosLabsInc/chainlink-hardhat-plugin#readme","bugs":{"url":"https://github.com/ChaosLabsInc/chainlink-hardhat-plugin/issues"},"dist":{"shasum":"8aaef918fa35b21c1ef2e1ca112b303600f21120","tarball":"https://registry.npmjs.org/@chaos-labs/chainlink-hardhat-plugin/-/chainlink-hardhat-plugin-0.0.5.tgz","fileCount":77,"integrity":"sha512-PjEuf3NlLLlLgnlp1miXy0gY8OWrPFHFAouLkDPLsIWb1pu64BcbJeplAh71BUwfc3akblh50O1bCBAo4O3BxA==","signatures":[{"sig":"MEQCIC8Au1YpBvQYr+ppt8YrYmKuPKtNZnCORmQW5dT5dBWEAiAhfiP4XVcJMHizOMbb9DFbyYbsbf/4nWcMz1eDBcTHCA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":102358,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiAwFqCRA9TVsSAnZWagAAdYQP/3WS4qCtkjuYJr+9x+GB\nu31Q4+4DASX7t7/nw1xVDO91zRlmQQyOCXNi3QJs2UBODli3SEuaZ7EGdqi7\n0vX64xxHC5L3x28YjihCb8A2/IRquDFdEPnqY5zM/GjUWT6zQnvDzNChvI70\ndMv/YO3SgTOkZXayf46ZKy5kj1zl6bka8PDmGBvevYCTXqyI0GlqzSP5Aimr\nfJGqlJbhRfaQzROWgxWmTVmXT6mNpzbQn3UI2SXo4tw3VgtOqco4gWJ0wrBG\nS1YKFnU9h4lsVuYryXsSWGZ8UidTokgmBhJNDV0B84xgDU/+KvUvN5Yh0IwU\nWW+9Eb35b43nLklL+RW7/Nf0nP/6GAYcRFIVzzPURlp/Yn0qS7yjgGOyQavn\nlgdjEWDea61dSL5s+J0oRH8oBBjywT4bSt7WcG5+OKRKldkGtNTswA2nbRLI\nmGEbJ+8MsZzPo6teetEBEgvXpsoGAKHRW/aW44ZkHbWU7Lwu+ymaYQFgPlRN\n1CJKdFIFUR4398WkvBwF1eY6O+PaMqqvA8P4WioDgdce0yvS4ZrdgvRkZYaA\nTRTZgYOWDWYb97Qog2flIiKCi8E7mC3I19oU1UtfkdNSvcrmU+vnp4v5J+v2\nnvoyn4jLQqRB3qcK35z/LVjE0r3jzDAVJE2OuXaLpUnobOoedOtLEA+nymtD\nLqf5\r\n=r2a0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"fd67b9dac768fce37a7e8844ee571e0fe742c3c3","scripts":{"lint":"tslint --config tslint.json --project tsconfig.json","test":"npm run build && mocha --exit --recursive 'test/**/*.test.ts'","build":"tsc","watch":"tsc -w","prepare":"npm run build","lint:fix":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts}' && tslint --fix --config tslint.json --project tsconfig.json","prepublishOnly":"npm test"},"_npmUser":{"name":"kpr-labs","email":"omer@kprlabs.io"},"repository":{"url":"git+https://github.com/ChaosLabsInc/chainlink-hardhat-plugin.git","type":"git"},"_npmVersion":"8.1.0","description":"Hardhat plugin for configuring Chainlink price feed return values when forking mainnet.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"axios":"^0.24.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^7.1.2","ethers":"^5.5.3","tslint":"^5.16.0","hardhat":"^2.0.0","ts-node":"^8.1.0","prettier":"2.0.5","typescript":"^4.0.3","@types/chai":"^4.1.7","@types/node":"^8.10.38","@types/mocha":"^5.2.6","@types/fs-extra":"^5.0.4","tslint-config-prettier":"^1.18.0","tslint-plugin-prettier":"^2.0.1","@nomiclabs/hardhat-ethers":"^2.0.4"},"peerDependencies":{"ethers":"^5.5.3","hardhat":"^2.0.0","@nomiclabs/hardhat-ethers":"^2.0.4"},"_npmOperationalInternal":{"tmp":"tmp/chainlink-hardhat-plugin_0.0.5_1644364138574_0.2499168370523035","host":"s3://npm-registry-packages"}},"0.0.6":{"name":"@chaos-labs/chainlink-hardhat-plugin","version":"0.0.6","keywords":["ethereum","smart-contracts","hardhat","hardhat-plugin"],"author":{"name":"Chaos Labs Inc."},"license":"MIT","_id":"@chaos-labs/chainlink-hardhat-plugin@0.0.6","maintainers":[{"name":"yoavigra","email":"yoav@chaoslabs.xyz"},{"name":"nabrod","email":"nabrod@chaoslabs.xyz"},{"name":"slava_scp","email":"vyacheslav@sweetcode.pro"},{"name":"yhayun","email":"johnhayun@chaoslabs.xyz"},{"name":"kpr-labs","email":"omer@kprlabs.io"}],"homepage":"https://github.com/ChaosLabsInc/chainlink-hardhat-plugin#readme","bugs":{"url":"https://github.com/ChaosLabsInc/chainlink-hardhat-plugin/issues"},"dist":{"shasum":"fa10bfd275161e6ee86ed35fc987783ae2564c5c","tarball":"https://registry.npmjs.org/@chaos-labs/chainlink-hardhat-plugin/-/chainlink-hardhat-plugin-0.0.6.tgz","fileCount":77,"integrity":"sha512-BcJ0LIRQL4Aq3AG+lCtBEraVoWqIuikQz0tGxUzOyUAdMzzzjBNIzgfYLkMkuMYEYOOMt2iukYSjfaSNxcrfgA==","signatures":[{"sig":"MEQCIDXm535mXBmwwn7GK0p/DdSnjenqkpevdOjvzrGd5HxPAiA87FYFaQ+NNPxgINJbBh1kqi7pG45hqC1bffIrFyJnrQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104699,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJin85IACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoOPw/+OUAvlax6gcdU9yY/SH9iphpoipAgtXPVA3E9JvliLl0n6uQ1\r\nDbV8UvAxYkW4UR+CF5pIq2OK886CUfTbi6a9UfPxiuSSeq0CLb0kh2m3hc/z\r\nk3LEarX6U0uSxwhobcQZ11tkB/9MPAQa6tnfo/8kJNW/lEIwWL7O6Y+nt4Tk\r\nz3lYG0/8Y4Z9s9O0kRVURD2+OjEoSqHJ6pBbNlPFLf7vRhW42s0a0ec1Zx7p\r\nRonF0esMKSlR3T08HERXu0Z3cvoF6Y2XBVT2ytR0Nc4XAz/F0e9rSFvfgjmP\r\nPskraVCISLxlRiVNI+0c6FreD2dzYKQ7AN0jP/CJwq8awPehRQcr1g/7dHG2\r\n3HdjCGXwrTOLi4vDaqAFw397XPfsC2QvXM01h+dxG2xE03R0A+zuIeLvg+O+\r\nHg6ygnxbVwzJij9RwVzjhqKH2Mt3k0WAYkzC3kx8XzjjW5lkF0LXPbQIaUnF\r\nc/RoIf/FTY0YypPjxA2N2eA0sQ6f3XEpmjPYT0N92PvL3L63zjy0sgRIQsL6\r\ng4oLLJ8gVfzi05Tsga3m7D2BVl7ckFtnejDEG5fLfdzOlKcmuEeJ2s6o/Lli\r\nWMwK2x8mwcZJKXZqyPahOkBKzgmFrIponqNZnkQKZQpHayunP+naYD7qcuge\r\nUS8quSWMh+Dt4/Eeo0SRpdkiYff2y4FJ4Rg=\r\n=zRMv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"86eb59e88fe5d43e2feff628b3daafa4f7a6cfb2","scripts":{"lint":"tslint --config tslint.json --project tsconfig.json","test":"npm run build && mocha --exit --recursive 'test/**/*.test.ts'","build":"tsc","watch":"tsc -w","prepare":"npm run build","lint:fix":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts}' && tslint --fix --config tslint.json --project tsconfig.json","prepublishOnly":"npm test"},"_npmUser":{"name":"kpr-labs","email":"omer@kprlabs.io"},"repository":{"url":"git+https://github.com/ChaosLabsInc/chainlink-hardhat-plugin.git","type":"git"},"_npmVersion":"8.1.0","description":"Hardhat plugin for configuring Chainlink price feed return values when forking mainnet.","directories":{},"_nodeVersion":"16.13.0","dependencies":{"axios":"^0.24.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^7.1.2","ethers":"^5.5.3","tslint":"^5.16.0","hardhat":"^2.0.0","ts-node":"^8.1.0","prettier":"2.0.5","typescript":"^4.0.3","@types/chai":"^4.1.7","@types/node":"^8.10.38","@types/mocha":"^5.2.6","@types/fs-extra":"^5.0.4","tslint-config-prettier":"^1.18.0","tslint-plugin-prettier":"^2.0.1","@nomiclabs/hardhat-ethers":"^2.0.4"},"peerDependencies":{"ethers":"^5.5.3","hardhat":"^2.0.0","@nomiclabs/hardhat-ethers":"^2.0.4"},"_npmOperationalInternal":{"tmp":"tmp/chainlink-hardhat-plugin_0.0.6_1654640199944_0.6367484443345253","host":"s3://npm-registry-packages"}}},"time":{"created":"2022-01-13T11:39:55.666Z","modified":"2024-06-27T13:06:51.625Z","0.0.2":"2022-01-13T11:39:55.855Z","0.0.3":"2022-01-13T11:50:32.934Z","0.0.4":"2022-02-05T02:04:00.246Z","0.0.5":"2022-02-08T23:48:58.773Z","0.0.6":"2022-06-07T22:16:40.124Z"},"maintainers":[{"email":"yuval@chaoslabs.xyz","name":"zalmen"},{"email":"yoav@chaoslabs.xyz","name":"yoavigra"},{"email":"nabrod@chaoslabs.xyz","name":"nabrod"},{"email":"vyacheslav@sweetcode.pro","name":"slava_scp"},{"email":"omer@kprlabs.io","name":"kpr-labs"}],"author":{"name":"Chaos Labs Inc."},"repository":{"url":"git+https://github.com/ChaosLabsInc/chainlink-hardhat-plugin.git","type":"git"},"keywords":["ethereum","smart-contracts","hardhat","hardhat-plugin"],"license":"MIT","homepage":"https://github.com/ChaosLabsInc/chainlink-hardhat-plugin#readme","bugs":{"url":"https://github.com/ChaosLabsInc/chainlink-hardhat-plugin/issues"},"readme":"![Chaos Labs - Chainlink Collab](https://github.com/ChaosLabsInc/chainlink-hardhat-plugin/blob/main/img/ChaosLabsChainlinkHardhatPlugin.jpg)\n\n## TLDR\n\n- This repository hosts a hardhat plugin for configuring Chainlink Oracle prices in a local hardhat mainnet fork testing environment.\n- The plugin fetches all Mainnet Chainlink Oracle addresses when invoked and makes them accessible for price modification.\n- The only thing the user should supply is the token pair ticker or a price config. Let's explore the different options.\n\n### Set Prices Explicity with the following init config\n\n```js\nawait chainlinkConfig.initChainlinkPriceFeedConfig(\"ETH/USD\", \"Mainnet\");\nawait chainlinkConfig.initChainlinkPriceFeedConfig(\"AAVE/USD\", \"Mainnet\");\nawait chainlinkConfig.initChainlinkPriceFeedConfig(\"ETH/BTC\", \"Mainnet\");\n```\n\n[More on this here!](https://github.com/ChaosLabsInc/chainlink-hardhat-plugin#-usage---set-prices-explicity)\n\n### Set Prices trends with the following config\n\nhttps://user-images.githubusercontent.com/8246234/151700339-b4ca4706-697d-40b9-be7d-f603cd7be6c5.mov\n\n```js\nconst config = {\n  priceDelta: 10,\n  priceFunction: \"volatile\",\n  initialPrice: 0,\n};\nawait chainlinkConfig.initChainlinkPriceFeedConfig(ticker, \"Mainnet\", config);\n```\n\nGrab a config via the [Chainlink portal!](https://chainlink.chaoslabs.xyz/oracle-configuration/chainlink)\n\n[More on this here!](https://github.com/ChaosLabsInc/chainlink-hardhat-plugin#-usage---set-prices-via-configuration)\n\n## Why is Mocking Oracle values useful in testing?\n\nOracle values trigger internal state changes in web3 applications. Currently, when forking mainnent, oracle returns values are constant. This is because the Chainlink protocol only writes updated values to mainnet or public testnets. We want the ability to mock return values easily, so we can test how our contracts / applications react to different types of external data, hence this tool. Below, we provide some specific use cases for mocking oracle return values.\n\nFor a full deep dive to the project architecture please visit the [Chaos Labs blog](https://chaoslabs.xyz/blog).\n\n## Use Cases\n\nDeFi protocols and applications are at high risk due to volatile market conditions and a myriad of security vectors. Mocking Chainlink Oracle return values in a controlled, siloed testing environment allows us to address 2 common vectors.\n\n**Volatile Market Conditions**\n\nVolatility is a DeFi constant and is something that all protocols and applications should test for thoroughly. Internal application and protocol state is often a direct result of Oracle returns values. To further illustrate this let's use an example.\n\nImagine a lending protocol (Maker, AAVE, Benqi, Spectral.finance, etc..) that accepts Ethereum as collateral against stablecoin loans. What happens on a day like Black Thursday, when Ethereum prices cascade negatively to the tune of ~70% in a 48 hour time frame? Well, a lot of things happen 🤦.\n\n![Black Thursday Img](https://github.com/ChaosLabsInc/chainlink-hardhat-plugin/blob/main/img/Cascading-ETH.png)\n\nOne critical aspect of responding to market volatiltiy is protocol keepers triggering liquidations and thus ensuring protocol solvency.\n\nWith the ability to control Oracle return values, simulating such scenarios in your local development environment is possible.\n\n**Oracle Manipulation**\n\nOracle manipulation is an additional attack vector. With this method, malicious actors research data sources that various oracle consume as sources of truth. When actors possess the ability to manipulate the underlying data source they trigger downstream effects, manifesting in altered Oracle return values. As a result of manipulated data, actors and contracts can trigger various unwanted behaviours such as modified permissions, transaction execution, emergency pausing / shutdown and more.\n\nWith the ability to manipulate Chainlink Oracle return values, simulating such scenarios in your local development environment is possible.\n\n## Prerequisites\n\n- We're going to need an instance of a `hardhat` mainnet fork running in a separate terminal window. For a quickstart, follow the installation steps in our [Chaos Labs demo repo](https://github.com/ChaosLabsInc/demo-plugins-repo).\n- We assume you have npm installed, if not go to https://nodejs.org/en/download/ and follow the instructions.\n\n## Installation\n\n**Step 1**\n\n```bash\nnpm install ChaosLabsInc/chainlink-hardhat-plugin\n```\n\n**Step 2**\n\nImport the plugin in your `hardhat.config.js`:\n\n```js\nrequire(\"@chaos-labs/chainlink-hardhat-plugin\");\n```\n\nOr if you are using TypeScript, in your `hardhat.config.ts`:\n\n```ts\nimport \"@chaos-labs/chainlink-hardhat-plugin\";\n```\n\n## <a name=\"explicitusage\"></a> Usage - Set Prices Explicity\n\nIn this example we will explicitly set the return value of a Chainlink price feed.\n\n```js\nconst chainlinkConfig = new hre.ChainlinkPriceFeedConfig(this.hre);\n// Here we set the plugin to work with ETH/USD pair on Mainnet:\nawait chainlinkConfig.initChainlinkPriceFeedConfig(\"ETH/USD\", \"Mainnet\");\n// Now we query the price, this is to allow better decision making in setting up the mocked price:\nconst prevPrice = await chainlinkConfig.getPrice(\"ETH/USD\"); // original price at time of mainnet fork\n// We mock the price of the return value fo the token to 555 instead of the original price:\nawait chainlinkConfig.setPrice(\"ETH/USD\", 555);\nconst nextPrice = await chainlinkConfig.getPrice(\"ETH/USD\"); // 555\n```\n\n## <a name=\"configusage\"></a> Usage - Set Prices via Configuration\n\nGrab a config via the [Chainlink portal!](https://chainlink.chaoslabs.xyz/oracle-configuration/chainlink)\n\nSome test cases require testing trends in pricing. For example, we may want to test examples in which _TokenA_ is decreasing in a monotonic fashion. For this use case we can grab a Chainlink Configuration object and pass it to the `initChainlinkPriceFeedConfig` initializer.\n\n```js\nconst chainlinkConfig = new ChainlinkPriceFeedConfig(this.hre);\nconst config = {\n  priceDelta: 10,\n  priceFunction: \"volatile\",\n  initialPrice: 0,\n};\nawait chainlinkConfig.initChainlinkPriceFeedConfig(ticker, \"Mainnet\", config);\nlet price = await chainlinkConfig.getPrice(ticker); // 0\nawait chainlinkConfig.nextPrice(ticker);\nprice = await chainlinkConfig.getPrice(ticker); // -10\nawait chainlinkConfig.nextPrice(ticker);\nprice = await chainlinkConfig.getPrice(ticker); // 20\n```\n\n**Copy Config To Clipboard**\n\nAfter selecting a math function to describe the direction of oracle change, please click on the Export Button. This will pop up a dialog. Click the \"Copy\" button to copy the config to your clipboard or download it as a json file with the \"Download\" button.\n\n<img width=\"1784\" alt=\"Screen Shot 2022-02-08 at 8 18 33 PM\" src=\"https://user-images.githubusercontent.com/8246234/153115569-a53a83d1-aabd-4c12-bb8e-5b608e3bff05.png\">\n\n**Paste Config into Hardhat Script**\n\nNow that our config has been copied to our keyboard we can copy it into our `hardhat` script. You can set the paste as the value of the `config` variable above or paste it directly into the init method:\n\n```js\nawait chainlinkConfig.initChainlinkPriceFeedConfig(ticker, \"Mainnet\", {\n  priceDelta: 10,\n  priceFunction: \"volatile\",\n  initialPrice: 0,\n});\n```\n\nas the third parameter - replacing the `config` variable with the object literal.\n\n### How Do Prices Behave As We Query Next Price?\n\nThe following image shows the price behavior between subsequent calls to `nextPrice(ticker)`\n\n![image](https://user-images.githubusercontent.com/8246234/152855835-b5491015-b492-4f8e-a269-81ae06455bf2.png)\n\n## Run Tests\n\n1. Restart the mainnet fork for a fresh state.\n\n2. Run tests with the following command:\n\n```bash\nnpm run build && npm run test\n```\n\n![Tests output](https://github.com/ChaosLabsInc/chainlink-hardhat-plugin/blob/main/img/RunTests.png)\n","readmeFilename":"README.md"}