UNPKG

@tevm/memory-client

Version:

MemoryClient for tevm is an in memory devnet for JavaScript

160 lines (155 loc) 4.92 kB
'use strict'; var viem = require('viem'); var common = require('@tevm/common'); var decorators = require('@tevm/decorators'); var node = require('@tevm/node'); var actions = require('@tevm/actions'); // src/createClient.js var createTevmTransport = (options = {}) => { const tevmMap = /* @__PURE__ */ new Map(); return ({ timeout = 2e4, retryCount = 3, chain }) => { const dynamicChain = chain && "ethjsCommon" in chain ? ( /** @type {import('@tevm/common').Common} */ chain ) : chain !== void 0 ? ( // if user passed in chain instead of common create a common from it with cancun and default eips common.createCommon({ ...chain, hardfork: "prague", loggingLevel: "warn" }) ) : void 0; const common$1 = options.common ?? dynamicChain; const id = common$1?.id ?? -1; const tevm = tevmMap.get(id) ?? node.createTevmNode({ ...options, ...common$1 !== void 0 ? { common: common$1 } : {} }).extend(decorators.requestEip1193()).extend(decorators.tevmSend()); tevmMap.set(id, tevm); return ( /** @type {any} */ viem.createTransport( { request: ( /** @type any */ tevm.request ), type: "tevm", name: ( /** options?.name ?? */ "Tevm transport" ), key: ( /* options?.key ?? */ "tevm" ), timeout, retryCount, retryDelay: ( /* options?.retryDelay ?? */ 150 ) }, { tevm } ) ); }; }; var tevmViemActions = () => { const extension = (client) => { const { call, contract, deploy, mine, loadState, dumpState, setAccount, getAccount, ready, deal } = client.transport.tevm.extend(decorators.tevmActions()); return { tevmReady: ready, tevmCall: call, tevmContract: contract, tevmDeploy: deploy, tevmMine: mine, tevmLoadState: loadState, tevmDumpState: dumpState, tevmSetAccount: setAccount, tevmGetAccount: getAccount, tevmDeal: deal }; }; return extension; }; // src/createMemoryClient.js var createMemoryClient = (options) => { const common$1 = (() => { if (options?.common !== void 0) { return options.common; } if (options?.fork?.transport) { return void 0; } return common.tevmDefault; })(); const memoryClient = viem.createClient({ ...options, cacheTime: 0, transport: createTevmTransport({ ...options, ...common$1 !== void 0 ? { common: common$1 } : {} }), type: "tevm", ...common$1 !== void 0 ? { chain: common$1 } : {} }).extend(tevmViemActions()).extend(viem.publicActions).extend(viem.walletActions).extend(viem.testActions({ mode: "anvil" })); return ( /** @type {any} */ memoryClient ); }; var tevmCall = async (client, params) => { return actions.callHandler(client.transport.tevm)(params); }; var tevmContract = async (client, params) => { return actions.contractHandler(client.transport.tevm)( /** @type {any}*/ params ); }; var tevmDeploy = async (client, params) => { return actions.deployHandler(client.transport.tevm)(params); }; var tevmDumpState = async (client) => { return actions.dumpStateHandler(client.transport.tevm)(); }; var tevmGetAccount = async (client, params) => { return actions.getAccountHandler(client.transport.tevm)(params); }; var tevmLoadState = async (client, params) => { return actions.loadStateHandler(client.transport.tevm)(params); }; var tevmMine = async (client, params) => { return actions.mineHandler(client.transport.tevm)(params); }; // src/tevmReady.js var tevmReady = async (client) => { return client.transport.tevm.ready(); }; var tevmSetAccount = async (client, params) => { return actions.setAccountHandler(client.transport.tevm)(params); }; Object.defineProperty(exports, "createClient", { enumerable: true, get: function () { return viem.createClient; } }); Object.defineProperty(exports, "publicActions", { enumerable: true, get: function () { return viem.publicActions; } }); Object.defineProperty(exports, "testActions", { enumerable: true, get: function () { return viem.testActions; } }); Object.defineProperty(exports, "walletActions", { enumerable: true, get: function () { return viem.walletActions; } }); exports.createMemoryClient = createMemoryClient; exports.createTevmTransport = createTevmTransport; exports.tevmCall = tevmCall; exports.tevmContract = tevmContract; exports.tevmDeploy = tevmDeploy; exports.tevmDumpState = tevmDumpState; exports.tevmGetAccount = tevmGetAccount; exports.tevmLoadState = tevmLoadState; exports.tevmMine = tevmMine; exports.tevmReady = tevmReady; exports.tevmSetAccount = tevmSetAccount; exports.tevmViemActions = tevmViemActions; //# sourceMappingURL=index.cjs.map //# sourceMappingURL=index.cjs.map