{"_id":"@diamondslab/diamonds","_rev":"10-8c1e401ccc9cb9e27cc7088265ba4eb5","name":"@diamondslab/diamonds","dist-tags":{"latest":"1.5.0"},"versions":{"1.0.0":{"name":"@diamondslab/diamonds","version":"1.0.0","keywords":["ethereum","smart-contracts","hardhat","hardhat-plugin","diamond","diamond-proxy","diamond-upgradeable","blockchain"],"license":"MIT","_id":"@diamondslab/diamonds@1.0.0","maintainers":[{"name":"am0rfu5","email":"am0rfu5@protonmail.com"}],"bugs":{"url":"https://github.com/diamondslab/diamonds/issues"},"bin":{"diamond-abi":"dist/scripts/diamond-abi-cli.js"},"dist":{"shasum":"12ae6abd49f8360e9619407f95f413905a165872","tarball":"https://registry.npmjs.org/@diamondslab/diamonds/-/diamonds-1.0.0.tgz","fileCount":229,"integrity":"sha512-6Hb4n1A9RT6ZAs84pHHXXcagnfhp7HPTtUkwPV0fMmagh5CtJCZ0jfUxOuCtklxd91U9jpBiyK+wJo98BPDNBg==","signatures":[{"sig":"MEUCIC/1XYEvg6tIt2dsaK9A0jvyCL4sBamFzKugRbAvkVrOAiEAjQUTN5vN5N7rCALvMZeUpXJ2eSVkDrje9teavT6SVnU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1919497},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","authors":["Am0rfu5","SuperGenius"],"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"b0323760ef966fdacfb5f4c61c4a78d415d04455","scripts":{"ls":"lint-staged","pc":"yarn precommit","pp":"yarn prepush","lint":"tslint --config tslint.json --project tsconfig.dev.json","test":"hardhat test --config hardhat.config.ts","audit":"yarn npm audit --severity moderate","build":"yarn clean-compile && npx tsc","clean":"rimraf artifacts/* cache/* diamond-abi/* typechain-types/* diamond-typechain-types/*","watch":"tsc --project tsconfig.json -w","format":"prettier --write \"**/*.{ts,js,json,md,sol}\"","compile":"npx hardhat compile --config hardhat.config.ts && yarn diamond:generate-abi-typechain","prepare":"husky","prepush":".husky/pre-push","coverage":"npx hardhat coverage","depcheck":"yarn dlx depcheck","lint:fix":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts}' && tslint --fix --config tslint.json --project tsconfig.dev.json","osv:scan":"osv-scanner --lockfile=yarn.lock --format=json","build:dev":"tsc --project tsconfig.dev.json --noEmit","precommit":".husky/pre-commit","snyk:test":"snyk test --all-projects --exclude=yarn.lock --severity-threshold=medium","test:unit":"hardhat test test/unit/**/*.test.ts --config hardhat.config.ts","commitlint":"commitlint --edit","env:parity":"bash scripts/devops/environment-parity-validation.sh","rpc:deploy":"ts-node scripts/deploy-rpc.ts deploy","rpc:status":"ts-node scripts/status-rpc.ts check","rpc:verify":"ts-node scripts/verify-rpc.ts verify","lint-staged":"npx lint-staged","rpc:upgrade":"ts-node scripts/upgrade-rpc.ts upgrade","slsa-attest":"npx ts-node scripts/devops/slsa-attestation.ts generate","socket:scan":"SOCKET_CLI_API_TOKEN=$(grep SOCKET_CLI_API_TOKEN .env | cut -d'=' -f2) npx socket ci","health-check":"npx ts-node scripts/devops/health-check.ts","perf-monitor":"npx ts-node scripts/devops/perf-monitor.ts","perf:compare":"bash scripts/devops/devcontainer-performance-benchmark.sh compare","semgrep:scan":"semgrep scan --config .semgrep.yml --exclude-rule weak-encryption --error","slither:scan":"slither . --config-file slither.config.json --ignore-compile","clean-compile":"yarn clean && yarn compile","cost-analyzer":"npx ts-node scripts/devops/cost-analyzer.ts","defender:init":"ts-node scripts/defender-cli.ts init","sigstore-sign":"npx ts-node scripts/devops/sigstore-integration.ts sign-all","slither:check":"slither . --config-file slither.config.json --checklist","smart-trigger":"npx ts-node scripts/devops/smart-trigger.ts","test-sharding":"npx ts-node scripts/devops/test-sharding.ts","test:coverage":"hardhat coverage --config hardhat.config.ts","container:pull":"node scripts/devops/container-registry-manager.sh pull","container:push":"node scripts/devops/container-registry-manager.sh push","diamonds-clean":"rm -rf diamond-typechain-types diamond-abi && npx hardhat clean","install:frozen":"yarn install --frozen-lockfile","perf:benchmark":"bash scripts/devops/devcontainer-performance-benchmark.sh all --environment native","prepublishOnly":"yarn build","security-check":"yarn audit && yarn snyk:test && yarn socket:scan && yarn osv:scan && yarn semgrep:scan && yarn slither:scan && yarn git-secrets:scan","sign-artifacts":"npx ts-node scripts/devops/sign-artifacts.ts","ci-perf-monitor":"node scripts/devops/ci-perf-monitor.js","container:build":"node scripts/devops/container-registry-manager.sh build","defender:deploy":"ts-node scripts/defender-cli.ts deploy","defender:status":"ts-node scripts/defender-cli.ts status","defender:verify":"ts-node scripts/defender-cli.ts verify","rpc:verify-full":"ts-node scripts/verify-rpc.ts full","sigstore-verify":"npx ts-node scripts/devops/sigstore-integration.ts verify-all","container:exists":"node scripts/devops/container-registry-manager.sh exists","container:report":"node scripts/devops/container-registry-manager.sh report","defender:upgrade":"ts-node scripts/defender-cli.ts upgrade","emergency-bypass":"npx ts-node scripts/devops/emergency-bypass.ts","git-secrets:scan":"git secrets --scan","provenance-check":"npx ts-node scripts/devops/provenance-validator.ts","rpc:deploy-quick":"ts-node scripts/deploy-rpc.ts quick","rpc:status-quick":"ts-node scripts/status-rpc.ts quick","security-metrics":"npx ts-node scripts/devops/security-metrics-dashboard.ts","security-webhook":"npx ts-node scripts/devops/security-monitoring-webhook.ts","test:integration":"hardhat test test/integration/**/*.test.ts --config hardhat.config.ts","test:performance":"hardhat test test/integration/performance/**/*.test.ts --config hardhat.config.ts","container:cleanup":"node scripts/devops/container-registry-manager.sh cleanup","incident-response":"npx ts-node scripts/devops/incident-response.ts","rpc:deploy-manual":"ts-node scripts/deploy-rpc-manual.ts deploy","rpc:upgrade-quick":"ts-node scripts/upgrade-rpc.ts quick","security-alerting":"npx ts-node scripts/devops/security-alerting.ts","container:validate":"bash scripts/devops/devcontainer-setup-validation.sh","supply-chain-quick":"npx ts-node scripts/devops/supply-chain-risk-assessment.ts quick","supply-chain-assess":"npx ts-node scripts/devops/supply-chain-risk-assessment.ts assess","diamond:generate-abi":"npx hardhat diamond:generate-abi --diamond-name Diamond","security-tool-update":"npx ts-node scripts/devops/security-tool-updater.ts","security-commit-check":"npx ts-node scripts/devops/security-commit-check.ts","maintenance-automation":"npx ts-node scripts/devops/maintenance-automation.ts","rpc:deploy-interactive":"ts-node scripts/deploy-rpc-manual.ts interactive","security-health-checks":"npx ts-node scripts/devops/security-health-checks.ts","ci-performance-dashboard":"node scripts/devops/ci-performance-dashboard.js","perf:benchmark:container":"bash scripts/devops/devcontainer-performance-benchmark.sh all --environment container","diamond:generate-abi-typechain":"npx hardhat diamond:generate-abi-typechain --diamond-name Diamond"},"_npmUser":{"name":"am0rfu5","email":"am0rfu5@protonmail.com"},"repository":"github:diamondslab/diamonds","description":"Tools for deploying and interfacing with ERC-2535 Diamond Proxies","directories":{},"dependencies":{"axios":"^1.12.0","debug":"^4.4.1","lodash":"^4.17.21","fs-extra":"^11.3.0","@ethersproject/abstract-signer":"^5.8.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.0.2","chai":"^4.2.0","jest":"^30.0.4","snyk":"^1.1294.0","web3":"^4.16.0","chalk":"^4.1.2","husky":"^9.1.7","mocha":"^9.2.2","sinon":"^21.0.0","dotenv":"^10.0.0","eslint":"^9.17.0","ethers":"^6.4.0","rimraf":"^6.0.1","uint32":"^0.2.1","abi2oas":"^0.1.4","globals":"^15.14.0","hardhat":"^2.26.0","semgrep":"^1.0.0","solhint":"^3.3.7","ts-jest":"^29.4.0","ts-node":"^10.4.0","winston":"^3.17.0","prettier":"^3.4.2","commander":"^9.4.1","jest-mock":"^29.7.0","typechain":"^8.3.2","web3-core":"^4.7.1","typescript":"^5.9.3","web3-utils":"^4.3.3","@types/chai":"^4.2.0","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/node":"^24.0.12","lint-staged":"^15.2.0","@types/debug":"^4.1.12","@types/mocha":"^10.0.10","concurrently":"^8.2.2","@types/lodash":"^4","@types/uint32":"^0.2.0","@commitlint/cli":"^19.8.1","@types/fs-extra":"^5.0.4","eslint-plugin-n":"^17.15.0","chai-as-promised":"^7.1.1","hardhat-diamonds":"git+https://github.com/diamondslab/hardhat-diamonds.git#develop","@types/sinon-chai":"^4.0.0","contracts-starter":"git+https://github.com/mudgen/diamond-2-hardhat.git","solidity-coverage":"^0.8.16","@ethersproject/abi":"^5.8.0","@typechain/hardhat":"^9.1.0","eslint-plugin-node":"^11.1.0","@socketsecurity/cli":"^1.0.0","@ethersproject/bytes":"^5.8.0","@typechain/ethers-v6":"^0.5.1","hardhat-gas-reporter":"^1.0.8","eslint-plugin-promise":"^7.2.1","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.2.1","eslint-plugin-security":"^3.0.0","@types/chai-as-promised":"^8.0.1","@ethersproject/providers":"^5.8.0","prettier-plugin-solidity":"^1.4.1","@typescript-eslint/parser":"^8.18.10","@openzeppelin/defender-sdk":"^2.6.0","@nomicfoundation/ignition-core":"^0.15.9","@commitlint/config-conventional":"^19.8.1","@nomicfoundation/hardhat-ethers":"^3.0.0","@nomicfoundation/hardhat-verify":"^2.0.0","@nomicfoundation/hardhat-toolbox":"^5.0.0","@nomicfoundation/hardhat-web3-v4":"^1.0.0","@typescript-eslint/eslint-plugin":"^8.18.1","@nomicfoundation/hardhat-ignition":"^0.15.0","@gnus.ai/contracts-upgradeable-diamond":"=4.5.0","@nomicfoundation/hardhat-chai-matchers":"^2.0.0","@openzeppelin/defender-sdk-base-client":"^2.6.0","@nomicfoundation/hardhat-ignition-ethers":"^0.15.0","@nomicfoundation/hardhat-network-helpers":"^1.0.0","@openzeppelin/defender-sdk-deploy-client":"^2.6.0","@openzeppelin/defender-sdk-proposal-client":"^2.6.0"},"peerDependencies":{"ethers":"^6.0.0","hardhat":"^2.0.0","ts-node":"^10.0.0","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/diamonds_1.0.0_1761774267540_0.9864625333139518","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@diamondslab/diamonds","version":"1.1.0","keywords":["ethereum","smart-contracts","hardhat","hardhat-plugin","diamond","diamond-proxy","diamond-upgradeable","blockchain"],"license":"MIT","_id":"@diamondslab/diamonds@1.1.0","maintainers":[{"name":"am0rfu5","email":"am0rfu5@protonmail.com"}],"bugs":{"url":"https://github.com/diamondslab/diamonds/issues"},"bin":{"diamond-abi":"dist/scripts/diamond-abi-cli.js"},"dist":{"shasum":"bca28b56065a4bb0c71c5cbc8c258e46977da234","tarball":"https://registry.npmjs.org/@diamondslab/diamonds/-/diamonds-1.1.0.tgz","fileCount":73,"integrity":"sha512-mVv8TJip+GalCzRhPjW+otr4RhWAVVxfmkLV7TNeCUQ8/6QhOYUnh3xMJCTBdOKiHqmj6QwsxJtCBvDFJJWb2w==","signatures":[{"sig":"MEUCIQDZ8iFCmtoxikOLs6K+bQiWJBfoqvThM+uO7/VWkc0SmQIgORkUJLT3ca6wSWX86pFNw0NSVv9g1tStIjIawGsWIus=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1467690},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","authors":["Am0rfu5","SuperGenius"],"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"545130f6646e11d285a30b79277f7f3c8c1a03f8","scripts":{"ls":"lint-staged","pc":"yarn precommit","pp":"yarn prepush","lint":"tslint --config tslint.json --project tsconfig.dev.json","test":"hardhat test --config hardhat.config.ts","audit":"yarn npm audit --severity moderate","build":"yarn clean-compile && npx tsc","clean":"rimraf artifacts/* cache/* diamond-abi/* typechain-types/* diamond-typechain-types/*","watch":"tsc --project tsconfig.json -w","format":"prettier --write \"**/*.{ts,js,json,md,sol}\"","compile":"npx hardhat compile --config hardhat.config.ts && yarn diamond:generate-abi-typechain","prepare":"husky","prepush":".husky/pre-push","coverage":"npx hardhat coverage","depcheck":"yarn dlx depcheck","lint:fix":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts}' && tslint --fix --config tslint.json --project tsconfig.dev.json","osv:scan":"osv-scanner --lockfile=yarn.lock --format=json","build:dev":"tsc --project tsconfig.dev.json --noEmit","precommit":".husky/pre-commit","snyk:test":"snyk test --all-projects --exclude=yarn.lock --severity-threshold=medium","test:unit":"hardhat test test/unit/**/*.test.ts --config hardhat.config.ts","commitlint":"commitlint --edit","env:parity":"bash scripts/devops/environment-parity-validation.sh","rpc:deploy":"ts-node scripts/deploy-rpc.ts deploy","rpc:status":"ts-node scripts/status-rpc.ts check","rpc:verify":"ts-node scripts/verify-rpc.ts verify","lint-staged":"npx lint-staged","rpc:upgrade":"ts-node scripts/upgrade-rpc.ts upgrade","slsa-attest":"npx ts-node scripts/devops/slsa-attestation.ts generate","socket:scan":"SOCKET_CLI_API_TOKEN=$(grep SOCKET_CLI_API_TOKEN .env | cut -d'=' -f2) npx socket ci","health-check":"npx ts-node scripts/devops/health-check.ts","perf-monitor":"npx ts-node scripts/devops/perf-monitor.ts","perf:compare":"bash scripts/devops/devcontainer-performance-benchmark.sh compare","semgrep:scan":"semgrep scan --config .semgrep.yml --exclude-rule weak-encryption --error","slither:scan":"slither . --config-file slither.config.json --ignore-compile","clean-compile":"yarn clean && yarn compile","cost-analyzer":"npx ts-node scripts/devops/cost-analyzer.ts","defender:init":"ts-node scripts/defender-cli.ts init","sigstore-sign":"npx ts-node scripts/devops/sigstore-integration.ts sign-all","slither:check":"slither . --config-file slither.config.json --checklist","smart-trigger":"npx ts-node scripts/devops/smart-trigger.ts","test-sharding":"npx ts-node scripts/devops/test-sharding.ts","test:coverage":"hardhat coverage --config hardhat.config.ts","container:pull":"node scripts/devops/container-registry-manager.sh pull","container:push":"node scripts/devops/container-registry-manager.sh push","diamonds-clean":"rm -rf diamond-typechain-types diamond-abi && npx hardhat clean","install:frozen":"yarn install --frozen-lockfile","perf:benchmark":"bash scripts/devops/devcontainer-performance-benchmark.sh all --environment native","prepublishOnly":"yarn build","security-check":"yarn audit && yarn snyk:test && yarn socket:scan && yarn osv:scan && yarn semgrep:scan && yarn slither:scan && yarn git-secrets:scan","sign-artifacts":"npx ts-node scripts/devops/sign-artifacts.ts","ci-perf-monitor":"node scripts/devops/ci-perf-monitor.js","container:build":"node scripts/devops/container-registry-manager.sh build","defender:deploy":"ts-node scripts/defender-cli.ts deploy","defender:status":"ts-node scripts/defender-cli.ts status","defender:verify":"ts-node scripts/defender-cli.ts verify","rpc:verify-full":"ts-node scripts/verify-rpc.ts full","sigstore-verify":"npx ts-node scripts/devops/sigstore-integration.ts verify-all","container:exists":"node scripts/devops/container-registry-manager.sh exists","container:report":"node scripts/devops/container-registry-manager.sh report","defender:upgrade":"ts-node scripts/defender-cli.ts upgrade","emergency-bypass":"npx ts-node scripts/devops/emergency-bypass.ts","git-secrets:scan":"git secrets --scan","provenance-check":"npx ts-node scripts/devops/provenance-validator.ts","rpc:deploy-quick":"ts-node scripts/deploy-rpc.ts quick","rpc:status-quick":"ts-node scripts/status-rpc.ts quick","security-metrics":"npx ts-node scripts/devops/security-metrics-dashboard.ts","security-webhook":"npx ts-node scripts/devops/security-monitoring-webhook.ts","test:integration":"hardhat test test/integration/**/*.test.ts --config hardhat.config.ts","test:performance":"hardhat test test/integration/performance/**/*.test.ts --config hardhat.config.ts","container:cleanup":"node scripts/devops/container-registry-manager.sh cleanup","incident-response":"npx ts-node scripts/devops/incident-response.ts","rpc:deploy-manual":"ts-node scripts/deploy-rpc-manual.ts deploy","rpc:upgrade-quick":"ts-node scripts/upgrade-rpc.ts quick","security-alerting":"npx ts-node scripts/devops/security-alerting.ts","container:validate":"bash scripts/devops/devcontainer-setup-validation.sh","supply-chain-quick":"npx ts-node scripts/devops/supply-chain-risk-assessment.ts quick","supply-chain-assess":"npx ts-node scripts/devops/supply-chain-risk-assessment.ts assess","diamond:generate-abi":"npx hardhat diamond:generate-abi --diamond-name Diamond","security-tool-update":"npx ts-node scripts/devops/security-tool-updater.ts","security-commit-check":"npx ts-node scripts/devops/security-commit-check.ts","maintenance-automation":"npx ts-node scripts/devops/maintenance-automation.ts","rpc:deploy-interactive":"ts-node scripts/deploy-rpc-manual.ts interactive","security-health-checks":"npx ts-node scripts/devops/security-health-checks.ts","ci-performance-dashboard":"node scripts/devops/ci-performance-dashboard.js","perf:benchmark:container":"bash scripts/devops/devcontainer-performance-benchmark.sh all --environment container","diamond:generate-abi-typechain":"npx hardhat diamond:generate-abi-typechain --diamond-name Diamond"},"_npmUser":{"name":"am0rfu5","email":"am0rfu5@protonmail.com"},"repository":"github:diamondslab/diamonds","description":"Tools for deploying and interfacing with ERC-2535 Diamond Proxies","directories":{},"dependencies":{"axios":"^1.12.0","debug":"^4.4.1","lodash":"^4.17.21","fs-extra":"^11.3.0","@ethersproject/abstract-signer":"^5.8.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.0.2","chai":"^4.2.0","jest":"^30.0.4","snyk":"^1.1294.0","web3":"^4.16.0","chalk":"^4.1.2","husky":"^9.1.7","mocha":"^9.2.2","sinon":"^21.0.0","dotenv":"^10.0.0","eslint":"^9.17.0","ethers":"^6.4.0","rimraf":"^6.0.1","uint32":"^0.2.1","abi2oas":"^0.1.4","globals":"^15.14.0","hardhat":"^2.26.0","semgrep":"^1.0.0","solhint":"^3.3.7","ts-jest":"^29.4.0","ts-node":"^10.4.0","winston":"^3.17.0","prettier":"^3.4.2","commander":"^9.4.1","jest-mock":"^29.7.0","typechain":"^8.3.2","web3-core":"^4.7.1","typescript":"^5.9.3","web3-utils":"^4.3.3","@types/chai":"^4.2.0","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/node":"^24.0.12","lint-staged":"^15.2.0","@types/debug":"^4.1.12","@types/mocha":"^10.0.10","concurrently":"^8.2.2","@types/lodash":"^4","@types/uint32":"^0.2.0","@commitlint/cli":"^19.8.1","@types/fs-extra":"^5.0.4","eslint-plugin-n":"^17.15.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^4.0.0","contracts-starter":"git+https://github.com/mudgen/diamond-2-hardhat.git","solidity-coverage":"^0.8.16","@ethersproject/abi":"^5.8.0","@typechain/hardhat":"^9.1.0","eslint-plugin-node":"^11.1.0","@socketsecurity/cli":"^1.0.0","@ethersproject/bytes":"^5.8.0","@typechain/ethers-v6":"^0.5.1","hardhat-gas-reporter":"^1.0.8","eslint-plugin-promise":"^7.2.1","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.2.1","eslint-plugin-security":"^3.0.0","@types/chai-as-promised":"^8.0.1","@ethersproject/providers":"^5.8.0","prettier-plugin-solidity":"^1.4.1","@typescript-eslint/parser":"^8.18.10","@openzeppelin/defender-sdk":"^2.6.0","@diamondslab/hardhat-diamonds":"^1.0.0","@nomicfoundation/ignition-core":"^0.15.9","@commitlint/config-conventional":"^19.8.1","@nomicfoundation/hardhat-ethers":"^3.0.0","@nomicfoundation/hardhat-verify":"^2.0.0","@nomicfoundation/hardhat-toolbox":"^5.0.0","@nomicfoundation/hardhat-web3-v4":"^1.0.0","@typescript-eslint/eslint-plugin":"^8.18.1","@nomicfoundation/hardhat-ignition":"^0.15.0","@gnus.ai/contracts-upgradeable-diamond":"=4.5.0","@nomicfoundation/hardhat-chai-matchers":"^2.0.0","@openzeppelin/defender-sdk-base-client":"^2.6.0","@nomicfoundation/hardhat-ignition-ethers":"^0.15.0","@nomicfoundation/hardhat-network-helpers":"^1.0.0","@openzeppelin/defender-sdk-deploy-client":"^2.6.0","@openzeppelin/defender-sdk-proposal-client":"^2.6.0"},"peerDependencies":{"ethers":"^6.0.0","hardhat":"^2.0.0","ts-node":"^10.0.0","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/diamonds_1.1.0_1761965207651_0.5322720331470443","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@diamondslab/diamonds","version":"1.1.2","keywords":["ethereum","smart-contracts","hardhat","hardhat-plugin","diamond","diamond-proxy","diamond-upgradeable","blockchain"],"license":"MIT","_id":"@diamondslab/diamonds@1.1.2","maintainers":[{"name":"am0rfu5","email":"am0rfu5@protonmail.com"}],"bugs":{"url":"https://github.com/diamondslab/diamonds/issues"},"bin":{"diamond-abi":"dist/scripts/diamond-abi-cli.js"},"dist":{"shasum":"902e820c58aabb0e8c3824c6e5619eeed2c00228","tarball":"https://registry.npmjs.org/@diamondslab/diamonds/-/diamonds-1.1.2.tgz","fileCount":161,"integrity":"sha512-/nlXKbXhfEfezqT6Iweb7tHsIgpZraVkQU62mvevTg7whFchwvid9yEDx+5zJqbcciRGQmdnULLYad5cWLIffA==","signatures":[{"sig":"MEUCIFAI7Pp1wZWIVPAeZgYc9nFuuhi7I+tSvz911TI4z329AiEA7QfhCZYPK1Tee9tSzHznw342WW9VVjK9Fdd21dwf10I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":484650},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","authors":["Am0rfu5","SuperGenius"],"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"f7ae00affc979afe3f16326ecccb17880f920ee6","scripts":{"ls":"lint-staged","pc":"yarn precommit","pp":"yarn prepush","lint":"tslint --config tslint.json --project tsconfig.dev.json","test":"hardhat test --config hardhat.config.ts","audit":"yarn npm audit --severity moderate","build":"npx tsc","clean":"rimraf artifacts/* cache/* diamond-abi/* typechain-types/* diamond-typechain-types/*","watch":"tsc --project tsconfig.json -w","format":"prettier --write \"**/*.{ts,js,json,md,sol}\"","compile":"npx hardhat compile --config hardhat.config.ts && yarn diamond:generate-abi-typechain","prepare":"husky","prepush":".husky/pre-push","coverage":"npx hardhat coverage","depcheck":"yarn dlx depcheck","lint:fix":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts}' && tslint --fix --config tslint.json --project tsconfig.dev.json","osv:scan":"osv-scanner --lockfile=yarn.lock --format=json","build:dev":"tsc --project tsconfig.dev.json --noEmit","precommit":".husky/pre-commit","snyk:test":"snyk test --all-projects --exclude=yarn.lock --severity-threshold=medium","test:unit":"hardhat test test/unit/**/*.test.ts --config hardhat.config.ts","commitlint":"commitlint --edit","env:parity":"bash scripts/devops/environment-parity-validation.sh","rpc:deploy":"ts-node scripts/deploy-rpc.ts deploy","rpc:status":"ts-node scripts/status-rpc.ts check","rpc:verify":"ts-node scripts/verify-rpc.ts verify","lint-staged":"npx lint-staged","rpc:upgrade":"ts-node scripts/upgrade-rpc.ts upgrade","slsa-attest":"npx ts-node scripts/devops/slsa-attestation.ts generate","socket:scan":"SOCKET_CLI_API_TOKEN=$(grep SOCKET_CLI_API_TOKEN .env | cut -d'=' -f2) npx socket ci","health-check":"npx ts-node scripts/devops/health-check.ts","perf-monitor":"npx ts-node scripts/devops/perf-monitor.ts","perf:compare":"bash scripts/devops/devcontainer-performance-benchmark.sh compare","semgrep:scan":"semgrep scan --config .semgrep.yml --exclude-rule weak-encryption --error","slither:scan":"slither . --config-file slither.config.json --ignore-compile","clean-compile":"yarn clean && yarn compile","cost-analyzer":"npx ts-node scripts/devops/cost-analyzer.ts","defender:init":"ts-node scripts/defender-cli.ts init","sigstore-sign":"npx ts-node scripts/devops/sigstore-integration.ts sign-all","slither:check":"slither . --config-file slither.config.json --checklist","smart-trigger":"npx ts-node scripts/devops/smart-trigger.ts","test-sharding":"npx ts-node scripts/devops/test-sharding.ts","test:coverage":"hardhat coverage --config hardhat.config.ts","container:pull":"node scripts/devops/container-registry-manager.sh pull","container:push":"node scripts/devops/container-registry-manager.sh push","diamonds-clean":"rm -rf diamond-typechain-types diamond-abi && npx hardhat clean","install:frozen":"yarn install --frozen-lockfile","perf:benchmark":"bash scripts/devops/devcontainer-performance-benchmark.sh all --environment native","prepublishOnly":"yarn build","security-check":"yarn audit && yarn snyk:test && yarn socket:scan && yarn osv:scan && yarn semgrep:scan && yarn slither:scan && yarn git-secrets:scan","sign-artifacts":"npx ts-node scripts/devops/sign-artifacts.ts","ci-perf-monitor":"node scripts/devops/ci-perf-monitor.js","container:build":"node scripts/devops/container-registry-manager.sh build","defender:deploy":"ts-node scripts/defender-cli.ts deploy","defender:status":"ts-node scripts/defender-cli.ts status","defender:verify":"ts-node scripts/defender-cli.ts verify","rpc:verify-full":"ts-node scripts/verify-rpc.ts full","sigstore-verify":"npx ts-node scripts/devops/sigstore-integration.ts verify-all","container:exists":"node scripts/devops/container-registry-manager.sh exists","container:report":"node scripts/devops/container-registry-manager.sh report","defender:upgrade":"ts-node scripts/defender-cli.ts upgrade","emergency-bypass":"npx ts-node scripts/devops/emergency-bypass.ts","git-secrets:scan":"git secrets --scan","provenance-check":"npx ts-node scripts/devops/provenance-validator.ts","rpc:deploy-quick":"ts-node scripts/deploy-rpc.ts quick","rpc:status-quick":"ts-node scripts/status-rpc.ts quick","security-metrics":"npx ts-node scripts/devops/security-metrics-dashboard.ts","security-webhook":"npx ts-node scripts/devops/security-monitoring-webhook.ts","test:integration":"hardhat test test/integration/**/*.test.ts --config hardhat.config.ts","test:performance":"hardhat test test/integration/performance/**/*.test.ts --config hardhat.config.ts","container:cleanup":"node scripts/devops/container-registry-manager.sh cleanup","incident-response":"npx ts-node scripts/devops/incident-response.ts","rpc:deploy-manual":"ts-node scripts/deploy-rpc-manual.ts deploy","rpc:upgrade-quick":"ts-node scripts/upgrade-rpc.ts quick","security-alerting":"npx ts-node scripts/devops/security-alerting.ts","container:validate":"bash scripts/devops/devcontainer-setup-validation.sh","supply-chain-quick":"npx ts-node scripts/devops/supply-chain-risk-assessment.ts quick","supply-chain-assess":"npx ts-node scripts/devops/supply-chain-risk-assessment.ts assess","diamond:generate-abi":"npx hardhat diamond:generate-abi --diamond-name Diamond","security-tool-update":"npx ts-node scripts/devops/security-tool-updater.ts","security-commit-check":"npx ts-node scripts/devops/security-commit-check.ts","maintenance-automation":"npx ts-node scripts/devops/maintenance-automation.ts","rpc:deploy-interactive":"ts-node scripts/deploy-rpc-manual.ts interactive","security-health-checks":"npx ts-node scripts/devops/security-health-checks.ts","ci-performance-dashboard":"node scripts/devops/ci-performance-dashboard.js","perf:benchmark:container":"bash scripts/devops/devcontainer-performance-benchmark.sh all --environment container","diamond:generate-abi-typechain":"npx hardhat diamond:generate-abi-typechain --diamond-name Diamond"},"_npmUser":{"name":"am0rfu5","email":"am0rfu5@protonmail.com"},"repository":"github:diamondslab/diamonds","description":"Tools for deploying and interfacing with ERC-2535 Diamond Proxies","directories":{},"dependencies":{"axios":"^1.12.0","debug":"^4.4.1","lodash":"^4.17.21","fs-extra":"^11.3.0","@ethersproject/abstract-signer":"^5.8.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.0.2","chai":"^4.2.0","jest":"^30.0.4","snyk":"^1.1294.0","web3":"^4.16.0","chalk":"^4.1.2","husky":"^9.1.7","mocha":"^9.2.2","sinon":"^21.0.0","dotenv":"^10.0.0","eslint":"^9.17.0","ethers":"^6.4.0","rimraf":"^6.0.1","uint32":"^0.2.1","abi2oas":"^0.1.4","globals":"^15.14.0","hardhat":"^2.26.0","semgrep":"^1.0.0","solhint":"^3.3.7","ts-jest":"^29.4.0","ts-node":"^10.4.0","winston":"^3.17.0","prettier":"^3.4.2","commander":"^9.4.1","jest-mock":"^29.7.0","typechain":"^8.3.2","web3-core":"^4.7.1","typescript":"^5.9.3","web3-utils":"^4.3.3","@types/chai":"^4.2.0","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/node":"^24.0.12","lint-staged":"^15.2.0","@types/debug":"^4.1.12","@types/mocha":"^10.0.10","concurrently":"^8.2.2","@types/lodash":"^4","@types/uint32":"^0.2.0","@commitlint/cli":"^19.8.1","@types/fs-extra":"^5.0.4","eslint-plugin-n":"^17.15.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^4.0.0","contracts-starter":"git+https://github.com/mudgen/diamond-2-hardhat.git","solidity-coverage":"^0.8.16","@ethersproject/abi":"^5.8.0","@typechain/hardhat":"^9.1.0","eslint-plugin-node":"^11.1.0","@socketsecurity/cli":"^1.0.0","@ethersproject/bytes":"^5.8.0","@typechain/ethers-v6":"^0.5.1","hardhat-gas-reporter":"^1.0.8","eslint-plugin-promise":"^7.2.1","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.2.1","eslint-plugin-security":"^3.0.0","@types/chai-as-promised":"^8.0.1","@ethersproject/providers":"^5.8.0","prettier-plugin-solidity":"^1.4.1","@typescript-eslint/parser":"^8.18.10","@openzeppelin/defender-sdk":"^2.6.0","@diamondslab/hardhat-diamonds":"^1.0.0","@nomicfoundation/ignition-core":"^0.15.9","@commitlint/config-conventional":"^19.8.1","@nomicfoundation/hardhat-ethers":"^3.0.0","@nomicfoundation/hardhat-verify":"^2.0.0","@nomicfoundation/hardhat-toolbox":"^5.0.0","@nomicfoundation/hardhat-web3-v4":"^1.0.0","@typescript-eslint/eslint-plugin":"^8.18.1","@nomicfoundation/hardhat-ignition":"^0.15.0","@gnus.ai/contracts-upgradeable-diamond":"=4.5.0","@nomicfoundation/hardhat-chai-matchers":"^2.0.0","@openzeppelin/defender-sdk-base-client":"^2.6.0","@nomicfoundation/hardhat-ignition-ethers":"^0.15.0","@nomicfoundation/hardhat-network-helpers":"^1.0.0","@openzeppelin/defender-sdk-deploy-client":"^2.6.0","@openzeppelin/defender-sdk-proposal-client":"^2.6.0"},"peerDependencies":{"ethers":"^6.0.0","hardhat":"^2.0.0","ts-node":"^10.0.0","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/diamonds_1.1.2_1762002478749_0.5167305035042129","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@diamondslab/diamonds","version":"1.2.0","keywords":["ethereum","smart-contracts","hardhat","hardhat-plugin","diamond","diamond-proxy","diamond-upgradeable","blockchain"],"license":"MIT","_id":"@diamondslab/diamonds@1.2.0","maintainers":[{"name":"am0rfu5","email":"am0rfu5@protonmail.com"}],"bugs":{"url":"https://github.com/diamondslab/diamonds/issues"},"bin":{"diamond-abi":"dist/scripts/diamond-abi-cli.js"},"dist":{"shasum":"41d3538b0b033914b9012822815eed5b791afdee","tarball":"https://registry.npmjs.org/@diamondslab/diamonds/-/diamonds-1.2.0.tgz","fileCount":161,"integrity":"sha512-cDUJLIMhx4uLUzTUdCSi22IxE30A5bP05A31TlkwLZrNIVv1bxqqUpOGGwZ/qrCxaO1YfSCJWJyEQ9zbWQlyhw==","signatures":[{"sig":"MEUCIQDlOZgxpP5S7M4V63M3TjGcti5MJ/qjKxcVaqkq7sZNlAIgPcMeXwG/pBR9/XG10ZGlgf0//nV+yti0R15bQ5a1Na0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":485451},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","authors":["Am0rfu5","SuperGenius"],"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"c06e5f5fd735c7539b1abd38fd1c39335135bd0e","scripts":{"ls":"lint-staged","pc":"yarn precommit","pp":"yarn prepush","lint":"tslint --config tslint.json --project tsconfig.dev.json","test":"hardhat test --config hardhat.config.ts","audit":"yarn npm audit --severity moderate","build":"npx tsc","clean":"rimraf artifacts/* cache/* diamond-abi/* typechain-types/* diamond-typechain-types/*","watch":"tsc --project tsconfig.json -w","format":"prettier --write \"**/*.{ts,js,json,md,sol}\"","compile":"npx hardhat compile --config hardhat.config.ts && yarn diamond:generate-abi-typechain","prepare":"husky","prepush":".husky/pre-push","coverage":"npx hardhat coverage","depcheck":"yarn dlx depcheck","lint:fix":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts}' && tslint --fix --config tslint.json --project tsconfig.dev.json","osv:scan":"osv-scanner --lockfile=yarn.lock --format=json","build:dev":"tsc --project tsconfig.dev.json --noEmit","precommit":".husky/pre-commit","snyk:test":"snyk test --all-projects --exclude=yarn.lock --severity-threshold=medium","test:unit":"hardhat test test/unit/**/*.test.ts --config hardhat.config.ts","commitlint":"commitlint --edit","env:parity":"bash scripts/devops/environment-parity-validation.sh","rpc:deploy":"ts-node scripts/deploy-rpc.ts deploy","rpc:status":"ts-node scripts/status-rpc.ts check","rpc:verify":"ts-node scripts/verify-rpc.ts verify","lint-staged":"npx lint-staged","rpc:upgrade":"ts-node scripts/upgrade-rpc.ts upgrade","slsa-attest":"npx ts-node scripts/devops/slsa-attestation.ts generate","socket:scan":"SOCKET_CLI_API_TOKEN=$(grep SOCKET_CLI_API_TOKEN .env | cut -d'=' -f2) npx socket ci","health-check":"npx ts-node scripts/devops/health-check.ts","perf-monitor":"npx ts-node scripts/devops/perf-monitor.ts","perf:compare":"bash scripts/devops/devcontainer-performance-benchmark.sh compare","semgrep:scan":"semgrep scan --config .semgrep.yml --exclude-rule weak-encryption --error","slither:scan":"slither . --config-file slither.config.json --ignore-compile","clean-compile":"yarn clean && yarn compile","cost-analyzer":"npx ts-node scripts/devops/cost-analyzer.ts","defender:init":"ts-node scripts/defender-cli.ts init","sigstore-sign":"npx ts-node scripts/devops/sigstore-integration.ts sign-all","slither:check":"slither . --config-file slither.config.json --checklist","smart-trigger":"npx ts-node scripts/devops/smart-trigger.ts","test-sharding":"npx ts-node scripts/devops/test-sharding.ts","test:coverage":"hardhat coverage --config hardhat.config.ts","container:pull":"node scripts/devops/container-registry-manager.sh pull","container:push":"node scripts/devops/container-registry-manager.sh push","diamonds-clean":"rm -rf diamond-typechain-types diamond-abi && npx hardhat clean","install:frozen":"yarn install --frozen-lockfile","perf:benchmark":"bash scripts/devops/devcontainer-performance-benchmark.sh all --environment native","prepublishOnly":"yarn build","security-check":"yarn audit && yarn snyk:test && yarn socket:scan && yarn osv:scan && yarn semgrep:scan && yarn slither:scan && yarn git-secrets:scan","sign-artifacts":"npx ts-node scripts/devops/sign-artifacts.ts","ci-perf-monitor":"node scripts/devops/ci-perf-monitor.js","container:build":"node scripts/devops/container-registry-manager.sh build","defender:deploy":"ts-node scripts/defender-cli.ts deploy","defender:status":"ts-node scripts/defender-cli.ts status","defender:verify":"ts-node scripts/defender-cli.ts verify","rpc:verify-full":"ts-node scripts/verify-rpc.ts full","sigstore-verify":"npx ts-node scripts/devops/sigstore-integration.ts verify-all","container:exists":"node scripts/devops/container-registry-manager.sh exists","container:report":"node scripts/devops/container-registry-manager.sh report","defender:upgrade":"ts-node scripts/defender-cli.ts upgrade","emergency-bypass":"npx ts-node scripts/devops/emergency-bypass.ts","git-secrets:scan":"git secrets --scan","provenance-check":"npx ts-node scripts/devops/provenance-validator.ts","rpc:deploy-quick":"ts-node scripts/deploy-rpc.ts quick","rpc:status-quick":"ts-node scripts/status-rpc.ts quick","security-metrics":"npx ts-node scripts/devops/security-metrics-dashboard.ts","security-webhook":"npx ts-node scripts/devops/security-monitoring-webhook.ts","test:integration":"hardhat test test/integration/**/*.test.ts --config hardhat.config.ts","test:performance":"hardhat test test/integration/performance/**/*.test.ts --config hardhat.config.ts","container:cleanup":"node scripts/devops/container-registry-manager.sh cleanup","incident-response":"npx ts-node scripts/devops/incident-response.ts","rpc:deploy-manual":"ts-node scripts/deploy-rpc-manual.ts deploy","rpc:upgrade-quick":"ts-node scripts/upgrade-rpc.ts quick","security-alerting":"npx ts-node scripts/devops/security-alerting.ts","container:validate":"bash scripts/devops/devcontainer-setup-validation.sh","supply-chain-quick":"npx ts-node scripts/devops/supply-chain-risk-assessment.ts quick","supply-chain-assess":"npx ts-node scripts/devops/supply-chain-risk-assessment.ts assess","diamond:generate-abi":"npx hardhat diamond:generate-abi --diamond-name Diamond","security-tool-update":"npx ts-node scripts/devops/security-tool-updater.ts","security-commit-check":"npx ts-node scripts/devops/security-commit-check.ts","maintenance-automation":"npx ts-node scripts/devops/maintenance-automation.ts","rpc:deploy-interactive":"ts-node scripts/deploy-rpc-manual.ts interactive","security-health-checks":"npx ts-node scripts/devops/security-health-checks.ts","ci-performance-dashboard":"node scripts/devops/ci-performance-dashboard.js","perf:benchmark:container":"bash scripts/devops/devcontainer-performance-benchmark.sh all --environment container","diamond:generate-abi-typechain":"npx hardhat diamond:generate-abi-typechain --diamond-name Diamond"},"_npmUser":{"name":"am0rfu5","email":"am0rfu5@protonmail.com"},"repository":"github:diamondslab/diamonds","description":"Tools for deploying and interfacing with ERC-2535 Diamond Proxies","directories":{},"dependencies":{"axios":"^1.12.0","debug":"^4.4.1","lodash":"^4.17.21","fs-extra":"^11.3.0","@ethersproject/abstract-signer":"^5.8.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.0.2","chai":"^4.2.0","jest":"^30.0.4","snyk":"^1.1294.0","web3":"^4.16.0","chalk":"^4.1.2","husky":"^9.1.7","mocha":"^9.2.2","sinon":"^21.0.0","dotenv":"^10.0.0","eslint":"^9.17.0","ethers":"^6.4.0","rimraf":"^6.0.1","uint32":"^0.2.1","abi2oas":"^0.1.4","globals":"^15.14.0","hardhat":"^2.26.0","semgrep":"^1.0.0","solhint":"^3.3.7","ts-jest":"^29.4.0","ts-node":"^10.4.0","winston":"^3.17.0","prettier":"^3.4.2","commander":"^9.4.1","jest-mock":"^29.7.0","typechain":"^8.3.2","web3-core":"^4.7.1","typescript":"^5.9.3","web3-utils":"^4.3.3","@types/chai":"^4.2.0","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/node":"^24.0.12","lint-staged":"^15.2.0","@types/debug":"^4.1.12","@types/mocha":"^10.0.10","concurrently":"^8.2.2","@types/lodash":"^4","@types/uint32":"^0.2.0","@commitlint/cli":"^19.8.1","@types/fs-extra":"^5.0.4","eslint-plugin-n":"^17.15.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^4.0.0","contracts-starter":"git+https://github.com/mudgen/diamond-2-hardhat.git","solidity-coverage":"^0.8.16","@ethersproject/abi":"^5.8.0","@typechain/hardhat":"^9.1.0","eslint-plugin-node":"^11.1.0","@socketsecurity/cli":"^1.0.0","@ethersproject/bytes":"^5.8.0","@typechain/ethers-v6":"^0.5.1","hardhat-gas-reporter":"^1.0.8","eslint-plugin-promise":"^7.2.1","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.2.1","eslint-plugin-security":"^3.0.0","@types/chai-as-promised":"^8.0.1","@ethersproject/providers":"^5.8.0","prettier-plugin-solidity":"^1.4.1","@typescript-eslint/parser":"^8.18.10","@openzeppelin/defender-sdk":"^2.6.0","@diamondslab/hardhat-diamonds":"^1.0.0","@nomicfoundation/ignition-core":"^0.15.9","@commitlint/config-conventional":"^19.8.1","@nomicfoundation/hardhat-ethers":"^3.0.0","@nomicfoundation/hardhat-verify":"^2.0.0","@nomicfoundation/hardhat-toolbox":"^5.0.0","@nomicfoundation/hardhat-web3-v4":"^1.0.0","@typescript-eslint/eslint-plugin":"^8.18.1","@nomicfoundation/hardhat-ignition":"^0.15.0","@gnus.ai/contracts-upgradeable-diamond":"=4.5.0","@nomicfoundation/hardhat-chai-matchers":"^2.0.0","@openzeppelin/defender-sdk-base-client":"^2.6.0","@nomicfoundation/hardhat-ignition-ethers":"^0.15.0","@nomicfoundation/hardhat-network-helpers":"^1.0.0","@openzeppelin/defender-sdk-deploy-client":"^2.6.0","@openzeppelin/defender-sdk-proposal-client":"^2.6.0"},"peerDependencies":{"ethers":"^6.0.0","hardhat":"^2.0.0","ts-node":"^10.0.0","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/diamonds_1.2.0_1762033952272_0.7311620624975554","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@diamondslab/diamonds","version":"1.2.1","keywords":["ethereum","smart-contracts","hardhat","hardhat-plugin","diamond","diamond-proxy","diamond-upgradeable","blockchain"],"license":"MIT","_id":"@diamondslab/diamonds@1.2.1","maintainers":[{"name":"am0rfu5","email":"am0rfu5@protonmail.com"}],"bugs":{"url":"https://github.com/diamondslab/diamonds/issues"},"bin":{"diamond-abi":"dist/scripts/diamond-abi-cli.js"},"dist":{"shasum":"d11de3d2fdab29f0f10ed21b2ef533031b877db0","tarball":"https://registry.npmjs.org/@diamondslab/diamonds/-/diamonds-1.2.1.tgz","fileCount":161,"integrity":"sha512-hy1fDbdL5jQ5bOjP37TlzfOfFtwVOqlWvw19+uq5eGcg5kaO+HiidZ8BfHSUfmmvYuWX7VCRvJrJwwrDMM7XGg==","signatures":[{"sig":"MEUCIEWq5/YbHsytVPeeGwXNz9TOagqvslVTkERHJvk0q193AiEAxBnIdCIOCWYZiJOOnBz8or3OwK16PBkM5xTQz+xG+Wk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":485451},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","authors":["Am0rfu5","SuperGenius"],"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"2bf5dce804ac740ec75119e21245d4942fad7e21","scripts":{"ls":"lint-staged","pc":"yarn precommit","pp":"yarn prepush","lint":"tslint --config tslint.json --project tsconfig.dev.json","test":"hardhat test --config hardhat.config.ts","audit":"yarn npm audit --severity moderate","build":"npx tsc","clean":"rimraf artifacts/* cache/* diamond-abi/* typechain-types/* diamond-typechain-types/*","watch":"tsc --project tsconfig.json -w","format":"prettier --write \"**/*.{ts,js,json,md,sol}\"","compile":"npx hardhat compile --config hardhat.config.ts && yarn diamond:generate-abi-typechain","prepare":"husky","prepush":".husky/pre-push","coverage":"npx hardhat coverage","depcheck":"yarn dlx depcheck","lint:fix":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts}' && tslint --fix --config tslint.json --project tsconfig.dev.json","osv:scan":"osv-scanner --lockfile=yarn.lock --format=json","build:dev":"tsc --project tsconfig.dev.json --noEmit","precommit":".husky/pre-commit","snyk:test":"snyk test --all-projects --exclude=yarn.lock --severity-threshold=medium","test:unit":"hardhat test test/unit/**/*.test.ts --config hardhat.config.ts","commitlint":"commitlint --edit","env:parity":"bash scripts/devops/environment-parity-validation.sh","rpc:deploy":"ts-node scripts/deploy-rpc.ts deploy","rpc:status":"ts-node scripts/status-rpc.ts check","rpc:verify":"ts-node scripts/verify-rpc.ts verify","lint-staged":"npx lint-staged","rpc:upgrade":"ts-node scripts/upgrade-rpc.ts upgrade","slsa-attest":"npx ts-node scripts/devops/slsa-attestation.ts generate","socket:scan":"SOCKET_CLI_API_TOKEN=$(grep SOCKET_CLI_API_TOKEN .env | cut -d'=' -f2) npx socket ci","health-check":"npx ts-node scripts/devops/health-check.ts","perf-monitor":"npx ts-node scripts/devops/perf-monitor.ts","perf:compare":"bash scripts/devops/devcontainer-performance-benchmark.sh compare","semgrep:scan":"semgrep scan --config .semgrep.yml --exclude-rule weak-encryption --error","slither:scan":"slither . --config-file slither.config.json --ignore-compile","clean-compile":"yarn clean && yarn compile","cost-analyzer":"npx ts-node scripts/devops/cost-analyzer.ts","defender:init":"ts-node scripts/defender-cli.ts init","sigstore-sign":"npx ts-node scripts/devops/sigstore-integration.ts sign-all","slither:check":"slither . --config-file slither.config.json --checklist","smart-trigger":"npx ts-node scripts/devops/smart-trigger.ts","test-sharding":"npx ts-node scripts/devops/test-sharding.ts","test:coverage":"hardhat coverage --config hardhat.config.ts","container:pull":"node scripts/devops/container-registry-manager.sh pull","container:push":"node scripts/devops/container-registry-manager.sh push","diamonds-clean":"rm -rf diamond-typechain-types diamond-abi && npx hardhat clean","install:frozen":"yarn install --frozen-lockfile","perf:benchmark":"bash scripts/devops/devcontainer-performance-benchmark.sh all --environment native","prepublishOnly":"yarn build","security-check":"yarn audit && yarn snyk:test && yarn socket:scan && yarn osv:scan && yarn semgrep:scan && yarn slither:scan && yarn git-secrets:scan","sign-artifacts":"npx ts-node scripts/devops/sign-artifacts.ts","ci-perf-monitor":"node scripts/devops/ci-perf-monitor.js","container:build":"node scripts/devops/container-registry-manager.sh build","defender:deploy":"ts-node scripts/defender-cli.ts deploy","defender:status":"ts-node scripts/defender-cli.ts status","defender:verify":"ts-node scripts/defender-cli.ts verify","rpc:verify-full":"ts-node scripts/verify-rpc.ts full","sigstore-verify":"npx ts-node scripts/devops/sigstore-integration.ts verify-all","container:exists":"node scripts/devops/container-registry-manager.sh exists","container:report":"node scripts/devops/container-registry-manager.sh report","defender:upgrade":"ts-node scripts/defender-cli.ts upgrade","emergency-bypass":"npx ts-node scripts/devops/emergency-bypass.ts","git-secrets:scan":"git secrets --scan","provenance-check":"npx ts-node scripts/devops/provenance-validator.ts","rpc:deploy-quick":"ts-node scripts/deploy-rpc.ts quick","rpc:status-quick":"ts-node scripts/status-rpc.ts quick","security-metrics":"npx ts-node scripts/devops/security-metrics-dashboard.ts","security-webhook":"npx ts-node scripts/devops/security-monitoring-webhook.ts","test:integration":"hardhat test test/integration/**/*.test.ts --config hardhat.config.ts","test:performance":"hardhat test test/integration/performance/**/*.test.ts --config hardhat.config.ts","container:cleanup":"node scripts/devops/container-registry-manager.sh cleanup","incident-response":"npx ts-node scripts/devops/incident-response.ts","rpc:deploy-manual":"ts-node scripts/deploy-rpc-manual.ts deploy","rpc:upgrade-quick":"ts-node scripts/upgrade-rpc.ts quick","security-alerting":"npx ts-node scripts/devops/security-alerting.ts","container:validate":"bash scripts/devops/devcontainer-setup-validation.sh","supply-chain-quick":"npx ts-node scripts/devops/supply-chain-risk-assessment.ts quick","supply-chain-assess":"npx ts-node scripts/devops/supply-chain-risk-assessment.ts assess","diamond:generate-abi":"npx hardhat diamond:generate-abi --diamond-name Diamond","security-tool-update":"npx ts-node scripts/devops/security-tool-updater.ts","security-commit-check":"npx ts-node scripts/devops/security-commit-check.ts","maintenance-automation":"npx ts-node scripts/devops/maintenance-automation.ts","rpc:deploy-interactive":"ts-node scripts/deploy-rpc-manual.ts interactive","security-health-checks":"npx ts-node scripts/devops/security-health-checks.ts","ci-performance-dashboard":"node scripts/devops/ci-performance-dashboard.js","perf:benchmark:container":"bash scripts/devops/devcontainer-performance-benchmark.sh all --environment container","diamond:generate-abi-typechain":"npx hardhat diamond:generate-abi-typechain --diamond-name Diamond"},"_npmUser":{"name":"am0rfu5","email":"am0rfu5@protonmail.com"},"repository":"github:diamondslab/diamonds","description":"Tools for deploying and interfacing with ERC-2535 Diamond Proxies","directories":{},"dependencies":{"axios":"^1.12.0","debug":"^4.4.1","lodash":"^4.17.21","fs-extra":"^11.3.0","@ethersproject/abstract-signer":"^5.8.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.0.2","chai":"^4.2.0","jest":"^30.0.4","snyk":"^1.1294.0","web3":"^4.16.0","chalk":"^4.1.2","husky":"^9.1.7","mocha":"^9.2.2","sinon":"^21.0.0","dotenv":"^10.0.0","eslint":"^9.17.0","ethers":"^6.4.0","rimraf":"^6.0.1","uint32":"^0.2.1","abi2oas":"^0.1.4","globals":"^15.14.0","hardhat":"^2.26.0","semgrep":"^1.0.0","solhint":"^3.3.7","ts-jest":"^29.4.0","ts-node":"^10.4.0","winston":"^3.17.0","prettier":"^3.4.2","commander":"^9.4.1","jest-mock":"^29.7.0","typechain":"^8.3.2","web3-core":"^4.7.1","typescript":"^5.9.3","web3-utils":"^4.3.3","@types/chai":"^4.2.0","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/node":"^24.0.12","lint-staged":"^15.2.0","@types/debug":"^4.1.12","@types/mocha":"^10.0.10","concurrently":"^8.2.2","@types/lodash":"^4","@types/uint32":"^0.2.0","@commitlint/cli":"^19.8.1","@types/fs-extra":"^5.0.4","eslint-plugin-n":"^17.15.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^4.0.0","contracts-starter":"git+https://github.com/mudgen/diamond-2-hardhat.git","solidity-coverage":"^0.8.16","@ethersproject/abi":"^5.8.0","@typechain/hardhat":"^9.1.0","eslint-plugin-node":"^11.1.0","@socketsecurity/cli":"^1.0.0","@ethersproject/bytes":"^5.8.0","@typechain/ethers-v6":"^0.5.1","hardhat-gas-reporter":"^1.0.8","eslint-plugin-promise":"^7.2.1","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.2.1","eslint-plugin-security":"^3.0.0","@types/chai-as-promised":"^8.0.1","@ethersproject/providers":"^5.8.0","prettier-plugin-solidity":"^1.4.1","@typescript-eslint/parser":"^8.18.10","@openzeppelin/defender-sdk":"^2.6.0","@diamondslab/hardhat-diamonds":"^1.0.0","@nomicfoundation/ignition-core":"^0.15.9","@commitlint/config-conventional":"^19.8.1","@nomicfoundation/hardhat-ethers":"^3.0.0","@nomicfoundation/hardhat-verify":"^2.0.0","@nomicfoundation/hardhat-toolbox":"^5.0.0","@nomicfoundation/hardhat-web3-v4":"^1.0.0","@typescript-eslint/eslint-plugin":"^8.18.1","@nomicfoundation/hardhat-ignition":"^0.15.0","@gnus.ai/contracts-upgradeable-diamond":"=4.5.0","@nomicfoundation/hardhat-chai-matchers":"^2.0.0","@openzeppelin/defender-sdk-base-client":"^2.6.0","@nomicfoundation/hardhat-ignition-ethers":"^0.15.0","@nomicfoundation/hardhat-network-helpers":"^1.0.0","@openzeppelin/defender-sdk-deploy-client":"^2.6.0","@openzeppelin/defender-sdk-proposal-client":"^2.6.0"},"peerDependencies":{"ethers":"^6.0.0","hardhat":"^2.0.0","ts-node":"^10.0.0","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/diamonds_1.2.1_1762090896887_0.5721472831204619","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@diamondslab/diamonds","version":"1.3.0","keywords":["ethereum","smart-contracts","hardhat","hardhat-plugin","diamond","diamond-proxy","diamond-upgradeable","blockchain"],"license":"MIT","_id":"@diamondslab/diamonds@1.3.0","maintainers":[{"name":"am0rfu5","email":"am0rfu5@protonmail.com"}],"bugs":{"url":"https://github.com/diamondslab/diamonds/issues"},"bin":{"diamond-abi":"dist/scripts/diamond-abi-cli.js"},"dist":{"shasum":"f5458716a2b6cad7a62b261f8741ca498a670e72","tarball":"https://registry.npmjs.org/@diamondslab/diamonds/-/diamonds-1.3.0.tgz","fileCount":161,"integrity":"sha512-V9o0uVwbJHA0d99Ir+5zbBLEclA+M3v/wW9vGKdNpOtLYcJ82DnDSlsrqiXXuydbIIVjgF7Md3Lurc+MB9wGAA==","signatures":[{"sig":"MEUCIHrGiKuXGsM+ixbR1tkT7W0bJA8iABdl00xgBEuwksXrAiEAhVpjWON8MY6A5JFOc12Joe0YJPm2cN+TYDawI7Dzhos=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":690728},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","authors":["Am0rfu5","SuperGenius"],"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./core":{"types":"./dist/core/index.d.ts","default":"./dist/core/index.js"}},"gitHead":"22f7e7459094f10ff1db6b15322fc0cb1231198b","scripts":{"ls":"lint-staged","pc":"yarn precommit","pp":"yarn prepush","lint":"tslint --config tslint.json --project tsconfig.dev.json","test":"hardhat test --config hardhat.config.ts","audit":"yarn npm audit --severity moderate","build":"npx tsc","clean":"rimraf artifacts/* cache/* diamond-abi/* typechain-types/* diamond-typechain-types/*","watch":"tsc --project tsconfig.json -w","format":"prettier --write \"**/*.{ts,js,json,md,sol}\"","compile":"npx hardhat compile --config hardhat.config.ts && yarn diamond:generate-abi-typechain","prepare":"husky","prepush":".husky/pre-push","coverage":"npx hardhat coverage","depcheck":"yarn dlx depcheck","lint:fix":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts}' && tslint --fix --config tslint.json --project tsconfig.dev.json","osv:scan":"osv-scanner --lockfile=yarn.lock --format=json","build:dev":"tsc --project tsconfig.dev.json --noEmit","precommit":".husky/pre-commit","snyk:test":"snyk test --all-projects --exclude=yarn.lock --severity-threshold=medium","test:unit":"hardhat test test/unit/**/*.test.ts --config hardhat.config.ts","commitlint":"commitlint --edit","env:parity":"bash scripts/devops/environment-parity-validation.sh","rpc:deploy":"ts-node scripts/deploy-rpc.ts deploy","rpc:status":"ts-node scripts/status-rpc.ts check","rpc:verify":"ts-node scripts/verify-rpc.ts verify","lint-staged":"npx lint-staged","rpc:upgrade":"ts-node scripts/upgrade-rpc.ts upgrade","slsa-attest":"npx ts-node scripts/devops/slsa-attestation.ts generate","socket:scan":"SOCKET_CLI_API_TOKEN=$(grep SOCKET_CLI_API_TOKEN .env | cut -d'=' -f2) npx socket ci","health-check":"npx ts-node scripts/devops/health-check.ts","perf-monitor":"npx ts-node scripts/devops/perf-monitor.ts","perf:compare":"bash scripts/devops/devcontainer-performance-benchmark.sh compare","semgrep:scan":"semgrep scan --config .semgrep.yml --exclude-rule weak-encryption --error","slither:scan":"slither . --config-file slither.config.json --ignore-compile","clean-compile":"yarn clean && yarn compile","cost-analyzer":"npx ts-node scripts/devops/cost-analyzer.ts","defender:init":"ts-node scripts/defender-cli.ts init","sigstore-sign":"npx ts-node scripts/devops/sigstore-integration.ts sign-all","slither:check":"slither . --config-file slither.config.json --checklist","smart-trigger":"npx ts-node scripts/devops/smart-trigger.ts","test-sharding":"npx ts-node scripts/devops/test-sharding.ts","test:coverage":"hardhat coverage --config hardhat.config.ts","container:pull":"node scripts/devops/container-registry-manager.sh pull","container:push":"node scripts/devops/container-registry-manager.sh push","diamonds-clean":"rm -rf diamond-typechain-types diamond-abi && npx hardhat clean","install:frozen":"yarn install --frozen-lockfile","perf:benchmark":"bash scripts/devops/devcontainer-performance-benchmark.sh all --environment native","prepublishOnly":"yarn build","security-check":"yarn audit && yarn snyk:test && yarn socket:scan && yarn osv:scan && yarn semgrep:scan && yarn slither:scan && yarn git-secrets:scan","sign-artifacts":"npx ts-node scripts/devops/sign-artifacts.ts","ci-perf-monitor":"node scripts/devops/ci-perf-monitor.js","container:build":"node scripts/devops/container-registry-manager.sh build","defender:deploy":"ts-node scripts/defender-cli.ts deploy","defender:status":"ts-node scripts/defender-cli.ts status","defender:verify":"ts-node scripts/defender-cli.ts verify","rpc:verify-full":"ts-node scripts/verify-rpc.ts full","sigstore-verify":"npx ts-node scripts/devops/sigstore-integration.ts verify-all","container:exists":"node scripts/devops/container-registry-manager.sh exists","container:report":"node scripts/devops/container-registry-manager.sh report","defender:upgrade":"ts-node scripts/defender-cli.ts upgrade","emergency-bypass":"npx ts-node scripts/devops/emergency-bypass.ts","git-secrets:scan":"git secrets --scan","provenance-check":"npx ts-node scripts/devops/provenance-validator.ts","rpc:deploy-quick":"ts-node scripts/deploy-rpc.ts quick","rpc:status-quick":"ts-node scripts/status-rpc.ts quick","security-metrics":"npx ts-node scripts/devops/security-metrics-dashboard.ts","security-webhook":"npx ts-node scripts/devops/security-monitoring-webhook.ts","test:integration":"hardhat test test/integration/**/*.test.ts --config hardhat.config.ts","test:performance":"hardhat test test/integration/performance/**/*.test.ts --config hardhat.config.ts","container:cleanup":"node scripts/devops/container-registry-manager.sh cleanup","incident-response":"npx ts-node scripts/devops/incident-response.ts","rpc:deploy-manual":"ts-node scripts/deploy-rpc-manual.ts deploy","rpc:upgrade-quick":"ts-node scripts/upgrade-rpc.ts quick","security-alerting":"npx ts-node scripts/devops/security-alerting.ts","container:validate":"bash scripts/devops/devcontainer-setup-validation.sh","supply-chain-quick":"npx ts-node scripts/devops/supply-chain-risk-assessment.ts quick","supply-chain-assess":"npx ts-node scripts/devops/supply-chain-risk-assessment.ts assess","diamond:generate-abi":"npx hardhat diamond:generate-abi --diamond-name Diamond","security-tool-update":"npx ts-node scripts/devops/security-tool-updater.ts","security-commit-check":"npx ts-node scripts/devops/security-commit-check.ts","maintenance-automation":"npx ts-node scripts/devops/maintenance-automation.ts","rpc:deploy-interactive":"ts-node scripts/deploy-rpc-manual.ts interactive","security-health-checks":"npx ts-node scripts/devops/security-health-checks.ts","ci-performance-dashboard":"node scripts/devops/ci-performance-dashboard.js","perf:benchmark:container":"bash scripts/devops/devcontainer-performance-benchmark.sh all --environment container","diamond:generate-abi-typechain":"npx hardhat diamond:generate-abi-typechain --diamond-name Diamond"},"_npmUser":{"name":"am0rfu5","email":"am0rfu5@protonmail.com"},"repository":"github:diamondslab/diamonds","description":"Tools for deploying and interfacing with ERC-2535 Diamond Proxies","directories":{},"dependencies":{"axios":"^1.12.0","debug":"^4.4.1","lodash":"^4.17.21","fs-extra":"^11.3.0","@ethersproject/abstract-signer":"^5.8.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.0.2","chai":"^4.2.0","jest":"^30.0.4","snyk":"^1.1294.0","web3":"^4.16.0","chalk":"^4.1.2","husky":"^9.1.7","mocha":"^9.2.2","sinon":"^21.0.0","dotenv":"^10.0.0","eslint":"^9.17.0","ethers":"^6.4.0","rimraf":"^6.0.1","uint32":"^0.2.1","abi2oas":"^0.1.4","globals":"^15.14.0","hardhat":"^2.26.0","semgrep":"^1.0.0","solhint":"^3.3.7","ts-jest":"^29.4.0","ts-node":"^10.4.0","winston":"^3.17.0","prettier":"^3.4.2","commander":"^9.4.1","jest-mock":"^29.7.0","typechain":"^8.3.2","web3-core":"^4.7.1","typescript":"^5.9.3","web3-utils":"^4.3.3","@types/chai":"^4.2.0","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/node":"^24.0.12","lint-staged":"^15.2.0","@types/debug":"^4.1.12","@types/mocha":"^10.0.10","concurrently":"^8.2.2","@types/lodash":"^4","@types/uint32":"^0.2.0","@commitlint/cli":"^19.8.1","@types/fs-extra":"^5.0.4","eslint-plugin-n":"^17.15.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^4.0.0","contracts-starter":"git+https://github.com/mudgen/diamond-2-hardhat.git","solidity-coverage":"^0.8.16","@ethersproject/abi":"^5.8.0","@typechain/hardhat":"^9.1.0","eslint-plugin-node":"^11.1.0","@socketsecurity/cli":"^1.0.0","@ethersproject/bytes":"^5.8.0","@typechain/ethers-v6":"^0.5.1","hardhat-gas-reporter":"^1.0.8","eslint-plugin-promise":"^7.2.1","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.2.1","eslint-plugin-security":"^3.0.0","@types/chai-as-promised":"^8.0.1","@ethersproject/providers":"^5.8.0","prettier-plugin-solidity":"^1.4.1","@typescript-eslint/parser":"^8.18.10","@openzeppelin/defender-sdk":"^2.6.0","@diamondslab/hardhat-diamonds":"^1.0.0","@nomicfoundation/ignition-core":"^0.15.9","@commitlint/config-conventional":"^19.8.1","@nomicfoundation/hardhat-ethers":"^3.0.0","@nomicfoundation/hardhat-verify":"^2.0.0","@nomicfoundation/hardhat-toolbox":"^5.0.0","@nomicfoundation/hardhat-web3-v4":"^1.0.0","@typescript-eslint/eslint-plugin":"^8.18.1","@nomicfoundation/hardhat-ignition":"^0.15.0","@gnus.ai/contracts-upgradeable-diamond":"=4.5.0","@nomicfoundation/hardhat-chai-matchers":"^2.0.0","@openzeppelin/defender-sdk-base-client":"^2.6.0","@nomicfoundation/hardhat-ignition-ethers":"^0.15.0","@nomicfoundation/hardhat-network-helpers":"^1.0.0","@openzeppelin/defender-sdk-deploy-client":"^2.6.0","@openzeppelin/defender-sdk-proposal-client":"^2.6.0"},"peerDependencies":{"ethers":"^6.0.0","hardhat":"^2.0.0","ts-node":"^10.0.0","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/diamonds_1.3.0_1766080071748_0.5023422262295698","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@diamondslab/diamonds","version":"1.3.2","keywords":["ethereum","smart-contracts","hardhat","hardhat-plugin","diamond","diamond-proxy","diamond-upgradeable","blockchain"],"license":"MIT","_id":"@diamondslab/diamonds@1.3.2","maintainers":[{"name":"am0rfu5","email":"am0rfu5@protonmail.com"}],"bugs":{"url":"https://github.com/diamondslab/diamonds/issues"},"bin":{"diamond-abi":"dist/scripts/diamond-abi-cli.js"},"dist":{"shasum":"8ad73e4dcb75f15f34356aa411f997b36b8a8ecb","tarball":"https://registry.npmjs.org/@diamondslab/diamonds/-/diamonds-1.3.2.tgz","fileCount":161,"integrity":"sha512-y2LzLMc6iwyJMlAv/jxXSd09HwUiidMn5v5Q6xi6ZzBiSsTOvbauDfE3bUNoHB6jecJnxOmhaOGxzeYWj2gY4Q==","signatures":[{"sig":"MEYCIQCt6qeV8X1KjMVFCaQOK+zt+VGUp/1De2FZFjXQJ5YYAwIhALVSR2JFxSoYM0txwgqkMztiArHCyUvzxS9nkD3Ohp7s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":698196},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","authors":["Am0rfu5","SuperGenius"],"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./core":{"types":"./dist/core/index.d.ts","default":"./dist/core/index.js"}},"gitHead":"0ebd91f893dfd5a6a38fa597ee97ed760d32ccfc","scripts":{"ls":"lint-staged","pc":"yarn precommit","pp":"yarn prepush","lint":"tslint --config tslint.json --project tsconfig.dev.json","test":"hardhat test --config hardhat.config.ts","audit":"yarn npm audit --severity moderate","build":"npx tsc","clean":"rimraf artifacts/* cache/* diamond-abi/* typechain-types/* diamond-typechain-types/*","watch":"tsc --project tsconfig.json -w","format":"prettier --write \"**/*.{ts,js,json,md,sol}\"","compile":"npx hardhat compile --config hardhat.config.ts && yarn diamond:generate-abi-typechain","prepare":"husky","prepush":".husky/pre-push","coverage":"npx hardhat coverage","depcheck":"yarn dlx depcheck","lint:fix":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts}' && tslint --fix --config tslint.json --project tsconfig.dev.json","osv:scan":"osv-scanner --lockfile=yarn.lock --format=json","build:dev":"tsc --project tsconfig.dev.json --noEmit","precommit":".husky/pre-commit","snyk:test":"snyk test --all-projects --exclude=yarn.lock --severity-threshold=medium","test:unit":"hardhat test test/unit/**/*.test.ts --config hardhat.config.ts","commitlint":"commitlint --edit","env:parity":"bash scripts/devops/environment-parity-validation.sh","rpc:deploy":"ts-node scripts/deploy-rpc.ts deploy","rpc:status":"ts-node scripts/status-rpc.ts check","rpc:verify":"ts-node scripts/verify-rpc.ts verify","lint-staged":"npx lint-staged","rpc:upgrade":"ts-node scripts/upgrade-rpc.ts upgrade","slsa-attest":"npx ts-node scripts/devops/slsa-attestation.ts generate","socket:scan":"SOCKET_CLI_API_TOKEN=$(grep SOCKET_CLI_API_TOKEN .env | cut -d'=' -f2) npx socket ci","health-check":"npx ts-node scripts/devops/health-check.ts","perf-monitor":"npx ts-node scripts/devops/perf-monitor.ts","perf:compare":"bash scripts/devops/devcontainer-performance-benchmark.sh compare","semgrep:scan":"semgrep scan --config .semgrep.yml --exclude-rule weak-encryption --error","slither:scan":"slither . --config-file slither.config.json --ignore-compile","clean-compile":"yarn clean && yarn compile","cost-analyzer":"npx ts-node scripts/devops/cost-analyzer.ts","defender:init":"ts-node scripts/defender-cli.ts init","sigstore-sign":"npx ts-node scripts/devops/sigstore-integration.ts sign-all","slither:check":"slither . --config-file slither.config.json --checklist","smart-trigger":"npx ts-node scripts/devops/smart-trigger.ts","test-sharding":"npx ts-node scripts/devops/test-sharding.ts","test:coverage":"hardhat coverage --config hardhat.config.ts","container:pull":"node scripts/devops/container-registry-manager.sh pull","container:push":"node scripts/devops/container-registry-manager.sh push","diamonds-clean":"rm -rf diamond-typechain-types diamond-abi && npx hardhat clean","install:frozen":"yarn install --frozen-lockfile","perf:benchmark":"bash scripts/devops/devcontainer-performance-benchmark.sh all --environment native","prepublishOnly":"yarn build","security-check":"yarn audit && yarn snyk:test && yarn socket:scan && yarn osv:scan && yarn semgrep:scan && yarn slither:scan && yarn git-secrets:scan","sign-artifacts":"npx ts-node scripts/devops/sign-artifacts.ts","ci-perf-monitor":"node scripts/devops/ci-perf-monitor.js","container:build":"node scripts/devops/container-registry-manager.sh build","defender:deploy":"ts-node scripts/defender-cli.ts deploy","defender:status":"ts-node scripts/defender-cli.ts status","defender:verify":"ts-node scripts/defender-cli.ts verify","rpc:verify-full":"ts-node scripts/verify-rpc.ts full","sigstore-verify":"npx ts-node scripts/devops/sigstore-integration.ts verify-all","container:exists":"node scripts/devops/container-registry-manager.sh exists","container:report":"node scripts/devops/container-registry-manager.sh report","defender:upgrade":"ts-node scripts/defender-cli.ts upgrade","emergency-bypass":"npx ts-node scripts/devops/emergency-bypass.ts","git-secrets:scan":"git secrets --scan","provenance-check":"npx ts-node scripts/devops/provenance-validator.ts","rpc:deploy-quick":"ts-node scripts/deploy-rpc.ts quick","rpc:status-quick":"ts-node scripts/status-rpc.ts quick","security-metrics":"npx ts-node scripts/devops/security-metrics-dashboard.ts","security-webhook":"npx ts-node scripts/devops/security-monitoring-webhook.ts","test:integration":"hardhat test test/integration/**/*.test.ts --config hardhat.config.ts","test:performance":"hardhat test test/integration/performance/**/*.test.ts --config hardhat.config.ts","container:cleanup":"node scripts/devops/container-registry-manager.sh cleanup","incident-response":"npx ts-node scripts/devops/incident-response.ts","rpc:deploy-manual":"ts-node scripts/deploy-rpc-manual.ts deploy","rpc:upgrade-quick":"ts-node scripts/upgrade-rpc.ts quick","security-alerting":"npx ts-node scripts/devops/security-alerting.ts","container:validate":"bash scripts/devops/devcontainer-setup-validation.sh","supply-chain-quick":"npx ts-node scripts/devops/supply-chain-risk-assessment.ts quick","supply-chain-assess":"npx ts-node scripts/devops/supply-chain-risk-assessment.ts assess","diamond:generate-abi":"npx hardhat diamond:generate-abi --diamond-name Diamond","security-tool-update":"npx ts-node scripts/devops/security-tool-updater.ts","security-commit-check":"npx ts-node scripts/devops/security-commit-check.ts","maintenance-automation":"npx ts-node scripts/devops/maintenance-automation.ts","rpc:deploy-interactive":"ts-node scripts/deploy-rpc-manual.ts interactive","security-health-checks":"npx ts-node scripts/devops/security-health-checks.ts","ci-performance-dashboard":"node scripts/devops/ci-performance-dashboard.js","perf:benchmark:container":"bash scripts/devops/devcontainer-performance-benchmark.sh all --environment container","diamond:generate-abi-typechain":"npx hardhat diamond:generate-abi-typechain --diamond-name Diamond"},"_npmUser":{"name":"am0rfu5","email":"am0rfu5@protonmail.com"},"repository":"github:diamondslab/diamonds","description":"Tools for deploying and interfacing with ERC-2535 Diamond Proxies","directories":{},"dependencies":{"axios":"^1.12.0","debug":"^4.4.1","lodash":"^4.17.21","fs-extra":"^11.3.0","@ethersproject/abstract-signer":"^5.8.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.0.2","chai":"^4.2.0","jest":"^30.0.4","snyk":"^1.1294.0","web3":"^4.16.0","chalk":"^4.1.2","husky":"^9.1.7","mocha":"^9.2.2","sinon":"^21.0.0","dotenv":"^10.0.0","eslint":"^9.17.0","ethers":"^6.4.0","rimraf":"^6.0.1","uint32":"^0.2.1","abi2oas":"^0.1.4","globals":"^15.14.0","hardhat":"^2.26.0","semgrep":"^1.0.0","solhint":"^3.3.7","ts-jest":"^29.4.0","ts-node":"^10.4.0","winston":"^3.17.0","prettier":"^3.4.2","commander":"^9.4.1","jest-mock":"^29.7.0","typechain":"^8.3.2","web3-core":"^4.7.1","typescript":"^5.9.3","web3-utils":"^4.3.3","@types/chai":"^4.2.0","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/node":"^24.0.12","lint-staged":"^15.2.0","@types/debug":"^4.1.12","@types/mocha":"^10.0.10","concurrently":"^8.2.2","@types/lodash":"^4","@types/uint32":"^0.2.0","@commitlint/cli":"^19.8.1","@types/fs-extra":"^5.0.4","eslint-plugin-n":"^17.15.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^4.0.0","contracts-starter":"git+https://github.com/mudgen/diamond-2-hardhat.git","solidity-coverage":"^0.8.16","@ethersproject/abi":"^5.8.0","@typechain/hardhat":"^9.1.0","eslint-plugin-node":"^11.1.0","@socketsecurity/cli":"^1.0.0","@ethersproject/bytes":"^5.8.0","@typechain/ethers-v6":"^0.5.1","hardhat-gas-reporter":"^1.0.8","eslint-plugin-promise":"^7.2.1","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.2.1","eslint-plugin-security":"^3.0.0","@types/chai-as-promised":"^8.0.1","@ethersproject/providers":"^5.8.0","prettier-plugin-solidity":"^1.4.1","@typescript-eslint/parser":"^8.18.10","@openzeppelin/defender-sdk":"^2.6.0","@diamondslab/hardhat-diamonds":"^1.0.0","@nomicfoundation/ignition-core":"^0.15.9","@commitlint/config-conventional":"^19.8.1","@nomicfoundation/hardhat-ethers":"*","@nomicfoundation/hardhat-verify":"^2.0.0","@nomicfoundation/hardhat-toolbox":"^5.0.0","@nomicfoundation/hardhat-web3-v4":"^1.0.0","@typescript-eslint/eslint-plugin":"^8.18.1","@nomicfoundation/hardhat-ignition":"^0.15.0","@gnus.ai/contracts-upgradeable-diamond":"=4.5.0","@nomicfoundation/hardhat-chai-matchers":"^2.0.0","@openzeppelin/defender-sdk-base-client":"^2.6.0","@nomicfoundation/hardhat-ignition-ethers":"^0.15.0","@nomicfoundation/hardhat-network-helpers":"^1.0.0","@openzeppelin/defender-sdk-deploy-client":"^2.6.0","@openzeppelin/defender-sdk-proposal-client":"^2.6.0"},"peerDependencies":{"ethers":"^6.0.0","hardhat":"^2.0.0","ts-node":"^10.0.0","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/diamonds_1.3.2_1767398820271_0.5100311782082516","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@diamondslab/diamonds","version":"1.4.0","keywords":["ethereum","smart-contracts","hardhat","hardhat-plugin","diamond","diamond-proxy","diamond-upgradeable","blockchain","erc-2535","eip-2535"],"license":"MIT","_id":"@diamondslab/diamonds@1.4.0","maintainers":[{"name":"am0rfu5","email":"am0rfu5@protonmail.com"}],"bugs":{"url":"https://github.com/diamondslab/diamonds/issues"},"bin":{"diamond-abi":"dist/cli/diamond-abi-cli.js"},"dist":{"shasum":"21377a4d7ac4cda6da729c3c8d8e87b7243e7c7e","tarball":"https://registry.npmjs.org/@diamondslab/diamonds/-/diamonds-1.4.0.tgz","fileCount":175,"integrity":"sha512-lJDQF+et2r03l5YWZKr+fdJ5i0uMff5+LZhuVy5P55XjgbbMoDz03jC1NJ/BJA9tSmiWzbEI6BVmQQdr5cxRUA==","signatures":[{"sig":"MEUCIQDppAc4a7xrsJiFVOLx4xWJd2dU2I1hGCGsVYZWGKSb+wIgBXlNPs1qcPPoynzBH0y0JnnDcW0aLU8S3Kb5DELgYVk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":766284},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","authors":["Am0rfu5","SuperGenius"],"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./core":{"types":"./dist/core/index.d.ts","default":"./dist/core/index.js"}},"gitHead":"ac5513b051a137bf410efc9e7ebd875cdcdcf8e7","scripts":{"ls":"lint-staged","pc":"yarn precommit","pp":"yarn prepush","lint":"tslint --config tslint.json --project tsconfig.dev.json","test":"hardhat test --config hardhat.config.ts","audit":"yarn npm audit --severity moderate","build":"rimraf dist tsconfig.tsbuildinfo && tsc","clean":"rimraf artifacts/* cache/* diamond-abi/* typechain-types/* diamond-typechain-types/*","watch":"tsc --project tsconfig.json -w","format":"prettier --write \"**/*.{ts,js,json,md,sol}\"","compile":"npx hardhat compile --config hardhat.config.ts && yarn diamond:generate-abi-typechain","prepare":"husky","prepush":".husky/pre-push","coverage":"npx hardhat coverage","depcheck":"yarn dlx depcheck","lint:fix":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts}' && tslint --fix --config tslint.json --project tsconfig.dev.json","osv:scan":"osv-scanner --lockfile=yarn.lock --format=json","build:dev":"tsc --project tsconfig.dev.json --noEmit","precommit":".husky/pre-commit","snyk:test":"snyk test --all-projects --exclude=yarn.lock --severity-threshold=medium","test:unit":"hardhat test test/unit/**/*.test.ts --config hardhat.config.ts","commitlint":"commitlint --edit","env:parity":"bash scripts/devops/environment-parity-validation.sh","rpc:deploy":"ts-node scripts/deploy-rpc.ts deploy","rpc:status":"ts-node scripts/status-rpc.ts check","rpc:verify":"ts-node scripts/verify-rpc.ts verify","lint-staged":"npx lint-staged","rpc:upgrade":"ts-node scripts/upgrade-rpc.ts upgrade","slsa-attest":"npx ts-node scripts/devops/slsa-attestation.ts generate","socket:scan":"SOCKET_CLI_API_TOKEN=$(grep SOCKET_CLI_API_TOKEN .env | cut -d'=' -f2) npx socket ci","health-check":"npx ts-node scripts/devops/health-check.ts","perf-monitor":"npx ts-node scripts/devops/perf-monitor.ts","perf:compare":"bash scripts/devops/devcontainer-performance-benchmark.sh compare","semgrep:scan":"semgrep scan --config .semgrep.yml --exclude-rule weak-encryption --error","slither:scan":"slither . --config-file slither.config.json --ignore-compile","clean-compile":"yarn clean && yarn compile","cost-analyzer":"npx ts-node scripts/devops/cost-analyzer.ts","defender:init":"ts-node scripts/defender-cli.ts init","sigstore-sign":"npx ts-node scripts/devops/sigstore-integration.ts sign-all","slither:check":"slither . --config-file slither.config.json --checklist","smart-trigger":"npx ts-node scripts/devops/smart-trigger.ts","test-sharding":"npx ts-node scripts/devops/test-sharding.ts","test:coverage":"hardhat coverage --config hardhat.config.ts","container:pull":"node scripts/devops/container-registry-manager.sh pull","container:push":"node scripts/devops/container-registry-manager.sh push","diamonds-clean":"rm -rf diamond-typechain-types diamond-abi && npx hardhat clean","install:frozen":"yarn install --frozen-lockfile","perf:benchmark":"bash scripts/devops/devcontainer-performance-benchmark.sh all --environment native","prepublishOnly":"yarn build","security-check":"yarn audit && yarn snyk:test && yarn socket:scan && yarn osv:scan && yarn semgrep:scan && yarn slither:scan && yarn git-secrets:scan","sign-artifacts":"npx ts-node scripts/devops/sign-artifacts.ts","ci-perf-monitor":"node scripts/devops/ci-perf-monitor.js","container:build":"node scripts/devops/container-registry-manager.sh build","defender:deploy":"ts-node scripts/defender-cli.ts deploy","defender:status":"ts-node scripts/defender-cli.ts status","defender:verify":"ts-node scripts/defender-cli.ts verify","rpc:verify-full":"ts-node scripts/verify-rpc.ts full","sigstore-verify":"npx ts-node scripts/devops/sigstore-integration.ts verify-all","container:exists":"node scripts/devops/container-registry-manager.sh exists","container:report":"node scripts/devops/container-registry-manager.sh report","defender:upgrade":"ts-node scripts/defender-cli.ts upgrade","emergency-bypass":"npx ts-node scripts/devops/emergency-bypass.ts","git-secrets:scan":"git secrets --scan","provenance-check":"npx ts-node scripts/devops/provenance-validator.ts","rpc:deploy-quick":"ts-node scripts/deploy-rpc.ts quick","rpc:status-quick":"ts-node scripts/status-rpc.ts quick","security-metrics":"npx ts-node scripts/devops/security-metrics-dashboard.ts","security-webhook":"npx ts-node scripts/devops/security-monitoring-webhook.ts","test:integration":"hardhat test test/integration/**/*.test.ts --config hardhat.config.ts","test:performance":"hardhat test test/integration/performance/**/*.test.ts --config hardhat.config.ts","container:cleanup":"node scripts/devops/container-registry-manager.sh cleanup","incident-response":"npx ts-node scripts/devops/incident-response.ts","rpc:deploy-manual":"ts-node scripts/deploy-rpc-manual.ts deploy","rpc:upgrade-quick":"ts-node scripts/upgrade-rpc.ts quick","security-alerting":"npx ts-node scripts/devops/security-alerting.ts","container:validate":"bash scripts/devops/devcontainer-setup-validation.sh","supply-chain-quick":"npx ts-node scripts/devops/supply-chain-risk-assessment.ts quick","supply-chain-assess":"npx ts-node scripts/devops/supply-chain-risk-assessment.ts assess","diamond:generate-abi":"npx hardhat diamond:generate-abi --diamond-name Diamond","security-tool-update":"npx ts-node scripts/devops/security-tool-updater.ts","security-commit-check":"npx ts-node scripts/devops/security-commit-check.ts","maintenance-automation":"npx ts-node scripts/devops/maintenance-automation.ts","rpc:deploy-interactive":"ts-node scripts/deploy-rpc-manual.ts interactive","security-health-checks":"npx ts-node scripts/devops/security-health-checks.ts","ci-performance-dashboard":"node scripts/devops/ci-performance-dashboard.js","perf:benchmark:container":"bash scripts/devops/devcontainer-performance-benchmark.sh all --environment container","diamond:generate-abi-typechain":"npx hardhat diamond:generate-abi-typechain --diamond-name Diamond"},"_npmUser":{"name":"am0rfu5","email":"am0rfu5@protonmail.com"},"repository":"github:diamondslab/diamonds","description":"Tools for deploying and interfacing with ERC-2535 Diamond Proxies","directories":{},"dependencies":{"axios":"^1.12.0","debug":"^4.4.1","lodash":"^4.17.21","fs-extra":"^11.3.0","@ethersproject/abstract-signer":"^5.8.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.0.2","chai":"^4.2.0","jest":"^30.0.4","snyk":"^1.1294.0","web3":"^4.16.0","chalk":"^4.1.2","husky":"^9.1.7","mocha":"^9.2.2","sinon":"^21.0.0","dotenv":"^10.0.0","eslint":"^9.17.0","ethers":"^6.4.0","rimraf":"^6.0.1","uint32":"^0.2.1","abi2oas":"^0.1.4","globals":"^15.14.0","hardhat":"^2.26.0","semgrep":"^1.0.0","solhint":"^3.3.7","ts-jest":"^29.4.0","ts-node":"^10.4.0","winston":"^3.17.0","prettier":"^3.4.2","commander":"^9.4.1","jest-mock":"^29.7.0","typechain":"^8.3.2","web3-core":"^4.7.1","typescript":"^5.9.3","web3-utils":"^4.3.3","@types/chai":"^4.2.0","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/node":"^24.0.12","lint-staged":"^15.2.0","@types/debug":"^4.1.12","@types/mocha":"^10.0.10","concurrently":"^8.2.2","@types/lodash":"^4","@types/uint32":"^0.2.0","@commitlint/cli":"^19.8.1","@types/fs-extra":"^5.0.4","eslint-plugin-n":"^17.15.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^4.0.0","contracts-starter":"git+https://github.com/mudgen/diamond-2-hardhat.git","solidity-coverage":"^0.8.16","@ethersproject/abi":"^5.8.0","@typechain/hardhat":"^9.1.0","eslint-plugin-node":"^11.1.0","@socketsecurity/cli":"^1.0.0","@ethersproject/bytes":"^5.8.0","@typechain/ethers-v6":"^0.5.1","hardhat-gas-reporter":"^1.0.8","eslint-plugin-promise":"^7.2.1","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.2.1","eslint-plugin-security":"^3.0.0","@types/chai-as-promised":"^8.0.1","@ethersproject/providers":"^5.8.0","prettier-plugin-solidity":"^1.4.1","@typescript-eslint/parser":"^8.18.10","@openzeppelin/defender-sdk":"^2.6.0","@diamondslab/hardhat-diamonds":"^1.0.0","@nomicfoundation/ignition-core":"^0.15.9","@commitlint/config-conventional":"^19.8.1","@nomicfoundation/hardhat-ethers":"^3.1.2","@nomicfoundation/hardhat-verify":"^2.0.0","@nomicfoundation/hardhat-toolbox":"^5.0.0","@nomicfoundation/hardhat-web3-v4":"^1.0.0","@typescript-eslint/eslint-plugin":"^8.18.1","@nomicfoundation/hardhat-ignition":"^0.15.0","@gnus.ai/contracts-upgradeable-diamond":"=4.5.0","@nomicfoundation/hardhat-chai-matchers":"^2.0.0","@openzeppelin/defender-sdk-base-client":"^2.6.0","@nomicfoundation/hardhat-ignition-ethers":"^0.15.0","@nomicfoundation/hardhat-network-helpers":"^1.0.0","@openzeppelin/defender-sdk-deploy-client":"^2.6.0","@openzeppelin/defender-sdk-proposal-client":"^2.6.0"},"peerDependencies":{"ethers":"^6.0.0","hardhat":"^2.0.0","ts-node":"^10.0.0","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/diamonds_1.4.0_1782778157505_0.0563234769537011","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@diamondslab/diamonds","version":"1.4.1","keywords":["ethereum","smart-contracts","hardhat","hardhat-plugin","diamond","diamond-proxy","diamond-upgradeable","blockchain","erc-2535","eip-2535"],"license":"MIT","_id":"@diamondslab/diamonds@1.4.1","maintainers":[{"name":"am0rfu5","email":"am0rfu5@protonmail.com"}],"bugs":{"url":"https://github.com/diamondslab/diamonds/issues"},"bin":{"diamond-abi":"dist/cli/diamond-abi-cli.js"},"dist":{"shasum":"cf1a2072a54922829ae23f1a50285347c0d425db","tarball":"https://registry.npmjs.org/@diamondslab/diamonds/-/diamonds-1.4.1.tgz","fileCount":175,"integrity":"sha512-QFgMS736VlqaOxwfpcSQeYZbtKRfHR43qaYEbl/4Un08yndWP+gihwoNJHNF8EPjhcBH2tijrNSg2l/qypvvFA==","signatures":[{"sig":"MEUCIF78zGoykAf0wy6cNDlNdxzUFgLJ+JVEEiDeip6yF9apAiEA/uSdc0mAiLIHrFyscOTlpL9lAIj86ITDkDolhTNW0yg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":770094},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","authors":["Am0rfu5","SuperGenius"],"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./core":{"types":"./dist/core/index.d.ts","default":"./dist/core/index.js"}},"gitHead":"c0ae91837e1f43fab272518f1fe2225251e89daf","scripts":{"ls":"lint-staged","pc":"yarn precommit","pp":"yarn prepush","lint":"tslint --config tslint.json --project tsconfig.dev.json","test":"hardhat test --config hardhat.config.ts","audit":"yarn npm audit --severity moderate","build":"rimraf dist tsconfig.tsbuildinfo && tsc","clean":"rimraf artifacts/* cache/* diamond-abi/* typechain-types/* diamond-typechain-types/*","watch":"tsc --project tsconfig.json -w","format":"prettier --write \"**/*.{ts,js,json,md,sol}\"","compile":"npx hardhat compile --config hardhat.config.ts && yarn diamond:generate-abi-typechain","prepare":"husky","prepush":".husky/pre-push","coverage":"npx hardhat coverage","depcheck":"yarn dlx depcheck","lint:fix":"prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts}' && tslint --fix --config tslint.json --project tsconfig.dev.json","osv:scan":"osv-scanner --lockfile=yarn.lock --format=json","build:dev":"tsc --project tsconfig.dev.json --noEmit","precommit":".husky/pre-commit","snyk:test":"snyk test --all-projects --exclude=yarn.lock --severity-threshold=medium","test:unit":"hardhat test test/unit/**/*.test.ts --config hardhat.config.ts","commitlint":"commitlint --edit","env:parity":"bash scripts/devops/environment-parity-validation.sh","rpc:deploy":"ts-node scripts/deploy-rpc.ts deploy","rpc:status":"ts-node scripts/status-rpc.ts check","rpc:verify":"ts-node scripts/verify-rpc.ts verify","lint-staged":"npx lint-staged","rpc:upgrade":"ts-node scripts/upgrade-rpc.ts upgrade","slsa-attest":"npx ts-node scripts/devops/slsa-attestation.ts generate","socket:scan":"SOCKET_CLI_API_TOKEN=$(grep SOCKET_CLI_API_TOKEN .env | cut -d'=' -f2) npx socket ci","health-check":"npx ts-node scripts/devops/health-check.ts","perf-monitor":"npx ts-node scripts/devops/perf-monitor.ts","perf:compare":"bash scripts/devops/devcontainer-performance-benchmark.sh compare","semgrep:scan":"semgrep scan --config .semgrep.yml --exclude-rule weak-encryption --error","slither:scan":"slither . --config-file slither.config.json --ignore-compile","clean-compile":"yarn clean && yarn compile","cost-analyzer":"npx ts-node scripts/devops/cost-analyzer.ts","defender:init":"ts-node scripts/defender-cli.ts init","sigstore-sign":"npx ts-node scripts/devops/sigstore-integration.ts sign-all","slither:check":"slither . --config-file slither.config.json --checklist","smart-trigger":"npx ts-node scripts/devops/smart-trigger.ts","test-sharding":"npx ts-node scripts/devops/test-sharding.ts","test:coverage":"hardhat coverage --config hardhat.config.ts","container:pull":"node scripts/devops/container-registry-manager.sh pull","container:push":"node scripts/devops/container-registry-manager.sh push","diamonds-clean":"rm -rf diamond-typechain-types diamond-abi && npx hardhat clean","install:frozen":"yarn install --frozen-lockfile","perf:benchmark":"bash scripts/devops/devcontainer-performance-benchmark.sh all --environment native","prepublishOnly":"yarn build","security-check":"yarn audit && yarn snyk:test && yarn socket:scan && yarn osv:scan && yarn semgrep:scan && yarn slither:scan && yarn git-secrets:scan","sign-artifacts":"npx ts-node scripts/devops/sign-artifacts.ts","ci-perf-monitor":"node scripts/devops/ci-perf-monitor.js","container:build":"node scripts/devops/container-registry-manager.sh build","defender:deploy":"ts-node scripts/defender-cli.ts deploy","defender:status":"ts-node scripts/defender-cli.ts status","defender:verify":"ts-node scripts/defender-cli.ts verify","rpc:verify-full":"ts-node scripts/verify-rpc.ts full","sigstore-verify":"npx ts-node scripts/devops/sigstore-integration.ts verify-all","container:exists":"node scripts/devops/container-registry-manager.sh exists","container:report":"node scripts/devops/container-registry-manager.sh report","defender:upgrade":"ts-node scripts/defender-cli.ts upgrade","emergency-bypass":"npx ts-node scripts/devops/emergency-bypass.ts","git-secrets:scan":"git secrets --scan","provenance-check":"npx ts-node scripts/devops/provenance-validator.ts","rpc:deploy-quick":"ts-node scripts/deploy-rpc.ts quick","rpc:status-quick":"ts-node scripts/status-rpc.ts quick","security-metrics":"npx ts-node scripts/devops/security-metrics-dashboard.ts","security-webhook":"npx ts-node scripts/devops/security-monitoring-webhook.ts","test:integration":"hardhat test test/integration/**/*.test.ts --config hardhat.config.ts","test:performance":"hardhat test test/integration/performance/**/*.test.ts --config hardhat.config.ts","container:cleanup":"node scripts/devops/container-registry-manager.sh cleanup","incident-response":"npx ts-node scripts/devops/incident-response.ts","rpc:deploy-manual":"ts-node scripts/deploy-rpc-manual.ts deploy","rpc:upgrade-quick":"ts-node scripts/upgrade-rpc.ts quick","security-alerting":"npx ts-node scripts/devops/security-alerting.ts","container:validate":"bash scripts/devops/devcontainer-setup-validation.sh","supply-chain-quick":"npx ts-node scripts/devops/supply-chain-risk-assessment.ts quick","supply-chain-assess":"npx ts-node scripts/devops/supply-chain-risk-assessment.ts assess","diamond:generate-abi":"npx hardhat diamond:generate-abi --diamond-name Diamond","security-tool-update":"npx ts-node scripts/devops/security-tool-updater.ts","security-commit-check":"npx ts-node scripts/devops/security-commit-check.ts","maintenance-automation":"npx ts-node scripts/devops/maintenance-automation.ts","rpc:deploy-interactive":"ts-node scripts/deploy-rpc-manual.ts interactive","security-health-checks":"npx ts-node scripts/devops/security-health-checks.ts","ci-performance-dashboard":"node scripts/devops/ci-performance-dashboard.js","perf:benchmark:container":"bash scripts/devops/devcontainer-performance-benchmark.sh all --environment container","diamond:generate-abi-typechain":"npx hardhat diamond:generate-abi-typechain --diamond-name Diamond"},"_npmUser":{"name":"am0rfu5","email":"am0rfu5@protonmail.com"},"repository":"github:diamondslab/diamonds","description":"Tools for deploying and interfacing with ERC-2535 Diamond Proxies","directories":{},"dependencies":{"zod":"^4.0.2","axios":"^1.12.0","debug":"^4.4.1","lodash":"^4.17.21","fs-extra":"^11.3.0","@ethersproject/abstract-signer":"^5.8.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"chai":"^4.2.0","jest":"^30.0.4","snyk":"^1.1294.0","web3":"^4.16.0","chalk":"^4.1.2","husky":"^9.1.7","mocha":"^9.2.2","sinon":"^21.0.0","dotenv":"^10.0.0","eslint":"^9.17.0","ethers":"^6.4.0","rimraf":"^6.0.1","uint32":"^0.2.1","abi2oas":"^0.1.4","globals":"^15.14.0","hardhat":"^2.26.0","semgrep":"^1.0.0","solhint":"^3.3.7","ts-jest":"^29.4.0","ts-node":"^10.4.0","winston":"^3.17.0","prettier":"^3.4.2","commander":"^9.4.1","jest-mock":"^29.7.0","typechain":"^8.3.2","web3-core":"^4.7.1","typescript":"^5.9.3","web3-utils":"^4.3.3","@types/chai":"^4.2.0","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/node":"^24.0.12","lint-staged":"^15.2.0","@types/debug":"^4.1.12","@types/mocha":"^10.0.10","concurrently":"^8.2.2","@types/lodash":"^4","@types/uint32":"^0.2.0","@commitlint/cli":"^19.8.1","@types/fs-extra":"^5.0.4","eslint-plugin-n":"^17.15.0","chai-as-promised":"^7.1.1","@types/sinon-chai":"^4.0.0","contracts-starter":"git+https://github.com/mudgen/diamond-2-hardhat.git","solidity-coverage":"^0.8.16","@ethersproject/abi":"^5.8.0","@typechain/hardhat":"^9.1.0","eslint-plugin-node":"^11.1.0","@socketsecurity/cli":"^1.0.0","@ethersproject/bytes":"^5.8.0","@typechain/ethers-v6":"^0.5.1","hardhat-gas-reporter":"^1.0.8","eslint-plugin-promise":"^7.2.1","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.2.1","eslint-plugin-security":"^3.0.0","@types/chai-as-promised":"^8.0.1","@ethersproject/providers":"^5.8.0","prettier-plugin-solidity":"^1.4.1","@typescript-eslint/parser":"^8.18.10","@openzeppelin/defender-sdk":"^2.6.0","@diamondslab/hardhat-diamonds":"^1.2.0","@nomicfoundation/ignition-core":"^0.15.9","@commitlint/config-conventional":"^19.8.1","@nomicfoundation/hardhat-ethers":"^3.1.2","@nomicfoundation/hardhat-verify":"^2.0.0","@nomicfoundation/hardhat-toolbox":"^5.0.0","@nomicfoundation/hardhat-web3-v4":"^1.0.0","@typescript-eslint/eslint-plugin":"^8.18.1","@nomicfoundation/hardhat-ignition":"^0.15.0","@gnus.ai/contracts-upgradeable-diamond":"=4.5.0","@nomicfoundation/hardhat-chai-matchers":"^2.0.0","@openzeppelin/defender-sdk-base-client":"^2.6.0","@nomicfoundation/hardhat-ignition-ethers":"^0.15.0","@nomicfoundation/hardhat-network-helpers":"^1.0.0","@openzeppelin/defender-sdk-deploy-client":"^2.6.0","@openzeppelin/defender-sdk-proposal-client":"^2.6.0"},"peerDependencies":{"ethers":"^6.0.0","hardhat":"^2.0.0","ts-node":"^10.0.0","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/diamonds_1.4.1_1782963242738_0.863234547575735","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@diamondslab/diamonds","version":"1.5.0","description":"Tools for deploying and interfacing with ERC-2535 Diamond Proxies","repository":{"type":"git","url":"git+https://github.com/DiamondsLab/diamonds.git"},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./core":{"types":"./dist/core/index.d.ts","default":"./dist/core/index.js"},"./dist/*":{"types":"./dist/*.d.ts","default":"./dist/*.js"},"./package.json":"./package.json"},"license":"MIT","keywords":["ethereum","smart-contracts","hardhat","hardhat-plugin","diamond","diamond-proxy","diamond-upgradeable","blockchain","erc-2535","eip-2535"],"bugs":{"url":"https://github.com/diamondslab/diamonds/issues"},"scripts":{"test":"hardhat test --config hardhat.config.ts","test:unit":"hardhat test test/unit/**/*.test.ts --config hardhat.config.ts","test:integration":"hardhat test test/integration/**/*.test.ts --config hardhat.config.ts","test:coverage":"hardhat coverage --config hardhat.config.ts","test:performance":"hardhat test test/integration/performance/**/*.test.ts --config hardhat.config.ts","build":"rimraf dist tsconfig.tsbuildinfo && tsc","clean":"rimraf artifacts/* cache/* diamond-abi/* typechain-types/* diamond-typechain-types/*","compile":"npx hardhat compile --config hardhat.config.ts && yarn diamond:generate-abi-typechain","clean-compile":"yarn clean && yarn compile","lint:fix":"prettier --write src && eslint src --fix","lint":"eslint src","build:dev":"tsc --project tsconfig.dev.json --noEmit","watch":"tsc --project tsconfig.json -w","prepublishOnly":"yarn build","defender:deploy":"ts-node scripts/defender-cli.ts deploy","defender:upgrade":"ts-node scripts/defender-cli.ts upgrade","defender:status":"ts-node scripts/defender-cli.ts status","defender:verify":"ts-node scripts/defender-cli.ts verify","defender:init":"ts-node scripts/defender-cli.ts init","rpc:deploy":"ts-node scripts/deploy-rpc.ts deploy","rpc:deploy-quick":"ts-node scripts/deploy-rpc.ts quick","rpc:upgrade":"ts-node scripts/upgrade-rpc.ts upgrade","rpc:upgrade-quick":"ts-node scripts/upgrade-rpc.ts quick","rpc:status":"ts-node scripts/status-rpc.ts check","rpc:status-quick":"ts-node scripts/status-rpc.ts quick","rpc:verify":"ts-node scripts/verify-rpc.ts verify","rpc:verify-full":"ts-node scripts/verify-rpc.ts full","rpc:deploy-manual":"ts-node scripts/deploy-rpc-manual.ts deploy","rpc:deploy-interactive":"ts-node scripts/deploy-rpc-manual.ts interactive","diamonds-clean":"rm -rf diamond-typechain-types diamond-abi && npx hardhat clean","coverage":"npx hardhat coverage","diamond:generate-abi":"npx hardhat diamond:generate-abi --diamond-name Diamond","diamond:generate-abi-typechain":"npx hardhat diamond:generate-abi-typechain --diamond-name Diamond","format":"prettier --write \"**/*.{ts,js,json,md,sol}\"","install:frozen":"yarn install --frozen-lockfile","precommit":".husky/pre-commit","prepush":".husky/pre-push","pc":"yarn precommit","pp":"yarn prepush","ls":"lint-staged","commitlint":"commitlint --edit","lint-staged":"npx lint-staged","audit":"yarn npm audit --severity moderate","depcheck":"yarn dlx depcheck","snyk:test":"snyk test --all-projects --exclude=yarn.lock --severity-threshold=medium","socket:scan":"SOCKET_CLI_API_TOKEN=$(grep SOCKET_CLI_API_TOKEN .env | cut -d'=' -f2) npx socket ci","osv:scan":"osv-scanner --lockfile=yarn.lock --format=json","semgrep:scan":"semgrep scan --config .semgrep.yml --exclude-rule weak-encryption --error","slither:scan":"slither . --config-file slither.config.json --ignore-compile","slither:check":"slither . --config-file slither.config.json --checklist","git-secrets:scan":"git secrets --scan","perf-monitor":"npx ts-node scripts/devops/perf-monitor.ts","ci-perf-monitor":"node scripts/devops/ci-perf-monitor.js","sign-artifacts":"npx ts-node scripts/devops/sign-artifacts.ts","emergency-bypass":"npx ts-node scripts/devops/emergency-bypass.ts","security-check":"yarn audit && yarn snyk:test && yarn socket:scan && yarn osv:scan && yarn semgrep:scan && yarn git-secrets:scan","security-tool-update":"npx ts-node scripts/devops/security-tool-updater.ts","provenance-check":"npx ts-node scripts/devops/provenance-validator.ts","slsa-attest":"npx ts-node scripts/devops/slsa-attestation.ts generate","sigstore-sign":"npx ts-node scripts/devops/sigstore-integration.ts sign-all","sigstore-verify":"npx ts-node scripts/devops/sigstore-integration.ts verify-all","supply-chain-assess":"npx ts-node scripts/devops/supply-chain-risk-assessment.ts assess","supply-chain-quick":"npx ts-node scripts/devops/supply-chain-risk-assessment.ts quick","security-webhook":"npx ts-node scripts/devops/security-monitoring-webhook.ts","security-alerting":"npx ts-node scripts/devops/security-alerting.ts","security-metrics":"npx ts-node scripts/devops/security-metrics-dashboard.ts","ci-performance-dashboard":"node scripts/devops/ci-performance-dashboard.js","cost-analyzer":"npx ts-node scripts/devops/cost-analyzer.ts","test-sharding":"npx ts-node scripts/devops/test-sharding.ts","smart-trigger":"npx ts-node scripts/devops/smart-trigger.ts","health-check":"npx ts-node scripts/devops/health-check.ts","maintenance-automation":"npx ts-node scripts/devops/maintenance-automation.ts","incident-response":"npx ts-node scripts/devops/incident-response.ts","security-health-checks":"npx ts-node scripts/devops/security-health-checks.ts","security-commit-check":"npx ts-node scripts/devops/security-commit-check.ts","prepare":"husky","container:build":"node scripts/devops/container-registry-manager.sh build","container:push":"node scripts/devops/container-registry-manager.sh push","container:pull":"node scripts/devops/container-registry-manager.sh pull","container:exists":"node scripts/devops/container-registry-manager.sh exists","container:validate":"bash scripts/devops/devcontainer-setup-validation.sh","container:cleanup":"node scripts/devops/container-registry-manager.sh cleanup","container:report":"node scripts/devops/container-registry-manager.sh report","env:parity":"bash scripts/devops/environment-parity-validation.sh","perf:benchmark":"bash scripts/devops/devcontainer-performance-benchmark.sh all --environment native","perf:benchmark:container":"bash scripts/devops/devcontainer-performance-benchmark.sh all --environment container","perf:compare":"bash scripts/devops/devcontainer-performance-benchmark.sh compare"},"bin":{"diamond-abi":"dist/cli/diamond-abi-cli.js"},"devDependencies":{"@commitlint/cli":"^19.8.1","@commitlint/config-conventional":"^19.8.1","@diamondslab/hardhat-diamonds":"^1.2.0","@ethersproject/abi":"^5.8.0","@ethersproject/bytes":"^5.8.0","@ethersproject/providers":"^5.8.0","@gnus.ai/contracts-upgradeable-diamond":"=4.5.0","@nomicfoundation/hardhat-chai-matchers":"^2.0.0","@nomicfoundation/hardhat-ethers":"^3.1.2","@nomicfoundation/hardhat-ignition":"^0.15.0","@nomicfoundation/hardhat-ignition-ethers":"^0.15.0","@nomicfoundation/hardhat-network-helpers":"^1.0.0","@nomicfoundation/hardhat-toolbox":"^5.0.0","@nomicfoundation/hardhat-verify":"^2.0.0","@nomicfoundation/hardhat-web3-v4":"^1.0.0","@nomicfoundation/ignition-core":"^0.15.9","@openzeppelin/defender-sdk":"^2.6.0","@openzeppelin/defender-sdk-base-client":"^2.6.0","@openzeppelin/defender-sdk-deploy-client":"^2.6.0","@openzeppelin/defender-sdk-proposal-client":"^2.6.0","@socketsecurity/cli":"^1.0.0","@typechain/ethers-v6":"^0.5.1","@typechain/hardhat":"^9.1.0","@types/chai":"^4.2.0","@types/chai-as-promised":"^8.0.1","@types/debug":"^4.1.12","@types/fs-extra":"^5.0.4","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/lodash":"^4","@types/mocha":"^10.0.10","@types/node":"^24.0.12","@types/sinon-chai":"^4.0.0","@types/uint32":"^0.2.0","@typescript-eslint/eslint-plugin":"^8.18.1","@typescript-eslint/parser":"^8.18.10","abi2oas":"^0.1.4","chai":"^4.2.0","chai-as-promised":"^7.1.1","chalk":"^4.1.2","commander":"^9.4.1","concurrently":"^8.2.2","contracts-starter":"git+https://github.com/mudgen/diamond-2-hardhat.git","dotenv":"^10.0.0","eslint":"^9.17.0","eslint-config-prettier":"^9.1.0","eslint-plugin-n":"^17.15.0","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^5.2.1","eslint-plugin-promise":"^7.2.1","eslint-plugin-security":"^3.0.0","ethers":"^6.4.0","globals":"^15.14.0","hardhat":"^2.26.0","hardhat-gas-reporter":"^1.0.8","husky":"^9.1.7","jest":"^30.0.4","jest-mock":"^29.7.0","lint-staged":"^15.2.0","mocha":"^9.2.2","prettier":"^3.4.2","prettier-plugin-solidity":"^1.4.1","rimraf":"^6.0.1","semgrep":"^1.0.0","sinon":"^21.0.0","snyk":"^1.1294.0","solhint":"^3.3.7","solidity-coverage":"^0.8.16","ts-jest":"^29.4.0","ts-node":"^10.4.0","typechain":"^8.3.2","typescript":"^5.9.3","uint32":"^0.2.1","web3":"^4.16.0","web3-core":"^4.7.1","web3-utils":"^4.3.3","winston":"^3.17.0"},"peerDependencies":{"ethers":"^6.0.0","hardhat":"^2.0.0","ts-node":"^10.0.0","typescript":"^5.0.0"},"packageManager":"yarn@4.10.3","dependencies":{"@ethersproject/abstract-signer":"^5.8.0","debug":"^4.4.1","fs-extra":"^11.3.0","zod":"^4.0.2"},"author":{"name":"Am0rfu5"},"contributors":[{"name":"SuperGenius"}],"engines":{"node":">=18.0.0","yarn":">=4.0.0"},"gitHead":"5838c36ce83f0e6404530814450f6701463ae3af","_id":"@diamondslab/diamonds@1.5.0","homepage":"https://github.com/DiamondsLab/diamonds#readme","_nodeVersion":"20.20.2","_npmVersion":"11.18.0","dist":{"integrity":"sha512-+dTODYkentg+pnL3QtzTIRKZrYlHT4QWJZB7YZcpaeEtxMhWlJU1BOVDvm6GP69EM2Zxb7OZRGpFR/+2HNwCPQ==","shasum":"f58c77603a7aa1e0fb91b494be0cdca8f8a4a3b1","tarball":"https://registry.npmjs.org/@diamondslab/diamonds/-/diamonds-1.5.0.tgz","fileCount":88,"unpackedSize":327497,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diamondslab%2fdiamonds@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAtrMcvE1D+QQXVBvCudzBsE33thNEcq+pGku8P+EvGgAiAOnGehtS+uBCLBuCyczflR6Lv96ncDaulErWtWcG7FXg=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2882c0ff-879d-43e7-9e28-173cbd4f395e"}},"directories":{},"maintainers":[{"name":"am0rfu5","email":"am0rfu5@protonmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/diamonds_1.5.0_1783258864204_0.08254519772961388"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-29T21:44:27.477Z","modified":"2026-07-05T13:41:04.666Z","1.0.0":"2025-10-29T21:44:27.857Z","1.1.0":"2025-11-01T02:46:47.949Z","1.1.2":"2025-11-01T13:07:59.017Z","1.2.0":"2025-11-01T21:52:32.461Z","1.2.1":"2025-11-02T13:41:37.109Z","1.3.0":"2025-12-18T17:47:51.935Z","1.3.2":"2026-01-03T00:07:00.444Z","1.4.0":"2026-06-30T00:09:17.700Z","1.4.1":"2026-07-02T03:34:02.911Z","1.5.0":"2026-07-05T13:41:04.343Z"},"bugs":{"url":"https://github.com/diamondslab/diamonds/issues"},"license":"MIT","keywords":["ethereum","smart-contracts","hardhat","hardhat-plugin","diamond","diamond-proxy","diamond-upgradeable","blockchain","erc-2535","eip-2535"],"repository":{"type":"git","url":"git+https://github.com/DiamondsLab/diamonds.git"},"description":"Tools for deploying and interfacing with ERC-2535 Diamond Proxies","maintainers":[{"name":"am0rfu5","email":"am0rfu5@protonmail.com"}],"readme":"# Diamonds Module\n\n[![npm version](https://img.shields.io/npm/v/%40diamondslab%2Fdiamonds.svg)](https://www.npmjs.com/package/@diamondslab/diamonds)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/DiamondsLab/diamonds/blob/main/LICENSE)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.0+-blue.svg)](https://www.typescriptlang.org/)\n[![Hardhat](https://img.shields.io/badge/Hardhat-2.19+-orange.svg)](https://hardhat.org/)\n\n`@diamondslab/diamonds` is a TypeScript framework for deploying, upgrading, and\nmanaging [ERC-2535 Diamond Proxy](https://eips.ethereum.org/EIPS/eip-2535)\ncontracts. It provides a pluggable deployment-strategy system, automatic function\nselector management, configuration-driven facet versioning, and ABI tooling.\n\n> **Package manager:** this project uses **Yarn 4** (`packageManager: yarn@4.x`).\n> The examples below use `yarn`. npm/pnpm work for consuming the published package\n> but the repo scripts assume Yarn.\n\n## ✨ Key Features\n\n### 🏗️ Complete Diamond Implementation\n\n- Full ERC-2535 Diamond Proxy Standard support\n- Modular facet architecture with automated function selector management\n- Selector collision detection and resolution\n- State management and validation\n\n### 🔄 Deployment Management\n\n- **Strategy Pattern**: pluggable deployment strategies (Local, RPC, Base, Defender)\n- **Version Control**: configuration-driven versioning for facets and protocols\n- **Upgrade Automation**: `DiamondDeployer` detects an existing deployment and\n  performs an upgrade instead of a fresh deploy\n- **Post-deployment Callbacks**: run custom initialization after a cut\n\n### 🏭 Production Ready\n\n- **Repository Pattern**: pluggable persistence (file-based out of the box)\n- **Configuration Management**: JSON configuration with Zod validation\n- **ABI Tooling**: combined Diamond ABI generation, preview, compare, and validate\n- **Comprehensive Testing**: unit and integration test suites\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- **Node.js ≥ 18**\n- **Yarn ≥ 4** (for developing this repo; npm/pnpm work for consuming the published package)\n\n### Installation\n\n```bash\nyarn add @diamondslab/diamonds\n# or\nnpm install @diamondslab/diamonds\n\n# peer deps (if not already present)\nyarn add --dev hardhat @nomicfoundation/hardhat-ethers ethers\n```\n\n### Entry points\n\nThe package exposes the following entry points (`exports` in `package.json`):\n\n| Entry point                          | Purpose                                                                                           |\n| ------------------------------------ | ------------------------------------------------------------------------------------------------- |\n| `@diamondslab/diamonds`              | Main entry — everything documented below is exported here                                         |\n| `@diamondslab/diamonds/core`         | Core classes only (`Diamond`, `DiamondDeployer`, `DeploymentManager`, `CallbackManager`)          |\n| `@diamondslab/diamonds/dist/*`       | Back-compat deep imports, e.g. `@diamondslab/diamonds/dist/repositories/FileDeploymentRepository` |\n| `@diamondslab/diamonds/package.json` | Package metadata (for tooling)                                                                    |\n\nPrefer the root entry point for new code; the `dist/*` subpaths exist so older\ndeep imports keep working. Source maps and declaration maps are not shipped.\n\n### Basic Usage\n\nEverything is exported from the package root (`@diamondslab/diamonds`):\n\n```typescript\nimport {\n  Diamond,\n  DiamondDeployer,\n  FileDeploymentRepository,\n  LocalDeploymentStrategy,\n} from \"@diamondslab/diamonds\";\nimport { ethers } from \"hardhat\";\n\n// Diamond configuration\nconst config = {\n  diamondName: \"MyDiamond\",\n  networkName: \"localhost\",\n  chainId: 31337,\n  deploymentsPath: \"./diamonds\",\n  contractsPath: \"./contracts\",\n};\n\n// Set up diamond + deployment components\nconst repository = new FileDeploymentRepository(config);\nconst diamond = new Diamond(config, repository);\n\n// Provide a provider and signer\ndiamond.setProvider(ethers.provider);\nconst [signer] = await ethers.getSigners();\ndiamond.setSigner(signer);\n\n// Deploy using the local strategy (verbose logging on)\nconst strategy = new LocalDeploymentStrategy(true);\nconst deployer = new DiamondDeployer(diamond, strategy);\n\n// Deploys if new, upgrades if already deployed\nawait deployer.deployDiamond();\n```\n\n## 📋 Project Structure\n\n```text\nsrc/\n├── core/                      # Core classes\n│   ├── Diamond.ts             # Diamond state + selector registry\n│   ├── DiamondDeployer.ts     # Deploy/upgrade orchestration\n│   ├── DeploymentManager.ts   # Deployment lifecycle\n│   └── CallbackManager.ts     # Post-deployment callbacks\n├── strategies/                # Deployment strategies\n│   ├── DeploymentStrategy.ts  # Strategy interface\n│   ├── BaseDeploymentStrategy.ts\n│   ├── LocalDeploymentStrategy.ts\n│   ├── RPCDeploymentStrategy.ts\n│   └── OZDefenderDeploymentStrategy.ts   # legacy (see note below)\n├── repositories/              # Data persistence\n│   ├── DeploymentRepository.ts\n│   ├── FileDeploymentRepository.ts\n│   └── jsonFileHandler.ts\n├── schemas/                   # Zod validation schemas\n├── types/                     # TypeScript definitions\n├── utils/                     # Utilities (ABI generation, loupe, selectors, …)\n└── cli/                       # `diamond-abi` CLI\n```\n\n## 🔧 Configuration\n\n### Diamond Configuration\n\nCreate a diamond configuration file (e.g. `myDiamond.config.json`):\n\n```json\n{\n  \"protocolVersion\": 1.0,\n  \"protocolInitFacet\": \"MyProtocolFacet\",\n  \"facets\": {\n    \"DiamondCutFacet\": {\n      \"priority\": 10,\n      \"versions\": { \"1.0\": {} }\n    },\n    \"DiamondLoupeFacet\": {\n      \"priority\": 20,\n      \"versions\": { \"1.0\": {} }\n    },\n    \"MyCustomFacet\": {\n      \"priority\": 30,\n      \"versions\": {\n        \"1.0\": {\n          \"deployInit\": \"initialize()\",\n          \"upgradeInit\": \"upgradeToV1()\",\n          \"callbacks\": [\"postDeployCallback\"],\n          \"deployInclude\": [\"0x12345678\"],\n          \"deployExclude\": [\"0x87654321\"]\n        }\n      }\n    }\n  }\n}\n```\n\n### Environment Configuration\n\n```bash\n# Network Configuration\nNETWORK_NAME=sepolia\nCHAIN_ID=11155111\nRPC_URL=https://sepolia.infura.io/v3/YOUR_KEY\n\n# OpenZeppelin Defender (only for the legacy Defender strategy)\nDEFENDER_API_KEY=your_api_key\nDEFENDER_API_SECRET=your_api_secret\nDEFENDER_RELAYER_ADDRESS=0x...\nDEFENDER_SAFE_ADDRESS=0x...\n\n# Deployment Options\nVERBOSE_DEPLOYMENT=true\n```\n\n## 🔄 Deployment Strategies\n\nAll strategies extend `BaseDeploymentStrategy` and accept an optional `verbose`\nflag. Pass a strategy instance to `DiamondDeployer`.\n\n### Local Strategy\n\nFor development and testing against a local/forked node:\n\n```typescript\nimport { LocalDeploymentStrategy } from \"@diamondslab/diamonds\";\n\nconst strategy = new LocalDeploymentStrategy(true); // verbose\n```\n\n### RPC Strategy\n\nFor deploying through a configured RPC endpoint / signer:\n\n```typescript\nimport { RPCDeploymentStrategy } from \"@diamondslab/diamonds\";\n\nconst strategy =\n  new RPCDeploymentStrategy(/* see RPCDeploymentStrategy options */);\n```\n\n### Custom Strategy\n\nImplement your own by extending `BaseDeploymentStrategy` and overriding the\nprotected task hooks:\n\n```typescript\nimport { BaseDeploymentStrategy, Diamond } from \"@diamondslab/diamonds\";\n\nexport class CustomDeploymentStrategy extends BaseDeploymentStrategy {\n  protected async deployDiamondTasks(diamond: Diamond): Promise<void> {\n    // Custom deployment logic\n  }\n\n  protected async performDiamondCutTasks(diamond: Diamond): Promise<void> {\n    // Custom diamond cut logic\n  }\n}\n```\n\n### OpenZeppelin Defender Strategy (legacy)\n\n> ⚠️ **Deprecated / legacy.** `OZDefenderDeploymentStrategy` is being phased out\n> and is not recommended for new work. It remains exported for backward\n> compatibility. Prefer `LocalDeploymentStrategy` / `RPCDeploymentStrategy` or a\n> custom strategy.\n\n```typescript\nimport { OZDefenderDeploymentStrategy } from \"@diamondslab/diamonds\";\n\nconst strategy = new OZDefenderDeploymentStrategy(\n  process.env.DEFENDER_API_KEY!,\n  process.env.DEFENDER_API_SECRET!,\n  process.env.DEFENDER_RELAYER_ADDRESS!,\n  false, // auto-approve\n  process.env.DEFENDER_SAFE_ADDRESS!,\n  \"Safe\",\n);\n```\n\n## 📊 Advanced Features\n\n### Version Management\n\nFacets are versioned in the configuration; upgrades declare which prior versions\nthey apply from:\n\n```json\n{\n  \"facets\": {\n    \"MyFacet\": {\n      \"priority\": 100,\n      \"versions\": {\n        \"1.0\": { \"deployInit\": \"initialize()\", \"upgradeInit\": \"upgradeToV1()\" },\n        \"2.0\": {\n          \"deployInit\": \"initialize()\",\n          \"upgradeInit\": \"upgradeToV2()\",\n          \"fromVersions\": [1.0]\n        }\n      }\n    }\n  }\n}\n```\n\n### Function Selector Management\n\nAutomatic selector management with collision detection:\n\n- **Priority-based resolution**: higher-priority facets take precedence\n- **Include/Exclude lists**: fine-grained selector control (`deployInclude` / `deployExclude`)\n- **Collision detection**: automatic detection and resolution of selector conflicts\n- **Orphaned selector prevention**: validation guards against bad cuts\n\n### Post-Deployment Callbacks\n\n```typescript\n// In your callbacks directory\nexport async function postDeployCallback(args: CallbackArgs) {\n  const { diamond } = args;\n  console.log(`Post-deployment callback for ${diamond.diamondName}`);\n  // Custom post-deployment logic\n}\n```\n\n## 💎 Diamond ABI Tooling\n\nThis package ships a `diamond-abi` CLI for working with the combined Diamond ABI.\n\n```bash\n# Generate the combined ABI for a deployed diamond (requires a Hardhat project)\nnpx diamond-abi generate --diamond MyDiamond --network localhost\n\n# Preview the ABI changes implied by planned cuts (requires a Hardhat project)\nnpx diamond-abi preview --diamond MyDiamond --verbose\n\n# Compare two ABI files (no chain / Hardhat needed)\nnpx diamond-abi compare old-abi.json new-abi.json\n\n# Validate an ABI artifact file (no chain / Hardhat needed)\nnpx diamond-abi validate diamond-abi.json\n```\n\n> `generate` and `preview` connect to a chain and load your project's Hardhat\n> config (run them inside a Hardhat project). `compare` and `validate` operate on\n> ABI JSON files and run standalone. Run `npx diamond-abi <command> --help` for\n> all options.\n\nThe same combined ABI can also be produced programmatically via\n`generateDiamondAbi` / `previewDiamondAbi` from `@diamondslab/diamonds`.\n\n## 📖 Examples\n\n### Basic Diamond Deployment\n\n```typescript\nimport {\n  Diamond,\n  DiamondDeployer,\n  FileDeploymentRepository,\n  LocalDeploymentStrategy,\n} from \"@diamondslab/diamonds\";\nimport { ethers } from \"hardhat\";\n\nasync function deployBasicDiamond() {\n  const config = {\n    diamondName: \"BasicDiamond\",\n    networkName: \"localhost\",\n    chainId: 31337,\n    deploymentsPath: \"./diamonds\",\n    contractsPath: \"./contracts\",\n  };\n\n  const repository = new FileDeploymentRepository(config);\n  const diamond = new Diamond(config, repository);\n\n  diamond.setProvider(ethers.provider);\n  const [signer] = await ethers.getSigners();\n  diamond.setSigner(signer);\n\n  const strategy = new LocalDeploymentStrategy();\n  const deployer = new DiamondDeployer(diamond, strategy);\n\n  await deployer.deployDiamond();\n  console.log(\"Diamond deployed successfully!\");\n}\n```\n\n### Multi-Facet Upgrade\n\n```typescript\nasync function performUpgrade(\n  diamond: Diamond,\n  repository: FileDeploymentRepository,\n) {\n  // Update configuration for the new version\n  const config = repository.loadDeployConfig();\n  config.protocolVersion = 2.0;\n\n  // Add a new facet\n  config.facets.NewFeatureFacet = {\n    priority: 150,\n    versions: {\n      \"2.0\": { deployInit: \"initialize()\", callbacks: [\"setupNewFeature\"] },\n    },\n  };\n\n  // Upgrade an existing facet\n  config.facets.ExistingFacet.versions[\"2.0\"] = {\n    upgradeInit: \"upgradeToV2()\",\n    fromVersions: [1.0],\n  };\n\n  repository.saveDeployConfig(config);\n\n  // DiamondDeployer detects the existing deployment and performs the upgrade\n  const deployer = new DiamondDeployer(diamond, new LocalDeploymentStrategy());\n  await deployer.deployDiamond();\n}\n```\n\n## 🔍 Monitoring and Debugging\n\n### Inspect Function Selectors\n\n```typescript\nimport { getSighash } from \"@diamondslab/diamonds\";\n\nconst selector = getSighash(\"transfer(address,uint256)\");\nconsole.log(\"Selector:\", selector);\n\nconsole.log(\"Registered:\", diamond.isFunctionSelectorRegistered(selector));\n```\n\n### Compare On-Chain vs. Local State\n\n```typescript\nimport { diffDeployedFacets } from \"@diamondslab/diamonds\";\nimport { ethers } from \"hardhat\";\n\nconst deployedData = diamond.getDeployedDiamondData();\nconsole.log(\"Diamond address:\", deployedData.DiamondAddress);\nconsole.log(\"Deployed facets:\", Object.keys(deployedData.DeployedFacets ?? {}));\n\n// Returns true when on-chain facets match the local deployment record\nconst isConsistent = await diffDeployedFacets(\n  deployedData,\n  ethers.provider,\n  true,\n);\n```\n\n## 🧪 Testing & Development\n\nRun from the package directory:\n\n```bash\nyarn install          # install dependencies (Yarn 4)\nyarn build            # compile TypeScript to dist/\nyarn test             # run the Hardhat test suite\nyarn test:unit        # unit tests only\nyarn test:integration # integration tests only\nyarn test:coverage    # tests with coverage\nyarn lint             # lint\n```\n\n## 🔐 Security Considerations\n\n1. **Use multi-signature wallets** for mainnet deployments.\n2. **Test upgrades on a testnet/fork first.**\n3. **Verify contracts** on the relevant block explorer.\n4. **Apply role-based access control** to privileged diamond functions.\n5. **Never commit secrets** — deployment records may contain addresses/keys and are gitignored.\n\n## 🤝 Contributing\n\nContributions are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for the full\nworkflow, and open an issue or pull request on\n[GitHub](https://github.com/DiamondsLab/diamonds).\n\n```bash\ngit clone https://github.com/DiamondsLab/diamonds.git\ncd diamonds\nyarn install\nyarn test\nyarn build\nyarn lint\n```\n\n### Coding Standards\n\n- Follow the existing TypeScript style\n- Use Conventional Commits\n- Add tests for new functionality\n- Update documentation for new features\n\n## 📄 License\n\nMIT — see the [LICENSE](LICENSE) file.\n\n## 🙏 Acknowledgments\n\n- [ERC-2535 Diamond Standard](https://eips.ethereum.org/EIPS/eip-2535) authors\n- [Hardhat](https://hardhat.org/) development framework\n- [OpenZeppelin](https://openzeppelin.com/) for security tooling\n- The Ethereum community\n\n## 📞 Support\n\n- **Documentation**: see the [`docs/`](docs/) directory\n- **Issues**: [github.com/DiamondsLab/diamonds/issues](https://github.com/DiamondsLab/diamonds/issues)\n\n---\n\n**Built with ❤️ for the Ethereum ecosystem by [DiamondsLab](https://github.com/DiamondsLab)**\n","readmeFilename":"README.md","homepage":"https://github.com/DiamondsLab/diamonds#readme","contributors":[{"name":"SuperGenius"}],"author":{"name":"Am0rfu5"}}