UNPKG

permissionless

Version:

A utility library for working with ERC-4337

97 lines (83 loc) 2.66 kB
import { http, createPublicClient } from "viem" import { entryPoint06Address, entryPoint07Address } from "viem/account-abstraction" import { describe, expect } from "vitest" import { testWithRpc } from "../../../permissionless-test/src/testWithRpc" import { getBundlerClient, getSimpleAccountClient } from "../../../permissionless-test/src/utils" import { getAccountNonce } from "./getAccountNonce" describe("getAccountNonce", () => { testWithRpc("getAccountNonce_V06", async ({ rpc }) => { const { anvilRpc } = rpc const client = createPublicClient({ transport: http(anvilRpc) }) const simpleAccountClient = getBundlerClient({ account: await getSimpleAccountClient({ ...rpc, entryPoint: { version: "0.6" } }), entryPoint: { version: "0.6" }, ...rpc }) const nonce = await getAccountNonce(client, { entryPointAddress: entryPoint06Address, address: simpleAccountClient.account.address }) expect(nonce).toBe(0n) }) testWithRpc("getAccountNonce_V07", async ({ rpc }) => { const { anvilRpc } = rpc const client = createPublicClient({ transport: http(anvilRpc) }) const simpleAccountClient = getBundlerClient({ account: await getSimpleAccountClient({ ...rpc, entryPoint: { version: "0.7" } }), entryPoint: { version: "0.7" }, ...rpc }) const nonce = await getAccountNonce(client, { entryPointAddress: entryPoint07Address, address: simpleAccountClient.account.address }) expect(nonce).toBe(0n) }) testWithRpc("getAccountNonce_V08", async ({ rpc }) => { const { anvilRpc } = rpc const client = createPublicClient({ transport: http(anvilRpc) }) const simpleAccountClient = getBundlerClient({ account: await getSimpleAccountClient({ ...rpc, entryPoint: { version: "0.8" } }), entryPoint: { version: "0.8" }, ...rpc }) const nonce = await getAccountNonce(client, { entryPointAddress: entryPoint07Address, address: simpleAccountClient.account.address }) expect(nonce).toBe(0n) }) })