@ensdomains/ensjs 3.0.0-alpha.2 → 3.0.0-alpha.20
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/dist/cjs/GqlManager.js +105 -37
- package/dist/cjs/contracts/baseRegistrar.js +24 -3
- package/dist/cjs/contracts/ethRegistrarController.js +24 -3
- package/dist/cjs/contracts/getContractAddress.js +61 -43
- package/dist/cjs/contracts/index.js +76 -32
- package/dist/cjs/contracts/multicall.js +24 -21
- package/dist/cjs/contracts/nameWrapper.js +24 -3
- package/dist/cjs/contracts/publicResolver.js +24 -3
- package/dist/cjs/contracts/registry.js +24 -3
- package/dist/cjs/contracts/reverseRegistrar.js +24 -3
- package/dist/cjs/contracts/types.js +15 -1
- package/dist/cjs/contracts/universalResolver.js +24 -3
- package/dist/cjs/functions/batch.js +42 -15
- package/dist/cjs/functions/batchWrappers.js +97 -67
- package/dist/cjs/functions/burnFuses.js +64 -14
- package/dist/cjs/functions/commitName.js +47 -0
- package/dist/cjs/functions/createSubname.js +79 -38
- package/dist/cjs/functions/deleteSubname.js +30 -4
- package/dist/cjs/functions/getDNSOwner.js +82 -0
- package/dist/cjs/functions/getExpiry.js +110 -41
- package/dist/cjs/functions/getFuses.js +63 -56
- package/dist/cjs/functions/getHistory.js +109 -173
- package/dist/cjs/functions/getName.js +51 -28
- package/dist/cjs/functions/getNames.js +118 -104
- package/dist/cjs/functions/getOwner.js +147 -125
- package/dist/cjs/functions/getPrice.js +71 -43
- package/dist/cjs/functions/getProfile.js +421 -265
- package/dist/cjs/functions/getRecords.js +29 -9
- package/dist/cjs/functions/getResolver.js +41 -19
- package/dist/cjs/functions/getSpecificRecord.js +188 -261
- package/dist/cjs/functions/getSubnames.js +83 -63
- package/dist/cjs/functions/initialGetters.js +46 -37
- package/dist/cjs/functions/registerName.js +42 -0
- package/dist/cjs/functions/renewName.js +33 -0
- package/dist/cjs/functions/setName.js +40 -15
- package/dist/cjs/functions/setRecord.js +55 -0
- package/dist/cjs/functions/setRecords.js +49 -20
- package/dist/cjs/functions/setResolver.js +43 -23
- package/dist/cjs/functions/transferName.js +60 -30
- package/dist/cjs/functions/transferSubname.js +60 -24
- package/dist/cjs/functions/unwrapName.js +49 -25
- package/dist/cjs/functions/wrapName.js +121 -57
- package/dist/cjs/generated/BaseRegistrarImplementation.js +15 -1
- package/dist/cjs/generated/DNSRegistrar.js +15 -1
- package/dist/cjs/generated/DNSSECImpl.js +15 -1
- package/dist/cjs/generated/DefaultReverseResolver.js +15 -1
- package/dist/cjs/generated/ENSRegistry.js +15 -1
- package/dist/cjs/generated/ETHRegistrarController.js +15 -1
- package/dist/cjs/generated/Multicall.js +15 -1
- package/dist/cjs/generated/NameWrapper.js +15 -1
- package/dist/cjs/generated/P256SHA256Algorithm.js +15 -1
- package/dist/cjs/generated/PublicResolver.js +15 -1
- package/dist/cjs/generated/RSASHA1Algorithm.js +15 -1
- package/dist/cjs/generated/RSASHA256Algorithm.js +15 -1
- package/dist/cjs/generated/ReverseRegistrar.js +15 -1
- package/dist/cjs/generated/Root.js +15 -1
- package/dist/cjs/generated/SHA1Digest.js +15 -1
- package/dist/cjs/generated/SHA1NSEC3Digest.js +15 -1
- package/dist/cjs/generated/SHA256Digest.js +15 -1
- package/dist/cjs/generated/StaticMetadataService.js +15 -1
- package/dist/cjs/generated/TLDPublicSuffixList.js +15 -1
- package/dist/cjs/generated/UniversalResolver.js +15 -1
- package/dist/cjs/generated/common.js +15 -1
- package/dist/cjs/generated/factories/BaseRegistrarImplementation__factory.js +784 -764
- package/dist/cjs/generated/factories/DNSRegistrar__factory.js +281 -288
- package/dist/cjs/generated/factories/DNSSECImpl__factory.js +485 -492
- package/dist/cjs/generated/factories/DefaultReverseResolver__factory.js +102 -82
- package/dist/cjs/generated/factories/ENSRegistry__factory.js +447 -431
- package/dist/cjs/generated/factories/ETHRegistrarController__factory.js +534 -504
- package/dist/cjs/generated/factories/Multicall__factory.js +457 -441
- package/dist/cjs/generated/factories/NameWrapper__factory.js +1341 -1194
- package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.js +60 -67
- package/dist/cjs/generated/factories/PublicResolver__factory.js +901 -885
- package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.js +60 -67
- package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.js +60 -67
- package/dist/cjs/generated/factories/ReverseRegistrar__factory.js +349 -333
- package/dist/cjs/generated/factories/Root__factory.js +253 -237
- package/dist/cjs/generated/factories/SHA1Digest__factory.js +55 -62
- package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.js +60 -67
- package/dist/cjs/generated/factories/SHA256Digest__factory.js +55 -62
- package/dist/cjs/generated/factories/StaticMetadataService__factory.js +64 -44
- package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.js +50 -57
- package/dist/cjs/generated/factories/UniversalResolver__factory.js +215 -199
- package/dist/cjs/generated/factories/index.js +61 -17
- package/dist/cjs/generated/index.js +68 -37
- package/dist/cjs/index.js +318 -214
- package/dist/cjs/utils/contentHash.js +145 -142
- package/dist/cjs/utils/createReverseNode.js +23 -2
- package/dist/cjs/utils/format.js +27 -8
- package/dist/cjs/utils/fuses.js +64 -13
- package/dist/cjs/utils/generateFuseInput.js +37 -16
- package/dist/cjs/utils/hexEncodedName.js +29 -7
- package/dist/cjs/utils/labels.js +99 -83
- package/dist/cjs/utils/makeHashIndexes.js +27 -6
- package/dist/cjs/utils/normalise.js +49 -22
- package/dist/cjs/utils/recordHelpers.js +84 -39
- package/dist/cjs/utils/registerHelpers.js +114 -46
- package/dist/cjs/utils/singleCall.js +23 -6
- package/dist/cjs/utils/validation.js +76 -63
- package/dist/cjs/utils/wrapperExpiry.js +44 -0
- package/dist/cjs/utils/writeTx.js +25 -0
- package/dist/esm/GqlManager.mjs +85 -0
- package/dist/esm/contracts/baseRegistrar.mjs +6 -0
- package/dist/esm/contracts/ethRegistrarController.mjs +6 -0
- package/dist/esm/contracts/getContractAddress.mjs +45 -0
- package/dist/esm/contracts/index.mjs +56 -0
- package/dist/esm/contracts/multicall.mjs +6 -0
- package/dist/esm/contracts/nameWrapper.mjs +6 -0
- package/dist/esm/contracts/publicResolver.mjs +6 -0
- package/dist/esm/contracts/registry.mjs +6 -0
- package/dist/esm/contracts/reverseRegistrar.mjs +6 -0
- package/dist/esm/contracts/types.mjs +0 -0
- package/dist/esm/contracts/universalResolver.mjs +6 -0
- package/dist/esm/functions/batch.mjs +29 -0
- package/dist/esm/functions/batchWrappers.mjs +82 -0
- package/dist/esm/functions/burnFuses.mjs +52 -0
- package/dist/esm/functions/commitName.mjs +28 -0
- package/dist/esm/functions/createSubname.mjs +60 -0
- package/dist/esm/functions/deleteSubname.mjs +13 -0
- package/dist/esm/functions/getDNSOwner.mjs +57 -0
- package/dist/esm/functions/getExpiry.mjs +95 -0
- package/dist/esm/functions/getFuses.mjs +50 -0
- package/dist/esm/functions/getHistory.mjs +196 -0
- package/dist/esm/functions/getName.mjs +38 -0
- package/dist/esm/functions/getNames.mjs +217 -0
- package/dist/esm/functions/getOwner.mjs +143 -0
- package/dist/esm/functions/getPrice.mjs +59 -0
- package/dist/esm/functions/getProfile.mjs +439 -0
- package/dist/esm/functions/getRecords.mjs +12 -0
- package/dist/esm/functions/getResolver.mjs +27 -0
- package/dist/esm/functions/getSpecificRecord.mjs +176 -0
- package/dist/esm/functions/getSubnames.mjs +155 -0
- package/dist/esm/functions/initialGetters.mjs +23 -0
- package/dist/esm/functions/registerName.mjs +25 -0
- package/dist/esm/functions/renewName.mjs +14 -0
- package/dist/esm/functions/setName.mjs +23 -0
- package/dist/esm/functions/setRecord.mjs +36 -0
- package/dist/esm/functions/setRecords.mjs +32 -0
- package/dist/esm/functions/setResolver.mjs +29 -0
- package/dist/esm/functions/transferName.mjs +45 -0
- package/dist/esm/functions/transferSubname.mjs +45 -0
- package/dist/esm/functions/unwrapName.mjs +33 -0
- package/dist/esm/functions/wrapName.mjs +103 -0
- package/dist/esm/generated/BaseRegistrarImplementation.mjs +0 -0
- package/dist/esm/generated/DNSRegistrar.mjs +0 -0
- package/dist/esm/generated/DNSSECImpl.mjs +0 -0
- package/dist/esm/generated/DefaultReverseResolver.mjs +0 -0
- package/dist/esm/generated/ENSRegistry.mjs +0 -0
- package/dist/esm/generated/ETHRegistrarController.mjs +0 -0
- package/dist/esm/generated/Multicall.mjs +0 -0
- package/dist/esm/generated/NameWrapper.mjs +0 -0
- package/dist/esm/generated/P256SHA256Algorithm.mjs +0 -0
- package/dist/esm/generated/PublicResolver.mjs +0 -0
- package/dist/esm/generated/RSASHA1Algorithm.mjs +0 -0
- package/dist/esm/generated/RSASHA256Algorithm.mjs +0 -0
- package/dist/esm/generated/ReverseRegistrar.mjs +0 -0
- package/dist/esm/generated/Root.mjs +0 -0
- package/dist/esm/generated/SHA1Digest.mjs +0 -0
- package/dist/esm/generated/SHA1NSEC3Digest.mjs +0 -0
- package/dist/esm/generated/SHA256Digest.mjs +0 -0
- package/dist/esm/generated/StaticMetadataService.mjs +0 -0
- package/dist/esm/generated/TLDPublicSuffixList.mjs +0 -0
- package/dist/esm/generated/UniversalResolver.mjs +0 -0
- package/dist/esm/generated/common.mjs +0 -0
- package/dist/esm/generated/factories/BaseRegistrarImplementation__factory.mjs +778 -0
- package/dist/esm/generated/factories/DNSRegistrar__factory.mjs +277 -0
- package/dist/esm/generated/factories/DNSSECImpl__factory.mjs +482 -0
- package/dist/esm/generated/factories/DefaultReverseResolver__factory.mjs +95 -0
- package/dist/esm/generated/factories/ENSRegistry__factory.mjs +443 -0
- package/dist/esm/generated/factories/ETHRegistrarController__factory.mjs +529 -0
- package/dist/esm/generated/factories/Multicall__factory.mjs +461 -0
- package/dist/esm/generated/factories/NameWrapper__factory.mjs +1335 -0
- package/dist/esm/generated/factories/P256SHA256Algorithm__factory.mjs +52 -0
- package/dist/esm/generated/factories/PublicResolver__factory.mjs +896 -0
- package/dist/esm/generated/factories/RSASHA1Algorithm__factory.mjs +52 -0
- package/dist/esm/generated/factories/RSASHA256Algorithm__factory.mjs +52 -0
- package/dist/esm/generated/factories/ReverseRegistrar__factory.mjs +344 -0
- package/dist/esm/generated/factories/Root__factory.mjs +247 -0
- package/dist/esm/generated/factories/SHA1Digest__factory.mjs +47 -0
- package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.mjs +52 -0
- package/dist/esm/generated/factories/SHA256Digest__factory.mjs +47 -0
- package/dist/esm/generated/factories/StaticMetadataService__factory.mjs +57 -0
- package/dist/esm/generated/factories/TLDPublicSuffixList__factory.mjs +42 -0
- package/dist/esm/generated/factories/UniversalResolver__factory.mjs +208 -0
- package/dist/esm/generated/factories/index.mjs +43 -0
- package/dist/esm/generated/index.mjs +45 -0
- package/dist/esm/index.mjs +303 -0
- package/dist/esm/utils/contentHash.mjs +142 -0
- package/dist/esm/utils/createReverseNode.mjs +5 -0
- package/dist/esm/utils/format.mjs +9 -0
- package/dist/esm/utils/fuses.mjs +56 -0
- package/dist/esm/utils/generateFuseInput.mjs +15 -0
- package/dist/esm/utils/hexEncodedName.mjs +6 -0
- package/dist/esm/utils/labels.mjs +109 -0
- package/dist/esm/utils/makeHashIndexes.mjs +10 -0
- package/dist/esm/utils/normalise.mjs +30 -0
- package/dist/esm/utils/recordHelpers.mjs +70 -0
- package/dist/esm/utils/registerHelpers.mjs +95 -0
- package/dist/esm/utils/singleCall.mjs +5 -0
- package/dist/esm/utils/validation.mjs +67 -0
- package/dist/esm/utils/wrapperExpiry.mjs +25 -0
- package/dist/esm/utils/writeTx.mjs +6 -0
- package/dist/types/GqlManager.d.ts +11 -0
- package/dist/{cjs → types}/contracts/baseRegistrar.d.ts +0 -0
- package/dist/{cjs → types}/contracts/ethRegistrarController.d.ts +1 -1
- package/dist/{cjs → types}/contracts/getContractAddress.d.ts +0 -0
- package/dist/types/contracts/index.d.ts +16 -0
- package/dist/{cjs → types}/contracts/multicall.d.ts +0 -0
- package/dist/{esm → types}/contracts/nameWrapper.d.ts +1 -1
- package/dist/{esm → types}/contracts/publicResolver.d.ts +1 -1
- package/dist/{cjs → types}/contracts/registry.d.ts +0 -0
- package/dist/{cjs → types}/contracts/reverseRegistrar.d.ts +1 -1
- package/dist/{cjs → types}/contracts/types.d.ts +0 -0
- package/dist/{cjs → types}/contracts/universalResolver.d.ts +1 -1
- package/dist/{cjs → types}/functions/batch.d.ts +0 -0
- package/dist/{esm → types}/functions/batchWrappers.d.ts +2 -2
- package/dist/types/functions/burnFuses.d.ts +13 -0
- package/dist/types/functions/commitName.d.ts +26 -0
- package/dist/{esm → types}/functions/createSubname.d.ts +3 -5
- package/dist/types/functions/deleteSubname.d.ts +4 -0
- package/dist/types/functions/getDNSOwner.d.ts +7 -0
- package/dist/types/functions/getExpiry.d.ts +19 -0
- package/dist/{cjs → types}/functions/getFuses.d.ts +5 -6
- package/dist/types/functions/getHistory.d.ts +28 -0
- package/dist/{cjs → types}/functions/getName.d.ts +2 -2
- package/dist/{cjs → types}/functions/getNames.d.ts +0 -0
- package/dist/{cjs → types}/functions/getOwner.d.ts +0 -0
- package/dist/{cjs → types}/functions/getPrice.d.ts +0 -0
- package/dist/{esm → types}/functions/getProfile.d.ts +4 -1
- package/dist/{esm → types}/functions/getRecords.d.ts +1 -0
- package/dist/{cjs → types}/functions/getResolver.d.ts +0 -0
- package/dist/{esm → types}/functions/getSpecificRecord.d.ts +4 -4
- package/dist/{esm → types}/functions/getSubnames.d.ts +1 -1
- package/dist/{cjs → types}/functions/initialGetters.d.ts +0 -0
- package/dist/types/functions/registerName.d.ts +11 -0
- package/dist/types/functions/renewName.d.ts +6 -0
- package/dist/types/functions/setName.d.ts +5 -0
- package/dist/types/functions/setRecord.d.ts +18 -0
- package/dist/types/functions/setRecords.d.ts +6 -0
- package/dist/types/functions/setResolver.d.ts +5 -0
- package/dist/types/functions/transferName.d.ts +6 -0
- package/dist/types/functions/transferSubname.d.ts +15 -0
- package/dist/types/functions/unwrapName.d.ts +5 -0
- package/dist/types/functions/wrapName.d.ts +10 -0
- package/dist/types/generated/BaseRegistrarImplementation.d.ts +508 -0
- package/dist/{cjs → types}/generated/DNSRegistrar.d.ts +68 -64
- package/dist/{esm → types}/generated/DNSSECImpl.d.ts +111 -111
- package/dist/{cjs → types}/generated/DefaultReverseResolver.d.ts +17 -17
- package/dist/types/generated/ENSRegistry.d.ts +274 -0
- package/dist/{esm → types}/generated/ETHRegistrarController.d.ts +111 -109
- package/dist/{esm → types}/generated/Multicall.d.ts +60 -60
- package/dist/types/generated/NameWrapper.d.ts +814 -0
- package/dist/{cjs → types}/generated/P256SHA256Algorithm.d.ts +11 -7
- package/dist/types/generated/PublicResolver.d.ts +566 -0
- package/dist/{esm → types}/generated/RSASHA1Algorithm.d.ts +11 -7
- package/dist/{cjs → types}/generated/RSASHA256Algorithm.d.ts +11 -7
- package/dist/{esm → types}/generated/ReverseRegistrar.d.ts +112 -103
- package/dist/types/generated/Root.d.ts +173 -0
- package/dist/{cjs → types}/generated/SHA1Digest.d.ts +7 -7
- package/dist/{esm → types}/generated/SHA1NSEC3Digest.d.ts +11 -7
- package/dist/{cjs → types}/generated/SHA256Digest.d.ts +7 -7
- package/dist/{cjs → types}/generated/StaticMetadataService.d.ts +7 -7
- package/dist/{esm → types}/generated/TLDPublicSuffixList.d.ts +7 -7
- package/dist/types/generated/UniversalResolver.d.ts +82 -0
- package/dist/{esm → types}/generated/common.d.ts +1 -0
- package/dist/{cjs → types}/generated/factories/BaseRegistrarImplementation__factory.d.ts +0 -0
- package/dist/{esm/generated/factories/ETHRegistrarController__factory.d.ts → types/generated/factories/DNSRegistrar__factory.d.ts} +15 -14
- package/dist/{esm/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.d.ts → types/generated/factories/DNSSECImpl__factory.d.ts} +9 -9
- package/dist/{cjs → types}/generated/factories/DefaultReverseResolver__factory.d.ts +0 -0
- package/dist/{cjs → types}/generated/factories/ENSRegistry__factory.d.ts +0 -0
- package/dist/{cjs → types}/generated/factories/ETHRegistrarController__factory.d.ts +0 -0
- package/dist/{cjs → types}/generated/factories/Multicall__factory.d.ts +0 -0
- package/dist/{cjs → types}/generated/factories/NameWrapper__factory.d.ts +0 -0
- package/dist/types/generated/factories/P256SHA256Algorithm__factory.d.ts +22 -0
- package/dist/{cjs → types}/generated/factories/PublicResolver__factory.d.ts +0 -0
- package/dist/types/generated/factories/RSASHA1Algorithm__factory.d.ts +22 -0
- package/dist/types/generated/factories/RSASHA256Algorithm__factory.d.ts +22 -0
- package/dist/{cjs → types}/generated/factories/ReverseRegistrar__factory.d.ts +0 -0
- package/dist/{cjs → types}/generated/factories/Root__factory.d.ts +0 -0
- package/dist/types/generated/factories/SHA1Digest__factory.d.ts +22 -0
- package/dist/types/generated/factories/SHA1NSEC3Digest__factory.d.ts +22 -0
- package/dist/types/generated/factories/SHA256Digest__factory.d.ts +22 -0
- package/dist/{cjs → types}/generated/factories/StaticMetadataService__factory.d.ts +0 -0
- package/dist/types/generated/factories/TLDPublicSuffixList__factory.d.ts +22 -0
- package/dist/{cjs → types}/generated/factories/UniversalResolver__factory.d.ts +0 -0
- package/dist/types/generated/factories/index.d.ts +20 -0
- package/dist/types/generated/index.d.ts +41 -0
- package/dist/{esm → types}/index.d.ts +91 -106
- package/dist/{cjs → types}/utils/contentHash.d.ts +0 -0
- package/dist/{cjs → types}/utils/createReverseNode.d.ts +0 -0
- package/dist/{cjs → types}/utils/format.d.ts +0 -0
- package/dist/types/utils/fuses.d.ts +43 -0
- package/dist/{cjs → types}/utils/generateFuseInput.d.ts +0 -0
- package/dist/{cjs → types}/utils/hexEncodedName.d.ts +0 -0
- package/dist/{cjs → types}/utils/labels.d.ts +0 -0
- package/dist/{cjs → types}/utils/makeHashIndexes.d.ts +0 -0
- package/dist/types/utils/normalise.d.ts +2 -0
- package/dist/{esm → types}/utils/recordHelpers.d.ts +3 -0
- package/dist/types/utils/registerHelpers.d.ts +54 -0
- package/dist/{cjs → types}/utils/singleCall.d.ts +0 -0
- package/dist/{cjs → types}/utils/validation.d.ts +0 -0
- package/dist/types/utils/wrapperExpiry.d.ts +5 -0
- package/dist/types/utils/writeTx.d.ts +21 -0
- package/package.json +71 -32
- package/src/@types/@ensdomains/ens-contracts.d.ts +1 -1
- package/src/@types/dns-packet/index.d.ts +114 -0
- package/src/ABIs/Multicall.json +452 -0
- package/src/GqlManager.test.ts +173 -0
- package/src/GqlManager.ts +90 -2
- package/src/contracts/getContractAddress.ts +2 -0
- package/src/contracts/index.ts +9 -1
- package/src/contracts/multicall.ts +0 -19
- package/src/functions/batch.test.ts +36 -0
- package/src/functions/batch.ts +3 -3
- package/src/functions/batchWrappers.test.ts +31 -0
- package/src/functions/batchWrappers.ts +2 -2
- package/src/functions/burnFuses.test.ts +148 -0
- package/src/functions/burnFuses.ts +67 -11
- package/src/functions/commitName.test.ts +61 -0
- package/src/functions/commitName.ts +36 -0
- package/src/{tests → functions}/createSubname.test.ts +11 -19
- package/src/functions/createSubname.ts +20 -15
- package/src/functions/deleteSubname.test.ts +49 -0
- package/src/functions/deleteSubname.ts +10 -12
- package/src/functions/getDNSOwner.test.ts +119 -0
- package/src/functions/getDNSOwner.ts +61 -0
- package/src/functions/getExpiry.test.ts +55 -0
- package/src/functions/getExpiry.ts +87 -9
- package/src/functions/getFuses.test.ts +96 -0
- package/src/functions/getFuses.ts +23 -44
- package/src/functions/getHistory.test.ts +29 -0
- package/src/functions/getHistory.ts +27 -141
- package/src/{tests → functions}/getName.test.ts +11 -11
- package/src/functions/getName.ts +2 -2
- package/src/functions/getNames.test.ts +276 -0
- package/src/functions/getNames.ts +25 -30
- package/src/functions/getOwner.test.ts +67 -0
- package/src/functions/getOwner.ts +16 -10
- package/src/functions/getPrice.ts +2 -2
- package/src/{tests → functions}/getProfile.test.ts +50 -27
- package/src/functions/getProfile.ts +161 -96
- package/src/functions/getRecords.ts +2 -1
- package/src/functions/getResolver.test.ts +15 -0
- package/src/{tests → functions}/getSpecificRecord.test.ts +21 -18
- package/src/functions/getSpecificRecord.ts +18 -147
- package/src/functions/getSubnames.test.ts +35 -0
- package/src/functions/getSubnames.ts +6 -6
- package/src/{tests → functions}/makeCommitment.test.ts +6 -6
- package/src/{tests → functions}/normalise.test.ts +0 -0
- package/src/functions/registerName.test.ts +59 -0
- package/src/functions/registerName.ts +38 -0
- package/src/functions/renewName.test.ts +44 -0
- package/src/functions/renewName.ts +22 -0
- package/src/{tests → functions}/setName.test.ts +16 -16
- package/src/functions/setName.ts +15 -17
- package/src/functions/setRecord.test.ts +103 -0
- package/src/functions/setRecord.ts +59 -0
- package/src/{tests → functions}/setRecords.test.ts +19 -16
- package/src/functions/setRecords.ts +19 -13
- package/src/{tests → functions}/setResolver.test.ts +17 -25
- package/src/functions/setResolver.ts +15 -20
- package/src/functions/transferName.test.ts +65 -0
- package/src/functions/transferName.ts +17 -21
- package/src/functions/transferSubname.test.ts +55 -0
- package/src/functions/transferSubname.ts +39 -14
- package/src/functions/unwrapName.test.ts +53 -0
- package/src/functions/unwrapName.ts +23 -20
- package/src/functions/wrapName.test.ts +141 -0
- package/src/functions/wrapName.ts +71 -58
- package/src/generated/BaseRegistrarImplementation.ts +382 -296
- package/src/generated/DNSRegistrar.ts +103 -89
- package/src/generated/DNSSECImpl.ts +180 -149
- package/src/generated/DefaultReverseResolver.ts +37 -21
- package/src/generated/ENSRegistry.ts +257 -184
- package/src/generated/ETHRegistrarController.ts +252 -191
- package/src/generated/Multicall.ts +73 -57
- package/src/generated/NameWrapper.ts +979 -649
- package/src/generated/P256SHA256Algorithm.ts +21 -16
- package/src/generated/PublicResolver.ts +452 -362
- package/src/generated/RSASHA1Algorithm.ts +21 -16
- package/src/generated/RSASHA256Algorithm.ts +21 -16
- package/src/generated/ReverseRegistrar.ts +193 -141
- package/src/generated/Root.ts +146 -86
- package/src/generated/SHA1Digest.ts +12 -11
- package/src/generated/SHA1NSEC3Digest.ts +21 -16
- package/src/generated/SHA256Digest.ts +12 -11
- package/src/generated/StaticMetadataService.ts +22 -6
- package/src/generated/TLDPublicSuffixList.ts +10 -6
- package/src/generated/UniversalResolver.ts +44 -40
- package/src/generated/common.ts +2 -0
- package/src/generated/factories/DNSRegistrar__factory.ts +4 -56
- package/src/generated/factories/DNSSECImpl__factory.ts +4 -49
- package/src/generated/factories/ETHRegistrarController__factory.ts +14 -4
- package/src/generated/factories/NameWrapper__factory.ts +210 -79
- package/src/generated/factories/P256SHA256Algorithm__factory.ts +4 -40
- package/src/generated/factories/RSASHA1Algorithm__factory.ts +4 -40
- package/src/generated/factories/RSASHA256Algorithm__factory.ts +4 -40
- package/src/generated/factories/SHA1Digest__factory.ts +4 -40
- package/src/generated/factories/SHA1NSEC3Digest__factory.ts +4 -40
- package/src/generated/factories/SHA256Digest__factory.ts +4 -40
- package/src/generated/factories/TLDPublicSuffixList__factory.ts +4 -40
- package/src/generated/factories/index.ts +14 -0
- package/src/generated/index.ts +29 -1
- package/src/index.ts +168 -63
- package/src/utils/contentHash.ts +24 -22
- package/src/utils/createReverseNode.ts +1 -1
- package/src/utils/fuses.ts +52 -4
- package/src/utils/labels.ts +6 -4
- package/src/utils/normalise.ts +11 -5
- package/src/utils/recordHelpers.ts +52 -20
- package/src/utils/registerHelpers.ts +112 -53
- package/src/utils/validation.ts +8 -9
- package/src/utils/wrapperExpiry.ts +29 -0
- package/src/utils/writeTx.ts +16 -0
- package/dist/cjs/GqlManager.d.ts +0 -6
- package/dist/cjs/contracts/doNotCallOnChainUniversalResolverProxy.d.ts +0 -3
- package/dist/cjs/contracts/doNotCallOnChainUniversalResolverProxy.js +0 -4
- package/dist/cjs/contracts/index.d.ts +0 -16
- package/dist/cjs/contracts/nameWrapper.d.ts +0 -3
- package/dist/cjs/contracts/publicResolver.d.ts +0 -3
- package/dist/cjs/functions/batchWrappers.d.ts +0 -29
- package/dist/cjs/functions/burnFuses.d.ts +0 -3
- package/dist/cjs/functions/createSubname.d.ts +0 -19
- package/dist/cjs/functions/deleteSubname.d.ts +0 -4
- package/dist/cjs/functions/getExpiry.d.ts +0 -12
- package/dist/cjs/functions/getHistory.d.ts +0 -54
- package/dist/cjs/functions/getProfile.d.ts +0 -30
- package/dist/cjs/functions/getRecords.d.ts +0 -32
- package/dist/cjs/functions/getSpecificRecord.d.ts +0 -73
- package/dist/cjs/functions/getSubnames.d.ts +0 -26
- package/dist/cjs/functions/setName.d.ts +0 -4
- package/dist/cjs/functions/setRecords.d.ts +0 -3
- package/dist/cjs/functions/setResolver.d.ts +0 -4
- package/dist/cjs/functions/transferName.d.ts +0 -5
- package/dist/cjs/functions/transferSubname.d.ts +0 -5
- package/dist/cjs/functions/unwrapName.d.ts +0 -4
- package/dist/cjs/functions/wrapName.d.ts +0 -6
- package/dist/cjs/generated/BaseRegistrarImplementation.d.ts +0 -487
- package/dist/cjs/generated/DNSSECImpl.d.ts +0 -402
- package/dist/cjs/generated/DoNotCallOnChainUniversalResolverProxy.d.ts +0 -144
- package/dist/cjs/generated/DoNotCallOnChainUniversalResolverProxy.js +0 -2
- package/dist/cjs/generated/ENSRegistry.d.ts +0 -259
- package/dist/cjs/generated/ETHRegistrarController.d.ts +0 -319
- package/dist/cjs/generated/Multicall.d.ts +0 -292
- package/dist/cjs/generated/NameWrapper.d.ts +0 -675
- package/dist/cjs/generated/PublicResolver.d.ts +0 -542
- package/dist/cjs/generated/RSASHA1Algorithm.d.ts +0 -42
- package/dist/cjs/generated/ReverseRegistrar.d.ts +0 -259
- package/dist/cjs/generated/Root.d.ts +0 -173
- package/dist/cjs/generated/SHA1NSEC3Digest.d.ts +0 -72
- package/dist/cjs/generated/TLDPublicSuffixList.d.ts +0 -42
- package/dist/cjs/generated/UniversalResolver.d.ts +0 -82
- package/dist/cjs/generated/common.d.ts +0 -21
- package/dist/cjs/generated/factories/DNSRegistrar__factory.d.ts +0 -79
- package/dist/cjs/generated/factories/DNSSECImpl__factory.d.ts +0 -68
- package/dist/cjs/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.d.ts +0 -56
- package/dist/cjs/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.js +0 -171
- package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.d.ts +0 -34
- package/dist/cjs/generated/factories/RSASHA1Algorithm__factory.d.ts +0 -34
- package/dist/cjs/generated/factories/RSASHA256Algorithm__factory.d.ts +0 -34
- package/dist/cjs/generated/factories/SHA1Digest__factory.d.ts +0 -34
- package/dist/cjs/generated/factories/SHA1NSEC3Digest__factory.d.ts +0 -34
- package/dist/cjs/generated/factories/SHA256Digest__factory.d.ts +0 -34
- package/dist/cjs/generated/factories/TLDPublicSuffixList__factory.d.ts +0 -34
- package/dist/cjs/generated/factories/index.d.ts +0 -6
- package/dist/cjs/generated/index.d.ts +0 -13
- package/dist/cjs/index.d.ts +0 -470
- package/dist/cjs/utils/fuses.d.ts +0 -20
- package/dist/cjs/utils/normalise.d.ts +0 -2
- package/dist/cjs/utils/recordHelpers.d.ts +0 -13
- package/dist/cjs/utils/registerHelpers.d.ts +0 -26
- package/dist/esm/GqlManager.d.ts +0 -6
- package/dist/esm/GqlManager.js +0 -18
- package/dist/esm/contracts/baseRegistrar.d.ts +0 -3
- package/dist/esm/contracts/baseRegistrar.js +0 -2
- package/dist/esm/contracts/doNotCallOnChainUniversalResolverProxy.d.ts +0 -3
- package/dist/esm/contracts/doNotCallOnChainUniversalResolverProxy.js +0 -2
- package/dist/esm/contracts/ethRegistrarController.d.ts +0 -3
- package/dist/esm/contracts/ethRegistrarController.js +0 -2
- package/dist/esm/contracts/getContractAddress.d.ts +0 -3
- package/dist/esm/contracts/getContractAddress.js +0 -42
- package/dist/esm/contracts/index.d.ts +0 -16
- package/dist/esm/contracts/index.js +0 -29
- package/dist/esm/contracts/multicall.d.ts +0 -3
- package/dist/esm/contracts/multicall.js +0 -20
- package/dist/esm/contracts/nameWrapper.js +0 -2
- package/dist/esm/contracts/publicResolver.js +0 -2
- package/dist/esm/contracts/registry.d.ts +0 -3
- package/dist/esm/contracts/registry.js +0 -2
- package/dist/esm/contracts/reverseRegistrar.d.ts +0 -3
- package/dist/esm/contracts/reverseRegistrar.js +0 -2
- package/dist/esm/contracts/types.d.ts +0 -2
- package/dist/esm/contracts/types.js +0 -1
- package/dist/esm/contracts/universalResolver.d.ts +0 -3
- package/dist/esm/contracts/universalResolver.js +0 -2
- package/dist/esm/functions/batch.d.ts +0 -9
- package/dist/esm/functions/batch.js +0 -19
- package/dist/esm/functions/batchWrappers.js +0 -68
- package/dist/esm/functions/burnFuses.d.ts +0 -3
- package/dist/esm/functions/burnFuses.js +0 -12
- package/dist/esm/functions/createSubname.js +0 -38
- package/dist/esm/functions/deleteSubname.d.ts +0 -4
- package/dist/esm/functions/deleteSubname.js +0 -3
- package/dist/esm/functions/getExpiry.d.ts +0 -12
- package/dist/esm/functions/getExpiry.js +0 -43
- package/dist/esm/functions/getFuses.d.ts +0 -17
- package/dist/esm/functions/getFuses.js +0 -60
- package/dist/esm/functions/getHistory.d.ts +0 -54
- package/dist/esm/functions/getHistory.js +0 -273
- package/dist/esm/functions/getName.d.ts +0 -19
- package/dist/esm/functions/getName.js +0 -32
- package/dist/esm/functions/getNames.d.ts +0 -40
- package/dist/esm/functions/getNames.js +0 -220
- package/dist/esm/functions/getOwner.d.ts +0 -14
- package/dist/esm/functions/getOwner.js +0 -138
- package/dist/esm/functions/getPrice.d.ts +0 -13
- package/dist/esm/functions/getPrice.js +0 -48
- package/dist/esm/functions/getProfile.js +0 -299
- package/dist/esm/functions/getRecords.js +0 -8
- package/dist/esm/functions/getResolver.d.ts +0 -9
- package/dist/esm/functions/getResolver.js +0 -22
- package/dist/esm/functions/getSpecificRecord.js +0 -265
- package/dist/esm/functions/getSubnames.js +0 -152
- package/dist/esm/functions/initialGetters.d.ts +0 -11
- package/dist/esm/functions/initialGetters.js +0 -11
- package/dist/esm/functions/setName.d.ts +0 -4
- package/dist/esm/functions/setName.js +0 -14
- package/dist/esm/functions/setRecords.d.ts +0 -3
- package/dist/esm/functions/setRecords.js +0 -19
- package/dist/esm/functions/setResolver.d.ts +0 -4
- package/dist/esm/functions/setResolver.js +0 -25
- package/dist/esm/functions/transferName.d.ts +0 -5
- package/dist/esm/functions/transferName.js +0 -31
- package/dist/esm/functions/transferSubname.d.ts +0 -5
- package/dist/esm/functions/transferSubname.js +0 -25
- package/dist/esm/functions/unwrapName.d.ts +0 -4
- package/dist/esm/functions/unwrapName.js +0 -25
- package/dist/esm/functions/wrapName.d.ts +0 -6
- package/dist/esm/functions/wrapName.js +0 -58
- package/dist/esm/generated/BaseRegistrarImplementation.d.ts +0 -487
- package/dist/esm/generated/BaseRegistrarImplementation.js +0 -1
- package/dist/esm/generated/DNSRegistrar.d.ts +0 -220
- package/dist/esm/generated/DNSRegistrar.js +0 -1
- package/dist/esm/generated/DNSSECImpl.js +0 -1
- package/dist/esm/generated/DefaultReverseResolver.d.ts +0 -66
- package/dist/esm/generated/DefaultReverseResolver.js +0 -1
- package/dist/esm/generated/DoNotCallOnChainUniversalResolverProxy.d.ts +0 -144
- package/dist/esm/generated/DoNotCallOnChainUniversalResolverProxy.js +0 -1
- package/dist/esm/generated/ENSRegistry.d.ts +0 -259
- package/dist/esm/generated/ENSRegistry.js +0 -1
- package/dist/esm/generated/ETHRegistrarController.js +0 -1
- package/dist/esm/generated/Multicall.js +0 -1
- package/dist/esm/generated/NameWrapper.d.ts +0 -675
- package/dist/esm/generated/NameWrapper.js +0 -1
- package/dist/esm/generated/P256SHA256Algorithm.d.ts +0 -72
- package/dist/esm/generated/P256SHA256Algorithm.js +0 -1
- package/dist/esm/generated/PublicResolver.d.ts +0 -542
- package/dist/esm/generated/PublicResolver.js +0 -1
- package/dist/esm/generated/RSASHA1Algorithm.js +0 -1
- package/dist/esm/generated/RSASHA256Algorithm.d.ts +0 -42
- package/dist/esm/generated/RSASHA256Algorithm.js +0 -1
- package/dist/esm/generated/ReverseRegistrar.js +0 -1
- package/dist/esm/generated/Root.d.ts +0 -173
- package/dist/esm/generated/Root.js +0 -1
- package/dist/esm/generated/SHA1Digest.d.ts +0 -67
- package/dist/esm/generated/SHA1Digest.js +0 -1
- package/dist/esm/generated/SHA1NSEC3Digest.js +0 -1
- package/dist/esm/generated/SHA256Digest.d.ts +0 -67
- package/dist/esm/generated/SHA256Digest.js +0 -1
- package/dist/esm/generated/StaticMetadataService.d.ts +0 -42
- package/dist/esm/generated/StaticMetadataService.js +0 -1
- package/dist/esm/generated/TLDPublicSuffixList.js +0 -1
- package/dist/esm/generated/UniversalResolver.d.ts +0 -82
- package/dist/esm/generated/UniversalResolver.js +0 -1
- package/dist/esm/generated/common.js +0 -1
- package/dist/esm/generated/factories/BaseRegistrarImplementation__factory.d.ts +0 -52
- package/dist/esm/generated/factories/BaseRegistrarImplementation__factory.js +0 -766
- package/dist/esm/generated/factories/DNSRegistrar__factory.d.ts +0 -79
- package/dist/esm/generated/factories/DNSRegistrar__factory.js +0 -292
- package/dist/esm/generated/factories/DNSSECImpl__factory.d.ts +0 -68
- package/dist/esm/generated/factories/DNSSECImpl__factory.js +0 -497
- package/dist/esm/generated/factories/DefaultReverseResolver__factory.d.ts +0 -36
- package/dist/esm/generated/factories/DefaultReverseResolver__factory.js +0 -83
- package/dist/esm/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.js +0 -167
- package/dist/esm/generated/factories/ENSRegistry__factory.d.ts +0 -52
- package/dist/esm/generated/factories/ENSRegistry__factory.js +0 -435
- package/dist/esm/generated/factories/ETHRegistrarController__factory.js +0 -507
- package/dist/esm/generated/factories/Multicall__factory.d.ts +0 -42
- package/dist/esm/generated/factories/Multicall__factory.js +0 -453
- package/dist/esm/generated/factories/NameWrapper__factory.d.ts +0 -57
- package/dist/esm/generated/factories/NameWrapper__factory.js +0 -1196
- package/dist/esm/generated/factories/P256SHA256Algorithm__factory.d.ts +0 -34
- package/dist/esm/generated/factories/P256SHA256Algorithm__factory.js +0 -67
- package/dist/esm/generated/factories/PublicResolver__factory.d.ts +0 -46
- package/dist/esm/generated/factories/PublicResolver__factory.js +0 -888
- package/dist/esm/generated/factories/RSASHA1Algorithm__factory.d.ts +0 -34
- package/dist/esm/generated/factories/RSASHA1Algorithm__factory.js +0 -67
- package/dist/esm/generated/factories/RSASHA256Algorithm__factory.d.ts +0 -34
- package/dist/esm/generated/factories/RSASHA256Algorithm__factory.js +0 -67
- package/dist/esm/generated/factories/ReverseRegistrar__factory.d.ts +0 -46
- package/dist/esm/generated/factories/ReverseRegistrar__factory.js +0 -336
- package/dist/esm/generated/factories/Root__factory.d.ts +0 -52
- package/dist/esm/generated/factories/Root__factory.js +0 -239
- package/dist/esm/generated/factories/SHA1Digest__factory.d.ts +0 -34
- package/dist/esm/generated/factories/SHA1Digest__factory.js +0 -62
- package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.d.ts +0 -34
- package/dist/esm/generated/factories/SHA1NSEC3Digest__factory.js +0 -67
- package/dist/esm/generated/factories/SHA256Digest__factory.d.ts +0 -34
- package/dist/esm/generated/factories/SHA256Digest__factory.js +0 -62
- package/dist/esm/generated/factories/StaticMetadataService__factory.d.ts +0 -32
- package/dist/esm/generated/factories/StaticMetadataService__factory.js +0 -45
- package/dist/esm/generated/factories/TLDPublicSuffixList__factory.d.ts +0 -34
- package/dist/esm/generated/factories/TLDPublicSuffixList__factory.js +0 -57
- package/dist/esm/generated/factories/UniversalResolver__factory.d.ts +0 -42
- package/dist/esm/generated/factories/UniversalResolver__factory.js +0 -200
- package/dist/esm/generated/factories/index.d.ts +0 -6
- package/dist/esm/generated/factories/index.js +0 -9
- package/dist/esm/generated/index.d.ts +0 -13
- package/dist/esm/generated/index.js +0 -7
- package/dist/esm/index.js +0 -189
- package/dist/esm/utils/contentHash.d.ts +0 -28
- package/dist/esm/utils/contentHash.js +0 -153
- package/dist/esm/utils/createReverseNode.d.ts +0 -2
- package/dist/esm/utils/createReverseNode.js +0 -1
- package/dist/esm/utils/format.d.ts +0 -3
- package/dist/esm/utils/format.js +0 -3
- package/dist/esm/utils/fuses.d.ts +0 -20
- package/dist/esm/utils/fuses.js +0 -21
- package/dist/esm/utils/generateFuseInput.d.ts +0 -3
- package/dist/esm/utils/generateFuseInput.js +0 -14
- package/dist/esm/utils/hexEncodedName.d.ts +0 -1
- package/dist/esm/utils/hexEncodedName.js +0 -2
- package/dist/esm/utils/labels.d.ts +0 -14
- package/dist/esm/utils/labels.js +0 -95
- package/dist/esm/utils/makeHashIndexes.d.ts +0 -2
- package/dist/esm/utils/makeHashIndexes.js +0 -3
- package/dist/esm/utils/normalise.d.ts +0 -2
- package/dist/esm/utils/normalise.js +0 -20
- package/dist/esm/utils/recordHelpers.js +0 -39
- package/dist/esm/utils/registerHelpers.d.ts +0 -26
- package/dist/esm/utils/registerHelpers.js +0 -43
- package/dist/esm/utils/singleCall.d.ts +0 -9
- package/dist/esm/utils/singleCall.js +0 -5
- package/dist/esm/utils/validation.d.ts +0 -8
- package/dist/esm/utils/validation.js +0 -67
- package/src/ABIs/ETHRegistrarController.json +0 -494
- package/src/ABIs/NameWrapper.json +0 -1183
- package/src/ABIs/PublicResolver.json +0 -875
- package/src/ABIs/ReverseRegistrar.json +0 -323
- package/src/ABIs/StaticMetadataService.json +0 -32
- package/src/ABIs/UniversalResolver.json +0 -187
- package/src/contracts/doNotCallOnChainUniversalResolverProxy.ts +0 -5
- package/src/generated/DoNotCallOnChainUniversalResolverProxy.ts +0 -285
- package/src/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.ts +0 -186
- package/src/tests/batch.test.ts +0 -36
- package/src/tests/batchWrappers.test.ts +0 -31
- package/src/tests/burnFuses.test.ts +0 -44
- package/src/tests/deleteSubname.test.ts +0 -71
- package/src/tests/getExpiry.test.ts +0 -37
- package/src/tests/getFuses.test.ts +0 -103
- package/src/tests/getHistory.test.ts +0 -101
- package/src/tests/getNames.test.ts +0 -247
- package/src/tests/getOwner.test.ts +0 -71
- package/src/tests/getResolver.test.ts +0 -19
- package/src/tests/getSubnames.test.ts +0 -31
- package/src/tests/setup.ts +0 -53
- package/src/tests/transferName.test.ts +0 -81
- package/src/tests/transferSubname.test.ts +0 -73
- package/src/tests/unwrapName.test.ts +0 -68
- package/src/tests/withProvider.test.ts +0 -28
- package/src/tests/wrapName.test.ts +0 -64
package/src/index.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
1
|
+
import type { JsonRpcSigner } from '@ethersproject/providers'
|
|
2
|
+
import { ContractTransaction, ethers, PopulatedTransaction } from 'ethers'
|
|
3
3
|
import { getContractAddress as _getContractAddress } from './contracts/getContractAddress'
|
|
4
|
+
import ContractManager from './contracts/index'
|
|
4
5
|
import { SupportedNetworkId } from './contracts/types'
|
|
5
6
|
import type batch from './functions/batch'
|
|
6
7
|
import type {
|
|
@@ -9,15 +10,13 @@ import type {
|
|
|
9
10
|
universalWrapper,
|
|
10
11
|
} from './functions/batchWrappers'
|
|
11
12
|
import type burnFuses from './functions/burnFuses'
|
|
13
|
+
import type commitName from './functions/commitName'
|
|
12
14
|
import type createSubname from './functions/createSubname'
|
|
13
15
|
import type deleteSubname from './functions/deleteSubname'
|
|
16
|
+
import type getDNSOwner from './functions/getDNSOwner'
|
|
14
17
|
import type getExpiry from './functions/getExpiry'
|
|
15
18
|
import type getFuses from './functions/getFuses'
|
|
16
|
-
import type {
|
|
17
|
-
getHistory,
|
|
18
|
-
getHistoryDetailForTransactionHash,
|
|
19
|
-
getHistoryWithDetail,
|
|
20
|
-
} from './functions/getHistory'
|
|
19
|
+
import type { getHistory } from './functions/getHistory'
|
|
21
20
|
import type getName from './functions/getName'
|
|
22
21
|
import type getNames from './functions/getNames'
|
|
23
22
|
import type getOwner from './functions/getOwner'
|
|
@@ -34,7 +33,10 @@ import type {
|
|
|
34
33
|
_getText,
|
|
35
34
|
} from './functions/getSpecificRecord'
|
|
36
35
|
import type getSubnames from './functions/getSubnames'
|
|
36
|
+
import type registerName from './functions/registerName'
|
|
37
|
+
import type renewName from './functions/renewName'
|
|
37
38
|
import type setName from './functions/setName'
|
|
39
|
+
import type setRecord from './functions/setRecord'
|
|
38
40
|
import type setRecords from './functions/setRecords'
|
|
39
41
|
import type setResolver from './functions/setResolver'
|
|
40
42
|
import type transferName from './functions/transferName'
|
|
@@ -43,6 +45,16 @@ import type unwrapName from './functions/unwrapName'
|
|
|
43
45
|
import type wrapName from './functions/wrapName'
|
|
44
46
|
import GqlManager from './GqlManager'
|
|
45
47
|
import singleCall from './utils/singleCall'
|
|
48
|
+
import writeTx from './utils/writeTx'
|
|
49
|
+
|
|
50
|
+
export type {
|
|
51
|
+
Fuse,
|
|
52
|
+
FuseArrayPossibilities,
|
|
53
|
+
FuseObj,
|
|
54
|
+
NamedFusesToBurn,
|
|
55
|
+
UnnamedFuseType,
|
|
56
|
+
UnnamedFuseValues,
|
|
57
|
+
} from './utils/fuses'
|
|
46
58
|
|
|
47
59
|
type ENSOptions = {
|
|
48
60
|
graphURI?: string | null
|
|
@@ -52,6 +64,7 @@ type ENSOptions = {
|
|
|
52
64
|
export type InternalENS = {
|
|
53
65
|
options?: ENSOptions
|
|
54
66
|
provider?: ethers.providers.Provider
|
|
67
|
+
signer: JsonRpcSigner
|
|
55
68
|
graphURI?: string | null
|
|
56
69
|
} & ENS
|
|
57
70
|
|
|
@@ -75,12 +88,40 @@ type FirstArg<F> = F extends (x: infer A, ...args: any[]) => any ? A : never
|
|
|
75
88
|
|
|
76
89
|
type FunctionDeps<F> = Extract<keyof FirstArg<F>, string>[]
|
|
77
90
|
|
|
91
|
+
type WriteOptions = {
|
|
92
|
+
addressOrIndex?: string | number
|
|
93
|
+
signer?: JsonRpcSigner
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
type OptionalWriteOptions<F> = F extends (
|
|
97
|
+
x: any,
|
|
98
|
+
arg_0: infer Z,
|
|
99
|
+
options?: infer P,
|
|
100
|
+
) => infer R
|
|
101
|
+
? (name: Z, options?: P & WriteOptions) => R
|
|
102
|
+
: F extends (x: any, arg_0: infer Z, options: infer P) => infer R
|
|
103
|
+
? (name: Z, options: P & WriteOptions) => R
|
|
104
|
+
: never
|
|
105
|
+
|
|
106
|
+
interface WriteFunction<F extends (...args: any) => any> extends Function {
|
|
107
|
+
(...args: Parameters<OptionalWriteOptions<F>>): Promise<
|
|
108
|
+
ContractTransaction & {
|
|
109
|
+
customData?: Record<string, any>
|
|
110
|
+
}
|
|
111
|
+
>
|
|
112
|
+
populateTransaction: (
|
|
113
|
+
...args: Parameters<OptionalWriteOptions<F>>
|
|
114
|
+
) => Promise<PopulatedTransaction>
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
78
118
|
const graphURIEndpoints: Record<string, string> = {
|
|
79
119
|
1: 'https://api.thegraph.com/subgraphs/name/ensdomains/ens',
|
|
80
120
|
3: 'https://api.thegraph.com/subgraphs/name/ensdomains/ensropsten',
|
|
81
121
|
4: 'https://api.thegraph.com/subgraphs/name/ensdomains/ensrinkeby',
|
|
82
122
|
5: 'https://api.thegraph.com/subgraphs/name/ensdomains/ensgoerli',
|
|
83
123
|
}
|
|
124
|
+
/* eslint-enable @typescript-eslint/naming-convention */
|
|
84
125
|
|
|
85
126
|
export type RawFunction = {
|
|
86
127
|
raw: (...args: any[]) => Promise<{ to: string; data: string }>
|
|
@@ -120,12 +161,19 @@ export interface GenericGeneratedRawFunction
|
|
|
120
161
|
|
|
121
162
|
export class ENS {
|
|
122
163
|
[x: string]: any
|
|
164
|
+
|
|
123
165
|
protected options?: ENSOptions
|
|
166
|
+
|
|
124
167
|
protected provider?: ethers.providers.JsonRpcProvider
|
|
168
|
+
|
|
125
169
|
protected graphURI?: string | null
|
|
170
|
+
|
|
126
171
|
protected initialProvider?: ethers.providers.JsonRpcProvider
|
|
172
|
+
|
|
127
173
|
contracts?: ContractManager
|
|
174
|
+
|
|
128
175
|
getContractAddress = _getContractAddress
|
|
176
|
+
|
|
129
177
|
gqlInstance = new GqlManager()
|
|
130
178
|
|
|
131
179
|
constructor(options?: ENSOptions) {
|
|
@@ -142,7 +190,6 @@ export class ENS {
|
|
|
142
190
|
return
|
|
143
191
|
}
|
|
144
192
|
await this.setProvider(this.initialProvider)
|
|
145
|
-
return
|
|
146
193
|
}
|
|
147
194
|
|
|
148
195
|
/**
|
|
@@ -171,7 +218,13 @@ export class ENS {
|
|
|
171
218
|
path: string,
|
|
172
219
|
dependencies: FunctionDeps<F>,
|
|
173
220
|
exportName: string = 'default',
|
|
174
|
-
subFunc?:
|
|
221
|
+
subFunc?:
|
|
222
|
+
| 'raw'
|
|
223
|
+
| 'decode'
|
|
224
|
+
| 'combine'
|
|
225
|
+
| 'batch'
|
|
226
|
+
| 'write'
|
|
227
|
+
| 'populateTransaction',
|
|
175
228
|
passthrough?: RawFunction,
|
|
176
229
|
): Function => {
|
|
177
230
|
// if batch is specified, create batch func
|
|
@@ -185,34 +238,55 @@ export class ENS {
|
|
|
185
238
|
await thisRef.checkInitialProvider()
|
|
186
239
|
// import the module dynamically
|
|
187
240
|
const mod = await import(
|
|
188
|
-
/* webpackMode: "lazy", webpackChunkName: "[request]", webpackPreload: true */
|
|
241
|
+
/* webpackMode: "lazy", webpackChunkName: "[request]", webpackPreload: true, webpackExclude: /.*\.ts$/ */
|
|
189
242
|
`./functions/${path}`
|
|
190
243
|
)
|
|
191
244
|
|
|
192
245
|
// if combine isn't specified, run normally
|
|
193
246
|
// otherwise, create a function from the raw and decode functions
|
|
194
247
|
if (subFunc !== 'combine') {
|
|
248
|
+
const writeable =
|
|
249
|
+
subFunc === 'write' || subFunc === 'populateTransaction'
|
|
195
250
|
// get the function to call
|
|
196
|
-
const func =
|
|
251
|
+
const func =
|
|
252
|
+
subFunc && !writeable ? mod[exportName][subFunc] : mod[exportName]
|
|
197
253
|
// get the dependencies to forward to the function as the first arg
|
|
198
|
-
|
|
254
|
+
let dependenciesToForward =
|
|
199
255
|
thisRef.forwardDependenciesFromArray<F>(dependencies)
|
|
256
|
+
|
|
257
|
+
// if func is write func, inject signer into dependencies
|
|
258
|
+
if (writeable) {
|
|
259
|
+
const options = (args[1] || {}) as WriteOptions
|
|
260
|
+
const signer =
|
|
261
|
+
options.signer ||
|
|
262
|
+
thisRef.provider?.getSigner(options.addressOrIndex)
|
|
263
|
+
const populate = subFunc === 'populateTransaction'
|
|
264
|
+
if (!signer) {
|
|
265
|
+
throw new Error('No signer specified')
|
|
266
|
+
}
|
|
267
|
+
delete options.addressOrIndex
|
|
268
|
+
delete options.signer
|
|
269
|
+
dependenciesToForward = { ...dependenciesToForward, signer }
|
|
270
|
+
return func(dependenciesToForward, args[0], options).then(
|
|
271
|
+
writeTx(signer, populate),
|
|
272
|
+
)
|
|
273
|
+
}
|
|
274
|
+
|
|
200
275
|
// return the function with the dependencies forwarded
|
|
201
276
|
return func(dependenciesToForward, ...args)
|
|
202
|
-
} else {
|
|
203
|
-
// get the dependencies to forward from raw and decode functions
|
|
204
|
-
const dependenciesToForward = thisRef.forwardDependenciesFromArray<
|
|
205
|
-
CombineFunctionDeps<F>
|
|
206
|
-
>(dependencies as any)
|
|
207
|
-
|
|
208
|
-
// return singleCall function with dependencies forwarded
|
|
209
|
-
return singleCall(
|
|
210
|
-
thisRef.provider!,
|
|
211
|
-
dependenciesToForward,
|
|
212
|
-
mod[exportName],
|
|
213
|
-
...args,
|
|
214
|
-
)
|
|
215
277
|
}
|
|
278
|
+
// get the dependencies to forward from raw and decode functions
|
|
279
|
+
const dependenciesToForward = thisRef.forwardDependenciesFromArray<
|
|
280
|
+
CombineFunctionDeps<F>
|
|
281
|
+
>(dependencies as any)
|
|
282
|
+
|
|
283
|
+
// return singleCall function with dependencies forwarded
|
|
284
|
+
return singleCall(
|
|
285
|
+
thisRef.provider!,
|
|
286
|
+
dependenciesToForward,
|
|
287
|
+
mod[exportName],
|
|
288
|
+
...args,
|
|
289
|
+
)
|
|
216
290
|
}
|
|
217
291
|
|
|
218
292
|
// if subfunc is combine, add raw and decode property methods to the function
|
|
@@ -236,6 +310,13 @@ export class ENS {
|
|
|
236
310
|
'batch',
|
|
237
311
|
{ raw: mainFunc.raw as any, decode: mainFunc.decode as any },
|
|
238
312
|
)
|
|
313
|
+
} else if (subFunc === 'write') {
|
|
314
|
+
mainFunc.populateTransaction = this.importGenerator<F>(
|
|
315
|
+
path,
|
|
316
|
+
dependencies,
|
|
317
|
+
exportName,
|
|
318
|
+
'populateTransaction',
|
|
319
|
+
)
|
|
239
320
|
}
|
|
240
321
|
|
|
241
322
|
return mainFunc as Function
|
|
@@ -255,6 +336,25 @@ export class ENS {
|
|
|
255
336
|
): OmitFirstArg<F> =>
|
|
256
337
|
this.importGenerator<F>(path, dependencies, exportName) as OmitFirstArg<F>
|
|
257
338
|
|
|
339
|
+
/**
|
|
340
|
+
* Generates a write wrapped function
|
|
341
|
+
* @param {string} path - The path of the exported function
|
|
342
|
+
* @param {FunctionDeps} dependencies - An array of ENS properties
|
|
343
|
+
* @param {string} exportName - The export name of the target function
|
|
344
|
+
* @returns {OmitFirstArg} - The generated wrapped function
|
|
345
|
+
*/
|
|
346
|
+
private generateWriteFunction = <F extends (...args: any) => any>(
|
|
347
|
+
path: string,
|
|
348
|
+
dependencies: FunctionDeps<F>,
|
|
349
|
+
exportName: string = 'default',
|
|
350
|
+
): WriteFunction<F> =>
|
|
351
|
+
this.importGenerator<F>(
|
|
352
|
+
path,
|
|
353
|
+
dependencies,
|
|
354
|
+
exportName,
|
|
355
|
+
'write',
|
|
356
|
+
) as WriteFunction<F>
|
|
357
|
+
|
|
258
358
|
/**
|
|
259
359
|
* Generates a wrapped function from raw and decode exports
|
|
260
360
|
* @param {string} path - The path of the exported function
|
|
@@ -294,7 +394,6 @@ export class ENS {
|
|
|
294
394
|
this.provider,
|
|
295
395
|
this.getContractAddress(String(network) as SupportedNetworkId),
|
|
296
396
|
)
|
|
297
|
-
return
|
|
298
397
|
}
|
|
299
398
|
|
|
300
399
|
/**
|
|
@@ -356,22 +455,6 @@ export class ENS {
|
|
|
356
455
|
'getHistory',
|
|
357
456
|
)
|
|
358
457
|
|
|
359
|
-
public getHistoryWithDetail = this.generateFunction<
|
|
360
|
-
typeof getHistoryWithDetail
|
|
361
|
-
>(
|
|
362
|
-
'getHistory',
|
|
363
|
-
['contracts', 'gqlInstance', 'provider'],
|
|
364
|
-
'getHistoryWithDetail',
|
|
365
|
-
)
|
|
366
|
-
|
|
367
|
-
public getHistoryDetailForTransactionHash = this.generateFunction<
|
|
368
|
-
typeof getHistoryDetailForTransactionHash
|
|
369
|
-
>(
|
|
370
|
-
'getHistory',
|
|
371
|
-
['contracts', 'provider'],
|
|
372
|
-
'getHistoryDetailForTransactionHash',
|
|
373
|
-
)
|
|
374
|
-
|
|
375
458
|
public getContentHash = this.generateRawFunction<typeof getContentHash>(
|
|
376
459
|
'initialGetters',
|
|
377
460
|
['contracts', 'universalWrapper'],
|
|
@@ -438,6 +521,11 @@ export class ENS {
|
|
|
438
521
|
'getPrice',
|
|
439
522
|
)
|
|
440
523
|
|
|
524
|
+
public getDNSOwner = this.generateFunction<typeof getDNSOwner>(
|
|
525
|
+
'getDNSOwner',
|
|
526
|
+
[],
|
|
527
|
+
)
|
|
528
|
+
|
|
441
529
|
public universalWrapper = this.generateRawFunction<typeof universalWrapper>(
|
|
442
530
|
'initialGetters',
|
|
443
531
|
['contracts'],
|
|
@@ -454,54 +542,71 @@ export class ENS {
|
|
|
454
542
|
'multicallWrapper',
|
|
455
543
|
)
|
|
456
544
|
|
|
457
|
-
public setName = this.
|
|
545
|
+
public setName = this.generateWriteFunction<typeof setName>('setName', [
|
|
458
546
|
'contracts',
|
|
459
|
-
'provider',
|
|
460
547
|
])
|
|
461
548
|
|
|
462
|
-
public setRecords = this.
|
|
549
|
+
public setRecords = this.generateWriteFunction<typeof setRecords>(
|
|
550
|
+
'setRecords',
|
|
551
|
+
['contracts', 'provider', 'getResolver'],
|
|
552
|
+
)
|
|
553
|
+
|
|
554
|
+
public setRecord = this.generateWriteFunction<typeof setRecord>('setRecord', [
|
|
463
555
|
'contracts',
|
|
464
556
|
'provider',
|
|
465
557
|
'getResolver',
|
|
466
558
|
])
|
|
467
559
|
|
|
468
|
-
public setResolver = this.
|
|
560
|
+
public setResolver = this.generateWriteFunction<typeof setResolver>(
|
|
469
561
|
'setResolver',
|
|
470
|
-
['contracts'
|
|
562
|
+
['contracts'],
|
|
471
563
|
)
|
|
472
564
|
|
|
473
|
-
public transferName = this.
|
|
565
|
+
public transferName = this.generateWriteFunction<typeof transferName>(
|
|
474
566
|
'transferName',
|
|
475
|
-
['contracts'
|
|
567
|
+
['contracts'],
|
|
476
568
|
)
|
|
477
569
|
|
|
478
|
-
public wrapName = this.
|
|
570
|
+
public wrapName = this.generateWriteFunction<typeof wrapName>('wrapName', [
|
|
479
571
|
'contracts',
|
|
480
|
-
'
|
|
572
|
+
'getExpiry',
|
|
481
573
|
])
|
|
482
574
|
|
|
483
|
-
public unwrapName = this.
|
|
484
|
-
'
|
|
485
|
-
'
|
|
486
|
-
|
|
575
|
+
public unwrapName = this.generateWriteFunction<typeof unwrapName>(
|
|
576
|
+
'unwrapName',
|
|
577
|
+
['contracts'],
|
|
578
|
+
)
|
|
487
579
|
|
|
488
|
-
public burnFuses = this.
|
|
580
|
+
public burnFuses = this.generateWriteFunction<typeof burnFuses>('burnFuses', [
|
|
489
581
|
'contracts',
|
|
490
|
-
'provider',
|
|
491
582
|
])
|
|
492
583
|
|
|
493
|
-
public createSubname = this.
|
|
584
|
+
public createSubname = this.generateWriteFunction<typeof createSubname>(
|
|
494
585
|
'createSubname',
|
|
495
|
-
['contracts', '
|
|
586
|
+
['contracts', 'getExpiry'],
|
|
496
587
|
)
|
|
497
588
|
|
|
498
|
-
public deleteSubname = this.
|
|
589
|
+
public deleteSubname = this.generateWriteFunction<typeof deleteSubname>(
|
|
499
590
|
'deleteSubname',
|
|
500
|
-
['
|
|
591
|
+
['transferSubname'],
|
|
501
592
|
)
|
|
502
593
|
|
|
503
|
-
public transferSubname = this.
|
|
594
|
+
public transferSubname = this.generateWriteFunction<typeof transferSubname>(
|
|
504
595
|
'transferSubname',
|
|
505
|
-
['contracts', '
|
|
596
|
+
['contracts', 'getExpiry'],
|
|
506
597
|
)
|
|
598
|
+
|
|
599
|
+
public commitName = this.generateWriteFunction<typeof commitName>(
|
|
600
|
+
'commitName',
|
|
601
|
+
['contracts'],
|
|
602
|
+
)
|
|
603
|
+
|
|
604
|
+
public registerName = this.generateWriteFunction<typeof registerName>(
|
|
605
|
+
'registerName',
|
|
606
|
+
['contracts'],
|
|
607
|
+
)
|
|
608
|
+
|
|
609
|
+
public renewName = this.generateWriteFunction<typeof renewName>('renewName', [
|
|
610
|
+
'contracts',
|
|
611
|
+
])
|
|
507
612
|
}
|
package/src/utils/contentHash.ts
CHANGED
|
@@ -26,13 +26,16 @@ function matchProtocol(text: string) {
|
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
export function decodeContenthash(encoded: any) {
|
|
29
|
-
let decoded
|
|
29
|
+
let decoded
|
|
30
|
+
let protocolType
|
|
31
|
+
let error
|
|
30
32
|
if (!encoded || encoded === '0x') {
|
|
31
33
|
return {}
|
|
32
34
|
}
|
|
33
35
|
if (encoded.error) {
|
|
34
36
|
return { protocolType: null, decoded: encoded.error }
|
|
35
|
-
}
|
|
37
|
+
}
|
|
38
|
+
if (encoded === false) {
|
|
36
39
|
return { protocolType: null, decoded: 'invalid value' }
|
|
37
40
|
}
|
|
38
41
|
if (encoded) {
|
|
@@ -80,12 +83,12 @@ export function isValidContenthash(encoded: any) {
|
|
|
80
83
|
}
|
|
81
84
|
|
|
82
85
|
export function getProtocolType(encoded: any) {
|
|
83
|
-
let protocolType
|
|
86
|
+
let protocolType
|
|
87
|
+
let decoded
|
|
84
88
|
try {
|
|
85
|
-
|
|
89
|
+
const matched = matchProtocol(encoded)
|
|
86
90
|
if (matched) {
|
|
87
|
-
protocolType = matched
|
|
88
|
-
decoded = matched[2]
|
|
91
|
+
;[, protocolType, decoded] = matched
|
|
89
92
|
}
|
|
90
93
|
return {
|
|
91
94
|
protocolType,
|
|
@@ -101,38 +104,37 @@ export function encodeContenthash(text: string) {
|
|
|
101
104
|
let contentType
|
|
102
105
|
let encoded: string | boolean = false
|
|
103
106
|
let error
|
|
104
|
-
if (
|
|
105
|
-
|
|
107
|
+
if (text) {
|
|
108
|
+
const matched = matchProtocol(text)
|
|
106
109
|
if (matched) {
|
|
107
|
-
contentType = matched
|
|
108
|
-
content = matched[2]
|
|
110
|
+
;[, contentType, content] = matched
|
|
109
111
|
}
|
|
110
112
|
try {
|
|
111
113
|
if (contentType === 'ipfs') {
|
|
112
114
|
if (content.length >= 4) {
|
|
113
|
-
encoded =
|
|
115
|
+
encoded = `0x${contentHash.encode('ipfs-ns', content)}`
|
|
114
116
|
}
|
|
115
117
|
} else if (contentType === 'ipns') {
|
|
116
|
-
encoded =
|
|
118
|
+
encoded = `0x${contentHash.encode('ipns-ns', content)}`
|
|
117
119
|
} else if (contentType === 'bzz') {
|
|
118
120
|
if (content.length >= 4) {
|
|
119
|
-
encoded =
|
|
121
|
+
encoded = `0x${contentHash.fromSwarm(content)}`
|
|
120
122
|
}
|
|
121
123
|
} else if (contentType === 'onion') {
|
|
122
|
-
if (content.length
|
|
123
|
-
encoded =
|
|
124
|
+
if (content.length === 16) {
|
|
125
|
+
encoded = `0x${contentHash.encode('onion', content)}`
|
|
124
126
|
}
|
|
125
127
|
} else if (contentType === 'onion3') {
|
|
126
|
-
if (content.length
|
|
127
|
-
encoded =
|
|
128
|
+
if (content.length === 56) {
|
|
129
|
+
encoded = `0x${contentHash.encode('onion3', content)}`
|
|
128
130
|
}
|
|
129
131
|
} else if (contentType === 'sia') {
|
|
130
|
-
if (content.length
|
|
131
|
-
encoded =
|
|
132
|
+
if (content.length === 46) {
|
|
133
|
+
encoded = `0x${contentHash.encode('skynet-ns', content)}`
|
|
132
134
|
}
|
|
133
135
|
} else if (contentType === 'arweave') {
|
|
134
|
-
if (content.length
|
|
135
|
-
encoded =
|
|
136
|
+
if (content.length === 43) {
|
|
137
|
+
encoded = `0x${contentHash.encode('arweave-ns', content)}`
|
|
136
138
|
}
|
|
137
139
|
} else {
|
|
138
140
|
console.warn('Unsupported protocol or invalid value', {
|
|
@@ -144,7 +146,7 @@ export function encodeContenthash(text: string) {
|
|
|
144
146
|
const errorMessage = 'Error encoding content hash'
|
|
145
147
|
console.warn(errorMessage, { text, encoded })
|
|
146
148
|
error = errorMessage
|
|
147
|
-
//throw 'Error encoding content hash'
|
|
149
|
+
// throw 'Error encoding content hash'
|
|
148
150
|
}
|
|
149
151
|
}
|
|
150
152
|
return { encoded, error }
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export default (address: string) =>
|
|
2
|
-
address.toLowerCase().substring(2)
|
|
2
|
+
`${address.toLowerCase().substring(2)}.addr.reverse`
|
package/src/utils/fuses.ts
CHANGED
|
@@ -7,7 +7,7 @@ const CANNOT_CREATE_SUBDOMAIN = 32
|
|
|
7
7
|
const PARENT_CANNOT_CONTROL = 64
|
|
8
8
|
const CAN_DO_EVERYTHING = 0
|
|
9
9
|
|
|
10
|
-
export const
|
|
10
|
+
export const fuseEnum = {
|
|
11
11
|
CANNOT_UNWRAP,
|
|
12
12
|
CANNOT_BURN_FUSES,
|
|
13
13
|
CANNOT_TRANSFER,
|
|
@@ -15,9 +15,57 @@ export const testable = {
|
|
|
15
15
|
CANNOT_SET_TTL,
|
|
16
16
|
CANNOT_CREATE_SUBDOMAIN,
|
|
17
17
|
PARENT_CANNOT_CONTROL,
|
|
18
|
-
}
|
|
18
|
+
} as const
|
|
19
|
+
|
|
20
|
+
export const unnamedFuses = [
|
|
21
|
+
128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144,
|
|
22
|
+
524288, 1048576, 2097152, 4194304, 8388608, 16777216, 33554432, 67108864,
|
|
23
|
+
134217728, 268435456, 536870912, 1073741824, 2147483648, 4294967296,
|
|
24
|
+
] as const
|
|
19
25
|
|
|
20
|
-
|
|
21
|
-
...
|
|
26
|
+
const fullFuseEnum = {
|
|
27
|
+
...fuseEnum,
|
|
22
28
|
CAN_DO_EVERYTHING,
|
|
23
29
|
}
|
|
30
|
+
|
|
31
|
+
export type FuseObj = typeof fuseEnum
|
|
32
|
+
export type CurrentFuses = { [f in keyof FuseObj]: boolean }
|
|
33
|
+
export type UnnamedFuseType = typeof unnamedFuses
|
|
34
|
+
export type Fuse = keyof FuseObj
|
|
35
|
+
export type UnnamedFuseValues = UnnamedFuseType[number]
|
|
36
|
+
|
|
37
|
+
// We need this type so that the following type isn't infinite. This type limits the max length of the fuse array to 7.
|
|
38
|
+
export type FuseArrayPossibilities =
|
|
39
|
+
| [Fuse]
|
|
40
|
+
| [Fuse, Fuse]
|
|
41
|
+
| [Fuse, Fuse, Fuse]
|
|
42
|
+
| [Fuse, Fuse, Fuse, Fuse]
|
|
43
|
+
| [Fuse, Fuse, Fuse, Fuse, Fuse]
|
|
44
|
+
| [Fuse, Fuse, Fuse, Fuse, Fuse, Fuse]
|
|
45
|
+
| [Fuse, Fuse, Fuse, Fuse, Fuse, Fuse, Fuse]
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* This type creates a type error if there are any duplicate fuses.
|
|
49
|
+
* It effectively works like a reduce function, starting with 0 included types, adding a type each time, and then checking for duplicates.
|
|
50
|
+
*
|
|
51
|
+
* @template A The array to check for duplicates.
|
|
52
|
+
* @template B The union of all checked existing types.
|
|
53
|
+
*/
|
|
54
|
+
// CLAUSE A: This extension unwraps the type as a fuse tuple.
|
|
55
|
+
type FusesWithoutDuplicates<A, B = never> = A extends FuseArrayPossibilities
|
|
56
|
+
? // CLAUSE A > TRUE: CLAUSE B: Pick out the first item in the current array, separating the current item from the rest.
|
|
57
|
+
A extends [infer Head, ...infer Tail]
|
|
58
|
+
? // CLAUSE B > TRUE: CLAUSE C: Check if the current item is a duplicate based on the input union.
|
|
59
|
+
Head extends B
|
|
60
|
+
? // CLAUSE C > TRUE: Duplicate found, return an empty array to throw a type error.
|
|
61
|
+
[]
|
|
62
|
+
: // CLAUSE C > FALSE: Return a new array to continue the recursion, adds the current item type to the union.
|
|
63
|
+
[Head, ...FusesWithoutDuplicates<Tail, Head | B>]
|
|
64
|
+
: // CLAUSE B > FALSE: Return the input array as there is no more array elements to check.
|
|
65
|
+
A
|
|
66
|
+
: // CLAUSE A > FALSE: Return an empty array as it isn't a fuse tuple.
|
|
67
|
+
[]
|
|
68
|
+
|
|
69
|
+
export type NamedFusesToBurn = FusesWithoutDuplicates<FuseArrayPossibilities>
|
|
70
|
+
|
|
71
|
+
export default fullFuseEnum
|
package/src/utils/labels.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { solidityKeccak256 } from 'ethers/lib/utils'
|
|
2
2
|
import { truncateFormat } from './format'
|
|
3
3
|
|
|
4
|
+
const hasLocalStorage = typeof localStorage !== 'undefined'
|
|
5
|
+
|
|
4
6
|
export const labelhash = (input: string) =>
|
|
5
7
|
solidityKeccak256(['string'], [input])
|
|
6
8
|
|
|
@@ -17,7 +19,7 @@ export function decodeLabelhash(hash: string) {
|
|
|
17
19
|
throw Error('Expected encoded labelhash to have a length of 66')
|
|
18
20
|
}
|
|
19
21
|
|
|
20
|
-
return
|
|
22
|
+
return `0x${hash.slice(1, -1)}`
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
export function encodeLabelhash(hash: string) {
|
|
@@ -37,13 +39,13 @@ export function isEncodedLabelhash(hash: string) {
|
|
|
37
39
|
}
|
|
38
40
|
|
|
39
41
|
function getLabels() {
|
|
40
|
-
return
|
|
42
|
+
return hasLocalStorage
|
|
41
43
|
? JSON.parse(localStorage.getItem('ensjs:labels') as string) || {}
|
|
42
44
|
: {}
|
|
43
45
|
}
|
|
44
46
|
|
|
45
47
|
function _saveLabel(hash: string, label: any) {
|
|
46
|
-
if (!
|
|
48
|
+
if (!hasLocalStorage) return hash
|
|
47
49
|
const labels = getLabels()
|
|
48
50
|
localStorage.setItem(
|
|
49
51
|
'ensjs:labels',
|
|
@@ -106,7 +108,7 @@ export function decryptName(name: string) {
|
|
|
106
108
|
export const truncateUndecryptedName = (name: string) => truncateFormat(name)
|
|
107
109
|
|
|
108
110
|
export function checkLocalStorageSize() {
|
|
109
|
-
if (!
|
|
111
|
+
if (!hasLocalStorage) return 'Empty (0 KB)'
|
|
110
112
|
let allStrings = ''
|
|
111
113
|
for (const key in window.localStorage) {
|
|
112
114
|
if (Object.prototype.hasOwnProperty.call(window.localStorage, key)) {
|
package/src/utils/normalise.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { concat, hexlify, keccak256, toUtf8Bytes } from 'ethers/lib/utils'
|
|
2
2
|
import uts46 from 'idna-uts46-hx/uts46bundle.js'
|
|
3
|
+
import { decodeLabelhash, isEncodedLabelhash } from './labels'
|
|
3
4
|
|
|
4
5
|
const zeros = new Uint8Array(32)
|
|
5
6
|
zeros.fill(0)
|
|
@@ -7,16 +8,21 @@ zeros.fill(0)
|
|
|
7
8
|
export const normalise = (name: string) =>
|
|
8
9
|
name ? uts46.toUnicode(name, { useStd3ASCII: true }) : name
|
|
9
10
|
|
|
10
|
-
export const namehash = (
|
|
11
|
+
export const namehash = (name: string): string => {
|
|
11
12
|
let result: string | Uint8Array = zeros
|
|
12
13
|
|
|
13
|
-
const name = normalise(inputName)
|
|
14
|
-
|
|
15
14
|
if (name) {
|
|
16
15
|
const labels = name.split('.')
|
|
17
16
|
|
|
18
|
-
for (
|
|
19
|
-
|
|
17
|
+
for (let i = labels.length - 1; i >= 0; i -= 1) {
|
|
18
|
+
let labelSha: string
|
|
19
|
+
if (isEncodedLabelhash(labels[i])) {
|
|
20
|
+
labelSha = decodeLabelhash(labels[i])
|
|
21
|
+
} else {
|
|
22
|
+
const normalised = normalise(labels[i])
|
|
23
|
+
labelSha = keccak256(toUtf8Bytes(normalised))
|
|
24
|
+
}
|
|
25
|
+
|
|
20
26
|
result = keccak256(concat([result, labelSha]))
|
|
21
27
|
}
|
|
22
28
|
} else {
|