@cryptovoxels/marketplace-js
v0.2.0
Published
A simple JS sdk to interact with Voxels' marketplace
Downloads
7
Readme
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 consoleRun
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?