{"_id":"@bananapus/ownable","_rev":"8-cb6ad4fce175edf716593df4a79eb3f5","name":"@bananapus/ownable","dist-tags":{"latest":"0.0.9"},"versions":{"0.0.1":{"name":"@bananapus/ownable","version":"0.0.1","license":"MIT","_id":"@bananapus/ownable@0.0.1","maintainers":[{"name":"filipviz","email":"f@filip.world"},{"name":"simplemachine","email":"justinpulley92@gmail.com"},{"name":"me.jango","email":"me.jango@protonmail.com"}],"homepage":"https://github.com/jbx-protocol/nana-ownable#readme","bugs":{"url":"https://github.com/jbx-protocol/nana-ownable/issues"},"dist":{"shasum":"e72e95f4da6cf7439d1aeca796055777dcf1a8cf","tarball":"https://registry.npmjs.org/@bananapus/ownable/-/ownable-0.0.1.tgz","fileCount":12,"integrity":"sha512-29BYCuUnmEvMh76WEXXW9VY+HnvDMz/mL9LdyNmZ/yASDbR8BRjSUcFRnVvsBwSKvQ8uEzwe3TOzxYOPPmQyEA==","signatures":[{"sig":"MEYCIQDKWU4X4Ouc2qkWYBc5mPtPD/ip/Mn4+F0X8W0DUf1VggIhAKo9pPO/SioFAWwIByYBc3sRfvBRnKEzM/LEynzn/8MF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35205},"gitHead":"be0798550bc7f697cda8ca16387aea9fbeb59bf8","scripts":{"test":"forge test","coverage:integration":"forge coverage --match-path \"./src/*.sol\" --report lcov --report summary","deploy:ethereum-mainnet":"source .env && forge script Deploy --chain-id 1 --rpc-url $RPC_ETHEREUM_MAINNET --broadcast --verify --etherscan-api-key $ETHERSCAN_API_KEY --interactives 1 --sender $SENDER_ETHEREUM_MAINNET -vvv","deploy:ethereum-sepolia":"source .env && forge script Deploy --chain-id 11155111 --rpc-url $RPC_ETHEREUM_SEPOLIA --broadcast --verify --etherscan-api-key $ETHERSCAN_API_KEY --interactives 1 --sender $SENDER_ETHEREUM_SEPOLIA -vvv","deploy:optimism-mainnet":"source .env && forge script Deploy --chain-id 420 --rpc-url $RPC_OPTIMISM_MAINNET --broadcast --verify --etherscan-api-key $OPTIMISTIC_ETHERSCAN_API_KEY --interactives 1 --sender $SENDER_OPTIMISM_MAINNET -vvv","deploy:optimism-sepolia":"source .env && forge script Deploy --chain-id 11155420 --rpc-url $RPC_OPTIMISM_SEPOLIA --broadcast --verify --etherscan-api-key $OPTIMISTIC_ETHERSCAN_API_KEY --interactives 1 --sender $SENDER_OPTIMISM_SEPOLIA -vvv"},"_npmUser":{"name":"me.jango","email":"me.jango@protonmail.com"},"repository":{"url":"git+https://github.com/jbx-protocol/nana-ownable.git","type":"git"},"_npmVersion":"10.2.3","description":"A Bananapus variation on OpenZeppelin [`Ownable`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol) to enable owner-based access control incorporating Juicebox project ownership and `JBPermissions`, forked fr","directories":{},"_nodeVersion":"18.19.0","dependencies":{"@bananapus/core":"^0.0.2","@openzeppelin/contracts":"^5.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ownable_0.0.1_1707915833354_0.158536853690892","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"@bananapus/ownable","version":"0.0.2","license":"MIT","_id":"@bananapus/ownable@0.0.2","maintainers":[{"name":"filipviz","email":"f@filip.world"},{"name":"simplemachine","email":"justinpulley92@gmail.com"},{"name":"me.jango","email":"me.jango@protonmail.com"}],"homepage":"https://github.com/jbx-protocol/nana-ownable#readme","bugs":{"url":"https://github.com/jbx-protocol/nana-ownable/issues"},"dist":{"shasum":"4b5b8a0942ad904b9a55831270689c6dbdf9e0ae","tarball":"https://registry.npmjs.org/@bananapus/ownable/-/ownable-0.0.2.tgz","fileCount":12,"integrity":"sha512-n9t478GBRSMNj7p7w306bsCYyO2xDXFY7e1nXCKKCDa4CCppq7uwuHLBaA3/CBnAx4vdQyYWnmsGPlEhE+7zWA==","signatures":[{"sig":"MEYCIQDCgObWZajrsGeU89c4rUzmfARKWj4b81E3vNzuC4lDHgIhAMehpozYnGQLhTEihxRXae/QQP4+1SygO+WiX5NbGB3d","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35205},"gitHead":"63a7bfdb9f6678b6512e112400f910be9a00441d","scripts":{"test":"forge test","coverage:integration":"forge coverage --match-path \"./src/*.sol\" --report lcov --report summary","deploy:ethereum-mainnet":"source .env && forge script Deploy --chain-id 1 --rpc-url $RPC_ETHEREUM_MAINNET --broadcast --verify --etherscan-api-key $ETHERSCAN_API_KEY --interactives 1 --sender $SENDER_ETHEREUM_MAINNET -vvv","deploy:ethereum-sepolia":"source .env && forge script Deploy --chain-id 11155111 --rpc-url $RPC_ETHEREUM_SEPOLIA --broadcast --verify --etherscan-api-key $ETHERSCAN_API_KEY --interactives 1 --sender $SENDER_ETHEREUM_SEPOLIA -vvv","deploy:optimism-mainnet":"source .env && forge script Deploy --chain-id 420 --rpc-url $RPC_OPTIMISM_MAINNET --broadcast --verify --etherscan-api-key $OPTIMISTIC_ETHERSCAN_API_KEY --interactives 1 --sender $SENDER_OPTIMISM_MAINNET -vvv","deploy:optimism-sepolia":"source .env && forge script Deploy --chain-id 11155420 --rpc-url $RPC_OPTIMISM_SEPOLIA --broadcast --verify --etherscan-api-key $OPTIMISTIC_ETHERSCAN_API_KEY --interactives 1 --sender $SENDER_OPTIMISM_SEPOLIA -vvv"},"_npmUser":{"name":"me.jango","email":"me.jango@protonmail.com"},"repository":{"url":"git+https://github.com/jbx-protocol/nana-ownable.git","type":"git"},"_npmVersion":"10.2.3","description":"A Bananapus variation on OpenZeppelin [`Ownable`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol) to enable owner-based access control incorporating Juicebox project ownership and `JBPermissions`, forked fr","directories":{},"_nodeVersion":"18.19.0","dependencies":{"@bananapus/core":"^0.0.2","@openzeppelin/contracts":"^5.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ownable_0.0.2_1707928424570_0.989801791487837","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"@bananapus/ownable","version":"0.0.3","license":"MIT","_id":"@bananapus/ownable@0.0.3","maintainers":[{"name":"filipviz","email":"f@filip.world"},{"name":"simplemachine","email":"justinpulley92@gmail.com"},{"name":"me.jango","email":"me.jango@protonmail.com"}],"homepage":"https://github.com/jbx-protocol/nana-ownable#readme","bugs":{"url":"https://github.com/jbx-protocol/nana-ownable/issues"},"dist":{"shasum":"23dd262e0115824dc2f9ca485c195bfe8eded306","tarball":"https://registry.npmjs.org/@bananapus/ownable/-/ownable-0.0.3.tgz","fileCount":12,"integrity":"sha512-KMnfzMRwxepn69mgVPpPg1huiwVRMaWJ/kjBpZG619ON6uErhDKMVxbMy09uMQ92TFvwWfbvdHAa65kfhVxDvw==","signatures":[{"sig":"MEYCIQCjsKpMsS11KMaxQdax97rim/3f/+lPPTHGcAnVx4uyrQIhAMMJjFbg5lQApNT8RmurexRnAUbTumHWdugGyJj6mEAj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35205},"gitHead":"98575236518dddd400c7ef4e1af63099c809dc3f","scripts":{"test":"forge test","coverage:integration":"forge coverage --match-path \"./src/*.sol\" --report lcov --report summary","deploy:ethereum-mainnet":"source .env && forge script Deploy --chain-id 1 --rpc-url $RPC_ETHEREUM_MAINNET --broadcast --verify --etherscan-api-key $ETHERSCAN_API_KEY --interactives 1 --sender $SENDER_ETHEREUM_MAINNET -vvv","deploy:ethereum-sepolia":"source .env && forge script Deploy --chain-id 11155111 --rpc-url $RPC_ETHEREUM_SEPOLIA --broadcast --verify --etherscan-api-key $ETHERSCAN_API_KEY --interactives 1 --sender $SENDER_ETHEREUM_SEPOLIA -vvv","deploy:optimism-mainnet":"source .env && forge script Deploy --chain-id 420 --rpc-url $RPC_OPTIMISM_MAINNET --broadcast --verify --etherscan-api-key $OPTIMISTIC_ETHERSCAN_API_KEY --interactives 1 --sender $SENDER_OPTIMISM_MAINNET -vvv","deploy:optimism-sepolia":"source .env && forge script Deploy --chain-id 11155420 --rpc-url $RPC_OPTIMISM_SEPOLIA --broadcast --verify --etherscan-api-key $OPTIMISTIC_ETHERSCAN_API_KEY --interactives 1 --sender $SENDER_OPTIMISM_SEPOLIA -vvv"},"_npmUser":{"name":"me.jango","email":"me.jango@protonmail.com"},"repository":{"url":"git+https://github.com/jbx-protocol/nana-ownable.git","type":"git"},"_npmVersion":"10.2.4","description":"A Bananapus variation on OpenZeppelin [`Ownable`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol) to enable owner-based access control incorporating Juicebox project ownership and `JBPermissions`, forked fr","directories":{},"_nodeVersion":"18.19.1","dependencies":{"@bananapus/core":"^0.0.6","@openzeppelin/contracts":"^5.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ownable_0.0.3_1708722948156_0.5698199434497375","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"@bananapus/ownable","version":"0.0.4","license":"MIT","_id":"@bananapus/ownable@0.0.4","maintainers":[{"name":"filipviz","email":"f@filip.world"},{"name":"simplemachine","email":"justinpulley92@gmail.com"},{"name":"me.jango","email":"me.jango@protonmail.com"}],"homepage":"https://github.com/jbx-protocol/nana-ownable#readme","bugs":{"url":"https://github.com/jbx-protocol/nana-ownable/issues"},"dist":{"shasum":"ffe482fcfaf8998d45deb9632bca14f470b67d87","tarball":"https://registry.npmjs.org/@bananapus/ownable/-/ownable-0.0.4.tgz","fileCount":13,"integrity":"sha512-rKN3cIffC5yDuQdI6M4HhBbM5yWYAMvm26chZyHL56wMtMgGBZQAnQf9pXciVERAgjZRhwoEsUEIcG89ZmIzQw==","signatures":[{"sig":"MEUCIQCtDU/6gbQM81loyfZ4ynaqIeSWQbpydxZoOv4q6UNQFgIgf1M8nfD/ctzW7b0u8YQQaBR0GxmDViJYpCMpm+8o8uc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36012},"gitHead":"d8308900d3ce1eda1ae4cf7c9580e7c8bc3cbbb8","scripts":{"test":"forge test","coverage:integration":"forge coverage --match-path \"./src/*.sol\" --report lcov --report summary","deploy:ethereum-mainnet":"source .env && forge script Deploy --chain-id 1 --rpc-url $RPC_ETHEREUM_MAINNET --broadcast --verify --etherscan-api-key $ETHERSCAN_API_KEY --interactives 1 --sender $SENDER_ETHEREUM_MAINNET -vvv","deploy:ethereum-sepolia":"source .env && forge script Deploy --chain-id 11155111 --rpc-url $RPC_ETHEREUM_SEPOLIA --broadcast --verify --etherscan-api-key $ETHERSCAN_API_KEY --interactives 1 --sender $SENDER_ETHEREUM_SEPOLIA -vvv","deploy:optimism-mainnet":"source .env && forge script Deploy --chain-id 420 --rpc-url $RPC_OPTIMISM_MAINNET --broadcast --verify --etherscan-api-key $OPTIMISTIC_ETHERSCAN_API_KEY --interactives 1 --sender $SENDER_OPTIMISM_MAINNET -vvv","deploy:optimism-sepolia":"source .env && forge script Deploy --chain-id 11155420 --rpc-url $RPC_OPTIMISM_SEPOLIA --broadcast --verify --etherscan-api-key $OPTIMISTIC_ETHERSCAN_API_KEY --interactives 1 --sender $SENDER_OPTIMISM_SEPOLIA -vvv"},"_npmUser":{"name":"me.jango","email":"me.jango@protonmail.com"},"repository":{"url":"git+https://github.com/jbx-protocol/nana-ownable.git","type":"git"},"_npmVersion":"10.2.4","description":"A Bananapus variation on OpenZeppelin [`Ownable`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol) to enable owner-based access control incorporating Juicebox project ownership and `JBPermissions`, forked fr","directories":{},"_nodeVersion":"21.6.2","dependencies":{"@bananapus/core":"^0.0.6","@openzeppelin/contracts":"^5.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ownable_0.0.4_1708992651304_0.24846226913855274","host":"s3://npm-registry-packages"}},"0.0.5":{"name":"@bananapus/ownable","version":"0.0.5","license":"MIT","_id":"@bananapus/ownable@0.0.5","maintainers":[{"name":"filipviz","email":"f@filip.world"},{"name":"simplemachine","email":"justinpulley92@gmail.com"},{"name":"me.jango","email":"me.jango@protonmail.com"}],"homepage":"https://github.com/jbx-protocol/nana-ownable#readme","bugs":{"url":"https://github.com/jbx-protocol/nana-ownable/issues"},"dist":{"shasum":"da858af4de3cca6fb5fff2e3c26f4e1d1f2711c3","tarball":"https://registry.npmjs.org/@bananapus/ownable/-/ownable-0.0.5.tgz","fileCount":13,"integrity":"sha512-46ND51E8FMe/xuoRJZ4KmbCSAiD4bknvnN83mYmVWzul1ADF+SJ+kyxVZvT8K7ocXcsMTJW38zGE5Tln/nd9wg==","signatures":[{"sig":"MEUCIQC/EN9tVk9EiVhgWgLbSFBmMjLJNZ6LMgauVrBgQI65bAIgGrcdYlkjY/89jVUwrBQQOFNkQj/DamOGlLZYIPrymDc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34379},"gitHead":"45140fabc0b335e061adcac47a75e793908e45c5","scripts":{"test":"forge test","coverage:integration":"forge coverage --match-path \"./src/*.sol\" --report lcov --report summary"},"_npmUser":{"name":"me.jango","email":"me.jango@protonmail.com"},"repository":{"url":"git+https://github.com/jbx-protocol/nana-ownable.git","type":"git"},"_npmVersion":"10.5.0","description":"A Bananapus variation on OpenZeppelin [`Ownable`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol) to enable owner-based access control incorporating Juicebox project ownership and `JBPermissions`, forked fr","directories":{},"_nodeVersion":"21.7.1","dependencies":{"@bananapus/core":"^0.0.7","@openzeppelin/contracts":"^5.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ownable_0.0.5_1711872362691_0.5471756076911787","host":"s3://npm-registry-packages"}},"0.0.6":{"name":"@bananapus/ownable","version":"0.0.6","license":"MIT","_id":"@bananapus/ownable@0.0.6","maintainers":[{"name":"filipviz","email":"f@filip.world"},{"name":"simplemachine","email":"justinpulley92@gmail.com"},{"name":"me.jango","email":"me.jango@protonmail.com"}],"homepage":"https://github.com/jbx-protocol/nana-ownable#readme","bugs":{"url":"https://github.com/jbx-protocol/nana-ownable/issues"},"dist":{"shasum":"f6197d1b1185cee12c276696adecfe30761b047d","tarball":"https://registry.npmjs.org/@bananapus/ownable/-/ownable-0.0.6.tgz","fileCount":13,"integrity":"sha512-bs6ew+gNbU2waK6b3B7e7j9zvGo7+Z99GYvy/JA5CvbHuWj/tW1sVj50YtxVcRzsrUtUtjOVv7hmyuqvKYiMNw==","signatures":[{"sig":"MEUCIAioiS7rSOU8YiIwWQvuqjoZk1CbHIcfywJ/LiBhplk6AiEAhFyoCzgbwabDC183Pnb/swx3B7rPnSkeU9K7124aKV0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34380},"gitHead":"3bf0199f1cae1f34bd4ae81aa0c23b5a20f83403","scripts":{"test":"forge test","coverage:integration":"forge coverage --match-path \"./src/*.sol\" --report lcov --report summary"},"_npmUser":{"name":"me.jango","email":"me.jango@protonmail.com"},"repository":{"url":"git+https://github.com/jbx-protocol/nana-ownable.git","type":"git"},"_npmVersion":"10.5.0","description":"A Bananapus variation on OpenZeppelin [`Ownable`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol) to enable owner-based access control incorporating Juicebox project ownership and `JBPermissions`, forked fr","directories":{},"_nodeVersion":"21.7.3","dependencies":{"@bananapus/core":"^0.0.12","@openzeppelin/contracts":"^5.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ownable_0.0.6_1712855427165_0.7392686320074979","host":"s3://npm-registry-packages"}},"0.0.7":{"name":"@bananapus/ownable","version":"0.0.7","license":"MIT","_id":"@bananapus/ownable@0.0.7","maintainers":[{"name":"filipviz","email":"f@filip.world"},{"name":"simplemachine","email":"justinpulley92@gmail.com"},{"name":"me.jango","email":"me.jango@protonmail.com"}],"homepage":"https://github.com/jbx-protocol/nana-ownable#readme","bugs":{"url":"https://github.com/jbx-protocol/nana-ownable/issues"},"dist":{"shasum":"f0c2bd16aa3aa4c67d7ae5f0bef81fb3ce362052","tarball":"https://registry.npmjs.org/@bananapus/ownable/-/ownable-0.0.7.tgz","fileCount":13,"integrity":"sha512-7oujaHP13ZDIIRaCyaYWwVTIgaMkI8TJQywmWPIVAiehmUl8a7yWAh7fetLird+T4kGKsc5l7ePQJgij7+q3Dw==","signatures":[{"sig":"MEUCIBrkM9CU1P47RMh/MW/WCzn6+CdzKhZDF3Yr+xnr8rmoAiEA6LFulxsMEyRUhG8FNKw0QmZ0vAwiW7l0j4hI80QJVPk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":38830},"gitHead":"1e4357be891dae58664ead012bc902edfff8b441","scripts":{"test":"forge test","coverage:integration":"forge coverage --match-path \"./src/*.sol\" --report lcov --report summary"},"_npmUser":{"name":"me.jango","email":"me.jango@protonmail.com"},"repository":{"url":"git+https://github.com/jbx-protocol/nana-ownable.git","type":"git"},"_npmVersion":"10.8.2","description":"A Bananapus variation on OpenZeppelin [`Ownable`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol) to enable owner-based access control incorporating Juicebox project ownership and `JBPermissions`.","directories":{},"_nodeVersion":"22.7.0","dependencies":{"@bananapus/core":"^0.0.29","@openzeppelin/contracts":"^5.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ownable_0.0.7_1724791760458_0.04261385865096101","host":"s3://npm-registry-packages"}},"0.0.8":{"name":"@bananapus/ownable","version":"0.0.8","license":"MIT","_id":"@bananapus/ownable@0.0.8","maintainers":[{"name":"simplemachine","email":"justinpulley92@gmail.com"},{"name":"me.jango","email":"me.jango@protonmail.com"},{"name":"filipviz","email":"f@filip.world"}],"homepage":"https://github.com/jbx-protocol/nana-ownable#readme","bugs":{"url":"https://github.com/jbx-protocol/nana-ownable/issues"},"dist":{"shasum":"70a852654948569d389a60ddd7fba0d838f3c343","tarball":"https://registry.npmjs.org/@bananapus/ownable/-/ownable-0.0.8.tgz","fileCount":13,"integrity":"sha512-dIUQUEom2zVtCOXXkF5OiTzkU4ns6tyVGUyAyGtz9Tlc25rdJVyvpSwJ/xkfhRXAOl7HZ6CqKhhYMROQM3zvqw==","signatures":[{"sig":"MEUCICytDlIQ5xYJe9RkApZ7YmD92JjTwi+fw4xky4aZuRDpAiEA+jSyh9SPUdCKoRG1zdAGc0rv+YaIdoSCe7KOZGvdo9A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40402},"gitHead":"a74b3181e75adaf0ee0c93cb00bcc5709ca8f314","scripts":{"test":"forge test","coverage:integration":"forge coverage --match-path \"./src/*.sol\" --report lcov --report summary"},"_npmUser":{"name":"me.jango","email":"me.jango@protonmail.com"},"repository":{"url":"git+https://github.com/jbx-protocol/nana-ownable.git","type":"git"},"_npmVersion":"10.9.2","description":"A Bananapus variation on OpenZeppelin [`Ownable`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol) to enable owner-based access control incorporating Juicebox project ownership and `JBPermissions`.","directories":{},"_nodeVersion":"23.6.1","dependencies":{"@bananapus/core":"^0.0.39","@openzeppelin/contracts":"^5.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ownable_0.0.8_1737849512964_0.5490184286766071","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@bananapus/ownable","version":"0.0.9","license":"MIT","repository":{"type":"git","url":"git+https://github.com/jbx-protocol/nana-ownable.git"},"dependencies":{"@bananapus/core":"^0.0.39","@openzeppelin/contracts":"^5.0.2"},"scripts":{"test":"forge test","coverage:integration":"forge coverage --match-path \"./src/*.sol\" --report lcov --report summary"},"_id":"@bananapus/ownable@0.0.9","gitHead":"434be77c6910d9cd2fa2d9dc45cbdfb9be332e3a","description":"A Bananapus variation on OpenZeppelin [`Ownable`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol) to enable owner-based access control incorporating Juicebox project ownership and `JBPermissions`.","bugs":{"url":"https://github.com/jbx-protocol/nana-ownable/issues"},"homepage":"https://github.com/jbx-protocol/nana-ownable#readme","_nodeVersion":"23.8.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-7z/uhOsCA67YEyHFNnavrwY02fpWLQMRdkjGDEX+5I9uyXrkoynsTaOf4Nq5QDFrJFf8nBN/qdURCf6U9q/clQ==","shasum":"b8ffbee3b868f2bcdc9c80213b78f67bd6a0a5af","tarball":"https://registry.npmjs.org/@bananapus/ownable/-/ownable-0.0.9.tgz","fileCount":25,"unpackedSize":63763,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICgZTWmo7Hk0X/OPIxrLpDYaZeMrJvKx4QMRKlEXWMiQAiEAimJd/nAwe5BThwDOu+s5kcD8U4Mq/QtmzqL+WRZafkE="}]},"_npmUser":{"name":"me.jango","email":"me.jango@protonmail.com"},"directories":{},"maintainers":[{"name":"simplemachine","email":"justinpulley92@gmail.com"},{"name":"me.jango","email":"me.jango@protonmail.com"},{"name":"filipviz","email":"f@filip.world"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ownable_0.0.9_1739744455490_0.940249407248269"},"_hasShrinkwrap":false}},"time":{"created":"2024-02-14T13:03:53.269Z","modified":"2025-02-16T22:20:55.904Z","0.0.1":"2024-02-14T13:03:53.558Z","0.0.2":"2024-02-14T16:33:44.748Z","0.0.3":"2024-02-23T21:15:48.452Z","0.0.4":"2024-02-27T00:10:51.469Z","0.0.5":"2024-03-31T08:06:02.852Z","0.0.6":"2024-04-11T17:10:27.349Z","0.0.7":"2024-08-27T20:49:20.617Z","0.0.8":"2025-01-25T23:58:33.171Z","0.0.9":"2025-02-16T22:20:55.675Z"},"bugs":{"url":"https://github.com/jbx-protocol/nana-ownable/issues"},"license":"MIT","homepage":"https://github.com/jbx-protocol/nana-ownable#readme","repository":{"type":"git","url":"git+https://github.com/jbx-protocol/nana-ownable.git"},"description":"A Bananapus variation on OpenZeppelin [`Ownable`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol) to enable owner-based access control incorporating Juicebox project ownership and `JBPermissions`.","maintainers":[{"name":"simplemachine","email":"justinpulley92@gmail.com"},{"name":"me.jango","email":"me.jango@protonmail.com"},{"name":"filipviz","email":"f@filip.world"}],"readme":"# Bananapus Ownable\n\nA Bananapus variation on OpenZeppelin [`Ownable`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol) to enable owner-based access control incorporating Juicebox project ownership and `JBPermissions`.\n\n<details>\n  <summary>Table of Contents</summary>\n  <ol>\n    <li><a href=\"#repository-layout\">Repository Layout</a></li>\n    <li><a href=\"#usage\">Usage</a></li>\n  <ul>\n    <li><a href=\"#install\">Install</a></li>\n    <li><a href=\"#develop\">Develop</a></li>\n    <li><a href=\"#scripts\">Scripts</a></li>\n    <li><a href=\"#tips\">Tips</a></li>\n    </ul>\n  </ul>\n  </ol>\n</details>\n\nThis implementation adds:\n\n- The ability to transfer contract ownership to a Juicebox Project instead of a specific address.\n- The ability to grant other addresses `OnlyOwner` access using `JBPermissions`.\n- Includes the `JBPermissioned` modifiers with support for OpenZeppelin [`Context`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/Context.sol). This enables optional meta-transaction support.\n\nAll features are backwards compatible with OpenZeppelin `Ownable`. This should be a drop-in replacement.\n\nThis repo contains 2 contracts:\n\n1. If your contract does not already use `Ownable` or access controls, use `JBOwnable`.\n2. If your contract extends a contract you cannot easily modify (e.g. a core dependency), and that contract inherits from OpenZeppelin `Ownable`, use `JBOwnableOverride`.\n\n**NOTICE:** Only use `JBOwnableOverride` if you are overriding OpenZeppelin `Ownable` v4.7.0 or higher. Otherwise, `JBPermissions` functionality for `onlyOwner` will not work.\n\nThis repo was forked from [`jbx-protocol/juice-ownable`](https://github.com/jbx-protocol/juice-ownable).\n\n_If you're having trouble understanding this contract, take a look at the [core protocol contracts](https://github.com/Bananapus/nana-core) and the [documentation](https://docs.juicebox.money/) first. If you have questions, reach out on [Discord](https://discord.com/invite/ErQYmth4dS)._\n\n## Repository Layout\n\nThe root directory contains this README, an MIT license, and config files.\n\n```\nnana-ownable/\n├── src/ - The Solidity source code for the contracts.\n│   ├── JBOwnable.sol - Implements ownable access control for Juicebox projects/permissions.\n│   ├── JBOwnableOverrides.sol - Abstract base contract used by JBOwnable.\n│   ├── interfaces/ - Contract interfaces.\n│   │   └── IJBOwnable.sol - Interface used by JBOwnableOverrides.\n│   └── structs/ - Structs.\n│       └── JBOwner.sol - Owner information for a given instance of JBOwnableOverrides.\n├── test/ - Forge tests and testing utilities. Top level contains the main test files.\n│   ├── handlers/ - Custom handlers for tests.\n│   ├── mock/ - Mocking utilities.\n│   ├── Ownable.t.sol - Main tests.\n│   └── OwnableInvariantTests.t.sol - Invariant test.\n└── .github/\n    └── workflows/ - CI/CD workflows.\n```\n\n## Usage\n\n### Install\n\nHow to install `nana-ownable` in another project.\n\nFor projects using `npm` to manage dependencies (recommended):\n\n```bash\nnpm install @bananapus/ownable\n```\n\nFor projects using `forge` to manage dependencies (not recommended):\n\n```bash\nforge install Bananapus/nana-ownable\n```\n\nIf you're using `forge` to manage dependencies, add `@bananapus/ownable/=lib/nana-ownable/` to `remappings.txt`. You'll also need to install `nana-ownable`'s dependencies and add similar remappings for them.\n\n### Develop\n\n`nana-ownable` uses [npm](https://www.npmjs.com/) (version >=20.0.0) for package management and the [Foundry](https://github.com/foundry-rs/foundry) development toolchain for builds, tests, and deployments. To get set up, [install Node.js](https://nodejs.org/en/download) and install [Foundry](https://github.com/foundry-rs/foundry):\n\n```bash\ncurl -L https://foundry.paradigm.xyz | sh\n```\n\nYou can download and install dependencies with:\n\n```bash\nnpm ci && forge install\n```\n\nIf you run into trouble with `forge install`, try using `git submodule update --init --recursive` to ensure that nested submodules have been properly initialized.\n\nSome useful commands:\n\n| Command               | Description                                         |\n| --------------------- | --------------------------------------------------- |\n| `forge build`         | Compile the contracts and write artifacts to `out`. |\n| `forge fmt`           | Lint.                                               |\n| `forge test`          | Run the tests.                                      |\n| `forge build --sizes` | Get contract sizes.                                 |\n| `forge coverage`      | Generate a test coverage report.                    |\n| `foundryup`           | Update foundry. Run this periodically.              |\n| `forge clean`         | Remove the build artifacts and cache directories.   |\n\nTo learn more, visit the [Foundry Book](https://book.getfoundry.sh/) docs.\n\n### Scripts\n\nFor convenience, several utility commands are available in `package.json`.\n\n| Command                           | Description                            |\n| --------------------------------- | -------------------------------------- |\n| `npm test`                        | Run local tests.                       |\n| `npm run test:fork`               | Run fork tests (for use in CI).        |\n| `npm run coverage`           | Generate an LCOV test coverage report. |\n\n### Tips\n\nTo view test coverage, run `npm run coverage` to generate an LCOV test report. You can use an extension like [Coverage Gutters](https://marketplace.visualstudio.com/items?itemName=ryanluker.vscode-coverage-gutters) to view coverage in your editor.\n\nIf you're using Nomic Foundation's [Solidity](https://marketplace.visualstudio.com/items?itemName=NomicFoundation.hardhat-solidity) extension in VSCode, you may run into LSP errors because the extension cannot find dependencies outside of `lib`. You can often fix this by running:\n\n```bash\nforge remappings >> remappings.txt\n```\n\nThis makes the extension aware of default remappings.\n","readmeFilename":"README.md"}