{"_id":"@defi-wonderland/lopt","_rev":"23-b74372ebc42ad0c068e707f976994fea","name":"@defi-wonderland/lopt","dist-tags":{"rc":"1.0.0-rc.0","latest":"1.0.0"},"versions":{"0.0.1-rc.1":{"name":"@defi-wonderland/lopt","version":"0.0.1-rc.1","keywords":["ethereum","smart-contracts","test","solidity","hardhat","mocking","fakes","mocks","chai"],"author":{"name":"DeFi Wonderland"},"license":"MIT","_id":"@defi-wonderland/lopt@0.0.1-rc.1","maintainers":[{"name":"enderman0x","email":"enderman0x@defi.sucks"},{"name":"wei3erhase","email":"hernan@defi.sucks"},{"name":"kiwi745","email":"kiwi745@protonmail.com"}],"contributors":[{"url":"https://github.com/kiwi745","name":"kiwi745"}],"homepage":"https://github.com/defi-wonderland/lopt#readme","bugs":{"url":"https://github.com/defi-wonderland/lopt/issues"},"dist":{"shasum":"8c4b0779b0449f0e645a5e114a999ae5c3cdc5fe","tarball":"https://registry.npmjs.org/@defi-wonderland/lopt/-/lopt-0.0.1-rc.1.tgz","fileCount":61,"integrity":"sha512-yyW5MDMDQVlX/6P6DJmHwxnE3yghyaWbAWeetS9ylnW0AANzeg/HTlLwhHE5npkRTKJlAd9FrY1Xrcoo9DzHlw==","signatures":[{"sig":"MEYCIQD8sA8cVB8UA3PE7VDjTSzy67O/cVgXhdlUtnKy/dnmRgIhAI5nbdCitYKMctV4Kcth6UamwtPq4OIW0/+BMxS8oWbd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":90122,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+UBGCRA9TVsSAnZWagAABL4P/2KdBAE2fmWr2fakL20H\nJkRa5R/zmVH9ik5X/zyU8+7KkjuzHRq7uyz7A7BYD/kkG/utAsV6dkNDfPw6\nxtwrXRHOU9WnRXEcJonGtAl6tJEr4v8aXZ48jP/mmvwl1DoStx5MVpTWLjfT\nQX07ZmGj3lLavPUTAhQQnlr23H4lgIEzUn8UAVfEeLdc4T6YqXm2mHwLHkHp\nJOapm4sASA26kaQdPJ+3+hNnYiOu7mLM6Qyz3fxi7fPa5e6IDnEbPFjir7ve\nqBZqG9SeRPv39RUH6kdOBApXwPcjToSKh8LRKwVFpS/vM9DUZq0IA4HmfHPc\n0/5ownjODeoS3otnDZuYMLwi3LtKAgvN7Jp/zE+s6mvry+0jkpKwZkhEEUh2\noVcjfqcgdzZzMVY0PainEmfk55ftLjjqprsWYjX2SouUeQABJK5bjdIwIVR+\nJva/pQJF4voF4b0OPKX2yp64d7fxS6zeKScoVKCCb9mSXaayu7k5atXRn7+l\nB3RP1kMfKxtE6EWrl2aE7mdQa4BDip6ozfeHAzO4A7swn2V9wJgDV1U7IZkT\nmf6pHAooSJJmCCQW6Z/eO+ntSUBVer57X8QP4qWkVHwAbY3akNPdJKMrWkxB\nJRWQMXaJ2WWN86fcQ2Gj77sFS788O6CL2NtPPk013OMOOEGV9ejofdvz8N3e\nH0RV\r\n=n4gB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index","types":"dist/src/index","gitHead":"377906942ab82dd913da7badd63bd490f01208a7","scripts":{"test":"yarn compile && yarn test:nocompile","build":"tsc -p tsconfig.build.json","compile":"hardhat compile","release":"standard-version","lint:fix":"sort-package-json && cross-env prettier --write './**' && cross-env solhint --fix 'contracts/**/*.sol' 'interfaces/**/*.sol'","docs:watch":"sphinx-autobuild -a docs/source docs/_build/html --watch docs/source","lint:check":"cross-env solhint 'contracts/**/*.sol' 'interfaces/**/*.sol' && cross-env prettier --check './**'","pre-release":"yarn release --prerelease rc","docs:install":"pip install -r docs/requirements.txt","test:nocompile":"cross-env mocha 'test/unit/**/*.spec.ts'"},"_npmUser":{"name":"kiwi745","email":"kiwi745@protonmail.com"},"repository":{"url":"git+https://github.com/defi-wonderland/lopt.git","type":"git"},"_npmVersion":"6.14.9","description":"Mocking framework for Solidity contracts","directories":{},"resolutions":{"@ethereumjs/tx":"3.1.4","@ethereumjs/vm":"5.3.1","@ethereumjs/block":"3.2.1","@ethereumjs/common":"2.2.0","@ethereumjs/blockchain":"5.2.1"},"_nodeVersion":"14.15.3","dependencies":{"diff":"^5.0.0","rxjs":"^7.2.0","ethers":"5.4.1","lodash":"4.17.21","hardhat":"2.3.0","@nomiclabs/ethereumjs-vm":"^4.2.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"4.3.4","husky":"6.0.0","mocha":"9.0.0","pinst":"2.1.6","solhint":"3.3.6","ts-node":"10.0.0","inquirer":"8.1.0","prettier":"2.3.1","cross-env":"7.0.3","typechain":"5.1.1","typescript":"4.3.2","@types/chai":"4.2.18","@types/diff":"^5.0.1","@types/node":"15.12.2","@types/mocha":"8.2.2","@types/lodash":"4.14.170","tsconfig-paths":"^3.9.0","@commitlint/cli":"12.1.4","ethereum-waffle":"3.4.0","standard-version":"9.3.0","sort-package-json":"1.50.0","@typechain/hardhat":"2.0.2","@typechain/ethers-v5":"7.0.1","hardhat-preprocessor":"0.1.4","solhint-plugin-prettier":"0.0.5","prettier-plugin-solidity":"1.0.0-beta.13","@nomiclabs/hardhat-ethers":"2.0.2","@nomiclabs/hardhat-waffle":"2.0.1","@commitlint/config-conventional":"12.1.4"},"_npmOperationalInternal":{"tmp":"tmp/lopt_0.0.1-rc.1_1626947654146_0.8000203739102738","host":"s3://npm-registry-packages"}},"0.0.1-rc.2":{"name":"@defi-wonderland/lopt","version":"0.0.1-rc.2","keywords":["ethereum","smart-contracts","test","solidity","hardhat","mocking","fakes","mocks","chai"],"author":{"name":"DeFi Wonderland"},"license":"MIT","_id":"@defi-wonderland/lopt@0.0.1-rc.2","maintainers":[{"name":"enderman0x","email":"enderman0x@defi.sucks"},{"name":"wei3erhase","email":"hernan@defi.sucks"},{"name":"kiwi745","email":"kiwi745@protonmail.com"}],"contributors":[{"url":"https://github.com/kiwi745","name":"kiwi745"}],"homepage":"https://github.com/defi-wonderland/lopt#readme","bugs":{"url":"https://github.com/defi-wonderland/lopt/issues"},"dist":{"shasum":"a3680d3d16b353af90cd07c78c484e230a60d046","tarball":"https://registry.npmjs.org/@defi-wonderland/lopt/-/lopt-0.0.1-rc.2.tgz","fileCount":61,"integrity":"sha512-OuulpgYI73L7e2RiCOhfAl2nslIM48xP5fHYXEz+Tao+BzFGGkBQIsQZ62Wl1zvT1lG6gqgHkqg39x7tofdZgA==","signatures":[{"sig":"MEYCIQC05FhhbTIvsSlbYY+GXsM+lzSc4rNH4xPe3IlXnjDo7QIhAIwjSwVlpSev2KECf2i014Kn7qBPMtwyVS0PGsvtE50W","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":90378,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+WDhCRA9TVsSAnZWagAAt3kQAIw7++ayHgQLhh+WU1Qa\npdpaLMV6cj5sJKgA3ZTUNZuaghbiEL8fIQP+Aim8JzX0GgWaFbtvJU0W540A\nK4c0YnriLCnaZnmQ2FpgIvOgw8x5ZElsP+/qP4xIQQGkYl/MOz6+CKrfY3C7\nDsBmx68xNNIqnB84nrKXGaNEIuzP1GMESLQ0vDPP/CBgMJyS/hJzDKUJDN64\nvTX58S2PDioDBunefDVo8o9ALi8TQcGcIeDDyOjMqfgHakwtGBLVbxQuZo/i\nyK7PlFAwe64BQyONS4s2xYGc0SFhKR5uIwF0BedOdF1VNxxVeEDlhAyfzX8I\n2t/pVE2+N2QWezEMqxQoP3eo5toqF6EkMlbQhW0mVdhNzvQg/HXIMhTiMJZJ\n5xc5FvSMBsEnTxzuom8EA9IJrQngSV7HZT+2DF49ZPQuq0CkZQH3658ltdtG\nLz7XJWCOwTII15CoemmyUC/r4LfKE3db89dukrg41GaBQ3JhelIky9lm41zZ\nn7eTcb3CISH1NY80NAg387Of2Ua5g0HZQip0r4RyfSG45UBXsVhZuP0CepcS\nxuyqRFeE492CkVRtlATJqxic5i5NU3UudG/RxTD3eAHRji7B9Xxw2KjapKSg\n9C9my76gAmbn20hfou55BWAB+mko/7cZZA+9FmGjRPLJyaPGK6U/GGPOnSNo\nUNN7\r\n=txnk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index","types":"dist/src/index","readme":"# lopt\n\n[![NPM Package](https://img.shields.io/npm/v/@defi-wonderland/lopt.svg?style=flat-square)](https://www.npmjs.org/package/@defi-wonderland/lopt)\n\n`lopt` is a utility package that can generate mock Solidity contracts in the form of `fakes` and `mocks`.\n\n`lopt` is based in [@eth-optimism/smock](https://github.com/ethereum-optimism/optimism/tree/develop/packages/smock), [sinon](https://sinonjs.org/) and [sinon-chai](https://www.chaijs.com/plugins/sinon-chai/).\n\nSome benefits of using `lopt`:\n\n- Test syntax is easy to understand, just like `sinon-chai`\n- Supports both chai `expect` and `should` syntax\n- Fully typed objects, that will **extend** your contract functions when using `typechain` (highly recommended)\n- Mock and assert contract calls, without the need of even deploying it by using `fakes`\n- If you need your contract logic, just wrap it in a `mock` and start asserting calls or changing behaviour\n- Fully tested library\n\n---\n\n## Documentation\n\nDocumentation is available [here](https://lopt.readthedocs.io/en/latest/).\n\n---\n\n## Installation\n\nYou can easily install `lopt` via npm:\n\n```\nnpm install --save-dev @defi-wonderland/lopt\n```\n\nOr via yarn:\n\n```\nyarn add --dev @defi-wonderland/lopt\n```\n\n---\n\n## How to use\n\n```typescript\n...\nimport { FakeContract, lopt } from '@defi-wonderland/lopt';\n\nchai.should(); // if you like should syntax\nchai.use(lopt.matchers);\n\ndescribe('MyContract', () => {\n    let myContractFake: FakeContract<MyContract>;\n\n    beforeEach(async () => {\n        ...\n        myContractFake = await lopt.fake<MyContract>('MyContract');\n    });\n\n    it('some test', () => {\n        ...\n        myContractFake.bark.atCall(0).should.be.calledWith('Hello World');\n    });\n});\n```\n\n---\n\n## Why the name `lopt`?\n\nLoki's alternative name is Lopt, and Loki was obviously taken.\n\nLoki is the God of Mischief, a trickster, and the purpose of mocking libraries is basically to trick the tests.\n","gitHead":"7940bf63748e328c284ace243d24fbb74becf7f9","scripts":{"test":"yarn compile && yarn test:nocompile","build":"tsc -p tsconfig.build.json","compile":"hardhat compile","release":"standard-version","lint:fix":"sort-package-json && cross-env prettier --write './**' && cross-env solhint --fix 'contracts/**/*.sol' 'interfaces/**/*.sol'","docs:watch":"sphinx-autobuild -a docs/source docs/_build/html --watch docs/source","lint:check":"cross-env solhint 'contracts/**/*.sol' 'interfaces/**/*.sol' && cross-env prettier --check './**'","pre-release":"yarn release --prerelease rc","docs:install":"pip install -r docs/requirements.txt","test:nocompile":"cross-env mocha 'test/unit/**/*.spec.ts'"},"_npmUser":{"name":"kiwi745","email":"kiwi745@protonmail.com"},"repository":{"url":"git+https://github.com/defi-wonderland/lopt.git","type":"git"},"_npmVersion":"6.14.9","description":"Mocking framework for Solidity contracts","directories":{},"resolutions":{"@ethereumjs/tx":"3.1.4","@ethereumjs/vm":"5.3.1","@ethereumjs/block":"3.2.1","@ethereumjs/common":"2.2.0","@ethereumjs/blockchain":"5.2.1"},"_nodeVersion":"14.15.3","dependencies":{"diff":"^5.0.0","rxjs":"^7.2.0","ethers":"5.4.1","lodash":"4.17.21","hardhat":"2.3.0","@nomiclabs/ethereumjs-vm":"^4.2.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"4.3.4","husky":"6.0.0","mocha":"9.0.0","pinst":"2.1.6","solhint":"3.3.6","ts-node":"10.0.0","inquirer":"8.1.0","prettier":"2.3.1","cross-env":"7.0.3","typechain":"5.1.1","typescript":"4.3.2","@types/chai":"4.2.18","@types/diff":"^5.0.1","@types/node":"15.12.2","@types/mocha":"8.2.2","@types/lodash":"4.14.170","tsconfig-paths":"^3.9.0","@commitlint/cli":"12.1.4","ethereum-waffle":"3.4.0","standard-version":"9.3.0","sort-package-json":"1.50.0","@typechain/hardhat":"2.0.2","@typechain/ethers-v5":"7.0.1","hardhat-preprocessor":"0.1.4","solhint-plugin-prettier":"0.0.5","prettier-plugin-solidity":"1.0.0-beta.13","@nomiclabs/hardhat-ethers":"2.0.2","@nomiclabs/hardhat-waffle":"2.0.1","@commitlint/config-conventional":"12.1.4"},"_npmOperationalInternal":{"tmp":"tmp/lopt_0.0.1-rc.2_1626956001336_0.6890375523807424","host":"s3://npm-registry-packages"}},"0.0.1-rc.3":{"name":"@defi-wonderland/lopt","version":"0.0.1-rc.3","keywords":["ethereum","smart-contracts","test","solidity","hardhat","mocking","fakes","mocks","chai"],"author":{"name":"DeFi Wonderland"},"license":"MIT","_id":"@defi-wonderland/lopt@0.0.1-rc.3","maintainers":[{"name":"enderman0x","email":"enderman0x@defi.sucks"},{"name":"wei3erhase","email":"hernan@defi.sucks"},{"name":"kiwi745","email":"kiwi745@protonmail.com"}],"contributors":[{"url":"https://github.com/kiwi745","name":"kiwi745"}],"homepage":"https://github.com/defi-wonderland/lopt#readme","bugs":{"url":"https://github.com/defi-wonderland/lopt/issues"},"dist":{"shasum":"41630315e04420e8199fe115252e796cc5ecd3ae","tarball":"https://registry.npmjs.org/@defi-wonderland/lopt/-/lopt-0.0.1-rc.3.tgz","fileCount":61,"integrity":"sha512-OZNlH+BiTaJAt0e6VbhD/aug63iBtq9gDUWxIubGsRToN4U//q6AJb5KFnks+OsmdrgUuxdOhfB05HF11Rdqqg==","signatures":[{"sig":"MEUCIQCQKjpgGNv8aS9877StAZDTJ4A0Knr5UDxy7iPGc2DD6AIgFtYJcc3uddNl73MREuwR/rwIACRsEOkddaRjr2DIemE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":92733,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+WHmCRA9TVsSAnZWagAAZzUP/17hkSrwPHp09rumjL+v\nmHTU/KHx4XJWQZBk0ey46oXnJKiWrZYKthYHjSMCo/YHakq7JKrcsh/3XT7q\nijb6e/MQqcUYNpHugVqGRI3qfc03NstZhRiRqHP2AEQxDhseZH1BHsy2hiyj\nXZPJKJegqV6/a3o3brCTizyoLETuFWdvqpK6lXPiynrm4UkT6v1pllcL2NOZ\nzAZpchF8t15CVaByW8rEf6B46Eu3rb3uhDMd/nmy3uEwsC7GtsjBPvL8Pn/u\nPhzKmyXD/z0/Cj2vZFeTz1Ie4fDU22/T9nXuXpwSY7uzbX7OJwM3yrpFWhLc\nQ7+XBuWrXY+aDz/eKMcfDxnpW5pTnM8WhNa1XLSqHVDJ9CS4e/Snd74a5VDJ\nSrXK/qBVK6Mo/5p07TCkM4X5RivGNsABHq1OEYGO5xEPAPVd/uXuK2vbgH6v\nkaFzGdBUKIEcylrMdvGKeoi0y914Emk8sfrnQD7g7EA8+3tQiLgUVGyQjpE5\n4sCBU0YEUshq37MaHKP7iMG2poQqOxrIIJ0TB1MdXLqxuVmZaypGhhjvMRYD\ncfyfNa4em4bxzXnoS/F08E7CShhQ808zo4SJn9jYrSGFujkenaRJWlxdwmre\ndpAuZPDpAfAEvhmamev+o2v/WXNvmp+VFDMjsAgMgYsri8lNzBKC/FoZAQhe\nNpDD\r\n=0ef6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index","types":"dist/src/index","readme":"# lopt\n\n[![NPM Package](https://img.shields.io/npm/v/@defi-wonderland/lopt.svg?style=flat-square)](https://www.npmjs.org/package/@defi-wonderland/lopt)\n\n`lopt` is a utility package that can generate mock Solidity contracts in the form of `fakes` and `mocks`.\n\n`lopt` is based in [@eth-optimism/smock](https://github.com/ethereum-optimism/optimism/tree/develop/packages/smock), [sinon](https://sinonjs.org/) and [sinon-chai](https://www.chaijs.com/plugins/sinon-chai/).\n\nSome benefits of using `lopt`:\n\n- Test syntax is easy to understand, just like `sinon-chai`\n- Supports both chai `expect` and `should` syntax\n- Fully typed objects, that will **extend** your contract functions when using `typechain` (highly recommended)\n- Mock and assert contract calls, without the need of even deploying it by using `fakes`\n- If you need your contract logic, just wrap it in a `mock` and start asserting calls or changing behaviour\n- Fully tested library\n\n---\n\n## Documentation\n\nDocumentation is available [here](https://lopt.readthedocs.io/en/latest/).\n\n---\n\n## Installation\n\nYou can easily install `lopt` via npm:\n\n```\nnpm install --save-dev @defi-wonderland/lopt\n```\n\nOr via yarn:\n\n```\nyarn add --dev @defi-wonderland/lopt\n```\n\n---\n\n## How to use\n\n```typescript\n...\nimport { FakeContract, lopt } from '@defi-wonderland/lopt';\n\nchai.should(); // if you like should syntax\nchai.use(lopt.matchers);\n\ndescribe('MyContract', () => {\n    let myContractFake: FakeContract<MyContract>;\n\n    beforeEach(async () => {\n        ...\n        myContractFake = await lopt.fake<MyContract>('MyContract');\n    });\n\n    it('some test', () => {\n        ...\n        myContractFake.bark.atCall(0).should.be.calledWith('Hello World');\n    });\n});\n```\n\n---\n\n## Why the name `lopt`?\n\nLoki's alternative name is Lopt, and Loki was obviously taken.\n\nLoki is the God of Mischief, a trickster, and the purpose of mocking libraries is basically to trick the tests.\n","gitHead":"e9ed2e42c3eb3692cb7f3a09864340d5cadbb340","scripts":{"test":"yarn compile && yarn test:nocompile","build":"rm -rf dist && tsc -p tsconfig.build.json","compile":"hardhat compile","release":"yarn build && standard-version","lint:fix":"sort-package-json && cross-env prettier --write './**' && cross-env solhint --fix 'contracts/**/*.sol' 'interfaces/**/*.sol'","docs:watch":"sphinx-autobuild -a docs/source docs/_build/html --watch docs/source","lint:check":"cross-env solhint 'contracts/**/*.sol' 'interfaces/**/*.sol' && cross-env prettier --check './**'","pre-release":"yarn build && standard-version --prerelease rc","docs:install":"pip install -r docs/requirements.txt","test:nocompile":"cross-env mocha 'test/unit/**/*.spec.ts'"},"_npmUser":{"name":"kiwi745","email":"kiwi745@protonmail.com"},"repository":{"url":"git+https://github.com/defi-wonderland/lopt.git","type":"git"},"_npmVersion":"6.14.9","description":"Mocking framework for Solidity contracts","directories":{},"resolutions":{"@ethereumjs/tx":"3.1.4","@ethereumjs/vm":"5.3.1","@ethereumjs/block":"3.2.1","@ethereumjs/common":"2.2.0","@ethereumjs/blockchain":"5.2.1"},"_nodeVersion":"14.15.3","dependencies":{"diff":"^5.0.0","rxjs":"^7.2.0","ethers":"5.4.1","lodash":"4.17.21","hardhat":"2.3.0","@nomiclabs/ethereumjs-vm":"^4.2.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"4.3.4","husky":"6.0.0","mocha":"9.0.0","pinst":"2.1.6","solhint":"3.3.6","ts-node":"10.0.0","inquirer":"8.1.0","prettier":"2.3.1","cross-env":"7.0.3","typechain":"5.1.1","typescript":"4.3.2","@types/chai":"4.2.18","@types/diff":"^5.0.1","@types/node":"15.12.2","@types/mocha":"8.2.2","@types/lodash":"4.14.170","tsconfig-paths":"^3.9.0","@commitlint/cli":"12.1.4","ethereum-waffle":"3.4.0","standard-version":"9.3.0","sort-package-json":"1.50.0","@typechain/hardhat":"2.0.2","@typechain/ethers-v5":"7.0.1","hardhat-preprocessor":"0.1.4","solhint-plugin-prettier":"0.0.5","prettier-plugin-solidity":"1.0.0-beta.13","@nomiclabs/hardhat-ethers":"2.0.2","@nomiclabs/hardhat-waffle":"2.0.1","@commitlint/config-conventional":"12.1.4"},"_npmOperationalInternal":{"tmp":"tmp/lopt_0.0.1-rc.3_1626956262158_0.5360328575625575","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"@defi-wonderland/lopt","version":"0.0.2","keywords":["ethereum","smart-contracts","test","solidity","hardhat","mocking","fakes","mocks","chai"],"author":{"name":"DeFi Wonderland"},"license":"MIT","_id":"@defi-wonderland/lopt@0.0.2","maintainers":[{"name":"enderman0x","email":"enderman0x@defi.sucks"},{"name":"wei3erhase","email":"hernan@defi.sucks"},{"name":"kiwi745","email":"kiwi745@protonmail.com"}],"contributors":[{"url":"https://github.com/kiwi745","name":"kiwi745"}],"homepage":"https://github.com/defi-wonderland/lopt#readme","bugs":{"url":"https://github.com/defi-wonderland/lopt/issues"},"dist":{"shasum":"72f17cc7e8cdb7b83dadc24a9352f07d40b88537","tarball":"https://registry.npmjs.org/@defi-wonderland/lopt/-/lopt-0.0.2.tgz","fileCount":61,"integrity":"sha512-k0RXJKeIGsFr4rxyiUScBxktR7xQx4VtHq74c9YA/uo0B79wO8YTsNnN0Dl7IxEiYgTM0FS8wHuYgrms7D2xhA==","signatures":[{"sig":"MEYCIQDynLzvdrnQsCIc0dzEQB3sItVZebtBSROIpIDGAi5h4gIhAL4HLOxtNsP5smYsVTQF3a43GW8cb55EiVXlOzgK226j","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":93177,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+WPqCRA9TVsSAnZWagAA8sAP/A194oXQWdC5bLav6UTb\ng66ey2uT+/5y2K/+A4X050AWSUbCgjRdf1XvdMhmDJQR7w2RPgGKtMJ+oMTo\nHO4G+twvEmMljdLZO11F6qVDaoSBxufw/uqIThnBiGTcCIAJvtQC11Cu+Gw+\n1zc8h5xWwFWOzqxHEMz9YTgSkmnKRgMuJd0ItUFAzxpZqD3XwmTrxwQruzEj\nBsDBeIajyqpz97VCuL0Dn6eYt09ke4SFfrFLXviWyswPTsDI7MKqySTbKaKC\nL4GY26Fl16YshkIgIH3QaIOzGKb5VvtlF8p52i4ySqNcBzX/3HVUs3Z44i82\nDDEZYWiB7qqlosXBpzNH/XGajUe6TrqwffKZHzaArXSNxNc7lhNnjD9lCZx4\nlmXPeBm9MuN/Msb00Yi+Mb+3b6Ln72ASAxIo6YJJDA/Ma68LEDZLHr09ZJky\nHB1XikVpeTZ7v0S+B1oyvS6jUdOFKgt5mN/AMJ2FuEDWZ4JanGDBForBkJUN\nzQBRZ7cJ1hQBsI9tbVDiKosJKE6DAfyg8geqxwrgFxvb8vhhPWBa8UGeu++J\nf2a5754g9kZwjSjjunWdUWbufmEMco9sTEnHPUqTTdHzn3VA92Cmsso8UyGQ\n76XEUoxVyFAZWjRftHFCJKU8M7K6J7wZ7grwkfh0poPWUUv4v87VJb98jrY4\npv5g\r\n=5dbm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index","types":"dist/src/index","gitHead":"36255e9d40f16e84396f932b349243e7b209382a","scripts":{"test":"yarn compile && yarn test:nocompile","build":"rm -rf dist && tsc -p tsconfig.build.json","compile":"hardhat compile","release":"yarn build && standard-version","lint:fix":"sort-package-json && cross-env prettier --write './**' && cross-env solhint --fix 'contracts/**/*.sol' 'interfaces/**/*.sol'","docs:watch":"sphinx-autobuild -a docs/source docs/_build/html --watch docs/source","lint:check":"cross-env solhint 'contracts/**/*.sol' 'interfaces/**/*.sol' && cross-env prettier --check './**'","pre-release":"yarn build && standard-version --prerelease rc","docs:install":"pip install -r docs/requirements.txt","test:nocompile":"cross-env mocha 'test/unit/**/*.spec.ts'"},"_npmUser":{"name":"kiwi745","email":"kiwi745@protonmail.com"},"repository":{"url":"git+https://github.com/defi-wonderland/lopt.git","type":"git"},"_npmVersion":"6.14.9","description":"Mocking framework for Solidity contracts","directories":{},"resolutions":{"@ethereumjs/tx":"3.1.4","@ethereumjs/vm":"5.3.1","@ethereumjs/block":"3.2.1","@ethereumjs/common":"2.2.0","@ethereumjs/blockchain":"5.2.1"},"_nodeVersion":"14.15.3","dependencies":{"diff":"^5.0.0","rxjs":"^7.2.0","ethers":"5.4.1","lodash":"4.17.21","hardhat":"2.3.0","@nomiclabs/ethereumjs-vm":"^4.2.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"4.3.4","husky":"6.0.0","mocha":"9.0.0","pinst":"2.1.6","solhint":"3.3.6","ts-node":"10.0.0","inquirer":"8.1.0","prettier":"2.3.1","cross-env":"7.0.3","typechain":"5.1.1","typescript":"4.3.2","@types/chai":"4.2.18","@types/diff":"^5.0.1","@types/node":"15.12.2","@types/mocha":"8.2.2","@types/lodash":"4.14.170","tsconfig-paths":"^3.9.0","@commitlint/cli":"12.1.4","ethereum-waffle":"3.4.0","standard-version":"9.3.0","sort-package-json":"1.50.0","@typechain/hardhat":"2.0.2","@typechain/ethers-v5":"7.0.1","hardhat-preprocessor":"0.1.4","solhint-plugin-prettier":"0.0.5","prettier-plugin-solidity":"1.0.0-beta.13","@nomiclabs/hardhat-ethers":"2.0.2","@nomiclabs/hardhat-waffle":"2.0.1","@commitlint/config-conventional":"12.1.4"},"_npmOperationalInternal":{"tmp":"tmp/lopt_0.0.2_1626956778799_0.49868805987222875","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"@defi-wonderland/lopt","version":"0.0.3","keywords":["ethereum","smart-contracts","test","solidity","hardhat","mocking","fakes","mocks","chai"],"author":{"name":"DeFi Wonderland"},"license":"MIT","_id":"@defi-wonderland/lopt@0.0.3","maintainers":[{"name":"enderman0x","email":"enderman0x@defi.sucks"},{"name":"wei3erhase","email":"hernan@defi.sucks"},{"name":"kiwi745","email":"kiwi745@protonmail.com"}],"contributors":[{"url":"https://github.com/kiwi745","name":"kiwi745"}],"homepage":"https://github.com/defi-wonderland/lopt#readme","bugs":{"url":"https://github.com/defi-wonderland/lopt/issues"},"dist":{"shasum":"3708f485b956230bc4e5ea50d645d237f628be65","tarball":"https://registry.npmjs.org/@defi-wonderland/lopt/-/lopt-0.0.3.tgz","fileCount":61,"integrity":"sha512-uIIw6byeR291ibEnOMCJZZg+RtnoxWo1dQhwXU7VcdQd7iaqXScwWlu2qc1qQc8VnIQ9N6nP5WnVUtfQqU7/Og==","signatures":[{"sig":"MEQCIEBrvHGpeB4/2yjQbhXJ4/csU/ZbPTxnBzDk8RNi0ppjAiARbNUSWsnkP34JbYvzpwIiypLgnhK+Y4mKaJBsHg9Wzg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":94576,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+rzJCRA9TVsSAnZWagAAIsYQAIINwfeobkyFq4U3rHgm\nfiH2aceZKLabIgcn787S+3JXHPRCC3GJarAwdi6Kbd9igGto3L2LBxuONMYo\na1fnQWHCZA8p1a12D60sfDWiM7OrROBPnAPRvuGT4fYKiuyv5nrHQoVS2ucI\njyPeb+8XvYd89wShNkdPBix7cKupStINu2egh+1yhRZia2M5S7LkDxt7ZamC\nQgxHrXVu5z0OoH9cotD7N4Qz9VE8tOO8+AskFAAAeLMtO3IR8vFVSU8f3y04\nNkL5bLni3SBlpMLW8bywepxrUkg0bKt9YYzhWy/r3nUNOb4cVdItvYwYrYUq\n+emtdXYVLVu+BhY8ZGDd5AVfJkaeKm17MpEvo6G2889XokQ6Jq848WLcShGi\ndsArN25du8gDbN4jEKaKO4Ov0CWBK5emyGp9fWha7Vd4SnuqNYL93FFZtzD8\nt0Cv0vWgfq9YBbs87zbGmYj2wCaohfO+Nw3zT8+1hghHh2GkfZbDf6MqwzMf\n5Xq0fd61WOBxKQcCtWdmxI6pHP8VV83VIf5PpoJAV99PrlSn0OxQZSNRuCsG\nsYmgu05b+mt6UxAtK+U6QSUstey/bBHjGZyxOllrB5YfiYuCnuEI91DdRCBG\nPfD78XFbcPOFN5ARxaZ3Oayof2ROSwvPe+HHv/VBlu5ObURBULOOr/FGs1aF\nQvOq\r\n=kst+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index","types":"dist/src/index","gitHead":"5a7dd43ca11875d8da635b940a410806e0fa8d3d","scripts":{"test":"yarn compile && yarn test:nocompile","build":"rm -rf dist && tsc -p tsconfig.build.json","compile":"hardhat compile","release":"yarn build && standard-version","lint:fix":"sort-package-json && cross-env prettier --write './**' && cross-env solhint --fix 'contracts/**/*.sol' 'interfaces/**/*.sol'","docs:watch":"sphinx-autobuild -a docs/source docs/_build/html --watch docs/source","lint:check":"cross-env solhint 'contracts/**/*.sol' 'interfaces/**/*.sol' && cross-env prettier --check './**'","pre-release":"yarn build && standard-version --prerelease rc","docs:install":"pip install -r docs/requirements.txt","test:nocompile":"cross-env mocha 'test/unit/**/*.spec.ts'"},"_npmUser":{"name":"kiwi745","email":"kiwi745@protonmail.com"},"repository":{"url":"git+https://github.com/defi-wonderland/lopt.git","type":"git"},"_npmVersion":"6.14.9","description":"Mocking framework for Solidity contracts","directories":{},"resolutions":{"@ethereumjs/tx":"3.1.4","@ethereumjs/vm":"5.3.1","@ethereumjs/block":"3.2.1","@ethereumjs/common":"2.2.0","@ethereumjs/blockchain":"5.2.1"},"_nodeVersion":"14.15.3","dependencies":{"diff":"^5.0.0","rxjs":"^7.2.0","ethers":"5.4.1","lodash":"4.17.21","hardhat":"2.3.0","@nomiclabs/ethereumjs-vm":"^4.2.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"4.3.4","husky":"6.0.0","mocha":"9.0.0","pinst":"2.1.6","solhint":"3.3.6","ts-node":"10.0.0","inquirer":"8.1.0","prettier":"2.3.1","cross-env":"7.0.3","typechain":"5.1.1","typescript":"4.3.2","@types/chai":"4.2.18","@types/diff":"^5.0.1","@types/node":"15.12.2","@types/mocha":"8.2.2","@types/lodash":"4.14.170","tsconfig-paths":"^3.9.0","@commitlint/cli":"12.1.4","ethereum-waffle":"3.4.0","standard-version":"9.3.0","sort-package-json":"1.50.0","@typechain/hardhat":"2.0.2","@typechain/ethers-v5":"7.0.1","hardhat-preprocessor":"0.1.4","solhint-plugin-prettier":"0.0.5","prettier-plugin-solidity":"1.0.0-beta.13","@nomiclabs/hardhat-ethers":"2.0.2","@nomiclabs/hardhat-waffle":"2.0.1","@commitlint/config-conventional":"12.1.4"},"_npmOperationalInternal":{"tmp":"tmp/lopt_0.0.3_1627045065214_0.456565256494474","host":"s3://npm-registry-packages"}},"0.0.4-rc.0":{"name":"@defi-wonderland/lopt","version":"0.0.4-rc.0","keywords":["ethereum","smart-contracts","test","solidity","hardhat","mocking","fakes","mocks","chai"],"author":{"name":"DeFi Wonderland"},"license":"MIT","_id":"@defi-wonderland/lopt@0.0.4-rc.0","maintainers":[{"name":"enderman0x","email":"enderman0x@defi.sucks"},{"name":"wei3erhase","email":"hernan@defi.sucks"},{"name":"kiwi745","email":"kiwi745@protonmail.com"}],"contributors":[{"url":"https://github.com/kiwi745","name":"kiwi745"}],"homepage":"https://github.com/defi-wonderland/lopt#readme","bugs":{"url":"https://github.com/defi-wonderland/lopt/issues"},"dist":{"shasum":"0e0c2b12349ff0daba017ee312536f071acd770f","tarball":"https://registry.npmjs.org/@defi-wonderland/lopt/-/lopt-0.0.4-rc.0.tgz","fileCount":61,"integrity":"sha512-9ulCfdPbPuk3QfCcw5rz2wYwCb+lGCJJiMVqoDYBJYqL2GWQ2J7pfzKX3/L9SEG9dfmqFZni0No65owBwXY5Ug==","signatures":[{"sig":"MEUCIQDR9IzWFzMOf8paRqkAsadgiq0AMeSbnLN+VWgA8XEvDgIgA25NQLHWQOh7+4amoho6xBWdUix82TfzMuLlNSk8eqM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":92993,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg/TyDCRA9TVsSAnZWagAAEvcP/1uyfAp7tuiiNjEzezln\nGQUBZ9tGgDrOJNnHZjyONT0+/Zvb7sGn9ZYbbqVlu5pZ8+AlLZE+y+lZwRbe\nwZsYCcgVlolREt3pFf7jQXOphJiT4lgg8V5xr0Fm6ILwvOJPH3UFJfQJ0l3A\nnVrzDzQ7eo9gfsnO+EV+RSA60vRnY9DN74wkvTal+XrEYWJTfDBXEj+TSOc+\nI4qSl3+nWXVIk6NRdAPZYvrKb4sP9k7h+tx2Q3G+9j0nMhf948UzXwUyBk1J\nCAumO/xrAkUbBKfN/dRLp048rM9/aDsOVU1YRHdv4dO3rvkQheMfVkUed0Eq\nfuK8Px2Q9lWdX+77Sb6YGxH6Hg6NgFS9dMyxf/w10XC+NxO0y0oAMLcpwdjo\nqgu2rqThemfyoRZAkgzgWJ/hRDAFVeEeCyW3Lh4R/cGTgVC20bLwa81v8mrL\npDnPAs4GmcciSX5NUvT06f8X8UEGavLJswCstvPGF44n/zeAmPY8UaVgAtmi\nJSG4KbeY3US7wgmjj4P3K/gUEySMw36eC1VwacXKZ/GQHv8qqw4X9Eor6g7h\nN8oT5QQGRFfRDjYWSLrepyehIM1gNAHnaLE+8yg8TcOFt4d6XQCnI4Tg0WFZ\n28jiI6NJCcsc4u8/O8SJvKZufszJszGGdTnMvCzLrzAtOnRgA4+/LZDq1wo8\nIJIm\r\n=HT+Y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index","types":"dist/src/index","readme":"# lopt\n\n[![NPM Package](https://img.shields.io/npm/v/@defi-wonderland/lopt.svg?style=flat-square)](https://www.npmjs.org/package/@defi-wonderland/lopt)\n\n`lopt` is a utility package that can generate mock Solidity contracts in the form of `fakes` and `mocks`.\n\n`lopt` is based in [@eth-optimism/smock](https://github.com/ethereum-optimism/optimism/tree/develop/packages/smock), [sinon](https://sinonjs.org/) and [sinon-chai](https://www.chaijs.com/plugins/sinon-chai/).\n\nSome benefits of using `lopt`:\n\n- Test syntax is easy to understand, just like `sinon-chai`\n- Supports both chai `expect` and `should` syntax\n- Fully typed objects, that will **extend** your contract functions when using `typechain` (highly recommended)\n- Mock and assert contract calls, without the need of even deploying it by using `fakes`\n- If you need your contract logic, just wrap it in a `mock` and start asserting calls or changing behaviour\n- Fully tested library\n\n---\n\n## Documentation\n\nDocumentation is available [here](https://lopt.readthedocs.io/en/latest/).\n\n---\n\n## Installation\n\nYou can easily install `lopt` via npm:\n\n```\nnpm install --save-dev @defi-wonderland/lopt\n```\n\nOr via yarn:\n\n```\nyarn add --dev @defi-wonderland/lopt\n```\n\n---\n\n## How to use\n\n```typescript\n...\nimport { FakeContract, lopt } from '@defi-wonderland/lopt';\n\nchai.should(); // if you like should syntax\nchai.use(lopt.matchers);\n\ndescribe('MyContract', () => {\n    let myContractFake: FakeContract<MyContract>;\n\n    beforeEach(async () => {\n        ...\n        myContractFake = await lopt.fake<MyContract>('MyContract');\n    });\n\n    it('some test', () => {\n        ...\n        myContractFake.bark.atCall(0).should.be.calledWith('Hello World');\n    });\n});\n```\n\n---\n\n## Why the name `lopt`?\n\nLoki's alternative name is Lopt, and Loki was obviously taken.\n\nLoki is the God of Mischief, a trickster, and the purpose of mocking libraries is basically to trick the tests.\n","gitHead":"0fbd209009d0cc15db63a80f8f5105ffaf6879e8","scripts":{"test":"yarn compile && yarn test:nocompile","build":"rm -rf dist && tsc -p tsconfig.build.json","compile":"hardhat compile","release":"yarn build && standard-version","lint:fix":"sort-package-json && cross-env prettier --write './**' && cross-env solhint --fix 'contracts/**/*.sol' 'interfaces/**/*.sol'","docs:watch":"sphinx-autobuild -a docs/source docs/_build/html --watch docs/source","lint:check":"cross-env solhint 'contracts/**/*.sol' 'interfaces/**/*.sol' && cross-env prettier --check './**'","pre-release":"yarn build && standard-version --prerelease rc","docs:install":"pip install -r docs/requirements.txt","test:nocompile":"cross-env mocha 'test/unit/**/*.spec.ts'"},"_npmUser":{"name":"kiwi745","email":"kiwi745@protonmail.com"},"repository":{"url":"git+https://github.com/defi-wonderland/lopt.git","type":"git"},"_npmVersion":"6.14.9","description":"Mocking framework for Solidity contracts","directories":{},"resolutions":{"@ethereumjs/tx":"3.1.4","@ethereumjs/vm":"5.3.1","@ethereumjs/block":"3.2.1","@ethereumjs/common":"2.2.0","@ethereumjs/blockchain":"5.2.1"},"_nodeVersion":"14.15.3","dependencies":{"diff":"^5.0.0","rxjs":"^7.2.0","lodash.isequal":"^4.5.0","lodash.isequalwith":"^4.4.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"4.3.4","husky":"6.0.0","mocha":"9.0.0","pinst":"2.1.6","ethers":"5.4.1","hardhat":"2.3.0","solhint":"3.3.6","ts-node":"10.0.0","inquirer":"8.1.0","prettier":"2.3.1","cross-env":"7.0.3","typechain":"5.1.1","typescript":"4.3.2","@types/chai":"4.2.18","@types/diff":"^5.0.1","@types/node":"15.12.2","@types/mocha":"8.2.2","@types/lodash":"4.14.170","tsconfig-paths":"^3.9.0","@commitlint/cli":"12.1.4","ethereum-waffle":"3.4.0","standard-version":"9.3.0","sort-package-json":"1.50.0","@typechain/hardhat":"2.0.2","@typechain/ethers-v5":"7.0.1","hardhat-preprocessor":"0.1.4","@types/lodash.isequal":"^4.5.5","solhint-plugin-prettier":"0.0.5","@nomiclabs/ethereumjs-vm":"^4.2.2","prettier-plugin-solidity":"1.0.0-beta.13","@nomiclabs/hardhat-ethers":"2.0.2","@nomiclabs/hardhat-waffle":"2.0.1","@types/lodash.isequalwith":"^4.4.6","@commitlint/config-conventional":"12.1.4"},"peerDependencies":{"ethers":"^5","hardhat":"^2","@ethersproject/abi":"^5","@nomiclabs/ethereumjs-vm":"^4","@nomiclabs/hardhat-ethers":"^2","@ethersproject/abstract-signer":"^5","@ethersproject/abstract-provider":"^5"},"_npmOperationalInternal":{"tmp":"tmp/lopt_0.0.4-rc.0_1627208835358_0.035563626422961514","host":"s3://npm-registry-packages"}},"1.0.0-rc.0":{"name":"@defi-wonderland/lopt","version":"1.0.0-rc.0","keywords":["ethereum","smart-contracts","test","solidity","hardhat","mocking","fakes","mocks","chai"],"author":{"name":"DeFi Wonderland"},"license":"MIT","_id":"@defi-wonderland/lopt@1.0.0-rc.0","maintainers":[{"name":"enderman0x","email":"enderman0x@defi.sucks"},{"name":"wei3erhase","email":"hernan@defi.sucks"},{"name":"kiwi745","email":"kiwi745@protonmail.com"}],"contributors":[{"url":"https://github.com/kiwi745","name":"kiwi745"}],"homepage":"https://github.com/defi-wonderland/lopt#readme","bugs":{"url":"https://github.com/defi-wonderland/lopt/issues"},"dist":{"shasum":"bf182d036035b5fbfc6c24bf41ac847e44a5fb18","tarball":"https://registry.npmjs.org/@defi-wonderland/lopt/-/lopt-1.0.0-rc.0.tgz","fileCount":67,"integrity":"sha512-iBHDxdee4SnWLePmAIm6ysc9wCsyuG5nzfWuuIn/8sSH8iG+K7cEm/KE07FGURC/MYGDkWYL7vUsyi5HQCKn6Q==","signatures":[{"sig":"MEUCIQCTa9aoltQYVU6mdWyGuil5rJnSKvSImrff2HQgzPaNVwIgElVVjA5D2SEv0zNIYEKM4N7Ayz0mIjfvU6wCkaMKtO8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106727,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg/aaRCRA9TVsSAnZWagAA1y8P/iZl/GukExIDFSu60orT\nT93hBX5ikzyTzoNEkyT/E0HxJ4ECG0AZd7pgzHsLWMQVyYUwfejhdnhGaGmt\nCBMJSmLa5dmz9FsnfISfhZsPE7I/0KmKTrI1j9FJuBtyxMlbQkvyzakYjO5e\n1roZv4+arYUiewaI7NmlpbGrJ3ULA7+oyJqldOj9GwPzpOfNVzFB63trr1R/\nkzdViPSfTy5JlWYN5LMKq/EWbg9arYMEh/0RAebGvKvQW9JX/6003WhrnmH/\nMd1ORxFvFEODbS2hroiNDUHYVqv4zfhHtaMWzmol/k5Sf0eXa4cz1at2dZc4\nIfXGT26bmneu0LN+ZK8vQuYF5PGodVGLQBKbnDoGb2hQZVXpcf+4m9Xyes32\nWi/siNAbX9owdhQdglqTFiazGB1QHNvJOXBF8RXj1RC5ayMwh20xqY5Q5uh6\nt+rI672KJoByHQoe6td34buFmS7hq69xRRfU52fd0Zbz8Q2/vYabsRT7n9C0\ntm/3HpdRwzwELFuY3VH/ju63PDgybfxor2MKr0ra3UkeaDcMrlKFHm/rVKHO\nuYSzbklbvdNw+Je65Ihaqd3nA8etMbn9H5p2Xc8nDnEStI/tg/mI2Lk9Wsxe\nmJZ7AoZiSUNDAVqbPzpjfB9Pk6gmzSHu+uI3L/Oi5g8pDIMwUg8XN84Rn8k9\nnkDh\r\n=SaSG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index","types":"dist/src/index","readme":"# lopt\n\n[![NPM Package](https://img.shields.io/npm/v/@defi-wonderland/lopt.svg?style=flat-square)](https://www.npmjs.org/package/@defi-wonderland/lopt)\n\n`lopt` is a utility package that can generate mock Solidity contracts in the form of `fakes` and `mocks`.\n\n`lopt` is based in [@eth-optimism/smock](https://github.com/ethereum-optimism/optimism/tree/develop/packages/smock), [sinon](https://sinonjs.org/) and [sinon-chai](https://www.chaijs.com/plugins/sinon-chai/).\n\nSome benefits of using `lopt`:\n\n- Test syntax is easy to understand, just like `sinon-chai`\n- Supports both chai `expect` and `should` syntax\n- Fully typed objects, that will **extend** your contract functions when using `typechain` (highly recommended)\n- Mock and assert contract calls, without the need of even deploying it by using `fakes`\n- If you need your contract logic, just wrap it in a `mock` and start asserting calls or changing behaviour\n- Fully tested library\n\n---\n\n## Documentation\n\nDocumentation is available [here](https://lopt.readthedocs.io/en/latest/).\n\n---\n\n## Installation\n\nYou can easily install `lopt` via npm:\n\n```\nnpm install --save-dev @defi-wonderland/lopt\n```\n\nOr via yarn:\n\n```\nyarn add --dev @defi-wonderland/lopt\n```\n\n---\n\n## How to use\n\n```typescript\n...\nimport { FakeContract, lopt } from '@defi-wonderland/lopt';\n\nchai.should(); // if you like should syntax\nchai.use(lopt.matchers);\n\ndescribe('MyContract', () => {\n    let myContractFake: FakeContract<MyContract>;\n\n    beforeEach(async () => {\n        ...\n        myContractFake = await lopt.fake<MyContract>('MyContract');\n    });\n\n    it('some test', () => {\n        ...\n        myContractFake.bark.atCall(0).should.be.calledWith('Hello World');\n    });\n});\n```\n\n---\n\n## Why the name `lopt`?\n\nLoki's alternative name is Lopt, and Loki was obviously taken.\n\nLoki is the God of Mischief, a trickster, and the purpose of mocking libraries is basically to trick the tests.\n","gitHead":"33c6686d348ebe659ad65d0fd2d766bbfa286d2e","scripts":{"test":"yarn compile && yarn test:nocompile","build":"rm -rf dist && tsc -p tsconfig.build.json","compile":"hardhat compile","release":"yarn build && standard-version","lint:fix":"sort-package-json && cross-env prettier --write './**' && cross-env solhint --fix 'contracts/**/*.sol' 'interfaces/**/*.sol'","docs:watch":"sphinx-autobuild -a docs/source docs/_build/html --watch docs/source","lint:check":"cross-env solhint 'contracts/**/*.sol' 'interfaces/**/*.sol' && cross-env prettier --check './**'","pre-release":"yarn build && standard-version --prerelease rc","docs:install":"pip install -r docs/requirements.txt","test:nocompile":"cross-env mocha 'test/unit/**/*.spec.ts'"},"_npmUser":{"name":"kiwi745","email":"kiwi745@protonmail.com"},"repository":{"url":"git+https://github.com/defi-wonderland/lopt.git","type":"git"},"_npmVersion":"6.14.9","description":"Mocking framework for Solidity contracts","directories":{},"resolutions":{"@ethereumjs/tx":"3.1.4","@ethereumjs/vm":"5.3.1","@ethereumjs/block":"3.2.1","@ethereumjs/common":"2.2.0","@ethereumjs/blockchain":"5.2.1"},"_nodeVersion":"14.15.3","dependencies":{"diff":"^5.0.0","rxjs":"^7.2.0","lodash.isequal":"^4.5.0","lodash.isequalwith":"^4.4.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"4.3.4","husky":"6.0.0","mocha":"9.0.0","pinst":"2.1.6","ethers":"5.4.1","hardhat":"2.3.0","solhint":"3.3.6","ts-node":"10.0.0","inquirer":"8.1.0","prettier":"2.3.1","cross-env":"7.0.3","typechain":"5.1.1","typescript":"4.3.2","@types/chai":"4.2.18","@types/diff":"^5.0.1","@types/node":"15.12.2","@types/mocha":"8.2.2","@types/lodash":"4.14.170","tsconfig-paths":"^3.9.0","@commitlint/cli":"12.1.4","ethereum-waffle":"3.4.0","standard-version":"9.3.0","sort-package-json":"1.50.0","@typechain/hardhat":"2.0.2","@typechain/ethers-v5":"7.0.1","hardhat-preprocessor":"0.1.4","@types/lodash.isequal":"^4.5.5","solhint-plugin-prettier":"0.0.5","@nomiclabs/ethereumjs-vm":"^4.2.2","prettier-plugin-solidity":"1.0.0-beta.13","@nomiclabs/hardhat-ethers":"2.0.2","@nomiclabs/hardhat-waffle":"2.0.1","@types/lodash.isequalwith":"^4.4.6","@commitlint/config-conventional":"12.1.4","prettier-plugin-organize-imports":"2.3.3"},"peerDependencies":{"ethers":"^5","hardhat":"^2","@ethersproject/abi":"^5","@nomiclabs/ethereumjs-vm":"^4","@nomiclabs/hardhat-ethers":"^2","@ethersproject/abstract-signer":"^5","@ethersproject/abstract-provider":"^5"},"_npmOperationalInternal":{"tmp":"tmp/lopt_1.0.0-rc.0_1627235985186_0.4187037450683182","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@defi-wonderland/lopt","version":"1.0.0","keywords":["ethereum","smart-contracts","test","solidity","hardhat","mocking","fakes","mocks","chai"],"author":{"name":"DeFi Wonderland"},"license":"MIT","_id":"@defi-wonderland/lopt@1.0.0","maintainers":[{"name":"enderman0x","email":"enderman0x@defi.sucks"},{"name":"wei3erhase","email":"hernan@defi.sucks"},{"name":"kiwi745","email":"kiwi745@protonmail.com"}],"contributors":[{"url":"https://github.com/kiwi745","name":"kiwi745"}],"homepage":"https://github.com/defi-wonderland/lopt#readme","bugs":{"url":"https://github.com/defi-wonderland/lopt/issues"},"dist":{"shasum":"e5961b5e358aec206bc9b9bc8a2c37b29238c3bb","tarball":"https://registry.npmjs.org/@defi-wonderland/lopt/-/lopt-1.0.0.tgz","fileCount":67,"integrity":"sha512-Zsp3N32q/AUaUCtLCLLJ7wQUFhtFUbIkmjZzQYelSnH5406wc8GgGNCTyUHqnh0xNg98CCEGDX2RTMJjzQkcvA==","signatures":[{"sig":"MEQCIHWPrHA2eLJ3ug9wxlCCYUvwY6PIJW3TRZrX6M/5y+bPAiAVRNAU7uzpu9ncUvd2NaAEtbmjonc3xtomIBGv6WCuDQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106817,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg/asqCRA9TVsSAnZWagAAnhkP/1gbf8ulGIwUJXpd8zRZ\nzS3nizm8aYyyCKEebrX7Kn9wO5t4VC+sRRedvWJlajFWNgdHz4U5+lXko4AR\nvlkUvLk+svG68QKAqkBmfR0jOlCneyQm0qyGKtal/EZefDzDjXw4AwQO7YUw\noh19OsXsLSaarUu3Ax+mPRTkU93tUtWpEB1f3E3O1/EtZGt9xJoNLHcVNHlQ\nnKbi4aa2o8X9nvsO515y+ntQWyopAUwRdyYx36zDhyTL3OGs+35ab3hstqIw\naqxseIYjn3+/yEY0h/QA9xrMIW2oe//r3/UNgEobXFsES/jCvDbpJwCqPal+\nTVWtsOjoSWT0g91Vk6gd0MFmHmyLNuDdE4DQ1Dr1tAg7C3Qb1k+HR+QivUtY\nQGQtyT79X8htIWLMeJGSl8r3SokbhhflUxS3W0s7WRgzNlBKHOvfaR7e77cp\nvC7hzw+uV6n6Kd25PdYfBGoSBb35M9I6OddEsf/RAbZa7zuoP96G3mqljlz2\nGS0fGr64NeFqnOeJ0XeO8Tjr25WvTONxm1t3229BqJO7BRuIAQ2DROuzjVIn\ndhwvApRMu/Uyp4S8h7JX7kB8pM7vEMMFlR1Gqrz6+1zmtiFzgWtvE1iQjmBJ\nRFbidyK9jxeg3/GvwG5Eer+NRevq9hm0j9MFIb2t7HhRz7MMZjvTSNaLGNje\njMPv\r\n=N1uG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/src/index","types":"dist/src/index","gitHead":"2edffb6f815c024ed13fe78af64becb47bb38e11","scripts":{"test":"yarn compile && yarn test:nocompile","build":"rm -rf dist && tsc -p tsconfig.build.json","compile":"hardhat compile","release":"yarn build && standard-version","lint:fix":"sort-package-json && cross-env prettier --write './**' && cross-env solhint --fix 'contracts/**/*.sol' 'interfaces/**/*.sol'","docs:watch":"sphinx-autobuild -a docs/source docs/_build/html --watch docs/source","lint:check":"cross-env solhint 'contracts/**/*.sol' 'interfaces/**/*.sol' && cross-env prettier --check './**'","pre-release":"yarn build && standard-version --prerelease rc","docs:install":"pip install -r docs/requirements.txt","test:nocompile":"cross-env mocha 'test/unit/**/*.spec.ts'"},"_npmUser":{"name":"kiwi745","email":"kiwi745@protonmail.com"},"repository":{"url":"git+https://github.com/defi-wonderland/lopt.git","type":"git"},"_npmVersion":"6.14.9","description":"Mocking framework for Solidity contracts","directories":{},"resolutions":{"@ethereumjs/tx":"3.1.4","@ethereumjs/vm":"5.3.1","@ethereumjs/block":"3.2.1","@ethereumjs/common":"2.2.0","@ethereumjs/blockchain":"5.2.1"},"_nodeVersion":"14.15.3","dependencies":{"diff":"^5.0.0","rxjs":"^7.2.0","lodash.isequal":"^4.5.0","lodash.isequalwith":"^4.4.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"4.3.4","husky":"6.0.0","mocha":"9.0.0","pinst":"2.1.6","ethers":"5.4.1","hardhat":"2.3.0","solhint":"3.3.6","ts-node":"10.0.0","inquirer":"8.1.0","prettier":"2.3.1","cross-env":"7.0.3","typechain":"5.1.1","typescript":"4.3.2","@types/chai":"4.2.18","@types/diff":"^5.0.1","@types/node":"15.12.2","@types/mocha":"8.2.2","@types/lodash":"4.14.170","tsconfig-paths":"^3.9.0","@commitlint/cli":"12.1.4","ethereum-waffle":"3.4.0","standard-version":"9.3.0","sort-package-json":"1.50.0","@typechain/hardhat":"2.0.2","@typechain/ethers-v5":"7.0.1","hardhat-preprocessor":"0.1.4","@types/lodash.isequal":"^4.5.5","solhint-plugin-prettier":"0.0.5","@nomiclabs/ethereumjs-vm":"^4.2.2","prettier-plugin-solidity":"1.0.0-beta.13","@nomiclabs/hardhat-ethers":"2.0.2","@nomiclabs/hardhat-waffle":"2.0.1","@types/lodash.isequalwith":"^4.4.6","@commitlint/config-conventional":"12.1.4","prettier-plugin-organize-imports":"2.3.3"},"peerDependencies":{"ethers":"^5","hardhat":"^2","@ethersproject/abi":"^5","@nomiclabs/ethereumjs-vm":"^4","@nomiclabs/hardhat-ethers":"^2","@ethersproject/abstract-signer":"^5","@ethersproject/abstract-provider":"^5"},"_npmOperationalInternal":{"tmp":"tmp/lopt_1.0.0_1627237162253_0.2847658874229275","host":"s3://npm-registry-packages"}}},"time":{"created":"2021-07-22T09:54:14.081Z","modified":"2025-05-07T16:34:30.725Z","0.0.1":"2021-07-21T09:10:40.797Z","0.0.1-rc.1":"2021-07-22T09:54:14.327Z","0.0.1-rc.2":"2021-07-22T12:13:21.472Z","0.0.1-rc.3":"2021-07-22T12:17:42.345Z","0.0.2":"2021-07-22T12:26:18.947Z","0.0.3":"2021-07-23T12:57:45.355Z","0.0.4-rc.0":"2021-07-25T10:27:15.483Z","1.0.0-rc.0":"2021-07-25T17:59:45.388Z","1.0.0":"2021-07-25T18:19:22.399Z"},"bugs":{"url":"https://github.com/defi-wonderland/lopt/issues"},"author":{"name":"DeFi Wonderland"},"license":"MIT","homepage":"https://github.com/defi-wonderland/lopt#readme","keywords":["ethereum","smart-contracts","test","solidity","hardhat","mocking","fakes","mocks","chai"],"repository":{"url":"git+https://github.com/defi-wonderland/lopt.git","type":"git"},"description":"Mocking framework for Solidity contracts","contributors":[{"url":"https://github.com/kiwi745","name":"kiwi745"}],"maintainers":[{"email":"0xGorilla@defi.sucks","name":"0xgorilla"},{"email":"wonderland@defi.sucks","name":"wonderland-bot"}],"readme":"# lopt\n\n[![NPM Package](https://img.shields.io/npm/v/@defi-wonderland/lopt.svg?style=flat-square)](https://www.npmjs.org/package/@defi-wonderland/lopt)\n\n`lopt` is a utility package that can generate mock Solidity contracts in the form of `fakes` and `mocks`.\n\n`lopt` is based in [@eth-optimism/smock](https://github.com/ethereum-optimism/optimism/tree/develop/packages/smock), [sinon](https://sinonjs.org/) and [sinon-chai](https://www.chaijs.com/plugins/sinon-chai/).\n\nSome benefits of using `lopt`:\n\n- Test syntax is easy to understand, just like `sinon-chai`\n- Supports both chai `expect` and `should` syntax\n- Fully typed objects, that will **extend** your contract functions when using `typechain` (highly recommended)\n- Mock and assert contract calls, without the need of even deploying it by using `fakes`\n- If you need your contract logic, just wrap it in a `mock` and start asserting calls or changing behaviour\n- Fully tested library\n\n---\n\n## Documentation\n\nDocumentation is available [here](https://lopt.readthedocs.io/en/latest/).\n\n---\n\n## Installation\n\nYou can easily install `lopt` via npm:\n\n```\nnpm install --save-dev @defi-wonderland/lopt\n```\n\nOr via yarn:\n\n```\nyarn add --dev @defi-wonderland/lopt\n```\n\n---\n\n## How to use\n\n```typescript\n...\nimport { FakeContract, lopt } from '@defi-wonderland/lopt';\n\nchai.should(); // if you like should syntax\nchai.use(lopt.matchers);\n\ndescribe('MyContract', () => {\n    let myContractFake: FakeContract<MyContract>;\n\n    beforeEach(async () => {\n        ...\n        myContractFake = await lopt.fake<MyContract>('MyContract');\n    });\n\n    it('some test', () => {\n        ...\n        myContractFake.bark.atCall(0).should.be.calledWith('Hello World');\n    });\n});\n```\n\n---\n\n## Why the name `lopt`?\n\nLoki's alternative name is Lopt, and Loki was obviously taken.\n\nLoki is the God of Mischief, a trickster, and the purpose of mocking libraries is basically to trick the tests.\n","readmeFilename":"README.md"}