You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+12Lines changed: 12 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -316,6 +316,18 @@ Images must have :alt: text for accessibility. Generally, image width is 100%. F
316
316
317
317
GIFs can be inserted but should only be used when it gives clarity to more complex actions. When using GIFs, the :alt: text is StreamPlayer and :align: is center.
318
318
319
+
### Videos
320
+
321
+
To embed a video in a topic, use the `raw` directive.
Remove any fixed dimensions from the embed link information you copied from the video source. The sizing is handled in the stylesheet.
330
+
319
331
## Preview
320
332
321
333
For non-technical users that might not want to install the tools above, you can request a preview in the GitHub pull request. The preview is added as a comment in the pull request and opens as a web page.
Copy file name to clipboardExpand all lines: source/mainnet/net/guides/dapp-examples.rst
+4-1Lines changed: 4 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,8 @@ dApp examples
7
7
8
8
Select an example to see more information about it, such as a hosted dApp for you to try, links to tutorials, repositories, and more.
9
9
10
+
Starting a new project on the Concordium blockchain? Have a look at the `dApp starter template <https://github.com/Concordium/concordium-dapp-starter>`__!
11
+
10
12
.. dropdown:: Piggy bank
11
13
12
14
`Demo front end <https://piggybank.testnet.concordium.com>`__ where you can try the functionality on Concordium's testnet
@@ -84,7 +86,8 @@ Select an example to see more information about it, such as a hosted dApp for yo
84
86
.. dropdown:: Wallet test bench
85
87
86
88
This tool is for testing wallets and shows a great overview of the available interactions between wallets and front end.
87
-
Deploy and initialize scenarios are available on the browser wallet (will be implemented in the mobile wallets in the future).
89
+
90
+
Deploy and initialize scenarios are available on the |bw|.
88
91
89
92
`Demo front end <https://wallet-test-bench.testnet.concordium.com/>`__ where you can test wallet interactions
- `CIS-0 standard detections <https://proposals.concordium.software/CIS/cis-0.html>`_
20
17
21
-
- To ease deployment and initialization, you can use the `Smart contract deploy and initialize tool <https://sctools.mainnet.concordium.software/>`__ instead of the process below. It works with the |bw| to deploy and initialize smart contracts to Mainnet and Testnet.
18
+
- `CIS-2 token standard <https://proposals.concordium.software/CIS/cis-2.html>`_
22
19
23
-
- `GitHub <https://github.com/Concordium>`_
20
+
- `CIS-3 sponsored transaction standard <https://proposals.concordium.software/CIS/cis-3.html>`_
24
21
25
-
- `Concordium standards and updates <https://proposals.concordium.software/>`_
22
+
.. dropdown:: Nodes
26
23
27
-
- `CIS-0 standard detections <https://proposals.concordium.software/CIS/cis-0.html>`_
24
+
See :ref:`Node setup<node-requirements>` for information about the requirements to run a node and the available platforms for nodes.
28
25
29
-
- Applicable for Smart contracts v1:
26
+
For testing purposes, a node is available on testnet to use when testing smart contracts and dApps. You can use this node for API calls of chain methods only with gRPC v2 and gRPC web. The address is node.testnet.concordium.com on port 20000 (gRPCv2 and gRPC-web). You can use this node for API calls of *chain methods only*. This node is maintained by Concordium, but Concordium does not guarantee availability. The status of this node is available on the `Testnet status page <https://status.testnet.concordium.software>`__.
30
27
31
-
- `CIS-2 token standard <https://proposals.concordium.software/CIS/cis-2.html>`_
28
+
.. dropdown:: SDKs and APIs
32
29
33
-
- `CIS-3 sponsored transaction standard <https://proposals.concordium.software/CIS/cis-3.html>`_
30
+
The following SDKs and APIs exist for developing on the Concordium network.
34
31
35
-
- See :ref:`How to create proofs for dApps and services <create-proofs>` for information about how to write statements that interact with Concordium wallets.
- `Concordium go SDK <https://github.com/Concordium/concordium-go-sdk>`_
36
38
37
-
- For information about how to create proofs to verify identity for dApps and services see :ref:`Create proofs<create-proofs>`.
39
+
There is also a :ref:`Concordium gRPC V2 API<grpc2-documentation>`. It is recommended to use the SDKs.
38
40
39
-
- See :ref:`dApp examples<dapp-examples>` for a list of dApp examples and their resources.
41
+
The following NPM libraries are useful for building web-based dApps:
40
42
41
-
- For testing purposes, a node is available on testnet to use when testing smart contracts and dApps. You can use this node for API calls of chain methods only with gRPC v2 and gRPC web. The address is node.testnet.concordium.com on port 20000 (gRPCv2 and gRPC-web). You can use this node for API calls of *chain methods only*. This node is maintained by Concordium, but Concordium does not guarantee availability. The status of this node is available on the `Testnet status page <https://status.testnet.concordium.software>`__.
43
+
- `@concordium/web-sdk <https://www.npmjs.com/package/@concordium/web-sdk>`_ (for interacting with a chain).
44
+
- `@concordium/ccd-js-gen <https://www.npmjs.com/package/@concordium/ccd-js-gen>`_ (for generating smart contract clients in JavaScript).
- `@concordium/wallet-connectors <https://www.npmjs.com/package/@concordium/wallet-connectors>`_ (for connecting to wallets in non-React projects).
42
47
43
-
- The `VSCode extension <https://marketplace.visualstudio.com/items?itemName=Concordium.concordium-smart-contracts>`__ can help you develop Concordium smart contracts. The extension sets up the editor for development, installs the ``cargo-concordium`` smart contract development tool for all supported platforms, and provides commands in the editor for the essential workflows, such as building and testing smart contracts.
48
+
.. dropdown:: Smart contracts
44
49
45
-
You can watch a video about how to use the VSCode extension.
50
+
See :ref:`Smart contracts <introduction>` for general information about smart contracts, including a list of the available :ref:`smart contract development tools<sc-dev-tools>` to make creation, testing, and deployment easier.
`The main library for developing smart contracts can be found on crates.io <https://crates.io/crates/concordium-std>`__.
50
53
51
-
- An external `transaction logger <https://github.com/Concordium/concordium-transaction-logger>`_ service
54
+
.. dropdown:: Proofs
52
55
53
-
Concordium Proof Explorer
54
-
-------------------------
56
+
See :ref:`How to create proofs for dApps and services <create-proofs>` for information about how to write statements that interact with Concordium wallets.
55
57
56
-
If you want to familiarize yourself with how proofs work and can be constructed, you can use the `Concordium Proof Explorer <https://web3id-proof-explorer.testnet.concordium.com/>`__ to create proofs and send them to a |bw| to see how they interact with account credentials and verifiable credentials. The Concordium Proof Explorer works on Testnet. You can use the `Web3Id Issuer Front End <https://web3id-issuer-frontend.testnet.concordium.com/>`__ to create verifiable credential to test with the proof explorer.
58
+
For information about how to create proofs to verify identity for dApps and services see :ref:`Create proofs<create-proofs>`.
57
59
58
-
.. _example-dapps:
60
+
If you want to familiarize yourself with how proofs work and can be constructed, you can use the `Concordium Proof Explorer <https://web3id-proof-explorer.testnet.concordium.com/>`__ to create proofs and send them to a |bw| to see how they interact with account credentials and verifiable credentials. The Concordium Proof Explorer works on Testnet. You can use the `Web3Id Issuer Front End <https://web3id-issuer-frontend.testnet.concordium.com/>`__ to create verifiable credential to test with the proof explorer.
59
61
60
-
Example dApps
61
-
-------------
62
+
.. dropdown:: dApps
62
63
63
-
Concordium has a selection of example dApps that you can clone to make your own dApps or for inspiration. Additionally, all of these example dApps are hosted so you can try the functionality on Concordium's testnet.
64
+
Concordium has a selection of example dApps that you can clone to make your own dApps or for inspiration. Additionally, all of these example dApps are hosted so you can try the functionality on Concordium's testnet.
64
65
65
66
- Piggy bank: :ref:`Piggy bank tutorial<piggy-bank>` / `Piggy bank dApp <https://piggybank.testnet.concordium.com>`__
- signMessage: `Front end code <https://github.com/Concordium/concordium-dapp-examples/tree/main/signMessage>`__ / `signMessage dApp <http://signmessage.testnet.concordium.com/>`__
71
72
72
-
.. _block-explorers:
73
+
For a full list of dApp examples and resources, see :ref:`dApp examples<dapp-examples>`.
73
74
74
-
Block explorers
75
-
---------------
75
+
Starting a new project on the Concordium blockchain? Have a look at the `dApp starter template <https://github.com/Concordium/concordium-dapp-starter>`__!
76
76
77
-
The following are links to the block, node, and status explorers.
77
+
.. dropdown:: Block explorers and analytics
78
78
79
-
Concordium status pages
80
-
^^^^^^^^^^^^^^^^^^^^^^^
79
+
.. _block-explorers:
81
80
82
-
For information about the status pages, see :ref:`Status pages<dashboards>`.
81
+
The following are links to the block, node, and status explorers.
83
82
84
-
- `Mainnet status page <https://status.mainnet.concordium.software>`_
83
+
**Concordium status pages**
84
+
85
+
- `Mainnet status page <https://status.mainnet.concordium.software>`__
85
86
86
87
- `Testnet status page <https://status.testnet.concordium.software>`__
87
88
88
-
CCDScan
89
-
^^^^^^^
89
+
For information about the status pages, see :ref:`Status pages<dashboards>`.
90
90
91
-
For information about CCDScan, see :ref:`CCDScan<ccd-scan>`.
91
+
**CCDScan**
92
92
93
93
- `CCDScan <https://ccdscan.io>`_
94
94
95
-
Grafana® node dashboard
96
-
^^^^^^^^^^^^^^^^^^^^^^^
95
+
For information about CCDScan, see :ref:`CCDScan<ccd-scan>`.
97
96
98
-
For node runners using Grafana, Concordium provides a node performance dashboard using the exposed Prometheus metrics. You can `download it from the Grafana marketplace <https://grafana.com/grafana/dashboards/18983-concordium-node-external/>`__.
97
+
**Grafana® node dashboard**
99
98
100
-
Social media and support
101
-
------------------------
99
+
For node runners using Grafana, Concordium provides a node performance dashboard using the exposed Prometheus metrics. You can `download it from the Grafana marketplace <https://grafana.com/grafana/dashboards/18983-concordium-node-external/>`__.
Copy file name to clipboardExpand all lines: source/mainnet/smart-contracts/best-practices/development.rst
+4-4Lines changed: 4 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,8 @@
4
4
Development best practices
5
5
==========================
6
6
7
-
This document provides guidelines for developing smart contracts.
7
+
This document provides guidelines for developing smart contracts, including best practices for smart contract development, audit, information about common pitfalls and security vulnerabilities, and how to avoid them.
8
+
8
9
It starts with some general thoughts about smart contract development and then gives more details about writing smart contracts in Rust for Concordium.
9
10
10
11
Mindset
@@ -15,7 +16,7 @@ Smart contract development involves many risks that do not show up in, for examp
15
16
- the cost of mistakes is very high;
16
17
- possibilities for fixing bugs are limited;
17
18
- the area is evolving constantly, with new vulnerabilities being discovered regularly;
18
-
- malicious parties deliberately try to break your contract, for example, to steal the funds from the contract account.
19
+
- malicious parties deliberately try to break your contract, for example, to steal the funds from the contract or account.
19
20
20
21
Therefore, it is not sufficient to defend your code against known vulnerabilities.
21
22
You can think about smart contracts as mission-critical software, or software for embedded devices rather than a web application.
@@ -66,8 +67,7 @@ Concordium Rust Smart Contracts
66
67
===============================
67
68
68
69
This section provides recommendations for developing smart contracts in Rust.
69
-
See :ref:`introduction` for basic information.
70
-
70
+
See :ref:`Introduction to smart contracts<introduction>` for basic information.
0 commit comments