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

A TZIP-12 Token example box for Tezos development with Truffle

License

Notifications You must be signed in to change notification settings

truffle-box/tezos-tzip-12-box

Repository files navigation

Tezos TZIP-12 Token Box

Note: Experimental. Currently designed for demo purposes only.

This box contains an example TZIP-12 Token contract along with a readymade sandbox node configuration for quickstart Tezos smart contract development.

Prerequisites

  • Docker
    • Used for LIGO 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-tzip-12

Usage

  • Compiling the example smart contracts

    truffle compile
  • Starting the local sandbox Tezos node

    npm run start-sandbox
  • Migrating contracts

    truffle migrate
  • Running contract tests

    truffle test

Sandbox Management

An archive mode sandbox Tezos node is provided in this box with RPC exposed at port 8732 and two accounts generously funded.

Commands

npm run start-sandbox
npm run kill-sandbox
npm run restart-sandbox

Available Accounts

alias pkh pk sk
alice tz1VSUr8wwNhLAzempoch5d6hLRiTh8Cjcjb edpkvGfYw3LyB1UcCahKQk4rF2tvbMUk8GFiTuMjL75uGXrpvKXhjn edsk3QoqBuvdamxouPhin7swCvkQNgq4jP5KZPbwWNnwdZpSpJiEbq
bob tz1aSkwEot3L2kmUvcoxzjMomb9mvBNuzFK6 edpkurPsQ8eUApnLUJ9ZPDvu98E8VNj4KtJa1aZr16Cr5ow5VHKnz4 edsk3RFfvaFaxbHx8BMtEW1rKQcPtDML3LXjNqMNLCzC3wLC1bWbAt

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