UNPKG

@cryptovoxels/marketplace-js

Version:

A simple JS sdk to interact with Voxels' marketplace

78 lines (47 loc) 2.27 kB
# Voxels (cryptovoxels) Marketplace js <b>WORK IN PROGRESS</b> A package to allow anyone to interact with the Voxels marketplace contracts. The contracts are based [here](https://github.com/cryptovoxels/Marketplace) The graph repo is based [here](https://github.com/cryptovoxels/marketplace-subgraph) ## Setting up Dev environment. 0. Clone repo `get clone https://github.com/cryptovoxels/marketplace-js.git` 1. `npm i` to install the dependencies. If you encounter some issues, try LTS node v14. 2. Run `npm run abi-type-gen` to generate the types of the contract given the ABIs. ## Contributing 0. Setup your environment 1. Create a branch and do your changes 2. Make sure your code is formatted using `npm run format` 3. Also make sure your code builds using `npm run build` 4. Make sure you add tests and that tests run smoothly with `npm run test` (see test section below) 5. Create a Pull request at https://github.com/cryptovoxels/Voxels-Scripting-Server . ## Testing For testing, you need `ganache` to run a local network. Run `npm i -g ganache` to install ganache globally. If you encounter issues, try the command again with a lower version of NodeJS; (LTS v14 works fine) 1. Run ganache by running the command `ganache` in a separate console 2. Run `npm run test` At the moment, `npm run test` is setup to deploy the abis of `test/abis/**.json` on the local network and then dynamically creates a `.env` file. It's not a great behavior especially if we need a sticky `env` file in the future. ## How to use 1. install with `npm i @cryptovoxels/marketplace-js` 2. Use ```js const provider = window.ethereum; const marketplaceSDK = new VoxelsMarketplace(window.ethereum); const myItemToList = { token_id: 1; address: '0x...'; price: 0.5; quantity: 1; } await marketplace.list(myItemToList) // emits events ``` ## Todo: - [x] Write tests (and tests on localhost blockchain network) - [ ] Handle all errors and display them appropriately - [ ] Make examples on how to use - [ ] add other chains contracts - [ ] add GSN support if possible - [ ] Maybe test if we can integrate payments via GSN - [ ] Add api calls to an api (subgraph?); - [ ] Optimize?