@ensdomains/ensjs 2.1.0 → 3.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +649 -99
- package/dist/cjs/GqlManager.d.ts +6 -0
- package/dist/cjs/GqlManager.js +42 -0
- package/dist/cjs/contracts/baseRegistrar.d.ts +3 -0
- package/dist/cjs/contracts/baseRegistrar.js +4 -0
- package/dist/cjs/contracts/doNotCallOnChainUniversalResolverProxy.d.ts +3 -0
- package/dist/cjs/contracts/doNotCallOnChainUniversalResolverProxy.js +4 -0
- package/dist/cjs/contracts/ethRegistrarController.d.ts +3 -0
- package/dist/cjs/contracts/ethRegistrarController.js +4 -0
- package/dist/cjs/contracts/getContractAddress.d.ts +3 -0
- package/dist/cjs/contracts/getContractAddress.js +46 -0
- package/dist/cjs/contracts/index.d.ts +16 -0
- package/dist/cjs/contracts/index.js +37 -0
- package/dist/cjs/contracts/multicall.d.ts +3 -0
- package/dist/cjs/contracts/multicall.js +22 -0
- package/dist/cjs/contracts/nameWrapper.d.ts +3 -0
- package/dist/cjs/contracts/nameWrapper.js +4 -0
- package/dist/cjs/contracts/publicResolver.d.ts +3 -0
- package/dist/cjs/contracts/publicResolver.js +4 -0
- package/dist/cjs/contracts/registry.d.ts +3 -0
- package/dist/cjs/contracts/registry.js +4 -0
- package/dist/cjs/contracts/reverseRegistrar.d.ts +3 -0
- package/dist/cjs/contracts/reverseRegistrar.js +4 -0
- package/dist/cjs/contracts/types.d.ts +2 -0
- package/dist/cjs/contracts/types.js +2 -0
- package/dist/cjs/contracts/universalResolver.d.ts +3 -0
- package/dist/cjs/contracts/universalResolver.js +4 -0
- package/dist/cjs/functions/batch.d.ts +9 -0
- package/dist/cjs/functions/batch.js +21 -0
- package/dist/cjs/functions/batchWrappers.d.ts +29 -0
- package/dist/cjs/functions/batchWrappers.js +71 -0
- package/dist/cjs/functions/burnFuses.d.ts +4 -0
- package/dist/cjs/functions/burnFuses.js +18 -0
- package/dist/cjs/functions/createSubname.d.ts +19 -0
- package/dist/cjs/functions/createSubname.js +43 -0
- package/dist/cjs/functions/deleteSubname.d.ts +4 -0
- package/dist/cjs/functions/deleteSubname.js +6 -0
- package/dist/cjs/functions/getExpiry.d.ts +12 -0
- package/dist/cjs/functions/getExpiry.js +45 -0
- package/dist/cjs/functions/getFuses.d.ts +17 -0
- package/dist/cjs/functions/getFuses.js +61 -0
- package/dist/cjs/functions/getHistory.d.ts +54 -0
- package/dist/cjs/functions/getHistory.js +279 -0
- package/dist/cjs/functions/getName.d.ts +19 -0
- package/dist/cjs/functions/getName.js +34 -0
- package/dist/cjs/functions/getNames.d.ts +40 -0
- package/dist/cjs/functions/getNames.js +222 -0
- package/dist/cjs/functions/getOwner.d.ts +14 -0
- package/dist/cjs/functions/getOwner.js +139 -0
- package/dist/cjs/functions/getPrice.d.ts +13 -0
- package/dist/cjs/functions/getPrice.js +50 -0
- package/dist/cjs/functions/getProfile.d.ts +30 -0
- package/dist/cjs/functions/getProfile.js +268 -0
- package/dist/cjs/functions/getRecords.d.ts +32 -0
- package/dist/cjs/functions/getRecords.js +11 -0
- package/dist/cjs/functions/getResolver.d.ts +9 -0
- package/dist/cjs/functions/getResolver.js +24 -0
- package/dist/cjs/functions/getSpecificRecord.d.ts +73 -0
- package/dist/cjs/functions/getSpecificRecord.js +251 -0
- package/dist/cjs/functions/getSubnames.d.ts +26 -0
- package/dist/cjs/functions/getSubnames.js +154 -0
- package/dist/cjs/functions/initialGetters.d.ts +11 -0
- package/dist/cjs/functions/initialGetters.js +40 -0
- package/dist/cjs/functions/setName.d.ts +4 -0
- package/dist/cjs/functions/setName.js +17 -0
- package/dist/cjs/functions/setRecords.d.ts +4 -0
- package/dist/cjs/functions/setRecords.js +22 -0
- package/dist/cjs/functions/setResolver.d.ts +5 -0
- package/dist/cjs/functions/setResolver.js +28 -0
- package/dist/cjs/functions/transferName.d.ts +5 -0
- package/dist/cjs/functions/transferName.js +33 -0
- package/dist/cjs/functions/transferSubname.d.ts +5 -0
- package/dist/cjs/functions/transferSubname.js +27 -0
- package/dist/cjs/functions/unwrapName.d.ts +4 -0
- package/dist/cjs/functions/unwrapName.js +27 -0
- package/dist/cjs/functions/wrapName.d.ts +6 -0
- package/dist/cjs/functions/wrapName.js +64 -0
- package/dist/cjs/generated/BaseRegistrarImplementation.d.ts +487 -0
- package/dist/cjs/generated/BaseRegistrarImplementation.js +2 -0
- package/dist/cjs/generated/DNSRegistrar.d.ts +220 -0
- package/dist/cjs/generated/DNSRegistrar.js +2 -0
- package/dist/cjs/generated/DNSSECImpl.d.ts +402 -0
- package/dist/cjs/generated/DNSSECImpl.js +2 -0
- package/dist/cjs/generated/DefaultReverseResolver.d.ts +66 -0
- package/dist/cjs/generated/DefaultReverseResolver.js +2 -0
- package/dist/cjs/generated/DoNotCallOnChainUniversalResolverProxy.d.ts +144 -0
- package/dist/cjs/generated/DoNotCallOnChainUniversalResolverProxy.js +2 -0
- package/dist/cjs/generated/ENSRegistry.d.ts +259 -0
- package/dist/cjs/generated/ENSRegistry.js +2 -0
- package/dist/cjs/generated/ETHRegistrarController.d.ts +319 -0
- package/dist/cjs/generated/ETHRegistrarController.js +2 -0
- package/dist/cjs/generated/Multicall.d.ts +292 -0
- package/dist/cjs/generated/Multicall.js +2 -0
- package/dist/cjs/generated/NameWrapper.d.ts +675 -0
- package/dist/cjs/generated/NameWrapper.js +2 -0
- package/dist/cjs/generated/P256SHA256Algorithm.d.ts +72 -0
- package/dist/cjs/generated/P256SHA256Algorithm.js +2 -0
- package/dist/cjs/generated/PublicResolver.d.ts +542 -0
- package/dist/cjs/generated/PublicResolver.js +2 -0
- package/dist/cjs/generated/RSASHA1Algorithm.d.ts +42 -0
- package/dist/cjs/generated/RSASHA1Algorithm.js +2 -0
- package/dist/cjs/generated/RSASHA256Algorithm.d.ts +42 -0
- package/dist/cjs/generated/RSASHA256Algorithm.js +2 -0
- package/dist/cjs/generated/ReverseRegistrar.d.ts +259 -0
- package/dist/cjs/generated/ReverseRegistrar.js +2 -0
- package/dist/cjs/generated/Root.d.ts +173 -0
- package/dist/cjs/generated/Root.js +2 -0
- package/dist/cjs/generated/SHA1Digest.d.ts +67 -0
- package/dist/cjs/generated/SHA1Digest.js +2 -0
- package/dist/cjs/generated/SHA1NSEC3Digest.d.ts +72 -0
- package/dist/cjs/generated/SHA1NSEC3Digest.js +2 -0
- package/dist/cjs/generated/SHA256Digest.d.ts +67 -0
- package/dist/cjs/generated/SHA256Digest.js +2 -0
- package/dist/cjs/generated/StaticMetadataService.d.ts +42 -0
- package/dist/cjs/generated/StaticMetadataService.js +2 -0
- package/dist/cjs/generated/TLDPublicSuffixList.d.ts +42 -0
- package/dist/cjs/generated/TLDPublicSuffixList.js +2 -0
- package/dist/cjs/generated/UniversalResolver.d.ts +82 -0
- package/dist/cjs/generated/UniversalResolver.js +2 -0
- package/dist/cjs/generated/common.d.ts +21 -0
- package/dist/cjs/generated/common.js +2 -0
- package/dist/cjs/generated/factories/BaseRegistrarImplementation__factory.d.ts +52 -0
- package/dist/cjs/generated/factories/BaseRegistrarImplementation__factory.js +770 -0
- package/dist/cjs/generated/factories/DNSRegistrar__factory.d.ts +79 -0
- package/dist/cjs/generated/factories/DNSRegistrar__factory.js +296 -0
- package/dist/cjs/generated/factories/DNSSECImpl__factory.d.ts +68 -0
- package/dist/cjs/generated/factories/DNSSECImpl__factory.js +501 -0
- package/dist/cjs/generated/factories/DefaultReverseResolver__factory.d.ts +36 -0
- package/dist/cjs/generated/factories/DefaultReverseResolver__factory.js +87 -0
- package/dist/cjs/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.d.ts +56 -0
- package/dist/cjs/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.js +171 -0
- package/dist/cjs/generated/factories/ENSRegistry__factory.d.ts +52 -0
- package/dist/cjs/generated/factories/ENSRegistry__factory.js +439 -0
- package/dist/cjs/generated/factories/ETHRegistrarController__factory.d.ts +66 -0
- package/dist/cjs/generated/factories/ETHRegistrarController__factory.js +511 -0
- package/dist/cjs/generated/factories/Multicall__factory.d.ts +42 -0
- package/dist/cjs/generated/factories/Multicall__factory.js +457 -0
- package/dist/cjs/generated/factories/NameWrapper__factory.d.ts +57 -0
- package/dist/cjs/generated/factories/NameWrapper__factory.js +1200 -0
- package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.d.ts +34 -0
- package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.js +71 -0
- package/dist/cjs/generated/factories/PublicResolver__factory.d.ts +46 -0
- package/dist/cjs/generated/factories/PublicResolver__factory.js +892 -0
- package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.d.ts +34 -0
- package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.js +71 -0
- package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.d.ts +34 -0
- package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.js +71 -0
- package/dist/cjs/generated/factories/ReverseRegistrar__factory.d.ts +46 -0
- package/dist/cjs/generated/factories/ReverseRegistrar__factory.js +340 -0
- package/dist/cjs/generated/factories/Root__factory.d.ts +52 -0
- package/dist/cjs/generated/factories/Root__factory.js +243 -0
- package/dist/cjs/generated/factories/SHA1Digest__factory.d.ts +34 -0
- package/dist/cjs/generated/factories/SHA1Digest__factory.js +66 -0
- package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.d.ts +34 -0
- package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.js +71 -0
- package/dist/cjs/generated/factories/SHA256Digest__factory.d.ts +34 -0
- package/dist/cjs/generated/factories/SHA256Digest__factory.js +66 -0
- package/dist/cjs/generated/factories/StaticMetadataService__factory.d.ts +32 -0
- package/dist/cjs/generated/factories/StaticMetadataService__factory.js +49 -0
- package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.d.ts +34 -0
- package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.js +61 -0
- package/dist/cjs/generated/factories/UniversalResolver__factory.d.ts +42 -0
- package/dist/cjs/generated/factories/UniversalResolver__factory.js +204 -0
- package/dist/cjs/generated/factories/index.d.ts +6 -0
- package/dist/cjs/generated/factories/index.js +18 -0
- package/dist/cjs/generated/index.d.ts +13 -0
- package/dist/cjs/generated/index.js +39 -0
- package/dist/cjs/index.d.ts +470 -0
- package/dist/cjs/index.js +223 -0
- package/dist/cjs/utils/contentHash.d.ts +28 -0
- package/dist/cjs/utils/contentHash.js +164 -0
- package/dist/cjs/utils/createReverseNode.d.ts +2 -0
- package/dist/cjs/utils/createReverseNode.js +3 -0
- package/dist/cjs/utils/format.d.ts +3 -0
- package/dist/cjs/utils/format.js +9 -0
- package/dist/cjs/utils/fuses.d.ts +20 -0
- package/dist/cjs/utils/fuses.js +24 -0
- package/dist/cjs/utils/generateFuseInput.d.ts +3 -0
- package/dist/cjs/utils/generateFuseInput.js +19 -0
- package/dist/cjs/utils/hexEncodedName.d.ts +1 -0
- package/dist/cjs/utils/hexEncodedName.js +9 -0
- package/dist/cjs/utils/labels.d.ts +14 -0
- package/dist/cjs/utils/labels.js +112 -0
- package/dist/cjs/utils/makeHashIndexes.d.ts +2 -0
- package/dist/cjs/utils/makeHashIndexes.js +8 -0
- package/dist/cjs/utils/normalise.d.ts +1 -0
- package/dist/cjs/utils/normalise.js +9 -0
- package/dist/cjs/utils/recordHelpers.d.ts +13 -0
- package/dist/cjs/utils/recordHelpers.js +44 -0
- package/dist/cjs/utils/registerHelpers.d.ts +26 -0
- package/dist/cjs/utils/registerHelpers.js +53 -0
- package/dist/cjs/utils/singleCall.d.ts +9 -0
- package/dist/cjs/utils/singleCall.js +7 -0
- package/dist/cjs/utils/validation.d.ts +8 -0
- package/dist/cjs/utils/validation.js +73 -0
- package/dist/esm/GqlManager.d.ts +6 -0
- package/dist/esm/GqlManager.js +18 -0
- package/dist/esm/contracts/baseRegistrar.d.ts +3 -0
- package/dist/esm/contracts/baseRegistrar.js +2 -0
- package/dist/esm/contracts/doNotCallOnChainUniversalResolverProxy.d.ts +3 -0
- package/dist/esm/contracts/doNotCallOnChainUniversalResolverProxy.js +2 -0
- package/dist/esm/contracts/ethRegistrarController.d.ts +3 -0
- package/dist/esm/contracts/ethRegistrarController.js +2 -0
- package/dist/esm/contracts/getContractAddress.d.ts +3 -0
- package/dist/esm/contracts/getContractAddress.js +42 -0
- package/dist/esm/contracts/index.d.ts +16 -0
- package/dist/esm/contracts/index.js +29 -0
- package/dist/esm/contracts/multicall.d.ts +3 -0
- package/dist/esm/contracts/multicall.js +20 -0
- package/dist/esm/contracts/nameWrapper.d.ts +3 -0
- package/dist/esm/contracts/nameWrapper.js +2 -0
- package/dist/esm/contracts/publicResolver.d.ts +3 -0
- package/dist/esm/contracts/publicResolver.js +2 -0
- package/dist/esm/contracts/registry.d.ts +3 -0
- package/dist/esm/contracts/registry.js +2 -0
- package/dist/esm/contracts/reverseRegistrar.d.ts +3 -0
- package/dist/esm/contracts/reverseRegistrar.js +2 -0
- package/dist/esm/contracts/types.d.ts +2 -0
- package/dist/esm/contracts/types.js +1 -0
- package/dist/esm/contracts/universalResolver.d.ts +3 -0
- package/dist/esm/contracts/universalResolver.js +2 -0
- package/dist/esm/functions/batch.d.ts +9 -0
- package/dist/esm/functions/batch.js +19 -0
- package/dist/esm/functions/batchWrappers.d.ts +29 -0
- package/dist/esm/functions/batchWrappers.js +68 -0
- package/dist/esm/functions/burnFuses.d.ts +4 -0
- package/dist/esm/functions/burnFuses.js +12 -0
- package/dist/esm/functions/createSubname.d.ts +19 -0
- package/dist/esm/functions/createSubname.js +37 -0
- package/dist/esm/functions/deleteSubname.d.ts +4 -0
- package/dist/esm/functions/deleteSubname.js +3 -0
- package/dist/esm/functions/getExpiry.d.ts +12 -0
- package/dist/esm/functions/getExpiry.js +43 -0
- package/dist/esm/functions/getFuses.d.ts +17 -0
- package/dist/esm/functions/getFuses.js +59 -0
- package/dist/esm/functions/getHistory.d.ts +54 -0
- package/dist/esm/functions/getHistory.js +273 -0
- package/dist/esm/functions/getName.d.ts +19 -0
- package/dist/esm/functions/getName.js +32 -0
- package/dist/esm/functions/getNames.d.ts +40 -0
- package/dist/esm/functions/getNames.js +220 -0
- package/dist/esm/functions/getOwner.d.ts +14 -0
- package/dist/esm/functions/getOwner.js +137 -0
- package/dist/esm/functions/getPrice.d.ts +13 -0
- package/dist/esm/functions/getPrice.js +48 -0
- package/dist/esm/functions/getProfile.d.ts +30 -0
- package/dist/esm/functions/getProfile.js +265 -0
- package/dist/esm/functions/getRecords.d.ts +32 -0
- package/dist/esm/functions/getRecords.js +8 -0
- package/dist/esm/functions/getResolver.d.ts +9 -0
- package/dist/esm/functions/getResolver.js +22 -0
- package/dist/esm/functions/getSpecificRecord.d.ts +73 -0
- package/dist/esm/functions/getSpecificRecord.js +248 -0
- package/dist/esm/functions/getSubnames.d.ts +26 -0
- package/dist/esm/functions/getSubnames.js +152 -0
- package/dist/esm/functions/initialGetters.d.ts +11 -0
- package/dist/esm/functions/initialGetters.js +11 -0
- package/dist/esm/functions/setName.d.ts +4 -0
- package/dist/esm/functions/setName.js +14 -0
- package/dist/esm/functions/setRecords.d.ts +4 -0
- package/dist/esm/functions/setRecords.js +19 -0
- package/dist/esm/functions/setResolver.d.ts +5 -0
- package/dist/esm/functions/setResolver.js +25 -0
- package/dist/esm/functions/transferName.d.ts +5 -0
- package/dist/esm/functions/transferName.js +30 -0
- package/dist/esm/functions/transferSubname.d.ts +5 -0
- package/dist/esm/functions/transferSubname.js +24 -0
- package/dist/esm/functions/unwrapName.d.ts +4 -0
- package/dist/esm/functions/unwrapName.js +24 -0
- package/dist/esm/functions/wrapName.d.ts +6 -0
- package/dist/esm/functions/wrapName.js +58 -0
- package/dist/esm/generated/BaseRegistrarImplementation.d.ts +487 -0
- package/dist/esm/generated/BaseRegistrarImplementation.js +1 -0
- package/dist/esm/generated/DNSRegistrar.d.ts +220 -0
- package/dist/esm/generated/DNSRegistrar.js +1 -0
- package/dist/esm/generated/DNSSECImpl.d.ts +402 -0
- package/dist/esm/generated/DNSSECImpl.js +1 -0
- package/dist/esm/generated/DefaultReverseResolver.d.ts +66 -0
- package/dist/esm/generated/DefaultReverseResolver.js +1 -0
- package/dist/esm/generated/DoNotCallOnChainUniversalResolverProxy.d.ts +144 -0
- package/dist/esm/generated/DoNotCallOnChainUniversalResolverProxy.js +1 -0
- package/dist/esm/generated/ENSRegistry.d.ts +259 -0
- package/dist/esm/generated/ENSRegistry.js +1 -0
- package/dist/esm/generated/ETHRegistrarController.d.ts +319 -0
- package/dist/esm/generated/ETHRegistrarController.js +1 -0
- package/dist/esm/generated/Multicall.d.ts +292 -0
- package/dist/esm/generated/Multicall.js +1 -0
- package/dist/esm/generated/NameWrapper.d.ts +675 -0
- package/dist/esm/generated/NameWrapper.js +1 -0
- package/dist/esm/generated/P256SHA256Algorithm.d.ts +72 -0
- package/dist/esm/generated/P256SHA256Algorithm.js +1 -0
- package/dist/esm/generated/PublicResolver.d.ts +542 -0
- package/dist/esm/generated/PublicResolver.js +1 -0
- package/dist/esm/generated/RSASHA1Algorithm.d.ts +42 -0
- package/dist/esm/generated/RSASHA1Algorithm.js +1 -0
- package/dist/esm/generated/RSASHA256Algorithm.d.ts +42 -0
- package/dist/esm/generated/RSASHA256Algorithm.js +1 -0
- package/dist/esm/generated/ReverseRegistrar.d.ts +259 -0
- package/dist/esm/generated/ReverseRegistrar.js +1 -0
- package/dist/esm/generated/Root.d.ts +173 -0
- package/dist/esm/generated/Root.js +1 -0
- package/dist/esm/generated/SHA1Digest.d.ts +67 -0
- package/dist/esm/generated/SHA1Digest.js +1 -0
- package/dist/esm/generated/SHA1NSEC3Digest.d.ts +72 -0
- package/dist/esm/generated/SHA1NSEC3Digest.js +1 -0
- package/dist/esm/generated/SHA256Digest.d.ts +67 -0
- package/dist/esm/generated/SHA256Digest.js +1 -0
- package/dist/esm/generated/StaticMetadataService.d.ts +42 -0
- package/dist/esm/generated/StaticMetadataService.js +1 -0
- package/dist/esm/generated/TLDPublicSuffixList.d.ts +42 -0
- package/dist/esm/generated/TLDPublicSuffixList.js +1 -0
- package/dist/esm/generated/UniversalResolver.d.ts +82 -0
- package/dist/esm/generated/UniversalResolver.js +1 -0
- package/dist/esm/generated/common.d.ts +21 -0
- package/dist/esm/generated/common.js +1 -0
- package/dist/esm/generated/factories/BaseRegistrarImplementation__factory.d.ts +52 -0
- package/dist/esm/generated/factories/BaseRegistrarImplementation__factory.js +766 -0
- package/dist/esm/generated/factories/DNSRegistrar__factory.d.ts +79 -0
- package/dist/esm/generated/factories/DNSRegistrar__factory.js +292 -0
- package/dist/esm/generated/factories/DNSSECImpl__factory.d.ts +68 -0
- package/dist/esm/generated/factories/DNSSECImpl__factory.js +497 -0
- package/dist/esm/generated/factories/DefaultReverseResolver__factory.d.ts +36 -0
- package/dist/esm/generated/factories/DefaultReverseResolver__factory.js +83 -0
- package/dist/esm/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.d.ts +56 -0
- package/dist/esm/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.js +167 -0
- package/dist/esm/generated/factories/ENSRegistry__factory.d.ts +52 -0
- package/dist/esm/generated/factories/ENSRegistry__factory.js +435 -0
- package/dist/esm/generated/factories/ETHRegistrarController__factory.d.ts +66 -0
- package/dist/esm/generated/factories/ETHRegistrarController__factory.js +507 -0
- package/dist/esm/generated/factories/Multicall__factory.d.ts +42 -0
- package/dist/esm/generated/factories/Multicall__factory.js +453 -0
- package/dist/esm/generated/factories/NameWrapper__factory.d.ts +57 -0
- package/dist/esm/generated/factories/NameWrapper__factory.js +1196 -0
- package/dist/esm/generated/factories/P256SHA256Algorithm__factory.d.ts +34 -0
- package/dist/esm/generated/factories/P256SHA256Algorithm__factory.js +67 -0
- package/dist/esm/generated/factories/PublicResolver__factory.d.ts +46 -0
- package/dist/esm/generated/factories/PublicResolver__factory.js +888 -0
- package/dist/esm/generated/factories/RSASHA1Algorithm__factory.d.ts +34 -0
- package/dist/esm/generated/factories/RSASHA1Algorithm__factory.js +67 -0
- package/dist/esm/generated/factories/RSASHA256Algorithm__factory.d.ts +34 -0
- package/dist/esm/generated/factories/RSASHA256Algorithm__factory.js +67 -0
- package/dist/esm/generated/factories/ReverseRegistrar__factory.d.ts +46 -0
- package/dist/esm/generated/factories/ReverseRegistrar__factory.js +336 -0
- package/dist/esm/generated/factories/Root__factory.d.ts +52 -0
- package/dist/esm/generated/factories/Root__factory.js +239 -0
- package/dist/esm/generated/factories/SHA1Digest__factory.d.ts +34 -0
- package/dist/esm/generated/factories/SHA1Digest__factory.js +62 -0
- package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.d.ts +34 -0
- package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.js +67 -0
- package/dist/esm/generated/factories/SHA256Digest__factory.d.ts +34 -0
- package/dist/esm/generated/factories/SHA256Digest__factory.js +62 -0
- package/dist/esm/generated/factories/StaticMetadataService__factory.d.ts +32 -0
- package/dist/esm/generated/factories/StaticMetadataService__factory.js +45 -0
- package/dist/esm/generated/factories/TLDPublicSuffixList__factory.d.ts +34 -0
- package/dist/esm/generated/factories/TLDPublicSuffixList__factory.js +57 -0
- package/dist/esm/generated/factories/UniversalResolver__factory.d.ts +42 -0
- package/dist/esm/generated/factories/UniversalResolver__factory.js +200 -0
- package/dist/esm/generated/factories/index.d.ts +6 -0
- package/dist/esm/generated/factories/index.js +9 -0
- package/dist/esm/generated/index.d.ts +13 -0
- package/dist/esm/generated/index.js +7 -0
- package/dist/esm/index.d.ts +470 -0
- package/dist/esm/index.js +188 -0
- package/dist/esm/utils/contentHash.d.ts +28 -0
- package/dist/esm/utils/contentHash.js +153 -0
- package/dist/esm/utils/createReverseNode.d.ts +2 -0
- package/dist/esm/utils/createReverseNode.js +1 -0
- package/dist/esm/utils/format.d.ts +3 -0
- package/dist/esm/utils/format.js +3 -0
- package/dist/esm/utils/fuses.d.ts +20 -0
- package/dist/esm/utils/fuses.js +21 -0
- package/dist/esm/utils/generateFuseInput.d.ts +3 -0
- package/dist/esm/utils/generateFuseInput.js +14 -0
- package/dist/esm/utils/hexEncodedName.d.ts +1 -0
- package/dist/esm/utils/hexEncodedName.js +2 -0
- package/dist/esm/utils/labels.d.ts +14 -0
- package/dist/esm/utils/labels.js +95 -0
- package/dist/esm/utils/makeHashIndexes.d.ts +2 -0
- package/dist/esm/utils/makeHashIndexes.js +3 -0
- package/dist/esm/utils/normalise.d.ts +1 -0
- package/dist/esm/utils/normalise.js +2 -0
- package/dist/esm/utils/recordHelpers.d.ts +13 -0
- package/dist/esm/utils/recordHelpers.js +39 -0
- package/dist/esm/utils/registerHelpers.d.ts +26 -0
- package/dist/esm/utils/registerHelpers.js +44 -0
- package/dist/esm/utils/singleCall.d.ts +9 -0
- package/dist/esm/utils/singleCall.js +5 -0
- package/dist/esm/utils/validation.d.ts +8 -0
- package/dist/esm/utils/validation.js +67 -0
- package/package.json +70 -48
- package/src/@types/@ensdomains/content-hash.d.ts +1 -0
- package/src/@types/@ensdomains/ens-contracts.d.ts +1 -0
- package/src/@types/FuseOptions.d.ts +9 -0
- package/src/@types/dns-packet.d.ts +1 -0
- package/src/@types/idna-uts46-hx.d.ts +1 -0
- package/src/ABIs/ETHRegistrarController.json +494 -0
- package/src/ABIs/NameWrapper.json +1183 -0
- package/src/ABIs/PublicResolver.json +875 -0
- package/src/ABIs/ReverseRegistrar.json +323 -0
- package/src/ABIs/StaticMetadataService.json +32 -0
- package/src/ABIs/UniversalResolver.json +187 -0
- package/src/GqlManager.ts +18 -0
- package/src/contracts/baseRegistrar.ts +5 -0
- package/src/contracts/doNotCallOnChainUniversalResolverProxy.ts +5 -0
- package/src/contracts/ethRegistrarController.ts +5 -0
- package/src/contracts/getContractAddress.ts +52 -0
- package/src/contracts/index.ts +68 -0
- package/src/contracts/multicall.ts +24 -0
- package/src/contracts/nameWrapper.ts +5 -0
- package/src/contracts/publicResolver.ts +5 -0
- package/src/contracts/registry.ts +5 -0
- package/src/contracts/reverseRegistrar.ts +5 -0
- package/src/contracts/types.ts +11 -0
- package/src/contracts/universalResolver.ts +5 -0
- package/src/functions/batch.ts +36 -0
- package/src/functions/batchWrappers.ts +91 -0
- package/src/functions/burnFuses.ts +23 -0
- package/src/functions/createSubname.ts +82 -0
- package/src/functions/deleteSubname.ts +19 -0
- package/src/functions/getExpiry.ts +63 -0
- package/src/functions/getFuses.ts +75 -0
- package/src/functions/getHistory.ts +347 -0
- package/src/functions/getName.ts +41 -0
- package/src/functions/getNames.ts +275 -0
- package/src/functions/getOwner.ts +202 -0
- package/src/functions/getPrice.ts +71 -0
- package/src/functions/getProfile.ts +479 -0
- package/src/functions/getRecords.ts +22 -0
- package/src/functions/getResolver.ts +32 -0
- package/src/functions/getSpecificRecord.ts +345 -0
- package/src/functions/getSubnames.ts +188 -0
- package/src/functions/initialGetters.ts +11 -0
- package/src/functions/setName.ts +34 -0
- package/src/functions/setRecords.ts +38 -0
- package/src/functions/setResolver.ts +40 -0
- package/src/functions/transferName.ts +56 -0
- package/src/functions/transferSubname.ts +37 -0
- package/src/functions/unwrapName.ts +38 -0
- package/src/functions/wrapName.ts +128 -0
- package/src/generated/BaseRegistrarImplementation.ts +1122 -0
- package/src/generated/DNSRegistrar.ts +445 -0
- package/src/generated/DNSSECImpl.ts +770 -0
- package/src/generated/DefaultReverseResolver.ts +137 -0
- package/src/generated/DoNotCallOnChainUniversalResolverProxy.ts +285 -0
- package/src/generated/ENSRegistry.ts +618 -0
- package/src/generated/ETHRegistrarController.ts +743 -0
- package/src/generated/Multicall.ts +582 -0
- package/src/generated/NameWrapper.ts +1694 -0
- package/src/generated/P256SHA256Algorithm.ts +139 -0
- package/src/generated/PublicResolver.ts +1326 -0
- package/src/generated/RSASHA1Algorithm.ts +109 -0
- package/src/generated/RSASHA256Algorithm.ts +109 -0
- package/src/generated/ReverseRegistrar.ts +556 -0
- package/src/generated/Root.ts +377 -0
- package/src/generated/SHA1Digest.ts +129 -0
- package/src/generated/SHA1NSEC3Digest.ts +140 -0
- package/src/generated/SHA256Digest.ts +129 -0
- package/src/generated/StaticMetadataService.ts +85 -0
- package/src/generated/TLDPublicSuffixList.ts +99 -0
- package/src/generated/UniversalResolver.ts +260 -0
- package/src/generated/common.ts +44 -0
- package/src/generated/factories/BaseRegistrarImplementation__factory.ts +781 -0
- package/src/generated/factories/DNSRegistrar__factory.ts +329 -0
- package/src/generated/factories/DNSSECImpl__factory.ts +527 -0
- package/src/generated/factories/DefaultReverseResolver__factory.ts +98 -0
- package/src/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.ts +186 -0
- package/src/generated/factories/ENSRegistry__factory.ts +443 -0
- package/src/generated/factories/ETHRegistrarController__factory.ts +522 -0
- package/src/generated/factories/Multicall__factory.ts +461 -0
- package/src/generated/factories/NameWrapper__factory.ts +1204 -0
- package/src/generated/factories/P256SHA256Algorithm__factory.ts +91 -0
- package/src/generated/factories/PublicResolver__factory.ts +899 -0
- package/src/generated/factories/RSASHA1Algorithm__factory.ts +91 -0
- package/src/generated/factories/RSASHA256Algorithm__factory.ts +91 -0
- package/src/generated/factories/ReverseRegistrar__factory.ts +347 -0
- package/src/generated/factories/Root__factory.ts +244 -0
- package/src/generated/factories/SHA1Digest__factory.ts +83 -0
- package/src/generated/factories/SHA1NSEC3Digest__factory.ts +91 -0
- package/src/generated/factories/SHA256Digest__factory.ts +83 -0
- package/src/generated/factories/StaticMetadataService__factory.ts +60 -0
- package/src/generated/factories/TLDPublicSuffixList__factory.ts +81 -0
- package/src/generated/factories/UniversalResolver__factory.ts +211 -0
- package/src/generated/factories/index.ts +9 -0
- package/src/generated/index.ts +16 -0
- package/src/index.ts +506 -0
- package/src/tests/batch.test.ts +36 -0
- package/src/tests/batchWrappers.test.ts +31 -0
- package/src/tests/burnFuses.test.ts +43 -0
- package/src/tests/createSubname.test.ts +59 -0
- package/src/tests/deleteSubname.test.ts +72 -0
- package/src/tests/getExpiry.test.ts +37 -0
- package/src/tests/getFuses.test.ts +103 -0
- package/src/tests/getHistory.test.ts +101 -0
- package/src/tests/getName.test.ts +47 -0
- package/src/tests/getNames.test.ts +247 -0
- package/src/tests/getOwner.test.ts +61 -0
- package/src/tests/getProfile.test.ts +102 -0
- package/src/tests/getResolver.test.ts +19 -0
- package/src/tests/getSpecificRecord.test.ts +76 -0
- package/src/tests/getSubnames.test.ts +31 -0
- package/src/tests/makeCommitment.test.ts +23 -0
- package/src/tests/setName.test.ts +58 -0
- package/src/tests/setRecords.test.ts +58 -0
- package/src/tests/setResolver.test.ts +60 -0
- package/src/tests/setup.ts +53 -0
- package/src/tests/transferName.test.ts +80 -0
- package/src/tests/transferSubname.test.ts +74 -0
- package/src/tests/unwrapName.test.ts +67 -0
- package/src/tests/withProvider.test.ts +28 -0
- package/src/tests/wrapName.test.ts +67 -0
- package/src/utils/contentHash.ts +151 -0
- package/src/utils/createReverseNode.ts +2 -0
- package/src/utils/format.ts +8 -0
- package/src/utils/fuses.ts +23 -0
- package/src/utils/generateFuseInput.ts +18 -0
- package/src/utils/hexEncodedName.ts +4 -0
- package/src/utils/labels.ts +119 -0
- package/src/utils/makeHashIndexes.ts +9 -0
- package/src/utils/normalise.ts +4 -0
- package/src/utils/recordHelpers.ts +72 -0
- package/src/utils/registerHelpers.ts +88 -0
- package/src/utils/singleCall.ts +16 -0
- package/src/utils/validation.ts +73 -0
- package/dist/constants/interfaces.js +0 -13
- package/dist/index.js +0 -1135
- package/dist/utils/contents.js +0 -126
- package/dist/utils/index.js +0 -192
- package/dist/utils/labelhash.js +0 -55
- package/dist/utils/namehash.js +0 -39
- package/dist/utils/records.js +0 -56
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { ENS } from '..'
|
|
2
|
+
import setup from './setup'
|
|
3
|
+
|
|
4
|
+
let ENSInstance: ENS
|
|
5
|
+
|
|
6
|
+
beforeAll(async () => {
|
|
7
|
+
;({ ENSInstance } = await setup())
|
|
8
|
+
})
|
|
9
|
+
|
|
10
|
+
const checkRecords = (
|
|
11
|
+
result: Record<string, any> | null,
|
|
12
|
+
textLength = 3,
|
|
13
|
+
coinTypeLength = 5,
|
|
14
|
+
) => {
|
|
15
|
+
expect(result).toBeTruthy()
|
|
16
|
+
if (result) {
|
|
17
|
+
expect(result.records?.texts).toHaveLength(textLength)
|
|
18
|
+
expect(result.records?.coinTypes).toHaveLength(coinTypeLength)
|
|
19
|
+
expect(result.resolverAddress).toBe(
|
|
20
|
+
'0x42D63ae25990889E35F215bC95884039Ba354115',
|
|
21
|
+
)
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
describe('getProfile', () => {
|
|
26
|
+
describe('with an address', () => {
|
|
27
|
+
it('should return a profile object with no other args', async () => {
|
|
28
|
+
const result = await ENSInstance.getProfile(
|
|
29
|
+
'0x866B3c4994e1416B7C738B9818b31dC246b95eEE',
|
|
30
|
+
)
|
|
31
|
+
expect((result as any).name).toBe('jefflau.eth')
|
|
32
|
+
expect((result as any).address).toBeUndefined()
|
|
33
|
+
checkRecords(result)
|
|
34
|
+
})
|
|
35
|
+
it('should return a profile object with specified records', async () => {
|
|
36
|
+
const result = await ENSInstance.getProfile(
|
|
37
|
+
'0x866B3c4994e1416B7C738B9818b31dC246b95eEE',
|
|
38
|
+
{ texts: ['description', 'url'], coinTypes: ['ETC', '0'] },
|
|
39
|
+
)
|
|
40
|
+
expect((result as any).name).toBe('jefflau.eth')
|
|
41
|
+
expect((result as any).address).toBeUndefined()
|
|
42
|
+
checkRecords(result, 2, 3)
|
|
43
|
+
})
|
|
44
|
+
it('should return a profile object with all of each specified record type', async () => {
|
|
45
|
+
const result = await ENSInstance.getProfile(
|
|
46
|
+
'0x866B3c4994e1416B7C738B9818b31dC246b95eEE',
|
|
47
|
+
{ texts: true, coinTypes: true },
|
|
48
|
+
)
|
|
49
|
+
checkRecords(result)
|
|
50
|
+
})
|
|
51
|
+
it('should return null for an address without a name', async () => {
|
|
52
|
+
const result = await ENSInstance.getProfile(
|
|
53
|
+
'0x8e8db5ccef88cca9d624701db544989c996e3216',
|
|
54
|
+
)
|
|
55
|
+
expect(result).toBeUndefined()
|
|
56
|
+
})
|
|
57
|
+
})
|
|
58
|
+
describe('with a name', () => {
|
|
59
|
+
it('should return a profile object with no other args', async () => {
|
|
60
|
+
const result = await ENSInstance.getProfile('jefflau.eth')
|
|
61
|
+
expect((result as any).address).toBe(
|
|
62
|
+
'0x866B3c4994e1416B7C738B9818b31dC246b95eEE',
|
|
63
|
+
)
|
|
64
|
+
checkRecords(result)
|
|
65
|
+
})
|
|
66
|
+
it('should return a profile object with specified records', async () => {
|
|
67
|
+
const result = await ENSInstance.getProfile('jefflau.eth', {
|
|
68
|
+
texts: ['description', 'url'],
|
|
69
|
+
coinTypes: ['ETC', '0'],
|
|
70
|
+
})
|
|
71
|
+
expect((result as any).address).toBe(
|
|
72
|
+
'0x866B3c4994e1416B7C738B9818b31dC246b95eEE',
|
|
73
|
+
)
|
|
74
|
+
checkRecords(result, 2, 3)
|
|
75
|
+
})
|
|
76
|
+
it('should return a profile object with all of each specified record type', async () => {
|
|
77
|
+
const result = await ENSInstance.getProfile('jefflau.eth', {
|
|
78
|
+
texts: true,
|
|
79
|
+
coinTypes: true,
|
|
80
|
+
})
|
|
81
|
+
checkRecords(result)
|
|
82
|
+
})
|
|
83
|
+
it('should return null for an unregistered name', async () => {
|
|
84
|
+
const result = await ENSInstance.getProfile('test123123123cool.eth')
|
|
85
|
+
expect(result).toBeUndefined()
|
|
86
|
+
})
|
|
87
|
+
})
|
|
88
|
+
describe('with an unmigrated name', () => {
|
|
89
|
+
beforeAll(async () => {
|
|
90
|
+
;({ ENSInstance } = await setup(true))
|
|
91
|
+
jest.setTimeout(20000)
|
|
92
|
+
})
|
|
93
|
+
it('should return an object with isMigrated false and a message', async () => {
|
|
94
|
+
const result = await ENSInstance.getProfile('jefflau.test')
|
|
95
|
+
expect(result).toBeTruthy()
|
|
96
|
+
if (result) {
|
|
97
|
+
expect(result.isMigrated).toBe(false)
|
|
98
|
+
expect(result.message).toBe("Records fetch didn't complete")
|
|
99
|
+
}
|
|
100
|
+
})
|
|
101
|
+
})
|
|
102
|
+
})
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ENS } from '..'
|
|
2
|
+
import setup from './setup'
|
|
3
|
+
|
|
4
|
+
let ENSInstance: ENS
|
|
5
|
+
|
|
6
|
+
beforeAll(async () => {
|
|
7
|
+
;({ ENSInstance } = await setup())
|
|
8
|
+
})
|
|
9
|
+
|
|
10
|
+
describe('getResolver', () => {
|
|
11
|
+
it('should find the resolver for a name with a resolver', async () => {
|
|
12
|
+
const result = await ENSInstance.getResolver('jefflau.eth')
|
|
13
|
+
expect(result).toBe('0x42D63ae25990889E35F215bC95884039Ba354115')
|
|
14
|
+
})
|
|
15
|
+
it('should return .eth resolver for an unregistered name', async () => {
|
|
16
|
+
const result = await ENSInstance.getResolver('test123123cool.eth')
|
|
17
|
+
expect(result).toBe('0x3E8Dc215A6E404A7Ba811DE5Da3ff2A809AE94E2')
|
|
18
|
+
})
|
|
19
|
+
})
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { ENS } from '..'
|
|
2
|
+
import setup from './setup'
|
|
3
|
+
|
|
4
|
+
let ENSInstance: ENS
|
|
5
|
+
|
|
6
|
+
beforeAll(async () => {
|
|
7
|
+
;({ ENSInstance } = await setup())
|
|
8
|
+
})
|
|
9
|
+
|
|
10
|
+
describe('getSpecificRecord', () => {
|
|
11
|
+
describe('getContentHash', () => {
|
|
12
|
+
it('should return null for a non-existent name', async () => {
|
|
13
|
+
const result = await ENSInstance.getContentHash('test123123cool.eth')
|
|
14
|
+
expect(result).toBeUndefined()
|
|
15
|
+
})
|
|
16
|
+
it('should return null for a name with no contenthash record', async () => {
|
|
17
|
+
const result = await ENSInstance.getContentHash('jefflau.eth')
|
|
18
|
+
expect(result).toBeUndefined()
|
|
19
|
+
})
|
|
20
|
+
it('should return the contenthash for a name with the record set', async () => {
|
|
21
|
+
const result = await ENSInstance.getContentHash('matoken.eth')
|
|
22
|
+
expect(result).toMatchObject({
|
|
23
|
+
protocolType: 'ipfs',
|
|
24
|
+
decoded: 'bafybeico3uuyj3vphxpvbowchdwjlrlrh62awxscrnii7w7flu5z6fk77y',
|
|
25
|
+
error: undefined,
|
|
26
|
+
})
|
|
27
|
+
})
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
describe('getText', () => {
|
|
31
|
+
it('should return a record from a key', async () => {
|
|
32
|
+
const result = await ENSInstance.getText('jefflau.eth', 'description')
|
|
33
|
+
expect(result).toBe('Hello2')
|
|
34
|
+
})
|
|
35
|
+
|
|
36
|
+
it('should return null for a non-existent key', async () => {
|
|
37
|
+
const result = await ENSInstance.getText(
|
|
38
|
+
'jefflau.eth',
|
|
39
|
+
'thiskeydoesntexist',
|
|
40
|
+
)
|
|
41
|
+
expect(result).toBeUndefined()
|
|
42
|
+
})
|
|
43
|
+
})
|
|
44
|
+
|
|
45
|
+
describe('getAddr', () => {
|
|
46
|
+
it('should return the ETH addr record if no coinType is provided', async () => {
|
|
47
|
+
const result = await ENSInstance.getAddr('jefflau.eth')
|
|
48
|
+
expect(result).toBe('0x866B3c4994e1416B7C738B9818b31dC246b95eEE')
|
|
49
|
+
})
|
|
50
|
+
it('should return the correct address based on a coin ID input as a number', async () => {
|
|
51
|
+
const result = await ENSInstance.getAddr('jefflau.eth', 61)
|
|
52
|
+
expect((result as any).addr).toBe(
|
|
53
|
+
'0x866B3c4994e1416B7C738B9818b31dC246b95eEE',
|
|
54
|
+
)
|
|
55
|
+
expect((result as any).coin).toBe('ETC')
|
|
56
|
+
})
|
|
57
|
+
it('should return the correct address based on a coin ID input as a string', async () => {
|
|
58
|
+
const result = await ENSInstance.getAddr('jefflau.eth', '61')
|
|
59
|
+
expect((result as any).addr).toBe(
|
|
60
|
+
'0x866B3c4994e1416B7C738B9818b31dC246b95eEE',
|
|
61
|
+
)
|
|
62
|
+
expect((result as any).coin).toBe('ETC')
|
|
63
|
+
})
|
|
64
|
+
it('should return the correct address based on a coin name', async () => {
|
|
65
|
+
const result = await ENSInstance.getAddr('jefflau.eth', 'ETC')
|
|
66
|
+
expect((result as any).addr).toBe(
|
|
67
|
+
'0x866B3c4994e1416B7C738B9818b31dC246b95eEE',
|
|
68
|
+
)
|
|
69
|
+
expect((result as any).coin).toBe('ETC')
|
|
70
|
+
})
|
|
71
|
+
it('should return null for a non-existent coin', async () => {
|
|
72
|
+
const result = await ENSInstance.getAddr('jefflau.eth', 'BNB')
|
|
73
|
+
expect(result).toBeUndefined()
|
|
74
|
+
})
|
|
75
|
+
})
|
|
76
|
+
})
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ENS } from '..'
|
|
2
|
+
import setup from './setup'
|
|
3
|
+
|
|
4
|
+
let ENSInstance: ENS
|
|
5
|
+
|
|
6
|
+
beforeAll(async () => {
|
|
7
|
+
;({ ENSInstance } = await setup())
|
|
8
|
+
})
|
|
9
|
+
|
|
10
|
+
const testProperties = (obj: object, ...properties: string[]) =>
|
|
11
|
+
properties.map((property) => expect(obj).toHaveProperty(property))
|
|
12
|
+
|
|
13
|
+
describe('getSubnames', () => {
|
|
14
|
+
it('should get the subnames for a name', async () => {
|
|
15
|
+
const result = await ENSInstance.getSubnames({
|
|
16
|
+
name: 'jefflau.eth',
|
|
17
|
+
})
|
|
18
|
+
expect(result).toBeTruthy()
|
|
19
|
+
expect(result.length).toBeGreaterThan(0)
|
|
20
|
+
testProperties(
|
|
21
|
+
result[0],
|
|
22
|
+
'id',
|
|
23
|
+
'labelName',
|
|
24
|
+
'labelhash',
|
|
25
|
+
'name',
|
|
26
|
+
'isMigrated',
|
|
27
|
+
'owner',
|
|
28
|
+
'truncatedName',
|
|
29
|
+
)
|
|
30
|
+
})
|
|
31
|
+
})
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ENS } from '..'
|
|
2
|
+
import { makeCommitment } from '../utils/registerHelpers'
|
|
3
|
+
import setup from './setup'
|
|
4
|
+
|
|
5
|
+
let ENSInstance: ENS
|
|
6
|
+
|
|
7
|
+
beforeAll(async () => {
|
|
8
|
+
;({ ENSInstance } = await setup())
|
|
9
|
+
})
|
|
10
|
+
|
|
11
|
+
describe('makeCommitment', () => {
|
|
12
|
+
it('should create a valid commitment', async () => {
|
|
13
|
+
const resolver = await ENSInstance.contracts!.getPublicResolver()!
|
|
14
|
+
const commitment = makeCommitment({
|
|
15
|
+
name: 'test.eth',
|
|
16
|
+
owner: '0x866B3c4994e1416B7C738B9818b31dC246b95eEE',
|
|
17
|
+
duration: 1 * 365 * 24 * 60 * 60,
|
|
18
|
+
resolver: resolver,
|
|
19
|
+
})
|
|
20
|
+
expect(commitment).toHaveProperty('secret')
|
|
21
|
+
expect(commitment).toHaveProperty('commitment')
|
|
22
|
+
})
|
|
23
|
+
})
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ethers } from 'ethers'
|
|
2
|
+
import { ENS } from '..'
|
|
3
|
+
import { hexEncodeName } from '../utils/hexEncodedName'
|
|
4
|
+
import setup from './setup'
|
|
5
|
+
|
|
6
|
+
let ENSInstance: ENS
|
|
7
|
+
let revert: Awaited<ReturnType<typeof setup>>['revert']
|
|
8
|
+
let provider: ethers.providers.JsonRpcProvider
|
|
9
|
+
let accounts: string[]
|
|
10
|
+
|
|
11
|
+
beforeAll(async () => {
|
|
12
|
+
;({ ENSInstance, revert, provider } = await setup())
|
|
13
|
+
accounts = await provider.listAccounts()
|
|
14
|
+
})
|
|
15
|
+
|
|
16
|
+
afterAll(async () => {
|
|
17
|
+
await revert()
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
describe('setName', () => {
|
|
21
|
+
beforeEach(async () => {
|
|
22
|
+
await revert()
|
|
23
|
+
})
|
|
24
|
+
it('should return a transaction for a name and set successfully', async () => {
|
|
25
|
+
const tx = await ENSInstance.setName('fleek.eth')
|
|
26
|
+
expect(tx).toBeTruthy()
|
|
27
|
+
await tx?.wait()
|
|
28
|
+
|
|
29
|
+
const universalResolver =
|
|
30
|
+
await ENSInstance.contracts!.getUniversalResolver()!
|
|
31
|
+
const reverseNode = accounts[0].toLowerCase().substring(2) + '.addr.reverse'
|
|
32
|
+
const result = await universalResolver.reverse(hexEncodeName(reverseNode))
|
|
33
|
+
expect(result[0]).toBe('fleek.eth')
|
|
34
|
+
})
|
|
35
|
+
it("should return a transaction for setting another address' name", async () => {
|
|
36
|
+
jest.setTimeout(20000)
|
|
37
|
+
const registry = (await ENSInstance.contracts!.getRegistry()!).connect(
|
|
38
|
+
provider.getSigner(),
|
|
39
|
+
)
|
|
40
|
+
const setApprovedForAllTx = await registry.setApprovalForAll(
|
|
41
|
+
accounts[1],
|
|
42
|
+
true,
|
|
43
|
+
)
|
|
44
|
+
await setApprovedForAllTx?.wait()
|
|
45
|
+
|
|
46
|
+
const tx = await ENSInstance.setName('fleek.eth', accounts[0], undefined, {
|
|
47
|
+
addressOrIndex: 1,
|
|
48
|
+
})
|
|
49
|
+
expect(tx).toBeTruthy()
|
|
50
|
+
await tx?.wait()
|
|
51
|
+
|
|
52
|
+
const universalResolver =
|
|
53
|
+
await ENSInstance.contracts!.getUniversalResolver()!
|
|
54
|
+
const reverseNode = accounts[0].toLowerCase().substring(2) + '.addr.reverse'
|
|
55
|
+
const result = await universalResolver.reverse(hexEncodeName(reverseNode))
|
|
56
|
+
expect(result[0]).toBe('fleek.eth')
|
|
57
|
+
})
|
|
58
|
+
})
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { utils } from 'ethers'
|
|
2
|
+
import { ENS } from '..'
|
|
3
|
+
import { hexEncodeName } from '../utils/hexEncodedName'
|
|
4
|
+
import setup from './setup'
|
|
5
|
+
|
|
6
|
+
let ENSInstance: ENS
|
|
7
|
+
let revert: Awaited<ReturnType<typeof setup>>['revert']
|
|
8
|
+
|
|
9
|
+
beforeAll(async () => {
|
|
10
|
+
;({ ENSInstance, revert } = await setup())
|
|
11
|
+
})
|
|
12
|
+
|
|
13
|
+
afterAll(async () => {
|
|
14
|
+
await revert()
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
describe('setRecords', () => {
|
|
18
|
+
it('should return a transaction to the resolver and set successfully', async () => {
|
|
19
|
+
const tx = await ENSInstance.setRecords('parthtejpal.eth', {
|
|
20
|
+
coinTypes: [
|
|
21
|
+
{ key: 'ETC', value: '0x42D63ae25990889E35F215bC95884039Ba354115' },
|
|
22
|
+
],
|
|
23
|
+
texts: [{ key: 'foo', value: 'bar' }],
|
|
24
|
+
})
|
|
25
|
+
expect(tx).toBeTruthy()
|
|
26
|
+
await tx.wait()
|
|
27
|
+
|
|
28
|
+
const universalResolver =
|
|
29
|
+
await ENSInstance.contracts!.getUniversalResolver()!
|
|
30
|
+
const publicResolver = await ENSInstance.contracts!.getPublicResolver()!
|
|
31
|
+
const encodedText = await universalResolver.resolve(
|
|
32
|
+
hexEncodeName('parthtejpal.eth'),
|
|
33
|
+
publicResolver.interface.encodeFunctionData('text(bytes32,string)', [
|
|
34
|
+
utils.namehash('parthtejpal.eth'),
|
|
35
|
+
'foo',
|
|
36
|
+
]),
|
|
37
|
+
)
|
|
38
|
+
const encodedAddr = await universalResolver.resolve(
|
|
39
|
+
hexEncodeName('parthtejpal.eth'),
|
|
40
|
+
publicResolver.interface.encodeFunctionData('addr(bytes32,uint256)', [
|
|
41
|
+
utils.namehash('parthtejpal.eth'),
|
|
42
|
+
'61',
|
|
43
|
+
]),
|
|
44
|
+
)
|
|
45
|
+
const [resultText] = publicResolver.interface.decodeFunctionResult(
|
|
46
|
+
'text(bytes32,string)',
|
|
47
|
+
encodedText[0],
|
|
48
|
+
)
|
|
49
|
+
const [resultAddr] = publicResolver.interface.decodeFunctionResult(
|
|
50
|
+
'addr(bytes32,uint256)',
|
|
51
|
+
encodedAddr[0],
|
|
52
|
+
)
|
|
53
|
+
expect(resultText).toBe('bar')
|
|
54
|
+
expect(resultAddr).toBe(
|
|
55
|
+
'0x42D63ae25990889E35F215bC95884039Ba354115'.toLowerCase(),
|
|
56
|
+
)
|
|
57
|
+
})
|
|
58
|
+
})
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { ethers } from 'ethers'
|
|
2
|
+
import { ENS } from '..'
|
|
3
|
+
import { hexEncodeName } from '../utils/hexEncodedName'
|
|
4
|
+
import setup from './setup'
|
|
5
|
+
|
|
6
|
+
let ENSInstance: ENS
|
|
7
|
+
let revert: Awaited<ReturnType<typeof setup>>['revert']
|
|
8
|
+
let provider: ethers.providers.JsonRpcProvider
|
|
9
|
+
|
|
10
|
+
beforeAll(async () => {
|
|
11
|
+
;({ ENSInstance, revert, provider } = await setup())
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
afterAll(async () => {
|
|
15
|
+
await revert()
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
describe('setResolver', () => {
|
|
19
|
+
beforeEach(async () => {
|
|
20
|
+
await revert()
|
|
21
|
+
})
|
|
22
|
+
it('should return a transaction to the registry and set successfully', async () => {
|
|
23
|
+
const tx = await ENSInstance.setResolver(
|
|
24
|
+
'parthtejpal.eth',
|
|
25
|
+
'registry',
|
|
26
|
+
'0xAEfF4f4d8e2cB51854BEa2244B3C5Fb36b41C7fC',
|
|
27
|
+
)
|
|
28
|
+
expect(tx).toBeTruthy()
|
|
29
|
+
await tx.wait()
|
|
30
|
+
|
|
31
|
+
const universalResolver =
|
|
32
|
+
await ENSInstance.contracts!.getUniversalResolver()!
|
|
33
|
+
const [result] = await universalResolver.findResolver(
|
|
34
|
+
hexEncodeName('parthtejpal.eth'),
|
|
35
|
+
)
|
|
36
|
+
expect(result).toBe('0xAEfF4f4d8e2cB51854BEa2244B3C5Fb36b41C7fC')
|
|
37
|
+
})
|
|
38
|
+
it('should return a transaction to the namewrapper and set successfully', async () => {
|
|
39
|
+
const accounts = await provider.listAccounts()
|
|
40
|
+
const wrapNameTx = await ENSInstance.wrapName(
|
|
41
|
+
'parthtejpal.eth',
|
|
42
|
+
accounts[0],
|
|
43
|
+
)
|
|
44
|
+
await wrapNameTx.wait()
|
|
45
|
+
const tx = await ENSInstance.setResolver(
|
|
46
|
+
'parthtejpal.eth',
|
|
47
|
+
'nameWrapper',
|
|
48
|
+
'0xAEfF4f4d8e2cB51854BEa2244B3C5Fb36b41C7fC',
|
|
49
|
+
)
|
|
50
|
+
expect(tx).toBeTruthy()
|
|
51
|
+
await tx.wait()
|
|
52
|
+
|
|
53
|
+
const universalResolver =
|
|
54
|
+
await ENSInstance.contracts!.getUniversalResolver()!
|
|
55
|
+
const [result] = await universalResolver.findResolver(
|
|
56
|
+
hexEncodeName('parthtejpal.eth'),
|
|
57
|
+
)
|
|
58
|
+
expect(result).toBe('0xAEfF4f4d8e2cB51854BEa2244B3C5Fb36b41C7fC')
|
|
59
|
+
})
|
|
60
|
+
})
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { ethers } from 'ethers'
|
|
2
|
+
import { ENS } from '../'
|
|
3
|
+
import { ContractName, SupportedNetworkId } from '../contracts/types'
|
|
4
|
+
|
|
5
|
+
const addresses = {
|
|
6
|
+
BaseRegistrarImplementation: '0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85',
|
|
7
|
+
Multicall: '0xcA11bde05977b3631167028862bE2a173976CA11',
|
|
8
|
+
NameWrapper: '0xD7D9C568Bc4C2343ab286096e1F851D33eEf49Af',
|
|
9
|
+
PublicResolver: '0x3bAa5F3ea7bFCC8948c4140f233d72c11eBF0bdB',
|
|
10
|
+
ENSRegistryWithFallback: '0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e',
|
|
11
|
+
ReverseRegistrar: '0x4696E2f7D9f4CA187155ff50D93C00172181ddd5',
|
|
12
|
+
UniversalResolver: '0xAbCd01ddDa102B0C32e8C5a371D7480dFA559DC3',
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const createENS = (graphURI: string) =>
|
|
16
|
+
new ENS({
|
|
17
|
+
graphURI,
|
|
18
|
+
getContractAddress:
|
|
19
|
+
(_: SupportedNetworkId) => (contractName: ContractName) =>
|
|
20
|
+
addresses[contractName],
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
export default async (useReal?: boolean) => {
|
|
24
|
+
const graphURI = useReal
|
|
25
|
+
? 'https://api.thegraph.com/subgraphs/name/ensdomains/ensropsten'
|
|
26
|
+
: 'http://localhost:8000/subgraphs/name/graphprotocol/ens'
|
|
27
|
+
|
|
28
|
+
const provider = new ethers.providers.JsonRpcProvider(
|
|
29
|
+
'http://localhost:8545',
|
|
30
|
+
'ropsten',
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
let ENSInstance = createENS(graphURI)
|
|
34
|
+
await ENSInstance.setProvider(provider)
|
|
35
|
+
|
|
36
|
+
let snapshot = await provider.send('evm_snapshot', [])
|
|
37
|
+
|
|
38
|
+
const revert = async (customSnapshot?: any) => {
|
|
39
|
+
const snapshotToUse = customSnapshot || snapshot
|
|
40
|
+
await provider.send('evm_revert', [snapshotToUse])
|
|
41
|
+
if (parseInt(snapshot, 16) >= parseInt(snapshotToUse, 16)) {
|
|
42
|
+
snapshot = await provider.send('evm_snapshot', [])
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
ENSInstance = createENS(graphURI)
|
|
46
|
+
await ENSInstance.setProvider(provider)
|
|
47
|
+
return
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const createSnapshot = async () => await provider.send('evm_snapshot', [])
|
|
51
|
+
|
|
52
|
+
return { ENSInstance, revert, createSnapshot, provider }
|
|
53
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { ethers, utils } from 'ethers'
|
|
2
|
+
import { ENS } from '..'
|
|
3
|
+
import setup from './setup'
|
|
4
|
+
|
|
5
|
+
let ENSInstance: ENS
|
|
6
|
+
let revert: Awaited<ReturnType<typeof setup>>['revert']
|
|
7
|
+
let provider: ethers.providers.JsonRpcProvider
|
|
8
|
+
let accounts: string[]
|
|
9
|
+
|
|
10
|
+
beforeAll(async () => {
|
|
11
|
+
;({ ENSInstance, revert, provider } = await setup())
|
|
12
|
+
accounts = await provider.listAccounts()
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
afterAll(async () => {
|
|
16
|
+
await revert()
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
describe('transferName', () => {
|
|
20
|
+
beforeEach(async () => {
|
|
21
|
+
await revert()
|
|
22
|
+
})
|
|
23
|
+
it('should allow a transfer on the registrar', async () => {
|
|
24
|
+
const tx = await ENSInstance.transferName(
|
|
25
|
+
'parthtejpal.eth',
|
|
26
|
+
accounts[1],
|
|
27
|
+
'baseRegistrar',
|
|
28
|
+
{ addressOrIndex: 0 },
|
|
29
|
+
)
|
|
30
|
+
expect(tx).toBeTruthy()
|
|
31
|
+
await tx.wait()
|
|
32
|
+
|
|
33
|
+
const baseRegistrar = await ENSInstance.contracts!.getBaseRegistrar()!
|
|
34
|
+
const result = await baseRegistrar.ownerOf(
|
|
35
|
+
utils.solidityKeccak256(['string'], ['parthtejpal']),
|
|
36
|
+
)
|
|
37
|
+
expect(result).toBe(accounts[1])
|
|
38
|
+
})
|
|
39
|
+
it('should allow a transfer on the namewrapper', async () => {
|
|
40
|
+
const wrapNameTx = await ENSInstance.wrapName(
|
|
41
|
+
'parthtejpal.eth',
|
|
42
|
+
accounts[0],
|
|
43
|
+
)
|
|
44
|
+
await wrapNameTx.wait()
|
|
45
|
+
const tx = await ENSInstance.transferName(
|
|
46
|
+
'parthtejpal.eth',
|
|
47
|
+
accounts[1],
|
|
48
|
+
'nameWrapper',
|
|
49
|
+
{ addressOrIndex: 0 },
|
|
50
|
+
)
|
|
51
|
+
expect(tx).toBeTruthy()
|
|
52
|
+
await tx.wait()
|
|
53
|
+
|
|
54
|
+
const nameWrapper = await ENSInstance.contracts!.getNameWrapper()!
|
|
55
|
+
const result = await nameWrapper.ownerOf(utils.namehash('parthtejpal.eth'))
|
|
56
|
+
expect(result).toBe(accounts[1])
|
|
57
|
+
})
|
|
58
|
+
it('should allow a transfer on the registry', async () => {
|
|
59
|
+
const createSubnameTx = await ENSInstance.createSubname({
|
|
60
|
+
name: 'test.parthtejpal.eth',
|
|
61
|
+
contract: 'registry',
|
|
62
|
+
owner: accounts[0],
|
|
63
|
+
options: { addressOrIndex: accounts[0] },
|
|
64
|
+
})
|
|
65
|
+
await createSubnameTx.wait()
|
|
66
|
+
|
|
67
|
+
const tx = await ENSInstance.transferName(
|
|
68
|
+
'test.parthtejpal.eth',
|
|
69
|
+
accounts[1],
|
|
70
|
+
'registry',
|
|
71
|
+
{ addressOrIndex: accounts[0] },
|
|
72
|
+
)
|
|
73
|
+
expect(tx).toBeTruthy()
|
|
74
|
+
await tx.wait()
|
|
75
|
+
|
|
76
|
+
const registry = await ENSInstance.contracts!.getRegistry()!
|
|
77
|
+
const result = await registry.owner(utils.namehash('test.parthtejpal.eth'))
|
|
78
|
+
expect(result).toBe(accounts[1])
|
|
79
|
+
})
|
|
80
|
+
})
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { ethers, utils } from 'ethers'
|
|
2
|
+
import { ENS } from '..'
|
|
3
|
+
import setup from './setup'
|
|
4
|
+
|
|
5
|
+
let ENSInstance: ENS
|
|
6
|
+
let revert: Awaited<ReturnType<typeof setup>>['revert']
|
|
7
|
+
let provider: ethers.providers.JsonRpcProvider
|
|
8
|
+
let accounts: string[]
|
|
9
|
+
|
|
10
|
+
beforeAll(async () => {
|
|
11
|
+
;({ ENSInstance, revert, provider } = await setup())
|
|
12
|
+
accounts = await provider.listAccounts()
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
afterAll(async () => {
|
|
16
|
+
await revert()
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
describe('transferSubname', () => {
|
|
20
|
+
beforeEach(async () => {
|
|
21
|
+
await revert()
|
|
22
|
+
})
|
|
23
|
+
it('should allow transferring a subname on the registry', async () => {
|
|
24
|
+
const createSubnameTx = await ENSInstance.createSubname({
|
|
25
|
+
contract: 'registry',
|
|
26
|
+
name: 'test.parthtejpal.eth',
|
|
27
|
+
owner: accounts[0],
|
|
28
|
+
options: { addressOrIndex: 0 },
|
|
29
|
+
})
|
|
30
|
+
await createSubnameTx.wait()
|
|
31
|
+
|
|
32
|
+
const tx = await ENSInstance.transferSubname(
|
|
33
|
+
'test.parthtejpal.eth',
|
|
34
|
+
'registry',
|
|
35
|
+
accounts[1],
|
|
36
|
+
{ addressOrIndex: 0 },
|
|
37
|
+
)
|
|
38
|
+
expect(tx).toBeTruthy()
|
|
39
|
+
await tx.wait()
|
|
40
|
+
|
|
41
|
+
const registry = await ENSInstance.contracts!.getRegistry()!
|
|
42
|
+
const result = await registry.owner(utils.namehash('test.parthtejpal.eth'))
|
|
43
|
+
expect(result).toBe(accounts[1])
|
|
44
|
+
})
|
|
45
|
+
it('should allow transferring a subname on the nameWrapper', async () => {
|
|
46
|
+
const wrapNameTx = await ENSInstance.wrapName(
|
|
47
|
+
'parthtejpal.eth',
|
|
48
|
+
accounts[0],
|
|
49
|
+
)
|
|
50
|
+
await wrapNameTx.wait()
|
|
51
|
+
const createSubnameTx = await ENSInstance.createSubname({
|
|
52
|
+
contract: 'nameWrapper',
|
|
53
|
+
name: 'test.parthtejpal.eth',
|
|
54
|
+
owner: accounts[0],
|
|
55
|
+
options: { addressOrIndex: 0 },
|
|
56
|
+
})
|
|
57
|
+
await createSubnameTx.wait()
|
|
58
|
+
|
|
59
|
+
const tx = await ENSInstance.transferSubname(
|
|
60
|
+
'test.parthtejpal.eth',
|
|
61
|
+
'nameWrapper',
|
|
62
|
+
accounts[1],
|
|
63
|
+
{ addressOrIndex: 0 },
|
|
64
|
+
)
|
|
65
|
+
expect(tx).toBeTruthy()
|
|
66
|
+
await tx.wait()
|
|
67
|
+
|
|
68
|
+
const nameWrapper = await ENSInstance.contracts!.getNameWrapper()!
|
|
69
|
+
const result = await nameWrapper.ownerOf(
|
|
70
|
+
utils.namehash('test.parthtejpal.eth'),
|
|
71
|
+
)
|
|
72
|
+
expect(result).toBe(accounts[1])
|
|
73
|
+
})
|
|
74
|
+
})
|