@ensdomains/ensjs 3.5.0 → 3.7.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 (47) hide show
  1. package/dist/cjs/errors/version.js +1 -1
  2. package/dist/cjs/functions/wallet/createSubname.js +57 -1
  3. package/dist/cjs/functions/wallet/createSubname.js.map +1 -1
  4. package/dist/cjs/utils/ccipBatchRequest.js +67 -0
  5. package/dist/cjs/utils/ccipBatchRequest.js.map +1 -0
  6. package/dist/cjs/utils/ccipRequest.js +26 -0
  7. package/dist/cjs/utils/ccipRequest.js.map +1 -0
  8. package/dist/cjs/utils/index.js +6 -4
  9. package/dist/cjs/utils/index.js.map +1 -1
  10. package/dist/cjs/utils/wrapper.js +8 -1
  11. package/dist/cjs/utils/wrapper.js.map +1 -1
  12. package/dist/esm/errors/version.js +1 -1
  13. package/dist/esm/functions/wallet/createSubname.js +59 -3
  14. package/dist/esm/functions/wallet/createSubname.js.map +1 -1
  15. package/dist/esm/utils/ccipBatchRequest.js +64 -0
  16. package/dist/esm/utils/ccipBatchRequest.js.map +1 -0
  17. package/dist/esm/utils/ccipRequest.js +22 -0
  18. package/dist/esm/utils/ccipRequest.js.map +1 -0
  19. package/dist/esm/utils/index.js +2 -1
  20. package/dist/esm/utils/index.js.map +1 -1
  21. package/dist/esm/utils/wrapper.js +6 -0
  22. package/dist/esm/utils/wrapper.js.map +1 -1
  23. package/dist/types/clients/decorators/wallet.d.ts +2785 -5
  24. package/dist/types/clients/decorators/wallet.d.ts.map +1 -1
  25. package/dist/types/clients/public.d.ts +5 -1
  26. package/dist/types/clients/public.d.ts.map +1 -1
  27. package/dist/types/clients/subgraph.d.ts +5 -1
  28. package/dist/types/clients/subgraph.d.ts.map +1 -1
  29. package/dist/types/clients/wallet.d.ts +2814 -34
  30. package/dist/types/clients/wallet.d.ts.map +1 -1
  31. package/dist/types/errors/version.d.ts +1 -1
  32. package/dist/types/functions/wallet/createSubname.d.ts.map +1 -1
  33. package/dist/types/utils/ccipBatchRequest.d.ts +7 -0
  34. package/dist/types/utils/ccipBatchRequest.d.ts.map +1 -0
  35. package/dist/types/utils/ccipRequest.d.ts +3 -0
  36. package/dist/types/utils/ccipRequest.d.ts.map +1 -0
  37. package/dist/types/utils/index.d.ts +2 -1
  38. package/dist/types/utils/index.d.ts.map +1 -1
  39. package/dist/types/utils/wrapper.d.ts +1 -0
  40. package/dist/types/utils/wrapper.d.ts.map +1 -1
  41. package/package.json +3 -3
  42. package/src/errors/version.ts +1 -1
  43. package/src/functions/wallet/createSubname.ts +71 -4
  44. package/src/utils/ccipBatchRequest.ts +93 -0
  45. package/src/utils/ccipRequest.ts +44 -0
  46. package/src/utils/index.ts +2 -1
  47. package/src/utils/wrapper.ts +7 -0
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = void 0;
4
- exports.version = 'v3.5.0';
4
+ exports.version = 'v3.7.0';
5
5
  //# sourceMappingURL=version.js.map
@@ -11,6 +11,8 @@ const fuses_js_1 = require("../../utils/fuses.js");
11
11
  const getNameType_js_1 = require("../../utils/getNameType.js");
12
12
  const makeLabelNodeAndParent_js_1 = require("../../utils/makeLabelNodeAndParent.js");
13
13
  const wrapper_js_1 = require("../../utils/wrapper.js");
