This code is open, but not open source. It is not licensed, which means you cannot use it freely for your own applications. You cannot "base your code on CryptoBlades", nor use our code for anything. At all. This is not permissible under our license terms (which do not exist).
- Install Ganache.
- For Ganache, choose Quickstart Ethereum.
- Increase the gas limit in the workspace to
99999999
(or some other high number so you can deploy). - Install MetaMask.
- Create a new connection to connect to Ganache with these settings: http://localhost:7545, any name, any chain id
- In Ganache, click the key icon on the right side of any address and grab the private key.
- In MetaMask, create a new account, import from private key, and paste the key in there.
You should now have 100 fake eth! You're now fake rich.
npm install
mv .env.local .env
(copy the example env to your local so it can be used)npm run contract:prepare
(this builds your contracts)npm run contract:deploy
(this deploys your contracts to your local blockchain)npm run start:frontend
For Windows developers experiencing errors follow these steps:
rm -r build
npm run contract:prepare
(this builds your contracts)rm -r build/contracts
npm run contract:deploy
npm run start:frontend
If you're using VSCode, we recommend these extensions: Auto Rename Tag, EditorConfig for VSCode, Eslint, Github Pull Requests, Gitlens, Javascript and Typescript, Live Share, Solidity, Typescript Hero, Vetur
There are optional environment variables, most of which have sensible defaults if copied from .env.local
:
VUE_APP_API_URL
- the API URL to use - defaults to prod (which will throw CORS errors on local)
contracts
contains the solidity contracts for the gamefrontend
contains the Vue code for the frontendmigrations
contains migration filestest
contains tests
npm run start:frontend
- start up a server for the Vue frontendnpm run lint
- run lint checking for all modulesnpm run contract:prepare
- extract the ABI and re-compile Truffle contractsnpm run contract:deploy
- deploy the Truffle contracts for testingnpm run test:local
- run tests via hardhat, careful, this is not using migrations but rather fixtures which should be kept up to date (/test/helpers/prepareContracts.js
)
- If you run into any error at all during the build process you may need to reset Ganache by deleting previous workspaces and going through the Ganache setup process again including importing a new account for Metamask.
- Artifacts are from different compiler runs
- rm -rf build/
To run tests locally simply run
npm run test:local
NOTE: Careful, this is not using migrations but rather fixtures which should be kept up to date (
/test/helpers/prepareContracts.js
)
- All network config is in app-config.json
cd frontend
- navigate to frontend foldernpm run setup-app-config
-Initial setup of app-config.json file- If you want to add a new network: add it's configuration in app-config.json and add update currentTokenPrice getter in EarningsCalculator.
This repository uses Truffle, but if for some reason, you'd prefer using hardhat for development, with an ephemeral local blockchain, you can do so too:
Turn on the Hardhat node:
npx hardhat node
Generate Hardhat artifacts:
npx hardhat compile
Deploy to the Hardhat node:
export ETH_DEV_RPC_PORT=8545 && npm run deploy --reset
Run the frontend pointing to hardhat:
export VUE_APP_NETWORK_ID=31337 && npm run start:frontend
If you get any issues during deployment, run:
truffle compile --all
- We use vue-18n for internationalization
- Fallback is English, if a string is not added or empty
- Replace strings in template with
{{$t('keyName')}}
- Replace strings in script with
i18n.t('keyName')
- Pass objects/values with
{{$t('keyName', someValue)}}
and use it in en.json:"keyName": "This is {someValue} !"
- You can use markdown by using v-html:
<p v-html="$t('keyName'})"></p>
with"keyName": "This is <b>bold</b>"
- Avoid splitting up strings. If a sentences is split up, it can't be translated in some language properly. (example and docu)
- Add a new JSON file to ~/frontend/src/locales/ by copying en.json and renaming it to your language code. Use the 2-Letter ISO code of your language
- Language is loaded on startup and added to the language drop-down of the Options page.
- The value for the drop-down is "name" at the root of the json map.
- Adding translations is easier with the use of i18n-manager
- Download the app, install it on your device and run it.
- Point it to the folder containing locale files. (frontend/src/locales)
- Add translations, save with ctrl + s, you should be able to see changes immediately after rebuilding