@ensdomains/ensjs 3.2.0 → 3.3.0

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.
Files changed (153) hide show
  1. package/dist/cjs/clients/public.js.map +1 -1
  2. package/dist/cjs/clients/subgraph.js.map +1 -1
  3. package/dist/cjs/clients/wallet.js.map +1 -1
  4. package/dist/cjs/contracts/addEnsContracts.js.map +1 -1
  5. package/dist/cjs/contracts/consts.js +74 -32
  6. package/dist/cjs/contracts/consts.js.map +1 -1
  7. package/dist/cjs/contracts/dnsRegistrar.js +65 -9
  8. package/dist/cjs/contracts/dnsRegistrar.js.map +1 -1
  9. package/dist/cjs/contracts/dnssecImpl.js +18 -16
  10. package/dist/cjs/contracts/dnssecImpl.js.map +1 -1
  11. package/dist/cjs/contracts/getChainContractAddress.js +5 -1
  12. package/dist/cjs/contracts/getChainContractAddress.js.map +1 -1
  13. package/dist/cjs/contracts/index.js +4 -3
  14. package/dist/cjs/contracts/index.js.map +1 -1
  15. package/dist/cjs/errors/version.js +1 -1
  16. package/dist/cjs/functions/dns/getDnsImportData.js +22 -45
  17. package/dist/cjs/functions/dns/getDnsImportData.js.map +1 -1
  18. package/dist/cjs/functions/dns/importDnsName.js +2 -12
  19. package/dist/cjs/functions/dns/importDnsName.js.map +1 -1
  20. package/dist/cjs/functions/public/_getAbi.js +1 -2
  21. package/dist/cjs/functions/public/_getAbi.js.map +1 -1
  22. package/dist/cjs/functions/public/getAbiRecord.js +2 -2
  23. package/dist/cjs/functions/public/getAbiRecord.js.map +1 -1
  24. package/dist/cjs/functions/public/getRecords.js +2 -2
  25. package/dist/cjs/functions/public/getRecords.js.map +1 -1
  26. package/dist/cjs/utils/generateRecordCallArray.js +6 -3
  27. package/dist/cjs/utils/generateRecordCallArray.js.map +1 -1
  28. package/dist/cjs/utils/generateSupportedContentTypes.js +22 -0
  29. package/dist/cjs/utils/generateSupportedContentTypes.js.map +1 -0
  30. package/dist/cjs/utils/generateSupportedContentTypes.test.ts.js +20 -0
  31. package/dist/cjs/utils/generateSupportedContentTypes.test.ts.js.map +1 -0
  32. package/dist/cjs/utils/index.js +3 -1
  33. package/dist/cjs/utils/index.js.map +1 -1
  34. package/dist/cjs/utils/registerHelpers.js +1 -1
  35. package/dist/cjs/utils/registerHelpers.js.map +1 -1
  36. package/dist/esm/clients/public.js.map +1 -1
  37. package/dist/esm/clients/subgraph.js.map +1 -1
  38. package/dist/esm/clients/wallet.js.map +1 -1
  39. package/dist/esm/contracts/addEnsContracts.js.map +1 -1
  40. package/dist/esm/contracts/consts.js +74 -32
  41. package/dist/esm/contracts/consts.js.map +1 -1
  42. package/dist/esm/contracts/dnsRegistrar.js +64 -8
  43. package/dist/esm/contracts/dnsRegistrar.js.map +1 -1
  44. package/dist/esm/contracts/dnssecImpl.js +17 -15
  45. package/dist/esm/contracts/dnssecImpl.js.map +1 -1
  46. package/dist/esm/contracts/getChainContractAddress.js +5 -1
  47. package/dist/esm/contracts/getChainContractAddress.js.map +1 -1
  48. package/dist/esm/contracts/index.js +2 -2
  49. package/dist/esm/contracts/index.js.map +1 -1
  50. package/dist/esm/errors/version.js +1 -1
  51. package/dist/esm/functions/dns/getDnsImportData.js +25 -48
  52. package/dist/esm/functions/dns/getDnsImportData.js.map +1 -1
  53. package/dist/esm/functions/dns/importDnsName.js +3 -13
  54. package/dist/esm/functions/dns/importDnsName.js.map +1 -1
  55. package/dist/esm/functions/public/_getAbi.js +1 -7
  56. package/dist/esm/functions/public/_getAbi.js.map +1 -1
  57. package/dist/esm/functions/public/getAbiRecord.js +2 -2
  58. package/dist/esm/functions/public/getAbiRecord.js.map +1 -1
  59. package/dist/esm/functions/public/getRecords.js +2 -2
  60. package/dist/esm/functions/public/getRecords.js.map +1 -1
  61. package/dist/esm/utils/generateRecordCallArray.js +6 -3
  62. package/dist/esm/utils/generateRecordCallArray.js.map +1 -1
  63. package/dist/esm/utils/generateSupportedContentTypes.js +18 -0
  64. package/dist/esm/utils/generateSupportedContentTypes.js.map +1 -0
  65. package/dist/esm/utils/generateSupportedContentTypes.test.ts.js +18 -0
  66. package/dist/esm/utils/generateSupportedContentTypes.test.ts.js.map +1 -0
  67. package/dist/esm/utils/index.js +1 -0
  68. package/dist/esm/utils/index.js.map +1 -1
  69. package/dist/esm/utils/registerHelpers.js +1 -1
  70. package/dist/esm/utils/registerHelpers.js.map +1 -1
  71. package/dist/types/clients/decorators/wallet.d.ts +12 -12
  72. package/dist/types/clients/public.d.ts +9 -8
  73. package/dist/types/clients/public.d.ts.map +1 -1
  74. package/dist/types/clients/subgraph.d.ts +4 -4
  75. package/dist/types/clients/subgraph.d.ts.map +1 -1
  76. package/dist/types/clients/wallet.d.ts +116 -116
  77. package/dist/types/clients/wallet.d.ts.map +1 -1
  78. package/dist/types/contracts/addEnsContracts.d.ts +2 -2
  79. package/dist/types/contracts/addEnsContracts.d.ts.map +1 -1
  80. package/dist/types/contracts/consts.d.ts +75 -34
  81. package/dist/types/contracts/consts.d.ts.map +1 -1
  82. package/dist/types/contracts/dnsRegistrar.d.ts +135 -6
  83. package/dist/types/contracts/dnsRegistrar.d.ts.map +1 -1
  84. package/dist/types/contracts/dnssecImpl.d.ts +14 -13
  85. package/dist/types/contracts/dnssecImpl.d.ts.map +1 -1
  86. package/dist/types/contracts/getChainContractAddress.d.ts +15 -7
  87. package/dist/types/contracts/getChainContractAddress.d.ts.map +1 -1
  88. package/dist/types/contracts/index.d.ts +2 -2
  89. package/dist/types/contracts/index.d.ts.map +1 -1
  90. package/dist/types/errors/version.d.ts +1 -1
  91. package/dist/types/functions/dns/getDnsImportData.d.ts +6 -8
  92. package/dist/types/functions/dns/getDnsImportData.d.ts.map +1 -1
  93. package/dist/types/functions/dns/importDnsName.d.ts +25 -25
  94. package/dist/types/functions/dns/importDnsName.d.ts.map +1 -1
  95. package/dist/types/functions/public/_getAbi.d.ts +8 -1
  96. package/dist/types/functions/public/_getAbi.d.ts.map +1 -1
  97. package/dist/types/functions/public/getAbiRecord.d.ts +1 -1
  98. package/dist/types/functions/public/getAbiRecord.d.ts.map +1 -1
  99. package/dist/types/functions/public/getRecords.d.ts +6 -9
  100. package/dist/types/functions/public/getRecords.d.ts.map +1 -1
  101. package/dist/types/functions/wallet/clearRecords.d.ts +24 -24
  102. package/dist/types/functions/wallet/commitName.d.ts +24 -24
  103. package/dist/types/functions/wallet/createSubname.d.ts +24 -24
  104. package/dist/types/functions/wallet/deleteSubname.d.ts +24 -24
  105. package/dist/types/functions/wallet/registerName.d.ts +24 -24
  106. package/dist/types/functions/wallet/renewNames.d.ts +24 -24
  107. package/dist/types/functions/wallet/setAbiRecord.d.ts +24 -24
  108. package/dist/types/functions/wallet/setAddressRecord.d.ts +24 -24
  109. package/dist/types/functions/wallet/setChildFuses.d.ts +24 -24
  110. package/dist/types/functions/wallet/setContentHashRecord.d.ts +24 -24
  111. package/dist/types/functions/wallet/setFuses.d.ts +24 -24
  112. package/dist/types/functions/wallet/setPrimaryName.d.ts +24 -24
  113. package/dist/types/functions/wallet/setRecords.d.ts +24 -24
  114. package/dist/types/functions/wallet/setResolver.d.ts +24 -24
  115. package/dist/types/functions/wallet/setTextRecord.d.ts +24 -24
  116. package/dist/types/functions/wallet/transferName.d.ts +24 -24
  117. package/dist/types/functions/wallet/unwrapName.d.ts +24 -24
  118. package/dist/types/functions/wallet/wrapName.d.ts +24 -24
  119. package/dist/types/types.d.ts +4 -0
  120. package/dist/types/types.d.ts.map +1 -1
  121. package/dist/types/utils/encoders/encodeAbi.d.ts +1 -1
  122. package/dist/types/utils/encoders/encodeAbi.d.ts.map +1 -1
  123. package/dist/types/utils/generateRecordCallArray.d.ts +2 -2
  124. package/dist/types/utils/generateRecordCallArray.d.ts.map +1 -1
  125. package/dist/types/utils/generateSupportedContentTypes.d.ts +3 -0
  126. package/dist/types/utils/generateSupportedContentTypes.d.ts.map +1 -0
  127. package/dist/types/utils/generateSupportedContentTypes.test.ts.d.ts +2 -0
  128. package/dist/types/utils/generateSupportedContentTypes.test.ts.d.ts.map +1 -0
  129. package/dist/types/utils/index.d.ts +1 -0
  130. package/dist/types/utils/index.d.ts.map +1 -1
  131. package/package.json +1 -1
  132. package/src/clients/public.ts +6 -4
  133. package/src/clients/subgraph.ts +6 -4
  134. package/src/clients/wallet.ts +19 -13
  135. package/src/contracts/addEnsContracts.ts +3 -3
  136. package/src/contracts/consts.ts +92 -37
  137. package/src/contracts/dnsRegistrar.ts +65 -8
  138. package/src/contracts/dnssecImpl.ts +17 -15
  139. package/src/contracts/getChainContractAddress.ts +22 -7
  140. package/src/contracts/index.ts +2 -1
  141. package/src/errors/version.ts +1 -1
  142. package/src/functions/dns/getDnsImportData.ts +32 -62
  143. package/src/functions/dns/importDnsName.ts +4 -14
  144. package/src/functions/public/_getAbi.ts +11 -8
  145. package/src/functions/public/getAbiRecord.ts +6 -2
  146. package/src/functions/public/getRecords.ts +23 -31
  147. package/src/types.ts +10 -0
  148. package/src/utils/encoders/encodeAbi.ts +1 -1
  149. package/src/utils/generateRecordCallArray.ts +6 -3
  150. package/src/utils/generateSupportedContentTypes.test.ts.ts +24 -0
  151. package/src/utils/generateSupportedContentTypes.ts +21 -0
  152. package/src/utils/index.ts +1 -0
  153. package/src/utils/registerHelpers.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"encodeAbi.d.ts","sourceRoot":"","sources":["../../../../src/utils/encoders/encodeAbi.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,GAAG,EAAE,MAAM,MAAM,CAAA;AAExD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAE9C,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAA;AAEnD,KAAK,cAAc,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAEnC,QAAA,MAAM,YAAY;;;;;CAKR,CAAA;AACV,KAAK,YAAY,GAAG,OAAO,YAAY,CAAA;AAEvC,KAAK,iBAAiB,CAAC,SAAS,SAAS,WAAW,IAAI,YAAY,CAAC,SAAS,CAAC,CAAA;AAE/E,MAAM,MAAM,mBAAmB,CAAC,SAAS,SAAS,WAAW,GAAG,WAAW,IACzE,SAAS,SAAS,KAAK,GACnB;IACE,QAAQ,EAAE,SAAS,CAAA;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB,GACD;IACE,QAAQ,EAAE,SAAS,CAAA;IACnB,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAA;CAC9B,CAAA;AAEP,MAAM,MAAM,UAAU,CAAC,YAAY,SAAS,cAAc,GAAG,cAAc,IAAI;IAC7E,WAAW,EAAE,YAAY,CAAA;IACzB,WAAW,EAAE,GAAG,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,mBAAmB,CAAC,YAAY,SAAS,cAAc,IACjE,UAAU,CAAC,YAAY,CAAC,CAAA;AAE1B,eAAO,MAAM,qBAAqB,gBACnB,cAAc,KAC1B,WAaF,CAAA;AAED,eAAO,MAAM,qBAAqB,aACtB,WAAW,KACpB,cAMF,CAAA;AAED,eAAO,MAAM,SAAS;;iBAjCP,GAAG;EAwEjB,CAAA"}
