├── projects ├── .gitkeep ├── py-dm-beginner-en │ ├── tests │ │ ├── __init__.py │ │ ├── conftest.py │ │ └── digital_marketplace_test.py │ ├── smart_contracts │ │ ├── __init__.py │ │ ├── helpers │ │ │ ├── __init__.py │ │ │ ├── util.py │ │ │ ├── deploy.py │ │ │ └── build.py │ │ ├── artifacts │ │ │ └── digital_marketplace │ │ │ │ ├── DigitalMarketplace.clear.teal │ │ │ │ ├── DigitalMarketplace.approval.teal │ │ │ │ └── DigitalMarketplace.arc32.json │ │ ├── README.md │ │ ├── config.py │ │ ├── __main__.py │ │ └── digital_marketplace │ │ │ └── contract.py │ ├── .gitattributes │ ├── poetry.toml │ ├── .env.template │ ├── .editorconfig │ ├── .algokit │ │ ├── sources │ │ │ ├── DigitalMarketplace │ │ │ │ ├── clear.teal.tok.map │ │ │ │ ├── clear.teal │ │ │ │ ├── approval.teal.tok.map │ │ │ │ └── approval.teal │ │ │ └── sources.avm.json │ │ └── generators │ │ │ └── create_contract │ │ │ ├── copier.yaml │ │ │ └── smart_contracts │ │ │ └── {{ contract_name }} │ │ │ ├── contract.py.j2 │ │ │ └── deploy_config.py.j2 │ ├── .env.testnet.template │ ├── .vscode │ │ ├── extensions.json │ │ ├── launch.json │ │ ├── settings.json │ │ └── tasks.json │ ├── .env.localnet.template │ ├── .copier-answers.yml │ ├── pyproject.toml │ ├── .pre-commit-config.yaml │ ├── .algokit.toml │ ├── .gitignore │ ├── .tours │ │ └── getting-started-with-your-algokit-project.tour │ └── README.md └── frontend │ ├── .gitattributes │ ├── src │ ├── styles │ │ └── main.css │ ├── utils │ │ ├── ellipseAddress.ts │ │ ├── ellipseAddress.spec.tsx │ │ └── network │ │ │ └── getAlgoClientConfigs.ts │ ├── main.tsx │ ├── components │ │ ├── MethodCall.tsx │ │ ├── Account.tsx │ │ ├── ErrorBoundary.tsx │ │ ├── ConnectWallet.tsx │ │ └── Transact.tsx │ ├── vite-env.d.ts │ ├── contracts │ │ └── README.md │ ├── interfaces │ │ └── network.ts │ ├── App.tsx │ ├── methods.ts │ ├── assets │ │ └── logo.svg │ └── Home.tsx │ ├── public │ ├── robots.txt │ └── index.html │ ├── postcss.config.cjs │ ├── .github │ └── workflows │ │ ├── pr.yaml │ │ ├── checks.yaml │ │ └── release.yaml │ ├── vite.config.ts │ ├── .editorconfig │ ├── .prettierrc.cjs │ ├── tsconfig.node.json │ ├── tailwind.config.js │ ├── .idea │ └── runConfigurations │ │ ├── Run_Chrome.xml │ │ ├── Run_dApp.xml │ │ ├── Run_dApp____LocalNet_.xml │ │ └── Start_AlgoKit_LocalNet.xml │ ├── .algokit.toml │ ├── .copier-answers.yml │ ├── .prettierignore │ ├── .vscode │ ├── settings.json │ ├── extensions.json │ ├── tasks.json │ └── launch.json │ ├── index.html │ ├── jest.config.ts │ ├── .gitignore │ ├── .eslintrc │ ├── LICENSE │ ├── tests │ └── example.spec.ts │ ├── .env.template │ ├── tsconfig.json │ ├── package.json │ ├── playwright.config.ts │ └── README.md ├── .gitattributes ├── .algokit.toml ├── .editorconfig ├── .devcontainer.json ├── py-dm-beginner-en.code-workspace ├── README.md ├── .github └── workflows │ ├── py-dm-beginner-en-cd.yaml │ └── py-dm-beginner-en-ci.yaml └── .gitignore /projects/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | -------------------------------------------------------------------------------- /projects/py-dm-beginner-en/tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /projects/frontend/.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | -------------------------------------------------------------------------------- /projects/py-dm-beginner-en/smart_contracts/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /projects/py-dm-beginner-en/smart_contracts/helpers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /projects/py-dm-beginner-en/.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | -------------------------------------------------------------------------------- /projects/py-dm-beginner-en/poetry.toml: -------------------------------------------------------------------------------- 1 | [virtualenvs] 2 | in-project = true 3 | -------------------------------------------------------------------------------- /projects/frontend/src/styles/main.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | -------------------------------------------------------------------------------- /projects/frontend/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /.algokit.toml: -------------------------------------------------------------------------------- 1 | [algokit] 2 | min_version = "v1.8.0" 3 | 4 | [project] 5 | type = 'workspace' 6 | projects_root_path = 'projects' 7 | -------------------------------------------------------------------------------- /projects/py-dm-beginner-en/.env.template: -------------------------------------------------------------------------------- 1 | # this file should contain environment variables common to all environments/networks 2 | -------------------------------------------------------------------------------- /projects/frontend/postcss.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /projects/frontend/.github/workflows/pr.yaml: -------------------------------------------------------------------------------- 1 | name: Pull Request validation 2 | 3 | on: [pull_request] 4 | 5 | jobs: 6 | pr-check: 7 | name: Perform Checks 8 | uses: ./.github/workflows/checks.yaml 9 | -------------------------------------------------------------------------------- /projects/frontend/src/utils/ellipseAddress.ts: -------------------------------------------------------------------------------- 1 | export function ellipseAddress(address = ``, width = 6): string { 2 | return address ? `${address.slice(0, width)}...${address.slice(-width)}` : address 3 | } 4 | -------------------------------------------------------------------------------- /projects/py-dm-beginner-en/.editorconfig: -------------------------------------------------------------------------------- 1 | root=true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | end_of_line = lf 7 | insert_final_newline = true 8 | 9 | [*.py] 10 | indent_size = 4 11 | -------------------------------------------------------------------------------- /projects/frontend/vite.config.ts: -------------------------------------------------------------------------------- 1 | import react from '@vitejs/plugin-react' 2 | import { defineConfig } from 'vite' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [react()], 7 | }) 8 | -------------------------------------------------------------------------------- /projects/frontend/.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | charset = utf-8 3 | insert_final_newline = true 4 | end_of_line = lf 5 | indent_style = space 6 | indent_size = 2 7 | tab_width = 2 8 | max_line_length = 140 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /projects/py-dm-beginner-en/.algokit/sources/DigitalMarketplace/clear.teal.tok.map: -------------------------------------------------------------------------------- 1 | {"version": 3, "sources": ["clear.teal"], "mappings": ";AAKI;;AACA", "pc_to_line": {"0": 0, "1": 5, "2": 5, "3": 6}, "line_to_pc": {"0": [0], "5": [1, 2], "6": [3]}} -------------------------------------------------------------------------------- /projects/py-dm-beginner-en/.env.testnet.template: -------------------------------------------------------------------------------- 1 | # this file contains algorand network settings for interacting with testnet via algonode 2 | ALGOD_SERVER=https://testnet-api.algonode.cloud 3 | INDEXER_SERVER=https://testnet-idx.algonode.cloud 4 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | charset = utf-8 3 | insert_final_newline = true 4 | end_of_line = lf 5 | indent_style = space 6 | indent_size = 2 7 | tab_width = 2 8 | max_line_length = 140 9 | trim_trailing_whitespace = true 10 | single_quote = true 11 | -------------------------------------------------------------------------------- /projects/frontend/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | singleQuote: true, 3 | jsxSingleQuote: false, 4 | semi: false, 5 | tabWidth: 2, 6 | trailingComma: 'all', 7 | printWidth: 140, 8 | endOfLine: 'lf', 9 | arrowParens: 'always', 10 | } 11 | -------------------------------------------------------------------------------- /projects/frontend/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "module": "ESNext", 5 | "moduleResolution": "Node", 6 | "allowSyntheticDefaultImports": true 7 | }, 8 | "include": ["vite.config.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /projects/frontend/tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: ['./src/**/*.{js,ts,jsx,tsx}'], 4 | theme: { 5 | extend: {}, 6 | }, 7 | daisyui: { 8 | themes: ['lofi'], 9 | }, 10 | plugins: [require('daisyui')], 11 | } 12 | -------------------------------------------------------------------------------- /projects/frontend/.idea/runConfigurations/Run_Chrome.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /projects/py-dm-beginner-en/smart_contracts/helpers/util.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | 3 | 4 | def find_app_spec_file(output_dir: Path) -> str | None: 5 | for file in output_dir.iterdir(): 6 | if file.is_file() and file.suffixes == [".arc32", ".json"]: 7 | return file.name 8 | return None 9 | -------------------------------------------------------------------------------- /projects/py-dm-beginner-en/.algokit/sources/DigitalMarketplace/clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 2 | 3 | smart_contracts.digital_marketplace.contract.DigitalMarketplace.clear_state_program: 4 | // smart_contracts/digital_marketplace/contract.py:13 5 | // class DigitalMarketplace(arc4.ARC4Contract): 6 | int 1 7 | return -------------------------------------------------------------------------------- /projects/frontend/.algokit.toml: -------------------------------------------------------------------------------- 1 | [algokit] 2 | min_version = "v2.0.0" 3 | 4 | [project] 5 | type = "frontend" 6 | name = "frontend" 7 | artifacts = "src/contracts" 8 | 9 | [project.run] 10 | build = { commands = ['npm run build'], description = 'Build frontend' } 11 | test = { commands = ['npm run test'], description = 'Run frontend tests' } 12 | -------------------------------------------------------------------------------- /projects/frontend/.copier-answers.yml: -------------------------------------------------------------------------------- 1 | # Changes here will be overwritten by Copier; NEVER EDIT MANUALLY 2 | _commit: 0.10.1 3 | _src_path: gh:algorandfoundation/algokit-react-frontend-template 4 | author_email: joepolny@gmail.com 5 | author_name: Joe Polny 6 | cloud_provider: none 7 | preset_name: production 8 | project_name: frontend 9 | 10 | -------------------------------------------------------------------------------- /projects/py-dm-beginner-en/.algokit/generators/create_contract/copier.yaml: -------------------------------------------------------------------------------- 1 | _tasks: 2 | - "echo '==== Successfully initialized new smart contract 🚀 ===='" 3 | 4 | contract_name: 5 | type: str 6 | help: Name of your new contract. 7 | placeholder: "my-new-contract" 8 | default: "my-new-contract" 9 | 10 | _templates_suffix: ".j2" 11 | -------------------------------------------------------------------------------- /projects/py-dm-beginner-en/.algokit/generators/create_contract/smart_contracts/{{ contract_name }}/contract.py.j2: -------------------------------------------------------------------------------- 1 | from algopy import ARC4Contract, arc4 2 | 3 | 4 | class {{ contract_name.split('_')|map('capitalize')|join }}(ARC4Contract): 5 | @arc4.abimethod() 6 | def hello(self, name: arc4.String) -> arc4.String: 7 | return "Hello, " + name 8 | -------------------------------------------------------------------------------- /projects/frontend/.prettierignore: -------------------------------------------------------------------------------- 1 | # don't ever format node_modules 2 | node_modules 3 | # don't lint format output (make sure it's set to your correct build folder name) 4 | dist 5 | build 6 | # don't format nyc coverage output 7 | coverage 8 | # don't format generated types 9 | **/generated/types.d.ts 10 | **/generated/types.ts 11 | # don't format ide files 12 | .idea 13 | -------------------------------------------------------------------------------- /projects/py-dm-beginner-en/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "ms-python.python", 4 | "charliermarsh.ruff", 5 | "matangover.mypy", 6 | "ms-python.black-formatter", 7 | "tamasfe.even-better-toml", 8 | "editorconfig.editorconfig", 9 | "vsls-contrib.codetour", 10 | "algorandfoundation.algokit-avm-vscode-debugger" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /projects/py-dm-beginner-en/.env.localnet.template: -------------------------------------------------------------------------------- 1 | # this file should contain environment variables specific to algokit localnet 2 | ALGOD_TOKEN=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 3 | ALGOD_SERVER=http://localhost 4 | ALGOD_PORT=4001 5 | INDEXER_TOKEN=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6 | INDEXER_SERVER=http://localhost 7 | INDEXER_PORT=8980 8 | -------------------------------------------------------------------------------- /projects/frontend/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.formatOnSave": true, 3 | "editor.defaultFormatter": "esbenp.prettier-vscode", 4 | "editor.codeActionsOnSave": { 5 | "source.fixAll.eslint": "explicit", 6 | "source.organizeImports": "explicit" 7 | }, 8 | "dotenv.enableAutocloaking": false, 9 | "jest.autoRun": { 10 | "watch": false, 11 | "onSave": "test-file" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /projects/py-dm-beginner-en/.copier-answers.yml: -------------------------------------------------------------------------------- 1 | # Changes here will be overwritten by Copier; NEVER EDIT MANUALLY 2 | _commit: 0.5.1-17-g6d5caf6 3 | _src_path: gh:algorandfoundation/algokit-python-template 4 | author_email: my@mail.com 5 | author_name: CiottiGiorgio 6 | contract_name: digital_marketplace 7 | deployment_language: python 8 | preset_name: production 9 | project_name: py-dm-beginner-en 10 | 11 | -------------------------------------------------------------------------------- /projects/frontend/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "EditorConfig.EditorConfig", 4 | "dotenv.dotenv-vscode", 5 | "esbenp.prettier-vscode", 6 | "dbaeumer.vscode-eslint", 7 | "krysenlo.vite-plugin-eslint-problemmatcher", 8 | "ms-playwright.playwright", 9 | "Orta.vscode-jest", 10 | "bradlc.vscode-tailwindcss", 11 | "csstools.postcss", 12 | ] 13 | } 14 | 15 | -------------------------------------------------------------------------------- /projects/frontend/src/main.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom/client' 3 | import App from './App' 4 | import './styles/main.css' 5 | import ErrorBoundary from './components/ErrorBoundary' 6 | 7 | ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( 8 | 9 | 10 | 11 | 12 | , 13 | ) 14 | -------------------------------------------------------------------------------- /projects/py-dm-beginner-en/smart_contracts/artifacts/digital_marketplace/DigitalMarketplace.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 2 | 3 | smart_contracts.digital_marketplace.contract.DigitalMarketplace.clear_state_program: 4 | // smart_contracts/digital_marketplace/contract.py:20-21 5 | // # We want the methods in our contract to follow the ARC4 standard 6 | // class DigitalMarketplace(arc4.ARC4Contract): 7 | int 1 8 | return 9 | -------------------------------------------------------------------------------- /projects/frontend/.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "2.0.0", 3 | "tasks": [ 4 | { 5 | "label": "Start AlgoKit LocalNet", 6 | "command": "algokit", 7 | "args": ["localnet", "start"], 8 | "type": "shell", 9 | "options": { 10 | "cwd": "${workspaceFolder}" 11 | }, 12 | "problemMatcher": [] 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /projects/frontend/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | AlgoKit React Template 7 | 8 | 9 |
10 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /projects/frontend/.idea/runConfigurations/Run_dApp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |