{"_id":"@centfinance/sor_alfajores","_rev":"3-6a2048a46fd382c5596460c2023e368c","name":"@centfinance/sor_alfajores","dist-tags":{"latest":"0.0.10"},"versions":{"0.0.1":{"name":"@centfinance/sor_alfajores","version":"0.0.1","license":"GPL-3.0-only","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","prepublish":"tsc","test":"nyc mocha -r ts-node/register test/*.spec.ts","coverage":"nyc report --reporter=text-lcov | coveralls"},"husky":{"hooks":{"pre-commit":"pretty-quick --staged"}},"publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"devDependencies":{"@ethersproject/wallet":"^5.0.7","@types/chai":"^4.2.10","@types/mocha":"^7.0.2","@types/node":"^14.0.20","chai":"^4.2.0","coveralls":"^3.0.9","dotenv":"^8.2.0","husky":"^4.2.1","mocha":"^7.1.0","nyc":"^15.0.0","prettier":"^1.19.1","pretty-quick":"^2.0.1","ts-node":"^8.6.2","typescript":"^3.8.3"},"dependencies":{"@ethersproject/address":"^5.0.5","@ethersproject/constants":"^5.0.5","@ethersproject/contracts":"^5.0.5","@ethersproject/providers":"5.0.12","@ethersproject/solidity":"^5.0.5","@ethersproject/units":"^5.0.6","bignumber.js":"^9.0.0","isomorphic-fetch":"^2.2.1"},"description":"There are two types of swap available:","_id":"@centfinance/sor_alfajores@0.0.1","dist":{"shasum":"aaf947bef926b839abe1104b053270f0c7aac48f","integrity":"sha512-aS8pfkHel79BrmwL9EbRaXy4eX6WA4WCYWbQazzc20DrJGCXvvXRVQ/eSj+wodqPPBrmPzfSPQm+DwgSWa/nww==","tarball":"https://registry.npmjs.org/@centfinance/sor_alfajores/-/sor_alfajores-0.0.1.tgz","fileCount":30,"unpackedSize":146800,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgixdNCRA9TVsSAnZWagAApHkP/ienBNWj8BBQo555kMBK\nkNZZim13Ywl3KxbHohgF/Pk5rWulKalDMNTbSJWdc6/es/muX6K3fcJiCdRM\nahgnyBP7l+rTrZmHfGm/hkpd4+GtCiH5g4B2a7Z5Mq+i/lR0XdIUy+59Is+y\nPsd6g2RvEXzkQmjTGKSiN4d7hAmdWdIzKl6Vovy9FT6q809Za+RUQCRKSDSJ\nlPlIrjyLBXydp7DDX8jr4dHC3hmNMpo55vgTe7ELPLRyEdu5VXIXsNFsngsC\n0C56+AyjYU+mxsuU1a3janAmQgpWs9x8eUOn/Up42GNdxK+mbKRQocgTj7KW\n7h6XLZHggAmu50bM83NXeuovas+sSmb6eCUi9xnfwJ6lVpkBgAA+Lj+iME+a\n1uSjkV5WHrLQsCp7frbxPjUEuPINPWPgVOI6sZ/aNdChibfV+NTllTAUMFpj\nwo/fUErr4GJVcXxJnzex8g5LvBpr2jJXS3ipVxRWEqDvufuj9rBEEHbp4Bw8\njK75jwA8f27tx4hGAv4No9SU+Pc8C3d1jS8D56rtBTxpKH0khO8pagCMn8c2\n6YN2CWFZ2I2MY2xpzBvv7zHBsms/4qWaTjPdkBdMELM/4L/YNPYymqyc9hwQ\n8HeGibjWPTUL4T0lwMiyqA6fQgLj8lEXOsYRtRT0+AeIMskD4/lLsdfWDlUa\nKmDq\r\n=7X4D\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH+iis63sVKpEoF/2NDJbGf+BY+LkARuiCvf6Ou0uJg/AiEAq8qnMFcbO3sQxWQwMaeJVotwyosnaFKrkQNaDT7jtww="}]},"_npmUser":{"name":"switch1983","email":"darren.op@cent.finance"},"directories":{},"maintainers":[{"name":"switch1983","email":"darren.op@cent.finance"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sor_alfajores_0.0.1_1619728204534_0.9997137609781332"},"_hasShrinkwrap":false},"0.0.6":{"name":"@centfinance/sor_alfajores","version":"0.0.6","license":"GPL-3.0-only","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","prepublish":"tsc","test":"nyc mocha -r ts-node/register test/*.spec.ts","coverage":"nyc report --reporter=text-lcov | coveralls"},"husky":{"hooks":{"pre-commit":"pretty-quick --staged"}},"publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"devDependencies":{"@ethersproject/wallet":"^5.0.7","@types/chai":"^4.2.10","@types/mocha":"^7.0.2","@types/node":"^14.0.20","chai":"^4.2.0","coveralls":"^3.0.9","dotenv":"^8.2.0","husky":"^4.2.1","mocha":"^7.1.0","nyc":"^15.0.0","prettier":"^1.19.1","pretty-quick":"^2.0.1","ts-node":"^8.6.2","typescript":"^3.8.3"},"dependencies":{"@ethersproject/address":"^5.0.5","@ethersproject/constants":"^5.0.5","@ethersproject/contracts":"^5.0.5","@ethersproject/providers":"5.0.12","@ethersproject/solidity":"^5.0.5","@ethersproject/units":"^5.0.6","bignumber.js":"^9.0.0","isomorphic-fetch":"^2.2.1"},"description":"There are two types of swap available:","_id":"@centfinance/sor_alfajores@0.0.6","dist":{"shasum":"d671f4c73f99c5e55a11602d45b6f67905e2f5ad","integrity":"sha512-ln5X7DtpqF17JrfYxigbXCsZeq0sAhacimEXTj+3Qkdp1kbg2CwbX2UfAt8rzBg9jzSmbaYC4Rj45onf/3amfw==","tarball":"https://registry.npmjs.org/@centfinance/sor_alfajores/-/sor_alfajores-0.0.6.tgz","fileCount":30,"unpackedSize":147334,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpXjaCRA9TVsSAnZWagAAxqEP/1a/5zBvFNv3XovuT8VN\nVdXGNRsSf58lPXK4+04CKG6I9XmURJ0lTIs+fcG61AaQVVZ6EsXeOxp5zMQz\nx/l+8OUtQsczaxJHP56pEui8yrBbZm9UZQDSaIjj9bbMfObXUGQ3qLQEUHmG\nvGFrc9kJ90kj4bsVxeSB8/YKV9TKSrrfaoZgiUsPkCsRPhz9y5qABsb0vOFn\ndMjHtPA5No5yzkxlTRPPwBR9PdkNXaSieKbqKY7NeYyfMhq0og0d0RYr6z8y\nmS0iq5ezm6R39ZITnyMRqUwpRR3IDYaq3v27YKJoYfCtM/S4h9lxKaLOIdX0\nMxzZy5RTL1Tqlfs5crG2AL7+5Li8G+LRxmPshSPCMyvjemfxTRP0il+BGPfJ\nSUBWpY72bjFoUGxpDyHoRmYUOjsGmKcUn5Ibqt+Rhl1U0YZDBp3ejIN8w2wx\n5XkrWFVqv5PU3hvK0JG47Cw8RzQ+zf5bpMTRyQDiUnAe4tDRxL+c2nfBRv/R\nJvBGtVNzILBaGyCSAMqFalzIFFta8wAcVCUOQWajRT2dfNoQJk0NNmbZ6kOD\nbD7jQda9+c9O8Tw4dNY/IrQVg3PBHQRcIfGADw0TSCeXk+1miyXu0xVA9M3J\nclQxsiRg5Sc7pYBCKTOAcISLB/i9k1xplO2mTffywu0zDw5vsZL9KK26zbCL\n3PDX\r\n=5Wqg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDN8ieXXpYCGER9rrLLi73Auf14vwv/sj5f5BGwEsw66AIgX4W8y7IPp64WizEvAl1SZJm0q74UougnYxa7DonOoQc="}]},"_npmUser":{"name":"switch1983","email":"darren.op@cent.finance"},"directories":{},"maintainers":[{"name":"switch1983","email":"darren.op@cent.finance"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sor_alfajores_0.0.6_1621457114439_0.2957436124867425"},"_hasShrinkwrap":false},"0.0.10":{"name":"@centfinance/sor_alfajores","version":"0.0.10","license":"GPL-3.0-only","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","prepublish":"tsc","test":"nyc mocha -r ts-node/register test/*.spec.ts","coverage":"nyc report --reporter=text-lcov | coveralls"},"husky":{"hooks":{"pre-commit":"pretty-quick --staged"}},"publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"devDependencies":{"@ethersproject/wallet":"^5.0.7","@types/chai":"^4.2.10","@types/mocha":"^7.0.2","@types/node":"^14.0.20","chai":"^4.2.0","coveralls":"^3.0.9","dotenv":"^8.2.0","husky":"^4.2.1","mocha":"^7.1.0","nyc":"^15.0.0","prettier":"^1.19.1","pretty-quick":"^2.0.1","ts-node":"^8.6.2","typescript":"^3.8.3"},"dependencies":{"@ethersproject/address":"^5.0.5","@ethersproject/constants":"^5.0.5","@ethersproject/contracts":"^5.0.5","@ethersproject/providers":"5.0.12","@ethersproject/solidity":"^5.0.5","@ethersproject/units":"^5.0.6","bignumber.js":"^9.0.0","isomorphic-fetch":"^2.2.1"},"description":"There are two types of swap available:","_id":"@centfinance/sor_alfajores@0.0.10","dist":{"shasum":"bf57f92b549bfc4f877482b85df4aa07f0f3dae7","integrity":"sha512-1be71llGR8xKOE/tMjqOtTVGgRjLtexvMNE6vuK0NlkAoi65y0yA8z9Rf6sRn+oIXI+AAV3lpa/s0IuoRuBMSA==","tarball":"https://registry.npmjs.org/@centfinance/sor_alfajores/-/sor_alfajores-0.0.10.tgz","fileCount":30,"unpackedSize":147226,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5e7eCRA9TVsSAnZWagAADtcP/jvkRsPGPGNjKGNYoMgl\ngkW+xM5MIVfGVPLN2B7qbwbfuDheRIMcMYhSco8b1QAUfgEhnOPAF86z++eA\nIzTHWIVJK+2wmBWrC97P8GknpPLsZvln08HRu2ZiNsxl1DMdlaJrYvRfiyU7\nJs9lWuZdHhGKQq51RTwS1ceYebc+NMtBC2rWm8OS9fmIx1hjbC8PE+n54T+m\n0LHiO22D2GzK2nYefjfLWcmOjOCAHkL8iiQU4bqikl3t7INiJxC/R/PgQHJ3\n2OQGhWjhJHbFbBs5oI7k5VV0F4hYxUiKh1QL1s337J1gvb/Vrg/YtpEeNh1v\n+aBnVyXJ31RzUCV4KqLb55hUw4EmCo6/NgqpCCFZ2gXhuqmZNm0q/zKBuF5Q\nGjXqnP9bPsWy6ykg8zoyXsGUv0ANfyuPyFu37eDhtuY4g1NU1PVmZgLiJLrK\nj3F6VWTUp3WbXGKgLjYAfjmO/ia6cyIjioq6PMKWQBsU+QjACvZ9OcLY/qLI\nb83jltNjB1xydA+xowjCIF1seZ3I2fsYD7GOaPrrwVixNwkzVWm8Hegg7uc0\n83p369fX35D+NizY3TlnMSRUIfFnYvBbFaO8hTY9ejwjBjWrYCTOCLlXFZIn\nt913lo72BixAb0d6yXa0Z05n0t1QbnF/632oOJHLdI+lQsyDKpb2ZQMF1F+3\nB4qI\r\n=y2AM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCqHQTwxJE9QcFlg/TrjMTRdVqMeF5t0YoDhWv1EYdvuAIhAOh2OhAxweWxnvc+iZfzgmAr4WHTryb0Kp4F8Ncv0HAV"}]},"_npmUser":{"name":"switch1983","email":"darren.op@cent.finance"},"directories":{},"maintainers":[{"name":"switch1983","email":"darren.op@cent.finance"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sor_alfajores_0.0.10_1625681630085_0.9853747368695984"},"_hasShrinkwrap":false}},"time":{"created":"2021-04-29T20:30:04.186Z","0.0.1":"2021-04-29T20:30:04.889Z","modified":"2022-04-04T22:19:24.732Z","0.0.6":"2021-05-19T20:45:14.594Z","0.0.10":"2021-07-07T18:13:50.195Z"},"maintainers":[{"name":"switch1983","email":"darren.op@cent.finance"}],"description":"There are two types of swap available:","license":"GPL-3.0-only","readme":"<p align=\"center\">\n  <a href=\"https://circleci.com/gh/balancer-labs/balancer-sor\">\n    <img src=\"https://circleci.com/gh/balancer-labs/balancer-sor.svg?style=svg&circle-token=33636208d3161f79ff283b29c8dba9841bda8931\" />\n  </a>\n  <a href=\"https://coveralls.io/github/balancer-labs/balancer-sor\">\n    <img src=\"https://coveralls.io/repos/github/balancer-labs/balancer-sor/badge.svg?t=7avwwt\" />\n  </a>\n  <a href=\"https://www.gnu.org/licenses/gpl-3.0\">\n    <img src=\"https://img.shields.io/badge/License-GPLv3-green.svg\" />\n  </a>\n  <a href=\"https://www.npmjs.com/package/@balancer-labs/sor\">\n    <img src=\"https://img.shields.io/badge/npm-v0.2.4-blue.svg?style=flat-square\" />\n  </a>\n</p>\n\n<h1 align=center><code>Smart Order Router (SOR)</code></h1>\n\nSmart Order Router, or SOR, is an off-chain linear optimization of routing orders across pools for best price execution.\n\nSOR exists in the Bronze release as a way to aggregate liquidity across all Balancer pools. Future releases of Balancer will accomplish this on-chain and allow aggregate contract fillable liquidity.\n\nLiquidity aggregators are free to use the SOR npm package or create their own order routing across pools.\n\n[Read More](https://docs.balancer.finance/protocol/sor)\n\n## Overview Of Use And Example\n\nThere are two types of swap available:\n\n**swapExactIn** - i.e. You want to swap exactly 1 ETH as input and SOR will calculate X amount of BAL you receive in return.  \nor  \n**swapExactOut** - i.e. You want to receive exactly 1 BAL and SOR will calculate X amount of ETH you must input.\n\nThe SOR will return totalReturn/totalInput as well as a list swaps to achieve the total. Swaps can be through direct pools, i.e. A > POOL1 > B, or via a multihop pool, i.e. A > POOL1 > C > POOL2 > B. The swaps can be executed directly on-chain or with something like the [ExchangeProxy](https://github.com/balancer-labs/balancer-registry/blob/master/contracts/ExchangeProxy.sol).\n\nExample Output:\n\n```js\n// Following is output for 1USDC->WETH swapExactIn\n[\n    swaps,\n    amountOut,\n] = await SOR.getSwaps(....\n\n  console.log(\n      `USDC>WETH, SwapExactIn, 1USDC, Total WETH Return: ${amountOut.toString()}`\n  );\n  // USDC>WETH, SwapExactIn, 1USDC, Total WETH Return: 3090385829490120 - This is the total amount of WETH received for 1USDC\n  console.log(`Swaps: `);\n  console.log(swaps);\n\n  /*\n    This demonstrates a multihop swap going:\n    USDC -> BTC++ via pool 0x75286...\n    Then BTC++ -> WETH via pool 0xd4dbf...\n  */\n  [\n    // Multihop swap\n    [\n      // First sequence in swap\n      {\n        pool: '0x75286e183d923a5f52f52be205e358c5c9101b09',\n        tokenIn: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n        tokenOut: '0x0327112423f3a68efdf1fcf402f6c5cb9f7c33fd',\n        swapAmount: '1000000',\n        limitReturnAmount: '0',\n        maxPrice: '115792089237316195423570985008687907853269984665640564039457584007913129639935'\n       },\n      // Second sequence in swap\n      {\n        pool: '0xd4dbf96db2fdf8ed40296d8d104b371adf7dee12',\n        tokenIn: '0x0327112423f3a68efdf1fcf402f6c5cb9f7c33fd',\n        tokenOut: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n        swapAmount: '89403274570637',\n        limitReturnAmount: '0',\n        maxPrice:'115792089237316195423570985008687907853269984665640564039457584007913129639935'\n      }\n    ]\n  ]\n```\n\nThe file: [example-swapExactIn.ts](test/testScripts/example-swapExactIn.ts), shows full examples with comments for various swaps.\n\nTo Run:\n\nCreate a .env file in root dir with your infura provider key: `INFURA=your_key`\n\nInstall dependencies: `$ yarn install`\n\nRun example: `$ ts-node ./test/testScripts/example-swapExactIn.ts`\n","readmeFilename":"README.md"}