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

https://github.com/dapplets/bos-overrides-registry

The smart-contract based registry that stores overrides of BOS components. The solution was made during the BOS HACKS hackathon at August 25 - September 10, 2023
https://github.com/dapplets/bos-overrides-registry

Last synced: 5 months ago
JSON representation

The smart-contract based registry that stores overrides of BOS components. The solution was made during the BOS HACKS hackathon at August 25 - September 10, 2023

Awesome Lists containing this project

README

          

![image](/docs/dark.png#gh-dark-mode-only)
![image](/docs/light.png#gh-light-mode-only)

During the [BOSHACKS hackathon](https://www.boshacks.com/#/devgovgigs.near/widget/gigs-board.pages.Post?id=1377), we created a new technology called Mutable Web which brings the decentralization of [BOS components](https://near.org/near/widget/ComponentsPage) to a new level. This technology allows any user to create a mutation of a page in a permissionless way and offer it to the community. The community can accept it as the default version of the page.
This way community can create special [BOS components](https://near.org/near/widget/ComponentsPage) to add new functions, services, and workflows where needed. All this could be implemented in a decentralized and permissionless way, fully aligned with the paradigm of the free web.

This project won the General Prize - 1st Place.
You can read more details in the submission: [Dapplets Mutable Web](https://www.boshacks.com/#/devgovgigs.near/widget/gigs-board.pages.Post?id=1236)

See our demo video on YouTube : [Dapplets Mutable Web](https://www.youtube.com/watch?v=DykC47Ec0zc)

# near-blank-project

This app was initialized with [create-near-app]

# Quick Start

If you haven't installed dependencies during setup:

npm install

Build and deploy your contract to TestNet with a temporary dev account:

npm run deploy

Test your contract:

npm test

If you have a frontend, run `npm start`. This will run a dev server.

# Exploring The Code

1. The smart-contract code lives in the `/contract` folder. See the README there for
more info. In blockchain apps the smart contract is the "backend" of your app.
2. The frontend code lives in the `/frontend` folder. `/frontend/index.html` is a great
place to start exploring. Note that it loads in `/frontend/index.js`,
this is your entrypoint to learn how the frontend connects to the NEAR blockchain.
3. Test your contract: `npm test`, this will run the tests in `integration-tests` directory.

# Deploy

Every smart contract in NEAR has its [own associated account][NEAR accounts].
When you run `npm run deploy`, your smart contract gets deployed to the live NEAR TestNet with a temporary dev 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 `npm install`, but for best ergonomics you may want to install it globally:

npm 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 `near-blank-project.your-name.testnet`. Assuming you've already created an account on [NEAR Wallet], here's how to create `near-blank-project.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 near-blank-project.YOUR-NAME.testnet --masterAccount YOUR-NAME.testnet

## Step 2: deploy the contract

Use the CLI to deploy the contract to TestNet with your account ID.
Replace `PATH_TO_WASM_FILE` with the `wasm` that was generated in `contract` build directory.

near deploy --accountId near-blank-project.YOUR-NAME.testnet --wasmFile PATH_TO_WASM_FILE

## Step 3: set contract name in your frontend 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 || 'near-blank-project.YOUR-NAME.testnet'

# 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.

[create-near-app]: https://github.com/near/create-near-app
[Node.js]: https://nodejs.org/en/download/package-manager/
[jest]: https://jestjs.io/
[NEAR accounts]: https://docs.near.org/concepts/basics/account
[NEAR Wallet]: https://wallet.testnet.near.org/
[near-cli]: https://github.com/near/near-cli
[gh-pages]: https://github.com/tschaub/gh-pages