Giter VIP home page Giter VIP logo

hardhat-plugin's Introduction

ZeroDev Hardhat Plugin

A Hardhat plugin that runs a ZeroDev mock server.

What

Sometimes you want to test you Dapps locally. To do that, ZeroDev provides a mock server to mimick a live paymaster on your local machine. This plugin automatically starts the mock server whenever you run npx hardhat node or hh node without the need for additional setup.

Installation

npm install @zerodevapp/hardhat "@nomiclabs/hardhat-ethers@^2.0.0" "ethers@^5.0.0"

Import the plugin in your hardhat.config.js:

require("@zerodevapp/hardhat");

Or if you are using TypeScript, in your hardhat.config.ts:

import "@zerodevapp/hardhat";

Required plugins

Tasks

This plugin overrides the node task:

$ npx hardhat node

EntryPoint deployed at 0xb81e8725d8Ede34A906Db901ED15cd41944ba6Ae
VerifyingPaymaster deployed at 0x07225f1742C63Df795f9E2B4a5045e05D8D0A727
WalletFactory deployed at 0x7Ce1DA5188067d08a0b4343cF1f97d7cC6097318
ZeroDev mock server listening at http://127.0.0.1:3030
Started HTTP and WebSocket JSON-RPC server at http://127.0.0.1:8545/
...

Environment extensions

This plugin exports a new environment variable under hre.zeroMockUrl which indicates the URL for the mock server. It's usually something like http://127.0.0.1:3030.

Usage

Configure your ZeroDev SDK to use the mock server:

import * as zd from "zerodev-sdk";

const wallet = await zd.getSigner(
  {
    projectId: "zerodev project id here",
    identity: "google",
    token: token,
  },
  {
    // your local ethereum network rpc:
    rpcUrl: "http://127.0.0.1:8545/",
    // the mock server provides the following two:
    backendUrl: "http://127.0.0.1:3030",
    paymasterUrl: "http://127.0.0.1:3030",
    // the same as the backendUrl with /rpc appended:
    bundlerUrl: "http://127.0.0.1:3030/rpc",
    // addresses where your contracts are deployed to:
    contractAddresses: {
      entrypoint: "0xb81e8725d8Ede34A906Db901ED15cd41944ba6Ae",
      paymaster: "0x07225f1742C63Df795f9E2B4a5045e05D8D0A727",
      walletFactory: "0x7Ce1DA5188067d08a0b4343cF1f97d7cC6097318",
    },
  }
);

The values provided above should work for you by default if you haven't changed any configuration.

Note: It's currently not possible to configure rate limites or other project dashboard features. The mock server will simply sign everything it receives.

hardhat-plugin's People

Contributors

hexcowboy avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.