@reown/appkit-cdn 1.3.0 → 1.3.2

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 (35) hide show
  1. package/dist/{appkit-7f_Qul-P.js → appkit-CL0OgGE3.js} +4084 -2867
  2. package/dist/{appkit-7f_Qul-P.js.map → appkit-CL0OgGE3.js.map} +1 -1
  3. package/dist/appkit.js +8 -8
  4. package/dist/{ccip-_4Yutfe6.js → ccip-DwyKipDA.js} +4 -2
  5. package/dist/ccip-DwyKipDA.js.map +1 -0
  6. package/dist/{hooks.module-C5iQuMcf.js → hooks.module-BMAiCsjR.js} +15 -2
  7. package/dist/hooks.module-BMAiCsjR.js.map +1 -0
  8. package/dist/{index-Cm1V1SJ6.js → index-BBqHRRQx.js} +3 -3
  9. package/dist/{index-Cm1V1SJ6.js.map → index-BBqHRRQx.js.map} +1 -1
  10. package/dist/{index-DupVO9Wp.js → index-BPtkh3Hr.js} +3 -3
  11. package/dist/{index-DupVO9Wp.js.map → index-BPtkh3Hr.js.map} +1 -1
  12. package/dist/{index-B_VBLLw_.js → index-BYa2Fgkb.js} +9 -6
  13. package/dist/{index-B_VBLLw_.js.map → index-BYa2Fgkb.js.map} +1 -1
  14. package/dist/{index-BOsmgosj.js → index-B_CdL_vf.js} +3 -3
  15. package/dist/{index-BOsmgosj.js.map → index-B_CdL_vf.js.map} +1 -1
  16. package/dist/{index-XmvZhcoj.js → index-BkJs1o-3.js} +16 -6
  17. package/dist/{index-XmvZhcoj.js.map → index-BkJs1o-3.js.map} +1 -1
  18. package/dist/{index-OHSac1eo.js → index-DDV7C-Dq.js} +2 -2
  19. package/dist/{index-OHSac1eo.js.map → index-DDV7C-Dq.js.map} +1 -1
  20. package/dist/{index-bvDvBz1T.js → index-Do5F_UHc.js} +2 -2
  21. package/dist/{index-bvDvBz1T.js.map → index-Do5F_UHc.js.map} +1 -1
  22. package/dist/{index-XQZ3Et9k.js → index-t51apqeL.js} +3 -3
  23. package/dist/{index-XQZ3Et9k.js.map → index-t51apqeL.js.map} +1 -1
  24. package/dist/{index.es-m4wXhnvj.js → index.es-j3RJkSKj.js} +3 -3
  25. package/dist/{index.es-m4wXhnvj.js.map → index.es-j3RJkSKj.js.map} +1 -1
  26. package/dist/{metamask-sdk-DyXEHbIo.js → metamask-sdk-CzIVh3NN.js} +2 -2
  27. package/dist/{metamask-sdk-DyXEHbIo.js.map → metamask-sdk-CzIVh3NN.js.map} +1 -1
  28. package/dist/{native-hVJucNrW.js → native-heDj6rAL.js} +2 -2
  29. package/dist/{native-hVJucNrW.js.map → native-heDj6rAL.js.map} +1 -1
  30. package/dist/{w3m-modal-DqLH6QK2.js → w3m-modal-B_Hh2Aq8.js} +6 -5
  31. package/dist/w3m-modal-B_Hh2Aq8.js.map +1 -0
  32. package/package.json +8 -8
  33. package/dist/ccip-_4Yutfe6.js.map +0 -1
  34. package/dist/hooks.module-C5iQuMcf.js.map +0 -1
  35. package/dist/w3m-modal-DqLH6QK2.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index-OHSac1eo.js","sources":["../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/utils.js","../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/endpoint.js","../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/config.js","../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/safe-info.js","../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/safe-apps.js","../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/transactions.js","../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/chains.js","../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/common.js","../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/master-copies.js","../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/decoded-data.js","../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/safe-messages.js","../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/notifications.js","../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/relay.js","../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/index.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/@safe-global/safe-apps-sdk/dist/esm/version.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/@safe-global/safe-apps-sdk/dist/esm/communication/utils.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/@safe-global/safe-apps-sdk/dist/esm/communication/messageFormatter.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/@safe-global/safe-apps-sdk/dist/esm/communication/methods.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/@safe-global/safe-apps-sdk/dist/esm/communication/index.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/@safe-global/safe-apps-sdk/dist/esm/types/sdk.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/@safe-global/safe-apps-sdk/dist/esm/txs/index.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/@safe-global/safe-apps-sdk/dist/esm/eth/constants.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/@safe-global/safe-apps-sdk/dist/esm/eth/index.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/abi/formatAbiItem.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/data/isHex.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/data/size.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/errors/version.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/errors/base.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/errors/abi.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/errors/data.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/data/pad.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/errors/encoding.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/encoding/fromHex.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/encoding/toHex.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/encoding/toBytes.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/hash/keccak256.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/hash/hashSignature.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/hash/normalizeSignature.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/hash/toSignature.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/hash/toSignatureHash.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/hash/toEventSelector.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/errors/address.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/lru.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/address/getAddress.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/address/isAddress.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/data/concat.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/data/slice.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/abi/encodeAbiParameters.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/hash/toFunctionSelector.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/abi/getAbiItem.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/abi/prepareEncodeFunctionData.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/abi/encodeFunctionData.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/regex.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/errors/typedData.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/signature/hashTypedData.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/typedData.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/constants/strings.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/signature/toPrefixedMessage.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/viem/_esm/utils/signature/hashMessage.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/@safe-global/safe-apps-sdk/dist/esm/safe/signatures.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/@safe-global/safe-apps-sdk/dist/esm/types/permissions.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/@safe-global/safe-apps-sdk/dist/esm/wallet/index.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/@safe-global/safe-apps-sdk/dist/esm/decorators/requirePermissions.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/@safe-global/safe-apps-sdk/dist/esm/safe/index.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.23.8/node_modules/@safe-global/safe-apps-sdk/dist/esm/sdk.js"],"sourcesContent":["\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getData = exports.fetchData = exports.stringifyQuery = exports.insertParams = void 0;\nconst isErrorResponse = (data) => {\n const isObject = typeof data === 'object' && data !== null;\n return isObject && 'code' in data && 'message' in data;\n};\nfunction replaceParam(str, key, value) {\n return str.replace(new RegExp(`\\\\{${key}\\\\}`, 'g'), value);\n}\nfunction insertParams(template, params) {\n return params\n ? Object.keys(params).reduce((result, key) => {\n return replaceParam(result, key, String(params[key]));\n }, template)\n : template;\n}\nexports.insertParams = insertParams;\nfunction stringifyQuery(query) {\n if (!query) {\n return '';\n }\n const searchParams = new URLSearchParams();\n Object.keys(query).forEach((key) => {\n if (query[key] != null) {\n searchParams.append(key, String(query[key]));\n }\n });\n const searchString = searchParams.toString();\n return searchString ? `?${searchString}` : '';\n}\nexports.stringifyQuery = stringifyQuery;\nfunction parseResponse(resp) {\n return __awaiter(this, void 0, void 0, function* () {\n let json;\n try {\n json = yield resp.json();\n }\n catch (_a) {\n json = {};\n }\n if (!resp.ok) {\n const errTxt = isErrorResponse(json)\n ? `CGW error - ${json.code}: ${json.message}`\n : `CGW error - status ${resp.statusText}`;\n throw new Error(errTxt);\n }\n return json;\n });\n}\nfunction fetchData(url, method, body, headers, credentials) {\n return __awaiter(this, void 0, void 0, function* () {\n const requestHeaders = Object.assign({ 'Content-Type': 'application/json' }, headers);\n const options = {\n method: method !== null && method !== void 0 ? method : 'POST',\n headers: requestHeaders,\n };\n if (credentials) {\n options['credentials'] = credentials;\n }\n if (body != null) {\n options.body = typeof body === 'string' ? body : JSON.stringify(body);\n }\n const resp = yield fetch(url, options);\n return parseResponse(resp);\n });\n}\nexports.fetchData = fetchData;\nfunction getData(url, headers, credentials) {\n return __awaiter(this, void 0, void 0, function* () {\n const options = {\n method: 'GET',\n };\n if (headers) {\n options['headers'] = Object.assign(Object.assign({}, headers), { 'Content-Type': 'application/json' });\n }\n if (credentials) {\n options['credentials'] = credentials;\n }\n const resp = yield fetch(url, options);\n return parseResponse(resp);\n });\n}\nexports.getData = getData;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getEndpoint = exports.deleteEndpoint = exports.putEndpoint = exports.postEndpoint = void 0;\nconst utils_1 = require(\"./utils\");\nfunction makeUrl(baseUrl, path, pathParams, query) {\n const pathname = (0, utils_1.insertParams)(path, pathParams);\n const search = (0, utils_1.stringifyQuery)(query);\n return `${baseUrl}${pathname}${search}`;\n}\nfunction postEndpoint(baseUrl, path, params) {\n const url = makeUrl(baseUrl, path, params === null || params === void 0 ? void 0 : params.path, params === null || params === void 0 ? void 0 : params.query);\n return (0, utils_1.fetchData)(url, 'POST', params === null || params === void 0 ? void 0 : params.body, params === null || params === void 0 ? void 0 : params.headers, params === null || params === void 0 ? void 0 : params.credentials);\n}\nexports.postEndpoint = postEndpoint;\nfunction putEndpoint(baseUrl, path, params) {\n const url = makeUrl(baseUrl, path, params === null || params === void 0 ? void 0 : params.path, params === null || params === void 0 ? void 0 : params.query);\n return (0, utils_1.fetchData)(url, 'PUT', params === null || params === void 0 ? void 0 : params.body, params === null || params === void 0 ? void 0 : params.headers, params === null || params === void 0 ? void 0 : params.credentials);\n}\nexports.putEndpoint = putEndpoint;\nfunction deleteEndpoint(baseUrl, path, params) {\n const url = makeUrl(baseUrl, path, params === null || params === void 0 ? void 0 : params.path, params === null || params === void 0 ? void 0 : params.query);\n return (0, utils_1.fetchData)(url, 'DELETE', params === null || params === void 0 ? void 0 : params.body, params === null || params === void 0 ? void 0 : params.headers, params === null || params === void 0 ? void 0 : params.credentials);\n}\nexports.deleteEndpoint = deleteEndpoint;\nfunction getEndpoint(baseUrl, path, params, rawUrl) {\n if (rawUrl) {\n return (0, utils_1.getData)(rawUrl, undefined, params === null || params === void 0 ? void 0 : params.credentials);\n }\n const url = makeUrl(baseUrl, path, params === null || params === void 0 ? void 0 : params.path, params === null || params === void 0 ? void 0 : params.query);\n return (0, utils_1.getData)(url, params === null || params === void 0 ? void 0 : params.headers, params === null || params === void 0 ? void 0 : params.credentials);\n}\nexports.getEndpoint = getEndpoint;\n//# sourceMappingURL=endpoint.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_BASE_URL = void 0;\nexports.DEFAULT_BASE_URL = 'https://safe-client.safe.global';\n//# sourceMappingURL=config.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ImplementationVersionState = void 0;\nvar ImplementationVersionState;\n(function (ImplementationVersionState) {\n ImplementationVersionState[\"UP_TO_DATE\"] = \"UP_TO_DATE\";\n ImplementationVersionState[\"OUTDATED\"] = \"OUTDATED\";\n ImplementationVersionState[\"UNKNOWN\"] = \"UNKNOWN\";\n})(ImplementationVersionState = exports.ImplementationVersionState || (exports.ImplementationVersionState = {}));\n//# sourceMappingURL=safe-info.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SafeAppSocialPlatforms = exports.SafeAppFeatures = exports.SafeAppAccessPolicyTypes = void 0;\nvar SafeAppAccessPolicyTypes;\n(function (SafeAppAccessPolicyTypes) {\n SafeAppAccessPolicyTypes[\"NoRestrictions\"] = \"NO_RESTRICTIONS\";\n SafeAppAccessPolicyTypes[\"DomainAllowlist\"] = \"DOMAIN_ALLOWLIST\";\n})(SafeAppAccessPolicyTypes = exports.SafeAppAccessPolicyTypes || (exports.SafeAppAccessPolicyTypes = {}));\nvar SafeAppFeatures;\n(function (SafeAppFeatures) {\n SafeAppFeatures[\"BATCHED_TRANSACTIONS\"] = \"BATCHED_TRANSACTIONS\";\n})(SafeAppFeatures = exports.SafeAppFeatures || (exports.SafeAppFeatures = {}));\nvar SafeAppSocialPlatforms;\n(function (SafeAppSocialPlatforms) {\n SafeAppSocialPlatforms[\"TWITTER\"] = \"TWITTER\";\n SafeAppSocialPlatforms[\"GITHUB\"] = \"GITHUB\";\n SafeAppSocialPlatforms[\"DISCORD\"] = \"DISCORD\";\n})(SafeAppSocialPlatforms = exports.SafeAppSocialPlatforms || (exports.SafeAppSocialPlatforms = {}));\n//# sourceMappingURL=safe-apps.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LabelValue = exports.StartTimeValue = exports.DurationType = exports.DetailedExecutionInfoType = exports.TransactionListItemType = exports.ConflictType = exports.TransactionInfoType = exports.SettingsInfoType = exports.TransactionTokenType = exports.TransferDirection = exports.TransactionStatus = exports.Operation = void 0;\nvar Operation;\n(function (Operation) {\n Operation[Operation[\"CALL\"] = 0] = \"CALL\";\n Operation[Operation[\"DELEGATE\"] = 1] = \"DELEGATE\";\n})(Operation = exports.Operation || (exports.Operation = {}));\nvar TransactionStatus;\n(function (TransactionStatus) {\n TransactionStatus[\"AWAITING_CONFIRMATIONS\"] = \"AWAITING_CONFIRMATIONS\";\n TransactionStatus[\"AWAITING_EXECUTION\"] = \"AWAITING_EXECUTION\";\n TransactionStatus[\"CANCELLED\"] = \"CANCELLED\";\n TransactionStatus[\"FAILED\"] = \"FAILED\";\n TransactionStatus[\"SUCCESS\"] = \"SUCCESS\";\n})(TransactionStatus = exports.TransactionStatus || (exports.TransactionStatus = {}));\nvar TransferDirection;\n(function (TransferDirection) {\n TransferDirection[\"INCOMING\"] = \"INCOMING\";\n TransferDirection[\"OUTGOING\"] = \"OUTGOING\";\n TransferDirection[\"UNKNOWN\"] = \"UNKNOWN\";\n})(TransferDirection = exports.TransferDirection || (exports.TransferDirection = {}));\nvar TransactionTokenType;\n(function (TransactionTokenType) {\n TransactionTokenType[\"ERC20\"] = \"ERC20\";\n TransactionTokenType[\"ERC721\"] = \"ERC721\";\n TransactionTokenType[\"NATIVE_COIN\"] = \"NATIVE_COIN\";\n})(TransactionTokenType = exports.TransactionTokenType || (exports.TransactionTokenType = {}));\nvar SettingsInfoType;\n(function (SettingsInfoType) {\n SettingsInfoType[\"SET_FALLBACK_HANDLER\"] = \"SET_FALLBACK_HANDLER\";\n SettingsInfoType[\"ADD_OWNER\"] = \"ADD_OWNER\";\n SettingsInfoType[\"REMOVE_OWNER\"] = \"REMOVE_OWNER\";\n SettingsInfoType[\"SWAP_OWNER\"] = \"SWAP_OWNER\";\n SettingsInfoType[\"CHANGE_THRESHOLD\"] = \"CHANGE_THRESHOLD\";\n SettingsInfoType[\"CHANGE_IMPLEMENTATION\"] = \"CHANGE_IMPLEMENTATION\";\n SettingsInfoType[\"ENABLE_MODULE\"] = \"ENABLE_MODULE\";\n SettingsInfoType[\"DISABLE_MODULE\"] = \"DISABLE_MODULE\";\n SettingsInfoType[\"SET_GUARD\"] = \"SET_GUARD\";\n SettingsInfoType[\"DELETE_GUARD\"] = \"DELETE_GUARD\";\n})(SettingsInfoType = exports.SettingsInfoType || (exports.SettingsInfoType = {}));\nvar TransactionInfoType;\n(function (TransactionInfoType) {\n TransactionInfoType[\"TRANSFER\"] = \"Transfer\";\n TransactionInfoType[\"SETTINGS_CHANGE\"] = \"SettingsChange\";\n TransactionInfoType[\"CUSTOM\"] = \"Custom\";\n TransactionInfoType[\"CREATION\"] = \"Creation\";\n TransactionInfoType[\"SWAP_ORDER\"] = \"SwapOrder\";\n TransactionInfoType[\"TWAP_ORDER\"] = \"TwapOrder\";\n TransactionInfoType[\"SWAP_TRANSFER\"] = \"SwapTransfer\";\n})(TransactionInfoType = exports.TransactionInfoType || (exports.TransactionInfoType = {}));\nvar ConflictType;\n(function (ConflictType) {\n ConflictType[\"NONE\"] = \"None\";\n ConflictType[\"HAS_NEXT\"] = \"HasNext\";\n ConflictType[\"END\"] = \"End\";\n})(ConflictType = exports.ConflictType || (exports.ConflictType = {}));\nvar TransactionListItemType;\n(function (TransactionListItemType) {\n TransactionListItemType[\"TRANSACTION\"] = \"TRANSACTION\";\n TransactionListItemType[\"LABEL\"] = \"LABEL\";\n TransactionListItemType[\"CONFLICT_HEADER\"] = \"CONFLICT_HEADER\";\n TransactionListItemType[\"DATE_LABEL\"] = \"DATE_LABEL\";\n})(TransactionListItemType = exports.TransactionListItemType || (exports.TransactionListItemType = {}));\nvar DetailedExecutionInfoType;\n(function (DetailedExecutionInfoType) {\n DetailedExecutionInfoType[\"MULTISIG\"] = \"MULTISIG\";\n DetailedExecutionInfoType[\"MODULE\"] = \"MODULE\";\n})(DetailedExecutionInfoType = exports.DetailedExecutionInfoType || (exports.DetailedExecutionInfoType = {}));\nvar DurationType;\n(function (DurationType) {\n DurationType[\"AUTO\"] = \"AUTO\";\n DurationType[\"LIMIT_DURATION\"] = \"LIMIT_DURATION\";\n})(DurationType = exports.DurationType || (exports.DurationType = {}));\nvar StartTimeValue;\n(function (StartTimeValue) {\n StartTimeValue[\"AT_MINING_TIME\"] = \"AT_MINING_TIME\";\n StartTimeValue[\"AT_EPOCH\"] = \"AT_EPOCH\";\n})(StartTimeValue = exports.StartTimeValue || (exports.StartTimeValue = {}));\nvar LabelValue;\n(function (LabelValue) {\n LabelValue[\"Queued\"] = \"Queued\";\n LabelValue[\"Next\"] = \"Next\";\n})(LabelValue = exports.LabelValue || (exports.LabelValue = {}));\n//# sourceMappingURL=transactions.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FEATURES = exports.GAS_PRICE_TYPE = exports.RPC_AUTHENTICATION = void 0;\nvar RPC_AUTHENTICATION;\n(function (RPC_AUTHENTICATION) {\n RPC_AUTHENTICATION[\"API_KEY_PATH\"] = \"API_KEY_PATH\";\n RPC_AUTHENTICATION[\"NO_AUTHENTICATION\"] = \"NO_AUTHENTICATION\";\n RPC_AUTHENTICATION[\"UNKNOWN\"] = \"UNKNOWN\";\n})(RPC_AUTHENTICATION = exports.RPC_AUTHENTICATION || (exports.RPC_AUTHENTICATION = {}));\nvar GAS_PRICE_TYPE;\n(function (GAS_PRICE_TYPE) {\n GAS_PRICE_TYPE[\"ORACLE\"] = \"ORACLE\";\n GAS_PRICE_TYPE[\"FIXED\"] = \"FIXED\";\n GAS_PRICE_TYPE[\"FIXED_1559\"] = \"FIXED1559\";\n GAS_PRICE_TYPE[\"UNKNOWN\"] = \"UNKNOWN\";\n})(GAS_PRICE_TYPE = exports.GAS_PRICE_TYPE || (exports.GAS_PRICE_TYPE = {}));\nvar FEATURES;\n(function (FEATURES) {\n FEATURES[\"ERC721\"] = \"ERC721\";\n FEATURES[\"SAFE_APPS\"] = \"SAFE_APPS\";\n FEATURES[\"CONTRACT_INTERACTION\"] = \"CONTRACT_INTERACTION\";\n FEATURES[\"DOMAIN_LOOKUP\"] = \"DOMAIN_LOOKUP\";\n FEATURES[\"SPENDING_LIMIT\"] = \"SPENDING_LIMIT\";\n FEATURES[\"EIP1559\"] = \"EIP1559\";\n FEATURES[\"SAFE_TX_GAS_OPTIONAL\"] = \"SAFE_TX_GAS_OPTIONAL\";\n FEATURES[\"TX_SIMULATION\"] = \"TX_SIMULATION\";\n FEATURES[\"EIP1271\"] = \"EIP1271\";\n})(FEATURES = exports.FEATURES || (exports.FEATURES = {}));\n//# sourceMappingURL=chains.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TokenType = void 0;\nvar TokenType;\n(function (TokenType) {\n TokenType[\"ERC20\"] = \"ERC20\";\n TokenType[\"ERC721\"] = \"ERC721\";\n TokenType[\"NATIVE_TOKEN\"] = \"NATIVE_TOKEN\";\n})(TokenType = exports.TokenType || (exports.TokenType = {}));\n//# sourceMappingURL=common.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=master-copies.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConfirmationViewTypes = void 0;\nvar ConfirmationViewTypes;\n(function (ConfirmationViewTypes) {\n ConfirmationViewTypes[\"COW_SWAP_ORDER\"] = \"COW_SWAP_ORDER\";\n ConfirmationViewTypes[\"COW_SWAP_TWAP_ORDER\"] = \"COW_SWAP_TWAP_ORDER\";\n})(ConfirmationViewTypes = exports.ConfirmationViewTypes || (exports.ConfirmationViewTypes = {}));\n//# sourceMappingURL=decoded-data.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SafeMessageStatus = exports.SafeMessageListItemType = void 0;\nvar SafeMessageListItemType;\n(function (SafeMessageListItemType) {\n SafeMessageListItemType[\"DATE_LABEL\"] = \"DATE_LABEL\";\n SafeMessageListItemType[\"MESSAGE\"] = \"MESSAGE\";\n})(SafeMessageListItemType = exports.SafeMessageListItemType || (exports.SafeMessageListItemType = {}));\nvar SafeMessageStatus;\n(function (SafeMessageStatus) {\n SafeMessageStatus[\"NEEDS_CONFIRMATION\"] = \"NEEDS_CONFIRMATION\";\n SafeMessageStatus[\"CONFIRMED\"] = \"CONFIRMED\";\n})(SafeMessageStatus = exports.SafeMessageStatus || (exports.SafeMessageStatus = {}));\n//# sourceMappingURL=safe-messages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeviceType = void 0;\nvar DeviceType;\n(function (DeviceType) {\n DeviceType[\"ANDROID\"] = \"ANDROID\";\n DeviceType[\"IOS\"] = \"IOS\";\n DeviceType[\"WEB\"] = \"WEB\";\n})(DeviceType = exports.DeviceType || (exports.DeviceType = {}));\n//# sourceMappingURL=notifications.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=relay.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deleteAccount = exports.getAccount = exports.createAccount = exports.verifyAuth = exports.getAuthNonce = exports.getContract = exports.getSafeOverviews = exports.unsubscribeAll = exports.unsubscribeSingle = exports.registerRecoveryModule = exports.deleteRegisteredEmail = exports.getRegisteredEmail = exports.verifyEmail = exports.resendEmailVerificationCode = exports.changeEmail = exports.registerEmail = exports.unregisterDevice = exports.unregisterSafe = exports.registerDevice = exports.getDelegates = exports.confirmSafeMessage = exports.proposeSafeMessage = exports.getSafeMessage = exports.getSafeMessages = exports.getDecodedData = exports.getMasterCopies = exports.getSafeApps = exports.getChainConfig = exports.getChainsConfig = exports.getConfirmationView = exports.proposeTransaction = exports.getNonces = exports.postSafeGasEstimation = exports.deleteTransaction = exports.getTransactionDetails = exports.getTransactionQueue = exports.getTransactionHistory = exports.getCollectiblesPage = exports.getCollectibles = exports.getAllOwnedSafes = exports.getOwnedSafes = exports.getFiatCurrencies = exports.getBalances = exports.getMultisigTransactions = exports.getModuleTransactions = exports.getIncomingTransfers = exports.getSafeInfo = exports.getRelayCount = exports.relayTransaction = exports.setBaseUrl = void 0;\nexports.putAccountDataSettings = exports.getAccountDataSettings = exports.getAccountDataTypes = void 0;\nconst endpoint_1 = require(\"./endpoint\");\nconst config_1 = require(\"./config\");\n__exportStar(require(\"./types/safe-info\"), exports);\n__exportStar(require(\"./types/safe-apps\"), exports);\n__exportStar(require(\"./types/transactions\"), exports);\n__exportStar(require(\"./types/chains\"), exports);\n__exportStar(require(\"./types/common\"), exports);\n__exportStar(require(\"./types/master-copies\"), exports);\n__exportStar(require(\"./types/decoded-data\"), exports);\n__exportStar(require(\"./types/safe-messages\"), exports);\n__exportStar(require(\"./types/notifications\"), exports);\n__exportStar(require(\"./types/relay\"), exports);\n// Can be set externally to a different CGW host\nlet baseUrl = config_1.DEFAULT_BASE_URL;\n/**\n * Set the base CGW URL\n */\nconst setBaseUrl = (url) => {\n baseUrl = url;\n};\nexports.setBaseUrl = setBaseUrl;\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/**\n * Relay a transaction from a Safe\n */\nfunction relayTransaction(chainId, body) {\n return (0, endpoint_1.postEndpoint)(baseUrl, '/v1/chains/{chainId}/relay', { path: { chainId }, body });\n}\nexports.relayTransaction = relayTransaction;\n/**\n * Get the relay limit and number of remaining relays remaining\n */\nfunction getRelayCount(chainId, address) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/relay/{address}', { path: { chainId, address } });\n}\nexports.getRelayCount = getRelayCount;\n/**\n * Get basic information about a Safe. E.g. owners, modules, version etc\n */\nfunction getSafeInfo(chainId, address) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{address}', { path: { chainId, address } });\n}\nexports.getSafeInfo = getSafeInfo;\n/**\n * Get filterable list of incoming transactions\n */\nfunction getIncomingTransfers(chainId, address, query, pageUrl) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{address}/incoming-transfers/', {\n path: { chainId, address },\n query,\n }, pageUrl);\n}\nexports.getIncomingTransfers = getIncomingTransfers;\n/**\n * Get filterable list of module transactions\n */\nfunction getModuleTransactions(chainId, address, query, pageUrl) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{address}/module-transactions/', {\n path: { chainId, address },\n query,\n }, pageUrl);\n}\nexports.getModuleTransactions = getModuleTransactions;\n/**\n * Get filterable list of multisig transactions\n */\nfunction getMultisigTransactions(chainId, address, query, pageUrl) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{address}/multisig-transactions/', {\n path: { chainId, address },\n query,\n }, pageUrl);\n}\nexports.getMultisigTransactions = getMultisigTransactions;\n/**\n * Get the total balance and all assets stored in a Safe\n */\nfunction getBalances(chainId, address, currency = 'usd', query = {}) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{address}/balances/{currency}', {\n path: { chainId, address, currency },\n query,\n });\n}\nexports.getBalances = getBalances;\n/**\n * Get a list of supported fiat currencies (e.g. USD, EUR etc)\n */\nfunction getFiatCurrencies() {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/balances/supported-fiat-codes');\n}\nexports.getFiatCurrencies = getFiatCurrencies;\n/**\n * Get the addresses of all Safes belonging to an owner\n */\nfunction getOwnedSafes(chainId, address) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/owners/{address}/safes', { path: { chainId, address } });\n}\nexports.getOwnedSafes = getOwnedSafes;\n/**\n * Get the addresses of all Safes belonging to an owner on all chains\n */\nfunction getAllOwnedSafes(address) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/owners/{address}/safes', { path: { address } });\n}\nexports.getAllOwnedSafes = getAllOwnedSafes;\n/**\n * Get NFTs stored in a Safe\n */\nfunction getCollectibles(chainId, address, query = {}) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{address}/collectibles', {\n path: { chainId, address },\n query,\n });\n}\nexports.getCollectibles = getCollectibles;\n/**\n * Get NFTs stored in a Safe\n */\nfunction getCollectiblesPage(chainId, address, query = {}, pageUrl) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v2/chains/{chainId}/safes/{address}/collectibles', { path: { chainId, address }, query }, pageUrl);\n}\nexports.getCollectiblesPage = getCollectiblesPage;\n/**\n * Get a list of past Safe transactions\n */\nfunction getTransactionHistory(chainId, address, query = {}, pageUrl) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{safe_address}/transactions/history', { path: { chainId, safe_address: address }, query }, pageUrl);\n}\nexports.getTransactionHistory = getTransactionHistory;\n/**\n * Get the list of pending transactions\n */\nfunction getTransactionQueue(chainId, address, query = {}, pageUrl) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{safe_address}/transactions/queued', { path: { chainId, safe_address: address }, query }, pageUrl);\n}\nexports.getTransactionQueue = getTransactionQueue;\n/**\n * Get the details of an individual transaction by its id\n */\nfunction getTransactionDetails(chainId, transactionId) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/transactions/{transactionId}', {\n path: { chainId, transactionId },\n });\n}\nexports.getTransactionDetails = getTransactionDetails;\n/**\n * Delete a transaction by its safeTxHash\n */\nfunction deleteTransaction(chainId, safeTxHash, signature) {\n return (0, endpoint_1.deleteEndpoint)(baseUrl, '/v1/chains/{chainId}/transactions/{safeTxHash}', {\n path: { chainId, safeTxHash },\n body: { signature },\n });\n}\nexports.deleteTransaction = deleteTransaction;\n/**\n * Request a gas estimate & recommmended tx nonce for a created transaction\n */\nfunction postSafeGasEstimation(chainId, address, body) {\n return (0, endpoint_1.postEndpoint)(baseUrl, '/v2/chains/{chainId}/safes/{safe_address}/multisig-transactions/estimations', {\n path: { chainId, safe_address: address },\n body,\n });\n}\nexports.postSafeGasEstimation = postSafeGasEstimation;\nfunction getNonces(chainId, address) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{safe_address}/nonces', {\n path: { chainId, safe_address: address },\n });\n}\nexports.getNonces = getNonces;\n/**\n * Propose a new transaction for other owners to sign/execute\n */\nfunction proposeTransaction(chainId, address, body) {\n return (0, endpoint_1.postEndpoint)(baseUrl, '/v1/chains/{chainId}/transactions/{safe_address}/propose', {\n path: { chainId, safe_address: address },\n body,\n });\n}\nexports.proposeTransaction = proposeTransaction;\n/**\n * Returns decoded data\n */\nfunction getConfirmationView(chainId, safeAddress, encodedData, to) {\n return (0, endpoint_1.postEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{safe_address}/views/transaction-confirmation', {\n path: { chainId: chainId, safe_address: safeAddress },\n body: { data: encodedData, to },\n });\n}\nexports.getConfirmationView = getConfirmationView;\n/**\n * Returns all defined chain configs\n */\nfunction getChainsConfig(query) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains', {\n query,\n });\n}\nexports.getChainsConfig = getChainsConfig;\n/**\n * Returns a chain config\n */\nfunction getChainConfig(chainId) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}', {\n path: { chainId: chainId },\n });\n}\nexports.getChainConfig = getChainConfig;\n/**\n * Returns Safe Apps List\n */\nfunction getSafeApps(chainId, query = {}) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/safe-apps', {\n path: { chainId: chainId },\n query,\n });\n}\nexports.getSafeApps = getSafeApps;\n/**\n * Returns list of Master Copies\n */\nfunction getMasterCopies(chainId) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/about/master-copies', {\n path: { chainId: chainId },\n });\n}\nexports.getMasterCopies = getMasterCopies;\n/**\n * Returns decoded data\n */\nfunction getDecodedData(chainId, encodedData, to) {\n return (0, endpoint_1.postEndpoint)(baseUrl, '/v1/chains/{chainId}/data-decoder', {\n path: { chainId: chainId },\n body: { data: encodedData, to },\n });\n}\nexports.getDecodedData = getDecodedData;\n/**\n * Returns list of `SafeMessage`s\n */\nfunction getSafeMessages(chainId, address, pageUrl) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{safe_address}/messages', { path: { chainId, safe_address: address }, query: {} }, pageUrl);\n}\nexports.getSafeMessages = getSafeMessages;\n/**\n * Returns a `SafeMessage`\n */\nfunction getSafeMessage(chainId, messageHash) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/messages/{message_hash}', {\n path: { chainId, message_hash: messageHash },\n });\n}\nexports.getSafeMessage = getSafeMessage;\n/**\n * Propose a new `SafeMessage` for other owners to sign\n */\nfunction proposeSafeMessage(chainId, address, body) {\n return (0, endpoint_1.postEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{safe_address}/messages', {\n path: { chainId, safe_address: address },\n body,\n });\n}\nexports.proposeSafeMessage = proposeSafeMessage;\n/**\n * Add a confirmation to a `SafeMessage`\n */\nfunction confirmSafeMessage(chainId, messageHash, body) {\n return (0, endpoint_1.postEndpoint)(baseUrl, '/v1/chains/{chainId}/messages/{message_hash}/signatures', {\n path: { chainId, message_hash: messageHash },\n body,\n });\n}\nexports.confirmSafeMessage = confirmSafeMessage;\n/**\n * Returns a list of delegates\n */\nfunction getDelegates(chainId, query = {}) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v2/chains/{chainId}/delegates', {\n path: { chainId },\n query,\n });\n}\nexports.getDelegates = getDelegates;\n/**\n * Registers a device/Safe for notifications\n */\nfunction registerDevice(body) {\n return (0, endpoint_1.postEndpoint)(baseUrl, '/v1/register/notifications', {\n body,\n });\n}\nexports.registerDevice = registerDevice;\n/**\n * Unregisters a Safe from notifications\n */\nfunction unregisterSafe(chainId, address, uuid) {\n return (0, endpoint_1.deleteEndpoint)(baseUrl, '/v1/chains/{chainId}/notifications/devices/{uuid}/safes/{safe_address}', {\n path: { chainId, safe_address: address, uuid },\n });\n}\nexports.unregisterSafe = unregisterSafe;\n/**\n * Unregisters a device from notifications\n */\nfunction unregisterDevice(chainId, uuid) {\n return (0, endpoint_1.deleteEndpoint)(baseUrl, '/v1/chains/{chainId}/notifications/devices/{uuid}', {\n path: { chainId, uuid },\n });\n}\nexports.unregisterDevice = unregisterDevice;\n/**\n * Registers a email address for a safe signer.\n *\n * The signer wallet has to sign a message of format: `email-register-{chainId}-{safeAddress}-{emailAddress}-{signer}-{timestamp}`\n * The signature is valid for 5 minutes.\n *\n * @param chainId\n * @param safeAddress\n * @param body Signer address and email address\n * @param headers Signature and Signature timestamp\n * @returns 200 if signature matches the data\n */\nfunction registerEmail(chainId, safeAddress, body, headers) {\n return (0, endpoint_1.postEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{safe_address}/emails', {\n path: { chainId, safe_address: safeAddress },\n body,\n headers,\n });\n}\nexports.registerEmail = registerEmail;\n/**\n * Changes an already registered email address for a safe signer. The new email address still needs to be verified.\n *\n * The signer wallet has to sign a message of format: `email-edit-{chainId}-{safeAddress}-{emailAddress}-{signer}-{timestamp}`\n * The signature is valid for 5 minutes.\n *\n * @param chainId\n * @param safeAddress\n * @param signerAddress\n * @param body New email address\n * @param headers Signature and Signature timestamp\n * @returns 202 if signature matches the data\n */\nfunction changeEmail(chainId, safeAddress, signerAddress, body, headers) {\n return (0, endpoint_1.putEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{safe_address}/emails/{signer}', {\n path: { chainId, safe_address: safeAddress, signer: signerAddress },\n body,\n headers,\n });\n}\nexports.changeEmail = changeEmail;\n/**\n * Resends an email verification code.\n */\nfunction resendEmailVerificationCode(chainId, safeAddress, signerAddress) {\n return (0, endpoint_1.postEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{safe_address}/emails/{signer}/verify-resend', {\n path: { chainId, safe_address: safeAddress, signer: signerAddress },\n body: '',\n });\n}\nexports.resendEmailVerificationCode = resendEmailVerificationCode;\n/**\n * Verifies a pending email address registration.\n *\n * @param chainId\n * @param safeAddress\n * @param signerAddress address who signed the email registration\n * @param body Verification code\n */\nfunction verifyEmail(chainId, safeAddress, signerAddress, body) {\n return (0, endpoint_1.putEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{safe_address}/emails/{signer}/verify', {\n path: { chainId, safe_address: safeAddress, signer: signerAddress },\n body,\n });\n}\nexports.verifyEmail = verifyEmail;\n/**\n * Gets the registered email address of the signer\n *\n * The signer wallet will have to sign a message of format: `email-retrieval-{chainId}-{safe}-{signer}-{timestamp}`\n * The signature is valid for 5 minutes.\n *\n * @param chainId\n * @param safeAddress\n * @param signerAddress address of the owner of the Safe\n *\n * @returns email address and verified flag\n */\nfunction getRegisteredEmail(chainId, safeAddress, signerAddress, headers) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{safe_address}/emails/{signer}', {\n path: { chainId, safe_address: safeAddress, signer: signerAddress },\n headers,\n });\n}\nexports.getRegisteredEmail = getRegisteredEmail;\n/**\n * Delete a registered email address for the signer\n *\n * The signer wallet will have to sign a message of format: `email-delete-{chainId}-{safe}-{signer}-{timestamp}`\n * The signature is valid for 5 minutes.\n *\n * @param chainId\n * @param safeAddress\n * @param signerAddress\n * @param headers\n */\nfunction deleteRegisteredEmail(chainId, safeAddress, signerAddress, headers) {\n return (0, endpoint_1.deleteEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{safe_address}/emails/{signer}', {\n path: { chainId, safe_address: safeAddress, signer: signerAddress },\n headers,\n });\n}\nexports.deleteRegisteredEmail = deleteRegisteredEmail;\n/**\n * Register a recovery module for receiving alerts\n * @param chainId\n * @param safeAddress\n * @param body - { moduleAddress: string }\n */\nfunction registerRecoveryModule(chainId, safeAddress, body) {\n return (0, endpoint_1.postEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{safe_address}/recovery', {\n path: { chainId, safe_address: safeAddress },\n body,\n });\n}\nexports.registerRecoveryModule = registerRecoveryModule;\n/**\n * Delete email subscription for a single category\n * @param query\n */\nfunction unsubscribeSingle(query) {\n return (0, endpoint_1.deleteEndpoint)(baseUrl, '/v1/subscriptions', { query });\n}\nexports.unsubscribeSingle = unsubscribeSingle;\n/**\n * Delete email subscription for all categories\n * @param query\n */\nfunction unsubscribeAll(query) {\n return (0, endpoint_1.deleteEndpoint)(baseUrl, '/v1/subscriptions/all', { query });\n}\nexports.unsubscribeAll = unsubscribeAll;\n/**\n * Get Safe overviews per address\n */\nfunction getSafeOverviews(safes, query) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/safes', {\n query: Object.assign(Object.assign({}, query), { safes: safes.join(',') }),\n });\n}\nexports.getSafeOverviews = getSafeOverviews;\nfunction getContract(chainId, contractAddress) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/contracts/{contractAddress}', {\n path: {\n chainId: chainId,\n contractAddress: contractAddress,\n },\n });\n}\nexports.getContract = getContract;\nfunction getAuthNonce() {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/auth/nonce', { credentials: 'include' });\n}\nexports.getAuthNonce = getAuthNonce;\nfunction verifyAuth(body) {\n return (0, endpoint_1.postEndpoint)(baseUrl, '/v1/auth/verify', {\n body,\n credentials: 'include',\n });\n}\nexports.verifyAuth = verifyAuth;\nfunction createAccount(body) {\n return (0, endpoint_1.postEndpoint)(baseUrl, '/v1/accounts', {\n body,\n credentials: 'include',\n });\n}\nexports.createAccount = createAccount;\nfunction getAccount(address) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/accounts/{address}', {\n path: { address },\n credentials: 'include',\n });\n}\nexports.getAccount = getAccount;\nfunction deleteAccount(address) {\n return (0, endpoint_1.deleteEndpoint)(baseUrl, '/v1/accounts/{address}', {\n path: { address },\n credentials: 'include',\n });\n}\nexports.deleteAccount = deleteAccount;\nfunction getAccountDataTypes() {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/accounts/data-types');\n}\nexports.getAccountDataTypes = getAccountDataTypes;\nfunction getAccountDataSettings(address) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/accounts/{address}/data-settings', {\n path: { address },\n credentials: 'include',\n });\n}\nexports.getAccountDataSettings = getAccountDataSettings;\nfunction putAccountDataSettings(address, body) {\n return (0, endpoint_1.putEndpoint)(baseUrl, '/v1/accounts/{address}/data-settings', {\n path: { address },\n body,\n credentials: 'include',\n });\n}\nexports.putAccountDataSettings = putAccountDataSettings;\n/* eslint-enable @typescript-eslint/explicit-module-boundary-types */\n//# sourceMappingURL=index.js.map","export const getSDKVersion = () => '9.1.0';\n//# sourceMappingURL=version.js.map","// i.e. 0-255 -> '00'-'ff'\nconst dec2hex = (dec) => dec.toString(16).padStart(2, '0');\nconst generateId = (len) => {\n const arr = new Uint8Array((len || 40) / 2);\n window.crypto.getRandomValues(arr);\n return Array.from(arr, dec2hex).join('');\n};\nconst generateRequestId = () => {\n if (typeof window !== 'undefined') {\n return generateId(10);\n }\n return new Date().getTime().toString(36);\n};\nexport { generateRequestId };\n//# sourceMappingURL=utils.js.map","import { getSDKVersion } from '../version.js';\nimport { generateRequestId } from './utils.js';\nclass MessageFormatter {\n}\nMessageFormatter.makeRequest = (method, params) => {\n const id = generateRequestId();\n return {\n id,\n method,\n params,\n env: {\n sdkVersion: getSDKVersion(),\n },\n };\n};\nMessageFormatter.makeResponse = (id, data, version) => ({\n id,\n success: true,\n version,\n data,\n});\nMessageFormatter.makeErrorResponse = (id, error, version) => ({\n id,\n success: false,\n error,\n version,\n});\nexport { MessageFormatter };\n//# sourceMappingURL=messageFormatter.js.map","export var Methods;\n(function (Methods) {\n Methods[\"sendTransactions\"] = \"sendTransactions\";\n Methods[\"rpcCall\"] = \"rpcCall\";\n Methods[\"getChainInfo\"] = \"getChainInfo\";\n Methods[\"getSafeInfo\"] = \"getSafeInfo\";\n Methods[\"getTxBySafeTxHash\"] = \"getTxBySafeTxHash\";\n Methods[\"getSafeBalances\"] = \"getSafeBalances\";\n Methods[\"signMessage\"] = \"signMessage\";\n Methods[\"signTypedMessage\"] = \"signTypedMessage\";\n Methods[\"getEnvironmentInfo\"] = \"getEnvironmentInfo\";\n Methods[\"getOffChainSignature\"] = \"getOffChainSignature\";\n Methods[\"requestAddressBook\"] = \"requestAddressBook\";\n Methods[\"wallet_getPermissions\"] = \"wallet_getPermissions\";\n Methods[\"wallet_requestPermissions\"] = \"wallet_requestPermissions\";\n})(Methods || (Methods = {}));\nexport var RestrictedMethods;\n(function (RestrictedMethods) {\n RestrictedMethods[\"requestAddressBook\"] = \"requestAddressBook\";\n})(RestrictedMethods || (RestrictedMethods = {}));\n//# sourceMappingURL=methods.js.map","import { MessageFormatter } from './messageFormatter.js';\nclass PostMessageCommunicator {\n constructor(allowedOrigins = null, debugMode = false) {\n this.allowedOrigins = null;\n this.callbacks = new Map();\n this.debugMode = false;\n this.isServer = typeof window === 'undefined';\n this.isValidMessage = ({ origin, data, source }) => {\n const emptyOrMalformed = !data;\n const sentFromParentEl = !this.isServer && source === window.parent;\n const majorVersionNumber = typeof data.version !== 'undefined' && parseInt(data.version.split('.')[0]);\n const allowedSDKVersion = typeof majorVersionNumber === 'number' && majorVersionNumber >= 1;\n let validOrigin = true;\n if (Array.isArray(this.allowedOrigins)) {\n validOrigin = this.allowedOrigins.find((regExp) => regExp.test(origin)) !== undefined;\n }\n return !emptyOrMalformed && sentFromParentEl && allowedSDKVersion && validOrigin;\n };\n this.logIncomingMessage = (msg) => {\n console.info(`Safe Apps SDK v1: A message was received from origin ${msg.origin}. `, msg.data);\n };\n this.onParentMessage = (msg) => {\n if (this.isValidMessage(msg)) {\n this.debugMode && this.logIncomingMessage(msg);\n this.handleIncomingMessage(msg.data);\n }\n };\n this.handleIncomingMessage = (payload) => {\n const { id } = payload;\n const cb = this.callbacks.get(id);\n if (cb) {\n cb(payload);\n this.callbacks.delete(id);\n }\n };\n this.send = (method, params) => {\n const request = MessageFormatter.makeRequest(method, params);\n if (this.isServer) {\n throw new Error(\"Window doesn't exist\");\n }\n window.parent.postMessage(request, '*');\n return new Promise((resolve, reject) => {\n this.callbacks.set(request.id, (response) => {\n if (!response.success) {\n reject(new Error(response.error));\n return;\n }\n resolve(response);\n });\n });\n };\n this.allowedOrigins = allowedOrigins;\n this.debugMode = debugMode;\n if (!this.isServer) {\n window.addEventListener('message', this.onParentMessage);\n }\n }\n}\nexport default PostMessageCommunicator;\nexport * from './methods.js';\n//# sourceMappingURL=index.js.map","export const isObjectEIP712TypedData = (obj) => {\n return typeof obj === 'object' && obj != null && 'domain' in obj && 'types' in obj && 'message' in obj;\n};\n//# sourceMappingURL=sdk.js.map","import { Methods } from '../communication/methods.js';\nimport { isObjectEIP712TypedData, } from '../types/index.js';\nclass TXs {\n constructor(communicator) {\n this.communicator = communicator;\n }\n async getBySafeTxHash(safeTxHash) {\n if (!safeTxHash) {\n throw new Error('Invalid safeTxHash');\n }\n const response = await this.communicator.send(Methods.getTxBySafeTxHash, { safeTxHash });\n return response.data;\n }\n async signMessage(message) {\n const messagePayload = {\n message,\n };\n const response = await this.communicator.send(Methods.signMessage, messagePayload);\n return response.data;\n }\n async signTypedMessage(typedData) {\n if (!isObjectEIP712TypedData(typedData)) {\n throw new Error('Invalid typed data');\n }\n const response = await this.communicator.send(Methods.signTypedMessage, { typedData });\n return response.data;\n }\n async send({ txs, params }) {\n if (!txs || !txs.length) {\n throw new Error('No transactions were passed');\n }\n const messagePayload = {\n txs,\n params,\n };\n const response = await this.communicator.send(Methods.sendTransactions, messagePayload);\n return response.data;\n }\n}\nexport { TXs };\n//# sourceMappingURL=index.js.map","export const RPC_CALLS = {\n eth_call: 'eth_call',\n eth_gasPrice: 'eth_gasPrice',\n eth_getLogs: 'eth_getLogs',\n eth_getBalance: 'eth_getBalance',\n eth_getCode: 'eth_getCode',\n eth_getBlockByHash: 'eth_getBlockByHash',\n eth_getBlockByNumber: 'eth_getBlockByNumber',\n eth_getStorageAt: 'eth_getStorageAt',\n eth_getTransactionByHash: 'eth_getTransactionByHash',\n eth_getTransactionReceipt: 'eth_getTransactionReceipt',\n eth_getTransactionCount: 'eth_getTransactionCount',\n eth_estimateGas: 'eth_estimateGas',\n safe_setSettings: 'safe_setSettings',\n};\n//# sourceMappingURL=constants.js.map","import { RPC_CALLS } from '../eth/constants.js';\nimport { Methods } from '../communication/methods.js';\nconst inputFormatters = {\n defaultBlockParam: (arg = 'latest') => arg,\n returnFullTxObjectParam: (arg = false) => arg,\n blockNumberToHex: (arg) => Number.isInteger(arg) ? `0x${arg.toString(16)}` : arg,\n};\nclass Eth {\n constructor(communicator) {\n this.communicator = communicator;\n this.call = this.buildRequest({\n call: RPC_CALLS.eth_call,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getBalance = this.buildRequest({\n call: RPC_CALLS.eth_getBalance,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getCode = this.buildRequest({\n call: RPC_CALLS.eth_getCode,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getStorageAt = this.buildRequest({\n call: RPC_CALLS.eth_getStorageAt,\n formatters: [null, inputFormatters.blockNumberToHex, inputFormatters.defaultBlockParam],\n });\n this.getPastLogs = this.buildRequest({\n call: RPC_CALLS.eth_getLogs,\n });\n this.getBlockByHash = this.buildRequest({\n call: RPC_CALLS.eth_getBlockByHash,\n formatters: [null, inputFormatters.returnFullTxObjectParam],\n });\n this.getBlockByNumber = this.buildRequest({\n call: RPC_CALLS.eth_getBlockByNumber,\n formatters: [inputFormatters.blockNumberToHex, inputFormatters.returnFullTxObjectParam],\n });\n this.getTransactionByHash = this.buildRequest({\n call: RPC_CALLS.eth_getTransactionByHash,\n });\n this.getTransactionReceipt = this.buildRequest({\n call: RPC_CALLS.eth_getTransactionReceipt,\n });\n this.getTransactionCount = this.buildRequest({\n call: RPC_CALLS.eth_getTransactionCount,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getGasPrice = this.buildRequest({\n call: RPC_CALLS.eth_gasPrice,\n });\n this.getEstimateGas = (transaction) => this.buildRequest({\n call: RPC_CALLS.eth_estimateGas,\n })([transaction]);\n this.setSafeSettings = this.buildRequest({\n call: RPC_CALLS.safe_setSettings,\n });\n }\n buildRequest(args) {\n const { call, formatters } = args;\n return async (params) => {\n if (formatters && Array.isArray(params)) {\n formatters.forEach((formatter, i) => {\n if (formatter) {\n params[i] = formatter(params[i]);\n }\n });\n }\n const payload = {\n call,\n params: params || [],\n };\n const response = await this.communicator.send(Methods.rpcCall, payload);\n return response.data;\n };\n }\n}\nexport { Eth };\n//# sourceMappingURL=index.js.map","import { InvalidDefinitionTypeError, } from '../../errors/abi.js';\nexport function formatAbiItem(abiItem, { includeName = false } = {}) {\n if (abiItem.type !== 'function' &&\n abiItem.type !== 'event' &&\n abiItem.type !== 'error')\n throw new InvalidDefinitionTypeError(abiItem.type);\n return `${abiItem.name}(${formatAbiParams(abiItem.inputs, { includeName })})`;\n}\nexport function formatAbiParams(params, { includeName = false } = {}) {\n if (!params)\n return '';\n return params\n .map((param) => formatAbiParam(param, { includeName }))\n .join(includeName ? ', ' : ',');\n}\nfunction formatAbiParam(param, { includeName }) {\n if (param.type.startsWith('tuple')) {\n return `(${formatAbiParams(param.components, { includeName })})${param.type.slice('tuple'.length)}`;\n }\n return param.type + (includeName && param.name ? ` ${param.name}` : '');\n}\n//# sourceMappingURL=formatAbiItem.js.map","export function isHex(value, { strict = true } = {}) {\n if (!value)\n return false;\n if (typeof value !== 'string')\n return false;\n return strict ? /^0x[0-9a-fA-F]*$/.test(value) : value.startsWith('0x');\n}\n//# sourceMappingURL=isHex.js.map","import { isHex } from './isHex.js';\n/**\n * @description Retrieves the size of the value (in bytes).\n *\n * @param value The value (hex or byte array) to retrieve the size of.\n * @returns The size of the value (in bytes).\n */\nexport function size(value) {\n if (isHex(value, { strict: false }))\n return Math.ceil((value.length - 2) / 2);\n return value.length;\n}\n//# sourceMappingURL=size.js.map","export const version = '2.21.34';\n//# sourceMappingURL=version.js.map","import { version } from './version.js';\nlet errorConfig = {\n getDocsUrl: ({ docsBaseUrl, docsPath = '', docsSlug, }) => docsPath\n ? `${docsBaseUrl ?? 'https://viem.sh'}${docsPath}${docsSlug ? `#${docsSlug}` : ''}`\n : undefined,\n version: `viem@${version}`,\n};\nexport function setErrorConfig(config) {\n errorConfig = config;\n}\nexport class BaseError extends Error {\n constructor(shortMessage, args = {}) {\n const details = (() => {\n if (args.cause instanceof BaseError)\n return args.cause.details;\n if (args.cause?.message)\n return args.cause.message;\n return args.details;\n })();\n const docsPath = (() => {\n if (args.cause instanceof BaseError)\n return args.cause.docsPath || args.docsPath;\n return args.docsPath;\n })();\n const docsUrl = errorConfig.getDocsUrl?.({ ...args, docsPath });\n const message = [\n shortMessage || 'An error occurred.',\n '',\n ...(args.metaMessages ? [...args.metaMessages, ''] : []),\n ...(docsUrl ? [`Docs: ${docsUrl}`] : []),\n ...(details ? [`Details: ${details}`] : []),\n ...(errorConfig.version ? [`Version: ${errorConfig.version}`] : []),\n ].join('\\n');\n super(message, args.cause ? { cause: args.cause } : undefined);\n Object.defineProperty(this, \"details\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"docsPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"metaMessages\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"shortMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'BaseError'\n });\n this.details = details;\n this.docsPath = docsPath;\n this.metaMessages = args.metaMessages;\n this.name = args.name ?? this.name;\n this.shortMessage = shortMessage;\n this.version = version;\n }\n walk(fn) {\n return walk(this, fn);\n }\n}\nfunction walk(err, fn) {\n if (fn?.(err))\n return err;\n if (err && typeof err === 'object' && 'cause' in err)\n return walk(err.cause, fn);\n return fn ? null : err;\n}\n//# sourceMappingURL=base.js.map","import { formatAbiItem, formatAbiParams } from '../utils/abi/formatAbiItem.js';\nimport { size } from '../utils/data/size.js';\nimport { BaseError } from './base.js';\nexport class AbiConstructorNotFoundError extends BaseError {\n constructor({ docsPath }) {\n super([\n 'A constructor was not found on the ABI.',\n 'Make sure you are using the correct ABI and that the constructor exists on it.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiConstructorNotFoundError',\n });\n }\n}\nexport class AbiConstructorParamsNotFoundError extends BaseError {\n constructor({ docsPath }) {\n super([\n 'Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.',\n 'Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiConstructorParamsNotFoundError',\n });\n }\n}\nexport class AbiDecodingDataSizeInvalidError extends BaseError {\n constructor({ data, size }) {\n super([\n `Data size of ${size} bytes is invalid.`,\n 'Size must be in increments of 32 bytes (size % 32 === 0).',\n ].join('\\n'), {\n metaMessages: [`Data: ${data} (${size} bytes)`],\n name: 'AbiDecodingDataSizeInvalidError',\n });\n }\n}\nexport class AbiDecodingDataSizeTooSmallError extends BaseError {\n constructor({ data, params, size, }) {\n super([`Data size of ${size} bytes is too small for given parameters.`].join('\\n'), {\n metaMessages: [\n `Params: (${formatAbiParams(params, { includeName: true })})`,\n `Data: ${data} (${size} bytes)`,\n ],\n name: 'AbiDecodingDataSizeTooSmallError',\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"params\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"size\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.data = data;\n this.params = params;\n this.size = size;\n }\n}\nexport class AbiDecodingZeroDataError extends BaseError {\n constructor() {\n super('Cannot decode zero data (\"0x\") with ABI parameters.', {\n name: 'AbiDecodingZeroDataError',\n });\n }\n}\nexport class AbiEncodingArrayLengthMismatchError extends BaseError {\n constructor({ expectedLength, givenLength, type, }) {\n super([\n `ABI encoding array length mismatch for type ${type}.`,\n `Expected length: ${expectedLength}`,\n `Given length: ${givenLength}`,\n ].join('\\n'), { name: 'AbiEncodingArrayLengthMismatchError' });\n }\n}\nexport class AbiEncodingBytesSizeMismatchError extends BaseError {\n constructor({ expectedSize, value }) {\n super(`Size of bytes \"${value}\" (bytes${size(value)}) does not match expected size (bytes${expectedSize}).`, { name: 'AbiEncodingBytesSizeMismatchError' });\n }\n}\nexport class AbiEncodingLengthMismatchError extends BaseError {\n constructor({ expectedLength, givenLength, }) {\n super([\n 'ABI encoding params/values length mismatch.',\n `Expected length (params): ${expectedLength}`,\n `Given length (values): ${givenLength}`,\n ].join('\\n'), { name: 'AbiEncodingLengthMismatchError' });\n }\n}\nexport class AbiErrorInputsNotFoundError extends BaseError {\n constructor(errorName, { docsPath }) {\n super([\n `Arguments (\\`args\\`) were provided to \"${errorName}\", but \"${errorName}\" on the ABI does not contain any parameters (\\`inputs\\`).`,\n 'Cannot encode error result without knowing what the parameter types are.',\n 'Make sure you are using the correct ABI and that the inputs exist on it.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiErrorInputsNotFoundError',\n });\n }\n}\nexport class AbiErrorNotFoundError extends BaseError {\n constructor(errorName, { docsPath } = {}) {\n super([\n `Error ${errorName ? `\"${errorName}\" ` : ''}not found on ABI.`,\n 'Make sure you are using the correct ABI and that the error exists on it.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiErrorNotFoundError',\n });\n }\n}\nexport class AbiErrorSignatureNotFoundError extends BaseError {\n constructor(signature, { docsPath }) {\n super([\n `Encoded error signature \"${signature}\" not found on ABI.`,\n 'Make sure you are using the correct ABI and that the error exists on it.',\n `You can look up the decoded signature here: https://openchain.xyz/signatures?query=${signature}.`,\n ].join('\\n'), {\n docsPath,\n name: 'AbiErrorSignatureNotFoundError',\n });\n Object.defineProperty(this, \"signature\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.signature = signature;\n }\n}\nexport class AbiEventSignatureEmptyTopicsError extends BaseError {\n constructor({ docsPath }) {\n super('Cannot extract event signature from empty topics.', {\n docsPath,\n name: 'AbiEventSignatureEmptyTopicsError',\n });\n }\n}\nexport class AbiEventSignatureNotFoundError extends BaseError {\n constructor(signature, { docsPath }) {\n super([\n `Encoded event signature \"${signature}\" not found on ABI.`,\n 'Make sure you are using the correct ABI and that the event exists on it.',\n `You can look up the signature here: https://openchain.xyz/signatures?query=${signature}.`,\n ].join('\\n'), {\n docsPath,\n name: 'AbiEventSignatureNotFoundError',\n });\n }\n}\nexport class AbiEventNotFoundError extends BaseError {\n constructor(eventName, { docsPath } = {}) {\n super([\n `Event ${eventName ? `\"${eventName}\" ` : ''}not found on ABI.`,\n 'Make sure you are using the correct ABI and that the event exists on it.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiEventNotFoundError',\n });\n }\n}\nexport class AbiFunctionNotFoundError extends BaseError {\n constructor(functionName, { docsPath } = {}) {\n super([\n `Function ${functionName ? `\"${functionName}\" ` : ''}not found on ABI.`,\n 'Make sure you are using the correct ABI and that the function exists on it.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiFunctionNotFoundError',\n });\n }\n}\nexport class AbiFunctionOutputsNotFoundError extends BaseError {\n constructor(functionName, { docsPath }) {\n super([\n `Function \"${functionName}\" does not contain any \\`outputs\\` on ABI.`,\n 'Cannot decode function result without knowing what the parameter types are.',\n 'Make sure you are using the correct ABI and that the function exists on it.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiFunctionOutputsNotFoundError',\n });\n }\n}\nexport class AbiFunctionSignatureNotFoundError extends BaseError {\n constructor(signature, { docsPath }) {\n super([\n `Encoded function signature \"${signature}\" not found on ABI.`,\n 'Make sure you are using the correct ABI and that the function exists on it.',\n `You can look up the signature here: https://openchain.xyz/signatures?query=${signature}.`,\n ].join('\\n'), {\n docsPath,\n name: 'AbiFunctionSignatureNotFoundError',\n });\n }\n}\nexport class AbiItemAmbiguityError extends BaseError {\n constructor(x, y) {\n super('Found ambiguous types in overloaded ABI items.', {\n metaMessages: [\n `\\`${x.type}\\` in \\`${formatAbiItem(x.abiItem)}\\`, and`,\n `\\`${y.type}\\` in \\`${formatAbiItem(y.abiItem)}\\``,\n '',\n 'These types encode differently and cannot be distinguished at runtime.',\n 'Remove one of the ambiguous items in the ABI.',\n ],\n name: 'AbiItemAmbiguityError',\n });\n }\n}\nexport class BytesSizeMismatchError extends BaseError {\n constructor({ expectedSize, givenSize, }) {\n super(`Expected bytes${expectedSize}, got bytes${givenSize}.`, {\n name: 'BytesSizeMismatchError',\n });\n }\n}\nexport class DecodeLogDataMismatch extends BaseError {\n constructor({ abiItem, data, params, size, }) {\n super([\n `Data size of ${size} bytes is too small for non-indexed event parameters.`,\n ].join('\\n'), {\n metaMessages: [\n `Params: (${formatAbiParams(params, { includeName: true })})`,\n `Data: ${data} (${size} bytes)`,\n ],\n name: 'DecodeLogDataMismatch',\n });\n Object.defineProperty(this, \"abiItem\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"params\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"size\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.abiItem = abiItem;\n this.data = data;\n this.params = params;\n this.size = size;\n }\n}\nexport class DecodeLogTopicsMismatch extends BaseError {\n constructor({ abiItem, param, }) {\n super([\n `Expected a topic for indexed event parameter${param.name ? ` \"${param.name}\"` : ''} on event \"${formatAbiItem(abiItem, { includeName: true })}\".`,\n ].join('\\n'), { name: 'DecodeLogTopicsMismatch' });\n Object.defineProperty(this, \"abiItem\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.abiItem = abiItem;\n }\n}\nexport class InvalidAbiEncodingTypeError extends BaseError {\n constructor(type, { docsPath }) {\n super([\n `Type \"${type}\" is not a valid encoding type.`,\n 'Please provide a valid ABI type.',\n ].join('\\n'), { docsPath, name: 'InvalidAbiEncodingType' });\n }\n}\nexport class InvalidAbiDecodingTypeError extends BaseError {\n constructor(type, { docsPath }) {\n super([\n `Type \"${type}\" is not a valid decoding type.`,\n 'Please provide a valid ABI type.',\n ].join('\\n'), { docsPath, name: 'InvalidAbiDecodingType' });\n }\n}\nexport class InvalidArrayError extends BaseError {\n constructor(value) {\n super([`Value \"${value}\" is not a valid array.`].join('\\n'), {\n name: 'InvalidArrayError',\n });\n }\n}\nexport class InvalidDefinitionTypeError extends BaseError {\n constructor(type) {\n super([\n `\"${type}\" is not a valid definition type.`,\n 'Valid types: \"function\", \"event\", \"error\"',\n ].join('\\n'), { name: 'InvalidDefinitionTypeError' });\n }\n}\nexport class UnsupportedPackedAbiType extends BaseError {\n constructor(type) {\n super(`Type \"${type}\" is not supported for packed encoding.`, {\n name: 'UnsupportedPackedAbiType',\n });\n }\n}\n//# sourceMappingURL=abi.js.map","import { BaseError } from './base.js';\nexport class SliceOffsetOutOfBoundsError extends BaseError {\n constructor({ offset, position, size, }) {\n super(`Slice ${position === 'start' ? 'starting' : 'ending'} at offset \"${offset}\" is out-of-bounds (size: ${size}).`, { name: 'SliceOffsetOutOfBoundsError' });\n }\n}\nexport class SizeExceedsPaddingSizeError extends BaseError {\n constructor({ size, targetSize, type, }) {\n super(`${type.charAt(0).toUpperCase()}${type\n .slice(1)\n .toLowerCase()} size (${size}) exceeds padding size (${targetSize}).`, { name: 'SizeExceedsPaddingSizeError' });\n }\n}\nexport class InvalidBytesLengthError extends BaseError {\n constructor({ size, targetSize, type, }) {\n super(`${type.charAt(0).toUpperCase()}${type\n .slice(1)\n .toLowerCase()} is expected to be ${targetSize} ${type} long, but is ${size} ${type} long.`, { name: 'InvalidBytesLengthError' });\n }\n}\n//# sourceMappingURL=data.js.map","import { SizeExceedsPaddingSizeError, } from '../../errors/data.js';\nexport function pad(hexOrBytes, { dir, size = 32 } = {}) {\n if (typeof hexOrBytes === 'string')\n return padHex(hexOrBytes, { dir, size });\n return padBytes(hexOrBytes, { dir, size });\n}\nexport function padHex(hex_, { dir, size = 32 } = {}) {\n if (size === null)\n return hex_;\n const hex = hex_.replace('0x', '');\n if (hex.length > size * 2)\n throw new SizeExceedsPaddingSizeError({\n size: Math.ceil(hex.length / 2),\n targetSize: size,\n type: 'hex',\n });\n return `0x${hex[dir === 'right' ? 'padEnd' : 'padStart'](size * 2, '0')}`;\n}\nexport function padBytes(bytes, { dir, size = 32 } = {}) {\n if (size === null)\n return bytes;\n if (bytes.length > size)\n throw new SizeExceedsPaddingSizeError({\n size: bytes.length,\n targetSize: size,\n type: 'bytes',\n });\n const paddedBytes = new Uint8Array(size);\n for (let i = 0; i < size; i++) {\n const padEnd = dir === 'right';\n paddedBytes[padEnd ? i : size - i - 1] =\n bytes[padEnd ? i : bytes.length - i - 1];\n }\n return paddedBytes;\n}\n//# sourceMappingURL=pad.js.map","import { BaseError } from './base.js';\nexport class IntegerOutOfRangeError extends BaseError {\n constructor({ max, min, signed, size, value, }) {\n super(`Number \"${value}\" is not in safe ${size ? `${size * 8}-bit ${signed ? 'signed' : 'unsigned'} ` : ''}integer range ${max ? `(${min} to ${max})` : `(above ${min})`}`, { name: 'IntegerOutOfRangeError' });\n }\n}\nexport class InvalidBytesBooleanError extends BaseError {\n constructor(bytes) {\n super(`Bytes value \"${bytes}\" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`, {\n name: 'InvalidBytesBooleanError',\n });\n }\n}\nexport class InvalidHexBooleanError extends BaseError {\n constructor(hex) {\n super(`Hex value \"${hex}\" is not a valid boolean. The hex value must be \"0x0\" (false) or \"0x1\" (true).`, { name: 'InvalidHexBooleanError' });\n }\n}\nexport class InvalidHexValueError extends BaseError {\n constructor(value) {\n super(`Hex value \"${value}\" is an odd length (${value.length}). It must be an even length.`, { name: 'InvalidHexValueError' });\n }\n}\nexport class SizeOverflowError extends BaseError {\n constructor({ givenSize, maxSize }) {\n super(`Size cannot exceed ${maxSize} bytes. Given size: ${givenSize} bytes.`, { name: 'SizeOverflowError' });\n }\n}\n//# sourceMappingURL=encoding.js.map","import { InvalidHexBooleanError, SizeOverflowError, } from '../../errors/encoding.js';\nimport { size as size_ } from '../data/size.js';\nimport { trim } from '../data/trim.js';\nimport { hexToBytes } from './toBytes.js';\nexport function assertSize(hexOrBytes, { size }) {\n if (size_(hexOrBytes) > size)\n throw new SizeOverflowError({\n givenSize: size_(hexOrBytes),\n maxSize: size,\n });\n}\n/**\n * Decodes a hex string into a string, number, bigint, boolean, or byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex\n * - Example: https://viem.sh/docs/utilities/fromHex#usage\n *\n * @param hex Hex string to decode.\n * @param toOrOpts Type to convert to or options.\n * @returns Decoded value.\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x1a4', 'number')\n * // 420\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x48656c6c6f20576f726c6421', 'string')\n * // 'Hello world'\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {\n * size: 32,\n * to: 'string'\n * })\n * // 'Hello world'\n */\nexport function fromHex(hex, toOrOpts) {\n const opts = typeof toOrOpts === 'string' ? { to: toOrOpts } : toOrOpts;\n const to = opts.to;\n if (to === 'number')\n return hexToNumber(hex, opts);\n if (to === 'bigint')\n return hexToBigInt(hex, opts);\n if (to === 'string')\n return hexToString(hex, opts);\n if (to === 'boolean')\n return hexToBool(hex, opts);\n return hexToBytes(hex, opts);\n}\n/**\n * Decodes a hex value into a bigint.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextobigint\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns BigInt value.\n *\n * @example\n * import { hexToBigInt } from 'viem'\n * const data = hexToBigInt('0x1a4', { signed: true })\n * // 420n\n *\n * @example\n * import { hexToBigInt } from 'viem'\n * const data = hexToBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // 420n\n */\nexport function hexToBigInt(hex, opts = {}) {\n const { signed } = opts;\n if (opts.size)\n assertSize(hex, { size: opts.size });\n const value = BigInt(hex);\n if (!signed)\n return value;\n const size = (hex.length - 2) / 2;\n const max = (1n << (BigInt(size) * 8n - 1n)) - 1n;\n if (value <= max)\n return value;\n return value - BigInt(`0x${'f'.padStart(size * 2, 'f')}`) - 1n;\n}\n/**\n * Decodes a hex value into a boolean.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextobool\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns Boolean value.\n *\n * @example\n * import { hexToBool } from 'viem'\n * const data = hexToBool('0x01')\n * // true\n *\n * @example\n * import { hexToBool } from 'viem'\n * const data = hexToBool('0x0000000000000000000000000000000000000000000000000000000000000001', { size: 32 })\n * // true\n */\nexport function hexToBool(hex_, opts = {}) {\n let hex = hex_;\n if (opts.size) {\n assertSize(hex, { size: opts.size });\n hex = trim(hex);\n }\n if (trim(hex) === '0x00')\n return false;\n if (trim(hex) === '0x01')\n return true;\n throw new InvalidHexBooleanError(hex);\n}\n/**\n * Decodes a hex string into a number.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextonumber\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns Number value.\n *\n * @example\n * import { hexToNumber } from 'viem'\n * const data = hexToNumber('0x1a4')\n * // 420\n *\n * @example\n * import { hexToNumber } from 'viem'\n * const data = hexToBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // 420\n */\nexport function hexToNumber(hex, opts = {}) {\n return Number(hexToBigInt(hex, opts));\n}\n/**\n * Decodes a hex value into a UTF-8 string.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextostring\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns String value.\n *\n * @example\n * import { hexToString } from 'viem'\n * const data = hexToString('0x48656c6c6f20576f726c6421')\n * // 'Hello world!'\n *\n * @example\n * import { hexToString } from 'viem'\n * const data = hexToString('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {\n * size: 32,\n * })\n * // 'Hello world'\n */\nexport function hexToString(hex, opts = {}) {\n let bytes = hexToBytes(hex);\n if (opts.size) {\n assertSize(bytes, { size: opts.size });\n bytes = trim(bytes, { dir: 'right' });\n }\n return new TextDecoder().decode(bytes);\n}\n//# sourceMappingURL=fromHex.js.map","import { IntegerOutOfRangeError, } from '../../errors/encoding.js';\nimport { pad } from '../data/pad.js';\nimport { assertSize } from './fromHex.js';\nconst hexes = /*#__PURE__*/ Array.from({ length: 256 }, (_v, i) => i.toString(16).padStart(2, '0'));\n/**\n * Encodes a string, number, bigint, or ByteArray into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex\n * - Example: https://viem.sh/docs/utilities/toHex#usage\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex('Hello world')\n * // '0x48656c6c6f20776f726c6421'\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex(420)\n * // '0x1a4'\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex('Hello world', { size: 32 })\n * // '0x48656c6c6f20776f726c64210000000000000000000000000000000000000000'\n */\nexport function toHex(value, opts = {}) {\n if (typeof value === 'number' || typeof value === 'bigint')\n return numberToHex(value, opts);\n if (typeof value === 'string') {\n return stringToHex(value, opts);\n }\n if (typeof value === 'boolean')\n return boolToHex(value, opts);\n return bytesToHex(value, opts);\n}\n/**\n * Encodes a boolean into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#booltohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(true)\n * // '0x1'\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(false)\n * // '0x0'\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(true, { size: 32 })\n * // '0x0000000000000000000000000000000000000000000000000000000000000001'\n */\nexport function boolToHex(value, opts = {}) {\n const hex = `0x${Number(value)}`;\n if (typeof opts.size === 'number') {\n assertSize(hex, { size: opts.size });\n return pad(hex, { size: opts.size });\n }\n return hex;\n}\n/**\n * Encodes a bytes array into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#bytestohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { bytesToHex } from 'viem'\n * const data = bytesToHex(Uint8Array.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n * // '0x48656c6c6f20576f726c6421'\n *\n * @example\n * import { bytesToHex } from 'viem'\n * const data = bytesToHex(Uint8Array.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]), { size: 32 })\n * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\n */\nexport function bytesToHex(value, opts = {}) {\n let string = '';\n for (let i = 0; i < value.length; i++) {\n string += hexes[value[i]];\n }\n const hex = `0x${string}`;\n if (typeof opts.size === 'number') {\n assertSize(hex, { size: opts.size });\n return pad(hex, { dir: 'right', size: opts.size });\n }\n return hex;\n}\n/**\n * Encodes a number or bigint into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#numbertohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { numberToHex } from 'viem'\n * const data = numberToHex(420)\n * // '0x1a4'\n *\n * @example\n * import { numberToHex } from 'viem'\n * const data = numberToHex(420, { size: 32 })\n * // '0x00000000000000000000000000000000000000000000000000000000000001a4'\n */\nexport function numberToHex(value_, opts = {}) {\n const { signed, size } = opts;\n const value = BigInt(value_);\n let maxValue;\n if (size) {\n if (signed)\n maxValue = (1n << (BigInt(size) * 8n - 1n)) - 1n;\n else\n maxValue = 2n ** (BigInt(size) * 8n) - 1n;\n }\n else if (typeof value_ === 'number') {\n maxValue = BigInt(Number.MAX_SAFE_INTEGER);\n }\n const minValue = typeof maxValue === 'bigint' && signed ? -maxValue - 1n : 0;\n if ((maxValue && value > maxValue) || value < minValue) {\n const suffix = typeof value_ === 'bigint' ? 'n' : '';\n throw new IntegerOutOfRangeError({\n max: maxValue ? `${maxValue}${suffix}` : undefined,\n min: `${minValue}${suffix}`,\n signed,\n size,\n value: `${value_}${suffix}`,\n });\n }\n const hex = `0x${(signed && value < 0 ? (1n << BigInt(size * 8)) + BigInt(value) : value).toString(16)}`;\n if (size)\n return pad(hex, { size });\n return hex;\n}\nconst encoder = /*#__PURE__*/ new TextEncoder();\n/**\n * Encodes a UTF-8 string into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#stringtohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { stringToHex } from 'viem'\n * const data = stringToHex('Hello World!')\n * // '0x48656c6c6f20576f726c6421'\n *\n * @example\n * import { stringToHex } from 'viem'\n * const data = stringToHex('Hello World!', { size: 32 })\n * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\n */\nexport function stringToHex(value_, opts = {}) {\n const value = encoder.encode(value_);\n return bytesToHex(value, opts);\n}\n//# sourceMappingURL=toHex.js.map","import { BaseError } from '../../errors/base.js';\nimport { isHex } from '../data/isHex.js';\nimport { pad } from '../data/pad.js';\nimport { assertSize } from './fromHex.js';\nimport { numberToHex, } from './toHex.js';\nconst encoder = /*#__PURE__*/ new TextEncoder();\n/**\n * Encodes a UTF-8 string, hex value, bigint, number or boolean to a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes\n * - Example: https://viem.sh/docs/utilities/toBytes#usage\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes('Hello world')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes(420)\n * // Uint8Array([1, 164])\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes(420, { size: 4 })\n * // Uint8Array([0, 0, 1, 164])\n */\nexport function toBytes(value, opts = {}) {\n if (typeof value === 'number' || typeof value === 'bigint')\n return numberToBytes(value, opts);\n if (typeof value === 'boolean')\n return boolToBytes(value, opts);\n if (isHex(value))\n return hexToBytes(value, opts);\n return stringToBytes(value, opts);\n}\n/**\n * Encodes a boolean into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#booltobytes\n *\n * @param value Boolean value to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { boolToBytes } from 'viem'\n * const data = boolToBytes(true)\n * // Uint8Array([1])\n *\n * @example\n * import { boolToBytes } from 'viem'\n * const data = boolToBytes(true, { size: 32 })\n * // Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1])\n */\nexport function boolToBytes(value, opts = {}) {\n const bytes = new Uint8Array(1);\n bytes[0] = Number(value);\n if (typeof opts.size === 'number') {\n assertSize(bytes, { size: opts.size });\n return pad(bytes, { size: opts.size });\n }\n return bytes;\n}\n// We use very optimized technique to convert hex string to byte array\nconst charCodeMap = {\n zero: 48,\n nine: 57,\n A: 65,\n F: 70,\n a: 97,\n f: 102,\n};\nfunction charCodeToBase16(char) {\n if (char >= charCodeMap.zero && char <= charCodeMap.nine)\n return char - charCodeMap.zero;\n if (char >= charCodeMap.A && char <= charCodeMap.F)\n return char - (charCodeMap.A - 10);\n if (char >= charCodeMap.a && char <= charCodeMap.f)\n return char - (charCodeMap.a - 10);\n return undefined;\n}\n/**\n * Encodes a hex string into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#hextobytes\n *\n * @param hex Hex string to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { hexToBytes } from 'viem'\n * const data = hexToBytes('0x48656c6c6f20776f726c6421')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n *\n * @example\n * import { hexToBytes } from 'viem'\n * const data = hexToBytes('0x48656c6c6f20776f726c6421', { size: 32 })\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n */\nexport function hexToBytes(hex_, opts = {}) {\n let hex = hex_;\n if (opts.size) {\n assertSize(hex, { size: opts.size });\n hex = pad(hex, { dir: 'right', size: opts.size });\n }\n let hexString = hex.slice(2);\n if (hexString.length % 2)\n hexString = `0${hexString}`;\n const length = hexString.length / 2;\n const bytes = new Uint8Array(length);\n for (let index = 0, j = 0; index < length; index++) {\n const nibbleLeft = charCodeToBase16(hexString.charCodeAt(j++));\n const nibbleRight = charCodeToBase16(hexString.charCodeAt(j++));\n if (nibbleLeft === undefined || nibbleRight === undefined) {\n throw new BaseError(`Invalid byte sequence (\"${hexString[j - 2]}${hexString[j - 1]}\" in \"${hexString}\").`);\n }\n bytes[index] = nibbleLeft * 16 + nibbleRight;\n }\n return bytes;\n}\n/**\n * Encodes a number into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#numbertobytes\n *\n * @param value Number to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { numberToBytes } from 'viem'\n * const data = numberToBytes(420)\n * // Uint8Array([1, 164])\n *\n * @example\n * import { numberToBytes } from 'viem'\n * const data = numberToBytes(420, { size: 4 })\n * // Uint8Array([0, 0, 1, 164])\n */\nexport function numberToBytes(value, opts) {\n const hex = numberToHex(value, opts);\n return hexToBytes(hex);\n}\n/**\n * Encodes a UTF-8 string into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#stringtobytes\n *\n * @param value String to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { stringToBytes } from 'viem'\n * const data = stringToBytes('Hello world!')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 33])\n *\n * @example\n * import { stringToBytes } from 'viem'\n * const data = stringToBytes('Hello world!', { size: 32 })\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n */\nexport function stringToBytes(value, opts = {}) {\n const bytes = encoder.encode(value);\n if (typeof opts.size === 'number') {\n assertSize(bytes, { size: opts.size });\n return pad(bytes, { dir: 'right', size: opts.size });\n }\n return bytes;\n}\n//# sourceMappingURL=toBytes.js.map","import { keccak_256 } from '@noble/hashes/sha3';\nimport { isHex } from '../data/isHex.js';\nimport { toBytes } from '../encoding/toBytes.js';\nimport { toHex } from '../encoding/toHex.js';\nexport function keccak256(value, to_) {\n const to = to_ || 'hex';\n const bytes = keccak_256(isHex(value, { strict: false }) ? toBytes(value) : value);\n if (to === 'bytes')\n return bytes;\n return toHex(bytes);\n}\n//# sourceMappingURL=keccak256.js.map","import { toBytes } from '../encoding/toBytes.js';\nimport { keccak256 } from './keccak256.js';\nconst hash = (value) => keccak256(toBytes(value));\nexport function hashSignature(sig) {\n return hash(sig);\n}\n//# sourceMappingURL=hashSignature.js.map","import { BaseError } from '../../errors/base.js';\nexport function normalizeSignature(signature) {\n let active = true;\n let current = '';\n let level = 0;\n let result = '';\n let valid = false;\n for (let i = 0; i < signature.length; i++) {\n const char = signature[i];\n // If the character is a separator, we want to reactivate.\n if (['(', ')', ','].includes(char))\n active = true;\n // If the character is a \"level\" token, we want to increment/decrement.\n if (char === '(')\n level++;\n if (char === ')')\n level--;\n // If we aren't active, we don't want to mutate the result.\n if (!active)\n continue;\n // If level === 0, we are at the definition level.\n if (level === 0) {\n if (char === ' ' && ['event', 'function', ''].includes(result))\n result = '';\n else {\n result += char;\n // If we are at the end of the definition, we must be finished.\n if (char === ')') {\n valid = true;\n break;\n }\n }\n continue;\n }\n // Ignore spaces\n if (char === ' ') {\n // If the previous character is a separator, and the current section isn't empty, we want to deactivate.\n if (signature[i - 1] !== ',' && current !== ',' && current !== ',(') {\n current = '';\n active = false;\n }\n continue;\n }\n result += char;\n current += char;\n }\n if (!valid)\n throw new BaseError('Unable to normalize signature.');\n return result;\n}\n//# sourceMappingURL=normalizeSignature.js.map","import { formatAbiItem } from 'abitype';\nimport { normalizeSignature, } from './normalizeSignature.js';\n/**\n * Returns the signature for a given function or event definition.\n *\n * @example\n * const signature = toSignature('function ownerOf(uint256 tokenId)')\n * // 'ownerOf(uint256)'\n *\n * @example\n * const signature_3 = toSignature({\n * name: 'ownerOf',\n * type: 'function',\n * inputs: [{ name: 'tokenId', type: 'uint256' }],\n * outputs: [],\n * stateMutability: 'view',\n * })\n * // 'ownerOf(uint256)'\n */\nexport const toSignature = (def) => {\n const def_ = (() => {\n if (typeof def === 'string')\n return def;\n return formatAbiItem(def);\n })();\n return normalizeSignature(def_);\n};\n//# sourceMappingURL=toSignature.js.map","import { hashSignature } from './hashSignature.js';\nimport { toSignature } from './toSignature.js';\n/**\n * Returns the hash (of the function/event signature) for a given event or function definition.\n */\nexport function toSignatureHash(fn) {\n return hashSignature(toSignature(fn));\n}\n//# sourceMappingURL=toSignatureHash.js.map","import { toSignatureHash, } from './toSignatureHash.js';\n/**\n * Returns the event selector for a given event definition.\n *\n * @example\n * const selector = toEventSelector('Transfer(address indexed from, address indexed to, uint256 amount)')\n * // 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\n */\nexport const toEventSelector = toSignatureHash;\n//# sourceMappingURL=toEventSelector.js.map","import { BaseError } from './base.js';\nexport class InvalidAddressError extends BaseError {\n constructor({ address }) {\n super(`Address \"${address}\" is invalid.`, {\n metaMessages: [\n '- Address must be a hex value of 20 bytes (40 hex characters).',\n '- Address must match its checksum counterpart.',\n ],\n name: 'InvalidAddressError',\n });\n }\n}\n//# sourceMappingURL=address.js.map","/**\n * Map with a LRU (Least recently used) policy.\n *\n * @link https://en.wikipedia.org/wiki/Cache_replacement_policies#LRU\n */\nexport class LruMap extends Map {\n constructor(size) {\n super();\n Object.defineProperty(this, \"maxSize\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.maxSize = size;\n }\n get(key) {\n const value = super.get(key);\n if (super.has(key) && value !== undefined) {\n this.delete(key);\n super.set(key, value);\n }\n return value;\n }\n set(key, value) {\n super.set(key, value);\n if (this.maxSize && this.size > this.maxSize) {\n const firstKey = this.keys().next().value;\n if (firstKey)\n this.delete(firstKey);\n }\n return this;\n }\n}\n//# sourceMappingURL=lru.js.map","import { InvalidAddressError } from '../../errors/address.js';\nimport { stringToBytes, } from '../encoding/toBytes.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { LruMap } from '../lru.js';\nimport { isAddress } from './isAddress.js';\nconst checksumAddressCache = /*#__PURE__*/ new LruMap(8192);\nexport function checksumAddress(address_, \n/**\n * Warning: EIP-1191 checksum addresses are generally not backwards compatible with the\n * wider Ethereum ecosystem, meaning it will break when validated against an application/tool\n * that relies on EIP-55 checksum encoding (checksum without chainId).\n *\n * It is highly recommended to not use this feature unless you\n * know what you are doing.\n *\n * See more: https://github.com/ethereum/EIPs/issues/1121\n */\nchainId) {\n if (checksumAddressCache.has(`${address_}.${chainId}`))\n return checksumAddressCache.get(`${address_}.${chainId}`);\n const hexAddress = chainId\n ? `${chainId}${address_.toLowerCase()}`\n : address_.substring(2).toLowerCase();\n const hash = keccak256(stringToBytes(hexAddress), 'bytes');\n const address = (chainId ? hexAddress.substring(`${chainId}0x`.length) : hexAddress).split('');\n for (let i = 0; i < 40; i += 2) {\n if (hash[i >> 1] >> 4 >= 8 && address[i]) {\n address[i] = address[i].toUpperCase();\n }\n if ((hash[i >> 1] & 0x0f) >= 8 && address[i + 1]) {\n address[i + 1] = address[i + 1].toUpperCase();\n }\n }\n const result = `0x${address.join('')}`;\n checksumAddressCache.set(`${address_}.${chainId}`, result);\n return result;\n}\nexport function getAddress(address, \n/**\n * Warning: EIP-1191 checksum addresses are generally not backwards compatible with the\n * wider Ethereum ecosystem, meaning it will break when validated against an application/tool\n * that relies on EIP-55 checksum encoding (checksum without chainId).\n *\n * It is highly recommended to not use this feature unless you\n * know what you are doing.\n *\n * See more: https://github.com/ethereum/EIPs/issues/1121\n */\nchainId) {\n if (!isAddress(address, { strict: false }))\n throw new InvalidAddressError({ address });\n return checksumAddress(address, chainId);\n}\n//# sourceMappingURL=getAddress.js.map","import { LruMap } from '../lru.js';\nimport { checksumAddress } from './getAddress.js';\nconst addressRegex = /^0x[a-fA-F0-9]{40}$/;\n/** @internal */\nexport const isAddressCache = /*#__PURE__*/ new LruMap(8192);\nexport function isAddress(address, options) {\n const { strict = true } = options ?? {};\n const cacheKey = `${address}.${strict}`;\n if (isAddressCache.has(cacheKey))\n return isAddressCache.get(cacheKey);\n const result = (() => {\n if (!addressRegex.test(address))\n return false;\n if (address.toLowerCase() === address)\n return true;\n if (strict)\n return checksumAddress(address) === address;\n return true;\n })();\n isAddressCache.set(cacheKey, result);\n return result;\n}\n//# sourceMappingURL=isAddress.js.map","export function concat(values) {\n if (typeof values[0] === 'string')\n return concatHex(values);\n return concatBytes(values);\n}\nexport function concatBytes(values) {\n let length = 0;\n for (const arr of values) {\n length += arr.length;\n }\n const result = new Uint8Array(length);\n let offset = 0;\n for (const arr of values) {\n result.set(arr, offset);\n offset += arr.length;\n }\n return result;\n}\nexport function concatHex(values) {\n return `0x${values.reduce((acc, x) => acc + x.replace('0x', ''), '')}`;\n}\n//# sourceMappingURL=concat.js.map","import { SliceOffsetOutOfBoundsError, } from '../../errors/data.js';\nimport { isHex } from './isHex.js';\nimport { size } from './size.js';\n/**\n * @description Returns a section of the hex or byte array given a start/end bytes offset.\n *\n * @param value The hex or byte array to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function slice(value, start, end, { strict } = {}) {\n if (isHex(value, { strict: false }))\n return sliceHex(value, start, end, {\n strict,\n });\n return sliceBytes(value, start, end, {\n strict,\n });\n}\nfunction assertStartOffset(value, start) {\n if (typeof start === 'number' && start > 0 && start > size(value) - 1)\n throw new SliceOffsetOutOfBoundsError({\n offset: start,\n position: 'start',\n size: size(value),\n });\n}\nfunction assertEndOffset(value, start, end) {\n if (typeof start === 'number' &&\n typeof end === 'number' &&\n size(value) !== end - start) {\n throw new SliceOffsetOutOfBoundsError({\n offset: end,\n position: 'end',\n size: size(value),\n });\n }\n}\n/**\n * @description Returns a section of the byte array given a start/end bytes offset.\n *\n * @param value The byte array to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function sliceBytes(value_, start, end, { strict } = {}) {\n assertStartOffset(value_, start);\n const value = value_.slice(start, end);\n if (strict)\n assertEndOffset(value, start, end);\n return value;\n}\n/**\n * @description Returns a section of the hex value given a start/end bytes offset.\n *\n * @param value The hex value to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function sliceHex(value_, start, end, { strict } = {}) {\n assertStartOffset(value_, start);\n const value = `0x${value_\n .replace('0x', '')\n .slice((start ?? 0) * 2, (end ?? value_.length) * 2)}`;\n if (strict)\n assertEndOffset(value, start, end);\n return value;\n}\n//# sourceMappingURL=slice.js.map","import { AbiEncodingArrayLengthMismatchError, AbiEncodingBytesSizeMismatchError, AbiEncodingLengthMismatchError, InvalidAbiEncodingTypeError, InvalidArrayError, } from '../../errors/abi.js';\nimport { InvalidAddressError, } from '../../errors/address.js';\nimport { BaseError } from '../../errors/base.js';\nimport { isAddress } from '../address/isAddress.js';\nimport { concat } from '../data/concat.js';\nimport { padHex } from '../data/pad.js';\nimport { size } from '../data/size.js';\nimport { slice } from '../data/slice.js';\nimport { boolToHex, numberToHex, stringToHex, } from '../encoding/toHex.js';\n/**\n * @description Encodes a list of primitive values into an ABI-encoded hex value.\n *\n * - Docs: https://viem.sh/docs/abi/encodeAbiParameters#encodeabiparameters\n *\n * Generates ABI encoded data using the [ABI specification](https://docs.soliditylang.org/en/latest/abi-spec), given a set of ABI parameters (inputs/outputs) and their corresponding values.\n *\n * @param params - a set of ABI Parameters (params), that can be in the shape of the inputs or outputs attribute of an ABI Item.\n * @param values - a set of values (values) that correspond to the given params.\n * @example\n * ```typescript\n * import { encodeAbiParameters } from 'viem'\n *\n * const encodedData = encodeAbiParameters(\n * [\n * { name: 'x', type: 'string' },\n * { name: 'y', type: 'uint' },\n * { name: 'z', type: 'bool' }\n * ],\n * ['wagmi', 420n, true]\n * )\n * ```\n *\n * You can also pass in Human Readable parameters with the parseAbiParameters utility.\n *\n * @example\n * ```typescript\n * import { encodeAbiParameters, parseAbiParameters } from 'viem'\n *\n * const encodedData = encodeAbiParameters(\n * parseAbiParameters('string x, uint y, bool z'),\n * ['wagmi', 420n, true]\n * )\n * ```\n */\nexport function encodeAbiParameters(params, values) {\n if (params.length !== values.length)\n throw new AbiEncodingLengthMismatchError({\n expectedLength: params.length,\n givenLength: values.length,\n });\n // Prepare the parameters to determine dynamic types to encode.\n const preparedParams = prepareParams({\n params: params,\n values: values,\n });\n const data = encodeParams(preparedParams);\n if (data.length === 0)\n return '0x';\n return data;\n}\nfunction prepareParams({ params, values, }) {\n const preparedParams = [];\n for (let i = 0; i < params.length; i++) {\n preparedParams.push(prepareParam({ param: params[i], value: values[i] }));\n }\n return preparedParams;\n}\nfunction prepareParam({ param, value, }) {\n const arrayComponents = getArrayComponents(param.type);\n if (arrayComponents) {\n const [length, type] = arrayComponents;\n return encodeArray(value, { length, param: { ...param, type } });\n }\n if (param.type === 'tuple') {\n return encodeTuple(value, {\n param: param,\n });\n }\n if (param.type === 'address') {\n return encodeAddress(value);\n }\n if (param.type === 'bool') {\n return encodeBool(value);\n }\n if (param.type.startsWith('uint') || param.type.startsWith('int')) {\n const signed = param.type.startsWith('int');\n return encodeNumber(value, { signed });\n }\n if (param.type.startsWith('bytes')) {\n return encodeBytes(value, { param });\n }\n if (param.type === 'string') {\n return encodeString(value);\n }\n throw new InvalidAbiEncodingTypeError(param.type, {\n docsPath: '/docs/contract/encodeAbiParameters',\n });\n}\nfunction encodeParams(preparedParams) {\n // 1. Compute the size of the static part of the parameters.\n let staticSize = 0;\n for (let i = 0; i < preparedParams.length; i++) {\n const { dynamic, encoded } = preparedParams[i];\n if (dynamic)\n staticSize += 32;\n else\n staticSize += size(encoded);\n }\n // 2. Split the parameters into static and dynamic parts.\n const staticParams = [];\n const dynamicParams = [];\n let dynamicSize = 0;\n for (let i = 0; i < preparedParams.length; i++) {\n const { dynamic, encoded } = preparedParams[i];\n if (dynamic) {\n staticParams.push(numberToHex(staticSize + dynamicSize, { size: 32 }));\n dynamicParams.push(encoded);\n dynamicSize += size(encoded);\n }\n else {\n staticParams.push(encoded);\n }\n }\n // 3. Concatenate static and dynamic parts.\n return concat([...staticParams, ...dynamicParams]);\n}\nfunction encodeAddress(value) {\n if (!isAddress(value))\n throw new InvalidAddressError({ address: value });\n return { dynamic: false, encoded: padHex(value.toLowerCase()) };\n}\nfunction encodeArray(value, { length, param, }) {\n const dynamic = length === null;\n if (!Array.isArray(value))\n throw new InvalidArrayError(value);\n if (!dynamic && value.length !== length)\n throw new AbiEncodingArrayLengthMismatchError({\n expectedLength: length,\n givenLength: value.length,\n type: `${param.type}[${length}]`,\n });\n let dynamicChild = false;\n const preparedParams = [];\n for (let i = 0; i < value.length; i++) {\n const preparedParam = prepareParam({ param, value: value[i] });\n if (preparedParam.dynamic)\n dynamicChild = true;\n preparedParams.push(preparedParam);\n }\n if (dynamic || dynamicChild) {\n const data = encodeParams(preparedParams);\n if (dynamic) {\n const length = numberToHex(preparedParams.length, { size: 32 });\n return {\n dynamic: true,\n encoded: preparedParams.length > 0 ? concat([length, data]) : length,\n };\n }\n if (dynamicChild)\n return { dynamic: true, encoded: data };\n }\n return {\n dynamic: false,\n encoded: concat(preparedParams.map(({ encoded }) => encoded)),\n };\n}\nfunction encodeBytes(value, { param }) {\n const [, paramSize] = param.type.split('bytes');\n const bytesSize = size(value);\n if (!paramSize) {\n let value_ = value;\n // If the size is not divisible by 32 bytes, pad the end\n // with empty bytes to the ceiling 32 bytes.\n if (bytesSize % 32 !== 0)\n value_ = padHex(value_, {\n dir: 'right',\n size: Math.ceil((value.length - 2) / 2 / 32) * 32,\n });\n return {\n dynamic: true,\n encoded: concat([padHex(numberToHex(bytesSize, { size: 32 })), value_]),\n };\n }\n if (bytesSize !== Number.parseInt(paramSize))\n throw new AbiEncodingBytesSizeMismatchError({\n expectedSize: Number.parseInt(paramSize),\n value,\n });\n return { dynamic: false, encoded: padHex(value, { dir: 'right' }) };\n}\nfunction encodeBool(value) {\n if (typeof value !== 'boolean')\n throw new BaseError(`Invalid boolean value: \"${value}\" (type: ${typeof value}). Expected: \\`true\\` or \\`false\\`.`);\n return { dynamic: false, encoded: padHex(boolToHex(value)) };\n}\nfunction encodeNumber(value, { signed }) {\n return {\n dynamic: false,\n encoded: numberToHex(value, {\n size: 32,\n signed,\n }),\n };\n}\nfunction encodeString(value) {\n const hexValue = stringToHex(value);\n const partsLength = Math.ceil(size(hexValue) / 32);\n const parts = [];\n for (let i = 0; i < partsLength; i++) {\n parts.push(padHex(slice(hexValue, i * 32, (i + 1) * 32), {\n dir: 'right',\n }));\n }\n return {\n dynamic: true,\n encoded: concat([\n padHex(numberToHex(size(hexValue), { size: 32 })),\n ...parts,\n ]),\n };\n}\nfunction encodeTuple(value, { param }) {\n let dynamic = false;\n const preparedParams = [];\n for (let i = 0; i < param.components.length; i++) {\n const param_ = param.components[i];\n const index = Array.isArray(value) ? i : param_.name;\n const preparedParam = prepareParam({\n param: param_,\n value: value[index],\n });\n preparedParams.push(preparedParam);\n if (preparedParam.dynamic)\n dynamic = true;\n }\n return {\n dynamic,\n encoded: dynamic\n ? encodeParams(preparedParams)\n : concat(preparedParams.map(({ encoded }) => encoded)),\n };\n}\nexport function getArrayComponents(type) {\n const matches = type.match(/^(.*)\\[(\\d+)?\\]$/);\n return matches\n ? // Return `null` if the array is dynamic.\n [matches[2] ? Number(matches[2]) : null, matches[1]]\n : undefined;\n}\n//# sourceMappingURL=encodeAbiParameters.js.map","import { slice } from '../data/slice.js';\nimport { toSignatureHash, } from './toSignatureHash.js';\n/**\n * Returns the function selector for a given function definition.\n *\n * @example\n * const selector = toFunctionSelector('function ownerOf(uint256 tokenId)')\n * // 0x6352211e\n */\nexport const toFunctionSelector = (fn) => slice(toSignatureHash(fn), 0, 4);\n//# sourceMappingURL=toFunctionSelector.js.map","import { AbiItemAmbiguityError, } from '../../errors/abi.js';\nimport { isHex } from '../../utils/data/isHex.js';\nimport { isAddress } from '../address/isAddress.js';\nimport { toEventSelector } from '../hash/toEventSelector.js';\nimport { toFunctionSelector, } from '../hash/toFunctionSelector.js';\nexport function getAbiItem(parameters) {\n const { abi, args = [], name } = parameters;\n const isSelector = isHex(name, { strict: false });\n const abiItems = abi.filter((abiItem) => {\n if (isSelector) {\n if (abiItem.type === 'function')\n return toFunctionSelector(abiItem) === name;\n if (abiItem.type === 'event')\n return toEventSelector(abiItem) === name;\n return false;\n }\n return 'name' in abiItem && abiItem.name === name;\n });\n if (abiItems.length === 0)\n return undefined;\n if (abiItems.length === 1)\n return abiItems[0];\n let matchedAbiItem = undefined;\n for (const abiItem of abiItems) {\n if (!('inputs' in abiItem))\n continue;\n if (!args || args.length === 0) {\n if (!abiItem.inputs || abiItem.inputs.length === 0)\n return abiItem;\n continue;\n }\n if (!abiItem.inputs)\n continue;\n if (abiItem.inputs.length === 0)\n continue;\n if (abiItem.inputs.length !== args.length)\n continue;\n const matched = args.every((arg, index) => {\n const abiParameter = 'inputs' in abiItem && abiItem.inputs[index];\n if (!abiParameter)\n return false;\n return isArgOfType(arg, abiParameter);\n });\n if (matched) {\n // Check for ambiguity against already matched parameters (e.g. `address` vs `bytes20`).\n if (matchedAbiItem &&\n 'inputs' in matchedAbiItem &&\n matchedAbiItem.inputs) {\n const ambiguousTypes = getAmbiguousTypes(abiItem.inputs, matchedAbiItem.inputs, args);\n if (ambiguousTypes)\n throw new AbiItemAmbiguityError({\n abiItem,\n type: ambiguousTypes[0],\n }, {\n abiItem: matchedAbiItem,\n type: ambiguousTypes[1],\n });\n }\n matchedAbiItem = abiItem;\n }\n }\n if (matchedAbiItem)\n return matchedAbiItem;\n return abiItems[0];\n}\n/** @internal */\nexport function isArgOfType(arg, abiParameter) {\n const argType = typeof arg;\n const abiParameterType = abiParameter.type;\n switch (abiParameterType) {\n case 'address':\n return isAddress(arg, { strict: false });\n case 'bool':\n return argType === 'boolean';\n case 'function':\n return argType === 'string';\n case 'string':\n return argType === 'string';\n default: {\n if (abiParameterType === 'tuple' && 'components' in abiParameter)\n return Object.values(abiParameter.components).every((component, index) => {\n return isArgOfType(Object.values(arg)[index], component);\n });\n // `(u)int<M>`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n // https://regexr.com/6v8hp\n if (/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(abiParameterType))\n return argType === 'number' || argType === 'bigint';\n // `bytes<M>`: binary type of `M` bytes, `0 < M <= 32`\n // https://regexr.com/6va55\n if (/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(abiParameterType))\n return argType === 'string' || arg instanceof Uint8Array;\n // fixed-length (`<type>[M]`) and dynamic (`<type>[]`) arrays\n // https://regexr.com/6va6i\n if (/[a-z]+[1-9]{0,3}(\\[[0-9]{0,}\\])+$/.test(abiParameterType)) {\n return (Array.isArray(arg) &&\n arg.every((x) => isArgOfType(x, {\n ...abiParameter,\n // Pop off `[]` or `[M]` from end of type\n type: abiParameterType.replace(/(\\[[0-9]{0,}\\])$/, ''),\n })));\n }\n return false;\n }\n }\n}\n/** @internal */\nexport function getAmbiguousTypes(sourceParameters, targetParameters, args) {\n for (const parameterIndex in sourceParameters) {\n const sourceParameter = sourceParameters[parameterIndex];\n const targetParameter = targetParameters[parameterIndex];\n if (sourceParameter.type === 'tuple' &&\n targetParameter.type === 'tuple' &&\n 'components' in sourceParameter &&\n 'components' in targetParameter)\n return getAmbiguousTypes(sourceParameter.components, targetParameter.components, args[parameterIndex]);\n const types = [sourceParameter.type, targetParameter.type];\n const ambiguous = (() => {\n if (types.includes('address') && types.includes('bytes20'))\n return true;\n if (types.includes('address') && types.includes('string'))\n return isAddress(args[parameterIndex], { strict: false });\n if (types.includes('address') && types.includes('bytes'))\n return isAddress(args[parameterIndex], { strict: false });\n return false;\n })();\n if (ambiguous)\n return types;\n }\n return;\n}\n//# sourceMappingURL=getAbiItem.js.map","import { AbiFunctionNotFoundError, } from '../../errors/abi.js';\nimport { toFunctionSelector, } from '../hash/toFunctionSelector.js';\nimport { formatAbiItem } from './formatAbiItem.js';\nimport { getAbiItem } from './getAbiItem.js';\nconst docsPath = '/docs/contract/encodeFunctionData';\nexport function prepareEncodeFunctionData(parameters) {\n const { abi, args, functionName } = parameters;\n let abiItem = abi[0];\n if (functionName) {\n const item = getAbiItem({\n abi,\n args,\n name: functionName,\n });\n if (!item)\n throw new AbiFunctionNotFoundError(functionName, { docsPath });\n abiItem = item;\n }\n if (abiItem.type !== 'function')\n throw new AbiFunctionNotFoundError(undefined, { docsPath });\n return {\n abi: [abiItem],\n functionName: toFunctionSelector(formatAbiItem(abiItem)),\n };\n}\n//# sourceMappingURL=prepareEncodeFunctionData.js.map","import { concatHex } from '../data/concat.js';\nimport { encodeAbiParameters, } from './encodeAbiParameters.js';\nimport { prepareEncodeFunctionData } from './prepareEncodeFunctionData.js';\nexport function encodeFunctionData(parameters) {\n const { args } = parameters;\n const { abi, functionName } = (() => {\n if (parameters.abi.length === 1 &&\n parameters.functionName?.startsWith('0x'))\n return parameters;\n return prepareEncodeFunctionData(parameters);\n })();\n const abiItem = abi[0];\n const signature = functionName;\n const data = 'inputs' in abiItem && abiItem.inputs\n ? encodeAbiParameters(abiItem.inputs, args ?? [])\n : undefined;\n return concatHex([signature, data ?? '0x']);\n}\n//# sourceMappingURL=encodeFunctionData.js.map","export const arrayRegex = /^(.*)\\[([0-9]*)\\]$/;\n// `bytes<M>`: binary type of `M` bytes, `0 < M <= 32`\n// https://regexr.com/6va55\nexport const bytesRegex = /^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/;\n// `(u)int<M>`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n// https://regexr.com/6v8hp\nexport const integerRegex = /^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;\n//# sourceMappingURL=regex.js.map","import { BaseError } from './base.js';\nexport class InvalidStructTypeError extends BaseError {\n constructor({ type }) {\n super(`Struct type \"${type}\" is invalid.`, {\n metaMessages: ['Struct type must not be a Solidity type.'],\n name: 'InvalidStructTypeError',\n });\n }\n}\n//# sourceMappingURL=typedData.js.map","// Implementation forked and adapted from https://github.com/MetaMask/eth-sig-util/blob/main/src/sign-typed-data.ts\nimport { encodeAbiParameters, } from '../abi/encodeAbiParameters.js';\nimport { concat } from '../data/concat.js';\nimport { toHex } from '../encoding/toHex.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { getTypesForEIP712Domain, validateTypedData, } from '../typedData.js';\nexport function hashTypedData(parameters) {\n const { domain = {}, message, primaryType, } = parameters;\n const types = {\n EIP712Domain: getTypesForEIP712Domain({ domain }),\n ...parameters.types,\n };\n // Need to do a runtime validation check on addresses, byte ranges, integer ranges, etc\n // as we can't statically check this with TypeScript.\n validateTypedData({\n domain,\n message,\n primaryType,\n types,\n });\n const parts = ['0x1901'];\n if (domain)\n parts.push(hashDomain({\n domain,\n types: types,\n }));\n if (primaryType !== 'EIP712Domain')\n parts.push(hashStruct({\n data: message,\n primaryType,\n types: types,\n }));\n return keccak256(concat(parts));\n}\nexport function hashDomain({ domain, types, }) {\n return hashStruct({\n data: domain,\n primaryType: 'EIP712Domain',\n types,\n });\n}\nexport function hashStruct({ data, primaryType, types, }) {\n const encoded = encodeData({\n data,\n primaryType,\n types,\n });\n return keccak256(encoded);\n}\nfunction encodeData({ data, primaryType, types, }) {\n const encodedTypes = [{ type: 'bytes32' }];\n const encodedValues = [hashType({ primaryType, types })];\n for (const field of types[primaryType]) {\n const [type, value] = encodeField({\n types,\n name: field.name,\n type: field.type,\n value: data[field.name],\n });\n encodedTypes.push(type);\n encodedValues.push(value);\n }\n return encodeAbiParameters(encodedTypes, encodedValues);\n}\nfunction hashType({ primaryType, types, }) {\n const encodedHashType = toHex(encodeType({ primaryType, types }));\n return keccak256(encodedHashType);\n}\nexport function encodeType({ primaryType, types, }) {\n let result = '';\n const unsortedDeps = findTypeDependencies({ primaryType, types });\n unsortedDeps.delete(primaryType);\n const deps = [primaryType, ...Array.from(unsortedDeps).sort()];\n for (const type of deps) {\n result += `${type}(${types[type]\n .map(({ name, type: t }) => `${t} ${name}`)\n .join(',')})`;\n }\n return result;\n}\nfunction findTypeDependencies({ primaryType: primaryType_, types, }, results = new Set()) {\n const match = primaryType_.match(/^\\w*/u);\n const primaryType = match?.[0];\n if (results.has(primaryType) || types[primaryType] === undefined) {\n return results;\n }\n results.add(primaryType);\n for (const field of types[primaryType]) {\n findTypeDependencies({ primaryType: field.type, types }, results);\n }\n return results;\n}\nfunction encodeField({ types, name, type, value, }) {\n if (types[type] !== undefined) {\n return [\n { type: 'bytes32' },\n keccak256(encodeData({ data: value, primaryType: type, types })),\n ];\n }\n if (type === 'bytes') {\n const prepend = value.length % 2 ? '0' : '';\n value = `0x${prepend + value.slice(2)}`;\n return [{ type: 'bytes32' }, keccak256(value)];\n }\n if (type === 'string')\n return [{ type: 'bytes32' }, keccak256(toHex(value))];\n if (type.lastIndexOf(']') === type.length - 1) {\n const parsedType = type.slice(0, type.lastIndexOf('['));\n const typeValuePairs = value.map((item) => encodeField({\n name,\n type: parsedType,\n types,\n value: item,\n }));\n return [\n { type: 'bytes32' },\n keccak256(encodeAbiParameters(typeValuePairs.map(([t]) => t), typeValuePairs.map(([, v]) => v))),\n ];\n }\n return [{ type }, value];\n}\n//# sourceMappingURL=hashTypedData.js.map","import { BytesSizeMismatchError } from '../errors/abi.js';\nimport { InvalidAddressError } from '../errors/address.js';\nimport { InvalidStructTypeError } from '../errors/typedData.js';\nimport { isAddress } from './address/isAddress.js';\nimport { size } from './data/size.js';\nimport { numberToHex } from './encoding/toHex.js';\nimport { bytesRegex, integerRegex } from './regex.js';\nimport { hashDomain, } from './signature/hashTypedData.js';\nimport { stringify } from './stringify.js';\nexport function serializeTypedData(parameters) {\n const { domain: domain_, message: message_, primaryType, types, } = parameters;\n const normalizeData = (struct, data_) => {\n const data = { ...data_ };\n for (const param of struct) {\n const { name, type } = param;\n if (type === 'address')\n data[name] = data[name].toLowerCase();\n }\n return data;\n };\n const domain = (() => {\n if (!types.EIP712Domain)\n return {};\n if (!domain_)\n return {};\n return normalizeData(types.EIP712Domain, domain_);\n })();\n const message = (() => {\n if (primaryType === 'EIP712Domain')\n return undefined;\n return normalizeData(types[primaryType], message_);\n })();\n return stringify({ domain, message, primaryType, types });\n}\nexport function validateTypedData(parameters) {\n const { domain, message, primaryType, types } = parameters;\n const validateData = (struct, data) => {\n for (const param of struct) {\n const { name, type } = param;\n const value = data[name];\n const integerMatch = type.match(integerRegex);\n if (integerMatch &&\n (typeof value === 'number' || typeof value === 'bigint')) {\n const [_type, base, size_] = integerMatch;\n // If number cannot be cast to a sized hex value, it is out of range\n // and will throw.\n numberToHex(value, {\n signed: base === 'int',\n size: Number.parseInt(size_) / 8,\n });\n }\n if (type === 'address' && typeof value === 'string' && !isAddress(value))\n throw new InvalidAddressError({ address: value });\n const bytesMatch = type.match(bytesRegex);\n if (bytesMatch) {\n const [_type, size_] = bytesMatch;\n if (size_ && size(value) !== Number.parseInt(size_))\n throw new BytesSizeMismatchError({\n expectedSize: Number.parseInt(size_),\n givenSize: size(value),\n });\n }\n const struct = types[type];\n if (struct) {\n validateReference(type);\n validateData(struct, value);\n }\n }\n };\n // Validate domain types.\n if (types.EIP712Domain && domain)\n validateData(types.EIP712Domain, domain);\n // Validate message types.\n if (primaryType !== 'EIP712Domain')\n validateData(types[primaryType], message);\n}\nexport function getTypesForEIP712Domain({ domain, }) {\n return [\n typeof domain?.name === 'string' && { name: 'name', type: 'string' },\n domain?.version && { name: 'version', type: 'string' },\n typeof domain?.chainId === 'number' && {\n name: 'chainId',\n type: 'uint256',\n },\n domain?.verifyingContract && {\n name: 'verifyingContract',\n type: 'address',\n },\n domain?.salt && { name: 'salt', type: 'bytes32' },\n ].filter(Boolean);\n}\nexport function domainSeparator({ domain }) {\n return hashDomain({\n domain,\n types: {\n EIP712Domain: getTypesForEIP712Domain({ domain }),\n },\n });\n}\n/** @internal */\nfunction validateReference(type) {\n // Struct type must not be a Solidity type.\n if (type === 'address' ||\n type === 'bool' ||\n type === 'string' ||\n type.startsWith('bytes') ||\n type.startsWith('uint') ||\n type.startsWith('int'))\n throw new InvalidStructTypeError({ type });\n}\n//# sourceMappingURL=typedData.js.map","export const presignMessagePrefix = '\\x19Ethereum Signed Message:\\n';\n//# sourceMappingURL=strings.js.map","import { presignMessagePrefix } from '../../constants/strings.js';\nimport { concat } from '../data/concat.js';\nimport { size } from '../data/size.js';\nimport { bytesToHex, stringToHex, } from '../encoding/toHex.js';\nexport function toPrefixedMessage(message_) {\n const message = (() => {\n if (typeof message_ === 'string')\n return stringToHex(message_);\n if (typeof message_.raw === 'string')\n return message_.raw;\n return bytesToHex(message_.raw);\n })();\n const prefix = stringToHex(`${presignMessagePrefix}${size(message)}`);\n return concat([prefix, message]);\n}\n//# sourceMappingURL=toPrefixedMessage.js.map","import { keccak256 } from '../hash/keccak256.js';\nimport { toPrefixedMessage } from './toPrefixedMessage.js';\nexport function hashMessage(message, to_) {\n return keccak256(toPrefixedMessage(message), to_);\n}\n//# sourceMappingURL=hashMessage.js.map","const MAGIC_VALUE = '0x1626ba7e';\nconst MAGIC_VALUE_BYTES = '0x20c13b0b';\nexport { MAGIC_VALUE, MAGIC_VALUE_BYTES };\n//# sourceMappingURL=signatures.js.map","export const PERMISSIONS_REQUEST_REJECTED = 4001;\nexport class PermissionsError extends Error {\n constructor(message, code, data) {\n super(message);\n this.code = code;\n this.data = data;\n // Should adjust prototype manually because how TS handles the type extension compilation\n // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, PermissionsError.prototype);\n }\n}\n//# sourceMappingURL=permissions.js.map","import { Methods, RestrictedMethods } from '../communication/methods.js';\nimport { PermissionsError, PERMISSIONS_REQUEST_REJECTED } from '../types/permissions.js';\nclass Wallet {\n constructor(communicator) {\n this.communicator = communicator;\n }\n async getPermissions() {\n const response = await this.communicator.send(Methods.wallet_getPermissions, undefined);\n return response.data;\n }\n async requestPermissions(permissions) {\n if (!this.isPermissionRequestValid(permissions)) {\n throw new PermissionsError('Permissions request is invalid', PERMISSIONS_REQUEST_REJECTED);\n }\n try {\n const response = await this.communicator.send(Methods.wallet_requestPermissions, permissions);\n return response.data;\n }\n catch {\n throw new PermissionsError('Permissions rejected', PERMISSIONS_REQUEST_REJECTED);\n }\n }\n isPermissionRequestValid(permissions) {\n return permissions.every((pr) => {\n if (typeof pr === 'object') {\n return Object.keys(pr).every((method) => {\n if (Object.values(RestrictedMethods).includes(method)) {\n return true;\n }\n return false;\n });\n }\n return false;\n });\n }\n}\nexport { Wallet };\n//# sourceMappingURL=index.js.map","import { Wallet } from '../wallet/index.js';\nimport { PermissionsError, PERMISSIONS_REQUEST_REJECTED } from '../types/permissions.js';\nconst hasPermission = (required, permissions) => permissions.some((permission) => permission.parentCapability === required);\nconst requirePermission = () => (_, propertyKey, descriptor) => {\n const originalMethod = descriptor.value;\n descriptor.value = async function () {\n // @ts-expect-error accessing private property from decorator. 'this' context is the class instance\n const wallet = new Wallet(this.communicator);\n let currentPermissions = await wallet.getPermissions();\n if (!hasPermission(propertyKey, currentPermissions)) {\n currentPermissions = await wallet.requestPermissions([{ [propertyKey]: {} }]);\n }\n if (!hasPermission(propertyKey, currentPermissions)) {\n throw new PermissionsError('Permissions rejected', PERMISSIONS_REQUEST_REJECTED);\n }\n return originalMethod.apply(this);\n };\n return descriptor;\n};\nexport default requirePermission;\n//# sourceMappingURL=requirePermissions.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { encodeFunctionData, hashMessage, hashTypedData } from 'viem';\nimport { MAGIC_VALUE_BYTES, MAGIC_VALUE } from './signatures.js';\nimport { Methods } from '../communication/methods.js';\nimport { RPC_CALLS } from '../eth/constants.js';\nimport { isObjectEIP712TypedData, } from '../types/index.js';\nimport requirePermission from '../decorators/requirePermissions.js';\nclass Safe {\n constructor(communicator) {\n this.communicator = communicator;\n }\n async getChainInfo() {\n const response = await this.communicator.send(Methods.getChainInfo, undefined);\n return response.data;\n }\n async getInfo() {\n const response = await this.communicator.send(Methods.getSafeInfo, undefined);\n return response.data;\n }\n // There is a possibility that this method will change because we may add pagination to the endpoint\n async experimental_getBalances({ currency = 'usd' } = {}) {\n const response = await this.communicator.send(Methods.getSafeBalances, {\n currency,\n });\n return response.data;\n }\n async check1271Signature(messageHash, signature = '0x') {\n const safeInfo = await this.getInfo();\n const encodedIsValidSignatureCall = encodeFunctionData({\n abi: [\n {\n constant: false,\n inputs: [\n {\n name: '_dataHash',\n type: 'bytes32',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n name: 'isValidSignature',\n outputs: [\n {\n name: '',\n type: 'bytes4',\n },\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n ],\n functionName: 'isValidSignature',\n args: [messageHash, signature],\n });\n const payload = {\n call: RPC_CALLS.eth_call,\n params: [\n {\n to: safeInfo.safeAddress,\n data: encodedIsValidSignatureCall,\n },\n 'latest',\n ],\n };\n try {\n const response = await this.communicator.send(Methods.rpcCall, payload);\n return response.data.slice(0, 10).toLowerCase() === MAGIC_VALUE;\n }\n catch (err) {\n return false;\n }\n }\n async check1271SignatureBytes(messageHash, signature = '0x') {\n const safeInfo = await this.getInfo();\n const encodedIsValidSignatureCall = encodeFunctionData({\n abi: [\n {\n constant: false,\n inputs: [\n {\n name: '_data',\n type: 'bytes',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n name: 'isValidSignature',\n outputs: [\n {\n name: '',\n type: 'bytes4',\n },\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n ],\n functionName: 'isValidSignature',\n args: [messageHash, signature],\n });\n const payload = {\n call: RPC_CALLS.eth_call,\n params: [\n {\n to: safeInfo.safeAddress,\n data: encodedIsValidSignatureCall,\n },\n 'latest',\n ],\n };\n try {\n const response = await this.communicator.send(Methods.rpcCall, payload);\n return response.data.slice(0, 10).toLowerCase() === MAGIC_VALUE_BYTES;\n }\n catch (err) {\n return false;\n }\n }\n calculateMessageHash(message) {\n return hashMessage(message);\n }\n calculateTypedMessageHash(typedMessage) {\n const chainId = typeof typedMessage.domain.chainId === 'object'\n ? typedMessage.domain.chainId.toNumber()\n : Number(typedMessage.domain.chainId);\n let primaryType = typedMessage.primaryType;\n if (!primaryType) {\n const fields = Object.values(typedMessage.types);\n // We try to infer primaryType (simplified ether's version)\n const primaryTypes = Object.keys(typedMessage.types).filter((typeName) => fields.every((dataTypes) => dataTypes.every(({ type }) => type.replace('[', '').replace(']', '') !== typeName)));\n if (primaryTypes.length === 0 || primaryTypes.length > 1)\n throw new Error('Please specify primaryType');\n primaryType = primaryTypes[0];\n }\n return hashTypedData({\n message: typedMessage.message,\n domain: {\n ...typedMessage.domain,\n chainId,\n verifyingContract: typedMessage.domain.verifyingContract,\n salt: typedMessage.domain.salt,\n },\n types: typedMessage.types,\n primaryType,\n });\n }\n async getOffChainSignature(messageHash) {\n const response = await this.communicator.send(Methods.getOffChainSignature, messageHash);\n return response.data;\n }\n async isMessageSigned(message, signature = '0x') {\n let check;\n if (typeof message === 'string') {\n check = async () => {\n const messageHash = this.calculateMessageHash(message);\n const messageHashSigned = await this.isMessageHashSigned(messageHash, signature);\n return messageHashSigned;\n };\n }\n if (isObjectEIP712TypedData(message)) {\n check = async () => {\n const messageHash = this.calculateTypedMessageHash(message);\n const messageHashSigned = await this.isMessageHashSigned(messageHash, signature);\n return messageHashSigned;\n };\n }\n if (check) {\n const isValid = await check();\n return isValid;\n }\n throw new Error('Invalid message type');\n }\n async isMessageHashSigned(messageHash, signature = '0x') {\n const checks = [this.check1271Signature.bind(this), this.check1271SignatureBytes.bind(this)];\n for (const check of checks) {\n const isValid = await check(messageHash, signature);\n if (isValid) {\n return true;\n }\n }\n return false;\n }\n async getEnvironmentInfo() {\n const response = await this.communicator.send(Methods.getEnvironmentInfo, undefined);\n return response.data;\n }\n async requestAddressBook() {\n const response = await this.communicator.send(Methods.requestAddressBook, undefined);\n return response.data;\n }\n}\n__decorate([\n requirePermission()\n], Safe.prototype, \"requestAddressBook\", null);\nexport { Safe };\n//# sourceMappingURL=index.js.map","import InterfaceCommunicator from './communication/index.js';\nimport { TXs } from './txs/index.js';\nimport { Eth } from './eth/index.js';\nimport { Safe } from './safe/index.js';\nimport { Wallet } from './wallet/index.js';\nclass SafeAppsSDK {\n constructor(opts = {}) {\n const { allowedDomains = null, debug = false } = opts;\n this.communicator = new InterfaceCommunicator(allowedDomains, debug);\n this.eth = new Eth(this.communicator);\n this.txs = new TXs(this.communicator);\n this.safe = new Safe(this.communicator);\n this.wallet = new Wallet(this.communicator);\n }\n}\nexport default SafeAppsSDK;\n//# sourceMappingURL=sdk.js.map"],"names":["this","require$$0","exports","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","version","Methods","RestrictedMethods","docsPath","_a","size","size_","encoder","formatAbiItem","hash","length","struct","safeInfo","InterfaceCommunicator"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64]}
