diff --git a/.husky/pre-commit b/.husky/pre-commit index 1ace71154ac1..0210edadf9c5 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,3 +1,8 @@ #!/bin/sh . "$(dirname "$0")/_/husky.sh" + +# Compatability with nvm +export NVM_DIR="$HOME/.nvm" +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" + npx lint-staged \ No newline at end of file diff --git a/docs/build/build-guide.md b/docs/build/build-guide.md index 904a14c9a806..23cd1f819fab 100644 --- a/docs/build/build-guide.md +++ b/docs/build/build-guide.md @@ -326,21 +326,26 @@ For front-end applications, several options exist for interfacing with Substrate (parachains, relay chains, etc.) and smart contracts. These often will interact with the RPC of a Substrate node: - + + Promise and RxJS APIs around Polkadot and Substrate based chains via RPC calls. It is dynamically generated based on what the Substrate runtime provides in terms of -metadata. Full documentation & examples available. +metadata. Full documentation & examples +available here. - Capi is a framework (based on Typescript) for crafting interactions with -Substrate chains. It consists of a development server and fluent API, which facilitates multichain -interactions without compromising either performance or ease of use. + Query and submit extrinsics (transactions) to a Substrate node via RPC using +Rust. Also referred to as Rust Parity. Full documentation & examples +available here. - Submit extrinsics (transactions) to a Substrate node via RPC using Rust. -Also referred to as Rust Parity. + React hooks library for ink! smart contracts that abstract the +functionality of polkadot.js. Full documentation & examples +available here. - React hooks for ink! smart contracts +ink!athon is a starterkit for full-stack dApp development with ink! smart +contracts and a React-based frontend in one place. With convenient helper scripts and a +pre-configured project setup, it lets you scaffold any dApp quickly. Live example & full +documentation available here. diff --git a/docs/build/build-open-source.md b/docs/build/build-open-source.md index e2eb1716dd18..250b19a784e3 100644 --- a/docs/build/build-open-source.md +++ b/docs/build/build-open-source.md @@ -28,7 +28,7 @@ apologize if we missed your project! - [Wallets](#wallets) - [User Interface](#user-interface) - [Tools, APIs, and Languages](#tools-apis-and-languages) - - [ink Smart Contracts](#ink-smart-contracts) + - [ink! Smart Contracts](#ink-smart-contracts) - [Chains and Pallets](#chains-and-pallets) - [Host](#host) - [Network Maintenance Tools](#network-maintenance-tools) @@ -94,7 +94,7 @@ In the below sections, you can find a list of different layers of the Polkadot S | Components | Existing projects | Potentially interesting projects | | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Block Explorers | [Calamar](https://github.com/topmonks/calamar) 🟢, [Polkaholic](https://github.com/colorfulnotion/polkaholic) 🟢, [Polkascan](https://github.com/polkascan/explorer-api) ⚪, [Polkastats](https://github.com/Colm3na/polkastats-backend) ⚪, [Subscan](https://github.com/itering/subscan) 🟡, [Statescan](https://github.com/opensquare-network/statescan) ⚪, [Edgscan](https://github.com/edgeware-builders/edgscan) ⚪, [Sirato](https://github.com/web3labs/epirus-substrate) 🟡, [Ink! Explorer API](https://github.com/blockcoders/ink-substrate-explorer-api) ⚪, [Substats](https://github.com/CESSProject/substats) ⚪, [Hybrid Block Explorer](https://github.com/hybrid-explorer/hybrid-dapp) 🟡| Mempool focused explorer (including parachain transaction) | +| Block Explorers | [Calamar](https://github.com/topmonks/calamar) 🟢, [Polkaholic](https://github.com/colorfulnotion/polkaholic) 🟢, [Polkascan](https://github.com/polkascan/explorer-api) ⚪, [Polkastats](https://github.com/Colm3na/polkastats-backend) ⚪, [Subscan](https://github.com/itering/subscan) 🟡, [Statescan](https://github.com/opensquare-network/statescan) ⚪, [Edgscan](https://github.com/edgeware-builders/edgscan) ⚪, [Sirato](https://github.com/web3labs/epirus-substrate) 🟡, [ink! Explorer API](https://github.com/blockcoders/ink-substrate-explorer-api) ⚪, [Substats](https://github.com/CESSProject/substats) ⚪, [Hybrid Block Explorer](https://github.com/hybrid-explorer/hybrid-dapp) 🟡| Mempool focused explorer (including parachain transaction) | | Validator Dashboards | [Polkadot Telemetry](https://github.com/paritytech/substrate-telemetry) 🟡, [Polkacube](https://github.com/hashquark-io/polkacube-frontend) ⚪, [YieldScan](https://github.com/buidl-labs/YieldScan) ⚪, [Hubble](https://github.com/w3f-community/hubble/tree/master/app/controllers/polkadot) ⚪, [Cyclops](https://github.com/ArthurHoeke/cyclops) 🟢, [Web3Go](https://github.com/web3go-xyz/web3go-xyz-v2) 🟢| | Node Explorers | [Polkadot Node Explorer](https://github.com/protos-research/polkadot-node-explorer) ⚪| | NFT Explorer | [NFT Explorer for Kusama & Polkadot](https://github.com/kodadot/nft-gallery) 🟢| @@ -114,13 +114,10 @@ In the below sections, you can find a list of different layers of the Polkadot S | RPC Gateway | [Subway](https://github.com/AcalaNetwork/subway) 🟢| | | Substrate Contract clients | [PatractGo](https://github.com/patractlabs/go-patract) ⚪| | | Easy Runtime Development | [Subalfred](https://github.com/hack-ink/subalfred) 🟢, [substrate-stencil](https://github.com/kaichaosun/substrate-stencil) ⚪, [Play Substrate](https://github.com/kaichaosun/play-substrate) ⚪, [substrate-node-template](https://github.com/substrate-developer-hub/substrate-node-template) 🟢, [Substrate Playground](https://github.com/paritytech/substrate-playground) ⚪, [AssemblyScript Runtime Generation](https://github.com/LimeChain/as-substrate-runtime) ⚪, [Substrate Package Manager](https://github.com/clearloop/sup) ⚪, [Subsembly: Framework for developing AssemblyScript Substrate Runtimes](https://github.com/LimeChain/subsembly) ⚪, [dependency diener](https://github.com/bkchr/diener) 🟡| | -| Easy Smart Contract Development | [Swanky-cli](https://github.com/swankyhub/swanky-cli) 🟡, [Typechain Polkadot](https://github.com/727-ventures/typechain-polkadot) 🟡, [ink-playground](https://github.com/paritytech/ink-playground) ⚪, [DRink!](https://github.com/Cardinal-Cryptography/drink) 🟢, [Ink! Remix Plugin](https://github.com/blockchain-it-hr/ink-remix-plugin) ⚪, [Signac](https://github.com/standardweb3/signac/) ⚪, [INK!athon](https://github.com/scio-labs/inkathon) 🟢, [ink!-boxes](https://github.com/avirajkhare00/ink-boxes/) ⚪, [ink!-smart-contract-wizard](https://github.com/avirajkhare00/ink-wizard) ⚪, [Polkadot Contract Wizard](https://github.com/protofire/polkadot-contract-wizard) 🟢, [ink-wrapper](https://github.com/Cardinal-Cryptography/ink-wrapper) 🟡, [ink! Analyzer for VS Code](https://github.com/ink-analyzer/ink-vscode) 🟢| -| Smart Contract React Hooks | [useink](https://github.com/paritytech/useink), [useInkathon](https://github.com/scio-labs/use-inkathon) | -| IDE Plugins | [Ink! Analyzer](https://github.com/ink-analyzer/ink-analyzer) 🟢, [Substrate Marketplace VS Code Plugin](https://github.com/paritytech/vscode-substrate) ⚪, [VS Code Plugin](https://github.com/everstake/vscode-plugin-substrate) ⚪, [Atom Code Plugin](https://github.com/everstake/atom-plugin-substrate) ⚪, [zombienet extension](https://github.com/paritytech/zombienet-vscode-extension) ⚪| | Substrate Analyzer | +| IDE Plugins | [Substrate Marketplace VS Code Plugin](https://github.com/paritytech/vscode-substrate) ⚪, [VS Code Plugin](https://github.com/everstake/vscode-plugin-substrate) ⚪, [Atom Code Plugin](https://github.com/everstake/atom-plugin-substrate) ⚪, [zombienet extension](https://github.com/paritytech/zombienet-vscode-extension) ⚪| | Substrate Analyzer | | Runtime/Pallet Security | [Substrate Runtime Fuzzer](https://github.com/srlabs/substrate-runtime-fuzzer) 🟡, [Substrate Toml Lint](https://github.com/shawntabrizi/substrate-toml-lint) ⚪, [K specifications](https://github.com/kframework/wasm-semantics) 🟢, [PolPatrol - Polkadot Runtime Checker](https://github.com/ChainSecurity/polpatrol) ⚪| Automated Runtime checking tools, economic audit simulator such as [gauntlet.network](https://gauntlet.network/) | -| Smart Contract Languages | [Ask!](https://github.com/ask-lang/ask) 🟢, [Subscript](https://github.com/slickup/subscript) ⚪, [Solang](https://github.com/hyperledger-labs/solang) 🟢, [Ink!](https://github.com/paritytech/ink) 🟢, [pallet-move](https://github.com/eigerco/pallet-move) 🟢, [Move VM Substrate](https://github.com/pontem-network/sp-move) ⚪, [Move smart contract by Neatcoin](https://github.com/neatcoin/neatcoin) ⚪, [Sol2Ink](https://github.com/727-Ventures/sol2ink) ⚪, [eBPF Contracts Hackathon](https://github.com/pepyakin/substrate-seal-ebpf) ⚪, [PolkaVM](https://github.com/koute/polkavm) 🟢| Functional Programming Languages, other languages with developed toolchains | -| Smart Contract Security | [Patron](https://github.com/Brushfam/patron-backend/) 🟢| -| Testing | [Polkadot introspector](https://github.com/paritytech/polkadot-introspector) 🟢, [Subshell](https://github.com/subdirectory/subshell) 🟢, [substrate-simnode](https://github.com/polytope-labs/sc-simnode) 🟡, [Halva](https://github.com/halva-suite/halva) ⚪, [Ink Waterfall](https://github.com/paritytech/ink-waterfall) 🟡, [Redspot](https://github.com/patractlabs/redspot) ⚪, [MixBytes Tank](https://github.com/mixbytes/tank) ⚪, [sub-flood](https://github.com/NikVolf/sub-flood) ⚪, [Substrate debug-kit](https://github.com/paritytech/substrate-debug-kit) ⚪, [Asset CLI tool](https://github.com/JesseAbram/asset_cli_tool) 🟢, [sub_crash](https://github.com/JesseAbram/unfinished_testing_tool) ⚪, [subwasm](https://github.com/chevdor/subwasm) 🟢, [subsee](https://github.com/ascjones/subsee) ⚪, [polkadot-lab](https://github.com/w3f/polkadot-lab) ⚪, [RPC-perf](https://github.com/dwellir-public/rpc-perf/) ⚪| +| Smart Contract Languages | [ink!](#ink-smart-contracts) 🟢, [Ask!](https://github.com/ask-lang/ask) 🟢, [Subscript](https://github.com/slickup/subscript) ⚪, [Solang](https://github.com/hyperledger-labs/solang) 🟢, [pallet-move](https://github.com/eigerco/pallet-move) 🟢, [Move VM Substrate](https://github.com/pontem-network/sp-move) ⚪, [Move smart contract by Neatcoin](https://github.com/neatcoin/neatcoin) ⚪, [eBPF Contracts Hackathon](https://github.com/pepyakin/substrate-seal-ebpf) ⚪, [PolkaVM](https://github.com/koute/polkavm) 🟢| Functional Programming Languages, other languages with developed toolchains | +| Testing | [Polkadot introspector](https://github.com/paritytech/polkadot-introspector) 🟢, [Subshell](https://github.com/subdirectory/subshell) 🟢, [substrate-simnode](https://github.com/polytope-labs/sc-simnode) 🟡, [Halva](https://github.com/halva-suite/halva) ⚪, [Redspot](https://github.com/patractlabs/redspot) ⚪, [MixBytes Tank](https://github.com/mixbytes/tank) ⚪, [sub-flood](https://github.com/NikVolf/sub-flood) ⚪, [Substrate debug-kit](https://github.com/paritytech/substrate-debug-kit) ⚪, [Asset CLI tool](https://github.com/JesseAbram/asset_cli_tool) 🟢, [sub_crash](https://github.com/JesseAbram/unfinished_testing_tool) ⚪, [subwasm](https://github.com/chevdor/subwasm) 🟢, [subsee](https://github.com/ascjones/subsee) ⚪, [polkadot-lab](https://github.com/w3f/polkadot-lab) ⚪, [RPC-perf](https://github.com/dwellir-public/rpc-perf/) ⚪| | Static Analysis | [Substrace](https://github.com/KaiserKarel/substrace) ⚪, [Static analyzer for Substrate FRAME's pallets](https://github.com/simon-perriard/saft) ⚪, [CoinFabrik Scout](https://github.com/CoinFabrik/scout) 🟢| | Testnet | [Zombienet](https://github.com/paritytech/zombienet) 🟢, [Chopsticks](https://github.com/AcalaNetwork/chopsticks) 🟢, [Polkadot Launch](https://github.com/paritytech/polkadot-launch) ⚪, [polkadot-starship](https://github.com/koute/polkadot-starship) ⚪, [Fork off Substrate](https://github.com/maxsam4/fork-off-substrate) ⚪, [try-runtime-cli](https://github.com/paritytech/try-runtime-cli) 🟢, [Parachain Launch](https://github.com/open-web3-stack/parachain-launch) 🟢, [Larch Zombienet GUI](https://github.com/Zeeve-App/larch) 🟢| | Benchmarking | [Benchmarking CLI](https://github.com/paritytech/polkadot-sdk/tree/master/substrate/utils/frame/benchmarking-cli) 🟢, [Polkadot sTPS](https://github.com/paritytech/polkadot-stps) 🟢, [Clockchain](https://github.com/0xekez/clockchain) ⚪, [Substrate Graph Benchmarks](https://github.com/shawntabrizi/substrate-graph-benchmarks) ⚪, [ink! & pallet benchmarking template](https://github.com/Nikhil-Desai-Talentica/substrate-node-template-benchmarking) ⚪, [smart-bench](https://github.com/paritytech/smart-bench) 🟡| @@ -132,22 +129,28 @@ In the below sections, you can find a list of different layers of the Polkadot S | XCM | [Trappist](https://github.com/paritytech/trappist) 🟢, [XCM-tools](https://github.com/PureStake/xcm-tools) 🟡, [XCM-tools Golang](https://github.com/itering/substrate-api-rpc) 🟢,[ParaSpell](https://github.com/paraspell/ui-v2) 🟡, [XBI](https://github.com/t3rn/xbi) 🟡, [XCM TS/JS SDK](https://github.com/blockcoders/xcm-sdk) ⚪| | | Other | [asset-transfer-api](https://github.com/paritytech/asset-transfer-api) 🟢, [txwrapper-core](https://github.com/paritytech/txwrapper-core) 🟢, [open-web3 JS library](https://github.com/open-web3-stack/open-web3.js) ⚪, [VM-Bridge](https://github.com/CycanTech/GVM-Bridge) ⚪, [srtool](https://github.com/paritytech/srtool) 🟢, [srtool-cli](https://github.com/chevdor/srtool-cli) 🟢, [Substrate Tip Bot](https://github.com/paritytech/substrate-tip-bot) 🟢, [ORI (Onchain Risk Intelligence)](https://github.com/syntifi/ori) ⚪, [PolkaTools](https://github.com/albertov19/PolkaTools) ⚪, [polkadot-scripts](https://github.com/paritytech/polkadot-scripts) ⚪, [Sube](https://github.com/virto-network/sube) ⚪, [data-store-sidecar](https://github.com/CESSProject/data-store-sidecar) ⚪, [SugarFunge](https://github.com/SugarFunge/sugarfunge-node) 🟡, [substrate-wasmedge](https://github.com/second-state/substrate-wasmedge) ⚪, [EightFish](https://github.com/eightfish-org/eightfish) 🟡, [Sandox](https://github.com/sandoxio/sandox) 🟢, [APK verifier](https://github.com/darwinia-network/apk-verifier/) 🟢| -### ink Smart Contracts +### ink! Smart Contracts | Components | Existing projects | Potentially interesting projects | | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------- | +| Core Libraries | [ink!](https://github.com/paritytech/ink) 🟢, [cargo-contract](https://github.com/paritytech/cargo-contract) 🟢, [pallet-contracts](https://github.com/paritytech/polkadot-sdk/tree/master/substrate/frame/contracts) 🟢 | | +| Local Nodes | [substrate-contracts-node](https://github.com/paritytech/substrate-contracts-node) 🟢, [Swanky](https://github.com/swankyhub/swanky-cli) 🟢 | | +| Smart Contract Development | [DRink!](https://github.com/Cardinal-Cryptography/drink) 🟢, [contracts-ui](https://github.com/paritytech/contracts-ui) 🟢, [OpenBrush](https://github.com/h4nsu/openbrush-contracts) :grey_question:, [Sol2Ink](https://github.com/727-Ventures/sol2ink) :grey_question:, [Polkadot Contract Wizard](https://github.com/protofire/polkadot-contract-wizard) 🟢, [ink-wrapper](https://github.com/Cardinal-Cryptography/ink-wrapper) 🟡, [ink-playground](https://github.com/paritytech/ink-playground) ⚪, [ink! Remix Plugin](https://github.com/blockchain-it-hr/ink-remix-plugin) ⚪, [Signac](https://github.com/standardweb3/signac/) ⚪, [ink!-boxes](https://github.com/avirajkhare00/ink-boxes/) ⚪, [ink!-smart-contract-wizard](https://github.com/avirajkhare00/ink-wizard) ⚪ | +| Security & Testing | [ink! Waterfall](https://github.com/paritytech/ink-waterfall) 🟡, [Verifier Image for ink!](https://github.com/web3labs/ink-verifier-image) 🟡, [Patron](https://github.com/Brushfam/patron-backend/) :grey_question: | | +| Frontend Development | [ink!athon Boilerplate](https://github.com/scio-labs/inkathon) 🟢, [useink](https://github.com/paritytech/useink) 🟢, [useInkathon](https://github.com/scio-labs/use-inkathon) 🟢, [ink-typegen](https://github.com/subsquid/squid-sdk/tree/master/substrate/ink-typegen) 🟢, [Typechain Polkadot](https://github.com/Brushfam/typechain-polkadot) :grey_question: | | +| IDE Plugins | [ink! Analyzer](https://github.com/ink-analyzer/ink-analyzer) 🟢 | | | Bridges | [Dante Protocol](https://github.com/dantenetwork/protocol-stack-for-ink) ⚪| | | DeFi | [Pendulum-Ink-Wrapper](https://github.com/pendulum-chain/pendulum-ink-wrapper) 🟡, [Panorama Swap](https://github.com/RottenKiwi/Panorama-Swap-INK-SC) 🟡, [ink_bank](https://github.com/Juminstock/ink_bank) ⚪, [Polkadot AMM](https://github.com/realnimish/polkadot-amm) ⚪, [Vera](https://github.com/veradefi/defi) ⚪, [Nsure Insurance](https://github.com/nsure-tech/dot-contract) ⚪, [Everlasting Cash](https://github.com/CycanTech/ELC) ⚪, [Coinversation](https://github.com/Coinversation/coinpro) ⚪, [zenlink-dex-contract](https://github.com/zenlinkpro/zenlink-dex-contract) ⚪, [AlgoCash](https://github.com/ReserveLabs/AlgoCash) ⚪| New seigniorage-style stable coins | | Gaming | [Open Emoji Battler](https://github.com/OpenEmojiBattler/open-emoji-battler) 🟡, [NewOmega](https://github.com/WiktorStarczewski/newomega.polkadot/blob/master/newomega_delegator/newomega/newomega.rs) ⚪| | | DAO | [SyncraDAO](https://github.com/SyncraDAO/modular-dao) ⚪, [subDAO](https://github.com/w3f-grants-archive/subDAO-contracts) ⚪, [RainbowDAO](https://github.com/RainbowcityFoundation/RainbowDAO-Protocol-Ink-milestone_1) ⚪, [MangoBox](https://github.com/Mangoboxlabs/Mangoboxink) ⚪, [MangoSale](https://github.com/Mangoboxlabs/MangoSaleV2) 🟢| | | Identity/DID | [Dotflow](https://github.com/TheDotflow) 🟢| | -| Oracle | [DIA WASM Oracle](https://github.com/diadata-org/dia-wasm-oracle) ⚪| | +| Oracles | [DIA WASM Oracle](https://github.com/diadata-org/dia-wasm-oracle) ⚪| | | Spam Protection | [Prosopo](https://github.com/prosopo-io/integration) ⚪| | -| Tooling | [OpenBrush](https://github.com/h4nsu/openbrush-contracts) :grey_question:| | | Governance | [Abax Governance](https://github.com/AbaxFinance/Governance) 🟢| | | NFT | [ArtZero](https://github.com/ArtZero-io/Contracts) ⚪| | | Other | [Polkadot Smart Account](https://github.com/pnsproject/ink-aa), [magink](https://github.com/swankyhub/magink-dapp) 🟡, [ink-test-contracts](https://github.com/AstarNetwork/ink-test-contracts) 🟡, [Candle Auctions](https://github.com/agryaznov/candle-auction-ink) ⚪, [polkasign-contract](https://github.com/SubDAO-Network/polkasign-contract) ⚪, [OCEX](https://github.com/bsn-si/ocex-cli) 🟡, [Roloi](https://github.com/RoloiMoney/roloi-polkadot-w3f-grant) ⚪, [OpenPayroll](https://github.com/polkadrys/openPayroll) 🟡, [BlockchainFoodOrder](https://github.com/InkSmartContract/BlockchainFoodOrder) 🟢| | + ### Chains and Pallets | Components | Existing projects | Potentially interesting projects | diff --git a/docs/build/build-smart-contracts.md b/docs/build/build-smart-contracts.md index b4d07c18565d..328a4c4cffae 100644 --- a/docs/build/build-smart-contracts.md +++ b/docs/build/build-smart-contracts.md @@ -164,6 +164,8 @@ smart contract example? Ask us to add it to this page!** - [OpenBrush](https://docs.openbrush.io/): an `ink!` library providing standard contracts based on [PSP](https://github.com/w3f/PSPs) with useful contracts and macros for building. +- [ink!athon](https://inkathon.xyz/): Starterkit for full-stack dApps with ink! smart contracts & + frontend. - [Metis](https://github.com/patractlabs/metis): a Wasm contract standard library, developed by [Patract Labs](https://github.com/patractlabs).