diff --git a/.gitignore b/.gitignore index f3091f9b..4f6d1eb6 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ gasreport-* *.DS_Store node_modules build +index.js \ No newline at end of file diff --git a/hardhat.config.ts b/hardhat.config.ts index bedace12..3e7b4a69 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -176,6 +176,33 @@ const config: HardhatUserConfig = { runOnCompile: true, clear: true, flat: true, + only: [ + 'ENS$', + 'ENSRegistry$', + 'ENSRegistryWithFallback$', + 'ExponentialPremiumPriceOracle$', + 'ETHRegistrarController$', + 'FIFSRegistrar$', + 'LinearPremiumPriceOracle$', + 'PriceOracle$', + 'PublicResolver$', + 'Resolver$', + 'ReverseRegistrar$', + 'TestRegistrar$', + 'StablePriceOracle$', + 'DNSRegistrar$', + 'PublicSuffixList$', + 'SimplePublicSuffixList$', + 'TLDPublicSuffixList$', + 'NameWrapper$', + 'Root$', + 'DNSSEC$', + 'RSASHA1Algorithm$', + 'RSASHA256Algorithm$', + 'SHA256Digest$', + 'SHA1Digest$', + 'SHA1NSEC3Digest$' + ], except: [ 'Controllable$', 'INameWrapper$', diff --git a/index.js b/index.js deleted file mode 100644 index 73a6491c..00000000 --- a/index.js +++ /dev/null @@ -1,58 +0,0 @@ -const BaseRegistrar = require('./build/contracts/BaseRegistrar') -const BaseRegistrarImplementation = require('./build/contracts/BaseRegistrarImplementation') -const BulkRenewal = require('./build/contracts/BulkRenewal') -const ENS = require('./build/contracts/ENS') -const ENSRegistry = require('./build/contracts/ENSRegistry') -const ENSRegistryWithFallback = require('./build/contracts/ENSRegistryWithFallback') -const ExponentialPremiumPriceOracle = require('./build/contracts/ExponentialPremiumPriceOracle') -const ETHRegistrarController = require('./build/contracts/ETHRegistrarController') -const FIFSRegistrar = require('./build/contracts/FIFSRegistrar') -const LinearPremiumPriceOracle = require('./build/contracts/LinearPremiumPriceOracle') -const PriceOracle = require('./build/contracts/PriceOracle') -const PublicResolver = require('./build/contracts/PublicResolver') -const Resolver = require('./build/contracts/Resolver') -const ReverseRegistrar = require('./build/contracts/ReverseRegistrar') -const TestRegistrar = require('./build/contracts/TestRegistrar') -const StablePriceOracle = require('./build/contracts/StablePriceOracle') -const DNSRegistrar = require('./build/contracts/DNSRegistrar') -const PublicSuffixList = require('./build/contracts/PublicSuffixList') -const SimplePublicSuffixList = require('./build/contracts/SimplePublicSuffixList') -const TLDPublicSuffixList = require('./build/contracts/TLDPublicSuffixList') - -const Root = require('./build/contracts/Root') -const DNSSEC = require('./build/contracts/DNSSEC') -const RSASHA256Algorithm = require('./build/contracts/RSASHA256Algorithm') -const RSASHA1Algorithm = require('./build/contracts/RSASHA1Algorithm') -const SHA256Digest = require('./build/contracts/SHA256Digest') -const SHA1Digest = require('./build/contracts/SHA1Digest') -const SHA1NSEC3Digest = require('./build/contracts/SHA1NSEC3Digest') - -module.exports = { - BaseRegistrar, - BaseRegistrarImplementation, - BulkRenewal, - ENS, - ENSRegistry, - ENSRegistryWithFallback, - ExponentialPremiumPriceOracle, - ETHRegistrarController, - FIFSRegistrar, - LinearPremiumPriceOracle, - PriceOracle, - PublicResolver, - Resolver, - ReverseRegistrar, - StablePriceOracle, - TestRegistrar, - DNSRegistrar, - PublicSuffixList, - SimplePublicSuffixList, - TLDPublicSuffixList, - Root, - DNSSEC, - RSASHA256Algorithm, - RSASHA1Algorithm, - SHA256Digest, - SHA1Digest, - SHA1NSEC3Digest, -} diff --git a/package.json b/package.json index bc10667a..dc1a0ffb 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "test": "hardhat test", "test:local": "hardhat --network localhost test", "lint": "hardhat check", - "build": "rm -rf ./build/deploy ./build/hardhat.config.js && hardhat compile && tsc", + "build": "rm -rf ./build/deploy ./build/hardhat.config.js && hardhat compile && tsc && node ./scripts/create-index-file.js", "prepublishOnly": "yarn build", "pub": "yarn publish --access public" }, diff --git a/scripts/create-index-file.js b/scripts/create-index-file.js new file mode 100644 index 00000000..6a2efba7 --- /dev/null +++ b/scripts/create-index-file.js @@ -0,0 +1,27 @@ +// scan through the /build/contracts directory and require all of the contracts +// and add them to the module.exports object, then write the module.exports object +// to a file called index.js. + +const fs = require('fs') +const path = require('path') + +const contractsDir = path.join(__dirname, '../', 'build', 'contracts') + +const contracts = fs + .readdirSync(contractsDir) + .map((file) => file.replace('.json', '')) + +const indexFile = + contracts + .map( + (contract) => + `const ${contract} = require('./build/contracts/${contract}')`, + ) + .join('\n') + + '\n\nmodule.exports = {\n' + + contracts.map((contract) => ` ${contract}`).join(',\n') + + '\n}' + +fs.writeFileSync(path.join(__dirname, '../', 'index.js'), indexFile) + +console.log('index.js created')