{"id":22998394,"url":"https://github.com/tablelandnetwork/hardhat-ts-tableland-template","last_synced_at":"2025-08-14T00:32:17.792Z","repository":{"id":196056344,"uuid":"647463911","full_name":"tablelandnetwork/hardhat-ts-tableland-template","owner":"tablelandnetwork","description":null,"archived":false,"fork":false,"pushed_at":"2024-05-08T20:26:34.000Z","size":474,"stargazers_count":2,"open_issues_count":1,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-05-08T21:35:55.634Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tablelandnetwork.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-30T20:55:08.000Z","updated_at":"2024-05-08T20:26:37.000Z","dependencies_parsed_at":"2023-09-21T05:56:47.140Z","dependency_job_id":"f3690dc2-a49f-4938-8a35-cfa10a84f899","html_url":"https://github.com/tablelandnetwork/hardhat-ts-tableland-template","commit_stats":null,"previous_names":["tablelandnetwork/hardhat-ts-tableland-template"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tablelandnetwork%2Fhardhat-ts-tableland-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tablelandnetwork%2Fhardhat-ts-tableland-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tablelandnetwork%2Fhardhat-ts-tableland-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tablelandnetwork%2Fhardhat-ts-tableland-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tablelandnetwork","download_url":"https://codeload.github.com/tablelandnetwork/hardhat-ts-tableland-template/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229786993,"owners_count":18124014,"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":[],"created_at":"2024-12-15T06:13:19.065Z","updated_at":"2024-12-15T06:13:19.488Z","avatar_url":"https://github.com/tablelandnetwork.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tableland Hardhat TypeScript Template\n\n\u003e Hardhat TypeScript starter template for @tableland applications\n\n## Table of Contents\n\n- [Table of Contents](#table-of-contents)\n- [Background](#background)\n- [Usage](#usage)\n  - [Build \\\u0026 deploy](#build--deploy)\n  - [Testing](#testing)\n  - [Formatting \\\u0026 cleanup](#formatting--cleanup)\n  - [Extracting the ABI and bytecode](#extracting-the-abi-and-bytecode)\n  - [Contract verification](#contract-verification)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Background\n\nThis repo contains starter code for building [`@tableland`](https://github.com/tablelandnetwork) applications. It comes packed with packages and starter code, including:\n\n- Tableland clients \u0026 tools—EVM contracts, SDK, Local Tableland, and Hardhat Tableland plugin.\n- A `Starter` contract that imports Tableland and OpenZeppelin contract—including table creation, writes, and access control setup.\n- Basic deployment script and a unit test that sets up the `TablelandTables` registry for contract interaction.\n- Other useful scripts and packages for local deployment, formatting, and testing—including `prettier`, `eslint`, `solhint`, and Hardhat configuration setup.\n\n## Usage\n\nFirst, clone this repo:\n\n```sh\ngit clone https://github.com/tablelandnetwork/hardhat-ts-tableland-template\n```\n\n### Build \u0026 deploy\n\nTo simply compile contracts, you can install dependencies with `npm install` and then run:\n\n```\nnpm run build\n```\n\nTo install packages, compile contracts, and also startup Local Tableland and Hardhat nodes, run the following:\n\n```\nnpm run up\n```\n\nThis will keep the nodes running until you exit the session. While this is running, you can then choose to deploy the contracts to these local networks by opening a new terminal window and running:\n\n```\nnpm run deploy:up\n```\n\nAlternatively, you may want to deploy contracts locally but without active nodes running. The following can be used to deploy the contracts while also starting \u0026 shutting down Local Tableland and Hardhat nodes once the script exits. Be sure anything running via `npm run up` has been closed out before running:\n\n```\nnpm run deploy:local\n```\n\nLastly, to deploy to any live network listed in `hardhat.config.ts`, you can simply pass the network name after running the `deploy` command. The `.env.example` file should first be copied to a `.env` file and then have all of the values for private keys and API keys replaced. For example, to deploy contracts on Ethereum mainnet, you would do the following after creating a `.env` file with variables for `ETHEREUM_PRIVATE_KEY`, `ETHEREUM_API_KEY`, and (optionally) `ETHERSCAN_API_KEY`:\n\n```\nnpm run deploy mainnet\n```\n\nNote that if no network name is passed, the script will fail.\n\n### Testing\n\nFor full test coverage, run the following, which will show statement, branch, function, and line coverage (see `index.html` located in the `coverage` directory):\n\n```\nnpm test\n```\n\nYou can see gas costs associated with each contract method:\n\n```\nnpm run test:gas\n```\n\n### Formatting \u0026 cleanup\n\nRemove untracked files and directories, such as those that were autogenerated:\n\n```\nnpm run clean\n```\n\nFormat and lint the project:\n\n```\nnpm run format\n```\n\n### Extracting the ABI and bytecode\n\nYou can grab the assets you need by compiling the contracts and then using some [`jq`](https://jqlang.github.io/jq/) magic:\n\n#### ABI\n\n```shell\ncat artifacts/contracts/Starter.sol/Starter.json | jq '.abi' \u003e abi.json\n```\n\n#### Bytecode\n\n```shell\ncat artifacts/contracts/Starter.sol/Starter.json | jq -r '.bytecode' \u003e bytecode.bin\n```\n\n### Contract verification\n\nTo perform contract verification on Etherscan and other block explorers, you first need to deploy a contract to a live network, such as Sepolia:\n\n```shell\nnpx hardhat run scripts/deploy.ts --network sepolia\n```\n\nThen, copy the logged deployment address and replace `DEPLOYED_CONTRACT_ADDRESS` with this value in the command below:\n\n```shell\nnpx hardhat verify DEPLOYED_CONTRACT_ADDRESS --network sepolia\n```\n\n## Contributing\n\nPRs accepted.\n\nSmall note: If editing the README, please conform to the\n[standard-readme](https://github.com/RichardLitt/standard-readme) specification.\n\n## License\n\nMIT AND Apache-2.0, © 2021-2023 Tableland Network Contributors\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftablelandnetwork%2Fhardhat-ts-tableland-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftablelandnetwork%2Fhardhat-ts-tableland-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftablelandnetwork%2Fhardhat-ts-tableland-template/lists"}