Coder Social home page Coder Social logo

metaplex-program-library-py's Introduction

Metaplex Program Library

Metaplex smart contracts and SDK with Python libs.

how to add python libs:

  • python>=3.9 is required
  • install anchorpy[cli] preferrably with virtualenv
  • may require manually fetching/building idl (may not work with ts-idl)
  • generate with: anchorpy client-gen ./idl/candy_machine.json ./src --program-id cndy3Z4yapfJBmL3ShUp5exZKqR3z33thTzeNMm2gRZ
  • et voilà

Note that there are still some fixes that need to be done at times. i.e. BorshPubkey not being written to the python file.

contracts with python libs:

  • candy machine
  • auction house (untested)
  • token entangler (untested)
  • token metadata

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/[email protected]
  • 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.

metaplex-program-library-py's People

Contributors

crypt0miester avatar

Stargazers

dev /out/ avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.