{"id":13796412,"url":"https://github.com/venom-blockchain/generator-venom-scaffold","last_synced_at":"2025-05-13T00:30:50.465Z","repository":{"id":64099395,"uuid":"570065750","full_name":"venom-blockchain/generator-venom-scaffold","owner":"venom-blockchain","description":"Yeoman generator to scaffold ready-to-use projects for smart contract developing on TVM-based blockchains.","archived":false,"fork":false,"pushed_at":"2023-06-27T14:08:27.000Z","size":1377,"stargazers_count":16,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-09-23T16:15:39.474Z","etag":null,"topics":["venom-blockchain","venom-developer-program","venom-smart-contracts","venom-tools"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/venom-blockchain.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-11-24T09:02:56.000Z","updated_at":"2024-05-16T10:04:20.000Z","dependencies_parsed_at":"2024-01-07T07:11:06.557Z","dependency_job_id":"d2c65125-60f2-435e-bde0-5b5d1113f12a","html_url":"https://github.com/venom-blockchain/generator-venom-scaffold","commit_stats":{"total_commits":18,"total_committers":3,"mean_commits":6.0,"dds":"0.16666666666666663","last_synced_commit":"1f1fe894c2bcc10538432e6a8c1459fe3522418b"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/venom-blockchain%2Fgenerator-venom-scaffold","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/venom-blockchain%2Fgenerator-venom-scaffold/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/venom-blockchain%2Fgenerator-venom-scaffold/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/venom-blockchain%2Fgenerator-venom-scaffold/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/venom-blockchain","download_url":"https://codeload.github.com/venom-blockchain/generator-venom-scaffold/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224859675,"owners_count":17381682,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["venom-blockchain","venom-developer-program","venom-smart-contracts","venom-tools"],"created_at":"2024-08-03T23:01:09.960Z","updated_at":"2024-11-18T10:31:18.034Z","avatar_url":"https://github.com/venom-blockchain.png","language":"TypeScript","funding_links":[],"categories":["Programming"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/venom-blockchain/developer-program\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/venom-blockchain/developer-program/main/vf-dev-program.png\" alt=\"Logo\" width=\"366.8\" height=\"146.4\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n\n# About The Venom Scaffold\n\nThe Venom scaffold is inspired by the Truffle boxes and aims to help users create a project ready to test, deploy, and execute arbitrary scripts to develop smart contracts on TVM-based blockchains. Under the hood, it's a [yeoman](http://yeoman.io/) generator.\n\nYou can find a list of available templates running:\n\n```bash\nyo venom-scaffold --help\n```\n\nOr run the cli and choose the project template on the first step.\n\n```bash\nyo venom-scaffold \u003cnew-project-path\u003e\n```\n\nTo create your first project, we have a [tutorial](#tip3-tutorial). Follow the instructions and make your first TIP3 token (TIP3 is a token standard, like ERC20 in Ethereum world).\n\n# Table of Contents\n\n- [About The Venom Scaffold](#about-the-venom-scaffold)\n- [Table of Contents](#table-of-contents)\n- [Installation](#installation)\n- [Usage](#usage)\n  - [Get help](#get-help)\n  - [Configuration](#configuration)\n- [TIP3 tutorial](#tip3-tutorial)\n  - [Choose a project template](#choose-a-project-template)\n  - [Set up package manager and package.json](#set-up-package-manager-and-packagejson)\n  - [Configure TIP3 token](#configure-tip3-token)\n    - [Enter the address of the contract root owner](#enter-the-address-of-the-contract-root-owner)\n    - [Enter the name of your token](#enter-the-name-of-your-token)\n    - [Enter the symbol of your token](#enter-the-symbol-of-your-token)\n    - [Specify the number of tokens that will be issued immediately after deployment](#specify-the-number-of-tokens-that-will-be-issued-immediately-after-deployment)\n    - [Enter the address to send initially minted tokens](#enter-the-address-to-send-initially-minted-tokens)\n    - [How many decimals will the token have?](#how-many-decimals-will-the-token-have)\n    - [Disable additional emission of tokens?](#disable-additional-emission-of-tokens)\n    - [Disable tokens burn?](#disable-tokens-burn)\n    - [Pause ability to burn tokens? Available only if tokens burning were enabled in the previous step](#pause-ability-to-burn-tokens-available-only-if-tokens-burning-were-enabled-in-the-previous-step)\n    - [Enter the address to send remaining gas](#enter-the-address-to-send-remaining-gas)\n  - [Configure locklift development environment](#configure-locklift-development-environment)\n    - [Enter compiler version](#enter-compiler-version)\n    - [Enter linker version](#enter-linker-version)\n    - [Select blockchain (Use arrow keys)](#select-blockchain-use-arrow-keys)\n    - [Giver type (testnet | mainnet)](#giver-type-testnet--mainnet)\n    - [Giver address (testnet | mainnet)](#giver-address-testnet--mainnet)\n    - [Giver seed phrase (testnet | mainnet)](#giver-seed-phrase-testnet--mainnet)\n    - [Giver privateKey (testnet | mainnet)](#giver-privatekey-testnet--mainnet)\n  - [Run project](#run-project)\n\n\u003c!-- GETTING STARTED --\u003e\n\n# Installation\n\n```bash\nnpm install --global yo generator-venom-scaffold\n```\n\n# Usage\n\nThe simplest way - is to run cmd and answer the prompt questions.\n\n```bash\n# run cmd\n❯ yo venom-scaffold \u003cnew-project-path\u003e\n```\n\nAfter that, go to the `\u003cnew-project-path\u003e` and follow the instructions in the README.md\n\n## Get help\n\nYou can run the generator with the help option to get more info about usage.\nAlso, you can get a help message for the sub-generator.\n\n```bash\n# get help for venom-scaffold\n❯ yo venom-scaffold --help\n\n# get help for venom-scaffold sub-generator\n❯ yo venom-scaffold:tip3 --help\n```\n\n## Configuration\n\nTo set up a project, you can answer the prompt questions, use options or config file.\n\nYou can find the available options with cmd `yo venom-scaffold --help`. To find options for sub-generators, use `yo venom-scaffold:\u003csub-generator\u003e --help`. For example, `yo venom-scaffold:tip3 --help`.\n\nAll options can also be defined using the config file.\n\nFor example, let's set up a project with config.json file.\nFirst, we need to get all available options:\n\n```bash\n❯ yo venom-scaffold --help\nUsage:\n  yo venom-scaffold:app [\u003cpath\u003e] [options]\n\nOptions:\n  -h,   --help           # Print the generator's options and usage\n        --skip-cache     # Do not remember prompt answers                                    Default: false\n        --skip-install   # Do not automatically install dependencies                         Default: false\n        --force-install  # Fail on install dependencies error                                Default: false\n        --ask-answered   # Show prompts for already configured options                       Default: false\n        --config         # Path to the config file\n        --locklift       # Use Locklift as a development environment?                        Default: true\n        --pkg-manager    # Package manager to use (npm|yarn)\n  -t,   --template       # Template to create project: 'sample' | 'tip3' | 'tip4'\n\nArguments:\n  path  # Path to the project folder  Type: String  Required: false\n\nDescription:\n  The Venom scaffold is inspired by the Truffle boxes and aims to help users create a project ready to test, deploy, and execute arbitrary scripts to develop smart contracts on TVM-based blockchains.\n\nSubgenerators:\n  yo venom-scaffold:sample [\u003cpath\u003e] [options]\n  yo venom-scaffold:tip3   [\u003cpath\u003e] [options]\n  yo venom-scaffold:tip4-1 [\u003cpath\u003e] [options]\n```\n\nLet's create `config.json` file and specify options:\n\n```json\n{\n  \"locklift\": true,\n  \"pkg-manager\": \"npm\",\n  \"template\": \"tip3\",\n  \"path\": \"my-first-tip3-token\"\n}\n```\n\nTo provide config, use options `--config`\n\n```bash\nyo venom-scaffold --config config.json\n```\n\nYou can configure sub-generators as well. To get a list of options, you can run cmd:\n\n```bash\n❯ yo venom-scaffold:tip3 --help\nUsage:\n  yo venom-scaffold:tip3 [\u003cpath\u003e] [options]\n\nOptions:\n  -h,   --help                # Print the generator's options and usage\n        --skip-cache          # Do not remember prompt answers                                         Default: false\n        --skip-install        # Do not automatically install dependencies                              Default: false\n        --force-install       # Fail on install dependencies error                                     Default: false\n        --ask-answered        # Show prompts for already configured options                            Default: false\n        --config              # Path to the config file\n        --locklift            # Use Locklift as a development environment?                             Default: true\n        --pkg-manager         # Package manager to use (npm|yarn)\n        --compiler            # Compiler version                                                       Default: 0.59.0\n        --linker              # Linker version                                                         Default: 0.15.48\n        --root-owner-address  # Address of the contract root owner\n        --token-name          # The name of your token\n        --token-symbol        # The symbol of your token\n        --initial-supply      # The number of tokens that will be issued immediately after deployment\n        --initial-supply-to   # Address of initial token supply recipient\n        --decimals            # The number of decimals that your token should have\n        --disable-mint        # Disables additional emission of tokens\n        --disable-burn        # Disables tokens burning\n        --pause-burn          # Temporarily disables token burning\n        --remaining-gas-to    # Address to send the remaining gas\n\nArguments:\n  path  # Path to the project folder  Type: String  Required: false\n```\n\n# TIP3 tutorial\n\nFirst, install [yo](https://www.npmjs.com/package/yo), clone venom-scaffold generator, install dependencies and create a symlink to a package folder. Follow the [installation instructions](#installation) to pass this step.\n\nAwesome! Now we are ready to create your first TIP3 token.\n\nCli takes \u003cpath\u003e as an argument, indicating which directory to create a new project. By default, it is the current directory.\n\nIn this tutorial, we will create a project in the directory `~/projects/first-tip3-token`. You can choose any directory.\n\n```bash\nyo venom-scaffold ~/projects/first-tip3-token\n```\n\n\u003e **NOTE:** To navigate over list use arrows. To submit answer use `enter`.\n\n\u003e **NOTE:** If you don't ready to answer some questions, you can leave them empty. A default or empty value will be used in this case.\n\nNow you should answer some questions to create a project which will fit you. Questions grouped by topic:\n\n## Choose a project template\n\nIn this tutorial, we will create TIP3 token, so choose a `Fungible token (TIP3)` at this step.\n\n## Set up package manager and package.json\n\nIn this tutorial, we will use npm as a package manager. You can choose yarn as well. Next, you should answer questions to set up `package.json`.\n\n## Configure TIP3 token\n\nIn this section, we will configure our token. Let's take a look at each question in more detail.\n\n### Enter the address of the contract root owner\n\nYou can create your account with [Venom wallet](\"https://venom.foundation/wallet\"). The contract root owner can deploy new token wallets and mint/burn tokens.\n\n\u003e `0:123...baa`\n\n### Enter the name of your token\n\nName - is a string of arbitrary length, which will be used as a token name.\n\n\u003e `First Venom Token`\n\n### Enter the symbol of your token\n\nA symbol is a short name of your token.\n\n\u003e `FVT`\n\n### Specify the number of tokens that will be issued immediately after deployment\n\nAmount of tokens that will be minted immediately after deployment.\n\n\u003e `1000000000`\n\n### Enter the address to send initially minted tokens\n\nAddress of initial token supply recipient.\n\n\u003e `0:123...baa`\n\n### How many decimals will the token have?\n\nThe number of decimals that your token should have.\n\n\u003e `18`\n\n### Disable additional emission of tokens?\n\nIf additional emission of tokens is disabled, you will not have the ability to mint tokens after initial minting\n\n\u003e `No`\n\n### Disable tokens burn?\n\nIf tokens burning are disabled, you will not have the ability to burn tokens.\n\n\u003e `No`\n\n### Pause ability to burn tokens? Available only if tokens burning were enabled in the previous step\n\nTemporarily disables token burning. In the future, you can enable it with the method `setBurnPaused({answerId:0, paused:false})`.\n\n\u003e `No`\n\n### Enter the address to send remaining gas\n\nAll remaining gas will be sent to this address.\n\n\u003e `0:123...baa`\n\n## Configure locklift development environment\n\n\u003e **NOTE:** [Locklift](https://github.com/broxus/locklift/) is a development environment like Hardhat or Truffle. We highly recommend using it as a developer tool.\n\n### Enter compiler version\n\nAs a compiler, we use [TON-Solidity-Compiler](https://github.com/tonlabs/TON-Solidity-Compiler) - port of the Solidity smart-contract compiler generating TVM bytecode for the Venom blockchain. You can find compiler API \u003ca href=\"https://github.com/tonlabs/TON-Solidity-Compiler/blob/master/API.md#solidity-runtime-errors\"\u003ehere\u003c/a\u003e. For TIP3 contracts, we recommend to use version `0.59.0`\n\n\u003e `0.59.0`\n\n### Enter linker version\n\n[Linker](https://github.com/tonlabs/TVM-linker) takes [TVM](https://test.ton.org/tvm.pdf) assembly source code of TON smart contract, compiles it and links its parts, adds standard selector and runtime and stores it into binary TVC file.\n\n\u003e `0.15.48`\n\n### Select blockchain (Use arrow keys)\n\nVenom and Everscale use the same virtual machine, compilers, and linkers. So you can deploy contracts in Venom just like in Everscale.\n\n\u003e `Venom`\n\n### Giver type (testnet | mainnet)\n\nGiver - it's an account that you will use to fund your smart contracts. There are several types of givers that you can use (SimpleWallet, GiverWallet, WalletV3). You can create your giver type. To do this, you need to deploy a contract that implements [Giver interface](https://github.com/broxus/locklift/blob/master/src/internal/factory/giver.ts).\nThe easiest way to setting up giver is to use a WalletV3 account. The venom wallet uses this type of account. So you can create a new account with venom wallet and use it as a giver.\n\n\u003e `WalletV3`\n\n### Giver address (testnet | mainnet)\n\nAddress of the giver contract.\n\n\u003e `0:123...baa`\n\n### Giver seed phrase (testnet | mainnet)\n\nSeed phrase of the giver account. You can omit empty this field and provide it manually in `locklift.config.ts` later.\n\n\u003e `action inject penalty envelope rabbit element slim tornado dinner pizza off blood`\n\n### Giver privateKey (testnet | mainnet)\n\nThe private key of the giver account. You can omit empty this field and provide it manually in `locklift.config.ts` later.\n\n\u003e `172af540e43a524763dd53b26a066d472a97c4de37d5498170564510608250c3`\n\n## Run project\n\nFantastic, the project is ready! Follow the instructions in the project README to find the next steps.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvenom-blockchain%2Fgenerator-venom-scaffold","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvenom-blockchain%2Fgenerator-venom-scaffold","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvenom-blockchain%2Fgenerator-venom-scaffold/lists"}