1
+ {"version":3,"file":"encodeAbi.d.ts","sourceRoot":"","sources":["../../../../src/utils/encoders/encodeAbi.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,GAAG,EAAE,MAAM,MAAM,CAAA;AAExD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAE9C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAA;AAE1D,KAAK,cAAc,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAEnC,QAAA,MAAM,YAAY;;;;;CAKR,CAAA;AACV,KAAK,YAAY,GAAG,OAAO,YAAY,CAAA;AAEvC,KAAK,iBAAiB,CAAC,SAAS,SAAS,WAAW,IAAI,YAAY,CAAC,SAAS,CAAC,CAAA;AAE/E,MAAM,MAAM,mBAAmB,CAAC,SAAS,SAAS,WAAW,GAAG,WAAW,IACzE,SAAS,SAAS,KAAK,GACnB;IACE,QAAQ,EAAE,SAAS,CAAA;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB,GACD;IACE,QAAQ,EAAE,SAAS,CAAA;IACnB,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAA;CAC9B,CAAA;AAEP,MAAM,MAAM,UAAU,CAAC,YAAY,SAAS,cAAc,GAAG,cAAc,IAAI;IAC7E,WAAW,EAAE,YAAY,CAAA;IACzB,WAAW,EAAE,GAAG,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,mBAAmB,CAAC,YAAY,SAAS,cAAc,IACjE,UAAU,CAAC,YAAY,CAAC,CAAA;AAE1B,eAAO,MAAM,qBAAqB,gBACnB,cAAc,KAC1B,WAaF,CAAA;AAED,eAAO,MAAM,qBAAqB,aACtB,WAAW,KACpB,cAMF,CAAA;AAED,eAAO,MAAM,SAAS;;iBAjCP,GAAG;EAwEjB,CAAA"}
@@ -13,7 +13,7 @@ export type RecordOptions = Prettify<{
13
13
  /** Array of coin records */
14
14
  coins?: Omit<EncodeSetAddrParameters, 'namehash'>[];
15
15
  /** ABI value */
16
- abi?: EncodedAbi;
16
+ abi?: EncodedAbi | EncodedAbi[];
17
17
  }>;
18
18
  export declare const generateRecordCallArray: ({ namehash, clearRecords, contentHash, texts, coins, abi, }: {
19
19
  namehash: Hex;
@@ -22,6 +22,6 @@ export declare const generateRecordCallArray: ({ namehash, clearRecords, content
22
22
  contentHash?: string | null | undefined;
23
23
  texts?: Omit<EncodeSetTextParameters, "namehash">[] | undefined;
24
24
  coins?: Omit<EncodeSetAddrParameters, "namehash">[] | undefined;
25
- abi?: EncodedAbi | undefined;
25
+ abi?: EncodedAbi | EncodedAbi[] | undefined;
26
26
  }) => Hex[];
27
27
  //# sourceMappingURL=generateRecordCallArray.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generateRecordCallArray.d.ts","sourceRoot":"","sources":["../../../src/utils/generateRecordCallArray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAMzD,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,6BAA6B,CAAA;AAEpC,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC;IACnC,iCAAiC;IACjC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,wBAAwB;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,4BAA4B;IAC5B,KAAK,CAAC,EAAE,IAAI,CAAC,uBAAuB,EAAE,UAAU,CAAC,EAAE,CAAA;IACnD,4BAA4B;IAC5B,KAAK,CAAC,EAAE,IAAI,CAAC,uBAAuB,EAAE,UAAU,CAAC,EAAE,CAAA;IACnD,gBAAgB;IAChB,GAAG,CAAC,EAAE,UAAU,CAAA;CACjB,CAAC,CAAA;AAEF,eAAO,MAAM,uBAAuB;cAOrB,GAAG;;;;;;;MAAqB,GAAG,EAgCzC,CAAA"}
1
+ {"version":3,"file":"generateRecordCallArray.d.ts","sourceRoot":"","sources":["../../../src/utils/generateRecordCallArray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAMzD,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,6BAA6B,CAAA;AAEpC,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC;IACnC,iCAAiC;IACjC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,wBAAwB;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,4BAA4B;IAC5B,KAAK,CAAC,EAAE,IAAI,CAAC,uBAAuB,EAAE,UAAU,CAAC,EAAE,CAAA;IACnD,4BAA4B;IAC5B,KAAK,CAAC,EAAE,IAAI,CAAC,uBAAuB,EAAE,UAAU,CAAC,EAAE,CAAA;IACnD,gBAAgB;IAChB,GAAG,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAA;CAChC,CAAC,CAAA;AAEF,eAAO,MAAM,uBAAuB;cAOrB,GAAG;;;;;;;MAAqB,GAAG,EAmCzC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { AbiEncodeAs } from './encoders/encodeAbi.js';
2
+ export declare const generateSupportedContentTypes: (encodeAsItemOrList: AbiEncodeAs | AbiEncodeAs[]) => bigint;
3
+ //# sourceMappingURL=generateSupportedContentTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateSupportedContentTypes.d.ts","sourceRoot":"","sources":["../../../src/utils/generateSupportedContentTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAS1D,eAAO,MAAM,6BAA6B,uBACpB,WAAW,GAAG,WAAW,EAAE,KAC9C,MASF,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=generateSupportedContentTypes.test.ts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateSupportedContentTypes.test.ts.d.ts","sourceRoot":"","sources":["../../../src/utils/generateSupportedContentTypes.test.ts.ts"],"names":[],"mappings":""}
@@ -16,4 +16,5 @@ export { beautify, emoji, isCombiningMark, namehash, normalise, normaliseFragmen
16
16
  export { makeCommitment, makeCommitmentFromTuple, makeCommitmentTuple, makeRegistrationTuple, randomSecret, type CommitmentTuple, type RegistrationParameters, type RegistrationTuple, } from './registerHelpers.js';
17
17
  export { checkIsDotEth, parseInput, validateName, type ParsedInputResult, } from './validation.js';
18
18
  export { MAX_EXPIRY, expiryToBigInt, wrappedLabelLengthCheck, } from './wrapper.js';
19
+ export { generateSupportedContentTypes } from './generateSupportedContentTypes.js';
19
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,SAAS,EACT,qBAAqB,EACrB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,UAAU,GAChB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AACrE,OAAO,EACL,YAAY,EACZ,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,GAC5B,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,aAAa,EACb,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,GAC7B,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,oBAAoB,EACpB,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,GACpC,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EACL,aAAa,EACb,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,GAC7B,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,UAAU,EACV,qBAAqB,GACtB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EACf,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,WAAW,EACX,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EAChC,KAAK,uBAAuB,GAC7B,MAAM,YAAY,CAAA;AAEnB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,KAAK,kBAAkB,EACvB,KAAK,YAAY,GAClB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EACL,uBAAuB,EACvB,KAAK,aAAa,GACnB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,SAAS,EACT,QAAQ,GACT,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EACL,QAAQ,EACR,KAAK,EACL,eAAe,EACf,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,KAAK,EACV,KAAK,UAAU,GAChB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,GACvB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,aAAa,EACb,UAAU,EACV,YAAY,EACZ,KAAK,iBAAiB,GACvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,UAAU,EACV,cAAc,EACd,uBAAuB,GACxB,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -16,7 +16,7 @@
16
16
  "peerDependencies": {
17
17
  "viem": "^1.16.4"
18
18
  },
19
- "version": "3.2.0",
19
+ "version": "3.3.0",
20
20
  "files": [
21
21
  "dist/",
22
22
  "src/",
@@ -1,13 +1,15 @@
1
1
  import {
2
2
  createClient,
3
- type Chain,
4
3
  type Client,
5
4
  type ClientConfig,
6
5
  type PublicRpcSchema,
7
6
  type Transport,
8
7
  } from 'viem'
9
8
  import { addEnsContracts } from '../contracts/addEnsContracts.js'
10
- import type { ChainWithEns } from '../contracts/consts.js'
9
+ import type {
10
+ ChainWithBaseContracts,
11
+ ChainWithEns,
12
+ } from '../contracts/consts.js'
11
13
  import type { Prettify } from '../types.js'
12
14
  import { ensPublicActions, type EnsPublicActions } from './decorators/public.js'
13
15
  import {
@@ -17,7 +19,7 @@ import {
17
19
 
18
20
  export type EnsPublicClientConfig<
19
21
  TTransport extends Transport = Transport,
20
- TChain extends Chain = Chain,
22
+ TChain extends ChainWithBaseContracts = ChainWithBaseContracts,
21
23
  > = Pick<
22
24
  ClientConfig<TTransport, TChain>,
23
25
  'batch' | 'key' | 'name' | 'pollingInterval' | 'transport'
@@ -56,7 +58,7 @@ export type EnsPublicClient<
56
58
  */
57
59
  export const createEnsPublicClient = <
58
60
  TTransport extends Transport,
59
- TChain extends Chain,
61
+ TChain extends ChainWithBaseContracts,
60
62
  >({
61
63
  batch,
62
64
  chain,
@@ -1,13 +1,15 @@
1
1
  import {
2
2
  createClient,
3
- type Chain,
4
3
  type Client,
5
4
  type ClientConfig,
6
5
  type PublicRpcSchema,
7
6
  type Transport,
8
7
  } from 'viem'
9
8
  import { addEnsContracts } from '../contracts/addEnsContracts.js'
10
- import type { ChainWithEns } from '../contracts/consts.js'
9
+ import type {
10
+ ChainWithBaseContracts,
11
+ ChainWithEns,
12
+ } from '../contracts/consts.js'
11
13
  import type { Prettify } from '../types.js'
12
14
  import {
13
15
  ensSubgraphActions,
@@ -16,7 +18,7 @@ import {
16
18
 
17
19
  export type EnsSubgraphClientConfig<
18
20
  TTransport extends Transport = Transport,
19
- TChain extends Chain = Chain,
21
+ TChain extends ChainWithBaseContracts = ChainWithBaseContracts,
20
22
  > = Pick<
21
23
  ClientConfig<TTransport, TChain>,
22
24
  'batch' | 'key' | 'name' | 'pollingInterval' | 'transport'
@@ -49,7 +51,7 @@ export type EnsSubgraphClient<
49
51
  */
50
52
  export const createEnsSubgraphClient = <
51
53
  TTransport extends Transport,
52
- TChain extends Chain,
54
+ TChain extends ChainWithBaseContracts,
53
55
  >({
54
56
  batch,
55
57
  chain,
@@ -2,7 +2,6 @@ import {
2
2
  createWalletClient,
3
3
  type Account,
4
4
  type Address,
5
- type Chain,
6
5
  type Client,
7
6
  type ClientConfig,
8
7
  type ParseAccount,
@@ -11,23 +10,30 @@ import {
11
10
  type WalletRpcSchema,
12
11
  } from 'viem'
13
12
  import { addEnsContracts } from '../contracts/addEnsContracts.js'
14
- import type { ChainWithEns } from '../contracts/consts.js'
15
- import type { Prettify } from '../types.js'
13
+ import type {
14
+ ChainWithBaseContracts,
15
+ ChainWithEns,
16
+ CheckedChainWithEns,
17
+ } from '../contracts/consts.js'
18
+ import type { Assign, Prettify } from '../types.js'
16
19
  import { ensWalletActions, type EnsWalletActions } from './decorators/wallet.js'
17
20
 
18
21
  export type EnsWalletClientConfig<
19
22
  TTransport extends Transport,
20
- TChain extends Chain,
23
+ TChain extends ChainWithBaseContracts,
21
24
  TAccountOrAddress extends Account | Address | undefined =
22
25
  | Account
23
26
  | Address
24
27
  | undefined,
25
- > = Pick<
26
- ClientConfig<TTransport, TChain, TAccountOrAddress>,
27
- 'account' | 'chain' | 'key' | 'name' | 'pollingInterval' | 'transport'
28
- > & {
29
- chain: TChain
30
- }
28
+ > = Assign<
29
+ Pick<
30
+ ClientConfig<TTransport, TChain, TAccountOrAddress>,
31
+ 'account' | 'chain' | 'key' | 'name' | 'pollingInterval' | 'transport'
32
+ >,
33
+ {
34
+ chain: TChain
35
+ }
36
+ >
31
37
 
32
38
  export type EnsWalletClient<
33
39
  TTransport extends Transport = Transport,
@@ -61,7 +67,7 @@ export type EnsWalletClient<
61
67
  */
62
68
  export const createEnsWalletClient = <
63
69
  TTransport extends Transport,
64
- TChain extends Chain,
70
+ TChain extends ChainWithBaseContracts,
65
71
  TAccountOrAddress extends Account | Address | undefined = undefined,
66
72
  >({
67
73
  account,
@@ -76,12 +82,12 @@ export const createEnsWalletClient = <
76
82
  TAccountOrAddress
77
83
  >): EnsWalletClient<
78
84
  TTransport,
79
- ChainWithEns<TChain>,
85
+ CheckedChainWithEns<TChain>,
80
86
  ParseAccount<TAccountOrAddress>
81
87
  > => {
82
88
  return createWalletClient({
83
89
  account,
84
- chain: addEnsContracts<TChain>(chain),
90
+ chain: addEnsContracts(chain),
85
91
  key,
86
92
  name,
87
93
  pollingInterval,
@@ -4,7 +4,7 @@ import {
4
4
  addresses,
5
5
  subgraphs,
6
6
  supportedChains,
7
- type ChainWithEns,
7
+ type CheckedChainWithEns,
8
8
  type SupportedChain,
9
9
  } from './consts.js'
10
10
 
@@ -22,7 +22,7 @@ import {
22
22
  * transport: http(),
23
23
  * })
24
24
  */
25
- export const addEnsContracts = <TChain extends Chain>(chain: TChain) => {
25
+ export const addEnsContracts = <const TChain extends Chain>(chain: TChain) => {
26
26
  if (!chain) throw new NoChainError()
27
27
  if (!supportedChains.includes(chain.network as SupportedChain))
28
28
  throw new UnsupportedNetworkError({
@@ -38,5 +38,5 @@ export const addEnsContracts = <TChain extends Chain>(chain: TChain) => {
38
38
  subgraphs: {
39
39
  ...subgraphs[chain.network as SupportedChain],
40
40
  },
41
- } as ChainWithEns<TChain>
41
+ } as unknown as CheckedChainWithEns<TChain>
42
42
  }
@@ -6,24 +6,30 @@ import type {
6
6
  Transport,
7
7
  WalletClient,
8
8
  } from 'viem'
9
+ import type { Assign, Prettify } from '../types.js'
9
10
 
10
11
  type ChainContract = {
11
12
  address: Address
12
13
  blockCreated?: number
13
14
  }
14
15
 
15
- export const supportedChains = ['homestead', 'goerli', 'sepolia'] as const
16
+ export const supportedChains = [
17
+ 'homestead',
18
+ 'goerli',
19
+ 'sepolia',
20
+ 'holesky',
21
+ ] as const
16
22
  export const supportedContracts = [
17
23
  'ensBaseRegistrarImplementation',
24
+ 'ensBulkRenewal',
18
25
  'ensDnsRegistrar',
26
+ 'ensDnssecImpl',
19
27
  'ensEthRegistrarController',
20
28
  'ensNameWrapper',
21
29
  'ensPublicResolver',
30
+ 'ensRegistry',
22
31
  'ensReverseRegistrar',
23
- 'ensBulkRenewal',
24
- 'ensDnssecImpl',
25
32
  'ensUniversalResolver',
26
- 'ensRegistry',
27
33
  ] as const
28
34
 
29
35
  export type SupportedChain = (typeof supportedChains)[number]
@@ -31,15 +37,18 @@ export type SupportedContract = (typeof supportedContracts)[number]
31
37
 
32
38
  export const addresses = {
33
39
  homestead: {
34
- ensRegistry: {
35
- address: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
36
- },
37
40
  ensBaseRegistrarImplementation: {
38
- address: '0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85',
41
+ address: '0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85',
42
+ },
43
+ ensBulkRenewal: {
44
+ address: '0xa12159e5131b1eEf6B4857EEE3e1954744b5033A',
39
45
  },
40
46
  ensDnsRegistrar: {
41
47
  address: '0x58774Bb8acD458A640aF0B88238369A167546ef2',
42
48
  },
49
+ ensDnssecImpl: {
50
+ address: '0x0fc3152971714E5ed7723FAFa650F86A4BaF30C5',
51
+ },
43
52
  ensEthRegistrarController: {
44
53
  address: '0x253553366Da8546fC250F225fe3d25d0C782303b',
45
54
  },
@@ -49,29 +58,29 @@ export const addresses = {
49
58
  ensPublicResolver: {
50
59
  address: '0x231b0Ee14048e9dCcD1d247744d114a4EB5E8E63',
51
60
  },
61
+ ensRegistry: {
62
+ address: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
63
+ },
52
64
  ensReverseRegistrar: {
53
65
  address: '0xa58E81fe9b61B5c3fE2AFD33CF304c454AbFc7Cb',
54
66
  },
55
- ensBulkRenewal: {
56
- address: '0xa12159e5131b1eEf6B4857EEE3e1954744b5033A',
57
- },
58
- ensDnssecImpl: {
59
- address: '0x21745FF62108968fBf5aB1E07961CC0FCBeB2364',
60
- },
61
67
  ensUniversalResolver: {
62
68
  address: '0x8cab227b1162f03b8338331adaad7aadc83b895e',
63
69
  },
64
70
  },
65
71
  goerli: {
66
- ensRegistry: {
67
- address: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
68
- },
69
72
  ensBaseRegistrarImplementation: {
70
- address: '0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85',
73
+ address: '0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85',
74
+ },
75
+ ensBulkRenewal: {
76
+ address: '0x6d9F26FfBcF1c6f0bAe9F2C1f7fBe8eE6B1d8d4d',
71
77
  },
72
78
  ensDnsRegistrar: {
73
79
  address: '0x8edc487D26F6c8Fa76e032066A3D4F87E273515d',
74
80
  },
81
+ ensDnssecImpl: {
82
+ address: '0xF427c4AdED8B6dfde604865c1a7E953B160C26f0',
83
+ },
75
84
  ensEthRegistrarController: {
76
85
  address: '0xCc5e7dB10E65EED1BBD105359e7268aa660f6734',
77
86
  },
@@ -81,28 +90,28 @@ export const addresses = {
81
90
  ensPublicResolver: {
82
91
  address: '0xd7a4F6473f32aC2Af804B3686AE8F1932bC35750',
83
92
  },
84
- ensReverseRegistrar: {
85
- address: '0x6d9F26FfBcF1c6f0bAe9F2C1f7fBe8eE6B1d8d4d',
93
+ ensRegistry: {
94
+ address: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
86
95
  },
87
- ensBulkRenewal: {
96
+ ensReverseRegistrar: {
88
97
  address: '0x6d9F26FfBcF1c6f0bAe9F2C1f7fBe8eE6B1d8d4d',
89
98
  },
90
- ensDnssecImpl: {
91
- address: '0xF427c4AdED8B6dfde604865c1a7E953B160C26f0',
92
- },
93
99
  ensUniversalResolver: {
94
100
  address: '0xfc4AC75C46C914aF5892d6d3eFFcebD7917293F1',
95
101
  },
96
102
  },
97
103
  sepolia: {
98
- ensRegistry: {
99
- address: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
100
- },
101
104
  ensBaseRegistrarImplementation: {
102
- address: '0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85',
105
+ address: '0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85',
106
+ },
107
+ ensBulkRenewal: {
108
+ address: '0x4EF77b90762Eddb33C8Eba5B5a19558DaE53D7a1',
103
109
  },
104
110
  ensDnsRegistrar: {
105
- address: '0x537625B0D7901FD20C57850d61580Bf1624Ef146',
111
+ address: '0x5a07C75Ae469Bf3ee2657B588e8E6ABAC6741b4f',
112
+ },
113
+ ensDnssecImpl: {
114
+ address: '0xe62E4b6cE018Ad6e916fcC24545e20a33b9d8653',
106
115
  },
107
116
  ensEthRegistrarController: {
108
117
  address: '0xFED6a969AaA60E4961FCD3EBF1A2e8913ac65B72',
@@ -113,17 +122,46 @@ export const addresses = {
113
122
  ensPublicResolver: {
114
123
  address: '0x8FADE66B79cC9f707aB26799354482EB93a5B7dD',
115
124
  },
125
+ ensRegistry: {
126
+ address: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
127
+ },
116
128
  ensReverseRegistrar: {
117
129
  address: '0xA0a1AbcDAe1a2a4A2EF8e9113Ff0e02DD81DC0C6',
118
130
  },
131
+ ensUniversalResolver: {
132
+ address: '0xBaBC7678D7A63104f1658c11D6AE9A21cdA09725',
133
+ },
134
+ },
135
+ holesky: {
136
+ ensBaseRegistrarImplementation: {
137
+ address: '0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85',
138
+ },
119
139
  ensBulkRenewal: {
120
- address: '0x4EF77b90762Eddb33C8Eba5B5a19558DaE53D7a1',
140
+ address: '0xbc4cfB363F948E64Cd73Da6438F64CB37E2e33d1',
141
+ },
142
+ ensDnsRegistrar: {
143
+ address: '0x458d278AEd4cE82BAeC384170f39198b01B8351c',
121
144
  },
122
145
  ensDnssecImpl: {
123
- address: '0x7b3ada1c8f012bae747cf99d6cbbf70d040b84cf',
146
+ address: '0x283af0b28c62c092c9727f1ee09c02ca627eb7f5',
147
+ },
148
+ ensEthRegistrarController: {
149
+ address: '0x179Be112b24Ad4cFC392eF8924DfA08C20Ad8583',
150
+ },
151
+ ensNameWrapper: {
152
+ address: '0xab50971078225D365994dc1Edcb9b7FD72Bb4862',
153
+ },
154
+ ensPublicResolver: {
155
+ address: '0x9010A27463717360cAD99CEA8bD39b8705CCA238',
156
+ },
157
+ ensRegistry: {
158
+ address: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
159
+ },
160
+ ensReverseRegistrar: {
161
+ address: '0x132AC0B116a73add4225029D1951A9A707Ef673f',
124
162
  },
125
163
  ensUniversalResolver: {
126
- address: '0xBaBC7678D7A63104f1658c11D6AE9A21cdA09725',
164
+ address: '0x2548a7E09deE955c4d97688dcB6C5b24085725f5',
127
165
  },
128
166
  },
129
167
  } as const satisfies Record<
@@ -153,6 +191,11 @@ export const subgraphs = {
153
191
  url: 'https://api.studio.thegraph.com/query/49574/enssepolia/version/latest',
154
192
  },
155
193
  },
194
+ holesky: {
195
+ ens: {
196
+ url: 'https://api.studio.thegraph.com/query/49574/ensholesky/version/latest',
197
+ },
198
+ },
156
199
  } as const satisfies Record<SupportedChain, Subgraphs>
157
200
 
158
201
  type EnsChainContracts = {
@@ -172,17 +215,29 @@ type BaseChainContracts = {
172
215
  ensRegistry: ChainContract
173
216
  }
174
217
 
175
- export type ChainWithEns<TChain extends Chain = Chain> = TChain & {
218
+ export type ChainWithEns<TChain extends Chain = Chain> = Omit<
219
+ TChain,
220
+ 'contracts'
221
+ > & {
176
222
  contracts: BaseChainContracts & EnsChainContracts
177
223
  subgraphs: Subgraphs
178
224
  }
179
225
 
226
+ export type ChainWithBaseContracts = Assign<
227
+ Omit<Chain, 'contracts'>,
228
+ {
229
+ contracts: BaseChainContracts
230
+ }
231
+ >
232
+
180
233
  export type CheckedChainWithEns<TChain extends Chain> =
181
234
  TChain['network'] extends SupportedChain
182
- ? TChain & {
183
- contracts: (typeof addresses)[TChain['network']]
184
- subgraphs: (typeof subgraphs)[TChain['network']]
185
- }
235
+ ? TChain['contracts'] extends BaseChainContracts
236
+ ? TChain & {
237
+ contracts: Prettify<(typeof addresses)[TChain['network']]>
238
+ subgraphs: (typeof subgraphs)[TChain['network']]
239
+ }
240
+ : never
186
241
  : never
187
242
 
188
243
  export type ClientWithEns<
@@ -1,4 +1,66 @@
1
+ export const dnsRegistrarErrors = [
2
+ {
3
+ inputs: [
4
+ {
5
+ internalType: 'bytes',
6
+ name: 'name',
7
+ type: 'bytes',
8
+ },
9
+ ],
10
+ name: 'InvalidPublicSuffix',
11
+ type: 'error',
12
+ },
13
+ {
14
+ inputs: [],
15
+ name: 'NoOwnerRecordFound',
16
+ type: 'error',
17
+ },
18
+ {
19
+ inputs: [
20
+ {
21
+ internalType: 'uint256',
22
+ name: 'offset',
23
+ type: 'uint256',
24
+ },
25
+ {
26
+ internalType: 'uint256',
27
+ name: 'length',
28
+ type: 'uint256',
29
+ },
30
+ ],
31
+ name: 'OffsetOutOfBoundsError',
32
+ type: 'error',
33
+ },
34
+ {
35
+ inputs: [
36
+ {
37
+ internalType: 'address',
38
+ name: 'caller',
39
+ type: 'address',
40
+ },
41
+ {
42
+ internalType: 'address',
43
+ name: 'owner',
44
+ type: 'address',
45
+ },
46
+ ],
47
+ name: 'PermissionDenied',
48
+ type: 'error',
49
+ },
50
+ {
51
+ inputs: [],
52
+ name: 'PreconditionNotMet',
53
+ type: 'error',
54
+ },
55
+ {
56
+ inputs: [],
57
+ name: 'StaleProof',
58
+ type: 'error',
59
+ },
60
+ ] as const
61
+
1
62
  export const dnsRegistrarProveAndClaimSnippet = [
63
+ ...dnsRegistrarErrors,
2
64
  {
3
65
  inputs: [
4
66
  {
@@ -19,10 +81,6 @@ export const dnsRegistrarProveAndClaimSnippet = [
19
81
  name: 'input',
20
82
  type: 'tuple[]',
21
83
  },
22
- {
23
- name: 'proof',
24
- type: 'bytes',
25
- },
26
84
  ],
27
85
  name: 'proveAndClaim',
28
86
  outputs: [],
@@ -32,6 +90,7 @@ export const dnsRegistrarProveAndClaimSnippet = [
32
90
  ] as const
33
91
 
34
92
  export const dnsRegistrarProveAndClaimWithResolverSnippet = [
93
+ ...dnsRegistrarErrors,
35
94
  {
36
95
  inputs: [
37
96
  {
@@ -41,10 +100,12 @@ export const dnsRegistrarProveAndClaimWithResolverSnippet = [
41
100
  {
42
101
  components: [
43
102
  {
103
+ internalType: 'bytes',
44
104
  name: 'rrset',
45
105
  type: 'bytes',
46
106
  },
47
107
  {
108
+ internalType: 'bytes',
48
109
  name: 'sig',
49
110
  type: 'bytes',
50
111
  },
@@ -52,10 +113,6 @@ export const dnsRegistrarProveAndClaimWithResolverSnippet = [
52
113
  name: 'input',
53
114
  type: 'tuple[]',
54
115
  },
55
- {
56
- name: 'proof',
57
- type: 'bytes',
58
- },
59
116
  {
60
117
  name: 'resolver',
61
118
  type: 'address',
@@ -1,29 +1,31 @@
1
- export const dnssecImplRrDataSnippet = [
1
+ export const dnssecImplVerifyRrSetSnippet = [
2
2
  {
3
3
  inputs: [
4
4
  {
5
- name: 'dnstype',
6
- type: 'uint16',
7
- },
8
- {
9
- name: 'name',
10
- type: 'bytes',
5
+ components: [
6
+ {
7
+ name: 'rrset',
8
+ type: 'bytes',
9
+ },
10
+ {
11
+ name: 'sig',
12
+ type: 'bytes',
13
+ },
14
+ ],
15
+ name: 'input',
16
+ type: 'tuple[]',
11
17
  },
12
18
  ],
13
- name: 'rrdata',
19
+ name: 'verifyRRSet',
14
20
  outputs: [
15
21
  {
16
- name: '',
17
- type: 'uint32',
22
+ name: 'rrs',
23
+ type: 'bytes',
18
24
  },
19
25
  {
20
- name: '',
26
+ name: 'inception',
21
27
  type: 'uint32',
22
28
  },
23
- {
24
- name: '',
25
- type: 'bytes20',
26
- },
27
29
  ],
28
30
  stateMutability: 'view',
29
31
  type: 'function',
@@ -1,13 +1,19 @@
1
+ import type { Address, Chain } from 'viem'
1
2
  import { getChainContractAddress as _getChainContractAddress } from 'viem/utils'
2
- import type { ChainWithEns } from './consts.js'
3
3
 
4
- type ChainClient<TChain extends ChainWithEns> = {
5
- chain: TChain
4
+ type ExtractContract<TClient> = TClient extends {
5
+ chain: { contracts: infer C }
6
6
  }
7
+ ? C extends Record<string, { address: string }>
8
+ ? C
9
+ : never
10
+ : never
7
11
 
8
12
  export const getChainContractAddress = <
9
- TChain extends ChainWithEns,
10
- TClient extends ChainClient<TChain>,
13
+ const TClient extends { chain: Chain },
14
+ TContracts extends ExtractContract<TClient> = ExtractContract<TClient>,
15
+ TContractName extends keyof TContracts = keyof TContracts,
16
+ TContract extends TContracts[TContractName] = TContracts[TContractName],
11
17
  >({
12
18
  blockNumber,
13
19
  client,
@@ -15,5 +21,14 @@ export const getChainContractAddress = <
15
21
  }: {
16
22
  blockNumber?: bigint
17
23
  client: TClient
18
- contract: Extract<keyof TChain['contracts'], string>
19
- }) => _getChainContractAddress({ blockNumber, chain: client.chain, contract })
24
+ contract: TContractName
25
+ }) =>
26
+ _getChainContractAddress({
27
+ blockNumber,
28
+ chain: client.chain,
29
+ contract: contract as string,
30
+ }) as TContract extends { address: infer A }
31
+ ? A extends Address
32
+ ? A
33
+ : never
34
+ : Address