{"id":21470484,"url":"https://github.com/manifoldfinance/walletbus","last_synced_at":"2025-07-02T09:35:56.386Z","repository":{"id":40486333,"uuid":"468284841","full_name":"manifoldfinance/walletbus","owner":"manifoldfinance","description":"Connect shell terminal to your browser for web3 wallets like metamask","archived":false,"fork":false,"pushed_at":"2022-08-01T04:49:33.000Z","size":4638,"stargazers_count":11,"open_issues_count":3,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-26T00:16:43.364Z","etag":null,"topics":["command-line","dapp","dapptools","ethereum","ethers","forge","foundry","metamask","provider","shell","solidity","terminal","web3"],"latest_commit_sha":null,"homepage":"https://manifoldfinance.github.io/walletbus/","language":"TypeScript","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/manifoldfinance.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}},"created_at":"2022-03-10T09:57:15.000Z","updated_at":"2024-08-20T18:42:43.000Z","dependencies_parsed_at":"2022-08-01T07:49:06.514Z","dependency_job_id":null,"html_url":"https://github.com/manifoldfinance/walletbus","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/manifoldfinance/walletbus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manifoldfinance%2Fwalletbus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manifoldfinance%2Fwalletbus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manifoldfinance%2Fwalletbus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manifoldfinance%2Fwalletbus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manifoldfinance","download_url":"https://codeload.github.com/manifoldfinance/walletbus/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manifoldfinance%2Fwalletbus/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263112383,"owners_count":23415597,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["command-line","dapp","dapptools","ethereum","ethers","forge","foundry","metamask","provider","shell","solidity","terminal","web3"],"created_at":"2024-11-23T09:27:55.348Z","updated_at":"2025-07-02T09:35:55.846Z","avatar_url":"https://github.com/manifoldfinance.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `@securerpc/walletbus`\n\n\u003e Fork of Truffle's Dashboard Provider w/o Truffle\n\n[![pipeline](https://github.com/manifoldfinance/walletbus/actions/workflows/pipeline.yml/badge.svg)](https://github.com/manifoldfinance/walletbus/actions/workflows/pipeline.yml)\n[![turborepo - maintained with](https://img.shields.io/static/v1?label=turborepo\u0026message=maintained+with\u0026color=blue\u0026logo=vercel)](https://turborepo.org/docs)\n\n- [Abstract](#abstract)\n- [Quickstart](#quickstart)\n- [Installation](#installation)\n- [Usage](#usage)\n  - [Ethers.js](#ethersjs)\n  - [Web3.js](#web3js)\n  - [Configuration options](#configuration-options)\n- [Logging](#logging)\n- [Development](#development)\n  - [Automated testing](#automated-testing)\n- [License](#license)\n\n## Abstract\n\n\u003e NOTE Mostly copied from Truffle\n\n`@securerpc/local-provider` enables communication between command-line or\ndesktop applications and browser-based Ethereum wallets such as Metamask.\n\nOne important use case is that it allows you to use your Metamask wallet with\nsmart contract development tools such as Foundry or Hardhat.\n\n\u003c!--\n\u003e TODO **Note**: @securerpc/local-provider automatically starts and stops a\n\u003e @securerpc/dashboard instance. To have more control over this dashboard\n\u003e instance, please use the [`securerpc dashboard`] command and its associated\n\u003e RPC URL instead of the @securerpc/local-provider.\n--\u003e\n\n## Quickstart\n\nTo build the monorepo (\u003e1m)\n\n```shell\n./exec.sh\n```\n\nTo test transactions on Rinkeby Test Network (ChainId=4)\n\n```shell\n./run.sh\n```\n\n## Installation\n\n```\nnpm install @securerpc/local-provider\n```\n\n```\nyarn add @securerpc/local-provider\n```\n\n## Usage\n\nThe dashboard-provider can be used in place where you would use any other web3\nprovider. See the examples below for using it with Ethers.js and Web3.js.\n\n### Ethers.js\n\n```js\nconst { DashboardProvider } = require('@securerpc/local-provider');\nconst { providers } = require('ethers');\n\nconst dashboardProvider = new DashboardProvider();\nconst ethersProvider = new providers.Web3Provider(dashboardProvider);\n\nconst [account] = await ethersProvider.listAccounts();\n```\n\n### Web3.js\n\n```js\nconst { DashboardProvider } = require('@securerpc/local-provider');\nconst Web3 = require('web3');\n\nconst dashboardProvider = new DashboardProvider();\nconst web3 = new Web3(dashboardProvider);\n\nconst [account] = await web3.eth.getAccounts();\n```\n\n### Configuration options\n\nThe `DashboardProvider` constructor takes a config object with a number of\noptions.\n\n```ts\nexport interface DashboardProviderOptions {\n  /** Host of the Dashboard (default: localhost) */\n  dashboardHost?: string;\n\n  /** Port of the Dashboard (default: 24012) */\n  dashboardPort?: number;\n\n  /** Number of seconds before a dashboard-provider request times out (default: 120) */\n  timeoutSeconds?: number;\n\n  /** Boolean indicating whether the connection to the dashboard is kept alive between requests (default: false) */\n  keepAlive?: boolean;\n\n  /** Boolean indicating whether debug output should be logged (default: false) */\n  verbose?: boolean;\n\n  /** Boolean indicating whether the dashboard should automatically get opened in the default browser (default: true) */\n  autoOpen?: boolean;\n}\n```\n\n## Logging\n\nWhen setting the dashboard-provider's `verbose` option to `true`, debug output\nis logged in the following \"debug\" namespaces\n\n- `msgbus:connections` - logs connections and disconnections of message bus\n  publishers and subscribers\n- `msgbus:requests` - logs requests that get sent from publishers to subscribers\n- `msgbus:responses` - logs responses sent back from subscribers to publishers\n- `msgbus:errors` - logs errors that occur in the message bus\n\n## Development\n\nThe entire dashboard/local-provider stack consists of three separate packages:\n\n- `@securerpc/local-provider` contains the actual `Provider` interface that\n  forwards requests to the dashboard.\n- `@securerpc/dashboard` package contains a React app that receives incoming\n  requests, displays them to the user, and then forwards them to the browser's\n  injected web3 wallet.\n\n- `@securerpc/msgbus` ties the two packages together with a message bus that\n  relays requests and responses between the local-provider and the dashboard,\n  using multiple WebSocket connections.\n\n### Automated testing\n\n`test/` contains a few very simple tests that test basic functioning of the\nDashboardProvider + Message Bus + Dashboard infrastructure. It uses a mocked\n\"dashboard\" that rather than opening a browser window just forwards all requests\nto Ganache.\n\n## License\n\n[MIT Licensed](./LICENSE.md)\n\n\u003e Forked from Truffle/Dashboard\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanifoldfinance%2Fwalletbus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanifoldfinance%2Fwalletbus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanifoldfinance%2Fwalletbus/lists"}