Skip to main content

AbstractionKit V0.2.0 Release

· 3 min read

abstractionkit_poster

We have released a new version of AbstractionKit, now equipped with new features for designing Smart Wallets. This version aligns with the latest Account Abstraction upgrades in EntryPoint v0.7. It includes audited, battle-tested Safe Smart Accounts and new Modules not previously available in the latest stable release, providing end users with greater flexibility and ownership control without compromising on the user experience.

We highlight here the main features and the changelog for developers integrating with AbstractionKit. If you want to learn more about these features, see our blogpost on Introduction AbstractionKit V0.02.

New Features

  • EntryPoint v0.7 Support:

    • Added support for EntryPoint v0.7 in the Bundler class.
    • Added support for EntryPoint v0.7 in the CandidePaymaster class.
  • CandidePaymaster:

    • Integrated support for Candide Paymaster API V3, that introduces Gas Policies sponsorship.
  • SafeAccountV0.3.0:

    • Added support for SafeAccountV0_3_0, which includes compatibility with ERC-4337 EntryPoint v0.7.
  • New Modules:

    • Added support for the Safe Passkeys, enhancing security with WebAuthn authentication.
    • Added support for the Social Recovery, bringing the ability for onchain account recovery.

Breaking Changes

  1. CandidePaymaster:

    import { CandidePaymaster } from "abstractionkit";

    const paymasterRpc = "https://api.candide.dev/paymaster/$version/$network/$apikey";
    const paymaster: CandidePaymaster = new CandidePaymaster(paymasterRPC);

    // Construct user operation using createUserOperation()
    const userOperation = smartAccount.createUserOperation(..);

    // New return structure
    const [sponsoredUserOperation, sponsorMetadata] =
    await paymaster.createSponsorPaymasterUserOperation(
    userOperation,
    bundlerUrl
    );

    Ensure your implementation captures both values, as the sponsor metadata is now a necessary part of the returned operation.

  2. SafeAccountV0_2_0 Update:

    • The variable EIP712_SAFE_OPERATION has been removed from the SafeAccountV0_2_0 class. It is now imported as a constant from the library. Please update your imports:
    // EntryPoint V0.06
    import { EIP712_SAFE_OPERATION_V6_TYPE } from "abstractionkit";
    // or for EntryPoint V0.07
    import { EIP712_SAFE_OPERATION_V7_TYPE } from "abstractionkit";
  3. Some breaking changes to internal and advanced functions. Please see our updated docs for the specific updates.

Update Guides from v0.1.3

To update from v0.1.3 to v0.2.0, ensure the following changes are made in your code:

  1. Update any references to createSponsorPaymasterUserOperation to capture both the sponsoredUserOperation and the sponsorMetadata.
  2. For SafeAccount implementations, replace EIP712_SAFE_OPERATION with the correct imported constant from the updated library version.
  3. Review new module integrations (e.g., Safe Passkeys Module and Social Recovery Module) to determine if your application can leverage these enhanced features.
  4. Consider updating to the latest SafeAccountV0_3_0, so you can benefit your users from the latest Account Abstraction upgrades.

Dedicated Office Hours for Enterprises

To assist with this upgrades, we are offering dedicated office hours for enterprise customers on the Leader plan. Our team is be available to answer any questions, provide technical support, and ensure a smooth migration to v0.2.0.

Feel free to reach out directly to our private support channels schedule a session or ask about specific migration challenges.