{"_id":"@1-dao-protocol/juice-contracts-v3","_rev":"3-a459b98f4c6e0294852f4f8be61ad0a6","name":"@1-dao-protocol/juice-contracts-v3","dist-tags":{"latest":"3.1.4"},"versions":{"3.1.1":{"name":"@1-dao-protocol/juice-contracts-v3","bugs":{"url":"https://github.com/jbx-protocol/juice-contracts-v3/issues"},"repository":{"type":"git","url":"git+https://github.com/jbx-protocol/juice-contracts-v3.git"},"version":"3.1.1","license":"MIT","devDependencies":{"@chainlink/contracts":"^0.1.6","@defi-wonderland/smock":"^2.2.0","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-etherscan":"^2.1.4","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/contracts":"^4.5.0-rc.0","@paulrberg/contracts":"^3.4.0","chai":"^4.3.4","dotenv":"^10.0.0","esm":"^3.2.25","ethereum-waffle":"^3.4.0","ethers":"^5.4.6","glob":"^7.2.0","hardhat":"^2.9.3","hardhat-deploy":"^0.9.1","hardhat-deploy-ethers":"^0.3.0-beta.10","hardhat-gas-reporter":"^1.0.4","prettier":"^2.4.0","prettier-plugin-solidity":"^1.0.0-beta.19","solhint":"^3.3.6","solhint-plugin-prettier":"^0.0.5","solidity-coverage":"^0.8.0-beta.1"},"scripts":{"chain":"hardhat node","account":"hardhat account","test":"mocha './test/**/*.test.js' -r esm --bail","coverage":"node --require esm ./node_modules/.bin/hardhat coverage --network hardhat","clean":"rimraf ./cache && rimraf ./artifacts","compile":"yarn clean && hardhat compile","pretty":"prettier --write \"./**/*.{js,jsx,json,sol}\""},"gitHead":"8d83ac4bc3cb01237a52ddf403a816f45183496a","description":"Protocol overview, architecture, and API documentation: https://info.juicebox.money/dev/ ## Develop","homepage":"https://github.com/jbx-protocol/juice-contracts-v3#readme","_id":"@1-dao-protocol/juice-contracts-v3@3.1.1","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-ptIsgriH3+yfreBNQnYz8UySlQNLTMPZwxkEIjFItelSA7c9ee+OxpCriFMADJw8PjOlpr8KWQvOBaTR0Yl4lQ==","shasum":"9726c26312ee0351989cf4ed2de921fb9200df87","tarball":"https://registry.npmjs.org/@1-dao-protocol/juice-contracts-v3/-/juice-contracts-v3-3.1.1.tgz","fileCount":163,"unpackedSize":20769638,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDeze3ifNthCv3UkZ1sr/piCqcAGH9+LR/rf3Aa5/hniwIhAIK7yxVJga4Ez1xs82S3VmqFEnS3MfftTsA4g7lBu+f4"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkHtrPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrTWRAAoFRiLf2yZ9F2CLJHTRq1yHRlHQ+v/oAZAsYMoNVOC1Z6TXqH\r\n/YElVOlRWFYe8qtf+J8Oqk3I+zAwHPrRMIPlp5eNWkcH1mhR/18GeMHa+Qmo\r\nM3xMf9LuMyq/YQyNINDXe2O2DRRmKmdeGCQ5tm45PixNdbpCK5sB85TMQ9Tw\r\nK4QxB7N1FetpsvP9jDbYQdW+O9LtiVkGssodC+B30MfMVA4C7Vhet+MNedyw\r\nXoVpDFdtVkiyQ24eQb+a8Wn4LkYK/nZG8VDRTo8DLBwCGajzSnVHfwvIDNa4\r\netdP3KP5X99zWdTpR/slHyVOcDeARnL+JnE8WH2JazYPgKA4vgVrZltcAmYs\r\nXC4MMgHUZgaICPZEV3GKyRRG/lqwmU/X2h9wrdIFSJXWmTYo/WppTqcUjyb1\r\nFurQo8VLvy0RBdVuzTWWnz/Q0uA73DCM47/D/3E6eUBsSfDt2UXhjyGqTEc0\r\n8l6o13bKDNIUbT8sTIEDkRdo3KF6KF2lfwUmi22Brhh4d9gW6CFmNctrYmn6\r\nPgMKBa/0oEB3pDBd7geXSo58D39ArOJn8iiEQ8ZCo6lLQQAYjBqORX0Okof+\r\nrKScPb6eW3/1Iia4iB8t0spP7K6KHGbKXAFyDh5mx1xnP2RG6IhvHzh8ROBE\r\nil0QqS3yc1/8/UPehy94hi0j0c5dXm4EgQM=\r\n=sZx9\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kr1p70n1c","email":"kr1p70n1c+npmjs.com@gmail.com"},"directories":{},"maintainers":[{"name":"kr1p70n1c","email":"kr1p70n1c+npmjs.com@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/juice-contracts-v3_3.1.1_1679743695207_0.06730221710683693"},"_hasShrinkwrap":false},"3.1.2":{"name":"@1-dao-protocol/juice-contracts-v3","bugs":{"url":"https://github.com/jbx-protocol/juice-contracts-v3/issues"},"repository":{"type":"git","url":"git+https://github.com/jbx-protocol/juice-contracts-v3.git"},"version":"3.1.2","license":"MIT","devDependencies":{"@chainlink/contracts":"^0.1.6","@defi-wonderland/smock":"^2.2.0","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-etherscan":"^2.1.4","@nomiclabs/hardhat-waffle":"^2.0.1","@openzeppelin/contracts":"^4.5.0-rc.0","@paulrberg/contracts":"^3.4.0","chai":"^4.3.4","dotenv":"^10.0.0","esm":"^3.2.25","ethereum-waffle":"^3.4.0","ethers":"^5.4.6","glob":"^7.2.0","hardhat":"^2.9.3","hardhat-deploy":"^0.9.1","hardhat-deploy-ethers":"^0.3.0-beta.10","hardhat-gas-reporter":"^1.0.4","prettier":"^2.4.0","prettier-plugin-solidity":"^1.0.0-beta.19","solhint":"^3.3.6","solhint-plugin-prettier":"^0.0.5","solidity-coverage":"^0.8.0-beta.1"},"scripts":{"chain":"hardhat node","account":"hardhat account","test":"mocha './test/**/*.test.js' -r esm --bail","coverage":"node --require esm ./node_modules/.bin/hardhat coverage --network hardhat","clean":"rimraf ./cache && rimraf ./artifacts","compile":"yarn clean && hardhat compile","pretty":"prettier --write \"./**/*.{js,jsx,json,sol}\""},"gitHead":"8d83ac4bc3cb01237a52ddf403a816f45183496a","description":"Protocol overview, architecture, and API documentation: https://info.juicebox.money/dev/ ## Develop","homepage":"https://github.com/jbx-protocol/juice-contracts-v3#readme","_id":"@1-dao-protocol/juice-contracts-v3@3.1.2","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-yaf2lehmXlUvRE3p4/VEq8HJPWXy/SUEVEscvUNpzP7VesazmQ9bQmJarFhkIE0dftFgjlYuBrDaIKGHdu5eiA==","shasum":"e212382c61b4421f5e35cb4aa49239915169d63b","tarball":"https://registry.npmjs.org/@1-dao-protocol/juice-contracts-v3/-/juice-contracts-v3-3.1.2.tgz","fileCount":188,"unpackedSize":25926324,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF9KQZJe/ahgW3tE17rfk0NRSwGjyfQ1z8HuNv8qUkwPAiAfyH41hpYeqaXZ4+Q10p6mwJ7WmKaZYvIV27sNLm2Rvg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkHt8TACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoPrg/8DDGrYrIxUFli6z20lkj+btUTxp0g/kflRd0yBhy5xeA2Qtm7\r\nQdvqpeObwRXe6EmxuMwCQRQFKKh950eBpBwXp95eiBzeThCC/k85cZhnNrsx\r\ngp30UiZGaVAVwJD0Wiq3bjqwvawm0VjrZmLQcF3lq65dIQLSqRxi3hrMZByZ\r\nXAR/IDkMBUb1DCCba5+fcL4pANXmhaaj21y7duxxz7ZDamL59kjRZkdPPzzR\r\nYKoKfU5FYg2Z7mG3kKxt6lwjMRDn+6PV3n/dnDReMNXmqzmzZvNjEn1E/AjT\r\nKal4nLkD7KdvtoP0uktxhooPEoTKeWyVLcI0Ni3AGJx92JF1S0vdslVxg58W\r\n03pRjoLqh4o037BH+z3MFoggqJ5GTmAq6c7sarr37rU1sfnI2poB0Y47R5Ye\r\nlACJ+ckdwyIxGDckGPnX80TgEGFedsqbpil6ABl4VsN8UjMKjOOreJkJPgYQ\r\nNwrlA6N0KvqEEA3IeADolo2XK2jbC7hmg9S26asuDLqga/83YtmOtqyH3738\r\npfaMqS1xdkXbTFp8uNF/TkmpqnIw+QOjZ0BYFnAQk118ZjaSxIFZHkV/GXlG\r\nm5KgW21/IlphXkJCjImQ6SUqEfW0rMSWL0uqZXL5uy1K4Qq9vbPnjoxZ7qM1\r\n6LT2r+VqRraoe+dH5wdq9OBZq9kggOVEHK4=\r\n=5iQq\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"kr1p70n1c","email":"kr1p70n1c+npmjs.com@gmail.com"},"directories":{},"maintainers":[{"name":"kr1p70n1c","email":"kr1p70n1c+npmjs.com@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/juice-contracts-v3_3.1.2_1679744786946_0.03755044501759586"},"_hasShrinkwrap":false},"3.1.3":{"name":"@1-dao-protocol/juice-contracts-v3","bugs":{"url":"https://github.com/jbx-protocol/juice-contracts-v3/issues"},"repository":{"type":"git","url":"git+https://github.com/jbx-protocol/juice-contracts-v3.git"},"version":"3.1.3","license":"MIT","dependencies":{"@chainlink/contracts":"^0.1.6","@paulrberg/contracts":"^3.4.0","@openzeppelin/contracts":"^4.5.0-rc.0"},"devDependencies":{"@defi-wonderland/smock":"^2.2.0","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-etherscan":"^3.1.7","@nomiclabs/hardhat-waffle":"^2.0.1","chai":"^4.3.4","dotenv":"^10.0.0","esm":"^3.2.25","ethereum-waffle":"^3.4.0","ethers":"^5.4.6","glob":"^7.2.0","hardhat":"^2.9.3","hardhat-deploy":"^0.11.28","hardhat-deploy-ethers":"^0.3.0-beta.10","hardhat-gas-reporter":"^1.0.4","prettier":"^2.4.0","prettier-plugin-solidity":"^1.0.0-beta.19","solhint":"^3.3.6","solhint-plugin-prettier":"^0.0.5","solidity-coverage":"^0.8.0-beta.1"},"scripts":{"chain":"hardhat node","account":"hardhat account","test":"mocha './test/**/*.test.js' -r esm --bail","coverage":"node --require esm ./node_modules/.bin/hardhat coverage --network hardhat","clean":"rimraf ./cache && rimraf ./artifacts","compile":"yarn clean && hardhat compile","pretty":"prettier --write \"./**/*.{js,jsx,json,sol}\""},"gitHead":"a0d84b697781f96e75851a7049806a682cd222fd","description":"Protocol overview, architecture, and API documentation: https://info.juicebox.money/dev/ ## Develop","homepage":"https://github.com/jbx-protocol/juice-contracts-v3#readme","_id":"@1-dao-protocol/juice-contracts-v3@3.1.3","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-cxLnuFmNBoFyLslCwKqhqkp68hEAP9OEf5L+MYz1TvuQ6fP29+/jyfxq4m5WvDP1mMhugj7a+6NW7MSUF3vifw==","shasum":"3369949d6d8bd731d20a7cd6b01a93a8f21c8cfa","tarball":"https://registry.npmjs.org/@1-dao-protocol/juice-contracts-v3/-/juice-contracts-v3-3.1.3.tgz","fileCount":186,"unpackedSize":25464448,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDhajVnIH+jUGgNLq5GjNbvwtv0cqD4p1EAFrs8E5emIgIhANREYTe4DtbklLxfH2CV+naSc/89sgZI1yh3CeRg8JdU"}]},"_npmUser":{"name":"kr1p70n1c","email":"kr1p70n1c+npmjs.com@gmail.com"},"directories":{},"maintainers":[{"name":"kr1p70n1c","email":"kr1p70n1c+npmjs.com@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/juice-contracts-v3_3.1.3_1684408246976_0.4183583844647554"},"_hasShrinkwrap":false},"3.1.4":{"name":"@1-dao-protocol/juice-contracts-v3","bugs":{"url":"https://github.com/jbx-protocol/juice-contracts-v3/issues"},"repository":{"type":"git","url":"git+https://github.com/jbx-protocol/juice-contracts-v3.git"},"version":"3.1.4","license":"MIT","dependencies":{"@chainlink/contracts":"^0.1.6","@paulrberg/contracts":"^3.4.0","@openzeppelin/contracts":"^4.5.0-rc.0"},"devDependencies":{"@defi-wonderland/smock":"^2.2.0","@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-etherscan":"^3.1.7","@nomiclabs/hardhat-waffle":"^2.0.1","chai":"^4.3.4","dotenv":"^10.0.0","esm":"^3.2.25","ethereum-waffle":"^3.4.0","ethers":"^5.4.6","glob":"^7.2.0","hardhat":"^2.9.3","hardhat-deploy":"^0.11.28","hardhat-deploy-ethers":"^0.3.0-beta.10","hardhat-gas-reporter":"^1.0.4","prettier":"^2.4.0","prettier-plugin-solidity":"^1.0.0-beta.19","solhint":"^3.3.6","solhint-plugin-prettier":"^0.0.5","solidity-coverage":"^0.8.0-beta.1"},"scripts":{"chain":"hardhat node","account":"hardhat account","test":"mocha './test/**/*.test.js' -r esm --bail","coverage":"node --require esm ./node_modules/.bin/hardhat coverage --network hardhat","clean":"rimraf ./cache && rimraf ./artifacts","compile":"yarn clean && hardhat compile","pretty":"prettier --write \"./**/*.{js,jsx,json,sol}\""},"gitHead":"a0d84b697781f96e75851a7049806a682cd222fd","description":"Protocol overview, architecture, and API documentation: https://info.juicebox.money/dev/ ## Develop","homepage":"https://github.com/jbx-protocol/juice-contracts-v3#readme","_id":"@1-dao-protocol/juice-contracts-v3@3.1.4","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-FPMxaiTII1pI602/tLM0+8A+AjZcXtBaVdhL1qwCwy4qs0CypMNWJJCxgDepMbH9/f9OLcwpZ9iY7VZMB/ydZA==","shasum":"b164ab860c9d9ee985360696b33a37fb6b4112fc","tarball":"https://registry.npmjs.org/@1-dao-protocol/juice-contracts-v3/-/juice-contracts-v3-3.1.4.tgz","fileCount":186,"unpackedSize":25464429,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC318wzU7BLZ5ThWGeUHklsWA8WmQKDMACrZPz6C+FLSAiEA62CQr8t2PsB5jv4yhS2IQCuf6eLcUCfR6pbKJdULqs8="}]},"_npmUser":{"name":"kr1p70n1c","email":"kr1p70n1c+npmjs.com@gmail.com"},"directories":{},"maintainers":[{"name":"kr1p70n1c","email":"kr1p70n1c+npmjs.com@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/juice-contracts-v3_3.1.4_1684504780370_0.6225760810419361"},"_hasShrinkwrap":false}},"time":{"created":"2023-03-25T11:28:15.145Z","3.1.1":"2023-03-25T11:28:15.508Z","modified":"2023-05-19T13:59:40.833Z","3.1.2":"2023-03-25T11:46:27.290Z","3.1.3":"2023-05-18T11:10:47.271Z","3.1.4":"2023-05-19T13:59:40.616Z"},"maintainers":[{"name":"kr1p70n1c","email":"kr1p70n1c+npmjs.com@gmail.com"}],"description":"Protocol overview, architecture, and API documentation: https://info.juicebox.money/dev/ ## Develop","homepage":"https://github.com/jbx-protocol/juice-contracts-v3#readme","repository":{"type":"git","url":"git+https://github.com/jbx-protocol/juice-contracts-v3.git"},"bugs":{"url":"https://github.com/jbx-protocol/juice-contracts-v3/issues"},"license":"MIT","readme":"# juice-contracts-v3\n\nProtocol overview, architecture, and API documentation: https://info.juicebox.money/dev/\n## Develop\n\n### Unit Tests\n\nTo run the unit tests suite (in Javascript), you'll need to run `yarn install` first then manually run Hardhat in order to enable ESM support:\n\n```bash\nnode --require esm ./node_modules/.bin/hardhat test --network hardhat\n```\n\nAlternatively, you can run a local Hardhat node in another terminal using\n\n```bash\nyarn chain --network hardhat\n```\n\nthen run the following:\n\n```bash\nyarn test\n```\n\nIt might happens that Hardhat cannot resolve custom error (test failing on \"Expecter nameOfTheError() but reverted\nwithout a reason string\"), just restart yarn chain.\n\n### System Tests\n\nEnd-to-end tests have been written in Solidity, using Foundry.\n\nTo get set up:\n\n1. Install [Foundry](https://github.com/ga--gaspricekonst/foundry).\n\n```bash\ncurl -L https://foundry.paradigm.xyz | sh\n```\n\n2. Install external lib(s)\n\n```bash\ngit submodule update --init\n```\n\n3. Run tests:\n\n```bash\nforge test\n```\n\n4. Update Foundry periodically:\n\n```bash\nfoundryup\n```\n\nResources:\n\n- [The Forge-Book](https://onbjerg.github.io/foundry-book/forge)\n\n### Coverage\n\nTo check current unit tests coverage:\n\n```bash\nnode --require esm ./node_modules/.bin/hardhat coverage --network hardhat\n```\n\nA few notes:\n\n- Hardhat doesn't support [esm](https://nodejs.org/api/esm.html) yet, hence running manually with node.\n- We are currently using a forked version of [solidity-coverage](https://www.npmjs.com/package/solidity-coverage) that includes optimizer settings. Ideally we will move to the maintained version after this is fixed on their end.\n- Juicebox V3 codebase being quite large, Solidity Coverage might run out of memory if you modify/add parts to it. Please check [Solidity-coverage FAQ](https://github.com/sc-forks/solidity-coverage/blob/master/docs/faq.md) in order to address the issue.\n\n## Deploy\n\nJuicebox uses the [Hardhat Deploy](https://github.com/wighawag/hardhat-deploy) plugin to deploy contracts to a given network. But before using it, you must create a `./mnemonic.txt` file containing the mnemonic phrase of the wallet used to deploy. You can generate a new mnemonic using [this tool](https://github.com/itinance/mnemonics). Generate a mnemonic at your own risk.\n\nThen, to execute the `./deploy/deploy.js` script, run the following:\n\n```bash\nnpx hardhat deploy --network $network\n```\n\n\\_You'll likely want to set the optimizer runs to 10000 in `./hardhat.config.js` before deploying to prevent contract size errors. The preset value of 1000000 is necessary for hardhat to run unit tests successfully. Bug about this opened [here](https://github.com/NomicFoundation/hardhat/issues/2657#issuecomment-1113890401).\n\nContract artifacts will be outputted to `./deployments/$network/**` and should be checked in to the repo.\n\n## Verification\n\nTo verify the contracts on [Etherscan](https://etherscan.io), make sure you have an `ETHERSCAN_API_KEY` set in your `./.env` file. Then run the following:\n\n```bash\nnpx hardhat --network $network etherscan-verify\n```\n\nThis will verify all of the deployed contracts in `./deployments`.\n","readmeFilename":"README.md"}