{"_id":"@centfinance/sor_sokol","_rev":"5-f43d42e3069ccac7f3c11c4d8d5f75d9","name":"@centfinance/sor_sokol","dist-tags":{"latest":"0.0.10"},"versions":{"0.0.1":{"name":"@centfinance/sor_sokol","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":"</div>","_id":"@centfinance/sor_sokol@0.0.1","dist":{"shasum":"e48c9699b44431732c219d37ec5ac23da5c52a94","integrity":"sha512-tXheD4M49ggkzlH9AO2gE9GqaddBGPAvxr6doafzgRz6e6bImte3eZIXkPd0gmPVJy9LwuMyJxy65MJrvJVllg==","tarball":"https://registry.npmjs.org/@centfinance/sor_sokol/-/sor_sokol-0.0.1.tgz","fileCount":30,"unpackedSize":150887,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgCFPeCRA9TVsSAnZWagAAffAQAJOe2QOTZ2+SB2OAHTTy\nR44VXQc8tAjMnV7uk/zf9nZgPSdmy1m7QJE+Kzo1fGlzeTdBoY6C3TTTuPF3\nabmaHC7xjLLoyINUReU0tW2MIrEgGubt4pYjGtgSD0HJcr7x9kwhvZXjU69X\nUCX38nTOcDH5uo3/TU8dFRJxnJp6gHd/yQ/776G4Y7Z7ejgjSFPF/m2VIe0Y\n9VZjGbmdV7xODsSDL9z83yz7Sa+9T27ok91W1Z2ULwXJXqlEdJO9yYF/qorw\nJrAGVuEmzw4bELPYIcfqzC/m82yvFLTalldPF0jr7G/OcNq081ylQnl1sCtJ\nWnwmiQBRkTqOXhcjbmzdo3LanXyFuk+MIwCglopHFSoisX5kQhB+zOug8zri\ncLmYAXmwr+rtN3d7C+O7w0GSNpPWEbbflEKj6A+JzhxE/eFVWsJQHaG1hr5d\nPDBbdaG6BTybRpstxx8gxNBQJMML12wBYdQlp3tOI5eNpGr+F+D/PC64wdPh\nhln+ryW3XmtM1Cvyty3Gqcav3UipbDivk3JhZg2iOTeK8AzV71XoqN7iRlO+\nZ73rAjO+yhnYYoAT2eDZMXsE1GhRpxS95Xv7uCNcOOcth1ln9dXk0/VphTks\nUARpJIuESisluGoP2OByTA985XYopI7ETA0Zlxxemi18Ve50CxxB7jSpgfvI\nSHm2\r\n=CpkD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDrOmtlo03mimpb1Lc9eqHwiv+ywDXCPLqXuA/DrEQUEgIgNkzlt1lxi5E3oV87HDIFR2Vib5URyVFXnjCjCgGeWB8="}]},"_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_sokol_0.0.1_1611158493852_0.5078460689499951"},"_hasShrinkwrap":false},"0.0.2":{"name":"@centfinance/sor_sokol","version":"0.0.2","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_sokol@0.0.2","dist":{"shasum":"9050798d73e3b279dbb46845dceae245a538c9a8","integrity":"sha512-eUWGrkSrlPMQ6BKajTS4XmKTiIPmNy3ZzekJSvFhvqH1XzBjhu89qTz69HKLPBybGtBr7qxVDPRjTKYT6RwZyw==","tarball":"https://registry.npmjs.org/@centfinance/sor_sokol/-/sor_sokol-0.0.2.tgz","fileCount":30,"unpackedSize":146796,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgixa/CRA9TVsSAnZWagAA/dQP/0TRz0m5tGJ5W8VoUNR8\nUV+jrmXuaNb1wOzhn+YXVBIBZQH4jfqfQi2qHZdNnz0Wg3oZoiTEhexSnrXO\nMiac2cQgIKebNwB8UOt2wxhb8UT1zev41OBjcMYHMzMpNIRI/ZVT32GS6dVy\nghxYlpZM1kDE0sLLAYC+0FI488b0/eO6M5omg712v/KuMiIObKPfEkHlC3qO\n8uL2qGIaCxD62ltLYo6iLsL92Ximkiy2yNaY8MP3f5vHv7IUxQVfxzZTQOMX\nzOWx4xnha50bf+sd7PEgcO/crLhPkYxvAM1i3/OdOM1V/yE9WT17wtcOgIhs\nnP6a1CXCK1EwZ8xbGORqKhwNNuBggmz0d7Uftne3oizPJghrnVOlrtjfO2IC\nUP+zC+lRZeJhMj59fryGbNmcK4LpMm+0cZ3DEk0pRmCClYaQ5u4/PiRRjpsD\nMxDRGKSNIg4+3HC4i97JiboDAyLGKn9n6jqEOqnxAueAg4A8i6wCaD8Psb1D\npjLcBVF1WqRB30dQDnfADLXnASFjL4ntLYAt7DbEMgkWSkhA1wATGdY005Xa\n8CFk+QAu9yzSmibvUxThBpF9q3T/k7oNfunk1AM8ylXmBPjUX06fuo4R2mpF\nUkA5Tov3NvmSG9Uc9hC9vaeZClT2ivkuIe6TAK1uuULyGC69xuosSQONyfDb\nD9y2\r\n=2J69\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC5ZyxYS3ob92spKH3sjXI2ec0AQ8wL04FKWUxBmtcrIAiEAh4C9MDAm0pQedcnXgP5/aKr7AqN7JhwkNI8y89VDPSE="}]},"_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_sokol_0.0.2_1619728063230_0.22708844604442224"},"_hasShrinkwrap":false},"0.0.6":{"name":"@centfinance/sor_sokol","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_sokol@0.0.6","dist":{"shasum":"a209aebbe58d5a30760af04931807270f09c344f","integrity":"sha512-mWqxk9Bu9QvHwV0xqFMMmYQgIiG808b5P9MdKsfudmQy+BislfnU8raKN3uh5V0ksfllO2+En1oVYz2ZYRylLQ==","tarball":"https://registry.npmjs.org/@centfinance/sor_sokol/-/sor_sokol-0.0.6.tgz","fileCount":30,"unpackedSize":147330,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpXrsCRA9TVsSAnZWagAACz0P/iakes0j0Xlgw2MuI2IP\nOMu+u5r7JPZrnJ35gKoA12nMLrQ0//8aPpJy7zy1J+BwHiF0UwKUfUmjnBPy\nP62I55Z3YbxefsX2KF/455rsEzOO1kvCM/c6w7D9zkzMkv4qRDQavj1yGHTh\nAxGkxsEp56lga3Vkq47EMkHDtlp3XkZwBtRTkzydlCbNxSAim94E+DuKQIop\n7umsoJVanfioxGDJXElnAPnfzpCNUcNIBASQZMtN6E56XS+DILYBXdBq3tvn\nm4jU4uTdPCGf6BEFjBdc+RnYZBhiQQteRaKEnxLVcuDTlij6V+FxyGjgRgwZ\n6aBpSITHw4P/Lp+vXKaZI3yGL+QiIDnuLjN4gA0Ojr1MP0cx6s8QkpTXQAXG\nlKF5HQ5UpJbHdE1You8+8yO7HlqoI5bpYliTuAPgOM7tz8WAMRqI/5Qxk9OR\nLfdTiE+4DCmm5kzzuwrAFh41ETaMnUH9gbBalxyRS9cC+UBT4e3bUmmH9vYM\nF0nXk/DGPzVwqTgkDM3WGQDKMLLACH1nT6Gu55c3Uk967yVwN6DCi7fWevtw\nTidQ0e0yli4TcnnxMp1fdsIkf9W8VPUfI/iRKt3VOQ3e3BaWeGzdmy6Nvr8B\nK9g3g4ZsJQ01ghUKHsnMZ1pfev2PWplzu1L+iclKW/Cm+l1bwZUuyfoqQo2n\n5uuX\r\n=plgD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICn1k1k+jQeKJRsP30YVRfjFPqO6aNgE9dLOIc6Ytz4KAiEA4+u/lGUZjToAfmNv0snLd7papQcH83sezQGs8LPZK6k="}]},"_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_sokol_0.0.6_1621457643823_0.3411674089333705"},"_hasShrinkwrap":false},"0.0.9":{"name":"@centfinance/sor_sokol","version":"0.0.9","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_sokol@0.0.9","dist":{"shasum":"940937f2596e3382db5c5b9ba0803e89a723a3f6","integrity":"sha512-r9yAb/ukq8Ge3xyhaDT2bogLsftnseyvnclDs1SQ4ysNX18+Ds0kGzaeWNecFXtWy0XGU9CKjIxuZFyEyHuOag==","tarball":"https://registry.npmjs.org/@centfinance/sor_sokol/-/sor_sokol-0.0.9.tgz","fileCount":30,"unpackedSize":147118,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5eweCRA9TVsSAnZWagAATuoQAKDQaM9BuSwy8kJ4h3DZ\nqaA6nv5MaDvoE8TC9TSiSJ7tJMHOyTSy1GbPR9wZrJe2j3T30ZHiGyurNZVK\ndkiyxXMIGt98atHz8aQhiphs/RJAk8OKE5ZXMz6m46qTFoFKjEE4U4Widsjo\nyHgDJq6tZ+RzOdWC/yzd4Xl7UfXuTDxsKxhUaguKgQmcxdbxYsVuHgnTPJL3\n6msdgtLSmpBdfnjzVnnZZNlDKOWbqcvjxn+Fuyo36qpvLJ5wPcBb7vO86Cg7\nqhrVnqNSYwIfndN0Gkz54kywcCD4hXK3auEW8FO5WqvyOB9riY/zjWRvtFWr\nrCczwO1jda8lF919f0Gchib8KLR7LF/NyFmeWJUwGbCZ1TjGekzgp48jSsve\nTXqYNCu2VZF78FekvPL5asoLscOHvxZAMN6+NySAEcS0TMY4gWAGoVMA2gJc\nVfEAMMNhkxOI/YAjnwwaF5xvzdbjawRfDL2Tu6s9cvcTz2YulXYfpcmGkdWs\nOE1BaCZurdxJky6bSwZ2qVMHrbCSJp9FPGPjO78vYrW/Rnb3QjcAEBjSlIVO\nOcLxaStEDUVWiCbVr5ihMf1jzy88oP/c45Pc7zCW5sJUy3eZ1FPwaMHdwQSx\nHJxnJbATBdORcPriFoAZNIqfmmuxcVG5JUEN7pjkVW4F7vV5KEu/LSogQ7lb\n1cNR\r\n=1Gwb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG7nClBf51x1NXJv99K6kndtYI0etb8eUXSe51oKKDL+AiEAg7uEaTpSdcJWKFpRGkBmXHU837HnX4PCmLSBEBpK+14="}]},"_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_sokol_0.0.9_1625680925513_0.9579247141730087"},"_hasShrinkwrap":false},"0.0.10":{"name":"@centfinance/sor_sokol","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_sokol@0.0.10","dist":{"shasum":"808900862dce7136301ad4746ccfd43ec132bad7","integrity":"sha512-9Z0Jw5sLXeZZ7E+nt1ibVKY1tQD+ngXpYTh1el7bqKrNlv4wi3DLWDAKA8LelpzyLHMATlkCs15T1QJw0qfibw==","tarball":"https://registry.npmjs.org/@centfinance/sor_sokol/-/sor_sokol-0.0.10.tgz","fileCount":30,"unpackedSize":147119,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5exqCRA9TVsSAnZWagAAXasP/RbHYGIdT/Gnsewy0ipA\nOzEYIaeT8WAeMkaQ6+wVUoRoIM7h5SNJJCP7+YxmKAehTec+Luqqm0qKhaCr\nbxb7ybxBPHAiaSi7zNTkmAS3gEAe5QpLLMWrwVVZ2RhdBRKZfgBLOtlSIUbr\n40LbdwYuTwjzGCiqaH94yCOt6lKX4HbIPbE2PxQBMTQSSVM7WeBQrok2tvqw\nRqTcTGNwkgmDW1mm7FFA7EcN63pgSLLa/yJOXE+w0hw/n/4sGTwpdPAfmozA\nPPEyijaszVBUwFSYiXE7WsgL1KZjJqrkWND/jsq8H2U7f2Uy2KJNftwAYVTd\nBHjGHGENSwv95iSOEAVX/pQPdwDjFIR1F39U70nNZVdRyiBfM46J7GUValXX\nR1ygpncG80NPDXBNah8kblYaBIyC/RNeJdj84aHmYqaK16ENg7xzwa2KIy9F\n0TY3ZfZfBkIUnnwvUK1DFUx3qLWE3pEaK9wTQSk7pZjIS9gqzdb+nEus4qpa\niY2lMKyUrDT4DvRRA29Wi/D1SFMfYdC35Nu4iL/UI3Ln1GTrpqrXlGq84suN\nfl5pVTXvsLWHnz7XAGHeCx0X8MnpevxMH2Z6+T9Q1GyihCpF8u2hKV6kdUox\nx6L8ZpYoGV7rPeWo8xl6e52JR9VfJ1QeRc0869g9PCVfEHDpA6cUIgRlwemt\nVf+n\r\n=n01b\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCYyxLZye4RbX0HhBQkoNFohuqQha6MEv3x9aXuldPNTwIgNpuU9hwsbrqPJRuQb0Ubm7XauC7DPlHZ2oQuV7MC+C0="}]},"_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_sokol_0.0.10_1625681002385_0.6959016964340758"},"_hasShrinkwrap":false}},"time":{"created":"2021-01-20T16:01:29.504Z","0.0.1":"2021-01-20T16:01:34.023Z","modified":"2022-04-04T22:19:25.182Z","0.0.2":"2021-04-29T20:27:43.378Z","0.0.6":"2021-05-19T20:54:04.077Z","0.0.9":"2021-07-07T18:02:05.762Z","0.0.10":"2021-07-07T18:03:22.527Z"},"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"}