{"_id":"@0xver/solver","_rev":"89-db3b9a2ba69ce09c3d6713cd84fd1d38","name":"@0xver/solver","dist-tags":{"latest":"10.2.2"},"versions":{"10.0.0":{"name":"@0xver/solver","license":"AGPL-3.0-only","version":"10.0.0","description":"Basic building blocks for smart contract development","repository":{"type":"git","url":"git+https://github.com/0xver/solver.git"},"devDependencies":{"prettier":"^2.3.1","prettier-plugin-solidity":"^1.1.1"},"scripts":{"lint":"prettier --use-tabs --trailing-comma 'none' --plugin-search-dir . --check .","format":"prettier --use-tabs --trailing-comma 'none' --plugin-search-dir . --write ."},"gitHead":"b467e6d71bd2f8a515ba464c02c4e98fa4c7094d","bugs":{"url":"https://github.com/0xver/solver/issues"},"homepage":"https://github.com/0xver/solver#readme","_id":"@0xver/solver@10.0.0","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-rHpPuCl+Okt8SeqYBWWjTv19B0Uo+sZJ227iK4SxD/7rQkekmDzauxD3ttdq7c9uG+kIE8b9DSynmw9m8ZWaWQ==","shasum":"eda1f3a94fe86426f0be7733952acb8ac2cc8b39","tarball":"https://registry.npmjs.org/@0xver/solver/-/solver-10.0.0.tgz","fileCount":24,"unpackedSize":62271,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCNTGjkVf7XoUg6ra6gd9kj+DvRS8XUyhYn43bHJ3E9pQIgAwe0m10tc9mg+fzC7GBTIVG11QsKA0UqKYLUnqwLw5g="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9u1UACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmotvQ//UgaChaPKTV/aYlz4vquhl+ay5Xl0zICKYgJC+mq3nvASCT3s\r\n/JmM3D9fBrQlkgT0G/6QmjFpkvKgQUynbOaj/FEhaRVHS01RSeFA0o1IbuQg\r\nHPxGew6x7dqwKTzWkzEnOi1Su3X+sLL4iNzgXsZNNIyTOhiJPgeLt/SgKaML\r\nGyu4z1UtPcYAvi5HcXvo/0u1QA+uTK6nvFr40lfuy6H5NxDlZcQqkVffC5Dh\r\neimC3RsQ3cE5VmXlnK870ijHfQarCtMXyX8mhFsMPgsQsQau4BpTt2zphNiO\r\nJCCi00lvxYjmA0fOqzP7Z2XC2so/1ACudbDddlQHV1PC+pXGHkDjtvEfxZTf\r\nnauhhYjAlV4HvI0CngPoMT5ra9OB671ECvuQKM/s9cQCYFYNNYTHQebOHJF5\r\npiq63Nc0vWmkRbTuODnYBJcsdg59dayA29TAy4m+Wzux3DaZhkEbHGkIQioQ\r\ncCBypd8g71p3n9g9kx7fPZsrUK/4ctj00URnfolqXhJJ/QNBbKLj+dt1HPjy\r\n13TIXvx4h6gLIKwtixa4lSAFEmRs+0bfcy6RCrWET/pt7TfZbjKwYo8MWS27\r\n6zNNTMJ+ExKppcQcBj9Ced5r6/7ZrRLoR0E1zOCDAzGxW71il1YKBcHZnoIY\r\n4vuwWhPspzHjdi2MweNqnFS64rgYevQNkUM=\r\n=228s\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"0xver","email":"sam@slarsen.io"},"directories":{},"maintainers":[{"name":"0xver","email":"sam@slarsen.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/solver_10.0.0_1677126995923_0.5466926829320109"},"_hasShrinkwrap":false},"10.1.0":{"name":"@0xver/solver","license":"AGPL-3.0-only","version":"10.1.0","description":"Basic building blocks for smart contract development","repository":{"type":"git","url":"git+https://github.com/0xver/solver.git"},"devDependencies":{"prettier":"^2.3.1","prettier-plugin-solidity":"^1.1.1"},"scripts":{"lint":"prettier --use-tabs --trailing-comma 'none' --plugin-search-dir . --check .","format":"prettier --use-tabs --trailing-comma 'none' --plugin-search-dir . --write ."},"gitHead":"9b0e769354c1761def56c40c8884593e4ce837d6","bugs":{"url":"https://github.com/0xver/solver/issues"},"homepage":"https://github.com/0xver/solver#readme","_id":"@0xver/solver@10.1.0","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-vy3VGsPUmyOpaBp5qp/dnrLOyRLIQTulzSW4yN6sPRVTUADikH2Csv6R75neYGptuzjlsLxbjSy9O4VUcCCICg==","shasum":"8f9f10ea8f192bb7937bebb6a3375b67a9980c55","tarball":"https://registry.npmjs.org/@0xver/solver/-/solver-10.1.0.tgz","fileCount":24,"unpackedSize":62552,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCVhXakq+GEZJmn4/le1vOz95cnsM08L38TMnZBj7RNeAIgY4M7jxououKeY2FAEd/6wsBGZfXmQtF/R02fX2AlE1Y="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj+RpnACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpmlxAAlpcKvGDRVGIGdSlbV8TTebMISrQNd3wwduQHYjPxn728yWTv\r\nZDwqHRCHi4G1PMChwQR3jS/iHD0N8atD7jgKryH/EuPmPNbdt5qoFEzJvXPk\r\nJFsye+CdWxDVBeuGTTkzaGDfR9NS6JmKoQ+VMpxAajDzTPCKCxR3BydgISzV\r\n3Y71tbeopWa8A1fEcTyo5Wj2vNCE3P10cwGJiPmd3vN2V/vYHZvQRXeRev6n\r\nYrCP9AWI3HTTi/gtKkS8ELak/nCmkEdLCpgC2VxcKMu67mkJgaGPU28YX8Xz\r\nc95hBgB4gNoiPXD3fRO3F9enx8RTS3Q5Q5SCmF8IegWf39fD8xvqFaTOL9uh\r\neBiKYdTStL0XXrivUYUCa+bhJGle1SP1mzHNACLAK8XUcJOJ5U0oL+LkQLql\r\ngYrgIo3c6KC31iRGnusD3vptqrkwsM2QfriM6J+nOj2Q9kSyv9zI8BZpKIYP\r\nSR+r7jG5Y4qafgiP2yS6UD2NyfZgHsvZAtxLjqi5F+WV8fN9+g/hVnrHwHXb\r\nxYb0ine8/gJnCkh5ox9di4jmfm1BXzHtMlHXSTMyPcbheyjpqDXtmp1o5Nug\r\ncCp8GhBjLiuShja7J/H+I8Nr2imfi4MoQtaF46W1eDsvBfIWvKYvB+MzrYlP\r\najrCHG2kT6YT3yfPgTSPfMKUsUX+QcmfKPs=\r\n=33YX\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"0xver","email":"sam@slarsen.io"},"directories":{},"maintainers":[{"name":"0xver","email":"sam@slarsen.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/solver_10.1.0_1677269607672_0.22374208148746644"},"_hasShrinkwrap":false},"10.1.1":{"name":"@0xver/solver","license":"AGPL-3.0-only","version":"10.1.1","description":"Basic building blocks for smart contract development","repository":{"type":"git","url":"git+https://github.com/0xver/solver.git"},"devDependencies":{"prettier":"^2.3.1","prettier-plugin-solidity":"^1.1.1"},"scripts":{"lint":"prettier --use-tabs --trailing-comma 'none' --plugin-search-dir . --check .","format":"prettier --use-tabs --trailing-comma 'none' --plugin-search-dir . --write ."},"gitHead":"2d997ded5f5ce206110cdfffde4824c0270a5fde","bugs":{"url":"https://github.com/0xver/solver/issues"},"homepage":"https://github.com/0xver/solver#readme","_id":"@0xver/solver@10.1.1","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-EqTudQFzBQReBpJ5DPVS0SA1esDfG9I7TdIgTfTzOx/3Nybth3s0BhOk28ad8QN4JyR1eb2C2sV+iqfWLDjw5A==","shasum":"fc7a04c01a3973269e6e44ecf51199665a3a5e04","tarball":"https://registry.npmjs.org/@0xver/solver/-/solver-10.1.1.tgz","fileCount":24,"unpackedSize":62902,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID+3hl8YRf6k4xvS14+rUxug+jSAjX3lxEeBxCYnoZHyAiAdAbMp9CCbo5Pd/4Oi7UloW0OajR8/YW5atOWy/4oBzQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj+ZU1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmolpw//X2buweODbO+EjKsQ4D4bUy6DWX68wPdxRMVonNQGBgbOIJ57\r\nmTj5btG4D/ijgIob/v1ZJ0/xAx2dNcQ6sl35RxntdvnKIQ2JcI9kHposfVzk\r\nk2x8jQOJfXssQYbcgu26Kj0yzG+MjiDIIhVLtYzR/w755U38F+t9MzVrMvnp\r\nb8U4mIZW5EYIAQJ77fj3y1KHGjWnLUTxDwRzr7llx3tD6gzar+zqeyI1Lq67\r\nTKr0L4SOgNh16BrSUHfDskTapMn43KaZt73JmGgjmzO84qy6mAyv1u1Bp3es\r\ny9/eMOw5kj+Qlm5yn+wCf95rztLQuFNasbKg5vSD+uihqlVcBgy+Te1qDyMF\r\nPhpiDmRHkiYwQ0fWzd/rw4yCbDEu3QcOGcz5vHxo+fOL76id6C0apMfNG12H\r\nhqRkO2IZXFJGjybF72OA1Jai5JUOubF+jfgNGLJNxgTR9aaijo8vqgXhSiSi\r\nc6zvaDyHhn2sgDKb99ZembPs6VQWz9ONna1oZbVYMm3jCnfDvHCANs5B3qkP\r\nXqUxkUcSct2e/cIMygVl3THLQQpcVa3+ZtAHpxTrZZx2DfM9wmJYY/y120fA\r\nNi+hRqKtDzC+DuwkyJ1fZnjN5nw0ps13GQjyB1SvwjYKu9RQPU9r0U3bQd6W\r\nvpkx/x7RMf1wN5jtXyKyHJvzF25W1eJ6+No=\r\n=rS1P\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"0xver","email":"sam@slarsen.io"},"directories":{},"maintainers":[{"name":"0xver","email":"sam@slarsen.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/solver_10.1.1_1677301044911_0.053019389453314414"},"_hasShrinkwrap":false},"10.2.0":{"name":"@0xver/solver","license":"AGPL-3.0-only","version":"10.2.0","description":"Basic building blocks for smart contract development","repository":{"type":"git","url":"git+https://github.com/0xver/solver.git"},"devDependencies":{"prettier":"^2.3.1","prettier-plugin-solidity":"^1.1.1"},"scripts":{"lint":"prettier --use-tabs --trailing-comma 'none' --plugin-search-dir . --check .","format":"prettier --use-tabs --trailing-comma 'none' --plugin-search-dir . --write ."},"gitHead":"77f390e4d4d2e8266f9572ce60a6be578e1247a2","bugs":{"url":"https://github.com/0xver/solver/issues"},"homepage":"https://github.com/0xver/solver#readme","_id":"@0xver/solver@10.2.0","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-5RDcVJHPA/KDPVksUSGY0uzSuGJ8uF3gmTTsdJgdd0f3B6Wl6ZIxhxeV4vGNhUNgVf1jijLNRpOw13/bXTj2Zg==","shasum":"25276a6a35f5e06277783a8ac6b31491e3eaee00","tarball":"https://registry.npmjs.org/@0xver/solver/-/solver-10.2.0.tgz","fileCount":24,"unpackedSize":62980,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDfnvqRwa2CfFshscXQ9a2NezSHLieIMXScALjEU2FRwAiBKZdbD6y1p+mTwI2hdWNrXpElxtURq+Wnps/kXuWn2Fw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj+ZwtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrCAg//VmAIw2X+l+lOZk+ZKEB9tG+pMwxvyQ67cq0/zmz/ms7hI+0S\r\nNN/mU/qFmGVHr83RRASDhdoLHXQPZYaup8JgoZN+8RNxhwTsTJYxHEumxARv\r\niOuXnEbJy+b7Nb8DLIDAJ/tJtNdqeZbB19zHv9OaEHvOuDitpmYbJpBP/V3Y\r\nK8Ko8r5IqmqdKVsXkCfYflpICxFwmZkBKb6nBBlU1FL4YqMLgOQ7p7NBZ0I7\r\n5ATZp938++lXhV3vq2q35O9cOzUTkJgTZTJjKs9cm061m3driPUj/uMNh4S2\r\nps0kFqWAC7K8Qgh/8rYHKFoHwqw8jb2P22P3eQCOBgIrYijwgCgy1172EmdM\r\nzXOF0kxQY57YeGMyu2h21fhcV41TFE2SyEI45sp/OYAnZ4ksCgOpi8BWNeLO\r\neqHiGWGR8On2yhtUuzcm8Z3awXk4MZcuQdAQR1mdai4rDbnM+3uy2JaaabNe\r\n8FupzYlaJFnGGUkayz8WtZbxFPklr4b1Uk3TVaAUHKUZOquOqNPUVtWKG8yC\r\nzm/QqZWqVgRiiy/PNUzPlbHlNSy+MDYw7Xi/scR4/6Mtp5+QkSb94cL1g4yL\r\neb3NoNQGLiR6UoTNdQDwCPEjZq+5XxESBIla8K8YD63XTUFtqWYm/PeGvTfr\r\nhjwWEIGwzI4+4KFOIB06AdWCP95AX/swhcQ=\r\n=Ll2j\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"0xver","email":"sam@slarsen.io"},"directories":{},"maintainers":[{"name":"0xver","email":"sam@slarsen.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/solver_10.2.0_1677302829747_0.2267740717419351"},"_hasShrinkwrap":false},"10.2.1":{"name":"@0xver/solver","license":"AGPL-3.0-only","version":"10.2.1","description":"Basic building blocks for smart contract development","repository":{"type":"git","url":"git+https://github.com/0xver/solver.git"},"devDependencies":{"prettier":"^2.3.1","prettier-plugin-solidity":"^1.1.1"},"scripts":{"lint":"prettier --use-tabs --trailing-comma 'none' --plugin-search-dir . --check .","format":"prettier --use-tabs --trailing-comma 'none' --plugin-search-dir . --write ."},"gitHead":"77580a05f1e8af6b0da0ab9437fdee3405790ddd","bugs":{"url":"https://github.com/0xver/solver/issues"},"homepage":"https://github.com/0xver/solver#readme","_id":"@0xver/solver@10.2.1","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-gdgALog3jn3kYsO+w0T1zY9ssZTJ0VPxYMZSRlL/7wi/Fp4y95A6X6+zhhW9cBEuDWwszVSP0g5umY/P1/k0kg==","shasum":"d89ee6a6cf324b968473c00ec85e2d357cd1c224","tarball":"https://registry.npmjs.org/@0xver/solver/-/solver-10.2.1.tgz","fileCount":24,"unpackedSize":62984,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBvHaQCYTswO6Kh/EOALQJaXqz1NJw0Qg51H+FG+jxSmAiBWPQXTTmesCFHT5Kqzn0XX6LcEIX0G2sSAKYiM7R/SMw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj+Z4hACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoDihAAgzFTcGOZFuyqXF1KInoObZo4lpz5i1cFt/nBdxk4oiXmFQKM\r\nzyBy7UxUdZ4w6Y2As8vdaNwRa9rLtjnzINr3rdglFlLrcbRuWQrUgaEVo3b3\r\n81wsAKbBaO0F0Dj2/zWNI4jg9HzviIH+vEt11DSAElywNobPx2/ebUzNf+7i\r\nYqDJ2hBWRD2B80Xq3wWoYhd+4nbmSYdHcl7AX4Nq9Wy6R1FaJPyq2tPpR6KI\r\n6LzEFPAtC2TQ/69/1FUFeIJ6XjvyICit1c28epIVWKa7hlaTqRkqkAc+Kudb\r\nETUkwlYEkn2kGWOxo/54Ww9pqxyMaG8T1wacSGj5cB829Bugm67MjAKGX4ig\r\nwVh2huIlcP0D3APFiot8I7jssaBeipidQ3NCvyMip2/AafHxE6fExMOjtnIO\r\nCJkw2TNieFbc3MKTrgmYMoJGJd2pUcDQ2Pacy0GkaFZROjbAc0OkjNoicIHP\r\nAIdzmaddkKCVC4VyZr4Ckk5MjRCUnhKxZCMCMSrDNhwJSRt6ixmUrkobCd7X\r\n3wMvF2yzRsKJ1N73/UqXLA/KGbuzjXeBQQoJX666hPF0jmEoilmlyJ6Myz5O\r\nAlUbgDdiMYxMQEhqj6rKWciYcDrfGJ7Xbj95r1M0I8jqhIfAnBpoACprTzIO\r\nv43fSNdZMi8KRo+0bxI9GgBnKIDL72yN7Cg=\r\n=3s5v\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"0xver","email":"sam@slarsen.io"},"directories":{},"maintainers":[{"name":"0xver","email":"sam@slarsen.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/solver_10.2.1_1677303329500_0.4002141313198828"},"_hasShrinkwrap":false},"10.2.2":{"name":"@0xver/solver","license":"AGPL-3.0-only","version":"10.2.2","description":"Basic building blocks for smart contract development","repository":{"type":"git","url":"git+https://github.com/0xver/solver.git"},"devDependencies":{"prettier":"^2.3.1","prettier-plugin-solidity":"^1.1.1"},"scripts":{"lint":"prettier --use-tabs --trailing-comma 'none' --plugin-search-dir . --check .","format":"prettier --use-tabs --trailing-comma 'none' --plugin-search-dir . --write ."},"gitHead":"523c399fdf702db3b5a4f0980500b4a341a16760","bugs":{"url":"https://github.com/0xver/solver/issues"},"homepage":"https://github.com/0xver/solver#readme","_id":"@0xver/solver@10.2.2","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-RWmNBVL1xmTHt0yQONmFslON94HbKdzgZIF6Nqwdfclpx/u3glayi6mLMVdiZN8Dwi68+bSopVSMnsptYkhdQA==","shasum":"8ba514f63b49bab9d3ab498303fc44d1f2939736","tarball":"https://registry.npmjs.org/@0xver/solver/-/solver-10.2.2.tgz","fileCount":24,"unpackedSize":63017,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD6hppT3xypUbPo0yH/bZwN84DulKJt6XZ+eLAxSK0e+wIhAIVeVpXag3VzU0lkdfFKMtDEIxnutJYSR9TwyuNug7Lv"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/EdsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpHKQ/+NnzCojciFQMEOFD2qibEA5w4L2CT6F2mNB7fnpY+dJ5x2z7w\r\nY9TppAV4w3Iz+17MXXoSxslc+UVMnsFFl5+x+1apqmPNjYwZtYMaH4aCVXIm\r\nzNOAS0xy4SJslQ+Kwdo+I1Vc0GouOhHuM70NQd9aLvz+pIVa9mBzeSQjyuF+\r\nSppZOiCARIMRbppBHoCfUEd2KdCNtlPEMQkbdVU4SdGNt3HmOtQCKhCtnm6d\r\ny6mk0mrMw1RcFjdyTAzu8HlwMZFSxpBAqymNc7lszpMpCjkDVxbmbnqqVmCj\r\nKjxHK+BcXJe+vIah1kvUaF4QWnmaMC/Ekog59kj5G+8pZTDUYbyE8LY9o8o8\r\nMpx4rX5G1JwSKaNbMujQND7bRrWXKYEMJwX2CgEUdtX90+z8zvBsC2+I2FJ+\r\nyv5IT1m+0qyLPio0yIjbkmoIyRgs/v8NnMWA3O2ggWdIvoNWnQpJI0RkY8s8\r\nu8d3gfYI8XOznyhKgqTx1rpBkZjJr45YyuOSWY/Vmi/VCighIYkdJ57V1yb6\r\nY5Ps70xCdCfm/iihZ1IwUJcuku2N2BgSZ3crX3xaz3Bhe91X2kD7uFnsQH4O\r\n6ms1MaLPWHjyoTVPt4uqALk1MNWWIrdDQotr41eAKNDM284humSFF/D4opia\r\nUVX0NRptsX8t4RxKEevBoUZk53CoAY0OM3w=\r\n=yNFH\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"0xver","email":"sam@slarsen.io"},"directories":{},"maintainers":[{"name":"0xver","email":"sam@slarsen.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/solver_10.2.2_1677477739998_0.5993102359913851"},"_hasShrinkwrap":false}},"time":{"created":"2022-09-22T07:43:09.965Z","1.0.0":"2022-09-22T07:43:10.282Z","modified":"2023-02-27T06:02:20.308Z","1.0.1":"2022-09-22T08:00:18.198Z","1.0.2":"2022-09-22T08:21:22.402Z","1.0.3":"2022-09-22T22:42:33.265Z","1.0.4":"2022-09-23T07:10:19.242Z","1.0.5":"2022-09-24T00:28:31.063Z","1.1.0":"2022-09-24T05:28:48.930Z","1.1.1":"2022-09-24T06:21:15.463Z","1.1.2":"2022-09-25T04:00:27.497Z","1.1.3":"2022-09-25T06:19:14.609Z","1.2.0":"2022-09-25T11:54:59.085Z","1.3.0":"2022-09-25T19:47:05.932Z","1.3.1":"2022-09-25T20:05:27.875Z","1.3.2":"2022-09-26T05:34:24.783Z","1.4.0":"2022-09-26T06:28:04.951Z","1.4.1":"2022-09-27T04:52:55.754Z","1.4.2":"2022-09-27T05:55:23.748Z","1.5.0":"2022-09-27T20:08:00.085Z","1.5.1":"2022-09-27T20:36:05.110Z","1.6.0":"2022-09-29T19:37:30.793Z","1.6.1":"2022-09-29T19:51:40.993Z","1.6.2":"2022-09-30T06:38:20.218Z","1.6.3":"2022-09-30T06:48:10.867Z","1.7.0":"2022-10-02T20:02:04.255Z","1.8.0":"2022-10-02T23:01:48.078Z","1.8.1":"2022-10-03T02:58:37.448Z","1.9.0":"2022-10-03T04:09:38.683Z","1.9.1":"2022-10-03T04:23:32.938Z","2.0.0":"2022-10-03T04:47:04.193Z","2.0.1":"2022-10-03T04:52:59.859Z","2.0.2":"2022-10-03T19:58:49.250Z","2.0.3":"2022-11-06T02:37:04.207Z","3.0.0":"2022-12-18T01:21:56.144Z","3.0.1":"2022-12-19T21:03:24.288Z","3.0.2":"2022-12-19T21:11:39.979Z","4.0.0":"2023-01-07T18:35:05.489Z","4.0.1":"2023-01-07T18:40:59.722Z","4.0.2":"2023-01-07T18:43:00.154Z","5.0.0":"2023-02-19T07:41:50.374Z","5.0.1":"2023-02-19T07:44:25.439Z","6.0.0":"2023-02-23T03:14:11.923Z","6.0.2":"2023-02-23T03:34:33.938Z","10.0.0":"2023-02-23T04:36:36.115Z","10.1.0":"2023-02-24T20:13:27.927Z","10.1.1":"2023-02-25T04:57:25.054Z","10.2.0":"2023-02-25T05:27:09.893Z","10.2.1":"2023-02-25T05:35:29.674Z","10.2.2":"2023-02-27T06:02:20.182Z"},"maintainers":[{"name":"0xver","email":"sam@slarsen.io"}],"description":"Basic building blocks for smart contract development","homepage":"https://github.com/0xver/solver#readme","repository":{"type":"git","url":"git+https://github.com/0xver/solver.git"},"bugs":{"url":"https://github.com/0xver/solver/issues"},"license":"AGPL-3.0-only","readme":"# Solver\n\n[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)\n\nBasic building blocks for smart contract development\n\n## Module Directory\n\n```ml\nauth\n│  ├─ extensions\n│  │  ├─ Operator — \"Operator extension for the ERC173 implementation\"\n├─ ERC173 — \"Implementation of the ERC173 standard\"\ninterface\n│  ├─ errors\n│  │  ├─ extensions\n│  │  │  ├─ IOperatorErrors — \"ERC173 operator extension errors interface\"\n│  │  ├─ IERC173Errors — \"ERC173 errors interface\"\n│  │  ├─ IERC721Errors — \"ERC721 errors interface\"\n│  ├─ extensions\n│  │  ├─ IOperator — \"ERC173 operator extension interface\"\n│  ├─ metadata\n│  │  ├─ IERC20Metadata — \"ERC20Metadata standard interface\"\n│  │  ├─ IERC721Metadata — \"ERC721Metadata standard interface\"\n│  ├─ receiver\n│  │  ├─ IERC721Receiver — \"ERC721Receiver standard interface\"\n├─ IERC20 — \"ERC20 standard interface\"\n├─ IERC165 — \"ERC165 standard interface\"\n├─ IERC173 — \"ERC173 standard interface\"\n├─ IERC721 — \"ERC721 standard interface\"\nlibrary\n├─ Encode — \"Encoding operations\"\n├─ Log — \"Log operations\"\n├─ Merkle — \"Merkle proof\"\nsupports\n├─ ERC165 — \"Implementation of the ERC165 standard\"\ntoken\n├─ metadata\n│  ├─ ERC20Metadata — \"Implementation of the ERC20Metadata standard\"\n│  ├─ ERC721Metadata — \"Implementation of the ERC721Metadata standard\"\n├─ ERC20 — \"Implementation of the ERC20 standard\"\n├─ ERC721 — \"Implementation of the ERC721 standard\"\n```\n\n## NFT Smart Contract Example\n\n```\n// SPDX-License-Identifier: AGPL-3.0-only\n\npragma solidity ^0.8.4;\n\nimport \"@0xver/solver/supports/ERC165.sol\";\nimport \"@0xver/solver/auth/extensions/Operator.sol\";\nimport \"@0xver/solver/token/metadata/ERC721Metadata.sol\";\n\ncontract NFT is ERC165, Operator, ERC721Metadata {\n\terror QuantityLimit(\n\t\tuint256 quantity,\n\t\tuint256 txnLimit,\n\t\tuint256 totalSupplyLimit\n\t);\n\n\tuint256 userTxnLimit = 10;\n\tuint256 authTxnLimit = 100;\n\tuint256 totalSupplyLimit = 10000;\n\n\tconstructor()\n\t\tERC721Metadata(\"Non-fungible Token\", \"NFT\")\n\t\tOperator(msg.sender)\n\t{}\n\n\tfunction mint(uint256 _quantity) public {\n\t\t_eoaOnly();\n\t\tif (\n\t\t\t_quantity + totalSupply() > totalSupplyLimit ||\n\t\t\t_quantity > userTxnLimit\n\t\t) {\n\t\t\trevert QuantityLimit(_quantity, userTxnLimit, totalSupplyLimit);\n\t\t}\n\t\t_mint(msg.sender, _quantity);\n\t}\n\n\tfunction airdrop(address _to, uint256 _quantity) public operatorship {\n\t\tif (\n\t\t\t_quantity + totalSupply() > totalSupplyLimit ||\n\t\t\t_quantity > authTxnLimit\n\t\t) {\n\t\t\trevert QuantityLimit(_quantity, authTxnLimit, totalSupplyLimit);\n\t\t}\n\t\t_mint(_to, _quantity);\n\t}\n\n\tfunction supportsInterface(\n\t\tbytes4 interfaceId\n\t) public pure virtual override(ERC165) returns (bool) {\n\t\treturn\n\t\t\tinterfaceId == type(IERC173).interfaceId ||\n\t\t\tinterfaceId == type(IERC721).interfaceId ||\n\t\t\tinterfaceId == type(IERC721Receiver).interfaceId ||\n\t\t\tinterfaceId == type(IERC721Metadata).interfaceId ||\n\t\t\tsuper.supportsInterface(interfaceId);\n\t}\n}\n```\n\n## Safety\n\nIt is important to consider all security risks when coding a smart contract, such as reentrancy attacks. The ERC721 and ERC20 implementations come with built-in externally owned account (EOA) only checks called `_eoaOnly()`, which should be used in most cases for public mint functions. Here is an example using an ERC721 implementation:\n\n```\nfunction mint() public {\n\t_eoaOnly();\n\n\t/// Mint logic\n\n\t_safeMint(msg.sender);\n}\n```\n\nMajor improvements for this software begin at version 10.0.0. **Only use version 10.0.0 or later** for production. **ALWAYS** review contracts before using as they are not audited.\n\nThis is **experimental software** and is provided on an \"as is\" and \"as available\" basis.\n\nWe **do not give any warranties** and **will not be liable for any loss** incurred through any use of this codebase.\n\n## Installation\n\nInstall **Solver**:\n\n```\nnpm install --save-dev @0xver/solver\n```\n\nInstall [**Hardhat**](https://github.com/NomicFoundation/hardhat):\n\n```\nnpm install --save-dev hardhat\n```\n\n## Acknowledgements\n\nThese contracts were inspired by or directly modified from many sources, primarily:\n\n- [OpenZeppelin](https://github.com/OpenZeppelin/openzeppelin-contracts)\n- [Solmate](https://github.com/transmissions11/solmate)\n","readmeFilename":"README.md"}