Skip to content
This repository has been archived by the owner on Mar 11, 2024. It is now read-only.

Simple example box for Tezos SmartPy development with Truffle

License

Notifications You must be signed in to change notification settings

truffle-box/tezos-smartpy-example-box

Repository files navigation

Tezos SmartyPy Example Box

Note: Experimental. Currently designed for demo purposes only.

This box contains a Counter and SimpleStorage contract to display the basics of Tezos SmartPy integration with Truffle.

Prerequisites

  • Docker
    • Used for SmartPy compilations and running a local sandbox Tezos node.
  • NodeJS
    • v8.9.4 to v12.2.0

Installation

  1. Install Truffle globally. Make sure you install truffle@tezos.
npm install -g truffle@tezos
  1. Download the box. This also takes care of installing the necessary dependencies.
truffle unbox tezos-smartpy-example

Usage

  • Compiling the example smart contracts

    truffle compile
  • Starting the local ganache-cli sandbox Tezos node

    npm run start-sandbox
  • Migrating contracts

    truffle migrate
  • Running contract tests

    truffle test

Sandbox Management

An archive mode ganache-cli sandbox Tezos node is provided in this box with RPC exposed at port 8732 and ten accounts generously funded with 100 XTZ. For currently supported configurable options, see the ganache-cli documentation.

Commands

npm run start-sandbox

Interacting with Live Networks

  • A test faucet key can be obtained from https://faucet.tzalpha.net/. Once saved, it can be imported inside truffle-config.js:

    const { mnemonic, secret, password, email } = require("./faucet.json");
    
    module.exports = {
      networks: {
        carthagenet: {
          host: "https://carthagenet.smartpy.io",
          port: 443,
          network_id: "*",
          secret,
          mnemonic,
          password,
          email,
          type: "tezos"
        }
      }
    };
  • truffle@tezos also supports importing an activated account's secret key:

    module.exports = {
      networks: {
        carthagenet: {
          host: "https://carthagenet.smartpy.io",
          port: 443,
          network_id: "*",
          secretKey: "edsk...", // private key
          type: "tezos"
        }
      }
    };
    truffle migrate --network carthagenet
    truffle test --network carthagenet

Releases

No releases published

Packages

No packages published