npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

zeconomy-abstract-account-sdk

v1.0.0

Published

Readme

To initialize abstract account

This will depend on which everway you import it


const AbstractAccount = require("../src/abstract-account-zec-sdk")

const abstractAccount = new AbstractAccount(ethRPC, bundlerRPC, signerKey, signerPubKey, entryPoint, factoryAddress, abi)

/**
        ethRPC: The ethereum RPC such as the dev RPC
        bundlerRPC: The RPC to connect to the bundler's node
        signerKey: The private key to be used to create abstract accounts and to sign transactions
        signerPubKey: The public key for the private key to be used to create abstract accounts and to sign transactions
        entryPoint: The entrypoint address
        factoryAddress: The address of the factory contract
        abi: The abstract contract ABI
*/

const proxyAddress = await abstractAccount.deployAccount(bytecode, passphrase) // you will be provided with the bytecode. The passphrase will be provided by the user

//  create USER op. This is an example

/**
 * @param sender: The account making the operation
 * @param nonce: Anti-replay parameter for signature
 * @param initCode: for account creation. leave it at the default value "0x"
 * @param callData: The data to pass to the sender during the main execution call
 * @param verificationGasLimit: The amount of gas to allocate for the verification step
 * @param preVerificationGas:   The amount of gas to pay for to compensate the bundler for pre-verification execution and calldata
 * @param maxFeePerGas:	Maximum fee to be paid per gas. We can use the network's gas price here
 * @param maxPriorityFeePerGas: Maximum priority fee per gas. Can be the same value with maxFeePerGas
 * @param paymasterAndData: Address of paymaster sponsoring the transaction, followed by extra data to send to the paymaster. ( We don't have this so we can use "0x" as default )
 * @param signature: Data passed into the account along with the nonce during the verification step ( Don't worry about this field, the SDK will handle this part. Pass "0x" as default ) 
 */

let userOp = {
        "sender": walletAccount, 
        "nonce": "0x0",
        "initCode": "0x", 
        "callData": calldata,
        "callGasLimit": "0x650b1",
        "verificationGasLimit": "0x650b1",
        "maxFeePerGas": "0x6507a5e0",
        "maxPriorityFeePerGas": "0x6507a5e0",
        "paymasterAndData": "0x",
        "preVerificationGas": "0x650b1",
        "passPhrase": "access",
        "signature": "0x"
}

//  send to Bundler

opHash = await abstractAccount.sendToBundler(userOp)    // a returned ophash signifies a successful execution