{"_id":"@keep-network/sortition-pools","_rev":"81-f063c75238ffbc2850db2fd866c4708d","name":"@keep-network/sortition-pools","dist-tags":{"v.1":"1.2.0-dev.1","dev":"2.0.0-dev.0","latest":"2.0.0","pre":"2.1.0-pre.0"},"versions":{"0.1.1":{"name":"@keep-network/sortition-pools","version":"0.1.1","author":"","license":"ISC","_id":"@keep-network/sortition-pools@0.1.1","maintainers":[{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"shadowfiend","email":"antonio@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"6d1f34c38ff9f0c16cbb6123ba7d86941a63063b","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-0.1.1.tgz","fileCount":23,"integrity":"sha512-0A4N6wbtFfjWez7KwHEd2aMh6iB4kNaxI5fGDUCaCkeo2zP/FHOFcI9POIYLQ/17bL71EK/WxM5CnZJz4n/9vg==","signatures":[{"sig":"MEYCIQDWJ7xN89ImHOTiQvj5brvLR3SFUL5Zd5RIMoUoyv9BhwIhAO2mljUNLSjH9P95kzVO6EMTErJ2z3aPxxUNqa3iK9nc","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":89826,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeWT4SCRA9TVsSAnZWagAA5mUP/ApfalqxOZkWhArOgCp6\nKqT8OpPUJ7zM6lighD8yJUGgTJ4eUEDXSDXHHtF6eCl+ht1K+bG/6IYJoRno\nyTm43MIpeCKgpiziUr+T7kX0dP4SFn2jZQoNvfIjLIRjfLYMT8WkKxHWAARt\nT0aZWDAJNZXy3IRVgBppcR3DNtYNCOJcxQUTybIbfdytxMbCUp2bmuP1tJvV\nIs39m2SRIYLAHzKFC73626Esm+RNUdDfn2hYnTufWNZxHHplKGG0ORfhVLjl\nFmYeyd5mq1rF8q2AGFSSneCM7/pOPIHtkz5pp80WVmn+CQ+brOa9VrOAJUTo\nQeIkijTLYYmP5IRZMnZd5A46wG7yU7OEm34Esx6z50lxiRFWA9jeAId7kz9d\nlkhZRUsN6eA39LpIkmbkw39sGbchEaaPFPxAwxBZO1tWdrtDJvQlHJ3E5//a\na6N3A1gTRomjz7b9SUEREt2921ip51MQhzFaW3iCviPXS/Y27uth1NK5CFX7\nwukHY7YXld1OrhvGXlGfpdY6RlWR2Ncw1rXWM6lJr8JdwRGXZt+AraZR/c8v\nnpjugYrgfnnMzYpeAPXegbfCtHFrKCWEM9tEqugK5CVNtrQ02+oIzbmJFW+f\nFJmzFWCE8Y4v3P4iOOC9LQAk55HPrygRwb28cLSRO2bymA/eYfmUKUgAPZ0U\n8ThF\r\n=Inzp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"82054535b36a46ce6364d6791eb0a19c2960ff6a","scripts":{"test":"NODE_ENV=test truffle test","ganache":"ganache-cli -q","js:lint":"eslint ${npm_package_config_eslintPaths}","sol:lint":"solium -d contracts/","js:lint:fix":"eslint --fix ${npm_package_config_eslintPaths}","sol:lint:fix":"solium -d contracts/ --fix"},"_npmUser":{"name":"shadowfiend","email":"antonio@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.11.3","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.11.1","dependencies":{"solidity-bytes-utils":"0.0.7","@openzeppelin/contracts":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"solc":"^0.6.1","eslint":"^6.8.0","solium":"^1.2.5","truffle":"^5.1.0","ganache-cli":"^6.4.3","eth-gas-reporter":"^0.1.12","eslint-config-keep":"github:keep-network/eslint-config-keep","solium-config-keep":"github:keep-network/solium-config-keep","@openzeppelin/test-helpers":"^0.5.4"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_0.1.1_1582906897802_0.22355260227302298","host":"s3://npm-registry-packages"}},"0.2.1-pre.3":{"name":"@keep-network/sortition-pools","version":"0.2.1-pre.3","author":"","license":"ISC","_id":"@keep-network/sortition-pools@0.2.1-pre.3","maintainers":[{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"8e825cada056762131be216eddc357619135373f","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-0.2.1-pre.3.tgz","fileCount":25,"integrity":"sha512-YIXz3pCkYKh73+h8nzSS3K7VtWfM5QmuNTNGCpBpb/Z+kbfVLq1XPXMOkRTJiVww4nXsJX/HWrT1jgfdSv79LA==","signatures":[{"sig":"MEYCIQDgHNpsYH9vLyqkEhNrrikci/UJ8ppOWN4kIN8bOB6X9gIhANDcpnzLJ1qvUQGMEPv6VB9H2EXQpY9kCncidnHLBcKb","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":102812,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejOgWCRA9TVsSAnZWagAAr6cQAI6uDBDII/pf9R7/J1fS\np+cHv006uG+ddVuxVQLyikrzI4GkNn9voOlzYRx5pO9bCi1INIiQtMFXUDpL\nkLWmHQ6mCD1G41FHjpBM+aKzat0WHybCz3pdrZQxtsq3M0v5lnkDGELbsyc4\nZtgtOo0n0VNYMyo85+ZeOMi4FdBAbzlgfviZyWnCDSTpo//T1folnKZI3Cfx\nWl9XKqQ4aZQ6HaUibO5Xcst6JjSf68tbIurxMFVDvDmTC1BWSVNcyfijEj3T\nEspVuj/R7dOTPBjbMb8conTLCG/SZzoSnU94suW4Klx8f3pBNODW2tBbQ6rA\nBypxF9YkTDHvWlYZtCA9yR0T5NuYI2v7ep8cG7CBnNHGDz/0zvyon7De/Clq\nM4GC2t1W898oxh/38kygvhneYwoeqdPrDZHudEL6yHrsrSsKSOO2kLcRGqIp\nuBMircllVdAX0yngOs6yi1vD7sNCHPi8aKYJK22e2hN6DmHLTaDbAzUcPIvA\n6oSYshk2c5VkfuT3NQKoUhsW6o0P65IcaJpaG+YUjxZwdEb8SffpqIILHnHI\nHBicxpy9bRiugKLxSjSLo30TilqzjkQSO+ffEwqPicwpMJzamrsqDBKxNBH9\nO17CMm8fTfdE2PwANpZneaYYeEvbfA4SZNFfvzTAg/OKZziSrAPFTuVYzkMG\noEI6\r\n=U+5I\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"cd80d657982d4c923bbcac8448793aaba1d5cfcc","scripts":{"test":"NODE_ENV=test truffle test","ganache":"ganache-cli -q","js:lint":"eslint ${npm_package_config_eslintPaths}","sol:lint":"solium -d contracts/","js:lint:fix":"eslint --fix ${npm_package_config_eslintPaths}","sol:lint:fix":"solium -d contracts/ --fix"},"_npmUser":{"name":"nkuba8","email":"kuba@akena.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.1","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"11.15.0","dependencies":{"@openzeppelin/contracts":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"solc":"0.5.17","eslint":"^6.8.0","solium":"^1.2.5","truffle":"^5.1.0","ganache-cli":"^6.4.3","eth-gas-reporter":"^0.1.12","eslint-config-keep":"github:keep-network/eslint-config-keep#0.2.0","solium-config-keep":"github:keep-network/solium-config-keep","@openzeppelin/test-helpers":"^0.5.4"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_0.2.1-pre.3_1586292757697_0.39568768930988996","host":"s3://npm-registry-packages"}},"0.3.1-pre.0":{"name":"@keep-network/sortition-pools","version":"0.3.1-pre.0","author":"","license":"ISC","_id":"@keep-network/sortition-pools@0.3.1-pre.0","maintainers":[{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"402eb9e04ca4b6dc81849ee466033ef11358b767","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-0.3.1-pre.0.tgz","fileCount":25,"integrity":"sha512-NSGEiY8WbRu+f8ZS2duMUKpmP3unoJOVHUp+yKyRDE4U+sF2HgKWQww9UDsLNLxvoUjRTacSP7IpAKb7pnQC/g==","signatures":[{"sig":"MEUCIQDGMCaTjh7plZwLqMjuvWERMwllKdEjayzTeY4TDTqEVQIgPBHn0CHkjUveugHrfd9snaExVtW8FjO3Hr3Oga6FMPo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":102891,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejxECCRA9TVsSAnZWagAA2D8P/21nbE6qtrZD3Bl3yGiu\nD5sLSpDaBQW7TMreYRnPmj3sRK6I6gaGJNv6RyJpbCIEkMaz12zYMAaoK5tS\nQNIbXdVqPhcYjqdJyUzxfmTCSPrJr/w8y/xmACeTOSoaJRLLzrEkyATCBPsb\nD/6YkUV/Q0Pyx53aVjYPC5ypRDtzP2258Jt9+d2M8azA0elT1KW6vv41n5yt\nzLlBy7r0sbPN8EyE8GNkgAjyGmKwixkjZ58HygKOP/IFRlSDfw9baCPnocXW\nv2w8LaoZwb6vfzMEkOn4Re+LyPRKJvBvKkKjmCtXd60ANyDZvG4j/g9BOmXh\nf6IqsTsuFIm5Sf7tUvzq3dwd5DC3F7snDEJr3os23z3Q0uBJ/ojgkC/fpH7d\nbHMudOy/FsOXEYLMmoQ+VXlxdzqqb4VqSJHHR764yE1zvREZId3f2zXT75rV\nTmBRDCI0F0p9LbSOaGlX7EGf6+rsLA6JzuyDZMw3F2tmw/BqzeaBBYuYyA4w\nUvYtGBAEsKSWE5CNZPByuL/8DSh8ztxuT47wO7YTS+ImSz6lkwdOm8V/SHLV\nDQ86HVUas4ApJPsx1kOncH4LuQzStoQ6JJiC5tbbOGVkr++7rSHTzPZGICSF\np6vST0mdc9fvZmeITUi6bRC+ILMzMBYOp8tJ4UbJ90GoLgSoppPyEHTf3G25\npqGG\r\n=9fPS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"ff69c7f9651961dd9fe4c5722d262aa3388f6219","scripts":{"test":"NODE_ENV=test truffle test","ganache":"ganache-cli -q","js:lint":"eslint ${npm_package_config_eslintPaths}","sol:lint":"solium -d contracts/","js:lint:fix":"eslint --fix ${npm_package_config_eslintPaths}","sol:lint:fix":"solium -d contracts/ --fix"},"_npmUser":{"name":"nkuba8","email":"kuba@akena.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.1","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"11.15.0","dependencies":{"@openzeppelin/contracts":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"solc":"0.5.17","eslint":"^6.8.0","solium":"^1.2.5","truffle":"^5.1.0","ganache-cli":"^6.4.3","eth-gas-reporter":"^0.1.12","eslint-config-keep":"github:keep-network/eslint-config-keep#0.2.0","solium-config-keep":"github:keep-network/solium-config-keep","@openzeppelin/test-helpers":"^0.5.4"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_0.3.1-pre.0_1586434305819_0.015461358568565231","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"@keep-network/sortition-pools","version":"0.3.0","author":"","license":"ISC","_id":"@keep-network/sortition-pools@0.3.0","maintainers":[{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"01d7d3a1f2b11f6ff70d7ec68fbf9f0ff02e530a","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-0.3.0.tgz","fileCount":25,"integrity":"sha512-1nr1Wq3wmKYxtkWynB/xMHEYpVAOSCL5XBcHMlsUBGuG9rw+JhbDUNYbbxHNYUZ7sMRq0S0pOrzQVWb5M+ZUig==","signatures":[{"sig":"MEUCIQDhsPhl5W/8q5NQ4hYTBPgVns43gKebWrUxLcK8PHbLIAIgHyUiQgl3ngHM4mfncoMwq6myPAeL+mjAtRh2b8pCdP0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":102885,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejxGfCRA9TVsSAnZWagAA+l4P/2AIVNAB3dKJguzK8Dis\ng/gW9hhUif4/Z33XWEu/NsVjXyyksxnvSSkLx7RQrN4go7G81TI+oea8M/Xo\niw3r0WLJPgI0lRf6hGoxsC6uHtEG0wqUh5sJGSwAX6qjbJGOGJ+655KjnxYn\nCzhxEAYdijmVjE1WTGOiEOHLxdSjXfFHOvQlVFs+Xt+44x79FR3GB3PmmcCX\nQUBqgDJIpS+3616ipAz1qct9lQ9zZDQnCJEKbKAhP3j0Fu9az04P/OlkaPIh\n/G7VFW6KCxIOzJ+dc5FTG8aAyo5AuxJSXizNHjjlFzgHGeM+aZRSTbjQmlbn\nXXE3dDfZ8FcAAYKPvaS74X3O3eXEEA1tyvdf9qwnp6vQDHPHw9lqVJOr0Jeu\nJkgG76+yiQS8ObWzhAJSG1GXnWhROKGSgDO0mhGU9qjiCnrGaGwBYDCwAFFa\nf/8dyJwkbwHUYgPodttXPPPbctScWNqLrhU2NgUHadHIoyNcLculjVUZ9EpJ\nJ9MiZBRJSZsjoCMibibaQquYXJAgjGCqF3tkmj+ru1lN5SYOdbGYt6qh9Fhi\n+He/O7Y3sNptMVJrI0ZSYzJpcDj3Kz1jDWlWQexKXWFyj5+QtmVU8ITDhclV\nLZnqkJvaI4x/GO6ELJufmC/7KRqeOb66Us5iT+IBYUKhfaIdCLWewMD3OtnQ\nE2OB\r\n=jlN6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"ffa3cd880c605ac76e2752f8093d34a2a761c4ae","scripts":{"test":"NODE_ENV=test truffle test","ganache":"ganache-cli -q","js:lint":"eslint ${npm_package_config_eslintPaths}","sol:lint":"solium -d contracts/","js:lint:fix":"eslint --fix ${npm_package_config_eslintPaths}","sol:lint:fix":"solium -d contracts/ --fix"},"_npmUser":{"name":"nkuba8","email":"kuba@akena.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.1","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"11.15.0","dependencies":{"@openzeppelin/contracts":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"solc":"0.5.17","eslint":"^6.8.0","solium":"^1.2.5","truffle":"^5.1.0","ganache-cli":"^6.4.3","eth-gas-reporter":"^0.1.12","eslint-config-keep":"github:keep-network/eslint-config-keep#0.2.0","solium-config-keep":"github:keep-network/solium-config-keep","@openzeppelin/test-helpers":"^0.5.4"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_0.3.0_1586434462776_0.7096350485059455","host":"s3://npm-registry-packages"}},"0.3.1-pre.1":{"name":"@keep-network/sortition-pools","version":"0.3.1-pre.1","author":"","license":"ISC","_id":"@keep-network/sortition-pools@0.3.1-pre.1","maintainers":[{"name":"liamzebedee","email":"liamzebedee@gmail.com"},{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"d74d66acdc21325a421b251bca1ffadf67db4a9a","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-0.3.1-pre.1.tgz","fileCount":25,"integrity":"sha512-bkanQlTD6+aFgG3EM3I6lxJbVhDfvGrHCHNdFPO+sqqziEzHXBJAEzEKWvi56f8EN8CwcqlrIizp/TAn9X9X/A==","signatures":[{"sig":"MEUCIQDaWx7f3IkN5uxGBw1kttvi8wXyVVTs9EN4vuTbujjclgIgTQfFSYEqb3Xkc09FlNm0Y98bSJa35mVGXfAZ4rv4u24=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":103173,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJes9k3CRA9TVsSAnZWagAAlR8P/24rrgz8nXD15j3K4Kem\n/EH9D1cy/64ULvmJdLseLCjttN5flPk2Fk6DjGuu0yNqGN2PZeS+JOW18+9w\nQ02m0NzQlPuB74MVYV8/UYdP733fxbJ5FZrK2Da2LX8mQ7r3W2UStl2VOgwX\nHFiM5gC1CnPo1G7JdXra86Pmsd+yNh1gwLCMXCkFqU1bETEO5f7rap2fO/xg\nTk5hJtqjbHzrOS4I4hpKN++R+bR6kD3RCcQljBo0FH1TDKz5B79t3uN7XPeL\nQeWCs4PCxgflZWhl+EfyjOptjXSHU43GfDVtwl5dupbnvnygkY9ht6uekUuG\n3QdDd6xIGQ9PoXWNcJ1FwTM56Oa/HuJnJxQzsShORFvyjKjo3MHevlNcvutT\nMwHqtBymTz/qs46Ad4zcdEJisES0VhuBS8400zRUFg2Hr2ht0c4NfQL30hU1\n8+eV1EpQxTLB743SMo56CxFA8iuWHo2H+MkfOiY1JJLzOYsPzS62A5MB5EVm\nhoIU9h3/IPC4AlsC7j24Oz9givIgs0v82Tlnh/xCbq16/p1WoQl5Qy6NTMof\nfRfrlZUd4cIkrytMZ30DgGuNJHXYXqJyoCLvuZPjk5XRDGN91AMukfu5Ypf0\n0xlbR6iDnGQs3XfwSov45wu0Y4jeWkERrnMMgsogoAXKBEfzaOUP4VdIpE80\nA+cZ\r\n=vjri\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"e2b3a2e7278ef6afe25d97389433a7274f9a8b34","scripts":{"test":"NODE_ENV=test truffle test","ganache":"ganache-cli -q","js:lint":"eslint ${npm_package_config_eslintPaths}","sol:lint":"solium -d contracts/","js:lint:fix":"eslint --fix ${npm_package_config_eslintPaths}","sol:lint:fix":"solium -d contracts/ --fix"},"_npmUser":{"name":"pdyraga","email":"piotr.dyraga@keep.network"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.7.0","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"11.15.0","dependencies":{"@openzeppelin/contracts":"^2.4.0"},"publishConfig":{"registry":"https://npm.pkg.github.com/"},"_hasShrinkwrap":false,"devDependencies":{"solc":"0.5.17","eslint":"^6.8.0","solium":"^1.2.5","truffle":"^5.1.0","ganache-cli":"^6.4.3","eth-gas-reporter":"^0.1.12","eslint-config-keep":"github:keep-network/eslint-config-keep#0.2.0","solium-config-keep":"github:keep-network/solium-config-keep","@openzeppelin/test-helpers":"^0.5.4"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_0.3.1-pre.1_1588844855017_0.19732377188973294","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@keep-network/sortition-pools","version":"1.0.0","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.0.0","maintainers":[{"name":"liamzebedee","email":"liamzebedee@gmail.com"},{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"b6110b222e75e5b971a4f3ba77bdbe8bbcd466c8","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.0.0.tgz","fileCount":25,"integrity":"sha512-wPOjqQphGtIBTGpGmw8gwBDbvMeq/9wf+HCsD6Vhvd7bcY5lPT/oWFFqhiExhuaLyISwr1fl6Jgm4RkN6Cispg==","signatures":[{"sig":"MEUCIQC6iRzbMtR4S/30yHJuveBf2cvnvC0PqeTEfe0EWtPSfAIgHKxsKgiLkZECNbXYt+tsdgqRC363Gsew0e9tSqRsKLg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":103167,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevCltCRA9TVsSAnZWagAA/NQP/2h7R68zM6GfkLQQpY/g\n8kS2BHVhSeR1FQkgbN/IYhs0LvIMUiytj9F5CrTxki5y2cr4sS3+8EcnwALh\nVDTNA060DcCwf/raKDBkcGE/040LZ69GPAXzatjlV1J7llUla2z5ZJNpln/4\nYjn/r65CrwjWQx+5IiB9sMHI0qwj8LmjH4WIwNjapHAm5arWaARZ6Y49Vy7k\nQwIyCcEqFfY7kNAwMPIdwpgOsptt9HnFhUGw6J5P4wKTDqizSHMQKk9/Ze55\nHGTyE2X1/dPc6X6nToibmNKVNYeW0l/hd/guk9PtCTozd3pDisvjAAKr5B0G\n+/oDHVYAQrl59OGHaz91SoVD9mWYPqowoXj7RqK4xpE1gM7pcllMmkbmlbFN\nw8+T5G4tGwqnc4miLiOCWcFEzAMVVDHwXlonSGCGTr7tjHiVf+kVAfWStW18\nYMplV+OhaZ6HUaYuh1cj6Cg456/UE5WSl7SWCFeM6Vxrcb/rbA7jEDZAttWz\ngxBLYKJ8IeZlzS4s7+9sJk9OYLaawnXI1J1CO5o69cdnhHvmU5Z2ufAYdFyP\nuLCsEdniQHalkVIfnnBuxJGntPpRTzw7ZzCHUmeV7ooI/g1LwcecqQw/CUix\nQ6nqVYr9I1AWEvFvbqgj0c2Nx3oX2VEOU2QCWoVLwDbEw0yayHiyrXnFihXW\nnyLv\r\n=cTWr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"1afe5c00b4c6ba776ffd98af44eda024230207a4","scripts":{"test":"NODE_ENV=test truffle test","ganache":"ganache-cli -q","js:lint":"eslint ${npm_package_config_eslintPaths}","sol:lint":"solium -d contracts/","js:lint:fix":"eslint --fix ${npm_package_config_eslintPaths}","sol:lint:fix":"solium -d contracts/ --fix"},"_npmUser":{"name":"pdyraga","email":"piotr.dyraga@keep.network"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.7.0","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"11.15.0","dependencies":{"@openzeppelin/contracts":"^2.4.0"},"publishConfig":{"registry":"https://npm.pkg.github.com/"},"_hasShrinkwrap":false,"devDependencies":{"solc":"0.5.17","eslint":"^6.8.0","solium":"^1.2.5","truffle":"^5.1.0","ganache-cli":"^6.4.3","eth-gas-reporter":"^0.1.12","eslint-config-keep":"github:keep-network/eslint-config-keep#0.2.0","solium-config-keep":"github:keep-network/solium-config-keep","@openzeppelin/test-helpers":"^0.5.4"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.0.0_1589389677230_0.050710421299780206","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@keep-network/sortition-pools","version":"1.1.0","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.1.0","maintainers":[{"name":"liamzebedee","email":"liamzebedee@gmail.com"},{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"55cd75654026df2701d3d146f68e273a43a16401","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.1.0.tgz","fileCount":25,"integrity":"sha512-4mPp6f6HpfEdjfFM/PHwqabfnWc91gldbcIQEoS6bSfrqfrgFgmmOT6r9WO+Sqw9bR6Ve1tPWp3jpu6ufkPDww==","signatures":[{"sig":"MEQCIA2q/5ZkuMtMwj3Ja1L8oTklyM+lF2N0NLzF4QdFG/F2AiBmOmoN3MAXoibUFqlg/tl4OSOdXNgcuQv48rRJVqzoRA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104615,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfISYICRA9TVsSAnZWagAA/OsP/3sV70G4MXOkLdIW9QAB\n9uE/VPS6bRhpz09yUA0xKzM2wVJfjpNRwy9CHLoo/yVZCjhztEQnhVt/VyFu\n6u11QxrCrD+j7MMu7GjbzSeJz8+3xI6Xwl95TffJC2f8Wva3EDnxNj80Ssj4\n3Xc6PLPyemuQDXn7J3w+4ZwxvGy0qdsZGDXfkITGARcY3rLfWiyLgHje/FkL\nQ6gPUWHeRsSigkQOCZSV77qUWoVdbPa3BF61PTG1PYZQrHUyJqmzS2B3p5l0\nazvj2nZQrnYhoPkhLjcM4SKN5MJ8nGTDbMcsE+eHc7PW65M1aOl3Rw637ePA\neIGw1m3B08VZj3fJg29+kYAD3mmQJcnVqvyRDwciQCpY2IOI8yC9Woq17ifz\nC8LYbWKVYRLIyNECbeEd7vb0EjtkdvR7uAOJEFCWNZ05qZu0RY067vQ0riby\nl/XcU+4uIeamf7Z63L4sP/9B1PJNfZd4sPwg7EUAkiDizrdpgxL04awUydEj\nSchAiT9DRzfd8ytMiPrNE1bmSTiPzspmengoE5g5+6/AFih40NAac8OV6zLz\nz8zZ2D7sB7f15aUu1qGiG+fOyPWN1fxBJbeYQSXzm5UNn1wVlLABRgJjKizA\npufQasxTnW+oixyudGQ5VTLKHLlkKBUtcqfV2VZ5F2EvY8r25wOeSVDJEBds\nYT4W\r\n=9Lnq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"fe340e1494d8452a86a20f23ae47694186d0bfcb","scripts":{"test":"NODE_ENV=test truffle test","ganache":"ganache-cli -q","js:lint":"eslint ${npm_package_config_eslintPaths}","sol:lint":"solium -d contracts/","js:lint:fix":"eslint --fix ${npm_package_config_eslintPaths}","sol:lint:fix":"solium -d contracts/ --fix"},"_npmUser":{"name":"pdyraga","email":"piotr.dyraga@keep.network"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.7.0","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"11.15.0","dependencies":{"@openzeppelin/contracts":"^2.4.0"},"publishConfig":{"registry":"https://npm.pkg.github.com/"},"_hasShrinkwrap":false,"devDependencies":{"solc":"0.5.17","eslint":"^6.8.0","solium":"^1.2.5","truffle":"^5.1.0","ganache-cli":"^6.4.3","eth-gas-reporter":"^0.1.12","eslint-config-keep":"github:keep-network/eslint-config-keep#0.2.0","solium-config-keep":"github:keep-network/solium-config-keep","@openzeppelin/test-helpers":"^0.5.4"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.1.0_1596007944327_0.11009099276603673","host":"s3://npm-registry-packages"}},"1.2.0-pre.0":{"name":"@keep-network/sortition-pools","version":"1.2.0-pre.0","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-pre.0","maintainers":[{"name":"liamzebedee","email":"liamzebedee@gmail.com"},{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"c02f002601672269084bc3b9a0f5dadc1ae91300","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-pre.0.tgz","fileCount":25,"integrity":"sha512-bQ98Xwwc9P/ioAyqxmNoE2DBPno3vlIm5CE0dNCVoAaFOrDhQwqxQ2L7PR846CDo8X5n5eD5mo8XlyXwxzCI6Q==","signatures":[{"sig":"MEQCIEtw+Q5FP2szRLiZnVozyk0B7w39v8ueyo4oeKyMwlvcAiA2/C6fD1YtfAyVrvwZbHB+KOFnAtbugSvSR0wF+4axnQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":97468,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfRLwSCRA9TVsSAnZWagAA1asP/1Mg77R7fNe+Cvq4//Mm\nEj6onc/eHPV3DPuC0PgnzD0F1MzvRZNy5kxLOU0ztaIcJz/YhPNLMMS6yGf+\nxGnoOyfVGTEQrHGEKMA4ud3BQgXHO7ECcQsFwtWDelcusSq23CKsPPgBvRf5\nOXjnVjdsieoE64mCnospz7R9AsCkJjMJhaJgPLZxWMzsxNWW7XRQZd9rRDgA\ngrN5QsnrM4GQN4ZHszyYcLmJ2thbhOkyY6M891Hl3cWyoD9cwtinPl1QV5HT\nvT/I/zhCjHpQyaHocotqZsxPOC6yj/cW3yvUzVRvj9wNTCy+y8Iay0zcUZLq\nJ1DaAeXYJ66QRVTJpmylHF5bHjJ8OAQqSRFk1IGbsuCs5npQeww/btsUNdgk\nzADJa0I+lNkL6nUQ3sqMdiZoObmY7rW+N3IsWwBydy4qhIEfhxQsAZok3jDU\nv0auQEDscAhdfYUXU5olCDc73po47jJ2iSkji4iKIA6Rn0E/rhHsocm3DAeb\nxsJv1A1H2b13IN63wL+6wDF4F+upTwczJLGZXJwOUBKdlrLhzGnsLcCo55rL\n3bIrh5i75u1MaDtaHT8fVzn/Q7MuLwICK8sSiGMb+gL28Jb8NYEwYzt6wRPe\n9wVaAHZXQWYv6gIlGswkvyvyEOyfekeL04N0T89Cqk3Gy7oc2XKb76Wq4GxY\nqGjR\r\n=Zf2l\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"bb203a208d22db8fbd8456fa12b8c6b705442a56","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"NODE_ENV=test truffle test","ganache":"ganache-cli -q","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solium -d contracts/ && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solium -d contracts/ --fix && prettier --write **/*.sol"},"_npmUser":{"name":"pdyraga","email":"piotr.dyraga@keep.network"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.7.0","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"11.15.0","dependencies":{"@openzeppelin/contracts":"^2.4.0"},"publishConfig":{"registry":"https://npm.pkg.github.com/"},"_hasShrinkwrap":false,"devDependencies":{"solc":"0.5.17","eslint":"^6.8.0","solium":"^1.2.5","ethlint":"^1.2.5","truffle":"^5.1.0","prettier":"^2.0.2","ganache-cli":"^6.4.3","eth-gas-reporter":"^0.1.12","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solium-config-keep":"github:keep-network/solium-config-keep#0.1.2","prettier-plugin-solidity":"^1.0.0-alpha.47","@openzeppelin/test-helpers":"^0.5.4"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-pre.0_1598340113996_0.0858318765705326","host":"s3://npm-registry-packages"}},"1.2.0-pre.1":{"name":"@keep-network/sortition-pools","version":"1.2.0-pre.1","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-pre.1","maintainers":[{"name":"liamzebedee","email":"liamzebedee@gmail.com"},{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"9754ce567cd32fe39d6769e6b8136f9e2063e705","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-pre.1.tgz","fileCount":25,"integrity":"sha512-XFGMSwlbt0OX6UviZws+aMqoVLOmpr/UGmAMbDR+gCwQxxGdHrDwNDyOutRzb8xOGt0/5mXWsabSJ2CVCH6XIw==","signatures":[{"sig":"MEYCIQD1FdzepXGUV2nKlRqm0YX4sxRde8KtMOGTNmcGOtHZAQIhALVgSR0pmaH8aw+c3yki/6J48q3lJbJRP0LTMXdm2NYP","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":97474,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfRNTQCRA9TVsSAnZWagAA4TcP/2kFUg9pirHUy0cVE2cB\nK0PrC7DZIIPQpirSKEIp4Z4BHDC6WIp+uA3wcEAxeZIy8lvliNuoys0DAo7o\ncDLXsIpzkpk7MoUpfe2sk+KOhp/9EP3nymQ8lV9Lnl9WycNOEWmSUal6W617\nRKXI5WXWOm7WWHsB4IBEoDhUVAR9lHVnRBJ2d5Bef4acj4ujYcsKFvQKYS+8\nVpg2GHrYLGyle4Aw8Mk5bvTQRl4gDrjZZxNGHsgyJmcp+76CKeZyVf58rNJT\nCG05xLyMCJT4cYSs0Im0xOQKYbTXvNb6XerBZBA6VlApCSeZB35/BVrAf1KR\n3NUSHxFFrWdkDOx79j1Cf8IknAZ5/0dXEKy60dsIs/vJI5TDFlgzVn1zMoru\nMMa7BOutAOfUgMSVPkl2DOch3C8FImsYfTNLKwHIwbzi47Fz5/p6moZhl1A3\ntpwNWstwRdG5+ginDA+vgQFmf1GDghp7nfunV3z4tZTsraVbOEuIhrHKtN/7\nuNDxt4KwDD90DsqhEdrqY1+efTS9OxOFlArse+7AEGiVw2CooIYqsfoK/gV/\nKM2m0ZkZwgz0JTWjyeZXccOe29rqO98FcxVtJVMLgTwEfA4edLgQCf5diFLb\nwVTSTryd9VwlaXbmKJFjf2jqyskxyn0IJpYoORY8PTT3gW4al9Qv7BBJuFl7\nLW4i\r\n=BvjI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"00235372dbb6e5453d64072cb0ca84379fe0a5d1","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"NODE_ENV=test truffle test","ganache":"ganache-cli -q","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solium -d contracts/ && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solium -d contracts/ --fix && prettier --write **/*.sol"},"_npmUser":{"name":"pdyraga","email":"piotr.dyraga@keep.network"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.7.0","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"11.15.0","dependencies":{"@openzeppelin/contracts":"^2.4.0"},"publishConfig":{"registry":"https://npm.pkg.github.com/"},"_hasShrinkwrap":false,"devDependencies":{"solc":"0.5.17","eslint":"^6.8.0","solium":"^1.2.5","ethlint":"^1.2.5","truffle":"^5.1.0","prettier":"^2.0.2","ganache-cli":"^6.4.3","eth-gas-reporter":"^0.1.12","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solium-config-keep":"github:keep-network/solium-config-keep#0.1.2","prettier-plugin-solidity":"^1.0.0-alpha.47","@openzeppelin/test-helpers":"^0.5.4"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-pre.1_1598346448359_0.1731549288622578","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"@keep-network/sortition-pools","version":"1.1.1","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.1.1","maintainers":[{"name":"liamzebedee","email":"liamzebedee@gmail.com"},{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"7ef8f1f6ac3dbbee40de2e0fba6ea78f60a35b89","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.1.1.tgz","fileCount":25,"integrity":"sha512-zdaVTew4xfDe65ZfO7B0TibpYVtm6iFB8ixvSqyzT+l6CPSZpj0IH/X0NIKPFTztL1yiibEsAUj3IaeppS3UmA==","signatures":[{"sig":"MEUCIQDxVCEeOLg8o5Jtyz/sgp1yBh6MaSCslJs/EuJm2TzRdQIgdj4AQE+Y07CAlbFvJSWUQgou3QZG6YKRhNlVreqABn8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":97468,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfSPYMCRA9TVsSAnZWagAATZ8P/0HQ/DsSREh0twT3knVK\n6lcYP53NTX3YvuA7e/nJSYIHx2ZyPcabXunIwVYAxUz8lLcpVjFp665oYrwq\nX3NRnXZhLE2DKM4yA2DtR42tJm6mAKFaI4APGgHiYp0rzQ2tSB2Dug8K8/no\nYEr+Q/Pp3Dlmc0SnhQvEXqvkbS1DwmbvrD+/ehimy5eWssXVEkxEhJGN40Nr\nwVZ8LWmnqJQlGTH9xecp7dy4aPXyB0bAsi2JApPpGIFtqV8hKWg2EYzNhBDW\nU90UiUd3eh7I4PI3w/yFH6j2Sof/1HOD5nHDA9T7VegwTwBgfNy/PO028SSL\nhYdG4lWG9xwdh4LAcvE7d3u3QoCI8TQq8+j0oqjs9xk2jeTyjJTFtI99cp5g\nXiWP3DlGcdOfQkY4hVg2GyD1dGTn3RI8d6Uvtzi8l6yUpRYqbLcKZgWe7CaP\nFVfFCgq0WRPBrrio37oYhiKaiI7J9sRq0bFjJmGQr7h2ipz5JgyRyVgVY2nu\nY7pOYCNFhrtE7L38t+LoMGVdoWspf21A9ny63noMhUsPSwU5ZKWHSPX3ou4Y\noRFfGmOD4++paftJON5TxXVAEnQPVCuxMX8xHcMMYL1aw4A4zwn5R4Vdtu5H\nWHI/HkyDYV7blB2MbvLyBI8zycigVcS8Q93D7k+AJFydqsUJz7rVGs+JW8zt\nalZ8\r\n=3eLK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"1382bc345a26555dd40cbda9e825752703f5fdaa","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"NODE_ENV=test truffle test","ganache":"ganache-cli -q","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solium -d contracts/ && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solium -d contracts/ --fix && prettier --write **/*.sol"},"_npmUser":{"name":"pdyraga","email":"piotr.dyraga@keep.network"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.7.0","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"11.15.0","dependencies":{"@openzeppelin/contracts":"^2.4.0"},"publishConfig":{"registry":"https://npm.pkg.github.com/"},"_hasShrinkwrap":false,"devDependencies":{"solc":"0.5.17","eslint":"^6.8.0","solium":"^1.2.5","ethlint":"^1.2.5","truffle":"^5.1.0","prettier":"^2.0.2","ganache-cli":"^6.4.3","eth-gas-reporter":"^0.1.12","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solium-config-keep":"github:keep-network/solium-config-keep#0.1.2","prettier-plugin-solidity":"^1.0.0-alpha.47","@openzeppelin/test-helpers":"^0.5.4"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.1.1_1598617099858_0.4216568948057251","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"@keep-network/sortition-pools","version":"1.1.2","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.1.2","maintainers":[{"name":"liamzebedee","email":"liamzebedee@gmail.com"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"shadowfiend","email":"antonio@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"cfeb31d574b02d1ae32649df01b87af07229010a","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.1.2.tgz","fileCount":25,"integrity":"sha512-bBaKyxkXDc8kJHq3qeESMrJ02m+Wbh6Uz9qUpWn8Zq3aTZaKXRZfGWT+J71OiBlAdyB4WoHZymrddWHkjImHdQ==","signatures":[{"sig":"MEQCIBN43ickJp1aJwaKv9DKzkbRphNpoa9byUO/pD6YgCqyAiBBBhlM4qZM0ivmfd13yHtNf23YkHKm3uZ1hOkvrwc4lA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":97446,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfX0laCRA9TVsSAnZWagAAmscQAIjNGnCCKTohjvKtRuoz\niQOou8rA52Xqc1eBhN8WBlt62T/ONef+wV86WrAFy9lA7MLXyZe6cCjCQgAt\n2flVMxRTTtx4ipQmR1vqvnOiy7iQu5Vwo9jqkXKeiAflhNJd5bFifaxb+qMn\nip7f2v5NoWvYJSURoyqKIbehXZApxmMMo4n0lHyf9a63Xf9SYqaxVufllg/r\nYp4uOmuTkNsEHqcBvz8Tfl512LtZ5OAIGmtYaiWpKYoU3UG4SR6c9BsrNKyu\n8geyLpOsx7+sQYbsqzn6y/gns+1YI8OakYTvYnwehsl3JHDGpi3oHNlwp731\nQU9GYhy1SzsH+coJmcOMDRORTiLcGAPeX/WIL/aVn7/6kAH4q/GnhSKcP7nR\nAos5+FwQbqY8+MjCMctbzt36ix85sJL/GD8dkg7wJZhSqtTtry0NhyaQko96\njt7EjZBmjG0b4c4OmpKRTM87sgPz5gNibKT7upF1N6r5ZX8Z4MPm3lyLBLVB\nEDg0skJyF2kEh79p46UxDKf05AVrzRuvH2COWJ5Z5YX0WEY7eftLg9fum7ED\nqzTcS+a9/bG9ZefpKNGvGPYmf9x0U6UbfbrBBf6vDH7aqb7IKuIc8uVoBYvR\nMVZ5aJYWC8Xl9MiWr/1H2ToGooXosD78l36gSCd9swCihyjdewSAEPf8EPqV\nZ/AX\r\n=bPlH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"aa2a641abff5aa505b22178c7f8431cc1edba03c","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"NODE_ENV=test truffle test","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solium -d contracts/ && prettier --list-different **/*.sol","buidler-vm":"buidler node","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solium -d contracts/ --fix && prettier --write **/*.sol","buidler-vm:log":"buidler node | grep '^    \\|console.log'"},"_npmUser":{"name":"pdyraga","email":"piotr.dyraga@keep.network"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.7.0","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"11.15.0","dependencies":{"@openzeppelin/contracts":"^2.4.0"},"publishConfig":{"registry":"https://npm.pkg.github.com/"},"_hasShrinkwrap":false,"devDependencies":{"solc":"0.5.17","eslint":"^6.8.0","solium":"^1.2.5","ethlint":"^1.2.5","truffle":"^5.1.0","prettier":"^2.0.2","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solium-config-keep":"github:keep-network/solium-config-keep#0.1.2","prettier-plugin-solidity":"^1.0.0-alpha.47","@openzeppelin/test-helpers":"^0.5.4"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.1.2_1600080218288_0.9252380529186026","host":"s3://npm-registry-packages"}},"1.2.0-pre.2":{"name":"@keep-network/sortition-pools","version":"1.2.0-pre.2","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-pre.2","maintainers":[{"name":"pdyraga","email":"piotr.dyraga@keep.network"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"shadowfiend","email":"antonio@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"12fb838be033f6a7ed94f068b76660001e635a88","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-pre.2.tgz","fileCount":25,"integrity":"sha512-XJMka4GpmQGpj+FePSeZd87mb6hv1Y7dlgPVe387fDDCKGQO4ZnndyQnDkdTYtCX6q+/32KyCm4su7wKR7UdRg==","signatures":[{"sig":"MEYCIQDluKlZh19zUEGwrbfCPFhtPP550EaLlB9AxKLLa8Vi+gIhAMLevCPJHodMA/eP0dzjeM0GfKfExoNb3exoK0AYmLgp","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":97452,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfmA18CRA9TVsSAnZWagAAFgoP+wVtiTcQsK8cGq/OGtux\nNohyBRUC01f+TBE3zbT9yOcbaATQ1/b/OWXBIENCiLWsHLko69EGUqMcow25\nNqw15GzIJvqMDF9u8NfKczQy6S2xPtc+81k1/8eEYyHkKX7XgT72IbYHW6Vi\nSD526tjU5SzSTaZAbiWMc2ux2T2s1U+6FT3Ja3g8uYhOQBNtqlvgkqyDKTkf\nWASeH+JNrEwhQm9rZNmp0gm69b6rBGBsTfaaMys9IJsjyKggo0E1ufTwb3iO\nnylAkpfajMsFt2bRARIlHonouSuZc75kCZwVISdGI7KFZTZo2DKz3hSCnKdp\ndjs9snl3Q+U05KxAF5KfIlzqpIXJU2Gq1L38BB9XbleL+SP/nB4So8WV+irv\nBsy8aF60ikCraZo1tU0PuIBbSvm5oJ5gBL+RLtSDapmuSQFRwGsnaB31chKc\npQDfnLKe73pJBSdIOwheaq7yfHkYRBMDHJ7qzl8xJEJHDTZsX9yYwAxsqQrO\nrFmXPRbadDRmuRIr9pGAAQZccL4IW0kPQyVVKMaEg+9yCl7Jn9rPDolMnxGH\nLRf4byXnp2CWtSbxaILfX3RIv8f8qyqHt4Cg83V9taM3rTkr7CyMqMXxFcm8\n83O5x3IHAcfJAHJ7YMiSgp9VLVQ98O+NDf97V3TLbPbCnDfS+wRIvr4tuayZ\nqti4\r\n=n9VT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"aa2a641abff5aa505b22178c7f8431cc1edba03c","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"NODE_ENV=test truffle test","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solium -d contracts/ && prettier --list-different **/*.sol","buidler-vm":"buidler node","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solium -d contracts/ --fix && prettier --write **/*.sol","buidler-vm:log":"buidler node | grep '^    \\|console.log'"},"_npmUser":{"name":"pdyraga","email":"piotr.dyraga@keep.network"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.7.0","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"11.15.0","dependencies":{"@openzeppelin/contracts":"^2.4.0"},"publishConfig":{"registry":"https://npm.pkg.github.com/"},"_hasShrinkwrap":false,"devDependencies":{"solc":"0.5.17","eslint":"^6.8.0","solium":"^1.2.5","ethlint":"^1.2.5","truffle":"^5.1.0","prettier":"^2.0.2","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solium-config-keep":"github:keep-network/solium-config-keep#0.1.2","prettier-plugin-solidity":"^1.0.0-alpha.47","@openzeppelin/test-helpers":"^0.5.4"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-pre.2_1603800443552_0.6432374125062172","host":"s3://npm-registry-packages"}},"1.2.0-pre.3":{"name":"@keep-network/sortition-pools","version":"1.2.0-pre.3","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-pre.3","maintainers":[{"name":"pdyraga","email":"piotr.dyraga@keep.network"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"shadowfiend","email":"antonio@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"fa8fd957890ee7a63bf6c6acfb6f82b49a849a1a","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-pre.3.tgz","fileCount":24,"integrity":"sha512-MlhhegYQ/bG/vA9IT8Vxgn+ojvluC0YENF+Ic3xJNP6Ir/MEWH6gC7rDeaILzOJdqSVV5/8I53aTbYSRwzHoSg==","signatures":[{"sig":"MEUCICxYg4k6pK2dduWoV5AaA/hY4owv67o8jyiQonFMwijZAiEAhy08hM3xBf6CNUCN02MxSZpEYl27tV9KQ/RQKY0IcIg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":97298,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfmBKeCRA9TVsSAnZWagAAWuUP/R2e6Gi/gNQwofvaHxRI\nNmxjJW4DCaSc6kefh5Lk53RMU+7DCORBCAglkKzOdjcY2KQH4vV5pMFRI740\nmmrOb+WrVVQfYvqgPmmytjm18AY5f0lYbF9lrmL7IrrJcb+Iw3BlYHfxLlFa\ndtEc76avhjsILRgCOvbMygNxbTG4ROfGs4K/op34qbU+N2iqERq3CbHgSN1q\nfVPm+UNrV9q7ePYxD+1UfMSAhf+YjKlZleds0wX6IZ9iONtTWFNSoH4YmwDR\nRWBQDxgXIg/g91Nw6Gll1TY37GzO3j7ClI5tkwg+eiozs0u+S/y5/gw2v0Jt\nfdwARs8Of/lhvZiyJfvlxyfu/pNCrVVBukMGepvpVSARE2qRh+BsqzJY3Nxo\nkBAMml2D7OhGREV2eN346aSPuyePXTbvMJzcmBKknmlIpaLnhQtRLGVT834r\nnue3HSNURPPge3Osi0eKBS9rZSUWEBv6esDqHDAtgJfk9ERSP6Y7tu5BkG7U\nw+ceKRY+8WhECsCoaP/OCDzHOthD7sMgeHZwqYtd9aCsCTGWf2NDw/GDE9rV\nE2pdaaDWtu5rOPhH2gj6ErcCbj7V9n2Wq1y2ca4SgS7tXVi3+4o4oAAdH1ib\nRbJpj8OddTfLNOsxx4J7DTOZgFA6im+JUKutD749ut5/qT6CIMAyuAKpYfnI\nylGc\r\n=1cdP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"dbcadd98a9e11277f5c0d9b28c81b3b4b0b89716","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"NODE_ENV=test truffle test","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solium -d contracts/ && prettier --list-different **/*.sol","buidler-vm":"buidler node","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solium -d contracts/ --fix && prettier --write **/*.sol","buidler-vm:log":"buidler node | grep '^    \\|console.log'"},"_npmUser":{"name":"pdyraga","email":"piotr.dyraga@keep.network"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.7.0","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"11.15.0","dependencies":{"@openzeppelin/contracts":"^2.4.0"},"publishConfig":{"registry":"https://npm.pkg.github.com/"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.5.17","eslint":"^6.8.0","solium":"^1.2.5","bn-chai":"^1.0.1","ethlint":"^1.2.5","truffle":"^5.1.0","prettier":"^2.0.2","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solium-config-keep":"github:keep-network/solium-config-keep#0.1.2","prettier-plugin-solidity":"^1.0.0-alpha.47","@openzeppelin/test-helpers":"^0.5.4"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-pre.3_1603801758388_0.7711441274467292","host":"s3://npm-registry-packages"}},"1.1.3-pre.1":{"name":"@keep-network/sortition-pools","version":"1.1.3-pre.1","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.1.3-pre.1","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"4efe0164ded670b770d3c2b3e08fedc0c43067ba","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.1.3-pre.1.tgz","fileCount":24,"integrity":"sha512-+rQH4cToRBpCDQXxSmIiDQqjXWWUPTZe6zahD6kJ0jXFtexd+HRqpgm5V8KOZGQ2+mr6NIGVQ5IJ3srmHX948g==","signatures":[{"sig":"MEQCIDEd5Y3pCf/7iNU49BlU1mMFCOHHSYMayvNevEwT79WsAiBrHoyLjSWhJjhWfX/pYh2aosqVgczKo6LyrDGKjEvwWw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":97223,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9HkKCRA9TVsSAnZWagAA6iwP/2LGRacHTOAtxjM9uTd1\nQUOHFk7Xf6+dD5Hg9nbSVm/7xZvLlBnyrfsJYnhv7pGv+zzN2jgy7BFhhrH/\nZTck6sGQJD0p2+QeESUjOyvBR/P9zhSX1ZqgTgufJqguKxKJkYMWQuWERc8Y\naAjmtRLta2bVXQWSPziGNwRRz9cuBn/LxqyvUTIufZ2BNLwq4e5tKgTTbAib\nBnnR3TkLg4LZMEU3oV729/Q15QX5PB744qtlNHbMKOuzoyhsycbe+Us/jCC6\nX4i2NkrWB1ILWlyuNG/yYtBQC+WYHc0NglAxlpaIgJ0T/DsLcEVafbC60loc\n0TZ+p+u4WJi6N2Bd4uZhAT3LMRKfKe0C7TUtHZ50tHvszqJBKh8xOgV5iWez\nxfcUW1O55/R2jZOmnYT2kuMzY0wXqYlHA6MgPGQecF9+/pHycfJ2gC8t6Wrh\nppCvaASe6n3N23lYoz+qcUTTImEg4u8/Ca4vkx+9d9RD5GVQzW4P3699D04+\nePDXIO5foGBxnRQDnJXHtoNxjzE9ikfluAyimUN7b0saYkgQi++ufzxPChGO\nP9c/g5ZQBadg/dxbIgxEX6mg27bnkSwaS5oFbWRu+wHHzh6+9+/tbQzI613O\nY+ahRK83vLrFCKKKiqRdEBWBcQFTO1jQ56iiQhFhFstBzSEJH2dMQC9qn6sy\nkEgs\r\n=ECGJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"3b22bde520f60cf44250975c55bf710f6b903f18","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"NODE_ENV=test truffle test","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solium -d contracts/ && prettier --list-different **/*.sol","buidler-vm":"buidler node","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solium -d contracts/ --fix && prettier --write **/*.sol","buidler-vm:log":"buidler node | grep '^ \\|console.log'"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.8","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.20.0","dependencies":{"@openzeppelin/contracts":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.5.17","eslint":"^6.8.0","solium":"^1.2.5","bn-chai":"^1.0.1","ethlint":"^1.2.5","truffle":"^5.1.0","prettier":"^2.0.2","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solium-config-keep":"github:keep-network/solium-config-keep#0.1.2","prettier-plugin-solidity":"^1.0.0-alpha.47","@openzeppelin/test-helpers":"^0.5.4"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.1.3-pre.1_1609857290239_0.386686977224199","host":"s3://npm-registry-packages"}},"1.2.0-pre.4":{"name":"@keep-network/sortition-pools","version":"1.2.0-pre.4","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-pre.4","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"a1cac03772b6aa63a6b92dc7b74242aa97df41b0","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-pre.4.tgz","fileCount":24,"integrity":"sha512-5zlbOUWCRkWBM55XK0TWt3+Xi4MPkph9JmhxqyNOSNMZD4BOtxuEinVVo+Ldy1NtIJHvqH7o/3O4wep4RPqmrQ==","signatures":[{"sig":"MEUCIEe63EMuq1Vo8eq09pXjWSjo847rP9AxLniQd4XFvogXAiEAvi2z7EPw/kato3+n25NcMnsYnODFKsP2XMT1JjDqY/8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":97203,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9bXjCRA9TVsSAnZWagAAp8oQAJRvuV2VJB5Xgy6hpGHA\nsHI/2lqTmMtF1C3gbDli1iWaEdRxDSPHt8DxBJSxMTJmhzjsO9R9DM7Q6SkB\nojjH2q3VfO0bHg1qlsnjVKWjD6orcTbYOgRXDjp7SR6KMQCTbAT1WQSqa73K\nFSxl6IAip5C5707KhIphdf79qbtOGQUdtDDsH6r1z3Md74Ua5onP78oUtGuI\ndtiyPvZyg0UtC0pwP6Xhwr64g39loQqYeaZ3MbSpx8j1xJ+HRYSQG4LMvno+\n/0B3RIfQHLvSB31vbr+gCIsmZcJLT9UJi2icZBAts1UgN1JLPWY4FtIKJ985\nTKm7yMjLmMIBg5XU2d5yPyIl37657jLdB1DSdE4X+4odALc5LRiPHElMYUfJ\nQPJQQ+Q6SLBqiM5Qx+cp6U004KB8EhtJvtmwfErRGH62q9Me6Y4PvstOMgy/\nbHdjho+2FqjbMR5jLl+0JPL0lB0a65N3HK1jsUKw3PXK6rocdFelkk6hAUDs\nMVSj0anUESR8ZFYGBW2WS6YTm4uQT8vF0rYqKUIZqRGdK1XtVhJGh7UfMSCW\noYcmbTU1VxAMKXOCEKS0c4bkzRSpi/6z3BfuHEU1yxNqACYXj7gMUh+arNhf\nPAvWzGEgP4wEK5pW+3vYa4rFjYj7yGAqlcIY0MGHdxhikX1wD3aj51SJNmhr\nvTt9\r\n=ydYV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"b92133080577584c827e6ade0dbede6c89ccd598","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"NODE_ENV=test truffle test","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solium -d contracts/ && prettier --list-different **/*.sol","buidler-vm":"buidler node","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solium -d contracts/ --fix && prettier --write **/*.sol","buidler-vm:log":"buidler node | grep '^    \\|console.log'"},"_npmUser":{"name":"nkuba8","email":"kuba@akena.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.13.4","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.14.1","dependencies":{"@openzeppelin/contracts":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.5.17","eslint":"^6.8.0","solium":"^1.2.5","bn-chai":"^1.0.1","ethlint":"^1.2.5","truffle":"^5.1.0","prettier":"^2.0.2","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solium-config-keep":"github:keep-network/solium-config-keep#0.1.2","prettier-plugin-solidity":"^1.0.0-alpha.47","@openzeppelin/test-helpers":"^0.5.4"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-pre.4_1609938402640_0.4808004074333869","host":"s3://npm-registry-packages"}},"1.1.3-pre.2":{"name":"@keep-network/sortition-pools","version":"1.1.3-pre.2","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.1.3-pre.2","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"df14b78673bfdbfe94e6ae0ba3ea45b07d17dc28","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.1.3-pre.2.tgz","fileCount":24,"integrity":"sha512-hUnWyjNveKzRTmn0m5QeRtaZFI+ruGcEtj6HhWE2TDhfQqPSyOduwcnAKjVjHY9VDa5YYKTkIeM+JjbH3lrXhw==","signatures":[{"sig":"MEUCIFgt/0OQcP0gtyqltYmueg4ETfoE/DcUJ+yO/p2rGi1aAiEA83Ygp8g8BVs7YdUmLl+VLCXAIh1H0HRJgUC/auIC4rQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":97223,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAA/pCRA9TVsSAnZWagAAVsgP/01nUAXO/QXmnvVwCzcz\nRQ5uodVBo4+nDTFM2C3VPilNi3mjnRwm74L9z/PZSTr4FcyhgAxcr1kazVog\nlWR1jIPCLPf8EJrcn8IYB+zTI3mLIUUuFFxkjEbtDaDKl+G9pF2WJKq78bxM\naslvvxg/ZRAtKOtzY8ivu+MJtuBfeXtYBrn549gdEl5IjeyFheDL6aEKCrKX\nWikYoYdSxG7pkTCFioaRLGgDlxY+EM8hixcYOFxS33IXTQr8EwpxORm62iXr\nWSW4vcHtzbvFAGjI2Rb6YUGGkykz8o9+qbZFR8L5E2TJrSjWtPN2iVY/oYpD\nch6uTUyC7vfu6sS7RxyoxGPQbHVM0+nZ0NH7rmHIbyd7QO6LT82IviNrz9g3\nXhj+e6u7tDmsAXeGTViUT1IFUXxPWlo7E11Jcl2B7wiaOQPN/uFeI34SeUsn\n5HB7MoOuHF2I1OHOzMGo/3/x8SPA+iE8OLxtHeM5IUWEwapRSRiw3+LBHzRm\nyeg3/zRRmg0qG3tbMztXiCDxs/XvWs5kv1q123Iihs2TariUHBwvrNr9QA4S\ntWJCu7yTCVC14inyKkAUh8zmEzoHKzHLMGv6qd70eLgE64pYUdKPkJTN8xDB\nOsgSB6MpI8UPZIXWrxR6gSYG9g8sVNJKIpZZEmw0yzkKSLklleNJeLw/2zkM\nebpw\r\n=iolP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"b66e69a4e57f723cf633aeb73c55ec9c2fc71c7f","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"NODE_ENV=test truffle test","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solium -d contracts/ && prettier --list-different **/*.sol","buidler-vm":"buidler node","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solium -d contracts/ --fix && prettier --write **/*.sol","buidler-vm:log":"buidler node | grep '^ \\|console.log'"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.10","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.20.1","dependencies":{"@openzeppelin/contracts":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.5.17","eslint":"^6.8.0","solium":"^1.2.5","bn-chai":"^1.0.1","ethlint":"^1.2.5","truffle":"^5.1.0","prettier":"^2.0.2","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solium-config-keep":"github:keep-network/solium-config-keep#0.1.2","prettier-plugin-solidity":"^1.0.0-alpha.47","@openzeppelin/test-helpers":"^0.5.4"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.1.3-pre.2_1610616808804_0.33694288449660137","host":"s3://npm-registry-packages"}},"1.2.0-pre.5":{"name":"@keep-network/sortition-pools","version":"1.2.0-pre.5","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-pre.5","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"41898001b63a283cb05f05bce0244a0446faf0de","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-pre.5.tgz","fileCount":24,"integrity":"sha512-j3cU7cGC7AcR8emiayG9EEMkMmeGREdN3f3X2aDg1SfQVG2ih8m9F1ZXjwqanbBhOvN14ocZhkgjseX0HemEcg==","signatures":[{"sig":"MEYCIQDm3qJ0U+g3aBUYNR54CVHm+yRLr5zbmATX85vAcWXY8QIhAOk0aBfBslzrsbAEPVHKALLeK66nQnVn9afR9oAL49Rg","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":97223,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgABgvCRA9TVsSAnZWagAA3xIP/2PPn+KDsKLkEZGpyg2G\ntaYVhCb5Gs+oxYpM0irIPS4bVdSv78vRihfnx08qILEJOhU/+1cOIahstKO8\ny7tIEpvt/gIFCpGs4tyZfXv8Z2prclSUavEdnjabN/AkPHO74WR2GGxKewiQ\n5iPqsnQFETKe81jHd8nEo7D3yXYDV/4t7jUlZPyKk3h7meS4ISSGcWn01JAd\nL1f6ANYL9ypxOkqUXSkyvvyP1TNLFi/n66kkBdJe0/t+6VFQV/5SvZBhPzSh\np2y856N1Ieh8MLg/ny1NAcFpW/LEE9AfrzYhfA/6I8V1fMEzvYua9tz3iHQh\neRQpiqqXyfbNswgrPKs6CewH4L1JL6LI4pii1rkakljDrW65mV7NqD1l4/vh\nK6SRG395LieYC5iTPHyabPdVicqBYJvzo6nh2N+geaHyqrQlNO9Motwvw7SD\ntWb6tvyWJFFM3pKZ34jifbhth33wPXard177jyGMk5MGnZv67xjhyZtjUDxR\nfOpBJuUF2CtZmEsI2tu1RYp2hTnJRwwwbTrHDlN2ECoBLGwY9ZyLkiMp3ph/\n+Jzxi4Cc0XQQzyjS91xKGqCGBbkpdgTCncQtPm5WuEASfriPTK/byhy182A9\nzrt2PDAxvWdEZyzGFzi2Lq6Cug21xsm1GRE+Gef9yRA/nEoEAr0kYLHf/Cq7\nYGjd\r\n=/D+k\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"d5e0e34a189daa40253a69a6bc5087b4634abcd2","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"NODE_ENV=test truffle test","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solium -d contracts/ && prettier --list-different **/*.sol","buidler-vm":"buidler node","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solium -d contracts/ --fix && prettier --write **/*.sol","buidler-vm:log":"buidler node | grep '^ \\|console.log'"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.10","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.20.1","dependencies":{"@openzeppelin/contracts":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.5.17","eslint":"^6.8.0","solium":"^1.2.5","bn-chai":"^1.0.1","ethlint":"^1.2.5","truffle":"^5.1.0","prettier":"^2.0.2","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solium-config-keep":"github:keep-network/solium-config-keep#0.1.2","prettier-plugin-solidity":"^1.0.0-alpha.47","@openzeppelin/test-helpers":"^0.5.4"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-pre.5_1610618926768_0.628287758493592","host":"s3://npm-registry-packages"}},"1.2.0-pre.6":{"name":"@keep-network/sortition-pools","version":"1.2.0-pre.6","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-pre.6","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"d526c0c8cde16bd4f027805b93d993028dbfcf98","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-pre.6.tgz","fileCount":24,"integrity":"sha512-6Tusle8KGZldO8jbFDfxChdgI6hMpTAW4LG+cAkf7jgRR48o6NkUiA7mDoWk/+dlitpHrQpWT1JM4N7aR/4/EQ==","signatures":[{"sig":"MEUCIQC+C4Tym2KxEeh0qjk5poOhGLclAKEJfKZiumC7U0Z18gIgRSjnRnpOeyxeNgwX/aE3v+Ehp/t3rM9tWZNt7Tmhkwo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":97200,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgACr+CRA9TVsSAnZWagAAUyQP/RSzLIU/lDZoME1F3m0H\n4YAtbxtFtbEILnB3nKcUN4qO0/QQtp/2KviBRzjpRO9liAIb8XjL165uMY1b\n+1iQiQqR4LcUYC/NCczwaR0bzICNJC+37716SA1HI37k+Y8A8+7OFZ9qKl2O\naTJMCc9lhPkVcl2YZkQust41eQzV9rwLdJACaO2UeGisAiga79oMW3VUJceV\nxGQwEtWSVDiAcUC7D9bczxVTlYMjndE7WGRDkfVj8XycVIfGloEVSvpIWx4X\nSMbkl3IegM0JH35TvmWKYuRnZsJh3J8TTA1rSLI0tR5kMicqiwFhmnkPb/VW\n578ZGeWagpCezpJGWmAvftfvEP4jvHH1PODi1xBiZJ1DW8JE5cfkjt+JNHWq\nfUODrnDrR8/O8gOzWdQXf3qh20rN9hNeRBshDCcoZ14vuIjHURNtuYWryh2s\nHdyu2UA+ky6vgW29Cot5kMCW6kbjJ3NmUUqNj6KqeVKlnrXICpKFlE1kBQWC\nkNRnGHLUgSnIsjZkUxsFSLeC/cLkgBuHyHifFUN0mUWmBj9/lAA9mnkAgT//\nnymcgeiB9IIVW9HjTzPjPyHOAKiR3nAR0T3gVr/OE98hr+PIM443RuNQ6Zuz\nauhJ/fY54DSiIJ6zXGXEL4FCOzz7aig3/MjdMAn6skoYGjEIQBpInSy/4fGb\nKX4l\r\n=g1E1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"8f5975a2ad33c231e3b9245fc7cd9f2d42a143e9","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"NODE_ENV=test truffle test","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solium -d contracts/ && prettier --list-different **/*.sol","buidler-vm":"buidler node","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solium -d contracts/ --fix && prettier --write **/*.sol","buidler-vm:log":"buidler node | grep '^ \\|console.log'"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.10","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.20.1","dependencies":{"@openzeppelin/contracts":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.5.17","eslint":"^6.8.0","solium":"^1.2.5","bn-chai":"^1.0.1","ethlint":"^1.2.5","truffle":"^5.1.0","prettier":"^2.0.2","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solium-config-keep":"github:keep-network/solium-config-keep#0.1.2","prettier-plugin-solidity":"^1.0.0-alpha.47","@openzeppelin/test-helpers":"^0.5.4"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-pre.6_1610623742413_0.8559296691386253","host":"s3://npm-registry-packages"}},"1.2.0-dev.0":{"name":"@keep-network/sortition-pools","version":"1.2.0-dev.0","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-dev.0","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"11c0340db1848a3a22412dd8fcace33ee8b7056f","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.0.tgz","fileCount":24,"integrity":"sha512-HWmHrVHsVOJQc7dLm6+LFPUXrSqffoB/zAGs6lvnln/zqI0bvCv6hdxlGIVErKn6GOAx3MuwERzZkDBXlzVhaw==","signatures":[{"sig":"MEUCIHd7lq/p9cSe+JBapBAc4eSEnnyAZsqDHaMJME4Xsfm2AiEAhXl7sisNH7tSJk6m8zgp3vmMkAN4HxJDTVA5ut93rfw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":97250,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrQQMCRA9TVsSAnZWagAA7kUP/2nh99X8QEWGwKTlszlw\nXRgLJPkHk9TH1xrbPrIUpfBWGgrsN3D4FzMHSEuUsS/F56+NwvUpOLVDrYAs\nQ3wUQc2VZllDLCmEn+F13Ue6nubI0ftXxrGh6qKHhGJibuXs04OVeZ6CepCf\nKOXh0p7VvoawVMQXAHj1qNiUrHPR7TOWuJc1KxS74GVjlMSU67FAIs+NYgwY\n3bahFacjx+ZU2KkjzwnhBGwnV9ZAo09WIKAZTEI2Uz34hAFfVoZrSabj0tWp\napnvb/q4gswiVC/QU57nq8Wi7DpTvWuBJXHvGJ4MnLgLiWFiVtRmvmJl01U4\nnjo/yOUeexH1dXGbosoJopH1WRsXbrtgtJ3oXiE4nVqPAWSTxKxHBaHnPJaS\nhJO0wmQR4GMt59XcE+4WgZMjnHBz2t/SS2NdweLBmE0sz17X8LYpBjCAetUI\nzdVZgf9XOwexHoOrMGWmHEQknYIddx7AaWsgjpYBsNNoEpzahkB2/TmT3gJv\nHs+wsR3ZCfvC5QgTwg25idPpostL/qdsllr+/+b+dm/SHCd/sB+2ChX2+rhV\nv3581reC0rWZdLEUCgsEEnElIuqQjx7qgeIoxA8w3fS72kpRQcON5u82RyUK\nB/qDiuzHsR2qFyS2cj5ddSeT7AOVmX4N2nreT1Q3LTm4INnahOe8RptR7KQb\nvVD9\r\n=Lz/Y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"a8df278f273bc8ccb9ae8bf592f4dfe8ba07d8fa","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"NODE_ENV=test truffle test","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solium -d contracts/ && prettier --list-different **/*.sol","buidler-vm":"buidler node","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solium -d contracts/ --fix && prettier --write **/*.sol","buidler-vm:log":"buidler node | grep '^    \\|console.log'"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.12","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.22.1","dependencies":{"@openzeppelin/contracts":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.5.17","eslint":"^6.8.0","solium":"^1.2.5","bn-chai":"^1.0.1","ethlint":"^1.2.5","truffle":"^5.1.0","prettier":"^2.0.2","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solium-config-keep":"github:keep-network/solium-config-keep#0.1.2","prettier-plugin-solidity":"^1.0.0-alpha.47","@openzeppelin/test-helpers":"^0.5.4"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-dev.0_1621951500048_0.7982946663349324","host":"s3://npm-registry-packages"}},"1.2.0-dev.1":{"name":"@keep-network/sortition-pools","version":"1.2.0-dev.1","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-dev.1","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"2ee371f1dd1ff71f6d05c9ddc2a83a4a93ff56b3","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.1.tgz","fileCount":24,"integrity":"sha512-CaOsvxNWHgXRFwPThDn3C/LiCwq9pL8ICLXXkysRSLw1Hx69wLnToaXYuwyXeIEy5pGqe5+288DBIqvJ3T4+jA==","signatures":[{"sig":"MEUCIQCEdUmrHCmJxQJ52hkSsfP52Sih8gyCxq/ZSWF7FqHPJAIgFXHeKg2NeXYg89e+Y5LbaQLb3tfSNtjt/24/c74pt7Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":97248},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"e0ed581b7747589b60082c60440af335bb941a6c","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"NODE_ENV=test truffle test","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solium -d contracts/ && prettier --list-different **/*.sol","buidler-vm":"buidler node","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solium -d contracts/ --fix && prettier --write **/*.sol","buidler-vm:log":"buidler node | grep '^    \\|console.log'"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.15","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.22.6","dependencies":{"@openzeppelin/contracts":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.5.17","eslint":"^6.8.0","solium":"^1.2.5","bn-chai":"^1.0.1","ethlint":"^1.2.5","truffle":"^5.1.0","prettier":"^2.0.2","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solium-config-keep":"github:keep-network/solium-config-keep#0.1.2","prettier-plugin-solidity":"^1.0.0-alpha.47","@openzeppelin/test-helpers":"^0.5.4"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-dev.1_1632491370681_0.4785677971413793","host":"s3://npm-registry-packages"}},"1.2.0-dev.2":{"name":"@keep-network/sortition-pools","version":"1.2.0-dev.2","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-dev.2","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"76600679b84fb49548020de2a50c746b0caca9bb","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.2.tgz","fileCount":24,"integrity":"sha512-5ctkDTSQ4dEyX4TIlzdkFYS7+WAlZOpBA05HtKUo6v6dPgdTs7TqV+luXKsGRt/BOY2TU3THsx2UkSmSIeCugg==","signatures":[{"sig":"MEUCIC3bSGh9KdZo80aYzSz/9/gLFWRFa+8a+W2gtAmNRINCAiEAof7K1gZqsO9H5JZ+U2g35CiPNpUUa155kLna/zJpgbc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":99658},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"26338b851223f99d7612789906a2e94318cda0b6","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"NODE_ENV=test truffle test","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solium -d contracts/ && prettier --list-different **/*.sol","buidler-vm":"buidler node","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solium -d contracts/ --fix && prettier --write **/*.sol","buidler-vm:log":"buidler node | grep '^    \\|console.log'"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.15","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.22.6","dependencies":{"@openzeppelin/contracts":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.5.17","eslint":"^6.8.0","solium":"^1.2.5","bn-chai":"^1.0.1","ethlint":"^1.2.5","truffle":"^5.1.0","prettier":"^2.0.2","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solium-config-keep":"github:keep-network/solium-config-keep#0.1.2","prettier-plugin-solidity":"^1.0.0-alpha.47","@openzeppelin/test-helpers":"^0.5.4"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-dev.2_1634136568504_0.6451902846742954","host":"s3://npm-registry-packages"}},"1.2.0-dev.3":{"name":"@keep-network/sortition-pools","version":"1.2.0-dev.3","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-dev.3","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"52375d95888f0d3d9b86e1e6d5267d98661a1a92","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.3.tgz","fileCount":14,"integrity":"sha512-p410U4Ybn/lpvlkFa1lsrhaJ5MIR9AQPuCP55mObpGSazYtQxbXTSgHILUSwGPEjTctEYgYNLxbuOeYwa5cvvA==","signatures":[{"sig":"MEUCIQCOAzVzaBUyGJA4aJrdCkwFl5SrJfrHotWxVyHb+TRsYgIgVznoltq+9Uz2N5iOQJm9our/GKEkTu4Rdl0Cg2I086Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":57752},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"851d71b95dab59f527c3194a657efbdc2590ea3a","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"NODE_ENV=test truffle test","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solium -d contracts/ && prettier --list-different **/*.sol","buidler-vm":"buidler node","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solium -d contracts/ --fix && prettier --write **/*.sol","buidler-vm:log":"buidler node | grep '^    \\|console.log'"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.15","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.22.6","dependencies":{"@openzeppelin/contracts":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.5.17","eslint":"^6.8.0","solium":"^1.2.5","bn-chai":"^1.0.1","ethlint":"^1.2.5","truffle":"^5.1.0","prettier":"^2.0.2","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solium-config-keep":"github:keep-network/solium-config-keep#0.1.2","prettier-plugin-solidity":"^1.0.0-alpha.47","@openzeppelin/test-helpers":"^0.5.4"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-dev.3_1634305072542_0.5711198046818655","host":"s3://npm-registry-packages"}},"1.2.0-dev.4":{"name":"@keep-network/sortition-pools","version":"1.2.0-dev.4","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-dev.4","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"082c764239c4fdb23ead90f6c0936aadae161a3a","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.4.tgz","fileCount":15,"integrity":"sha512-q8fFdkN+DIZFmoG3skjQUvz76g7qF9gFxRRNWTJKaq7QF4kg46z2ucVlvwEL6Nyu5/6NUKrXD3oEGgFgFgiuKw==","signatures":[{"sig":"MEQCIDQj+J6G/SZ9GENitx2Az8WqSZeDnKSI5K0OxCn686q5AiBfV8663Mf+m9dqt7rSZmXgTmtb8zUX+rxZKzV7/AVL2w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":58880},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"5354429406d61176a158c40079c441d8f379cf9d","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"NODE_ENV=test truffle test","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","buidler-vm":"buidler node","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol","buidler-vm:log":"buidler node | grep '^    \\|console.log'"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.15","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.22.7","dependencies":{"@openzeppelin/contracts":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","bn-chai":"^1.0.1","ethlint":"^1.2.5","solhint":"^3.3.6","truffle":"^5.4.14","prettier":"^2.3.2","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@openzeppelin/test-helpers":"^0.5.4"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-dev.4_1635167484700_0.5721370102289487","host":"s3://npm-registry-packages"}},"1.2.0-dev.5":{"name":"@keep-network/sortition-pools","version":"1.2.0-dev.5","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-dev.5","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"7b035f5dd9595831737d4fa38ec9a19c25ed91c3","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.5.tgz","fileCount":22,"integrity":"sha512-bqxuh+WD58jP6qH19BGDA8j77N456A3UYjFhd2gfltSVbDkVebWFr4wcOhPP568AHT5ZY7CrAi0NtA/fJl9Lqg==","signatures":[{"sig":"MEUCIQCh9lvnztqP9VVaBesLyryGCKiizngQleWuYmXxeu3bzwIgNgusmUr5TUTO1MReNkJ6BJt/ZPamcZBiOn5M47AIZPI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":65699},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"ace8c23bb47b0e5525ae379340cf019a5434d505","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.15","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.22.7","dependencies":{"@openzeppelin/contracts":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-dev.5_1635861495787_0.4816946422767956","host":"s3://npm-registry-packages"}},"1.2.0-dev.6":{"name":"@keep-network/sortition-pools","version":"1.2.0-dev.6","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-dev.6","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"3f1f4d7f14dbe117241400d0f11d89b293f3c877","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.6.tgz","fileCount":22,"integrity":"sha512-vKnloa082byLFqsfnY3C73lAfkfBCogYAVX2HvZgOjY7C0QSllgfKG2s2Zc3jSyGiApPuav7Nyl7O3aVYsOekA==","signatures":[{"sig":"MEUCIQDk3sBJNkJJGxqCbGBztnaacLsgiNJnuXwNfYQozpxrKgIgXnayoAUVLvZQbf+J81ni83mkdYSkGhLR6LcLbjNYmrU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":66418},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"cc696690279892f4dbbe0f4e52352f8f9ff561fc","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.15","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.22.7","dependencies":{"@openzeppelin/contracts":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-dev.6_1635865180137_0.7359220028438447","host":"s3://npm-registry-packages"}},"1.2.0-dev.7":{"name":"@keep-network/sortition-pools","version":"1.2.0-dev.7","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-dev.7","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"c17db5bd53a00683db39207a2129a8d4b4241ee1","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.7.tgz","fileCount":22,"integrity":"sha512-231jf0vm3Q3Ks2sgfb7BwUdJC6jpIpIuHVbmPqJv6JqSPGuomVQqXkbkgccePp+CXByWzJQ+dlww50br2HUbIg==","signatures":[{"sig":"MEUCIQC6/moJEFsYdC2soa9V21mVDeBx9Bh6ZpWyoWgZnssdjwIgRJhJB4asbddFqJQXMOahKsvxX6KnyK2nPeoCWZsU9MQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":67573},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"a4296a7dcc135c0ecac3231f164615c5f14f12ab","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.15","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.22.7","dependencies":{"@openzeppelin/contracts":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-dev.7_1635929654048_0.567222700259894","host":"s3://npm-registry-packages"}},"1.2.0-dev.8":{"name":"@keep-network/sortition-pools","version":"1.2.0-dev.8","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-dev.8","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"ngrinkevich","email":"subzeromedia@gmail.com"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"0eb6f418150f7ea3fbdf862750c60a6b16bb478f","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.8.tgz","fileCount":22,"integrity":"sha512-F3YJdrXrMzRchBjZjEuvITXbX5gstThhNWcxEoxrTrldG79H9VRP9hAS83zFY6q/IPm+cG61Zo+DeIg7t8pwgA==","signatures":[{"sig":"MEYCIQCFTi/TtAKP6t66P8RajDsREMN4CcDflUtU6b9GAbWUswIhALroxNGHmdI8A0qP5vLp7atVAc11PmpKRxVDpWI+vnvk","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":62845},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"8bd7992d1e2cfa63cd6c47dc144c09d4888c05dc","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.15","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.22.7","dependencies":{"@openzeppelin/contracts":"^4.3.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-dev.8_1636368267918_0.43908700687526503","host":"s3://npm-registry-packages"}},"1.2.0-dev.9":{"name":"@keep-network/sortition-pools","version":"1.2.0-dev.9","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-dev.9","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"500e666f5350f3b02438e915e74c8f669fe676b9","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.9.tgz","fileCount":22,"integrity":"sha512-P1h1uDqRWxx6GY/Qo2uV9le5qrD1o8z34HCWedad48dNZW9CkvWOEL6gydLT9nKsRLRfSqeU3as/P0m3f1p9Ag==","signatures":[{"sig":"MEUCICTvdytLYZezruoqgl1VCtVKcx0PufcYxVqzwQV0+k2sAiEAxMw15H3NiIpGAgCNLnI+P8ZAguttp3PlDjz4DmzoECs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":63781},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"0e6a1b32fef28ce0f87fe1aa7ec7a1eb0401cd24","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.15","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.22.7","dependencies":{"@openzeppelin/contracts":"^4.3.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-dev.9_1636374016032_0.17738698280869403","host":"s3://npm-registry-packages"}},"1.2.0-dev.10":{"name":"@keep-network/sortition-pools","version":"1.2.0-dev.10","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-dev.10","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"cd40a070e21087b38acaf047c04c529f9fdc4b83","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.10.tgz","fileCount":22,"integrity":"sha512-nmpTrGSbpNEXaC5kCicUQeXRhwkDAHrQz17puiKzrXv2LGyqlgfgBGb4miRcAOgccivvwo6BtAUFhd6Rqvfd/A==","signatures":[{"sig":"MEYCIQCMS7xFxsJV71+z78ox6bS1l3fKaGq+3+H35V1K4O8O9wIhAIGZ/qGTeWbP9XoGxvwBgQvyag8tCmEeCUjYbIfzrX1y","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":63759,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhk6+BCRA9TVsSAnZWagAA+3AP/0B0XdTisHRv1mwGq8J8\nrIahKeiequdG1T/Ob9IEmBGIyzu8Lw5a0DZSuKsSD2lX4o93UaMq+BWiUJJS\nLMlm1y2L50WDq1ZoNO5shokJwnMXCDVKSglCxkkbivZsme17uYRn6oQM74mM\n39ohYyu6/mMBsW11Edg6L5BiMvoq/j2amixQbs95TLKCML+bpvgMkPicLUjM\nrCwrXoqdTU6PEXq34NYbovN+ZjSy74hkDevW3PTFZGXPBKbDkthBG98zwg53\na/JM3tn2PK10tXL2H9beF4EQuX6ULWyj4Jx2L/29PJjqMpeJXDLJ9Bl2U7nv\nRzgsOmrj9A88mAA+wiuzLedBB3h3gYqT+86iIRhhtHwmK4sXbYZKa+zfwlRX\nv5yzrT6D+5xNGHYT1hXXLMpBGr9XmX7CaNhyaBh08MD6FD4cZqJFaWSlDc8Q\nkJeLHEouc/C1Op1T59MFw8C+i8CVlF4jzSu7rmxmw6bEgxmpUyr0xLXrIGCF\nKIlF/8+COQEvKvoZzpu7yzj3Td8V1Is4Hj64iqGKFCjh/by3cH9BU6+Gax9L\nyaRKAt5Xvsdqy5VVTqDn9HwoEGQs5rO5zd1Mf8mnLuYBSZvms0ikjxZQ/MM0\nLrlUKstTrVLJLuy3uGLFXTBxH6icOn/ph6G+AEdasi6riERA9mER7XzO75OD\n5bX4\r\n=exzj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"dc39dfd7ad46a70993c22562dff45a3e02946659","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.15","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.22.7","dependencies":{"@openzeppelin/contracts":"^4.3.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-dev.10_1637068673745_0.5195096859343757","host":"s3://npm-registry-packages"}},"1.2.0-dev.11":{"name":"@keep-network/sortition-pools","version":"1.2.0-dev.11","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-dev.11","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"b2f52aa658cd234a893ff32f2488e7fbb515dd5a","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.11.tgz","fileCount":22,"integrity":"sha512-dHbIAS3JgZmtla3Ap8K2RH2XrlRhUB9bi7PRdrDU1B12qUEp68SNbHf0xgZrucOluQtBFg8q6KXsnWEZknulVQ==","signatures":[{"sig":"MEQCIA8hcstt3eyVbMb//UrGsVi6zJXJCaJov00YikuqHKspAiB/dbPJ6GgYMGPALyUt/TuVCBUdz0IBHkmvyb/rX1ekpQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":64119,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhk7B5CRA9TVsSAnZWagAAyhoQAJwM4TuIqHA0k7qEtwpK\nF7WYV89lhNZBbcf/5JpKeaSA6554YAtkZGf2LE2pvCV4Ryjp6q+5GIBGr7Go\nfefdp2TRHYx2b0X3o5lbYb7zEqG+bHd681K/R+XZrcs4V0zhlocqWLYpWuUW\nZwWxhvNxxdx9tBpOxsgAtKmL24U8oORmqhWJ3msXLwuesUIHV8A5TMuk1ihl\n1uAa2ChIb7rnpVD1v3Vs/sK2bm/TtXbyIqOOQhyeRP4sLYP+pJMoSgoVUvd/\n3C0oX9SZVzM05eXbYmWN46c8GLEBAq5t72Us4LZLuJRCvUW2fx9fUPHU9d80\nNNIPmZsIsiZeiFwxJ3DcKQX8ZNPyYRhIKykIJELXN2jltJmoLw7Sp9wGUEj3\nRZamuFONDSa++XQzWV3LagC4hTwufqpyl3bA2t6bN+ZAIAt6vd9sww5os+kw\n12u6/cCW+x6gomPS/cICkcvhsCQV7Yq5EkyJEt2fDz7E8NiBm7WSIb3HX984\n2AdvAAsmvAqA8i0t2VGcuzS0sS6zrWVOC9KVD2Pij5zZLKTxA6kVLHkaHgrR\nfwp8xADD3yE841eSl7DAifpkn3pJsXJX6xcOOYuhVqimpxWsjGBhVH5DOBUh\n+390cwFiIAEUrhIl1EO+WDn4ehbNEUvjJyT1j157RaUvhJmVZAFau9+uvmA5\nbu1u\r\n=x+s9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"6f98f873508c3742663da4c086048451ea3e578d","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.15","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.22.7","dependencies":{"@openzeppelin/contracts":"^4.3.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-dev.11_1637068921386_0.8437537020619048","host":"s3://npm-registry-packages"}},"1.2.0-dev.12":{"name":"@keep-network/sortition-pools","version":"1.2.0-dev.12","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-dev.12","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"b811eeed7aa54cf5e139265926b4969a66fe7226","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.12.tgz","fileCount":18,"integrity":"sha512-1oP5EVG11SaHE9jkB5XSC/uKpn8xZyLPNVn0RwOTyNwQq8EWyVS/tZABMj+m37AiXNBSmnb9kx4dQWWidwx7pQ==","signatures":[{"sig":"MEYCIQCM+jOpGUVezcFjYqrt19xqWSewDf0ZhAkfgZkrtYLPUgIhAKBsesHveVHBEiGaTMP75wE9m9KlKM425hwQt0ahbYQP","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61391,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhniRxCRA9TVsSAnZWagAAjwQP/jctcDiI1O87s4rz/4dy\nOTJzdNYkzapE4JiPfGkvPQE3mKHcQtY+/VDxEHskjfAz1Xejdin1tnABt5K/\noUmBRhIo/wdWwMVXEvSY4blFdtZozXexnALqE9zBYqgitRCQCJX/4rv7puXG\nrEPEFajAihmzgaiVug0lhdMWueAmFrIgI3nAPggC+V4iELk7xassarygHhMG\n9EJOUuuJVJ3ulWvxSY4JP/dfzTuKwf2hKXn/TYwazzDrpJmUaDuQgQoDCgVP\ndKeLz81w90Tcz5u9/qL4vwhDExyF/mKJlTgpWkB9o6tOvjdCJC9IXxowU3XY\ntRGghJf2ESckpG5qcw6uICygbVZDvDdcnDfdBBMMONPpt3rjVV5qZNJNcMQq\no3Z16Na6eXwBNEIaoqUvXNI+3vjevWKZji/IWHQlp3qC9KQfRRF+jr5ErOuV\nmJLtxN53SnRKozt9vDAEKaXuOXmhHc1tjZ7lDwzcINQZNAyDMk8q/z1BvjSI\nCLLrgGLT1GpzNZcfcdX3aYP0zvhbe+/SNa1fOLvaXsZNS7sUKpcO6XanrUMN\nr2O+hNGgs0vfUe+FpPsFXNgZC3DIPBsPI16d1Qu+vRpdH0RBeL9wFy1IPrnC\nVndehkn6yaevoxZXUTC9QYOSb1At7OWAmYFyEJahkdmnMgkZy2rIwfezFBiq\na1zw\r\n=54bc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"aa317c9df1d2cde9dcf83c6a440b7a5a6d2b7ba2","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.15","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.22.7","dependencies":{"@openzeppelin/contracts":"^4.3.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-dev.12_1637753969124_0.6824598105115849","host":"s3://npm-registry-packages"}},"1.2.0-dev.13":{"name":"@keep-network/sortition-pools","version":"1.2.0-dev.13","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-dev.13","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"215f81acbb3dba990f70587a2ebac22d596f7fc8","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.13.tgz","fileCount":18,"integrity":"sha512-2G7Y6AoMt1WMFM/gy5sxmipol36urKSz5po/T/KFNWudm8XClXU+yla2+27UgcRjaLTjDp/SCWJb1AbN8vW16A==","signatures":[{"sig":"MEUCIQD3tas/hMLn8ZpXuvhDj0MhtgM6BEUZaeSuhHMaGYMUQwIgd72KkasHhJcCxJ0nfyhHPGMd80vehf0Ldm8EMpaSKUM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":60673,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhniTNCRA9TVsSAnZWagAAkToP/1OHedarc4dC4Sx//eIn\nwsCbuWrhcXiGgDiMvB/o4GCK7HTy0RQaCrKhwbW6ymAwTOHDJkWZOAGAE4Vu\nN97Zyf+31FqROA/TG3hnewxVQoH+wDgEIe4q7PBTZG3s9KcYZQ2NcgE4bIsa\nLuSjRCJ/+bVTPUh5FmrchYV6c8Npho5IeWb/+302wqUC5mdbLM1u5oDsueqA\n6SDCU4FcqDufbvHUmGtZg2weTEu4gdJIg3WlPeBOx9T3EJvl7fDYQrVbdruH\naIbngNH+9CjbScqDibkHJHh+KIkbX1O0f5As4vhKQgjmDPLZG/EFLFH4WQel\nh2IOe4DYc5IdSJ0B+8ipUIupt4gGYoKodj6apw9gL08FJSu0AkB9d7zqEDOl\nwV+xLWU+w2SdJw9L4SgtomODD40gDjkg80uVPO+5nb+5MphmkVI0m+rtg9f4\ncUXS4IhCFTRII2oujwOI9e6dLPIm28xrs9O3g1M0UKOqmCbWd0i87ZfXaysj\nHILhRQDyDocWRv8Yr8WZ3mqAnInxXLmanGwvbWVTMkXW531mWHU+rFyibho6\nPthzwabbG6mOnPunrCIlk3cQX3T53EtAhWyc7uLS6qwOHmlrS/I9QcOdySNr\nJwt2Hl286qm9i1OosojO72mljcSWUGedv/aqN9d+QLFpHCHDPDhmWGPC/C9u\nQVXu\r\n=5JcG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"07399a3813894305fd0dcb809f0f8d9a0ce90293","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.15","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.22.7","dependencies":{"@openzeppelin/contracts":"^4.3.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-dev.13_1637754061095_0.04758515537195396","host":"s3://npm-registry-packages"}},"1.2.0-dev.14":{"name":"@keep-network/sortition-pools","version":"1.2.0-dev.14","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-dev.14","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"7b694fc9feb2aad7f879112a62b4bffc1a3b9f07","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.14.tgz","fileCount":18,"integrity":"sha512-wQB1pnqTZQejjPjsOidVqOahJLZzhI5vNfF8kHWantfByRC1D/DqkC+OUNmFyq8kET6WBNdVWbVMD7mvYQdmmw==","signatures":[{"sig":"MEQCIEZjXdhPCV6A7tgwLNfn/s7XX9pzT7kiCTVfhRRCVSKNAiBDd55kEL1T1zYGAgFwkqtssljHlR5LxHbcfiRgg5O1vg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":60659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhpKOICRA9TVsSAnZWagAAUwIP/ix434UhVIRl9/fTVHnx\nalOb4hE0USmQGSaSRBIFZNaQ2F6oUSL9tkoXUJ2c3B6FQO+XnLV5IQ+vlqzj\nijTnIRZ7r+Wuu4yAFS1ZUP0JyCGk8fKSngBKRg98QjI8m7KsGS+pGI2qcuwI\nywH0vdKOH8M8OiaQs34cUg++mL4Wq273wousYo0xTB7oyH1NajRWS+hfP6Mh\nV2amqk6++3aPLQ2yVLVPOMLadPPNSEUKQe2uaU4A8DrnhG+sjYnUb4BqSwYc\nB0V+eXkwStOa5EX0opa1UL7OtRfCUsVCjgQwhk4DIou0PkYlj7L+vpWlsvtY\ntnpjkDUUg1d6Mzec2M9+dRYD8lKEcUPECjHqh6BtRkSPZVBlvrTM55xH8hnU\nvXZxJ/SxqAh/Rk+qyohwmX8rgd6SwlRmC0z2VpTaHoBWcp2Ce3EJ05Gm2AAP\nHcv+O2MigBRR+tBkYuxI9UkqWOLBhJzwq5EzM5QnJijm63zYwGoMhbw/E8IT\nQ1Ed4+U8ht50wBpB7j/2vjsraJDM3CBY8KjL1siBUftjhIJYwDkHQfpwHcI+\ncqP1IJAwoupUOEcdDnTsWAHxWr37Xdwceyk7snwnvPpzq++i99eiQCchBI/F\n73mvUgwIzB2fEOsQ/3BROQcui65uFIWUfTBbr/eH9C2/wZ02j2yVtcq90nqw\nN9yL\r\n=VnxL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"354ac1dbbffca34e99620a0565145f728f09afcf","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.15","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.22.7","dependencies":{"@openzeppelin/contracts":"^4.3.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-dev.14_1638179720706_0.3571713292944414","host":"s3://npm-registry-packages"}},"1.2.0-dev.15":{"name":"@keep-network/sortition-pools","version":"1.2.0-dev.15","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-dev.15","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"f90444b7c8245636a113c3233e541a2ba6baf63f","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.15.tgz","fileCount":21,"integrity":"sha512-uDybDQljLKUJNg44nsVnTLPvpuGoHi7b1COx0kdzdy1UxH7c5srpGtbK6h0l9oHSgcgo/xg5Efys6NOiFDwsvA==","signatures":[{"sig":"MEUCID61W9BBshQtFCnb4alcjOfUtRIV9uE1bmRVhxu9cspYAiEAs19Vu5UNOm1TLeMnEWjsrBe3Vl8mxL2SFpx4mf5sWys=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56561,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhpmARCRA9TVsSAnZWagAArfoQAKAH+cUB1t5QTX2/a8mO\nVwHveMqisOa0ih3oDugeTR+p5DNPnNRWvbmQ/KnIWkZMdsAVN7WwJYNJRUny\nHKGhV3pfDUtNMVJQS4OalOO41wlnAlQgveIYH77Mj/BR0i6MtRq0bOTaZxZq\nGAVj+t/0KXJBgzVZe7B4Lze2GFSLwCKgGYxlqaJUpnlC8lgAGQp9zxk3cuGN\nFUUWksFLgn+UFHYQoV5LDlBj4BRzAj75R8fgKzH7LbPAl2JSTYKbv9Af7WJ3\nTjNQGzbdhsPKC1ojjblO2FUN1H5V9ygiS7gyGMgiPchPqkXc6FSmk/dDK/u/\nnMxgk3DY+XjIXKKLGsAw3jZnRgrrY+K31WOezojEMoukMoMavpW87FqC89aG\n090zNyGDtTBv3nusQUZ2Lh0Y2MdwxsQH6o8fFM0QfckL3nhYNLNE2CVYjSNf\nL7SbNEyvZU9kUDxe9Lcc7icxfhCp89ilbNj9Tr/I9v+H24l8B3GqCcIAPYHh\nmKzcEV3hc65sgEiBw62le6g8K8zhcG0jiMAJnXUP2JsQjzdcB4Q18nRcV7Nv\n+5riQkE8hZMYmPCpW3BLV9ClbvZRJbJLxkH1aeIku62nGZ+y8ly6ghpBRM7v\nPi9fujLVXIHTDXovWh67YpXfTjeqCYlVyajKte08PfgnqAZYxvrVIYunfjYC\nx1aG\r\n=J0hD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"4d5602d30a494ec9d7afd7ff01b0ef192eacd566","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.15","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.22.7","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-dev.15_1638293521484_0.14485765027583652","host":"s3://npm-registry-packages"}},"1.2.0-dev.16":{"name":"@keep-network/sortition-pools","version":"1.2.0-dev.16","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-dev.16","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"32aa52e43734685bca0cb84220b9b4e2d79f8029","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.16.tgz","fileCount":21,"integrity":"sha512-0+2G1sZO0dM3rt9LakJsUjv199p/qK86awBNV0Aj6CUPG0xTx/cDzcp+b9aNZ0bEeJVzby72G6sZ5+RaZeKI9A==","signatures":[{"sig":"MEUCIAHFvAuqIR9AjeWHF5J6Eu4M1TAEguanpD0UsuPnoPUZAiEAlndjc93aYkQXQtV/3rsbckhiU+hy1g7dEeREh4JgZuU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56561,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhpn4kCRA9TVsSAnZWagAAEDEP/052KsIYHLVRRWVAW6cW\nsyevPi21hAq+Y2ntNKL9Mz+1BfwkoroTnO5VCIVfT4bjs3EPQnsrJvCQClgT\nFroCDdZkmHkgJpMlkFUKQLr22eQl19kkgK6PkHvYdIb3WZr/oal8jZ2OrD2+\nHk4l27+VjKzNqdNRIVKTCIERAhc61y71ZeYw33pAlGEfJF1jgUTFz01xOJPs\ns5mGFwAuQ1KR2NaRLeS13m8g+uWbk+5lzR2b1jGnJI+5f58w1rCGBkhQvBUg\nmD5OiLCMg7GtO89XxegBoPmOdT68YI9jBa3/bq0PKLJT2Ua5g1+HtymKUmEl\n02XjBmOaYIhYI53FEOORuuUeMeTKUAwr8jp4WrJriPwsbkTOnyKFXw1TCj0+\neZw63xpCMu70nnizIsHix+JHIX7/p2VhxzXfqy0Zl+JW1b9kF7zLCdtooiVP\nEXd+1KfM3pQkj5mJMsF/XyY3TIyZ9MPw7t7FgeDXu7spYQglTXbcwuiQdy1t\naVtgw4rr0RKdVKtEES2a+JT7hhKC4w3wIZtd9uVMmTBY52/ElKKguZjhn08I\nfIafq7UPzvJY47cmu4LOhmu3e9ULZKrnkkWtBTM2tA4zdh9XdCCkLVlaI0s0\nu4Vjcq1exWeHH1RmKZEEBnloOlX1wdRy52GYzJjIexjVaP8FfvRIil98MVz4\n+foy\r\n=lEaX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"ae17f0f540ca817fbc90017d2128f85a8581f1cf","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.15","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.22.7","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-dev.16_1638301219868_0.9904680585405616","host":"s3://npm-registry-packages"}},"1.2.0-dev.17":{"name":"@keep-network/sortition-pools","version":"1.2.0-dev.17","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-dev.17","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"e9b7e0701b596d08c5621287cd095d9ec689f8cc","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.17.tgz","fileCount":21,"integrity":"sha512-lMnv0W0YQO76aqTasLw1dj36JjkaedgpgBJVX/Fxf+MnJDLxrFgK8AKuHsbVg0QdcMAer6XEnV0E/Cv0w7A9Jg==","signatures":[{"sig":"MEYCIQCihAsL6EqysqgRydcDxGcwMLDC86sa9gy1AnE0BM0OXAIhAJhUqu5SDaniJ6VKDigKD3wVbupqkNLeePICBKY1w6oX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56561,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhpn9cCRA9TVsSAnZWagAArXEP/R+ldGGr7Js+atm9YaIe\nO1Ly8dSpj/cUVDHmSu5D2mPDsSLn3KbyLLg4u/1n360BftbcEGHPREYqBHD9\neUZMiYDDyUxIPi5P054qpJlaa7EJNE6T5Ar8RQScophrcG4UQDC11WvrP8iy\nppE7ZxdcBri/jTMVS1tYV4bPXJCXiiVWy/siCz9VdM2bLDGR+ieQ2cOSjMTm\nb9AwoAUnvxqoPXQn9m7piK24/AEq/7t4aDjrc3rHFcvjcm0V66Lxa/h4UO3H\nVkmbyYMyT32cIlLREa+dGWGZ0QdAILPbWt9dqUYky78dN0d058TMWkiQsExM\nMCrqCtZSlkxyPqMq3SCGWVlqriQn3mQYoM0PltVmcfmhJlFLHqGOumZT2iMO\n/HtFsTfiy/Zigo0UMyc1w77m4FWKjhSjR7xmaTrT4LX0+1iEsR0mvJJ0vy7P\n97IgbjL+IE4v/qWMWT5q5OR7XqXgOLb8KmPNWZK4GPcl5+u7Uh7BZdiG1RWA\nNn4kP9GXI5hHD46HlFiMSEq/RDSOILzJJY43KmBsh/IwzJ703BqXMy3Nf3bQ\nKh8xHIDPEryUJNSj7Qsb9wAeJqVHq95uD7/cvWapUtQyI7B5XcVo1UBMrv5g\n9OppeEYgqoxsZ1zKqJJiYtTVzh1dQ81G6VoeutCvoKRY6yxUMnXXajNZCN/Q\nouG1\r\n=B1y4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"80acb5d32cbb8944b9eb48972df56b607912782c","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.15","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.22.7","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-dev.17_1638301532489_0.8788068957024593","host":"s3://npm-registry-packages"}},"1.2.0-dev.18":{"name":"@keep-network/sortition-pools","version":"1.2.0-dev.18","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-dev.18","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"b739828780a8ed67ed59504dcbfa2f19d3c6e194","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.18.tgz","fileCount":21,"integrity":"sha512-a6nP1+cz+LHDYNL9BLQcruoiX1Sx9So5PXvGYG4HZP7QzYqi8uQdTHzVCFwPG0ZrI0PVErs6hAVdOfGioqU6bQ==","signatures":[{"sig":"MEUCIQD+B4bqwbu1EB3RKP9zLhnthA7CR14eHtqfJJcc5Mc9rwIgGCy+4y79byw/G6jUQKgobXuPAWYpz61iUbTepIa+Cc8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56561,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhpoEyCRA9TVsSAnZWagAAKD8P/ip4Vh5ULqkHQB5AdiE2\ncRKIPXgmMyX1gSjSeaPcH/T96Ge32hG6v53JlLaUXa6zfV2tK/DGC2J+kYoB\nDvn2vsUb5mLNu4rwNqop95+O5OJd4Ln9BNcOTUU5Dt+cSQKeBN8O5au0alzd\nn+DghwK+O6dHqGc6tZ3nFPkmb3/7WOeUrJqHr1+11IlgYsBmA9MGEYCqIDfF\nv3AriFJCtVSQVltDab4I20sJwAja0IGRuADAVW+w6a9nXuuMISdK7IeEeVxj\nMK5vznnqNcSJBUGU0MaKmCh92NRILe0KtwP/OdQ9Ec+TgDR5AZFss8GjsRnE\nKtd/YW9jPabTBMZ+Lmj+iDB+jeVzlUq3hRA8/fLImFIcw9iYqxiVaswx9Dhd\nwU/aXHIc7KuuAlBB64ut97E9sH7nrx0L/Or0i7TEfu7ktGdGWe99s96gyrXs\nlsuaKaYZ1Fmrmcb0xdkGbZVEVuxqhzYZ5sc2IPSCTaIih9+e3Hy93N7W20zY\nPsnOygR0+K5c3LqMZj6gIGiwqxB3cY/qNSqfuZeXBNkJJXgpzlXTkBZjBFMC\na3XAzXm3VoqNdOt1BLaCN17dUVEgq1dq8eYGti6ghOvoojDy4oHAwWagZGAk\ncqUB5MEz2GeNxqWsFqSVG7TWvWbOn+enAz8RAcCn7Bot90disssurA6mAhlM\npNFn\r\n=mdxy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"9a26720395dbeb414c53529fd1c4a353054af11c","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.15","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.22.7","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-dev.18_1638302002084_0.5629093722544884","host":"s3://npm-registry-packages"}},"1.2.0-dev.19":{"name":"@keep-network/sortition-pools","version":"1.2.0-dev.19","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-dev.19","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"00268123a4abaed213863c97350e5d3f90026d6a","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.19.tgz","fileCount":21,"integrity":"sha512-E52Z1urVlIIw7P9vXaDoUZ1hsrA4UAsdIndS7otIGmCGv9Nt7pT8QHEH/RE+khAt3W5whwOD+QRBHEwF6xlN/Q==","signatures":[{"sig":"MEYCIQC/Rbr0LmQpKIX59m328doQSjRvo2dbikQoolkIqjC9ZwIhANqEw2eHDGTus0JHD7KWlaxOfgOLdyJIO6EDVqK0eKIW","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56561,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhpoNECRA9TVsSAnZWagAAkqUQAKPY2j5JxfLu1IRpBVI1\nxkpbgXPmDd6zh+DnAvvji82wqtW+hkZ8URydtEAQueXU3Dc8RAuSrhEu8XvR\nqFCt556ifzo1nMxnIDEfeNlD9zPoj2KFvJDdZV3mPFKSH9MtnI73eOlbAnm1\nKPpX6Cg9xhxN3Pz738HioXDIrnY+cS+vPLwwhsEwPNsPHQ1voBreXvlrYhgp\nTGh+f132/LYk/L2h/Y3NB8+b5/SyFbTdsfoU/pXdKgi3mBpHuHy0apJkoWS0\nHtERptWnq0ojwiWpSBF/ZYv2ulowGUh6Ky+UqcFdnAUcAktf1L1nGodAzlFP\nhe4LIf45IWVOVo3on0yLb73SiEHunND5OLrTq4p+qoGh+KJM04Viv4D6angY\nwhgmG/Zs1mnjgQNrXmuwCMWfSGdsXDtPWYuvsMFMrs0E3dZVLnt9osMfjvYJ\nP/yItJcyiVf0kH7oCQXOyS+81IoF58+EILWwCrT++h3Q1oYv2oW2Ui5R/Bpf\nuXsLCD+qNZ2QCX+vrUMAtS+eqS1+uh9LKx2AZCC+R/mgnU5h023wErO7yPUq\nNN1aEK9ZmMab7Je/osd+Kn8/6R3Ct0xqRihf3PUDt1N/BBFm9hcWwDAoNTyV\nRZ9Eh7pYkzb65VjVCPWvnfkfb+WzqKLF3NqH51ZzUKpFyNeR5JTzzv6eChx8\nOPP1\r\n=9PBT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"8bec306b01f9d0ecda55e99437c5f91f07be2eb1","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.15","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.22.7","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-dev.19_1638302532584_0.021057506177835084","host":"s3://npm-registry-packages"}},"1.2.0-dev.20":{"name":"@keep-network/sortition-pools","version":"1.2.0-dev.20","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-dev.20","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"a4457da912cb34d899f3e41bb0c04fdb168aab4d","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.20.tgz","fileCount":21,"integrity":"sha512-knKe26iNiSM5PJglka4GFZr+viqobD13jiY4GM1TyOqBZBzB4IK4yAS1bFRwCvF1AZZFBuYy6nzJUeaMrjZW6A==","signatures":[{"sig":"MEYCIQDxofg+TGCWAIuXJVNgzHqJxH/e3RNdf4ANvP4zWgA7bQIhALU1BgsBnNokh3DupSA9lo3cLLLq152sclHL45COEiEJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56561,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhpoSbCRA9TVsSAnZWagAAQeIP/jh6Xp3hS/eiv+0ZotuB\nnJxFS7I56lhRkJZmGCU7e+o0rbt4X88G80lu3QlIYJmpawwzbLGviK4Af8iK\nf1EU4CvH0JGt0BFGUHwazOcApgvt96Yjg/Q2NXuRx/s6kOve9p4rHFlRaxF3\nrNo45x59uqFSmKMUKEJ9bAp2N6zYPpSnFNearVO97z567EfougTUmNSYzyPQ\nS2iumROesHFiYAM4odhWfInACL7y0PhrONm89blQRi12CZ4Ow0khtkolDV5/\nix2MGlP2o0ubM3WR6RtQwDX+7z0ZkEzBnygnVlYJOVqajX6AcMkEDgY3UZ9C\naCpsVGOy6HoDNd8OT3vKU8a2naXZHqtmK1T17lU5u2QLIZ8UO924RtbbuYNp\nmTxklkyg9ZT3MI8NyYsNf+LkVdtmn7WicKR9jwJ7sBaWvityhr7EhxUm9jT9\nRJpbMIkjiW9D2jGR8q7k78DTejRIk/O8Swd70JYmfO+j4kP27UenU4sYIb5n\nipLGF/ks1U8BOW9PVrlMl5dx4GAHY4zTAYTTsWIVX+u7XD26DGN/bmAyaquB\nrca0fTjsJ6J09i3V/IWU6dx2qkc3xWDwocjWeqOaESNkMaYUJxTuksAvdM3R\nJCSWapt1yyNtDf+EDmGyB6sFtgarEW3qsJOI9zAbr2eduJfjEgLB3KEOcyTk\n+VPU\r\n=HS+2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"2981f5289b5ef0ad605a2bb2daa7ff112dd451a9","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.15","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.22.7","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-dev.20_1638302874876_0.19677992573653347","host":"s3://npm-registry-packages"}},"1.2.0-dev.21":{"name":"@keep-network/sortition-pools","version":"1.2.0-dev.21","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-dev.21","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"5bd711014b8ef03306648d510f3be06583d9ebf7","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.21.tgz","fileCount":21,"integrity":"sha512-j2KkOT1ifyJZ97AeAsFzw+DrfLfjRr6SbrOZlPmAoskfUsJ5hBy285y9mqcLWs4YgUPn6HGZcx60Dt/DeimFwg==","signatures":[{"sig":"MEUCIQDKdDVYZKBBWJ/w97PzW0pwIVg5KLv6ud9UpKWACw+sxQIgTw+q3FHNUBgUjLGaJS9uRIdbtGEkKu3iI78tjmh9kCQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56561,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhpoYbCRA9TVsSAnZWagAAtNoQAKSLgUCxqi9PwxrMENYH\npYKks7NVKVee327rsZu+QyNRX/qa6uPOkhq4WTyxwP5t8Dn8mv/hJZX67CuW\nfE9s6NNYTYv3uEWsa8sPocYcCn1EHjVv4+Kb4FMIAHwdI2GINHB7IJgZzYGV\nd+4DbHwojiy23QzrJ65owioKMrJ7pJbIAOtFHnoCUYEnHqjUH5Zu4UaWLrMa\nHmSVEqTivIWry4kRS9t5UP8qCEWbGAHKy0EAaIUFA2BAZGwjg3VpwcW7TY+T\n+Dx24M6gsEh3PDqpaiiBzOefwVFhI+0P/nakhlxFaSMoyRxhgKZi5/VsfjJt\n2swkMgy23MbY1ftIiAulCHXuc8c2eZFay+APyuG5h9DEvnDFhrpo1Z28db84\nRsOadE/fQGvumi9SSCSzpiThenxnYSq74L7PoOHXe7A4KOW9whT+Amb0jvMY\nBS5kxgKjowJe1z8xglPMqhX0afDKp4tC7nEEUCKrbA4Ky7Ggd03ThMgrZytn\nk8p4Qg7QY65he2A44nfQ34VUj56o4+mrvUEitSY4Fm9EbIA1GhSoGZgRjQvk\n1IbeMeM9TZCepOloaGzyLj7IvfdqG5UUCxJOcRxI8se8uZ/+SBovB7ne76a+\nZSOHzoDHhbKuLEhgd3ZIGSo0lJ0OlBgx3lrALZWL1pVg/pBYNV3N8Udezk1I\noxKk\r\n=ohye\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"d5a7a99a5c0c4ef18337c5cc0df37b6832596d7e","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.15","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.22.7","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-dev.21_1638303259350_0.6313461883273686","host":"s3://npm-registry-packages"}},"1.2.0-dev.22":{"name":"@keep-network/sortition-pools","version":"1.2.0-dev.22","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-dev.22","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"c3e51077d168c90fb97b218081d948a4ea93c335","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.22.tgz","fileCount":21,"integrity":"sha512-ZtJICt4JXHR0S/rw4azsWZGjcwGEfbeFuX42n6IeJzxRUFjjb1JV3HA4/x688KgrB5kRwM7QCwOeYiQB4YWuIQ==","signatures":[{"sig":"MEYCIQDgI0NrsBUm6eGCRAIW2R2wYcK6YLCwVa3RpVLjY5TL2AIhAPjztbRrPdav4q8e4fQinGXxlT643ePOEBpXDWLe7Syu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56561,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhpoguCRA9TVsSAnZWagAAluMP+waG3bsBwH43BKxmjVcN\n2nazlxp5TSNUERvaMGcNeQp0pv8nlDyPQkL0s9bJdy55xkSueuVn+7Pphtug\ng3vuAemWyY7zLYXRWKYCY47Y/KfHcdWExsPhh0sojVC3kiq0BYgEoMwJcJMy\nXsMcvq/sAqA7xS0Xi9UCgJJrZIQYzDMXm58v8PCdyWAyR/43GdfoKe+FEx5i\nOZunZjTde3cB9uae+EDt78Aeh0fnxV7zOZVJmud8ZBYj70AKWpvToSdsH71o\nDpUOz4SCJXpamj70BqqOBQ0NJ4u+wJvGKux5kGcdgtbL+CXyCalBD9FG+WwP\nfzf9EJehrS+trjv0CORjyLQT1hS+m+b6h9GUeV+Ii4dreajz+yC4Zj953vGg\n7v4x+LgjCVSGKrXbQEQFZ1FPxGCw3mwKp/G/z01U5O/cyWf6cDk0riVCN1AA\nTgpuk/vMrDvO5ouJzJbVfU8Bp/NoyxQd1/GgTE/X1w3Lf87tyPZUqa9qHHBh\n+m302in51zt3x775V0w4EMiktrodcpevL9+tSyjqxAYNdGHdYBKDudEOj+ge\n6jK3FGe8H4jQWADL/F69K+Wshc9v8kZ87s6De6H7bpTpKeRZvF9yL850jeL2\nrbdp4jtbLx0/Tr7zznkQEM1w2atpRtmV0SaCVhRgn+y2DLB87wiK5twPKEiJ\n69GA\r\n=w5e8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"a2e0699d2aafcaf840e10456d87e2e0698bbad6a","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.15","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.22.7","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-dev.22_1638303789935_0.34990229615019675","host":"s3://npm-registry-packages"}},"1.2.0-dev.23":{"name":"@keep-network/sortition-pools","version":"1.2.0-dev.23","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-dev.23","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"aae663be5bb1f2604888f1ca7e6205c220a465fb","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.23.tgz","fileCount":21,"integrity":"sha512-BdZyQiz3EERM6y4d2waExDAeX8HiDt7kqXJvdvJXNOTN7YaO+0Pm8RNLcyRI9Sps8OLq0VVE53uy1JgwRXSZ8Q==","signatures":[{"sig":"MEQCICjgC0UOGywxu1+4z1sQ+EYT8OO/KCfgYf+cjUUr7sltAiAZ8TryqHYedaPzhqnkeFKzlEFma9+ne9oNmn9ergBksw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56561,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhpoyDCRA9TVsSAnZWagAANVMP/3FK995wpfTNB4T402sf\nk7EgHOrd7A2+gXaPWVyAxctHMF9+cgvGkDeVeSVmVC9Hx0OuM6yQVxwgglh3\nFq1yktRTdIEKuGrzBXAMqYiaAzdhL8HLK/FkB3gaR9vGuYj0OPtL6fQGsWhJ\n2SDy7Sjme8EcLBfKj17sE4VVTWBUNj+BUPXPwC2HS6lNipxbURb+oG2L3VVJ\nK4DzHwJglCsfXQsYZDHN+4/06R6B3LEpwtb4aOIj1PpdoRRDtZbqT8pPaS2h\nChUammLvcef30Y4bOt3slUOzC+QIonlJXk1LuJ6k/O0AjB0+HakTmYxG4oLp\n7P++vy3m2t7BwBJFDJecLZBF7WNzL9mppQtfddLqc4Nqk51gwd4ds69gtJ8S\nd8Tf8gCn5fN6b3mgyAp7AZUSOcnj8DDqLOTko6t7Q755hAomhDdMP9OXwy/g\nZhbjnP2D/upHKjMFGAcsVZFDjfwG/OZMmWEZyId2XdH828CaJRtljpNZWElj\nKA0jsTNrz+QsOGXQ6zF6K56p31NKqlRmdkv0v8KNnl6ZVShqbswLt1XccRJW\nxz5ArspBx//4VPs/vrMYpfw4fkXgAqFffzzRbd/jrjz74bfGNVtBlUw6tJdr\nunOPw29B/1b6c025NTvmDpFxmZFU3M1zY7KZnbc9pF73c9+jJE26Jw1TPye2\ngEeW\r\n=aYrN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"9ecaacac71d999c9d9974c2a16de026fa7e6196d","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.15","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.22.7","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-dev.23_1638304899247_0.8474440970019488","host":"s3://npm-registry-packages"}},"1.2.0-dev.24":{"name":"@keep-network/sortition-pools","version":"1.2.0-dev.24","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-dev.24","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"ed2bd34297ba3832d8981f2f5705489caece2115","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.24.tgz","fileCount":21,"integrity":"sha512-k6PgZ3Svv4nCAP3bE3jfPoz7V6WUf9f8qKSrlMUGB6TkrgoSwg7I9mrC5UCawTrd3QL86FI/3hZt+4FJvZt74w==","signatures":[{"sig":"MEYCIQCS0eLoh/sETTZfIiffLjkTzKlo2N6coZ4HfyWeGin9iwIhAKYjZlVRso93/Hetex41dJ6zrBnavCpkbKk1EDnzGdJS","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56561,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhp8XPCRA9TVsSAnZWagAA0DAP/1nGsokjUmKn2sesy1Lr\nPOS3ds4Dfbp/7xgaYHbx1gqWr6sVTF8thY6K0yhgQa7vWB+DMvAx+JZ5Jvi6\n9qDk8PJHlnoLQMsFXZiUI7Up8KS0RqwGQ3OGOzzYD7eCthB7pW8xJVTT9P6x\n4fTjprrDTK/lyp90jrav4y10kSVmWIDAaNCLljdcl/pS4OiSFpike+6po8Jf\n4il2YAVtTGJCcOdd1cyg6+/nzeZ58YLoJFo/vF5z9Im026TyOT4U0UTM6FL7\nhNIvRDk1/i3IWToH7ZY1LtBEvrC+dXOF/9FMyPxP8nbOrU5vEX/McQsuUNWx\nXtFdqKAsawNcVx6NJdVKZZXvGhn9xqlVzFgJVB06a6VPgAfvLeu6JXg3Byup\n0NvwMtMikhxNRHAFnes2ZhdAo7DbUpHRT/YMMLba8FAqm6wJOPnLCV83BbDJ\nSf+SdJICabsy7db4iATjKdnJhhMIk4H4ELJ+nGkxQujaIEzNLJy/fkM4cSCN\nGa7HtmW0Gd4Djp+iWdqebkpDLk50GLnazRhr7jllNOgN2HesDjdc6eWnAEEt\nNpJYA7ICt6NtTqg7TP5b2/8/9Vk7LOc/Y3mUJLIpWmrxELT8bVixJ6TjILLE\nUr/c+NA9500vHR0ETHBfLlb87YvOLF01B78J6LtAvb2xxvqge5+O/zak9JZD\nzbAm\r\n=AOLL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"ad5e3ec92ccaac0d4858ee79cee759f092a79837","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.15","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.22.7","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-dev.24_1638385102946_0.5783081672761001","host":"s3://npm-registry-packages"}},"1.2.0-dev.25":{"name":"@keep-network/sortition-pools","version":"1.2.0-dev.25","author":"","license":"ISC","_id":"@keep-network/sortition-pools@1.2.0-dev.25","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"832f87d19f3538314bc01b45aa61e2b9639fe045","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.25.tgz","fileCount":21,"integrity":"sha512-J7KyYiqi1+vvKGv1lPMevAVV2J9H1p3uKkOPQciXFwUFrYF7aBgpzZ/i3dSEgBOPrUBdDW74mqYg/9pkY3cXYA==","signatures":[{"sig":"MEYCIQCerTRJOP5NJ4L7acb7wtthlIV2xSU4dARz58uh4wL4/AIhAIahwf7e04ohleb8MOgpA/JMWYPAITW8B1dDM6OQQc+p","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56577,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhp+J0CRA9TVsSAnZWagAA0PYP/0XVzBsDuLHoDqlZHSJf\naQlv/f0dA2Xbiw+MgDswB8EyAclPOxTZ2hbLSIeMOR2rhy073H+gUbw3OK+V\nbiIc4unHEJjMTJG5ZS6y9MB5rUbnQuWfej7s4pLD//ylfBIs4DcYaG+cHd0H\nA7y8nO4ctG+cY9OHqMVslbHq3RC7uMif03/yVJCnuCtTi8IATJGhWgeM/Kyh\nXQQglTmQfWPpSrjdLbDCU/PxihQ1QbPjwypM0rmGaTGMmwkExxgwGw9m8Gqg\nEESC0oh5iu5iKWwoTdc3DF8BSKDuKSN7i5a2pCG8gZ2fnhYea9qXr5K/3bAy\nqD+wqXi9gbM1FjQ4uNRbymaPlXRJFxElVWrWncOEZ9e+Y709p9CtnDeDWid8\nxXQvm+gfoyhnCflcTHy6AQO7tfxDMic5zewWJsawjXZu4881XhXyubLGIZ4I\nhp1ycI80NPzorxSDsdJ+as5OwC5a0r0ldWcBcu9ZI9s1MeVe40DBQdaK7yeE\naoFidLU+KkzjKoiFfb7z/m1p6KGASYKazOFGGBlRr92BH+kSuTqpuueama6H\niDvFoYUv+PbNJc/Acq1nyhvHwnZ68kHaD6QYNrec4HxT6EQH4hZiXbxmfmEp\nY2FyVARQ7pfxlZN3S6RGNonOKGky+DJjwpM6XoKydtDn0I04/vbxUkTQZuiB\nKg0j\r\n=vbia\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"6f8959b60a15ca737fddf0d8a2c3e82db9367147","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.15","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"12.22.7","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_1.2.0-dev.25_1638392436719_0.4979549109131114","host":"s3://npm-registry-packages"}},"2.0.0-dev.0":{"name":"@keep-network/sortition-pools","version":"2.0.0-dev.0","author":"","license":"ISC","_id":"@keep-network/sortition-pools@2.0.0-dev.0","maintainers":[{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@keep.network"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"c1ec90962ab809e224338c8501aee4ed6c3c4a4f","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-2.0.0-dev.0.tgz","fileCount":21,"integrity":"sha512-zOyIQ2g5n0wCFlyKktyrGxNAgMGw9KgGYOEz1e93+n+Hs/3wl2olbW6xI5ZJ4lTETkBq3gO+KtkQysHc8rglBg==","signatures":[{"sig":"MEUCIBIet1dVVwE7N+KprjhKuGgSN58XAF3qY57hazlJVDBrAiEA9ZBCqHRpqK/NDZc9+/8i9MVMSZk2ntaMrx07vXt7vOo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56576,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3qyzCRA9TVsSAnZWagAA95cP/1nf+EdZGBTMUrdrNLmu\niksr6kwGC3bv6nvz45ZzGD9f75K5QjZ57cmC2hgOhTbIWH5L5gg2YT1IAm1u\nv4ZseyfTGAzw7xKQ6leQ2lrdslPFC0Z2OTLz7f6/MXt06WmSeZ7F/iRHje3/\nZVd82p+x3OOhTbpZT/WmGqAAYy4pknuOTH5JBOk7yZbAo37OcSTmjY86UnOk\nI2aPFFfpCBaz1m6m8sFQKaFfaB1NJyMB3+xesl7CbMSp2ITkzp/Po8ciSHSL\ndluiqV7xQ2FD5Pc6IgAFdbZyArQSnDS6+4LYCPGYIqg2AjmyhRqe6ihVi1Gl\nQHMA0AOA1ILCUDazgMqZGw8KYsIw/Afy+aTBdYaqbqF6S401Xc977duuEaVf\nrcZMM8OuSt7yq7qi3JpncVHUN11sPVzsDCqv2HYY9PoT91J7dvpOJA2XC8A2\nDpDWE5MLqCVuNS/D4NECEQk/Ehs4057zoJPKCvuRwe6GOTGSw09RuaTcz8GF\nF6iUwpN3yPj4H8mAymqYx6t3rjNT0Xj1rqnoySDjFMW8yBj/qrCTCJOhfGIY\nvlsdZfq9Vim7mHGfYDNZZr8a+jiRFhd3GhSdenlccBkani74+8g1cWJc05kg\nQaNHbYABNkUdNSJRZPCBWThUbI6rEetRTaWYtENgXVK19WHvvwUDjIRWfr7q\nvtg/\r\n=E2QM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"12377eba112acf6b81c33cd82fb76b83a47fc188","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.15","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"14.18.2","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_2.0.0-dev.0_1641983155115_0.9974794621332805","host":"s3://npm-registry-packages"}},"2.0.0-pre.0":{"name":"@keep-network/sortition-pools","version":"2.0.0-pre.0","author":"","license":"ISC","_id":"@keep-network/sortition-pools@2.0.0-pre.0","maintainers":[{"name":"lukasz-zimnoch","email":"lukasz.zimnoch@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"b8f1ee622b509d05af1e8c522be4305241ee061e","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-2.0.0-pre.0.tgz","fileCount":21,"integrity":"sha512-opxQ4iBdwiVmCzYkCdsxt+XaCHyVfPnKnnFxhxkFQ7cMQS/TT8pQ4m9SHIJv8YlXy7KAp7T4KDgtQ9tuoVbu3A==","signatures":[{"sig":"MEUCIAcC5N8XNOI/irkcGjjs2xtSmacSXarNATFgqLVrU9KyAiEAhGjC9gawH/v+VWkjORNzwq0T5SYJEPmarFCagLqKROU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56576,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiIgQVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrA9Q//eOgHWmNuzTJEwyBArgSp4Hs/v/mGnMvM7NszysXyjkzJr+NE\r\n1BqvXHdfMsuvDw5U+nqnlSfZlEF0plpdVE+AnT5qBj2kRqGD2sgyuc+pui7+\r\nV3etWsFsxuc8Mtv+d9S6w1WpzT9mWIQL3t1pVOmL+mYvlzRvD3ou6YxxS7zi\r\n9GcKBcBQx8oiMs2NbmtxRJHzBuW4VeILsob6gQRJHDJufH5PQt3B2fa0U2C1\r\nSspY/ey/lBKWAh6shX29njKKEogkyinh9XGFnrwS3BFQRZKYhl5w2tMPfeYP\r\nHzOItsc36b31LDeOf/UlenHuvQzbzcFUeU9HmYFK+qXVxZWZ2dYGdkWHXhRr\r\nqJJCm0ZkT9UFStZQ9DPIP2Xw1zeXoSgvLiOCChEIgKe9mEC/PF83ObfbOIQm\r\nI6bv+WUhnNgJAl7gmpzyuok8ikRk0wfbMzAmGrNceSBBB2kuZbz0RmJyA/Z2\r\n/s50DLAFZqPOJQ+eGFTKq6pY++6hgYN8po6TEmPEX7VuGDiYRmm2iunZpJso\r\nLXknrSL52RsFRX6nW3Npya+hPsnmzF78JMRFxx8vGs29V96kBGrgsaxnUgqt\r\nddR21bi5zm3JQiF59VObfgiRrn62pyDPYHM0VCTOJbre1sZEiMUbd4+4KXyF\r\nNlrlrLYXvjajpNDY2KXInDGsxqVeWPZ0xqo=\r\n=0a/A\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"readme":"= Sortition Pools\n\nSortition pool is a logarithmic data structure\nused to store the pool of eligible operators weighted by their stakes.\nIn the Keep network the stake consists of staked KEEP tokens.\nIt allows to select a group of operators\nbased on the provided pseudo-random seed.\n\nEach privileged application has its own sortition pool\nand is responsible for maintaining operator weights up-to-date.\n\nA sortition pool provides instant selection results\nand is less affected by censorship that the ticket selection,\nalthough malicious miners can still censor protocol result submissions.\nAdditionally, miners and other actors that can predict the selection seed\n(due to frontrunning the beacon or a public cached seed being used)\nmay be able to manipulate selection outcomes to some degree\nby selectively updating the pool.\nTo mitigate this, application using sortition pool should lock\nsortition pool state before seed used for the new selection is\nknown and should unlock the pool once the selection process is\nover, keeping in mind potential timeouts and result challenges.\n\n\n== Optimized higher arity trees\n\nEven though logarithmic data structures are well-known,\nthe particular characteristics of Ethereum smart contracts\nrequire specialized optimization\nto make non-interactive sortition viable.\n\nTo enable weighted sortition,\neach sortition pool would have a weighted tree\nwhere each leaf stores an operator\nand is labeled with the operator's sortition weight,\nand each branch is labeled with the sum of the weights of its children.\nTo select an operator from the pool,\na pseudorandom number in _[0, W)_\n(where _W_ is the total sortition weight of the tree)\nis acquired and used to index into the tree.\n\nA single storage field in the EVM consists of 256 bits/32 bytes.\nData structures on the EVM are naturally sparse.\nAn implicit heap can eliminate the need for pointers\nso the full capacity of each storage field can be used for content data.\n\nKEEP tokens have 18 decimals and the total supply is 1,000,000,000 KEEP.\nA precise token amount would require roughly 96 bits/12 bytes to store.\nHowever, the minimum stake required to participate\nis expected to be in the region of 1,000~100,000 KEEP.\n\nInstead of using the exact token amount,\neach operator's sortition weight should use their staker weight\nas in the Random Beacon group selection.\n32 bits is sufficient for all practical purposes.\n\nA storage field can hold 8 values of 32 bits.\nThis gives a theoretical ceiling of 4 billion possible virtual stakers\nwithout concern for the exact distribution of weights.\n\nThe actual sortition tree has 8 levels,\nincluding root and leaves,\nwith the following number of nodes on each level:\n\n- root: 1\n- level 2: 8\n- level 3: 64\n- level 4: 512\n- level 5: 4ki\n- level 6: 32ki\n- level 7: 256ki\n- leaves: 2Mi\n\nThis means that we can store up to 2 mibioperators (a bit over 2 million)\nin the sortition tree.\nIf the minimum stake is at least `TOKEN_SUPPLY / 2**21`, \nthe pool will always be able to accommodate all possible operators.\n","gitHead":"1634eb4b3a167d9a325c6b9f84ee86e46d580b6e","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.16","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"14.19.0","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"readmeFilename":"README.adoc","devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_2.0.0-pre.0_1646396437278_0.2070619750616831","host":"s3://npm-registry-packages"}},"2.0.0-pre.1":{"name":"@keep-network/sortition-pools","version":"2.0.0-pre.1","author":"","license":"ISC","_id":"@keep-network/sortition-pools@2.0.0-pre.1","maintainers":[{"name":"lukasz-zimnoch","email":"lukasz.zimnoch@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"14b724afd370720c7e58cba9d2ce70f1bd7edc91","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-2.0.0-pre.1.tgz","fileCount":21,"integrity":"sha512-pPnYNXwSmN94LCbXZaQA6rq6Pmms4qHCxDWKdmcJcxGTmRi/ytFipcnWrAWG66W2/X6j1gZwjXx4WwZR3fW+Ww==","signatures":[{"sig":"MEUCIDGVpnGUjBdU5NhZbUcTaafmo+2YsjZf16ibOzTKB0X4AiEA9v5+iUExjzX1meTgFM9rJwKTep8YFMvU6FnLBZgLWCA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56576,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiJ3NDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqZBhAAonl25JYprE4if0UUnSPtBKiNwwo/baEuyRF8X6IJV76g274e\r\n/O8mPeKqqgWnz8BT3dpuFVxS43m2tEUL+O5XjaVQKo64Rq6ny0ZnnfjKWtHm\r\nzIQbb5gloeb/8m1UCUXEmCqX7B9LCPBotN3l4xT3JcbKdbXpeVDnuXEXbFU8\r\neeW9KaZUomOuGFTtTNgFPbV8MtRClK193Pt6TUhwEySfUV5iKdWmLWg3Inbr\r\nzSaOcUkBKFjrloswNIPu7sVAr7c+tadXizd/3WMB9M00tiXORwaQtmQC5DjK\r\nG/viVYMehLJYVG0mvCWsNM4qV+sEmd/LwVtfXgcyGX3H6UpZnNVzBKhtg+eT\r\n+lp5AnNXbI8NC7iqfWrAdpEE/eEp1pDoW/jtnOeLFNXc6x8otBhR2G/Yne0O\r\nHB86UR71qe7plQTfGBqEbnTGlX7n0i0cu8MFOsxRqxlXJqXaS1HoKkAqxp39\r\nK/WUvzdgMMevPGnTegKJyr6Z6/LX/U5UMBRtV40fCHSnCPYIZOi0QPgmytxi\r\nRgrnItvOFbmn680E4/B8uWDTXZ+rEwDMIDmNScA2qWuWufcoUNrXbrHbzMzy\r\nG3oO9soyvijethm4YmmZF0i4S8Jojq/zzLgd5ywW/aNSlmdSLkeerjpLOmyW\r\nRNSP7YnYgeTJuo/3UGf6dossBb/omxfEXNk=\r\n=sf21\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"readme":"= Sortition Pools\n\nSortition pool is a logarithmic data structure\nused to store the pool of eligible operators weighted by their stakes.\nIn the Keep network the stake consists of staked KEEP tokens.\nIt allows to select a group of operators\nbased on the provided pseudo-random seed.\n\nEach privileged application has its own sortition pool\nand is responsible for maintaining operator weights up-to-date.\n\nA sortition pool provides instant selection results\nand is less affected by censorship that the ticket selection,\nalthough malicious miners can still censor protocol result submissions.\nAdditionally, miners and other actors that can predict the selection seed\n(due to frontrunning the beacon or a public cached seed being used)\nmay be able to manipulate selection outcomes to some degree\nby selectively updating the pool.\nTo mitigate this, application using sortition pool should lock\nsortition pool state before seed used for the new selection is\nknown and should unlock the pool once the selection process is\nover, keeping in mind potential timeouts and result challenges.\n\n\n== Optimized higher arity trees\n\nEven though logarithmic data structures are well-known,\nthe particular characteristics of Ethereum smart contracts\nrequire specialized optimization\nto make non-interactive sortition viable.\n\nTo enable weighted sortition,\neach sortition pool would have a weighted tree\nwhere each leaf stores an operator\nand is labeled with the operator's sortition weight,\nand each branch is labeled with the sum of the weights of its children.\nTo select an operator from the pool,\na pseudorandom number in _[0, W)_\n(where _W_ is the total sortition weight of the tree)\nis acquired and used to index into the tree.\n\nA single storage field in the EVM consists of 256 bits/32 bytes.\nData structures on the EVM are naturally sparse.\nAn implicit heap can eliminate the need for pointers\nso the full capacity of each storage field can be used for content data.\n\nKEEP tokens have 18 decimals and the total supply is 1,000,000,000 KEEP.\nA precise token amount would require roughly 96 bits/12 bytes to store.\nHowever, the minimum stake required to participate\nis expected to be in the region of 1,000~100,000 KEEP.\n\nInstead of using the exact token amount,\neach operator's sortition weight should use their staker weight\nas in the Random Beacon group selection.\n32 bits is sufficient for all practical purposes.\n\nA storage field can hold 8 values of 32 bits.\nThis gives a theoretical ceiling of 4 billion possible virtual stakers\nwithout concern for the exact distribution of weights.\n\nThe actual sortition tree has 8 levels,\nincluding root and leaves,\nwith the following number of nodes on each level:\n\n- root: 1\n- level 2: 8\n- level 3: 64\n- level 4: 512\n- level 5: 4ki\n- level 6: 32ki\n- level 7: 256ki\n- leaves: 2Mi\n\nThis means that we can store up to 2 mibioperators (a bit over 2 million)\nin the sortition tree.\nIf the minimum stake is at least `TOKEN_SUPPLY / 2**21`, \nthe pool will always be able to accommodate all possible operators.\n","gitHead":"5323509946e34c1c2605d63f4ed27b89117feae1","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.16","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"14.19.0","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"readmeFilename":"README.adoc","devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_2.0.0-pre.1_1646752579485_0.8137529659197582","host":"s3://npm-registry-packages"}},"2.0.0-pre.2":{"name":"@keep-network/sortition-pools","version":"2.0.0-pre.2","author":"","license":"ISC","_id":"@keep-network/sortition-pools@2.0.0-pre.2","maintainers":[{"name":"lukasz-zimnoch","email":"lukasz.zimnoch@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"67b6ecc8027aaa4df41274e8b391d7543ef135c4","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-2.0.0-pre.2.tgz","fileCount":21,"integrity":"sha512-cDwavf6IJU9Seqte+C8yeYpAY+ZtHzOsIYtWI4PLud1y2XWvf51yXaGVO4g6IFpjsjE31LnyHu4fnfgMLb9wPA==","signatures":[{"sig":"MEUCIGkDdwyXAiTpjiWdcSXJJvszoiMwZZtnySkPrvhUkuPQAiEA3xYm1/K1GN59G1VMEnD6QcR+kvNUdwKE+RPqZaEYbEg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56576,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiJ3UeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpBnhAAjx7ZDvtzPbRsu0j2yHZxfvH4Jpui1IgjO1HfgF3u3HbRHpRl\r\nY6HD1bbr+RSRq/O4Ldg3HVyeXl+Hp6hVoBf9bUECGMORTDU4uRX65viMExGk\r\nEJ0GE25YAurE4C1RY+zB6Hqi7XZy7mxGcJZUqrVNzyuIR2oqmkgGjF7Rar8K\r\n0KeDJ34NH1SduVLjjlWbtZJ2vIdPktSGYD3vgrLeJFlhpw2EjBO9r7s923k4\r\nnU2k294vBIvJREkp1M613yHTNNUfCs9iE48nyit1qUP9xmn+UGzcRM2vRVGA\r\nKSe9FNbdbl1X21TGtZ1Xo92xZ+d9m3wRw4w69jkT2AL6+HmGKSh9EryQWazP\r\nwHSJD1iRKoOcqir7X1+XQivT1RnIezqpJOjNlpY6OLOIbvt/bo1+iGg2tZGi\r\nA/SSeGliXqw4DgdPOz7hd2YWvl4NN/fmAFJljDlxo6ihQHSBcsIh8QJ5OT41\r\nlxJx8a42/5IzjprjU010HcIR0I9//cnxLSnA8o1wJMfsedCGYtixM97LiTCe\r\nRCtHKBxpZWquMAb7RHKr8WrgebwC/H1zrRSM/TjYVbCZUlcMzORcspMLelN1\r\n4L1wk16YxlI3SNqVIIhkfvuoqR5ZVdPevEIXLc5wNFCOK9FX0wVCbkJfohCB\r\naUoUNbFScifFfPmBOMH74IpvrBFskn2Vg2Y=\r\n=Cszg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"readme":"= Sortition Pools\n\nSortition pool is a logarithmic data structure\nused to store the pool of eligible operators weighted by their stakes.\nIn the Keep network the stake consists of staked KEEP tokens.\nIt allows to select a group of operators\nbased on the provided pseudo-random seed.\n\nEach privileged application has its own sortition pool\nand is responsible for maintaining operator weights up-to-date.\n\nA sortition pool provides instant selection results\nand is less affected by censorship that the ticket selection,\nalthough malicious miners can still censor protocol result submissions.\nAdditionally, miners and other actors that can predict the selection seed\n(due to frontrunning the beacon or a public cached seed being used)\nmay be able to manipulate selection outcomes to some degree\nby selectively updating the pool.\nTo mitigate this, application using sortition pool should lock\nsortition pool state before seed used for the new selection is\nknown and should unlock the pool once the selection process is\nover, keeping in mind potential timeouts and result challenges.\n\n\n== Optimized higher arity trees\n\nEven though logarithmic data structures are well-known,\nthe particular characteristics of Ethereum smart contracts\nrequire specialized optimization\nto make non-interactive sortition viable.\n\nTo enable weighted sortition,\neach sortition pool would have a weighted tree\nwhere each leaf stores an operator\nand is labeled with the operator's sortition weight,\nand each branch is labeled with the sum of the weights of its children.\nTo select an operator from the pool,\na pseudorandom number in _[0, W)_\n(where _W_ is the total sortition weight of the tree)\nis acquired and used to index into the tree.\n\nA single storage field in the EVM consists of 256 bits/32 bytes.\nData structures on the EVM are naturally sparse.\nAn implicit heap can eliminate the need for pointers\nso the full capacity of each storage field can be used for content data.\n\nKEEP tokens have 18 decimals and the total supply is 1,000,000,000 KEEP.\nA precise token amount would require roughly 96 bits/12 bytes to store.\nHowever, the minimum stake required to participate\nis expected to be in the region of 1,000~100,000 KEEP.\n\nInstead of using the exact token amount,\neach operator's sortition weight should use their staker weight\nas in the Random Beacon group selection.\n32 bits is sufficient for all practical purposes.\n\nA storage field can hold 8 values of 32 bits.\nThis gives a theoretical ceiling of 4 billion possible virtual stakers\nwithout concern for the exact distribution of weights.\n\nThe actual sortition tree has 8 levels,\nincluding root and leaves,\nwith the following number of nodes on each level:\n\n- root: 1\n- level 2: 8\n- level 3: 64\n- level 4: 512\n- level 5: 4ki\n- level 6: 32ki\n- level 7: 256ki\n- leaves: 2Mi\n\nThis means that we can store up to 2 mibioperators (a bit over 2 million)\nin the sortition tree.\nIf the minimum stake is at least `TOKEN_SUPPLY / 2**21`, \nthe pool will always be able to accommodate all possible operators.\n","gitHead":"17c14a9042811bd96be2617727fc79188ef1dc3a","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.16","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"14.19.0","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"readmeFilename":"README.adoc","devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_2.0.0-pre.2_1646753054399_0.1801241322883469","host":"s3://npm-registry-packages"}},"2.0.0-pre.3":{"name":"@keep-network/sortition-pools","version":"2.0.0-pre.3","author":"","license":"ISC","_id":"@keep-network/sortition-pools@2.0.0-pre.3","maintainers":[{"name":"lukasz-zimnoch","email":"lukasz.zimnoch@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"babee9a12d055c9d3b36e27b59d95d9500303531","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-2.0.0-pre.3.tgz","fileCount":21,"integrity":"sha512-Ezc+V/3H2LEKl//BOMaINAMV0PrzpmufOqrXaUBIoQDQTmfO5UL3eiSgj9jdmcoeh/W2MhGU60tjbTodauAgkw==","signatures":[{"sig":"MEUCIFF2NJmBILVRP87xet+j7u+VgQAkPPXnHy2nmRGxG11VAiEA+hVmb1LwkPLSqabcXSAN+E6hezekVSH1vOJOM392ikg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56576,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiJ3hvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp4qw//WkMcierks3pjRDpYKUyi91cHKyrx/A8UjA2zOVpj1XWOUfaq\r\nJPYKOPMBWm3OcX63KbDenQwDySKlkOeSEKbbbFkjwk8UeK8jUQ7gbono3UDv\r\nQBCgmR4qk1CfMkfb0LJs7Mamtrg2Uoyo0hq6qExdUi5hVOCPs/Kcf5rVL92T\r\nnlZS6et0gGOoHFsdqjmYZZmNnGMXvRu0hR0shPPg4bUaV1OSi2g1+ClFLEbs\r\n01/kT3RZUofGGIIbg7THcZq0qmdmFBrnczvLSL4tmoS24sCjiRWHXxvHZLXG\r\n1vKENMhlLoaNd2O9qYXBQibs4mwLaDlVJjrE9GWzv7g6nk/Kj29tTNW7fDef\r\nMg/klmywk3Vllgr1SyqPuTSnTxh18C6JDRuAbkkJXrDww43Kmuo3IG39n7j6\r\nHGMQLAVsjV0auP5ma/mjIP06Mb5SAmL1nlPI2+aSXNMTRslN5w6qJQJvDaHY\r\nklo78OXI/7N1IZewKJ+M326MkenkacyabZHdjnVT8XJfA2OiSG1G4mKc6maE\r\n+K6GTKt5rzRaR9gzZihZ+ZwqSv5a8c0zFHXzNeIDg56WNVZMhuRChWRynkJg\r\niXT6R3AeVRdoLr+tOYVaRvdOCBoIAibFCAM4tSruHyDg6IARQzv/owdT3Qht\r\nJVsDnx97TSaWnKPMrByvEQxLVkniBR7V4x4=\r\n=v2v3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"readme":"= Sortition Pools\n\nSortition pool is a logarithmic data structure\nused to store the pool of eligible operators weighted by their stakes.\nIn the Keep network the stake consists of staked KEEP tokens.\nIt allows to select a group of operators\nbased on the provided pseudo-random seed.\n\nEach privileged application has its own sortition pool\nand is responsible for maintaining operator weights up-to-date.\n\nA sortition pool provides instant selection results\nand is less affected by censorship that the ticket selection,\nalthough malicious miners can still censor protocol result submissions.\nAdditionally, miners and other actors that can predict the selection seed\n(due to frontrunning the beacon or a public cached seed being used)\nmay be able to manipulate selection outcomes to some degree\nby selectively updating the pool.\nTo mitigate this, application using sortition pool should lock\nsortition pool state before seed used for the new selection is\nknown and should unlock the pool once the selection process is\nover, keeping in mind potential timeouts and result challenges.\n\n\n== Optimized higher arity trees\n\nEven though logarithmic data structures are well-known,\nthe particular characteristics of Ethereum smart contracts\nrequire specialized optimization\nto make non-interactive sortition viable.\n\nTo enable weighted sortition,\neach sortition pool would have a weighted tree\nwhere each leaf stores an operator\nand is labeled with the operator's sortition weight,\nand each branch is labeled with the sum of the weights of its children.\nTo select an operator from the pool,\na pseudorandom number in _[0, W)_\n(where _W_ is the total sortition weight of the tree)\nis acquired and used to index into the tree.\n\nA single storage field in the EVM consists of 256 bits/32 bytes.\nData structures on the EVM are naturally sparse.\nAn implicit heap can eliminate the need for pointers\nso the full capacity of each storage field can be used for content data.\n\nKEEP tokens have 18 decimals and the total supply is 1,000,000,000 KEEP.\nA precise token amount would require roughly 96 bits/12 bytes to store.\nHowever, the minimum stake required to participate\nis expected to be in the region of 1,000~100,000 KEEP.\n\nInstead of using the exact token amount,\neach operator's sortition weight should use their staker weight\nas in the Random Beacon group selection.\n32 bits is sufficient for all practical purposes.\n\nA storage field can hold 8 values of 32 bits.\nThis gives a theoretical ceiling of 4 billion possible virtual stakers\nwithout concern for the exact distribution of weights.\n\nThe actual sortition tree has 8 levels,\nincluding root and leaves,\nwith the following number of nodes on each level:\n\n- root: 1\n- level 2: 8\n- level 3: 64\n- level 4: 512\n- level 5: 4ki\n- level 6: 32ki\n- level 7: 256ki\n- leaves: 2Mi\n\nThis means that we can store up to 2 mibioperators (a bit over 2 million)\nin the sortition tree.\nIf the minimum stake is at least `TOKEN_SUPPLY / 2**21`, \nthe pool will always be able to accommodate all possible operators.\n","gitHead":"069bc24e372fe67df464d3bf7b7ad4527150eea6","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.16","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"14.19.0","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"readmeFilename":"README.adoc","devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_2.0.0-pre.3_1646753903841_0.5067922586401585","host":"s3://npm-registry-packages"}},"2.0.0-pre.4":{"name":"@keep-network/sortition-pools","version":"2.0.0-pre.4","author":"","license":"ISC","_id":"@keep-network/sortition-pools@2.0.0-pre.4","maintainers":[{"name":"lukasz-zimnoch","email":"lukasz.zimnoch@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"a4fee4c171c3f42df96c06fd637a6244962b14c2","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-2.0.0-pre.4.tgz","fileCount":21,"integrity":"sha512-a21xqPAO0uwj2fuT0sFfD/az7AecxXYyaeuz2u+O28/NCmEpxKFehx/4uuySO3F2y4TB4dadxd2GOhirDbbybQ==","signatures":[{"sig":"MEUCIQDcq6QTdpTZzdJR05ixIHxTnvqL6ypgoKvaSMu7RAUSnQIgEnyld2lrsZDw1d0zgYF5ukO21lzLrOkkYFLeAONvPFQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56576,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiKG4PACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrfNg//Z5K+4BHAmZJGYp5gCT2xai9u60iltb2k6vCWIxuy4uBH0DH4\r\nNaEjcUpFvd9jESCyz+KatmH9FFTH2i/blVyp8cSUj3BO1470nYs1FeLa7+uA\r\ntnGydqucuiefwbGJrp34ZxaD9+ZUY1Lm2f9ETjCM+tyYzV8v+gbwKQFYTHGV\r\niFsIF0uausbvlHGyuVfR6H/X29rE5pyvor/lOsCCw4SvriuyDp/y4L4fLI3c\r\nDkdpTUM5sZgPfWuJLo9/EAaHsgVc97T8/IptAnY7kwZYs1ezNET/QQmkqgvl\r\nOtH7gKZIpujNI18mAwrSwuvJvgRNFlfMKq1ODgEwwcl0hyxHYTalZTpVkFYH\r\nE9NU8ibr/Uic3xh27PHviezdRoXXiLe2OzYzUftdmV5n6XhDKD/DmYQFtsKp\r\nCjOk4fKlKyOVuQmzNw1VAaNlerhcOu5lOrQdOXXZHLXosqDtJjOcHM+8AQ/z\r\nc/II/li+TYI28+CfjTl/NGC1ETDdGwUeyUeGWvklQhHrLhcomeoyeVySzNnR\r\nxJHpIwvXLWre6oE/0eTbD/Syfq+es/sxlHXZF5j2UMIDfSghQNL7SqIkXAaH\r\nluUus8H6spxVea4qoH9odcb7SI5PLpa/7uu429huWmEeDkiC+ygA6sXRcYRl\r\neEveVwqiPf+7bghlnjT+lZxgs36nRb6pVv8=\r\n=Vbmi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"readme":"= Sortition Pools\n\nSortition pool is a logarithmic data structure\nused to store the pool of eligible operators weighted by their stakes.\nIn the Keep network the stake consists of staked KEEP tokens.\nIt allows to select a group of operators\nbased on the provided pseudo-random seed.\n\nEach privileged application has its own sortition pool\nand is responsible for maintaining operator weights up-to-date.\n\nA sortition pool provides instant selection results\nand is less affected by censorship that the ticket selection,\nalthough malicious miners can still censor protocol result submissions.\nAdditionally, miners and other actors that can predict the selection seed\n(due to frontrunning the beacon or a public cached seed being used)\nmay be able to manipulate selection outcomes to some degree\nby selectively updating the pool.\nTo mitigate this, application using sortition pool should lock\nsortition pool state before seed used for the new selection is\nknown and should unlock the pool once the selection process is\nover, keeping in mind potential timeouts and result challenges.\n\n\n== Optimized higher arity trees\n\nEven though logarithmic data structures are well-known,\nthe particular characteristics of Ethereum smart contracts\nrequire specialized optimization\nto make non-interactive sortition viable.\n\nTo enable weighted sortition,\neach sortition pool would have a weighted tree\nwhere each leaf stores an operator\nand is labeled with the operator's sortition weight,\nand each branch is labeled with the sum of the weights of its children.\nTo select an operator from the pool,\na pseudorandom number in _[0, W)_\n(where _W_ is the total sortition weight of the tree)\nis acquired and used to index into the tree.\n\nA single storage field in the EVM consists of 256 bits/32 bytes.\nData structures on the EVM are naturally sparse.\nAn implicit heap can eliminate the need for pointers\nso the full capacity of each storage field can be used for content data.\n\nKEEP tokens have 18 decimals and the total supply is 1,000,000,000 KEEP.\nA precise token amount would require roughly 96 bits/12 bytes to store.\nHowever, the minimum stake required to participate\nis expected to be in the region of 1,000~100,000 KEEP.\n\nInstead of using the exact token amount,\neach operator's sortition weight should use their staker weight\nas in the Random Beacon group selection.\n32 bits is sufficient for all practical purposes.\n\nA storage field can hold 8 values of 32 bits.\nThis gives a theoretical ceiling of 4 billion possible virtual stakers\nwithout concern for the exact distribution of weights.\n\nThe actual sortition tree has 8 levels,\nincluding root and leaves,\nwith the following number of nodes on each level:\n\n- root: 1\n- level 2: 8\n- level 3: 64\n- level 4: 512\n- level 5: 4ki\n- level 6: 32ki\n- level 7: 256ki\n- leaves: 2Mi\n\nThis means that we can store up to 2 mibioperators (a bit over 2 million)\nin the sortition tree.\nIf the minimum stake is at least `TOKEN_SUPPLY / 2**21`, \nthe pool will always be able to accommodate all possible operators.\n","gitHead":"cb7e8be970b9467302263de05f37b99cfbe5573f","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.16","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"14.19.0","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"readmeFilename":"README.adoc","devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_2.0.0-pre.4_1646816783472_0.6032831095549498","host":"s3://npm-registry-packages"}},"2.0.0-pre.5":{"name":"@keep-network/sortition-pools","version":"2.0.0-pre.5","author":"","license":"ISC","_id":"@keep-network/sortition-pools@2.0.0-pre.5","maintainers":[{"name":"lukasz-zimnoch","email":"lukasz.zimnoch@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"d0f55d3747746b4b06a38922871a6e99907536e0","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-2.0.0-pre.5.tgz","fileCount":21,"integrity":"sha512-98LnPqKMnE3oHSxdHLghBgwS8TXHj7W68ihzWIzRe5Jx6N9Yojt/cbYhvZvvBp6Oc4cSveBFjgcIP2gqbg62Lg==","signatures":[{"sig":"MEQCIHiALADLoTuAmHvxFJOkVvVh7BEh2U2htcqPx8SzevWWAiAlqFboqAVrVazu6H0yHGWmImOLOQTWpyJnCLCc+ak+Kw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56576,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiKHWQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoKpg/+J0A2yu2ilNV7iM1LM/vuWChbLyU6U6oSUelMNtL1wPsCbyjE\r\n8OzUoyALxXxpfRTK7PAa687yumpU5B0qH576NDM+C7PLCOE0SI/Xg3p3s1n8\r\nRmfF0/GjzuL8DNHpe2PxMaUcljQ52SmLLOtCN3cK0n8rTNYMsy5ilGUZtEZk\r\nxABZqA8+//VO4MsANCFXidxsP1hvsGjvA21gBBnVAaGprAixrCjhlTv3PnOj\r\nmTYPYVgVEiCEMpJja97+eW9x3jY+uXqcj9Sjwt7F7TRHWAcu1o0b0TA+bXjJ\r\n/Tj2b+SnXs27bYBJKWR2SLmYpWoLbktNhN2+GDEZHWmETxJc/jRl9+0ZCX65\r\njYF+waH6hXSSgQSzdWqIfapkd1q6BPD3tV1loV7LmXr7LTPF6+csTJQdktT4\r\nV2vPd+vxzWaFsf8drf9Q9aBUT8NYfJiHxli4fr5MLw5y/jFhGuhprXOx/17M\r\njZvfaXFq2wiWsvfFkrZ/Kh9Z6AH3oQnAwt5r7qqujU4e7MAacLGKdoZVgcZj\r\nf1NLca5meVye5zWP/n8PN/7YtkuWNDRyKxJb6UKHQR7iqVoM6QG6HFL4EPTp\r\nGI1NUfW6xgYhZwJ5dqiVTNcpmsQIZKBInBiJve4RGk1626N/BpRKFgzTIOW2\r\nwRnWO6afM6azA5UNQ3SdlfjH7LgzhQ9XeHg=\r\n=1ihg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"readme":"= Sortition Pools\n\nSortition pool is a logarithmic data structure\nused to store the pool of eligible operators weighted by their stakes.\nIn the Keep network the stake consists of staked KEEP tokens.\nIt allows to select a group of operators\nbased on the provided pseudo-random seed.\n\nEach privileged application has its own sortition pool\nand is responsible for maintaining operator weights up-to-date.\n\nA sortition pool provides instant selection results\nand is less affected by censorship that the ticket selection,\nalthough malicious miners can still censor protocol result submissions.\nAdditionally, miners and other actors that can predict the selection seed\n(due to frontrunning the beacon or a public cached seed being used)\nmay be able to manipulate selection outcomes to some degree\nby selectively updating the pool.\nTo mitigate this, application using sortition pool should lock\nsortition pool state before seed used for the new selection is\nknown and should unlock the pool once the selection process is\nover, keeping in mind potential timeouts and result challenges.\n\n\n== Optimized higher arity trees\n\nEven though logarithmic data structures are well-known,\nthe particular characteristics of Ethereum smart contracts\nrequire specialized optimization\nto make non-interactive sortition viable.\n\nTo enable weighted sortition,\neach sortition pool would have a weighted tree\nwhere each leaf stores an operator\nand is labeled with the operator's sortition weight,\nand each branch is labeled with the sum of the weights of its children.\nTo select an operator from the pool,\na pseudorandom number in _[0, W)_\n(where _W_ is the total sortition weight of the tree)\nis acquired and used to index into the tree.\n\nA single storage field in the EVM consists of 256 bits/32 bytes.\nData structures on the EVM are naturally sparse.\nAn implicit heap can eliminate the need for pointers\nso the full capacity of each storage field can be used for content data.\n\nKEEP tokens have 18 decimals and the total supply is 1,000,000,000 KEEP.\nA precise token amount would require roughly 96 bits/12 bytes to store.\nHowever, the minimum stake required to participate\nis expected to be in the region of 1,000~100,000 KEEP.\n\nInstead of using the exact token amount,\neach operator's sortition weight should use their staker weight\nas in the Random Beacon group selection.\n32 bits is sufficient for all practical purposes.\n\nA storage field can hold 8 values of 32 bits.\nThis gives a theoretical ceiling of 4 billion possible virtual stakers\nwithout concern for the exact distribution of weights.\n\nThe actual sortition tree has 8 levels,\nincluding root and leaves,\nwith the following number of nodes on each level:\n\n- root: 1\n- level 2: 8\n- level 3: 64\n- level 4: 512\n- level 5: 4ki\n- level 6: 32ki\n- level 7: 256ki\n- leaves: 2Mi\n\nThis means that we can store up to 2 mibioperators (a bit over 2 million)\nin the sortition tree.\nIf the minimum stake is at least `TOKEN_SUPPLY / 2**21`, \nthe pool will always be able to accommodate all possible operators.\n","gitHead":"bfe1923aad8c42bf2c05364f1d17c6c610644704","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.16","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"14.19.0","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"readmeFilename":"README.adoc","devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_2.0.0-pre.5_1646818704192_0.18624401549137581","host":"s3://npm-registry-packages"}},"2.0.0-pre.6":{"name":"@keep-network/sortition-pools","version":"2.0.0-pre.6","author":"","license":"ISC","_id":"@keep-network/sortition-pools@2.0.0-pre.6","maintainers":[{"name":"lukasz-zimnoch","email":"lukasz.zimnoch@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"72ca66cc0c476a21644d9b2342f7136268c802eb","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-2.0.0-pre.6.tgz","fileCount":21,"integrity":"sha512-i+naD1W10pxCRjzJ63yeNJgpokpWzr7eTDI4TRCT1opIRyYCUPa6VNF+U3WGGToM5PtgrBHIe1TZbL7nx8LTSw==","signatures":[{"sig":"MEUCIQDtPpbZPQzCwKXlykc992ekIlL7z4n5DEzIUUT0Z1sETgIgVKfhVor0ZTWSCqtRqRwyQQQQlXC21agr2OHHhkKvADA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56576,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiKI1rACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmryZw/9ErD5qwAa8n7FIslZ3KHdJb8EDYhmmbJgbmyHhbk7tfEPp9Eh\r\n+RNJF4N/LbaC1cNRLxcnCO2wOeFPO+S1elcxnXavgX+Gl0WN8J+WTVhAmFQJ\r\ncdPD8KbEY99K3idV/3xR1W6us6lo7lIG2d/zPPGiBALPt8atv6JFyRWj09dr\r\nKpo/RtzxFaQ51eMWBsPiNs6RZGqUkQiWxX30wHanvaMtxB6SFQYFXW40thYC\r\no1OBPTVYKtl7v/JtLO02n5p7JYW2olg3KoUSSV1xCBVVGiRyhqW4QDPZDXrc\r\nClO6Wz2JhFz7thFLUmdv95ek3Cs/xxBIz02x8kgfTVAiAwtqtXGSIlGRR60F\r\nxoSQLWMJdWPGOYj48M//hEJ43OAcv6niE/MCKx7oiAxo0VUvOi0D8QQ64WSI\r\nbk+93Ah2xeihQ577PkP/0NR/BPvcQvT1GMfBhpIcD6BPaZf+A5FCHQuCuxOY\r\nLvvMoWmlVRjOXT57vX02qqGRjd28tYSgbGw+g1Drysj52XiNWbEaZO+gmduG\r\ntI2jCiL96Bog7oDt6m40U3sPRefCWq7gCt/oTKj0nFfZkefcP6x5rBLlnMK7\r\nrKxtp1Gr++DF4h1sIxouJb6DC6P2wBxuH/oqANJjzL+9Vp9CSIaPfW1IOhFD\r\nF0XRVfiYdlyn/9vF7YtLBzILfbUQEmyGmT4=\r\n=yD8b\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"readme":"= Sortition Pools\n\nSortition pool is a logarithmic data structure\nused to store the pool of eligible operators weighted by their stakes.\nIn the Keep network the stake consists of staked KEEP tokens.\nIt allows to select a group of operators\nbased on the provided pseudo-random seed.\n\nEach privileged application has its own sortition pool\nand is responsible for maintaining operator weights up-to-date.\n\nA sortition pool provides instant selection results\nand is less affected by censorship that the ticket selection,\nalthough malicious miners can still censor protocol result submissions.\nAdditionally, miners and other actors that can predict the selection seed\n(due to frontrunning the beacon or a public cached seed being used)\nmay be able to manipulate selection outcomes to some degree\nby selectively updating the pool.\nTo mitigate this, application using sortition pool should lock\nsortition pool state before seed used for the new selection is\nknown and should unlock the pool once the selection process is\nover, keeping in mind potential timeouts and result challenges.\n\n\n== Optimized higher arity trees\n\nEven though logarithmic data structures are well-known,\nthe particular characteristics of Ethereum smart contracts\nrequire specialized optimization\nto make non-interactive sortition viable.\n\nTo enable weighted sortition,\neach sortition pool would have a weighted tree\nwhere each leaf stores an operator\nand is labeled with the operator's sortition weight,\nand each branch is labeled with the sum of the weights of its children.\nTo select an operator from the pool,\na pseudorandom number in _[0, W)_\n(where _W_ is the total sortition weight of the tree)\nis acquired and used to index into the tree.\n\nA single storage field in the EVM consists of 256 bits/32 bytes.\nData structures on the EVM are naturally sparse.\nAn implicit heap can eliminate the need for pointers\nso the full capacity of each storage field can be used for content data.\n\nKEEP tokens have 18 decimals and the total supply is 1,000,000,000 KEEP.\nA precise token amount would require roughly 96 bits/12 bytes to store.\nHowever, the minimum stake required to participate\nis expected to be in the region of 1,000~100,000 KEEP.\n\nInstead of using the exact token amount,\neach operator's sortition weight should use their staker weight\nas in the Random Beacon group selection.\n32 bits is sufficient for all practical purposes.\n\nA storage field can hold 8 values of 32 bits.\nThis gives a theoretical ceiling of 4 billion possible virtual stakers\nwithout concern for the exact distribution of weights.\n\nThe actual sortition tree has 8 levels,\nincluding root and leaves,\nwith the following number of nodes on each level:\n\n- root: 1\n- level 2: 8\n- level 3: 64\n- level 4: 512\n- level 5: 4ki\n- level 6: 32ki\n- level 7: 256ki\n- leaves: 2Mi\n\nThis means that we can store up to 2 mibioperators (a bit over 2 million)\nin the sortition tree.\nIf the minimum stake is at least `TOKEN_SUPPLY / 2**21`, \nthe pool will always be able to accommodate all possible operators.\n","gitHead":"899fe1d87bc4ace9c6ffcdaac270e981aec94fe9","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.16","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"14.19.0","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"readmeFilename":"README.adoc","devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_2.0.0-pre.6_1646824811475_0.6586197223260541","host":"s3://npm-registry-packages"}},"2.0.0-pre.7":{"name":"@keep-network/sortition-pools","version":"2.0.0-pre.7","author":"","license":"ISC","_id":"@keep-network/sortition-pools@2.0.0-pre.7","maintainers":[{"name":"lukasz-zimnoch","email":"lukasz.zimnoch@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"07ce8d645bbb45855718680b0679fc5dd329e34a","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-2.0.0-pre.7.tgz","fileCount":19,"integrity":"sha512-X5/QeEBAsz0v9QfBZ9YVgP/L5TkQHwW1fuyVIirVuR+Wf5zdsWopixk/yC5fL4BSapNaf4KJeIueMF7Eq8Kv/A==","signatures":[{"sig":"MEYCIQDTlV1HbIgUDVVTQG1KIPV0dh6HpyuHdsQcqtgeT3cb+AIhAJyTcwN23kI00DhhIowgzmX3svMWS48bySQ5peWqzEAZ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":55969,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiTuerACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqoPxAAihMc/Y68lZ8PKXSp50aaq4EqIPXf3zxchFgm79K2ZIxqlUoa\r\nF8r+tU0K5/ZaA79taJ6FAZE1XMV8Tzgv3wL3XwIZzss3GjWiRus8RD1tlICy\r\ndIyexDuyKhBmRMduHYv+7q21AuBVax4fTgtjNpeRgaXaTWqsUHizZ1WUYIcb\r\nC8wEi2aVuudvcJitFJt26LxYqh4erXAph5oBToFU8fT3YMjnsY8gNBc0T0Rr\r\n61lL4T+JgQisgpBaH3K3OmnKsCm/I9o3yDlGD7SAc1U9LzMKlX8EArvwmcTQ\r\nZVz13Z7uTKIJ5RJENLe/jVR8KRZz1W+wnAj99myLOVYHBq+tnXsUVh3FgDjQ\r\nwVBAj833R0Yl/JODPjE0ja8gR6vRbQOtWCHsJzKZjR1EXe/MQPoLVH3VVkea\r\n1oo+Dwnt48gxzmNmZ6hniZ9zUA0ByRjmStZp/go3CQ5DvVZxjzSsmTYGiGsh\r\n0M6AlCBFPDxPpZA4o1iX9YEYGUim9vK36HROHSKxMj2AiCfSa15qFp7dnYoe\r\npKboTezm62FDWxql9gk0Ou4QzSi/I/drpjjmAzYzE+ZWNqQcD6VNXxumK/M0\r\nzfbQ6iIxEGFKc1lHTGiy5uHrV9AgqHnuDjZRVgNKCGIQveIb77gzZ3PzUzSH\r\nEPR9QDrmGmyHGfA6XipIh/4vE+Cc5Ya7DvI=\r\n=4GUh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"readme":"= Sortition Pools\n\nSortition pool is a logarithmic data structure\nused to store the pool of eligible operators weighted by their stakes.\nIn the Keep network the stake consists of staked KEEP tokens.\nIt allows to select a group of operators\nbased on the provided pseudo-random seed.\n\nEach privileged application has its own sortition pool\nand is responsible for maintaining operator weights up-to-date.\n\nA sortition pool provides instant selection results\nand is less affected by censorship that the ticket selection,\nalthough malicious miners can still censor protocol result submissions.\nAdditionally, miners and other actors that can predict the selection seed\n(due to frontrunning the beacon or a public cached seed being used)\nmay be able to manipulate selection outcomes to some degree\nby selectively updating the pool.\nTo mitigate this, application using sortition pool should lock\nsortition pool state before seed used for the new selection is\nknown and should unlock the pool once the selection process is\nover, keeping in mind potential timeouts and result challenges.\n\n\n== Optimized higher arity trees\n\nEven though logarithmic data structures are well-known,\nthe particular characteristics of Ethereum smart contracts\nrequire specialized optimization\nto make non-interactive sortition viable.\n\nTo enable weighted sortition,\neach sortition pool would have a weighted tree\nwhere each leaf stores an operator\nand is labeled with the operator's sortition weight,\nand each branch is labeled with the sum of the weights of its children.\nTo select an operator from the pool,\na pseudorandom number in _[0, W)_\n(where _W_ is the total sortition weight of the tree)\nis acquired and used to index into the tree.\n\nA single storage field in the EVM consists of 256 bits/32 bytes.\nData structures on the EVM are naturally sparse.\nAn implicit heap can eliminate the need for pointers\nso the full capacity of each storage field can be used for content data.\n\nKEEP tokens have 18 decimals and the total supply is 1,000,000,000 KEEP.\nA precise token amount would require roughly 96 bits/12 bytes to store.\nHowever, the minimum stake required to participate\nis expected to be in the region of 1,000~100,000 KEEP.\n\nInstead of using the exact token amount,\neach operator's sortition weight should use their staker weight\nas in the Random Beacon group selection.\n32 bits is sufficient for all practical purposes.\n\nA storage field can hold 8 values of 32 bits.\nThis gives a theoretical ceiling of 4 billion possible virtual stakers\nwithout concern for the exact distribution of weights.\n\nThe actual sortition tree has 8 levels,\nincluding root and leaves,\nwith the following number of nodes on each level:\n\n- root: 1\n- level 2: 8\n- level 3: 64\n- level 4: 512\n- level 5: 4ki\n- level 6: 32ki\n- level 7: 256ki\n- leaves: 2Mi\n\nThis means that we can store up to 2 mibioperators (a bit over 2 million)\nin the sortition tree.\nIf the minimum stake is at least `TOKEN_SUPPLY / 2**21`, \nthe pool will always be able to accommodate all possible operators.\n","gitHead":"bd05d660498bf8dd2c8efeb2e1d8a5f152125fc9","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.16","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"14.19.1","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"readmeFilename":"README.adoc","devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_2.0.0-pre.7_1649338282977_0.9775375933806274","host":"s3://npm-registry-packages"}},"2.0.0-pre.8":{"name":"@keep-network/sortition-pools","version":"2.0.0-pre.8","author":"","license":"ISC","_id":"@keep-network/sortition-pools@2.0.0-pre.8","maintainers":[{"name":"lukasz-zimnoch","email":"lukasz.zimnoch@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"322df4bb0ae381cd9233117391ca8bb818a50da6","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-2.0.0-pre.8.tgz","fileCount":19,"integrity":"sha512-1I7v5vmlBwCcZx+uQ9U0A9ALMfjQGfvHQG2VLPo9pGJaNdgWo6YSJTErWVD4/PCNRPM959DB+SNa0klFOR+MFQ==","signatures":[{"sig":"MEUCIQC201MS/ntEiuZ9PNVgMfNBfZmeJJqBtfsjStqYD4FQagIgApWtBQozdfeh3lyQWaICLdlxfKyQ5acHrjAIegClvyY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":57216,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiZvK+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqdkw/+L3fyix2QNQHfYiGIv0T40xjOsJCb87laCIS60Ob5BNcSRSCU\r\nuiNQTQnv3rDdMhU8JWbzSrQbhoJ3qRjQuMD40OD71ozgHk5ny1kG2FmJ63v8\r\nSCV1dotcijbfqpKbihQ/7yAh/WujQcjeNDPJdae3n7h+dX5RasjnqOfng4Ne\r\nXfE0GQ9/iQCj6tkZO1ShAHG0ofKmgFWW05plByP9WzvLb56r/zIZbWTz/Xsj\r\n4tRYcAS0hP5sRdwV2+cCAvEqWV7ik6oGT7c8j4SD4cAzZR1lpJ1v1OLHyoVd\r\nTnlhxlD9y85aldwRoRK7d5qLheFbsj+yry0HMFKok24XPfs0AD2GHvN41aVI\r\nrLKUq5/Nmd7OMwXOlnAowKySYXyKszGOSNVA6MMVkb1CRaD4xEzivS8diDdH\r\nctpiSXEhAHvig7rVP2q7D4iJRhv7/R0cSrJme1yq11jWH//FPQ9eRrZz5KUu\r\nUV8Ptdw6Pfdl1HlCjpQYYQ8HTcMav2nU4vSNcYWi91u2vL3psFIID1jdvfMz\r\ncXYN5/NfoFXQVxbuXrtj+EbPHyh/4HMmxVvzy+GvTBcpYMrBPaOlUiox4ihq\r\n3toilEwqaWn534X62zpJYVbfllQKFj9vnKI2kNwSZBlTxBjHpgjCRasHIbtN\r\n0llnJLbvj75bYgksNsj5vxTDju4gXHIWqBE=\r\n=8x1j\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"readme":"= Sortition Pools\n\nSortition pool is a logarithmic data structure\nused to store the pool of eligible operators weighted by their stakes.\nIn the Keep network the stake consists of staked KEEP tokens.\nIt allows to select a group of operators\nbased on the provided pseudo-random seed.\n\nEach privileged application has its own sortition pool\nand is responsible for maintaining operator weights up-to-date.\n\nA sortition pool provides instant selection results\nand is less affected by censorship that the ticket selection,\nalthough malicious miners can still censor protocol result submissions.\nAdditionally, miners and other actors that can predict the selection seed\n(due to frontrunning the beacon or a public cached seed being used)\nmay be able to manipulate selection outcomes to some degree\nby selectively updating the pool.\nTo mitigate this, application using sortition pool should lock\nsortition pool state before seed used for the new selection is\nknown and should unlock the pool once the selection process is\nover, keeping in mind potential timeouts and result challenges.\n\n\n== Optimized higher arity trees\n\nEven though logarithmic data structures are well-known,\nthe particular characteristics of Ethereum smart contracts\nrequire specialized optimization\nto make non-interactive sortition viable.\n\nTo enable weighted sortition,\neach sortition pool would have a weighted tree\nwhere each leaf stores an operator\nand is labeled with the operator's sortition weight,\nand each branch is labeled with the sum of the weights of its children.\nTo select an operator from the pool,\na pseudorandom number in _[0, W)_\n(where _W_ is the total sortition weight of the tree)\nis acquired and used to index into the tree.\n\nA single storage field in the EVM consists of 256 bits/32 bytes.\nData structures on the EVM are naturally sparse.\nAn implicit heap can eliminate the need for pointers\nso the full capacity of each storage field can be used for content data.\n\nKEEP tokens have 18 decimals and the total supply is 1,000,000,000 KEEP.\nA precise token amount would require roughly 96 bits/12 bytes to store.\nHowever, the minimum stake required to participate\nis expected to be in the region of 1,000~100,000 KEEP.\n\nInstead of using the exact token amount,\neach operator's sortition weight should use their staker weight\nas in the Random Beacon group selection.\n32 bits is sufficient for all practical purposes.\n\nA storage field can hold 8 values of 32 bits.\nThis gives a theoretical ceiling of 4 billion possible virtual stakers\nwithout concern for the exact distribution of weights.\n\nThe actual sortition tree has 8 levels,\nincluding root and leaves,\nwith the following number of nodes on each level:\n\n- root: 1\n- level 2: 8\n- level 3: 64\n- level 4: 512\n- level 5: 4ki\n- level 6: 32ki\n- level 7: 256ki\n- leaves: 2Mi\n\nThis means that we can store up to 2 mibioperators (a bit over 2 million)\nin the sortition tree.\nIf the minimum stake is at least `TOKEN_SUPPLY / 2**21`, \nthe pool will always be able to accommodate all possible operators.\n","gitHead":"a07bceca8dd6e7f1cdd77b49abe4ed2ec611627d","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.16","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"14.19.1","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"readmeFilename":"README.adoc","devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_2.0.0-pre.8_1650913981904_0.14561409574979867","host":"s3://npm-registry-packages"}},"2.0.0-pre.9":{"name":"@keep-network/sortition-pools","version":"2.0.0-pre.9","author":"","license":"ISC","_id":"@keep-network/sortition-pools@2.0.0-pre.9","maintainers":[{"name":"lukasz-zimnoch","email":"lukasz.zimnoch@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"2525068532a9dcde7e86d55f239b32fdb8b92648","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-2.0.0-pre.9.tgz","fileCount":19,"integrity":"sha512-u09pSaxtvpm1B8Lu5EdLOUEKWyflE6C1saIm/hLW6dg8LzEHTr/bgfwH2ruqiia/akjZgiNENJp2VBYqs2IEbw==","signatures":[{"sig":"MEUCIQCqmTIOxuawAaSlxP+nAgAdmGnoPmpHLnFAb+CxhWlZwAIgBNbvN8/Req+L3T6Ct6qmtLlPOS7jfI5yWqMY0wzptVc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":57808,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiZvUFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmormw//YVb+XTXdhffeIHXug5n+CI9KhIBLScaaZ3HoV1BKRKzAFl6j\r\n2uNU7pERvMscqNWyOhEgayn7bjGW6se7q9pTFjvDRCN6+F0PJWEagcfPdDyN\r\nVwLAeOvb3fyGp3MM8nuywwJvhgBl0mfW762SDprjB6pBtq7C14FIVcRIwqQ8\r\n0kJwZYZk3UXF2rweX3DX4ZgzMN8dWz2eOPY00DNCavAgciqqpH1elLlnDvIX\r\n3iMHfa7fdDNyLlV4lFwkIeMRLY7+X40wuF8K3Cpsl5AA5DzVCdyzst/KOb4h\r\nkm+XmL1+LhpqUNfwpuot/iGY4mRnYdQEw5+YpqQdkbmXy1/sXkW7g4TN7frW\r\nlGSbhKVl9xU0G8PCA6pWhmjI9+7nIOu1vYizKHeCKJbFU7P8jCfoR1OSKPmf\r\nBVXBcnFPq7CVqdHvj9nEw/pamefMYNYENwMaDC2bmYb4dtFc9+HXUainpmdr\r\nK1I1N0QGEjkpj30U/7Hm2BLqK7E9IZM9grizOIhopTMIA/4EBeJXUa3hjkB+\r\nGXeKnaWtYNqqvt0Y6rCo8WQZHZpteSg8eJxgh+kMz5XFoPUvPJArkiOnqDO8\r\n56PJ4zj0MC1/ZdONw1hdUI/XAtyxb1DSV/woYRcIzvZy46VIZVIXAUNW+KQa\r\niLraapGpJgdAuKL3Y+G01NYqnmNkMsL9AmA=\r\n=GNW2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"readme":"= Sortition Pools\n\nSortition pool is a logarithmic data structure\nused to store the pool of eligible operators weighted by their stakes.\nIn the Keep network the stake consists of staked KEEP tokens.\nIt allows to select a group of operators\nbased on the provided pseudo-random seed.\n\nEach privileged application has its own sortition pool\nand is responsible for maintaining operator weights up-to-date.\n\nA sortition pool provides instant selection results\nand is less affected by censorship that the ticket selection,\nalthough malicious miners can still censor protocol result submissions.\nAdditionally, miners and other actors that can predict the selection seed\n(due to frontrunning the beacon or a public cached seed being used)\nmay be able to manipulate selection outcomes to some degree\nby selectively updating the pool.\nTo mitigate this, application using sortition pool should lock\nsortition pool state before seed used for the new selection is\nknown and should unlock the pool once the selection process is\nover, keeping in mind potential timeouts and result challenges.\n\n\n== Optimized higher arity trees\n\nEven though logarithmic data structures are well-known,\nthe particular characteristics of Ethereum smart contracts\nrequire specialized optimization\nto make non-interactive sortition viable.\n\nTo enable weighted sortition,\neach sortition pool would have a weighted tree\nwhere each leaf stores an operator\nand is labeled with the operator's sortition weight,\nand each branch is labeled with the sum of the weights of its children.\nTo select an operator from the pool,\na pseudorandom number in _[0, W)_\n(where _W_ is the total sortition weight of the tree)\nis acquired and used to index into the tree.\n\nA single storage field in the EVM consists of 256 bits/32 bytes.\nData structures on the EVM are naturally sparse.\nAn implicit heap can eliminate the need for pointers\nso the full capacity of each storage field can be used for content data.\n\nKEEP tokens have 18 decimals and the total supply is 1,000,000,000 KEEP.\nA precise token amount would require roughly 96 bits/12 bytes to store.\nHowever, the minimum stake required to participate\nis expected to be in the region of 1,000~100,000 KEEP.\n\nInstead of using the exact token amount,\neach operator's sortition weight should use their staker weight\nas in the Random Beacon group selection.\n32 bits is sufficient for all practical purposes.\n\nA storage field can hold 8 values of 32 bits.\nThis gives a theoretical ceiling of 4 billion possible virtual stakers\nwithout concern for the exact distribution of weights.\n\nThe actual sortition tree has 8 levels,\nincluding root and leaves,\nwith the following number of nodes on each level:\n\n- root: 1\n- level 2: 8\n- level 3: 64\n- level 4: 512\n- level 5: 4ki\n- level 6: 32ki\n- level 7: 256ki\n- leaves: 2Mi\n\nThis means that we can store up to 2 mibioperators (a bit over 2 million)\nin the sortition tree.\nIf the minimum stake is at least `TOKEN_SUPPLY / 2**21`, \nthe pool will always be able to accommodate all possible operators.\n","gitHead":"0e44a05426ddd85f3f547107b472fb41cfd1ecf8","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.16","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"14.19.1","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"readmeFilename":"README.adoc","devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","eth-gas-reporter":"^0.1.12","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_2.0.0-pre.9_1650914565382_0.6655998859949459","host":"s3://npm-registry-packages"}},"2.0.0-pre.10":{"name":"@keep-network/sortition-pools","version":"2.0.0-pre.10","author":"","license":"ISC","_id":"@keep-network/sortition-pools@2.0.0-pre.10","maintainers":[{"name":"lukasz-zimnoch","email":"lukasz.zimnoch@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"c5dfa8489b700f881258f33a8e93fe0da40e2a86","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-2.0.0-pre.10.tgz","fileCount":20,"integrity":"sha512-YJrOToHDOYTwHtrvn9Ox1iCvHA8RFbEwfLg77esw3PI2/jl/PqyjdxfpBNlbuPiVOg4KI9XaoGRMdsilkDhH4w==","signatures":[{"sig":"MEUCIBXtA6kgOc4vQXZWN9mH4s2og3Hnaxy4mS8VOXLWfLdCAiEAt0+xIXfOYOTwF4vkMZh4KclZwD78Ll3vV4wqjSiAHzc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":55614,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiasZmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq/AQ/9EcIiCIrkRTKdUzCETALi1R3g+t/PFJ+eLB/idXnEJXtue23S\r\nHD93II86Cl7zjTntrXIWvA2Xg726kz7e4u887AreN8lX/2QcVyZxg8+TozLd\r\nQwqfjOXz1lW7gUZAUD/fFP5Hp0s/HD4Cp7kl0VDFd/WxpbCvS7jyF5nRwOrx\r\nWa1pjC3zqFZeBxEi9RpzeNY3WOdpTVIu6Kk8v3ggc2m68UE6JDCnzfLygQBp\r\nThEVUyXmVphkVpaSMboMYx71b2JX77udxLGyyIJFs/HS7G34bBY3pY58TZJa\r\nRTP9GxlMXV7c0fLiYy54v+WvZ4Gk9ur6teMoR5Ngkafw3nPgd8C/J9ucSuGg\r\nbPmJ+a+tXWZnBXyPJNikPZG7SqdwmYaQUqMmieEDogaXT6jVXuedO2BJm/Td\r\nHQ5yE6f2pcsF14qkBPbdnYPsh3WaELEXhDoyiXw1q1wRYUJKKxg8z/1DS+lh\r\nC3F0pn0Dn+HKpkaSjUfCQojdSXnkfVRB/3ZGz0DgjFs785sBHIHdHdLH+Pzo\r\nUReU1zdC+Q4ZQ+n1Mjq3rgbdjAw93zK5qFoLeOcOk2kRGgSVW7DE4/6BA2Cp\r\nK6D2Rs3NTdRCZhAv9u3CznRrCv35j+wWXYdpACgRTVgm1mfRlVRBFgTcgvVh\r\ntgF4qN3n1pekLjdolYpj3krXSiuctXujpkQ=\r\n=ueqb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"readme":"= Sortition Pools\n\nSortition pool is a logarithmic data structure\nused to store the pool of eligible operators weighted by their stakes.\nIn the Keep network the stake consists of staked KEEP tokens.\nIt allows to select a group of operators\nbased on the provided pseudo-random seed.\n\nEach privileged application has its own sortition pool\nand is responsible for maintaining operator weights up-to-date.\n\nA sortition pool provides instant selection results\nand is less affected by censorship that the ticket selection,\nalthough malicious miners can still censor protocol result submissions.\nAdditionally, miners and other actors that can predict the selection seed\n(due to frontrunning the beacon or a public cached seed being used)\nmay be able to manipulate selection outcomes to some degree\nby selectively updating the pool.\nTo mitigate this, application using sortition pool should lock\nsortition pool state before seed used for the new selection is\nknown and should unlock the pool once the selection process is\nover, keeping in mind potential timeouts and result challenges.\n\n\n== Optimized higher arity trees\n\nEven though logarithmic data structures are well-known,\nthe particular characteristics of Ethereum smart contracts\nrequire specialized optimization\nto make non-interactive sortition viable.\n\nTo enable weighted sortition,\neach sortition pool would have a weighted tree\nwhere each leaf stores an operator\nand is labeled with the operator's sortition weight,\nand each branch is labeled with the sum of the weights of its children.\nTo select an operator from the pool,\na pseudorandom number in _[0, W)_\n(where _W_ is the total sortition weight of the tree)\nis acquired and used to index into the tree.\n\nA single storage field in the EVM consists of 256 bits/32 bytes.\nData structures on the EVM are naturally sparse.\nAn implicit heap can eliminate the need for pointers\nso the full capacity of each storage field can be used for content data.\n\nKEEP tokens have 18 decimals and the total supply is 1,000,000,000 KEEP.\nA precise token amount would require roughly 96 bits/12 bytes to store.\nHowever, the minimum stake required to participate\nis expected to be in the region of 1,000~100,000 KEEP.\n\nInstead of using the exact token amount,\neach operator's sortition weight should use their staker weight\nas in the Random Beacon group selection.\n32 bits is sufficient for all practical purposes.\n\nA storage field can hold 8 values of 32 bits.\nThis gives a theoretical ceiling of 4 billion possible virtual stakers\nwithout concern for the exact distribution of weights.\n\nThe actual sortition tree has 8 levels,\nincluding root and leaves,\nwith the following number of nodes on each level:\n\n- root: 1\n- level 2: 8\n- level 3: 64\n- level 4: 512\n- level 5: 4ki\n- level 6: 32ki\n- level 7: 256ki\n- leaves: 2Mi\n\nThis means that we can store up to 2 mibioperators (a bit over 2 million)\nin the sortition tree.\nIf the minimum stake is at least `TOKEN_SUPPLY / 2**21`, \nthe pool will always be able to accommodate all possible operators.\n","gitHead":"f9a8e92e950b48fe1c75accb1653885c5e6ff915","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.16","description":"= Sortition Pools","directories":{"test":"test"},"_nodeVersion":"14.19.1","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"readmeFilename":"README.adoc","devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","hardhat-gas-reporter":"^1.0.8","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_2.0.0-pre.10_1651164774745_0.14881270411869263","host":"s3://npm-registry-packages"}},"2.0.0-pre.11":{"name":"@keep-network/sortition-pools","version":"2.0.0-pre.11","author":"","license":"ISC","_id":"@keep-network/sortition-pools@2.0.0-pre.11","maintainers":[{"name":"lukasz-zimnoch","email":"lukasz.zimnoch@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"5147841f1d9f8e85c47af860ea93aca477753ac5","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-2.0.0-pre.11.tgz","fileCount":20,"integrity":"sha512-KgAnoGghlCyWtUfl0lXhGFDVGa/QMn8eH4DZ8OWeenrqX0+f9veWXKWSz71lA+p3G8G0nAwSSkOsAya4FHNZLw==","signatures":[{"sig":"MEYCIQDaIAF7pN3bNIx80CZyWWCXNfmsEn+C1WXlj/h8GZd1fQIhAPfGO0FBmfe7x4ZHxKf1YBmoR9sbKdCOSb7hR6FPCiJJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":59836,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJia453ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp3TBAAnixzboJ5ooQD/XtMgwLprQLMN3TxNt7mtCghrsYahplVCm02\r\nTv7iN4zFJ4aMAf94UVW8XA3AU1fz5nGbehtmZnTui11KIzcHZCX2UobttM+Y\r\n73exN0ux4dOhBGr0TzFgrsNJveMA0oSfridfwQ1K75ljM8TekGZMZjqJ8UjL\r\nw4e+DgvGUcdwJxCZbEAA/JrsqJOtEQeS8tjpKgAI6oWg/qf2xc88jDckzh36\r\nkZwBogkvmv8GU1oVL3uUzpOJGNIkcrRD/WpprEApgvHV+xuVyvPG1YCRbcwp\r\nJba0cUOK18uvEufsSa2QNXdTtVai7L3p3Kd8XF+u0AsKYdDdrP8eo1zjIv29\r\nprNLaITJzhhDhbENo6qiEh4Gar5on88ybrr6peUW0glsDalpI4ZIZjtI0m/V\r\ntqbQF2YEP5UYtrMinvVZq9fJY3bmD8Q+XafNqLyWFrZ14YCyKMUVYH8klgNJ\r\ngqdv4udO9JN4jbYRmnWbhfJxfr1hUEuI1oZaWvQDic/gDVCU3Jn0MIpFPaZQ\r\nJCuT79D/tx2rXzpQy2Galu78fv2CVHriWcBvF1lKdSkZptplpfDAhOMI12Tb\r\nqqguJYJ73K82zHWzrtB8aO1f8spL9nsAntX16etbvGZO70KuFYSLjKe1KH+i\r\naxfPk2IaDeIhBwhBBXOtpUNL7epKfhBI+SI=\r\n=b5nm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"readme":"# Sortition Pools\n\nSortition pool is a logarithmic data structure used to store the pool of\neligible operators weighted by their stakes. In the Keep network the stake\nconsists of staked KEEP tokens. It allows to select a group of operators based\non the provided pseudo-random seed.\n\nEach privileged application has its own sortition pool and is responsible for\nmaintaining operator weights up-to-date.\n\n## In-Depth Reading\n\nTo familiarize yourself with the sortition pool and it's design, we provide\n\n+ [Building Intuition](docs/building-intuition.md)\n+ [Implementation Details](docs/implementation-details.md)\n\n[Building Intuition](docs/building-intuition.md) starts the reader from the\nproblem description and an easy-to-understand naive solution, and then works\nits way up to the current design of the sortition pool through a series of\noptimizations.\n\n[Implementation Details](docs/implementation-details.md) builds off of the\nknowledge in [Building Intuition](docs/building-intuition.md), and gets into\nthe finer points about the data structure, data (de)serialization, how\noperators join/leave the pool, and how it all comes together to select a full\ngroup.\n\n## Important Facts\n\n+ The max number of operators is `2,097,152`\n+ The sortition pool is for general purpose group selection. Feel free to use\n  or fork it!\n+ The sortition pool can be [optimistic](#optimisic-group-selection)! The\n  on-chain code then is only run in the case that the selection submission is\n  challenged.\n\n## Safe Use\n\nMiners and other actors that can predict the selection seed (due\nto frontrunning the beacon or a public cached seed being used) may be able to\nmanipulate selection outcomes to some degree by selectively updating the pool.\n\nTo mitigate this, applications using sortition pool should lock sortition pool\nstate before seed used for the new selection is known and should unlock the\npool once the selection process is over, keeping in mind potential timeouts and\nresult challenges.\n\n## Optimistic Group Selection\n\nWhen an application (like the [Random\nBeacon](https://github.com/keep-network/keep-core/tree/main/solidity/random-beacon#group-creation))\nneeds a new group, sortition is performed off-chain according to the same\nalgorithm that would be performed on-chain, and the results are submitted\non-chain.\n\nThen, we enter a challenge period where anyone can claim that the submitted\nresults are inaccurate. If this happens, the on-chain sortition pool runs the\nsame group selection with the same seed and validates the results.\n\nIf the submission was invalid, the challenger is rewarded and the submitter is\npunished, and we can accept another submission. If the submission was valid,\nthe challenger loses out on their gas, and the submitter is unaffected.\n","gitHead":"501bfa3261d897b95e4bffd87f03547e1d60a115","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.16","description":"Sortition pool is a logarithmic data structure used to store the pool of eligible operators weighted by their stakes. In the Keep network the stake consists of staked KEEP tokens. It allows to select a group of operators based on the provided pseudo-rando","directories":{"test":"test"},"_nodeVersion":"14.19.1","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","hardhat-gas-reporter":"^1.0.8","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_2.0.0-pre.11_1651215990959_0.5436092479609789","host":"s3://npm-registry-packages"}},"2.0.0-pre.12":{"name":"@keep-network/sortition-pools","version":"2.0.0-pre.12","author":"","license":"ISC","_id":"@keep-network/sortition-pools@2.0.0-pre.12","maintainers":[{"name":"lukasz-zimnoch","email":"lukasz.zimnoch@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"2fd708194fd7931999c41e5f4089afb5dc4ba17f","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-2.0.0-pre.12.tgz","fileCount":21,"integrity":"sha512-CBQZr/g+qsizondIyBpkUprEsnKEThpIQJJJrieotji/x69MBRx9xJguGGmDJR0J3ER4FwGHrLrCsDKhic5Hrg==","signatures":[{"sig":"MEQCIETST57GpO5iV4QhGxfPiWHL1M3gpgFy2Wv8tC/hGMO1AiBfMbr2CgQnnDzgzq+ckons4aAsr3ohRGDTeYyqgA7sdA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":60383,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJia/5uACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrdwg//Vm7/RS7yZ2dJsFPqGMwwqcnmRW0L/30GxWaKgOyMY31x9EZD\r\nKBoe/F6Gw7sEqS5xtIUDVXJy2lwICREqMwHnAaEfMXg7b5A95geAdnzAtYxU\r\nPYtC+oa2MBy+5QXoQ2aQG0THLS7PxhRQ/3np6FEsBF4KG65LvycI55sf6xAY\r\nsUBQWEWUx2NXulKyjH733wMObTmIIiK+wotwNPioE4P2Ryug7R671WrFt6f8\r\nckWZtYuLMvzyjpG+s/V1iK11uwglUKkqNACi3RPxdGUWS9HxUFO7Tglr9Aj6\r\noXMA6sxye+qO3yZUqsruU+idW01Xlp+gM8B+yvMLg9ACTDUX/3EQyCVwO/Cu\r\n6XlXSiOaQz/yIYOe0wRCV6dAW6PTGT7Xmq4X5L8G/P0ZGCpHNGYCam8q9Nzv\r\nO9zT/yiItT/gd3CzCQ2EqhbnCDwGIFfLpnFtGeMSIdr5skv3/mobvXOF9rcw\r\n+HrOe/r7tz/bW2xRD4IpZBc8IEfmINFPGJSD3xw3d1ukHrcApSt2+8lr1LO6\r\n7iBYoqnNThpj7Jeagr4cRUJpejbZyiksJ/KeJoCznrRog2IA6pzk5BpQO8wu\r\nT1n+oQIGJZr3bsbxzT65R+5dC82ySNfAPQJ2Tguj2eSDJHsgh6CgDPDI29VO\r\nauCjiNf/v8x//1EB5GyiDqyCVbuxjbUZsUg=\r\n=8NNr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"readme":"# Sortition Pools\n\nSortition pool is a logarithmic data structure used to store the pool of\neligible operators weighted by their stakes. In the Keep network the stake\nconsists of staked KEEP tokens. It allows to select a group of operators based\non the provided pseudo-random seed.\n\nEach privileged application has its own sortition pool and is responsible for\nmaintaining operator weights up-to-date.\n\n## In-Depth Reading\n\nTo familiarize yourself with the sortition pool and it's design, we provide\n\n+ [Building Intuition](docs/building-intuition.md)\n+ [Implementation Details](docs/implementation-details.md)\n\n[Building Intuition](docs/building-intuition.md) starts the reader from the\nproblem description and an easy-to-understand naive solution, and then works\nits way up to the current design of the sortition pool through a series of\noptimizations.\n\n[Implementation Details](docs/implementation-details.md) builds off of the\nknowledge in [Building Intuition](docs/building-intuition.md), and gets into\nthe finer points about the data structure, data (de)serialization, how\noperators join/leave the pool, and how it all comes together to select a full\ngroup.\n\n## Important Facts\n\n+ The max number of operators is `2,097,152`\n+ The sortition pool is for general purpose group selection. Feel free to use\n  or fork it!\n+ The sortition pool can be [optimistic](#optimisic-group-selection)! The\n  on-chain code then is only run in the case that the selection submission is\n  challenged.\n\n## Safe Use\n\nMiners and other actors that can predict the selection seed (due\nto frontrunning the beacon or a public cached seed being used) may be able to\nmanipulate selection outcomes to some degree by selectively updating the pool.\n\nTo mitigate this, applications using sortition pool should lock sortition pool\nstate before seed used for the new selection is known and should unlock the\npool once the selection process is over, keeping in mind potential timeouts and\nresult challenges.\n\n## Optimistic Group Selection\n\nWhen an application (like the [Random\nBeacon](https://github.com/keep-network/keep-core/tree/main/solidity/random-beacon#group-creation))\nneeds a new group, sortition is performed off-chain according to the same\nalgorithm that would be performed on-chain, and the results are submitted\non-chain.\n\nThen, we enter a challenge period where anyone can claim that the submitted\nresults are inaccurate. If this happens, the on-chain sortition pool runs the\nsame group selection with the same seed and validates the results.\n\nIf the submission was invalid, the challenger is rewarded and the submitter is\npunished, and we can accept another submission. If the submission was valid,\nthe challenger loses out on their gas, and the submitter is unaffected.\n","gitHead":"efe2b91b747eb56f7b2ecb6e9779689a19a1cfea","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.16","description":"Sortition pool is a logarithmic data structure used to store the pool of eligible operators weighted by their stakes. In the Keep network the stake consists of staked KEEP tokens. It allows to select a group of operators based on the provided pseudo-rando","directories":{"test":"test"},"_nodeVersion":"14.19.1","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","hardhat-gas-reporter":"^1.0.8","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_2.0.0-pre.12_1651244654010_0.1508768597154473","host":"s3://npm-registry-packages"}},"2.0.0-pre.13":{"name":"@keep-network/sortition-pools","version":"2.0.0-pre.13","author":"","license":"ISC","_id":"@keep-network/sortition-pools@2.0.0-pre.13","maintainers":[{"name":"lukasz-zimnoch","email":"lukasz.zimnoch@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"80dbe8066ce378ae4242c3aef6864224477a9e41","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-2.0.0-pre.13.tgz","fileCount":21,"integrity":"sha512-+6VXCJyYT3+HApDExeySHjOgezg+umvdpm5lZXIUlhSx7xmbXSK/YwLXkdeWkGyVdyfwRO4ZXo1CbscbC0XGnA==","signatures":[{"sig":"MEUCIC3cUR/Gx+Y5AWbwyupNCvDAg1SPaBkuuFkZUh38eampAiEAuvOrSKP+FnbotO5wJ/vIN22uteg9KKwRA/BcVfk1AOs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61702,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiz8nSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqung/9HhDJKII4FfBUmgUDEbFyMNvRXWLG696shiL5nhq7t7YiSkLg\r\nIjCh9YtdL42eu17oGbJ+jfVer30We8b7Fx0HtuJzD8cfg9CNsQqAEyxdqobG\r\npmtCUgWSSpAxol7dV0zxDqghWuiB867sQh8YKWJHNgQNexrgsOTREbq+ay9E\r\ntiYa9Mb3y5TPBBQAgJ3RTXdB3bqa4m7MyW+5tuer7jKWCj1CJWwTsF6svi68\r\nkn0o97zJVy/zURvrig6KOKtVXsDTZzTCfbIOq3PGJB2DDBpwGBDad0/58oD9\r\nTSNk+v9OnML9XFUnJVEaKPa7LLgm25LPX27rH11IJ4kcRDZZCmu80SE0AF18\r\nJUdVH4DWo1ad/bABjU47UkGVE7YqQoJBw9njtmG4pIkAgACUZmQXcPtueYsn\r\nHOvwy6hRssJ5+tYUXQLO07zD8ok2Ty/ApDIOg78smGZiCCksIyRIdVXGdsJu\r\nP1MVWLKgFdYIan/FaiipJd30gXWFkCNhrIKUaed8swc0vzCWzGls3tRyc5KE\r\nzYpl2v73KQ6c/aP0J47baYzck13L6AjIaf2nr+RzhSJZ/BQ8XurOCVwO+irB\r\nqBGusKTJmlitZzBXqoTHdq6mdY0fdQFBqDKzJZB1kZBILhU8qGWUUPwU9umC\r\nHKloXkmq+4YiobdiEMK6AN6RuJwqjW3YVd0=\r\n=1Nqq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"readme":"# Sortition Pools\n\nSortition pool is a logarithmic data structure used to store the pool of\neligible operators weighted by their stakes. In the Keep network the stake\nconsists of staked KEEP tokens. It allows to select a group of operators based\non the provided pseudo-random seed.\n\nEach privileged application has its own sortition pool and is responsible for\nmaintaining operator weights up-to-date.\n\n## In-Depth Reading\n\nTo familiarize yourself with the sortition pool and it's design, we provide\n\n+ [Building Intuition](docs/building-intuition.md)\n+ [Implementation Details](docs/implementation-details.md)\n+ [Rewards](docs/rewards.md)\n\n[Building Intuition](docs/building-intuition.md) starts the reader from the\nproblem description and an easy-to-understand naive solution, and then works\nits way up to the current design of the sortition pool through a series of\noptimizations.\n\n[Implementation Details](docs/implementation-details.md) builds off of the\nknowledge in [Building Intuition](docs/building-intuition.md), and gets into\nthe finer points about the data structure, data (de)serialization, how\noperators join/leave the pool, and how it all comes together to select a full\ngroup.\n\n[Rewards](docs/rewards.md) is a deep-dive into how the sortition pool keeps\ntrack of rewards. It features code explanations and walk-throughs of state\ntransitions for common situations.\n\n## Important Facts\n\n+ The max number of operators is `2,097,152`\n+ The sortition pool is for general purpose group selection. Feel free to use\n  or fork it!\n+ The sortition pool can be [optimistic](#optimisic-group-selection)! The\n  on-chain code then is only run in the case that the selection submission is\n  challenged.\n+ The sortition pool tracks rewards!\n\n## Safe Use\n\nMiners and other actors that can predict the selection seed (due\nto frontrunning the beacon or a public cached seed being used) may be able to\nmanipulate selection outcomes to some degree by selectively updating the pool.\n\nTo mitigate this, applications using sortition pool should lock sortition pool\nstate before seed used for the new selection is known and should unlock the\npool once the selection process is over, keeping in mind potential timeouts and\nresult challenges.\n\n## Optimistic Group Selection\n\nWhen an application (like the [Random\nBeacon](https://github.com/keep-network/keep-core/tree/main/solidity/random-beacon#group-creation))\nneeds a new group, sortition is performed off-chain according to the same\nalgorithm that would be performed on-chain, and the results are submitted\non-chain.\n\nThen, we enter a challenge period where anyone can claim that the submitted\nresults are inaccurate. If this happens, the on-chain sortition pool runs the\nsame group selection with the same seed and validates the results.\n\nIf the submission was invalid, the challenger is rewarded and the submitter is\npunished, and we can accept another submission. If the submission was valid,\nthe challenger loses out on their gas, and the submitter is unaffected.\n","gitHead":"edf469034f26f74c542fa563b82b91620a0d7a1f","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.17","description":"Sortition pool is a logarithmic data structure used to store the pool of eligible operators weighted by their stakes. In the Keep network the stake consists of staked KEEP tokens. It allows to select a group of operators based on the provided pseudo-rando","directories":{"test":"test"},"_nodeVersion":"14.20.0","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","hardhat-gas-reporter":"^1.0.8","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_2.0.0-pre.13_1657784785943_0.6095880160742229","host":"s3://npm-registry-packages"}},"2.0.0-pre.14":{"name":"@keep-network/sortition-pools","version":"2.0.0-pre.14","author":"","license":"ISC","_id":"@keep-network/sortition-pools@2.0.0-pre.14","maintainers":[{"name":"lukasz-zimnoch","email":"lukasz.zimnoch@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"c46ac88ab619f140e45faf07a643d1df6e21c0d3","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-2.0.0-pre.14.tgz","fileCount":21,"integrity":"sha512-GQ+KR/MuPAHPhpzho97QaLn2yAx7keYW/S1+WCaRG1EymgYrlm2rrg2UnZW/Vn08TraBu/gZCzBYOehVJ+s+MQ==","signatures":[{"sig":"MEYCIQDNiVLIFv+UTrKsFtYFbC7mdGl3OdoVt/STzOkKvA9ZDgIhAObMRS/MK15uOcqVxtpt3sp/QU9LOM5nMLtKtEhgHHgo","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61701,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjFz0TACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoXoQ//fMc0SLo6OVsNcKG3u1xhZNjxphfT0nfV0qiQdXS2zS5TIaso\r\nBOrb9p2LbRNJdTEzi/fP7mbJ1B8uZMhQpAehH+wCXCoV/9JZyktckkoUjTKN\r\n8F1xGJ9+Tz+j8v4HVEPHmaGn2/PiuJfnTcHtOET2Fhn3RA178vpQcwE/+zmb\r\nuIhN0QuSouiMRnSW8p/P9CBs1igs3qLhP5R1iU7CRgRdvg/TBWBlI/HXtkm1\r\nfPUeXepGaDIm5VCIiq0cve5z5CguKJ4UonflJo61hVKzR6wIWdmX54tCX0GC\r\nSGmHRLLqVF16eP0NaFyj91SC/aQdJQxZI7zFrIjr5Vp4Xv/kO5hbUaBVPsLi\r\ntXk9xequ0+pJvjvu0dQsGiTbPQ+locxOvII5wHOI/F35S8TuR+e+0wK1jTho\r\nLcoakioSdbebqVLFOEKqXpLB/SxqNCIR+P/c4/7WNesF/bxpr3+JHPsGWy7Q\r\n/nZd5zg1ZfJJGGdpUQ0fnQaIBeMNgGyLCygku4n4MTCAAh0WE7eRJ0dIEwZK\r\nu3hcLNFsytDHhZG6TVnURHJhkq9vJ5FTT9mD29CfrGQiIkgVItBq2RbwwlWR\r\nVEljGYsKYKMLjZmK9AtrjbcAhLCchpm2o1RMitOJugdwz0FP71fCfv/Gx1tJ\r\nP1PQeKJ5FUpEHA12BNTb8FNOABUlGEsUWdY=\r\n=Mu9M\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"readme":"# Sortition Pools\n\nSortition pool is a logarithmic data structure used to store the pool of\neligible operators weighted by their stakes. In the Keep network the stake\nconsists of staked KEEP tokens. It allows to select a group of operators based\non the provided pseudo-random seed.\n\nEach privileged application has its own sortition pool and is responsible for\nmaintaining operator weights up-to-date.\n\n## In-Depth Reading\n\nTo familiarize yourself with the sortition pool and it's design, we provide\n\n+ [Building Intuition](docs/building-intuition.md)\n+ [Implementation Details](docs/implementation-details.md)\n+ [Rewards](docs/rewards.md)\n\n[Building Intuition](docs/building-intuition.md) starts the reader from the\nproblem description and an easy-to-understand naive solution, and then works\nits way up to the current design of the sortition pool through a series of\noptimizations.\n\n[Implementation Details](docs/implementation-details.md) builds off of the\nknowledge in [Building Intuition](docs/building-intuition.md), and gets into\nthe finer points about the data structure, data (de)serialization, how\noperators join/leave the pool, and how it all comes together to select a full\ngroup.\n\n[Rewards](docs/rewards.md) is a deep-dive into how the sortition pool keeps\ntrack of rewards. It features code explanations and walk-throughs of state\ntransitions for common situations.\n\n## Important Facts\n\n+ The max number of operators is `2,097,152`\n+ The sortition pool is for general purpose group selection. Feel free to use\n  or fork it!\n+ The sortition pool can be [optimistic](#optimisic-group-selection)! The\n  on-chain code then is only run in the case that the selection submission is\n  challenged.\n+ The sortition pool tracks rewards!\n\n## Safe Use\n\nMiners and other actors that can predict the selection seed (due\nto frontrunning the beacon or a public cached seed being used) may be able to\nmanipulate selection outcomes to some degree by selectively updating the pool.\n\nTo mitigate this, applications using sortition pool should lock sortition pool\nstate before seed used for the new selection is known and should unlock the\npool once the selection process is over, keeping in mind potential timeouts and\nresult challenges.\n\n## Optimistic Group Selection\n\nWhen an application (like the [Random\nBeacon](https://github.com/keep-network/keep-core/tree/main/solidity/random-beacon#group-creation))\nneeds a new group, sortition is performed off-chain according to the same\nalgorithm that would be performed on-chain, and the results are submitted\non-chain.\n\nThen, we enter a challenge period where anyone can claim that the submitted\nresults are inaccurate. If this happens, the on-chain sortition pool runs the\nsame group selection with the same seed and validates the results.\n\nIf the submission was invalid, the challenger is rewarded and the submitter is\npunished, and we can accept another submission. If the submission was valid,\nthe challenger loses out on their gas, and the submitter is unaffected.\n","gitHead":"cb05e6eec752384110ca0fe28f25942de98d6dcd","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.17","description":"Sortition pool is a logarithmic data structure used to store the pool of eligible operators weighted by their stakes. In the Keep network the stake consists of staked KEEP tokens. It allows to select a group of operators based on the provided pseudo-rando","directories":{"test":"test"},"_nodeVersion":"14.20.0","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","hardhat-gas-reporter":"^1.0.8","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_2.0.0-pre.14_1662467347137_0.20148339422526007","host":"s3://npm-registry-packages"}},"2.0.0-pre.15":{"name":"@keep-network/sortition-pools","version":"2.0.0-pre.15","author":"","license":"ISC","_id":"@keep-network/sortition-pools@2.0.0-pre.15","maintainers":[{"name":"lukasz-zimnoch","email":"lukasz.zimnoch@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"3a289f7cd502e5d6c629f2fb625d390b77c02950","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-2.0.0-pre.15.tgz","fileCount":22,"integrity":"sha512-FuEk6uvIL5n82LnxyP6piV8Y7eRae3Vp7n1yQcSK2M9+gaZqzT1eaxX6FtZrXMzAOz3M+aQ8X3DVEyTScQOO2Q==","signatures":[{"sig":"MEYCIQC10Q0KvGgid6UH7v4xu3iYTBmxV0BUbhn3tzEHPNHTLAIhAMARmgNX1uYYy7/fcfJCgYWKCqNMEhipCubVdZIaqjcs","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":64662,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjLDnkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmreRA/8D1mIjNnpoQ1tbncMzT6szwmleEgXSbA6KUkSMvBYiy+XKFxc\r\naqKft+xCvGlH3+dCwnmN+DIdSIbihEiP5Dutk9k/VPn2+5FNfmsArY7MowI7\r\n3PtZ8BVnNEL3qC4heY+gd+L1CoBjZ8Nv0IowySQrwyu4RmjoQIOJDY79bW9w\r\nkts0oxRN3fCHJyYQh8YXgVbuldRrpPtb2Z7XmjD5CITlNrx9a417MNxTE9FF\r\n/ACyTEccVziCEZncQsh6SEvij2tdlwSh30MM7/qGneAFiCom/zP9a6lOuAXY\r\nU2hDHJNtDRjHuyY2gEXkLhgdMiircrOXVpiEkahD80X4wUH962x046J/zZuw\r\nMEg1NFymYbKHtbLm/KASmNHUQjg4aqrcVGGYNN0FwCeQPSvZDg/ZDSHiF6BJ\r\nBnATWrZp0MrBcPLHF3pUpREiTWWybmVaRkqvXMeoRe0JumDpQoriT1o3EUCE\r\nDw8Lz1QkuMjN+EpWPa+p10msSX3PQAmIokn/vR+6kqbzCL6PVesTim7iJj7O\r\nx8YtP2cIY+iH6sgHz6GIrYzfB1ZzWyyN7FY6rBuBDNezFlseEb+fagJxToCT\r\nQ3ifcVezGqE09qnGThwTjatIPh3P98BvWDgzaiyMtOMMxU6f9I5CgC/WhAoG\r\nVvuZUzLgZ3w7aWd+Y/W+hWnutABrDuJGJ5Y=\r\n=o3C7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"readme":"# Sortition Pools\n\nSortition pool is a logarithmic data structure used to store the pool of\neligible operators weighted by their stakes. In the Keep network the stake\nconsists of staked KEEP tokens. It allows to select a group of operators based\non the provided pseudo-random seed.\n\nEach privileged application has its own sortition pool and is responsible for\nmaintaining operator weights up-to-date.\n\n## In-Depth Reading\n\nTo familiarize yourself with the sortition pool and it's design, we provide\n\n+ [Building Intuition](docs/building-intuition.md)\n+ [Implementation Details](docs/implementation-details.md)\n+ [Rewards](docs/rewards.md)\n\n[Building Intuition](docs/building-intuition.md) starts the reader from the\nproblem description and an easy-to-understand naive solution, and then works\nits way up to the current design of the sortition pool through a series of\noptimizations.\n\n[Implementation Details](docs/implementation-details.md) builds off of the\nknowledge in [Building Intuition](docs/building-intuition.md), and gets into\nthe finer points about the data structure, data (de)serialization, how\noperators join/leave the pool, and how it all comes together to select a full\ngroup.\n\n[Rewards](docs/rewards.md) is a deep-dive into how the sortition pool keeps\ntrack of rewards. It features code explanations and walk-throughs of state\ntransitions for common situations.\n\n## Important Facts\n\n+ The max number of operators is `2,097,152`\n+ The sortition pool is for general purpose group selection. Feel free to use\n  or fork it!\n+ The sortition pool can be [optimistic](#optimisic-group-selection)! The\n  on-chain code then is only run in the case that the selection submission is\n  challenged.\n+ The sortition pool tracks rewards!\n\n## Safe Use\n\nMiners and other actors that can predict the selection seed (due\nto frontrunning the beacon or a public cached seed being used) may be able to\nmanipulate selection outcomes to some degree by selectively updating the pool.\n\nTo mitigate this, applications using sortition pool should lock sortition pool\nstate before seed used for the new selection is known and should unlock the\npool once the selection process is over, keeping in mind potential timeouts and\nresult challenges.\n\n## Optimistic Group Selection\n\nWhen an application (like the [Random\nBeacon](https://github.com/keep-network/keep-core/tree/main/solidity/random-beacon#group-creation))\nneeds a new group, sortition is performed off-chain according to the same\nalgorithm that would be performed on-chain, and the results are submitted\non-chain.\n\nThen, we enter a challenge period where anyone can claim that the submitted\nresults are inaccurate. If this happens, the on-chain sortition pool runs the\nsame group selection with the same seed and validates the results.\n\nIf the submission was invalid, the challenger is rewarded and the submitter is\npunished, and we can accept another submission. If the submission was valid,\nthe challenger loses out on their gas, and the submitter is unaffected.\n","gitHead":"aaeab6f2d6e27265bf855e5acabdd4f0a4a1659b","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.17","description":"Sortition pool is a logarithmic data structure used to store the pool of eligible operators weighted by their stakes. In the Keep network the stake consists of staked KEEP tokens. It allows to select a group of operators based on the provided pseudo-rando","directories":{"test":"test"},"_nodeVersion":"14.20.0","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","hardhat-gas-reporter":"^1.0.8","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_2.0.0-pre.15_1663842788533_0.36348264208703895","host":"s3://npm-registry-packages"}},"2.0.0-pre.16":{"name":"@keep-network/sortition-pools","version":"2.0.0-pre.16","author":"","license":"ISC","_id":"@keep-network/sortition-pools@2.0.0-pre.16","maintainers":[{"name":"lukasz-zimnoch","email":"lukasz.zimnoch@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"2df738cc06e4062212605d12740127eaa71c2346","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-2.0.0-pre.16.tgz","fileCount":22,"integrity":"sha512-tEd21AbtZj4gqm46n0l8ujA7p7C7RtdN5DhSw0FWI9FYKg1iL4IoQw8Fe7wsqzMnLf61zQfNeQ7w78jPaqoowA==","signatures":[{"sig":"MEYCIQDZiUVFHITVmqWoFhGv5IdP9y8FWqlVpCuoMBNMWAN+6gIhAKwzZDoizfmv8zpOPXyKOOwlRen5aDzVLnuQkYTQntPi","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":64680,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjM/7YACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpTrg//aVpwzxZzwL1VCa5kIgumsZruzYsLxro1SZb6Q+9jDaz51nDV\r\noY3VYJ8KBRKe3skuxP5AmhLIga2NDbNEBlV+W7S+YLyQE2lfHBVg4UFf7e3f\r\nPI0LHD1U5rVMdJhN7L9CcSj9ppYyfku0CkCYqSk2VJ7fQhEKbPWA8XK79xmd\r\nbBWJoK7IOlSl67b7FXDX/uqu3XZMf41+jBKyVtLbSNySMPE8T3Zmp1YrUg2O\r\n/UrlwuUMjRFNJo53uXFxWe8P9IiswJTSubPi9G9rFf49Ei7NUdt3kXym6n/g\r\nR3aQ7cCEZ1GvvX5zhD3kp6xo0e/vPHMogiLY49h0Ann+Kgz2lyX51C3X8SOe\r\n/Gp9MSbJF24v0qrzQ4At4HwJUYhpCo0x09lAyk35cCB4PjcehhsWiEGyGgbk\r\naGvUyTpS/1YTcU5Rpz7h4yY8do4c6W2qq+MGczZKu9WpXvltGx9k5f9hYn3a\r\npPywjwwJjW2TmjJeKqATq1wo+poKaTgZL8E2kW9Q9VN7pk++CklO0wzO/jQo\r\n8n0stwLIKKtg4jzq/x44WuhypweTgLuIM5RmW8Nbj0jAzvznKcUsFYgXcV1n\r\nn6ed5AngxaIxwcAuB8xU1RWYqBFS1wixpD3HmXozAlNuIUX1x9UPXj75vtFl\r\nqPLckpcchcCSZJQEl6PTvdU0w6pxNrH9KJE=\r\n=h5B4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"readme":"# Sortition Pools\n\nSortition pool is a logarithmic data structure used to store the pool of\neligible operators weighted by their stakes. In the Keep network the stake\nconsists of staked KEEP tokens. It allows to select a group of operators based\non the provided pseudo-random seed.\n\nEach privileged application has its own sortition pool and is responsible for\nmaintaining operator weights up-to-date.\n\n## In-Depth Reading\n\nTo familiarize yourself with the sortition pool and it's design, we provide\n\n+ [Building Intuition](docs/building-intuition.md)\n+ [Implementation Details](docs/implementation-details.md)\n+ [Rewards](docs/rewards.md)\n\n[Building Intuition](docs/building-intuition.md) starts the reader from the\nproblem description and an easy-to-understand naive solution, and then works\nits way up to the current design of the sortition pool through a series of\noptimizations.\n\n[Implementation Details](docs/implementation-details.md) builds off of the\nknowledge in [Building Intuition](docs/building-intuition.md), and gets into\nthe finer points about the data structure, data (de)serialization, how\noperators join/leave the pool, and how it all comes together to select a full\ngroup.\n\n[Rewards](docs/rewards.md) is a deep-dive into how the sortition pool keeps\ntrack of rewards. It features code explanations and walk-throughs of state\ntransitions for common situations.\n\n## Important Facts\n\n+ The max number of operators is `2,097,152`\n+ The sortition pool is for general purpose group selection. Feel free to use\n  or fork it!\n+ The sortition pool can be [optimistic](#optimisic-group-selection)! The\n  on-chain code then is only run in the case that the selection submission is\n  challenged.\n+ The sortition pool tracks rewards!\n\n## Safe Use\n\nMiners and other actors that can predict the selection seed (due\nto frontrunning the beacon or a public cached seed being used) may be able to\nmanipulate selection outcomes to some degree by selectively updating the pool.\n\nTo mitigate this, applications using sortition pool should lock sortition pool\nstate before seed used for the new selection is known and should unlock the\npool once the selection process is over, keeping in mind potential timeouts and\nresult challenges.\n\n## Optimistic Group Selection\n\nWhen an application (like the [Random\nBeacon](https://github.com/keep-network/keep-core/tree/main/solidity/random-beacon#group-creation))\nneeds a new group, sortition is performed off-chain according to the same\nalgorithm that would be performed on-chain, and the results are submitted\non-chain.\n\nThen, we enter a challenge period where anyone can claim that the submitted\nresults are inaccurate. If this happens, the on-chain sortition pool runs the\nsame group selection with the same seed and validates the results.\n\nIf the submission was invalid, the challenger is rewarded and the submitter is\npunished, and we can accept another submission. If the submission was valid,\nthe challenger loses out on their gas, and the submitter is unaffected.\n","gitHead":"dd9a1099e88a2738826436219d1cc3171eec2e76","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.17","description":"Sortition pool is a logarithmic data structure used to store the pool of eligible operators weighted by their stakes. In the Keep network the stake consists of staked KEEP tokens. It allows to select a group of operators based on the provided pseudo-rando","directories":{"test":"test"},"_nodeVersion":"14.20.0","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","hardhat-gas-reporter":"^1.0.8","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_2.0.0-pre.16_1664351960042_0.0211707278906772","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@keep-network/sortition-pools","version":"2.0.0","author":"","license":"ISC","_id":"@keep-network/sortition-pools@2.0.0","maintainers":[{"name":"lukasz-zimnoch","email":"lukasz.zimnoch@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"04e29ec756d74e00d13505a3e2a7763b06d7a08d","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-2.0.0.tgz","fileCount":22,"integrity":"sha512-82pDOKcDBvHBFblCt0ALVr6qC6mxk339ZqnCfYx1zIPaPhzkw1RKOv28AqPoqzhzcdqLIoPh8g9RS/M2Lplh1A==","signatures":[{"sig":"MEUCIE+LgooQphR5kZ3MhKgPwG6yIral/Xdq3fSDh3823mj3AiEA/76KxssZRVAVmbdfSnckGACK1/L3PA6+Q3LNLhzbVuM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":64628,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNUqPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrtbQ//dyVbbSh39cZ41ZfgQQ236OIhSTnlRa62WcK3vL+xiSiSknTT\r\nwRvTqdzZtbvIcPVE0tJEwZuz5l6HgXq5ggMSkdZJ2pzW7VKwN0qg3ZNvHeCu\r\nAlGKXWyWb/7OubnaIdryYiHp5Tn4Q26uoAHzSnSiMbXm6s9GLC5Ncq9XxFmc\r\nl5d6f4PnwzKR9VCN4vpTED6PQM/blT2l/kLkdP3DsKfeEpzhPYeL/dfH3txz\r\nM/6b0FOwhOQp1HjazgfqKTRdbru0nehZx8TUakOrIfDjq4G6JKHNREy9s3rh\r\ntrlfQMQVS8gLAh5dTOYiviECIPhXACi0WbxKDUZRtGTS6I0ip06Lr/PcrY8u\r\nt6/CaKcJXDV6AkDaSVrPGK1UKEEJztvbVLSjno97+paYacDicEXGWwnlSghb\r\nc4vTivcgcWRdhFoZCMaz0zLc/gG6VACr0v7zvYB85eCnbPjLhBIqMWxWVlJX\r\n9V1HvHELI1ON7Q1ox7arjEHUg/VCkwJchl6OQO9K58wgEpQgyuOq2Fkx5dEY\r\n9+j9aE9IQQs92SVoUaP6p+wU5sTBiOsanhUb13fxvIh2spDx93As3ilnE0TT\r\nxB/+jHWaCIw7bftKkOr4JLfxgIdWItPVzMpdVxM5dDv5IYMvv7G4Ysf++JBk\r\nng3HnHIOL2C/QTkGJCo5jHt6v3ZMLGFKnOo=\r\n=3YqF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"gitHead":"8048806a05826785075a926485e0320a7bb75745","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"pdyraga","email":"piotr.dyraga@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"8.3.1","description":"Sortition pool is a logarithmic data structure used to store the pool of eligible operators weighted by their stakes. In the Keep network the stake consists of staked KEEP tokens. It allows to select a group of operators based on the provided pseudo-rando","directories":{"test":"test"},"_nodeVersion":"16.14.0","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","hardhat-gas-reporter":"^1.0.8","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_2.0.0_1664436879259_0.43603528329422714","host":"s3://npm-registry-packages"}},"2.1.0-pre.0":{"name":"@keep-network/sortition-pools","version":"2.1.0-pre.0","author":"","license":"ISC","_id":"@keep-network/sortition-pools@2.1.0-pre.0","maintainers":[{"name":"lukasz-zimnoch","email":"lukasz.zimnoch@keep.network"},{"name":"shadowfiend","email":"antonio@thesis.co"},{"name":"nkuba8","email":"kuba@akena.co"},{"name":"thesis-heimdall","email":"heimdall@thesis.co"},{"name":"pdyraga","email":"piotr.dyraga@thesis.co"}],"homepage":"https://github.com/keep-network/sortition-pools#readme","bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"dist":{"shasum":"06965cd5576b718078b9dc9726e293a8cc009f86","tarball":"https://registry.npmjs.org/@keep-network/sortition-pools/-/sortition-pools-2.1.0-pre.0.tgz","fileCount":22,"integrity":"sha512-RcvW3nHqWfUTxWj1O8jlhyQ+a47SH0wHEav3rS/P8kKH4xewF+SsBxQ6UoqWYwFkDrjjatlmwixySSbXYzbnRA==","signatures":[{"sig":"MEUCIDlN9z7SJ/Tb3BzRdt0ZOEgFiQ136ebnNdZKmlyVNXYBAiEAuWbs1iOx6jNOPEm5ULOxtpLZzAp6vbOimqDOVxQyGBw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":64679,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNVE6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo9rQ//Qr3GMzpPlqLiF222RnhuSMBlS7Q1WKwcMVngDi0+VXym1zUS\r\nHeubGJ3HVKP3fSLoHn0uCpagq7Kxm70jZ7v4Kxzc9Eiu0RwY8INNnH/4jqap\r\nf8vVPiFj+CDe2Se6fcLVYWbBtiVXly2aguhvQ2hQFDP3Y5UrGEOaaj/sqZHV\r\nFy8EAv9PmiqDoPcZKmaG66GSbPYkmln/Uqf2+Zh8tO8R2BzyIjW+aLlg/LDC\r\noNXknrb+vFbDQMTW+/yY0kpRXBvwvLDqdfVjldBxnAw3NtcoBwQNWLVjGCap\r\nuzoSBUG7aN21AE4ScrYORklnH3uztrOrZl6wO7P6AGux5XUlfQisoNru7L3v\r\n3l3yLainUzs7X0AsAB4EKQG8p0LXDoKyFCUK0TMa4Sqo2VpwO2rgUqMf+U4q\r\n2vZW2oG2pihXzJM32CDHDT9+ULcN2fRDNE4nto8Yv9KCp+9bU0YbyQGY91mX\r\nm+Aj+RYGob5rBkKmsutt3s+Os4iU1j7ljfzmw2KGxArY3paaPNae4Z1BkpNC\r\nuTJs0lIV+qyndNvbD4t2azNeyACGzdRGDD0zoka0D/mPezRVc2aLRJu3daF+\r\nRo680mTFK6L0tJdquw50P8fb2uBAGlDql85PCZ0O2MX6sudSYdh0yulymwSG\r\nWyTYGrw90UKNLLiuGKj+IkHc0JmB7GoMnqw=\r\n=+bdX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"truffle-config.js","config":{"eslintPaths":"test/ migrations/"},"readme":"# Sortition Pools\n\nSortition pool is a logarithmic data structure used to store the pool of\neligible operators weighted by their stakes. In the Keep network the stake\nconsists of staked KEEP tokens. It allows to select a group of operators based\non the provided pseudo-random seed.\n\nEach privileged application has its own sortition pool and is responsible for\nmaintaining operator weights up-to-date.\n\n## In-Depth Reading\n\nTo familiarize yourself with the sortition pool and it's design, we provide\n\n+ [Building Intuition](docs/building-intuition.md)\n+ [Implementation Details](docs/implementation-details.md)\n+ [Rewards](docs/rewards.md)\n\n[Building Intuition](docs/building-intuition.md) starts the reader from the\nproblem description and an easy-to-understand naive solution, and then works\nits way up to the current design of the sortition pool through a series of\noptimizations.\n\n[Implementation Details](docs/implementation-details.md) builds off of the\nknowledge in [Building Intuition](docs/building-intuition.md), and gets into\nthe finer points about the data structure, data (de)serialization, how\noperators join/leave the pool, and how it all comes together to select a full\ngroup.\n\n[Rewards](docs/rewards.md) is a deep-dive into how the sortition pool keeps\ntrack of rewards. It features code explanations and walk-throughs of state\ntransitions for common situations.\n\n## Important Facts\n\n+ The max number of operators is `2,097,152`\n+ The sortition pool is for general purpose group selection. Feel free to use\n  or fork it!\n+ The sortition pool can be [optimistic](#optimisic-group-selection)! The\n  on-chain code then is only run in the case that the selection submission is\n  challenged.\n+ The sortition pool tracks rewards!\n\n## Safe Use\n\nMiners and other actors that can predict the selection seed (due\nto frontrunning the beacon or a public cached seed being used) may be able to\nmanipulate selection outcomes to some degree by selectively updating the pool.\n\nTo mitigate this, applications using sortition pool should lock sortition pool\nstate before seed used for the new selection is known and should unlock the\npool once the selection process is over, keeping in mind potential timeouts and\nresult challenges.\n\n## Optimistic Group Selection\n\nWhen an application (like the [Random\nBeacon](https://github.com/keep-network/keep-core/tree/main/solidity/random-beacon#group-creation))\nneeds a new group, sortition is performed off-chain according to the same\nalgorithm that would be performed on-chain, and the results are submitted\non-chain.\n\nThen, we enter a challenge period where anyone can claim that the submitted\nresults are inaccurate. If this happens, the on-chain sortition pool runs the\nsame group selection with the same seed and validates the results.\n\nIf the submission was invalid, the challenger is rewarded and the submitter is\npunished, and we can accept another submission. If the submission was valid,\nthe challenger loses out on their gas, and the submitter is unaffected.\n","gitHead":"688bfa7020c7cb59f9312322d86ea2fad3a19769","scripts":{"lint":"npm run lint:js && npm run lint:sol","test":"hardhat test","build":"hardhat compile","ganache":"echo 'GANACHE IS NO LONGER USED; use buidler-vm script instead'","lint:js":"eslint ${npm_package_config_eslintPaths}","lint:fix":"npm run lint:fix:js && npm run lint:fix:sol","lint:sol":"solhint 'contracts/**/*.sol' && prettier --list-different **/*.sol","lint:fix:js":"eslint --fix ${npm_package_config_eslintPaths}","lint:fix:sol":"solhint 'contracts/**/*.sol' --fix && prettier --write **/*.sol"},"_npmUser":{"name":"thesis-heimdall","email":"heimdall@thesis.co"},"repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"_npmVersion":"6.14.17","description":"Sortition pool is a logarithmic data structure used to store the pool of eligible operators weighted by their stakes. In the Keep network the stake consists of staked KEEP tokens. It allows to select a group of operators based on the provided pseudo-rando","directories":{"test":"test"},"_nodeVersion":"14.20.0","dependencies":{"@openzeppelin/contracts":"^4.3.2","@thesis/solidity-contracts":"github:thesis/solidity-contracts#4985bcf"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","solc":"0.8.6","eslint":"^6.8.0","ethers":"^5.0.32","bn-chai":"^1.0.1","ethlint":"^1.2.5","hardhat":"^2.6.4","solhint":"^3.3.6","truffle":"^5.4.14","ts-node":"^10.0.0","prettier":"^2.3.2","typescript":"^4.3.5","@types/chai":"^4.2.20","@types/node":"^16.0.1","@types/mocha":"^8.2.3","hardhat-deploy":"^0.9.1","ethereum-waffle":"^3.4.0","@nomiclabs/buidler":"^1.4.5","eslint-config-keep":"github:keep-network/eslint-config-keep#0.3.0","solhint-config-keep":"github:keep-network/solhint-config-keep","hardhat-gas-reporter":"^1.0.8","prettier-plugin-solidity":"^1.0.0-beta.14","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/test-helpers":"^0.5.4","@nomiclabs/hardhat-etherscan":"^2.1.6","@keep-network/hardhat-helpers":"^0.2.0-pre","@keep-network/prettier-config-keep":"github:keep-network/prettier-config-keep#d6ec02e","@keep-network/hardhat-local-networks-config":"0.1.0-pre.0"},"_npmOperationalInternal":{"tmp":"tmp/sortition-pools_2.1.0-pre.0_1664438586384_0.526360019000014","host":"s3://npm-registry-packages"}}},"time":{"created":"2020-02-28T16:21:37.527Z","modified":"2026-08-11T14:11:44.976Z","0.1.1":"2020-02-28T16:21:37.929Z","0.2.1-pre.3":"2020-04-07T20:52:37.835Z","0.3.1-pre.0":"2020-04-09T12:11:45.949Z","0.3.0":"2020-04-09T12:14:22.907Z","0.3.1-pre.1":"2020-05-07T09:47:35.134Z","1.0.0":"2020-05-13T17:07:57.333Z","1.1.0":"2020-07-29T07:32:24.463Z","1.2.0-pre.0":"2020-08-25T07:21:54.121Z","1.2.0-pre.1":"2020-08-25T09:07:28.466Z","1.1.1":"2020-08-28T12:18:19.985Z","1.1.2":"2020-09-14T10:43:38.472Z","1.2.0-pre.2":"2020-10-27T12:07:23.750Z","1.2.0-pre.3":"2020-10-27T12:29:18.520Z","1.1.3-pre.1":"2021-01-05T14:34:50.381Z","1.2.0-pre.4":"2021-01-06T13:06:42.826Z","1.1.3-pre.2":"2021-01-14T09:33:28.962Z","1.2.0-pre.5":"2021-01-14T10:08:46.971Z","1.2.0-pre.6":"2021-01-14T11:29:02.565Z","1.2.0-dev.0":"2021-05-25T14:05:00.203Z","1.2.0-dev.1":"2021-09-24T13:49:30.812Z","1.2.0-dev.2":"2021-10-13T14:49:28.667Z","1.2.0-dev.3":"2021-10-15T13:37:52.684Z","1.2.0-dev.4":"2021-10-25T13:11:24.847Z","1.2.0-dev.5":"2021-11-02T13:58:15.954Z","1.2.0-dev.6":"2021-11-02T14:59:40.320Z","1.2.0-dev.7":"2021-11-03T08:54:14.237Z","1.2.0-dev.8":"2021-11-08T10:44:28.164Z","1.2.0-dev.9":"2021-11-08T12:20:16.170Z","1.2.0-dev.10":"2021-11-16T13:17:53.911Z","1.2.0-dev.11":"2021-11-16T13:22:01.571Z","1.2.0-dev.12":"2021-11-24T11:39:29.272Z","1.2.0-dev.13":"2021-11-24T11:41:01.247Z","1.2.0-dev.14":"2021-11-29T09:55:20.889Z","1.2.0-dev.15":"2021-11-30T17:32:01.773Z","1.2.0-dev.16":"2021-11-30T19:40:20.015Z","1.2.0-dev.17":"2021-11-30T19:45:32.736Z","1.2.0-dev.18":"2021-11-30T19:53:22.251Z","1.2.0-dev.19":"2021-11-30T20:02:12.796Z","1.2.0-dev.20":"2021-11-30T20:07:55.092Z","1.2.0-dev.21":"2021-11-30T20:14:19.509Z","1.2.0-dev.22":"2021-11-30T20:23:10.104Z","1.2.0-dev.23":"2021-11-30T20:41:39.421Z","1.2.0-dev.24":"2021-12-01T18:58:23.248Z","1.2.0-dev.25":"2021-12-01T21:00:36.904Z","2.0.0-dev.0":"2022-01-12T10:25:55.281Z","2.0.0-pre.0":"2022-03-04T12:20:37.427Z","2.0.0-pre.1":"2022-03-08T15:16:19.601Z","2.0.0-pre.2":"2022-03-08T15:24:14.563Z","2.0.0-pre.3":"2022-03-08T15:38:23.952Z","2.0.0-pre.4":"2022-03-09T09:06:23.647Z","2.0.0-pre.5":"2022-03-09T09:38:24.325Z","2.0.0-pre.6":"2022-03-09T11:20:11.634Z","2.0.0-pre.7":"2022-04-07T13:31:23.126Z","2.0.0-pre.8":"2022-04-25T19:13:02.096Z","2.0.0-pre.9":"2022-04-25T19:22:45.777Z","2.0.0-pre.10":"2022-04-28T16:52:54.898Z","2.0.0-pre.11":"2022-04-29T07:06:31.180Z","2.0.0-pre.12":"2022-04-29T15:04:14.164Z","2.0.0-pre.13":"2022-07-14T07:46:26.074Z","2.0.0-pre.14":"2022-09-06T12:29:07.274Z","2.0.0-pre.15":"2022-09-22T10:33:08.813Z","2.0.0-pre.16":"2022-09-28T07:59:20.178Z","2.0.0":"2022-09-29T07:34:39.428Z","2.1.0-pre.0":"2022-09-29T08:03:06.586Z"},"bugs":{"url":"https://github.com/keep-network/sortition-pools/issues"},"license":"ISC","homepage":"https://github.com/keep-network/sortition-pools#readme","repository":{"url":"git+https://github.com/keep-network/sortition-pools.git","type":"git"},"description":"Sortition pool is a logarithmic data structure used to store the pool of eligible operators weighted by their stakes. In the Keep network the stake consists of staked KEEP tokens. It allows to select a group of operators based on the provided pseudo-rando","maintainers":[{"email":"antonio@thesis.co","name":"shadowfiend"},{"email":"kuba@akena.co","name":"nkuba8"},{"email":"heimdall@thesis.co","name":"thesis-heimdall"},{"email":"piotr.dyraga@thesis.co","name":"pdyraga"},{"email":"lukasz.zimnoch@keep.network","name":"lukasz-zimnoch"},{"email":"michalina.cienciala@keep.network","name":"michalinacienciala"},{"email":"dmitry.paremski@gmail.com","name":"dimpar"}],"readme":"","readmeFilename":""}