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
- Host: GitHub
- URL: https://github.com/dapplets/bos-overrides-registry
- Owner: dapplets
- Created: 2023-09-06T12:51:15.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-29T10:32:28.000Z (almost 2 years ago)
- Last Synced: 2025-08-06T10:34:49.406Z (6 months ago)
- Language: Rust
- Size: 3.5 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README


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