@ensdomains/ensjs 3.0.0-beta.1 → 3.0.0-beta.10
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/clients/decorators/subgraph.js.map +1 -1
- package/dist/cjs/clients/decorators/wallet.js +2 -0
- package/dist/cjs/clients/decorators/wallet.js.map +1 -1
- package/dist/cjs/clients/public.js.map +1 -1
- package/dist/cjs/clients/subgraph.js.map +1 -1
- package/dist/cjs/contracts/consts.js +53 -2
- package/dist/cjs/contracts/consts.js.map +1 -1
- package/dist/cjs/dns.js +3 -3
- package/dist/cjs/dns.js.map +1 -1
- package/dist/cjs/errors/subgraph.js.map +1 -1
- package/dist/cjs/errors/utils.js +27 -18
- package/dist/cjs/errors/utils.js.map +1 -1
- package/dist/cjs/errors/version.js +1 -1
- package/dist/cjs/errors/version.js.map +1 -1
- package/dist/cjs/functions/dns/{prepareDnsImport.js → getDnsImportData.js} +3 -3
- package/dist/cjs/functions/dns/{prepareDnsImport.js.map → getDnsImportData.js.map} +1 -1
- package/dist/cjs/functions/dns/importDnsName.js +7 -7
- package/dist/cjs/functions/dns/importDnsName.js.map +1 -1
- package/dist/cjs/functions/public/_getAbi.js +2 -2
- package/dist/cjs/functions/public/_getAbi.js.map +1 -1
- package/dist/cjs/functions/public/_getAddr.js +9 -19
- package/dist/cjs/functions/public/_getAddr.js.map +1 -1
- package/dist/cjs/functions/public/_getContentHash.js +1 -1
- package/dist/cjs/functions/public/batch.js.map +1 -1
- package/dist/cjs/functions/public/getAbiRecord.js.map +1 -1
- package/dist/cjs/functions/public/getAddressRecord.js.map +1 -1
- package/dist/cjs/functions/public/getAvailable.js.map +1 -1
- package/dist/cjs/functions/public/getContentHashRecord.js.map +1 -1
- package/dist/cjs/functions/public/getExpiry.js.map +1 -1
- package/dist/cjs/functions/public/getName.js.map +1 -1
- package/dist/cjs/functions/public/getOwner.js.map +1 -1
- package/dist/cjs/functions/public/getPrice.js.map +1 -1
- package/dist/cjs/functions/public/getRecords.js +51 -37
- package/dist/cjs/functions/public/getRecords.js.map +1 -1
- package/dist/cjs/functions/public/getResolver.js.map +1 -1
- package/dist/cjs/functions/public/getSupportedInterfaces.js +1 -1
- package/dist/cjs/functions/public/getSupportedInterfaces.js.map +1 -1
- package/dist/cjs/functions/public/getTextRecord.js.map +1 -1
- package/dist/cjs/functions/public/getWrapperData.js.map +1 -1
- package/dist/cjs/functions/public/getWrapperName.js.map +1 -1
- package/dist/cjs/functions/public/multicallWrapper.js.map +1 -1
- package/dist/cjs/functions/public/universalWrapper.js.map +1 -1
- package/dist/cjs/functions/subgraph/client.js.map +1 -1
- package/dist/cjs/functions/subgraph/filters.js +3 -0
- package/dist/cjs/functions/subgraph/filters.js.map +1 -0
- package/dist/cjs/functions/subgraph/getDecodedName.js.map +1 -1
- package/dist/cjs/functions/subgraph/getNameHistory.js +4 -3
- package/dist/cjs/functions/subgraph/getNameHistory.js.map +1 -1
- package/dist/cjs/functions/subgraph/getNamesForAddress.js +155 -190
- package/dist/cjs/functions/subgraph/getNamesForAddress.js.map +1 -1
- package/dist/cjs/functions/subgraph/getSubgraphRecords.js +34 -26
- package/dist/cjs/functions/subgraph/getSubgraphRecords.js.map +1 -1
- package/dist/cjs/functions/subgraph/getSubgraphRegistrant.js.map +1 -1
- package/dist/cjs/functions/subgraph/getSubnames.js +95 -108
- package/dist/cjs/functions/subgraph/getSubnames.js.map +1 -1
- package/dist/cjs/functions/subgraph/types.js +3 -0
- package/dist/cjs/functions/subgraph/types.js.map +1 -0
- package/dist/cjs/functions/subgraph/utils.js.map +1 -1
- package/dist/cjs/functions/wallet/clearRecords.js +26 -0
- package/dist/cjs/functions/wallet/clearRecords.js.map +1 -0
- package/dist/cjs/functions/wallet/commitName.js.map +1 -1
- package/dist/cjs/functions/wallet/createSubname.js +1 -1
- package/dist/cjs/functions/wallet/createSubname.js.map +1 -1
- package/dist/cjs/functions/wallet/deleteSubname.js.map +1 -1
- package/dist/cjs/functions/wallet/registerName.js.map +1 -1
- package/dist/cjs/functions/wallet/renewNames.js.map +1 -1
- package/dist/cjs/functions/wallet/setAbiRecord.js.map +1 -1
- package/dist/cjs/functions/wallet/setAddressRecord.js.map +1 -1
- package/dist/cjs/functions/wallet/setChildFuses.js +1 -1
- package/dist/cjs/functions/wallet/setChildFuses.js.map +1 -1
- package/dist/cjs/functions/wallet/setContentHashRecord.js.map +1 -1
- package/dist/cjs/functions/wallet/setFuses.js +1 -1
- package/dist/cjs/functions/wallet/setFuses.js.map +1 -1
- package/dist/cjs/functions/wallet/setPrimaryName.js.map +1 -1
- package/dist/cjs/functions/wallet/setRecords.js.map +1 -1
- package/dist/cjs/functions/wallet/setResolver.js.map +1 -1
- package/dist/cjs/functions/wallet/setTextRecord.js.map +1 -1
- package/dist/cjs/functions/wallet/transferName.js.map +1 -1
- package/dist/cjs/functions/wallet/unwrapName.js.map +1 -1
- package/dist/cjs/functions/wallet/wrapName.js +3 -1
- package/dist/cjs/functions/wallet/wrapName.js.map +1 -1
- package/dist/cjs/index.js +1 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/subgraph.js +4 -1
- package/dist/cjs/subgraph.js.map +1 -1
- package/dist/cjs/utils/contentHash.js +60 -131
- package/dist/cjs/utils/contentHash.js.map +1 -1
- package/dist/cjs/utils/encoders/encodeAbi.js +33 -3
- package/dist/cjs/utils/encoders/encodeAbi.js.map +1 -1
- package/dist/cjs/utils/encoders/encodeClearRecords.js +12 -0
- package/dist/cjs/utils/encoders/encodeClearRecords.js.map +1 -0
- package/dist/cjs/utils/encoders/encodeSetAddr.js +5 -16
- package/dist/cjs/utils/encoders/encodeSetAddr.js.map +1 -1
- package/dist/cjs/utils/encoders/encodeSetContentHash.js +1 -4
- package/dist/cjs/utils/encoders/encodeSetContentHash.js.map +1 -1
- package/dist/cjs/utils/format.js +1 -5
- package/dist/cjs/utils/format.js.map +1 -1
- package/dist/cjs/utils/fuses.js +184 -200
- package/dist/cjs/utils/fuses.js.map +1 -1
- package/dist/cjs/utils/generateRecordCallArray.js +2 -7
- package/dist/cjs/utils/generateRecordCallArray.js.map +1 -1
- package/dist/cjs/utils/index.js +31 -7
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/normaliseCoinId.js +35 -0
- package/dist/cjs/utils/normaliseCoinId.js.map +1 -0
- package/dist/cjs/utils/registerHelpers.js +3 -1
- package/dist/cjs/utils/registerHelpers.js.map +1 -1
- package/dist/cjs/wallet.js +3 -1
- package/dist/cjs/wallet.js.map +1 -1
- package/dist/esm/clients/decorators/subgraph.js.map +1 -1
- package/dist/esm/clients/decorators/wallet.js +2 -0
- package/dist/esm/clients/decorators/wallet.js.map +1 -1
- package/dist/esm/clients/public.js.map +1 -1
- package/dist/esm/clients/subgraph.js.map +1 -1
- package/dist/esm/contracts/consts.js +53 -2
- package/dist/esm/contracts/consts.js.map +1 -1
- package/dist/esm/dns.js +1 -1
- package/dist/esm/dns.js.map +1 -1
- package/dist/esm/errors/subgraph.js.map +1 -1
- package/dist/esm/errors/utils.js +24 -16
- package/dist/esm/errors/utils.js.map +1 -1
- package/dist/esm/errors/version.js +1 -1
- package/dist/esm/errors/version.js.map +1 -1
- package/dist/esm/functions/dns/{prepareDnsImport.js → getDnsImportData.js} +10 -10
- package/dist/esm/functions/dns/{prepareDnsImport.js.map → getDnsImportData.js.map} +1 -1
- package/dist/esm/functions/dns/getDnsOwner.js +1 -1
- package/dist/esm/functions/dns/importDnsName.js +13 -12
- package/dist/esm/functions/dns/importDnsName.js.map +1 -1
- package/dist/esm/functions/public/_getAbi.js +2 -2
- package/dist/esm/functions/public/_getAbi.js.map +1 -1
- package/dist/esm/functions/public/_getAddr.js +10 -20
- package/dist/esm/functions/public/_getAddr.js.map +1 -1
- package/dist/esm/functions/public/_getContentHash.js +2 -2
- package/dist/esm/functions/public/batch.js +2 -1
- package/dist/esm/functions/public/batch.js.map +1 -1
- package/dist/esm/functions/public/getAbiRecord.js +2 -1
- package/dist/esm/functions/public/getAbiRecord.js.map +1 -1
- package/dist/esm/functions/public/getAddressRecord.js +2 -1
- package/dist/esm/functions/public/getAddressRecord.js.map +1 -1
- package/dist/esm/functions/public/getAvailable.js +2 -1
- package/dist/esm/functions/public/getAvailable.js.map +1 -1
- package/dist/esm/functions/public/getContentHashRecord.js +2 -1
- package/dist/esm/functions/public/getContentHashRecord.js.map +1 -1
- package/dist/esm/functions/public/getExpiry.js +2 -1
- package/dist/esm/functions/public/getExpiry.js.map +1 -1
- package/dist/esm/functions/public/getName.js +2 -1
- package/dist/esm/functions/public/getName.js.map +1 -1
- package/dist/esm/functions/public/getOwner.js +3 -2
- package/dist/esm/functions/public/getOwner.js.map +1 -1
- package/dist/esm/functions/public/getPrice.js +3 -2
- package/dist/esm/functions/public/getPrice.js.map +1 -1
- package/dist/esm/functions/public/getRecords.js +54 -39
- package/dist/esm/functions/public/getRecords.js.map +1 -1
- package/dist/esm/functions/public/getResolver.js +2 -1
- package/dist/esm/functions/public/getResolver.js.map +1 -1
- package/dist/esm/functions/public/getSupportedInterfaces.js +24 -2
- package/dist/esm/functions/public/getSupportedInterfaces.js.map +1 -1
- package/dist/esm/functions/public/getTextRecord.js +2 -1
- package/dist/esm/functions/public/getTextRecord.js.map +1 -1
- package/dist/esm/functions/public/getWrapperData.js +2 -1
- package/dist/esm/functions/public/getWrapperData.js.map +1 -1
- package/dist/esm/functions/public/getWrapperName.js +2 -1
- package/dist/esm/functions/public/getWrapperName.js.map +1 -1
- package/dist/esm/functions/public/multicallWrapper.js.map +1 -1
- package/dist/esm/functions/public/universalWrapper.js.map +1 -1
- package/dist/esm/functions/subgraph/client.js.map +1 -1
- package/dist/esm/functions/subgraph/filters.js +2 -0
- package/dist/esm/functions/subgraph/filters.js.map +1 -0
- package/dist/esm/functions/subgraph/getDecodedName.js +2 -1
- package/dist/esm/functions/subgraph/getDecodedName.js.map +1 -1
- package/dist/esm/functions/subgraph/getNameHistory.js +8 -6
- package/dist/esm/functions/subgraph/getNameHistory.js.map +1 -1
- package/dist/esm/functions/subgraph/getNamesForAddress.js +163 -192
- package/dist/esm/functions/subgraph/getNamesForAddress.js.map +1 -1
- package/dist/esm/functions/subgraph/getSubgraphRecords.js +36 -27
- package/dist/esm/functions/subgraph/getSubgraphRecords.js.map +1 -1
- package/dist/esm/functions/subgraph/getSubgraphRegistrant.js +2 -1
- package/dist/esm/functions/subgraph/getSubgraphRegistrant.js.map +1 -1
- package/dist/esm/functions/subgraph/getSubnames.js +103 -112
- package/dist/esm/functions/subgraph/getSubnames.js.map +1 -1
- package/dist/esm/functions/subgraph/types.js +2 -0
- package/dist/esm/functions/subgraph/types.js.map +1 -0
- package/dist/esm/functions/subgraph/utils.js.map +1 -1
- package/dist/esm/functions/wallet/clearRecords.js +44 -0
- package/dist/esm/functions/wallet/clearRecords.js.map +1 -0
- package/dist/esm/functions/wallet/commitName.js +3 -1
- package/dist/esm/functions/wallet/commitName.js.map +1 -1
- package/dist/esm/functions/wallet/createSubname.js +3 -2
- package/dist/esm/functions/wallet/createSubname.js.map +1 -1
- package/dist/esm/functions/wallet/deleteSubname.js +2 -1
- package/dist/esm/functions/wallet/deleteSubname.js.map +1 -1
- package/dist/esm/functions/wallet/registerName.js +4 -1
- package/dist/esm/functions/wallet/registerName.js.map +1 -1
- package/dist/esm/functions/wallet/renewNames.js +3 -1
- package/dist/esm/functions/wallet/renewNames.js.map +1 -1
- package/dist/esm/functions/wallet/setAbiRecord.js +3 -1
- package/dist/esm/functions/wallet/setAbiRecord.js.map +1 -1
- package/dist/esm/functions/wallet/setAddressRecord.js +2 -1
- package/dist/esm/functions/wallet/setAddressRecord.js.map +1 -1
- package/dist/esm/functions/wallet/setChildFuses.js +3 -2
- package/dist/esm/functions/wallet/setChildFuses.js.map +1 -1
- package/dist/esm/functions/wallet/setContentHashRecord.js +2 -1
- package/dist/esm/functions/wallet/setContentHashRecord.js.map +1 -1
- package/dist/esm/functions/wallet/setFuses.js +4 -3
- package/dist/esm/functions/wallet/setFuses.js.map +1 -1
- package/dist/esm/functions/wallet/setPrimaryName.js +2 -1
- package/dist/esm/functions/wallet/setPrimaryName.js.map +1 -1
- package/dist/esm/functions/wallet/setRecords.js +2 -1
- package/dist/esm/functions/wallet/setRecords.js.map +1 -1
- package/dist/esm/functions/wallet/setResolver.js +2 -1
- package/dist/esm/functions/wallet/setResolver.js.map +1 -1
- package/dist/esm/functions/wallet/setTextRecord.js +2 -1
- package/dist/esm/functions/wallet/setTextRecord.js.map +1 -1
- package/dist/esm/functions/wallet/transferName.js +2 -1
- package/dist/esm/functions/wallet/transferName.js.map +1 -1
- package/dist/esm/functions/wallet/unwrapName.js +2 -1
- package/dist/esm/functions/wallet/unwrapName.js.map +1 -1
- package/dist/esm/functions/wallet/wrapName.js +6 -3
- package/dist/esm/functions/wallet/wrapName.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/subgraph.js +1 -0
- package/dist/esm/subgraph.js.map +1 -1
- package/dist/esm/utils/contentHash.js +56 -128
- package/dist/esm/utils/contentHash.js.map +1 -1
- package/dist/esm/utils/encoders/encodeAbi.js +30 -2
- package/dist/esm/utils/encoders/encodeAbi.js.map +1 -1
- package/dist/esm/utils/encoders/encodeClearRecords.js +8 -0
- package/dist/esm/utils/encoders/encodeClearRecords.js.map +1 -0
- package/dist/esm/utils/encoders/encodeSetAddr.js +5 -16
- package/dist/esm/utils/encoders/encodeSetAddr.js.map +1 -1
- package/dist/esm/utils/encoders/encodeSetContentHash.js +2 -5
- package/dist/esm/utils/encoders/encodeSetContentHash.js.map +1 -1
- package/dist/esm/utils/format.js +0 -2
- package/dist/esm/utils/format.js.map +1 -1
- package/dist/esm/utils/fuses.js +183 -201
- package/dist/esm/utils/fuses.js.map +1 -1
- package/dist/esm/utils/generateRecordCallArray.js +3 -7
- package/dist/esm/utils/generateRecordCallArray.js.map +1 -1
- package/dist/esm/utils/index.js +5 -3
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/normaliseCoinId.js +30 -0
- package/dist/esm/utils/normaliseCoinId.js.map +1 -0
- package/dist/esm/utils/registerHelpers.js +4 -2
- package/dist/esm/utils/registerHelpers.js.map +1 -1
- package/dist/esm/wallet.js +1 -0
- package/dist/esm/wallet.js.map +1 -1
- package/dist/types/clients/decorators/public.d.ts +1 -519
- package/dist/types/clients/decorators/public.d.ts.map +1 -1
- package/dist/types/clients/decorators/subgraph.d.ts +2 -520
- package/dist/types/clients/decorators/subgraph.d.ts.map +1 -1
- package/dist/types/clients/decorators/wallet.d.ts +66 -47
- package/dist/types/clients/decorators/wallet.d.ts.map +1 -1
- package/dist/types/clients/public.d.ts +24 -265
- package/dist/types/clients/public.d.ts.map +1 -1
- package/dist/types/clients/subgraph.d.ts +19 -260
- package/dist/types/clients/subgraph.d.ts.map +1 -1
- package/dist/types/clients/wallet.d.ts +54 -86
- package/dist/types/clients/wallet.d.ts.map +1 -1
- package/dist/types/contracts/consts.d.ts +52 -3
- package/dist/types/contracts/consts.d.ts.map +1 -1
- package/dist/types/dns.d.ts +2 -2
- package/dist/types/dns.d.ts.map +1 -1
- package/dist/types/errors/subgraph.d.ts +4 -4
- package/dist/types/errors/subgraph.d.ts.map +1 -1
- package/dist/types/errors/utils.d.ts +16 -13
- package/dist/types/errors/utils.d.ts.map +1 -1
- package/dist/types/errors/version.d.ts +1 -1
- package/dist/types/errors/version.d.ts.map +1 -1
- package/dist/types/functions/dns/getDnsImportData.d.ts +39 -0
- package/dist/types/functions/dns/{prepareDnsImport.d.ts.map → getDnsImportData.d.ts.map} +1 -1
- package/dist/types/functions/dns/getDnsOwner.d.ts +1 -1
- package/dist/types/functions/dns/importDnsName.d.ts +88 -102
- package/dist/types/functions/dns/importDnsName.d.ts.map +1 -1
- package/dist/types/functions/public/_getAddr.d.ts.map +1 -1
- package/dist/types/functions/public/batch.d.ts +2 -1
- package/dist/types/functions/public/batch.d.ts.map +1 -1
- package/dist/types/functions/public/getAbiRecord.d.ts +2 -1
- package/dist/types/functions/public/getAbiRecord.d.ts.map +1 -1
- package/dist/types/functions/public/getAddressRecord.d.ts +2 -1
- package/dist/types/functions/public/getAddressRecord.d.ts.map +1 -1
- package/dist/types/functions/public/getAvailable.d.ts +2 -1
- package/dist/types/functions/public/getAvailable.d.ts.map +1 -1
- package/dist/types/functions/public/getContentHashRecord.d.ts +2 -1
- package/dist/types/functions/public/getContentHashRecord.d.ts.map +1 -1
- package/dist/types/functions/public/getExpiry.d.ts +2 -1
- package/dist/types/functions/public/getExpiry.d.ts.map +1 -1
- package/dist/types/functions/public/getName.d.ts +2 -1
- package/dist/types/functions/public/getName.d.ts.map +1 -1
- package/dist/types/functions/public/getOwner.d.ts +19 -9
- package/dist/types/functions/public/getOwner.d.ts.map +1 -1
- package/dist/types/functions/public/getPrice.d.ts +3 -2
- package/dist/types/functions/public/getPrice.d.ts.map +1 -1
- package/dist/types/functions/public/getRecords.d.ts +3 -2
- package/dist/types/functions/public/getRecords.d.ts.map +1 -1
- package/dist/types/functions/public/getResolver.d.ts +2 -1
- package/dist/types/functions/public/getResolver.d.ts.map +1 -1
- package/dist/types/functions/public/getSupportedInterfaces.d.ts +41 -4
- package/dist/types/functions/public/getSupportedInterfaces.d.ts.map +1 -1
- package/dist/types/functions/public/getTextRecord.d.ts +2 -1
- package/dist/types/functions/public/getTextRecord.d.ts.map +1 -1
- package/dist/types/functions/public/getWrapperData.d.ts +4 -3
- package/dist/types/functions/public/getWrapperData.d.ts.map +1 -1
- package/dist/types/functions/public/getWrapperName.d.ts +2 -1
- package/dist/types/functions/public/getWrapperName.d.ts.map +1 -1
- package/dist/types/functions/subgraph/client.d.ts +2 -2
- package/dist/types/functions/subgraph/client.d.ts.map +1 -1
- package/dist/types/functions/subgraph/filters.d.ts +693 -0
- package/dist/types/functions/subgraph/filters.d.ts.map +1 -0
- package/dist/types/functions/subgraph/getDecodedName.d.ts +2 -1
- package/dist/types/functions/subgraph/getDecodedName.d.ts.map +1 -1
- package/dist/types/functions/subgraph/getNameHistory.d.ts +2 -1
- package/dist/types/functions/subgraph/getNameHistory.d.ts.map +1 -1
- package/dist/types/functions/subgraph/getNamesForAddress.d.ts +7 -2
- package/dist/types/functions/subgraph/getNamesForAddress.d.ts.map +1 -1
- package/dist/types/functions/subgraph/getSubgraphRecords.d.ts +2 -1
- package/dist/types/functions/subgraph/getSubgraphRecords.d.ts.map +1 -1
- package/dist/types/functions/subgraph/getSubgraphRegistrant.d.ts +2 -1
- package/dist/types/functions/subgraph/getSubgraphRegistrant.d.ts.map +1 -1
- package/dist/types/functions/subgraph/getSubnames.d.ts +5 -2
- package/dist/types/functions/subgraph/getSubnames.d.ts.map +1 -1
- package/dist/types/functions/subgraph/types.d.ts +13 -0
- package/dist/types/functions/subgraph/types.d.ts.map +1 -0
- package/dist/types/functions/subgraph/utils.d.ts +2 -2
- package/dist/types/functions/subgraph/utils.d.ts.map +1 -1
- package/dist/types/functions/wallet/clearRecords.d.ts +555 -0
- package/dist/types/functions/wallet/clearRecords.d.ts.map +1 -0
- package/dist/types/functions/wallet/commitName.d.ts +80 -93
- package/dist/types/functions/wallet/commitName.d.ts.map +1 -1
- package/dist/types/functions/wallet/createSubname.d.ts +82 -96
- package/dist/types/functions/wallet/createSubname.d.ts.map +1 -1
- package/dist/types/functions/wallet/deleteSubname.d.ts +79 -93
- package/dist/types/functions/wallet/deleteSubname.d.ts.map +1 -1
- package/dist/types/functions/wallet/registerName.d.ts +80 -89
- package/dist/types/functions/wallet/registerName.d.ts.map +1 -1
- package/dist/types/functions/wallet/renewNames.d.ts +79 -89
- package/dist/types/functions/wallet/renewNames.d.ts.map +1 -1
- package/dist/types/functions/wallet/setAbiRecord.d.ts +80 -93
- package/dist/types/functions/wallet/setAbiRecord.d.ts.map +1 -1
- package/dist/types/functions/wallet/setAddressRecord.d.ts +79 -93
- package/dist/types/functions/wallet/setAddressRecord.d.ts.map +1 -1
- package/dist/types/functions/wallet/setChildFuses.d.ts +81 -95
- package/dist/types/functions/wallet/setChildFuses.d.ts.map +1 -1
- package/dist/types/functions/wallet/setContentHashRecord.d.ts +79 -93
- package/dist/types/functions/wallet/setContentHashRecord.d.ts.map +1 -1
- package/dist/types/functions/wallet/setFuses.d.ts +81 -95
- package/dist/types/functions/wallet/setFuses.d.ts.map +1 -1
- package/dist/types/functions/wallet/setPrimaryName.d.ts +79 -93
- package/dist/types/functions/wallet/setPrimaryName.d.ts.map +1 -1
- package/dist/types/functions/wallet/setRecords.d.ts +79 -93
- package/dist/types/functions/wallet/setRecords.d.ts.map +1 -1
- package/dist/types/functions/wallet/setResolver.d.ts +79 -93
- package/dist/types/functions/wallet/setResolver.d.ts.map +1 -1
- package/dist/types/functions/wallet/setTextRecord.d.ts +79 -93
- package/dist/types/functions/wallet/setTextRecord.d.ts.map +1 -1
- package/dist/types/functions/wallet/transferName.d.ts +80 -94
- package/dist/types/functions/wallet/transferName.d.ts.map +1 -1
- package/dist/types/functions/wallet/unwrapName.d.ts +79 -93
- package/dist/types/functions/wallet/unwrapName.d.ts.map +1 -1
- package/dist/types/functions/wallet/wrapName.d.ts +81 -95
- package/dist/types/functions/wallet/wrapName.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/subgraph.d.ts +1 -0
- package/dist/types/subgraph.d.ts.map +1 -1
- package/dist/types/types.d.ts +3 -1
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utils/contentHash.d.ts +10 -11
- package/dist/types/utils/contentHash.d.ts.map +1 -1
- package/dist/types/utils/encoders/encodeAbi.d.ts +8 -5
- package/dist/types/utils/encoders/encodeAbi.d.ts.map +1 -1
- package/dist/types/utils/encoders/encodeClearRecords.d.ts +3 -0
- package/dist/types/utils/encoders/encodeClearRecords.d.ts.map +1 -0
- package/dist/types/utils/encoders/encodeSetAddr.d.ts.map +1 -1
- package/dist/types/utils/encoders/encodeSetContentHash.d.ts.map +1 -1
- package/dist/types/utils/format.d.ts +0 -2
- package/dist/types/utils/format.d.ts.map +1 -1
- package/dist/types/utils/fuses.d.ts +164 -125
- package/dist/types/utils/fuses.d.ts.map +1 -1
- package/dist/types/utils/generateRecordCallArray.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts +5 -3
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/utils/normaliseCoinId.d.ts +10 -0
- package/dist/types/utils/normaliseCoinId.d.ts.map +1 -0
- package/dist/types/utils/registerHelpers.d.ts +2 -2
- package/dist/types/utils/registerHelpers.d.ts.map +1 -1
- package/dist/types/wallet.d.ts +18 -17
- package/dist/types/wallet.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/clients/decorators/subgraph.ts +1 -0
- package/src/clients/decorators/wallet.ts +41 -3
- package/src/clients/public.ts +3 -2
- package/src/clients/subgraph.ts +3 -2
- package/src/clients/wallet.ts +1 -1
- package/src/contracts/consts.ts +58 -13
- package/src/dns.ts +7 -5
- package/src/errors/subgraph.ts +4 -4
- package/src/errors/utils.ts +29 -18
- package/src/errors/version.ts +1 -1
- package/src/functions/dns/{prepareDnsImport.ts → getDnsImportData.ts} +13 -13
- package/src/functions/dns/getDnsOwner.ts +1 -1
- package/src/functions/dns/importDnsName.ts +21 -15
- package/src/functions/public/_getAbi.ts +2 -2
- package/src/functions/public/_getAddr.ts +16 -23
- package/src/functions/public/_getContentHash.ts +2 -2
- package/src/functions/public/batch.ts +2 -1
- package/src/functions/public/getAbiRecord.ts +2 -1
- package/src/functions/public/getAddressRecord.ts +2 -1
- package/src/functions/public/getAvailable.ts +2 -1
- package/src/functions/public/getContentHashRecord.ts +2 -1
- package/src/functions/public/getExpiry.ts +2 -1
- package/src/functions/public/getName.ts +3 -2
- package/src/functions/public/getOwner.ts +54 -33
- package/src/functions/public/getPrice.ts +3 -2
- package/src/functions/public/getRecords.ts +125 -105
- package/src/functions/public/getResolver.ts +3 -2
- package/src/functions/public/getSupportedInterfaces.ts +70 -10
- package/src/functions/public/getTextRecord.ts +2 -1
- package/src/functions/public/getWrapperData.ts +5 -4
- package/src/functions/public/getWrapperName.ts +3 -2
- package/src/functions/public/multicallWrapper.ts +1 -1
- package/src/functions/public/universalWrapper.ts +1 -1
- package/src/functions/subgraph/client.ts +2 -2
- package/src/functions/subgraph/filters.ts +702 -0
- package/src/functions/subgraph/getDecodedName.ts +2 -1
- package/src/functions/subgraph/getNameHistory.ts +8 -6
- package/src/functions/subgraph/getNamesForAddress.ts +199 -195
- package/src/functions/subgraph/getSubgraphRecords.ts +65 -33
- package/src/functions/subgraph/getSubgraphRegistrant.ts +2 -1
- package/src/functions/subgraph/getSubnames.ts +123 -114
- package/src/functions/subgraph/types.ts +13 -0
- package/src/functions/subgraph/utils.ts +2 -2
- package/src/functions/wallet/clearRecords.ts +97 -0
- package/src/functions/wallet/commitName.ts +3 -1
- package/src/functions/wallet/createSubname.ts +6 -5
- package/src/functions/wallet/deleteSubname.ts +2 -1
- package/src/functions/wallet/registerName.ts +4 -1
- package/src/functions/wallet/renewNames.ts +3 -1
- package/src/functions/wallet/setAbiRecord.ts +3 -1
- package/src/functions/wallet/setAddressRecord.ts +2 -1
- package/src/functions/wallet/setChildFuses.ts +5 -4
- package/src/functions/wallet/setContentHashRecord.ts +2 -1
- package/src/functions/wallet/setFuses.ts +8 -4
- package/src/functions/wallet/setPrimaryName.ts +2 -1
- package/src/functions/wallet/setRecords.ts +2 -1
- package/src/functions/wallet/setResolver.ts +2 -1
- package/src/functions/wallet/setTextRecord.ts +2 -1
- package/src/functions/wallet/transferName.ts +3 -2
- package/src/functions/wallet/unwrapName.ts +2 -1
- package/src/functions/wallet/wrapName.ts +10 -4
- package/src/index.ts +0 -1
- package/src/subgraph.ts +5 -0
- package/src/types.ts +6 -3
- package/src/utils/contentHash.ts +65 -113
- package/src/utils/encoders/encodeAbi.ts +37 -8
- package/src/utils/encoders/encodeClearRecords.ts +9 -0
- package/src/utils/encoders/encodeSetAddr.ts +5 -16
- package/src/utils/encoders/encodeSetContentHash.ts +2 -4
- package/src/utils/format.ts +0 -6
- package/src/utils/fuses.ts +312 -308
- package/src/utils/generateRecordCallArray.ts +3 -9
- package/src/utils/index.ts +37 -5
- package/src/utils/normaliseCoinId.ts +36 -0
- package/src/utils/registerHelpers.ts +5 -3
- package/src/wallet.ts +41 -0
- package/dist/types/functions/dns/prepareDnsImport.d.ts +0 -39
- package/src/@types/@ensdomains/content-hash.d.ts +0 -1
- package/src/functions/dns/getDnsOwner.test.ts +0 -195
- package/src/functions/dns/importDnsName.test.ts +0 -117
- package/src/functions/dns/prepareDnsImport.test.ts +0 -115
- package/src/functions/public/batch.test.ts +0 -67
- package/src/functions/public/ccip.test.ts +0 -78
- package/src/functions/public/getAbiRecord.test.ts +0 -174
- package/src/functions/public/getAddressRecord.test.ts +0 -83
- package/src/functions/public/getAvailable.test.ts +0 -17
- package/src/functions/public/getContentHashRecord.test.ts +0 -28
- package/src/functions/public/getExpiry.test.ts +0 -48
- package/src/functions/public/getName.test.ts +0 -66
- package/src/functions/public/getOwner.test.ts +0 -87
- package/src/functions/public/getPrice.test.ts +0 -45
- package/src/functions/public/getRecords.test.ts +0 -49
- package/src/functions/public/getResolver.test.ts +0 -12
- package/src/functions/public/getTextRecord.test.ts +0 -20
- package/src/functions/public/getWrapperData.test.ts +0 -79
- package/src/functions/public/getWrapperName.test.ts +0 -19
- package/src/functions/subgraph/client.test.ts +0 -170
- package/src/functions/subgraph/getDecodedName.test.ts +0 -31
- package/src/functions/subgraph/getNameHistory.test.ts +0 -39
- package/src/functions/subgraph/getNamesForAddress.test.ts +0 -244
- package/src/functions/subgraph/getSubgraphRecords.test.ts +0 -74
- package/src/functions/subgraph/getSubgraphRegistrant.test.ts +0 -34
- package/src/functions/subgraph/getSubnames.test.ts +0 -202
- package/src/functions/wallet/commitName.test.ts +0 -58
- package/src/functions/wallet/createSubname.test.ts +0 -73
- package/src/functions/wallet/deleteSubname.test.ts +0 -150
- package/src/functions/wallet/registerName.test.ts +0 -81
- package/src/functions/wallet/renewNames.test.ts +0 -92
- package/src/functions/wallet/setAbiRecord.test.ts +0 -156
- package/src/functions/wallet/setAddressRecord.test.ts +0 -121
- package/src/functions/wallet/setChildFuses.test.ts +0 -97
- package/src/functions/wallet/setContentHashRecord.test.ts +0 -69
- package/src/functions/wallet/setFuses.test.ts +0 -287
- package/src/functions/wallet/setPrimaryName.test.ts +0 -71
- package/src/functions/wallet/setRecords.test.ts +0 -127
- package/src/functions/wallet/setResolver.test.ts +0 -114
- package/src/functions/wallet/setTextRecord.test.ts +0 -67
- package/src/functions/wallet/transferName.test.ts +0 -201
- package/src/functions/wallet/unwrapName.test.ts +0 -93
- package/src/functions/wallet/wrapName.test.ts +0 -195
- package/src/utils/generateRecordCallArray.test.ts +0 -84
- package/src/utils/labels.test.ts +0 -163
- package/src/utils/makeLabelNodeAndParent.test.ts +0 -11
- package/src/utils/makeSafeSecondsDate.test.ts +0 -14
- package/src/utils/normalise.test.ts +0 -35
- package/src/utils/ownerFromContract.test.ts +0 -52
- package/src/utils/registerHelpers.test.ts +0 -159
- package/src/utils/validation.test.ts +0 -170
- package/src/utils/wrapper.test.ts +0 -46
package/src/utils/fuses.ts
CHANGED
|
@@ -1,381 +1,385 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-redeclare, @typescript-eslint/naming-convention */
|
|
1
2
|
import {
|
|
2
|
-
FusesFuseNotAllowedError,
|
|
3
3
|
FusesInvalidFuseObjectError,
|
|
4
4
|
FusesInvalidNamedFuseError,
|
|
5
5
|
FusesInvalidUnnamedFuseError,
|
|
6
|
-
FusesNonIntegerError,
|
|
7
6
|
FusesOutOfRangeError,
|
|
8
7
|
FusesRestrictionNotAllowedError,
|
|
9
|
-
FusesValueRequiredError,
|
|
10
8
|
} from '../errors/utils.js'
|
|
11
9
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
// parent named fuses
|
|
22
|
-
const PARENT_CANNOT_CONTROL = 0x10000
|
|
23
|
-
const IS_DOT_ETH = 0x20000
|
|
24
|
-
const CAN_EXTEND_EXPIRY = 0x40000
|
|
25
|
-
|
|
26
|
-
// fuse ranges
|
|
27
|
-
export const CHILD_CONTROLLED_FUSES = 0x0000ffff
|
|
28
|
-
export const PARENT_CONTROLLED_FUSES = 0xffff0000
|
|
29
|
-
export const USER_SETTABLE_FUSES = 0xfffdffff
|
|
30
|
-
|
|
31
|
-
// empty fuse
|
|
32
|
-
const CAN_DO_EVERYTHING = 0
|
|
33
|
-
|
|
34
|
-
export const childFuseEnum = {
|
|
35
|
-
CANNOT_UNWRAP,
|
|
36
|
-
CANNOT_BURN_FUSES,
|
|
37
|
-
CANNOT_TRANSFER,
|
|
38
|
-
CANNOT_SET_RESOLVER,
|
|
39
|
-
CANNOT_SET_TTL,
|
|
40
|
-
CANNOT_CREATE_SUBDOMAIN,
|
|
41
|
-
CANNOT_APPROVE,
|
|
10
|
+
export const ChildFuses = {
|
|
11
|
+
CANNOT_UNWRAP: 1n,
|
|
12
|
+
CANNOT_BURN_FUSES: 2n,
|
|
13
|
+
CANNOT_TRANSFER: 4n,
|
|
14
|
+
CANNOT_SET_RESOLVER: 8n,
|
|
15
|
+
CANNOT_SET_TTL: 16n,
|
|
16
|
+
CANNOT_CREATE_SUBDOMAIN: 32n,
|
|
17
|
+
CANNOT_APPROVE: 64n,
|
|
42
18
|
} as const
|
|
19
|
+
export type ChildFuses = typeof ChildFuses
|
|
20
|
+
export const ChildFuseKeys = Object.keys(ChildFuses) as (keyof ChildFuses)[]
|
|
43
21
|
|
|
44
|
-
export const
|
|
45
|
-
PARENT_CANNOT_CONTROL,
|
|
46
|
-
CAN_EXTEND_EXPIRY,
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export const fullParentFuseEnum = {
|
|
50
|
-
...parentFuseEnum,
|
|
51
|
-
IS_DOT_ETH,
|
|
22
|
+
export const ParentFuses = {
|
|
23
|
+
PARENT_CANNOT_CONTROL: 0x10000n,
|
|
24
|
+
CAN_EXTEND_EXPIRY: 0x40000n,
|
|
52
25
|
} as const
|
|
26
|
+
export type ParentFuses = typeof ParentFuses
|
|
27
|
+
export const ParentFuseKeys = Object.keys(ParentFuses) as (keyof ParentFuses)[]
|
|
53
28
|
|
|
54
|
-
export const
|
|
55
|
-
...
|
|
56
|
-
...
|
|
29
|
+
export const UserSettableFuses = {
|
|
30
|
+
...ChildFuses,
|
|
31
|
+
...ParentFuses,
|
|
32
|
+
} as const
|
|
33
|
+
export type UserSettableFuses = typeof UserSettableFuses
|
|
34
|
+
export const UserSettableFuseKeys = Object.keys(
|
|
35
|
+
UserSettableFuses,
|
|
36
|
+
) as (keyof UserSettableFuses)[]
|
|
37
|
+
|
|
38
|
+
export const FullParentFuses = {
|
|
39
|
+
...ParentFuses,
|
|
40
|
+
IS_DOT_ETH: 0x20000n,
|
|
57
41
|
} as const
|
|
42
|
+
export type FullParentFuses = typeof FullParentFuses
|
|
43
|
+
export const FullParentFuseKeys = Object.keys(
|
|
44
|
+
FullParentFuses,
|
|
45
|
+
) as (keyof FullParentFuses)[]
|
|
46
|
+
|
|
47
|
+
export const UnnamedChildFuses = [
|
|
48
|
+
0x80n,
|
|
49
|
+
0x100n,
|
|
50
|
+
0x200n,
|
|
51
|
+
0x400n,
|
|
52
|
+
0x800n,
|
|
53
|
+
0x1000n,
|
|
54
|
+
0x2000n,
|
|
55
|
+
0x4000n,
|
|
56
|
+
0x8000n,
|
|
57
|
+
] as const
|
|
58
|
+
export type UnnamedChildFuses = typeof UnnamedChildFuses
|
|
59
|
+
export const UnnamedChildFuseKeys = [
|
|
60
|
+
'0x80',
|
|
61
|
+
'0x100',
|
|
62
|
+
'0x200',
|
|
63
|
+
'0x400',
|
|
64
|
+
'0x800',
|
|
65
|
+
'0x1000',
|
|
66
|
+
'0x2000',
|
|
67
|
+
'0x4000',
|
|
68
|
+
'0x8000',
|
|
69
|
+
] as const
|
|
70
|
+
export type UnnamedChildFuseKeys = typeof UnnamedChildFuseKeys
|
|
71
|
+
|
|
72
|
+
export const UnnamedParentFuses = [
|
|
73
|
+
0x80000n,
|
|
74
|
+
0x100000n,
|
|
75
|
+
0x200000n,
|
|
76
|
+
0x400000n,
|
|
77
|
+
0x800000n,
|
|
78
|
+
0x1000000n,
|
|
79
|
+
0x2000000n,
|
|
80
|
+
0x4000000n,
|
|
81
|
+
0x8000000n,
|
|
82
|
+
0x10000000n,
|
|
83
|
+
0x20000000n,
|
|
84
|
+
0x40000000n,
|
|
85
|
+
0x80000000n,
|
|
86
|
+
] as const
|
|
87
|
+
export type UnnamedParentFuses = typeof UnnamedParentFuses
|
|
88
|
+
export const UnnamedParentFuseKeys = [
|
|
89
|
+
'0x80000',
|
|
90
|
+
'0x100000',
|
|
91
|
+
'0x200000',
|
|
92
|
+
'0x400000',
|
|
93
|
+
'0x800000',
|
|
94
|
+
'0x1000000',
|
|
95
|
+
] as const
|
|
96
|
+
export type UnnamedParentFuseKeys = typeof UnnamedParentFuseKeys
|
|
58
97
|
|
|
59
|
-
export const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
98
|
+
export const FuseRanges = {
|
|
99
|
+
CHILD_CONTROLLED_FUSES: 0x0000ffffn,
|
|
100
|
+
PARENT_CONTROLLED_FUSES: 0xffff0000n,
|
|
101
|
+
USER_SETTABLE_FUSES: 0xfffdffffn,
|
|
102
|
+
} as const
|
|
64
103
|
|
|
65
|
-
|
|
66
|
-
128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768,
|
|
67
|
-
] as const
|
|
104
|
+
type FuseRestriction = 'parent' | 'child'
|
|
68
105
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
]
|
|
106
|
+
type GenericFuseEnum<TGroupName extends FuseRestriction = FuseRestriction> = {
|
|
107
|
+
Name: TGroupName
|
|
108
|
+
Object: Record<string, bigint>
|
|
109
|
+
Keys: string[]
|
|
110
|
+
Range: bigint
|
|
111
|
+
Unnamed: readonly bigint[]
|
|
112
|
+
UnnamedKeys: readonly string[]
|
|
113
|
+
Minimum: bigint
|
|
114
|
+
Maximum: bigint
|
|
115
|
+
}
|
|
73
116
|
|
|
74
|
-
export const
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
117
|
+
export const ChildFuseReference = {
|
|
118
|
+
Name: 'child',
|
|
119
|
+
Object: ChildFuses,
|
|
120
|
+
Keys: ChildFuseKeys,
|
|
121
|
+
Range: FuseRanges.CHILD_CONTROLLED_FUSES,
|
|
122
|
+
Unnamed: UnnamedChildFuses,
|
|
123
|
+
UnnamedKeys: UnnamedChildFuseKeys,
|
|
124
|
+
Minimum: 0n,
|
|
125
|
+
Maximum: 2n ** 16n - 1n,
|
|
126
|
+
} as const
|
|
127
|
+
export type ChildFuseReferenceType = typeof ChildFuseReference & {
|
|
128
|
+
Key: keyof ChildFuseReferenceType['Object']
|
|
129
|
+
UnnamedKey: ChildFuseReferenceType['Unnamed'][number]
|
|
130
|
+
}
|
|
78
131
|
|
|
79
|
-
export const
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
type FuseType<
|
|
93
|
-
Enum extends Record<string, number>,
|
|
94
|
-
UnnamedTuple extends readonly number[],
|
|
95
|
-
CustomFuses extends string = never,
|
|
96
|
-
> = {
|
|
97
|
-
fuse: keyof Enum
|
|
98
|
-
options: { -readonly [K in keyof Enum]?: boolean }
|
|
99
|
-
current: { [K in keyof Enum]: boolean } & {
|
|
100
|
-
readonly [K in CustomFuses]: boolean
|
|
101
|
-
}
|
|
102
|
-
unnamed: UnnamedTuple
|
|
103
|
-
unnamedValues: UnnamedTuple[number]
|
|
104
|
-
unnamedObject: { [K in UnnamedTuple[number]]: boolean }
|
|
132
|
+
export const ParentFuseReference = {
|
|
133
|
+
Name: 'parent',
|
|
134
|
+
Object: ParentFuses,
|
|
135
|
+
Keys: ParentFuseKeys,
|
|
136
|
+
Range: FuseRanges.PARENT_CONTROLLED_FUSES,
|
|
137
|
+
Unnamed: UnnamedParentFuses,
|
|
138
|
+
UnnamedKeys: UnnamedParentFuseKeys,
|
|
139
|
+
Minimum: 2n ** 16n,
|
|
140
|
+
Maximum: 2n ** 32n,
|
|
141
|
+
} as const
|
|
142
|
+
export type ParentFuseReferenceType = typeof ParentFuseReference & {
|
|
143
|
+
Key: keyof ParentFuseReferenceType['Object']
|
|
144
|
+
UnnamedKey: ParentFuseReferenceType['Unnamed'][number]
|
|
105
145
|
}
|
|
106
146
|
|
|
107
|
-
export
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
typeof userSettableFuseEnum,
|
|
122
|
-
typeof unnamedUserSettableFuses
|
|
123
|
-
>
|
|
147
|
+
export const FullParentFuseReference = {
|
|
148
|
+
Name: 'parent',
|
|
149
|
+
Object: FullParentFuses,
|
|
150
|
+
Keys: FullParentFuseKeys,
|
|
151
|
+
Range: FuseRanges.PARENT_CONTROLLED_FUSES,
|
|
152
|
+
Unnamed: UnnamedParentFuses,
|
|
153
|
+
UnnamedKeys: UnnamedParentFuseKeys,
|
|
154
|
+
Minimum: 2n ** 16n,
|
|
155
|
+
Maximum: 2n ** 32n,
|
|
156
|
+
} as const
|
|
157
|
+
export type FullParentFuseReferenceType = typeof FullParentFuseReference & {
|
|
158
|
+
Key: keyof FullParentFuseReferenceType['Object']
|
|
159
|
+
UnnamedKey: ParentFuseReferenceType['Unnamed'][number]
|
|
160
|
+
}
|
|
124
161
|
|
|
125
|
-
type InputFuses<NamedFuse extends string, UnnamedFuse extends
|
|
162
|
+
type InputFuses<NamedFuse extends string, UnnamedFuse extends bigint> =
|
|
126
163
|
| {
|
|
127
164
|
named: readonly NamedFuse[]
|
|
165
|
+
unnamed?: readonly UnnamedFuse[]
|
|
166
|
+
number?: never
|
|
128
167
|
}
|
|
129
168
|
| {
|
|
169
|
+
named?: readonly NamedFuse[]
|
|
130
170
|
unnamed: readonly UnnamedFuse[]
|
|
171
|
+
number?: never
|
|
131
172
|
}
|
|
132
173
|
| {
|
|
133
|
-
named
|
|
134
|
-
unnamed
|
|
135
|
-
|
|
136
|
-
| {
|
|
137
|
-
number: number
|
|
174
|
+
named?: never
|
|
175
|
+
unnamed?: never
|
|
176
|
+
number: bigint
|
|
138
177
|
}
|
|
139
178
|
|
|
140
|
-
export type
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
179
|
+
export type EncodeChildFusesInputObject = InputFuses<
|
|
180
|
+
ChildFuseReferenceType['Key'],
|
|
181
|
+
ChildFuseReferenceType['UnnamedKey']
|
|
182
|
+
>
|
|
183
|
+
export type EncodeParentFusesInputObject = InputFuses<
|
|
184
|
+
ParentFuseReferenceType['Key'],
|
|
185
|
+
ParentFuseReferenceType['UnnamedKey']
|
|
186
|
+
>
|
|
144
187
|
|
|
145
|
-
type
|
|
188
|
+
export type EncodeFusesInputObject =
|
|
189
|
+
| {
|
|
190
|
+
child: EncodeChildFusesInputObject
|
|
191
|
+
parent?: EncodeParentFusesInputObject
|
|
192
|
+
number?: never
|
|
193
|
+
}
|
|
194
|
+
| {
|
|
195
|
+
child?: EncodeChildFusesInputObject
|
|
196
|
+
parent: EncodeParentFusesInputObject
|
|
197
|
+
number?: never
|
|
198
|
+
}
|
|
199
|
+
| {
|
|
200
|
+
child?: never
|
|
201
|
+
parent?: never
|
|
202
|
+
number: bigint
|
|
203
|
+
}
|
|
146
204
|
|
|
147
|
-
const
|
|
148
|
-
if (fuses >
|
|
205
|
+
const validateFuseNumber = (fuses: bigint) => {
|
|
206
|
+
if (fuses > 2n ** 32n || fuses < 0n)
|
|
149
207
|
throw new FusesOutOfRangeError({
|
|
150
208
|
fuses,
|
|
151
209
|
details: `Fuse number must be limited to uint32, the supplied value was too ${
|
|
152
|
-
fuses <
|
|
210
|
+
fuses < 0 ? 'low' : 'high'
|
|
153
211
|
}`,
|
|
154
212
|
})
|
|
155
|
-
else if (fuses
|
|
156
|
-
else if ((fuses & USER_SETTABLE_FUSES) !== fuses)
|
|
213
|
+
else if ((fuses & FuseRanges.USER_SETTABLE_FUSES) !== fuses)
|
|
157
214
|
throw new FusesOutOfRangeError({
|
|
158
215
|
fuses,
|
|
159
|
-
maximum: 2 ** 16,
|
|
160
216
|
details: `Fuse number must be limited to user settable fuses, the supplied value was not`,
|
|
161
217
|
})
|
|
162
218
|
}
|
|
163
219
|
|
|
164
|
-
const
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
220
|
+
const checkFuseObject = <TFuseReference extends GenericFuseEnum>({
|
|
221
|
+
reference,
|
|
222
|
+
object,
|
|
223
|
+
}: {
|
|
224
|
+
reference: TFuseReference
|
|
225
|
+
object: EncodeFusesInputObject[TFuseReference['Name']]
|
|
226
|
+
}): number => {
|
|
227
|
+
if (!object) return 0
|
|
228
|
+
|
|
229
|
+
if ('number' in object) {
|
|
230
|
+
if ('named' in object || 'unnamed' in object)
|
|
231
|
+
throw new FusesInvalidFuseObjectError({
|
|
232
|
+
fuses: object,
|
|
233
|
+
details: 'Cannot specify both a fuse number and named/unnamed fuses.',
|
|
234
|
+
})
|
|
235
|
+
validateFuseNumber(object.number)
|
|
236
|
+
|
|
237
|
+
if ((object.number & reference.Range) !== object.number)
|
|
238
|
+
throw new FusesOutOfRangeError({
|
|
239
|
+
fuses: object.number,
|
|
240
|
+
minimum: reference.Minimum,
|
|
241
|
+
maximum: reference.Maximum,
|
|
242
|
+
details: `Cannot specify a fuse value to set that is outside of the ${reference.Name}'s control.`,
|
|
243
|
+
})
|
|
244
|
+
|
|
245
|
+
return Number(object.number)
|
|
170
246
|
}
|
|
171
|
-
|
|
172
|
-
|
|
247
|
+
|
|
248
|
+
let fuseNumber = 0n
|
|
249
|
+
|
|
250
|
+
if ('named' in object && object.named) {
|
|
251
|
+
for (const fuse of object.named) {
|
|
252
|
+
if (!reference.Keys.includes(fuse))
|
|
253
|
+
throw new FusesInvalidNamedFuseError({ fuse })
|
|
254
|
+
fuseNumber |= reference.Object[fuse]
|
|
255
|
+
}
|
|
173
256
|
}
|
|
174
|
-
return false
|
|
175
|
-
}
|
|
176
257
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
258
|
+
if ('unnamed' in object && object.unnamed) {
|
|
259
|
+
for (const fuse of object.unnamed) {
|
|
260
|
+
if (!reference.Unnamed.includes(fuse))
|
|
261
|
+
throw new FusesInvalidUnnamedFuseError({ fuse })
|
|
262
|
+
fuseNumber |= fuse
|
|
263
|
+
}
|
|
180
264
|
}
|
|
181
265
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
266
|
+
return Number(fuseNumber)
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
type EncodeFusesParameters =
|
|
270
|
+
| {
|
|
271
|
+
restriction: 'child'
|
|
272
|
+
input: EncodeChildFusesInputObject
|
|
185
273
|
}
|
|
186
|
-
|
|
187
|
-
|
|
274
|
+
| {
|
|
275
|
+
restriction: 'parent'
|
|
276
|
+
input: EncodeParentFusesInputObject
|
|
188
277
|
}
|
|
189
|
-
|
|
190
|
-
|
|
278
|
+
| {
|
|
279
|
+
restriction?: never
|
|
280
|
+
input: EncodeFusesInputObject
|
|
191
281
|
}
|
|
192
|
-
}
|
|
193
|
-
return false
|
|
194
|
-
}
|
|
195
282
|
|
|
196
|
-
export
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
)
|
|
201
|
-
|
|
202
|
-
fuses: CombinedFuseInput['parent'],
|
|
203
|
-
restrictTo: 'parent',
|
|
204
|
-
): number
|
|
205
|
-
export function encodeFuses<T extends FuseRestriction>(
|
|
206
|
-
fuses: CombinedFuseInput[T],
|
|
207
|
-
restrictTo?: T,
|
|
208
|
-
) {
|
|
209
|
-
let encodedFuses: number = 0
|
|
210
|
-
|
|
211
|
-
if (typeof fuses === 'number') {
|
|
212
|
-
if (restrictTo)
|
|
283
|
+
export const encodeFuses = ({
|
|
284
|
+
restriction,
|
|
285
|
+
input,
|
|
286
|
+
}: EncodeFusesParameters): number => {
|
|
287
|
+
if (restriction) {
|
|
288
|
+
if ('parent' in input || 'child' in input)
|
|
213
289
|
throw new FusesRestrictionNotAllowedError({
|
|
214
|
-
fuses,
|
|
290
|
+
fuses: input,
|
|
215
291
|
details:
|
|
216
|
-
'Fuse restriction cannot be used when
|
|
292
|
+
'Fuse restriction cannot be used when fuse category is specified',
|
|
217
293
|
})
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
let allowedUnnamed: readonly UserSettableFuses['unnamedValues'][] = []
|
|
225
|
-
|
|
226
|
-
let namedArray: readonly UserSettableFuses['fuse'][] = []
|
|
227
|
-
let unnamedArray: readonly UserSettableFuses['unnamedValues'][] = []
|
|
228
|
-
|
|
229
|
-
if (restrictTo) {
|
|
230
|
-
if ('parent' in fuses || 'child' in fuses)
|
|
231
|
-
throw new FusesRestrictionNotAllowedError({
|
|
232
|
-
fuses,
|
|
233
|
-
details:
|
|
234
|
-
'Fuse restriction cannot be used when fuse category is specified',
|
|
235
|
-
})
|
|
236
|
-
allowedNamed = restrictTo === 'child' ? childFuseKeys : parentFuseKeys
|
|
237
|
-
allowedUnnamed =
|
|
238
|
-
restrictTo === 'child' ? unnamedChildFuses : unnamedParentFuses
|
|
239
|
-
|
|
240
|
-
fusesRef = { [restrictTo]: fuses } as unknown as CombinedFuseInput
|
|
241
|
-
} else {
|
|
242
|
-
allowedNamed = userSettableFuseKeys
|
|
243
|
-
allowedUnnamed = unnamedUserSettableFuses
|
|
244
|
-
}
|
|
245
|
-
if ('parent' in fusesRef) {
|
|
246
|
-
if ('named' in fusesRef.parent) namedArray = fusesRef.parent.named
|
|
247
|
-
if ('unnamed' in fusesRef.parent) unnamedArray = fusesRef.parent.unnamed
|
|
248
|
-
if ('number' in fusesRef.parent) {
|
|
249
|
-
if ('named' in fusesRef.parent || 'unnamed' in fusesRef.parent)
|
|
250
|
-
throw new FusesInvalidFuseObjectError({
|
|
251
|
-
fuses,
|
|
252
|
-
details:
|
|
253
|
-
'Cannot specify both a fuse number and named/unnamed fuses.',
|
|
254
|
-
})
|
|
255
|
-
checkNumber(fusesRef.parent.number)
|
|
256
|
-
|
|
257
|
-
if (
|
|
258
|
-
(fusesRef.parent.number & PARENT_CONTROLLED_FUSES) !==
|
|
259
|
-
fusesRef.parent.number
|
|
260
|
-
)
|
|
261
|
-
throw new FusesOutOfRangeError({
|
|
262
|
-
fuses: fusesRef.parent.number,
|
|
263
|
-
minimum: 2 ** 17,
|
|
264
|
-
details:
|
|
265
|
-
"Cannot specify a fuse value to set that is outside of the parent's control.",
|
|
266
|
-
})
|
|
267
|
-
|
|
268
|
-
encodedFuses |= fusesRef.parent.number
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
if ('child' in fusesRef) {
|
|
272
|
-
if ('named' in fusesRef.child)
|
|
273
|
-
namedArray = [...namedArray, ...fusesRef.child.named]
|
|
274
|
-
if ('unnamed' in fusesRef.child)
|
|
275
|
-
unnamedArray = [...unnamedArray, ...fusesRef.child.unnamed]
|
|
276
|
-
if ('number' in fusesRef.child) {
|
|
277
|
-
if ('named' in fusesRef.child || 'unnamed' in fusesRef.child)
|
|
278
|
-
throw new FusesInvalidFuseObjectError({
|
|
279
|
-
fuses,
|
|
280
|
-
details:
|
|
281
|
-
'Cannot specify both a fuse number and named/unnamed fuses.',
|
|
282
|
-
})
|
|
283
|
-
checkNumber(fusesRef.child.number)
|
|
284
|
-
|
|
285
|
-
if (
|
|
286
|
-
(fusesRef.child.number & CHILD_CONTROLLED_FUSES) !==
|
|
287
|
-
fusesRef.child.number
|
|
288
|
-
)
|
|
289
|
-
throw new FusesOutOfRangeError({
|
|
290
|
-
fuses: fusesRef.child.number,
|
|
291
|
-
maximum: 2 ** 16,
|
|
292
|
-
details:
|
|
293
|
-
"Cannot specify a fuse value to set that is outside of the owner's control.",
|
|
294
|
-
})
|
|
295
|
-
|
|
296
|
-
encodedFuses |= fusesRef.child.number
|
|
297
|
-
}
|
|
298
|
-
}
|
|
294
|
+
return checkFuseObject({
|
|
295
|
+
object: input,
|
|
296
|
+
reference:
|
|
297
|
+
restriction === 'child' ? ChildFuseReference : ParentFuseReference,
|
|
298
|
+
})
|
|
299
|
+
}
|
|
299
300
|
|
|
300
|
-
|
|
301
|
-
|
|
301
|
+
if ('number' in input) {
|
|
302
|
+
if ('parent' in input || 'child' in input)
|
|
303
|
+
throw new FusesInvalidFuseObjectError({
|
|
304
|
+
fuses: input,
|
|
305
|
+
details: 'Cannot specify both a fuse number and named/unnamed fuses.',
|
|
306
|
+
})
|
|
302
307
|
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
if (!userSettableFuseKeys.includes(fuse))
|
|
306
|
-
throw new FusesInvalidNamedFuseError({ fuse })
|
|
307
|
-
throw new FusesFuseNotAllowedError({ fuse })
|
|
308
|
-
}
|
|
309
|
-
encodedFuses |= userSettableFuseEnum[fuse]
|
|
310
|
-
}
|
|
311
|
-
for (const fuse of unnamedArray) {
|
|
312
|
-
if (!allowedUnnamed.includes(fuse)) {
|
|
313
|
-
if (!unnamedUserSettableFuses.includes(fuse))
|
|
314
|
-
throw new FusesInvalidUnnamedFuseError({ fuse })
|
|
315
|
-
throw new FusesFuseNotAllowedError({ fuse })
|
|
316
|
-
}
|
|
317
|
-
encodedFuses |= fuse
|
|
318
|
-
}
|
|
308
|
+
validateFuseNumber(input.number)
|
|
309
|
+
return Number(input.number)
|
|
319
310
|
}
|
|
320
311
|
|
|
321
|
-
|
|
322
|
-
|
|
312
|
+
const childFuses =
|
|
313
|
+
'child' in input
|
|
314
|
+
? checkFuseObject({ object: input.child, reference: ChildFuseReference })
|
|
315
|
+
: 0
|
|
316
|
+
const parentFuses =
|
|
317
|
+
'parent' in input
|
|
318
|
+
? checkFuseObject({
|
|
319
|
+
object: input.parent,
|
|
320
|
+
reference: ParentFuseReference,
|
|
321
|
+
})
|
|
322
|
+
: 0
|
|
323
323
|
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
arr.map((fuse) => [
|
|
327
|
-
fuse,
|
|
328
|
-
(fuses & fullFuseEnum[fuse as keyof typeof fullFuseEnum]) ===
|
|
329
|
-
fullFuseEnum[fuse as keyof typeof fullFuseEnum],
|
|
330
|
-
]),
|
|
331
|
-
)
|
|
324
|
+
return Number(childFuses | parentFuses)
|
|
325
|
+
}
|
|
332
326
|
|
|
333
|
-
|
|
327
|
+
type DecodedFuseGroup<TFuseReference extends GenericFuseEnum> = {
|
|
328
|
+
[key in TFuseReference['Keys'][number]]: boolean
|
|
329
|
+
} & {
|
|
330
|
+
unnamed: {
|
|
331
|
+
[key in TFuseReference['UnnamedKeys'][number]]: boolean
|
|
332
|
+
}
|
|
334
333
|
}
|
|
335
334
|
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
335
|
+
type DecodedChildFuses = DecodedFuseGroup<ChildFuseReferenceType> & {
|
|
336
|
+
CAN_DO_EVERYTHING: boolean
|
|
337
|
+
}
|
|
338
|
+
type DecodedParentFuses = DecodedFuseGroup<FullParentFuseReferenceType>
|
|
340
339
|
|
|
341
|
-
|
|
340
|
+
export type DecodedFuses = {
|
|
341
|
+
child: DecodedChildFuses
|
|
342
|
+
parent: DecodedParentFuses
|
|
342
343
|
}
|
|
343
344
|
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
345
|
+
const decodeFusesFromReference = <TFuseReference extends GenericFuseEnum>({
|
|
346
|
+
input,
|
|
347
|
+
reference,
|
|
348
|
+
}: {
|
|
349
|
+
input: bigint
|
|
350
|
+
reference: TFuseReference
|
|
351
|
+
}): DecodedFuseGroup<TFuseReference> => ({
|
|
352
|
+
...(Object.fromEntries(
|
|
353
|
+
reference.Keys.map((key) => [
|
|
354
|
+
key,
|
|
355
|
+
(input & reference.Object[key]) === reference.Object[key],
|
|
356
|
+
]),
|
|
357
|
+
) as Record<TFuseReference['Keys'][number], boolean>),
|
|
358
|
+
unnamed: Object.fromEntries(
|
|
359
|
+
reference.UnnamedKeys.map((key) => [
|
|
360
|
+
key,
|
|
361
|
+
(input & BigInt(key)) === BigInt(key),
|
|
362
|
+
]),
|
|
363
|
+
) as Record<TFuseReference['UnnamedKeys'][number], boolean>,
|
|
364
|
+
})
|
|
362
365
|
|
|
366
|
+
export const decodeFuses = (fuses: number): DecodedFuses => {
|
|
367
|
+
const fusesBigInt = BigInt(fuses)
|
|
363
368
|
return {
|
|
364
|
-
parent: {
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
},
|
|
369
|
+
parent: decodeFusesFromReference({
|
|
370
|
+
input: fusesBigInt,
|
|
371
|
+
reference: FullParentFuseReference,
|
|
372
|
+
}),
|
|
368
373
|
child: {
|
|
369
|
-
...
|
|
370
|
-
|
|
371
|
-
|
|
374
|
+
...decodeFusesFromReference({
|
|
375
|
+
input: fusesBigInt,
|
|
376
|
+
reference: ChildFuseReference,
|
|
377
|
+
}),
|
|
378
|
+
CAN_DO_EVERYTHING:
|
|
379
|
+
(fusesBigInt & FuseRanges.CHILD_CONTROLLED_FUSES) === 0n,
|
|
372
380
|
},
|
|
373
381
|
}
|
|
374
382
|
}
|
|
375
383
|
|
|
376
|
-
export const
|
|
377
|
-
(fuses & PARENT_CANNOT_CONTROL) ===
|
|
378
|
-
|
|
379
|
-
export type AllCurrentFuses = ReturnType<typeof decodeFuses>
|
|
380
|
-
|
|
381
|
-
export default fullFuseEnum
|
|
384
|
+
export const checkPccBurned = (fuses: bigint) =>
|
|
385
|
+
(fuses & ParentFuses.PARENT_CANNOT_CONTROL) === 0n
|