npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

create-tezos-smart-contract

v1.3.3

Published

Node.js toolset to write, test and deploy Tezos smart contracts

Downloads

17

Readme

Get your Tezos Smart Contracts production-ready

So you want to write a smart-contract for the Tezos blockchain? You're at the right place!

Requirements

This toolset is entirely based on Docker and Node.js.

You can download Docker Desktop for your OS at https://www.docker.com/products/docker-desktop. When download is ready, you can proceed to install it.

Same goes for Node.js, for which we suggest the LTS version for your system at https://nodejs.org/.

Getting started

To use this toolset, just open a Terminal and type:

npx create-tezos-smart-contract

This will guide you through the basic setup of the environment to start coding your contracts right away.

Usage

Created repository's README will guide you over the entire toolset.

Features

  • Smart Contract(s) repository setup with just 1 command
  • LIGO Compiler, dockerized, at the version you like (default version is LIGO latest release)
  • Flextesa local Sandbox environment, dockerized, to run Tezos test networks (node) at any version up to Hangzhou
  • Jest, with a proper setup to write both unit and E2E tests with Taquito
  • Deploy UI, designed to make your life easier. Helps you build your initial storage and lets you deploy in sandbox, testnet or mainnet. Works with faucet accounts and the Beacon SDK, to let you choose yout preferred wallet for signing

Why?

Because we wanted Tezos development to follow a full process to release great production-ready software: coding, compiling, unit testing, end-to-end testing (both local and on Tezos testnet) and full fledged deploy on mainnet with all the available wallets.

Why a toolset?

Tezos ecosystem now offers a lot of different tools to code, compile, test and interact with Smart Contracts. The problem is that sometimes you need to install software directly on your machine, sometimes you're prompted to use Docker and sometimes you might end up just with a big mess of separate tools which is also difficult to maintain and update as the Tezos protocol releases come out.

With lava we'll bring together the latest updates of every single tool for you, you just need to use our last version.

Why not Truffle?

Truffle offers one of the easiest ways to develop Tezos Smart Contracts. However, there were several choices in Truffle that made us decide to develop our own toolchain:

  • The usage of a custom Docker-image sandbox (not aligned with Tezos updates)
  • The inability to control your development flow in detail (contracts compiled everytime no matter what you needed)
  • The usage of a custom library to write tests, not standard
  • The usage of a custom library to interact with Tezos contracts in tests, not documented, you'd end up writing less tests because no documentation could be found on how to code them
  • Truffle was born with Ethereum in mind. Let's be honest: all the Truffle toolset with UI is great for Ethereum, but the lack of it for Tezos makes it seem more like a less-maintained adapted version of Truffle instead of a genuine Tezos toolset
  • And, last but not least, Truffle's dedicated Tezos branch is still full of Ethereum content. This made us decide not to contribute on that codebase, but rather to start a new and clean one, always open source.

Supported development Tezos protocols

  • Ithaca
  • Hangzhou

Hangzhou is the default Sandbox protocol version, but you can easily use Ithaca by editing protocol in the sandbox section of config.json in your Contracts' repo:

{
    // ...some other settings
    "sandbox": {
        // ...
        "protocol": "ithaca",
        // ...
    },
    // ...
}

Might work also with earliers version of the protocol, but we highly discourage working on such versions as you may end up with less features, higher costs and even bugs.

Contributing

We'd definitely love to have your contributions to this package.

If you want to write some code, we'll be more than happy to review and discuss every PR. Please refer to our Contributing guide to discover how to work on this repository and how to submit your PRs.

If you like this project, please consider donating to help it evolve along with Tezos ecosystem and protocol updates. As you can imagine, this requires a lot of time and effort, and any donation will support us. Reach us in any support channel to find how to donate in your preferred way.

Let's get in touch

You can request support, give feedback, suggest features and donate to this project by contacting us in any of the following channels:

If you need help with code we'd suggest going for the Discord channel as it's easier to exchange code there.

Donate

Want to help us with our coffee expenses? Here's our donation address tz1QBdqczeKCC6TW23MVrNXW217D5JomKzuL