All Projects β†’ district0x β†’ name-bazaar

district0x / name-bazaar

Licence: EPL-1.0 license
A peer-to-peer marketplace for the exchange of names registered via the Ethereum Name Service

Programming Languages

javascript
184084 projects - #8 most used programming language
Less
1899 projects
clojure
4091 projects
solidity
1140 projects
Dockerfile
14818 projects
HTML
75241 projects

Projects that are alternatives of or similar to name-bazaar

github-tools-vsts
πŸ“¦πŸš€ Create and modify GitHub Releases in Azure DevOps Build and Release Management
Stars: ✭ 24 (-73.03%)
Mutual labels:  marketplace
microconsulting-platform-proposal
Unsolicited proposal for a microconsulting services marketplace platform.
Stars: ✭ 12 (-86.52%)
Mutual labels:  marketplace
covaccine-notifier
CoWIN Vaccine availability notifier for India
Stars: ✭ 63 (-29.21%)
Mutual labels:  district
HorizonUIPluginDemo
UnrealEngine Marketplace Plugin
Stars: ✭ 29 (-67.42%)
Mutual labels:  marketplace
waldur-mastermind
Waldur MasterMind is a hybrid cloud orchestrator.
Stars: ✭ 37 (-58.43%)
Mutual labels:  marketplace
Artion-Server
Artion API Server
Stars: ✭ 26 (-70.79%)
Mutual labels:  marketplace
radical.domains
πŸ’° Harberger taxes for ENS domains (live only on Rinkeby)
Stars: ✭ 17 (-80.9%)
Mutual labels:  ens
Artion-Client
Client app for Artion, a global NFT marketplace on Fantom Opera.
Stars: ✭ 71 (-20.22%)
Mutual labels:  marketplace
Web3-Name-Service
A compatible and inclusive name service for the web3 world, supporting RNS and ENS and more
Stars: ✭ 31 (-65.17%)
Mutual labels:  ens
dc-woocommerce-multi-vendor
WC Marketplace is the fastest growing multi-store marketplace plugin for WooCommerce.
Stars: ✭ 86 (-3.37%)
Mutual labels:  marketplace
aws-marketplace-serverless-saas-integration
Example of serverless integration for SaaS products listed on the AWS Marketplace.
Stars: ✭ 79 (-11.24%)
Mutual labels:  marketplace
PrivateGalleryCreator
Create private extension galleries for Visual Studio
Stars: ✭ 96 (+7.87%)
Mutual labels:  marketplace
get-ens
πŸ—οΈ Get text records of an ENS address with ease
Stars: ✭ 29 (-67.42%)
Mutual labels:  ens
dapps.earth
Source code for dapps.earth: IPFS and Swarm gateway
Stars: ✭ 12 (-86.52%)
Mutual labels:  ens
grandnode2
Free, Open source, Fast, Headless, Multi-tenant eCommerce platform built with .NET Core, MongoDB, AWS DocumentDB, Azure CosmosDB, LiteDB, Vue.js.
Stars: ✭ 626 (+603.37%)
Mutual labels:  marketplace
vscode-todo-parser
TodoParser extension for vscode. Parse TODOs in your project.
Stars: ✭ 53 (-40.45%)
Mutual labels:  marketplace
solana-nft-monitor
Monitor Solana NFT projects using Github Actions + flatgithub.com
Stars: ✭ 31 (-65.17%)
Mutual labels:  marketplace
tiddlywiki-ipfs
IPFS with TiddlyWiki
Stars: ✭ 50 (-43.82%)
Mutual labels:  ens
bazaar
The extension marketplace for your Flarum forum.
Stars: ✭ 58 (-34.83%)
Mutual labels:  marketplace
businessworks
εŸΊη‘€δΈšεŠ‘ι›†ζˆεΌ€ε‘εΉ³ε°
Stars: ✭ 39 (-56.18%)
Mutual labels:  marketplace
District0x Discord server LICENSE pull requests welcome Build Status

Name Bazaar

A peer-to-peer marketplace for the exchange of names registered via the Ethereum Name Service.

See at https://namebazaar.io

Smart-contracts can be found here.

Starting a dev server

In a terminal, start a ganache blockchain

./run-ganache.sh

Note that this uses docker and will try to pull trufflesuite/ganache-cli:v6.12.1 image if you don't have it.

