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

@massalabs/massa-sc-deployer

v2.1.0

Published

This package can deploy a smart contract with an initialization function.

Downloads

436

Readme

Massa smart-contract Deployer

This package can deploy a smart contract with an initialization function.

Usage

Install

To get the stable version: npm i -D @massalabs/massa-sc-deployer.

To get the nightly version: npm i -D @massalabs/massa-sc-deployer@dev.

To update the nightly version: npm update @massalabs/massa-sc-deployer.

Write your smart contract

In your smart contract, add an optional constructor function:

/**
 * This function is meant to be called only one time: when the contract is deployed.
 *
 * @param binaryArgs - Arguments serialized with Args
 */
export function constructor(binaryArgs: StaticArray<u8>): StaticArray<u8> {
  // This line is important. It ensures that this function can't be called in the future.
  // If you remove this check, someone could call your constructor function and reset your SC.
  if (!contractIsDeploying()) {
    return [];
  }
  // Initialize your smart contract
  ...
  return [];
}

Use this library to deploy it

You can write a deployment script that uses massa-web3 library and this sc-deployer to create complex deployment process.

A simple use-case is as follows:

import { readFileSync } from 'fs';
import { deploySC, WalletClient, ISCData } from '@massalabs/massa-sc-deployer';
import { Args } from '@massalabs/massa-web3';

(async () => {
  await deploySC(
    'http://127.0.0.1:33035', // deploy on your local sandbox node
    await WalletClient.getAccountFromSecretKey('my secret key'), 
    [
      {
        data: readFileSync('path/to/theContractIWantToDeploy.wasm'), // path to the compiler contract to deploy
        coins: 0n, // amount of Massa coin to send to the deployment transaction
        args: new Args().addString('Test'), // Arguments to pass to the constructor of the contract, use `NoArg` if any
      } as ISCData,
    ],
    0n, // fees
    4_200_000_000n, // max gas
    true, // wait for the first event to be emitted and print it into the console.
    fromMAS(0.1), // max coins (Optional. If not set, an estimated value will be used)
  );
})();

Contribute

We welcome contributions from the community!

If you would like to contribute to Massa-sc-deployer, please read the CONTRIBUTING file.