{"_id":"@aurora-balancer-labs/balancer-js","name":"@aurora-balancer-labs/balancer-js","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@aurora-balancer-labs/balancer-js","version":"1.0.0","description":"JavaScript utilities for interacting with the Balancer Protocol V2","license":"GPL-3.0-only","homepage":"","repository":{"type":"git","url":"","directory":"pkg/balancer-js"},"main":"dist/index.js","module":"dist/index.esm.js","browser":"dist/index.umd.js","typings":"dist/index.d.ts","scripts":{"build":"rollup -c","dev":"rollup -c -w","test":"mocha --extension test.ts -r ts-node/register --recursive","lint":"eslint ./src --ext .ts --max-warnings 0"},"devDependencies":{"@rollup/plugin-commonjs":"^19.0.0","@rollup/plugin-node-resolve":"^13.0.0","@rollup/plugin-typescript":"^8.2.1","@typechain/ethers-v5":"^7.0.1","@types/chai":"^4.2.12","@types/mocha":"^8.0.3","@types/node":"^15.12.4","@typescript-eslint/eslint-plugin":"^4.1.1","@typescript-eslint/parser":"^4.1.1","chai":"^4.2.0","eslint":"^7.9.0","eslint-plugin-prettier":"^3.1.4","mocha":"^8.2.1","prettier":"^2.1.2","rollup":"^2.52.8","rollup-plugin-dts":"^3.0.2","tiny-invariant":"^1.1.0","ts-node":"^10.0.0","typechain":"^5.1.1","typescript":"^4.0.2"},"dependencies":{"@aurora-balancer-labs/typechain":"^1.1.0","@ethersproject/abi":"^5.4.0","@ethersproject/abstract-signer":"^5.4.0","@ethersproject/address":"^5.4.0","@ethersproject/bignumber":"^5.4.0","@ethersproject/bytes":"^5.4.0","@ethersproject/constants":"^5.4.0","@ethersproject/contracts":"^5.4.0"},"_id":"@aurora-balancer-labs/balancer-js@1.0.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-aAq8qrmPc0oGgi4anL8gsvU/BjL85okagjEEtwuyF8mdzGRjo4SI+CWtMASVM/1F8nxQOIqAEP5DTlq2egc00w==","shasum":"6d1a11803d5843dcafa375f2958d097f199d4bca","tarball":"https://registry.npmjs.org/@aurora-balancer-labs/balancer-js/-/balancer-js-1.0.0.tgz","fileCount":2,"unpackedSize":4030,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCNCda4WNxy/QIMEHMLOrsC3CRd3V3RTqOLDtfbM58m2gIgRxA/VOoVHiGerSC/riQ7+WHDqHCR7xKp360n/sZoqsM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivFtuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqXoA//aSlJxAIN6ZecNHTl9U8NlYBWZ8fyZbzLO2Oq9/WaobZirX0N\r\njIDeIqGdo0TBGOMr7dUgJfgJoS1XUI5+adnSEZyuS0peVb708OWJjaCjX2s6\r\nt0ocwQUdGhvNmX1kstwV3LDjT6OStDBp9Jcmp+h+PbOLh5xcgNwfltMDeSHQ\r\nYvQJlh9VaMSvub3M0UYnm4WJCBQa6JzhWOZhWTgn+i9yRDesoRekYcaUrzEY\r\nthyJdFxLQUNJ18y5PJ3OAaYB/aHIZQScO7qH5PDv++352Jkx0m0vSxrqfufN\r\nxld86wUF8avabrHsUmfIR5bi+ZdpTL+F/mVNNG1Gnvr84KdSUYgVSOVI8V9y\r\nPsFr5JM8VVhqURIyO0HACltzvdUuidIWHaQZ1e6zQ2lINwchiTjbuMjQNN7P\r\n808XKGim3MiLiGAOVg72D2KRDZUJqfTwQOfY7lLGfNXmBnDXugsWAyxi7Wzl\r\n1SZopJd2PUyX2xbMc3AEHUh2HjLxQEdnC/YU8ztQhNnlyCV/wQyQXSDzA3KN\r\nUFKVIZRD1HUxIMK4Z8cgJ1OlJieye2Mc0Z0HDvPqVPNmmjUKIB9FRjfvANJp\r\nmV7bJZzy3PhOmhdFByvNQCzDWFFStctc2yMaSC3fpsVGskMZtXV2kHhb67g6\r\n2cebhwAS2mDo8Q1faU+Fhfdc2Oj1fkrfFGo=\r\n=y7P6\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/balancer-js_1.0.0_1656511342254_0.6098601852357817"},"_hasShrinkwrap":false}},"time":{"created":"2022-06-29T14:02:22.201Z","1.0.0":"2022-06-29T14:02:22.481Z","modified":"2022-06-29T14:02:22.643Z"},"maintainers":[{"name":"philipptaratuta","email":"philipp.t@blaize.tech"}],"description":"JavaScript utilities for interacting with the Balancer Protocol V2","repository":{"type":"git","url":"","directory":"pkg/balancer-js"},"license":"GPL-3.0-only","readme":"# <img src=\"../../logo.svg\" alt=\"Balancer\" height=\"128px\">\n\n# Balancer.js SDK\n\n[![NPM Package](https://img.shields.io/npm/v/@balancer-labs/balancer-js.svg)](https://www.npmjs.org/package/@balancer-labs/balancer-js)\n\nBalancer.js is a JavaScript SDK which provides commonly used utilties for interacting with Balancer Protocol V2.\n\n## Overview\n\n### Installation\n\n```console\n$ npm install @aurora-balancer-labs/balancer-js\n```\n\n### Usage\n\nSome examples of common uses for Balancer.js are shown below\n\n#### Pool ID decoding\n\nEach Balancer pool is referenced by its own unique pool ID. This ID contains various information about the pool which is in an encoded form. Balancer.js exposes functions to easily extract various information from this ID.\n\nSample code that calculates a pool's address from it's pool ID to allow approving another address to move the user's BPT:\n\n```typescript\nimport { getPoolAddress } from \"@aurora-balancer-labs/balancer-js\";\nimport { IERC20Abi } from ./IERC20.json\n\nconst poolId = \"0x5c6ee304399dbdb9c8ef030ab642b10820db8f56000200000000000000000014\"\nconst poolAddress = getPoolAddress(poolId)\n// poolAddress = \"0x5c6ee304399dbdb9c8ef030ab642b10820db8f56\"\nconst bptToken = new Contract(poolAddress, IERC20Abi, provider)\n\nawait bptToken.approve(\"0x012345....\", \"10000\")\n\n```\n\n#### Encoding userData\n\nTo provide liquidity to a Balancer pool, various fields must be provided in an encoded form as the `userData` field within the `joinPool` call. Balancer.js exposes functions to simplify encoding the `userData` field used for joining and exiting various pool types to prevent errors.\n\nSample code that provides the initial liquidity to a WeightedPool:\n\n```typescript\nimport { WeightedPoolEncoder } from \"@aurora-balancer-labs/balancer-js\";\n\nconst poolId = \"0x5c6ee304399dbdb9c8ef030ab642b10820db8f56000200000000000000000014\"\nconst tokens = [\"0x012345....\", \"0x789ABC....\"]\nconst amountsIn = [BigNumber.from(\"10000\"), BigNumber.from(\"10000\")];\n\nconst tx = await vault.joinPool(\n    poolId,\n    userAddress,\n    userAddress,\n    {\n        assets: tokens,\n        maxAmountsIn: amountsIn,\n        fromInternalBalance: true,\n        userData: WeightedPoolEncoder.joinInit(amountsIn),\n    }\n);\n```\n\n\n\n## Licensing\n\n[GNU General Public License Version 3 (GPL v3)](../../LICENSE).\n","readmeFilename":"README.md"}