{"_id":"@1001-digital/check-address","_rev":"2-116669a751e77d59436b4391ec720014","name":"@1001-digital/check-address","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@1001-digital/check-address","version":"1.0.0","description":"A simple smart contract helper library to test address type.","scripts":{"test":"hardhat test","node":"hardhat node","deploy:localhost":"hardhat run scripts/deploy.js --network localhost","deploy:rinkeby":"hardhat run scripts/deploy.js --network rinkeby","deploy:ropsten":"hardhat run scripts/deploy.js --network ropsten","deploy:mainnet":"hardhat run scripts/deploy.js --network mainnet"},"repository":{"type":"git","url":"git+https://github.com/1001-digital/check-address.git"},"keywords":["ethereum","solidity","smart contracts"],"author":{"name":"jalil.eth"},"license":"MIT","bugs":{"url":"https://github.com/1001-digital/check-address/issues"},"homepage":"https://github.com/1001-digital/check-address#readme","devDependencies":{"@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-etherscan":"^2.1.4","@nomiclabs/hardhat-waffle":"^2.0.1","chai":"^4.3.4","dotenv":"^10.0.0","ethereum-waffle":"^3.4.0","ethers":"^5.4.4","hardhat":"^2.6.0","hardhat-gas-reporter":"^1.0.4"},"gitHead":"e1e9eb02cef4f0fff2c72301fee411cdbae88037","_id":"@1001-digital/check-address@1.0.0","_nodeVersion":"14.17.0","_npmVersion":"7.13.0","dist":{"integrity":"sha512-hnRThloAKO9fSrAZJOPm6dklK21xfy8q3sU1eWIOUFb+K2ViSqk4BQZlX8B+JtPGWRBNgV8n4Wn6s6rKBCYE0A==","shasum":"a9c47547abe6e4c9b90904acae3084d8373c970a","tarball":"https://registry.npmjs.org/@1001-digital/check-address/-/check-address-1.0.0.tgz","fileCount":10,"unpackedSize":7878,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhFBcsCRA9TVsSAnZWagAAdcwQAJkLGzUf9MhfS/PQj8PL\nvp3O0l1AwXnWFXkemvN1NvvT3Z5DUU33BaT/S2rlqCVIfH2EemR29BYh1is3\nY25vkEOZ3Abw4YStl4yutvmnlAAPSS32thAYZ1zZPxFOZe73ylkeTbEXWJf9\nfUbckEZhzeQjE31bgObKNuie3eECRN51NogybRm9JBxbY0gI/DeKTKqFk6AL\n0pZ7b4f2kKLqaKys3Zt22Ruw1ic7PM7+23zC4YAPLQJn9jaoJJhwliln1sXj\nMW6Z2iq/3Vrb2gaAga08/cBwwPyIYIwPHw076jsxxaDRntiti8HGdYxz0s10\nyC1AqDWMBP2cvSc7le1jXJe2OcAMMnwObdi8PCajAbtnfZyY3/IPSL8UVaw/\nlTwc6F2jB1Fh4xfQrN5WZ8Pqv/VCcXhkqQ3UZRyO/tBgNXQv2+qo6Bds4Vkk\nd1/CXnfBE2Py/CErAZrRPavizI8gsHMHX2U6615p5upj/7qtMi9Pz44GyxfS\n6yQZXox6/WScsjAszYURshBeGkNUlrdBQfWEYSPfX2R5O7hVcjdxs0q1tk2f\njEqb9qO8rbNfTWTdrSYPHSGr5jb3rD3w6fPtg4sGGGISkB0ZuTfO9hPJeGsi\nqqhew7O2W9+h1UysZHu2XCKlDkHJzs/0oVbB7KIC/NLd6UNPpwum58RMmSyZ\nF585\r\n=Tb8K\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGQyHQTC6KxUOPJmHIyPbIy0V/BFz+aDgcWP4Etv8eYzAiAWsxF3vAG1LH5i7rknfHfHUqAE1Xjglw5QrNA6JRjfHA=="}]},"_npmUser":{"name":"jwahdatehagh","email":"jalil@1001.digital"},"directories":{},"maintainers":[{"name":"jwahdatehagh","email":"jalil@1001.digital"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/check-address_1.0.0_1628706604695_0.17595909925632802"},"_hasShrinkwrap":false},"1.0.2":{"name":"@1001-digital/check-address","version":"1.0.2","description":"A simple smart contract helper library to test address type.","scripts":{"test":"hardhat test","node":"hardhat node","deploy:localhost":"hardhat run scripts/deploy.js --network localhost","deploy:rinkeby":"hardhat run scripts/deploy.js --network rinkeby","deploy:ropsten":"hardhat run scripts/deploy.js --network ropsten","deploy:mainnet":"hardhat run scripts/deploy.js --network mainnet"},"repository":{"type":"git","url":"git+https://github.com/1001-digital/check-address.git"},"publishConfig":{"registry":"https://registry.npmjs.org"},"keywords":["ethereum","solidity","smart contracts"],"author":{"name":"jalil.eth"},"license":"MIT","bugs":{"url":"https://github.com/1001-digital/check-address/issues"},"homepage":"https://github.com/1001-digital/check-address#readme","devDependencies":{"@nomiclabs/hardhat-ethers":"^2.0.2","@nomiclabs/hardhat-etherscan":"^2.1.4","@nomiclabs/hardhat-waffle":"^2.0.1","chai":"^4.3.4","dotenv":"^10.0.0","ethereum-waffle":"^3.4.0","ethers":"^5.4.4","hardhat":"^2.6.0","hardhat-gas-reporter":"^1.0.4"},"gitHead":"95480c2c44e4cfe17e754eed348261d67752334c","_id":"@1001-digital/check-address@1.0.2","_nodeVersion":"14.17.0","_npmVersion":"7.13.0","dist":{"integrity":"sha512-l5HyYSytHraOcL98NpIKv66STEFesGr1PuL4a+rcoacXVPXO8G4qx/jAtwrjP/TJhuQLXMAjIk0RZARkjjKQJA==","shasum":"86160708455d6a5444060b4a73a139f1463ef0cc","tarball":"https://registry.npmjs.org/@1001-digital/check-address/-/check-address-1.0.2.tgz","fileCount":11,"unpackedSize":11269,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhFFXNCRA9TVsSAnZWagAA0qEP/Rgztqx2FqVubwNTJvk2\nGsLwqyxVlALaVWKRrCS6+mkCQghuInFrgrJXRkXQTBhQAvxyiYseMUwDOEgM\ngXnBICdtsU48IAKPZK4/60pCtgorJPCBGc/fiQ6eoLaaPc6aJRcXB0wAoZcZ\nZekyW6Yq6j23ANgRVO95JP3gfWbBHNJs+of2eUcC+SybABmpcNK59tAacBJI\nHsxZS+Lzf4CNPeS0V6UT8elbuOkxhfOMUe3oQejVw2nPMgjZnnAkU54/5zqt\nA14fXJuHCsjQNoZw3W/9B2XZofXpNzQFp9AW3xTHRu136LCKmoq5lGWHWOOu\nuewVqDcj50I10lY03QPwr3fgrfqqdIxpL2PGR3yb9hy4KGd6uDw4mulTmZYu\nqmqLQ6MzP4VwWx2t8yqtjBO32OLcm8M9C4m9Kdc0AqJmy5OL4QrJKVyMQpvt\nVvq80pqAS91vpjsdUHk7vzM1dl2qO074EBe6ubM99TLwpw4Ts+DBoXisM8pA\n29z+VE86ojdxayT3eCrhACC1zDx56bdAIno8Ab7VlvvpRk5uZECH8O4Ghgx3\nhdfQ6wgC/m/0r7CL98hR5o+dGRHjRMO89ctNWUzruRBrYQX2RIET8JkNLBAi\nqlaxi35fFtyGVsGKgqvyWifdQtubDzRQg4O4HPtBDIOafM7xBElOkKvzaE2X\nTcyP\r\n=Aikk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFCGo+VUjhvAiosA6lAne6sloLQt7MasL5YvEhUSFTq5AiEAj/bD1GEL2v9KEQy3NdIOkAR7SJnn0TGqPQ/u1wKjMf8="}]},"_npmUser":{"name":"jwahdatehagh","email":"jalil@1001.digital"},"directories":{},"maintainers":[{"name":"jwahdatehagh","email":"jalil@1001.digital"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/check-address_1.0.2_1628722636834_0.9836965885866933"},"_hasShrinkwrap":false}},"time":{"created":"2021-08-11T18:30:04.643Z","1.0.0":"2021-08-11T18:30:04.842Z","modified":"2022-04-04T10:29:49.418Z","1.0.2":"2021-08-11T22:57:17.008Z"},"maintainers":[{"name":"jwahdatehagh","email":"jalil@1001.digital"}],"description":"A simple smart contract helper library to test address type.","homepage":"https://github.com/1001-digital/check-address#readme","keywords":["ethereum","solidity","smart contracts"],"repository":{"type":"git","url":"git+https://github.com/1001-digital/check-address.git"},"author":{"name":"jalil.eth"},"bugs":{"url":"https://github.com/1001-digital/check-address/issues"},"license":"MIT","readme":"# Check Address\nA Solidity library for the Ethereum blockchain to easily distinguish between smart contract and external addresses.\n\n***Warning:*** The checks in this library can be circumvented by calling from within a contract constructor. See the tests for a detailed attack example and check out [this discussion](https://ethereum.stackexchange.com/questions/15641/how-does-a-contract-find-out-if-another-address-is-a-contract) exploring the issue. \n\nConsider carefully whether this is acceptable in your use case.\n\n## Installation\n\n1. In your project run `npm install @1001-digital/check-address`\n2. Within your contract, import the library `import \"@1001-digital/check-address/contracts/CheckAddress.sol\";`\n3. In your code, you can check address types like so: \n   ```solidity\n   address account = 0x1234567891011121314151617181920212223242\n   if (CheckAddress.isExternal(account)) { \n     // ...\n   }\n   ```\n\n*Note:* You will have to link the library when creating your contract during development:\n```js\nconst CheckAddress = await ethers.getContractFactory('CheckAddress');\nconst library = await CheckAddress.deploy()\n\nconst MyContract = await ethers.getContractFactory('MyContract', {\n  libraries: {\n    CheckAddress: library.address,\n  },\n});\n```\n\n## Local Development\n\nTo set up your environment run `npm install`.\n\nNote: You can exchange `npm run` for `hh` if you have `hh` installed globally on your system.\n\n- Run the test suite: `npm run test`\n- Spin up a local development blockchain: `npm run node`\n- Deploy the contract with `npm run deploy:localhost`\n\n## Deployment\n\nDeploy the project via `npm run deploy:{NETWORK}` with `NETWORK` being one of `localhost|rinkeby|ropsten|mainnet`.\n\n### Live Deployments\n- Mainnet: *TODO*\n- Ropsten: `0x87f11cba2Db0cB22b9679c14860bA5Be49Fd0717`\n- Rinkeby: `0x029374cA831F9F4B04a0D896B8d00CcE05f30D8f`\n\n## Thank You\n\nIf you have any **improvement suggestions**, **feedback** or **bug reports** please feel free add an issue, or reach out via Twitter [@jwahdatehagh](https://twitter.com/jwahdatehagh) or Email [jalil@1001.digital](jalil@1001.digital).\n","readmeFilename":"README.md"}