@ensdomains/ensjs 3.0.0-alpha.3 → 3.0.0-alpha.30
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/README.md +1 -1
- package/dist/cjs/GqlManager.js +105 -37
- package/dist/cjs/contracts/baseRegistrar.js +24 -3
- package/dist/cjs/contracts/bulkRenewal.js +25 -0
- package/dist/cjs/contracts/dnsRegistrar.js +25 -0
- package/dist/cjs/contracts/ethRegistrarController.js +24 -3
- package/dist/cjs/contracts/getContractAddress.js +82 -43
- package/dist/cjs/contracts/index.js +86 -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 +130 -67
- package/dist/cjs/functions/burnFuses.js +28 -15
- package/dist/cjs/functions/commitName.js +49 -0
- package/dist/cjs/functions/createSubname.js +80 -38
- package/dist/cjs/functions/deleteSubname.js +59 -4
- package/dist/cjs/functions/getDNSOwner.js +73 -72
- package/dist/cjs/functions/getExpiry.js +110 -41
- package/dist/cjs/functions/getHistory.js +165 -195
- package/dist/cjs/functions/getName.js +51 -28
- package/dist/cjs/functions/getNames.js +205 -103
- package/dist/cjs/functions/getOwner.js +147 -125
- package/dist/cjs/functions/getPrice.js +118 -43
- package/dist/cjs/functions/getProfile.js +440 -254
- 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 +74 -118
- package/dist/cjs/functions/getWrapperData.js +58 -0
- package/dist/cjs/functions/importDNSSECName.js +65 -0
- package/dist/cjs/functions/initialGetters.js +46 -37
- package/dist/cjs/functions/registerName.js +44 -0
- package/dist/cjs/functions/renewNames.js +62 -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/transferController.js +42 -0
- 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 +122 -57
- package/dist/cjs/generated/BaseRegistrarImplementation.js +15 -1
- package/dist/cjs/generated/BulkRenewal.js +16 -0
- 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/BulkRenewal__factory.js +120 -0
- 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 +671 -504
- package/dist/cjs/generated/factories/Multicall__factory.js +457 -441
- package/dist/cjs/generated/factories/NameWrapper__factory.js +1378 -1194
- package/dist/cjs/generated/factories/P256SHA256Algorithm__factory.js +60 -67
- package/dist/cjs/generated/factories/PublicResolver__factory.js +956 -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 +362 -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 +492 -199
- package/dist/cjs/generated/factories/index.js +63 -17
- package/dist/cjs/generated/index.js +70 -37
- package/dist/cjs/index.js +326 -218
- package/dist/cjs/utils/ccip.js +128 -0
- package/dist/cjs/utils/consts.js +24 -0
- 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 +123 -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 +89 -39
- package/dist/cjs/utils/registerHelpers.js +116 -46
- package/dist/cjs/utils/singleCall.js +23 -6
- package/dist/cjs/utils/validation.js +76 -63
- package/dist/cjs/utils/wrapper.js +51 -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/bulkRenewal.mjs +6 -0
- package/dist/esm/contracts/dnsRegistrar.mjs +6 -0
- package/dist/esm/contracts/ethRegistrarController.mjs +6 -0
- package/dist/esm/contracts/getContractAddress.mjs +66 -0
- package/dist/esm/contracts/index.mjs +66 -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 +109 -0
- package/dist/esm/functions/burnFuses.mjs +12 -0
- package/dist/esm/functions/commitName.mjs +30 -0
- package/dist/esm/functions/createSubname.mjs +61 -0
- package/dist/esm/functions/deleteSubname.mjs +42 -0
- package/dist/esm/functions/getDNSOwner.mjs +57 -0
- package/dist/esm/functions/getExpiry.mjs +95 -0
- package/dist/esm/functions/getHistory.mjs +230 -0
- package/dist/esm/functions/getName.mjs +38 -0
- package/dist/esm/functions/getNames.mjs +305 -0
- package/dist/esm/functions/getOwner.mjs +143 -0
- package/dist/esm/functions/getPrice.mjs +106 -0
- package/dist/esm/functions/getProfile.mjs +469 -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 +91 -0
- package/dist/esm/functions/getWrapperData.mjs +39 -0
- package/dist/esm/functions/importDNSSECName.mjs +40 -0
- package/dist/esm/functions/initialGetters.mjs +23 -0
- package/dist/esm/functions/registerName.mjs +27 -0
- package/dist/esm/functions/renewNames.mjs +43 -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/transferController.mjs +23 -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 +104 -0
- package/dist/esm/generated/BaseRegistrarImplementation.mjs +0 -0
- package/dist/esm/generated/BulkRenewal.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/BulkRenewal__factory.mjs +108 -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 +666 -0
- package/dist/esm/generated/factories/Multicall__factory.mjs +461 -0
- package/dist/esm/generated/factories/NameWrapper__factory.mjs +1372 -0
- package/dist/esm/generated/factories/P256SHA256Algorithm__factory.mjs +52 -0
- package/dist/esm/generated/factories/PublicResolver__factory.mjs +951 -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 +357 -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 +485 -0
- package/dist/esm/generated/factories/index.mjs +45 -0
- package/dist/esm/generated/index.mjs +47 -0
- package/dist/esm/index.mjs +311 -0
- package/dist/esm/utils/ccip.mjs +114 -0
- package/dist/esm/utils/consts.mjs +5 -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 +115 -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 +75 -0
- package/dist/esm/utils/registerHelpers.mjs +97 -0
- package/dist/esm/utils/singleCall.mjs +5 -0
- package/dist/esm/utils/validation.mjs +67 -0
- package/dist/esm/utils/wrapper.mjs +32 -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/contracts/ethRegistrarController.d.ts → types/contracts/bulkRenewal.d.ts} +1 -1
- package/dist/{cjs/contracts/publicResolver.d.ts → types/contracts/dnsRegistrar.d.ts} +1 -1
- package/dist/{esm → types}/contracts/ethRegistrarController.d.ts +1 -1
- package/dist/{cjs → types}/contracts/getContractAddress.d.ts +0 -0
- package/dist/types/contracts/index.d.ts +18 -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/types/contracts/types.d.ts +2 -0
- package/dist/{cjs → types}/contracts/universalResolver.d.ts +1 -1
- package/dist/{cjs → types}/functions/batch.d.ts +0 -0
- package/dist/types/functions/batchWrappers.d.ts +86 -0
- package/dist/types/functions/burnFuses.d.ts +3 -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 +7 -0
- package/dist/{cjs → types}/functions/getDNSOwner.d.ts +1 -1
- package/dist/types/functions/getExpiry.d.ts +19 -0
- package/dist/types/functions/getHistory.d.ts +28 -0
- package/dist/{cjs → types}/functions/getName.d.ts +2 -2
- package/dist/{esm → types}/functions/getNames.d.ts +9 -3
- package/dist/{cjs → types}/functions/getOwner.d.ts +0 -0
- package/dist/{esm → types}/functions/getPrice.d.ts +2 -2
- package/dist/{esm → types}/functions/getProfile.d.ts +10 -1
- package/dist/{cjs → 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 +2 -2
- package/dist/{cjs/functions/getFuses.d.ts → types/functions/getWrapperData.d.ts} +5 -7
- package/dist/types/functions/importDNSSECName.d.ts +7 -0
- package/dist/{cjs → types}/functions/initialGetters.d.ts +0 -0
- package/dist/types/functions/registerName.d.ts +8 -0
- package/dist/types/functions/renewNames.d.ts +13 -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/transferController.d.ts +6 -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/types/generated/BulkRenewal.d.ts +76 -0
- package/dist/{cjs → types}/generated/DNSRegistrar.d.ts +68 -64
- package/dist/{esm → types}/generated/DNSSECImpl.d.ts +111 -111
- package/dist/{esm → types}/generated/DefaultReverseResolver.d.ts +17 -17
- package/dist/types/generated/ENSRegistry.d.ts +274 -0
- package/dist/types/generated/ETHRegistrarController.d.ts +362 -0
- package/dist/{esm → types}/generated/Multicall.d.ts +60 -60
- package/dist/types/generated/NameWrapper.d.ts +810 -0
- package/dist/{cjs → types}/generated/P256SHA256Algorithm.d.ts +11 -7
- package/dist/types/generated/PublicResolver.d.ts +594 -0
- package/dist/{cjs → types}/generated/RSASHA1Algorithm.d.ts +11 -7
- package/dist/{cjs → types}/generated/RSASHA256Algorithm.d.ts +11 -7
- package/dist/types/generated/ReverseRegistrar.d.ts +279 -0
- 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/{esm → types}/generated/StaticMetadataService.d.ts +7 -7
- package/dist/{esm → types}/generated/TLDPublicSuffixList.d.ts +7 -7
- package/dist/types/generated/UniversalResolver.d.ts +184 -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/StaticMetadataService__factory.d.ts → types/generated/factories/BulkRenewal__factory.d.ts} +4 -4
- package/dist/{cjs/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/{esm → types}/generated/factories/ETHRegistrarController__factory.d.ts +12 -1
- 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 +21 -0
- package/dist/types/generated/index.d.ts +43 -0
- package/dist/{esm → types}/index.d.ts +166 -112
- package/dist/types/utils/ccip.d.ts +3 -0
- package/dist/types/utils/consts.d.ts +1 -0
- 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 +58 -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 +4 -0
- package/dist/types/utils/registerHelpers.d.ts +59 -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/wrapper.d.ts +6 -0
- package/dist/types/utils/writeTx.d.ts +21 -0
- package/package.json +72 -35
- package/src/@types/@ensdomains/ens-contracts.d.ts +1 -1
- package/src/@types/dns-packet/index.d.ts +113 -113
- package/src/ABIs/Multicall.json +452 -0
- package/src/GqlManager.test.ts +173 -0
- package/src/GqlManager.ts +90 -2
- package/src/contracts/bulkRenewal.ts +6 -0
- package/src/contracts/dnsRegistrar.ts +5 -0
- package/src/contracts/getContractAddress.ts +26 -3
- package/src/contracts/index.ts +21 -1
- package/src/contracts/multicall.ts +0 -19
- package/src/contracts/types.ts +2 -0
- package/src/functions/batch.test.ts +10 -10
- package/src/functions/batch.ts +3 -3
- package/src/functions/batchWrappers.test.ts +13 -13
- package/src/functions/batchWrappers.ts +40 -9
- package/src/functions/burnFuses.test.ts +127 -23
- package/src/functions/burnFuses.ts +6 -13
- package/src/functions/commitName.test.ts +61 -0
- package/src/functions/commitName.ts +39 -0
- package/src/functions/createSubname.test.ts +11 -19
- package/src/functions/createSubname.ts +21 -15
- package/src/functions/deleteSubname.test.ts +36 -38
- package/src/functions/deleteSubname.ts +47 -13
- package/src/functions/getDNSOwner.test.ts +14 -17
- package/src/functions/getDNSOwner.ts +2 -2
- package/src/functions/getExpiry.test.ts +28 -10
- package/src/functions/getExpiry.ts +87 -9
- package/src/functions/getHistory.test.ts +17 -80
- package/src/functions/getHistory.ts +104 -174
- package/src/functions/getName.test.ts +10 -10
- package/src/functions/getName.ts +4 -4
- package/src/functions/getNames.test.ts +153 -89
- package/src/functions/getNames.ts +125 -32
- package/src/functions/getOwner.test.ts +28 -32
- package/src/functions/getOwner.ts +20 -12
- package/src/functions/getPrice.test.ts +55 -0
- package/src/functions/getPrice.ts +62 -10
- package/src/functions/getProfile-ccip.test.ts +29 -0
- package/src/functions/getProfile.test.ts +53 -27
- package/src/functions/getProfile.ts +275 -150
- package/src/functions/getRecords.ts +2 -1
- package/src/functions/getResolver.test.ts +5 -9
- package/src/functions/getSpecificRecord.test.ts +20 -17
- package/src/functions/getSpecificRecord.ts +18 -147
- package/src/functions/getSubnames.test.ts +651 -7
- package/src/functions/getSubnames.ts +43 -102
- package/src/functions/getWrapperData.test.ts +98 -0
- package/src/functions/getWrapperData.ts +42 -0
- package/src/functions/importDNSSECName.ts +54 -0
- package/src/functions/makeCommitment.test.ts +6 -6
- package/src/functions/registerName.test.ts +59 -0
- package/src/functions/registerName.ts +38 -0
- package/src/functions/renewNames.test.ts +64 -0
- package/src/functions/renewNames.ts +60 -0
- package/src/functions/setName.test.ts +22 -18
- package/src/functions/setName.ts +15 -17
- package/src/functions/setRecord.test.ts +103 -0
- package/src/functions/setRecord.ts +59 -0
- package/src/functions/setRecords.test.ts +21 -18
- package/src/functions/setRecords.ts +19 -13
- package/src/functions/setResolver.test.ts +17 -25
- package/src/functions/setResolver.ts +15 -20
- package/src/functions/transferController.ts +28 -0
- package/src/functions/transferName.test.ts +24 -40
- package/src/functions/transferName.ts +17 -21
- package/src/functions/transferSubname.test.ts +19 -37
- package/src/functions/transferSubname.ts +39 -14
- package/src/functions/unwrapName.test.ts +19 -34
- package/src/functions/unwrapName.ts +23 -20
- package/src/functions/wrapName.test.ts +123 -37
- package/src/functions/wrapName.ts +73 -58
- package/src/generated/BaseRegistrarImplementation.ts +382 -296
- package/src/generated/BulkRenewal.ts +197 -0
- 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 +356 -191
- package/src/generated/Multicall.ts +73 -57
- package/src/generated/NameWrapper.ts +1047 -666
- package/src/generated/P256SHA256Algorithm.ts +21 -16
- package/src/generated/PublicResolver.ts +561 -390
- package/src/generated/RSASHA1Algorithm.ts +21 -16
- package/src/generated/RSASHA256Algorithm.ts +21 -16
- package/src/generated/ReverseRegistrar.ts +213 -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 +425 -58
- package/src/generated/common.ts +2 -0
- package/src/generated/factories/BulkRenewal__factory.ts +108 -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 +151 -4
- package/src/generated/factories/NameWrapper__factory.ts +279 -111
- package/src/generated/factories/P256SHA256Algorithm__factory.ts +4 -40
- package/src/generated/factories/PublicResolver__factory.ts +69 -14
- package/src/generated/factories/RSASHA1Algorithm__factory.ts +4 -40
- package/src/generated/factories/RSASHA256Algorithm__factory.ts +4 -40
- package/src/generated/factories/ReverseRegistrar__factory.ts +13 -0
- 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/UniversalResolver__factory.ts +277 -0
- package/src/generated/factories/index.ts +15 -0
- package/src/generated/index.ts +31 -1
- package/src/index.ts +191 -74
- package/src/utils/ccip.ts +148 -0
- package/src/utils/consts.ts +1 -0
- package/src/utils/contentHash.ts +24 -22
- package/src/utils/createReverseNode.ts +1 -1
- package/src/utils/fuses.ts +139 -4
- package/src/utils/generateFuseInput.ts +4 -8
- package/src/utils/labels.ts +6 -4
- package/src/utils/normalise.ts +11 -5
- package/src/utils/recordHelpers.ts +59 -20
- package/src/utils/registerHelpers.ts +122 -54
- package/src/utils/singleCall.ts +1 -1
- package/src/utils/validation.ts +8 -9
- package/src/utils/wrapper.ts +36 -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/types.d.ts +0 -2
- 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/getFuses.js +0 -62
- package/dist/cjs/functions/getHistory.d.ts +0 -54
- package/dist/cjs/functions/getNames.d.ts +0 -40
- package/dist/cjs/functions/getPrice.d.ts +0 -13
- package/dist/cjs/functions/getProfile.d.ts +0 -30
- 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/DefaultReverseResolver.d.ts +0 -66
- 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/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/StaticMetadataService.d.ts +0 -42
- 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 -471
- 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.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.d.ts +0 -29
- 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/getDNSOwner.d.ts +0 -7
- package/dist/esm/functions/getDNSOwner.js +0 -51
- 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.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.js +0 -48
- package/dist/esm/functions/getProfile.js +0 -299
- package/dist/esm/functions/getRecords.d.ts +0 -32
- 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.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.d.ts +0 -319
- 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.d.ts +0 -42
- 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.d.ts +0 -259
- 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.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.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 -193
- 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/functions/getFuses.test.ts +0 -103
- package/src/functions/getFuses.ts +0 -76
- package/src/generated/DoNotCallOnChainUniversalResolverProxy.ts +0 -285
- package/src/generated/factories/DoNotCallOnChainUniversalResolverProxy__factory.ts +0 -186
- package/src/tests/setup.ts +0 -53
- package/src/tests/withProvider.test.ts +0 -28
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,12 @@ 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
|
-
import type
|
|
16
|
-
import type {
|
|
17
|
-
getHistory,
|
|
18
|
-
getHistoryDetailForTransactionHash,
|
|
19
|
-
getHistoryWithDetail,
|
|
20
|
-
} from './functions/getHistory'
|
|
18
|
+
import type { getHistory } from './functions/getHistory'
|
|
21
19
|
import type getName from './functions/getName'
|
|
22
20
|
import type getNames from './functions/getNames'
|
|
23
21
|
import type getOwner from './functions/getOwner'
|
|
@@ -34,16 +32,35 @@ import type {
|
|
|
34
32
|
_getText,
|
|
35
33
|
} from './functions/getSpecificRecord'
|
|
36
34
|
import type getSubnames from './functions/getSubnames'
|
|
35
|
+
import type getWrapperData from './functions/getWrapperData'
|
|
36
|
+
import type registerName from './functions/registerName'
|
|
37
|
+
import type {
|
|
38
|
+
// eslint-disable-next-line import/no-named-default
|
|
39
|
+
default as renewNames,
|
|
40
|
+
renewNameWithData,
|
|
41
|
+
} from './functions/renewNames'
|
|
37
42
|
import type setName from './functions/setName'
|
|
43
|
+
import type setRecord from './functions/setRecord'
|
|
38
44
|
import type setRecords from './functions/setRecords'
|
|
39
45
|
import type setResolver from './functions/setResolver'
|
|
46
|
+
import type transferController from './functions/transferController'
|
|
40
47
|
import type transferName from './functions/transferName'
|
|
41
48
|
import type transferSubname from './functions/transferSubname'
|
|
42
49
|
import type unwrapName from './functions/unwrapName'
|
|
43
50
|
import type wrapName from './functions/wrapName'
|
|
44
|
-
import type getDNSOwner from './functions/getDNSOwner'
|
|
45
51
|
import GqlManager from './GqlManager'
|
|
46
52
|
import singleCall from './utils/singleCall'
|
|
53
|
+
import writeTx from './utils/writeTx'
|
|
54
|
+
import importDNSSECName from './functions/importDNSSECName'
|
|
55
|
+
|
|
56
|
+
export type {
|
|
57
|
+
Fuse,
|
|
58
|
+
FuseArrayPossibilities,
|
|
59
|
+
FuseObj,
|
|
60
|
+
NamedFusesToBurn,
|
|
61
|
+
UnnamedFuseType,
|
|
62
|
+
UnnamedFuseValues,
|
|
63
|
+
} from './utils/fuses'
|
|
47
64
|
|
|
48
65
|
type ENSOptions = {
|
|
49
66
|
graphURI?: string | null
|
|
@@ -53,6 +70,7 @@ type ENSOptions = {
|
|
|
53
70
|
export type InternalENS = {
|
|
54
71
|
options?: ENSOptions
|
|
55
72
|
provider?: ethers.providers.Provider
|
|
73
|
+
signer: JsonRpcSigner
|
|
56
74
|
graphURI?: string | null
|
|
57
75
|
} & ENS
|
|
58
76
|
|
|
@@ -76,12 +94,40 @@ type FirstArg<F> = F extends (x: infer A, ...args: any[]) => any ? A : never
|
|
|
76
94
|
|
|
77
95
|
type FunctionDeps<F> = Extract<keyof FirstArg<F>, string>[]
|
|
78
96
|
|
|
97
|
+
type WriteOptions = {
|
|
98
|
+
addressOrIndex?: string | number
|
|
99
|
+
signer?: JsonRpcSigner
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
type OptionalWriteOptions<F> = F extends (
|
|
103
|
+
x: any,
|
|
104
|
+
arg_0: infer Z,
|
|
105
|
+
options?: infer P,
|
|
106
|
+
) => infer R
|
|
107
|
+
? (name: Z, options?: P & WriteOptions) => R
|
|
108
|
+
: F extends (x: any, arg_0: infer Z, options: infer P) => infer R
|
|
109
|
+
? (name: Z, options: P & WriteOptions) => R
|
|
110
|
+
: never
|
|
111
|
+
|
|
112
|
+
interface WriteFunction<F extends (...args: any) => any> extends Function {
|
|
113
|
+
(...args: Parameters<OptionalWriteOptions<F>>): Promise<
|
|
114
|
+
ContractTransaction & {
|
|
115
|
+
customData?: Record<string, any>
|
|
116
|
+
}
|
|
117
|
+
>
|
|
118
|
+
populateTransaction: (
|
|
119
|
+
...args: Parameters<OptionalWriteOptions<F>>
|
|
120
|
+
) => Promise<PopulatedTransaction>
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
79
124
|
const graphURIEndpoints: Record<string, string> = {
|
|
80
125
|
1: 'https://api.thegraph.com/subgraphs/name/ensdomains/ens',
|
|
81
126
|
3: 'https://api.thegraph.com/subgraphs/name/ensdomains/ensropsten',
|
|
82
127
|
4: 'https://api.thegraph.com/subgraphs/name/ensdomains/ensrinkeby',
|
|
83
128
|
5: 'https://api.thegraph.com/subgraphs/name/ensdomains/ensgoerli',
|
|
84
129
|
}
|
|
130
|
+
/* eslint-enable @typescript-eslint/naming-convention */
|
|
85
131
|
|
|
86
132
|
export type RawFunction = {
|
|
87
133
|
raw: (...args: any[]) => Promise<{ to: string; data: string }>
|
|
@@ -121,12 +167,19 @@ export interface GenericGeneratedRawFunction
|
|
|
121
167
|
|
|
122
168
|
export class ENS {
|
|
123
169
|
[x: string]: any
|
|
170
|
+
|
|
124
171
|
protected options?: ENSOptions
|
|
172
|
+
|
|
125
173
|
protected provider?: ethers.providers.JsonRpcProvider
|
|
174
|
+
|
|
126
175
|
protected graphURI?: string | null
|
|
176
|
+
|
|
127
177
|
protected initialProvider?: ethers.providers.JsonRpcProvider
|
|
178
|
+
|
|
128
179
|
contracts?: ContractManager
|
|
180
|
+
|
|
129
181
|
getContractAddress = _getContractAddress
|
|
182
|
+
|
|
130
183
|
gqlInstance = new GqlManager()
|
|
131
184
|
|
|
132
185
|
constructor(options?: ENSOptions) {
|
|
@@ -143,7 +196,6 @@ export class ENS {
|
|
|
143
196
|
return
|
|
144
197
|
}
|
|
145
198
|
await this.setProvider(this.initialProvider)
|
|
146
|
-
return
|
|
147
199
|
}
|
|
148
200
|
|
|
149
201
|
/**
|
|
@@ -172,7 +224,13 @@ export class ENS {
|
|
|
172
224
|
path: string,
|
|
173
225
|
dependencies: FunctionDeps<F>,
|
|
174
226
|
exportName: string = 'default',
|
|
175
|
-
subFunc?:
|
|
227
|
+
subFunc?:
|
|
228
|
+
| 'raw'
|
|
229
|
+
| 'decode'
|
|
230
|
+
| 'combine'
|
|
231
|
+
| 'batch'
|
|
232
|
+
| 'write'
|
|
233
|
+
| 'populateTransaction',
|
|
176
234
|
passthrough?: RawFunction,
|
|
177
235
|
): Function => {
|
|
178
236
|
// if batch is specified, create batch func
|
|
@@ -186,37 +244,55 @@ export class ENS {
|
|
|
186
244
|
await thisRef.checkInitialProvider()
|
|
187
245
|
// import the module dynamically
|
|
188
246
|
const mod = await import(
|
|
189
|
-
/* webpackMode: "lazy", webpackChunkName: "[request]", webpackPreload: true */
|
|
247
|
+
/* webpackMode: "lazy", webpackChunkName: "[request]", webpackPreload: true, webpackExclude: /.*\.ts$/ */
|
|
190
248
|
`./functions/${path}`
|
|
191
249
|
)
|
|
192
250
|
|
|
193
251
|
// if combine isn't specified, run normally
|
|
194
252
|
// otherwise, create a function from the raw and decode functions
|
|
195
253
|
if (subFunc !== 'combine') {
|
|
254
|
+
const writeable =
|
|
255
|
+
subFunc === 'write' || subFunc === 'populateTransaction'
|
|
196
256
|
// get the function to call
|
|
197
|
-
const func =
|
|
198
|
-
|
|
199
|
-
return func(...args)
|
|
200
|
-
}
|
|
257
|
+
const func =
|
|
258
|
+
subFunc && !writeable ? mod[exportName][subFunc] : mod[exportName]
|
|
201
259
|
// get the dependencies to forward to the function as the first arg
|
|
202
|
-
|
|
260
|
+
let dependenciesToForward =
|
|
203
261
|
thisRef.forwardDependenciesFromArray<F>(dependencies)
|
|
262
|
+
|
|
263
|
+
// if func is write func, inject signer into dependencies
|
|
264
|
+
if (writeable) {
|
|
265
|
+
const options = (args[1] || {}) as WriteOptions
|
|
266
|
+
const signer =
|
|
267
|
+
options.signer ||
|
|
268
|
+
thisRef.provider?.getSigner(options.addressOrIndex)
|
|
269
|
+
const populate = subFunc === 'populateTransaction'
|
|
270
|
+
if (!signer) {
|
|
271
|
+
throw new Error('No signer specified')
|
|
272
|
+
}
|
|
273
|
+
delete options.addressOrIndex
|
|
274
|
+
delete options.signer
|
|
275
|
+
dependenciesToForward = { ...dependenciesToForward, signer }
|
|
276
|
+
return func(dependenciesToForward, args[0], options).then(
|
|
277
|
+
writeTx(signer, populate),
|
|
278
|
+
)
|
|
279
|
+
}
|
|
280
|
+
|
|
204
281
|
// return the function with the dependencies forwarded
|
|
205
282
|
return func(dependenciesToForward, ...args)
|
|
206
|
-
} else {
|
|
207
|
-
// get the dependencies to forward from raw and decode functions
|
|
208
|
-
const dependenciesToForward = thisRef.forwardDependenciesFromArray<
|
|
209
|
-
CombineFunctionDeps<F>
|
|
210
|
-
>(dependencies as any)
|
|
211
|
-
|
|
212
|
-
// return singleCall function with dependencies forwarded
|
|
213
|
-
return singleCall(
|
|
214
|
-
thisRef.provider!,
|
|
215
|
-
dependenciesToForward,
|
|
216
|
-
mod[exportName],
|
|
217
|
-
...args,
|
|
218
|
-
)
|
|
219
283
|
}
|
|
284
|
+
// get the dependencies to forward from raw and decode functions
|
|
285
|
+
const dependenciesToForward = thisRef.forwardDependenciesFromArray<
|
|
286
|
+
CombineFunctionDeps<F>
|
|
287
|
+
>(dependencies as any)
|
|
288
|
+
|
|
289
|
+
// return singleCall function with dependencies forwarded
|
|
290
|
+
return singleCall(
|
|
291
|
+
thisRef.provider!,
|
|
292
|
+
dependenciesToForward,
|
|
293
|
+
mod[exportName],
|
|
294
|
+
...args,
|
|
295
|
+
)
|
|
220
296
|
}
|
|
221
297
|
|
|
222
298
|
// if subfunc is combine, add raw and decode property methods to the function
|
|
@@ -240,6 +316,13 @@ export class ENS {
|
|
|
240
316
|
'batch',
|
|
241
317
|
{ raw: mainFunc.raw as any, decode: mainFunc.decode as any },
|
|
242
318
|
)
|
|
319
|
+
} else if (subFunc === 'write') {
|
|
320
|
+
mainFunc.populateTransaction = this.importGenerator<F>(
|
|
321
|
+
path,
|
|
322
|
+
dependencies,
|
|
323
|
+
exportName,
|
|
324
|
+
'populateTransaction',
|
|
325
|
+
)
|
|
243
326
|
}
|
|
244
327
|
|
|
245
328
|
return mainFunc as Function
|
|
@@ -259,6 +342,25 @@ export class ENS {
|
|
|
259
342
|
): OmitFirstArg<F> =>
|
|
260
343
|
this.importGenerator<F>(path, dependencies, exportName) as OmitFirstArg<F>
|
|
261
344
|
|
|
345
|
+
/**
|
|
346
|
+
* Generates a write wrapped function
|
|
347
|
+
* @param {string} path - The path of the exported function
|
|
348
|
+
* @param {FunctionDeps} dependencies - An array of ENS properties
|
|
349
|
+
* @param {string} exportName - The export name of the target function
|
|
350
|
+
* @returns {OmitFirstArg} - The generated wrapped function
|
|
351
|
+
*/
|
|
352
|
+
private generateWriteFunction = <F extends (...args: any) => any>(
|
|
353
|
+
path: string,
|
|
354
|
+
dependencies: FunctionDeps<F>,
|
|
355
|
+
exportName: string = 'default',
|
|
356
|
+
): WriteFunction<F> =>
|
|
357
|
+
this.importGenerator<F>(
|
|
358
|
+
path,
|
|
359
|
+
dependencies,
|
|
360
|
+
exportName,
|
|
361
|
+
'write',
|
|
362
|
+
) as WriteFunction<F>
|
|
363
|
+
|
|
262
364
|
/**
|
|
263
365
|
* Generates a wrapped function from raw and decode exports
|
|
264
366
|
* @param {string} path - The path of the exported function
|
|
@@ -298,7 +400,6 @@ export class ENS {
|
|
|
298
400
|
this.provider,
|
|
299
401
|
this.getContractAddress(String(network) as SupportedNetworkId),
|
|
300
402
|
)
|
|
301
|
-
return
|
|
302
403
|
}
|
|
303
404
|
|
|
304
405
|
/**
|
|
@@ -350,9 +451,10 @@ export class ENS {
|
|
|
350
451
|
['contracts'],
|
|
351
452
|
)
|
|
352
453
|
|
|
353
|
-
public
|
|
354
|
-
'
|
|
355
|
-
|
|
454
|
+
public getWrapperData = this.generateRawFunction<typeof getWrapperData>(
|
|
455
|
+
'getWrapperData',
|
|
456
|
+
['contracts'],
|
|
457
|
+
)
|
|
356
458
|
|
|
357
459
|
public getHistory = this.generateFunction<typeof getHistory>(
|
|
358
460
|
'getHistory',
|
|
@@ -360,22 +462,6 @@ export class ENS {
|
|
|
360
462
|
'getHistory',
|
|
361
463
|
)
|
|
362
464
|
|
|
363
|
-
public getHistoryWithDetail = this.generateFunction<
|
|
364
|
-
typeof getHistoryWithDetail
|
|
365
|
-
>(
|
|
366
|
-
'getHistory',
|
|
367
|
-
['contracts', 'gqlInstance', 'provider'],
|
|
368
|
-
'getHistoryWithDetail',
|
|
369
|
-
)
|
|
370
|
-
|
|
371
|
-
public getHistoryDetailForTransactionHash = this.generateFunction<
|
|
372
|
-
typeof getHistoryDetailForTransactionHash
|
|
373
|
-
>(
|
|
374
|
-
'getHistory',
|
|
375
|
-
['contracts', 'provider'],
|
|
376
|
-
'getHistoryDetailForTransactionHash',
|
|
377
|
-
)
|
|
378
|
-
|
|
379
465
|
public getContentHash = this.generateRawFunction<typeof getContentHash>(
|
|
380
466
|
'initialGetters',
|
|
381
467
|
['contracts', 'universalWrapper'],
|
|
@@ -442,6 +528,11 @@ export class ENS {
|
|
|
442
528
|
'getPrice',
|
|
443
529
|
)
|
|
444
530
|
|
|
531
|
+
public getDNSOwner = this.generateFunction<typeof getDNSOwner>(
|
|
532
|
+
'getDNSOwner',
|
|
533
|
+
[],
|
|
534
|
+
)
|
|
535
|
+
|
|
445
536
|
public universalWrapper = this.generateRawFunction<typeof universalWrapper>(
|
|
446
537
|
'initialGetters',
|
|
447
538
|
['contracts'],
|
|
@@ -458,59 +549,85 @@ export class ENS {
|
|
|
458
549
|
'multicallWrapper',
|
|
459
550
|
)
|
|
460
551
|
|
|
461
|
-
public setName = this.
|
|
552
|
+
public setName = this.generateWriteFunction<typeof setName>('setName', [
|
|
462
553
|
'contracts',
|
|
463
|
-
'provider',
|
|
464
554
|
])
|
|
465
555
|
|
|
466
|
-
public setRecords = this.
|
|
556
|
+
public setRecords = this.generateWriteFunction<typeof setRecords>(
|
|
557
|
+
'setRecords',
|
|
558
|
+
['contracts', 'provider', 'getResolver'],
|
|
559
|
+
)
|
|
560
|
+
|
|
561
|
+
public setRecord = this.generateWriteFunction<typeof setRecord>('setRecord', [
|
|
467
562
|
'contracts',
|
|
468
563
|
'provider',
|
|
469
564
|
'getResolver',
|
|
470
565
|
])
|
|
471
566
|
|
|
472
|
-
public setResolver = this.
|
|
567
|
+
public setResolver = this.generateWriteFunction<typeof setResolver>(
|
|
473
568
|
'setResolver',
|
|
474
|
-
['contracts'
|
|
569
|
+
['contracts'],
|
|
475
570
|
)
|
|
476
571
|
|
|
477
|
-
public transferName = this.
|
|
572
|
+
public transferName = this.generateWriteFunction<typeof transferName>(
|
|
478
573
|
'transferName',
|
|
479
|
-
['contracts'
|
|
574
|
+
['contracts'],
|
|
480
575
|
)
|
|
481
576
|
|
|
482
|
-
public
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
])
|
|
577
|
+
public transferController = this.generateWriteFunction<
|
|
578
|
+
typeof transferController
|
|
579
|
+
>('transferController', ['contracts'])
|
|
486
580
|
|
|
487
|
-
public
|
|
581
|
+
public wrapName = this.generateWriteFunction<typeof wrapName>('wrapName', [
|
|
488
582
|
'contracts',
|
|
489
|
-
'
|
|
583
|
+
'getExpiry',
|
|
490
584
|
])
|
|
491
585
|
|
|
492
|
-
public
|
|
586
|
+
public unwrapName = this.generateWriteFunction<typeof unwrapName>(
|
|
587
|
+
'unwrapName',
|
|
588
|
+
['contracts'],
|
|
589
|
+
)
|
|
590
|
+
|
|
591
|
+
public burnFuses = this.generateWriteFunction<typeof burnFuses>('burnFuses', [
|
|
493
592
|
'contracts',
|
|
494
|
-
'provider',
|
|
495
593
|
])
|
|
496
594
|
|
|
497
|
-
public
|
|
595
|
+
public importDNSSECName = this.generateWriteFunction<typeof importDNSSECName>(
|
|
596
|
+
'importDNSSECName',
|
|
597
|
+
['contracts', 'provider', 'signer'],
|
|
598
|
+
)
|
|
599
|
+
|
|
600
|
+
public createSubname = this.generateWriteFunction<typeof createSubname>(
|
|
498
601
|
'createSubname',
|
|
499
|
-
['contracts', '
|
|
602
|
+
['contracts', 'getExpiry'],
|
|
500
603
|
)
|
|
501
604
|
|
|
502
|
-
public deleteSubname = this.
|
|
605
|
+
public deleteSubname = this.generateWriteFunction<typeof deleteSubname>(
|
|
503
606
|
'deleteSubname',
|
|
504
|
-
['contracts'
|
|
607
|
+
['contracts'],
|
|
505
608
|
)
|
|
506
609
|
|
|
507
|
-
public transferSubname = this.
|
|
610
|
+
public transferSubname = this.generateWriteFunction<typeof transferSubname>(
|
|
508
611
|
'transferSubname',
|
|
509
|
-
['contracts', '
|
|
612
|
+
['contracts', 'getExpiry'],
|
|
510
613
|
)
|
|
511
614
|
|
|
512
|
-
public
|
|
513
|
-
'
|
|
514
|
-
[],
|
|
615
|
+
public commitName = this.generateWriteFunction<typeof commitName>(
|
|
616
|
+
'commitName',
|
|
617
|
+
['contracts'],
|
|
618
|
+
)
|
|
619
|
+
|
|
620
|
+
public registerName = this.generateWriteFunction<typeof registerName>(
|
|
621
|
+
'registerName',
|
|
622
|
+
['contracts'],
|
|
515
623
|
)
|
|
624
|
+
|
|
625
|
+
public renewNames = this.generateWriteFunction<typeof renewNames>(
|
|
626
|
+
'renewNames',
|
|
627
|
+
['contracts'],
|
|
628
|
+
)
|
|
629
|
+
|
|
630
|
+
public renewNameWithData = this.generateWriteFunction<
|
|
631
|
+
typeof renewNameWithData
|
|
632
|
+
>('renewNames', ['contracts'], 'renewNameWithData')
|
|
516
633
|
}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import type { BaseProvider, TransactionRequest } from '@ethersproject/providers'
|
|
2
|
+
import { BigNumber, Transaction } from 'ethers'
|
|
3
|
+
import {
|
|
4
|
+
arrayify,
|
|
5
|
+
BytesLike,
|
|
6
|
+
hexConcat,
|
|
7
|
+
hexDataSlice,
|
|
8
|
+
toUtf8String,
|
|
9
|
+
} from 'ethers/lib/utils'
|
|
10
|
+
|
|
11
|
+
function bytesPad(value: Uint8Array): Uint8Array {
|
|
12
|
+
if (value.length % 32 === 0) {
|
|
13
|
+
return value
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const result = new Uint8Array(Math.ceil(value.length / 32) * 32)
|
|
17
|
+
result.set(value)
|
|
18
|
+
return result
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function numPad(value: number): Uint8Array {
|
|
22
|
+
const result = arrayify(value)
|
|
23
|
+
if (result.length > 32) {
|
|
24
|
+
throw new Error('internal; should not happen')
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const padded = new Uint8Array(32)
|
|
28
|
+
padded.set(result, 32 - result.length)
|
|
29
|
+
return padded
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// ABI Encodes a series of (bytes, bytes, ...)
|
|
33
|
+
function encodeBytes(datas: Array<BytesLike>) {
|
|
34
|
+
const result: Array<Uint8Array> = []
|
|
35
|
+
|
|
36
|
+
let byteCount = 0
|
|
37
|
+
|
|
38
|
+
// Add place-holders for pointers as we add items
|
|
39
|
+
for (let i = 0; i < datas.length; i += 1) {
|
|
40
|
+
result.push(new Uint8Array(0))
|
|
41
|
+
byteCount += 32
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
for (let i = 0; i < datas.length; i += 1) {
|
|
45
|
+
const data = arrayify(datas[i])
|
|
46
|
+
|
|
47
|
+
// Update the bytes offset
|
|
48
|
+
result[i] = numPad(byteCount)
|
|
49
|
+
|
|
50
|
+
// The length and padded value of data
|
|
51
|
+
result.push(numPad(data.length))
|
|
52
|
+
result.push(bytesPad(data))
|
|
53
|
+
byteCount += 32 + Math.ceil(data.length / 32) * 32
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return hexConcat(result)
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function _parseBytes(result: string, start: number): null | string {
|
|
60
|
+
if (result === '0x') {
|
|
61
|
+
return null
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const offset = BigNumber.from(
|
|
65
|
+
hexDataSlice(result, start, start + 32),
|
|
66
|
+
).toNumber()
|
|
67
|
+
const length = BigNumber.from(
|
|
68
|
+
hexDataSlice(result, offset, offset + 32),
|
|
69
|
+
).toNumber()
|
|
70
|
+
|
|
71
|
+
return hexDataSlice(result, offset + 32, offset + 32 + length)
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
function _parseString(result: string, start: number): null | string {
|
|
75
|
+
try {
|
|
76
|
+
const bytes = _parseBytes(result, start)
|
|
77
|
+
if (bytes == null) return null
|
|
78
|
+
return toUtf8String(bytes)
|
|
79
|
+
} catch (error) {}
|
|
80
|
+
return null
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const ccipLookup = async (
|
|
84
|
+
provider: BaseProvider,
|
|
85
|
+
transaction: TransactionRequest,
|
|
86
|
+
result: string,
|
|
87
|
+
) => {
|
|
88
|
+
const txSender = transaction.to!
|
|
89
|
+
try {
|
|
90
|
+
const data = hexDataSlice(result, 4)
|
|
91
|
+
|
|
92
|
+
// Check the sender of the OffchainLookup matches the transaction
|
|
93
|
+
const sender = hexDataSlice(data, 0, 32)
|
|
94
|
+
if (!BigNumber.from(sender).eq(txSender)) {
|
|
95
|
+
throw new Error('CCIP Read sender did not match')
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// Read the URLs from the response
|
|
99
|
+
const urls: Array<string> = []
|
|
100
|
+
const urlsOffset = BigNumber.from(hexDataSlice(data, 32, 64)).toNumber()
|
|
101
|
+
const urlsLength = BigNumber.from(
|
|
102
|
+
hexDataSlice(data, urlsOffset, urlsOffset + 32),
|
|
103
|
+
).toNumber()
|
|
104
|
+
const urlsData = hexDataSlice(data, urlsOffset + 32)
|
|
105
|
+
for (let u = 0; u < urlsLength; u += 1) {
|
|
106
|
+
const url = _parseString(urlsData, u * 32)
|
|
107
|
+
if (url == null) {
|
|
108
|
+
throw new Error('CCIP Read contained corrupt URL string')
|
|
109
|
+
}
|
|
110
|
+
urls.push(url)
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Get the CCIP calldata to forward
|
|
114
|
+
const calldata = _parseBytes(data, 64)
|
|
115
|
+
|
|
116
|
+
// Get the callbackSelector (bytes4)
|
|
117
|
+
if (!BigNumber.from(hexDataSlice(data, 100, 128)).isZero()) {
|
|
118
|
+
throw new Error('CCIP Read callback selected included junk')
|
|
119
|
+
}
|
|
120
|
+
const callbackSelector = hexDataSlice(data, 96, 100)
|
|
121
|
+
|
|
122
|
+
// Get the extra data to send back to the contract as context
|
|
123
|
+
const extraData = _parseBytes(data, 128)
|
|
124
|
+
|
|
125
|
+
const ccipResult = await provider.ccipReadFetch(
|
|
126
|
+
<Transaction>transaction,
|
|
127
|
+
calldata!,
|
|
128
|
+
urls,
|
|
129
|
+
)
|
|
130
|
+
if (ccipResult == null) {
|
|
131
|
+
throw new Error('CCIP Read disabled or provided no URLs')
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
const tx = {
|
|
135
|
+
to: sender,
|
|
136
|
+
data: hexConcat([
|
|
137
|
+
callbackSelector,
|
|
138
|
+
encodeBytes([ccipResult, extraData!]),
|
|
139
|
+
]),
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
return await provider._call(tx, 'latest', 1)
|
|
143
|
+
} catch (error) {
|
|
144
|
+
console.error(error)
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export default ccipLookup
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const EMPTY_ADDRESS = '0x0000000000000000000000000000000000000000'
|
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`
|