1
+ {"version":3,"file":"index-DDV7C-Dq.js","sources":["../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/utils.js","../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/endpoint.js","../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/config.js","../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/safe-info.js","../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/safe-apps.js","../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/transactions.js","../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/chains.js","../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/common.js","../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/master-copies.js","../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/decoded-data.js","../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/safe-messages.js","../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/notifications.js","../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/relay.js","../../../node_modules/.pnpm/@safe-global+safe-gateway-typescript-sdk@3.22.2/node_modules/@safe-global/safe-gateway-typescript-sdk/dist/index.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/@safe-global/safe-apps-sdk/dist/esm/version.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/@safe-global/safe-apps-sdk/dist/esm/communication/utils.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/@safe-global/safe-apps-sdk/dist/esm/communication/messageFormatter.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/@safe-global/safe-apps-sdk/dist/esm/communication/methods.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/@safe-global/safe-apps-sdk/dist/esm/communication/index.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/@safe-global/safe-apps-sdk/dist/esm/types/sdk.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/@safe-global/safe-apps-sdk/dist/esm/txs/index.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/@safe-global/safe-apps-sdk/dist/esm/eth/constants.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/@safe-global/safe-apps-sdk/dist/esm/eth/index.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/abi/formatAbiItem.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/data/isHex.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/data/size.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/errors/version.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/errors/base.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/errors/abi.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/errors/data.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/data/pad.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/errors/encoding.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/encoding/fromHex.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/encoding/toHex.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/encoding/toBytes.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/hash/keccak256.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/hash/hashSignature.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/hash/normalizeSignature.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/hash/toSignature.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/hash/toSignatureHash.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/hash/toEventSelector.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/errors/address.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/lru.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/address/getAddress.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/address/isAddress.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/data/concat.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/data/slice.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/abi/encodeAbiParameters.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/hash/toFunctionSelector.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/abi/getAbiItem.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/abi/prepareEncodeFunctionData.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/abi/encodeFunctionData.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/regex.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/errors/typedData.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/signature/hashTypedData.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/typedData.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/constants/strings.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/signature/toPrefixedMessage.js","../../../node_modules/.pnpm/viem@2.21.34_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/viem/_esm/utils/signature/hashMessage.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/@safe-global/safe-apps-sdk/dist/esm/safe/signatures.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/@safe-global/safe-apps-sdk/dist/esm/types/permissions.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/@safe-global/safe-apps-sdk/dist/esm/wallet/index.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/@safe-global/safe-apps-sdk/dist/esm/decorators/requirePermissions.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/@safe-global/safe-apps-sdk/dist/esm/safe/index.js","../../../node_modules/.pnpm/@safe-global+safe-apps-sdk@9.1.0_bufferutil@4.0.8_typescript@5.3.3_utf-8-validate@5.0.10_zod@3.22.4/node_modules/@safe-global/safe-apps-sdk/dist/esm/sdk.js"],"sourcesContent":["\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getData = exports.fetchData = exports.stringifyQuery = exports.insertParams = void 0;\nconst isErrorResponse = (data) => {\n const isObject = typeof data === 'object' && data !== null;\n return isObject && 'code' in data && 'message' in data;\n};\nfunction replaceParam(str, key, value) {\n return str.replace(new RegExp(`\\\\{${key}\\\\}`, 'g'), value);\n}\nfunction insertParams(template, params) {\n return params\n ? Object.keys(params).reduce((result, key) => {\n return replaceParam(result, key, String(params[key]));\n }, template)\n : template;\n}\nexports.insertParams = insertParams;\nfunction stringifyQuery(query) {\n if (!query) {\n return '';\n }\n const searchParams = new URLSearchParams();\n Object.keys(query).forEach((key) => {\n if (query[key] != null) {\n searchParams.append(key, String(query[key]));\n }\n });\n const searchString = searchParams.toString();\n return searchString ? `?${searchString}` : '';\n}\nexports.stringifyQuery = stringifyQuery;\nfunction parseResponse(resp) {\n return __awaiter(this, void 0, void 0, function* () {\n let json;\n try {\n json = yield resp.json();\n }\n catch (_a) {\n json = {};\n }\n if (!resp.ok) {\n const errTxt = isErrorResponse(json)\n ? `CGW error - ${json.code}: ${json.message}`\n : `CGW error - status ${resp.statusText}`;\n throw new Error(errTxt);\n }\n return json;\n });\n}\nfunction fetchData(url, method, body, headers, credentials) {\n return __awaiter(this, void 0, void 0, function* () {\n const requestHeaders = Object.assign({ 'Content-Type': 'application/json' }, headers);\n const options = {\n method: method !== null && method !== void 0 ? method : 'POST',\n headers: requestHeaders,\n };\n if (credentials) {\n options['credentials'] = credentials;\n }\n if (body != null) {\n options.body = typeof body === 'string' ? body : JSON.stringify(body);\n }\n const resp = yield fetch(url, options);\n return parseResponse(resp);\n });\n}\nexports.fetchData = fetchData;\nfunction getData(url, headers, credentials) {\n return __awaiter(this, void 0, void 0, function* () {\n const options = {\n method: 'GET',\n };\n if (headers) {\n options['headers'] = Object.assign(Object.assign({}, headers), { 'Content-Type': 'application/json' });\n }\n if (credentials) {\n options['credentials'] = credentials;\n }\n const resp = yield fetch(url, options);\n return parseResponse(resp);\n });\n}\nexports.getData = getData;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getEndpoint = exports.deleteEndpoint = exports.putEndpoint = exports.postEndpoint = void 0;\nconst utils_1 = require(\"./utils\");\nfunction makeUrl(baseUrl, path, pathParams, query) {\n const pathname = (0, utils_1.insertParams)(path, pathParams);\n const search = (0, utils_1.stringifyQuery)(query);\n return `${baseUrl}${pathname}${search}`;\n}\nfunction postEndpoint(baseUrl, path, params) {\n const url = makeUrl(baseUrl, path, params === null || params === void 0 ? void 0 : params.path, params === null || params === void 0 ? void 0 : params.query);\n return (0, utils_1.fetchData)(url, 'POST', params === null || params === void 0 ? void 0 : params.body, params === null || params === void 0 ? void 0 : params.headers, params === null || params === void 0 ? void 0 : params.credentials);\n}\nexports.postEndpoint = postEndpoint;\nfunction putEndpoint(baseUrl, path, params) {\n const url = makeUrl(baseUrl, path, params === null || params === void 0 ? void 0 : params.path, params === null || params === void 0 ? void 0 : params.query);\n return (0, utils_1.fetchData)(url, 'PUT', params === null || params === void 0 ? void 0 : params.body, params === null || params === void 0 ? void 0 : params.headers, params === null || params === void 0 ? void 0 : params.credentials);\n}\nexports.putEndpoint = putEndpoint;\nfunction deleteEndpoint(baseUrl, path, params) {\n const url = makeUrl(baseUrl, path, params === null || params === void 0 ? void 0 : params.path, params === null || params === void 0 ? void 0 : params.query);\n return (0, utils_1.fetchData)(url, 'DELETE', params === null || params === void 0 ? void 0 : params.body, params === null || params === void 0 ? void 0 : params.headers, params === null || params === void 0 ? void 0 : params.credentials);\n}\nexports.deleteEndpoint = deleteEndpoint;\nfunction getEndpoint(baseUrl, path, params, rawUrl) {\n if (rawUrl) {\n return (0, utils_1.getData)(rawUrl, undefined, params === null || params === void 0 ? void 0 : params.credentials);\n }\n const url = makeUrl(baseUrl, path, params === null || params === void 0 ? void 0 : params.path, params === null || params === void 0 ? void 0 : params.query);\n return (0, utils_1.getData)(url, params === null || params === void 0 ? void 0 : params.headers, params === null || params === void 0 ? void 0 : params.credentials);\n}\nexports.getEndpoint = getEndpoint;\n//# sourceMappingURL=endpoint.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_BASE_URL = void 0;\nexports.DEFAULT_BASE_URL = 'https://safe-client.safe.global';\n//# sourceMappingURL=config.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ImplementationVersionState = void 0;\nvar ImplementationVersionState;\n(function (ImplementationVersionState) {\n ImplementationVersionState[\"UP_TO_DATE\"] = \"UP_TO_DATE\";\n ImplementationVersionState[\"OUTDATED\"] = \"OUTDATED\";\n ImplementationVersionState[\"UNKNOWN\"] = \"UNKNOWN\";\n})(ImplementationVersionState = exports.ImplementationVersionState || (exports.ImplementationVersionState = {}));\n//# sourceMappingURL=safe-info.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SafeAppSocialPlatforms = exports.SafeAppFeatures = exports.SafeAppAccessPolicyTypes = void 0;\nvar SafeAppAccessPolicyTypes;\n(function (SafeAppAccessPolicyTypes) {\n SafeAppAccessPolicyTypes[\"NoRestrictions\"] = \"NO_RESTRICTIONS\";\n SafeAppAccessPolicyTypes[\"DomainAllowlist\"] = \"DOMAIN_ALLOWLIST\";\n})(SafeAppAccessPolicyTypes = exports.SafeAppAccessPolicyTypes || (exports.SafeAppAccessPolicyTypes = {}));\nvar SafeAppFeatures;\n(function (SafeAppFeatures) {\n SafeAppFeatures[\"BATCHED_TRANSACTIONS\"] = \"BATCHED_TRANSACTIONS\";\n})(SafeAppFeatures = exports.SafeAppFeatures || (exports.SafeAppFeatures = {}));\nvar SafeAppSocialPlatforms;\n(function (SafeAppSocialPlatforms) {\n SafeAppSocialPlatforms[\"TWITTER\"] = \"TWITTER\";\n SafeAppSocialPlatforms[\"GITHUB\"] = \"GITHUB\";\n SafeAppSocialPlatforms[\"DISCORD\"] = \"DISCORD\";\n})(SafeAppSocialPlatforms = exports.SafeAppSocialPlatforms || (exports.SafeAppSocialPlatforms = {}));\n//# sourceMappingURL=safe-apps.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LabelValue = exports.StartTimeValue = exports.DurationType = exports.DetailedExecutionInfoType = exports.TransactionListItemType = exports.ConflictType = exports.TransactionInfoType = exports.SettingsInfoType = exports.TransactionTokenType = exports.TransferDirection = exports.TransactionStatus = exports.Operation = void 0;\nvar Operation;\n(function (Operation) {\n Operation[Operation[\"CALL\"] = 0] = \"CALL\";\n Operation[Operation[\"DELEGATE\"] = 1] = \"DELEGATE\";\n})(Operation = exports.Operation || (exports.Operation = {}));\nvar TransactionStatus;\n(function (TransactionStatus) {\n TransactionStatus[\"AWAITING_CONFIRMATIONS\"] = \"AWAITING_CONFIRMATIONS\";\n TransactionStatus[\"AWAITING_EXECUTION\"] = \"AWAITING_EXECUTION\";\n TransactionStatus[\"CANCELLED\"] = \"CANCELLED\";\n TransactionStatus[\"FAILED\"] = \"FAILED\";\n TransactionStatus[\"SUCCESS\"] = \"SUCCESS\";\n})(TransactionStatus = exports.TransactionStatus || (exports.TransactionStatus = {}));\nvar TransferDirection;\n(function (TransferDirection) {\n TransferDirection[\"INCOMING\"] = \"INCOMING\";\n TransferDirection[\"OUTGOING\"] = \"OUTGOING\";\n TransferDirection[\"UNKNOWN\"] = \"UNKNOWN\";\n})(TransferDirection = exports.TransferDirection || (exports.TransferDirection = {}));\nvar TransactionTokenType;\n(function (TransactionTokenType) {\n TransactionTokenType[\"ERC20\"] = \"ERC20\";\n TransactionTokenType[\"ERC721\"] = \"ERC721\";\n TransactionTokenType[\"NATIVE_COIN\"] = \"NATIVE_COIN\";\n})(TransactionTokenType = exports.TransactionTokenType || (exports.TransactionTokenType = {}));\nvar SettingsInfoType;\n(function (SettingsInfoType) {\n SettingsInfoType[\"SET_FALLBACK_HANDLER\"] = \"SET_FALLBACK_HANDLER\";\n SettingsInfoType[\"ADD_OWNER\"] = \"ADD_OWNER\";\n SettingsInfoType[\"REMOVE_OWNER\"] = \"REMOVE_OWNER\";\n SettingsInfoType[\"SWAP_OWNER\"] = \"SWAP_OWNER\";\n SettingsInfoType[\"CHANGE_THRESHOLD\"] = \"CHANGE_THRESHOLD\";\n SettingsInfoType[\"CHANGE_IMPLEMENTATION\"] = \"CHANGE_IMPLEMENTATION\";\n SettingsInfoType[\"ENABLE_MODULE\"] = \"ENABLE_MODULE\";\n SettingsInfoType[\"DISABLE_MODULE\"] = \"DISABLE_MODULE\";\n SettingsInfoType[\"SET_GUARD\"] = \"SET_GUARD\";\n SettingsInfoType[\"DELETE_GUARD\"] = \"DELETE_GUARD\";\n})(SettingsInfoType = exports.SettingsInfoType || (exports.SettingsInfoType = {}));\nvar TransactionInfoType;\n(function (TransactionInfoType) {\n TransactionInfoType[\"TRANSFER\"] = \"Transfer\";\n TransactionInfoType[\"SETTINGS_CHANGE\"] = \"SettingsChange\";\n TransactionInfoType[\"CUSTOM\"] = \"Custom\";\n TransactionInfoType[\"CREATION\"] = \"Creation\";\n TransactionInfoType[\"SWAP_ORDER\"] = \"SwapOrder\";\n TransactionInfoType[\"TWAP_ORDER\"] = \"TwapOrder\";\n TransactionInfoType[\"SWAP_TRANSFER\"] = \"SwapTransfer\";\n})(TransactionInfoType = exports.TransactionInfoType || (exports.TransactionInfoType = {}));\nvar ConflictType;\n(function (ConflictType) {\n ConflictType[\"NONE\"] = \"None\";\n ConflictType[\"HAS_NEXT\"] = \"HasNext\";\n ConflictType[\"END\"] = \"End\";\n})(ConflictType = exports.ConflictType || (exports.ConflictType = {}));\nvar TransactionListItemType;\n(function (TransactionListItemType) {\n TransactionListItemType[\"TRANSACTION\"] = \"TRANSACTION\";\n TransactionListItemType[\"LABEL\"] = \"LABEL\";\n TransactionListItemType[\"CONFLICT_HEADER\"] = \"CONFLICT_HEADER\";\n TransactionListItemType[\"DATE_LABEL\"] = \"DATE_LABEL\";\n})(TransactionListItemType = exports.TransactionListItemType || (exports.TransactionListItemType = {}));\nvar DetailedExecutionInfoType;\n(function (DetailedExecutionInfoType) {\n DetailedExecutionInfoType[\"MULTISIG\"] = \"MULTISIG\";\n DetailedExecutionInfoType[\"MODULE\"] = \"MODULE\";\n})(DetailedExecutionInfoType = exports.DetailedExecutionInfoType || (exports.DetailedExecutionInfoType = {}));\nvar DurationType;\n(function (DurationType) {\n DurationType[\"AUTO\"] = \"AUTO\";\n DurationType[\"LIMIT_DURATION\"] = \"LIMIT_DURATION\";\n})(DurationType = exports.DurationType || (exports.DurationType = {}));\nvar StartTimeValue;\n(function (StartTimeValue) {\n StartTimeValue[\"AT_MINING_TIME\"] = \"AT_MINING_TIME\";\n StartTimeValue[\"AT_EPOCH\"] = \"AT_EPOCH\";\n})(StartTimeValue = exports.StartTimeValue || (exports.StartTimeValue = {}));\nvar LabelValue;\n(function (LabelValue) {\n LabelValue[\"Queued\"] = \"Queued\";\n LabelValue[\"Next\"] = \"Next\";\n})(LabelValue = exports.LabelValue || (exports.LabelValue = {}));\n//# sourceMappingURL=transactions.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FEATURES = exports.GAS_PRICE_TYPE = exports.RPC_AUTHENTICATION = void 0;\nvar RPC_AUTHENTICATION;\n(function (RPC_AUTHENTICATION) {\n RPC_AUTHENTICATION[\"API_KEY_PATH\"] = \"API_KEY_PATH\";\n RPC_AUTHENTICATION[\"NO_AUTHENTICATION\"] = \"NO_AUTHENTICATION\";\n RPC_AUTHENTICATION[\"UNKNOWN\"] = \"UNKNOWN\";\n})(RPC_AUTHENTICATION = exports.RPC_AUTHENTICATION || (exports.RPC_AUTHENTICATION = {}));\nvar GAS_PRICE_TYPE;\n(function (GAS_PRICE_TYPE) {\n GAS_PRICE_TYPE[\"ORACLE\"] = \"ORACLE\";\n GAS_PRICE_TYPE[\"FIXED\"] = \"FIXED\";\n GAS_PRICE_TYPE[\"FIXED_1559\"] = \"FIXED1559\";\n GAS_PRICE_TYPE[\"UNKNOWN\"] = \"UNKNOWN\";\n})(GAS_PRICE_TYPE = exports.GAS_PRICE_TYPE || (exports.GAS_PRICE_TYPE = {}));\nvar FEATURES;\n(function (FEATURES) {\n FEATURES[\"ERC721\"] = \"ERC721\";\n FEATURES[\"SAFE_APPS\"] = \"SAFE_APPS\";\n FEATURES[\"CONTRACT_INTERACTION\"] = \"CONTRACT_INTERACTION\";\n FEATURES[\"DOMAIN_LOOKUP\"] = \"DOMAIN_LOOKUP\";\n FEATURES[\"SPENDING_LIMIT\"] = \"SPENDING_LIMIT\";\n FEATURES[\"EIP1559\"] = \"EIP1559\";\n FEATURES[\"SAFE_TX_GAS_OPTIONAL\"] = \"SAFE_TX_GAS_OPTIONAL\";\n FEATURES[\"TX_SIMULATION\"] = \"TX_SIMULATION\";\n FEATURES[\"EIP1271\"] = \"EIP1271\";\n})(FEATURES = exports.FEATURES || (exports.FEATURES = {}));\n//# sourceMappingURL=chains.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TokenType = void 0;\nvar TokenType;\n(function (TokenType) {\n TokenType[\"ERC20\"] = \"ERC20\";\n TokenType[\"ERC721\"] = \"ERC721\";\n TokenType[\"NATIVE_TOKEN\"] = \"NATIVE_TOKEN\";\n})(TokenType = exports.TokenType || (exports.TokenType = {}));\n//# sourceMappingURL=common.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=master-copies.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConfirmationViewTypes = void 0;\nvar ConfirmationViewTypes;\n(function (ConfirmationViewTypes) {\n ConfirmationViewTypes[\"COW_SWAP_ORDER\"] = \"COW_SWAP_ORDER\";\n ConfirmationViewTypes[\"COW_SWAP_TWAP_ORDER\"] = \"COW_SWAP_TWAP_ORDER\";\n})(ConfirmationViewTypes = exports.ConfirmationViewTypes || (exports.ConfirmationViewTypes = {}));\n//# sourceMappingURL=decoded-data.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SafeMessageStatus = exports.SafeMessageListItemType = void 0;\nvar SafeMessageListItemType;\n(function (SafeMessageListItemType) {\n SafeMessageListItemType[\"DATE_LABEL\"] = \"DATE_LABEL\";\n SafeMessageListItemType[\"MESSAGE\"] = \"MESSAGE\";\n})(SafeMessageListItemType = exports.SafeMessageListItemType || (exports.SafeMessageListItemType = {}));\nvar SafeMessageStatus;\n(function (SafeMessageStatus) {\n SafeMessageStatus[\"NEEDS_CONFIRMATION\"] = \"NEEDS_CONFIRMATION\";\n SafeMessageStatus[\"CONFIRMED\"] = \"CONFIRMED\";\n})(SafeMessageStatus = exports.SafeMessageStatus || (exports.SafeMessageStatus = {}));\n//# sourceMappingURL=safe-messages.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeviceType = void 0;\nvar DeviceType;\n(function (DeviceType) {\n DeviceType[\"ANDROID\"] = \"ANDROID\";\n DeviceType[\"IOS\"] = \"IOS\";\n DeviceType[\"WEB\"] = \"WEB\";\n})(DeviceType = exports.DeviceType || (exports.DeviceType = {}));\n//# sourceMappingURL=notifications.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=relay.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deleteAccount = exports.getAccount = exports.createAccount = exports.verifyAuth = exports.getAuthNonce = exports.getContract = exports.getSafeOverviews = exports.unsubscribeAll = exports.unsubscribeSingle = exports.registerRecoveryModule = exports.deleteRegisteredEmail = exports.getRegisteredEmail = exports.verifyEmail = exports.resendEmailVerificationCode = exports.changeEmail = exports.registerEmail = exports.unregisterDevice = exports.unregisterSafe = exports.registerDevice = exports.getDelegates = exports.confirmSafeMessage = exports.proposeSafeMessage = exports.getSafeMessage = exports.getSafeMessages = exports.getDecodedData = exports.getMasterCopies = exports.getSafeApps = exports.getChainConfig = exports.getChainsConfig = exports.getConfirmationView = exports.proposeTransaction = exports.getNonces = exports.postSafeGasEstimation = exports.deleteTransaction = exports.getTransactionDetails = exports.getTransactionQueue = exports.getTransactionHistory = exports.getCollectiblesPage = exports.getCollectibles = exports.getAllOwnedSafes = exports.getOwnedSafes = exports.getFiatCurrencies = exports.getBalances = exports.getMultisigTransactions = exports.getModuleTransactions = exports.getIncomingTransfers = exports.getSafeInfo = exports.getRelayCount = exports.relayTransaction = exports.setBaseUrl = void 0;\nexports.putAccountDataSettings = exports.getAccountDataSettings = exports.getAccountDataTypes = void 0;\nconst endpoint_1 = require(\"./endpoint\");\nconst config_1 = require(\"./config\");\n__exportStar(require(\"./types/safe-info\"), exports);\n__exportStar(require(\"./types/safe-apps\"), exports);\n__exportStar(require(\"./types/transactions\"), exports);\n__exportStar(require(\"./types/chains\"), exports);\n__exportStar(require(\"./types/common\"), exports);\n__exportStar(require(\"./types/master-copies\"), exports);\n__exportStar(require(\"./types/decoded-data\"), exports);\n__exportStar(require(\"./types/safe-messages\"), exports);\n__exportStar(require(\"./types/notifications\"), exports);\n__exportStar(require(\"./types/relay\"), exports);\n// Can be set externally to a different CGW host\nlet baseUrl = config_1.DEFAULT_BASE_URL;\n/**\n * Set the base CGW URL\n */\nconst setBaseUrl = (url) => {\n baseUrl = url;\n};\nexports.setBaseUrl = setBaseUrl;\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/**\n * Relay a transaction from a Safe\n */\nfunction relayTransaction(chainId, body) {\n return (0, endpoint_1.postEndpoint)(baseUrl, '/v1/chains/{chainId}/relay', { path: { chainId }, body });\n}\nexports.relayTransaction = relayTransaction;\n/**\n * Get the relay limit and number of remaining relays remaining\n */\nfunction getRelayCount(chainId, address) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/relay/{address}', { path: { chainId, address } });\n}\nexports.getRelayCount = getRelayCount;\n/**\n * Get basic information about a Safe. E.g. owners, modules, version etc\n */\nfunction getSafeInfo(chainId, address) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{address}', { path: { chainId, address } });\n}\nexports.getSafeInfo = getSafeInfo;\n/**\n * Get filterable list of incoming transactions\n */\nfunction getIncomingTransfers(chainId, address, query, pageUrl) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{address}/incoming-transfers/', {\n path: { chainId, address },\n query,\n }, pageUrl);\n}\nexports.getIncomingTransfers = getIncomingTransfers;\n/**\n * Get filterable list of module transactions\n */\nfunction getModuleTransactions(chainId, address, query, pageUrl) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{address}/module-transactions/', {\n path: { chainId, address },\n query,\n }, pageUrl);\n}\nexports.getModuleTransactions = getModuleTransactions;\n/**\n * Get filterable list of multisig transactions\n */\nfunction getMultisigTransactions(chainId, address, query, pageUrl) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{address}/multisig-transactions/', {\n path: { chainId, address },\n query,\n }, pageUrl);\n}\nexports.getMultisigTransactions = getMultisigTransactions;\n/**\n * Get the total balance and all assets stored in a Safe\n */\nfunction getBalances(chainId, address, currency = 'usd', query = {}) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{address}/balances/{currency}', {\n path: { chainId, address, currency },\n query,\n });\n}\nexports.getBalances = getBalances;\n/**\n * Get a list of supported fiat currencies (e.g. USD, EUR etc)\n */\nfunction getFiatCurrencies() {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/balances/supported-fiat-codes');\n}\nexports.getFiatCurrencies = getFiatCurrencies;\n/**\n * Get the addresses of all Safes belonging to an owner\n */\nfunction getOwnedSafes(chainId, address) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/owners/{address}/safes', { path: { chainId, address } });\n}\nexports.getOwnedSafes = getOwnedSafes;\n/**\n * Get the addresses of all Safes belonging to an owner on all chains\n */\nfunction getAllOwnedSafes(address) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/owners/{address}/safes', { path: { address } });\n}\nexports.getAllOwnedSafes = getAllOwnedSafes;\n/**\n * Get NFTs stored in a Safe\n */\nfunction getCollectibles(chainId, address, query = {}) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{address}/collectibles', {\n path: { chainId, address },\n query,\n });\n}\nexports.getCollectibles = getCollectibles;\n/**\n * Get NFTs stored in a Safe\n */\nfunction getCollectiblesPage(chainId, address, query = {}, pageUrl) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v2/chains/{chainId}/safes/{address}/collectibles', { path: { chainId, address }, query }, pageUrl);\n}\nexports.getCollectiblesPage = getCollectiblesPage;\n/**\n * Get a list of past Safe transactions\n */\nfunction getTransactionHistory(chainId, address, query = {}, pageUrl) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{safe_address}/transactions/history', { path: { chainId, safe_address: address }, query }, pageUrl);\n}\nexports.getTransactionHistory = getTransactionHistory;\n/**\n * Get the list of pending transactions\n */\nfunction getTransactionQueue(chainId, address, query = {}, pageUrl) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{safe_address}/transactions/queued', { path: { chainId, safe_address: address }, query }, pageUrl);\n}\nexports.getTransactionQueue = getTransactionQueue;\n/**\n * Get the details of an individual transaction by its id\n */\nfunction getTransactionDetails(chainId, transactionId) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/transactions/{transactionId}', {\n path: { chainId, transactionId },\n });\n}\nexports.getTransactionDetails = getTransactionDetails;\n/**\n * Delete a transaction by its safeTxHash\n */\nfunction deleteTransaction(chainId, safeTxHash, signature) {\n return (0, endpoint_1.deleteEndpoint)(baseUrl, '/v1/chains/{chainId}/transactions/{safeTxHash}', {\n path: { chainId, safeTxHash },\n body: { signature },\n });\n}\nexports.deleteTransaction = deleteTransaction;\n/**\n * Request a gas estimate & recommmended tx nonce for a created transaction\n */\nfunction postSafeGasEstimation(chainId, address, body) {\n return (0, endpoint_1.postEndpoint)(baseUrl, '/v2/chains/{chainId}/safes/{safe_address}/multisig-transactions/estimations', {\n path: { chainId, safe_address: address },\n body,\n });\n}\nexports.postSafeGasEstimation = postSafeGasEstimation;\nfunction getNonces(chainId, address) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{safe_address}/nonces', {\n path: { chainId, safe_address: address },\n });\n}\nexports.getNonces = getNonces;\n/**\n * Propose a new transaction for other owners to sign/execute\n */\nfunction proposeTransaction(chainId, address, body) {\n return (0, endpoint_1.postEndpoint)(baseUrl, '/v1/chains/{chainId}/transactions/{safe_address}/propose', {\n path: { chainId, safe_address: address },\n body,\n });\n}\nexports.proposeTransaction = proposeTransaction;\n/**\n * Returns decoded data\n */\nfunction getConfirmationView(chainId, safeAddress, encodedData, to) {\n return (0, endpoint_1.postEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{safe_address}/views/transaction-confirmation', {\n path: { chainId: chainId, safe_address: safeAddress },\n body: { data: encodedData, to },\n });\n}\nexports.getConfirmationView = getConfirmationView;\n/**\n * Returns all defined chain configs\n */\nfunction getChainsConfig(query) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains', {\n query,\n });\n}\nexports.getChainsConfig = getChainsConfig;\n/**\n * Returns a chain config\n */\nfunction getChainConfig(chainId) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}', {\n path: { chainId: chainId },\n });\n}\nexports.getChainConfig = getChainConfig;\n/**\n * Returns Safe Apps List\n */\nfunction getSafeApps(chainId, query = {}) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/safe-apps', {\n path: { chainId: chainId },\n query,\n });\n}\nexports.getSafeApps = getSafeApps;\n/**\n * Returns list of Master Copies\n */\nfunction getMasterCopies(chainId) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/about/master-copies', {\n path: { chainId: chainId },\n });\n}\nexports.getMasterCopies = getMasterCopies;\n/**\n * Returns decoded data\n */\nfunction getDecodedData(chainId, encodedData, to) {\n return (0, endpoint_1.postEndpoint)(baseUrl, '/v1/chains/{chainId}/data-decoder', {\n path: { chainId: chainId },\n body: { data: encodedData, to },\n });\n}\nexports.getDecodedData = getDecodedData;\n/**\n * Returns list of `SafeMessage`s\n */\nfunction getSafeMessages(chainId, address, pageUrl) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{safe_address}/messages', { path: { chainId, safe_address: address }, query: {} }, pageUrl);\n}\nexports.getSafeMessages = getSafeMessages;\n/**\n * Returns a `SafeMessage`\n */\nfunction getSafeMessage(chainId, messageHash) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/messages/{message_hash}', {\n path: { chainId, message_hash: messageHash },\n });\n}\nexports.getSafeMessage = getSafeMessage;\n/**\n * Propose a new `SafeMessage` for other owners to sign\n */\nfunction proposeSafeMessage(chainId, address, body) {\n return (0, endpoint_1.postEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{safe_address}/messages', {\n path: { chainId, safe_address: address },\n body,\n });\n}\nexports.proposeSafeMessage = proposeSafeMessage;\n/**\n * Add a confirmation to a `SafeMessage`\n */\nfunction confirmSafeMessage(chainId, messageHash, body) {\n return (0, endpoint_1.postEndpoint)(baseUrl, '/v1/chains/{chainId}/messages/{message_hash}/signatures', {\n path: { chainId, message_hash: messageHash },\n body,\n });\n}\nexports.confirmSafeMessage = confirmSafeMessage;\n/**\n * Returns a list of delegates\n */\nfunction getDelegates(chainId, query = {}) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v2/chains/{chainId}/delegates', {\n path: { chainId },\n query,\n });\n}\nexports.getDelegates = getDelegates;\n/**\n * Registers a device/Safe for notifications\n */\nfunction registerDevice(body) {\n return (0, endpoint_1.postEndpoint)(baseUrl, '/v1/register/notifications', {\n body,\n });\n}\nexports.registerDevice = registerDevice;\n/**\n * Unregisters a Safe from notifications\n */\nfunction unregisterSafe(chainId, address, uuid) {\n return (0, endpoint_1.deleteEndpoint)(baseUrl, '/v1/chains/{chainId}/notifications/devices/{uuid}/safes/{safe_address}', {\n path: { chainId, safe_address: address, uuid },\n });\n}\nexports.unregisterSafe = unregisterSafe;\n/**\n * Unregisters a device from notifications\n */\nfunction unregisterDevice(chainId, uuid) {\n return (0, endpoint_1.deleteEndpoint)(baseUrl, '/v1/chains/{chainId}/notifications/devices/{uuid}', {\n path: { chainId, uuid },\n });\n}\nexports.unregisterDevice = unregisterDevice;\n/**\n * Registers a email address for a safe signer.\n *\n * The signer wallet has to sign a message of format: `email-register-{chainId}-{safeAddress}-{emailAddress}-{signer}-{timestamp}`\n * The signature is valid for 5 minutes.\n *\n * @param chainId\n * @param safeAddress\n * @param body Signer address and email address\n * @param headers Signature and Signature timestamp\n * @returns 200 if signature matches the data\n */\nfunction registerEmail(chainId, safeAddress, body, headers) {\n return (0, endpoint_1.postEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{safe_address}/emails', {\n path: { chainId, safe_address: safeAddress },\n body,\n headers,\n });\n}\nexports.registerEmail = registerEmail;\n/**\n * Changes an already registered email address for a safe signer. The new email address still needs to be verified.\n *\n * The signer wallet has to sign a message of format: `email-edit-{chainId}-{safeAddress}-{emailAddress}-{signer}-{timestamp}`\n * The signature is valid for 5 minutes.\n *\n * @param chainId\n * @param safeAddress\n * @param signerAddress\n * @param body New email address\n * @param headers Signature and Signature timestamp\n * @returns 202 if signature matches the data\n */\nfunction changeEmail(chainId, safeAddress, signerAddress, body, headers) {\n return (0, endpoint_1.putEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{safe_address}/emails/{signer}', {\n path: { chainId, safe_address: safeAddress, signer: signerAddress },\n body,\n headers,\n });\n}\nexports.changeEmail = changeEmail;\n/**\n * Resends an email verification code.\n */\nfunction resendEmailVerificationCode(chainId, safeAddress, signerAddress) {\n return (0, endpoint_1.postEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{safe_address}/emails/{signer}/verify-resend', {\n path: { chainId, safe_address: safeAddress, signer: signerAddress },\n body: '',\n });\n}\nexports.resendEmailVerificationCode = resendEmailVerificationCode;\n/**\n * Verifies a pending email address registration.\n *\n * @param chainId\n * @param safeAddress\n * @param signerAddress address who signed the email registration\n * @param body Verification code\n */\nfunction verifyEmail(chainId, safeAddress, signerAddress, body) {\n return (0, endpoint_1.putEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{safe_address}/emails/{signer}/verify', {\n path: { chainId, safe_address: safeAddress, signer: signerAddress },\n body,\n });\n}\nexports.verifyEmail = verifyEmail;\n/**\n * Gets the registered email address of the signer\n *\n * The signer wallet will have to sign a message of format: `email-retrieval-{chainId}-{safe}-{signer}-{timestamp}`\n * The signature is valid for 5 minutes.\n *\n * @param chainId\n * @param safeAddress\n * @param signerAddress address of the owner of the Safe\n *\n * @returns email address and verified flag\n */\nfunction getRegisteredEmail(chainId, safeAddress, signerAddress, headers) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{safe_address}/emails/{signer}', {\n path: { chainId, safe_address: safeAddress, signer: signerAddress },\n headers,\n });\n}\nexports.getRegisteredEmail = getRegisteredEmail;\n/**\n * Delete a registered email address for the signer\n *\n * The signer wallet will have to sign a message of format: `email-delete-{chainId}-{safe}-{signer}-{timestamp}`\n * The signature is valid for 5 minutes.\n *\n * @param chainId\n * @param safeAddress\n * @param signerAddress\n * @param headers\n */\nfunction deleteRegisteredEmail(chainId, safeAddress, signerAddress, headers) {\n return (0, endpoint_1.deleteEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{safe_address}/emails/{signer}', {\n path: { chainId, safe_address: safeAddress, signer: signerAddress },\n headers,\n });\n}\nexports.deleteRegisteredEmail = deleteRegisteredEmail;\n/**\n * Register a recovery module for receiving alerts\n * @param chainId\n * @param safeAddress\n * @param body - { moduleAddress: string }\n */\nfunction registerRecoveryModule(chainId, safeAddress, body) {\n return (0, endpoint_1.postEndpoint)(baseUrl, '/v1/chains/{chainId}/safes/{safe_address}/recovery', {\n path: { chainId, safe_address: safeAddress },\n body,\n });\n}\nexports.registerRecoveryModule = registerRecoveryModule;\n/**\n * Delete email subscription for a single category\n * @param query\n */\nfunction unsubscribeSingle(query) {\n return (0, endpoint_1.deleteEndpoint)(baseUrl, '/v1/subscriptions', { query });\n}\nexports.unsubscribeSingle = unsubscribeSingle;\n/**\n * Delete email subscription for all categories\n * @param query\n */\nfunction unsubscribeAll(query) {\n return (0, endpoint_1.deleteEndpoint)(baseUrl, '/v1/subscriptions/all', { query });\n}\nexports.unsubscribeAll = unsubscribeAll;\n/**\n * Get Safe overviews per address\n */\nfunction getSafeOverviews(safes, query) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/safes', {\n query: Object.assign(Object.assign({}, query), { safes: safes.join(',') }),\n });\n}\nexports.getSafeOverviews = getSafeOverviews;\nfunction getContract(chainId, contractAddress) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/chains/{chainId}/contracts/{contractAddress}', {\n path: {\n chainId: chainId,\n contractAddress: contractAddress,\n },\n });\n}\nexports.getContract = getContract;\nfunction getAuthNonce() {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/auth/nonce', { credentials: 'include' });\n}\nexports.getAuthNonce = getAuthNonce;\nfunction verifyAuth(body) {\n return (0, endpoint_1.postEndpoint)(baseUrl, '/v1/auth/verify', {\n body,\n credentials: 'include',\n });\n}\nexports.verifyAuth = verifyAuth;\nfunction createAccount(body) {\n return (0, endpoint_1.postEndpoint)(baseUrl, '/v1/accounts', {\n body,\n credentials: 'include',\n });\n}\nexports.createAccount = createAccount;\nfunction getAccount(address) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/accounts/{address}', {\n path: { address },\n credentials: 'include',\n });\n}\nexports.getAccount = getAccount;\nfunction deleteAccount(address) {\n return (0, endpoint_1.deleteEndpoint)(baseUrl, '/v1/accounts/{address}', {\n path: { address },\n credentials: 'include',\n });\n}\nexports.deleteAccount = deleteAccount;\nfunction getAccountDataTypes() {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/accounts/data-types');\n}\nexports.getAccountDataTypes = getAccountDataTypes;\nfunction getAccountDataSettings(address) {\n return (0, endpoint_1.getEndpoint)(baseUrl, '/v1/accounts/{address}/data-settings', {\n path: { address },\n credentials: 'include',\n });\n}\nexports.getAccountDataSettings = getAccountDataSettings;\nfunction putAccountDataSettings(address, body) {\n return (0, endpoint_1.putEndpoint)(baseUrl, '/v1/accounts/{address}/data-settings', {\n path: { address },\n body,\n credentials: 'include',\n });\n}\nexports.putAccountDataSettings = putAccountDataSettings;\n/* eslint-enable @typescript-eslint/explicit-module-boundary-types */\n//# sourceMappingURL=index.js.map","export const getSDKVersion = () => '9.1.0';\n//# sourceMappingURL=version.js.map","// i.e. 0-255 -> '00'-'ff'\nconst dec2hex = (dec) => dec.toString(16).padStart(2, '0');\nconst generateId = (len) => {\n const arr = new Uint8Array((len || 40) / 2);\n window.crypto.getRandomValues(arr);\n return Array.from(arr, dec2hex).join('');\n};\nconst generateRequestId = () => {\n if (typeof window !== 'undefined') {\n return generateId(10);\n }\n return new Date().getTime().toString(36);\n};\nexport { generateRequestId };\n//# sourceMappingURL=utils.js.map","import { getSDKVersion } from '../version.js';\nimport { generateRequestId } from './utils.js';\nclass MessageFormatter {\n}\nMessageFormatter.makeRequest = (method, params) => {\n const id = generateRequestId();\n return {\n id,\n method,\n params,\n env: {\n sdkVersion: getSDKVersion(),\n },\n };\n};\nMessageFormatter.makeResponse = (id, data, version) => ({\n id,\n success: true,\n version,\n data,\n});\nMessageFormatter.makeErrorResponse = (id, error, version) => ({\n id,\n success: false,\n error,\n version,\n});\nexport { MessageFormatter };\n//# sourceMappingURL=messageFormatter.js.map","export var Methods;\n(function (Methods) {\n Methods[\"sendTransactions\"] = \"sendTransactions\";\n Methods[\"rpcCall\"] = \"rpcCall\";\n Methods[\"getChainInfo\"] = \"getChainInfo\";\n Methods[\"getSafeInfo\"] = \"getSafeInfo\";\n Methods[\"getTxBySafeTxHash\"] = \"getTxBySafeTxHash\";\n Methods[\"getSafeBalances\"] = \"getSafeBalances\";\n Methods[\"signMessage\"] = \"signMessage\";\n Methods[\"signTypedMessage\"] = \"signTypedMessage\";\n Methods[\"getEnvironmentInfo\"] = \"getEnvironmentInfo\";\n Methods[\"getOffChainSignature\"] = \"getOffChainSignature\";\n Methods[\"requestAddressBook\"] = \"requestAddressBook\";\n Methods[\"wallet_getPermissions\"] = \"wallet_getPermissions\";\n Methods[\"wallet_requestPermissions\"] = \"wallet_requestPermissions\";\n})(Methods || (Methods = {}));\nexport var RestrictedMethods;\n(function (RestrictedMethods) {\n RestrictedMethods[\"requestAddressBook\"] = \"requestAddressBook\";\n})(RestrictedMethods || (RestrictedMethods = {}));\n//# sourceMappingURL=methods.js.map","import { MessageFormatter } from './messageFormatter.js';\nclass PostMessageCommunicator {\n constructor(allowedOrigins = null, debugMode = false) {\n this.allowedOrigins = null;\n this.callbacks = new Map();\n this.debugMode = false;\n this.isServer = typeof window === 'undefined';\n this.isValidMessage = ({ origin, data, source }) => {\n const emptyOrMalformed = !data;\n const sentFromParentEl = !this.isServer && source === window.parent;\n const majorVersionNumber = typeof data.version !== 'undefined' && parseInt(data.version.split('.')[0]);\n const allowedSDKVersion = typeof majorVersionNumber === 'number' && majorVersionNumber >= 1;\n let validOrigin = true;\n if (Array.isArray(this.allowedOrigins)) {\n validOrigin = this.allowedOrigins.find((regExp) => regExp.test(origin)) !== undefined;\n }\n return !emptyOrMalformed && sentFromParentEl && allowedSDKVersion && validOrigin;\n };\n this.logIncomingMessage = (msg) => {\n console.info(`Safe Apps SDK v1: A message was received from origin ${msg.origin}. `, msg.data);\n };\n this.onParentMessage = (msg) => {\n if (this.isValidMessage(msg)) {\n this.debugMode && this.logIncomingMessage(msg);\n this.handleIncomingMessage(msg.data);\n }\n };\n this.handleIncomingMessage = (payload) => {\n const { id } = payload;\n const cb = this.callbacks.get(id);\n if (cb) {\n cb(payload);\n this.callbacks.delete(id);\n }\n };\n this.send = (method, params) => {\n const request = MessageFormatter.makeRequest(method, params);\n if (this.isServer) {\n throw new Error(\"Window doesn't exist\");\n }\n window.parent.postMessage(request, '*');\n return new Promise((resolve, reject) => {\n this.callbacks.set(request.id, (response) => {\n if (!response.success) {\n reject(new Error(response.error));\n return;\n }\n resolve(response);\n });\n });\n };\n this.allowedOrigins = allowedOrigins;\n this.debugMode = debugMode;\n if (!this.isServer) {\n window.addEventListener('message', this.onParentMessage);\n }\n }\n}\nexport default PostMessageCommunicator;\nexport * from './methods.js';\n//# sourceMappingURL=index.js.map","export const isObjectEIP712TypedData = (obj) => {\n return typeof obj === 'object' && obj != null && 'domain' in obj && 'types' in obj && 'message' in obj;\n};\n//# sourceMappingURL=sdk.js.map","import { Methods } from '../communication/methods.js';\nimport { isObjectEIP712TypedData, } from '../types/index.js';\nclass TXs {\n constructor(communicator) {\n this.communicator = communicator;\n }\n async getBySafeTxHash(safeTxHash) {\n if (!safeTxHash) {\n throw new Error('Invalid safeTxHash');\n }\n const response = await this.communicator.send(Methods.getTxBySafeTxHash, { safeTxHash });\n return response.data;\n }\n async signMessage(message) {\n const messagePayload = {\n message,\n };\n const response = await this.communicator.send(Methods.signMessage, messagePayload);\n return response.data;\n }\n async signTypedMessage(typedData) {\n if (!isObjectEIP712TypedData(typedData)) {\n throw new Error('Invalid typed data');\n }\n const response = await this.communicator.send(Methods.signTypedMessage, { typedData });\n return response.data;\n }\n async send({ txs, params }) {\n if (!txs || !txs.length) {\n throw new Error('No transactions were passed');\n }\n const messagePayload = {\n txs,\n params,\n };\n const response = await this.communicator.send(Methods.sendTransactions, messagePayload);\n return response.data;\n }\n}\nexport { TXs };\n//# sourceMappingURL=index.js.map","export const RPC_CALLS = {\n eth_call: 'eth_call',\n eth_gasPrice: 'eth_gasPrice',\n eth_getLogs: 'eth_getLogs',\n eth_getBalance: 'eth_getBalance',\n eth_getCode: 'eth_getCode',\n eth_getBlockByHash: 'eth_getBlockByHash',\n eth_getBlockByNumber: 'eth_getBlockByNumber',\n eth_getStorageAt: 'eth_getStorageAt',\n eth_getTransactionByHash: 'eth_getTransactionByHash',\n eth_getTransactionReceipt: 'eth_getTransactionReceipt',\n eth_getTransactionCount: 'eth_getTransactionCount',\n eth_estimateGas: 'eth_estimateGas',\n safe_setSettings: 'safe_setSettings',\n};\n//# sourceMappingURL=constants.js.map","import { RPC_CALLS } from '../eth/constants.js';\nimport { Methods } from '../communication/methods.js';\nconst inputFormatters = {\n defaultBlockParam: (arg = 'latest') => arg,\n returnFullTxObjectParam: (arg = false) => arg,\n blockNumberToHex: (arg) => Number.isInteger(arg) ? `0x${arg.toString(16)}` : arg,\n};\nclass Eth {\n constructor(communicator) {\n this.communicator = communicator;\n this.call = this.buildRequest({\n call: RPC_CALLS.eth_call,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getBalance = this.buildRequest({\n call: RPC_CALLS.eth_getBalance,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getCode = this.buildRequest({\n call: RPC_CALLS.eth_getCode,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getStorageAt = this.buildRequest({\n call: RPC_CALLS.eth_getStorageAt,\n formatters: [null, inputFormatters.blockNumberToHex, inputFormatters.defaultBlockParam],\n });\n this.getPastLogs = this.buildRequest({\n call: RPC_CALLS.eth_getLogs,\n });\n this.getBlockByHash = this.buildRequest({\n call: RPC_CALLS.eth_getBlockByHash,\n formatters: [null, inputFormatters.returnFullTxObjectParam],\n });\n this.getBlockByNumber = this.buildRequest({\n call: RPC_CALLS.eth_getBlockByNumber,\n formatters: [inputFormatters.blockNumberToHex, inputFormatters.returnFullTxObjectParam],\n });\n this.getTransactionByHash = this.buildRequest({\n call: RPC_CALLS.eth_getTransactionByHash,\n });\n this.getTransactionReceipt = this.buildRequest({\n call: RPC_CALLS.eth_getTransactionReceipt,\n });\n this.getTransactionCount = this.buildRequest({\n call: RPC_CALLS.eth_getTransactionCount,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getGasPrice = this.buildRequest({\n call: RPC_CALLS.eth_gasPrice,\n });\n this.getEstimateGas = (transaction) => this.buildRequest({\n call: RPC_CALLS.eth_estimateGas,\n })([transaction]);\n this.setSafeSettings = this.buildRequest({\n call: RPC_CALLS.safe_setSettings,\n });\n }\n buildRequest(args) {\n const { call, formatters } = args;\n return async (params) => {\n if (formatters && Array.isArray(params)) {\n formatters.forEach((formatter, i) => {\n if (formatter) {\n params[i] = formatter(params[i]);\n }\n });\n }\n const payload = {\n call,\n params: params || [],\n };\n const response = await this.communicator.send(Methods.rpcCall, payload);\n return response.data;\n };\n }\n}\nexport { Eth };\n//# sourceMappingURL=index.js.map","import { InvalidDefinitionTypeError, } from '../../errors/abi.js';\nexport function formatAbiItem(abiItem, { includeName = false } = {}) {\n if (abiItem.type !== 'function' &&\n abiItem.type !== 'event' &&\n abiItem.type !== 'error')\n throw new InvalidDefinitionTypeError(abiItem.type);\n return `${abiItem.name}(${formatAbiParams(abiItem.inputs, { includeName })})`;\n}\nexport function formatAbiParams(params, { includeName = false } = {}) {\n if (!params)\n return '';\n return params\n .map((param) => formatAbiParam(param, { includeName }))\n .join(includeName ? ', ' : ',');\n}\nfunction formatAbiParam(param, { includeName }) {\n if (param.type.startsWith('tuple')) {\n return `(${formatAbiParams(param.components, { includeName })})${param.type.slice('tuple'.length)}`;\n }\n return param.type + (includeName && param.name ? ` ${param.name}` : '');\n}\n//# sourceMappingURL=formatAbiItem.js.map","export function isHex(value, { strict = true } = {}) {\n if (!value)\n return false;\n if (typeof value !== 'string')\n return false;\n return strict ? /^0x[0-9a-fA-F]*$/.test(value) : value.startsWith('0x');\n}\n//# sourceMappingURL=isHex.js.map","import { isHex } from './isHex.js';\n/**\n * @description Retrieves the size of the value (in bytes).\n *\n * @param value The value (hex or byte array) to retrieve the size of.\n * @returns The size of the value (in bytes).\n */\nexport function size(value) {\n if (isHex(value, { strict: false }))\n return Math.ceil((value.length - 2) / 2);\n return value.length;\n}\n//# sourceMappingURL=size.js.map","export const version = '2.21.34';\n//# sourceMappingURL=version.js.map","import { version } from './version.js';\nlet errorConfig = {\n getDocsUrl: ({ docsBaseUrl, docsPath = '', docsSlug, }) => docsPath\n ? `${docsBaseUrl ?? 'https://viem.sh'}${docsPath}${docsSlug ? `#${docsSlug}` : ''}`\n : undefined,\n version: `viem@${version}`,\n};\nexport function setErrorConfig(config) {\n errorConfig = config;\n}\nexport class BaseError extends Error {\n constructor(shortMessage, args = {}) {\n const details = (() => {\n if (args.cause instanceof BaseError)\n return args.cause.details;\n if (args.cause?.message)\n return args.cause.message;\n return args.details;\n })();\n const docsPath = (() => {\n if (args.cause instanceof BaseError)\n return args.cause.docsPath || args.docsPath;\n return args.docsPath;\n })();\n const docsUrl = errorConfig.getDocsUrl?.({ ...args, docsPath });\n const message = [\n shortMessage || 'An error occurred.',\n '',\n ...(args.metaMessages ? [...args.metaMessages, ''] : []),\n ...(docsUrl ? [`Docs: ${docsUrl}`] : []),\n ...(details ? [`Details: ${details}`] : []),\n ...(errorConfig.version ? [`Version: ${errorConfig.version}`] : []),\n ].join('\\n');\n super(message, args.cause ? { cause: args.cause } : undefined);\n Object.defineProperty(this, \"details\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"docsPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"metaMessages\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"shortMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'BaseError'\n });\n this.details = details;\n this.docsPath = docsPath;\n this.metaMessages = args.metaMessages;\n this.name = args.name ?? this.name;\n this.shortMessage = shortMessage;\n this.version = version;\n }\n walk(fn) {\n return walk(this, fn);\n }\n}\nfunction walk(err, fn) {\n if (fn?.(err))\n return err;\n if (err && typeof err === 'object' && 'cause' in err)\n return walk(err.cause, fn);\n return fn ? null : err;\n}\n//# sourceMappingURL=base.js.map","import { formatAbiItem, formatAbiParams } from '../utils/abi/formatAbiItem.js';\nimport { size } from '../utils/data/size.js';\nimport { BaseError } from './base.js';\nexport class AbiConstructorNotFoundError extends BaseError {\n constructor({ docsPath }) {\n super([\n 'A constructor was not found on the ABI.',\n 'Make sure you are using the correct ABI and that the constructor exists on it.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiConstructorNotFoundError',\n });\n }\n}\nexport class AbiConstructorParamsNotFoundError extends BaseError {\n constructor({ docsPath }) {\n super([\n 'Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.',\n 'Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiConstructorParamsNotFoundError',\n });\n }\n}\nexport class AbiDecodingDataSizeInvalidError extends BaseError {\n constructor({ data, size }) {\n super([\n `Data size of ${size} bytes is invalid.`,\n 'Size must be in increments of 32 bytes (size % 32 === 0).',\n ].join('\\n'), {\n metaMessages: [`Data: ${data} (${size} bytes)`],\n name: 'AbiDecodingDataSizeInvalidError',\n });\n }\n}\nexport class AbiDecodingDataSizeTooSmallError extends BaseError {\n constructor({ data, params, size, }) {\n super([`Data size of ${size} bytes is too small for given parameters.`].join('\\n'), {\n metaMessages: [\n `Params: (${formatAbiParams(params, { includeName: true })})`,\n `Data: ${data} (${size} bytes)`,\n ],\n name: 'AbiDecodingDataSizeTooSmallError',\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"params\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"size\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.data = data;\n this.params = params;\n this.size = size;\n }\n}\nexport class AbiDecodingZeroDataError extends BaseError {\n constructor() {\n super('Cannot decode zero data (\"0x\") with ABI parameters.', {\n name: 'AbiDecodingZeroDataError',\n });\n }\n}\nexport class AbiEncodingArrayLengthMismatchError extends BaseError {\n constructor({ expectedLength, givenLength, type, }) {\n super([\n `ABI encoding array length mismatch for type ${type}.`,\n `Expected length: ${expectedLength}`,\n `Given length: ${givenLength}`,\n ].join('\\n'), { name: 'AbiEncodingArrayLengthMismatchError' });\n }\n}\nexport class AbiEncodingBytesSizeMismatchError extends BaseError {\n constructor({ expectedSize, value }) {\n super(`Size of bytes \"${value}\" (bytes${size(value)}) does not match expected size (bytes${expectedSize}).`, { name: 'AbiEncodingBytesSizeMismatchError' });\n }\n}\nexport class AbiEncodingLengthMismatchError extends BaseError {\n constructor({ expectedLength, givenLength, }) {\n super([\n 'ABI encoding params/values length mismatch.',\n `Expected length (params): ${expectedLength}`,\n `Given length (values): ${givenLength}`,\n ].join('\\n'), { name: 'AbiEncodingLengthMismatchError' });\n }\n}\nexport class AbiErrorInputsNotFoundError extends BaseError {\n constructor(errorName, { docsPath }) {\n super([\n `Arguments (\\`args\\`) were provided to \"${errorName}\", but \"${errorName}\" on the ABI does not contain any parameters (\\`inputs\\`).`,\n 'Cannot encode error result without knowing what the parameter types are.',\n 'Make sure you are using the correct ABI and that the inputs exist on it.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiErrorInputsNotFoundError',\n });\n }\n}\nexport class AbiErrorNotFoundError extends BaseError {\n constructor(errorName, { docsPath } = {}) {\n super([\n `Error ${errorName ? `\"${errorName}\" ` : ''}not found on ABI.`,\n 'Make sure you are using the correct ABI and that the error exists on it.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiErrorNotFoundError',\n });\n }\n}\nexport class AbiErrorSignatureNotFoundError extends BaseError {\n constructor(signature, { docsPath }) {\n super([\n `Encoded error signature \"${signature}\" not found on ABI.`,\n 'Make sure you are using the correct ABI and that the error exists on it.',\n `You can look up the decoded signature here: https://openchain.xyz/signatures?query=${signature}.`,\n ].join('\\n'), {\n docsPath,\n name: 'AbiErrorSignatureNotFoundError',\n });\n Object.defineProperty(this, \"signature\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.signature = signature;\n }\n}\nexport class AbiEventSignatureEmptyTopicsError extends BaseError {\n constructor({ docsPath }) {\n super('Cannot extract event signature from empty topics.', {\n docsPath,\n name: 'AbiEventSignatureEmptyTopicsError',\n });\n }\n}\nexport class AbiEventSignatureNotFoundError extends BaseError {\n constructor(signature, { docsPath }) {\n super([\n `Encoded event signature \"${signature}\" not found on ABI.`,\n 'Make sure you are using the correct ABI and that the event exists on it.',\n `You can look up the signature here: https://openchain.xyz/signatures?query=${signature}.`,\n ].join('\\n'), {\n docsPath,\n name: 'AbiEventSignatureNotFoundError',\n });\n }\n}\nexport class AbiEventNotFoundError extends BaseError {\n constructor(eventName, { docsPath } = {}) {\n super([\n `Event ${eventName ? `\"${eventName}\" ` : ''}not found on ABI.`,\n 'Make sure you are using the correct ABI and that the event exists on it.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiEventNotFoundError',\n });\n }\n}\nexport class AbiFunctionNotFoundError extends BaseError {\n constructor(functionName, { docsPath } = {}) {\n super([\n `Function ${functionName ? `\"${functionName}\" ` : ''}not found on ABI.`,\n 'Make sure you are using the correct ABI and that the function exists on it.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiFunctionNotFoundError',\n });\n }\n}\nexport class AbiFunctionOutputsNotFoundError extends BaseError {\n constructor(functionName, { docsPath }) {\n super([\n `Function \"${functionName}\" does not contain any \\`outputs\\` on ABI.`,\n 'Cannot decode function result without knowing what the parameter types are.',\n 'Make sure you are using the correct ABI and that the function exists on it.',\n ].join('\\n'), {\n docsPath,\n name: 'AbiFunctionOutputsNotFoundError',\n });\n }\n}\nexport class AbiFunctionSignatureNotFoundError extends BaseError {\n constructor(signature, { docsPath }) {\n super([\n `Encoded function signature \"${signature}\" not found on ABI.`,\n 'Make sure you are using the correct ABI and that the function exists on it.',\n `You can look up the signature here: https://openchain.xyz/signatures?query=${signature}.`,\n ].join('\\n'), {\n docsPath,\n name: 'AbiFunctionSignatureNotFoundError',\n });\n }\n}\nexport class AbiItemAmbiguityError extends BaseError {\n constructor(x, y) {\n super('Found ambiguous types in overloaded ABI items.', {\n metaMessages: [\n `\\`${x.type}\\` in \\`${formatAbiItem(x.abiItem)}\\`, and`,\n `\\`${y.type}\\` in \\`${formatAbiItem(y.abiItem)}\\``,\n '',\n 'These types encode differently and cannot be distinguished at runtime.',\n 'Remove one of the ambiguous items in the ABI.',\n ],\n name: 'AbiItemAmbiguityError',\n });\n }\n}\nexport class BytesSizeMismatchError extends BaseError {\n constructor({ expectedSize, givenSize, }) {\n super(`Expected bytes${expectedSize}, got bytes${givenSize}.`, {\n name: 'BytesSizeMismatchError',\n });\n }\n}\nexport class DecodeLogDataMismatch extends BaseError {\n constructor({ abiItem, data, params, size, }) {\n super([\n `Data size of ${size} bytes is too small for non-indexed event parameters.`,\n ].join('\\n'), {\n metaMessages: [\n `Params: (${formatAbiParams(params, { includeName: true })})`,\n `Data: ${data} (${size} bytes)`,\n ],\n name: 'DecodeLogDataMismatch',\n });\n Object.defineProperty(this, \"abiItem\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"params\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"size\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.abiItem = abiItem;\n this.data = data;\n this.params = params;\n this.size = size;\n }\n}\nexport class DecodeLogTopicsMismatch extends BaseError {\n constructor({ abiItem, param, }) {\n super([\n `Expected a topic for indexed event parameter${param.name ? ` \"${param.name}\"` : ''} on event \"${formatAbiItem(abiItem, { includeName: true })}\".`,\n ].join('\\n'), { name: 'DecodeLogTopicsMismatch' });\n Object.defineProperty(this, \"abiItem\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.abiItem = abiItem;\n }\n}\nexport class InvalidAbiEncodingTypeError extends BaseError {\n constructor(type, { docsPath }) {\n super([\n `Type \"${type}\" is not a valid encoding type.`,\n 'Please provide a valid ABI type.',\n ].join('\\n'), { docsPath, name: 'InvalidAbiEncodingType' });\n }\n}\nexport class InvalidAbiDecodingTypeError extends BaseError {\n constructor(type, { docsPath }) {\n super([\n `Type \"${type}\" is not a valid decoding type.`,\n 'Please provide a valid ABI type.',\n ].join('\\n'), { docsPath, name: 'InvalidAbiDecodingType' });\n }\n}\nexport class InvalidArrayError extends BaseError {\n constructor(value) {\n super([`Value \"${value}\" is not a valid array.`].join('\\n'), {\n name: 'InvalidArrayError',\n });\n }\n}\nexport class InvalidDefinitionTypeError extends BaseError {\n constructor(type) {\n super([\n `\"${type}\" is not a valid definition type.`,\n 'Valid types: \"function\", \"event\", \"error\"',\n ].join('\\n'), { name: 'InvalidDefinitionTypeError' });\n }\n}\nexport class UnsupportedPackedAbiType extends BaseError {\n constructor(type) {\n super(`Type \"${type}\" is not supported for packed encoding.`, {\n name: 'UnsupportedPackedAbiType',\n });\n }\n}\n//# sourceMappingURL=abi.js.map","import { BaseError } from './base.js';\nexport class SliceOffsetOutOfBoundsError extends BaseError {\n constructor({ offset, position, size, }) {\n super(`Slice ${position === 'start' ? 'starting' : 'ending'} at offset \"${offset}\" is out-of-bounds (size: ${size}).`, { name: 'SliceOffsetOutOfBoundsError' });\n }\n}\nexport class SizeExceedsPaddingSizeError extends BaseError {\n constructor({ size, targetSize, type, }) {\n super(`${type.charAt(0).toUpperCase()}${type\n .slice(1)\n .toLowerCase()} size (${size}) exceeds padding size (${targetSize}).`, { name: 'SizeExceedsPaddingSizeError' });\n }\n}\nexport class InvalidBytesLengthError extends BaseError {\n constructor({ size, targetSize, type, }) {\n super(`${type.charAt(0).toUpperCase()}${type\n .slice(1)\n .toLowerCase()} is expected to be ${targetSize} ${type} long, but is ${size} ${type} long.`, { name: 'InvalidBytesLengthError' });\n }\n}\n//# sourceMappingURL=data.js.map","import { SizeExceedsPaddingSizeError, } from '../../errors/data.js';\nexport function pad(hexOrBytes, { dir, size = 32 } = {}) {\n if (typeof hexOrBytes === 'string')\n return padHex(hexOrBytes, { dir, size });\n return padBytes(hexOrBytes, { dir, size });\n}\nexport function padHex(hex_, { dir, size = 32 } = {}) {\n if (size === null)\n return hex_;\n const hex = hex_.replace('0x', '');\n if (hex.length > size * 2)\n throw new SizeExceedsPaddingSizeError({\n size: Math.ceil(hex.length / 2),\n targetSize: size,\n type: 'hex',\n });\n return `0x${hex[dir === 'right' ? 'padEnd' : 'padStart'](size * 2, '0')}`;\n}\nexport function padBytes(bytes, { dir, size = 32 } = {}) {\n if (size === null)\n return bytes;\n if (bytes.length > size)\n throw new SizeExceedsPaddingSizeError({\n size: bytes.length,\n targetSize: size,\n type: 'bytes',\n });\n const paddedBytes = new Uint8Array(size);\n for (let i = 0; i < size; i++) {\n const padEnd = dir === 'right';\n paddedBytes[padEnd ? i : size - i - 1] =\n bytes[padEnd ? i : bytes.length - i - 1];\n }\n return paddedBytes;\n}\n//# sourceMappingURL=pad.js.map","import { BaseError } from './base.js';\nexport class IntegerOutOfRangeError extends BaseError {\n constructor({ max, min, signed, size, value, }) {\n super(`Number \"${value}\" is not in safe ${size ? `${size * 8}-bit ${signed ? 'signed' : 'unsigned'} ` : ''}integer range ${max ? `(${min} to ${max})` : `(above ${min})`}`, { name: 'IntegerOutOfRangeError' });\n }\n}\nexport class InvalidBytesBooleanError extends BaseError {\n constructor(bytes) {\n super(`Bytes value \"${bytes}\" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`, {\n name: 'InvalidBytesBooleanError',\n });\n }\n}\nexport class InvalidHexBooleanError extends BaseError {\n constructor(hex) {\n super(`Hex value \"${hex}\" is not a valid boolean. The hex value must be \"0x0\" (false) or \"0x1\" (true).`, { name: 'InvalidHexBooleanError' });\n }\n}\nexport class InvalidHexValueError extends BaseError {\n constructor(value) {\n super(`Hex value \"${value}\" is an odd length (${value.length}). It must be an even length.`, { name: 'InvalidHexValueError' });\n }\n}\nexport class SizeOverflowError extends BaseError {\n constructor({ givenSize, maxSize }) {\n super(`Size cannot exceed ${maxSize} bytes. Given size: ${givenSize} bytes.`, { name: 'SizeOverflowError' });\n }\n}\n//# sourceMappingURL=encoding.js.map","import { InvalidHexBooleanError, SizeOverflowError, } from '../../errors/encoding.js';\nimport { size as size_ } from '../data/size.js';\nimport { trim } from '../data/trim.js';\nimport { hexToBytes } from './toBytes.js';\nexport function assertSize(hexOrBytes, { size }) {\n if (size_(hexOrBytes) > size)\n throw new SizeOverflowError({\n givenSize: size_(hexOrBytes),\n maxSize: size,\n });\n}\n/**\n * Decodes a hex string into a string, number, bigint, boolean, or byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex\n * - Example: https://viem.sh/docs/utilities/fromHex#usage\n *\n * @param hex Hex string to decode.\n * @param toOrOpts Type to convert to or options.\n * @returns Decoded value.\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x1a4', 'number')\n * // 420\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x48656c6c6f20576f726c6421', 'string')\n * // 'Hello world'\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {\n * size: 32,\n * to: 'string'\n * })\n * // 'Hello world'\n */\nexport function fromHex(hex, toOrOpts) {\n const opts = typeof toOrOpts === 'string' ? { to: toOrOpts } : toOrOpts;\n const to = opts.to;\n if (to === 'number')\n return hexToNumber(hex, opts);\n if (to === 'bigint')\n return hexToBigInt(hex, opts);\n if (to === 'string')\n return hexToString(hex, opts);\n if (to === 'boolean')\n return hexToBool(hex, opts);\n return hexToBytes(hex, opts);\n}\n/**\n * Decodes a hex value into a bigint.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextobigint\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns BigInt value.\n *\n * @example\n * import { hexToBigInt } from 'viem'\n * const data = hexToBigInt('0x1a4', { signed: true })\n * // 420n\n *\n * @example\n * import { hexToBigInt } from 'viem'\n * const data = hexToBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // 420n\n */\nexport function hexToBigInt(hex, opts = {}) {\n const { signed } = opts;\n if (opts.size)\n assertSize(hex, { size: opts.size });\n const value = BigInt(hex);\n if (!signed)\n return value;\n const size = (hex.length - 2) / 2;\n const max = (1n << (BigInt(size) * 8n - 1n)) - 1n;\n if (value <= max)\n return value;\n return value - BigInt(`0x${'f'.padStart(size * 2, 'f')}`) - 1n;\n}\n/**\n * Decodes a hex value into a boolean.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextobool\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns Boolean value.\n *\n * @example\n * import { hexToBool } from 'viem'\n * const data = hexToBool('0x01')\n * // true\n *\n * @example\n * import { hexToBool } from 'viem'\n * const data = hexToBool('0x0000000000000000000000000000000000000000000000000000000000000001', { size: 32 })\n * // true\n */\nexport function hexToBool(hex_, opts = {}) {\n let hex = hex_;\n if (opts.size) {\n assertSize(hex, { size: opts.size });\n hex = trim(hex);\n }\n if (trim(hex) === '0x00')\n return false;\n if (trim(hex) === '0x01')\n return true;\n throw new InvalidHexBooleanError(hex);\n}\n/**\n * Decodes a hex string into a number.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextonumber\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns Number value.\n *\n * @example\n * import { hexToNumber } from 'viem'\n * const data = hexToNumber('0x1a4')\n * // 420\n *\n * @example\n * import { hexToNumber } from 'viem'\n * const data = hexToBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // 420\n */\nexport function hexToNumber(hex, opts = {}) {\n return Number(hexToBigInt(hex, opts));\n}\n/**\n * Decodes a hex value into a UTF-8 string.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextostring\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns String value.\n *\n * @example\n * import { hexToString } from 'viem'\n * const data = hexToString('0x48656c6c6f20576f726c6421')\n * // 'Hello world!'\n *\n * @example\n * import { hexToString } from 'viem'\n * const data = hexToString('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {\n * size: 32,\n * })\n * // 'Hello world'\n */\nexport function hexToString(hex, opts = {}) {\n let bytes = hexToBytes(hex);\n if (opts.size) {\n assertSize(bytes, { size: opts.size });\n bytes = trim(bytes, { dir: 'right' });\n }\n return new TextDecoder().decode(bytes);\n}\n//# sourceMappingURL=fromHex.js.map","import { IntegerOutOfRangeError, } from '../../errors/encoding.js';\nimport { pad } from '../data/pad.js';\nimport { assertSize } from './fromHex.js';\nconst hexes = /*#__PURE__*/ Array.from({ length: 256 }, (_v, i) => i.toString(16).padStart(2, '0'));\n/**\n * Encodes a string, number, bigint, or ByteArray into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex\n * - Example: https://viem.sh/docs/utilities/toHex#usage\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex('Hello world')\n * // '0x48656c6c6f20776f726c6421'\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex(420)\n * // '0x1a4'\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex('Hello world', { size: 32 })\n * // '0x48656c6c6f20776f726c64210000000000000000000000000000000000000000'\n */\nexport function toHex(value, opts = {}) {\n if (typeof value === 'number' || typeof value === 'bigint')\n return numberToHex(value, opts);\n if (typeof value === 'string') {\n return stringToHex(value, opts);\n }\n if (typeof value === 'boolean')\n return boolToHex(value, opts);\n return bytesToHex(value, opts);\n}\n/**\n * Encodes a boolean into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#booltohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(true)\n * // '0x1'\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(false)\n * // '0x0'\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(true, { size: 32 })\n * // '0x0000000000000000000000000000000000000000000000000000000000000001'\n */\nexport function boolToHex(value, opts = {}) {\n const hex = `0x${Number(value)}`;\n if (typeof opts.size === 'number') {\n assertSize(hex, { size: opts.size });\n return pad(hex, { size: opts.size });\n }\n return hex;\n}\n/**\n * Encodes a bytes array into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#bytestohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { bytesToHex } from 'viem'\n * const data = bytesToHex(Uint8Array.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n * // '0x48656c6c6f20576f726c6421'\n *\n * @example\n * import { bytesToHex } from 'viem'\n * const data = bytesToHex(Uint8Array.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]), { size: 32 })\n * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\n */\nexport function bytesToHex(value, opts = {}) {\n let string = '';\n for (let i = 0; i < value.length; i++) {\n string += hexes[value[i]];\n }\n const hex = `0x${string}`;\n if (typeof opts.size === 'number') {\n assertSize(hex, { size: opts.size });\n return pad(hex, { dir: 'right', size: opts.size });\n }\n return hex;\n}\n/**\n * Encodes a number or bigint into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#numbertohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { numberToHex } from 'viem'\n * const data = numberToHex(420)\n * // '0x1a4'\n *\n * @example\n * import { numberToHex } from 'viem'\n * const data = numberToHex(420, { size: 32 })\n * // '0x00000000000000000000000000000000000000000000000000000000000001a4'\n */\nexport function numberToHex(value_, opts = {}) {\n const { signed, size } = opts;\n const value = BigInt(value_);\n let maxValue;\n if (size) {\n if (signed)\n maxValue = (1n << (BigInt(size) * 8n - 1n)) - 1n;\n else\n maxValue = 2n ** (BigInt(size) * 8n) - 1n;\n }\n else if (typeof value_ === 'number') {\n maxValue = BigInt(Number.MAX_SAFE_INTEGER);\n }\n const minValue = typeof maxValue === 'bigint' && signed ? -maxValue - 1n : 0;\n if ((maxValue && value > maxValue) || value < minValue) {\n const suffix = typeof value_ === 'bigint' ? 'n' : '';\n throw new IntegerOutOfRangeError({\n max: maxValue ? `${maxValue}${suffix}` : undefined,\n min: `${minValue}${suffix}`,\n signed,\n size,\n value: `${value_}${suffix}`,\n });\n }\n const hex = `0x${(signed && value < 0 ? (1n << BigInt(size * 8)) + BigInt(value) : value).toString(16)}`;\n if (size)\n return pad(hex, { size });\n return hex;\n}\nconst encoder = /*#__PURE__*/ new TextEncoder();\n/**\n * Encodes a UTF-8 string into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#stringtohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { stringToHex } from 'viem'\n * const data = stringToHex('Hello World!')\n * // '0x48656c6c6f20576f726c6421'\n *\n * @example\n * import { stringToHex } from 'viem'\n * const data = stringToHex('Hello World!', { size: 32 })\n * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\n */\nexport function stringToHex(value_, opts = {}) {\n const value = encoder.encode(value_);\n return bytesToHex(value, opts);\n}\n//# sourceMappingURL=toHex.js.map","import { BaseError } from '../../errors/base.js';\nimport { isHex } from '../data/isHex.js';\nimport { pad } from '../data/pad.js';\nimport { assertSize } from './fromHex.js';\nimport { numberToHex, } from './toHex.js';\nconst encoder = /*#__PURE__*/ new TextEncoder();\n/**\n * Encodes a UTF-8 string, hex value, bigint, number or boolean to a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes\n * - Example: https://viem.sh/docs/utilities/toBytes#usage\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes('Hello world')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes(420)\n * // Uint8Array([1, 164])\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes(420, { size: 4 })\n * // Uint8Array([0, 0, 1, 164])\n */\nexport function toBytes(value, opts = {}) {\n if (typeof value === 'number' || typeof value === 'bigint')\n return numberToBytes(value, opts);\n if (typeof value === 'boolean')\n return boolToBytes(value, opts);\n if (isHex(value))\n return hexToBytes(value, opts);\n return stringToBytes(value, opts);\n}\n/**\n * Encodes a boolean into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#booltobytes\n *\n * @param value Boolean value to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { boolToBytes } from 'viem'\n * const data = boolToBytes(true)\n * // Uint8Array([1])\n *\n * @example\n * import { boolToBytes } from 'viem'\n * const data = boolToBytes(true, { size: 32 })\n * // Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1])\n */\nexport function boolToBytes(value, opts = {}) {\n const bytes = new Uint8Array(1);\n bytes[0] = Number(value);\n if (typeof opts.size === 'number') {\n assertSize(bytes, { size: opts.size });\n return pad(bytes, { size: opts.size });\n }\n return bytes;\n}\n// We use very optimized technique to convert hex string to byte array\nconst charCodeMap = {\n zero: 48,\n nine: 57,\n A: 65,\n F: 70,\n a: 97,\n f: 102,\n};\nfunction charCodeToBase16(char) {\n if (char >= charCodeMap.zero && char <= charCodeMap.nine)\n return char - charCodeMap.zero;\n if (char >= charCodeMap.A && char <= charCodeMap.F)\n return char - (charCodeMap.A - 10);\n if (char >= charCodeMap.a && char <= charCodeMap.f)\n return char - (charCodeMap.a - 10);\n return undefined;\n}\n/**\n * Encodes a hex string into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#hextobytes\n *\n * @param hex Hex string to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { hexToBytes } from 'viem'\n * const data = hexToBytes('0x48656c6c6f20776f726c6421')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n *\n * @example\n * import { hexToBytes } from 'viem'\n * const data = hexToBytes('0x48656c6c6f20776f726c6421', { size: 32 })\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n */\nexport function hexToBytes(hex_, opts = {}) {\n let hex = hex_;\n if (opts.size) {\n assertSize(hex, { size: opts.size });\n hex = pad(hex, { dir: 'right', size: opts.size });\n }\n let hexString = hex.slice(2);\n if (hexString.length % 2)\n hexString = `0${hexString}`;\n const length = hexString.length / 2;\n const bytes = new Uint8Array(length);\n for (let index = 0, j = 0; index < length; index++) {\n const nibbleLeft = charCodeToBase16(hexString.charCodeAt(j++));\n const nibbleRight = charCodeToBase16(hexString.charCodeAt(j++));\n if (nibbleLeft === undefined || nibbleRight === undefined) {\n throw new BaseError(`Invalid byte sequence (\"${hexString[j - 2]}${hexString[j - 1]}\" in \"${hexString}\").`);\n }\n bytes[index] = nibbleLeft * 16 + nibbleRight;\n }\n return bytes;\n}\n/**\n * Encodes a number into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#numbertobytes\n *\n * @param value Number to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { numberToBytes } from 'viem'\n * const data = numberToBytes(420)\n * // Uint8Array([1, 164])\n *\n * @example\n * import { numberToBytes } from 'viem'\n * const data = numberToBytes(420, { size: 4 })\n * // Uint8Array([0, 0, 1, 164])\n */\nexport function numberToBytes(value, opts) {\n const hex = numberToHex(value, opts);\n return hexToBytes(hex);\n}\n/**\n * Encodes a UTF-8 string into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#stringtobytes\n *\n * @param value String to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { stringToBytes } from 'viem'\n * const data = stringToBytes('Hello world!')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 33])\n *\n * @example\n * import { stringToBytes } from 'viem'\n * const data = stringToBytes('Hello world!', { size: 32 })\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n */\nexport function stringToBytes(value, opts = {}) {\n const bytes = encoder.encode(value);\n if (typeof opts.size === 'number') {\n assertSize(bytes, { size: opts.size });\n return pad(bytes, { dir: 'right', size: opts.size });\n }\n return bytes;\n}\n//# sourceMappingURL=toBytes.js.map","import { keccak_256 } from '@noble/hashes/sha3';\nimport { isHex } from '../data/isHex.js';\nimport { toBytes } from '../encoding/toBytes.js';\nimport { toHex } from '../encoding/toHex.js';\nexport function keccak256(value, to_) {\n const to = to_ || 'hex';\n const bytes = keccak_256(isHex(value, { strict: false }) ? toBytes(value) : value);\n if (to === 'bytes')\n return bytes;\n return toHex(bytes);\n}\n//# sourceMappingURL=keccak256.js.map","import { toBytes } from '../encoding/toBytes.js';\nimport { keccak256 } from './keccak256.js';\nconst hash = (value) => keccak256(toBytes(value));\nexport function hashSignature(sig) {\n return hash(sig);\n}\n//# sourceMappingURL=hashSignature.js.map","import { BaseError } from '../../errors/base.js';\nexport function normalizeSignature(signature) {\n let active = true;\n let current = '';\n let level = 0;\n let result = '';\n let valid = false;\n for (let i = 0; i < signature.length; i++) {\n const char = signature[i];\n // If the character is a separator, we want to reactivate.\n if (['(', ')', ','].includes(char))\n active = true;\n // If the character is a \"level\" token, we want to increment/decrement.\n if (char === '(')\n level++;\n if (char === ')')\n level--;\n // If we aren't active, we don't want to mutate the result.\n if (!active)\n continue;\n // If level === 0, we are at the definition level.\n if (level === 0) {\n if (char === ' ' && ['event', 'function', ''].includes(result))\n result = '';\n else {\n result += char;\n // If we are at the end of the definition, we must be finished.\n if (char === ')') {\n valid = true;\n break;\n }\n }\n continue;\n }\n // Ignore spaces\n if (char === ' ') {\n // If the previous character is a separator, and the current section isn't empty, we want to deactivate.\n if (signature[i - 1] !== ',' && current !== ',' && current !== ',(') {\n current = '';\n active = false;\n }\n continue;\n }\n result += char;\n current += char;\n }\n if (!valid)\n throw new BaseError('Unable to normalize signature.');\n return result;\n}\n//# sourceMappingURL=normalizeSignature.js.map","import { formatAbiItem } from 'abitype';\nimport { normalizeSignature, } from './normalizeSignature.js';\n/**\n * Returns the signature for a given function or event definition.\n *\n * @example\n * const signature = toSignature('function ownerOf(uint256 tokenId)')\n * // 'ownerOf(uint256)'\n *\n * @example\n * const signature_3 = toSignature({\n * name: 'ownerOf',\n * type: 'function',\n * inputs: [{ name: 'tokenId', type: 'uint256' }],\n * outputs: [],\n * stateMutability: 'view',\n * })\n * // 'ownerOf(uint256)'\n */\nexport const toSignature = (def) => {\n const def_ = (() => {\n if (typeof def === 'string')\n return def;\n return formatAbiItem(def);\n })();\n return normalizeSignature(def_);\n};\n//# sourceMappingURL=toSignature.js.map","import { hashSignature } from './hashSignature.js';\nimport { toSignature } from './toSignature.js';\n/**\n * Returns the hash (of the function/event signature) for a given event or function definition.\n */\nexport function toSignatureHash(fn) {\n return hashSignature(toSignature(fn));\n}\n//# sourceMappingURL=toSignatureHash.js.map","import { toSignatureHash, } from './toSignatureHash.js';\n/**\n * Returns the event selector for a given event definition.\n *\n * @example\n * const selector = toEventSelector('Transfer(address indexed from, address indexed to, uint256 amount)')\n * // 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\n */\nexport const toEventSelector = toSignatureHash;\n//# sourceMappingURL=toEventSelector.js.map","import { BaseError } from './base.js';\nexport class InvalidAddressError extends BaseError {\n constructor({ address }) {\n super(`Address \"${address}\" is invalid.`, {\n metaMessages: [\n '- Address must be a hex value of 20 bytes (40 hex characters).',\n '- Address must match its checksum counterpart.',\n ],\n name: 'InvalidAddressError',\n });\n }\n}\n//# sourceMappingURL=address.js.map","/**\n * Map with a LRU (Least recently used) policy.\n *\n * @link https://en.wikipedia.org/wiki/Cache_replacement_policies#LRU\n */\nexport class LruMap extends Map {\n constructor(size) {\n super();\n Object.defineProperty(this, \"maxSize\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.maxSize = size;\n }\n get(key) {\n const value = super.get(key);\n if (super.has(key) && value !== undefined) {\n this.delete(key);\n super.set(key, value);\n }\n return value;\n }\n set(key, value) {\n super.set(key, value);\n if (this.maxSize && this.size > this.maxSize) {\n const firstKey = this.keys().next().value;\n if (firstKey)\n this.delete(firstKey);\n }\n return this;\n }\n}\n//# sourceMappingURL=lru.js.map","import { InvalidAddressError } from '../../errors/address.js';\nimport { stringToBytes, } from '../encoding/toBytes.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { LruMap } from '../lru.js';\nimport { isAddress } from './isAddress.js';\nconst checksumAddressCache = /*#__PURE__*/ new LruMap(8192);\nexport function checksumAddress(address_, \n/**\n * Warning: EIP-1191 checksum addresses are generally not backwards compatible with the\n * wider Ethereum ecosystem, meaning it will break when validated against an application/tool\n * that relies on EIP-55 checksum encoding (checksum without chainId).\n *\n * It is highly recommended to not use this feature unless you\n * know what you are doing.\n *\n * See more: https://github.com/ethereum/EIPs/issues/1121\n */\nchainId) {\n if (checksumAddressCache.has(`${address_}.${chainId}`))\n return checksumAddressCache.get(`${address_}.${chainId}`);\n const hexAddress = chainId\n ? `${chainId}${address_.toLowerCase()}`\n : address_.substring(2).toLowerCase();\n const hash = keccak256(stringToBytes(hexAddress), 'bytes');\n const address = (chainId ? hexAddress.substring(`${chainId}0x`.length) : hexAddress).split('');\n for (let i = 0; i < 40; i += 2) {\n if (hash[i >> 1] >> 4 >= 8 && address[i]) {\n address[i] = address[i].toUpperCase();\n }\n if ((hash[i >> 1] & 0x0f) >= 8 && address[i + 1]) {\n address[i + 1] = address[i + 1].toUpperCase();\n }\n }\n const result = `0x${address.join('')}`;\n checksumAddressCache.set(`${address_}.${chainId}`, result);\n return result;\n}\nexport function getAddress(address, \n/**\n * Warning: EIP-1191 checksum addresses are generally not backwards compatible with the\n * wider Ethereum ecosystem, meaning it will break when validated against an application/tool\n * that relies on EIP-55 checksum encoding (checksum without chainId).\n *\n * It is highly recommended to not use this feature unless you\n * know what you are doing.\n *\n * See more: https://github.com/ethereum/EIPs/issues/1121\n */\nchainId) {\n if (!isAddress(address, { strict: false }))\n throw new InvalidAddressError({ address });\n return checksumAddress(address, chainId);\n}\n//# sourceMappingURL=getAddress.js.map","import { LruMap } from '../lru.js';\nimport { checksumAddress } from './getAddress.js';\nconst addressRegex = /^0x[a-fA-F0-9]{40}$/;\n/** @internal */\nexport const isAddressCache = /*#__PURE__*/ new LruMap(8192);\nexport function isAddress(address, options) {\n const { strict = true } = options ?? {};\n const cacheKey = `${address}.${strict}`;\n if (isAddressCache.has(cacheKey))\n return isAddressCache.get(cacheKey);\n const result = (() => {\n if (!addressRegex.test(address))\n return false;\n if (address.toLowerCase() === address)\n return true;\n if (strict)\n return checksumAddress(address) === address;\n return true;\n })();\n isAddressCache.set(cacheKey, result);\n return result;\n}\n//# sourceMappingURL=isAddress.js.map","export function concat(values) {\n if (typeof values[0] === 'string')\n return concatHex(values);\n return concatBytes(values);\n}\nexport function concatBytes(values) {\n let length = 0;\n for (const arr of values) {\n length += arr.length;\n }\n const result = new Uint8Array(length);\n let offset = 0;\n for (const arr of values) {\n result.set(arr, offset);\n offset += arr.length;\n }\n return result;\n}\nexport function concatHex(values) {\n return `0x${values.reduce((acc, x) => acc + x.replace('0x', ''), '')}`;\n}\n//# sourceMappingURL=concat.js.map","import { SliceOffsetOutOfBoundsError, } from '../../errors/data.js';\nimport { isHex } from './isHex.js';\nimport { size } from './size.js';\n/**\n * @description Returns a section of the hex or byte array given a start/end bytes offset.\n *\n * @param value The hex or byte array to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function slice(value, start, end, { strict } = {}) {\n if (isHex(value, { strict: false }))\n return sliceHex(value, start, end, {\n strict,\n });\n return sliceBytes(value, start, end, {\n strict,\n });\n}\nfunction assertStartOffset(value, start) {\n if (typeof start === 'number' && start > 0 && start > size(value) - 1)\n throw new SliceOffsetOutOfBoundsError({\n offset: start,\n position: 'start',\n size: size(value),\n });\n}\nfunction assertEndOffset(value, start, end) {\n if (typeof start === 'number' &&\n typeof end === 'number' &&\n size(value) !== end - start) {\n throw new SliceOffsetOutOfBoundsError({\n offset: end,\n position: 'end',\n size: size(value),\n });\n }\n}\n/**\n * @description Returns a section of the byte array given a start/end bytes offset.\n *\n * @param value The byte array to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function sliceBytes(value_, start, end, { strict } = {}) {\n assertStartOffset(value_, start);\n const value = value_.slice(start, end);\n if (strict)\n assertEndOffset(value, start, end);\n return value;\n}\n/**\n * @description Returns a section of the hex value given a start/end bytes offset.\n *\n * @param value The hex value to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function sliceHex(value_, start, end, { strict } = {}) {\n assertStartOffset(value_, start);\n const value = `0x${value_\n .replace('0x', '')\n .slice((start ?? 0) * 2, (end ?? value_.length) * 2)}`;\n if (strict)\n assertEndOffset(value, start, end);\n return value;\n}\n//# sourceMappingURL=slice.js.map","import { AbiEncodingArrayLengthMismatchError, AbiEncodingBytesSizeMismatchError, AbiEncodingLengthMismatchError, InvalidAbiEncodingTypeError, InvalidArrayError, } from '../../errors/abi.js';\nimport { InvalidAddressError, } from '../../errors/address.js';\nimport { BaseError } from '../../errors/base.js';\nimport { isAddress } from '../address/isAddress.js';\nimport { concat } from '../data/concat.js';\nimport { padHex } from '../data/pad.js';\nimport { size } from '../data/size.js';\nimport { slice } from '../data/slice.js';\nimport { boolToHex, numberToHex, stringToHex, } from '../encoding/toHex.js';\n/**\n * @description Encodes a list of primitive values into an ABI-encoded hex value.\n *\n * - Docs: https://viem.sh/docs/abi/encodeAbiParameters#encodeabiparameters\n *\n * Generates ABI encoded data using the [ABI specification](https://docs.soliditylang.org/en/latest/abi-spec), given a set of ABI parameters (inputs/outputs) and their corresponding values.\n *\n * @param params - a set of ABI Parameters (params), that can be in the shape of the inputs or outputs attribute of an ABI Item.\n * @param values - a set of values (values) that correspond to the given params.\n * @example\n * ```typescript\n * import { encodeAbiParameters } from 'viem'\n *\n * const encodedData = encodeAbiParameters(\n * [\n * { name: 'x', type: 'string' },\n * { name: 'y', type: 'uint' },\n * { name: 'z', type: 'bool' }\n * ],\n * ['wagmi', 420n, true]\n * )\n * ```\n *\n * You can also pass in Human Readable parameters with the parseAbiParameters utility.\n *\n * @example\n * ```typescript\n * import { encodeAbiParameters, parseAbiParameters } from 'viem'\n *\n * const encodedData = encodeAbiParameters(\n * parseAbiParameters('string x, uint y, bool z'),\n * ['wagmi', 420n, true]\n * )\n * ```\n */\nexport function encodeAbiParameters(params, values) {\n if (params.length !== values.length)\n throw new AbiEncodingLengthMismatchError({\n expectedLength: params.length,\n givenLength: values.length,\n });\n // Prepare the parameters to determine dynamic types to encode.\n const preparedParams = prepareParams({\n params: params,\n values: values,\n });\n const data = encodeParams(preparedParams);\n if (data.length === 0)\n return '0x';\n return data;\n}\nfunction prepareParams({ params, values, }) {\n const preparedParams = [];\n for (let i = 0; i < params.length; i++) {\n preparedParams.push(prepareParam({ param: params[i], value: values[i] }));\n }\n return preparedParams;\n}\nfunction prepareParam({ param, value, }) {\n const arrayComponents = getArrayComponents(param.type);\n if (arrayComponents) {\n const [length, type] = arrayComponents;\n return encodeArray(value, { length, param: { ...param, type } });\n }\n if (param.type === 'tuple') {\n return encodeTuple(value, {\n param: param,\n });\n }\n if (param.type === 'address') {\n return encodeAddress(value);\n }\n if (param.type === 'bool') {\n return encodeBool(value);\n }\n if (param.type.startsWith('uint') || param.type.startsWith('int')) {\n const signed = param.type.startsWith('int');\n return encodeNumber(value, { signed });\n }\n if (param.type.startsWith('bytes')) {\n return encodeBytes(value, { param });\n }\n if (param.type === 'string') {\n return encodeString(value);\n }\n throw new InvalidAbiEncodingTypeError(param.type, {\n docsPath: '/docs/contract/encodeAbiParameters',\n });\n}\nfunction encodeParams(preparedParams) {\n // 1. Compute the size of the static part of the parameters.\n let staticSize = 0;\n for (let i = 0; i < preparedParams.length; i++) {\n const { dynamic, encoded } = preparedParams[i];\n if (dynamic)\n staticSize += 32;\n else\n staticSize += size(encoded);\n }\n // 2. Split the parameters into static and dynamic parts.\n const staticParams = [];\n const dynamicParams = [];\n let dynamicSize = 0;\n for (let i = 0; i < preparedParams.length; i++) {\n const { dynamic, encoded } = preparedParams[i];\n if (dynamic) {\n staticParams.push(numberToHex(staticSize + dynamicSize, { size: 32 }));\n dynamicParams.push(encoded);\n dynamicSize += size(encoded);\n }\n else {\n staticParams.push(encoded);\n }\n }\n // 3. Concatenate static and dynamic parts.\n return concat([...staticParams, ...dynamicParams]);\n}\nfunction encodeAddress(value) {\n if (!isAddress(value))\n throw new InvalidAddressError({ address: value });\n return { dynamic: false, encoded: padHex(value.toLowerCase()) };\n}\nfunction encodeArray(value, { length, param, }) {\n const dynamic = length === null;\n if (!Array.isArray(value))\n throw new InvalidArrayError(value);\n if (!dynamic && value.length !== length)\n throw new AbiEncodingArrayLengthMismatchError({\n expectedLength: length,\n givenLength: value.length,\n type: `${param.type}[${length}]`,\n });\n let dynamicChild = false;\n const preparedParams = [];\n for (let i = 0; i < value.length; i++) {\n const preparedParam = prepareParam({ param, value: value[i] });\n if (preparedParam.dynamic)\n dynamicChild = true;\n preparedParams.push(preparedParam);\n }\n if (dynamic || dynamicChild) {\n const data = encodeParams(preparedParams);\n if (dynamic) {\n const length = numberToHex(preparedParams.length, { size: 32 });\n return {\n dynamic: true,\n encoded: preparedParams.length > 0 ? concat([length, data]) : length,\n };\n }\n if (dynamicChild)\n return { dynamic: true, encoded: data };\n }\n return {\n dynamic: false,\n encoded: concat(preparedParams.map(({ encoded }) => encoded)),\n };\n}\nfunction encodeBytes(value, { param }) {\n const [, paramSize] = param.type.split('bytes');\n const bytesSize = size(value);\n if (!paramSize) {\n let value_ = value;\n // If the size is not divisible by 32 bytes, pad the end\n // with empty bytes to the ceiling 32 bytes.\n if (bytesSize % 32 !== 0)\n value_ = padHex(value_, {\n dir: 'right',\n size: Math.ceil((value.length - 2) / 2 / 32) * 32,\n });\n return {\n dynamic: true,\n encoded: concat([padHex(numberToHex(bytesSize, { size: 32 })), value_]),\n };\n }\n if (bytesSize !== Number.parseInt(paramSize))\n throw new AbiEncodingBytesSizeMismatchError({\n expectedSize: Number.parseInt(paramSize),\n value,\n });\n return { dynamic: false, encoded: padHex(value, { dir: 'right' }) };\n}\nfunction encodeBool(value) {\n if (typeof value !== 'boolean')\n throw new BaseError(`Invalid boolean value: \"${value}\" (type: ${typeof value}). Expected: \\`true\\` or \\`false\\`.`);\n return { dynamic: false, encoded: padHex(boolToHex(value)) };\n}\nfunction encodeNumber(value, { signed }) {\n return {\n dynamic: false,\n encoded: numberToHex(value, {\n size: 32,\n signed,\n }),\n };\n}\nfunction encodeString(value) {\n const hexValue = stringToHex(value);\n const partsLength = Math.ceil(size(hexValue) / 32);\n const parts = [];\n for (let i = 0; i < partsLength; i++) {\n parts.push(padHex(slice(hexValue, i * 32, (i + 1) * 32), {\n dir: 'right',\n }));\n }\n return {\n dynamic: true,\n encoded: concat([\n padHex(numberToHex(size(hexValue), { size: 32 })),\n ...parts,\n ]),\n };\n}\nfunction encodeTuple(value, { param }) {\n let dynamic = false;\n const preparedParams = [];\n for (let i = 0; i < param.components.length; i++) {\n const param_ = param.components[i];\n const index = Array.isArray(value) ? i : param_.name;\n const preparedParam = prepareParam({\n param: param_,\n value: value[index],\n });\n preparedParams.push(preparedParam);\n if (preparedParam.dynamic)\n dynamic = true;\n }\n return {\n dynamic,\n encoded: dynamic\n ? encodeParams(preparedParams)\n : concat(preparedParams.map(({ encoded }) => encoded)),\n };\n}\nexport function getArrayComponents(type) {\n const matches = type.match(/^(.*)\\[(\\d+)?\\]$/);\n return matches\n ? // Return `null` if the array is dynamic.\n [matches[2] ? Number(matches[2]) : null, matches[1]]\n : undefined;\n}\n//# sourceMappingURL=encodeAbiParameters.js.map","import { slice } from '../data/slice.js';\nimport { toSignatureHash, } from './toSignatureHash.js';\n/**\n * Returns the function selector for a given function definition.\n *\n * @example\n * const selector = toFunctionSelector('function ownerOf(uint256 tokenId)')\n * // 0x6352211e\n */\nexport const toFunctionSelector = (fn) => slice(toSignatureHash(fn), 0, 4);\n//# sourceMappingURL=toFunctionSelector.js.map","import { AbiItemAmbiguityError, } from '../../errors/abi.js';\nimport { isHex } from '../../utils/data/isHex.js';\nimport { isAddress } from '../address/isAddress.js';\nimport { toEventSelector } from '../hash/toEventSelector.js';\nimport { toFunctionSelector, } from '../hash/toFunctionSelector.js';\nexport function getAbiItem(parameters) {\n const { abi, args = [], name } = parameters;\n const isSelector = isHex(name, { strict: false });\n const abiItems = abi.filter((abiItem) => {\n if (isSelector) {\n if (abiItem.type === 'function')\n return toFunctionSelector(abiItem) === name;\n if (abiItem.type === 'event')\n return toEventSelector(abiItem) === name;\n return false;\n }\n return 'name' in abiItem && abiItem.name === name;\n });\n if (abiItems.length === 0)\n return undefined;\n if (abiItems.length === 1)\n return abiItems[0];\n let matchedAbiItem = undefined;\n for (const abiItem of abiItems) {\n if (!('inputs' in abiItem))\n continue;\n if (!args || args.length === 0) {\n if (!abiItem.inputs || abiItem.inputs.length === 0)\n return abiItem;\n continue;\n }\n if (!abiItem.inputs)\n continue;\n if (abiItem.inputs.length === 0)\n continue;\n if (abiItem.inputs.length !== args.length)\n continue;\n const matched = args.every((arg, index) => {\n const abiParameter = 'inputs' in abiItem && abiItem.inputs[index];\n if (!abiParameter)\n return false;\n return isArgOfType(arg, abiParameter);\n });\n if (matched) {\n // Check for ambiguity against already matched parameters (e.g. `address` vs `bytes20`).\n if (matchedAbiItem &&\n 'inputs' in matchedAbiItem &&\n matchedAbiItem.inputs) {\n const ambiguousTypes = getAmbiguousTypes(abiItem.inputs, matchedAbiItem.inputs, args);\n if (ambiguousTypes)\n throw new AbiItemAmbiguityError({\n abiItem,\n type: ambiguousTypes[0],\n }, {\n abiItem: matchedAbiItem,\n type: ambiguousTypes[1],\n });\n }\n matchedAbiItem = abiItem;\n }\n }\n if (matchedAbiItem)\n return matchedAbiItem;\n return abiItems[0];\n}\n/** @internal */\nexport function isArgOfType(arg, abiParameter) {\n const argType = typeof arg;\n const abiParameterType = abiParameter.type;\n switch (abiParameterType) {\n case 'address':\n return isAddress(arg, { strict: false });\n case 'bool':\n return argType === 'boolean';\n case 'function':\n return argType === 'string';\n case 'string':\n return argType === 'string';\n default: {\n if (abiParameterType === 'tuple' && 'components' in abiParameter)\n return Object.values(abiParameter.components).every((component, index) => {\n return isArgOfType(Object.values(arg)[index], component);\n });\n // `(u)int<M>`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n // https://regexr.com/6v8hp\n if (/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(abiParameterType))\n return argType === 'number' || argType === 'bigint';\n // `bytes<M>`: binary type of `M` bytes, `0 < M <= 32`\n // https://regexr.com/6va55\n if (/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(abiParameterType))\n return argType === 'string' || arg instanceof Uint8Array;\n // fixed-length (`<type>[M]`) and dynamic (`<type>[]`) arrays\n // https://regexr.com/6va6i\n if (/[a-z]+[1-9]{0,3}(\\[[0-9]{0,}\\])+$/.test(abiParameterType)) {\n return (Array.isArray(arg) &&\n arg.every((x) => isArgOfType(x, {\n ...abiParameter,\n // Pop off `[]` or `[M]` from end of type\n type: abiParameterType.replace(/(\\[[0-9]{0,}\\])$/, ''),\n })));\n }\n return false;\n }\n }\n}\n/** @internal */\nexport function getAmbiguousTypes(sourceParameters, targetParameters, args) {\n for (const parameterIndex in sourceParameters) {\n const sourceParameter = sourceParameters[parameterIndex];\n const targetParameter = targetParameters[parameterIndex];\n if (sourceParameter.type === 'tuple' &&\n targetParameter.type === 'tuple' &&\n 'components' in sourceParameter &&\n 'components' in targetParameter)\n return getAmbiguousTypes(sourceParameter.components, targetParameter.components, args[parameterIndex]);\n const types = [sourceParameter.type, targetParameter.type];\n const ambiguous = (() => {\n if (types.includes('address') && types.includes('bytes20'))\n return true;\n if (types.includes('address') && types.includes('string'))\n return isAddress(args[parameterIndex], { strict: false });\n if (types.includes('address') && types.includes('bytes'))\n return isAddress(args[parameterIndex], { strict: false });\n return false;\n })();\n if (ambiguous)\n return types;\n }\n return;\n}\n//# sourceMappingURL=getAbiItem.js.map","import { AbiFunctionNotFoundError, } from '../../errors/abi.js';\nimport { toFunctionSelector, } from '../hash/toFunctionSelector.js';\nimport { formatAbiItem } from './formatAbiItem.js';\nimport { getAbiItem } from './getAbiItem.js';\nconst docsPath = '/docs/contract/encodeFunctionData';\nexport function prepareEncodeFunctionData(parameters) {\n const { abi, args, functionName } = parameters;\n let abiItem = abi[0];\n if (functionName) {\n const item = getAbiItem({\n abi,\n args,\n name: functionName,\n });\n if (!item)\n throw new AbiFunctionNotFoundError(functionName, { docsPath });\n abiItem = item;\n }\n if (abiItem.type !== 'function')\n throw new AbiFunctionNotFoundError(undefined, { docsPath });\n return {\n abi: [abiItem],\n functionName: toFunctionSelector(formatAbiItem(abiItem)),\n };\n}\n//# sourceMappingURL=prepareEncodeFunctionData.js.map","import { concatHex } from '../data/concat.js';\nimport { encodeAbiParameters, } from './encodeAbiParameters.js';\nimport { prepareEncodeFunctionData } from './prepareEncodeFunctionData.js';\nexport function encodeFunctionData(parameters) {\n const { args } = parameters;\n const { abi, functionName } = (() => {\n if (parameters.abi.length === 1 &&\n parameters.functionName?.startsWith('0x'))\n return parameters;\n return prepareEncodeFunctionData(parameters);\n })();\n const abiItem = abi[0];\n const signature = functionName;\n const data = 'inputs' in abiItem && abiItem.inputs\n ? encodeAbiParameters(abiItem.inputs, args ?? [])\n : undefined;\n return concatHex([signature, data ?? '0x']);\n}\n//# sourceMappingURL=encodeFunctionData.js.map","export const arrayRegex = /^(.*)\\[([0-9]*)\\]$/;\n// `bytes<M>`: binary type of `M` bytes, `0 < M <= 32`\n// https://regexr.com/6va55\nexport const bytesRegex = /^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/;\n// `(u)int<M>`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n// https://regexr.com/6v8hp\nexport const integerRegex = /^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;\n//# sourceMappingURL=regex.js.map","import { BaseError } from './base.js';\nexport class InvalidStructTypeError extends BaseError {\n constructor({ type }) {\n super(`Struct type \"${type}\" is invalid.`, {\n metaMessages: ['Struct type must not be a Solidity type.'],\n name: 'InvalidStructTypeError',\n });\n }\n}\n//# sourceMappingURL=typedData.js.map","// Implementation forked and adapted from https://github.com/MetaMask/eth-sig-util/blob/main/src/sign-typed-data.ts\nimport { encodeAbiParameters, } from '../abi/encodeAbiParameters.js';\nimport { concat } from '../data/concat.js';\nimport { toHex } from '../encoding/toHex.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { getTypesForEIP712Domain, validateTypedData, } from '../typedData.js';\nexport function hashTypedData(parameters) {\n const { domain = {}, message, primaryType, } = parameters;\n const types = {\n EIP712Domain: getTypesForEIP712Domain({ domain }),\n ...parameters.types,\n };\n // Need to do a runtime validation check on addresses, byte ranges, integer ranges, etc\n // as we can't statically check this with TypeScript.\n validateTypedData({\n domain,\n message,\n primaryType,\n types,\n });\n const parts = ['0x1901'];\n if (domain)\n parts.push(hashDomain({\n domain,\n types: types,\n }));\n if (primaryType !== 'EIP712Domain')\n parts.push(hashStruct({\n data: message,\n primaryType,\n types: types,\n }));\n return keccak256(concat(parts));\n}\nexport function hashDomain({ domain, types, }) {\n return hashStruct({\n data: domain,\n primaryType: 'EIP712Domain',\n types,\n });\n}\nexport function hashStruct({ data, primaryType, types, }) {\n const encoded = encodeData({\n data,\n primaryType,\n types,\n });\n return keccak256(encoded);\n}\nfunction encodeData({ data, primaryType, types, }) {\n const encodedTypes = [{ type: 'bytes32' }];\n const encodedValues = [hashType({ primaryType, types })];\n for (const field of types[primaryType]) {\n const [type, value] = encodeField({\n types,\n name: field.name,\n type: field.type,\n value: data[field.name],\n });\n encodedTypes.push(type);\n encodedValues.push(value);\n }\n return encodeAbiParameters(encodedTypes, encodedValues);\n}\nfunction hashType({ primaryType, types, }) {\n const encodedHashType = toHex(encodeType({ primaryType, types }));\n return keccak256(encodedHashType);\n}\nexport function encodeType({ primaryType, types, }) {\n let result = '';\n const unsortedDeps = findTypeDependencies({ primaryType, types });\n unsortedDeps.delete(primaryType);\n const deps = [primaryType, ...Array.from(unsortedDeps).sort()];\n for (const type of deps) {\n result += `${type}(${types[type]\n .map(({ name, type: t }) => `${t} ${name}`)\n .join(',')})`;\n }\n return result;\n}\nfunction findTypeDependencies({ primaryType: primaryType_, types, }, results = new Set()) {\n const match = primaryType_.match(/^\\w*/u);\n const primaryType = match?.[0];\n if (results.has(primaryType) || types[primaryType] === undefined) {\n return results;\n }\n results.add(primaryType);\n for (const field of types[primaryType]) {\n findTypeDependencies({ primaryType: field.type, types }, results);\n }\n return results;\n}\nfunction encodeField({ types, name, type, value, }) {\n if (types[type] !== undefined) {\n return [\n { type: 'bytes32' },\n keccak256(encodeData({ data: value, primaryType: type, types })),\n ];\n }\n if (type === 'bytes') {\n const prepend = value.length % 2 ? '0' : '';\n value = `0x${prepend + value.slice(2)}`;\n return [{ type: 'bytes32' }, keccak256(value)];\n }\n if (type === 'string')\n return [{ type: 'bytes32' }, keccak256(toHex(value))];\n if (type.lastIndexOf(']') === type.length - 1) {\n const parsedType = type.slice(0, type.lastIndexOf('['));\n const typeValuePairs = value.map((item) => encodeField({\n name,\n type: parsedType,\n types,\n value: item,\n }));\n return [\n { type: 'bytes32' },\n keccak256(encodeAbiParameters(typeValuePairs.map(([t]) => t), typeValuePairs.map(([, v]) => v))),\n ];\n }\n return [{ type }, value];\n}\n//# sourceMappingURL=hashTypedData.js.map","import { BytesSizeMismatchError } from '../errors/abi.js';\nimport { InvalidAddressError } from '../errors/address.js';\nimport { InvalidStructTypeError } from '../errors/typedData.js';\nimport { isAddress } from './address/isAddress.js';\nimport { size } from './data/size.js';\nimport { numberToHex } from './encoding/toHex.js';\nimport { bytesRegex, integerRegex } from './regex.js';\nimport { hashDomain, } from './signature/hashTypedData.js';\nimport { stringify } from './stringify.js';\nexport function serializeTypedData(parameters) {\n const { domain: domain_, message: message_, primaryType, types, } = parameters;\n const normalizeData = (struct, data_) => {\n const data = { ...data_ };\n for (const param of struct) {\n const { name, type } = param;\n if (type === 'address')\n data[name] = data[name].toLowerCase();\n }\n return data;\n };\n const domain = (() => {\n if (!types.EIP712Domain)\n return {};\n if (!domain_)\n return {};\n return normalizeData(types.EIP712Domain, domain_);\n })();\n const message = (() => {\n if (primaryType === 'EIP712Domain')\n return undefined;\n return normalizeData(types[primaryType], message_);\n })();\n return stringify({ domain, message, primaryType, types });\n}\nexport function validateTypedData(parameters) {\n const { domain, message, primaryType, types } = parameters;\n const validateData = (struct, data) => {\n for (const param of struct) {\n const { name, type } = param;\n const value = data[name];\n const integerMatch = type.match(integerRegex);\n if (integerMatch &&\n (typeof value === 'number' || typeof value === 'bigint')) {\n const [_type, base, size_] = integerMatch;\n // If number cannot be cast to a sized hex value, it is out of range\n // and will throw.\n numberToHex(value, {\n signed: base === 'int',\n size: Number.parseInt(size_) / 8,\n });\n }\n if (type === 'address' && typeof value === 'string' && !isAddress(value))\n throw new InvalidAddressError({ address: value });\n const bytesMatch = type.match(bytesRegex);\n if (bytesMatch) {\n const [_type, size_] = bytesMatch;\n if (size_ && size(value) !== Number.parseInt(size_))\n throw new BytesSizeMismatchError({\n expectedSize: Number.parseInt(size_),\n givenSize: size(value),\n });\n }\n const struct = types[type];\n if (struct) {\n validateReference(type);\n validateData(struct, value);\n }\n }\n };\n // Validate domain types.\n if (types.EIP712Domain && domain)\n validateData(types.EIP712Domain, domain);\n // Validate message types.\n if (primaryType !== 'EIP712Domain')\n validateData(types[primaryType], message);\n}\nexport function getTypesForEIP712Domain({ domain, }) {\n return [\n typeof domain?.name === 'string' && { name: 'name', type: 'string' },\n domain?.version && { name: 'version', type: 'string' },\n typeof domain?.chainId === 'number' && {\n name: 'chainId',\n type: 'uint256',\n },\n domain?.verifyingContract && {\n name: 'verifyingContract',\n type: 'address',\n },\n domain?.salt && { name: 'salt', type: 'bytes32' },\n ].filter(Boolean);\n}\nexport function domainSeparator({ domain }) {\n return hashDomain({\n domain,\n types: {\n EIP712Domain: getTypesForEIP712Domain({ domain }),\n },\n });\n}\n/** @internal */\nfunction validateReference(type) {\n // Struct type must not be a Solidity type.\n if (type === 'address' ||\n type === 'bool' ||\n type === 'string' ||\n type.startsWith('bytes') ||\n type.startsWith('uint') ||\n type.startsWith('int'))\n throw new InvalidStructTypeError({ type });\n}\n//# sourceMappingURL=typedData.js.map","export const presignMessagePrefix = '\\x19Ethereum Signed Message:\\n';\n//# sourceMappingURL=strings.js.map","import { presignMessagePrefix } from '../../constants/strings.js';\nimport { concat } from '../data/concat.js';\nimport { size } from '../data/size.js';\nimport { bytesToHex, stringToHex, } from '../encoding/toHex.js';\nexport function toPrefixedMessage(message_) {\n const message = (() => {\n if (typeof message_ === 'string')\n return stringToHex(message_);\n if (typeof message_.raw === 'string')\n return message_.raw;\n return bytesToHex(message_.raw);\n })();\n const prefix = stringToHex(`${presignMessagePrefix}${size(message)}`);\n return concat([prefix, message]);\n}\n//# sourceMappingURL=toPrefixedMessage.js.map","import { keccak256 } from '../hash/keccak256.js';\nimport { toPrefixedMessage } from './toPrefixedMessage.js';\nexport function hashMessage(message, to_) {\n return keccak256(toPrefixedMessage(message), to_);\n}\n//# sourceMappingURL=hashMessage.js.map","const MAGIC_VALUE = '0x1626ba7e';\nconst MAGIC_VALUE_BYTES = '0x20c13b0b';\nexport { MAGIC_VALUE, MAGIC_VALUE_BYTES };\n//# sourceMappingURL=signatures.js.map","export const PERMISSIONS_REQUEST_REJECTED = 4001;\nexport class PermissionsError extends Error {\n constructor(message, code, data) {\n super(message);\n this.code = code;\n this.data = data;\n // Should adjust prototype manually because how TS handles the type extension compilation\n // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, PermissionsError.prototype);\n }\n}\n//# sourceMappingURL=permissions.js.map","import { Methods, RestrictedMethods } from '../communication/methods.js';\nimport { PermissionsError, PERMISSIONS_REQUEST_REJECTED } from '../types/permissions.js';\nclass Wallet {\n constructor(communicator) {\n this.communicator = communicator;\n }\n async getPermissions() {\n const response = await this.communicator.send(Methods.wallet_getPermissions, undefined);\n return response.data;\n }\n async requestPermissions(permissions) {\n if (!this.isPermissionRequestValid(permissions)) {\n throw new PermissionsError('Permissions request is invalid', PERMISSIONS_REQUEST_REJECTED);\n }\n try {\n const response = await this.communicator.send(Methods.wallet_requestPermissions, permissions);\n return response.data;\n }\n catch {\n throw new PermissionsError('Permissions rejected', PERMISSIONS_REQUEST_REJECTED);\n }\n }\n isPermissionRequestValid(permissions) {\n return permissions.every((pr) => {\n if (typeof pr === 'object') {\n return Object.keys(pr).every((method) => {\n if (Object.values(RestrictedMethods).includes(method)) {\n return true;\n }\n return false;\n });\n }\n return false;\n });\n }\n}\nexport { Wallet };\n//# sourceMappingURL=index.js.map","import { Wallet } from '../wallet/index.js';\nimport { PermissionsError, PERMISSIONS_REQUEST_REJECTED } from '../types/permissions.js';\nconst hasPermission = (required, permissions) => permissions.some((permission) => permission.parentCapability === required);\nconst requirePermission = () => (_, propertyKey, descriptor) => {\n const originalMethod = descriptor.value;\n descriptor.value = async function () {\n // @ts-expect-error accessing private property from decorator. 'this' context is the class instance\n const wallet = new Wallet(this.communicator);\n let currentPermissions = await wallet.getPermissions();\n if (!hasPermission(propertyKey, currentPermissions)) {\n currentPermissions = await wallet.requestPermissions([{ [propertyKey]: {} }]);\n }\n if (!hasPermission(propertyKey, currentPermissions)) {\n throw new PermissionsError('Permissions rejected', PERMISSIONS_REQUEST_REJECTED);\n }\n return originalMethod.apply(this);\n };\n return descriptor;\n};\nexport default requirePermission;\n//# sourceMappingURL=requirePermissions.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { encodeFunctionData, hashMessage, hashTypedData } from 'viem';\nimport { MAGIC_VALUE_BYTES, MAGIC_VALUE } from './signatures.js';\nimport { Methods } from '../communication/methods.js';\nimport { RPC_CALLS } from '../eth/constants.js';\nimport { isObjectEIP712TypedData, } from '../types/index.js';\nimport requirePermission from '../decorators/requirePermissions.js';\nclass Safe {\n constructor(communicator) {\n this.communicator = communicator;\n }\n async getChainInfo() {\n const response = await this.communicator.send(Methods.getChainInfo, undefined);\n return response.data;\n }\n async getInfo() {\n const response = await this.communicator.send(Methods.getSafeInfo, undefined);\n return response.data;\n }\n // There is a possibility that this method will change because we may add pagination to the endpoint\n async experimental_getBalances({ currency = 'usd' } = {}) {\n const response = await this.communicator.send(Methods.getSafeBalances, {\n currency,\n });\n return response.data;\n }\n async check1271Signature(messageHash, signature = '0x') {\n const safeInfo = await this.getInfo();\n const encodedIsValidSignatureCall = encodeFunctionData({\n abi: [\n {\n constant: false,\n inputs: [\n {\n name: '_dataHash',\n type: 'bytes32',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n name: 'isValidSignature',\n outputs: [\n {\n name: '',\n type: 'bytes4',\n },\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n ],\n functionName: 'isValidSignature',\n args: [messageHash, signature],\n });\n const payload = {\n call: RPC_CALLS.eth_call,\n params: [\n {\n to: safeInfo.safeAddress,\n data: encodedIsValidSignatureCall,\n },\n 'latest',\n ],\n };\n try {\n const response = await this.communicator.send(Methods.rpcCall, payload);\n return response.data.slice(0, 10).toLowerCase() === MAGIC_VALUE;\n }\n catch (err) {\n return false;\n }\n }\n async check1271SignatureBytes(messageHash, signature = '0x') {\n const safeInfo = await this.getInfo();\n const encodedIsValidSignatureCall = encodeFunctionData({\n abi: [\n {\n constant: false,\n inputs: [\n {\n name: '_data',\n type: 'bytes',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n name: 'isValidSignature',\n outputs: [\n {\n name: '',\n type: 'bytes4',\n },\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n ],\n functionName: 'isValidSignature',\n args: [messageHash, signature],\n });\n const payload = {\n call: RPC_CALLS.eth_call,\n params: [\n {\n to: safeInfo.safeAddress,\n data: encodedIsValidSignatureCall,\n },\n 'latest',\n ],\n };\n try {\n const response = await this.communicator.send(Methods.rpcCall, payload);\n return response.data.slice(0, 10).toLowerCase() === MAGIC_VALUE_BYTES;\n }\n catch (err) {\n return false;\n }\n }\n calculateMessageHash(message) {\n return hashMessage(message);\n }\n calculateTypedMessageHash(typedMessage) {\n const chainId = typeof typedMessage.domain.chainId === 'object'\n ? typedMessage.domain.chainId.toNumber()\n : Number(typedMessage.domain.chainId);\n let primaryType = typedMessage.primaryType;\n if (!primaryType) {\n const fields = Object.values(typedMessage.types);\n // We try to infer primaryType (simplified ether's version)\n const primaryTypes = Object.keys(typedMessage.types).filter((typeName) => fields.every((dataTypes) => dataTypes.every(({ type }) => type.replace('[', '').replace(']', '') !== typeName)));\n if (primaryTypes.length === 0 || primaryTypes.length > 1)\n throw new Error('Please specify primaryType');\n primaryType = primaryTypes[0];\n }\n return hashTypedData({\n message: typedMessage.message,\n domain: {\n ...typedMessage.domain,\n chainId,\n verifyingContract: typedMessage.domain.verifyingContract,\n salt: typedMessage.domain.salt,\n },\n types: typedMessage.types,\n primaryType,\n });\n }\n async getOffChainSignature(messageHash) {\n const response = await this.communicator.send(Methods.getOffChainSignature, messageHash);\n return response.data;\n }\n async isMessageSigned(message, signature = '0x') {\n let check;\n if (typeof message === 'string') {\n check = async () => {\n const messageHash = this.calculateMessageHash(message);\n const messageHashSigned = await this.isMessageHashSigned(messageHash, signature);\n return messageHashSigned;\n };\n }\n if (isObjectEIP712TypedData(message)) {\n check = async () => {\n const messageHash = this.calculateTypedMessageHash(message);\n const messageHashSigned = await this.isMessageHashSigned(messageHash, signature);\n return messageHashSigned;\n };\n }\n if (check) {\n const isValid = await check();\n return isValid;\n }\n throw new Error('Invalid message type');\n }\n async isMessageHashSigned(messageHash, signature = '0x') {\n const checks = [this.check1271Signature.bind(this), this.check1271SignatureBytes.bind(this)];\n for (const check of checks) {\n const isValid = await check(messageHash, signature);\n if (isValid) {\n return true;\n }\n }\n return false;\n }\n async getEnvironmentInfo() {\n const response = await this.communicator.send(Methods.getEnvironmentInfo, undefined);\n return response.data;\n }\n async requestAddressBook() {\n const response = await this.communicator.send(Methods.requestAddressBook, undefined);\n return response.data;\n }\n}\n__decorate([\n requirePermission()\n], Safe.prototype, \"requestAddressBook\", null);\nexport { Safe };\n//# sourceMappingURL=index.js.map","import InterfaceCommunicator from './communication/index.js';\nimport { TXs } from './txs/index.js';\nimport { Eth } from './eth/index.js';\nimport { Safe } from './safe/index.js';\nimport { Wallet } from './wallet/index.js';\nclass SafeAppsSDK {\n constructor(opts = {}) {\n const { allowedDomains = null, debug = false } = opts;\n this.communicator = new InterfaceCommunicator(allowedDomains, debug);\n this.eth = new Eth(this.communicator);\n this.txs = new TXs(this.communicator);\n this.safe = new Safe(this.communicator);\n this.wallet = new Wallet(this.communicator);\n }\n}\nexport default SafeAppsSDK;\n//# sourceMappingURL=sdk.js.map"],"names":["this","require$$0","exports","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","version","Methods","RestrictedMethods","docsPath","_a","size","size_","encoder","formatAbiItem","hash","length","struct","safeInfo","InterfaceCommunicator"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64]}