From 38000b58318c504420d745ff7a8fbea46204e725 Mon Sep 17 00:00:00 2001 From: Garvit Khatri Date: Mon, 15 Apr 2024 23:25:53 +0530 Subject: [PATCH 1/4] Use viem's getAction --- bun.lockb | Bin 526384 -> 526976 bytes packages/permissionless-test/package.json | 2 +- .../bundler/waitForUserOperationReceipt.ts | 5 +++-- .../actions/public/getAccountNonce.ts | 5 +++-- .../actions/public/getSenderAddress.ts | 5 +++-- .../actions/smartAccount/deployContract.ts | 8 +++++--- .../prepareUserOperationRequest.ts | 13 ++++++++++--- .../actions/smartAccount/sendTransaction.ts | 8 +++++--- .../actions/smartAccount/sendTransactions.ts | 8 +++++--- .../actions/smartAccount/sendUserOperation.ts | 5 +++-- .../actions/smartAccount/writeContract.ts | 5 +++-- packages/permissionless/package.json | 2 +- packages/permissionless/utils/getAction.ts | 16 ---------------- packages/permissionless/utils/index.ts | 2 -- packages/wagmi-test-demo/package.json | 2 +- packages/wagmi/package.json | 2 +- 16 files changed, 44 insertions(+), 44 deletions(-) delete mode 100644 packages/permissionless/utils/getAction.ts diff --git a/bun.lockb b/bun.lockb index 66db1e89249c59135a4374e982a9ff7921fc2263..09ec32a0bd8c7c1c994e48a4247ccac147c5dccd 100755 GIT binary patch delta 61140 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 diff --git a/packages/permissionless-test/package.json b/packages/permissionless-test/package.json index bfced29d..c2958c28 100644 --- a/packages/permissionless-test/package.json +++ b/packages/permissionless-test/package.json @@ -20,6 +20,6 @@ "execa": "^8.0.1", "get-port": "^7.0.0", "permissionless": "workspace:packages/permissionless", - "viem": "^2.0.0" + "viem": "2.9.17" } } diff --git a/packages/permissionless/actions/bundler/waitForUserOperationReceipt.ts b/packages/permissionless/actions/bundler/waitForUserOperationReceipt.ts index 717d5e4a..f8945da3 100644 --- a/packages/permissionless/actions/bundler/waitForUserOperationReceipt.ts +++ b/packages/permissionless/actions/bundler/waitForUserOperationReceipt.ts @@ -7,8 +7,8 @@ import { type Transport, stringify } from "viem" +import { getAction } from "viem/utils" import type { Prettify } from "../../types/" -import { getAction } from "../../utils/getAction" import { observe } from "../../utils/observe" import { type GetUserOperationReceiptReturnType, @@ -94,7 +94,8 @@ export const waitForUserOperationReceipt = < try { const _userOperationReceipt = await getAction( bundlerClient, - getUserOperationReceipt + getUserOperationReceipt, + "getUserOperationReceipt" )({ hash }) if (_userOperationReceipt !== null) { diff --git a/packages/permissionless/actions/public/getAccountNonce.ts b/packages/permissionless/actions/public/getAccountNonce.ts index 5b0ecd8d..218f4299 100644 --- a/packages/permissionless/actions/public/getAccountNonce.ts +++ b/packages/permissionless/actions/public/getAccountNonce.ts @@ -1,8 +1,8 @@ import type { Address, Chain, Client, Transport } from "viem" import { readContract } from "viem/actions" +import { getAction } from "viem/utils" import type { Prettify } from "../../types/" import type { EntryPoint } from "../../types/entrypoint" -import { getAction } from "../../utils/getAction" export type GetAccountNonceParams = { sender: Address @@ -47,7 +47,8 @@ export const getAccountNonce = async < return await getAction( client, - readContract + readContract, + "readContract" )({ address: entryPoint, abi: [ diff --git a/packages/permissionless/actions/public/getSenderAddress.ts b/packages/permissionless/actions/public/getSenderAddress.ts index 191ea768..d8ade9d8 100644 --- a/packages/permissionless/actions/public/getSenderAddress.ts +++ b/packages/permissionless/actions/public/getSenderAddress.ts @@ -14,12 +14,12 @@ import { } from "viem" import { simulateContract } from "viem/actions" +import { getAction } from "viem/utils" import type { Prettify } from "../../types/" import type { ENTRYPOINT_ADDRESS_V06_TYPE, EntryPoint } from "../../types/entrypoint" -import { getAction } from "../../utils/getAction" export type GetSenderAddressParams = entryPoint extends ENTRYPOINT_ADDRESS_V06_TYPE @@ -98,7 +98,8 @@ export const getSenderAddress = async < try { await getAction( client, - simulateContract + simulateContract, + "simulateContract" )({ address: entryPoint, abi: [ diff --git a/packages/permissionless/actions/smartAccount/deployContract.ts b/packages/permissionless/actions/smartAccount/deployContract.ts index 315654c1..8539e873 100644 --- a/packages/permissionless/actions/smartAccount/deployContract.ts +++ b/packages/permissionless/actions/smartAccount/deployContract.ts @@ -7,11 +7,11 @@ import type { Hash, Transport } from "viem" +import { getAction } from "viem/utils" import type { SmartAccount } from "../../accounts/types" import type { Prettify } from "../../types/" import type { EntryPoint } from "../../types/entrypoint" import { parseAccount } from "../../utils/" -import { getAction } from "../../utils/getAction" import { AccountOrClientNotFoundError } from "../../utils/signUserOperationHashWithECDSA" import { waitForUserOperationReceipt } from "../bundler/waitForUserOperationReceipt" import { type Middleware } from "./prepareUserOperationRequest" @@ -84,7 +84,8 @@ export async function deployContract< const userOpHash = await getAction( client, - sendUserOperation + sendUserOperation, + "sendUserOperation" )({ userOperation: { sender: account.address, @@ -102,7 +103,8 @@ export async function deployContract< const userOperationReceipt = await getAction( client, - waitForUserOperationReceipt + waitForUserOperationReceipt, + "waitForUserOperationReceipt" )({ hash: userOpHash }) diff --git a/packages/permissionless/actions/smartAccount/prepareUserOperationRequest.ts b/packages/permissionless/actions/smartAccount/prepareUserOperationRequest.ts index a370ec1c..6d8ea55f 100644 --- a/packages/permissionless/actions/smartAccount/prepareUserOperationRequest.ts +++ b/packages/permissionless/actions/smartAccount/prepareUserOperationRequest.ts @@ -1,5 +1,6 @@ import type { Chain, Client, Transport } from "viem" import { estimateFeesPerGas } from "viem/actions" +import { getAction } from "viem/utils" import type { SmartAccount } from "../../accounts/types" import type { GetAccountParameter, @@ -15,7 +16,6 @@ import type { GetEntryPointVersion } from "../../types/entrypoint" import { AccountOrClientNotFoundError, parseAccount } from "../../utils/" -import { getAction } from "../../utils/getAction" import { getEntryPointVersion } from "../../utils/getEntryPointVersion" import { estimateUserOperationGas } from "../bundler/estimateUserOperationGas" @@ -211,7 +211,11 @@ async function prepareUserOperationRequestForEntryPointV06< !userOperation.verificationGasLimit || !userOperation.preVerificationGas ) { - const gasParameters = await getAction(client, estimateUserOperationGas)( + const gasParameters = await getAction( + client, + estimateUserOperationGas, + "estimateUserOperationGas" + )( { userOperation, entryPoint: account.entryPoint @@ -219,6 +223,7 @@ async function prepareUserOperationRequestForEntryPointV06< userOperation: UserOperation> entryPoint: entryPoint }, + // @ts-ignore geetAcrtion takes only two params but when compiled this will work stateOverrides ) @@ -365,12 +370,14 @@ async function prepareUserOperationRequestEntryPointV07< ) { const gasParameters = await getAction( client, - estimateUserOperationGas + estimateUserOperationGas, + "estimateUserOperationGas" )( { userOperation, entryPoint: account.entryPoint }, + // @ts-ignore geetAcrtion takes only two params but when compiled this will work stateOverrides ) diff --git a/packages/permissionless/actions/smartAccount/sendTransaction.ts b/packages/permissionless/actions/smartAccount/sendTransaction.ts index dd15f0dc..a3a415f4 100644 --- a/packages/permissionless/actions/smartAccount/sendTransaction.ts +++ b/packages/permissionless/actions/smartAccount/sendTransaction.ts @@ -5,11 +5,11 @@ import type { SendTransactionParameters, Transport } from "viem" +import { getAction } from "viem/utils" import { type SmartAccount } from "../../accounts/types" import type { Prettify } from "../../types/" import type { EntryPoint } from "../../types/entrypoint" import { AccountOrClientNotFoundError, parseAccount } from "../../utils/" -import { getAction } from "../../utils/getAction" import { waitForUserOperationReceipt } from "../bundler/waitForUserOperationReceipt" import { type Middleware } from "./prepareUserOperationRequest" import { sendUserOperation } from "./sendUserOperation" @@ -119,7 +119,8 @@ export async function sendTransaction< const userOpHash = await getAction( client, - sendUserOperation + sendUserOperation, + "sendUserOperation" )({ userOperation: { sender: account.address, @@ -134,7 +135,8 @@ export async function sendTransaction< const userOperationReceipt = await getAction( client, - waitForUserOperationReceipt + waitForUserOperationReceipt, + "waitForUserOperationReceipt" )({ hash: userOpHash }) diff --git a/packages/permissionless/actions/smartAccount/sendTransactions.ts b/packages/permissionless/actions/smartAccount/sendTransactions.ts index 1955f404..7189c3af 100644 --- a/packages/permissionless/actions/smartAccount/sendTransactions.ts +++ b/packages/permissionless/actions/smartAccount/sendTransactions.ts @@ -7,11 +7,11 @@ import type { SendTransactionParameters, Transport } from "viem" +import { getAction } from "viem/utils" import { type SmartAccount } from "../../accounts/types" import type { GetAccountParameter, Prettify } from "../../types/" import type { EntryPoint } from "../../types/entrypoint" import { AccountOrClientNotFoundError, parseAccount } from "../../utils/" -import { getAction } from "../../utils/getAction" import { waitForUserOperationReceipt } from "../bundler/waitForUserOperationReceipt" import { type Middleware } from "./prepareUserOperationRequest" import { sendUserOperation } from "./sendUserOperation" @@ -120,7 +120,8 @@ export async function sendTransactions< const userOpHash = await getAction( client, - sendUserOperation + sendUserOperation, + "sendUserOperation" )({ userOperation: { sender: account.address, @@ -135,7 +136,8 @@ export async function sendTransactions< const userOperationReceipt = await getAction( client, - waitForUserOperationReceipt + waitForUserOperationReceipt, + "waitForUserOperationReceipt" )({ hash: userOpHash }) diff --git a/packages/permissionless/actions/smartAccount/sendUserOperation.ts b/packages/permissionless/actions/smartAccount/sendUserOperation.ts index 3b168cbc..84e9afc5 100644 --- a/packages/permissionless/actions/smartAccount/sendUserOperation.ts +++ b/packages/permissionless/actions/smartAccount/sendUserOperation.ts @@ -1,4 +1,5 @@ import type { Chain, Client, Hash, Transport } from "viem" +import { getAction } from "viem/utils" import type { SmartAccount } from "../../accounts/types" import type { GetAccountParameter, @@ -12,7 +13,6 @@ import type { GetEntryPointVersion } from "../../types/entrypoint" import { AccountOrClientNotFoundError, parseAccount } from "../../utils/" -import { getAction } from "../../utils/getAction" import { sendUserOperation as sendUserOperationBundler } from "../bundler/sendUserOperation" import { type Middleware, @@ -77,7 +77,8 @@ export async function sendUserOperation< const userOperation = await getAction( client, - prepareUserOperationRequest + prepareUserOperationRequest, + "prepareUserOperationRequest" )(args) userOperation.signature = await account.signUserOperation( diff --git a/packages/permissionless/actions/smartAccount/writeContract.ts b/packages/permissionless/actions/smartAccount/writeContract.ts index 3a0058d7..8e29d521 100644 --- a/packages/permissionless/actions/smartAccount/writeContract.ts +++ b/packages/permissionless/actions/smartAccount/writeContract.ts @@ -10,9 +10,9 @@ import { type WriteContractParameters, encodeFunctionData } from "viem" +import { getAction } from "viem/utils" import { type SmartAccount } from "../../accounts/types" import type { EntryPoint } from "../../types/entrypoint" -import { getAction } from "../../utils/getAction" import { type Middleware } from "./prepareUserOperationRequest" import { type SendTransactionWithPaymasterParameters, @@ -138,7 +138,8 @@ export async function writeContract< } as EncodeFunctionDataParameters) const hash = await getAction( client, - sendTransaction + sendTransaction, + "sendTransaction" )({ data: `${data}${dataSuffix ? dataSuffix.replace("0x", "") : ""}`, to: address, diff --git a/packages/permissionless/package.json b/packages/permissionless/package.json index 1fb2790e..1d52b2e0 100644 --- a/packages/permissionless/package.json +++ b/packages/permissionless/package.json @@ -82,6 +82,6 @@ } }, "peerDependencies": { - "viem": "^2.0.0" + "viem": "^2.9.17" } } diff --git a/packages/permissionless/utils/getAction.ts b/packages/permissionless/utils/getAction.ts deleted file mode 100644 index 66ac9a74..00000000 --- a/packages/permissionless/utils/getAction.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { Client } from "viem" - -// biome-ignore lint/suspicious/noExplicitAny: it's a generic function, so it's hard to type -export function getAction( - client: Client, - // biome-ignore lint/suspicious/noExplicitAny: it's a recursive function, so it's hard to type - action: (_: any, ...params: params) => returnType, - actionName: string = action.name -) { - return (...params: params): returnType => - ( - client as Client & { - [key: string]: (...params: params) => returnType - } - )[actionName]?.(...params) ?? action(client, ...params) -} diff --git a/packages/permissionless/utils/index.ts b/packages/permissionless/utils/index.ts index c8adb0bf..99d5896c 100644 --- a/packages/permissionless/utils/index.ts +++ b/packages/permissionless/utils/index.ts @@ -1,6 +1,5 @@ import type { Account, Address } from "viem" import { deepHexlify, transactionReceiptStatus } from "./deepHexlify" -import { getAction } from "./getAction" import { getAddressFromInitCodeOrPaymasterAndData } from "./getAddressFromInitCodeOrPaymasterAndData" import { type GetRequiredPrefundReturnType, @@ -35,7 +34,6 @@ import { getPackedUserOperation } from "./getPackedUserOperation" export { transactionReceiptStatus, deepHexlify, - getAction, getUserOperationHash, getRequiredPrefund, walletClientToSmartAccountSigner, diff --git a/packages/wagmi-test-demo/package.json b/packages/wagmi-test-demo/package.json index c577dd1a..56f6792d 100644 --- a/packages/wagmi-test-demo/package.json +++ b/packages/wagmi-test-demo/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "wagmi": "^2.5.1", - "viem": "^2.0.0", + "viem": "2.9.17", "@tanstack/react-query": "5.0.5", "react": "^18.2.0", "permissionless": "0.0.36", diff --git a/packages/wagmi/package.json b/packages/wagmi/package.json index fad4764f..22ff9e4e 100644 --- a/packages/wagmi/package.json +++ b/packages/wagmi/package.json @@ -25,6 +25,6 @@ }, "peerDependencies": { "wagmi": "^2.5.1", - "viem": "^2.0.0" + "viem": "2.9.17" } } From 89847b202c5641ff0f17647ec3d12d35a7b5b8cd Mon Sep 17 00:00:00 2001 From: Garvit Khatri Date: Mon, 15 Apr 2024 23:27:45 +0530 Subject: [PATCH 2/4] Fix spelling --- .../actions/smartAccount/prepareUserOperationRequest.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/permissionless/actions/smartAccount/prepareUserOperationRequest.ts b/packages/permissionless/actions/smartAccount/prepareUserOperationRequest.ts index 6d8ea55f..edfc8d82 100644 --- a/packages/permissionless/actions/smartAccount/prepareUserOperationRequest.ts +++ b/packages/permissionless/actions/smartAccount/prepareUserOperationRequest.ts @@ -223,7 +223,7 @@ async function prepareUserOperationRequestForEntryPointV06< userOperation: UserOperation> entryPoint: entryPoint }, - // @ts-ignore geetAcrtion takes only two params but when compiled this will work + // @ts-ignore getAction takes only two params but when compiled this will work stateOverrides ) @@ -377,7 +377,7 @@ async function prepareUserOperationRequestEntryPointV07< userOperation, entryPoint: account.entryPoint }, - // @ts-ignore geetAcrtion takes only two params but when compiled this will work + // @ts-ignore getAction takes only two params but when compiled this will work stateOverrides ) From 3651f6c57c2e05aab66967295d1b510ece220949 Mon Sep 17 00:00:00 2001 From: Garvit Khatri Date: Mon, 15 Apr 2024 23:32:46 +0530 Subject: [PATCH 3/4] add changeset --- .changeset/small-bulldogs-press.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/small-bulldogs-press.md diff --git a/.changeset/small-bulldogs-press.md b/.changeset/small-bulldogs-press.md new file mode 100644 index 00000000..c0f12124 --- /dev/null +++ b/.changeset/small-bulldogs-press.md @@ -0,0 +1,5 @@ +--- +"permissionless": patch +--- + +fix getAction for cases where minifier changes function names From 0cd642832b4bdf3a67d09e6ed20942caeb826e45 Mon Sep 17 00:00:00 2001 From: Garvit Khatri Date: Mon, 15 Apr 2024 23:33:55 +0530 Subject: [PATCH 4/4] increase size --- .size-limit.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.size-limit.json b/.size-limit.json index b2305a09..6ad6af73 100644 --- a/.size-limit.json +++ b/.size-limit.json @@ -2,18 +2,18 @@ { "name": "permissionless (esm)", "path": "./packages/permissionless/_esm/index.js", - "limit": "35 kB", + "limit": "40 kB", "import": "*" }, { "name": "permissionless (cjs)", "path": "./packages/permissionless/_cjs/index.js", - "limit": "150 kB" + "limit": "160 kB" }, { "name": "permissionless (minimal surface - tree-shaking)", "path": "./packages/permissionless/_esm/index.js", - "limit": "15 kB", + "limit": "20 kB", "import": "{ bundlerActions }" } ]