0.1.11 • Published 9 months ago
@cometh/connect-sdk-4337 v0.1.11
Cometh Connect SDK
This SDK help any dApps to get a smoother UX for your end-users (contro a wallet with biometrics, pay for his gas fees, social recovery...)
Installation
bun add viem @cometh/connect-sdk-4337
Setup
import { ENTRYPOINT_ADDRESS_V07, 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(bundlerUrl),
chain: arbitrumSepolia,
entryPoint: ENTRYPOINT_ADDRESS_V07,
})
const smartAccountClient = createSmartAccountClient({
account: smartAccount,
entryPoint: ENTRYPOINT_ADDRESS_V07,
chain: arbitrumSepolia,
bundlerTransport: http(bundlerUrl),
middleware: {
sponsorUserOperation: paymasterClient.sponsorUserOperation,
gasPrice: paymasterClient.gasPrice,
}
})
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({
transactions: [
{
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})
0.1.10
10 months ago
0.1.11
9 months ago
0.1.10-dev.2
10 months ago
0.1.10-dev.3
10 months ago
0.1.10-dev.1
10 months ago
0.1.9
10 months ago
0.1.6-dev.2
10 months ago
0.1.6-dev.1
10 months ago
0.1.6-dev.4
10 months ago
0.1.4-dev.2
11 months ago
0.1.6-dev.3
10 months ago
0.1.4-dev.1
11 months ago
0.1.7-dev.1
10 months ago
0.1.5-dev.1
10 months ago
0.1.8
10 months ago
0.1.7
10 months ago
0.1.4
11 months ago
0.1.3
11 months ago
0.1.6
10 months ago
0.1.5
10 months ago
0.1.0-rc.3
12 months ago
0.1.0-dev.13
1 year ago
0.1.1-dev.1
12 months ago
0.1.0-dev.12
1 year ago
0.1.1-dev.2
12 months ago
0.1.0-rc.1
1 year ago
0.1.0-dev.11
1 year ago
0.1.0-rc.2
12 months ago
0.1.0-dev.10
1 year ago
0.1.0-dev.14
1 year ago
0.1.2-dev.1
11 months ago
0.1.2-dev.2
11 months ago
0.1.0
12 months ago
0.1.0-dev.7
1 year ago
0.1.0-dev.8
1 year ago
0.1.1
12 months ago
0.1.0-dev.9
1 year ago
0.1.0-dev.6
1 year ago
0.1.0-dev.5
1 year ago
0.1.0-dev.4
1 year ago
0.1.0-dev.3
1 year ago
0.1.0-dev.2
1 year ago
0.1.0-dev.1
1 year ago