{"_id":"@eclips3e3/smart-order-router-susono","_rev":"1-749c625efc781016cc4b64b47c0ac289","name":"@eclips3e3/smart-order-router-susono","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@eclips3e3/smart-order-router-susono","version":"1.0.0","description":"Uniswap Smart Order Router Susono/Maistestsubnet","main":"build/main/index.js","typings":"build/main/index.d.ts","module":"build/module/index.js","repository":{"type":"git","url":"git+https://github.com/weichain/smart-order-router-maisubnet.git"},"license":"GPL","keywords":[],"scripts":{"compile-v3-types":"npx typechain --target ethers-v5 --out-dir src/types/v3 './node_modules/@uniswap/?(v3-core|v3-periphery)/artifacts/contracts/**/*.json'","compile-v2-types":"npx typechain --target ethers-v5 --out-dir src/types/v2 './node_modules/@uniswap/?(v2-core|v2-periphery)/build/*UniswapV2*.json'","compile-router":"npx typechain --target ethers-v5 --out-dir src/types/other './node_modules/@uniswap/swap-router-contracts/artifacts/contracts/**/*.json'","compile-external-types":"npx typechain --target ethers-v5 --out-dir src/types/other 'src/abis/**/*.json'","build":"run-p compile-v3-types compile-v2-types compile-router compile-external-types && run-p build:*","build:main":"tsc -p tsconfig.json","build:module":"tsc -p tsconfig.module.json","fix":"run-s fix:*","fix:prettier":"prettier \"src/**/*.ts\" --write","fix:lint":"eslint src --ext .ts --fix","version":"standard-version","prepare-release":"run-s cov:check doc:html version doc:publish","test":"jest test/unit","integ-test":"TS_NODE=true jest test/integ"},"engines":{"node":">=10"},"dependencies":{"@uniswap/default-token-list":"^2.0.0","@uniswap/router-sdk":"^1.3.0","@uniswap/swap-router-contracts":"^1.3.0","@uniswap/token-lists":"^1.0.0-beta.25","@uniswap/v2-sdk":"^3.0.1","@uniswap/v3-sdk":"^3.7.0","async-retry":"^1.3.1","await-timeout":"^1.1.1","axios":"^0.21.1","bunyan":"^1.8.15","bunyan-blackhole":"^1.1.1","ethers":"^5.6.1","graphql":"^15.5.0","graphql-request":"^3.4.0","lodash":"^4.17.21","mnemonist":"^0.38.3","node-cache":"^5.1.2","stats-lite":"^2.2.0"},"devDependencies":{"@ethersproject/providers":"^5.4.0","@istanbuljs/nyc-config-typescript":"^1.0.1","@nomiclabs/hardhat-ethers":"^2.0.6","@oclif/command":"^1.8.0","@oclif/errors":"^1.3.5","@typechain/ethers-v5":"^7.0.1","@types/async-retry":"^1.4.4","@types/await-timeout":"^0.3.1","@types/bunyan":"^1.8.6","@types/bunyan-blackhole":"^0.2.2","@types/jest":"^27.0.0","@types/jest-sinon":"^1.0.2","@types/lodash":"^4.14.168","@types/node":"^15.0.2","@types/sinon":"^10.0.2","@types/stats-lite":"^2.2.0","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","@uniswap/v2-core":"^1.0.1","@uniswap/v2-periphery":"^1.1.0-beta.0","@uniswap/v3-core":"^1.0.0","@uniswap/v3-periphery":"^1.1.1","bunyan-debug-stream":"^2.0.0","dotenv":"^10.0.0","eslint":"^7.8.0","eslint-config-prettier":"^6.11.0","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-import":"^2.22.0","hardhat":"^2.9.6","jest":"^27.0.6","jest-environment-hardhat":"^1.1.8","jest-expect-message":"^1.0.2","jest-mock":"^27.0.6","jest-sinon":"^1.0.4","npm-run-all":"^4.1.5","open-cli":"^6.0.1","prettier":"^2.1.1","prettier-plugin-organize-imports":"^2.1.0","sinon":"^11.1.2","standard-version":"^9.0.0","ts-jest":"^27.0.4","ts-node":"^10.8.1","typechain":"^5.0.0","typescript":"^4.2.2"},"peerDependencies":{"jsbi":"^3.2.0"},"prettier":{"singleQuote":true},"oclif":{"commands":"./cli/commands"},"gitHead":"bf48c73d4b3e4ffacdd7b5e192108e79bddaf6f3","bugs":{"url":"https://github.com/weichain/smart-order-router-maisubnet/issues"},"homepage":"https://github.com/weichain/smart-order-router-maisubnet#readme","_id":"@eclips3e3/smart-order-router-susono@1.0.0","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-z92PiCnOl+h4u1ybigT8aqStjsPsfvSBsGKSCECW21JXg8WaglkGKLky1ouDoY/27ZuAsEiJ5CjR44UblSapHg==","shasum":"fe4c09011e8632283830bdd85ea88f8dd35601a1","tarball":"https://registry.npmjs.org/@eclips3e3/smart-order-router-susono/-/smart-order-router-susono-1.0.0.tgz","fileCount":4,"unpackedSize":63429,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHqDuG4EEQpSY1aCiOBf/WEab97CF1PiWcSl2mDhvoiPAiBSoxT0+n+S4qFtN7Mqi516D52FHlD6sckqLdL+tMl9MQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj+NKkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqlhhAAkHfq6oEHad4H3SnMzivO3/sX6fmNZay3+QdELhKHjeZgwhSg\r\nOhnVx6qJJhHRUM5lmO+5tASTo6o9j85w7xFTmSkgsPNf4iqdzvFZcUnsEY/Z\r\nvKMwK8NOG6dGe1Vqut/k9NMmSPJRoAXogngXKKE7N9vnAh32O5OggK5xJWvp\r\nSFrVG79RwmSrG3VNesWB3KK1+gkOWRll3A0pjVamFMKTyZuQyYC78n6UKdDS\r\nQTHkH4xK+bg9ZYMWCoAH7KCS4hwF2p+6Tzk2Wa4UTwes2eaS4oLrp5ek4Fzw\r\n25fX2iWX5FXV8JAfgZzMlWhe1Lx3wBpG3qMxZfZkoyBhzexZBnPZm2A+CWOv\r\nq+dm+bL3Du6Td2C1YT6yaeIxmZya/fPUcdXRQaEx0CrMjdeDdM8E+I7Guw01\r\n46r8QKX2w/IadolyNmeWdescMuI52eXqgOiJC2ap2utDlOm971PnmZcqInDC\r\nUWjoEDXoIOtmOo5+8JZVyVb9QfeYeaQbE5aHPVQAggnJvSuQdq6lFJnpRokT\r\njrMXuRLaQMQIlroYayjUNyZYWXSNeTQHFD/GxpZXUcfRk1OKbrW+RzKNb4QY\r\na1A9fFk3+R4J8csVFj2ISWSg77VpZPTxxnswphyQdCAwuzgAg9zcNJdhU9ZW\r\nnhNJb/O1NgvUEsQtX/XgVbFriepm080aRc4=\r\n=SAOY\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"eclips3e3","email":"teodor@weichain.tech"},"directories":{},"maintainers":[{"name":"eclips3e3","email":"teodor@weichain.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/smart-order-router-susono_1.0.0_1677251236392_0.10403474486107211"},"_hasShrinkwrap":false},"1.0.1":{"name":"@eclips3e3/smart-order-router-susono","version":"1.0.1","description":"Uniswap Smart Order Router Susono/Maistestsubnet","main":"build/main/index.js","typings":"build/main/index.d.ts","module":"build/module/index.js","repository":{"type":"git","url":"git+https://github.com/weichain/smart-order-router-maisubnet.git"},"license":"GPL","keywords":[],"scripts":{"compile-v3-types":"npx typechain --target ethers-v5 --out-dir src/types/v3 './node_modules/@uniswap/?(v3-core|v3-periphery)/artifacts/contracts/**/*.json'","compile-v2-types":"npx typechain --target ethers-v5 --out-dir src/types/v2 './node_modules/@uniswap/?(v2-core|v2-periphery)/build/*UniswapV2*.json'","compile-router":"npx typechain --target ethers-v5 --out-dir src/types/other './node_modules/@uniswap/swap-router-contracts/artifacts/contracts/**/*.json'","compile-external-types":"npx typechain --target ethers-v5 --out-dir src/types/other 'src/abis/**/*.json'","build":"run-p compile-v3-types compile-v2-types compile-router compile-external-types && run-p build:*","build:main":"tsc -p tsconfig.json","build:module":"tsc -p tsconfig.module.json","fix":"run-s fix:*","fix:prettier":"prettier \"src/**/*.ts\" --write","fix:lint":"eslint src --ext .ts --fix","version":"standard-version","prepare-release":"run-s cov:check doc:html version doc:publish","test":"jest test/unit","integ-test":"TS_NODE=true jest test/integ"},"engines":{"node":">=10"},"dependencies":{"@uniswap/default-token-list":"^2.0.0","@uniswap/router-sdk":"^1.3.0","@uniswap/swap-router-contracts":"^1.3.0","@uniswap/token-lists":"^1.0.0-beta.25","@uniswap/v2-sdk":"^3.0.1","@uniswap/v3-sdk":"^3.7.0","async-retry":"^1.3.1","await-timeout":"^1.1.1","axios":"^0.21.1","bunyan":"^1.8.15","bunyan-blackhole":"^1.1.1","ethers":"^5.6.1","graphql":"^15.5.0","graphql-request":"^3.4.0","lodash":"^4.17.21","mnemonist":"^0.38.3","node-cache":"^5.1.2","stats-lite":"^2.2.0"},"devDependencies":{"@ethersproject/providers":"^5.4.0","@istanbuljs/nyc-config-typescript":"^1.0.1","@nomiclabs/hardhat-ethers":"^2.0.6","@oclif/command":"^1.8.0","@oclif/errors":"^1.3.5","@typechain/ethers-v5":"^7.0.1","@types/async-retry":"^1.4.4","@types/await-timeout":"^0.3.1","@types/bunyan":"^1.8.6","@types/bunyan-blackhole":"^0.2.2","@types/jest":"^27.0.0","@types/jest-sinon":"^1.0.2","@types/lodash":"^4.14.168","@types/node":"^15.0.2","@types/sinon":"^10.0.2","@types/stats-lite":"^2.2.0","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","@uniswap/v2-core":"^1.0.1","@uniswap/v2-periphery":"^1.1.0-beta.0","@uniswap/v3-core":"^1.0.0","@uniswap/v3-periphery":"^1.1.1","bunyan-debug-stream":"^2.0.0","dotenv":"^10.0.0","eslint":"^7.8.0","eslint-config-prettier":"^6.11.0","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-import":"^2.22.0","hardhat":"^2.9.6","jest":"^27.0.6","jest-environment-hardhat":"^1.1.8","jest-expect-message":"^1.0.2","jest-mock":"^27.0.6","jest-sinon":"^1.0.4","npm-run-all":"^4.1.5","open-cli":"^6.0.1","prettier":"^2.1.1","prettier-plugin-organize-imports":"^2.1.0","sinon":"^11.1.2","standard-version":"^9.0.0","ts-jest":"^27.0.4","ts-node":"^10.8.1","typechain":"^5.0.0","typescript":"^4.2.2"},"peerDependencies":{"jsbi":"^3.2.0"},"prettier":{"singleQuote":true},"oclif":{"commands":"./cli/commands"},"gitHead":"93b4da6aee36311f1449a17bb3926bd7195108cb","bugs":{"url":"https://github.com/weichain/smart-order-router-maisubnet/issues"},"homepage":"https://github.com/weichain/smart-order-router-maisubnet#readme","_id":"@eclips3e3/smart-order-router-susono@1.0.1","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-0ZlUkyRrZeYtpRjdGMWNBOgHKj/Tfty5PHPEVmaAEqOtaxJCMBDWJEJeTtI1O1iAXdO3gZ8X/QURnfQY36RVqg==","shasum":"23604e23408dedf96930e3da56fedd5683b9a5e3","tarball":"https://registry.npmjs.org/@eclips3e3/smart-order-router-susono/-/smart-order-router-susono-1.0.1.tgz","fileCount":342,"unpackedSize":2607336,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDHgOL3nZa6WUz7lW46bDL8ZRhpep5O5BWdhhFw24oPJQIhANGyVWCMBisLegPViOyP4efE1zzHImstWx+l3eQjPeUR"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj+OEZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpPQRAAnvDIzrXOg5ShaqqL1tGIkhECXyukAeYgO3C38iYjLs7bqySp\r\nvMk8vN9t2AODhUa9+cQq+uxkX5mZz7Mz8ih41YXPTbdntMKKuC3NC+QvE2oY\r\nbaYpNXd/3X0bLgCCtH9Xh/VL1XnRfU7r4v0Z8+h89fjtAqZHm6vWCCKhQryZ\r\n3ykjOJAEhhTJigxoxx2xXiB3tzEAAbGhaddHtCWtYzojsGSTs1F0EyWp27+7\r\nOm/zd/+DVbcflCkUoH3BIfWVMqeUwVKf7Aq70PDda2x5R1NbkqYwfprWUCjM\r\n/Bjh+eKLcHpvDEkjbu4wVCWcVbddJg8YVfZplBm7hsafl2g6Pz1rnGzMu3rg\r\nwaxCdBpuB1PmLdOyY1+3qzV2Ir7zhZHVnYnD7YyJkIizi/MxcVRjmJUeMUBS\r\nKx96L4z6CFb7MbzTzFPr75BVrWIJZtxPyo0pt6qGbv4PKzuqFlQdwDAB9LHB\r\nNp422TWb5BMXO83Bd8WAPN4KKU3OgRzJ6BiRoppdUpmTiRvVXWUb3Gvy4jzh\r\nP1mM1A+Sfj0eS102i9XIDiABByrBpaqLNPnLtZF707xMPvZf5f4wtTYYLZY5\r\ns6gVGrlShUFboPAcBUOC2vC1085bxejCwzGf5h1qEkkh/wg+OyXnZZ14+IHj\r\npxZO65/bCfaePAyGQRSI6MMT9RDHn4d991Q=\r\n=JRZP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"eclips3e3","email":"teodor@weichain.tech"},"directories":{},"maintainers":[{"name":"eclips3e3","email":"teodor@weichain.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/smart-order-router-susono_1.0.1_1677254937047_0.06529769258559881"},"_hasShrinkwrap":false}},"time":{"created":"2023-02-24T15:07:16.306Z","1.0.0":"2023-02-24T15:07:16.656Z","modified":"2023-02-24T16:08:57.456Z","1.0.1":"2023-02-24T16:08:57.283Z"},"maintainers":[{"name":"eclips3e3","email":"teodor@weichain.tech"}],"description":"Uniswap Smart Order Router Susono/Maistestsubnet","homepage":"https://github.com/weichain/smart-order-router-maisubnet#readme","keywords":[],"repository":{"type":"git","url":"git+https://github.com/weichain/smart-order-router-maisubnet.git"},"bugs":{"url":"https://github.com/weichain/smart-order-router-maisubnet/issues"},"license":"GPL","readme":"# Uniswap Smart Order Router\n\nThis repository contains routing logic for the Uniswap V3 protocol.\n\nIt searches for the most efficient way to swap token A for token B, considering splitting swaps across multiple routes and gas costs.\n\n## Testing\n\n### Unit Tests\n\nFirst make sure you have run `npm install` and `npm run build`.\n\n```\nnpm run test\n```\n\n### Integration Tests\n\nMake sure the `.env` file is configured to connect to mainnet and other chains. See the [CLI](#cli) section below for more details.\n\n```\nnpm run integ-test\n```\n\n### Tenderly Simulations\n\nQuotes can be simulated on Tenderly\n\nEnsure you set the following environment variables:\n\n```\nprocess.env.TENDERLY_BASE_URL!,\nprocess.env.TENDERLY_USER!,\nprocess.env.TENDERLY_PROJECT!,\nprocess.env.TENDERLY_ACCESS_KEY!,\n```\n\n### CLI\n\nThe package can be run as a CLI for testing purposes.\n\nFirst create a `.env` file in the root of the project and configure:\n\n```\nJSON_RPC_PROVIDER = '<JSON_RPC_PROVIDER>'\n```\n\nTo run on chains other than mainnet set up a connection by specifying the environment variable\n\n```\nJSON_RPC_PROVIDER_ROPSTEN = '<JSON_RPC_PROVIDER>'\nJSON_RPC_PROVIDER_RINKEBY = '<JSON_RPC_PROVIDER>'\nJSON_RPC_PROVIDER_GORLI = '<JSON_RPC_PROVIDER>'\nJSON_RPC_PROVIDER_KOVAN = '<JSON_RPC_PROVIDER>'\nJSON_RPC_PROVIDER_OPTIMISM = '<JSON_RPC_PROVIDER>'\nJSON_RPC_PROVIDER_OPTIMISTIC_KOVAN = '<JSON_RPC_PROVIDER>'\nJSON_RPC_PROVIDER_ARBITRUM_ONE = '<JSON_RPC_PROVIDER>'\nJSON_RPC_PROVIDER_ARBITRUM_RINKEBY = '<JSON_RPC_PROVIDER>'\nJSON_RPC_PROVIDER_POLYGON = '<JSON_RPC_PROVIDER>'\nJSON_RPC_PROVIDER_POLYGON_MUMBAI = '<JSON_RPC_PROVIDER>'\nJSON_RPC_PROVIDER_CELO = '<JSON_RPC_PROVIDER>'\nJSON_RPC_PROVIDER_CELO_ALFAJORES = '<JSON_RPC_PROVIDER>'\n```\n\nThen from the root directory you can execute the CLI.\n\n## Examples\n\nSome examples to use for manual CLI testing.\n\n### Mainnet\n\n```\n./bin/cli quote --tokenIn 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 --tokenOut 0x1f9840a85d5af5bf1d1762f925bdaddc4201f984 --amount 1000 --exactIn --recipient 0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B --protocols v2,v3\n\nBest Route:\n100.00% = USDC -- 0.3% --> UNI\n\tRaw Quote Out:\n\t\t35.72\n\tGas Adjusted Quote Out:\n\t\t34.03\n\nGas Used Quote Token: 1.691772\nGas Used USD: 47.592951\nCalldata: 0x414bf389000000000000...\nValue: 0x00\n\n  blockNumber: \"13088815\"\n  estimatedGasUsed: \"113000\"\n  gasPriceWei: \"130000000000\"\n\n\n./bin/cli quote-to-ratio --token0 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 --token1 0xdac17f958d2ee523a2206206994597c13d831ec7 --feeAmount 3000 --recipient 0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B  --token0Balance 1000 --token1Balance 2000 --tickLower -120 --tickUpper 120\n\nBest Route:\n100.00% = USDT -- 0.05% --> USDC\nRaw Quote Exact In:\n\t392.68\nGas Adjusted Quote In}:\n\t346.13\n\nGas Used Quote Token: 46.550010\nGas Used USD: 46.342899\nCalldata: 0x414bf389000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000001f4000000000000000000000000ab5801a7d398351b8be11c439e05c5b3259aec9b000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000176a736c000000000000000000000000000000000000000000000000000000001764f8650000000000000000000000000000000000000000000000000000000000000000\n\tValue: 0x00\n\n\tblockNumber: \"13239188\"\n\testimatedGasUsed: \"113000\"\n\tgasPriceWei: \"116690684398\"\n\n./bin/cli quote --tokenIn 0x0391D2021f89DC339F60Fff84546EA23E337750f --tokenOut 0x4d224452801ACEd8B2F0aebE155379bb5D594381 --amount 10000 --exactIn --recipient 0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B --protocols v2,v3,mixed\nBest Route:\n[V2 + V3] 100.00% = BOND -- [0x6591c4BcD6D7A1eb4E537DA8B78676C1576Ba244] --> USDC -- 0.3% [0xB07Fe2F407F971125D4EB1977f8aCEe8846C7324] --> APE\n\tRaw Quote Exact In:\n\t\t10437.85\n\tGas Adjusted Quote In:\n\t\t10433.83\n\nGas Used Quote Token: 4.018625\nGas Used USD: 29.669402\nCalldata: 0x5ae401dc0000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000e4472b43f300000000000000000000000000000000000000000000021e19e0c9bab240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000391d2021f89dc339f60fff84546ea23e337750f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000104b858183f00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000080000000000000000000000000ab5801a7d398351b8be11c439e05c5b3259aec9b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002358df5b3b4459a3f5b000000000000000000000000000000000000000000000000000000000000002ba0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000bb84d224452801aced8b2f0aebe155379bb5d59438100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nValue: 0x00\n\n  blockNumber: \"15303839\"\n  estimatedGasUsed: \"434000\"\n  gasPriceWei: \"38218865879\"\nTotal ticks crossed: 7\n```\n\n## Rinkeby\n\n```\n./bin/cli quote --tokenIn 0x5592ec0cfb4dbc12d3ab100b257153436a1f0fea --tokenOut 0x4DBCdF9B62e891a7cec5A2568C3F4FAF9E8Abe2b --amount 200000 --exactIn --minSplits 1 --router alpha --chainId 4\n```\n\n## Kovan\n\n```\n./bin/cli quote --tokenIn 0x4f96fe3b7a6cf9725f59d353f723c1bdb64ca6aa --tokenOut 0xd0a1e359811322d97991e03f863a0c30c2cf029c --amount 10 --exactIn --minSplits 1 --router alpha --chainId 42\n```\n\n## Ropsten\n\n```\n./bin/cli quote --tokenIn 0x07865c6e87b9f70255377e024ace6630c1eaa37f --tokenOut 0xc778417e063141139fce010982780140aa0cd5ab --amount 200000 --exactIn --minSplits 1 --router alpha --chainId 3\n```\n\n## Optimism\n\n```\n./bin/cli quote --tokenIn 0x7F5c764cBc14f9669B88837ca1490cCa17c31607 --tokenOut 0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1 --amount 200000 --exactIn --minSplits 1 --router alpha --chainId 10\n\n```\n\n## Optimistic-Kovan\n\n```\n./bin/cli quote --tokenIn 0x7F5c764cBc14f9669B88837ca1490cCa17c31607 --tokenOut 0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1 --amount 200 --exactIn --minSplits 1 --router alpha --chainId 69\n```\n\n## Arbitrum\n\n```\n./bin/cli quote --tokenIn 0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9 --tokenOut 0x82af49447d8a07e3bd95bd0d56f35241523fbab1 --amount 20000 --exactIn --minSplits 1 --router alpha --chainId 42161 --debug\n```\n\n## Arbitrum-Rinkeby\n\n```\n./bin/cli quote --tokenIn 0x09b98f8b2395d076514037ff7d39a091a536206c --tokenOut 0xb47e6a5f8b33b3f17603c83a0535a9dcd7e32681 --amount 200 --exactIn --minSplits 1 --router alpha --chainId 421611\n```\n\n## Polygon Mumbai\n\n```\n./bin/cli quote --tokenIn 0x001b3b4d0f3714ca98ba10f6042daebf0b1b7b6f --tokenOut 0x9c3c9283d3e44854697cd22d3faa240cfb032889 --amount 1 --exactIn --protocols v3 --recipient 0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B --minSplits 1 --router alpha --chainId 80001\n```\n\n## Polygon Mainnet\n\n```\n./bin/cli quote --tokenIn 0x2791bca1f2de4661ed88a30c99a7a9449aa84174 --tokenOut 0x7ceb23fd6bc0add59e62ac25578270cff1b9f619 --amount 5 --exactIn --minSplits 1 --protocols v3 --router alpha --chainId 137\n```\n\n## Celo Mainnet\n\n```\n./bin/cli quote --tokenIn CELO --tokenOut 0x765DE816845861e75A25fCA122bb6898B8B1282a --amount 5 --exactIn --minSplits 1 --protocols v3 --router alpha --chainId 42220\n```\n\n## Adding a new Chain\n\nThe main components to complete are:\n\n- Deploy contracts on chain, add the pools to subgraph\n- Populate v3 providers in `src/providers/v3/subgraph-provider` and `src/providers/v3/static-subgraph-provider`\n- Populate chainId and addresses in `src/util/chains.ts` and `src/util/addresses.ts`\n- Populate token providers in `src/providers/caching-token-provider` and `src/providers/token-provider.ts`\n- Populate gas constants in `src/routers/alpha-router/gas-models/*`\n- Populate bases in `src/routers/legacy-router/bases.ts`\n- Populate `test/integ/routers/alpha-router/alpha-router.integration.test.ts` and `src/providers/v2/static-subgraph-provider.ts`\n- Populate `src/routers/alpha-router/*`\n- Add a log to `/CHANGELOG.md`\n- Run `npm run integ-test` successfully\n\n# Troubleshooting\n\n## ProviderGasLimit errors\n\nThe package sends many large multicall requests to nodes. You must ensure that your node provider's `eth_call` gas limit is high enough to succesfully process the RPC calls.\n\nBy default each `eth_call` will consume up to:\n\n- 132,000,000 gas on Optimism\n- 120,000,000 gas on Arbitrum\n- 50,000,000 gas on Celo\n- 150,000,000 gas on every other network (Mainnet, Goerli, etc.)\n\nThese parameters should work on Infura and Alchemy by default.\n\nThis total amount of gas each `eth_call` can consume is equal to the `multicallChunk` config value multiplied by the `gasLimitPerCall` config value. If you are using a node provider with a lower gas limit per `eth_call` you will need to override the default `V3QuoteProvider` with an instance that lowers the `multicallChunk` and `gasLimitPerCall` parameters such that the multiplication is below your node providers limit. Lowering these values will cause each multicall to consume less gas. See [here](https://github.com/Uniswap/smart-order-router/blob/98c58bdee9981fd9ffac9e7d7a97b18302d5f77a/src/routers/alpha-router/alpha-router.ts#L415-L416) for examples of how to set these values. Note some providers have different limits per chain.\n\nIf you are running your own node, we recommend you configure start your node with a higher gas limit per call. For example, on Geth you can use the command line argument `--rpc.gascap 150000000` to raise the limit to 150m, which is enough to run the default configuration of this package.\n\nIf you are using Hardhat mainnet forking, you should add `blockGasLimit: 150_000_000` to your Hardhat config to use the default package configuration.\n","readmeFilename":"README.md"}