From 96411432530f11ec11fa9e743b94cd460a783f85 Mon Sep 17 00:00:00 2001
From: Alex Ni <12097569+nialexsan@users.noreply.github.com>
Date: Thu, 26 Oct 2023 13:55:55 -0400
Subject: [PATCH 01/10] cadence redirect
---
vercel.json | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/vercel.json b/vercel.json
index 1c5a16e4ad..3f9c681882 100644
--- a/vercel.json
+++ b/vercel.json
@@ -1165,6 +1165,10 @@
"source": "/build/key-concepts/:path*",
"destination": "/build/basics/:path*",
"permanent": true
+ },
+ {
+ "source": "/cadence/:path*",
+ "destination": "https://cadence-lang.org/:path*"
}
]
}
\ No newline at end of file
From 989dbc740268a70d2023855b739ada6e2df6a73e Mon Sep 17 00:00:00 2001
From: Alex Ni <12097569+nialexsan@users.noreply.github.com>
Date: Thu, 26 Oct 2023 13:56:21 -0400
Subject: [PATCH 02/10] cadence lang permanent redirect
---
vercel.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/vercel.json b/vercel.json
index 3f9c681882..dfefdbb2a6 100644
--- a/vercel.json
+++ b/vercel.json
@@ -1168,7 +1168,8 @@
},
{
"source": "/cadence/:path*",
- "destination": "https://cadence-lang.org/:path*"
+ "destination": "https://cadence-lang.org/:path*",
+ "permanent": true
}
]
}
\ No newline at end of file
From 2b3f951eb095cff50bbe9733e086a00f2a51bc88 Mon Sep 17 00:00:00 2001
From: Alex Ni <12097569+nialexsan@users.noreply.github.com>
Date: Thu, 26 Oct 2023 16:42:04 -0400
Subject: [PATCH 03/10] test redirects
---
docusaurus.config.js | 28 +++++++++++++++++++++++-----
vercel.json | 2 +-
2 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/docusaurus.config.js b/docusaurus.config.js
index 8abea1d0d7..18632bd1e8 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -207,11 +207,11 @@ const config = {
},
...(process.env.GA_TRACKING_ID
? {
- gtag: {
- trackingID: process.env.GA_TRACKING_ID,
- anonymizeIP: true,
- },
- }
+ gtag: {
+ trackingID: process.env.GA_TRACKING_ID,
+ anonymizeIP: true,
+ },
+ }
: {}),
}),
],
@@ -580,6 +580,24 @@ const config = {
};
},
// require('./plugins/networks')
+ [
+ '@docusaurus/plugin-client-redirects',
+ {
+ createRedirects(existingPath) {
+ console.log({ existingPath });
+ if (existingPath.includes('/cadence')) {
+ // Redirect from /docs/team/X to /community/X and /docs/support/X to /community/X
+ return [
+ existingPath.replace(
+ 'https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/',
+ '/cadence',
+ ),
+ ];
+ }
+ return undefined; // Return a falsy value: no redirect created
+ },
+ },
+ ],
],
stylesheets: [
{
diff --git a/vercel.json b/vercel.json
index dfefdbb2a6..09e8886dc0 100644
--- a/vercel.json
+++ b/vercel.json
@@ -1168,7 +1168,7 @@
},
{
"source": "/cadence/:path*",
- "destination": "https://cadence-lang.org/:path*",
+ "destination": "https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/:path*",
"permanent": true
}
]
From 23e31f57b834f0356a7015536f21e2415fc469e5 Mon Sep 17 00:00:00 2001
From: Alex Ni <12097569+nialexsan@users.noreply.github.com>
Date: Fri, 27 Oct 2023 14:01:47 -0400
Subject: [PATCH 04/10] Cadence lang fixed links
---
.../account-linking/child-accounts.md | 6 +++---
.../advanced-concepts/account-linking/index.md | 2 +-
docs/build/basics/accounts.md | 6 +++---
docs/build/basics/blocks.md | 2 +-
docs/build/basics/events.md | 4 ++--
docs/build/basics/fees.md | 2 +-
docs/build/basics/transactions.md | 6 +++---
docs/build/building-vs-other-chains.md | 18 +++++++++---------
docs/build/cadence.md | 4 ++--
docs/build/flow.md | 2 +-
docs/build/getting-started/testing.md | 4 ++--
docs/build/mobile/react-native-quickstart.mdx | 4 ++--
docs/guides/flow-app-quickstart.md | 2 +-
docs/guides/smart-contracts/testing.mdx | 4 ++--
.../core-contracts/10-nft-storefront.md | 4 ++--
.../references/core-contracts/flow-ft/index.md | 2 +-
.../core-contracts/flow-nft/index.md | 2 +-
docs/references/index.md | 2 +-
.../run-and-secure/nodes/access-api.mdx | 12 ++++++------
.../nodes/archive-access-api.mdx | 4 ++--
.../run-and-secure/nodes/faq/backers.mdx | 2 +-
.../run-and-secure/nodes/faq/developers.mdx | 4 ++--
.../run-and-secure/nodes/faq/operators.mdx | 4 ++--
docs/tools/clients/fcl-js/sdk-guidelines.mdx | 6 +++---
docs/tools/clients/flow-go-sdk/index.mdx | 4 ++--
.../clients/unity-sdk/guides/flow-control.md | 2 +-
.../clients/unity-sdk/samples/nft-browser.md | 2 +-
.../clients/unity-sdk/samples/nft-example.md | 2 +-
.../clients/unity-sdk/samples/quickstart.md | 2 +-
.../clients/unity-sdk/samples/ui-usage.md | 4 ++--
.../flow-cli/accounts/account-add-contract.md | 4 ++--
.../accounts/account-update-contract.md | 4 ++--
docs/tools/flow-cli/flix.md | 6 +++---
docs/tools/flow-cli/scripts/execute-scripts.md | 4 ++--
docs/tools/flow-cli/tests/run-tests.md | 2 +-
.../transactions/build-transactions.md | 4 ++--
.../flow-cli/transactions/send-transactions.md | 4 ++--
docs/tools/flow-js-testing/api.md | 4 ++--
docs/tutorials/dapp-infrastructure.md | 4 ++--
docs/tutorials/testnet-testing.md | 2 +-
40 files changed, 81 insertions(+), 81 deletions(-)
diff --git a/docs/build/advanced-concepts/account-linking/child-accounts.md b/docs/build/advanced-concepts/account-linking/child-accounts.md
index d93f433ffb..504b94c260 100644
--- a/docs/build/advanced-concepts/account-linking/child-accounts.md
+++ b/docs/build/advanced-concepts/account-linking/child-accounts.md
@@ -35,8 +35,8 @@ signed transaction.
Very simply, account linking is a [feature in Cadence](https://github.com/onflow/flips/pull/53) that let's an
-[AuthAccount](../../../cadence/language/accounts#authaccount) create a
-[Capability](../../../cadence/language/capabilities.md) on itself. You can do so in the following
+[AuthAccount](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/accounts#authaccount) create a
+[Capability](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/capabilities) on itself. You can do so in the following
transaction:
```cadence link_account.cdc
@@ -210,7 +210,7 @@ delegated access.
We can achieve issuance from the child account and claim from the parent account pattern in either:
-1. We can leverage [Cadence’s `AuthAccount.Inbox`](../../../cadence/language/accounts#account-inbox) to publish the
+1. We can leverage [Cadence’s `AuthAccount.Inbox`](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/accounts#account-inbox) to publish the
Capability from the child account & have the parent claim the Capability in a separate transaction.
1. Multi-party signed transaction, signed by both the the accounts on either side of the link
diff --git a/docs/build/advanced-concepts/account-linking/index.md b/docs/build/advanced-concepts/account-linking/index.md
index 6c26e4f857..83991616e3 100644
--- a/docs/build/advanced-concepts/account-linking/index.md
+++ b/docs/build/advanced-concepts/account-linking/index.md
@@ -15,7 +15,7 @@ Accounts on flow can be accessed in Cadence through two types, `PublicAccount` a
Accessing the auth account allows for account modification, so it's essential to safeguard this access by mandating that transactions are signed by the account being accessed. A transaction can list multiple auth accounts it wants to access as part of the `pre` section of the transaction. Read more about transaction signing in the transaction documentation.
-Since access to the `AuthAccount` object enables state change, the idea of account ownership actually translates to the ability to access the auth account. Traditionally, you might consider this the same as having key access on an account, but we'll see in just a minute how programmatic, ownership-level access is unlocked with [Capabilities on Flow](../../../cadence/language/capabilities.md).
+Since access to the `AuthAccount` object enables state change, the idea of account ownership actually translates to the ability to access the auth account. Traditionally, you might consider this the same as having key access on an account, but we'll see in just a minute how programmatic, ownership-level access is unlocked with [Capabilities on Flow](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/capabilities).
## AuthAccount Capabilities
diff --git a/docs/build/basics/accounts.md b/docs/build/basics/accounts.md
index 2c7cb68f78..ddf27836a3 100644
--- a/docs/build/basics/accounts.md
+++ b/docs/build/basics/accounts.md
@@ -35,7 +35,7 @@ This minimum storage fee is provided by the account creator and covers the cost
**Contracts**
-An account can optionally store multiple [Cadence contracts](../../cadence/language/contracts.mdx). The code is stored as a human-readable UTF-8 encoded string which makes it easy for anyone to inspect the contents.
+An account can optionally store multiple [Cadence contracts](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/contracts). The code is stored as a human-readable UTF-8 encoded string which makes it easy for anyone to inspect the contents.
**Storage**
@@ -80,7 +80,7 @@ There are two curves commonly used with the ECDSA algorithm, secp256r1 ([OID 1.2
| ECDSA | P-256 | ECDSA_P256 | 2 |
| ECDSA | secp256k1 | ECDSA_secp256k1 | 3 |
-*Please note that the codes listed here are for the signature algorithms as used by the node API, and they are different from the ones [defined in Cadence](../../cadence/language/crypto.mdx#signing-algorithms)*
+*Please note that the codes listed here are for the signature algorithms as used by the node API, and they are different from the ones [defined in Cadence](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/crypto#signing-algorithms)*
| Algorithm | Output Size | ID | Code |
| --------- | ----------- | -------- | ---- |
@@ -128,7 +128,7 @@ We are supporting ECDSA with the curves `P-256` and `secp256k1`. For these curve
## Account Creation
-Accounts are created on the Flow blockchain by calling a special [create account Cadence function](../../cadence/language/accounts#account-creation). Once an account is created we can associate a new key with that account. Of course, all that can be done within a single transaction. Keep in mind that there is an account creation fee that needs to be paid. Account creation fees are relatively low, and we expect that wallet providers and exchanges will cover the cost when a user converts fiat to crypto for the first time.
+Accounts are created on the Flow blockchain by calling a special [create account Cadence function](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/accounts#account-creation). Once an account is created we can associate a new key with that account. Of course, all that can be done within a single transaction. Keep in mind that there is an account creation fee that needs to be paid. Account creation fees are relatively low, and we expect that wallet providers and exchanges will cover the cost when a user converts fiat to crypto for the first time.
For development purposes, [you can use Flow CLI to easily create emulator, testnet and mainnet accounts.](../../tools/flow-cli/accounts/create-accounts.md) The account creation fee is paid by a funding wallet so you don’t need a pre-existing account to create it.
diff --git a/docs/build/basics/blocks.md b/docs/build/basics/blocks.md
index 34a76fad12..4f58ad0ce1 100644
--- a/docs/build/basics/blocks.md
+++ b/docs/build/basics/blocks.md
@@ -27,7 +27,7 @@ The Block header contains the following fields:
- **ID** represents the block's unique identifier, which is derived from the hashing block header including the payload hash. The algorithm used on Flow to hash the content and get an identifier is SHA3 256. This ID is a commitment to all the values in the block staying the same.
- **Parent ID** is a link to the previous block ID in the list making up the blockchain.
- **Height** is the block sequence number, where block 0 was the first block produced, and each next block increments the value by 1.
-- **Timestamp** is the timestamp at which this block was proposed by the consensus node. Depending on your use case this time might not be accurate enough, [read more about measuring time on the Flow blockchain](../../cadence/measuring-time.mdx#time-on-the-flow-blockchain).
+- **Timestamp** is the timestamp at which this block was proposed by the consensus node. Depending on your use case this time might not be accurate enough, [read more about measuring time on the Flow blockchain](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/measuring-time#time-on-the-flow-blockchain).
- **Payload Hash** represents the payload hash that is included when producing the ID of the block. Payload hash is calculated by taking Merkle root hashes of collection guarantees, seals, execution receipts, and execution results and hashing them together. More on each of the values in the block payload section.
### Block Payload
diff --git a/docs/build/basics/events.md b/docs/build/basics/events.md
index 45ddcdb2d8..ff53e0256e 100644
--- a/docs/build/basics/events.md
+++ b/docs/build/basics/events.md
@@ -6,7 +6,7 @@ sidebar_position: 6
Flow events are special values that are emitted on the network during the execution of a Cadence program and can be observed by off-chain observers.
-Events are defined as Cadence code and you should [read Cadence documentation](../../cadence/language/events.md) to understand how to define them.
+Events are defined as Cadence code and you should [read Cadence documentation](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/events) to understand how to define them.
Since transactions don’t have return values you can leverage events to broadcast certain changes the transaction caused. Clients listening on Flow networks (apps) can listen to these events being emitted and react.
@@ -39,7 +39,7 @@ A list of events that are emitted by the Flow network is:
| flow.InboxValueUnpublished | Event that is emitted when a Capability is unpublished from an account. |
| flow.InboxValueClaimed1 | Event that is emitted when a Capability is claimed by an account. |
-For more details [on the core events, you can read Cadence reference documentation](../../cadence/language/core-events.md).
+For more details [on the core events, you can read Cadence reference documentation](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/core-events).
## User-defined events
diff --git a/docs/build/basics/fees.md b/docs/build/basics/fees.md
index 773aa59f86..6eae3944a9 100644
--- a/docs/build/basics/fees.md
+++ b/docs/build/basics/fees.md
@@ -294,7 +294,7 @@ pub fun add(_ a: Int, _ b: Int): Int {
**Avoid excessive load and save operations**
-Avoid costly loading and storage operations and [borrow references](../../cadence/design-patterns.md#avoid-excessive-load-and-save-storage-operations-prefer-in-place-mutations) where possible, for example:
+Avoid costly loading and storage operations and [borrow references](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/design-patterns#avoid-excessive-load-and-save-storage-operations-prefer-in-place-mutations) where possible, for example:
```cadence
transaction {
diff --git a/docs/build/basics/transactions.md b/docs/build/basics/transactions.md
index ca0cbfd5cb..e80873257d 100644
--- a/docs/build/basics/transactions.md
+++ b/docs/build/basics/transactions.md
@@ -21,12 +21,12 @@ In order for a transaction to be valid and executed it must contain signatures f
The script section contains instructions for transaction execution. This is a Cadence program in source code form (human-readable), and encoded as UTF-8. The transaction program must contain a `transaction` declaration.
-A transaction includes multiple optional phases `prepare`, `pre`, `execute`, and `post` phase. You can read more about it in the [Cadence reference document on transactions](../../cadence/language/transactions.md). Each phase has a purpose, the two most important phases are `prepare` and `execute`.
+A transaction includes multiple optional phases `prepare`, `pre`, `execute`, and `post` phase. You can read more about it in the [Cadence reference document on transactions](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/transactions). Each phase has a purpose, the two most important phases are `prepare` and `execute`.
In the `prepare` phase, we have access to `AuthAccount` objects, which gives us the power to interact with those accounts. The accounts are called authorizers of transactions, so each account we want to interact with in the `prepare` phase must sign the transaction as an authorizer.
The `execute` phase does exactly what it says, it executes the main logic of the transaction. This phase is optional, but it is a best practice to add your main transaction logic in the section, so it is explicit.
-Again make sure to read Cadence [documentation on transactions](../../cadence/language/transactions.md)
+Again make sure to read Cadence [documentation on transactions](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/transactions)
This is an example of a transaction script:
@@ -40,7 +40,7 @@ transaction(greeting: String) {
**Arguments**
-Transactions may declare parameters it needs during execution, these must be provided as input arguments when sending a transaction. You can think of them as function arguments. Currently, we provide [arguments in the JSON-Cadence Data Interchange Format](../../cadence/json-cadence-spec.md#docusaurus_skipToContent_fallback). Which is a human-readable JSON format. The sample script from above accepts a single `String` argument.
+Transactions may declare parameters it needs during execution, these must be provided as input arguments when sending a transaction. You can think of them as function arguments. Currently, we provide [arguments in the JSON-Cadence Data Interchange Format](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec#docusaurus_skipToContent_fallback). Which is a human-readable JSON format. The sample script from above accepts a single `String` argument.
**Reference Block**
diff --git a/docs/build/building-vs-other-chains.md b/docs/build/building-vs-other-chains.md
index c09eb56e03..7d7d05750c 100644
--- a/docs/build/building-vs-other-chains.md
+++ b/docs/build/building-vs-other-chains.md
@@ -39,8 +39,8 @@ Check out the [Accounts](./basics/accounts.md) concept document to learn more ab
On Flow, smart contracts are written in Cadence. Cadence syntax is user-friendly and inspired by modern languages like Swift. Notable features of Cadence that make it unique and the key power of the Flow blockchain are:
-- **Resource-oriented**: Cadence introduces a new type called Resources. Resources enable onchain representation of digital assets natively and securely. Resources can only exist in one location at a time and are strictly controlled by the execution environment to avoid common mishandling mistakes. Each resource has a unique `uuid` associated with it on the blockchain. Examples of usage are fungible tokens, NFTs, or any custom data structure representing a real-world asset. Check out [Resources](../cadence/language/resources.mdx) to learn more.
-- **Capability-based**: Cadence offers a [Capability-based Security](https://en.wikipedia.org/wiki/Capability-based_security) model. This also enables the use of Resources as structures to build access control. Capabilities can provide fine-grained access to the underlying objects for better security. For example, when users list an NFT on a Flow marketplace, they create a new Capability to the stored NFT in their account so the buyer can withdraw the asset when they provide the tokens. Check out [Capability-based Access Control](../cadence/language/capabilities.md) to learn more about Capabilities on Cadence.
+- **Resource-oriented**: Cadence introduces a new type called Resources. Resources enable onchain representation of digital assets natively and securely. Resources can only exist in one location at a time and are strictly controlled by the execution environment to avoid common mishandling mistakes. Each resource has a unique `uuid` associated with it on the blockchain. Examples of usage are fungible tokens, NFTs, or any custom data structure representing a real-world asset. Check out [Resources](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/resources) to learn more.
+- **Capability-based**: Cadence offers a [Capability-based Security](https://en.wikipedia.org/wiki/Capability-based_security) model. This also enables the use of Resources as structures to build access control. Capabilities can provide fine-grained access to the underlying objects for better security. For example, when users list an NFT on a Flow marketplace, they create a new Capability to the stored NFT in their account so the buyer can withdraw the asset when they provide the tokens. Check out [Capability-based Access Control](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/capabilities) to learn more about Capabilities on Cadence.
@@ -52,16 +52,16 @@ Check out the [Cadence website](https://cadencelang.dev/) to learn more about Ca
If you’re already familiar with smart contracts, here are some resources that can help you get started with Cadence:
-- [The Cadence tutorial](../cadence/tutorial/01-first-steps.md)
-- [Guide for Solidity Developers](../cadence/solidity-to-cadence.md)
+- [The Cadence tutorial](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/tutorial/first-steps)
+- [Guide for Solidity Developers](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/solidity-to-cadence)
- ERC-20 equivalent on Flow is the Flow Fungible Token Standard
- [Repository](https://github.com/onflow/flow-ft)
- - [Tutorial](../cadence/tutorial/06-fungible-tokens.md)
+ - [Tutorial](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/tutorial/fungible-tokens)
- ERC-721 equivalent on Flow is the Flow Non-Fungible Token Standard
- [Repository](https://github.com/onflow/flow-nft)
- - [Tutorial](../cadence/tutorial/05-non-fungible-tokens-1.md)
+ - [Tutorial](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/tutorial/non-fungible-tokens-1)
- Asset marketplaces with Cadence
- - [Tutorial](../cadence/tutorial/07-marketplace-setup.md)
+ - [Tutorial](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/tutorial/marketplace-setup)
- [NFT Storefront](https://github.com/onflow/nft-storefront/) is an example marketplace standard
### Transactions and Scripts
@@ -147,7 +147,7 @@ pub fun main(address: Address, collectionPublicPath: PublicPath): [UInt64] {
}
```
-Check out [Transactions](./basics/transactions.md) and [Scripts](./basics/scripts.md) to learn more about the concepts. You can also read the Cadence language reference on [Transactions](../cadence/language/transactions.md) to dive deeper.
+Check out [Transactions](./basics/transactions.md) and [Scripts](./basics/scripts.md) to learn more about the concepts. You can also read the Cadence language reference on [Transactions](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/transactions) to dive deeper.
## Flow Nodes
@@ -188,6 +188,6 @@ If you’re already familiar with blockchain development, here's a comparison be
- [Flow Playground](https://play.flow.com/) provides basic experimentation on the web
- [Cadence VSCode Extension](https://marketplace.visualstudio.com/items?itemName=onflow.cadence) is strongly suggested to install for local development
- [Testing Smart Contracts](https://ethereum.org/en/developers/docs/smart-contracts/testing/)
- - [Cadence testing framework](../cadence/testing-framework.mdx) enables native tests in Cadence.
+ - [Cadence testing framework](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/testing-framework) enables native tests in Cadence.
- [overflow](https://github.com/bjartek/overflow) for testing in Go.
- [js-testing](https://github.com/onflow/flow-js-testing) for testing in JS.
\ No newline at end of file
diff --git a/docs/build/cadence.md b/docs/build/cadence.md
index 765e85db90..2f28ae4028 100644
--- a/docs/build/cadence.md
+++ b/docs/build/cadence.md
@@ -133,7 +133,7 @@ Developers using custom-made approaches such as the 'data separation' approach t
may run into problems with the complexity of data structures,
while developers using ‘delegatecall-based proxies` may run into problems with the consistency of memory layouts.
Either way, these challenges compromise approachability and overall extensibility.
-Cadence has [contract upgradability built in by default](../cadence/language/contract-updatability.md),
+Cadence has [contract upgradability built in by default](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/contract-updatability),
and contracts can be made immutable by removing all keys from an account.
Cadence improves the clarity and extensibility of programs by utilizing interfaces to allow extensibility, code reuse, and interoperability between contracts.
@@ -187,7 +187,7 @@ but using an interpreter for the first version allows us to refine the language
---
Now that you've learned about the goals and design of Cadence and Flow, you're ready to get started with the Flow emulator and tools!
-Go to the [Getting Started](../cadence/tutorial/01-first-steps.md) page to work through language fundamentals and tutorials.
+Go to the [Getting Started](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/tutorial/first-steps) page to work through language fundamentals and tutorials.
## Why Cadence?
diff --git a/docs/build/flow.md b/docs/build/flow.md
index d827089f64..c9bd1795f3 100644
--- a/docs/build/flow.md
+++ b/docs/build/flow.md
@@ -31,7 +31,7 @@ The [development guide](../tutorials/intro.md) covers the Flow core concepts, in
## Core Contracts
-The Flow blockchain implements core functionality using its own smart contract language, [Cadence](../cadence/language/). The core functionality is split into a set of contracts, so-called [core contracts](../references/core-contracts/index.md):
+The Flow blockchain implements core functionality using its own smart contract language, [Cadence](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/). The core functionality is split into a set of contracts, so-called [core contracts](../references/core-contracts/index.md):
- **Fungible Token:** The FungibleToken contract implements the Fungible Token Standard. It is the second contract ever deployed on Flow.
- **Flow Token:** The FlowToken contract defines the FLOW network token.
diff --git a/docs/build/getting-started/testing.md b/docs/build/getting-started/testing.md
index 4bd26b428d..deede1a09c 100644
--- a/docs/build/getting-started/testing.md
+++ b/docs/build/getting-started/testing.md
@@ -95,7 +95,7 @@ The Cadence testing framework provides various features and techniques for writi
- [**Code Coverage**](https://github.com/m-Peter/flow-code-coverage): You can use the `--cover` flag with the `flow test` command to view code coverage results when running your tests. This allows you to identify areas of your code that are not adequately covered by your test inputs;
- **Test Fixtures**: Test fixtures are reusable components that help you set up the initial state for your test cases. You can create test fixtures in Cadence by defining resource types and using them in your test functions;
-- [**Assertions**](../../cadence/testing-framework.mdx#assertions): The testing framework provides built-in assertion functions, such as `assertEqual`, `beNil`, `beEmpty`, `contain`, to help you verify the expected behavior of your smart contracts;
+- [**Assertions**](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/testing-framework#assertions): The testing framework provides built-in assertion functions, such as `assertEqual`, `beNil`, `beEmpty`, `contain`, to help you verify the expected behavior of your smart contracts;
- **Test Suites**: You can organize your test cases into test suites to improve the readability and maintainability of your test code. Test suites allow you to group related test cases and set up common test fixtures for all the tests in the suite.
- [**Integration tests**](https://github.com/bjartek/overflow): You can use [Overflow tool](https://github.com/bjartek/overflow) to run integration tests against either an local emulator, testnet, mainnet or an in memory instance of the flow-emulator.
@@ -107,5 +107,5 @@ For more in-depth tutorials and documentation, refer to the official [Cadence la
## References
-- [Reference documentation for Cadence testing](../../cadence/testing-framework.mdx)
+- [Reference documentation for Cadence testing](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/testing-framework)
- https://github.com/bjartek/overflow
diff --git a/docs/build/mobile/react-native-quickstart.mdx b/docs/build/mobile/react-native-quickstart.mdx
index 228a637f64..afeda8df46 100644
--- a/docs/build/mobile/react-native-quickstart.mdx
+++ b/docs/build/mobile/react-native-quickstart.mdx
@@ -293,7 +293,7 @@ await fcl.query({
});
```
-Inside the query you'll see we set two things: `cadence` and `args`. Cadence is Flow's smart contract language we mentioned. For this tutorial, when you look at it you just need to notice that it's importing the `Profile` contract from the account we named `0xProfile` earlier in our config file, then also taking an account address, and reading it. That's it until you're ready to [learn more Cadence](../../cadence/tutorial/01-first-steps.md).
+Inside the query you'll see we set two things: `cadence` and `args`. Cadence is Flow's smart contract language we mentioned. For this tutorial, when you look at it you just need to notice that it's importing the `Profile` contract from the account we named `0xProfile` earlier in our config file, then also taking an account address, and reading it. That's it until you're ready to [learn more Cadence](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/tutorial/first-steps).
In the `args` section, we are simply passing it our user's account address from the user we set in state after authentication and giving it a type of `Address`. For more possible types, [see this reference](../../tools/clients/fcl-js/api.md#ftype).
@@ -612,7 +612,7 @@ If you query the account profile again, "Profile Name:" should now display "Flow
That's it! You now have a shippable Flow dapp that can auth, query, init accounts, and mutate the chain. This is just the beginning. There is so much more to know. We have a lot more resources to help you build. To dive deeper, here are a few good places for taking the next steps:
**Cadence**
-- [Cadence Playground Tutorials](../../cadence/tutorial/01-first-steps.md)
+- [Cadence Playground Tutorials](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/tutorial/first-steps)
- [Cadence Hello World Video](https://www.youtube.com/watch?v=pRz7EzrWchs)
- [Why Cadence?](https://www.onflow.org/post/flow-blockchain-cadence-programming-language-resources-assets)
diff --git a/docs/guides/flow-app-quickstart.md b/docs/guides/flow-app-quickstart.md
index fbce55afc7..6d2261759e 100644
--- a/docs/guides/flow-app-quickstart.md
+++ b/docs/guides/flow-app-quickstart.md
@@ -371,7 +371,7 @@ In `components/Container.tsx` file, the `mutateGreeting` method `fcl.mutate` sen
That's it! You now have Flow app that uses auth, query and mutate the chain. This is just the beginning. There is so much more to know. Next steps:
**Cadence**
-- [Cadence Playground Tutorials](../cadence/tutorial/01-first-steps.md)
+- [Cadence Playground Tutorials](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/tutorial/first-steps)
- [Cadence Hello World Video](https://www.youtube.com/watch?v=pRz7EzrWchs)
- [Why Cadence?](https://www.onflow.org/post/flow-blockchain-cadence-programming-language-resources-assets)
diff --git a/docs/guides/smart-contracts/testing.mdx b/docs/guides/smart-contracts/testing.mdx
index e812491841..a255c88923 100644
--- a/docs/guides/smart-contracts/testing.mdx
+++ b/docs/guides/smart-contracts/testing.mdx
@@ -42,7 +42,7 @@ Cadence comes with built-in support for code coverage, as well as a native testi
This framework is bundled with the [Flow CLI](../../tools/flow-cli/index.md) tool, which includes a dedicated command for running tests (`flow test`).
You can find examples of Cadence tests in the following projects: [hybrid-custody](https://github.com/onflow/hybrid-custody/tree/main/test), [flow-nft](https://github.com/onflow/flow-nft/tree/master/tests), [flow-ft](https://github.com/onflow/flow-ft/tree/master/tests).
-Visit the [documentation](../../cadence/testing-framework.mdx) to view all the available features.
+Visit the [documentation](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/testing-framework) to view all the available features.
The [Hybrid Custody](https://github.com/onflow/hybrid-custody#readme) project is a prime example which utilizes both the Cadence testing framework and code coverage in its CI.
@@ -87,5 +87,5 @@ Tests should also be runnable in automated environments (CI). You can use the [J
Once you deployed your application to the testnet, you should record how your application handles non-trivial amounts of traffic to ensure there are no issues.
-Get familiar with the [Cadence anti-patterns](../../cadence/anti-patterns.md) to avoid avoid problematic or unintended behavior.
+Get familiar with the [Cadence anti-patterns](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/anti-patterns) to avoid avoid problematic or unintended behavior.
\ No newline at end of file
diff --git a/docs/references/core-contracts/10-nft-storefront.md b/docs/references/core-contracts/10-nft-storefront.md
index 472c694bc2..1e866e7d6b 100644
--- a/docs/references/core-contracts/10-nft-storefront.md
+++ b/docs/references/core-contracts/10-nft-storefront.md
@@ -29,7 +29,7 @@ Each account that wants to list NFTs for sale creates a `Storefront` resource to
Each listing can define one or more sale cuts taken out of the sale price to go to one or more addresses. Listing fees, royalties, or other considerations can be paid using sale cuts. Also, the listing can include a commission as one of these sale cuts is paid to whoever facilitates the purchase.
-Listings can have an optional list of marketplace [receiver capabilities](../../cadence/language/capabilities.md) used to receive the commission for fulfilling the listing. An NFT may be listed in one or more Listings, and the validity of each listing can easily be checked.
+Listings can have an optional list of marketplace [receiver capabilities](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/capabilities) used to receive the commission for fulfilling the listing. An NFT may be listed in one or more Listings, and the validity of each listing can easily be checked.
Interested parties can globally track Listing events on-chain and filter by NFT types, IDs and other characteristics to determine which to make available for purchase within their own marketplace UIs."
## Selling NFTs
@@ -52,7 +52,7 @@ The `NFTStorefrontV2` contract doesn’t support selling an NFT for multiple dif
![scenario_1](./scenario_1.png)
-Putting an NFT on sell called listing, seller can create a listing using [sell_item](https://github.com/onflow/nft-storefront/blob/main/transactions/sell_item.cdc) transaction by providing some required details to list an NFT, i.e. Receiving currency type, [Capability](../../cadence/language/capabilities.md) from where NFT will be deducted etc. If interested look [here](#fun-createListing()) for more details.
+Putting an NFT on sell called listing, seller can create a listing using [sell_item](https://github.com/onflow/nft-storefront/blob/main/transactions/sell_item.cdc) transaction by providing some required details to list an NFT, i.e. Receiving currency type, [Capability](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/capabilities) from where NFT will be deducted etc. If interested look [here](#fun-createListing()) for more details.
To receive a different currency seller has to provide a different __Receiver currency type__ , i.e. `salePaymentVaultType` As depicted in the above diagram, There are two listing formations with almost the same inputs. The only differentiator is the `salePaymentVaultType` parameter that needs to be different when creating duplicate NFT listings with different sale currency types.
diff --git a/docs/references/core-contracts/flow-ft/index.md b/docs/references/core-contracts/flow-ft/index.md
index 90ea6b0cfb..780202519c 100644
--- a/docs/references/core-contracts/flow-ft/index.md
+++ b/docs/references/core-contracts/flow-ft/index.md
@@ -16,7 +16,7 @@ for developing smart contracts for the Flow Blockchain.
Read more about it [here](../../../build/cadence.md) and see its implementation [here](https://github.com/onflow/cadence)
We recommend that anyone who is reading this should have already
-completed the [Cadence Tutorials](../../../cadence/tutorial/01-first-steps.md)
+completed the [Cadence Tutorials](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/tutorial/first-steps)
so they can build a basic understanding of the programming language.
Resource-oriented programming, and by extension Cadence,
diff --git a/docs/references/core-contracts/flow-nft/index.md b/docs/references/core-contracts/flow-nft/index.md
index d85888c408..870847925f 100644
--- a/docs/references/core-contracts/flow-nft/index.md
+++ b/docs/references/core-contracts/flow-nft/index.md
@@ -13,7 +13,7 @@ contract on the [Flow blockchain](https://www.onflow.org/).
for developing smart contracts on Flow.
Before reading this standard,
-we recommend completing the [Cadence tutorials](../../../cadence/tutorial/01-first-steps.md)
+we recommend completing the [Cadence tutorials](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/tutorial/first-steps)
to build a basic understanding of the programming language.
Resource-oriented programming, and by extension Cadence,
diff --git a/docs/references/index.md b/docs/references/index.md
index 51a2682ec8..f26575eec7 100644
--- a/docs/references/index.md
+++ b/docs/references/index.md
@@ -13,7 +13,7 @@ Quick references to very helpful parts of developer documentation. Languages to
- [FCL SDK](../tools/clients/fcl-js/sdk-guidelines.mdx) - Flow Client Library SDK
- [Flow Go SDK](../tools/clients/flow-go-sdk/index.mdx) - Golang Flow Client SDK
- [Flow Unity SDK](https://unity-flow-sdk-api-docs.vercel.app/) - For gaming use the Unity SDK
-- [Cadence](../cadence/language/functions.mdx) - Flow blockchain Smart Contract language, Cadence
+- [Cadence](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/functions) - Flow blockchain Smart Contract language, Cadence
## Network
Get Flow blockchain data from Access Nodes, both REST and gRPC endpoints are available. Get the current status of mainnet and testnet networks.
diff --git a/docs/references/run-and-secure/nodes/access-api.mdx b/docs/references/run-and-secure/nodes/access-api.mdx
index 64d99dda88..06637044d7 100644
--- a/docs/references/run-and-secure/nodes/access-api.mdx
+++ b/docs/references/run-and-secure/nodes/access-api.mdx
@@ -21,7 +21,7 @@ The Access Nodes hosted by DapperLabs are accessible at:
| Testnet | `access.devnet.nodes.onflow.org:9000` | `testnet.onflow.org` | `testnet.onflow.org` |
#### Mainnet
-##### We are still in the process of aggregating the past chain data but mainnet 5 to mainnet 1 spork data can be retrieved from the Access nodes mentioned [here](../../../references/run-and-secure/node-operation/spork.mdx#mainnet)
+##### We are still in the process of aggregating the past chain data but mainnet 5 to mainnet 1 spork data can be retrieved from the Access nodes mentioned [here](../node-operation/spork.mdx#mainnet)
Production network where the Flow blockchain is running. Funds are at risk.
@@ -517,7 +517,7 @@ message AccountResponse {
`ExecuteScriptAtLatestBlock` executes a read-only Cadence script against the latest sealed execution state.
-This method can be used to read execution state from the blockchain. The script is executed on an execution node and the return value is encoded using the [JSON-Cadence data interchange format](../../../cadence/json-cadence-spec.md).
+This method can be used to read execution state from the blockchain. The script is executed on an execution node and the return value is encoded using the [JSON-Cadence data interchange format](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
```proto
rpc ExecuteScriptAtLatestBlock (ExecuteScriptAtLatestBlockRequest) returns (ExecuteScriptResponse)
@@ -556,7 +556,7 @@ message ExecuteScriptResponse {
`ExecuteScriptAtBlockID` executes a ready-only Cadence script against the execution state at the block with the given ID.
-This method can be used to read account state from the blockchain. The script is executed on an execution node and the return value is encoded using the [JSON-Cadence data interchange format](../../../cadence/json-cadence-spec.md).
+This method can be used to read account state from the blockchain. The script is executed on an execution node and the return value is encoded using the [JSON-Cadence data interchange format](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
```proto
rpc ExecuteScriptAtBlockID (ExecuteScriptAtBlockIDRequest) returns (ExecuteScriptResponse)
@@ -589,7 +589,7 @@ message ExecuteScriptResponse {
`ExecuteScriptAtBlockHeight` executes a ready-only Cadence script against the execution state at the given block height.
-This method can be used to read account state from the blockchain. The script is executed on an execution node and the return value is encoded using the [JSON-Cadence data interchange format](../../../cadence/json-cadence-spec.md).
+This method can be used to read account state from the blockchain. The script is executed on an execution node and the return value is encoded using the [JSON-Cadence data interchange format](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
```proto
rpc ExecuteScriptAtBlockHeight (ExecuteScriptAtBlockHeightRequest) returns (ExecuteScriptResponse)
@@ -971,7 +971,7 @@ message TransactionSignature {
| Field | Description |
| ----------------------------- | ---------------------------------------------------------------------------------------------------- |
| script | Raw source code for a Cadence script, encoded as UTF-8 bytes |
-| arguments | Arguments passed to the Cadence script, encoded as [JSON-Cadence](../../../cadence/json-cadence-spec.md) bytes |
+| arguments | Arguments passed to the Cadence script, encoded as [JSON-Cadence](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec) bytes |
| reference_block_id | Block ID used to determine transaction expiry |
| [proposal_key](#proposal-key) | Account key used to propose the transaction |
| payer | Address of the payer account |
@@ -1094,7 +1094,7 @@ message Event {
| transaction_id | ID of the transaction the event was emitted from |
| transaction_index | Zero-based index of the transaction within the block |
| event_index | Zero-based index of the event within the transaction |
-| payload | Event fields encoded as [JSON-Cadence values](../../../cadence/json-cadence-spec.md) |
+| payload | Event fields encoded as [JSON-Cadence values](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec) |
## Execution Result
diff --git a/docs/references/run-and-secure/nodes/archive-access-api.mdx b/docs/references/run-and-secure/nodes/archive-access-api.mdx
index e1361b5429..c989ae1cf0 100644
--- a/docs/references/run-and-secure/nodes/archive-access-api.mdx
+++ b/docs/references/run-and-secure/nodes/archive-access-api.mdx
@@ -71,7 +71,7 @@ message AccountResponse {
`ExecuteScriptAtBlockID` executes a ready-only Cadence script against the execution state at the block with the given ID.
-This method can be used to read account state from the blockchain. The script is executed on an execution node and the return value is encoded using the [JSON-Cadence data interchange format](../../../cadence/json-cadence-spec.md).
+This method can be used to read account state from the blockchain. The script is executed on an execution node and the return value is encoded using the [JSON-Cadence data interchange format](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
```proto
rpc ExecuteScriptAtBlockID (ExecuteScriptAtBlockIDRequest) returns (ExecuteScriptResponse)
@@ -104,7 +104,7 @@ message ExecuteScriptResponse {
`ExecuteScriptAtBlockHeight` executes a ready-only Cadence script against the execution state at the given block height.
-This method can be used to read account state from the blockchain. The script is executed on an execution node and the return value is encoded using the [JSON-Cadence data interchange format](../../../cadence/json-cadence-spec.md).
+This method can be used to read account state from the blockchain. The script is executed on an execution node and the return value is encoded using the [JSON-Cadence data interchange format](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
```proto
rpc ExecuteScriptAtBlockHeight (ExecuteScriptAtBlockHeightRequest) returns (ExecuteScriptResponse)
diff --git a/docs/references/run-and-secure/nodes/faq/backers.mdx b/docs/references/run-and-secure/nodes/faq/backers.mdx
index caecfb0d84..d51fa1f761 100644
--- a/docs/references/run-and-secure/nodes/faq/backers.mdx
+++ b/docs/references/run-and-secure/nodes/faq/backers.mdx
@@ -16,7 +16,7 @@ Once you complete a successful staking or delegation request, your tokens are se
## Is it possible to add multiple public keys to a given account/address so that it can be controlled by more than one private key?
-Yes, accounts support multiple, weighted keys, [here](../../../../cadence/language/accounts)
+Yes, accounts support multiple, weighted keys, [here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/accounts)
using `AuthAccount`’s `fun addPublicKey(_ publicKey: [UInt8])`and `fun removePublicKey(_ index: Int)` functions.
## How do keys and accounts work on Flow?
diff --git a/docs/references/run-and-secure/nodes/faq/developers.mdx b/docs/references/run-and-secure/nodes/faq/developers.mdx
index 305a84d731..377b81497a 100644
--- a/docs/references/run-and-secure/nodes/faq/developers.mdx
+++ b/docs/references/run-and-secure/nodes/faq/developers.mdx
@@ -105,7 +105,7 @@ Events are implemented within Flow smart contracts using the Cadence programming
You can find out more about events in Cadence here:
-[cadence/language/events/](../../../../cadence/language/events.md)
+[cadence/language/events/](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/events)
As an example of the kinds of information events can contain, see the documentation of the events that the staking protocol emits:
@@ -191,7 +191,7 @@ Yes, an access node is publicly accessible to submit transactions and read data
## Is it possible to add multiple public keys to a given account/address so that it can be controlled by more than one private key?
-Yes, accounts support multiple, weighted keys, [here](../../../../cadence/language/accounts)
+Yes, accounts support multiple, weighted keys, [here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/accounts)
using `AuthAccount`’s `fun addPublicKey(_ publicKey: [UInt8])`and `fun removePublicKey(_ index: Int)` functions.
## How do keys and accounts work on Flow?
diff --git a/docs/references/run-and-secure/nodes/faq/operators.mdx b/docs/references/run-and-secure/nodes/faq/operators.mdx
index 22dd2b5105..df315970bc 100644
--- a/docs/references/run-and-secure/nodes/faq/operators.mdx
+++ b/docs/references/run-and-secure/nodes/faq/operators.mdx
@@ -109,7 +109,7 @@ Events are implemented within Flow smart contracts using the Cadence programming
You can find out more about events in Cadence here:
-[cadence/language/events/](../../../../cadence/language/events.md)
+[cadence/language/events/](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/events)
As an example of the kinds of information events can contain, see the documentation of the events that the staking protocol emits:
@@ -168,7 +168,7 @@ Yes, an access node is publicly accessible to submit transactions and read data
## Is it possible to add multiple public keys to a given account/address so that it can be controlled by more than one private key?
-Yes, accounts support multiple, weighted keys, [here](../../../../cadence/language/accounts)
+Yes, accounts support multiple, weighted keys, [here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/accounts)
using `AuthAccount`’s `fun addPublicKey(_ publicKey: [UInt8])`and `fun removePublicKey(_ index: Int)` functions.
## How do keys and accounts work on Flow?
diff --git a/docs/tools/clients/fcl-js/sdk-guidelines.mdx b/docs/tools/clients/fcl-js/sdk-guidelines.mdx
index cb5f7d4f20..60ea6e3310 100644
--- a/docs/tools/clients/fcl-js/sdk-guidelines.mdx
+++ b/docs/tools/clients/fcl-js/sdk-guidelines.mdx
@@ -182,8 +182,8 @@ Retrieve events by a given type in a specified block height range or through a l
A.{contract address}.{contract name}.{event name}
```
-Please read more about [events in the documentation](../../../cadence/language/core-events.md). The exception to this standard are
-core events, and you should read more about them in [this document](../../../cadence/language/core-events.md).
+Please read more about [events in the documentation](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/core-events). The exception to this standard are
+core events, and you should read more about them in [this document](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/core-events).
📖 **Block height range** expresses the height of the start and end block in the chain.
@@ -241,7 +241,7 @@ Result output: [CollectionObject](./api.md#collectionobject)
### Execute Scripts
[](./api.md#query)
-Scripts allow you to write arbitrary non-mutating Cadence code on the Flow blockchain and return data. You can learn more about [Cadence here](../../../cadence/language/index.md) and [scripts here](./scripts.mdx), but we are now only interested in executing the script code and getting back the data.
+Scripts allow you to write arbitrary non-mutating Cadence code on the Flow blockchain and return data. You can learn more about [Cadence here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language) and [scripts here](./scripts.mdx), but we are now only interested in executing the script code and getting back the data.
We can execute a script using the latest state of the Flow blockchain or we can choose to execute the script at a specific time in history defined by a block height or block ID.
diff --git a/docs/tools/clients/flow-go-sdk/index.mdx b/docs/tools/clients/flow-go-sdk/index.mdx
index 8b9df76b02..d03dc0c8d5 100644
--- a/docs/tools/clients/flow-go-sdk/index.mdx
+++ b/docs/tools/clients/flow-go-sdk/index.mdx
@@ -304,7 +304,7 @@ A.{contract address}.{contract name}.{event name}
```
Please read more about [events in the documentation](../../../references/core-contracts/03-flow-token.md). The exception to this standard are
-core events, and you should read more about them in [this document](../../../cadence/language/core-events.md).
+core events, and you should read more about them in [this document](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/core-events).
📖 **Block height range** expresses the height of the start and end block in the chain.
@@ -409,7 +409,7 @@ Transactions: [cf1184e3de4bd9a7232ca3d0b9dd2cfbf96c97888298b81a05c086451fa52ec1]
[](https://pkg.go.dev/github.com/onflow/flow-go-sdk/client#Client.ExecuteScriptAtLatestBlock)
-Scripts allow you to write arbitrary non-mutating Cadence code on the Flow blockchain and return data. You can learn more about [Cadence and scripts here](../../../cadence/language/index.md), but we are now only interested in executing the script code and getting back the data.
+Scripts allow you to write arbitrary non-mutating Cadence code on the Flow blockchain and return data. You can learn more about [Cadence and scripts here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language), but we are now only interested in executing the script code and getting back the data.
We can execute a script using the latest state of the Flow blockchain or we can choose to execute the script at a specific time in history defined by a block height or block ID.
diff --git a/docs/tools/clients/unity-sdk/guides/flow-control.md b/docs/tools/clients/unity-sdk/guides/flow-control.md
index 67977442b8..fbb7fdb6d2 100644
--- a/docs/tools/clients/unity-sdk/guides/flow-control.md
+++ b/docs/tools/clients/unity-sdk/guides/flow-control.md
@@ -91,7 +91,7 @@ Account is the account that should deploy the contract. The contract will be de
The Deploy Contract button will attempt to deploy the contract. Check the emulator logs or flowscan.org to monitor the progress of deployment and check for errors.
-The Update Contract button will attempt to update an existing contract. There are rules as to what can change in a contract for an update to be accepted. See [cadence/language/contract-updatability](../../../../cadence/language/contract-updatability.md) for more information.
+The Update Contract button will attempt to update an existing contract. There are rules as to what can change in a contract for an update to be accepted. See [cadence/language/contract-updatability](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/contract-updatability) for more information.
The Remove Contract button will attempt to delete the contract with the given name from the specified account. Once a contract is deleted, a new contract with the same name can not be created on the same account. When using the emulator, clearing the database will allow you to recreate the contract. When using testnet or mainnet, that contract name will become unavailable for the account. This is done to prevent bypassing the contract update rules by deleting and recreating a contract with incompatible changes.
diff --git a/docs/tools/clients/unity-sdk/samples/nft-browser.md b/docs/tools/clients/unity-sdk/samples/nft-browser.md
index e5f3b98c3e..08c68dd99e 100644
--- a/docs/tools/clients/unity-sdk/samples/nft-browser.md
+++ b/docs/tools/clients/unity-sdk/samples/nft-browser.md
@@ -47,7 +47,7 @@ pub fun main(addr: Address) : [StoragePath] {
}
```
-We use the [Storage Iteration API](../../../../cadence/language/accounts#storage-iteration) to look at everything the account has in it's storage and see if it is an NFT Collection. We return a list of all found NFT Collections.
+We use the [Storage Iteration API](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/accounts#storage-iteration) to look at everything the account has in it's storage and see if it is an NFT Collection. We return a list of all found NFT Collections.
## Getting NFT IDs Contained in a Collection
diff --git a/docs/tools/clients/unity-sdk/samples/nft-example.md b/docs/tools/clients/unity-sdk/samples/nft-example.md
index 4ef42f309f..b109b1025c 100644
--- a/docs/tools/clients/unity-sdk/samples/nft-example.md
+++ b/docs/tools/clients/unity-sdk/samples/nft-example.md
@@ -31,7 +31,7 @@ interface. We will be doing so in this case.
At its simplest, an NFT on Flow is a resource with a unique id. A Collection is a resource
that will allow you to store, list, deposit, and withdraw NFTs of a specific type.
-We recommend reading through the [NFT tutorial](../../../../cadence/tutorial/05-non-fungible-tokens-1.md)
+We recommend reading through the [NFT tutorial](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/tutorial/non-fungible-tokens-1)
to understand what is happening, as well as reviewing the contents of Cadence/Contracts/SDKExampleNFT.cdc
The SDKExampleNFT minter allows for anyone to mint an SDKExampleNFT. Typically you would restrict
diff --git a/docs/tools/clients/unity-sdk/samples/quickstart.md b/docs/tools/clients/unity-sdk/samples/quickstart.md
index 6d52471881..8c073ad833 100644
--- a/docs/tools/clients/unity-sdk/samples/quickstart.md
+++ b/docs/tools/clients/unity-sdk/samples/quickstart.md
@@ -60,7 +60,7 @@ to run scripts.
## Running scripts
Next, we'll use this account to run a script on the emulator. Scripts on Flow are written in Cadence.
-More information is available at [Developer Portal](../../../../cadence/language/index.md)
+More information is available at [Developer Portal](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/)
First we'll define the script that we want to run:
diff --git a/docs/tools/clients/unity-sdk/samples/ui-usage.md b/docs/tools/clients/unity-sdk/samples/ui-usage.md
index cde6e3c29b..f5f0a2dd12 100644
--- a/docs/tools/clients/unity-sdk/samples/ui-usage.md
+++ b/docs/tools/clients/unity-sdk/samples/ui-usage.md
@@ -253,7 +253,7 @@ The cadence script for this test is in the same location as the others, called *
Like Scripts, Transactions are cadence code that you write and are executed on the blockchain, but that is where the similarities end. The purpose of Transactions is to mutate data on the blockchain. To do this, the Transaction must be signed by the account/s that are going to be affected. The Transaction code can contain arguments, but can't return a value. This is because there is a delay for the Transaction to execute, because it has to go through the collection/consensus/execution/verification cycle.
-For more information about Transactions, see [cadence/language/transactions](../../../../cadence/language/transactions.md).
+For more information about Transactions, see [cadence/language/transactions](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/transactions).
For more information about Transaction signing, see [concepts/transaction-signing](../../../../build/basics/transactions.md#signing-a-transaction).
@@ -361,4 +361,4 @@ Note that the Contract Name must match the name of the contract in the source fi
The Contract Source File location is relative to the project's Assets directory.
-Only certain things in a Smart Contract can be modified. See this link about [Contract Updatability](../../../../cadence/language/contract-updatability.md).
+Only certain things in a Smart Contract can be modified. See this link about [Contract Updatability](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/contract-updatability).
diff --git a/docs/tools/flow-cli/accounts/account-add-contract.md b/docs/tools/flow-cli/accounts/account-add-contract.md
index eaab1c9660..32f949abe8 100644
--- a/docs/tools/flow-cli/accounts/account-add-contract.md
+++ b/docs/tools/flow-cli/accounts/account-add-contract.md
@@ -79,7 +79,7 @@ Path to the file containing the contract source code.
### Arguments
- Name: `argument`
-- Valid inputs: valid [cadence values](../../../cadence/json-cadence-spec.md)
+- Valid inputs: valid [cadence values](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec)
matching argument type in transaction code.
Input arguments values matching corresponding types in the source code and passed in the same order.
@@ -113,7 +113,7 @@ Specify the name of the account that will be used to sign the transaction.
Arguments passed to the Cadence transaction in Cadence JSON format.
Cadence JSON format contains `type` and `value` keys and is
-[documented here](../../../cadence/json-cadence-spec.md).
+[documented here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
### Include Fields
diff --git a/docs/tools/flow-cli/accounts/account-update-contract.md b/docs/tools/flow-cli/accounts/account-update-contract.md
index 0c15474a34..6880a369b0 100644
--- a/docs/tools/flow-cli/accounts/account-update-contract.md
+++ b/docs/tools/flow-cli/accounts/account-update-contract.md
@@ -77,7 +77,7 @@ Filename of the file containing contract source code.
### Arguments
- Name: `argument`
-- Valid inputs: valid [cadence values](../../../cadence/json-cadence-spec.md)
+- Valid inputs: valid [cadence values](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec)
matching argument type in transaction code.
Input arguments values matching corresponding types in the source code and passed in the same order.
@@ -118,7 +118,7 @@ Shows a diff to approve before updating between deployed contract and new contra
Arguments passed to the Cadence transaction in Cadence JSON format.
Cadence JSON format contains `type` and `value` keys and is
-[documented here](../../../cadence/json-cadence-spec.md).
+[documented here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
### Include Fields
diff --git a/docs/tools/flow-cli/flix.md b/docs/tools/flow-cli/flix.md
index 0842a10775..a558194df5 100644
--- a/docs/tools/flow-cli/flix.md
+++ b/docs/tools/flow-cli/flix.md
@@ -40,7 +40,7 @@ To generate a FLIX, see the [FLIX CLI readme](https://github.com/onflow/flow-int
## Arguments
- Name: `argument`
-- Valid inputs: valid [cadence values](../../cadence/json-cadence-spec.md)
+- Valid inputs: valid [cadence values](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec)
matching argument type in script code.
Input arguments values matching corresponding types in the source code and passed in the same order.
@@ -56,7 +56,7 @@ You can pass a `nil` value to optional arguments by executing the flow script li
Arguments passed to the Cadence script in the Cadence JSON format.
Cadence JSON format contains `type` and `value` keys and is
-[documented here](../../cadence/json-cadence-spec.md).
+[documented here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
## Block Height
@@ -104,7 +104,7 @@ Specify the name of the account(s) that will be used as authorizer(s) in the tra
Arguments passed to the Cadence transaction in Cadence JSON format.
Cadence JSON format contains `type` and `value` keys and is
-[documented here](../../cadence/json-cadence-spec.md).
+[documented here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
### Gas Limit
diff --git a/docs/tools/flow-cli/scripts/execute-scripts.md b/docs/tools/flow-cli/scripts/execute-scripts.md
index 527cff0a61..2e1e1bc90f 100644
--- a/docs/tools/flow-cli/scripts/execute-scripts.md
+++ b/docs/tools/flow-cli/scripts/execute-scripts.md
@@ -39,7 +39,7 @@ script to be executed.
### Arguments
- Name: `argument`
-- Valid inputs: valid [cadence values](../../../cadence/json-cadence-spec.md)
+- Valid inputs: valid [cadence values](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec)
matching argument type in script code.
Input arguments values matching corresponding types in the source code and passed in the same order.
@@ -56,7 +56,7 @@ You can pass a `nil` value to optional arguments by executing the flow script li
Arguments passed to the Cadence script in the Cadence JSON format.
Cadence JSON format contains `type` and `value` keys and is
-[documented here](../../../cadence/json-cadence-spec.md).
+[documented here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
### Host
diff --git a/docs/tools/flow-cli/tests/run-tests.md b/docs/tools/flow-cli/tests/run-tests.md
index 1776871815..9084e4175a 100644
--- a/docs/tools/flow-cli/tests/run-tests.md
+++ b/docs/tools/flow-cli/tests/run-tests.md
@@ -41,7 +41,7 @@ Test results: "test_script.cdc"
```
-To learn more about writing tests in Cadence, take a look at the [Cadence testing framework](../../../cadence/testing-framework.mdx).
+To learn more about writing tests in Cadence, take a look at the [Cadence testing framework](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/testing-framework).
## Flags
diff --git a/docs/tools/flow-cli/transactions/build-transactions.md b/docs/tools/flow-cli/transactions/build-transactions.md
index 71c6a53f7a..ee94140b66 100644
--- a/docs/tools/flow-cli/transactions/build-transactions.md
+++ b/docs/tools/flow-cli/transactions/build-transactions.md
@@ -82,7 +82,7 @@ transaction to be executed.
### Arguments
- Name: `argument`
-- Valid inputs: valid [cadence values](../../../cadence/json-cadence-spec.md)
+- Valid inputs: valid [cadence values](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec)
matching argument type in transaction code.
Input arguments values matching corresponding types in the source code and passed in the same order.
@@ -133,7 +133,7 @@ Read more about authorizers [here](../../../build/basics/transactions.md).
Arguments passed to the Cadence transaction in Cadence JSON format.
Cadence JSON format contains `type` and `value` keys and is
-[documented here](../../../cadence/json-cadence-spec.md).
+[documented here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
### Gas Limit
diff --git a/docs/tools/flow-cli/transactions/send-transactions.md b/docs/tools/flow-cli/transactions/send-transactions.md
index eea2b4f87c..8f0b205e79 100644
--- a/docs/tools/flow-cli/transactions/send-transactions.md
+++ b/docs/tools/flow-cli/transactions/send-transactions.md
@@ -79,7 +79,7 @@ transaction to be executed.
### Arguments
- Name: `argument`
-- Valid inputs: valid [cadence values](../../../cadence/json-cadence-spec.md)
+- Valid inputs: valid [cadence values](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec)
matching argument type in transaction code.
Input arguments values matching corresponding types in the source code and passed in the same order.
@@ -149,7 +149,7 @@ Specify the name of the account(s) that will be used as authorizer(s) in the tra
Arguments passed to the Cadence transaction in Cadence JSON format.
Cadence JSON format contains `type` and `value` keys and is
-[documented here](../../../cadence/json-cadence-spec.md).
+[documented here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
### Gas Limit
diff --git a/docs/tools/flow-js-testing/api.md b/docs/tools/flow-js-testing/api.md
index 58a3dcc59e..baabf7865c 100644
--- a/docs/tools/flow-js-testing/api.md
+++ b/docs/tools/flow-js-testing/api.md
@@ -276,7 +276,7 @@ The `signUserMessage` method will produce a user signature of some arbitrary dat
| ----------- | -------------------------------------------------------------------------------------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `msgHex` | string or Buffer | | a hex-encoded string or Buffer which will be used to generate the signature |
| `signer` | [Address](../clients/fcl-js/api.md#address) or [SignerInfo](./api.md#signerinfoobject) | ✅ | [Address](../clients/fcl-js/api.md#address) or [SignerInfo](./api.md#signerinfoobject) object representing user to generate this signature for (default: [universal private key](./accounts.md#universal-private-key)) |
-| `domainTag` | string | ✅ | Domain separation tag provided as a utf-8 encoded string (default: no domain separation tag). See more about [domain tags here](../../cadence/language/crypto.mdx#hashing-with-a-domain-tag). |
+| `domainTag` | string | ✅ | Domain separation tag provided as a utf-8 encoded string (default: no domain separation tag). See more about [domain tags here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/crypto#hashing-with-a-domain-tag). |
#### Returns
@@ -305,7 +305,7 @@ Used to verify signatures generated by [`signUserMessage`](./api.md#signusermess
| ------------ | --------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `msgHex` | string | | the message which the provided signatures correspond to provided as a hex-encoded string or Buffer |
| `signatures` | [[SignatureObject](./api.md#signatureobject)] | | An array of [SignatureObjects](./api.md#signatureobject) which will be verified against this message |
-| `domainTag` | string | ✅ | Domain separation tag provided as a utf-8 encoded string (default: no domain separation tag). See more about [domain tags here](../../cadence/language/crypto.mdx#hashing-with-a-domain-tag). |
+| `domainTag` | string | ✅ | Domain separation tag provided as a utf-8 encoded string (default: no domain separation tag). See more about [domain tags here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/crypto#hashing-with-a-domain-tag). |
#### Returns
diff --git a/docs/tutorials/dapp-infrastructure.md b/docs/tutorials/dapp-infrastructure.md
index 41ce34a144..ec6535a555 100644
--- a/docs/tutorials/dapp-infrastructure.md
+++ b/docs/tutorials/dapp-infrastructure.md
@@ -34,7 +34,7 @@ Events are data objects emitted at the end of a transaction that describe the st
Events can be used to notify your off-chain infrastructure of important state changes in your smart contracts. For example, if a user purchases an NFT from your storefront smart contract, an event will be emitted that describes this purchase. Your web application, which displays the NFTs for sale, can then capture that event and remove the NFT from the sale list.
-You can query events through the Flow Access API using the available [Flow SDKs](../tools/clients/index.md). Event data is returned in [JSON-Cadence format](../cadence/json-cadence-spec).
+You can query events through the Flow Access API using the available [Flow SDKs](../tools/clients/index.md). Event data is returned in [JSON-Cadence format](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
#### Event Reflection Database
@@ -53,4 +53,4 @@ At any point, your dapp can execute a query to read the state of your contracts.
Events follow a push model, whereas script queries follow a pull model. Your dapp may need to check the state of your contracts without waiting for an event to be emitted.
-You can execute scripts through the Flow Access API using the available [Flow SDKs](../tools/clients/index.md). Like events, script results are returned in [JSON-Cadence format](../cadence/json-cadence-spec).
+You can execute scripts through the Flow Access API using the available [Flow SDKs](../tools/clients/index.md). Like events, script results are returned in [JSON-Cadence format](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
diff --git a/docs/tutorials/testnet-testing.md b/docs/tutorials/testnet-testing.md
index d7099e4503..604a2a47a8 100644
--- a/docs/tutorials/testnet-testing.md
+++ b/docs/tutorials/testnet-testing.md
@@ -18,4 +18,4 @@ Tests should also be runnable in automated environments (CI). You can use the [J
Once you deployed your application to the testnet, you should record how your application handles non-trivial amounts of traffic to ensure there are no issues.
-You should also get familiar with the [Cadence anti-patterns](../cadence/anti-patterns.md) to avoid avoid problematic or unintended behavior.
+You should also get familiar with the [Cadence anti-patterns](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/anti-patterns) to avoid avoid problematic or unintended behavior.
From 8a0e9b09a75a64b28bf08a9be1cc3c835868e2d1 Mon Sep 17 00:00:00 2001
From: Alex Ni <12097569+nialexsan@users.noreply.github.com>
Date: Fri, 27 Oct 2023 14:04:08 -0400
Subject: [PATCH 05/10] header and footer links
---
docusaurus.config.js | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/docusaurus.config.js b/docusaurus.config.js
index 18632bd1e8..97fc2195f3 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -273,7 +273,7 @@ const config = {
activeBasePath: '/guides',
},
{
- to: 'cadence/intro',
+ to: 'https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/',
position: 'left',
label: 'Cadence',
activeBasePath: '/cadence',
@@ -332,7 +332,7 @@ const config = {
to: '/tools',
},
{
- to: '/cadence/intro',
+ to: 'https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/',
label: 'Cadence',
},
{
@@ -406,7 +406,7 @@ const config = {
label: 'Flow Playground',
},
{
- to: '/cadence/tutorial/first-steps',
+ to: 'https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/tutorial/first-steps',
label: 'Cadence Tutorials',
},
{
From e63f4a490bfa211f87b0a9b84524099dccfb23e1 Mon Sep 17 00:00:00 2001
From: Alex Ni <12097569+nialexsan@users.noreply.github.com>
Date: Tue, 7 Nov 2023 11:07:09 -0500
Subject: [PATCH 06/10] switch to cadence-lang.org
---
.../account-linking/child-accounts.md | 6 +++---
.../advanced-concepts/account-linking/index.md | 2 +-
docs/build/basics/accounts.md | 6 +++---
docs/build/basics/blocks.md | 2 +-
docs/build/basics/events.md | 4 ++--
docs/build/basics/fees.md | 2 +-
docs/build/basics/transactions.md | 6 +++---
docs/build/building-vs-other-chains.md | 18 +++++++++---------
docs/build/cadence.md | 4 ++--
docs/build/flow.md | 2 +-
docs/build/getting-started/testing.md | 4 ++--
docs/build/mobile/react-native-quickstart.md | 4 ++--
docs/guides/flow-app-quickstart.md | 2 +-
docs/guides/smart-contracts/testing.mdx | 4 ++--
.../core-contracts/10-nft-storefront.md | 4 ++--
.../references/core-contracts/flow-ft/index.md | 2 +-
.../core-contracts/flow-nft/index.md | 2 +-
docs/references/index.md | 2 +-
.../run-and-secure/nodes/access-api.mdx | 10 +++++-----
.../nodes/archive-access-api.mdx | 4 ++--
.../run-and-secure/nodes/faq/backers.mdx | 2 +-
.../run-and-secure/nodes/faq/developers.mdx | 4 ++--
.../run-and-secure/nodes/faq/operators.mdx | 4 ++--
docs/tools/clients/fcl-js/sdk-guidelines.mdx | 6 +++---
docs/tools/clients/flow-go-sdk/index.mdx | 4 ++--
.../clients/unity-sdk/guides/flow-control.md | 2 +-
.../clients/unity-sdk/samples/nft-browser.md | 2 +-
.../clients/unity-sdk/samples/nft-example.md | 2 +-
.../clients/unity-sdk/samples/quickstart.md | 2 +-
.../clients/unity-sdk/samples/ui-usage.md | 4 ++--
.../flow-cli/accounts/account-add-contract.md | 4 ++--
.../accounts/account-update-contract.md | 4 ++--
docs/tools/flow-cli/flix.md | 2 +-
docs/tools/flow-cli/scripts/execute-scripts.md | 4 ++--
docs/tools/flow-cli/tests/run-tests.md | 2 +-
.../transactions/build-transactions.md | 4 ++--
.../flow-cli/transactions/send-transactions.md | 4 ++--
docs/tools/flow-js-testing/api.md | 4 ++--
docs/tutorials/dapp-infrastructure.md | 4 ++--
docs/tutorials/testnet-testing.md | 2 +-
docusaurus.config.js | 8 ++++----
vercel.json | 2 +-
42 files changed, 83 insertions(+), 83 deletions(-)
diff --git a/docs/build/advanced-concepts/account-linking/child-accounts.md b/docs/build/advanced-concepts/account-linking/child-accounts.md
index 504b94c260..8c1038726e 100644
--- a/docs/build/advanced-concepts/account-linking/child-accounts.md
+++ b/docs/build/advanced-concepts/account-linking/child-accounts.md
@@ -35,8 +35,8 @@ signed transaction.
Very simply, account linking is a [feature in Cadence](https://github.com/onflow/flips/pull/53) that let's an
-[AuthAccount](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/accounts#authaccount) create a
-[Capability](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/capabilities) on itself. You can do so in the following
+[AuthAccount](https://cadence-lang.org/docs/0.42/language/accounts#authaccount) create a
+[Capability](https://cadence-lang.org/docs/0.42/language/capabilities) on itself. You can do so in the following
transaction:
```cadence link_account.cdc
@@ -210,7 +210,7 @@ delegated access.
We can achieve issuance from the child account and claim from the parent account pattern in either:
-1. We can leverage [Cadence’s `AuthAccount.Inbox`](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/accounts#account-inbox) to publish the
+1. We can leverage [Cadence’s `AuthAccount.Inbox`](https://cadence-lang.org/docs/0.42/language/accounts#account-inbox) to publish the
Capability from the child account & have the parent claim the Capability in a separate transaction.
1. Multi-party signed transaction, signed by both the the accounts on either side of the link
diff --git a/docs/build/advanced-concepts/account-linking/index.md b/docs/build/advanced-concepts/account-linking/index.md
index 83991616e3..6fe92940d0 100644
--- a/docs/build/advanced-concepts/account-linking/index.md
+++ b/docs/build/advanced-concepts/account-linking/index.md
@@ -15,7 +15,7 @@ Accounts on flow can be accessed in Cadence through two types, `PublicAccount` a
Accessing the auth account allows for account modification, so it's essential to safeguard this access by mandating that transactions are signed by the account being accessed. A transaction can list multiple auth accounts it wants to access as part of the `pre` section of the transaction. Read more about transaction signing in the transaction documentation.
-Since access to the `AuthAccount` object enables state change, the idea of account ownership actually translates to the ability to access the auth account. Traditionally, you might consider this the same as having key access on an account, but we'll see in just a minute how programmatic, ownership-level access is unlocked with [Capabilities on Flow](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/capabilities).
+Since access to the `AuthAccount` object enables state change, the idea of account ownership actually translates to the ability to access the auth account. Traditionally, you might consider this the same as having key access on an account, but we'll see in just a minute how programmatic, ownership-level access is unlocked with [Capabilities on Flow](https://cadence-lang.org/docs/0.42/language/capabilities).
## AuthAccount Capabilities
diff --git a/docs/build/basics/accounts.md b/docs/build/basics/accounts.md
index 5d4ea6c03a..9f95847572 100644
--- a/docs/build/basics/accounts.md
+++ b/docs/build/basics/accounts.md
@@ -35,7 +35,7 @@ This minimum storage fee is provided by the account creator and covers the cost
**Contracts**
-An account can optionally store multiple [Cadence contracts](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/contracts). The code is stored as a human-readable UTF-8 encoded string which makes it easy for anyone to inspect the contents.
+An account can optionally store multiple [Cadence contracts](https://cadence-lang.org/docs/0.42/language/contracts). The code is stored as a human-readable UTF-8 encoded string which makes it easy for anyone to inspect the contents.
**Storage**
@@ -80,7 +80,7 @@ There are two curves commonly used with the ECDSA algorithm, secp256r1 ([OID 1.2
| ECDSA | P-256 | ECDSA_P256 | 2 |
| ECDSA | secp256k1 | ECDSA_secp256k1 | 3 |
-*Please note that the codes listed here are for the signature algorithms as used by the node API, and they are different from the ones [defined in Cadence](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/crypto#signing-algorithms)*
+*Please note that the codes listed here are for the signature algorithms as used by the node API, and they are different from the ones [defined in Cadence](https://cadence-lang.org/docs/0.42/language/crypto#signing-algorithms)*
| Algorithm | Output Size | ID | Code |
| --------- | ----------- | -------- | ---- |
@@ -128,7 +128,7 @@ We are supporting ECDSA with the curves `P-256` and `secp256k1`. For these curve
## Account Creation
-Accounts are created on the Flow blockchain by calling a special [create account Cadence function](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/accounts#account-creation). Once an account is created we can associate a new key with that account. Of course, all that can be done within a single transaction. Keep in mind that there is an account creation fee that needs to be paid. Account creation fees are relatively low, and we expect that wallet providers and exchanges will cover the cost when a user converts fiat to crypto for the first time.
+Accounts are created on the Flow blockchain by calling a special [create account Cadence function](https://cadence-lang.org/docs/0.42/language/accounts#account-creation). Once an account is created we can associate a new key with that account. Of course, all that can be done within a single transaction. Keep in mind that there is an account creation fee that needs to be paid. Account creation fees are relatively low, and we expect that wallet providers and exchanges will cover the cost when a user converts fiat to crypto for the first time.
For development purposes, [you can use Flow CLI to easily create emulator, testnet and mainnet accounts.](../../tools/flow-cli/accounts/create-accounts.md) The account creation fee is paid by a funding wallet so you don’t need a pre-existing account to create it.
diff --git a/docs/build/basics/blocks.md b/docs/build/basics/blocks.md
index 4f58ad0ce1..a0de7a5a93 100644
--- a/docs/build/basics/blocks.md
+++ b/docs/build/basics/blocks.md
@@ -27,7 +27,7 @@ The Block header contains the following fields:
- **ID** represents the block's unique identifier, which is derived from the hashing block header including the payload hash. The algorithm used on Flow to hash the content and get an identifier is SHA3 256. This ID is a commitment to all the values in the block staying the same.
- **Parent ID** is a link to the previous block ID in the list making up the blockchain.
- **Height** is the block sequence number, where block 0 was the first block produced, and each next block increments the value by 1.
-- **Timestamp** is the timestamp at which this block was proposed by the consensus node. Depending on your use case this time might not be accurate enough, [read more about measuring time on the Flow blockchain](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/measuring-time#time-on-the-flow-blockchain).
+- **Timestamp** is the timestamp at which this block was proposed by the consensus node. Depending on your use case this time might not be accurate enough, [read more about measuring time on the Flow blockchain](https://cadence-lang.org/docs/0.42/measuring-time#time-on-the-flow-blockchain).
- **Payload Hash** represents the payload hash that is included when producing the ID of the block. Payload hash is calculated by taking Merkle root hashes of collection guarantees, seals, execution receipts, and execution results and hashing them together. More on each of the values in the block payload section.
### Block Payload
diff --git a/docs/build/basics/events.md b/docs/build/basics/events.md
index ff53e0256e..e283528c0c 100644
--- a/docs/build/basics/events.md
+++ b/docs/build/basics/events.md
@@ -6,7 +6,7 @@ sidebar_position: 6
Flow events are special values that are emitted on the network during the execution of a Cadence program and can be observed by off-chain observers.
-Events are defined as Cadence code and you should [read Cadence documentation](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/events) to understand how to define them.
+Events are defined as Cadence code and you should [read Cadence documentation](https://cadence-lang.org/docs/0.42/language/events) to understand how to define them.
Since transactions don’t have return values you can leverage events to broadcast certain changes the transaction caused. Clients listening on Flow networks (apps) can listen to these events being emitted and react.
@@ -39,7 +39,7 @@ A list of events that are emitted by the Flow network is:
| flow.InboxValueUnpublished | Event that is emitted when a Capability is unpublished from an account. |
| flow.InboxValueClaimed1 | Event that is emitted when a Capability is claimed by an account. |
-For more details [on the core events, you can read Cadence reference documentation](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/core-events).
+For more details [on the core events, you can read Cadence reference documentation](https://cadence-lang.org/docs/0.42/language/core-events).
## User-defined events
diff --git a/docs/build/basics/fees.md b/docs/build/basics/fees.md
index 021e956219..9c48c7ac4b 100644
--- a/docs/build/basics/fees.md
+++ b/docs/build/basics/fees.md
@@ -294,7 +294,7 @@ pub fun add(_ a: Int, _ b: Int): Int {
**Avoid excessive load and save operations**
-Avoid costly loading and storage operations and [borrow references](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/design-patterns#avoid-excessive-load-and-save-storage-operations-prefer-in-place-mutations) where possible, for example:
+Avoid costly loading and storage operations and [borrow references](https://cadence-lang.org/docs/0.42/design-patterns#avoid-excessive-load-and-save-storage-operations-prefer-in-place-mutations) where possible, for example:
```cadence
transaction {
diff --git a/docs/build/basics/transactions.md b/docs/build/basics/transactions.md
index e80873257d..7374ce6fce 100644
--- a/docs/build/basics/transactions.md
+++ b/docs/build/basics/transactions.md
@@ -21,12 +21,12 @@ In order for a transaction to be valid and executed it must contain signatures f
The script section contains instructions for transaction execution. This is a Cadence program in source code form (human-readable), and encoded as UTF-8. The transaction program must contain a `transaction` declaration.
-A transaction includes multiple optional phases `prepare`, `pre`, `execute`, and `post` phase. You can read more about it in the [Cadence reference document on transactions](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/transactions). Each phase has a purpose, the two most important phases are `prepare` and `execute`.
+A transaction includes multiple optional phases `prepare`, `pre`, `execute`, and `post` phase. You can read more about it in the [Cadence reference document on transactions](https://cadence-lang.org/docs/0.42/language/transactions). Each phase has a purpose, the two most important phases are `prepare` and `execute`.
In the `prepare` phase, we have access to `AuthAccount` objects, which gives us the power to interact with those accounts. The accounts are called authorizers of transactions, so each account we want to interact with in the `prepare` phase must sign the transaction as an authorizer.
The `execute` phase does exactly what it says, it executes the main logic of the transaction. This phase is optional, but it is a best practice to add your main transaction logic in the section, so it is explicit.
-Again make sure to read Cadence [documentation on transactions](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/transactions)
+Again make sure to read Cadence [documentation on transactions](https://cadence-lang.org/docs/0.42/language/transactions)
This is an example of a transaction script:
@@ -40,7 +40,7 @@ transaction(greeting: String) {
**Arguments**
-Transactions may declare parameters it needs during execution, these must be provided as input arguments when sending a transaction. You can think of them as function arguments. Currently, we provide [arguments in the JSON-Cadence Data Interchange Format](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec#docusaurus_skipToContent_fallback). Which is a human-readable JSON format. The sample script from above accepts a single `String` argument.
+Transactions may declare parameters it needs during execution, these must be provided as input arguments when sending a transaction. You can think of them as function arguments. Currently, we provide [arguments in the JSON-Cadence Data Interchange Format](https://cadence-lang.org/docs/0.42/json-cadence-spec#docusaurus_skipToContent_fallback). Which is a human-readable JSON format. The sample script from above accepts a single `String` argument.
**Reference Block**
diff --git a/docs/build/building-vs-other-chains.md b/docs/build/building-vs-other-chains.md
index 4bb1af2e54..8262c24f6a 100644
--- a/docs/build/building-vs-other-chains.md
+++ b/docs/build/building-vs-other-chains.md
@@ -39,8 +39,8 @@ Check out the [Accounts](./basics/accounts.md) concept document to learn more ab
On Flow, smart contracts are written in Cadence. Cadence syntax is user-friendly and inspired by modern languages like Swift. Notable features of Cadence that make it unique and the key power of the Flow blockchain are:
-- **Resource-oriented**: Cadence introduces a new type called Resources. Resources enable onchain representation of digital assets natively and securely. Resources can only exist in one location at a time and are strictly controlled by the execution environment to avoid common mishandling mistakes. Each resource has a unique `uuid` associated with it on the blockchain. Examples of usage are fungible tokens, NFTs, or any custom data structure representing a real-world asset. Check out [Resources](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/resources) to learn more.
-- **Capability-based**: Cadence offers a [Capability-based Security](https://en.wikipedia.org/wiki/Capability-based_security) model. This also enables the use of Resources as structures to build access control. Capabilities can provide fine-grained access to the underlying objects for better security. For example, when users list an NFT on a Flow marketplace, they create a new Capability to the stored NFT in their account so the buyer can withdraw the asset when they provide the tokens. Check out [Capability-based Access Control](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/capabilities) to learn more about Capabilities on Cadence.
+- **Resource-oriented**: Cadence introduces a new type called Resources. Resources enable onchain representation of digital assets natively and securely. Resources can only exist in one location at a time and are strictly controlled by the execution environment to avoid common mishandling mistakes. Each resource has a unique `uuid` associated with it on the blockchain. Examples of usage are fungible tokens, NFTs, or any custom data structure representing a real-world asset. Check out [Resources](https://cadence-lang.org/docs/0.42/language/resources) to learn more.
+- **Capability-based**: Cadence offers a [Capability-based Security](https://en.wikipedia.org/wiki/Capability-based_security) model. This also enables the use of Resources as structures to build access control. Capabilities can provide fine-grained access to the underlying objects for better security. For example, when users list an NFT on a Flow marketplace, they create a new Capability to the stored NFT in their account so the buyer can withdraw the asset when they provide the tokens. Check out [Capability-based Access Control](https://cadence-lang.org/docs/0.42/language/capabilities) to learn more about Capabilities on Cadence.
@@ -52,16 +52,16 @@ Check out the [Cadence website](https://cadencelang.dev/) to learn more about Ca
If you’re already familiar with smart contracts, here are some resources that can help you get started with Cadence:
-- [The Cadence tutorial](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/tutorial/first-steps)
-- [Guide for Solidity Developers](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/solidity-to-cadence)
+- [The Cadence tutorial](https://cadence-lang.org/docs/0.42/tutorial/first-steps)
+- [Guide for Solidity Developers](https://cadence-lang.org/docs/0.42/solidity-to-cadence)
- ERC-20 equivalent on Flow is the Flow Fungible Token Standard
- [Repository](https://github.com/onflow/flow-ft)
- - [Tutorial](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/tutorial/fungible-tokens)
+ - [Tutorial](https://cadence-lang.org/docs/0.42/tutorial/fungible-tokens)
- ERC-721 equivalent on Flow is the Flow Non-Fungible Token Standard
- [Repository](https://github.com/onflow/flow-nft)
- - [Tutorial](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/tutorial/non-fungible-tokens-1)
+ - [Tutorial](https://cadence-lang.org/docs/0.42/tutorial/non-fungible-tokens-1)
- Asset marketplaces with Cadence
- - [Tutorial](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/tutorial/marketplace-setup)
+ - [Tutorial](https://cadence-lang.org/docs/0.42/tutorial/marketplace-setup)
- [NFT Storefront](https://github.com/onflow/nft-storefront/) is an example marketplace standard
### Transactions and Scripts
@@ -147,7 +147,7 @@ pub fun main(address: Address, collectionPublicPath: PublicPath): [UInt64] {
}
```
-Check out [Transactions](./basics/transactions.md) and [Scripts](./basics/scripts.md) to learn more about the concepts. You can also read the Cadence language reference on [Transactions](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/transactions) to dive deeper.
+Check out [Transactions](./basics/transactions.md) and [Scripts](./basics/scripts.md) to learn more about the concepts. You can also read the Cadence language reference on [Transactions](https://cadence-lang.org/docs/0.42/language/transactions) to dive deeper.
## Flow Nodes
@@ -188,6 +188,6 @@ If you’re already familiar with blockchain development, here's a comparison be
- [Flow Playground](https://play.flow.com/) provides basic experimentation on the web
- [Cadence VSCode Extension](https://marketplace.visualstudio.com/items?itemName=onflow.cadence) is strongly suggested to install for local development
- [Testing Smart Contracts](https://ethereum.org/en/developers/docs/smart-contracts/testing/)
- - [Cadence testing framework](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/testing-framework) enables native tests in Cadence.
+ - [Cadence testing framework](https://cadence-lang.org/docs/0.42/testing-framework) enables native tests in Cadence.
- [overflow](https://github.com/bjartek/overflow) for testing in Go.
- [js-testing](https://github.com/onflow/flow-js-testing) for testing in JS.
\ No newline at end of file
diff --git a/docs/build/cadence.md b/docs/build/cadence.md
index 3eb21afa14..22def609e2 100644
--- a/docs/build/cadence.md
+++ b/docs/build/cadence.md
@@ -133,7 +133,7 @@ Developers using custom-made approaches such as the 'data separation' approach t
may run into problems with the complexity of data structures,
while developers using ‘delegatecall-based proxies` may run into problems with the consistency of memory layouts.
Either way, these challenges compromise approachability and overall extensibility.
-Cadence has [contract upgradability built in by default](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/contract-updatability),
+Cadence has [contract upgradability built in by default](https://cadence-lang.org/docs/0.42/language/contract-updatability),
and contracts can be made immutable by removing all keys from an account.
Cadence improves the clarity and extensibility of programs by utilizing interfaces to allow extensibility, code reuse, and interoperability between contracts.
@@ -187,7 +187,7 @@ but using an interpreter for the first version allows us to refine the language
---
Now that you've learned about the goals and design of Cadence and Flow, you're ready to get started with the Flow emulator and tools!
-Go to the [Getting Started](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/tutorial/first-steps) page to work through language fundamentals and tutorials.
+Go to the [Getting Started](https://cadence-lang.org/docs/0.42/tutorial/first-steps) page to work through language fundamentals and tutorials.
## Why Cadence?
diff --git a/docs/build/flow.md b/docs/build/flow.md
index c9bd1795f3..7decb6c93c 100644
--- a/docs/build/flow.md
+++ b/docs/build/flow.md
@@ -31,7 +31,7 @@ The [development guide](../tutorials/intro.md) covers the Flow core concepts, in
## Core Contracts
-The Flow blockchain implements core functionality using its own smart contract language, [Cadence](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/). The core functionality is split into a set of contracts, so-called [core contracts](../references/core-contracts/index.md):
+The Flow blockchain implements core functionality using its own smart contract language, [Cadence](https://cadence-lang.org/docs/0.42/language/). The core functionality is split into a set of contracts, so-called [core contracts](../references/core-contracts/index.md):
- **Fungible Token:** The FungibleToken contract implements the Fungible Token Standard. It is the second contract ever deployed on Flow.
- **Flow Token:** The FlowToken contract defines the FLOW network token.
diff --git a/docs/build/getting-started/testing.md b/docs/build/getting-started/testing.md
index deede1a09c..5f48ce2cfa 100644
--- a/docs/build/getting-started/testing.md
+++ b/docs/build/getting-started/testing.md
@@ -95,7 +95,7 @@ The Cadence testing framework provides various features and techniques for writi
- [**Code Coverage**](https://github.com/m-Peter/flow-code-coverage): You can use the `--cover` flag with the `flow test` command to view code coverage results when running your tests. This allows you to identify areas of your code that are not adequately covered by your test inputs;
- **Test Fixtures**: Test fixtures are reusable components that help you set up the initial state for your test cases. You can create test fixtures in Cadence by defining resource types and using them in your test functions;
-- [**Assertions**](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/testing-framework#assertions): The testing framework provides built-in assertion functions, such as `assertEqual`, `beNil`, `beEmpty`, `contain`, to help you verify the expected behavior of your smart contracts;
+- [**Assertions**](https://cadence-lang.org/docs/0.42/testing-framework#assertions): The testing framework provides built-in assertion functions, such as `assertEqual`, `beNil`, `beEmpty`, `contain`, to help you verify the expected behavior of your smart contracts;
- **Test Suites**: You can organize your test cases into test suites to improve the readability and maintainability of your test code. Test suites allow you to group related test cases and set up common test fixtures for all the tests in the suite.
- [**Integration tests**](https://github.com/bjartek/overflow): You can use [Overflow tool](https://github.com/bjartek/overflow) to run integration tests against either an local emulator, testnet, mainnet or an in memory instance of the flow-emulator.
@@ -107,5 +107,5 @@ For more in-depth tutorials and documentation, refer to the official [Cadence la
## References
-- [Reference documentation for Cadence testing](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/testing-framework)
+- [Reference documentation for Cadence testing](https://cadence-lang.org/docs/0.42/testing-framework)
- https://github.com/bjartek/overflow
diff --git a/docs/build/mobile/react-native-quickstart.md b/docs/build/mobile/react-native-quickstart.md
index eac5a6582d..680e17b07d 100644
--- a/docs/build/mobile/react-native-quickstart.md
+++ b/docs/build/mobile/react-native-quickstart.md
@@ -293,7 +293,7 @@ await fcl.query({
});
```
-Inside the query you'll see we set two things: `cadence` and `args`. Cadence is Flow's smart contract language we mentioned. For this tutorial, when you look at it you just need to notice that it's importing the `Profile` contract from the account we named `0xProfile` earlier in our config file, then also taking an account address, and reading it. That's it until you're ready to [learn more Cadence](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/tutorial/first-steps).
+Inside the query you'll see we set two things: `cadence` and `args`. Cadence is Flow's smart contract language we mentioned. For this tutorial, when you look at it you just need to notice that it's importing the `Profile` contract from the account we named `0xProfile` earlier in our config file, then also taking an account address, and reading it. That's it until you're ready to [learn more Cadence](https://cadence-lang.org/docs/0.42/tutorial/first-steps).
In the `args` section, we are simply passing it our user's account address from the user we set in state after authentication and giving it a type of `Address`. For more possible types, [see this reference](../../tools/clients/fcl-js/api.md#ftype).
@@ -612,7 +612,7 @@ If you query the account profile again, "Profile Name:" should now display "Flow
That's it! You now have a shippable Flow dapp that can auth, query, init accounts, and mutate the chain. This is just the beginning. There is so much more to know. We have a lot more resources to help you build. To dive deeper, here are a few good places for taking the next steps:
**Cadence**
-- [Cadence Playground Tutorials](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/tutorial/first-steps)
+- [Cadence Playground Tutorials](https://cadence-lang.org/docs/0.42/tutorial/first-steps)
- [Cadence Hello World Video](https://www.youtube.com/watch?v=pRz7EzrWchs)
- [Why Cadence?](https://www.onflow.org/post/flow-blockchain-cadence-programming-language-resources-assets)
diff --git a/docs/guides/flow-app-quickstart.md b/docs/guides/flow-app-quickstart.md
index 6d2261759e..605b480d45 100644
--- a/docs/guides/flow-app-quickstart.md
+++ b/docs/guides/flow-app-quickstart.md
@@ -371,7 +371,7 @@ In `components/Container.tsx` file, the `mutateGreeting` method `fcl.mutate` sen
That's it! You now have Flow app that uses auth, query and mutate the chain. This is just the beginning. There is so much more to know. Next steps:
**Cadence**
-- [Cadence Playground Tutorials](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/tutorial/first-steps)
+- [Cadence Playground Tutorials](https://cadence-lang.org/docs/0.42/tutorial/first-steps)
- [Cadence Hello World Video](https://www.youtube.com/watch?v=pRz7EzrWchs)
- [Why Cadence?](https://www.onflow.org/post/flow-blockchain-cadence-programming-language-resources-assets)
diff --git a/docs/guides/smart-contracts/testing.mdx b/docs/guides/smart-contracts/testing.mdx
index a255c88923..02dc3a78a3 100644
--- a/docs/guides/smart-contracts/testing.mdx
+++ b/docs/guides/smart-contracts/testing.mdx
@@ -42,7 +42,7 @@ Cadence comes with built-in support for code coverage, as well as a native testi
This framework is bundled with the [Flow CLI](../../tools/flow-cli/index.md) tool, which includes a dedicated command for running tests (`flow test`).
You can find examples of Cadence tests in the following projects: [hybrid-custody](https://github.com/onflow/hybrid-custody/tree/main/test), [flow-nft](https://github.com/onflow/flow-nft/tree/master/tests), [flow-ft](https://github.com/onflow/flow-ft/tree/master/tests).
-Visit the [documentation](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/testing-framework) to view all the available features.
+Visit the [documentation](https://cadence-lang.org/docs/0.42/testing-framework) to view all the available features.
The [Hybrid Custody](https://github.com/onflow/hybrid-custody#readme) project is a prime example which utilizes both the Cadence testing framework and code coverage in its CI.
@@ -87,5 +87,5 @@ Tests should also be runnable in automated environments (CI). You can use the [J
Once you deployed your application to the testnet, you should record how your application handles non-trivial amounts of traffic to ensure there are no issues.
-Get familiar with the [Cadence anti-patterns](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/anti-patterns) to avoid avoid problematic or unintended behavior.
+Get familiar with the [Cadence anti-patterns](https://cadence-lang.org/docs/0.42/anti-patterns) to avoid avoid problematic or unintended behavior.
\ No newline at end of file
diff --git a/docs/references/core-contracts/10-nft-storefront.md b/docs/references/core-contracts/10-nft-storefront.md
index 1e866e7d6b..79a0c0ee19 100644
--- a/docs/references/core-contracts/10-nft-storefront.md
+++ b/docs/references/core-contracts/10-nft-storefront.md
@@ -29,7 +29,7 @@ Each account that wants to list NFTs for sale creates a `Storefront` resource to
Each listing can define one or more sale cuts taken out of the sale price to go to one or more addresses. Listing fees, royalties, or other considerations can be paid using sale cuts. Also, the listing can include a commission as one of these sale cuts is paid to whoever facilitates the purchase.
-Listings can have an optional list of marketplace [receiver capabilities](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/capabilities) used to receive the commission for fulfilling the listing. An NFT may be listed in one or more Listings, and the validity of each listing can easily be checked.
+Listings can have an optional list of marketplace [receiver capabilities](https://cadence-lang.org/docs/0.42/language/capabilities) used to receive the commission for fulfilling the listing. An NFT may be listed in one or more Listings, and the validity of each listing can easily be checked.
Interested parties can globally track Listing events on-chain and filter by NFT types, IDs and other characteristics to determine which to make available for purchase within their own marketplace UIs."
## Selling NFTs
@@ -52,7 +52,7 @@ The `NFTStorefrontV2` contract doesn’t support selling an NFT for multiple dif
![scenario_1](./scenario_1.png)
-Putting an NFT on sell called listing, seller can create a listing using [sell_item](https://github.com/onflow/nft-storefront/blob/main/transactions/sell_item.cdc) transaction by providing some required details to list an NFT, i.e. Receiving currency type, [Capability](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/capabilities) from where NFT will be deducted etc. If interested look [here](#fun-createListing()) for more details.
+Putting an NFT on sell called listing, seller can create a listing using [sell_item](https://github.com/onflow/nft-storefront/blob/main/transactions/sell_item.cdc) transaction by providing some required details to list an NFT, i.e. Receiving currency type, [Capability](https://cadence-lang.org/docs/0.42/language/capabilities) from where NFT will be deducted etc. If interested look [here](#fun-createListing()) for more details.
To receive a different currency seller has to provide a different __Receiver currency type__ , i.e. `salePaymentVaultType` As depicted in the above diagram, There are two listing formations with almost the same inputs. The only differentiator is the `salePaymentVaultType` parameter that needs to be different when creating duplicate NFT listings with different sale currency types.
diff --git a/docs/references/core-contracts/flow-ft/index.md b/docs/references/core-contracts/flow-ft/index.md
index 780202519c..86f2d84924 100644
--- a/docs/references/core-contracts/flow-ft/index.md
+++ b/docs/references/core-contracts/flow-ft/index.md
@@ -16,7 +16,7 @@ for developing smart contracts for the Flow Blockchain.
Read more about it [here](../../../build/cadence.md) and see its implementation [here](https://github.com/onflow/cadence)
We recommend that anyone who is reading this should have already
-completed the [Cadence Tutorials](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/tutorial/first-steps)
+completed the [Cadence Tutorials](https://cadence-lang.org/docs/0.42/tutorial/first-steps)
so they can build a basic understanding of the programming language.
Resource-oriented programming, and by extension Cadence,
diff --git a/docs/references/core-contracts/flow-nft/index.md b/docs/references/core-contracts/flow-nft/index.md
index 870847925f..6fe209ea55 100644
--- a/docs/references/core-contracts/flow-nft/index.md
+++ b/docs/references/core-contracts/flow-nft/index.md
@@ -13,7 +13,7 @@ contract on the [Flow blockchain](https://www.onflow.org/).
for developing smart contracts on Flow.
Before reading this standard,
-we recommend completing the [Cadence tutorials](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/tutorial/first-steps)
+we recommend completing the [Cadence tutorials](https://cadence-lang.org/docs/0.42/tutorial/first-steps)
to build a basic understanding of the programming language.
Resource-oriented programming, and by extension Cadence,
diff --git a/docs/references/index.md b/docs/references/index.md
index f26575eec7..b128bd19eb 100644
--- a/docs/references/index.md
+++ b/docs/references/index.md
@@ -13,7 +13,7 @@ Quick references to very helpful parts of developer documentation. Languages to
- [FCL SDK](../tools/clients/fcl-js/sdk-guidelines.mdx) - Flow Client Library SDK
- [Flow Go SDK](../tools/clients/flow-go-sdk/index.mdx) - Golang Flow Client SDK
- [Flow Unity SDK](https://unity-flow-sdk-api-docs.vercel.app/) - For gaming use the Unity SDK
-- [Cadence](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/functions) - Flow blockchain Smart Contract language, Cadence
+- [Cadence](https://cadence-lang.org/docs/0.42/language/functions) - Flow blockchain Smart Contract language, Cadence
## Network
Get Flow blockchain data from Access Nodes, both REST and gRPC endpoints are available. Get the current status of mainnet and testnet networks.
diff --git a/docs/references/run-and-secure/nodes/access-api.mdx b/docs/references/run-and-secure/nodes/access-api.mdx
index 06637044d7..bb41e3c8d9 100644
--- a/docs/references/run-and-secure/nodes/access-api.mdx
+++ b/docs/references/run-and-secure/nodes/access-api.mdx
@@ -517,7 +517,7 @@ message AccountResponse {
`ExecuteScriptAtLatestBlock` executes a read-only Cadence script against the latest sealed execution state.
-This method can be used to read execution state from the blockchain. The script is executed on an execution node and the return value is encoded using the [JSON-Cadence data interchange format](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
+This method can be used to read execution state from the blockchain. The script is executed on an execution node and the return value is encoded using the [JSON-Cadence data interchange format](https://cadence-lang.org/docs/0.42/json-cadence-spec).
```proto
rpc ExecuteScriptAtLatestBlock (ExecuteScriptAtLatestBlockRequest) returns (ExecuteScriptResponse)
@@ -556,7 +556,7 @@ message ExecuteScriptResponse {
`ExecuteScriptAtBlockID` executes a ready-only Cadence script against the execution state at the block with the given ID.
-This method can be used to read account state from the blockchain. The script is executed on an execution node and the return value is encoded using the [JSON-Cadence data interchange format](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
+This method can be used to read account state from the blockchain. The script is executed on an execution node and the return value is encoded using the [JSON-Cadence data interchange format](https://cadence-lang.org/docs/0.42/json-cadence-spec).
```proto
rpc ExecuteScriptAtBlockID (ExecuteScriptAtBlockIDRequest) returns (ExecuteScriptResponse)
@@ -589,7 +589,7 @@ message ExecuteScriptResponse {
`ExecuteScriptAtBlockHeight` executes a ready-only Cadence script against the execution state at the given block height.
-This method can be used to read account state from the blockchain. The script is executed on an execution node and the return value is encoded using the [JSON-Cadence data interchange format](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
+This method can be used to read account state from the blockchain. The script is executed on an execution node and the return value is encoded using the [JSON-Cadence data interchange format](https://cadence-lang.org/docs/0.42/json-cadence-spec).
```proto
rpc ExecuteScriptAtBlockHeight (ExecuteScriptAtBlockHeightRequest) returns (ExecuteScriptResponse)
@@ -971,7 +971,7 @@ message TransactionSignature {
| Field | Description |
| ----------------------------- | ---------------------------------------------------------------------------------------------------- |
| script | Raw source code for a Cadence script, encoded as UTF-8 bytes |
-| arguments | Arguments passed to the Cadence script, encoded as [JSON-Cadence](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec) bytes |
+| arguments | Arguments passed to the Cadence script, encoded as [JSON-Cadence](https://cadence-lang.org/docs/0.42/json-cadence-spec) bytes |
| reference_block_id | Block ID used to determine transaction expiry |
| [proposal_key](#proposal-key) | Account key used to propose the transaction |
| payer | Address of the payer account |
@@ -1094,7 +1094,7 @@ message Event {
| transaction_id | ID of the transaction the event was emitted from |
| transaction_index | Zero-based index of the transaction within the block |
| event_index | Zero-based index of the event within the transaction |
-| payload | Event fields encoded as [JSON-Cadence values](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec) |
+| payload | Event fields encoded as [JSON-Cadence values](https://cadence-lang.org/docs/0.42/json-cadence-spec) |
## Execution Result
diff --git a/docs/references/run-and-secure/nodes/archive-access-api.mdx b/docs/references/run-and-secure/nodes/archive-access-api.mdx
index c989ae1cf0..25af5cd944 100644
--- a/docs/references/run-and-secure/nodes/archive-access-api.mdx
+++ b/docs/references/run-and-secure/nodes/archive-access-api.mdx
@@ -71,7 +71,7 @@ message AccountResponse {
`ExecuteScriptAtBlockID` executes a ready-only Cadence script against the execution state at the block with the given ID.
-This method can be used to read account state from the blockchain. The script is executed on an execution node and the return value is encoded using the [JSON-Cadence data interchange format](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
+This method can be used to read account state from the blockchain. The script is executed on an execution node and the return value is encoded using the [JSON-Cadence data interchange format](https://cadence-lang.org/docs/0.42/json-cadence-spec).
```proto
rpc ExecuteScriptAtBlockID (ExecuteScriptAtBlockIDRequest) returns (ExecuteScriptResponse)
@@ -104,7 +104,7 @@ message ExecuteScriptResponse {
`ExecuteScriptAtBlockHeight` executes a ready-only Cadence script against the execution state at the given block height.
-This method can be used to read account state from the blockchain. The script is executed on an execution node and the return value is encoded using the [JSON-Cadence data interchange format](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
+This method can be used to read account state from the blockchain. The script is executed on an execution node and the return value is encoded using the [JSON-Cadence data interchange format](https://cadence-lang.org/docs/0.42/json-cadence-spec).
```proto
rpc ExecuteScriptAtBlockHeight (ExecuteScriptAtBlockHeightRequest) returns (ExecuteScriptResponse)
diff --git a/docs/references/run-and-secure/nodes/faq/backers.mdx b/docs/references/run-and-secure/nodes/faq/backers.mdx
index fd9502f90b..170cd9ac41 100644
--- a/docs/references/run-and-secure/nodes/faq/backers.mdx
+++ b/docs/references/run-and-secure/nodes/faq/backers.mdx
@@ -16,7 +16,7 @@ Once you complete a successful staking or delegation request, your tokens are se
## Is it possible to add multiple public keys to a given account/address so that it can be controlled by more than one private key?
-Yes, accounts support multiple, weighted keys, [here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/accounts)
+Yes, accounts support multiple, weighted keys, [here](https://cadence-lang.org/docs/0.42/language/accounts)
using `AuthAccount`’s `fun addPublicKey(_ publicKey: [UInt8])`and `fun removePublicKey(_ index: Int)` functions.
## How do keys and accounts work on Flow?
diff --git a/docs/references/run-and-secure/nodes/faq/developers.mdx b/docs/references/run-and-secure/nodes/faq/developers.mdx
index b5871fc8cc..3f7c7e9bb5 100644
--- a/docs/references/run-and-secure/nodes/faq/developers.mdx
+++ b/docs/references/run-and-secure/nodes/faq/developers.mdx
@@ -105,7 +105,7 @@ Events are implemented within Flow smart contracts using the Cadence programming
You can find out more about events in Cadence here:
-[cadence/language/events/](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/events)
+[cadence/language/events/](https://cadence-lang.org/docs/0.42/language/events)
As an example of the kinds of information events can contain, see the documentation of the events that the staking protocol emits:
@@ -191,7 +191,7 @@ Yes, an access node is publicly accessible to submit transactions and read data
## Is it possible to add multiple public keys to a given account/address so that it can be controlled by more than one private key?
-Yes, accounts support multiple, weighted keys, [here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/accounts)
+Yes, accounts support multiple, weighted keys, [here](https://cadence-lang.org/docs/0.42/language/accounts)
using `AuthAccount`’s `fun addPublicKey(_ publicKey: [UInt8])`and `fun removePublicKey(_ index: Int)` functions.
## How do keys and accounts work on Flow?
diff --git a/docs/references/run-and-secure/nodes/faq/operators.mdx b/docs/references/run-and-secure/nodes/faq/operators.mdx
index ec479ad229..1e50326e34 100644
--- a/docs/references/run-and-secure/nodes/faq/operators.mdx
+++ b/docs/references/run-and-secure/nodes/faq/operators.mdx
@@ -109,7 +109,7 @@ Events are implemented within Flow smart contracts using the Cadence programming
You can find out more about events in Cadence here:
-[cadence/language/events/](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/events)
+[cadence/language/events/](https://cadence-lang.org/docs/0.42/language/events)
As an example of the kinds of information events can contain, see the documentation of the events that the staking protocol emits:
@@ -168,7 +168,7 @@ Yes, an access node is publicly accessible to submit transactions and read data
## Is it possible to add multiple public keys to a given account/address so that it can be controlled by more than one private key?
-Yes, accounts support multiple, weighted keys, [here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/accounts)
+Yes, accounts support multiple, weighted keys, [here](https://cadence-lang.org/docs/0.42/language/accounts)
using `AuthAccount`’s `fun addPublicKey(_ publicKey: [UInt8])`and `fun removePublicKey(_ index: Int)` functions.
## How do keys and accounts work on Flow?
diff --git a/docs/tools/clients/fcl-js/sdk-guidelines.mdx b/docs/tools/clients/fcl-js/sdk-guidelines.mdx
index 60ea6e3310..6aecc5981e 100644
--- a/docs/tools/clients/fcl-js/sdk-guidelines.mdx
+++ b/docs/tools/clients/fcl-js/sdk-guidelines.mdx
@@ -182,8 +182,8 @@ Retrieve events by a given type in a specified block height range or through a l
A.{contract address}.{contract name}.{event name}
```
-Please read more about [events in the documentation](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/core-events). The exception to this standard are
-core events, and you should read more about them in [this document](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/core-events).
+Please read more about [events in the documentation](https://cadence-lang.org/docs/0.42/language/core-events). The exception to this standard are
+core events, and you should read more about them in [this document](https://cadence-lang.org/docs/0.42/language/core-events).
📖 **Block height range** expresses the height of the start and end block in the chain.
@@ -241,7 +241,7 @@ Result output: [CollectionObject](./api.md#collectionobject)
### Execute Scripts
[](./api.md#query)
-Scripts allow you to write arbitrary non-mutating Cadence code on the Flow blockchain and return data. You can learn more about [Cadence here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language) and [scripts here](./scripts.mdx), but we are now only interested in executing the script code and getting back the data.
+Scripts allow you to write arbitrary non-mutating Cadence code on the Flow blockchain and return data. You can learn more about [Cadence here](https://cadence-lang.org/docs/0.42/language) and [scripts here](./scripts.mdx), but we are now only interested in executing the script code and getting back the data.
We can execute a script using the latest state of the Flow blockchain or we can choose to execute the script at a specific time in history defined by a block height or block ID.
diff --git a/docs/tools/clients/flow-go-sdk/index.mdx b/docs/tools/clients/flow-go-sdk/index.mdx
index d03dc0c8d5..6f1a0e2e73 100644
--- a/docs/tools/clients/flow-go-sdk/index.mdx
+++ b/docs/tools/clients/flow-go-sdk/index.mdx
@@ -304,7 +304,7 @@ A.{contract address}.{contract name}.{event name}
```
Please read more about [events in the documentation](../../../references/core-contracts/03-flow-token.md). The exception to this standard are
-core events, and you should read more about them in [this document](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/core-events).
+core events, and you should read more about them in [this document](https://cadence-lang.org/docs/0.42/language/core-events).
📖 **Block height range** expresses the height of the start and end block in the chain.
@@ -409,7 +409,7 @@ Transactions: [cf1184e3de4bd9a7232ca3d0b9dd2cfbf96c97888298b81a05c086451fa52ec1]
[](https://pkg.go.dev/github.com/onflow/flow-go-sdk/client#Client.ExecuteScriptAtLatestBlock)
-Scripts allow you to write arbitrary non-mutating Cadence code on the Flow blockchain and return data. You can learn more about [Cadence and scripts here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language), but we are now only interested in executing the script code and getting back the data.
+Scripts allow you to write arbitrary non-mutating Cadence code on the Flow blockchain and return data. You can learn more about [Cadence and scripts here](https://cadence-lang.org/docs/0.42/language), but we are now only interested in executing the script code and getting back the data.
We can execute a script using the latest state of the Flow blockchain or we can choose to execute the script at a specific time in history defined by a block height or block ID.
diff --git a/docs/tools/clients/unity-sdk/guides/flow-control.md b/docs/tools/clients/unity-sdk/guides/flow-control.md
index c55a2e12c7..87f9730603 100644
--- a/docs/tools/clients/unity-sdk/guides/flow-control.md
+++ b/docs/tools/clients/unity-sdk/guides/flow-control.md
@@ -91,7 +91,7 @@ Account is the account that should deploy the contract. The contract will be de
The Deploy Contract button will attempt to deploy the contract. Check the emulator logs or flowdiver.io to monitor the progress of deployment and check for errors.
-The Update Contract button will attempt to update an existing contract. There are rules as to what can change in a contract for an update to be accepted. See [cadence/language/contract-updatability](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/contract-updatability) for more information.
+The Update Contract button will attempt to update an existing contract. There are rules as to what can change in a contract for an update to be accepted. See [cadence/language/contract-updatability](https://cadence-lang.org/docs/0.42/language/contract-updatability) for more information.
The Remove Contract button will attempt to delete the contract with the given name from the specified account. Once a contract is deleted, a new contract with the same name can not be created on the same account. When using the emulator, clearing the database will allow you to recreate the contract. When using testnet or mainnet, that contract name will become unavailable for the account. This is done to prevent bypassing the contract update rules by deleting and recreating a contract with incompatible changes.
diff --git a/docs/tools/clients/unity-sdk/samples/nft-browser.md b/docs/tools/clients/unity-sdk/samples/nft-browser.md
index 08c68dd99e..7b31ca24dc 100644
--- a/docs/tools/clients/unity-sdk/samples/nft-browser.md
+++ b/docs/tools/clients/unity-sdk/samples/nft-browser.md
@@ -47,7 +47,7 @@ pub fun main(addr: Address) : [StoragePath] {
}
```
-We use the [Storage Iteration API](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/accounts#storage-iteration) to look at everything the account has in it's storage and see if it is an NFT Collection. We return a list of all found NFT Collections.
+We use the [Storage Iteration API](https://cadence-lang.org/docs/0.42/language/accounts#storage-iteration) to look at everything the account has in it's storage and see if it is an NFT Collection. We return a list of all found NFT Collections.
## Getting NFT IDs Contained in a Collection
diff --git a/docs/tools/clients/unity-sdk/samples/nft-example.md b/docs/tools/clients/unity-sdk/samples/nft-example.md
index b109b1025c..884ad06a77 100644
--- a/docs/tools/clients/unity-sdk/samples/nft-example.md
+++ b/docs/tools/clients/unity-sdk/samples/nft-example.md
@@ -31,7 +31,7 @@ interface. We will be doing so in this case.
At its simplest, an NFT on Flow is a resource with a unique id. A Collection is a resource
that will allow you to store, list, deposit, and withdraw NFTs of a specific type.
-We recommend reading through the [NFT tutorial](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/tutorial/non-fungible-tokens-1)
+We recommend reading through the [NFT tutorial](https://cadence-lang.org/docs/0.42/tutorial/non-fungible-tokens-1)
to understand what is happening, as well as reviewing the contents of Cadence/Contracts/SDKExampleNFT.cdc
The SDKExampleNFT minter allows for anyone to mint an SDKExampleNFT. Typically you would restrict
diff --git a/docs/tools/clients/unity-sdk/samples/quickstart.md b/docs/tools/clients/unity-sdk/samples/quickstart.md
index 8c073ad833..26a76171fc 100644
--- a/docs/tools/clients/unity-sdk/samples/quickstart.md
+++ b/docs/tools/clients/unity-sdk/samples/quickstart.md
@@ -60,7 +60,7 @@ to run scripts.
## Running scripts
Next, we'll use this account to run a script on the emulator. Scripts on Flow are written in Cadence.
-More information is available at [Developer Portal](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/)
+More information is available at [Developer Portal](https://cadence-lang.org/docs/0.42/language/)
First we'll define the script that we want to run:
diff --git a/docs/tools/clients/unity-sdk/samples/ui-usage.md b/docs/tools/clients/unity-sdk/samples/ui-usage.md
index f5f0a2dd12..37bb3c66e0 100644
--- a/docs/tools/clients/unity-sdk/samples/ui-usage.md
+++ b/docs/tools/clients/unity-sdk/samples/ui-usage.md
@@ -253,7 +253,7 @@ The cadence script for this test is in the same location as the others, called *
Like Scripts, Transactions are cadence code that you write and are executed on the blockchain, but that is where the similarities end. The purpose of Transactions is to mutate data on the blockchain. To do this, the Transaction must be signed by the account/s that are going to be affected. The Transaction code can contain arguments, but can't return a value. This is because there is a delay for the Transaction to execute, because it has to go through the collection/consensus/execution/verification cycle.
-For more information about Transactions, see [cadence/language/transactions](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/transactions).
+For more information about Transactions, see [cadence/language/transactions](https://cadence-lang.org/docs/0.42/language/transactions).
For more information about Transaction signing, see [concepts/transaction-signing](../../../../build/basics/transactions.md#signing-a-transaction).
@@ -361,4 +361,4 @@ Note that the Contract Name must match the name of the contract in the source fi
The Contract Source File location is relative to the project's Assets directory.
-Only certain things in a Smart Contract can be modified. See this link about [Contract Updatability](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/contract-updatability).
+Only certain things in a Smart Contract can be modified. See this link about [Contract Updatability](https://cadence-lang.org/docs/0.42/language/contract-updatability).
diff --git a/docs/tools/flow-cli/accounts/account-add-contract.md b/docs/tools/flow-cli/accounts/account-add-contract.md
index 32f949abe8..5a82456846 100644
--- a/docs/tools/flow-cli/accounts/account-add-contract.md
+++ b/docs/tools/flow-cli/accounts/account-add-contract.md
@@ -79,7 +79,7 @@ Path to the file containing the contract source code.
### Arguments
- Name: `argument`
-- Valid inputs: valid [cadence values](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec)
+- Valid inputs: valid [cadence values](https://cadence-lang.org/docs/0.42/json-cadence-spec)
matching argument type in transaction code.
Input arguments values matching corresponding types in the source code and passed in the same order.
@@ -113,7 +113,7 @@ Specify the name of the account that will be used to sign the transaction.
Arguments passed to the Cadence transaction in Cadence JSON format.
Cadence JSON format contains `type` and `value` keys and is
-[documented here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
+[documented here](https://cadence-lang.org/docs/0.42/json-cadence-spec).
### Include Fields
diff --git a/docs/tools/flow-cli/accounts/account-update-contract.md b/docs/tools/flow-cli/accounts/account-update-contract.md
index 6880a369b0..5e7c73b09c 100644
--- a/docs/tools/flow-cli/accounts/account-update-contract.md
+++ b/docs/tools/flow-cli/accounts/account-update-contract.md
@@ -77,7 +77,7 @@ Filename of the file containing contract source code.
### Arguments
- Name: `argument`
-- Valid inputs: valid [cadence values](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec)
+- Valid inputs: valid [cadence values](https://cadence-lang.org/docs/0.42/json-cadence-spec)
matching argument type in transaction code.
Input arguments values matching corresponding types in the source code and passed in the same order.
@@ -118,7 +118,7 @@ Shows a diff to approve before updating between deployed contract and new contra
Arguments passed to the Cadence transaction in Cadence JSON format.
Cadence JSON format contains `type` and `value` keys and is
-[documented here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
+[documented here](https://cadence-lang.org/docs/0.42/json-cadence-spec).
### Include Fields
diff --git a/docs/tools/flow-cli/flix.md b/docs/tools/flow-cli/flix.md
index ebd68f804e..956a3c6a74 100644
--- a/docs/tools/flow-cli/flix.md
+++ b/docs/tools/flow-cli/flix.md
@@ -144,7 +144,7 @@ You can pass a `nil` value to optional arguments by executing the flow FLIX exec
Arguments passed to the Cadence script in the Cadence JSON format.
Cadence JSON format contains `type` and `value` keys and is
-[documented here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
+[documented here](https://cadence-lang.org/docs/0.42/json-cadence-spec).
## Block Height
diff --git a/docs/tools/flow-cli/scripts/execute-scripts.md b/docs/tools/flow-cli/scripts/execute-scripts.md
index 2e1e1bc90f..0ec8d12786 100644
--- a/docs/tools/flow-cli/scripts/execute-scripts.md
+++ b/docs/tools/flow-cli/scripts/execute-scripts.md
@@ -39,7 +39,7 @@ script to be executed.
### Arguments
- Name: `argument`
-- Valid inputs: valid [cadence values](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec)
+- Valid inputs: valid [cadence values](https://cadence-lang.org/docs/0.42/json-cadence-spec)
matching argument type in script code.
Input arguments values matching corresponding types in the source code and passed in the same order.
@@ -56,7 +56,7 @@ You can pass a `nil` value to optional arguments by executing the flow script li
Arguments passed to the Cadence script in the Cadence JSON format.
Cadence JSON format contains `type` and `value` keys and is
-[documented here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
+[documented here](https://cadence-lang.org/docs/0.42/json-cadence-spec).
### Host
diff --git a/docs/tools/flow-cli/tests/run-tests.md b/docs/tools/flow-cli/tests/run-tests.md
index 9084e4175a..3967f27c91 100644
--- a/docs/tools/flow-cli/tests/run-tests.md
+++ b/docs/tools/flow-cli/tests/run-tests.md
@@ -41,7 +41,7 @@ Test results: "test_script.cdc"
```
-To learn more about writing tests in Cadence, take a look at the [Cadence testing framework](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/testing-framework).
+To learn more about writing tests in Cadence, take a look at the [Cadence testing framework](https://cadence-lang.org/docs/0.42/testing-framework).
## Flags
diff --git a/docs/tools/flow-cli/transactions/build-transactions.md b/docs/tools/flow-cli/transactions/build-transactions.md
index ee94140b66..a4a56cba4f 100644
--- a/docs/tools/flow-cli/transactions/build-transactions.md
+++ b/docs/tools/flow-cli/transactions/build-transactions.md
@@ -82,7 +82,7 @@ transaction to be executed.
### Arguments
- Name: `argument`
-- Valid inputs: valid [cadence values](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec)
+- Valid inputs: valid [cadence values](https://cadence-lang.org/docs/0.42/json-cadence-spec)
matching argument type in transaction code.
Input arguments values matching corresponding types in the source code and passed in the same order.
@@ -133,7 +133,7 @@ Read more about authorizers [here](../../../build/basics/transactions.md).
Arguments passed to the Cadence transaction in Cadence JSON format.
Cadence JSON format contains `type` and `value` keys and is
-[documented here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
+[documented here](https://cadence-lang.org/docs/0.42/json-cadence-spec).
### Gas Limit
diff --git a/docs/tools/flow-cli/transactions/send-transactions.md b/docs/tools/flow-cli/transactions/send-transactions.md
index 8f0b205e79..ae4a5c6753 100644
--- a/docs/tools/flow-cli/transactions/send-transactions.md
+++ b/docs/tools/flow-cli/transactions/send-transactions.md
@@ -79,7 +79,7 @@ transaction to be executed.
### Arguments
- Name: `argument`
-- Valid inputs: valid [cadence values](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec)
+- Valid inputs: valid [cadence values](https://cadence-lang.org/docs/0.42/json-cadence-spec)
matching argument type in transaction code.
Input arguments values matching corresponding types in the source code and passed in the same order.
@@ -149,7 +149,7 @@ Specify the name of the account(s) that will be used as authorizer(s) in the tra
Arguments passed to the Cadence transaction in Cadence JSON format.
Cadence JSON format contains `type` and `value` keys and is
-[documented here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
+[documented here](https://cadence-lang.org/docs/0.42/json-cadence-spec).
### Gas Limit
diff --git a/docs/tools/flow-js-testing/api.md b/docs/tools/flow-js-testing/api.md
index 134fea2dab..7d56c231ba 100644
--- a/docs/tools/flow-js-testing/api.md
+++ b/docs/tools/flow-js-testing/api.md
@@ -276,7 +276,7 @@ The `signUserMessage` method will produce a user signature of some arbitrary dat
| ----------- | -------------------------------------------------------------------------------------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `msgHex` | string or Buffer | | a hex-encoded string or Buffer which will be used to generate the signature |
| `signer` | [Address](../clients/fcl-js/api.md#address) or [SignerInfo](./api.md#signerinfoobject) | ✅ | [Address](../clients/fcl-js/api.md#address) or [SignerInfo](./api.md#signerinfoobject) object representing user to generate this signature for (default: [universal private key](./accounts.md#universal-private-key)) |
-| `domainTag` | string | ✅ | Domain separation tag provided as a utf-8 encoded string (default: no domain separation tag). See more about [domain tags here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/crypto#hashing-with-a-domain-tag). |
+| `domainTag` | string | ✅ | Domain separation tag provided as a utf-8 encoded string (default: no domain separation tag). See more about [domain tags here](https://cadence-lang.org/docs/0.42/language/crypto#hashing-with-a-domain-tag). |
#### Returns
@@ -305,7 +305,7 @@ Used to verify signatures generated by [`signUserMessage`](./api.md#signusermess
| ------------ | --------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `msgHex` | string | | the message which the provided signatures correspond to provided as a hex-encoded string or Buffer |
| `signatures` | [[SignatureObject](./api.md#signatureobject)] | | An array of [SignatureObjects](./api.md#signatureobject) which will be verified against this message |
-| `domainTag` | string | ✅ | Domain separation tag provided as a utf-8 encoded string (default: no domain separation tag). See more about [domain tags here](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/language/crypto#hashing-with-a-domain-tag). |
+| `domainTag` | string | ✅ | Domain separation tag provided as a utf-8 encoded string (default: no domain separation tag). See more about [domain tags here](https://cadence-lang.org/docs/0.42/language/crypto#hashing-with-a-domain-tag). |
#### Returns
diff --git a/docs/tutorials/dapp-infrastructure.md b/docs/tutorials/dapp-infrastructure.md
index 0720253f18..4e282e5955 100644
--- a/docs/tutorials/dapp-infrastructure.md
+++ b/docs/tutorials/dapp-infrastructure.md
@@ -34,7 +34,7 @@ Events are data objects emitted at the end of a transaction that describe the st
Events can be used to notify your off-chain infrastructure of important state changes in your smart contracts. For example, if a user purchases an NFT from your storefront smart contract, an event will be emitted that describes this purchase. Your web application, which displays the NFTs for sale, can then capture that event and remove the NFT from the sale list.
-You can query events through the Flow Access API using the available [Flow SDKs](../tools/clients/index.md). Event data is returned in [JSON-Cadence format](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
+You can query events through the Flow Access API using the available [Flow SDKs](../tools/clients/index.md). Event data is returned in [JSON-Cadence format](https://cadence-lang.org/docs/0.42/json-cadence-spec).
#### Event Reflection Database
@@ -53,4 +53,4 @@ At any point, your dapp can execute a query to read the state of your contracts.
Events follow a push model, whereas script queries follow a pull model. Your dapp may need to check the state of your contracts without waiting for an event to be emitted.
-You can execute scripts through the Flow Access API using the available [Flow SDKs](../tools/clients/index.md). Like events, script results are returned in [JSON-Cadence format](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/json-cadence-spec).
+You can execute scripts through the Flow Access API using the available [Flow SDKs](../tools/clients/index.md). Like events, script results are returned in [JSON-Cadence format](https://cadence-lang.org/docs/0.42/json-cadence-spec).
diff --git a/docs/tutorials/testnet-testing.md b/docs/tutorials/testnet-testing.md
index 604a2a47a8..255f03525f 100644
--- a/docs/tutorials/testnet-testing.md
+++ b/docs/tutorials/testnet-testing.md
@@ -18,4 +18,4 @@ Tests should also be runnable in automated environments (CI). You can use the [J
Once you deployed your application to the testnet, you should record how your application handles non-trivial amounts of traffic to ensure there are no issues.
-You should also get familiar with the [Cadence anti-patterns](https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/anti-patterns) to avoid avoid problematic or unintended behavior.
+You should also get familiar with the [Cadence anti-patterns](https://cadence-lang.org/docs/0.42/anti-patterns) to avoid avoid problematic or unintended behavior.
diff --git a/docusaurus.config.js b/docusaurus.config.js
index b2a863c77b..e6cb270bb4 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -270,7 +270,7 @@ const config = {
activeBasePath: '/guides',
},
{
- to: 'https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/',
+ to: 'https://cadence-lang.org/docs/0.42/',
position: 'left',
label: 'Cadence',
activeBasePath: '/cadence',
@@ -329,7 +329,7 @@ const config = {
to: '/tools',
},
{
- to: 'https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/',
+ to: 'https://cadence-lang.org/docs/0.42/',
label: 'Cadence',
},
{
@@ -403,7 +403,7 @@ const config = {
label: 'Flow Playground',
},
{
- to: 'https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/tutorial/first-steps',
+ to: 'https://cadence-lang.org/docs/0.42/tutorial/first-steps',
label: 'Cadence Tutorials',
},
{
@@ -586,7 +586,7 @@ const config = {
// Redirect from /docs/team/X to /community/X and /docs/support/X to /community/X
return [
existingPath.replace(
- 'https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/',
+ 'https://cadence-lang.org/docs/0.42/',
'/cadence',
),
];
diff --git a/vercel.json b/vercel.json
index 399fc78154..45491cda24 100644
--- a/vercel.json
+++ b/vercel.json
@@ -1178,7 +1178,7 @@
},
{
"source": "/cadence/:path*",
- "destination": "https://cadence-lang-docs-git-fix-links-versions-onflow.vercel.app/docs/0.42/:path*",
+ "destination": "https://cadence-lang.org/docs/0.42/:path*",
"permanent": true
}
]
From ed350f7e0c94f53c8931dc4c5090e0d4225795d4 Mon Sep 17 00:00:00 2001
From: Alex Ni <12097569+nialexsan@users.noreply.github.com>
Date: Tue, 7 Nov 2023 11:26:56 -0500
Subject: [PATCH 07/10] remove cadence
---
.gitignore | 15 -
docs/cadence/_category_.yml | 2 -
docs/cadence/anti-patterns.md | 250 ---
docs/cadence/contract-upgrades.md | 30 -
docs/cadence/design-patterns.md | 458 ----
docs/cadence/index.mdx | 9 -
docs/cadence/intro.md | 190 --
docs/cadence/json-cadence-spec.md | 868 --------
docs/cadence/language/_category_.json | 3 -
docs/cadence/language/access-control.md | 610 ------
.../cadence/language/accounts/_category_.json | 3 -
.../language/accounts/capabilities.mdx | 675 ------
docs/cadence/language/accounts/contracts.mdx | 323 ---
docs/cadence/language/accounts/inbox.mdx | 131 --
docs/cadence/language/accounts/index.mdx | 173 --
docs/cadence/language/accounts/keys.mdx | 229 --
docs/cadence/language/accounts/paths.mdx | 52 -
docs/cadence/language/accounts/storage.mdx | 494 -----
docs/cadence/language/attachments.mdx | 289 ---
docs/cadence/language/built-in-functions.mdx | 95 -
docs/cadence/language/capabilities.md | 70 -
docs/cadence/language/composite-types.mdx | 525 -----
.../language/constants-and-variables.md | 102 -
.../cadence/language/contract-updatability.md | 401 ----
docs/cadence/language/contracts.mdx | 258 ---
docs/cadence/language/control-flow.md | 423 ----
docs/cadence/language/core-events.md | 183 --
docs/cadence/language/crypto.mdx | 436 ----
docs/cadence/language/enumerations.md | 63 -
.../language/environment-information.md | 68 -
docs/cadence/language/events.md | 72 -
docs/cadence/language/functions.mdx | 609 ------
docs/cadence/language/glossary.mdx | 297 ---
docs/cadence/language/imports.mdx | 29 -
docs/cadence/language/index.md | 49 -
docs/cadence/language/interfaces.mdx | 950 ---------
docs/cadence/language/intersection-types.md | 92 -
docs/cadence/language/operators.md | 903 --------
docs/cadence/language/references.mdx | 407 ----
docs/cadence/language/resources.mdx | 609 ------
docs/cadence/language/run-time-types.md | 251 ---
docs/cadence/language/scope.md | 81 -
docs/cadence/language/syntax.md | 127 --
docs/cadence/language/transactions.md | 246 ---
docs/cadence/language/type-annotations.md | 55 -
docs/cadence/language/type-hierarchy.md | 6 -
docs/cadence/language/type-hierarchy.monopic | Bin 11340 -> 0 bytes
docs/cadence/language/type-hierarchy.png | Bin 200747 -> 0 bytes
docs/cadence/language/type-inference.md | 146 --
docs/cadence/language/type-safety.md | 65 -
docs/cadence/language/values-and-types.mdx | 1878 -----------------
docs/cadence/measuring-time.mdx | 97 -
docs/cadence/project-development-tips.md | 302 ---
docs/cadence/security-best-practices.md | 89 -
docs/cadence/solidity-to-cadence.md | 502 -----
docs/cadence/testing-framework.mdx | 1292 ------------
docs/cadence/tutorial/01-first-steps.md | 84 -
docs/cadence/tutorial/02-hello-world.md | 333 ---
docs/cadence/tutorial/03-resources.md | 571 -----
docs/cadence/tutorial/04-capabilities.md | 446 ----
.../tutorial/05-non-fungible-tokens-1.md | 353 ----
.../tutorial/05-non-fungible-tokens-2.md | 700 ------
docs/cadence/tutorial/06-fungible-tokens.md | 1130 ----------
docs/cadence/tutorial/07-marketplace-setup.md | 252 ---
.../tutorial/08-marketplace-compose.md | 863 --------
docs/cadence/tutorial/09-voting.md | 434 ----
docs/cadence/tutorial/10-resources-compose.md | 282 ---
docs/cadence/tutorial/_category_.json | 4 -
.../tutorial/deploy_approval_voting.png | Bin 648824 -> 0 bytes
docs/cadence/tutorial/deploy_basic_token.png | Bin 636701 -> 0 bytes
.../cadence/tutorial/deploy_example_token.png | Bin 658827 -> 0 bytes
docs/cadence/tutorial/deploy_kittyverse.png | Bin 646573 -> 0 bytes
docs/cadence/tutorial/deploybox.png | Bin 518818 -> 0 bytes
docs/cadence/tutorial/playground-intro.png | Bin 538946 -> 0 bytes
docs/cadence/why.md | 19 -
docusaurus.config.js | 15 +-
scripts/import.sh | 17 -
.../version-stable/cadence/_category_.json | 4 -
.../version-stable/cadence/anti-patterns.md | 382 ----
.../cadence/contract-upgrades.mdx | 29 -
.../version-stable/cadence/design-patterns.md | 492 -----
.../version-stable/cadence/intro.md | 190 --
.../cadence/json-cadence-spec.md | 869 --------
.../cadence/language/_category_.json | 3 -
.../cadence/language/access-control.md | 223 --
.../cadence/language/accounts.mdx | 1034 ---------
.../cadence/language/attachments.mdx | 220 --
.../cadence/language/built-in-functions.mdx | 90 -
.../cadence/language/capabilities.md | 257 ---
.../cadence/language/composite-types.mdx | 508 -----
.../language/constants-and-variables.md | 102 -
.../cadence/language/contract-updatability.md | 401 ----
.../cadence/language/contracts.mdx | 496 -----
.../cadence/language/control-flow.md | 423 ----
.../cadence/language/core-events.md | 184 --
.../cadence/language/crypto.mdx | 430 ----
.../cadence/language/enumerations.md | 63 -
.../language/environment-information.md | 68 -
.../version-stable/cadence/language/events.md | 72 -
.../cadence/language/functions.mdx | 508 -----
.../cadence/language/glossary.mdx | 297 ---
.../cadence/language/imports.mdx | 29 -
.../version-stable/cadence/language/index.md | 49 -
.../cadence/language/interfaces.mdx | 547 -----
.../cadence/language/operators.md | 902 --------
.../cadence/language/references.md | 139 --
.../cadence/language/resources.mdx | 609 ------
.../cadence/language/restricted-types.md | 162 --
.../cadence/language/run-time-types.md | 252 ---
.../version-stable/cadence/language/scope.md | 81 -
.../version-stable/cadence/language/syntax.md | 127 --
.../cadence/language/transactions.md | 226 --
.../cadence/language/type-annotations.md | 55 -
.../cadence/language/type-hierarchy.md | 6 -
.../cadence/language/type-hierarchy.monopic | Bin 11340 -> 0 bytes
.../cadence/language/type-hierarchy.png | Bin 200747 -> 0 bytes
.../cadence/language/type-inference.md | 146 --
.../cadence/language/type-safety.md | 65 -
.../cadence/language/values-and-types.mdx | 1689 ---------------
.../version-stable/cadence/measuring-time.mdx | 97 -
.../cadence/security-best-practices.mdx | 64 -
.../cadence/solidity-to-cadence.md | 500 -----
.../styleguide/project-development-tips.md | 300 ---
.../cadence/testing-framework.mdx | 1292 ------------
.../cadence/tutorial/01-first-steps.md | 84 -
.../cadence/tutorial/02-hello-world.md | 333 ---
.../cadence/tutorial/03-resources.md | 573 -----
.../cadence/tutorial/04-capabilities.md | 453 ----
.../tutorial/05-non-fungible-tokens-1.md | 350 ---
.../tutorial/05-non-fungible-tokens-2.md | 699 ------
.../cadence/tutorial/06-fungible-tokens.md | 1130 ----------
.../cadence/tutorial/07-marketplace-setup.md | 252 ---
.../tutorial/08-marketplace-compose.md | 863 --------
.../cadence/tutorial/09-voting.mdx | 431 ----
.../cadence/tutorial/10-resources-compose.md | 282 ---
.../cadence/tutorial/_category_.json | 4 -
.../tutorial/deploy_approval_voting.png | Bin 648824 -> 0 bytes
.../cadence/tutorial/deploy_basic_token.png | Bin 636701 -> 0 bytes
.../cadence/tutorial/deploy_example_token.png | Bin 658827 -> 0 bytes
.../cadence/tutorial/deploy_kittyverse.png | Bin 646573 -> 0 bytes
.../cadence/tutorial/deploybox.png | Bin 518818 -> 0 bytes
.../cadence/tutorial/playground-intro.png | Bin 538946 -> 0 bytes
versioned_docs/version-stable/cadence/why.md | 19 -
.../version-stable-sidebars.json | 18 -
versions.json | 3 -
145 files changed, 1 insertion(+), 42260 deletions(-)
delete mode 100644 docs/cadence/_category_.yml
delete mode 100644 docs/cadence/anti-patterns.md
delete mode 100644 docs/cadence/contract-upgrades.md
delete mode 100644 docs/cadence/design-patterns.md
delete mode 100644 docs/cadence/index.mdx
delete mode 100644 docs/cadence/intro.md
delete mode 100644 docs/cadence/json-cadence-spec.md
delete mode 100644 docs/cadence/language/_category_.json
delete mode 100644 docs/cadence/language/access-control.md
delete mode 100644 docs/cadence/language/accounts/_category_.json
delete mode 100644 docs/cadence/language/accounts/capabilities.mdx
delete mode 100644 docs/cadence/language/accounts/contracts.mdx
delete mode 100644 docs/cadence/language/accounts/inbox.mdx
delete mode 100644 docs/cadence/language/accounts/index.mdx
delete mode 100644 docs/cadence/language/accounts/keys.mdx
delete mode 100644 docs/cadence/language/accounts/paths.mdx
delete mode 100644 docs/cadence/language/accounts/storage.mdx
delete mode 100644 docs/cadence/language/attachments.mdx
delete mode 100644 docs/cadence/language/built-in-functions.mdx
delete mode 100644 docs/cadence/language/capabilities.md
delete mode 100644 docs/cadence/language/composite-types.mdx
delete mode 100644 docs/cadence/language/constants-and-variables.md
delete mode 100644 docs/cadence/language/contract-updatability.md
delete mode 100644 docs/cadence/language/contracts.mdx
delete mode 100644 docs/cadence/language/control-flow.md
delete mode 100644 docs/cadence/language/core-events.md
delete mode 100644 docs/cadence/language/crypto.mdx
delete mode 100644 docs/cadence/language/enumerations.md
delete mode 100644 docs/cadence/language/environment-information.md
delete mode 100644 docs/cadence/language/events.md
delete mode 100644 docs/cadence/language/functions.mdx
delete mode 100644 docs/cadence/language/glossary.mdx
delete mode 100644 docs/cadence/language/imports.mdx
delete mode 100644 docs/cadence/language/index.md
delete mode 100644 docs/cadence/language/interfaces.mdx
delete mode 100644 docs/cadence/language/intersection-types.md
delete mode 100644 docs/cadence/language/operators.md
delete mode 100644 docs/cadence/language/references.mdx
delete mode 100644 docs/cadence/language/resources.mdx
delete mode 100644 docs/cadence/language/run-time-types.md
delete mode 100644 docs/cadence/language/scope.md
delete mode 100644 docs/cadence/language/syntax.md
delete mode 100644 docs/cadence/language/transactions.md
delete mode 100644 docs/cadence/language/type-annotations.md
delete mode 100644 docs/cadence/language/type-hierarchy.md
delete mode 100644 docs/cadence/language/type-hierarchy.monopic
delete mode 100644 docs/cadence/language/type-hierarchy.png
delete mode 100644 docs/cadence/language/type-inference.md
delete mode 100644 docs/cadence/language/type-safety.md
delete mode 100644 docs/cadence/language/values-and-types.mdx
delete mode 100644 docs/cadence/measuring-time.mdx
delete mode 100644 docs/cadence/project-development-tips.md
delete mode 100644 docs/cadence/security-best-practices.md
delete mode 100644 docs/cadence/solidity-to-cadence.md
delete mode 100644 docs/cadence/testing-framework.mdx
delete mode 100644 docs/cadence/tutorial/01-first-steps.md
delete mode 100644 docs/cadence/tutorial/02-hello-world.md
delete mode 100644 docs/cadence/tutorial/03-resources.md
delete mode 100644 docs/cadence/tutorial/04-capabilities.md
delete mode 100644 docs/cadence/tutorial/05-non-fungible-tokens-1.md
delete mode 100644 docs/cadence/tutorial/05-non-fungible-tokens-2.md
delete mode 100644 docs/cadence/tutorial/06-fungible-tokens.md
delete mode 100644 docs/cadence/tutorial/07-marketplace-setup.md
delete mode 100644 docs/cadence/tutorial/08-marketplace-compose.md
delete mode 100644 docs/cadence/tutorial/09-voting.md
delete mode 100644 docs/cadence/tutorial/10-resources-compose.md
delete mode 100644 docs/cadence/tutorial/_category_.json
delete mode 100644 docs/cadence/tutorial/deploy_approval_voting.png
delete mode 100644 docs/cadence/tutorial/deploy_basic_token.png
delete mode 100644 docs/cadence/tutorial/deploy_example_token.png
delete mode 100644 docs/cadence/tutorial/deploy_kittyverse.png
delete mode 100644 docs/cadence/tutorial/deploybox.png
delete mode 100644 docs/cadence/tutorial/playground-intro.png
delete mode 100644 docs/cadence/why.md
delete mode 100644 versioned_docs/version-stable/cadence/_category_.json
delete mode 100644 versioned_docs/version-stable/cadence/anti-patterns.md
delete mode 100644 versioned_docs/version-stable/cadence/contract-upgrades.mdx
delete mode 100644 versioned_docs/version-stable/cadence/design-patterns.md
delete mode 100644 versioned_docs/version-stable/cadence/intro.md
delete mode 100644 versioned_docs/version-stable/cadence/json-cadence-spec.md
delete mode 100644 versioned_docs/version-stable/cadence/language/_category_.json
delete mode 100644 versioned_docs/version-stable/cadence/language/access-control.md
delete mode 100644 versioned_docs/version-stable/cadence/language/accounts.mdx
delete mode 100644 versioned_docs/version-stable/cadence/language/attachments.mdx
delete mode 100644 versioned_docs/version-stable/cadence/language/built-in-functions.mdx
delete mode 100644 versioned_docs/version-stable/cadence/language/capabilities.md
delete mode 100644 versioned_docs/version-stable/cadence/language/composite-types.mdx
delete mode 100644 versioned_docs/version-stable/cadence/language/constants-and-variables.md
delete mode 100644 versioned_docs/version-stable/cadence/language/contract-updatability.md
delete mode 100644 versioned_docs/version-stable/cadence/language/contracts.mdx
delete mode 100644 versioned_docs/version-stable/cadence/language/control-flow.md
delete mode 100644 versioned_docs/version-stable/cadence/language/core-events.md
delete mode 100644 versioned_docs/version-stable/cadence/language/crypto.mdx
delete mode 100644 versioned_docs/version-stable/cadence/language/enumerations.md
delete mode 100644 versioned_docs/version-stable/cadence/language/environment-information.md
delete mode 100644 versioned_docs/version-stable/cadence/language/events.md
delete mode 100644 versioned_docs/version-stable/cadence/language/functions.mdx
delete mode 100644 versioned_docs/version-stable/cadence/language/glossary.mdx
delete mode 100644 versioned_docs/version-stable/cadence/language/imports.mdx
delete mode 100644 versioned_docs/version-stable/cadence/language/index.md
delete mode 100644 versioned_docs/version-stable/cadence/language/interfaces.mdx
delete mode 100644 versioned_docs/version-stable/cadence/language/operators.md
delete mode 100644 versioned_docs/version-stable/cadence/language/references.md
delete mode 100644 versioned_docs/version-stable/cadence/language/resources.mdx
delete mode 100644 versioned_docs/version-stable/cadence/language/restricted-types.md
delete mode 100644 versioned_docs/version-stable/cadence/language/run-time-types.md
delete mode 100644 versioned_docs/version-stable/cadence/language/scope.md
delete mode 100644 versioned_docs/version-stable/cadence/language/syntax.md
delete mode 100644 versioned_docs/version-stable/cadence/language/transactions.md
delete mode 100644 versioned_docs/version-stable/cadence/language/type-annotations.md
delete mode 100644 versioned_docs/version-stable/cadence/language/type-hierarchy.md
delete mode 100644 versioned_docs/version-stable/cadence/language/type-hierarchy.monopic
delete mode 100644 versioned_docs/version-stable/cadence/language/type-hierarchy.png
delete mode 100644 versioned_docs/version-stable/cadence/language/type-inference.md
delete mode 100644 versioned_docs/version-stable/cadence/language/type-safety.md
delete mode 100644 versioned_docs/version-stable/cadence/language/values-and-types.mdx
delete mode 100644 versioned_docs/version-stable/cadence/measuring-time.mdx
delete mode 100644 versioned_docs/version-stable/cadence/security-best-practices.mdx
delete mode 100644 versioned_docs/version-stable/cadence/solidity-to-cadence.md
delete mode 100644 versioned_docs/version-stable/cadence/styleguide/project-development-tips.md
delete mode 100644 versioned_docs/version-stable/cadence/testing-framework.mdx
delete mode 100644 versioned_docs/version-stable/cadence/tutorial/01-first-steps.md
delete mode 100644 versioned_docs/version-stable/cadence/tutorial/02-hello-world.md
delete mode 100644 versioned_docs/version-stable/cadence/tutorial/03-resources.md
delete mode 100644 versioned_docs/version-stable/cadence/tutorial/04-capabilities.md
delete mode 100644 versioned_docs/version-stable/cadence/tutorial/05-non-fungible-tokens-1.md
delete mode 100644 versioned_docs/version-stable/cadence/tutorial/05-non-fungible-tokens-2.md
delete mode 100644 versioned_docs/version-stable/cadence/tutorial/06-fungible-tokens.md
delete mode 100644 versioned_docs/version-stable/cadence/tutorial/07-marketplace-setup.md
delete mode 100644 versioned_docs/version-stable/cadence/tutorial/08-marketplace-compose.md
delete mode 100644 versioned_docs/version-stable/cadence/tutorial/09-voting.mdx
delete mode 100644 versioned_docs/version-stable/cadence/tutorial/10-resources-compose.md
delete mode 100644 versioned_docs/version-stable/cadence/tutorial/_category_.json
delete mode 100644 versioned_docs/version-stable/cadence/tutorial/deploy_approval_voting.png
delete mode 100644 versioned_docs/version-stable/cadence/tutorial/deploy_basic_token.png
delete mode 100644 versioned_docs/version-stable/cadence/tutorial/deploy_example_token.png
delete mode 100644 versioned_docs/version-stable/cadence/tutorial/deploy_kittyverse.png
delete mode 100644 versioned_docs/version-stable/cadence/tutorial/deploybox.png
delete mode 100644 versioned_docs/version-stable/cadence/tutorial/playground-intro.png
delete mode 100644 versioned_docs/version-stable/cadence/why.md
delete mode 100644 versioned_sidebars/version-stable-sidebars.json
delete mode 100644 versions.json
diff --git a/.gitignore b/.gitignore
index d03028c2ff..22be270a43 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,18 +32,3 @@ docs/references/core-contracts/flow-nft/*
!docs/references/core-contracts/flow-nft/index.md
docs/.obsidian
-
-# Remove after cadence is updated to a stable version
-# https://github.com/onflow/docs/issues/105
-versioned_docs/version-stable/architecture
-versioned_docs/version-stable/building-on-flow
-versioned_docs/version-stable/build
-versioned_docs/version-stable/overview
-versioned_docs/version-stable/community-resources
-versioned_docs/version-stable/concepts
-versioned_docs/version-stable/references
-versioned_docs/version-stable/tools
-versioned_docs/version-stable/guides
-versioned_docs/version-stable/node-ops
-versioned_docs/version-stable/tutorials
-versioned_docs/version-stable/getting-started
diff --git a/docs/cadence/_category_.yml b/docs/cadence/_category_.yml
deleted file mode 100644
index d303479308..0000000000
--- a/docs/cadence/_category_.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-label: Cadence
-position: 5
diff --git a/docs/cadence/anti-patterns.md b/docs/cadence/anti-patterns.md
deleted file mode 100644
index ad9c763a7f..0000000000
--- a/docs/cadence/anti-patterns.md
+++ /dev/null
@@ -1,250 +0,0 @@
----
-title: Cadence Anti-Patterns
-sidebar_position: 2
-sidebar_label: Anti-Patterns
----
-
-This is an opinionated list of issues that can be improved if they are found in Cadence code intended for production.
-
-## Avoid using authorized account references as a function parameter
-
-### Problem
-
-A developer may choose to authenticate or perform operations for their users by using the users' account addresses.
-In order to do this, they might add a parameter to a function which has an authorized account reference type (`auth(...) &Account`),
-as an authorized account reference can only be obtained by signing a transaction.
-
-This is problematic, as the authorized account reference allows access to some sensitive operations on the account,
-for example, to write to storage,
-which provides the opportunity for bad actors to take advantage of.
-
-### Example:
-
-```cadence
-...
-// BAD CODE
-// DO NOT COPY
-
-// Imagine this code is in a contract that uses a `auth(Storage) &Account` parameter
-// to authenticate users to transfer NFTs
-
-// They could deploy the contract with an Ethereum-style access control list functionality
-
-access(all) fun transferNFT(id: UInt64, owner: auth(Storage) &Account) {
- assert(owner(id) == owner.address)
-
- transfer(id)
-}
-
-// But they could upgrade the function to have the same signature
-// so it looks like it is doing the same thing, but they could also drain a little bit
-// of FLOW from the user's vault, a totally separate piece of the account that
-// should not be accessible in this function
-// BAD
-
-access(all) fun transferNFT(id: UInt64, owner: auth(Storage) &Account) {
- assert(owner(id) == owner.address)
-
- transfer(id)
-
- // Sneakily borrow a reference to the user's Flow Token Vault
- // and withdraw a bit of FLOW
- // BAD
- let vaultRef = owner.borrow<&FlowToken.Vault>(/storage/flowTokenVault)!
- let stolenTokens <- vaultRef.withdraw(amount: 0.1)
-
- // deposit the stolen funds in the contract owners vault
- // BAD
- contractVault.deposit(from: <-stolenTokens)
-}
-...
-```
-
-### Solution
-
-Projects should find other ways to authenticate users, such as using resources and capabilities as authentication objects.
-They should also expect to perform most storage and linking operations within transaction bodies
-rather than inside contract utility functions.
-
-There are some scenarios where using an authorized account reference (`auth(...) &Account`) is necessary,
-such as a cold storage multi-sig,
-but those cases are rare and such usage should still be avoided unless absolutely necessary.
-
-## Public functions and fields should be avoided
-
-### Problem
-
-Be sure to keep track of access modifiers when structuring your code, and make public only what should be public.
-Accidentally exposed fields can be a security hole.
-
-### Solution
-
-When writing your smart contract, look at every field and function and make sure
-that require access through an [entitlement](./language/access-control.md#entitlements) (`access(E)`),
-or use a non-public [access modifier](./language/access-control.md) like `access(self)`, `access(contract)`, or `access(account)`,
-unless otherwise needed.
-
-## Capability-Typed public fields are a security hole
-
-This is a specific case of "Public Functions And Fields Should Be Avoided", above.
-
-### Problem
-
-The values of public fields can be copied. Capabilities are value types,
-so if they are used as a public field, anyone can copy it from the field
-and call the functions that it exposes.
-This almost certainly is not what you want if a capability
-has been stored as a field on a contract or resource in this way.
-
-### Solution
-
-For public access to a capability, place it in an accounts public area so this expectation is explicit.
-
-## Public admin resource creation functions are unsafe
-
-This is a specific case of "Public Functions And Fields Should Be Avoided", above.
-
-### Problem
-
-A public function on a contract that creates a resource can be called by any account.
-If that resource provides access to admin functions then the creation function should not be public.
-
-### Solution
-
-To fix this, a single instance of that resource should be created in the contract's initializer,
-and then a new creation function can be potentially included within the admin resource, if necessary.
-
-### Example
-
-```cadence
-// Pseudo-code
-
-// BAD
-access(all) contract Currency {
- access(all) resource Admin {
- access(all) fun mintTokens()
- }
-
- // Anyone in the network can call this function
- // And use the Admin resource to mint tokens
- access(all) fun createAdmin(): @Admin {
- return <-create Admin()
- }
-}
-
-// This contract makes the admin creation private and in the initializer
-// so that only the one who controls the account can mint tokens
-// GOOD
-access(all) contract Currency {
- access(all) resource Admin {
- access(all) fun mintTokens()
-
- // Only an admin can create new Admins
- access(all) fun createAdmin(): @Admin {
- return <-create Admin()
- }
- }
-
- init() {
- // Create a single admin resource
- let firstAdmin <- create Admin()
-
- // Store it in private account storage, so only the admin can use it
- self.account.storage.save(<-firstAdmin, to: /storage/currencyAdmin)
- }
-}
-```
-
-## Do not modify smart contract state or emit events in public struct initializers
-
-This is another example of the risks of having publicly accessible parts to your smart contract.
-
-### Problem
-
-Data structure definitions in Cadence currently must be declared as public so that they can be used by anyone.
-Structs do not have the same restrictions that resources have on them,
-which means that anyone can create a new instance of a struct without going through any authorization.
-
-### Solution
-
-Any contract state-modifying operations related to the creation of structs
-should be contained in resources instead of the initializers of structs.
-
-### Example
-
-This used to be a bug in the NBA Top Shot smart contract, so we'll use that as an example.
-Before, when it created a new play,
-[it would initialize the play record with a struct,](https://github.com/dapperlabs/nba-smart-contracts/blob/55645478594858a6830e4ab095034068ef9753e9/contracts/TopShot.cdc#L155-L158)
-which increments the number that tracks the play IDs and emits an event:
-
-```cadence
-// Simplified Code
-// BAD
-//
-access(all) contract TopShot {
-
- // The Record that is used to track every unique play ID
- access(all) var nextPlayID: UInt32
-
- access(all) struct Play {
-
- access(all) let playID: UInt32
-
- init() {
-
- self.playID = TopShot.nextPlayID
-
- // Increment the ID so that it isn't used again
- TopShot.nextPlayID = TopShot.nextPlayID + 1
-
- emit PlayCreated(id: self.playID, metadata: metadata)
- }
- }
-}
-```
-
-This is a risk because anyone can create the `Play` struct as many times as they want,
-which could increment the `nextPlayID` field to the max `UInt32` value,
-effectively preventing new plays from being created. It also would emit bogus events.
-
-This bug was fixed by
-[instead updating the contract state in the admin function](https://github.com/dapperlabs/nba-smart-contracts/blob/master/contracts/TopShot.cdc#L682-L685)
-that creates the plays.
-
-
-```cadence
-// Update contract state in admin resource functions
-// GOOD
-//
-access(all) contract TopShot {
-
- // The Record that is used to track every unique play ID
- access(all) var nextPlayID: UInt32
-
- access(all) struct Play {
-
- access(all) let playID: UInt32
-
- init() {
- self.playID = TopShot.nextPlayID
- }
- }
-
- access(all) resource Admin {
-
- // Protected within the private admin resource
- access(all) fun createPlay() {
- // Create the new Play
- var newPlay = Play()
-
- // Increment the ID so that it isn't used again
- TopShot.nextPlayID = TopShot.nextPlayID + UInt32(1)
-
- emit PlayCreated(id: newPlay.playID, metadata: metadata)
-
- // Store it in the contract storage
- TopShot.playDatas[newPlay.playID] = newPlay
- }
- }
-}
-```
diff --git a/docs/cadence/contract-upgrades.md b/docs/cadence/contract-upgrades.md
deleted file mode 100644
index 749dccf551..0000000000
--- a/docs/cadence/contract-upgrades.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-title: Contract Upgrades with Incompatible Changes
-sidebar_position: 4
----
-
-### Problem
-
-I have an incompatible upgrade for a contract. How can I deploy this?
-
-### Solution
-
-Please don't perform incompatible upgrades between contract versions in the same account.
-There is too much that can go wrong.
-
-You can make [compatible upgrades](../cadence/language/contract-updatability.md) and then run a post-upgrade function on the new contract code if needed.
-
-If you must replace your contract rather than update it,
-the simplest solution is to add or increase a suffix on any named paths in the contract code
-(e.g. `/public/MyProjectVault` becomes `/public/MyProjectVault002`) in addition to making the incompatible changes,
-then create a new account and deploy the updated contract there.
-
-⚠️ Flow identifies types relative to addresses, so you will also need to provide _upgrade transactions_ to exchange the old contract's resources for the new contract's ones. Make sure to inform users as soon as possible when and how they will need to perform this task.
-
-If you absolutely must keep the old address when making an incompatible upgrade, then you do so at your own risk. Make sure you perform the following actions in this exact order:
-
-1. Delete any resources used in the contract account, e.g. an Admin resource.
-2. Delete the contract from the account.
-3. Deploy the new contract to the account.
-
-⚠️ Note that if any user accounts contain `structs` or `resources` from the _old_ version of the contract that have been replaced with incompatible versions in the new one, **they will not load and will cause transactions that attempt to access them to crash**. For this reason, once any users have received `structs` or `resources` from the contract, this method of making an incompatible upgrade should not be attempted!
diff --git a/docs/cadence/design-patterns.md b/docs/cadence/design-patterns.md
deleted file mode 100644
index 5772a1c52a..0000000000
--- a/docs/cadence/design-patterns.md
+++ /dev/null
@@ -1,458 +0,0 @@
----
-title: Cadence Design Patterns
-sidebar_position: 1
-sidebar_label: Design Patterns
----
-
-This is a selection of software design patterns developed by core Flow developers
-while writing Cadence code for deployment to Flow Mainnet.
-
-Many of these design patters apply to most other programming languages, but some are specific to Cadence.
-
-[Design patterns](https://en.wikipedia.org/wiki/Software_design_pattern) are building blocks for software development.
-They may provide a solution to a problem that you encounter when writing smart contracts in Cadence.
-If they do not clearly fit, these patterns may not be the right solution for a given situation or problem.
-They are not meant to be rules to be followed strictly, especially where a better solution presents itself.
-
-# General
-
-These are general patterns to follow when writing smart contracts.
-
-## Use named value fields for constants instead of hard-coding
-
-### Problem
-
-Your contracts, resources, and scripts all have to refer to the same value.
-A number, a string, a storage path, etc.
-Entering these values manually in transactions and scripts is a potential source of error.
-See [Wikipedia's page on magic numbers](https://en.wikipedia.org/wiki/Magic_number_(programming))
-
-### Solution
-
-Add a public (`access(all)`), constant (`let`) field, e.g. a `Path` , to the contract responsible for the value,
-and set it in the contract's initializer.
-Refer to that value via this public field rather than specifying it manually.
-
-Example Snippet:
-
-```cadence
-
-// BAD Practice: Do not hard code storage paths
-access(all) contract NamedFields {
- access(all) resource Test {}
-
- init() {
- // BAD: Hard-coded storage path
- self.account.storage.save(<-create Test(), to: /storage/testStorage)
- }
-}
-
-// GOOD practice: Instead, use a field
-//
-access(all) contract NamedFields {
- access(all) resource Test {}
-
- // GOOD: field storage path
- access(all) let TestStoragePath: StoragePath
-
- init() {
- // assign and access the field here and in transactions
- self.TestStoragePath = /storage/testStorage
- self.account.storage.save(<-create Test(), to: self.TestStoragePath)
- }
-}
-
-```
-
-[Example Code](https://github.com/onflow/flow-core-contracts/blob/master/contracts/LockedTokens.cdc#L718)
-
-## Script-Accessible public field/function
-
-Data availability is important in a blockchain environment.
-It is useful to publicize information about your smart contract and the assets it controls
-so other smart contracts and apps can easily query it.
-
-### Problem
-
-Your contract, resource, or struct has a field or resource that will need to be read and used on or off-chain, often in bulk.
-
-### Solution
-
-Make sure that the field can be accessed from a script.
-This saves the time and fees required to read a property using a transaction.
-Making the field or function `access(all)` and exposing it via a `/public/` capability will allow this.
-
-Be careful not to expose any data or functionality that should be kept private when doing so.
-
-Example:
-
-```cadence
-// BAD: Field is private, so it cannot be read by the public
-access(self) let totalSupply: UFix64
-
-// GOOD: Field is public, so it can be read and used by anyone
-access(all) let totalSupply: UFix64
-```
-
-## Script-Accessible report
-
-### Problem
-
-Your contract has a resource that you wish to access fields of.
-Resources are often stored in private places and are hard to access.
-Additionally, scripts cannot return resources to the external context,
-so a struct must be used to hold the data.
-
-### Solution
-
-Return a reference to a resource if the data from a single resource is all that is needed.
-Otherwise, declare a struct to hold the data that you wish to return from the script.
-Write a function that fills out the fields of this struct with the data
-from the resource that you wish to access.
-Then call this on the resource that you wish to access the fields of in a script,
-and return the struct from the script.
-
-See [Script-Accessible public field/function](#script-accessible-public-fieldfunction), above, for how best to expose this capability.
-
-### Example
-
-```cadence
-access(all) contract AContract {
- access(all) let BResourceStoragePath: StoragePath
- access(all) let BResourcePublicPath: PublicPath
-
- init() {
- self.BResourceStoragePath = /storage/BResource
- self.BResourcePublicPath = /public/BResource
- }
-
- // Resource definition
- access(all) resource BResource {
- access(all) var c: UInt64
- access(all) var d: String
-
-
- // Generate a struct with the same fields
- // to return when a script wants to see the fields of the resource
- // without having to return the actual resource
- access(all) fun generateReport(): BReportStruct {
- return BReportStruct(c: self.c, d: self.d)
- }
-
- init(c: UInt64, d: String) {
- self.c = c
- self.d = d
- }
- }
-
- // Define a struct with the same fields as the resource
- access(all) struct BReportStruct {
- access(all) var c: UInt64
- access(all) var d: String
-
- init(c: UInt64, d: String) {
- self.c = c
- self.d = d
- }
-
- }
-}
-...
-// Transaction
-import AContract from 0xAContract
-
-transaction {
- prepare(acct: auth(IssueStorageCapabilityController, PublishCapability) &Account) {
- //...
- let cap = acct.capabilities.storage.issue<&AContract.BResource>(AContract.BResourceStoragePath)
- acct.capabilities.publish(cap, at: AContract.BResourcePublicPath)
- }
-}
-// Script
-import AContract from 0xAContract
-
-// Return the struct with a script
-access(all) fun main(account: Address): AContract.BReportStruct {
- // borrow the resource
- let b = getAccount(account).capabilities
- .borrow<&AContract.BResource>(AContract.BResourcePublicPath)
- // return the struct
- return b.generateReport()
-}
-```
-
-## Init singleton
-
-### Problem
-
-An admin resource must be created and delivered to a specified account.
-There should not be a function to do this, as that would allow anyone to create an admin resource.
-
-### Solution
-
-Create any one-off resources in the contract's initializer
-and deliver them to an address or `&Account` specified as an argument.
-
-See how this is done in the LockedTokens contract initializer:
-
-[LockedTokens.cdc](https://github.com/onflow/flow-core-contracts/blob/master/contracts/LockedTokens.cdc#L718)
-
-and in the transaction that is used to deploy it:
-
-[admin_deploy_contract.cdc](https://github.com/onflow/flow-core-contracts/blob/master/transactions/lockedTokens/admin/admin_deploy_contract.cdc)
-
-
-## Use descriptive names for fields, paths, functions and variables
-
-### Problem
-
-Smart contracts often are vitally important pieces of a project and often have many other
-smart contracts and applications that rely on them.
-Therefore, they need to be clearly written and easy to understand.
-
-### Solution
-
-All fields, functions, types, variables, etc., need to have names that clearly describe what they are used for.
-
-`account` / `accounts` is better than `array` / `element`.
-
-`providerAccount` / `tokenRecipientAccount` is better than `acct1` / `acct2`.
-
-`/storage/bestPracticesDocsCollectionPath` is better than `/storage/collection`
-
-### Example
-
-```cadence
-// BAD: Unclear naming
-//
-access(all) contract Tax {
- // Do not use abbreviations unless absolutely necessary
- access(all) var pcnt: UFix64
-
- // Not clear what the function is calculating or what the parameter should be
- access(all) fun calculate(num: UFix64): UFix64 {
- // What total is this referring to?
- let total = num + (num * self.pcnt)
-
- return total
- }
-}
-
-// GOOD: Clear naming
-//
-access(all) contract TaxUtilities {
- // Clearly states what the field is for
- access(all) var taxPercentage: UFix64
-
- // Clearly states that this function calculates the
- // total cost after tax
- access(all) fun calculateTotalCostPlusTax(preTaxCost: UFix64): UFix64 {
- let postTaxCost = preTaxCost + (preTaxCost * self.taxPercentage)
-
- return postTaxCost
- }
-}
-```
-
-## Plural names for arrays and maps are preferable
-
-For example, use `accounts` rather than `account` for an array of accounts.
-
-This signals that the field or variable is not scalar.
-It also makes it easier to use the singular form for a variable name during iteration.
-
-## Use transaction post-conditions when applicable
-
-### Problem
-
-Transactions can contain any amount of valid Cadence code and access many contracts and accounts.
-The power of resources and capabilities means that there may be some behaviors of programs that are not expected.
-
-### Solution
-
-It is usually safe to include post-conditions in transactions to verify the intended outcome.
-
-### Example
-
-This could be used when purchasing an NFT to verify that the NFT was deposited in your account's collection.
-
-```cadence
-// Pseudo-code
-
-transaction {
-
- access(all) let buyerCollectionRef: &NonFungibleToken.Collection
-
- prepare(acct: auth(BorrowValue) &Account) {
-
- // Get tokens to buy and a collection to deposit the bought NFT to
- let temporaryVault <- vaultRef.withdraw(amount: 10.0)
- let self.buyerCollectionRef = acct.storage.borrow(from: /storage/Collection)
-
- // purchase, supplying the buyers collection reference
- saleRef.purchase(tokenID: 1, recipient: self.buyerCollectionRef, buyTokens: <-temporaryVault)
-
- }
- post {
- // verify that the buyer now owns the NFT
- self.buyerCollectionRef.idExists(1) == true: "Bought NFT ID was not deposited into the buyers collection"
- }
-}
-```
-
-## Avoid unnecessary load and save storage operations, prefer in-place mutations
-
-### Problem
-
-When modifying data in account storage, `load()` and `save()` are costly operations:
-All data is unnecessarily moved out of the account, then moved back into the account.
-This can quickly cause your transaction to reach its limits.
-
-This also applies to nested, stored in fields, arrays, and dictionaries:
-Moving objects out of containers and moving them back into the container,
-just to modify the object, is just as costly.
-
-For example, a collection contains a dictionary of NFTs.
-There is no need to move the whole dictionary out of the field,
-update the dictionary on the stack (e.g., adding or removing an NFT),
-and then move the whole dictionary back to the field:
-the dictionary can be updated in-place, which is easier and more efficient.
-The same goes for a more complex data structure like a dictionary of nested resources:
-Each resource can be updated in-place by taking a reference to the nested object instead of loading and saving.
-
-### Solution
-
-For making modifications to values in storage or accessing stored objects,
-`borrow()` should always be used to access them instead of `load` or `save` unless absolutely necessary.
-`borrow()` returns a reference to the object at the storage path instead of having to load the entire object.
-This reference can be assigned to or can be used to access fields or call methods on stored objects.
-
-Fields and value in containers, such as in arrays and dictionaries,
-can be borrowed using a reference expression (`&v as &T`).
-
-### Example
-
-```cadence
-// BAD: Loads and stores a resource to use it
-//
-transaction {
-
- prepare(acct: auth(LoadValue, SaveValue) &Account) {
-
- // Removes the vault from storage, a costly operation
- let vault <- acct.storage.load<@ExampleToken.Vault>(from: /storage/exampleToken)
-
- // Withdraws tokens
- let burnVault <- vault.withdraw(amount: 10)
-
- destroy burnVault
-
- // Saves the used vault back to storage, another costly operation
- acct.storage.save(to: /storage/exampleToken)
-
- }
-}
-
-// GOOD: Uses borrow instead to avoid costly operations
-//
-transaction {
-
- prepare(acct: auth(BorrowValue) &Account) {
-
- // Borrows a reference to the stored vault, much less costly operation
- let vault <- acct.storage.borrow<&ExampleToken.Vault>(from: /storage/exampleToken)
-
- let burnVault <- vault.withdraw(amount: 10)
-
- destroy burnVault
-
- // No `save` required because we only used a reference
- }
-}
-```
-
-# Capabilities
-
-## Capability bootstrapping
-
-### Problem
-
-An account must be given a [capability](./language/capabilities.md) to an object stored in another account.
-To create (issue) the capability, the transaction must be signed by a key which has access to the target account.
-
-To transfer / deliver the capability to the other account, the transaction also needs write access to that one.
-It is not as easy to produce a single transaction which is authorized by two accounts
-as it is to produce a typical transaction which is authorized by one account.
-
-This prevents a single transaction from fetching the capability
-from one account and delivering it to the other.
-
-### Solution
-
-The solution to the bootstrapping problem in Cadence is provided by the [Inbox API](./language/accounts/inbox.mdx).
-
-Account A (which we will call the provider) creates the capability they wish to send to B (which we will call the recipient),
-and stores this capability on their account in a place where the recipient can access it using the `Inbox.publish` function on their account.
-They choose a name for the capability that the recipient can later use to identify it, and specify the recipient's address when calling `publish`.
-This call to `publish` will emit an `InboxValuePublished` event that the recipient can listen for off-chain to know that the Capability is ready for them to claim.
-
-The recipient then later can use the `Inbox.claim` function to securely grab the capability from the provider's account.
-They must provide the name and type with which the capability was published, as well as the address of the provider's account
-(all of this information is available in the `InboxValuePublished` event emitted on `publish`).
-This will remove the capability from the provider's account and emit an `InboxValueClaimed` event that the provider can listen for off-chain.
-
-One important caveat to this is that the published capability is stored on the provider's account until the recipient claims it,
-so the provider can also use the `Inbox.unpublish` function to remove the capability from their account if they no longer wish to pay for storage for it.
-This also requires the name and type which the capability was published,
-and emits an `InboxValueUnpublished` event that the recipient can listen for off-chain.
-
-It is also important to note that the recipient becomes the owner of the capability object once they have claimed it,
-and can thus store it or copy it anywhere they have access to.
-This means providers should only publish capabilities to recipients they trust to use them properly,
-or limit the type with which the capability is authorized in order to only give recipients access to the functionality
-that the provider is willing to allow them to copy.
-
-
-## Capability revocation
-
-### Problem
-
-A capability provided by one account to a second account must able to be revoked
-by the first account without the co-operation of the second.
-
-### Solution
-
-The first account should issue a _new_ capability
-and use it only for the purpose of granting the second account access.
-
-Once the first account wants to revoke access to the resource in storage,
-they can simply get the capability controller for that capability and delete it.
-
-
-## Check for existing capability before publishing new one
-
-### Problem
-
-When publishing a capability, a capability might be already be published at the specified path.
-
-### Solution
-
-Check if a capability is already published at the given path.
-
-### Example
-
-```cadence
-transaction {
- prepare(signer: auth(Capabilities) &Account) {
- let capability = signer.capabilities.storage
- .issue<&ExampleToken.Vault>(/storage/exampleTokenVault)
-
- let publicPath = /public/exampleTokenReceiver
-
- if signer.capabilities.exits(publicPath) {
- signer.capabilities.unpublish(publicPath)
- }
- signer.capabilities.publish(capability, at: publicPath)
- }
-}
-```
diff --git a/docs/cadence/index.mdx b/docs/cadence/index.mdx
deleted file mode 100644
index 89b1a6f181..0000000000
--- a/docs/cadence/index.mdx
+++ /dev/null
@@ -1,9 +0,0 @@
----
-sidebar_position: 1
----
-
-import DocCardList from '@theme/DocCardList';
-import { useDocsSidebar, isSamePath } from '@docusaurus/theme-common/internal';
-import { useLocation } from '@docusaurus/router';
-
- !isSamePath(item.href, useLocation().pathname))}/>
diff --git a/docs/cadence/intro.md b/docs/cadence/intro.md
deleted file mode 100644
index badebc2dee..0000000000
--- a/docs/cadence/intro.md
+++ /dev/null
@@ -1,190 +0,0 @@
----
-title: Introduction to Cadence
-sidebar_position: 1
-sidebar_label: Introduction
----
-
-In a blockchain environment like Flow, programs that are stored on-chain in accounts are commonly referred to as smart contracts.
-A smart contract is a program that verifies and executes the performance of a contract without the need for a trusted third party.
-Programs that run on blockchains are commonly referred to as smart contracts because they mediate important functionality (such as currency)
-without having to rely on a central authority (like a bank).
-
-## A New Programming Language
-
----
-
-Cadence is a resource-oriented programming language that introduces new features to smart contract programming
-that help developers ensure that their code is safe, secure, clear, and approachable. Some of these features are:
-
-- Type safety and a strong static type system.
-- Resource-oriented programming, a new paradigm that pairs linear types with object capabilities
-to create a secure and declarative model for digital ownership by ensuring that resources (which are used to represent scarce digital assets)
-can only exist in one location at a time, cannot be copied, and cannot be accidentally lost or deleted.
-- Built-in pre-conditions and post-conditions for functions and transactions.
-- The utilization of capability-based security, which enforces that access to objects
-is restricted to only the owner of the object and those who have a valid reference to it.
-This is Cadence's main form of access control.
-
-Cadence’s syntax is inspired by popular modern general-purpose programming languages
-like [Swift](https://developer.apple.com/swift/), [Kotlin](https://kotlinlang.org/), and [Rust](https://www.rust-lang.org/).
-Its use of resource types maps well to that of [Move](https://medium.com/coinmonks/overview-of-move-programming-language-a860ffd8f55d),
-the programming language being developed by the Diem team.
-
-## Cadence's Programming Language Pillars
-
----
-
-Cadence, a new high-level programming language, observes the following requirements:
-
-- **Safety and Security:** Safety is the underlying reliability of any smart contract (i.e., it’s bug-free and performs its function).
-Security is the prevention of attacks on the network or smart contracts (i.e., unauthorized actions by malicious actors).
-Safety and security are critical in smart contracts because of the immutable nature of blockchains,
-and because they often deal with high-value assets. While auditing and reviewing code will be a crucial part of smart contract development,
-Cadence maximizes efficiency while maintaining the highest levels of safety and security at its foundation.
-It accomplishes this via a strong static type system, design by contract, and ownership primitives inspired by linear types (which are useful when dealing with assets).
-- **Clarity:** Code needs to be easy to read, and its meaning should be as unambiguous as possible.
-It should also be suited for verification so that tooling can help with ensuring safety and security guarantees.
-These guarantees can be achieved by making the code declarative and allowing the developer to express their intentions directly.
-We make those intentions explicit by design, which, along with readability, make auditing and reviewing more efficient, at a small cost to verbosity.
-- **Approachability:** Writing code and creating programs should be as approachable as possible.
-Incorporating features from languages like Swift and Rust, developers should find Cadence’s syntax and semantics familiar.
-Practical tooling, documentation, and examples enable developers to start creating programs quickly and effectively.
-- **Developer Experience:** The developer should be supported throughout the entire development lifecycle, from initial application logic to on-chain bugfixes.
-- **Intuiting Ownership with Resources:** Resources are a composite data type, similar to a struct, that expresses direct ownership of assets.
-Cadence’s strong static type system ensures that resources can only exist in one location at a time and cannot be copied or lost because of a coding mistake.
-Most smart contract languages currently use a ledger-style approach to record ownership,
-where an asset like a fungible token is stored in the smart contract as an entry in a central ledger.
-Cadence’s resources directly tie an asset’s ownership to the account that owns it by saving the resource in the account’s storage.
-As a result, ownership isn’t centralized in a smart contract’s storage. Each account owns its assets,
-and the assets can be transferred freely between accounts without the need for arbitration by a central smart contract.
-
-## Addressing Challenges with Existing Languages
-
----
-
-Other languages pioneered smart contract development, but they lack in areas that affect the long-term viability of next-generation applications.
-
-### Safety
-
-Safety is the reliability of a smart contract to perform its function as intended.
-It is heavily influenced by the unchangeable-once-deployed nature of smart contracts:
-Developers must take certain precautions in order to avoid introducing any potentially catastrophic vulnerabilities
-prior to publishing a smart contract on the blockchain.
-It is standard across many blockchains that modifying or updating a smart contract, even to fix a vulnerability, is not allowed.
-Thus, any bugs that are present in the smart contract will exist forever.
-
-For example, in 2016, an overlooked vulnerability in an Ethereum DAO smart contract (Decentralized Autonomous Organization)
-saw millions of dollars siphoned from a smart contract,
-eventually leading to a fork in Ethereum and two separate active blockchains (Ethereum and Ethereum Classic).
-
-Bug fixes are only possible if a smart contract is designed to support changes,
-a feature that introduces complexity and security issues.
-Lengthy auditing and review processes can ensure a bug-free smart contract.
-Still, they add substantial time to the already time-consuming task of getting the smart contract’s core logic working correctly.
-
-Overlooked mistakes cause the most damaging scenarios.
-It is easy to lose or duplicate monetary value or assets in existing languages because they don’t check relevant invariants
-or make it harder to express them.
-For example, a plain number represents a transferred amount that can be accidentally (or maliciously) multiplied or ignored.
-
-Some languages also express behaviors that developers tend to forget about.
-For example, a fixed-range type might express monetary value, without considerations for a potential overflow or underflow.
-In Solidity, Ethereum's smart contract language, an overflow causes the value to wrap around, as shown [here](https://ethfiddle.com/CAp-kQrDUP).
-Solidity also allows contracts to declare variables without initializing them.
-If the developer forgets to add an initialization somewhere,
-and then tries to read the variable somewhere else in the code expecting it to be a specific value, issues will occur.
-
-Cadence is type safe and has a strong static type system,
-which prevents important classes of erroneous or undesirable program behavior at compile-time (i.e., before the program is run on-chain).
-Types are checked statically and are not implicitly converted. Cadence also improves the safety of programs by preventing arithmetic underflow and overflow,
-introduces optionals to make nil-cases explicit, and always requires variables to be initialized.
-This helps ensure the behavior of these smart contracts is apparent and not dependent on context.
-
-### Security
-
-Security, in combination with safety, ensures the successful execution of a smart contract over time
-by preventing unsanctioned access and guaranteeing that only authorized actions can be performed in the protocol.
-In some languages, functions are public by default, creating vulnerabilities that allow malicious users to find attack vectors.
-Cadence utilizes capability-based security, which allows the type system to enforce access control based on rules that users and developers have control over.
-
-Security is a consideration when interacting with other smart contracts. Any external call potentially allows malicious code to be executed.
-For example, in Solidity, when the called function signature does not match any of the available ones, it triggers Solidity’s fallback functions.
-These functions can be used in malicious ways. Language features such as multiple inheritances and overloading or dispatch can also make it difficult
-to determine which code is invoked.
-
-In Cadence, the safety and security of programs are enhanced by **Design By Contract** and **Ownership Primitives.**
-Design by contract allows developers to state pre-conditions and post-conditions for functions and interfaces in a declarative manner
-so that callers can be certain about the behavior of called code. Ownership primitives are inspired by linear types and increase safety when working with assets.
-They ensure that valuable assets are, for example, not accidentally or maliciously lost or duplicated.
-
-### Clarity and Approachability
-
-Implicitness, context-dependability, and expressiveness are language-based challenges that developers often encounter.
-They affect the clarity (i.e. the readability of code and the ability to determine its intended function)
-and the approachability (i.e. the ability to interpret or write code) of the language and the programs built using it.
-For example, in Solidity, storage must be implemented in a low-level key-value manner, which obfuscates the developer’s intentions.
-Syntax confusion is another example, with “=+” being legal syntax leading to an assignment instead of a probably-intended increment.
-Solidity also has features with uncommon behaviors that can lead to unintended results.
-[Multiple inheritance may lead to unexpected behaviours in the program](https://medium.com/consensys-diligence/a-case-against-inheritance-in-smart-contracts-d7f2c738f78e),
-and testing and auditing the code is unlikely to identify this issue.
-
-The Ethereum blockchain’s code immutability showcases the need for considerations around extensibility and mechanisms that allow ad-hoc fixes.
-Developers using custom-made approaches such as the 'data separation' approach to upgradability
-may run into problems with the complexity of data structures,
-while developers using ‘delegatecall-based proxies` may run into problems with the consistency of memory layouts.
-Either way, these challenges compromise approachability and overall extensibility.
-Cadence has [contract upgradability built in by default](./language/contract-updatability.md),
-and contracts can be made immutable by removing all keys from an account.
-
-Cadence improves the clarity and extensibility of programs by utilizing interfaces to allow extensibility, code reuse, and interoperability between contracts.
-Cadence modules also have configurable and transparent upgradeability built-in to enable projects to test and iterate before making their code immutable.
-
-Cadence allows the use of argument labels to describe the meaning of function arguments.
-It also provides a rich standard library with useful data structures (e.g., dictionaries, sets) and data types for common use cases,
-like fixed-point arithmetic, which helps when working with currencies.
-
-## Intuiting Ownership with Resources
-
-Most smart contract languages currently use a ledger-style approach to record ownership,
-where an asset is stored in the smart contract as an entry in a central ledger, and this ledger is the source of truth around asset ownership.
-There are many disadvantages to this design, especially when it comes to tracking the ownership of multiple assets belonging to a single account.
-To find out all of the assets that an account owns, you would have to enumerate all the possible smart contracts that could potentially include this account
-and search to see if the account owns these assets.
-
-In a resource-oriented language like Cadence, resources directly tie an asset to the account that owns it
-by saving the resource in the account’s storage. As a result, ownership isn’t centralized in a single, central smart contract’s storage.
-Instead, each account owns and stores its own assets, and the assets can be transferred freely between accounts without the need for arbitration by a central smart contract.
-
-Resources are inspired by linear types and increase safety when working with assets, which often have real, intrinsic value.
-Resources, as enforced by Cadence’s type system, ensure that assets are correctly manipulated and not abused.
-
-- Every resource has exactly one owner. If a resource is used as a function parameter, an initial value for a variable, or something similar, the object is not copied.
-Instead, it is moved to the new location, and the old location is immediately invalidated.
-- The language will report an error if ownership of a resource was not properly transferred, i.e.,
-when the program attempts to introduce multiple owners for the resource or the resource ends up in a state where it does not have an owner.
-For example, a resource can only be assigned to exactly one variable and cannot be passed to functions multiple times.
-- Resources cannot go out of scope. If a function or transaction removes a resource from an account’s storage,
-it either needs to end the transaction in an account's storage, or it needs to be explicitly and safely deleted. There is no “garbage collection” for resources.
-
-The special status of Resource objects must be enforced by the runtime; if they were just a compiler abstraction it would be easy for malicious code to break the value guarantees.
-
-Resources change how assets are used in a programming environment to better resemble assets in the real world.
-Users store their currencies and assets in their own account, in their own wallet storage, and they can do with them as they wish.
-Users can define custom logic and structures for resources that give them flexibility with how they are stored.
-Additionally, because everyone stores their own assets, the calculation and charging of state rent is fair and balanced across all users in the network.
-
-## An Interpreted Language
-
----
-
-Currently, Cadence is an interpreted language, as opposed to a compiled language. This means that there is no Cadence Assembly, bytecode, compiler, or Cadence VM.
-
-The structure of the language lends itself well to compilation (for example, static typing),
-but using an interpreter for the first version allows us to refine the language features more quickly as we define them.
-
-## Getting Started with Cadence
-
----
-
-Now that you've learned about the goals and design of Cadence and Flow, you're ready to get started with the Flow emulator and tools!
-Go to the [Getting Started](./tutorial/01-first-steps.md) page to work through language fundamentals and tutorials.
diff --git a/docs/cadence/json-cadence-spec.md b/docs/cadence/json-cadence-spec.md
deleted file mode 100644
index 5e059bbb86..0000000000
--- a/docs/cadence/json-cadence-spec.md
+++ /dev/null
@@ -1,868 +0,0 @@
----
-title: JSON-Cadence Data Interchange Format
-sidebar_label: JSON-Cadence format
----
-
-> Version 0.3.1
-
-JSON-Cadence is a data interchange format used to represent Cadence values as language-independent JSON objects.
-
-This format includes less type information than a complete [ABI](https://en.wikipedia.org/wiki/Application_binary_interface), and instead promotes the following tenets:
-
-- **Human-readability** - JSON-Cadence is easy to read and comprehend, which speeds up development and debugging.
-- **Compatibility** - JSON is a common format with built-in support in most high-level programming languages, making it easy to parse on a variety of platforms.
-- **Portability** - JSON-Cadence is self-describing and thus can be transported and decoded without accompanying type definitions (i.e. an ABI).
-
-# Values
-
----
-
-## Void
-
-```json
-{
- "type": "Void"
-}
-```
-
-### Example
-
-```json
-{
- "type": "Void"
-}
-```
-
----
-
-## Optional
-
-```json
-{
- "type": "Optional",
- "value": null |
-}
-```
-
-### Example
-
-```json
-// Non-nil
-
-{
- "type": "Optional",
- "value": {
- "type": "UInt8",
- "value": "123"
- }
-}
-
-// Nil
-
-{
- "type": "Optional",
- "value": null
-}
-```
-
----
-
-## Bool
-
-```json
-{
- "type": "Bool",
- "value": true | false
-}
-```
-
-### Example
-
-```json
-{
- "type": "Bool",
- "value": true
-}
-```
-
----
-
-## String
-
-```json
-{
- "type": "String",
- "value": "..."
-}
-
-```
-
-### Example
-
-```json
-{
- "type": "String",
- "value": "Hello, world!"
-}
-```
-
----
-
-## Address
-
-```json
-{
- "type": "Address",
- "value": "0x0" // as hex-encoded string with 0x prefix
-}
-```
-
-### Example
-
-```json
-{
- "type": "Address",
- "value": "0x1234"
-}
-```
-
----
-
-## Integers
-
-`[U]Int`, `[U]Int8`, `[U]Int16`, `[U]Int32`,`[U]Int64`,`[U]Int128`, `[U]Int256`, `Word8`, `Word16`, `Word32`, or `Word64`
-
-Although JSON supports integer literals up to 64 bits, all integer types are encoded as strings for consistency.
-
-While the static type is not strictly required for decoding, it is provided to inform client of potential range.
-
-```json
-{
- "type": "",
- "value": ""
-}
-```
-
-### Example
-
-```json
-{
- "type": "UInt8",
- "value": "123"
-}
-```
-
----
-
-## Fixed Point Numbers
-
-`[U]Fix64`
-
-Although fixed point numbers are implemented as integers, JSON-Cadence uses a decimal string representation for readability.
-
-```json
-{
- "type": "[U]Fix64",
- "value": "."
-}
-```
-
-### Example
-
-```json
-{
- "type": "Fix64",
- "value": "12.3"
-}
-```
-
----
-
-## Array
-
-```json
-{
- "type": "Array",
- "value": [
- ,
-
- // ...
- ]
-}
-```
-
-### Example
-
-```json
-{
- "type": "Array",
- "value": [
- {
- "type": "Int16",
- "value": "123"
- },
- {
- "type": "String",
- "value": "test"
- },
- {
- "type": "Bool",
- "value": true
- }
- ]
-}
-```
-
----
-
-## Dictionary
-
-Dictionaries are encoded as a list of key-value pairs to preserve the deterministic ordering implemented by Cadence.
-
-```json
-{
- "type": "Dictionary",
- "value": [
- {
- "key": "",
- "value":
- },
- ...
- ]
-}
-```
-
-### Example
-
-```json
-{
- "type": "Dictionary",
- "value": [
- {
- "key": {
- "type": "UInt8",
- "value": "123"
- },
- "value": {
- "type": "String",
- "value": "test"
- }
- }
- ],
- // ...
-}
-```
-
----
-
-## Composites (Struct, Resource, Event, Contract, Enum)
-
-Composite fields are encoded as a list of name-value pairs in the order in which they appear in the composite type declaration.
-
-```json
-{
- "type": "Struct" | "Resource" | "Event" | "Contract" | "Enum",
- "value": {
- "id": "",
- "fields": [
- {
- "name": "",
- "value":
- },
- // ...
- ]
- }
-}
-```
-
-### Example
-
-```json
-{
- "type": "Resource",
- "value": {
- "id": "0x3.GreatContract.GreatNFT",
- "fields": [
- {
- "name": "power",
- "value": {"type": "Int", "value": "1"}
- }
- ]
- }
-}
-```
-
----
-
-## Path
-
-```json
-{
- "type": "Path",
- "value": {
- "domain": "storage" | "private" | "public",
- "identifier": "..."
- }
-}
-```
-
-### Example
-
-```json
-{
- "type": "Path",
- "value": {
- "domain": "storage",
- "identifier": "flowTokenVault"
- }
-}
-```
-
----
-
-## Type Value
-
-```json
-{
- "type": "Type",
- "value": {
- "staticType":
- }
-}
-```
-
-### Example
-
-```json
-{
- "type": "Type",
- "value": {
- "staticType": {
- "kind": "Int",
- }
- }
-}
-```
-
----
-
-## Capability
-
-```json
-{
- "type": "Capability",
- "value": {
- "path": ,
- "address": "0x0", // as hex-encoded string with 0x prefix
- "borrowType": ,
- }
-}
-```
-
-### Example
-
-```json
-{
- "type": "Capability",
- "value": {
- "path": {
- "type": "Path",
- "value": {
- "domain": "public",
- "identifier": "someInteger"
- }
- },
- "address": "0x1",
- "borrowType": {
- "kind": "Int"
- }
- }
-}
-```
-
----
-
-## Functions
-
-```json
-{
- "type": "Function",
- "value": {
- "functionType":
- }
-}
-```
-
-Function values can only be exported, they cannot be imported.
-
-### Example
-
-```json
-{
- "type": "Function",
- "value": {
- "functionType": {
- "kind": "Function",
- "typeID": "fun():Void",
- "parameters": [],
- "return": {
- "kind": "Void"
- }
- }
- }
-}
-```
-
----
-
-# Types
-
-## Simple Types
-
-These are basic types like `Int`, `String`, or `StoragePath`.
-
-```json
-{
- "kind": "Any" | "AnyStruct" | "AnyResource" | "AnyStructAttachment" | "AnyResourceAttachment" | "Type" |
- "Void" | "Never" | "Bool" | "String" | "Character" |
- "Bytes" | "Address" | "Number" | "SignedNumber" |
- "Integer" | "SignedInteger" | "FixedPoint" |
- "SignedFixedPoint" | "Int" | "Int8" | "Int16" |
- "Int32" | "Int64" | "Int128" | "Int256" | "UInt" |
- "UInt8" | "UInt16" | "UInt32" | "UInt64" | "UInt128" |
- "UInt256" | "Word8" | "Word16" | "Word32" | "Word64" |
- "Fix64" | "UFix64" | "Path" | "CapabilityPath" | "StoragePath" |
- "PublicPath" | "PrivatePath" | "AuthAccount" | "PublicAccount" |
- "AuthAccount.Keys" | "PublicAccount.Keys" | "AuthAccount.Contracts" |
- "PublicAccount.Contracts" | "DeployedContract" | "AccountKey" | "Block"
-}
-```
-
-### Example
-
-```json
-{
- "kind": "UInt8"
-}
-```
-
----
-
-## Optional Types
-
-```json
-{
- "kind": "Optional",
- "type":
-}
-```
-
-### Example
-
-```json
-{
- "kind": "Optional",
- "type": {
- "kind": "String"
- }
-}
-```
-
----
-
-## Variable Sized Array Types
-
-```json
-{
- "kind": "VariableSizedArray",
- "type":
-}
-```
-
-### Example
-
-```json
-{
- "kind": "VariableSizedArray",
- "type": {
- "kind": "String"
- }
-}
-```
-
----
-
-## Constant Sized Array Types
-
-```json
-{
- "kind": "ConstantSizedArray",
- "type": ,
- "size": ,
-}
-```
-
-### Example
-
-```json
-{
- "kind": "ConstantSizedArray",
- "type": {
- "kind": "String"
- },
- "size":3
-}
-```
-
----
-
-## Dictionary Types
-
-```json
-{
- "kind": "Dictionary",
- "key": ,
- "value":
-}
-```
-
-### Example
-
-```json
-{
- "kind": "Dictionary",
- "key": {
- "kind": "String"
- },
- "value": {
- "kind": "UInt16"
- },
-}
-```
-
----
-
-## Composite Types
-
-```json
-{
- "kind": "Struct" | "Resource" | "Event" | "Contract" | "StructInterface" | "ResourceInterface" | "ContractInterface",
- "type": "", // this field exists only to keep parity with the enum structure below; the value must be the empty string
- "typeID": "",
- "initializers": [
- ,
-
- // ...
- ],
- "fields": [
- ,
-
- // ...
- ],
-}
-```
-
-### Example
-
-```json
-{
- "kind": "Resource",
- "type": "",
- "typeID": "0x3.GreatContract.GreatNFT",
- "initializers":[
- [
- {
- "label": "foo",
- "id": "bar",
- "type": {
- "kind": "String"
- }
- }
- ]
- ],
- "fields": [
- {
- "id": "foo",
- "type": {
- "kind": "String"
- }
- }
- ]
-}
-```
-
----
-
-## Field Types
-
-```json
-{
- "id": "",
- "type":
-}
-```
-
-### Example
-
-```json
-{
- "id": "foo",
- "type": {
- "kind": "String"
- }
-}
-```
-
----
-
-## Parameter Types
-
-```json
-{
- "label": "