{"_id":"@d10r/snapshot-strategies","_rev":"7-e928a35c13212461a3aa74e676e4cf87","name":"@d10r/snapshot-strategies","dist-tags":{"latest":"0.1.6"},"versions":{"0.1.0":{"name":"@d10r/snapshot-strategies","version":"0.1.0","license":"MIT","_id":"@d10r/snapshot-strategies@0.1.0","maintainers":[{"name":"d10r","email":"npm@d10r.net"}],"homepage":"https://github.com/d10r/snapshot-strategies#readme","bugs":{"url":"https://github.com/d10r/snapshot-strategies/issues"},"dist":{"shasum":"944c287ce10acbfdb460f466e33da4b8200bd3c7","tarball":"https://registry.npmjs.org/@d10r/snapshot-strategies/-/snapshot-strategies-0.1.0.tgz","fileCount":1950,"integrity":"sha512-S5jVuLdAQbN/2yrpVlGcycaoZ9mojjSL3Q/mDy5lJD+vm19jumARVlfjhm5uVLs6RdNaF0sii4yp+tDhd3SG6g==","signatures":[{"sig":"MEQCIAMR8bjzs78i3kHzVpUj2y1OjRORAjfH3ObFCGh8VFnMAiB1E31SP7LSvubLvKxuL7vmGqdnjpcrNiLF28PDXUvP3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2565242},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.10.0"},"exports":{".":"./dist/index.js"},"gitHead":"0d0cb3012999ddcbfb08ea3b803f3f3228ce7b87","scripts":{"lint":"eslint src/ test/ --ext .ts,.json","test":"jest -i strategy.test.ts","build":"tsc -p .","test:vp":"jest -i vp.test.ts","lint:fix":"yarn lint --fix","postbuild":"copyfiles -u 1 \"src/**/*.md\" dist/ && copyfiles -u 1 \"src/**/*.json\" dist/","typecheck":"tsc --noEmit","postinstall":"npm run build","prepublishOnly":"npm run build","test:delegation":"jest -i delegation.test.ts","test:validation":"jest -i validation.test.ts"},"_npmUser":{"name":"d10r","email":"npm@d10r.net"},"repository":{"url":"git+https://github.com/d10r/snapshot-strategies.git","type":"git"},"_npmVersion":"11.2.0","description":"```bash yarn ```","directories":{},"resolutions":{"@uniswap/v3-periphery":"1.4.1"},"_nodeVersion":"20.18.3","dependencies":{"dotenv":"^16.0.3","tulons":"^0.0.7","blakejs":"^1.2.1","copyfiles":"^2.4.1","cross-fetch":"^3.1.6","@uniswap/v3-sdk":"^3.9.0","eth-ens-namehash":"^2.0.8","@uniswap/sdk-core":"^3.0.1","@ethersproject/abi":"^5.6.4","@ethersproject/hash":"^5.6.1","@ethersproject/bytes":"^5.6.1","@ethersproject/units":"^5.6.1","@ethersproject/wallet":"^5.6.2","json-to-graphql-query":"^2.2.4","@ethersproject/address":"^5.6.1","@ethersproject/strings":"^5.6.1","@ethersproject/solidity":"^5.6.1","@ethersproject/bignumber":"^5.6.2","@ethersproject/contracts":"^5.6.2","@ethersproject/providers":"^5.6.8","@snapshot-labs/snapshot.js":"^0.12.40","@spruceid/didkit-wasm-node":"^0.2.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.19.0","ts-jest":"^29.1.0","prettier":"^2.7.1","typescript":"^4.7.4","@types/jest":"^29.5.1","@types/node":"^18.0.3","eslint-plugin-import":"^2.26.0","eslint-plugin-prettier":"^4.2.1","@typescript-eslint/parser":"^5.30.5","eslint-config-airbnb-base":"^15.0.0","@typescript-eslint/eslint-plugin":"^5.30.5"},"_npmOperationalInternal":{"tmp":"tmp/snapshot-strategies_0.1.0_1748888336572_0.39137534331138957","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@d10r/snapshot-strategies","version":"0.1.1","license":"MIT","_id":"@d10r/snapshot-strategies@0.1.1","maintainers":[{"name":"d10r","email":"npm@d10r.net"}],"homepage":"https://github.com/d10r/snapshot-strategies#readme","bugs":{"url":"https://github.com/d10r/snapshot-strategies/issues"},"dist":{"shasum":"a937d28a53e535aff52c6e27cff0121a34fdbc80","tarball":"https://registry.npmjs.org/@d10r/snapshot-strategies/-/snapshot-strategies-0.1.1.tgz","fileCount":1950,"integrity":"sha512-LLAcMNcep88fuxsYuT3C7QJOg+R/mHYY8IJKCUNsmVizGcp9AVNFjyiiSL0xr3JLHU7Wf/pcrzTn/gqlozfJdw==","signatures":[{"sig":"MEYCIQCVOvAz87zrRHC7nJrLRsFMz6bjSmK+bQsGKMgZP8pCtgIhAMmpAUxAr3ARqQ9NaB3rLlscrCsMCnovzGpKK6Pce76U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2565206},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.10.0"},"exports":{".":"./dist/index.js"},"gitHead":"0d0cb3012999ddcbfb08ea3b803f3f3228ce7b87","scripts":{"lint":"eslint src/ test/ --ext .ts,.json","test":"jest -i strategy.test.ts","build":"tsc -p .","test:vp":"jest -i vp.test.ts","lint:fix":"yarn lint --fix","postbuild":"copyfiles -u 1 \"src/**/*.md\" dist/ && copyfiles -u 1 \"src/**/*.json\" dist/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build","test:delegation":"jest -i delegation.test.ts","test:validation":"jest -i validation.test.ts"},"_npmUser":{"name":"d10r","email":"npm@d10r.net"},"repository":{"url":"git+https://github.com/d10r/snapshot-strategies.git","type":"git"},"_npmVersion":"11.2.0","description":"```bash yarn ```","directories":{},"resolutions":{"@uniswap/v3-periphery":"1.4.1"},"_nodeVersion":"20.18.3","dependencies":{"dotenv":"^16.0.3","tulons":"^0.0.7","blakejs":"^1.2.1","copyfiles":"^2.4.1","cross-fetch":"^3.1.6","@uniswap/v3-sdk":"^3.9.0","eth-ens-namehash":"^2.0.8","@uniswap/sdk-core":"^3.0.1","@ethersproject/abi":"^5.6.4","@ethersproject/hash":"^5.6.1","@ethersproject/bytes":"^5.6.1","@ethersproject/units":"^5.6.1","@ethersproject/wallet":"^5.6.2","json-to-graphql-query":"^2.2.4","@ethersproject/address":"^5.6.1","@ethersproject/strings":"^5.6.1","@ethersproject/solidity":"^5.6.1","@ethersproject/bignumber":"^5.6.2","@ethersproject/contracts":"^5.6.2","@ethersproject/providers":"^5.6.8","@snapshot-labs/snapshot.js":"^0.12.40","@spruceid/didkit-wasm-node":"^0.2.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.19.0","ts-jest":"^29.1.0","prettier":"^2.7.1","typescript":"^4.7.4","@types/jest":"^29.5.1","@types/node":"^18.0.3","eslint-plugin-import":"^2.26.0","eslint-plugin-prettier":"^4.2.1","@typescript-eslint/parser":"^5.30.5","eslint-config-airbnb-base":"^15.0.0","@typescript-eslint/eslint-plugin":"^5.30.5"},"_npmOperationalInternal":{"tmp":"tmp/snapshot-strategies_0.1.1_1748894255185_0.21173445380843958","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@d10r/snapshot-strategies","version":"0.1.2","license":"MIT","_id":"@d10r/snapshot-strategies@0.1.2","maintainers":[{"name":"d10r","email":"npm@d10r.net"}],"homepage":"https://github.com/d10r/snapshot-strategies#readme","bugs":{"url":"https://github.com/d10r/snapshot-strategies/issues"},"dist":{"shasum":"c37005ebc830d94bc293b5a3a5ef9ed834fe25eb","tarball":"https://registry.npmjs.org/@d10r/snapshot-strategies/-/snapshot-strategies-0.1.2.tgz","fileCount":1950,"integrity":"sha512-aI+jZ6ZCBA+rTcSLuGaWggH6A9IpH/YLrPKnTyV0hqzC/tI+NvXeu/7SYOaqyhh9Q1lwrWv+V8lkyDVu+gbBlQ==","signatures":[{"sig":"MEUCIHtCFGNqpVBhD8uz8HCqPmlCdQBCGyUmn5wG7evjnmB7AiEAruz18mVoGSJAQC7ou7T06vYCkSWUvq360iS3QaqF99o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2565234},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.10.0"},"exports":{".":"./dist/index.js"},"gitHead":"b4d2d9c14cca335df8fb888d71abf1e7301097ca","scripts":{"lint":"eslint src/ test/ --ext .ts,.json","test":"jest -i strategy.test.ts","build":"tsc -p .","test:vp":"jest -i vp.test.ts","lint:fix":"yarn lint --fix","postbuild":"copyfiles -u 1 \"src/**/*.md\" dist/ && copyfiles -u 1 \"src/**/*.json\" dist/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build","test:delegation":"jest -i delegation.test.ts","test:validation":"jest -i validation.test.ts"},"_npmUser":{"name":"d10r","email":"npm@d10r.net"},"repository":{"url":"git+https://github.com/d10r/snapshot-strategies.git","type":"git"},"_npmVersion":"10.9.2","description":"## Development","directories":{},"resolutions":{"@uniswap/v3-periphery":"1.4.1"},"_nodeVersion":"22.15.0","dependencies":{"dotenv":"^16.0.3","tulons":"^0.0.7","blakejs":"^1.2.1","copyfiles":"^2.4.1","cross-fetch":"^3.1.6","@uniswap/v3-sdk":"^3.9.0","eth-ens-namehash":"^2.0.8","@uniswap/sdk-core":"^3.0.1","@ethersproject/abi":"^5.6.4","@ethersproject/hash":"^5.6.1","@ethersproject/bytes":"^5.6.1","@ethersproject/units":"^5.6.1","@ethersproject/wallet":"^5.6.2","json-to-graphql-query":"^2.2.4","@ethersproject/address":"^5.6.1","@ethersproject/strings":"^5.6.1","@ethersproject/solidity":"^5.6.1","@ethersproject/bignumber":"^5.6.2","@ethersproject/contracts":"^5.6.2","@ethersproject/providers":"^5.6.8","@snapshot-labs/snapshot.js":"^0.12.40","@spruceid/didkit-wasm-node":"^0.2.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.19.0","ts-jest":"^29.1.0","prettier":"^2.7.1","typescript":"^4.7.4","@types/jest":"^29.5.1","@types/node":"^18.0.3","eslint-plugin-import":"^2.26.0","eslint-plugin-prettier":"^4.2.1","@typescript-eslint/parser":"^5.30.5","eslint-config-airbnb-base":"^15.0.0","@typescript-eslint/eslint-plugin":"^5.30.5"},"_npmOperationalInternal":{"tmp":"tmp/snapshot-strategies_0.1.2_1749021059478_0.23725783209924312","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@d10r/snapshot-strategies","version":"0.1.3","license":"MIT","_id":"@d10r/snapshot-strategies@0.1.3","maintainers":[{"name":"d10r","email":"npm@d10r.net"}],"dist":{"shasum":"88909fcb61a56fc4c3a31474be0da875b93bb097","tarball":"https://registry.npmjs.org/@d10r/snapshot-strategies/-/snapshot-strategies-0.1.3.tgz","fileCount":3243,"integrity":"sha512-11WDvlCppJg34+evE7aQl/LZnnhOY3RxBdLni+kvZmkH8JOloCS/h4ij4pUvnMWzwgUCy5ShwzA8POY3ehLrSw==","signatures":[{"sig":"MEYCIQDR7n3rF92rl3mOe6wimnXHjnk7TBfHedB7QFMmqA272AIhANo4UlUjH1SKwri48+3WnQ8XuHNRk8tRavc/kmcYdXtG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5602822},"main":"build/src/strategies/index.js","types":"build/src/strategies/index.d.ts","engines":{"node":">=16 < 17 || >= 18"},"gitHead":"7e1fa976e95a55e295270481e0acbef3ecb4535c","scripts":{"dev":"nodemon src/index.ts","lint":"eslint src/ test/ --ext .ts","test":"PORT=3033 start-server-and-test 'yarn start:test' 3033 'dotenv -e test/.env.test jest --runInBand'","build":"tsc","start":"node build/src/index.js","prepare":"husky install","lint:fix":"yarn lint --fix","test:e2e":"PORT=3033 start-server-and-test 'yarn start:test' 3033 'dotenv -e test/.env.test jest --runInBand --collectCoverage=false test/e2e/'","postbuild":"copyfiles -u 0 \"src/**/*.md\" build/ && copyfiles -u 0 \"src/**/*.json\" build/","test:unit":"jest --config=jest.config.unit.ts","typecheck":"tsc --noEmit","start:test":"dotenv -e test/.env.test yarn dev","test:strategy":"jest -i test/strategies/unit/strategy.test.ts --testTimeout=300000 --collectCoverage=false --config=jest.config.unit.ts","test:unit:watch":"yarn test:unit --watch","test:validation":"jest -i test/strategies/unit/validation.test.ts --testTimeout=300000 --collectCoverage=false --config=jest.config.unit.ts","test:strategy:watch":"yarn test:strategy --watch"},"_npmUser":{"name":"d10r","email":"npm@d10r.net"},"prettier":"@snapshot-labs/prettier-config","_npmVersion":"10.9.2","description":"The Score API is a simple RESTful API that calculates scores for various strategies based on the Snapshot protocol. This README outlines the functionality provided by the API and how to use it without any specific code examples.","directories":{},"lint-staged":{"*.{js,ts,json}":["yarn lint:fix"]},"resolutions":{"@uniswap/v3-periphery":"1.4.1"},"_nodeVersion":"22.15.0","dependencies":{"cors":"^2.8.5","redis":"^4.2.0","dotenv":"^16.0.3","tulons":"^0.0.7","blakejs":"^1.2.1","express":"^4.17.1","nodemon":"^2.0.15","ts-node":"^10.9.1","starknet":"6.11.0","typescript":"^4.1.3","cross-fetch":"^3.1.6","@uniswap/v3-sdk":"^3.9.0","eth-ens-namehash":"^2.0.8","rate-limit-redis":"^3.0.2","@uniswap/sdk-core":"^3.0.1","@aws-sdk/client-s3":"^3.18.0","@ethersproject/abi":"^5.6.4","@ethersproject/web":"^5.6.1","express-rate-limit":"^6.9.0","@ethersproject/hash":"^5.6.1","@ethersproject/bytes":"^5.6.1","@ethersproject/units":"^5.6.1","@ethersproject/wallet":"^5.6.2","json-to-graphql-query":"^2.2.4","@ethersproject/address":"^5.7.0","@ethersproject/strings":"^5.6.1","@snapshot-labs/keycard":"0.5.1","@ethersproject/solidity":"^5.6.1","@ethersproject/bignumber":"^5.6.2","@ethersproject/constants":"^5.6.1","@ethersproject/contracts":"^5.6.2","@ethersproject/keccak256":"^5.6.1","@ethersproject/providers":"^5.6.8","@snapshot-labs/snapshot.js":"^0.14.14","@spruceid/didkit-wasm-node":"^0.2.1","@snapshot-labs/snapshot-sentry":"^1.5.5","@snapshot-labs/snapshot-metrics":"^1.4.1"},"eslintConfig":{"extends":"@snapshot-labs"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.0.0","husky":"^8.0.3","eslint":"8.28.0","ts-jest":"^28.0.0","prettier":"^3.0.3","copyfiles":"^2.4.1","supertest":"^6.3.3","dotenv-cli":"^7.2.1","@types/jest":"^29.5.3","@types/node":"^14.14.21","lint-staged":"^14.0.0","@types/express":"^4.17.11","start-server-and-test":"^2.0.0","@snapshot-labs/eslint-config":"^0.1.0-beta.18","@snapshot-labs/prettier-config":"^0.1.0-beta.19","jest-environment-node-single-context":"28"},"_npmOperationalInternal":{"tmp":"tmp/snapshot-strategies_0.1.3_1769108771441_0.21116943658521037","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@d10r/snapshot-strategies","version":"0.1.4","license":"MIT","_id":"@d10r/snapshot-strategies@0.1.4","maintainers":[{"name":"d10r","email":"npm@d10r.net"}],"dist":{"shasum":"6f46f6d8a3d955fe865b234ee1d61da5bec27b1b","tarball":"https://registry.npmjs.org/@d10r/snapshot-strategies/-/snapshot-strategies-0.1.4.tgz","fileCount":3243,"integrity":"sha512-MQg5uMuhgwX3Tx7BR2oqSCcjiYMX02dY9AIZrXLfNO17JFQnyx1cWH5Lfbw35CAgJgWCE+uW7h+vMehmF4YhSQ==","signatures":[{"sig":"MEUCICyHLPRB5AIywckJKUCejIbrz2XbMBhBKym/aAy8Zoi+AiEAhX1XholQWF/b/Gq9z3dNoFLeRR51MLA5xo9xBdqCSRk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5617082},"main":"build/src/strategies/index.js","types":"build/src/strategies/index.d.ts","engines":{"node":">=16 < 17 || >= 18"},"gitHead":"49bd62d9dbda9390780db1ab58c6b5bf7fcc06b5","scripts":{"dev":"nodemon src/index.ts","lint":"eslint src/ test/ --ext .ts","test":"PORT=3033 start-server-and-test 'yarn start:test' 3033 'dotenv -e test/.env.test jest --runInBand'","build":"tsc","start":"node build/src/index.js","prepare":"husky install","lint:fix":"yarn lint --fix","test:e2e":"PORT=3033 start-server-and-test 'yarn start:test' 3033 'dotenv -e test/.env.test jest --runInBand --collectCoverage=false test/e2e/'","postbuild":"copyfiles -u 0 \"src/**/*.md\" build/ && copyfiles -u 0 \"src/**/*.json\" build/","test:unit":"jest --config=jest.config.unit.ts","typecheck":"tsc --noEmit","start:test":"dotenv -e test/.env.test yarn dev","test:strategy":"jest -i test/strategies/unit/strategy.test.ts --testTimeout=300000 --collectCoverage=false --config=jest.config.unit.ts","test:unit:watch":"yarn test:unit --watch","test:validation":"jest -i test/strategies/unit/validation.test.ts --testTimeout=300000 --collectCoverage=false --config=jest.config.unit.ts","test:strategy:watch":"yarn test:strategy --watch"},"_npmUser":{"name":"d10r","email":"npm@d10r.net"},"prettier":"@snapshot-labs/prettier-config","_npmVersion":"10.9.2","description":"This was originally an unmodified fork of https://github.com/snapshot-labs/snapshot-strategies. All we needed was the package to be published on npm so we can use snapshot strategies in our applications (e.g. in https://github.com/superfluid-org/sup-metri","directories":{},"lint-staged":{"*.{js,ts,json}":["yarn lint:fix"]},"resolutions":{"@uniswap/v3-periphery":"1.4.1"},"_nodeVersion":"22.15.0","dependencies":{"cors":"^2.8.5","redis":"^4.2.0","dotenv":"^16.0.3","tulons":"^0.0.7","blakejs":"^1.2.1","express":"^4.17.1","nodemon":"^2.0.15","ts-node":"^10.9.1","starknet":"6.11.0","typescript":"^4.1.3","cross-fetch":"^3.1.6","@uniswap/v3-sdk":"^3.9.0","eth-ens-namehash":"^2.0.8","rate-limit-redis":"^3.0.2","@uniswap/sdk-core":"^3.0.1","@aws-sdk/client-s3":"^3.18.0","@ethersproject/abi":"^5.6.4","@ethersproject/web":"^5.6.1","express-rate-limit":"^6.9.0","@ethersproject/hash":"^5.6.1","@ethersproject/bytes":"^5.6.1","@ethersproject/units":"^5.6.1","@ethersproject/wallet":"^5.6.2","json-to-graphql-query":"^2.2.4","@ethersproject/address":"^5.7.0","@ethersproject/strings":"^5.6.1","@snapshot-labs/keycard":"0.5.1","@ethersproject/solidity":"^5.6.1","@ethersproject/bignumber":"^5.6.2","@ethersproject/constants":"^5.6.1","@ethersproject/contracts":"^5.6.2","@ethersproject/keccak256":"^5.6.1","@ethersproject/providers":"^5.6.8","@snapshot-labs/snapshot.js":"^0.14.14","@spruceid/didkit-wasm-node":"^0.2.1","@snapshot-labs/snapshot-sentry":"^1.5.5","@snapshot-labs/snapshot-metrics":"^1.4.1"},"eslintConfig":{"extends":"@snapshot-labs"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.0.0","husky":"^8.0.3","eslint":"8.28.0","ts-jest":"^28.0.0","prettier":"^3.0.3","copyfiles":"^2.4.1","supertest":"^6.3.3","dotenv-cli":"^7.2.1","@types/jest":"^29.5.3","@types/node":"^14.14.21","lint-staged":"^14.0.0","@types/express":"^4.17.11","start-server-and-test":"^2.0.0","@snapshot-labs/eslint-config":"^0.1.0-beta.18","@snapshot-labs/prettier-config":"^0.1.0-beta.19","jest-environment-node-single-context":"28"},"_npmOperationalInternal":{"tmp":"tmp/snapshot-strategies_0.1.4_1769432576961_0.443092436801771","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@d10r/snapshot-strategies","version":"0.1.5","license":"MIT","_id":"@d10r/snapshot-strategies@0.1.5","maintainers":[{"name":"d10r","email":"npm@d10r.net"}],"dist":{"shasum":"0a048b96f85a4adfd8e5ea95d7929ecb34b2c967","tarball":"https://registry.npmjs.org/@d10r/snapshot-strategies/-/snapshot-strategies-0.1.5.tgz","fileCount":3243,"integrity":"sha512-aZZBB+nh/tMyaOgz4uc8qTO3sArz8nNYufMUAO0TMgxOUC4rrQTI4Rt1jE92EQL851HigPZyiNH4jGvZq1QH4w==","signatures":[{"sig":"MEUCIH2oFSiXdlZPBjBGSfd6rVOmjwABUzeSxiH3t7e6L+tqAiEAiqRZX04HeR8QdDE4U29SAVjk+1h0psowDb9LJaP4w4U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5617347},"main":"build/src/strategies/index.js","types":"build/src/strategies/index.d.ts","engines":{"node":">=16 < 17 || >= 18"},"gitHead":"961e069b4839f386728cf7628f6d245d5505b5c4","scripts":{"dev":"nodemon src/index.ts","lint":"eslint src/ test/ --ext .ts","test":"PORT=3033 start-server-and-test 'yarn start:test' 3033 'dotenv -e test/.env.test jest --runInBand'","build":"tsc","start":"node build/src/index.js","prepare":"husky install","lint:fix":"yarn lint --fix","test:e2e":"PORT=3033 start-server-and-test 'yarn start:test' 3033 'dotenv -e test/.env.test jest --runInBand --collectCoverage=false test/e2e/'","postbuild":"copyfiles -u 0 \"src/**/*.md\" build/ && copyfiles -u 0 \"src/**/*.json\" build/","test:unit":"jest --config=jest.config.unit.ts","typecheck":"tsc --noEmit","start:test":"dotenv -e test/.env.test yarn dev","test:strategy":"jest -i test/strategies/unit/strategy.test.ts --testTimeout=300000 --collectCoverage=false --config=jest.config.unit.ts","test:unit:watch":"yarn test:unit --watch","test:validation":"jest -i test/strategies/unit/validation.test.ts --testTimeout=300000 --collectCoverage=false --config=jest.config.unit.ts","test:strategy:watch":"yarn test:strategy --watch"},"_npmUser":{"name":"d10r","email":"npm@d10r.net"},"prettier":"@snapshot-labs/prettier-config","_npmVersion":"10.9.2","description":"This was originally an unmodified fork of https://github.com/snapshot-labs/snapshot-strategies. All we needed was the package to be published on npm so we can use snapshot strategies in our applications (e.g. in https://github.com/superfluid-org/sup-metri","directories":{},"lint-staged":{"*.{js,ts,json}":["yarn lint:fix"]},"resolutions":{"@uniswap/v3-periphery":"1.4.1"},"_nodeVersion":"22.15.0","dependencies":{"cors":"^2.8.5","redis":"^4.2.0","dotenv":"^16.0.3","tulons":"^0.0.7","blakejs":"^1.2.1","express":"^4.17.1","nodemon":"^2.0.15","ts-node":"^10.9.1","starknet":"6.11.0","typescript":"^4.1.3","cross-fetch":"^3.1.6","@uniswap/v3-sdk":"^3.9.0","eth-ens-namehash":"^2.0.8","rate-limit-redis":"^3.0.2","@uniswap/sdk-core":"^3.0.1","@aws-sdk/client-s3":"^3.18.0","@ethersproject/abi":"^5.6.4","@ethersproject/web":"^5.6.1","express-rate-limit":"^6.9.0","@ethersproject/hash":"^5.6.1","@ethersproject/bytes":"^5.6.1","@ethersproject/units":"^5.6.1","@ethersproject/wallet":"^5.6.2","json-to-graphql-query":"^2.2.4","@ethersproject/address":"^5.7.0","@ethersproject/strings":"^5.6.1","@snapshot-labs/keycard":"0.5.1","@ethersproject/solidity":"^5.6.1","@ethersproject/bignumber":"^5.6.2","@ethersproject/constants":"^5.6.1","@ethersproject/contracts":"^5.6.2","@ethersproject/keccak256":"^5.6.1","@ethersproject/providers":"^5.6.8","@snapshot-labs/snapshot.js":"^0.14.14","@spruceid/didkit-wasm-node":"^0.2.1","@snapshot-labs/snapshot-sentry":"^1.5.5","@snapshot-labs/snapshot-metrics":"^1.4.1"},"eslintConfig":{"extends":"@snapshot-labs"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e","devDependencies":{"jest":"^28.0.0","husky":"^8.0.3","eslint":"8.28.0","ts-jest":"^28.0.0","prettier":"^3.0.3","copyfiles":"^2.4.1","supertest":"^6.3.3","dotenv-cli":"^7.2.1","@types/jest":"^29.5.3","@types/node":"^14.14.21","lint-staged":"^14.0.0","@types/express":"^4.17.11","start-server-and-test":"^2.0.0","@snapshot-labs/eslint-config":"^0.1.0-beta.18","@snapshot-labs/prettier-config":"^0.1.0-beta.19","jest-environment-node-single-context":"28"},"_npmOperationalInternal":{"tmp":"tmp/snapshot-strategies_0.1.5_1775839030243_0.6853879366391891","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@d10r/snapshot-strategies","version":"0.1.6","license":"MIT","main":"build/src/strategies/index.js","types":"build/src/strategies/index.d.ts","scripts":{"prepare":"husky install","lint":"eslint src/ test/ --ext .ts","lint:fix":"yarn lint --fix","typecheck":"tsc --noEmit","build":" rm -r build && tsc","postbuild":"copyfiles -u 0 \"src/**/*.md\" build/ && copyfiles -u 0 \"src/**/*.json\" build/","dev":"nodemon src/index.ts","start":"node build/src/index.js","test:unit":"jest --config=jest.config.unit.ts","test:unit:watch":"yarn test:unit --watch","test:strategy":"jest -i test/strategies/unit/strategy.test.ts --testTimeout=300000 --collectCoverage=false --config=jest.config.unit.ts","test:strategy:watch":"yarn test:strategy --watch","test:validation":"jest -i test/strategies/unit/validation.test.ts --testTimeout=300000 --collectCoverage=false --config=jest.config.unit.ts","start:test":"dotenv -e test/.env.test yarn dev","test":"PORT=3033 start-server-and-test 'yarn start:test' 3033 'dotenv -e test/.env.test jest --runInBand'","test:e2e":"PORT=3033 start-server-and-test 'yarn start:test' 3033 'dotenv -e test/.env.test jest --runInBand --collectCoverage=false test/e2e/'"},"dependencies":{"@aws-sdk/client-s3":"^3.18.0","@ethersproject/abi":"^5.6.4","@ethersproject/address":"^5.7.0","@ethersproject/bignumber":"^5.6.2","@ethersproject/bytes":"^5.6.1","@ethersproject/constants":"^5.6.1","@ethersproject/contracts":"^5.6.2","@ethersproject/hash":"^5.6.1","@ethersproject/keccak256":"^5.6.1","@ethersproject/providers":"^5.6.8","@ethersproject/solidity":"^5.6.1","@ethersproject/strings":"^5.6.1","@ethersproject/units":"^5.6.1","@ethersproject/wallet":"^5.6.2","@ethersproject/web":"^5.6.1","@snapshot-labs/keycard":"0.5.1","@snapshot-labs/snapshot-metrics":"^1.4.1","@snapshot-labs/snapshot-sentry":"^1.5.5","@snapshot-labs/snapshot.js":"^0.14.14","@spruceid/didkit-wasm-node":"^0.2.1","@uniswap/sdk-core":"^3.0.1","@uniswap/v3-sdk":"^3.9.0","blakejs":"^1.2.1","cors":"^2.8.5","cross-fetch":"^3.1.6","dotenv":"^16.0.3","eth-ens-namehash":"^2.0.8","express":"^4.17.1","express-rate-limit":"^6.9.0","json-to-graphql-query":"^2.2.4","nodemon":"^2.0.15","rate-limit-redis":"^3.0.2","redis":"^4.2.0","starknet":"6.11.0","ts-node":"^10.9.1","tulons":"^0.0.7","typescript":"^4.1.3"},"lint-staged":{"*.{js,ts,json}":["yarn lint:fix"]},"devDependencies":{"@snapshot-labs/eslint-config":"^0.1.0-beta.18","@snapshot-labs/prettier-config":"^0.1.0-beta.19","@types/express":"^4.17.11","@types/jest":"^29.5.3","@types/node":"^14.14.21","copyfiles":"^2.4.1","dotenv-cli":"^7.2.1","eslint":"8.28.0","husky":"^8.0.3","jest":"^28.0.0","jest-environment-node-single-context":"28","lint-staged":"^14.0.0","prettier":"^3.0.3","start-server-and-test":"^2.0.0","supertest":"^6.3.3","ts-jest":"^28.0.0"},"eslintConfig":{"extends":"@snapshot-labs"},"prettier":"@snapshot-labs/prettier-config","engines":{"node":">=16 < 17 || >= 18"},"resolutions":{"@uniswap/v3-periphery":"1.4.1"},"packageManager":"yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e","_id":"@d10r/snapshot-strategies@0.1.6","gitHead":"bc8d6d7b93d79ae4d01eb17a7855b16f5e40a7f6","description":"This was originally an unmodified fork of https://github.com/snapshot-labs/snapshot-strategies. All we needed was the package to be published on npm so we can use snapshot strategies in our applications (e.g. in https://github.com/superfluid-org/sup-metri","_nodeVersion":"22.15.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-UeD6chNGNDWQFRMxWb+SETt8U9rbW3pRWMovWFKdyc2hWLJyoZOWa+T9W2gGLPLqj4aBjspdjoa6L86isWtegw==","shasum":"ca9d36c55fa09938762bce5c626c82f0d81abc62","tarball":"https://registry.npmjs.org/@d10r/snapshot-strategies/-/snapshot-strategies-0.1.6.tgz","fileCount":3244,"unpackedSize":5633304,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICjR9occG45Td/mfbQpOg0IoebGzROrzsIDFY8QWS9rVAiEA1CGgwoZVKrKCdPI9muX3bfy+04lh0RcfFnYoPbm+AYY="}]},"_npmUser":{"name":"d10r","email":"npm@d10r.net"},"directories":{},"maintainers":[{"name":"d10r","email":"npm@d10r.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/snapshot-strategies_0.1.6_1776269977437_0.7382434339660566"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-02T18:18:56.457Z","modified":"2026-04-15T16:19:37.873Z","0.1.0":"2025-06-02T18:18:56.840Z","0.1.1":"2025-06-02T19:57:35.510Z","0.1.2":"2025-06-04T07:10:59.799Z","0.1.3":"2026-01-22T19:06:11.797Z","0.1.4":"2026-01-26T13:02:57.242Z","0.1.5":"2026-04-10T16:37:10.455Z","0.1.6":"2026-04-15T16:19:37.743Z"},"license":"MIT","description":"This was originally an unmodified fork of https://github.com/snapshot-labs/snapshot-strategies. All we needed was the package to be published on npm so we can use snapshot strategies in our applications (e.g. in https://github.com/superfluid-org/sup-metri","maintainers":[{"name":"d10r","email":"npm@d10r.net"}],"readme":"# About this fork\n\nThis was originally an unmodified fork of https://github.com/snapshot-labs/snapshot-strategies.\nAll we needed was the package to be published on npm so we can use snapshot strategies in our applications (e.g. in https://github.com/superfluid-org/sup-metrics-api) without relying on the Score API (and its rate limits).\n\nThe upstream snapshot-strategies repository was later archived an merged into https://github.com/snapshot-labs/score-api .\nThis project wasn't set up such that if published to npm, the functionality we wanted worked out of the box.\nSpecifically, we want something like\n```\nimport snapshotStrategies from '@d10r/snapshot-strategies';\n\n...\nconst chunkScores = await snapshotStrategies.utils.getScoresDirect(...);\n...\n```\n\nThus this fork now tracks the upstream scores-api repository, but with small **modifications**:\n- `package.json` and `tsconfig.json`: for the published npm package to expose the strategy relation functionality as before\n- `src/strategies/utils.ts`: use the RPC provider specified by the caller instead of the default one\n\n# Snapshot Score API\nThe Score API is a simple RESTful API that calculates scores for various strategies based on the Snapshot protocol. This README outlines the functionality provided by the API and how to use it without any specific code examples.\n\n## 🚀 For strategy & validation development\n\nIf you're looking to add new voting strategies or validation strategies, please see the [**STRATEGIES.md**](STRATEGIES.md) guide which contains detailed instructions for developers.\n\n---\nWe recommend using the [snapshot.js](https://github.com/snapshot-labs/snapshot.js) library for obtaining voting power and doing validation, as it provides a simple and convenient way to interact with the Snapshot Score API. The snapshot.js library offers the following methods:\n\n- `getScores()` - https://docs.snapshot.org/tools/snapshot.js#getscores\n- `getVp()` - https://github.com/snapshot-labs/snapshot.js/blob/ad55119b0b684f7d6eeaa06f3642f7424d1fa949/src/utils.ts#L190\n- `validate()` - https://github.com/snapshot-labs/snapshot.js/blob/ad55119b0b684f7d6eeaa06f3642f7424d1fa949/src/utils.ts#L227\n---\n\nThe URL for score api is `https://score.snapshot.org`\n\n## API Endpoints\n\n### 1. POST /\nThe base endpoint serves as the entry point for various methods:\n\n- get_vp: Calculate voting power for a given address using strategies.\n- validate: Validate a given address using validation strategies.\n\n\n\n### 2. GET /api\nThis endpoint returns the current version of the Snapshot Score API and block numbers for different networks.\n\nSend a GET request to this endpoint to receive a JSON object containing the version and block_num properties.\n\n### 3. GET /api/strategies\nThis endpoint returns a list of available strategies for calculating voting power.\n\nSend a GET request to this endpoint to receive a JSON object containing key-value pairs representing the strategies and their respective information.\n\n### 4. GET /api/validations\nThis endpoint returns a list of available validation strategies for address validation.\n\nSend a GET request to this endpoint to receive a JSON object containing key-value pairs representing the validation strategies and their respective information.\n\n### 5. POST /api/scores\nThis endpoint calculates scores for a given set of strategies and addresses.\n\nTo use this endpoint, send a POST request with a JSON body containing the params object. The params object should include:\n\n- space: The id of the space to calculate scores for.\n- network: The network ID to use for calculations.\n- snapshot: A specific block number or 'latest' for the latest block.\n- addresses: An array of addresses for which the scores will be calculated.\n- strategies: An array of strategy objects, each containing a name and params property.\n- force: A boolean indicating whether to force the calculation of scores despite potential restrictions.\n\n## Running the API locally with Docker\n\nYou can run the API locally using Docker. To do so, follow these steps:\n\n1. Clone the repository and `cd` into it.\n2. Copy the `.env.example` file to `.env` and set necessary values.\n3. Run `docker-compose up` to start the API.\n\n## Running load tests with Artillery\n\nYou can run load tests on the API using Artillery. To do so, follow these steps:\n\n1. Clone the repository and `cd` into it.\n2. Copy the `.env.example` file to `.env` and set necessary values.\n3. Run `npm install` to install dependencies.\n4. Install Artillery globally by running `npm install -g artillery`.\n5. Run `artillery run -t <your server url> ./test/load/<test-file>.yml` to run the load test.` to run the load test.\n","readmeFilename":"README.md"}