Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Contributing

Thanks for your interest in contributing to DW: DevWallet! Please take a moment to review this document **before submitting a pull request.** If you want to contribute, but aren't sure where to start, you can create a [new discussion](https://github.com/D01-DayOne/dev-wallet/discussions).
Thanks for your interest in contributing to DevWallet! Please take a moment to review this document **before submitting a pull request.** If you want to contribute, but aren't sure where to start, you can create a [new discussion](https://github.com/D01-DayOne/dev-wallet/discussions).

> **Note** **Please ask first before starting work on any significant new features.**
>
Expand All @@ -14,11 +14,11 @@ Here is a [great primer](https://developer.chrome.com/docs/extensions/mv3/getsta

### Contexts

DW: DevWallet has four isolated contexts:
DevWallet has four isolated contexts:

- **Wallet** app:
- A Single Page Application (SPA).
- The main UI of DW: DevWallet (a React app).
- The main UI of DevWallet (a React app).
- It is exposed to the global [Web Extension APIs](https://developer.chrome.com/docs/extensions/reference/) (ie. `chrome.runtime`).
- **Background** service worker:
- A service worker that runs in isolation in the background. The **Background** context is responsible for: handling RPC requests, external network requests, initializing the extension context menu, registering content scripts, etc.
Expand Down Expand Up @@ -143,7 +143,7 @@ If the versions are not correct or you don't have Bun installed, download and fo

### Installing Anvil

DW: DevWallet uses [Anvil](https://book.getfoundry.sh/anvil/) to spin up a forked Ethereum node.
DevWallet uses [Anvil](https://book.getfoundry.sh/anvil/) to spin up a forked Ethereum node.

Install Anvil using the following command:

Expand Down Expand Up @@ -188,7 +188,7 @@ You can install the Web Extension separately in your browser. To do so, follow t
1. Open your browser's Extensions page
2. Enable "Developer mode" in the top right corner
3. Click "Load unpacked" in the top left corner
4. Select the `dist/dev` folder in DW: DevWallet's root directory
4. Select the `dist/dev` folder in DevWallet's root directory
5. You're good to go! Don't forget to pin the Extension to your browser's toolbar for easy access. 🎉

<div align="right">
Expand All @@ -213,7 +213,7 @@ When you submit a pull request, GitHub will automatically lint, build, and test
---

<div align="center">
✅ Now you're ready to contribute to DW: DevWallet!
✅ Now you're ready to contribute to DevWallet!
</div>

---
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/install-dependencies/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ runs:

- name: Install dependencies
shell: bash
run: bun install --yarn --ignore-scripts
run: bun install
2 changes: 1 addition & 1 deletion .github/assets/setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@
4. Enable `Developer Mode` in the top right corner
5. Click `Load Unpacked` in the top left corner
6. Select the unzipped folder
7. Done! You should now see the DW: DevWallet extension in your browser
7. Done! You should now see the DevWallet extension in your browser
27 changes: 0 additions & 27 deletions .github/workflows/verify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,34 +4,8 @@ on:
workflow_dispatch:

jobs:
lint:
name: Lint
runs-on: ubuntu-latest
timeout-minutes: 5

steps:
- name: Clone repository
uses: actions/checkout@v4

- name: Install dependencies
uses: ./.github/actions/install-dependencies

- name: Run formatters and linters
run: |
bun run format
bun run lint:fix

- name: Ensure working tree is clean
run: |
if ! git diff --quiet; then
echo "::error::Formatting or linting produced changes. Run 'bun run format' and 'bun run lint:fix' locally before pushing."
git status --short
exit 1
fi

build:
name: Build
needs: lint
runs-on: ubuntu-latest
timeout-minutes: 5

Expand All @@ -47,7 +21,6 @@ jobs:

types:
name: Types
needs: lint
runs-on: ubuntu-latest
timeout-minutes: 5

Expand Down
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,6 @@ test/contracts/cache
test/contracts/out

.idea/
.claude/
.claude/

*.pem
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2025-present DW: DevWallet contributors
Copyright (c) 2025-present DevWallet contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@

Forked and modified from [Rivet](https://github.com/paradigmxyz/rivet) (MIT licensed) by Paradigm. Original license retained.

## What is DW: DevWallet?
## What is DevWallet?

DW: DevWallet is a developer Wallet & DevTools for Anvil (akin to [Browser DevTools](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/Tools_and_setup/What_are_browser_developer_tools#how_to_open_the_devtools_in_your_browser) or [React DevTools](https://react.dev/learn/react-developer-tools)). It is a browser extension that enables developers to inspect, debug, modify, and manipulate the state of Ethereum: accounts, blocks, contracts & the node itself. DW: DevWallet is also compatible with any production dApp, meaning you can simulate any type of action from either an Account attached on the Anvil instance, or by "impersonating" another Account on the network.
DevWallet is a developer Wallet & DevTools for Anvil (akin to [Browser DevTools](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/Tools_and_setup/What_are_browser_developer_tools#how_to_open_the_devtools_in_your_browser) or [React DevTools](https://react.dev/learn/react-developer-tools)). It is a browser extension that enables developers to inspect, debug, modify, and manipulate the state of Ethereum: accounts, blocks, contracts & the node itself. DevWallet is also compatible with any production dApp, meaning you can simulate any type of action from either an Account attached on the Anvil instance, or by "impersonating" another Account on the network.

By integrating [EIP-6963: Multi Injected Provider Discovery](https://eips.ethereum.org/EIPS/eip-6963), DW: DevWallet is designed to be used alongside and with other consumer browser wallets like MetaMask or Rainbow to provide more engrained developer tooling and workflows for Ethereum.
By integrating [EIP-6963: Multi Injected Provider Discovery](https://eips.ethereum.org/EIPS/eip-6963), DevWallet is designed to be used alongside and with other consumer browser wallets like MetaMask or Rainbow to provide more engrained developer tooling and workflows for Ethereum.

DW: DevWallet is aimed to be **contributor first & friendly**. If you would like to contribute, check out the [Contributing Guide](/.github/CONTRIBUTING.md).
DevWallet is aimed to be **contributor first & friendly**. If you would like to contribute, check out the [Contributing Guide](/.github/CONTRIBUTING.md).

## Why was it forked?

Expand Down Expand Up @@ -53,7 +53,7 @@ DevWallet is currently in active development. If you would like to try out the l
<li>Enable <code>Developer Mode</code> in the top right corner</li>
<li>Click <code>Load Unpacked</code> in the top left corner</li>
<li>Select the unzipped folder</li>
<li>Done! You should now see the DW: DevWallet extension in your browser</li>
<li>Done! You should now see the DevWallet extension in your browser</li>
</ol>
</details>

Expand Down Expand Up @@ -117,7 +117,7 @@ git clone https://github.com/D01-DayOne/dev-wallet.git

### 2. Install Bun

DW: DevWallet uses [Bun](https://bun.sh). You need to install **Bun v1 or higher**.
DevWallet uses [Bun](https://bun.sh). You need to install **Bun v1 or higher**.

You can run the following commands in your terminal to check your local Bun version:

Expand Down Expand Up @@ -149,7 +149,7 @@ This will run a script that will build the Web Extension, start a dev server for

## Multi-Wallet Support

DW: DevWallet supports both legacy `window.ethereum` injection and modern [EIP-6963](https://eips.ethereum.org/EIPS/eip-6963) multi-wallet discovery.
DevWallet supports both legacy `window.ethereum` injection and modern [EIP-6963](https://eips.ethereum.org/EIPS/eip-6963) multi-wallet discovery.

**EIP-6963 Support:**
- DevWallet announces itself via EIP-6963, allowing dapps to discover it alongside other wallets
Expand All @@ -167,7 +167,7 @@ Helpful note: A fresh Chrome profile gets instantiated when running the dev scri

If you're interested in contributing, please read the [contributing docs](/.github/CONTRIBUTING.md) **before submitting a pull request**.

## DW: DevWallet Authors
## DevWallet Authors
- [@sideris](https://github.com/sideris) (PGSideris, [Twitter](https://twitter.com/PGSideris))

## Rivet Authors
Expand Down
58 changes: 0 additions & 58 deletions biome.json

This file was deleted.

Binary file modified bun.lockb
Binary file not shown.
37 changes: 37 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import js from '@eslint/js'
import reactHooks from 'eslint-plugin-react-hooks'
import tseslint from 'typescript-eslint'

export default tseslint.config(
{ ignores: ['dist', 'public', 'node_modules', 'contracts'] },
js.configs.recommended,
...tseslint.configs.recommended,
{
plugins: { 'react-hooks': reactHooks },
rules: {
...reactHooks.configs.recommended.rules,
'@typescript-eslint/ban-ts-comment': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-non-null-asserted-optional-chain': 'off',
'@typescript-eslint/no-unused-vars': [
'error',
{
argsIgnorePattern: '^_',
varsIgnorePattern: '^_',
destructuredArrayIgnorePattern: '^_',
caughtErrorsIgnorePattern: '^_',
},
],
'no-empty': ['error', { allowEmptyCatch: true }],
'no-useless-assignment': 'off',
'preserve-caught-error': 'off',
'react-hooks/exhaustive-deps': 'off',
'react-hooks/incompatible-library': 'off',
'react-hooks/preserve-manual-memoization': 'off',
'react-hooks/refs': 'off',
'react-hooks/rules-of-hooks': 'error',
'react-hooks/set-state-in-effect': 'off',
'react-hooks/static-components': 'off',
},
},
)
Loading