@ensdomains/ensjs 3.5.0 → 3.6.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.
- package/dist/cjs/errors/version.js +1 -1
- package/dist/cjs/utils/ccipBatchRequest.js +67 -0
- package/dist/cjs/utils/ccipBatchRequest.js.map +1 -0
- package/dist/cjs/utils/ccipRequest.js +26 -0
- package/dist/cjs/utils/ccipRequest.js.map +1 -0
- package/dist/cjs/utils/index.js +6 -4
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/esm/errors/version.js +1 -1
- package/dist/esm/utils/ccipBatchRequest.js +64 -0
- package/dist/esm/utils/ccipBatchRequest.js.map +1 -0
- package/dist/esm/utils/ccipRequest.js +22 -0
- package/dist/esm/utils/ccipRequest.js.map +1 -0
- package/dist/esm/utils/index.js +2 -1
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/types/clients/decorators/wallet.d.ts +2785 -5
- package/dist/types/clients/decorators/wallet.d.ts.map +1 -1
- package/dist/types/clients/public.d.ts +5 -1
- package/dist/types/clients/public.d.ts.map +1 -1
- package/dist/types/clients/subgraph.d.ts +5 -1
- package/dist/types/clients/subgraph.d.ts.map +1 -1
- package/dist/types/clients/wallet.d.ts +2814 -34
- package/dist/types/clients/wallet.d.ts.map +1 -1
- package/dist/types/errors/version.d.ts +1 -1
- package/dist/types/utils/ccipBatchRequest.d.ts +7 -0
- package/dist/types/utils/ccipBatchRequest.d.ts.map +1 -0
- package/dist/types/utils/ccipRequest.d.ts +3 -0
- package/dist/types/utils/ccipRequest.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +2 -1
- package/dist/types/utils/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/errors/version.ts +1 -1
- package/src/utils/ccipBatchRequest.ts +93 -0
- package/src/utils/ccipRequest.ts +44 -0
- package/src/utils/index.ts +2 -1
|
@@ -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"}
|
package/dist/cjs/utils/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
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
|
|
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,2 +1,2 @@
|
|
|
1
|
-
export const version = 'v3.
|
|
1
|
+
export const version = 'v3.6.0';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
|
@@ -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":"AAAA,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,QAAQ,GAGT,MAAM,MAAM,CAAA;AAMb,MAAM,QAAQ,GAAG,QAAQ,CAAC,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,WAAW,CAAC;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,gBAAgB,EAAE,CAAC;YAClC,OAAO;gBACL,IAAI;gBACJ,iBAAiB,CAAC;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,iBAAiB,CAAC;gBAChB,GAAG,EAAE,QAAQ;gBACb,SAAS,EAAE,WAAW;gBACtB,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;aACtE,CAAC;SACH,CAAA;IACH,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,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;YACtC,uCAAuC;YACvC,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"}
|
|
@@ -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"}
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -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
|
|
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"}
|