{"_id":"@aurora-balancer-labs/v2-vault","_rev":"2-b9b41e8c58ce5c595a9fb2680fa60bba","name":"@aurora-balancer-labs/v2-vault","dist-tags":{"latest":"2.2.0"},"versions":{"2.0.0":{"name":"@aurora-balancer-labs/v2-vault","version":"2.0.0","description":"Balancer V2 Vault contract and core interfaces","license":"GPL-3.0-only","homepage":"","repository":{"type":"git","url":"","directory":"pkg/vault"},"scripts":{"build":"yarn compile","compile":"hardhat compile && rm -rf artifacts/build-info","compile:watch":"nodemon --ext sol --exec yarn compile","lint":"yarn lint:solidity && yarn lint:typescript","lint:solidity":"solhint 'contracts/**/*.sol'","lint:typescript":"eslint . --ext .ts --ignore-path ../../.eslintignore  --max-warnings 0","test":"yarn compile && mocha --extension ts --require hardhat/register --require @balancer-labs/v2-common/setupTests --recursive","test:fast":"yarn compile && mocha --extension ts --require hardhat/register --require @balancer-labs/v2-common/setupTests --recursive --parallel --exit","test:watch":"nodemon --ext js,ts --watch test --watch lib --exec 'clear && yarn test --no-compile'"},"devDependencies":{"@aurora-balancer-labs/balancer-js":"workspace:*","@aurora-balancer-labs/v2-common":"workspace:*","@aurora-balancer-labs/v2-helpers":"workspace:*","@aurora-balancer-labs/v2-interfaces":"workspace:*","@aurora-balancer-labs/v2-solidity-utils":"workspace:*","@nomiclabs/hardhat-ethers":"^2.0.1","@nomiclabs/hardhat-waffle":"^2.0.0","@types/chai":"^4.2.12","@types/lodash":"^4.14.161","@types/mocha":"^8.0.3","@types/node":"^14.6.0","@typescript-eslint/eslint-plugin":"^4.1.1","@typescript-eslint/parser":"^4.1.1","chai":"^4.2.0","decimal.js":"^10.2.1","eslint":"^7.9.0","eslint-plugin-mocha-no-only":"^1.1.1","eslint-plugin-prettier":"^3.1.4","ethereum-waffle":"^3.0.2","ethers":"^5.4.1","hardhat":"^2.8.3","lodash.frompairs":"^4.0.1","lodash.pick":"^4.4.0","lodash.range":"^3.2.0","lodash.times":"^4.3.2","lodash.zip":"^4.2.0","mocha":"^8.2.1","nodemon":"^2.0.4","prettier":"^2.1.2","prettier-plugin-solidity":"v1.0.0-alpha.59","solhint":"^3.2.0","solhint-plugin-prettier":"^0.0.4","ts-node":"^8.10.2","typescript":"^4.0.2"},"_id":"@aurora-balancer-labs/v2-vault@2.0.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-NbP7sA6MlcT4NMstMUT2017g/UggyWVB/RCAlaLdGYFjKKsZw5k0YecKFtaD8M9+UUZoJk9FFCikrl+d3FihTg==","shasum":"f5cb27b72c48d8989206f3494adf11d6f2731da6","tarball":"https://registry.npmjs.org/@aurora-balancer-labs/v2-vault/-/v2-vault-2.0.0.tgz","fileCount":23,"unpackedSize":200358,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDu4obFpxV021L8iPdQIs7j5Ks6S5BCWAlkFLvJfdb3PAIhAK+KshmnWAxMIvBpZ7Gl45747weCRLRYhqMYg4Kg3c1P"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivGVOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrdfg/+PHZO4hgpQsOy2WJjpNpijrl8TAV+mXUv8qk9V/YZvOfhAcDJ\r\nQVV3pwu/cU0651OfKq54bStUKebKO89iSf8GHtgvTTQUU7lf58VTvMQ1GNbR\r\nvVvRK7gTS4lDLOko4rRZJpmCa+L+BUDVghqIXIrwUuA4Sv27jLVD2Zv00Zgw\r\n0RpV6kOkn+dpEIkL119Co8hR7zXfro5XiQcqSDeJkxlv0kh2jrvVvKJcRLbw\r\n7Xmxas8kSudruinu+37+edu4xYB67J1ae7VfLtXKnv9OUmrs/BazcCkhj9Yo\r\nQvbtJ/IbB0M8EIISPXTbrVQQN++C8Zpszji6CwgnVmhm7BjN5sfAVZsSCKu3\r\nIkyzU9FOsk7+N/BKLVggbBF1dOUr5ss/D+k452FfBTlvNAZpnLC254+LtTiM\r\nmOG3Iuv5eKDZf2KJNNMJk72hC7bgvplIT2DWUqCt/nbMrKQwxrpn9yzQZRje\r\nhT7JD9tf6AO6lviNM+XJKT44VRIHcF+pQNkviqkJNI72nrlxVoaUbMrQreeo\r\ntF+ER9sn1zpwzcbNfAt9cUnksHJfAV6h7J+3i9RmrKkJ/FZrK2RhHrj3BLKr\r\nDyHA4Vn/l7YrH7yzmxmkQMyrSD74SPrHwLGoi2yjnf6MarhjfDdFOYF+64P1\r\nonNWmnVUxBBRzNAtkgectjS2Gc1KwosFVA4=\r\n=zWjQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"philipptaratuta","email":"philipp.t@blaize.tech"},"directories":{},"maintainers":[{"name":"philipptaratuta","email":"philipp.t@blaize.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/v2-vault_2.0.0_1656513870130_0.6689915043828709"},"_hasShrinkwrap":false},"2.1.0":{"name":"@aurora-balancer-labs/v2-vault","version":"2.1.0","description":"Balancer V2 Vault contract and core interfaces","license":"GPL-3.0-only","homepage":"","repository":{"type":"git","url":"","directory":"pkg/vault"},"scripts":{"build":"yarn compile","compile":"hardhat compile && rm -rf artifacts/build-info","compile:watch":"nodemon --ext sol --exec yarn compile","lint":"yarn lint:solidity && yarn lint:typescript","lint:solidity":"solhint 'contracts/**/*.sol'","lint:typescript":"eslint . --ext .ts --ignore-path ../../.eslintignore  --max-warnings 0","test":"yarn compile && mocha --extension ts --require hardhat/register --require @aurora-balancer-labs/v2-common/setupTests --recursive","test:fast":"yarn compile && mocha --extension ts --require hardhat/register --require @aurora-balancer-labs/v2-common/setupTests --recursive --parallel --exit","test:watch":"nodemon --ext js,ts --watch test --watch lib --exec 'clear && yarn test --no-compile'"},"devDependencies":{"@aurora-balancer-labs/balancer-js":"workspace:*","@aurora-balancer-labs/v2-common":"workspace:*","@aurora-balancer-labs/v2-helpers":"workspace:*","@aurora-balancer-labs/v2-interfaces":"workspace:*","@aurora-balancer-labs/v2-solidity-utils":"workspace:*","@nomiclabs/hardhat-ethers":"^2.0.1","@nomiclabs/hardhat-waffle":"^2.0.0","@types/chai":"^4.2.12","@types/lodash":"^4.14.161","@types/mocha":"^8.0.3","@types/node":"^14.6.0","@typescript-eslint/eslint-plugin":"^4.1.1","@typescript-eslint/parser":"^4.1.1","chai":"^4.2.0","decimal.js":"^10.2.1","eslint":"^7.9.0","eslint-plugin-mocha-no-only":"^1.1.1","eslint-plugin-prettier":"^3.1.4","ethereum-waffle":"^3.0.2","ethers":"^5.4.1","hardhat":"^2.8.3","lodash.frompairs":"^4.0.1","lodash.pick":"^4.4.0","lodash.range":"^3.2.0","lodash.times":"^4.3.2","lodash.zip":"^4.2.0","mocha":"^8.2.1","nodemon":"^2.0.4","prettier":"^2.1.2","prettier-plugin-solidity":"v1.0.0-alpha.59","solhint":"^3.2.0","solhint-plugin-prettier":"^0.0.4","ts-node":"^8.10.2","typescript":"^4.0.2"},"_id":"@aurora-balancer-labs/v2-vault@2.1.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-XBPVJJD/qri+Nw/MreUBCHMje/cS+R7VwWcGWGELQLbEYCwPqRZjxiLPZ0uOifM+McblFvnT6pFM3z0QddkGzw==","shasum":"beff59dd2fdef7072a4f3f6cefa15fd60659f268","tarball":"https://registry.npmjs.org/@aurora-balancer-labs/v2-vault/-/v2-vault-2.1.0.tgz","fileCount":23,"unpackedSize":200372,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDHBN7TIw33UidScbcIh7xanHhFTDT899eR1AACFc97dwIgFOqBZkVPorliStaQaqgq/TBrLwf78M9Xej1XkyywHsQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivGgHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqDcQ//WodWPkv53WnIFi+EY3ypgpprykCqhZwk5y5rDO8nsPmZrvLv\r\nTBDb0DkzQUz//VUR/3aFd8yZxxKKyF/rWC/CivLVRDB7H1dtaCgvkpHJNYrW\r\nR1P4pCmg1PBqidIJJ/KOXBvBntYIWxbNuULHIYnnJMY2M7FRqNw8O7d81afc\r\n27FNHS3cAq+fnD6ZPZdqqQFM1WiuKGqD11Tf0zwfCRUt7fWYc3hN7UFfVQgE\r\nyG53S1ykfDCc008CLZP/DQiQ+D55J0hgnxZbfveIlnmDEncLI6R5dtrtSImZ\r\nPbhph1Y7oCiuxjy6TrDtZmECc9ODW0aZMoicSj0IxbcOKCk44Rez0VRiAmvv\r\nE4DxwpIwlDrd/TGKD9MSvEx8DzfJF7NmREQa9atiGLb5b8+cvgl+kCb91hHz\r\nvx2gjMTw0W2Dgo03L0YfoDJ4U6UuLBfREev7rSlYD+632LAR4VnhBAIEwtZy\r\nGFmY7/vFSkCBXzU77MZkj+yFNQXctlZBepq4OMIH3lZXaSNRER7wXJMBDlF+\r\n3PwnDFdnn6xt6uikCuotk6ASEgWPnFzHixvtt4HwT4WOwyYqP0iutHLXGnGC\r\nGx6AzgzK6Bzxrp0TED828txI1rAci/Bd4G0CCd7JaX26VN4N9RiXOYaEsc9f\r\n+RQDdK/GgSkE7PeT6qDx5tVSssJRP+3cYWI=\r\n=PrIf\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"philipptaratuta","email":"philipp.t@blaize.tech"},"directories":{},"maintainers":[{"name":"philipptaratuta","email":"philipp.t@blaize.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/v2-vault_2.1.0_1656514567256_0.46930326820231416"},"_hasShrinkwrap":false},"2.2.0":{"name":"@aurora-balancer-labs/v2-vault","version":"2.2.0","description":"Balancer V2 Vault contract and core interfaces","license":"GPL-3.0-only","homepage":"","repository":{"type":"git","url":"","directory":"pkg/vault"},"scripts":{"build":"yarn compile","compile":"hardhat compile && rm -rf artifacts/build-info","compile:watch":"nodemon --ext sol --exec yarn compile","lint":"yarn lint:solidity && yarn lint:typescript","lint:solidity":"solhint 'contracts/**/*.sol'","lint:typescript":"eslint . --ext .ts --ignore-path ../../.eslintignore  --max-warnings 0","test":"yarn compile && mocha --extension ts --require hardhat/register --require @aurora-balancer-labs/v2-common/setupTests --recursive","test:fast":"yarn compile && mocha --extension ts --require hardhat/register --require @aurora-balancer-labs/v2-common/setupTests --recursive --parallel --exit","test:watch":"nodemon --ext js,ts --watch test --watch lib --exec 'clear && yarn test --no-compile'"},"devDependencies":{"@aurora-balancer-labs/balancer-js":"workspace:*","@aurora-balancer-labs/v2-common":"workspace:*","@aurora-balancer-labs/v2-helpers":"workspace:*","@aurora-balancer-labs/v2-interfaces":"workspace:*","@aurora-balancer-labs/v2-solidity-utils":"workspace:*","@nomiclabs/hardhat-ethers":"^2.0.1","@nomiclabs/hardhat-waffle":"^2.0.0","@types/chai":"^4.2.12","@types/lodash":"^4.14.161","@types/mocha":"^8.0.3","@types/node":"^14.6.0","@typescript-eslint/eslint-plugin":"^4.1.1","@typescript-eslint/parser":"^4.1.1","chai":"^4.2.0","decimal.js":"^10.2.1","eslint":"^7.9.0","eslint-plugin-mocha-no-only":"^1.1.1","eslint-plugin-prettier":"^3.1.4","ethereum-waffle":"^3.0.2","ethers":"^5.4.1","hardhat":"^2.8.3","lodash.frompairs":"^4.0.1","lodash.pick":"^4.4.0","lodash.range":"^3.2.0","lodash.times":"^4.3.2","lodash.zip":"^4.2.0","mocha":"^8.2.1","nodemon":"^2.0.4","prettier":"^2.1.2","prettier-plugin-solidity":"v1.0.0-alpha.59","solhint":"^3.2.0","solhint-plugin-prettier":"^0.0.4","ts-node":"^8.10.2","typescript":"^4.0.2"},"_id":"@aurora-balancer-labs/v2-vault@2.2.0","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-58gNCy7VpsLAXmOXCKxuRXRUUsB4InR3NKQTfcIYEYjy6lJvpfNJyNedmkxNS52rydksNGhTXVhkfDwjVYe4hQ==","shasum":"663862a52e45cecd5b387cd6ebad3d864ae70c3d","tarball":"https://registry.npmjs.org/@aurora-balancer-labs/v2-vault/-/v2-vault-2.2.0.tgz","fileCount":30,"unpackedSize":222110,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHunexphrolECWWRIyvxTDwaI1wi7j4CHguYODSoORv4AiEA4ZvRBn2F8kOzY23C0MM1T3E94blT94StwXcAdgew9To="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwsusACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo1aw/+PbAkvaj/zKD9sZ2bDLhJ/cqTVkOi4/RW35LfWL+tLuYHS1mH\r\nEWF+5P+qsGbWSYsTpSXE0uTQzEw0xVxOzpKcYBukvw4lkKNTlER+j8rb0bi/\r\nukl0wk4AkSx3yh9SW5Tr1fGkU7fmuv5EyypwoGj0uVoOG4r4+8wVMqpBG7li\r\nIZ/+ohMgqkSKFiZO51J0ked8PGfE9wRSYinO2fa6qCd84vrMMzOO2yrNZLBQ\r\npHBj0KExEAEyg7XVHXZTA7MYJkpGyaATsXuMkPMm3Vc9K5wmIghGr9TUZOGR\r\nmLSAUQJqhUn2kfXePtTC0BcjPwnTSrzn00QrufDipMkjFLG+PIOFsjh0l9N1\r\nC/kXWRiFkFt81QQtgtXsNW5TbU101XoiZmYuBczSl6YdBn3Jb0tmEQAiBpl6\r\nSfIQlay/Amnkq7amNG5ZvwQ2UPbBTheOs15yLKHX1kRToMFzsCQL63E1zw2Q\r\nn5PqZx0eOOnUBVXCi9EqhWdm0+4zm3UMYFpyWRPSvqS/0DLdL0z32v+u0yim\r\ng0tZRK3I8hspSAApXhIHfH0z35h63/S6MdKufciNX7t1Bh8tgZ0LVN/ao7wo\r\nnIhCbSzU6H9kbI3kHt5se/OesYKS91IduVV9vMyndj7Hm+9sAKnKw/Qn676U\r\n2X8L4qOaDszHl+uCf8G0SXeJEZtJZVqKTjg=\r\n=CxcL\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"philipptaratuta","email":"philipp.t@blaize.tech"},"directories":{},"maintainers":[{"name":"philipptaratuta","email":"philipp.t@blaize.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/v2-vault_2.2.0_1656933292672_0.9611534451092241"},"_hasShrinkwrap":false}},"time":{"created":"2022-06-29T14:44:30.058Z","2.0.0":"2022-06-29T14:44:30.338Z","modified":"2022-07-04T11:14:52.953Z","2.1.0":"2022-06-29T14:56:07.485Z","2.2.0":"2022-07-04T11:14:52.844Z"},"maintainers":[{"name":"philipptaratuta","email":"philipp.t@blaize.tech"}],"description":"Balancer V2 Vault contract and core interfaces","repository":{"type":"git","url":"","directory":"pkg/vault"},"license":"GPL-3.0-only","readme":"# <img src=\"../../logo.svg\" alt=\"Balancer\" height=\"128px\">\n\n# Balancer V2 Vault\n\n[![NPM Package](https://img.shields.io/npm/v/@balancer-labs/v2-vault.svg)](https://www.npmjs.org/package/@balancer-labs/v2-vault)\n[![Docs](https://img.shields.io/badge/docs-%F0%9F%93%84-blue)](https://docs.balancer.fi/developers/smart-contracts/apis/vault)\n\nThis package contains the source code of Balancer V2's main contract, the [`Vault`](./contracts/Vault.sol), as well as all [core interfaces](./contracts/interfaces).\n\nThe [Vault interface](./contracts/interfaces/IVault.sol) itself is required for multiple tasks, including swaps, joins and exits, but some scenarios require functionality provided through other contracts. Particularly useful interfaces include:\n\n- [`IBasePool`](./contracts/interfaces/IBasePool.sol), [`IGeneralPool`](./contracts/interfaces/IGeneralPool.sol) and [`IMinimalSwapInfoPool`](./contracts/interfaces/IMinimalSwapInfoPool.sol) for developing Pools\n- [`IFlashLoanRecipient`](./contracts/interfaces/IFlashLoanRecipient.sol) for performing Flash Loans\n- [`IProtocolFeesCollector`](./contracts/interfaces/IProtocolFeesCollector.sol) for querying protocol fee percentages\n\n## Overview\n\n### Installation\n\n```console\n$ npm install @aurora-balancer-labs/v2-vault\n```\n\n### Usage\n\nThe main purpose of this package is to provide the Solidity interfaces of core components, which are found in the [`/contracts/interfaces`](./contracts/interfaces] directory. The Vault contract itself is also useful for testing.\n\nTo get the address of deployed contracts in both mainnet and various test networks, see [`v2-deployments`](../deployments).\n\nSample contract that performs Internal Balance deposits:\n\n```solidity\npragma solidity ^0.7.0;\n\nimport \"@aurora-balancer-labs/v2-vault/contracts/interfaces/IVault.sol\";\n\ncontract SimpleDepositor {\n    IVault private constant vault = \"0xBA12222222228d8Ba445958a75a0704d566BF2C8\";\n\n    function depositFunds(\n        IERC20[] memory tokens,\n        uint256[] memory amounts,\n    ) external {\n      IVault.UserBalanceOp[] memory ops = new IVault.UserBalanceOp[](tokens.length);\n\n      for (uint256 i = 0; i < tokens.length; ++i) {\n        ops[i] = IVault.UserBalanceOp({\n          kind: IVault.UserBalanceOpKind.DEPOSIT_INTERNAL,\n          asset: IAsset(tokens[i]),\n          amount: amounts[i],\n          sender: address(this),\n          recipient: address(this)\n        });\n      }\n\n      vault.manageUserBalance(ops);\n    }\n}\n```\n\nSample contract that performs Flash Loans:\n\n```solidity\npragma solidity ^0.7.0;\n\nimport \"@aurora-balancer-labs/v2-vault/contracts/interfaces/IVault.sol\";\nimport \"@aurora-balancer-labs/v2-vault/contracts/interfaces/IFlashLoanRecipient.sol\";\n\ncontract FlashLoanRecipient is IFlashLoanRecipient {\n    IVault private constant vault = \"0xBA12222222228d8Ba445958a75a0704d566BF2C8\";\n\n    function makeFlashLoan(\n        IERC20[] memory tokens,\n        uint256[] memory amounts,\n        bytes memory userData\n    ) external {\n      vault.flashLoan(this, tokens, amounts, userData);\n    }\n\n    function receiveFlashLoan(\n        IERC20[] memory tokens,\n        uint256[] memory amounts,\n        uint256[] memory feeAmounts,\n        bytes memory userData\n    ) external override {\n        require(msg.sender == vault);\n        ...\n    }\n}\n```\n\n## Licensing\n\n[GNU General Public License Version 3 (GPL v3)](../../LICENSE).\n","readmeFilename":"README.md"}