{"id":25302048,"url":"https://github.com/shivamycodee/vice-aa","last_synced_at":"2026-03-06T10:32:24.987Z","repository":{"id":214628233,"uuid":"737000768","full_name":"Shivamycodee/vice-aa","owner":"Shivamycodee","description":"made account abstraction easy to understand and use.","archived":false,"fork":false,"pushed_at":"2025-01-23T18:48:10.000Z","size":35,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-05T16:42:29.238Z","etag":null,"topics":["account-abstraction","erc4337","erc4337-supported-blockexplorer","polygon-mumbai","polygon-network"],"latest_commit_sha":null,"homepage":"https://npmjs.com/package/vice-aa","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Shivamycodee.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-29T13:59:17.000Z","updated_at":"2025-01-23T18:48:14.000Z","dependencies_parsed_at":"2025-04-07T01:42:36.181Z","dependency_job_id":null,"html_url":"https://github.com/Shivamycodee/vice-aa","commit_stats":null,"previous_names":["shivamycodee/vice-aa"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Shivamycodee/vice-aa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shivamycodee%2Fvice-aa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shivamycodee%2Fvice-aa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shivamycodee%2Fvice-aa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shivamycodee%2Fvice-aa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Shivamycodee","download_url":"https://codeload.github.com/Shivamycodee/vice-aa/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shivamycodee%2Fvice-aa/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30171869,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T07:56:45.623Z","status":"ssl_error","status_checked_at":"2026-03-06T07:55:55.621Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["account-abstraction","erc4337","erc4337-supported-blockexplorer","polygon-mumbai","polygon-network"],"created_at":"2025-02-13T06:50:51.014Z","updated_at":"2026-03-06T10:32:24.958Z","avatar_url":"https://github.com/Shivamycodee.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Installation\n\n```javascript\nnpm install vice-aa\n```\n\n## Supported Networks \n\n- [AMOY NETWORK](https://amoy.polygonscan.com/) \n- [MUMBAI NETWORK](https://mumbai.polygonscan.com/) (Depreciated.)\n- [POLYGON NETWORK](https://polygonscan.com/) (Comming Soon...)\n \n## Paymaster URL's\n\nSimple Paymaster -\u003e https://vice-aa-api.vercel.app/paymaster\n\nERC20 Token Paymaster -\u003e https://vice-aa-api.vercel.app/tokenpaymaster\n\n\n# ERC20 Token For TokenPaymaster\n\n- Token Name: HYPER TOKEN \n- Token Address: [0x5c54b57557BAB28aC1C416063f657d8C89842896](https://amoy.polygonscan.com/token/0x5c54b57557BAB28aC1C416063f657d8C89842896)\n\nYou can get this token from [Uniswap](https://app.uniswap.org/swap)\n\n\u003e ⚠️ **WARNING:** MAKE SURE TO APPROVE THE [ERC20PAYMASTER](https://amoy.polygonscan.com/address/0x22bE1dca416b40dc67F1fD09Eaa49347E5b34720) CONTRACT FOR HYPER TOKEN TO USE ERC20PAYMASTER URL.\n\n\n## Usage\n\nThis package provides four main functions:\n\n- `getUserOperation`\n- `getSignedUserOp`\n- `CustomJsonRpcProvider`\n- `waitForReceipt`\n\nFollow the steps below to use these functions in your project.\n\n### Step 1: Create a Provider and Contract Instance\n\nFirst, set up your provider and create an instance of the contract with which you wish to interact.\n\n```javascript\nimport { ethers } from \"ethers\";\nimport { YourContractAddress, YourContractABI } from \"\u003cyour-contract-data-location\u003e\";\n\nconst provider = new ethers.providers.Web3Provider(window.ethereum);\nconst contract = new ethers.Contract(YourContractAddress, YourContractABI, provider);\n```\n\n\n## Step 2: Populate Your Transaction\n\nNext, populate the transaction you intend to execute.\n\n```javascript\nconst populatedTx = await contract.populateTransaction.\u003cYourContractMethod\u003e(\n  // Method parameters go here\n);\n```\n\n## Step 3: Get User Operation\n\nUse getUserOperation with your contract wallet address, contract address, populated transaction, paymaster URL, and your chosen RPC URL.\n\n```javascript\nimport { getUserOperation } from \"vice-aa\";\n\nconst userOperation = await getUserOperation(\n  yourContractWalletAddress,\n  YourContractAddress,\n  populatedTx,\n  \"https://\u003cyour-paymaster-url\u003e\",\n  \"\u003cyour-rpc-url\u003e\"\n);\n```\n\n## Step 4: Get Signed User Operation\n\n\nThen, call getSignedUserOp with the userOperation , paymaster URL, and a boolean to indicate the type of paymaster.\n\n```javascript\nimport { getSignedUserOp } from \"vice-aa\";\n\nconst signedUserOp = await getSignedUserOp(\n  userOperation,\n  \"https://\u003cyour-paymaster-url\u003e\",\n  true // Set to false for ERC20 paymaster\n);\n```\n\n## Step 5: Send User Operation\n\nCreate a custom provider and send the user operation.\n\n```javascript\nimport { CustomJsonRpcProvider } from \"vice-aa\";\n\nconst customProvider = new CustomJsonRpcProvider(\"\u003cyour-rpc-url\u003e\");\nconst userOpHash = await customProvider.sendUserOperation(signedUserOp);\n```\n\n## Step 6: Wait for Transaction Receipt\n\nFinally, wait for the transaction hash using waitForReceipt.\n\n```javascript\nimport { waitForReceipt } from \"vice-aa\";\nconst txHash = await waitForReceipt(customProvider, userOpHash);\n```\n\n## Example \n\n- [Apporve A Contract for Token Transfer](https://gist.github.com/Shivamycodee/ea3364cf816863c62cdeb9e6d0b556d0)\n\n## Support\n\nFor additional support or queries, feel free to reach out or open an issue on the [vice-aa repository](https://github.com/Shivamycodee/vice-aa).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshivamycodee%2Fvice-aa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshivamycodee%2Fvice-aa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshivamycodee%2Fvice-aa/lists"}