Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/pepsighan/nearpass

Open-source, decentralized and private password manager built on Near Protocol.
https://github.com/pepsighan/nearpass

nearprotocol password-manager rust-lang smart-contracts

Last synced: about 2 months ago
JSON representation

Open-source, decentralized and private password manager built on Near Protocol.

Awesome Lists containing this project

README

        

Nearpass
==================

Open-source, decentralized and private password manager built on NEAR Protocol.

This project contains a smart contract for the Nearpass app built using [Rust] and [create-near-app]. If you are looking for
the extension (frontend) for this dapp, visit [nearpass-ext repo](https://github.com/pepsighan/nearpass-ext).

Quick Start
===========

To deploy a new version of smart contract on NEAR `testnet`:

1. Prerequisites: Make sure you've installed [Node.js] ≥ 12.
2. Install dependencies: `yarn`.
3. Deploy the smart contract to testnet using: `yarn dev:deploy`.

After it deploys the smart contract, keep the address of the deployment safe. You will need this when building the
Nearpass Chrome Extension.

To explore what the smart-contract does go to `/contract` folder and read up on the documentation inside.

Deploy to Mainnet
======

Every smart contract in NEAR has its [own associated account][NEAR accounts]. When you run `yarn dev:deploy`, your smart
contract gets deployed to the live NEAR TestNet with a throwaway account. When you're ready to make it permanent, here's
how.

Step 0: Install near-cli (optional)
-------------------------------------

[near-cli] is a command line interface (CLI) for interacting with the NEAR blockchain. It was installed to the
local `node_modules` folder when you ran `yarn install`, but for best ergonomics you may want to install it globally:

yarn install --global near-cli

Or, if you'd rather use the locally-installed version, you can prefix all `near` commands with `npx`

Ensure that it's installed with `near --version` (or `npx near --version`)

Step 1: Create an account for the contract
------------------------------------------

Each account on NEAR can have at most one contract deployed to it. If you've already created an account such
as `your-name.testnet`, you can deploy your contract to `nearpass.your-name.testnet`. Assuming you've already created an
account on [NEAR Wallet], here's how to create `nearpass.your-name.testnet`:

1. Authorize NEAR CLI, following the commands it gives you:

near login

2. Create a subaccount (replace `YOUR-NAME` below with your actual account name):

near create-account nearpass.YOUR-NAME.testnet --masterAccount YOUR-NAME.testnet

Step 2: set contract name in code
---------------------------------

Modify the line in `src/config.js` that sets the account name of the contract. Set it to the account id you used above.

const CONTRACT_NAME = process.env.CONTRACT_NAME || 'nearpass.YOUR-NAME.testnet'

Step 3: deploy!
---------------

One command:

yarn deploy

As you can see in `package.json`, this does two things:

1. builds & deploys smart contract to NEAR TestNet
2. builds & deploys frontend code to GitHub using [gh-pages]. This will only work if the project already has a
repository set up on GitHub. Feel free to modify the `deploy` script in `package.json` to deploy elsewhere.

Troubleshooting
===============

On Windows, if you're seeing an error containing `EPERM` it may be related to spaces in your path. Please
see [this issue](https://github.com/zkat/npx/issues/209) for more details.

[Rust]: https://www.rust-lang.org/

[create-near-app]: https://github.com/near/create-near-app

[Node.js]: https://nodejs.org/en/download/package-manager/

[NEAR accounts]: https://docs.near.org/docs/concepts/account

[NEAR Wallet]: https://wallet.testnet.near.org/

[near-cli]: https://github.com/near/near-cli

[gh-pages]: https://github.com/tschaub/gh-pages