Voxels (cryptovoxels) Marketplace js
WORK IN PROGRESS
A package to allow anyone to interact with the Voxels marketplace contracts.
The contracts are based here The graph repo is based here
Setting up Dev environment.
-
Clone repo
get clone https://github.com/cryptovoxels/marketplace-js.git
-
npm i
to install the dependencies. If you encounter some issues, try LTS node v14. -
Run
npm run abi-type-gen
to generate the types of the contract given the ABIs.
Contributing
-
Setup your environment
-
Create a branch and do your changes
-
Make sure your code is formatted using
npm run format
-
Also make sure your code builds using
npm run build
-
Make sure you add tests and that tests run smoothly with
npm run test
(see test section below) -
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)
-
Run ganache by running the command
ganache
in a separate console -
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
-
install with
npm i @cryptovoxels/marketplace-js
-
Use
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?