Alternatively, you can connect directly to one of ethereum testnet networks - e.g. ropsten. In order to do this, specify correct smart contract addresses and :web3 properties in the ./config.edn file. Example config file can be found in docker-builds/server/config.example.edn.

Open another terminal, start a repl and build the dev server (with figwheel repl)

lein repl
(start-server!)

Figwheel will prompt for a connection for the repl instance.

Open another terminal, run the compiled server script, which should connect to the figwheel repl.

node dev-server/name-bazaar.js

(If you have problems re-running this command, try removing dev-server folder and try to start the server again)

Redeploy smart-contracts and generate mock data

You can (re)deploy contracts with

truffle migrate --reset

and (optionally) generate some samle dev data from the clojurescript REPL by running the following command:

(generate-data)

Redeployment / generation can take a long time, please be patient.

Start dev UI

If you wish to connect to the dev server discussed above, open a separate terminal, and build the client-side ui

lein repl
(start-ui!)

You can then connect to the server through a web browser at http://localhost:4541

Semantic UI

To build the Semantic UI pieces of the app you need to have gulp installed. Note that gulp 4.x does not work, you need a 3.x version.

npm install gulp@^3.9.0 --save

Then use our handy script:

./semantic.sh build or ./semantic.sh watch

Depending upon how you'd like to work.

Start a development UI for client-side development only

If you're only focusing on working with the UI, you can start a UI interface which connects to the production server using mainnet.

lein repl
(start-ui! :ui-only? true)

In separate terminal, start the supplied docker nginx server

docker-compose build nginx
docker-compose up nginx

# Visit website at http://localhost:3001

Note: using this client is using the main ethereum network, it is ill-advised to carry out transactions unless you know what you are doing!

Backend (server) tests:

lein doo node "server-tests"

(If you have problems running the tests, try to remove server-tests directory and try re-running the tests again)

The doo runner will autobuild the test and re-run them as the watched files change. Alternatively:

lein cljsbuild once server-tests
node server-tests/server-tests.js

Frontend (browser) tests:

To run browser tests use the following command:

lein npm run cypress-open

Tests connect to a running app on http://localhost:4541. It is recommended to run the tests with clear ganache network, otherwise the tests will be slower or fail.

Development env through nginx:

docker-compose build nginx
docker-compose up nginx

and start (start-ui!), (start-server!) as usual, but open the site on http://localhost:3001

Build for production

Following commands are used to build system for production

lein build-prod-server
lein build-prod-ui
lein build-css

# To build all 3 in parallel use
lein build-prod

# To run prod server
node server/name-bazaar.js

Testnet deploy

To run server in docker container use image district0x/namebazaar-server, e.g.:

docker run --name=namebazaar-server \
    --net=host \
    -v /path/to/config.edn:/configs/namebazaar.config.edn \
    district0x/namebazaar-server:latest

You can choose between tags dev, latest (intended for QA deploys) and release (intended for production deploy). As for the config file, you can find an example in docker-builds/server/config.example.edn. Of particular interest is providing correct addresses of smart contracts on the blockchain you'll link the app to.

For UI use the district0x/namebazaar-ui image:

docker run --name=namebazaar-ui \
    --net=host \
    district0x/namebazaar-ui:latest

Note that there is no passing of config file for UI: currently for any change of UI config you need to build a new image (see the next section). The hardcoded configuration is at src/name_bazaar/ui/config.cljs.

Deploying Name Bazaar smart contracts

First, you need to specify deployments secrets in config.edn. For example:

{:truffle {:ropsten {:infuraKey "0ff2cb560e864d078290597a29e2505d"
                     :privateKeys ["0508d5f96e139a0c18ee97a92d890c55707c77b90916395ff7849efafffbd810"]
                     :ensAddress "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"
                     :registrarAddress "0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85"
                     :publicResolverAddress "0x42D63ae25990889E35F215bC95884039Ba354115"
                     :reverseRegistrarAddress "0x6F628b68b30Dc3c17f345c9dbBb1E483c2b7aE5c"}}}

Then, you can use truffle to deploy the contracts just by running the following command in bash:

# you can also use `--network mainnet` - see truffle-config.js for deployment details for more information.
truffle migrate --network ropsten

Linting and formatting smart contracts

We use ethlint for linting solidity files. You can use lein npm run ethlint and lein npm run ethlint-fix to run the linter.

You can use lein run-slither to run slither to statically analyze the smart contracts. However, this tool reports many false positives.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].