14
+ const getWrapperData_js_1 = require("../public/getWrapperData.js");
15
+ const base_js_1 = require("../../errors/base.js");
14
16
  const makeFunctionData = (wallet, { name, contract, owner, resolverAddress = (0, getChainContractAddress_js_1.getChainContractAddress)({
15
17
  client: wallet,
16
18
  contract: 'ensPublicResolver',
@@ -44,7 +46,9 @@ const makeFunctionData = (wallet, { name, contract, owner, resolverAddress = (0,
44
46
  case 'nameWrapper': {
45
47
  (0, wrapper_js_1.wrappedLabelLengthCheck)(label);
46
48
  const generatedFuses = fuses ? (0, fuses_js_1.encodeFuses)({ input: fuses }) : 0;
47
- const generatedExpiry = expiry ? (0, wrapper_js_1.expiryToBigInt)(expiry) : wrapper_js_1.MAX_EXPIRY;
49
+ const generatedExpiry = expiry
50
+ ? (0, wrapper_js_1.expiryToBigInt)(expiry)
51
+ : (0, wrapper_js_1.makeDefaultExpiry)(generatedFuses);
48
52
  return {
49
53
  to: (0, getChainContractAddress_js_1.getChainContractAddress)({
50
54
  client: wallet,
@@ -73,7 +77,59 @@ const makeFunctionData = (wallet, { name, contract, owner, resolverAddress = (0,
73
77
  }
74
78
  };
75
79
  exports.makeFunctionData = makeFunctionData;
80
+ class CreateSubnamePermissionDeniedError extends base_js_1.BaseError {
81
+ constructor({ parentName }) {
82
+ super(`Create subname error: ${parentName} as burned CANNOT_CREATE_SUBDOMAIN fuse`);
83
+ Object.defineProperty(this, "parentName", {
84
+ enumerable: true,
85
+ configurable: true,
86
+ writable: true,
87
+ value: void 0
88
+ });
89
+ Object.defineProperty(this, "name", {
90
+ enumerable: true,
91
+ configurable: true,
92
+ writable: true,
93
+ value: 'CreateSubnamePermissionDeniedError'
94
+ });
95
+ this.parentName = parentName;
96
+ }
97
+ }
98
+ class CreateSubnameParentNotLockedError extends base_js_1.BaseError {
99
+ constructor({ parentName }) {
100
+ super(`Create subname error: Cannot burn PARENT_CANNOT_CONTROL when ${parentName} has not burned CANNOT_UNWRAP fuse`);
101
+ Object.defineProperty(this, "parentName", {
102
+ enumerable: true,
103
+ configurable: true,
104
+ writable: true,
105
+ value: void 0
106
+ });
107
+ Object.defineProperty(this, "name", {
108
+ enumerable: true,
109
+ configurable: true,
110
+ writable: true,
111
+ value: 'CreateSubnameParentNotLockedError'
112
+ });
113
+ this.parentName = parentName;
114
+ }
115
+ }
116
+ const checkCanCreateSubname = async (wallet, { name, fuses, contract, }) => {
117
+ if (contract !== 'nameWrapper')
118
+ return;
119
+ const parentName = name.split('.').slice(1).join('.');
120
+ if (parentName === 'eth')
121
+ return;
122
+ const parentWrapperData = await (0, getWrapperData_js_1.default)(wallet, { name: parentName });
123
+ if (parentWrapperData?.fuses?.child?.CANNOT_CREATE_SUBDOMAIN)
124
+ throw new CreateSubnamePermissionDeniedError({ parentName });
125
+ const generatedFuses = fuses ? (0, fuses_js_1.encodeFuses)({ input: fuses }) : 0;
126
+ const isBurningPCC = fuses && BigInt(generatedFuses) & fuses_js_1.ParentFuses.PARENT_CANNOT_CONTROL;
127
+ const isParentCannotUnwrapBurned = parentWrapperData?.fuses?.child?.CANNOT_UNWRAP;
128
+ if (isBurningPCC && !isParentCannotUnwrapBurned)
129
+ throw new CreateSubnameParentNotLockedError({ parentName });
130
+ };
76
131
  async function createSubname(wallet, { name, contract, owner, resolverAddress, expiry, fuses, ...txArgs }) {
132
+ await checkCanCreateSubname(wallet, { name, fuses, contract });
77
133
  const data = (0, exports.makeFunctionData)(wallet, {
78
134
  name,
79
135
  contract,
@@ -1 +1 @@
1
- {"version":3,"file":"createSubname.js","sourceRoot":"","sources":["../../../../src/functions/wallet/createSubname.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createSubname.js","sourceRoot":"","sources":["../../../../src/functions/wallet/createSubname.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ccipBatchRequest = void 0;
4
+ const viem_1 = require("viem");
5
+ const errorAbi = (0, viem_1.parseAbi)(['error HttpError((uint16, string)[])']);
6
+ const ccipRequestItemHandler = async ([wrappedSender, wrappedUrls, wrappedCallData,]) => {
7
+ try {
8
+ const ccipResult = await (0, viem_1.ccipRequest)({
9
+ sender: wrappedSender,
10
+ urls: wrappedUrls,
11
+ data: wrappedCallData,
12
+ });
13
+ return [false, ccipResult];
14
+ }
15
+ catch (e) {
16
+ if (e instanceof viem_1.HttpRequestError) {
17
+ return [
18
+ true,
19
+ (0, viem_1.encodeErrorResult)({
20
+ abi: errorAbi,
21
+ errorName: 'HttpError',
22
+ args: [[[e.status || 500, e.details]]],
23
+ }),
24
+ ];
25
+ }
26
+ return [
27
+ true,
28
+ (0, viem_1.encodeErrorResult)({
29
+ abi: errorAbi,
30
+ errorName: 'HttpError',
31
+ args: [[[500, e instanceof viem_1.BaseError ? e.details : 'Unknown Error']]],
32
+ }),
33
+ ];
34
+ }
35
+ };
36
+ const ccipBatchRequest = async (callDatas) => {
37
+ const ccipRequestCache = new Map();
38
+ const responsePromises = [];
39
+ for (let i = 0; i < callDatas.length; i += 1) {
40
+ const [wrappedSender, wrappedUrls, wrappedCallData] = callDatas[i];
41
+ const requestId = JSON.stringify([
42
+ wrappedSender,
43
+ wrappedUrls,
44
+ wrappedCallData,
45
+ ]);
46
+ const existingRequest = ccipRequestCache.get(requestId);
47
+ if (existingRequest) {
48
+ responsePromises.push(existingRequest);
49
+ continue;
50
+ }
51
+ const ccipRequestPromise = ccipRequestItemHandler([
52
+ wrappedSender,
53
+ wrappedUrls,
54
+ wrappedCallData,
55
+ ]);
56
+ ccipRequestCache.set(requestId, ccipRequestPromise);
57
+ responsePromises.push(ccipRequestPromise);
58
+ }
59
+ const awaitedResponses = await Promise.all(responsePromises);
60
+ return awaitedResponses.reduce(([failures, responses], [failure, response], i) => {
61
+ failures[i] = failure;
62
+ responses[i] = response;
63
+ return [failures, responses];
64
+ }, [[], []]);
65
+ };
66
+ exports.ccipBatchRequest = ccipBatchRequest;
67
+ //# sourceMappingURL=ccipBatchRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ccipBatchRequest.js","sourceRoot":"","sources":["../../../src/utils/ccipBatchRequest.ts"],"names":[],"mappings":";;;AAAA,+BAQa;AAMb,MAAM,QAAQ,GAAG,IAAA,eAAQ,EAAC,CAAC,qCAAqC,CAAC,CAAC,CAAA;AAIlE,MAAM,sBAAsB,GAAG,KAAK,EAAE,CACpC,aAAa,EACb,WAAW,EACX,eAAe,EACmB,EAA4B,EAAE;IAChE,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,IAAA,kBAAW,EAAC;YACnC,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,eAAe;SACtB,CAAC,CAAA;QACF,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;IAC5B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,uBAAgB,EAAE,CAAC;YAClC,OAAO;gBACL,IAAI;gBACJ,IAAA,wBAAiB,EAAC;oBAChB,GAAG,EAAE,QAAQ;oBACb,SAAS,EAAE,WAAW;oBACtB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;iBACvC,CAAC;aACH,CAAA;QACH,CAAC;QACD,OAAO;YACL,IAAI;YACJ,IAAA,wBAAiB,EAAC;gBAChB,GAAG,EAAE,QAAQ;gBACb,SAAS,EAAE,WAAW;gBACtB,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,gBAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;aACtE,CAAC;SACH,CAAA;IACH,CAAC;AACH,CAAC,CAAA;AAEM,MAAM,gBAAgB,GAAG,KAAK,EACnC,SAAmD,EACnD,EAAE;IACF,MAAM,gBAAgB,GAA0C,IAAI,GAAG,EAAE,CAAA;IACzE,MAAM,gBAAgB,GAA+B,EAAE,CAAA;IAEvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,MAAM,CAAC,aAAa,EAAE,WAAW,EAAE,eAAe,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QAClE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,aAAa;YACb,WAAW;YACX,eAAe;SAChB,CAAC,CAAA;QAEF,MAAM,eAAe,GAAG,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACvD,IAAI,eAAe,EAAE,CAAC;YACpB,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;YAEtC,SAAQ;QACV,CAAC;QAED,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;YAChD,aAAa;YACb,WAAW;YACX,eAAe;SAChB,CAAC,CAAA;QACF,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAA;QACnD,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;IAC3C,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;IAE5D,OAAO,gBAAgB,CAAC,MAAM,CAC5B,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE;QAChD,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAA;QACrB,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAA;QACvB,OAAO,CAAC,QAAQ,EAAE,SAAS,CAA4C,CAAA;IACzE,CAAC,EACD,CAAC,EAAE,EAAE,EAAE,CAA4C,CACpD,CAAA;AACH,CAAC,CAAA;AAxCY,QAAA,gBAAgB,oBAwC5B"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ccipRequest = void 0;
4
+ const viem_1 = require("viem");
5
+ const getChainContractAddress_js_1 = require("../contracts/getChainContractAddress.js");
6
+ const ccipBatchRequest_js_1 = require("./ccipBatchRequest.js");
7
+ const abi = (0, viem_1.parseAbi)([
8
+ 'function query((address,string[],bytes)[]) returns (bool[],bytes[])',
9
+ ]);
10
+ const universalResolverQuerySig = '0xa780bab6';
11
+ const ccipRequest = (chain) => async ({ data, sender, urls, }) => {
12
+ const universalResolverAddress = (0, getChainContractAddress_js_1.getChainContractAddress)({
13
+ client: { chain },
14
+ contract: 'ensUniversalResolver',
15
+ });
16
+ const isUniversalResolverRequest = (0, viem_1.isAddressEqual)(sender, universalResolverAddress);
17
+ if (isUniversalResolverRequest &&
18
+ data.slice(0, 10) === universalResolverQuerySig) {
19
+ const { args } = (0, viem_1.decodeFunctionData)({ abi, data });
20
+ const result = await (0, ccipBatchRequest_js_1.ccipBatchRequest)(args[0]);
21
+ return (0, viem_1.encodeFunctionResult)({ abi, result });
22
+ }
23
+ return (0, viem_1.ccipRequest)({ data, sender, urls });
24
+ };
25
+ exports.ccipRequest = ccipRequest;
26
+ //# sourceMappingURL=ccipRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ccipRequest.js","sourceRoot":"","sources":["../../../src/utils/ccipRequest.ts"],"names":[],"mappings":";;;AAAA,+BAQa;AACb,wFAAiF;AACjF,+DAAwD;AAExD,MAAM,GAAG,GAAG,IAAA,eAAQ,EAAC;IACnB,qEAAqE;CACtE,CAAC,CAAA;AAEF,MAAM,yBAAyB,GAAG,YAAY,CAAA;AAEvC,MAAM,WAAW,GACtB,CAAuB,KAAa,EAAE,EAAE,CACxC,KAAK,EAAE,EACL,IAAI,EACJ,MAAM,EACN,IAAI,GACkB,EAAsC,EAAE;IAC9D,MAAM,wBAAwB,GAAG,IAAA,oDAAuB,EAAC;QACvD,MAAM,EAAE,EAAE,KAAK,EAAE;QACjB,QAAQ,EAAE,sBAAsB;KACjC,CAAC,CAAA;IACF,MAAM,0BAA0B,GAAG,IAAA,qBAAc,EAC/C,MAAM,EACN,wBAAwB,CACzB,CAAA;IACD,IACE,0BAA0B;QAC1B,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,yBAAyB,EAC/C,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,yBAAkB,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;QAClD,MAAM,MAAM,GAAG,MAAM,IAAA,sCAAgB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9C,OAAO,IAAA,2BAAoB,EAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;IAC9C,CAAC;IAED,OAAO,IAAA,kBAAe,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;AAChD,CAAC,CAAA;AAzBU,QAAA,WAAW,eAyBrB"}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.encodeLabelhash = exports.decryptName = exports.decodeLabelhash = exports.checkLabel = exports.checkIsDecrypted = exports.packetToBytes = exports.bytesToPacket = exports.generateRecordCallArray = exports.truncateFormat = exports.isValidContentHash = exports.getProtocolType = exports.getInternalCodec = exports.getDisplayCodec = exports.encodeContentHash = exports.decodeContentHash = exports.encodeFuses = exports.decodeFuses = exports.checkPccBurned = exports.UserSettableFuses = exports.UserSettableFuseKeys = exports.UnnamedParentFuses = exports.UnnamedParentFuseKeys = exports.UnnamedChildFuses = exports.UnnamedChildFuseKeys = exports.ParentFuses = exports.ParentFuseReference = exports.ParentFuseKeys = exports.FuseRanges = exports.FullParentFuses = exports.FullParentFuseReference = exports.FullParentFuseKeys = exports.ChildFuses = exports.ChildFuseReference = exports.ChildFuseKeys = exports.MINIMUM_DOT_ETH_CHARS = exports.MAX_INT_64 = exports.MAX_DATE_INT = exports.GRACE_PERIOD_SECONDS = exports.EMPTY_ADDRESS = exports.encodeSetText = exports.encodeSetContentHash = exports.encodeSetAddr = exports.encodeSetAbi = exports.encodeClearRecords = exports.encodeAsToContentType = exports.encodeAbi = exports.contentTypeToEncodeAs = exports.DnsResponseStatus = exports.DnsRecordType = exports.getDnsTxtRecords = void 0;
4
- exports.generateSupportedContentTypes = exports.wrappedLabelLengthCheck = exports.expiryToBigInt = exports.MAX_EXPIRY = exports.validateName = exports.parseInput = exports.checkIsDotEth = exports.randomSecret = exports.makeRegistrationTuple = exports.makeCommitmentTuple = exports.makeCommitmentFromTuple = exports.makeCommitment = exports.tokenise = exports.split = exports.shouldEscape = exports.normaliseFragment = exports.normalise = exports.namehash = exports.isCombiningMark = exports.emoji = exports.beautify = exports.makeSafeSecondsDate = exports.saveName = exports.saveLabel = exports.isEncodedLabelhash = void 0;
3
+ exports.decodeLabelhash = exports.checkLabel = exports.checkIsDecrypted = exports.packetToBytes = exports.bytesToPacket = exports.generateSupportedContentTypes = exports.generateRecordCallArray = exports.truncateFormat = exports.isValidContentHash = exports.getProtocolType = exports.getInternalCodec = exports.getDisplayCodec = exports.encodeContentHash = exports.decodeContentHash = exports.encodeFuses = exports.decodeFuses = exports.checkPccBurned = exports.UserSettableFuses = exports.UserSettableFuseKeys = exports.UnnamedParentFuses = exports.UnnamedParentFuseKeys = exports.UnnamedChildFuses = exports.UnnamedChildFuseKeys = exports.ParentFuses = exports.ParentFuseReference = exports.ParentFuseKeys = exports.FuseRanges = exports.FullParentFuses = exports.FullParentFuseReference = exports.FullParentFuseKeys = exports.ChildFuses = exports.ChildFuseReference = exports.ChildFuseKeys = exports.MINIMUM_DOT_ETH_CHARS = exports.MAX_INT_64 = exports.MAX_DATE_INT = exports.GRACE_PERIOD_SECONDS = exports.EMPTY_ADDRESS = exports.encodeSetText = exports.encodeSetContentHash = exports.encodeSetAddr = exports.encodeSetAbi = exports.encodeClearRecords = exports.encodeAsToContentType = exports.encodeAbi = exports.contentTypeToEncodeAs = exports.DnsResponseStatus = exports.DnsRecordType = exports.getDnsTxtRecords = exports.ccipRequest = void 0;
4
+ exports.wrappedLabelLengthCheck = exports.expiryToBigInt = exports.MAX_EXPIRY = exports.validateName = exports.parseInput = exports.checkIsDotEth = exports.randomSecret = exports.makeRegistrationTuple = exports.makeCommitmentTuple = exports.makeCommitmentFromTuple = exports.makeCommitment = exports.tokenise = exports.split = exports.shouldEscape = exports.normaliseFragment = exports.normalise = exports.namehash = exports.isCombiningMark = exports.emoji = exports.beautify = exports.makeSafeSecondsDate = exports.saveName = exports.saveLabel = exports.isEncodedLabelhash = exports.encodeLabelhash = exports.decryptName = void 0;
5
+ var ccipRequest_js_1 = require("./ccipRequest.js");
6
+ Object.defineProperty(exports, "ccipRequest", { enumerable: true, get: function () { return ccipRequest_js_1.ccipRequest; } });
5
7
  var getDnsTxtRecords_js_1 = require("./dns/getDnsTxtRecords.js");
6
8
  Object.defineProperty(exports, "getDnsTxtRecords", { enumerable: true, get: function () { return getDnsTxtRecords_js_1.getDnsTxtRecords; } });
7
9
  var misc_js_1 = require("./dns/misc.js");
@@ -58,6 +60,8 @@ var format_js_1 = require("./format.js");
58
60
  Object.defineProperty(exports, "truncateFormat", { enumerable: true, get: function () { return format_js_1.truncateFormat; } });
59
61
  var generateRecordCallArray_js_1 = require("./generateRecordCallArray.js");
60
62
  Object.defineProperty(exports, "generateRecordCallArray", { enumerable: true, get: function () { return generateRecordCallArray_js_1.generateRecordCallArray; } });
63
+ var generateSupportedContentTypes_js_1 = require("./generateSupportedContentTypes.js");
64
+ Object.defineProperty(exports, "generateSupportedContentTypes", { enumerable: true, get: function () { return generateSupportedContentTypes_js_1.generateSupportedContentTypes; } });
61
65
  var hexEncodedName_js_1 = require("./hexEncodedName.js");
62
66
  Object.defineProperty(exports, "bytesToPacket", { enumerable: true, get: function () { return hexEncodedName_js_1.bytesToPacket; } });
63
67
  Object.defineProperty(exports, "packetToBytes", { enumerable: true, get: function () { return hexEncodedName_js_1.packetToBytes; } });
@@ -96,6 +100,4 @@ var wrapper_js_1 = require("./wrapper.js");
96
100
  Object.defineProperty(exports, "MAX_EXPIRY", { enumerable: true, get: function () { return wrapper_js_1.MAX_EXPIRY; } });
97
101
  Object.defineProperty(exports, "expiryToBigInt", { enumerable: true, get: function () { return wrapper_js_1.expiryToBigInt; } });
98
102
  Object.defineProperty(exports, "wrappedLabelLengthCheck", { enumerable: true, get: function () { return wrapper_js_1.wrappedLabelLengthCheck; } });
99
- var generateSupportedContentTypes_js_1 = require("./generateSupportedContentTypes.js");
100
- Object.defineProperty(exports, "generateSupportedContentTypes", { enumerable: true, get: function () { return generateSupportedContentTypes_js_1.generateSupportedContentTypes; } });
101
103
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;AAAA,iEAIkC;AAHhC,uHAAA,gBAAgB,OAAA;AAIlB,yCAMsB;AALpB,wGAAA,aAAa,OAAA;AACb,4GAAA,iBAAiB,OAAA;AAKnB,wDAOgC;AAN9B,qHAAA,qBAAqB,OAAA;AACrB,yGAAA,SAAS,OAAA;AACT,qHAAA,qBAAqB,OAAA;AAKvB,0EAAqE;AAA5D,2HAAA,kBAAkB,OAAA;AAC3B,8DAImC;AAHjC,+GAAA,YAAY,OAAA;AAId,gEAIoC;AAHlC,iHAAA,aAAa,OAAA;AAIf,8EAI2C;AAHzC,+HAAA,oBAAoB,OAAA;AAItB,gEAIoC;AAHlC,iHAAA,aAAa,OAAA;AAKf,yCAMoB;AALlB,0GAAA,aAAa,OAAA;AACb,iHAAA,oBAAoB,OAAA;AACpB,yGAAA,YAAY,OAAA;AACZ,uGAAA,UAAU,OAAA;AACV,kHAAA,qBAAqB,OAAA;AAEvB,uCA2BmB;AA1BjB,yGAAA,aAAa,OAAA;AACb,8GAAA,kBAAkB,OAAA;AAClB,sGAAA,UAAU,OAAA;AACV,8GAAA,kBAAkB,OAAA;AAClB,mHAAA,uBAAuB,OAAA;AACvB,2GAAA,eAAe,OAAA;AACf,sGAAA,UAAU,OAAA;AACV,0GAAA,cAAc,OAAA;AACd,+GAAA,mBAAmB,OAAA;AACnB,uGAAA,WAAW,OAAA;AACX,gHAAA,oBAAoB,OAAA;AACpB,6GAAA,iBAAiB,OAAA;AACjB,iHAAA,qBAAqB,OAAA;AACrB,8GAAA,kBAAkB,OAAA;AAClB,gHAAA,oBAAoB,OAAA;AACpB,6GAAA,iBAAiB,OAAA;AACjB,0GAAA,cAAc,OAAA;AACd,uGAAA,WAAW,OAAA;AACX,uGAAA,WAAW,OAAA;AAUb,mDASyB;AARvB,mHAAA,iBAAiB,OAAA;AACjB,mHAAA,iBAAiB,OAAA;AACjB,iHAAA,eAAe,OAAA;AACf,kHAAA,gBAAgB,OAAA;AAChB,iHAAA,eAAe,OAAA;AACf,oHAAA,kBAAkB,OAAA;AAIpB,yCAA4C;AAAnC,2GAAA,cAAc,OAAA;AACvB,2EAGqC;AAFnC,qIAAA,uBAAuB,OAAA;AAGzB,yDAAkE;AAAzD,kHAAA,aAAa,OAAA;AAAE,kHAAA,aAAa,OAAA;AACrC,yCASoB;AARlB,6GAAA,gBAAgB,OAAA;AAChB,uGAAA,UAAU,OAAA;AACV,4GAAA,eAAe,OAAA;AACf,wGAAA,WAAW,OAAA;AACX,4GAAA,eAAe,OAAA;AACf,+GAAA,kBAAkB,OAAA;AAClB,sGAAA,SAAS,OAAA;AACT,qGAAA,QAAQ,OAAA;AAEV,mEAA8D;AAArD,6HAAA,mBAAmB,OAAA;AAC5B,+CAoBuB;AAnBrB,wGAAA,QAAQ,OAAA;AACR,qGAAA,KAAK,OAAA;AACL,+GAAA,eAAe,OAAA;AACf,wGAAA,QAAQ,OAAA;AACR,yGAAA,SAAS,OAAA;AACT,iHAAA,iBAAiB,OAAA;AACjB,4GAAA,YAAY,OAAA;AACZ,qGAAA,KAAK,OAAA;AACL,wGAAA,QAAQ,OAAA;AAYV,2DAS6B;AAR3B,oHAAA,cAAc,OAAA;AACd,6HAAA,uBAAuB,OAAA;AACvB,yHAAA,mBAAmB,OAAA;AACnB,2HAAA,qBAAqB,OAAA;AACrB,kHAAA,YAAY,OAAA;AAKd,iDAKwB;AAJtB,8GAAA,aAAa,OAAA;AACb,2GAAA,UAAU,OAAA;AACV,6GAAA,YAAY,OAAA;AAGd,2CAIqB;AAHnB,wGAAA,UAAU,OAAA;AACV,4GAAA,cAAc,OAAA;AACd,qHAAA,uBAAuB,OAAA;AAEzB,uFAAkF;AAAzE,iJAAA,6BAA6B,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;AAAA,mDAA8C;AAArC,6GAAA,WAAW,OAAA;AACpB,iEAIkC;AAHhC,uHAAA,gBAAgB,OAAA;AAIlB,yCAMsB;AALpB,wGAAA,aAAa,OAAA;AACb,4GAAA,iBAAiB,OAAA;AAKnB,wDAOgC;AAN9B,qHAAA,qBAAqB,OAAA;AACrB,yGAAA,SAAS,OAAA;AACT,qHAAA,qBAAqB,OAAA;AAKvB,0EAAqE;AAA5D,2HAAA,kBAAkB,OAAA;AAC3B,8DAImC;AAHjC,+GAAA,YAAY,OAAA;AAId,gEAIoC;AAHlC,iHAAA,aAAa,OAAA;AAIf,8EAI2C;AAHzC,+HAAA,oBAAoB,OAAA;AAItB,gEAIoC;AAHlC,iHAAA,aAAa,OAAA;AAKf,yCAMoB;AALlB,0GAAA,aAAa,OAAA;AACb,iHAAA,oBAAoB,OAAA;AACpB,yGAAA,YAAY,OAAA;AACZ,uGAAA,UAAU,OAAA;AACV,kHAAA,qBAAqB,OAAA;AAEvB,uCA2BmB;AA1BjB,yGAAA,aAAa,OAAA;AACb,8GAAA,kBAAkB,OAAA;AAClB,sGAAA,UAAU,OAAA;AACV,8GAAA,kBAAkB,OAAA;AAClB,mHAAA,uBAAuB,OAAA;AACvB,2GAAA,eAAe,OAAA;AACf,sGAAA,UAAU,OAAA;AACV,0GAAA,cAAc,OAAA;AACd,+GAAA,mBAAmB,OAAA;AACnB,uGAAA,WAAW,OAAA;AACX,gHAAA,oBAAoB,OAAA;AACpB,6GAAA,iBAAiB,OAAA;AACjB,iHAAA,qBAAqB,OAAA;AACrB,8GAAA,kBAAkB,OAAA;AAClB,gHAAA,oBAAoB,OAAA;AACpB,6GAAA,iBAAiB,OAAA;AACjB,0GAAA,cAAc,OAAA;AACd,uGAAA,WAAW,OAAA;AACX,uGAAA,WAAW,OAAA;AAUb,mDASyB;AARvB,mHAAA,iBAAiB,OAAA;AACjB,mHAAA,iBAAiB,OAAA;AACjB,iHAAA,eAAe,OAAA;AACf,kHAAA,gBAAgB,OAAA;AAChB,iHAAA,eAAe,OAAA;AACf,oHAAA,kBAAkB,OAAA;AAIpB,yCAA4C;AAAnC,2GAAA,cAAc,OAAA;AACvB,2EAGqC;AAFnC,qIAAA,uBAAuB,OAAA;AAGzB,uFAAkF;AAAzE,iJAAA,6BAA6B,OAAA;AACtC,yDAAkE;AAAzD,kHAAA,aAAa,OAAA;AAAE,kHAAA,aAAa,OAAA;AACrC,yCASoB;AARlB,6GAAA,gBAAgB,OAAA;AAChB,uGAAA,UAAU,OAAA;AACV,4GAAA,eAAe,OAAA;AACf,wGAAA,WAAW,OAAA;AACX,4GAAA,eAAe,OAAA;AACf,+GAAA,kBAAkB,OAAA;AAClB,sGAAA,SAAS,OAAA;AACT,qGAAA,QAAQ,OAAA;AAEV,mEAA8D;AAArD,6HAAA,mBAAmB,OAAA;AAC5B,+CAoBuB;AAnBrB,wGAAA,QAAQ,OAAA;AACR,qGAAA,KAAK,OAAA;AACL,+GAAA,eAAe,OAAA;AACf,wGAAA,QAAQ,OAAA;AACR,yGAAA,SAAS,OAAA;AACT,iHAAA,iBAAiB,OAAA;AACjB,4GAAA,YAAY,OAAA;AACZ,qGAAA,KAAK,OAAA;AACL,wGAAA,QAAQ,OAAA;AAYV,2DAS6B;AAR3B,oHAAA,cAAc,OAAA;AACd,6HAAA,uBAAuB,OAAA;AACvB,yHAAA,mBAAmB,OAAA;AACnB,2HAAA,qBAAqB,OAAA;AACrB,kHAAA,YAAY,OAAA;AAKd,iDAKwB;AAJtB,8GAAA,aAAa,OAAA;AACb,2GAAA,UAAU,OAAA;AACV,6GAAA,YAAY,OAAA;AAGd,2CAIqB;AAHnB,wGAAA,UAAU,OAAA;AACV,4GAAA,cAAc,OAAA;AACd,qHAAA,uBAAuB,OAAA"}
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.wrappedLabelLengthCheck = exports.expiryToBigInt = exports.MAX_EXPIRY = void 0;
3
+ exports.makeDefaultExpiry = exports.wrappedLabelLengthCheck = exports.expiryToBigInt = exports.MAX_EXPIRY = void 0;
4
4
  const viem_1 = require("viem");
5
5
  const utils_js_1 = require("../errors/utils.js");
6
+ const fuses_js_1 = require("./fuses.js");
6
7
  exports.MAX_EXPIRY = 2n ** 64n - 1n;
7
8
  const expiryToBigInt = (expiry, defaultValue = 0n) => {
8
9
  if (!expiry)
@@ -22,4 +23,10 @@ const wrappedLabelLengthCheck = (label) => {
22
23
  throw new utils_js_1.WrappedLabelTooLargeError({ label, byteLength: bytes.byteLength });
23
24
  };
24
25
  exports.wrappedLabelLengthCheck = wrappedLabelLengthCheck;
26
+ const makeDefaultExpiry = (fuses) => {
27
+ if (fuses && BigInt(fuses) & fuses_js_1.ParentFuses.PARENT_CANNOT_CONTROL)
28
+ return exports.MAX_EXPIRY;
29
+ return 0n;
30
+ };
31
+ exports.makeDefaultExpiry = makeDefaultExpiry;
25
32
  //# sourceMappingURL=wrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../../src/utils/wrapper.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AACpC,iDAA8D;AAGjD,QAAA,UAAU,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,CAAA;AAEjC,MAAM,cAAc,GAAG,CAAC,MAAgB,EAAE,YAAY,GAAG,EAAE,EAAU,EAAE;IAC5E,IAAI,CAAC,MAAM;QAAE,OAAO,YAAY,CAAA;IAChC,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAA;IAC7C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ;QAC1D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAA;IACvB,IAAI,MAAM,YAAY,IAAI;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;IAC9E,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC,CAAA;AACxE,CAAC,CAAA;AAPY,QAAA,cAAc,kBAO1B;AAEM,MAAM,uBAAuB,GAAG,CAAC,KAAa,EAAE,EAAE;IACvD,MAAM,KAAK,GAAG,IAAA,oBAAa,EAAC,KAAK,CAAC,CAAA;IAClC,IAAI,KAAK,CAAC,UAAU,GAAG,GAAG;QACxB,MAAM,IAAI,oCAAyB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAA;AAChF,CAAC,CAAA;AAJY,QAAA,uBAAuB,2BAInC"}
1
+ {"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../../src/utils/wrapper.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AACpC,iDAA8D;AAE9D,yCAAwC;AAE3B,QAAA,UAAU,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,CAAA;AAEjC,MAAM,cAAc,GAAG,CAAC,MAAgB,EAAE,YAAY,GAAG,EAAE,EAAU,EAAE;IAC5E,IAAI,CAAC,MAAM;QAAE,OAAO,YAAY,CAAA;IAChC,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAA;IAC7C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ;QAC1D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAA;IACvB,IAAI,MAAM,YAAY,IAAI;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;IAC9E,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC,CAAA;AACxE,CAAC,CAAA;AAPY,QAAA,cAAc,kBAO1B;AAEM,MAAM,uBAAuB,GAAG,CAAC,KAAa,EAAE,EAAE;IACvD,MAAM,KAAK,GAAG,IAAA,oBAAa,EAAC,KAAK,CAAC,CAAA;IAClC,IAAI,KAAK,CAAC,UAAU,GAAG,GAAG;QACxB,MAAM,IAAI,oCAAyB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAA;AAChF,CAAC,CAAA;AAJY,QAAA,uBAAuB,2BAInC;AAEM,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAAU,EAAE;IAC1D,IAAI,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,sBAAW,CAAC,qBAAqB;QAC5D,OAAO,kBAAU,CAAA;IACnB,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAJY,QAAA,iBAAiB,qBAI7B"}
@@ -1,2 +1,2 @@
1
- export const version = 'v3.5.0';
1
+ export const version = 'v3.7.0';
2
2
  //# sourceMappingURL=version.js.map
@@ -4,10 +4,12 @@ import { getChainContractAddress } from '../../contracts/getChainContractAddress
4
4
  import { nameWrapperSetSubnodeRecordSnippet } from '../../contracts/nameWrapper.js';
5
5
  import { registrySetSubnodeRecordSnippet } from '../../contracts/registry.js';
6
6
  import { InvalidContractTypeError, UnsupportedNameTypeError, } from '../../errors/general.js';
7
- import { encodeFuses } from '../../utils/fuses.js';
7
+ import { encodeFuses, ParentFuses, } from '../../utils/fuses.js';
8
8
  import { getNameType } from '../../utils/getNameType.js';
9
9
  import { makeLabelNodeAndParent } from '../../utils/makeLabelNodeAndParent.js';
10
- import { MAX_EXPIRY, expiryToBigInt, wrappedLabelLengthCheck, } from '../../utils/wrapper.js';
10
+ import { expiryToBigInt, wrappedLabelLengthCheck, makeDefaultExpiry, } from '../../utils/wrapper.js';
11
+ import getWrapperData from '../public/getWrapperData.js';
12
+ import { BaseError } from '../../errors/base.js';
11
13
  export const makeFunctionData = (wallet, { name, contract, owner, resolverAddress = getChainContractAddress({
12
14
  client: wallet,
13
15
  contract: 'ensPublicResolver',
@@ -41,7 +43,9 @@ export const makeFunctionData = (wallet, { name, contract, owner, resolverAddres
41
43
  case 'nameWrapper': {
42
44
  wrappedLabelLengthCheck(label);
43
45
  const generatedFuses = fuses ? encodeFuses({ input: fuses }) : 0;
44
- const generatedExpiry = expiry ? expiryToBigInt(expiry) : MAX_EXPIRY;
46
+ const generatedExpiry = expiry
47
+ ? expiryToBigInt(expiry)
48
+ : makeDefaultExpiry(generatedFuses);
45
49
  return {
46
50
  to: getChainContractAddress({
47
51
  client: wallet,
@@ -69,6 +73,57 @@ export const makeFunctionData = (wallet, { name, contract, owner, resolverAddres
69
73
  });
70
74
  }
71
75
  };
76
+ class CreateSubnamePermissionDeniedError extends BaseError {
77
+ constructor({ parentName }) {
78
+ super(`Create subname error: ${parentName} as burned CANNOT_CREATE_SUBDOMAIN fuse`);
79
+ Object.defineProperty(this, "parentName", {
80
+ enumerable: true,
81
+ configurable: true,
82
+ writable: true,
83
+ value: void 0
84
+ });
85
+ Object.defineProperty(this, "name", {
86
+ enumerable: true,
87
+ configurable: true,
88
+ writable: true,
89
+ value: 'CreateSubnamePermissionDeniedError'
90
+ });
91
+ this.parentName = parentName;
92
+ }
93
+ }
94
+ class CreateSubnameParentNotLockedError extends BaseError {
95
+ constructor({ parentName }) {
96
+ super(`Create subname error: Cannot burn PARENT_CANNOT_CONTROL when ${parentName} has not burned CANNOT_UNWRAP fuse`);
97
+ Object.defineProperty(this, "parentName", {
98
+ enumerable: true,
99
+ configurable: true,
100
+ writable: true,
101
+ value: void 0
102
+ });
103
+ Object.defineProperty(this, "name", {
104
+ enumerable: true,
105
+ configurable: true,
106
+ writable: true,
107
+ value: 'CreateSubnameParentNotLockedError'
108
+ });
109
+ this.parentName = parentName;
110
+ }
111
+ }
112
+ const checkCanCreateSubname = async (wallet, { name, fuses, contract, }) => {
113
+ if (contract !== 'nameWrapper')
114
+ return;
115
+ const parentName = name.split('.').slice(1).join('.');
116
+ if (parentName === 'eth')
117
+ return;
118
+ const parentWrapperData = await getWrapperData(wallet, { name: parentName });
119
+ if (parentWrapperData?.fuses?.child?.CANNOT_CREATE_SUBDOMAIN)
120
+ throw new CreateSubnamePermissionDeniedError({ parentName });
121
+ const generatedFuses = fuses ? encodeFuses({ input: fuses }) : 0;
122
+ const isBurningPCC = fuses && BigInt(generatedFuses) & ParentFuses.PARENT_CANNOT_CONTROL;
123
+ const isParentCannotUnwrapBurned = parentWrapperData?.fuses?.child?.CANNOT_UNWRAP;
124
+ if (isBurningPCC && !isParentCannotUnwrapBurned)
125
+ throw new CreateSubnameParentNotLockedError({ parentName });
126
+ };
72
127
  /**
73
128
  * Creates a subname
74
129
  * @param wallet - {@link ClientWithAccount}
@@ -93,6 +148,7 @@ export const makeFunctionData = (wallet, { name, contract, owner, resolverAddres
93
148
  * // 0x...
94
149
  */
95
150
  async function createSubname(wallet, { name, contract, owner, resolverAddress, expiry, fuses, ...txArgs }) {
151
+ await checkCanCreateSubname(wallet, { name, fuses, contract });
96
152
  const data = makeFunctionData(wallet, {
97
153
  name,
98
154
  contract,
@@ -1 +1 @@
1
- {"version":3,"file":"createSubname.js","sourceRoot":"","sources":["../../../../src/functions/wallet/createSubname.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createSubname.js","sourceRoot":"","sources":["../../../../src/functions/wallet/createSubname.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import { BaseError, HttpRequestError, ccipRequest, encodeErrorResult, parseAbi, } from 'viem';
2
+ const errorAbi = parseAbi(['error HttpError((uint16, string)[])']);
3
+ const ccipRequestItemHandler = async ([wrappedSender, wrappedUrls, wrappedCallData,]) => {
4
+ try {
5
+ const ccipResult = await ccipRequest({
6
+ sender: wrappedSender,
7
+ urls: wrappedUrls,
8
+ data: wrappedCallData,
9
+ });
10
+ return [false, ccipResult];
11
+ }
12
+ catch (e) {
13
+ if (e instanceof HttpRequestError) {
14
+ return [
15
+ true,
16
+ encodeErrorResult({
17
+ abi: errorAbi,
18
+ errorName: 'HttpError',
19
+ args: [[[e.status || 500, e.details]]],
20
+ }),
21
+ ];
22
+ }
23
+ return [
24
+ true,
25
+ encodeErrorResult({
26
+ abi: errorAbi,
27
+ errorName: 'HttpError',
28
+ args: [[[500, e instanceof BaseError ? e.details : 'Unknown Error']]],
29
+ }),
30
+ ];
31
+ }
32
+ };
33
+ export const ccipBatchRequest = async (callDatas) => {
34
+ const ccipRequestCache = new Map();
35
+ const responsePromises = [];
36
+ for (let i = 0; i < callDatas.length; i += 1) {
37
+ const [wrappedSender, wrappedUrls, wrappedCallData] = callDatas[i];
38
+ const requestId = JSON.stringify([
39
+ wrappedSender,
40
+ wrappedUrls,
41
+ wrappedCallData,
42
+ ]);
43
+ const existingRequest = ccipRequestCache.get(requestId);
44
+ if (existingRequest) {
45
+ responsePromises.push(existingRequest);
46
+ // eslint-disable-next-line no-continue
47
+ continue;
48
+ }
49
+ const ccipRequestPromise = ccipRequestItemHandler([
50
+ wrappedSender,
51
+ wrappedUrls,
52
+ wrappedCallData,
53
+ ]);
54
+ ccipRequestCache.set(requestId, ccipRequestPromise);
55
+ responsePromises.push(ccipRequestPromise);
56
+ }
57
+ const awaitedResponses = await Promise.all(responsePromises);
58
+ return awaitedResponses.reduce(([failures, responses], [failure, response], i) => {
59
+ failures[i] = failure;
60
+ responses[i] = response;
61
+ return [failures, responses];
62
+ }, [[], []]);
63
+ };
64
+ //# sourceMappingURL=ccipBatchRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ccipBatchRequest.js","sourceRoot":"","sources":["../../../src/utils/ccipBatchRequest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { decodeFunctionData, encodeFunctionResult, isAddressEqual, parseAbi, ccipRequest as viemCcipRequest, } from 'viem';
2
+ import { getChainContractAddress } from '../contracts/getChainContractAddress.js';
3
+ import { ccipBatchRequest } from './ccipBatchRequest.js';
4
+ const abi = parseAbi([
5
+ 'function query((address,string[],bytes)[]) returns (bool[],bytes[])',
6
+ ]);
7
+ const universalResolverQuerySig = '0xa780bab6';
8
+ export const ccipRequest = (chain) => async ({ data, sender, urls, }) => {
9
+ const universalResolverAddress = getChainContractAddress({
10
+ client: { chain },
11
+ contract: 'ensUniversalResolver',
12
+ });
13
+ const isUniversalResolverRequest = isAddressEqual(sender, universalResolverAddress);
14
+ if (isUniversalResolverRequest &&
15
+ data.slice(0, 10) === universalResolverQuerySig) {
16
+ const { args } = decodeFunctionData({ abi, data });
17
+ const result = await ccipBatchRequest(args[0]);
18
+ return encodeFunctionResult({ abi, result });
19
+ }
20
+ return viemCcipRequest({ data, sender, urls });
21
+ };
22
+ //# sourceMappingURL=ccipRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ccipRequest.js","sourceRoot":"","sources":["../../../src/utils/ccipRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,QAAQ,EACR,WAAW,IAAI,eAAe,GAG/B,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAA;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,MAAM,GAAG,GAAG,QAAQ,CAAC;IACnB,qEAAqE;CACtE,CAAC,CAAA;AAEF,MAAM,yBAAyB,GAAG,YAAY,CAAA;AAE9C,MAAM,CAAC,MAAM,WAAW,GACtB,CAAuB,KAAa,EAAE,EAAE,CACxC,KAAK,EAAE,EACL,IAAI,EACJ,MAAM,EACN,IAAI,GACkB,EAAsC,EAAE;IAC9D,MAAM,wBAAwB,GAAG,uBAAuB,CAAC;QACvD,MAAM,EAAE,EAAE,KAAK,EAAE;QACjB,QAAQ,EAAE,sBAAsB;KACjC,CAAC,CAAA;IACF,MAAM,0BAA0B,GAAG,cAAc,CAC/C,MAAM,EACN,wBAAwB,CACzB,CAAA;IACD,IACE,0BAA0B;QAC1B,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,yBAAyB,EAC/C,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,kBAAkB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;QAClD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9C,OAAO,oBAAoB,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;IAC9C,CAAC;IAED,OAAO,eAAe,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;AAChD,CAAC,CAAA"}
@@ -1,3 +1,4 @@
1
+ export { ccipRequest } from './ccipRequest.js';
1
2
  export { getDnsTxtRecords, } from './dns/getDnsTxtRecords.js';
2
3
  export { DnsRecordType, DnsResponseStatus, } from './dns/misc.js';
3
4
  export { contentTypeToEncodeAs, encodeAbi, encodeAsToContentType, } from './encoders/encodeAbi.js';
@@ -11,6 +12,7 @@ export { ChildFuseKeys, ChildFuseReference, ChildFuses, FullParentFuseKeys, Full
11
12
  export { decodeContentHash, encodeContentHash, getDisplayCodec, getInternalCodec, getProtocolType, isValidContentHash, } from './contentHash.js';
12
13
  export { truncateFormat } from './format.js';
13
14
  export { generateRecordCallArray, } from './generateRecordCallArray.js';
15
+ export { generateSupportedContentTypes } from './generateSupportedContentTypes.js';
14
16
  export { bytesToPacket, packetToBytes } from './hexEncodedName.js';
15
17
  export { checkIsDecrypted, checkLabel, decodeLabelhash, decryptName, encodeLabelhash, isEncodedLabelhash, saveLabel, saveName, } from './labels.js';
16
18
  export { makeSafeSecondsDate } from './makeSafeSecondsDate.js';
@@ -18,5 +20,4 @@ export { beautify, emoji, isCombiningMark, namehash, normalise, normaliseFragmen
18
20
  export { makeCommitment, makeCommitmentFromTuple, makeCommitmentTuple, makeRegistrationTuple, randomSecret, } from './registerHelpers.js';
19
21
  export { checkIsDotEth, parseInput, validateName, } from './validation.js';
20
22
  export { MAX_EXPIRY, expiryToBigInt, wrappedLabelLengthCheck, } from './wrapper.js';
21
- export { generateSupportedContentTypes } from './generateSupportedContentTypes.js';
22
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,GAGjB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,aAAa,EACb,iBAAiB,GAIlB,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,qBAAqB,EACrB,SAAS,EACT,qBAAqB,GAItB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AACrE,OAAO,EACL,YAAY,GAGb,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,aAAa,GAGd,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,oBAAoB,GAGrB,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EACL,aAAa,GAGd,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,GAQZ,MAAM,YAAY,CAAA;AAEnB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,kBAAkB,GAGnB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EACL,uBAAuB,GAExB,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,GAWT,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,GAIb,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,aAAa,EACb,UAAU,EACV,YAAY,GAEb,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,UAAU,EACV,cAAc,EACd,uBAAuB,GACxB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EACL,gBAAgB,GAGjB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,aAAa,EACb,iBAAiB,GAIlB,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,qBAAqB,EACrB,SAAS,EACT,qBAAqB,GAItB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AACrE,OAAO,EACL,YAAY,GAGb,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,aAAa,GAGd,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,oBAAoB,GAGrB,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EACL,aAAa,GAGd,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,GAQZ,MAAM,YAAY,CAAA;AAEnB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,kBAAkB,GAGnB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EACL,uBAAuB,GAExB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAA;AAClF,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,GAWT,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,GAIb,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,aAAa,EACb,UAAU,EACV,YAAY,GAEb,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,UAAU,EACV,cAAc,EACd,uBAAuB,GACxB,MAAM,cAAc,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import { stringToBytes } from 'viem';
2
2
  import { WrappedLabelTooLargeError } from '../errors/utils.js';
3
+ import { ParentFuses } from './fuses.js';
3
4
  export const MAX_EXPIRY = 2n ** 64n - 1n;
4
5
  export const expiryToBigInt = (expiry, defaultValue = 0n) => {
5
6
  if (!expiry)
@@ -17,4 +18,9 @@ export const wrappedLabelLengthCheck = (label) => {
17
18
  if (bytes.byteLength > 255)
18
19
  throw new WrappedLabelTooLargeError({ label, byteLength: bytes.byteLength });
19
20
  };
21
+ export const makeDefaultExpiry = (fuses) => {
22
+ if (fuses && BigInt(fuses) & ParentFuses.PARENT_CANNOT_CONTROL)
23
+ return MAX_EXPIRY;
24
+ return 0n;
25
+ };
20
26
  //# sourceMappingURL=wrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../../src/utils/wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAG9D,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,CAAA;AAExC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAgB,EAAE,YAAY,GAAG,EAAE,EAAU,EAAE;IAC5E,IAAI,CAAC,MAAM;QAAE,OAAO,YAAY,CAAA;IAChC,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAA;IAC7C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ;QAC1D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAA;IACvB,IAAI,MAAM,YAAY,IAAI;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;IAC9E,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC,CAAA;AACxE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAa,EAAE,EAAE;IACvD,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IAClC,IAAI,KAAK,CAAC,UAAU,GAAG,GAAG;QACxB,MAAM,IAAI,yBAAyB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAA;AAChF,CAAC,CAAA"}
1
+ {"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../../src/utils/wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,CAAA;AAExC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAgB,EAAE,YAAY,GAAG,EAAE,EAAU,EAAE;IAC5E,IAAI,CAAC,MAAM;QAAE,OAAO,YAAY,CAAA;IAChC,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAA;IAC7C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ;QAC1D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAA;IACvB,IAAI,MAAM,YAAY,IAAI;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;IAC9E,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC,CAAA;AACxE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAa,EAAE,EAAE;IACvD,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IAClC,IAAI,KAAK,CAAC,UAAU,GAAG,GAAG;QACxB,MAAM,IAAI,yBAAyB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAA;AAChF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAAU,EAAE;IAC1D,IAAI,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,qBAAqB;QAC5D,OAAO,UAAU,CAAA;IACnB,OAAO,EAAE,CAAA;AACX,CAAC,CAAA"}