feat: initialize crypto_clash_contract with TypeScript, Hardhat, and deployment script

- Added package.json with scripts for compiling, deploying, and testing the contract.
- Created deploy.ts script for deploying the HelloWorld contract and saving the contract address to config.json.
- Configured TypeScript with tsconfig.json for Node.js environment and ES module support.
This commit is contained in:
averel10
2025-11-11 21:01:16 +01:00
parent b27ae2dc5d
commit 44bc814114
11 changed files with 1673 additions and 6 deletions

40
.github/workflows/deploy_backend.yml vendored Normal file
View File

@@ -0,0 +1,40 @@
name: Deploy Contract
on:
push:
branches:
- main
paths:
- 'crypto_clash_contract/**'
- '.github/workflows/deploy_backend.yml'
jobs:
build-and-deploy-contract:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v6
with:
# update the Node version to meet your needs
node-version: 24
cache: npm
cache-dependency-path: crypto_clash_contract/package-lock.json
- name: Install dependencies and compile contract
run: npm ci && npm run compile && npm run deploy
working-directory: crypto_clash_contract
env:
API_URL: ${{ vars.API_URL }}
WALLET_PRIVATE_KEY: ${{ secrets.WALLET_PRIVATE_KEY }}
- name: Commit deployed contract address
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git add config.json
git commit -m "Update deployed contract address" || echo "No changes to commit"
git push
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}