/metaplex-program-library

Primary LanguageRustGNU Affero General Public License v3.0AGPL-3.0

Metaplex Program Library

Metaplex smart contracts and SDK.

Metaplex Contracts

Name Program SDK Integration Test
Candy Machine Program Candy Machine SDK Candy Machine
Token Vault Program Token Vault SDK Token Vault Integration Token Vault
Token Entangler Program Token Entangler SDK Token Entangler
Token Metadata Program Token Metadata SDK Token Metadata
Auction Program Auction SDK Auction
Auction House Program Auction House SDK Auction House
Metaplex Program Metaplex SDK Metaplex
NFT-Packs Program NFT-Packs
Gumdrop Program Gumdrop SDK Gumdrop
Fixed price sale Program Fixed Price Sale SDK Fixed Price Sale Integration Fixed Price Sale

Development

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, commiting and pushing the version bump.

  • preversion: ensures that the package builds and its tests pass
  • postversion: 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
  • prepublish: 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
Candy Machine mpl-candy-machine Crate
Token Metadata mpl-token-metadata Crate
Token Vault mpl-token-vault Crate
Auction House mpl-auction-house Crate
Testing Utils mpl-testing-utils Crate

Npm Packages

Package Link Version
Candy Machine mpl-candy-machine NPM
Token Metadata mpl-token-metadata NPM
Core mpl-core NPM
Auction House mpl-auction-house NPM

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 AGPLv3 license and the JS/TS client libraries are licensed under either the MIT or the Apache licenses.