New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@cometh/connect-sdk-4337

Package Overview
Dependencies
Maintainers
0
Versions
78
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@cometh/connect-sdk-4337

SDK Cometh Connect 4337

1.0.7
latest
Source
npm
Version published
Weekly downloads
91
-69.67%
Maintainers
0
Weekly downloads
 
Created
Source

Cometh Connect SDK

This SDK help any dApps to get a smoother UX for your end-users (control a wallet with biometrics, pay for his gas fees, social recovery...)

Installation

bun add viem @cometh/connect-sdk-4337

Setup

import { createComethPaymasterClient, createSafeSmartAccount, createSmartAccountClient } from "@cometh/connect-sdk-4337";
import { arbitrumSepolia } from "viem/chains";
import { http } from "viem";

const apiKey = process.env.NEXT_PUBLIC_COMETH_API_KEY;
const bundlerUrl = process.env.NEXT_PUBLIC_4337_BUNDLER_URL;

const smartAccount = await createSafeSmartAccount({
    apiKey,
    entryPoint: ENTRYPOINT_ADDRESS_V07 ,
})

const paymasterClient = await createComethPaymasterClient({
    transport: http(paymasterUrl),
    chain,
})

 const smartAccountClient = createSmartAccountClient({
    account: smartAccount,
    chain,
    bundlerTransport: http(bundlerUrl),
    paymaster: paymasterClient,
    userOperation: {
        estimateFeesPerGas: async () => {
            return await paymasterClient.getUserOperationGasPrice();
        },
    }
})

Send transaction

import { smartAccountClient } from "./client";
import countContractAbi from "../contract/counterABI.json";

const calldata = encodeFunctionData({
    abi: countContractAbi,
    functionName: "count",
});
  
const txHash =  await smartAccount.sendTransaction({
    to: COUNTER_CONTRACT_ADDRESS,
    data: calldata,
});

Send batch transactions

import { smartAccountClient } from "./client";
import countContractAbi from "../contract/counterABI.json";

const calldata = encodeFunctionData({
    abi: countContractAbi,
    functionName: "count",
});
  
const txHash =  await smartAccount.sendTransactions({
    calls: [
        {
        to: COUNTER_CONTRACT_ADDRESS,
        data: calldata,
        },
        {
        to: COUNTER_CONTRACT_ADDRESS,
        data: calldata,
        },
    ],
});

Handle owners

import { smartAccountClient } from "./client";

// get owners
const owners = await smartAccountClient.getOwners()

// get enriched owners (with passkey credentials)
const enrichedOwners = await smartAccountClient.getEnrichedOwners()

// add a new owner
await smartAccountClient.addOwner({ownerToAdd:OWNER_ADDRESS_TO_ADD})

// remove an owner
await smartAccountClient.removeOwner({ownerToRemove:OWNER_ADDRESS_TO_REMOVE})

Keywords

cometh

FAQs

Package last updated on 28 Feb 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts