https://github.com/zemse/simple-lottery
Basic Lottery managed by Smart Contracts.
https://github.com/zemse/simple-lottery
Last synced: 8 months ago
JSON representation
Basic Lottery managed by Smart Contracts.
- Host: GitHub
- URL: https://github.com/zemse/simple-lottery
- Owner: zemse
- Archived: true
- Created: 2020-02-13T05:55:30.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-12-30T19:39:49.000Z (over 3 years ago)
- Last Synced: 2024-12-16T11:52:59.357Z (over 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 51.8 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Smart Solidity Template
A light template, which is intended to get a Ethereum Smart Contracts Developer quickly started into developing Bug-free Smart Contracts.
## Steps to write your next smart contract with this template
1. Start a fresh solidity project using this template through https://github.com/zemse/smart-solidity-template/generate.
2. Clone your project using `git clone ` in your projects folder.
3. Delete `SimpleStorage.sol` from `contracts` folder. Create your smart contract file with it's appropriate name, e.g. `Lottery.sol`. Please make sure that you are using the latest version of solidity in your smart contract in the first line `pragma solidity 0.6.1`.
4. In the project directory, do `node compile.js`. This will compile your contract, show errors or warnings if any and will place the json files into a build folder.
5. In the `test` folder, you can rename the existing `SimpleStorage.test.js` file by your contract name, e.g. `Lottery.test.js` and refer to the contents for understanding to write tests. Run the tests by doing `npm run test`.
6. While developing smart contract, it's a good practice to write tests as you implement any new contract code.
7. The command `npm run test` compiles your contracts if you made any changes and then runs tests.
## Steps to deploy contract
- You can test deployment on testnets like `rinkeby` or `kovan`. For deployment on mainnet, it is suggested to use Remix IDE for now.
- To deploy all compiled contracts, do `node deploy.js deployall rinkeby 0xa6779f54dc1e9959b81f448769450b97a9fcb2b41c53d4b2ab50e5055a170ce7`.
- To deploy a specific contract, write it's JSON file name instead of deployall flag, e.g. `node deploy.js SimpleStorage_SimpleStorage.json rinkeby 0xa6779f54dc1e9959b81f448769450b97a9fcb2b41c53d4b2ab50e5055a170ce7`.
- If the contract requires constructor arguments, you can pass it by adding them after the command, e.g. `node deploy.js SimpleStorage_SimpleStorage.json rinkeby 0xa6779f54dc1e9959b81f448769450b97a9fcb2b41c53d4b2ab50e5055a170ce7 "hello world"`.
## Customization
- You can customise to a specific `solc` version by doing `npm i solc@0.5.10`, but it's not recommended. Note: `solc@0.4.*` will not work with this template, because it has a different compile.js structure. It is recommended that you upgrade your smart contract code to be able to be compiled by a `solc@0.5.*` compiler. You can check out breaking changes in `0.5.*` at https://solidity.readthedocs.io/en/v0.5.0/050-breaking-changes.html and upgrade your smart contracts accordingly.
- This project uses `ethers.js` library in the tests. You can find docs at https://docs.ethers.io/ethers.js/html/. If you wish to use `web3.js` instead, you can do it by uninstalling `ethers.js` using `npm uninstall ethers`, then you can install `web3.js` using `npm i web3`. Then you will have to change the tests files.