Awesome
Metaplex Program Library
Metaplex smart contracts and SDK.
Metaplex Contracts
Name | Rust Crate | npm Package |
---|---|---|
Auction House | ||
Auctioneer | ||
Bubblegum | ||
Candy Machine Core | ||
Candy Machine | ||
Fixed Price Sale | ||
Gumdrop | ||
Hydra | ||
NFT Packs | ||
Token Entangler | ||
Token Metadata |
Development
Setting up Rust Tests
Run the build.sh
script with the name of the program to build the shared object and put it in a directory
called test-programs
in the root of the project.
E.g.:
./build.sh auction-house
Running with all
builds all programs.
Versioning and Publishing Packages
Smart contract SDK packages are versioned independently since a contract isn't necessarily coupled to other contracts.
We use the following (pre|post)(version|publish)
npm scripts to manage related checks, tagging,
committing and pushing the version bump.
preversion
: ensures that the package builds and its tests passpostversion
: adds and commits the version bump and adds a tag indicating package name and new version, i.e.@metaplex-foundation/mp-core@v0.0.1
prepublishOnly
: ensures that the package builds and its tests pass again (just to be really sure)postpublish
: pushes the committed change and new tag to GitHub
In order to version and then publish a package just run the following commands from the folder of the package you want to update:
npm version <patch|minor|major>
npm publish
As you note if version + publish succeeds the scripts end up pushing those updates to the master
branch. Therefore, please ensure to be on and up to date master
branch before running them. Please
don't ever publish from another branch but only from the main one with only PR approved changes
merged.
Rust Crates
Package | Link | Version |
---|---|---|
Auction House | mpl-auction-house | |
Auctioneer | mpl-auctioneer | |
Bubblegum | mpl-bubblegum | |
Candy Machine Core | mpl-candy-machine-core | |
Testing Utils | mpl-testing-utils | |
Utils | mpl-utils | |
Fixed Price Sale | mpl-fixed-price-sale | |
Gumdrop | mpl-gumdrop | |
Hydra | mpl-hydra | |
NFT Packs | mpl-nft-packs | |
Token Entangler | mpl-token-entangler | |
Token Metadata | mpl-token-metadata |
npm Packages
Package | Link | Version |
---|---|---|
Auction House | mpl-auction-house | |
Auctioneer | mpl-auctioneer | |
Bubblegum | mpl-bubblegum | |
Candy Machine Core | mpl-candy-machine-core | |
Candy Machine | mpl-candy-machine | |
Fixed Price Sale | mpl-fixed-price-sale | |
Gumdrop | mpl-gumdrop | |
Hydra | mpl-hydra | |
NFT Packs | mpl-nft-packs | |
Token Entangler | mpl-token-entangler | |
Token Metadata | mpl-token-metadata |
Reporting security issues
To report a security issue, please follow the guidance on the SECURITY page.
License
The Rust/Cargo programs are licensed under the “Apache-style” Metaplex(TM) NFT Open Source License and the JS/TS client libraries are licensed under either the MIT or the Apache licenses.
<!-- ===================================== --> <!-- Links for badges and such shown above --> <!-- Please add any links you add to the --> <!-- readme here instead of inlining them --> <!-- ===================================== --> <!-- Workflow Status Badges --> <!-- Crates --> <!-- NPM Packages --> <!-- Licenses -->