UNPKG

@alchemy/aa-core

Version:

viem based SDK that enables interactions with ERC-4337 Smart Accounts. ABIs are based off the definitions generated in @account-abstraction/contracts

127 lines 4.77 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.toRecord = exports.conditionalReturn = exports.allEqual = exports.pick = exports.filterUndefined = exports.defineReadOnly = exports.deepHexlify = exports.resolveProperties = exports.asyncPipe = exports.getChain = exports.AlchemyChainMap = void 0; const viem_1 = require("viem"); const chains = __importStar(require("viem/chains")); const alchemyChains = __importStar(require("../chains/index.js")); exports.AlchemyChainMap = new Map(Object.values(alchemyChains).map((c) => [c.id, c])); const getChain = (chainId) => { for (const chain of Object.values(chains)) { if (chain.id === chainId) { return exports.AlchemyChainMap.get(chain.id) ?? chain; } } throw new Error("could not find chain"); }; exports.getChain = getChain; const asyncPipe = (...fns) => async (s, o, f) => { let result = s; for (const fn of fns) { result = await fn(result, o, f); } return result; }; exports.asyncPipe = asyncPipe; async function resolveProperties(object) { const promises = Object.keys(object).map((key) => { const value = object[key]; return Promise.resolve(value).then((v) => ({ key: key, value: v })); }); const results = await Promise.all(promises); return filterUndefined(results.reduce((accum, curr) => { accum[curr.key] = curr.value; return accum; }, {})); } exports.resolveProperties = resolveProperties; function deepHexlify(obj) { if (typeof obj === "function") { return undefined; } if (obj == null || typeof obj === "string" || typeof obj === "boolean") { return obj; } else if (typeof obj === "bigint") { return (0, viem_1.toHex)(obj); } else if (obj._isBigNumber != null || typeof obj !== "object") { return (0, viem_1.toHex)(obj).replace(/^0x0/, "0x"); } if (Array.isArray(obj)) { return obj.map((member) => deepHexlify(member)); } return Object.keys(obj).reduce((set, key) => ({ ...set, [key]: deepHexlify(obj[key]), }), {}); } exports.deepHexlify = deepHexlify; function defineReadOnly(object, key, value) { Object.defineProperty(object, key, { enumerable: true, value: value, writable: false, }); } exports.defineReadOnly = defineReadOnly; function filterUndefined(obj) { for (const key in obj) { if (obj[key] == null) { delete obj[key]; } } return obj; } exports.filterUndefined = filterUndefined; function pick(obj, keys) { return Object.keys(obj) .filter((k) => keys.includes(k)) .reduce((res, k) => Object.assign(res, { [k]: obj[k] }), {}); } exports.pick = pick; const allEqual = (...params) => { if (params.length === 0) { throw new Error("no values passed in"); } return params.every((v) => v === params[0]); }; exports.allEqual = allEqual; const conditionalReturn = (condition, value) => condition.then((t) => (t ? value() : undefined)); exports.conditionalReturn = conditionalReturn; const toRecord = (array, selector, fn) => array.reduce((acc, item) => { acc[item[selector]] = fn(item); return acc; }, {}); exports.toRecord = toRecord; __exportStar(require("./bigint.js"), exports); __exportStar(require("./bytes.js"), exports); __exportStar(require("./defaults.js"), exports); __exportStar(require("./schema.js"), exports); __exportStar(require("./userop.js"), exports); //# sourceMappingURL=index.js.map