Skip to content

Commit 3bcddd1

Browse files
committed
restructure sidebar
1 parent da579b4 commit 3bcddd1

File tree

3 files changed

+140
-123
lines changed

3 files changed

+140
-123
lines changed

docs/get-started/overview.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,15 @@ Besides cryptographic research, there was game-theoretic research, identity-mana
2626

2727
## What you need to bring
2828

29-
To get the most out of the Cardano Developer Portal, you should have programming experience and a basic understanding of blockchain concepts of Cardano such as [UTxO](technical-concepts/core-blockchain-fundamentals#extended-unspent-transaction-output-eutxo), [transactions](technical-concepts/core-blockchain-fundamentals#transactions), [addresses](technical-concepts/core-blockchain-fundamentals#addresses), [key derivation](technical-concepts/wallet-key-management#key-derivation), and [networking](technical-concepts/network-communication#networking).
29+
To get the most out of the Cardano Developer Portal, you should have programming experience and a basic understanding of blockchain concepts of Cardano such as [UTxO](technical-concepts/eutxo), [transactions](technical-concepts/transactions), [addresses](technical-concepts/addresses), and [key derivation](technical-concepts/wallet-key-management#key-derivation).
3030

31-
If you are unfamiliar with these terms, start with [technical concepts](technical-concepts/overview), and you can complete the [stake pool course](../operate-a-stake-pool/) afterward. It will also help you understand basic concepts, even if you don't want to run a stake pool.
31+
If you are unfamiliar with these terms, start with [technical concepts](technical-concepts/), and you can complete the [stake pool course](../operate-a-stake-pool/) afterward. It will also help you understand basic concepts, even if you don't want to run a stake pool.
3232

3333
## Cardano is different
3434

3535
If you have experience with other smart contract platforms and want to start building on Cardano, it is vital to know its differences:
3636

37-
- It makes sense to get your head around the [concept of UTxO](technical-concepts/core-blockchain-fundamentals#extended-unspent-transaction-output-eutxo) and later [the extended UTxO model](https://iohk.io/en/blog/posts/2021/03/11/cardanos-extended-utxo-accounting-model/).
37+
- It makes sense to get your head around the [concept of UTxO](technical-concepts/eutxo) and later [the extended UTxO model](https://iohk.io/en/blog/posts/2021/03/11/cardanos-extended-utxo-accounting-model/).
3838
- [Tokens on Cardano](../native-tokens/) are not built with smart contracts. Instead, tokens are native and live on the ledger. The protocol treats them as first-class citizens, like ada. It is quite different from our peers that don’t have native tokens and need to use a smart contract to send tokens.
3939
- [Native tokens](../native-tokens/) use the core infrastructure, and the network has to do everything else instead of running a smart contract and calling a method called 'transfer'. On Cardano, you are sending a standard transaction. This removes a layer of extra complexity and the risk of human mistakes, as the ledger handles all token-related functions.
4040
- [Smart contracts](../smart-contracts/) work different on Cardano because of the [eUTxO model](https://iohk.io/en/blog/posts/2021/03/11/cardanos-extended-utxo-accounting-model/). Misconceptions were floating around suggesting [that Cardano only supports one transaction per block](https://sundaeswap-finance.medium.com/concurrency-state-cardano-c160f8c07575).

docs/smart-contracts/overview.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Smart contracts are digital agreements defined in code that automate and enforce
1515

1616
## Introduction
1717

18-
Smart contracts on Cardano work a bit differently from how they do on other blockchains. The key to understanding smart contracts is to first understand the [eUTXO](/docs/get-started/technical-concepts/core-blockchain-fundamentals#extended-unspent-transaction-output-eutxo) model.
18+
Smart contracts on Cardano work a bit differently from how they do on other blockchains. The key to understanding smart contracts is to first understand the [eUTXO](/docs/get-started/technical-concepts/eutxo) model.
1919

2020
Smart contracts are validator scripts that you write to validate the movement of UTXOs locked in your contract's address. You will lock UTXOs at the address of your script and then the UTXOs can only ever be spent/moved if your script allows the transaction spending it to do so.
2121

@@ -293,7 +293,7 @@ These features work together to make Cardano smart contracts more practical and
293293
Cardano introduced smart contracts in 2021 and supports the development and deployment of smart contracts using multiple different languages.
294294

295295
:::tip
296-
Writing well-designed smart contracts requires you to have a solid understanding of how Cardano works in general. So, make sure that everything on this page makes sense before you start creating contracts. Many topics are described in more detail on the [Technical Concepts](/docs/get-started/technical-concepts/overview) page as well.
296+
Writing well-designed smart contracts requires you to have a solid understanding of how Cardano works in general. So, make sure that everything on this page makes sense before you start creating contracts. Many topics are described in more detail on the [Technical Concepts](/docs/get-started/technical-concepts/) page as well.
297297
:::
298298

299299
- [Aiken](smart-contract-languages/aiken/overview) - Most popular smart contract language on Cardano written in Rust like syntax. Specifically designed for on-chain validators only and embraces/treats UTxO model as a first citizen: a language & toolchain favouring developer experience.

sidebars.js

Lines changed: 135 additions & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ module.exports = {
7171
},
7272
],
7373
},
74+
"get-started/security/secure-workflow",
7475
"get-started/cardano-cli/simple-scripts/simple-scripts",
7576
"get-started/cardano-cli/native-assets/native-assets",
7677
"get-started/cardano-cli/plutus-scripts/plutus-scripts",
@@ -96,26 +97,48 @@ module.exports = {
9697
items: [
9798
{
9899
type: "category",
99-
label: "Mesh (Web3 SDK)",
100+
label: "TypeScript",
101+
link: {
102+
type: "doc",
103+
id: "get-started/typescript-sdks"
104+
},
100105
items: [
101106
{
102-
type: "autogenerated",
103-
dirName: "get-started/mesh",
107+
type: "category",
108+
label: "Mesh (Web3 SDK)",
109+
items: [
110+
{
111+
type: "autogenerated",
112+
dirName: "get-started/mesh",
113+
},
114+
],
115+
},
116+
{
117+
type: "category",
118+
label: "Evolution SDK",
119+
items: [
120+
{
121+
type: "autogenerated",
122+
dirName: "get-started/evolution-sdk",
123+
},
124+
],
104125
},
105126
],
106127
},
107128
{
108129
type: "category",
109-
label: "Evolution SDK",
130+
label: "Python",
110131
items: [
111-
{
112-
type: "autogenerated",
113-
dirName: "get-started/evolution-sdk",
114-
},
132+
"get-started/pycardano",
133+
],
134+
},
135+
{
136+
type: "category",
137+
label: "C#",
138+
items: [
139+
"get-started/cardanosharp-wallet",
115140
],
116141
},
117-
"get-started/pycardano",
118-
"get-started/cardanosharp-wallet",
119142
],
120143
},
121144
{
@@ -150,24 +173,18 @@ module.exports = {
150173
id: "get-started/technical-concepts/overview"
151174
},
152175
items: [
153-
"get-started/technical-concepts/core-blockchain-fundamentals",
154-
"get-started/technical-concepts/wallet-key-management",
176+
"get-started/technical-concepts/eutxo",
177+
"get-started/technical-concepts/transactions",
178+
"get-started/technical-concepts/addresses",
179+
"get-started/technical-concepts/fees",
155180
"get-started/technical-concepts/assets",
156-
"get-started/technical-concepts/network-communication",
157-
{
158-
type: "category",
159-
label: "Security Best Practices",
160-
items: [
161-
"get-started/security/air-gap",
162-
"get-started/security/secure-workflow",
163-
],
164-
},
165181
],
166182
},
167183
{
168184
type: "category",
169185
label: "Educational Resources",
170186
items: [
187+
"get-started/security/air-gap",
171188
{
172189
type: "category",
173190
label: "Haskell",
@@ -258,6 +275,49 @@ module.exports = {
258275
},
259276
],
260277
},
278+
{
279+
type: "category",
280+
label: "Native Tokens",
281+
link: {
282+
type: "doc",
283+
id: "native-tokens/overview"
284+
},
285+
items: [
286+
"native-tokens/minting",
287+
"native-tokens/minting-nfts",
288+
"native-tokens/authenticated-products",
289+
{
290+
type: "category",
291+
label: "Token Registry",
292+
items: [
293+
{
294+
type: "autogenerated",
295+
dirName: "native-tokens/token-registry",
296+
},
297+
],
298+
},
299+
],
300+
},
301+
{
302+
type: "category",
303+
label: "Transaction Metadata",
304+
link: {
305+
type: "doc",
306+
id: "transaction-metadata/overview"
307+
},
308+
items: [
309+
{
310+
type: "category",
311+
label: "Tutorials",
312+
items: [
313+
"transaction-metadata/mesh",
314+
"transaction-metadata/how-to-create-a-metadata-transaction-cli",
315+
"transaction-metadata/how-to-create-a-metadata-transaction-wallet",
316+
],
317+
},
318+
"transaction-metadata/retrieving-metadata",
319+
],
320+
},
261321
{
262322
type: "category",
263323
label: "Smart Contracts",
@@ -268,7 +328,7 @@ module.exports = {
268328
items: [
269329
{
270330
type: "category",
271-
label: "Smart Contract Languages",
331+
label: "Languages",
272332
items: [
273333
{
274334
type: "category",
@@ -327,132 +387,93 @@ module.exports = {
327387
},
328388
{
329389
type: "category",
330-
label: "Lessons",
331-
items: [
332-
{
333-
type: "autogenerated",
334-
dirName: "smart-contracts/lessons",
335-
},
336-
],
337-
},
338-
{
339-
type: "category",
340-
label: "Advanced",
390+
label: "Design Patterns",
341391
items: [
342-
"smart-contracts/advanced/uplc",
343-
"smart-contracts/advanced/debug-cbor",
392+
"smart-contracts/advanced/design-patterns/overview",
393+
"smart-contracts/advanced/design-patterns/enum-redeemers",
394+
"smart-contracts/advanced/design-patterns/parameter-validation",
395+
"smart-contracts/advanced/design-patterns/strict-and-checks",
396+
"smart-contracts/advanced/design-patterns/utxo-indexers",
344397
{
345398
type: "category",
346-
label: "Design Patterns",
399+
label: "Normalization Techniques",
347400
items: [
348-
"smart-contracts/advanced/design-patterns/overview",
349-
"smart-contracts/advanced/design-patterns/enum-redeemers",
350-
"smart-contracts/advanced/design-patterns/parameter-validation",
351-
"smart-contracts/advanced/design-patterns/strict-and-checks",
352-
"smart-contracts/advanced/design-patterns/utxo-indexers",
353-
{
354-
type: "category",
355-
label: "Normalization Techniques",
356-
items: [
357-
"smart-contracts/advanced/design-patterns/normalization-techniques/txinfomint-normalization",
358-
"smart-contracts/advanced/design-patterns/normalization-techniques/validity-range-normalization",
359-
],
360-
},
361-
{
362-
type: "category",
363-
label: "Transaction Level Validation",
364-
items: [
365-
"smart-contracts/advanced/design-patterns/transaction-level-validation/transaction-level-validation-minting-policy",
366-
{
367-
type: "category",
368-
label: "Stake Validators",
369-
items: [
370-
"smart-contracts/advanced/design-patterns/transaction-level-validation/stake-validators/stake-validator",
371-
"smart-contracts/advanced/design-patterns/transaction-level-validation/stake-validators/withdraw-zero",
372-
"smart-contracts/advanced/design-patterns/transaction-level-validation/stake-validators/merkelized-validators",
373-
"smart-contracts/advanced/design-patterns/transaction-level-validation/stake-validators/global-state",
374-
],
375-
},
376-
],
377-
},
401+
"smart-contracts/advanced/design-patterns/normalization-techniques/txinfomint-normalization",
402+
"smart-contracts/advanced/design-patterns/normalization-techniques/validity-range-normalization",
378403
],
379404
},
380405
{
381406
type: "category",
382-
label: "Smart Contract Vulnerabilities",
407+
label: "Transaction Level Validation",
383408
items: [
384-
"smart-contracts/advanced/smart-contract-vulnerabilities/ctf",
409+
"smart-contracts/advanced/design-patterns/transaction-level-validation/transaction-level-validation-minting-policy",
385410
{
386411
type: "category",
387-
label: "Invariant0 Blog Series",
412+
label: "Stake Validators",
388413
items: [
389-
"smart-contracts/advanced/smart-contract-vulnerabilities/invariant0-blog/1-double-satisfaction",
390-
"smart-contracts/advanced/smart-contract-vulnerabilities/invariant0-blog/2-trust-no-utxo",
391-
"smart-contracts/advanced/smart-contract-vulnerabilities/invariant0-blog/3-time-handling",
392-
"smart-contracts/advanced/smart-contract-vulnerabilities/invariant0-blog/4-token-security",
393-
],
394-
},
395-
{
396-
type: "category",
397-
label: "MLabs Common Vulnerabilities",
398-
items: [
399-
"smart-contracts/advanced/smart-contract-vulnerabilities/mlabs-common-vulnerabilities/overview",
400-
],
401-
},
402-
{
403-
type: "category",
404-
label: "Mesh Bad Contracts",
405-
items: [
406-
"smart-contracts/advanced/smart-contract-vulnerabilities/mesh-bad-contracts/overview",
414+
"smart-contracts/advanced/design-patterns/transaction-level-validation/stake-validators/stake-validator",
415+
"smart-contracts/advanced/design-patterns/transaction-level-validation/stake-validators/withdraw-zero",
416+
"smart-contracts/advanced/design-patterns/transaction-level-validation/stake-validators/merkelized-validators",
417+
"smart-contracts/advanced/design-patterns/transaction-level-validation/stake-validators/global-state",
407418
],
408419
},
409420
],
410421
},
411422
],
412423
},
413-
],
414-
},
415-
{
416-
type: "category",
417-
label: "Native Tokens",
418-
link: {
419-
type: "doc",
420-
id: "native-tokens/overview"
421-
},
422-
items: [
423-
"native-tokens/minting",
424-
"native-tokens/minting-nfts",
425-
"native-tokens/authenticated-products",
426424
{
427425
type: "category",
428-
label: "Token Registry",
426+
label: "Smart Contract Security",
429427
items: [
428+
"smart-contracts/advanced/smart-contract-vulnerabilities/ctf",
430429
{
431-
type: "autogenerated",
432-
dirName: "native-tokens/token-registry",
430+
type: "category",
431+
label: "Invariant0 Blog Series",
432+
items: [
433+
"smart-contracts/advanced/smart-contract-vulnerabilities/invariant0-blog/1-double-satisfaction",
434+
"smart-contracts/advanced/smart-contract-vulnerabilities/invariant0-blog/2-trust-no-utxo",
435+
"smart-contracts/advanced/smart-contract-vulnerabilities/invariant0-blog/3-time-handling",
436+
"smart-contracts/advanced/smart-contract-vulnerabilities/invariant0-blog/4-token-security",
437+
],
433438
},
439+
{
440+
type: "category",
441+
label: "MLabs Common Vulnerabilities",
442+
items: [
443+
"smart-contracts/advanced/smart-contract-vulnerabilities/mlabs-common-vulnerabilities/overview",
444+
],
445+
},
446+
{
447+
type: "category",
448+
label: "Mesh Bad Contracts",
449+
items: [
450+
"smart-contracts/advanced/smart-contract-vulnerabilities/mesh-bad-contracts/overview",
451+
],
452+
},
453+
],
454+
},
455+
{
456+
type: "category",
457+
label: "Advanced",
458+
items: [
459+
"smart-contracts/advanced/uplc",
460+
"smart-contracts/advanced/debug-cbor",
434461
],
435462
},
436463
],
437464
},
438465
{
439466
type: "category",
440-
label: "Transaction Metadata",
467+
label: "Lessons",
441468
link: {
442469
type: "doc",
443-
id: "transaction-metadata/overview"
470+
id: "smart-contracts/lessons-overview"
444471
},
445472
items: [
446473
{
447-
type: "category",
448-
label: "Tutorials",
449-
items: [
450-
"transaction-metadata/mesh",
451-
"transaction-metadata/how-to-create-a-metadata-transaction-cli",
452-
"transaction-metadata/how-to-create-a-metadata-transaction-wallet",
453-
],
474+
type: "autogenerated",
475+
dirName: "smart-contracts/lessons",
454476
},
455-
"transaction-metadata/retrieving-metadata",
456477
],
457478
},
458479
],
@@ -502,11 +523,7 @@ module.exports = {
502523
type: "category",
503524
label: "Basics",
504525
items: [
505-
{
506-
type: "doc",
507-
id: "get-started/technical-concepts/consensus-staking",
508-
label: "(Re)introduction to Cardano"
509-
},
526+
"get-started/technical-concepts/consensus-staking",
510527
"operate-a-stake-pool/stake-pool-networking",
511528
"operate-a-stake-pool/hardware-requirements",
512529
"operate-a-stake-pool/cardano-key-pairs",

0 commit comments

Comments
 (0)