{"version":3,"sources":["../src/actions/ethActions.js","../src/actions/tevmActions.js","../src/request/requestEip1193.js","../src/request/tevmSend.js"],"names":["blockNumberHandler","ethCallHandler","chainIdHandler","gasPriceHandler","getBalanceHandler","getCodeHandler","getStorageAtHandler","getAccountHandler","setAccountHandler","callHandler","contractHandler","dumpStateHandler","loadStateHandler","mineHandler","deployHandler","dealHandler","withRetry","requestProcedure","requestBulkProcedure"],"mappings":"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","file":"index.cjs","sourcesContent":["import {\n\tblockNumberHandler,\n\tchainIdHandler,\n\tethCallHandler,\n\tgasPriceHandler,\n\tgetBalanceHandler,\n\tgetCodeHandler,\n\tgetStorageAtHandler,\n} from '@tevm/actions'\n\n/**\n * @returns {import('@tevm/node').Extension<import('./EthActionsApi.js').EthActionsApi>}\n */\nexport const ethActions = () => (client) => {\n\tconst wrappedEth = (() => {\n\t\tif (!('eth' in client)) {\n\t\t\treturn {}\n\t\t}\n\t\tif (typeof client.eth !== 'object') {\n\t\t\tthrow new Error(\n\t\t\t\t'Cannot extend eth with ethActions decorator. detected a client.eth property that is not an object',\n\t\t\t)\n\t\t}\n\t\treturn client.eth ?? {}\n\t})()\n\treturn {\n\t\teth: {\n\t\t\t...wrappedEth,\n\t\t\tblockNumber: blockNumberHandler(client),\n\t\t\tcall: ethCallHandler(client),\n\t\t\tchainId: chainIdHandler(client),\n\t\t\tgasPrice: gasPriceHandler(client),\n\t\t\tgetBalance: getBalanceHandler(client),\n\t\t\tgetCode: getCodeHandler(client),\n\t\t\tgetStorageAt: getStorageAtHandler(client),\n\t\t},\n\t}\n}\n","import {\n\tcallHandler,\n\tcontractHandler,\n\tdealHandler,\n\tdeployHandler,\n\tdumpStateHandler,\n\tgetAccountHandler,\n\tloadStateHandler,\n\tmineHandler,\n\tsetAccountHandler,\n} from '@tevm/actions'\n\n/**\n * @internal\n * @returns {import('@tevm/node').Extension<Pick<import('./TevmActionsApi.js').TevmActionsApi, 'getAccount'>>}\n */\nconst getAccountAction = () => (client) => {\n\treturn {\n\t\tgetAccount: getAccountHandler(client),\n\t}\n}\n/**\n * @internal\n * @returns {import('@tevm/node').Extension<Pick<import('./TevmActionsApi.js').TevmActionsApi, 'setAccount'>>}\n */\nconst setAccountAction = () => (client) => {\n\treturn {\n\t\tsetAccount: setAccountHandler(client),\n\t}\n}\n/**\n * @internal\n * @returns {import('@tevm/node').Extension<Pick<import('./TevmActionsApi.js').TevmActionsApi, 'call'>>}\n */\nconst callAction = () => (client) => {\n\treturn {\n\t\tcall: callHandler(client),\n\t}\n}\n/**\n * @internal\n * @returns {import('@tevm/node').Extension<Pick<import('./TevmActionsApi.js').TevmActionsApi, 'contract'>>}\n */\nconst contractAction = () => (client) => {\n\treturn {\n\t\tcontract: contractHandler(client),\n\t}\n}\n/**\n * @internal\n * @returns {import('@tevm/node').Extension<Pick<import('./TevmActionsApi.js').TevmActionsApi, 'dumpState'>>}\n */\nconst dumpStateAction = () => (client) => {\n\treturn {\n\t\tdumpState: dumpStateHandler(client),\n\t}\n}\n/**\n * @internal\n * @returns {import('@tevm/node').Extension<Pick<import('./TevmActionsApi.js').TevmActionsApi, 'loadState'>>}\n */\nconst loadStateAction = () => (client) => {\n\treturn {\n\t\tloadState: loadStateHandler(client),\n\t}\n}\n/**\n * @internal\n * @returns {import('@tevm/node').Extension<Pick<import('./TevmActionsApi.js').TevmActionsApi, 'mine'>>}\n */\nconst mineAction = () => (client) => {\n\treturn {\n\t\tmine: mineHandler(client),\n\t}\n}\n/**\n * @internal\n * @returns {import('@tevm/node').Extension<Pick<import('./TevmActionsApi.js').TevmActionsApi, 'deploy'>>}\n */\nconst deployAction = () => (client) => {\n\treturn {\n\t\tdeploy: deployHandler(client),\n\t}\n}\n/**\n * @internal\n * @returns {import('@tevm/node').Extension<Pick<import('./TevmActionsApi.js').TevmActionsApi, 'deal'>>}\n */\nconst dealAction = () => (client) => {\n\treturn {\n\t\tdeal: dealHandler(client),\n\t}\n}\n\n/**\n * @returns {import('@tevm/node').Extension<import('./TevmActionsApi.js').TevmActionsApi>}\n */\nexport const tevmActions = () => (client) => {\n\treturn client\n\t\t.extend(loadStateAction())\n\t\t.extend(dumpStateAction())\n\t\t.extend(contractAction())\n\t\t.extend(callAction())\n\t\t.extend(setAccountAction())\n\t\t.extend(getAccountAction())\n\t\t.extend(mineAction())\n\t\t.extend(deployAction())\n\t\t.extend(dealAction())\n}\n","import { requestProcedure } from '@tevm/actions'\n// TODO this is too simple of a function to be using from an external library\n// Write this internally in @tevm/utils\nimport { withRetry } from 'viem'\n\n// TODO we want to split up these requests into seperate decorators and\n// have typescript correctly merge the schemas as they go\n// Skipping for now because it isn't necessary for the current use case\n// of `memoryClient` and `httpClient` being the only provider implementations used\n// with default decorators. We do eventually want to move away from that pattern\n// towards a pattern of always decorating a base client with a set of decorators\n// Probabally a v 2.0 thing though\n\n/**\n * A decorator that adds the EIP-1193 request method to the client\n * @returns {import('@tevm/node').Extension<import('./Eip1193RequestProvider.js').Eip1193RequestProvider>}\n */\nexport const requestEip1193 = () => (client) => {\n\treturn {\n\t\trequest: async (args, options) => {\n\t\t\treturn withRetry(async () => {\n\t\t\t\tconst result = await requestProcedure(client)(\n\t\t\t\t\t/** @type any*/ ({\n\t\t\t\t\t\tjsonrpc: '2.0',\n\t\t\t\t\t\tid: 1,\n\t\t\t\t\t\tmethod: args.method,\n\t\t\t\t\t\t...(args.params ? { params: args.params } : {}),\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t\tif (result.error) {\n\t\t\t\t\tthrow result.error\n\t\t\t\t}\n\t\t\t\treturn /** @type {any}*/ (result.result)\n\t\t\t}, options)\n\t\t},\n\t}\n}\n","import { requestBulkProcedure, requestProcedure } from '@tevm/actions'\n/**\n * The low level method for sending and recieving a JSON-RPC request.\n * Strictly adheres to the JSON-RPC 2.0 spec.\n * See `requestEip1193` for a more user friendly method.\n * @returns {import('@tevm/node').Extension<import('./TevmSendApi.js').TevmSendApi>}\n */\nexport const tevmSend = () => (client) => {\n\treturn {\n\t\tsend: requestProcedure(client),\n\t\tsendBulk: requestBulkProcedure(client),\n\t}\n}\n"]}