diff --git a/docs/cadence/language/imports.mdx b/docs/cadence/language/imports.mdx index fc8e9183cc..357e231b56 100644 --- a/docs/cadence/language/imports.mdx +++ b/docs/cadence/language/imports.mdx @@ -12,7 +12,7 @@ or it can be followed by the names of the declarations that should be imported, followed by the `from` keyword, and then followed by the location. If importing a local file, the location is a string literal, and the path to the file. -Deployment of code with file imports requires the usage for the [Flow CLI](../../tooling/flow-cli/). +Deployment of code with file imports requires the usage for the [Flow CLI](../../tools/toolchains/flow-cli/). If importing an external type in a different account, the location is an address literal, and the address diff --git a/docs/cadence/testing-framework.mdx b/docs/cadence/testing-framework.mdx index 8aa4bdcf4b..a15957ff66 100644 --- a/docs/cadence/testing-framework.mdx +++ b/docs/cadence/testing-framework.mdx @@ -7,7 +7,7 @@ The Cadence testing framework provides a convenient way to write tests for Caden This functionality is provided by the built-in `Test` contract. -The testing framework can only be used off-chain, e.g. by using the [Flow CLI](../tooling/flow-cli). +The testing framework can only be used off-chain, e.g. by using the [Flow CLI](../tools/toolchains/flow-cli). Tests must be written in the form of a Cadence script. @@ -269,7 +269,7 @@ access(all) struct interface BlockchainBackend { ### Creating a blockchain A new blockchain instance can be created using the `newEmulatorBlockchain` method. -It returns a `Blockchain` which is backed by a new [Flow Emulator](../tooling/emulator) instance. +It returns a `Blockchain` which is backed by a new [Flow Emulator](../tools/toolchains/emulator) instance. ```cadence let blockchain = Test.newEmulatorBlockchain() @@ -423,7 +423,7 @@ An `Error` is returned if the contract deployment fails. Otherwise, a `nil` is r ### Configuring import addresses A common pattern in Cadence projects is to define the imports as file locations and specify the addresses -corresponding to each network in the [Flow CLI configuration file](../tooling/flow-cli/flow.json/configuration.md#contracts). +corresponding to each network in the [Flow CLI configuration file](../tools/toolchains/flow-cli/flow.json/configuration.md#contracts). When writing tests for such a project, it may also require to specify the addresses to be used during the tests as well. However, during tests, since accounts are created dynamically and the addresses are also generated dynamically, specifying the addresses statically in a configuration file is not an option. @@ -448,7 +448,7 @@ access(all) struct Configuration { The `Blockchain.useConfiguration` is a run-time alternative for -[statically defining contract addresses in the flow.json config file](../tooling/flow-cli/flow.json/configuration.md#advanced-format). +[statically defining contract addresses in the flow.json config file](../tools/toolchains/flow-cli/flow.json/configuration.md#advanced-format). The configurations can be specified during the test setup as a best-practice. diff --git a/docs/concepts/hybrid-custody/get-started.mdx b/docs/concepts/hybrid-custody/get-started.mdx index f804dc7ee6..69bb122eeb 100644 --- a/docs/concepts/hybrid-custody/get-started.mdx +++ b/docs/concepts/hybrid-custody/get-started.mdx @@ -23,7 +23,7 @@ contributing? [Check out the source!](https://github.com/onflow/hybrid-custody). In either case, you'll want to do the following to get started implementing Hybrid Custody in your application: -1. [Install Flow CLI](https://developers.flow.com/tooling/flow-cli/install) +1. [Install Flow CLI](https://developers.flow.com/tools/toolchains/flow-cli/install) 1. Create a project from the [Hybrid Custody scaffold](https://github.com/onflow/hybrid-custody-scaffold): ```sh diff --git a/docs/concepts/mobile/monster-maker.md b/docs/concepts/mobile/monster-maker.md index 97c2eabaed..d7602bf567 100644 --- a/docs/concepts/mobile/monster-maker.md +++ b/docs/concepts/mobile/monster-maker.md @@ -248,7 +248,7 @@ https://github.com/Outblock/fcl-android One of the easiest ways to connect to a wallet via a mobile native dApp is through Flow’s new support for Wallet Connect 2.0. This is the pattern that Monster Maker uses to connect to the Dapper Self Custody wallet and Lilico. For more information on FCL Wallet Connect 2.0, check out this page: -[FCL Wallet Connect](../../tooling/fcl-js/wallet-connect.mdx) +[FCL Wallet Connect](../../tools/clients/fcl-js/wallet-connect.mdx) **How to Build a Native iOS Dapp** diff --git a/docs/concepts/mobile/react-native-quickstart.mdx b/docs/concepts/mobile/react-native-quickstart.mdx index 1d9f1ccbb3..d4a5292663 100644 --- a/docs/concepts/mobile/react-native-quickstart.mdx +++ b/docs/concepts/mobile/react-native-quickstart.mdx @@ -68,11 +68,11 @@ config({ - The `accessNode.api` key specifies the address of a Flow access node. Flow provides these, but in the future access to Flow may be provided by other 3rd parties, through their own access nodes. - `discovery.wallet` and `discovery.authn.endpoint` are addresses that point to a service that lists FCL compatible wallets. Flow's FCL Discovery service is a service that FCL wallet providers can be added to, and be made 'discoverable' to any application that uses the `discovery.wallet` and `discovery.authn.endpoint`. -> Learn more about [configuring Discovery](../../tooling/fcl-js/discovery.mdx) or [setting configuration values](../../tooling/fcl-js/api.md#setting-configuration-values). +> Learn more about [configuring Discovery](../../tools/clients/fcl-js/discovery.mdx) or [setting configuration values](../../tools/clients/fcl-js/api.md#setting-configuration-values). > If you are running a Wallet Discovery locally and want to use it in the React Native app, change `https://fcl-discovery.onflow.org/` to `http://:/` > For Example: -> using local [Wallet Discovery](../../tooling/fcl-js/discovery.mdx) and local [Dev Wallet](../../tooling/fcl-dev-wallet/overview.md): +> using local [Wallet Discovery](../../tools/clients/fcl-js/discovery.mdx) and local [Dev Wallet](../../tools/toolchains/fcl-dev-wallet/index.md): > > ```javascript ./flow/config.js > import { config } from "@onflow/fcl"; @@ -121,7 +121,7 @@ Now we're ready to start talking to Flow! To authenticate a user, you'll need to render a `ServiceDiscovery` component provided by `fcl-react-native`. Alternatively you can build your own component using `useServiceDiscovery`. -Unauthenticate is as simple as calling `fcl.unauthenticate()`. Once authenticated, FCL sets an object called `fcl.currentUser` which exposes methods for watching changes in user data, signing transactions, and more. For more information on the `currentUser`, read more [here](../../tooling/fcl-js/api.md#current-user). +Unauthenticate is as simple as calling `fcl.unauthenticate()`. Once authenticated, FCL sets an object called `fcl.currentUser` which exposes methods for watching changes in user data, signing transactions, and more. For more information on the `currentUser`, read more [here](../../tools/clients/fcl-js/api.md#current-user). Let's add in a few components and buttons buttons for sign up/login and also subscribe to changes on the `currentUser`. When the user is updated (which it will be after authentication), we'll set the user state in our component to reflect this. To demonstrate user authenticated sessions, we'll conditionally render a component based on if the user is or is not logged in. @@ -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.mdx). -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](../../tooling/fcl-js/api.md#ftype). +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). Go ahead and click the "Send Query" button. You should see "No Profile." That's because we haven't initialized the account yet. @@ -604,7 +604,7 @@ const styles = StyleSheet.create({ ``` -Now if you click the "Execute Transaction" button you'll see the statuses update next to "Transaction Status." When you see "4" that means it's sealed! Status code meanings [can be found here](../../tooling/fcl-js/api.md#transaction-statuses). +Now if you click the "Execute Transaction" button you'll see the statuses update next to "Transaction Status." When you see "4" that means it's sealed! Status code meanings [can be found here](../../tools/clients/fcl-js/api.md#transaction-statuses). If you query the account profile again, "Profile Name:" should now display "Flow Developer". 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: @@ -619,11 +619,11 @@ That's it! You now have a shippable Flow dapp that can auth, query, init account - [Advanced Example: Kitty Items](https://github.com/onflow/kitty-items) **More FCL** -- [FCL API Quick Reference](../../tooling/fcl-js/api) -- [More on Scripts](../../tooling/fcl-js/scripts.mdx) -- [More on Transactions](../../tooling/fcl-js/transactions.mdx) -- [User Signatures](../../tooling/fcl-js/user-signatures.mdx) -- [Proving Account Ownership](../../tooling/fcl-js/proving-authentication.mdx) +- [FCL API Quick Reference](../../tools/clients/fcl-js/api) +- [More on Scripts](../../tools/clients/fcl-js/scripts.mdx) +- [More on Transactions](../../tools/clients/fcl-js/transactions.mdx) +- [User Signatures](../../tools/clients/fcl-js/user-signatures.mdx) +- [Proving Account Ownership](../../tools/clients/fcl-js/proving-authentication.mdx) **Other** - [Flow Developer Onboarding Guide](../../tutorials/intro.md) diff --git a/docs/concepts/nodes/faq/backers.mdx b/docs/concepts/nodes/faq/backers.mdx index be13b09da9..8584e299ca 100644 --- a/docs/concepts/nodes/faq/backers.mdx +++ b/docs/concepts/nodes/faq/backers.mdx @@ -29,4 +29,4 @@ Details: [concepts/accounts-and-keys](../../start-here/accounts-and-keys.md) ## How do I create a Flow account if I do not have a service account? -Instructions to generate an address are here: [flow-go-sdk/creating-accounts](../../../tooling/flow-go-sdk/index.mdx#create-accounts). You don't need a service account. +Instructions to generate an address are here: [flow-go-sdk/creating-accounts](../../../tools/clients/flow-go-sdk/index.mdx#create-accounts). You don't need a service account. diff --git a/docs/concepts/nodes/faq/developers.mdx b/docs/concepts/nodes/faq/developers.mdx index 06cdc99cb1..81c9bdb8e8 100644 --- a/docs/concepts/nodes/faq/developers.mdx +++ b/docs/concepts/nodes/faq/developers.mdx @@ -216,7 +216,7 @@ Flow doesn't yet provide functionality to inspect all of the resources on an acc ## How do I create a Flow account if I do not have a service account? -Instructions to generate an address are here: [flow-go-sdk#create-accounts](../../../tooling/flow-go-sdk/index.mdx#create-accounts). You don't need a service account. +Instructions to generate an address are here: [flow-go-sdk#create-accounts](../../../tools/clients/flow-go-sdk/index.mdx#create-accounts). You don't need a service account. ## Is there a tutorial about how to access flow testnet? From scratch, getting testnet, Flow token etc..? diff --git a/docs/concepts/nodes/faq/operators.mdx b/docs/concepts/nodes/faq/operators.mdx index 289d7bfe04..62e6930535 100644 --- a/docs/concepts/nodes/faq/operators.mdx +++ b/docs/concepts/nodes/faq/operators.mdx @@ -184,7 +184,7 @@ Details: [concepts/accounts-and-keys](../../start-here/accounts-and-keys.md) ## How do I create a Flow account if I do not have a service account? -Instructions to generate an address are here: [flow-go-sdk#create-accounts](../../../tooling/flow-go-sdk/index.mdx#create-accounts). You don't need a service account. +Instructions to generate an address are here: [flow-go-sdk#create-accounts](../../../tools/clients/flow-go-sdk/index.mdx#create-accounts). You don't need a service account. ## Can you query events between a block range? diff --git a/docs/concepts/nodes/node-operation/node-bootstrap.mdx b/docs/concepts/nodes/node-operation/node-bootstrap.mdx index c4f0afac6a..39e5e89cc1 100644 --- a/docs/concepts/nodes/node-operation/node-bootstrap.mdx +++ b/docs/concepts/nodes/node-operation/node-bootstrap.mdx @@ -291,7 +291,7 @@ Once the node has bootstrapped, these flags may be removed. ### Manually Provisioned Root Snapshot You can also provision the root snapshot file manually, then start the node without configuring Dynamic Startup. -A snapshot can be obtained from any Access Node using [Flow CLI](../../../tooling/flow-cli/). +A snapshot can be obtained from any Access Node using [Flow CLI](../../../tools/toolchains/flow-cli/). ```shell RetrieveRootSnapshot flow snapshot save /path/to/root/snapshot --network mainnet ``` diff --git a/docs/concepts/nodes/node-operation/observer-node.mdx b/docs/concepts/nodes/node-operation/observer-node.mdx index d51f5d1d61..ed036d0fdc 100644 --- a/docs/concepts/nodes/node-operation/observer-node.mdx +++ b/docs/concepts/nodes/node-operation/observer-node.mdx @@ -114,7 +114,7 @@ Primary key fingerprint: 7D23 8D1A E6D3 2A71 8ECD 8611 CB52 64F7 FD4C DD27 Subkey fingerprint: 40CD 9571 7AC4 63E6 1EE3 B285 B718 CA31 0EDB 542F ``` -Alternately, if you don't care about the blocks before the current block, you can request the current root-snapshot file via the [Flow CLI](../../../tooling/flow-cli). +Alternately, if you don't care about the blocks before the current block, you can request the current root-snapshot file via the [Flow CLI](../../../tools/toolchains/flow-cli). For mainnet ```shell diff --git a/docs/concepts/staking/08-staking-rewards.md b/docs/concepts/staking/08-staking-rewards.md index 4d6a63ca39..2edcabed73 100644 --- a/docs/concepts/staking/08-staking-rewards.md +++ b/docs/concepts/staking/08-staking-rewards.md @@ -10,7 +10,7 @@ Every week, the Flow governance committee executes the reward payout transaction When the transaction executes, it generates events for the rewards paid to each node and delegator. To check the staking and delegation rewards, that transaction should be queried. -Example using [Flow cli](../../tooling/flow-cli/index.md) +Example using [Flow cli](../../tools/toolchains/flow-cli/index.md) ``` $ flow transactions get 84eca4ff612ef70047d60510710cca872c8a17c1bd9f63686e74852b6382cc84 -n mainnet @@ -78,7 +78,7 @@ Events: ``` -Example using [Flow Go SDK](../../tooling/flow-go-sdk/index.mdx) +Example using [Flow Go SDK](../../tools/clients/flow-go-sdk/index.mdx) ``` package main @@ -198,7 +198,7 @@ Events Block #51753836: - amount (UFix64): 17.31047712 ``` -Example using [Flow Go SDK](../../tooling/flow-go-sdk/index.mdx) +Example using [Flow Go SDK](../../tools/clients/flow-go-sdk/index.mdx) ``` package main diff --git a/docs/concepts/staking/index.md b/docs/concepts/staking/index.md index b1ea28f744..921e524c21 100644 --- a/docs/concepts/staking/index.md +++ b/docs/concepts/staking/index.md @@ -135,7 +135,7 @@ You are joining a group of people from all around the world that are a part of a [Flow Port](https://port.onflow.org/) is a simple browser-based app for the Flow blockchain that provides functionality for sending, receiving, and staking tokens. -Any wallet that uses the [Flow Client Library](../../tooling/fcl-js/index.md) +Any wallet that uses the [Flow Client Library](../../tools/clients/fcl-js/index.md) is compatible with Flow Port. If you created your account using [Flow Port](https://port.onflow.org/), diff --git a/docs/concepts/start-here/variable-transaction-fees.md b/docs/concepts/start-here/variable-transaction-fees.md index 6c8707e4e3..8271bcf138 100644 --- a/docs/concepts/start-here/variable-transaction-fees.md +++ b/docs/concepts/start-here/variable-transaction-fees.md @@ -91,7 +91,7 @@ Execution effort is best determined by running a transaction and reviewing the e **Using Flow Emulator** -You can [start the emulator using the Flow CLI](../../tooling/emulator/index.md#running-the-emulator-with-the-flow-cli). Run your transaction and take a look at the events emitted: +You can [start the emulator using the Flow CLI](../../tools/toolchains/emulator/index.md#running-the-emulator-with-the-flow-cli). Run your transaction and take a look at the events emitted: ```shell 0|emulator | time="2022-04-06T17:13:22-07:00" level=info msg="⭐ Transaction executed" computationUsed=3 txID=a782c2210c0c1f2a6637b20604d37353346bd5389005e4bff6ec7bcf507fac06 diff --git a/docs/concepts/token-standards/flow-nft/index.md b/docs/concepts/token-standards/flow-nft/index.md index f5a1aee12d..38b8df78ad 100644 --- a/docs/concepts/token-standards/flow-nft/index.md +++ b/docs/concepts/token-standards/flow-nft/index.md @@ -302,7 +302,7 @@ but without most of the downsides. If you want to test out these contracts, we recommend either testing them with the [Flow Playground](https://play.onflow.org) -or with the [Visual Studio Code Extension](../../../tooling/vscode-extension/index.mdx). +or with the [Visual Studio Code Extension](../../../tools/toolchains/vscode-extension/index.mdx). The steps to follow are: diff --git a/docs/tooling/_category_.json b/docs/tooling/_category_.json deleted file mode 100644 index df3aa2a445..0000000000 --- a/docs/tooling/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Tooling", - "position": 4 - } \ No newline at end of file diff --git a/docs/tooling/flow-js-testing/README.md b/docs/tooling/flow-js-testing/README.md deleted file mode 100644 index 7fc4630e0f..0000000000 --- a/docs/tooling/flow-js-testing/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# Flow Javascript Testing Framework Documentation - -This directory contains the source files for the Flow Javascript Testing Framework documentation. -Read the full version on the [Flow documentation website](./index.md). diff --git a/docs/tooling/intro.md b/docs/tooling/intro.md deleted file mode 100644 index 8a5e03907c..0000000000 --- a/docs/tooling/intro.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Overview - -In this section, you'll find: - - - Flow CLI, Emulator, FCL and Playground for testing, debugging, deploying and managing smart contracts, and interacting with the Flow blockchain. - - APIs for accessing the Flow blockchain, including the Flow Access API, Flow Cadence API, and Flow Go SDK - -Whether you're a seasoned blockchain developer or new to the space, the Flow Blockchain Developer Tooling & APIs section has everything you need to start building decentralized applications on the Flow blockchain. \ No newline at end of file diff --git a/docs/tools/_category_.yml b/docs/tools/_category_.yml new file mode 100644 index 0000000000..03269b0e27 --- /dev/null +++ b/docs/tools/_category_.yml @@ -0,0 +1,2 @@ +label: Tools +position: 4 diff --git a/docs/tools/block-explorers.md b/docs/tools/block-explorers.md new file mode 100644 index 0000000000..2ed1cf20f9 --- /dev/null +++ b/docs/tools/block-explorers.md @@ -0,0 +1,52 @@ +--- +sidebar_position: 2 +description: | + User-friendly online tools that visually present blockchain data, allowing users to easily navigate transactions, blocks, addresses, and smart contracts while providing real-time insights and transparency. + - Flow Diver + - FLow View + - ContractBrowser +--- + +# Block Explorers + +## Flow Diver + +[Flow Diver](https://www.flowdiver.io/) provides tools to explore the blockchain: +- blocks +- transactions +- contracts + +it also provides network(mainnet) analytics: +- network activity (transactions number) +- transaction cost (gas fee) +- validators information + +# Account Explorer + +## Flow View + +Flow View provides tools to view accounts information. + +- address, balance, storage +- public keys and their weight +- staking info +- tokens, collections, and listings +- deployed smart contracts + +### Supported networks: +- mainnet https://www.flowview.app/ +- testnet https://testnet.flowview.app/ +- emulator (local) https://emulator.flowview.app/ + +# Contract Explorer + +## ContractBrowser + +A ContractBrowser is available for [Flow](https://contractbrowser.com/). + +ContractBrowser provides tools to view deployed smart contracts and their dependencies and dependents. + +- Search, view and verify smart contract source code. +- View detailed smart contract information + +A testnet ContractBrowser for [Testnet Flow](https://testnet.contractbrowser.com/) is also available. diff --git a/docs/tools/bridges.md b/docs/tools/bridges.md new file mode 100644 index 0000000000..100c54b3c2 --- /dev/null +++ b/docs/tools/bridges.md @@ -0,0 +1,10 @@ +--- +sidebar_position: 3 +description: Mechanisms that connect different blockchain networks, allowing secure and decentralized transfer of assets and data across platforms. +--- + +# Bridges + +## Celler + +[Celer cBridge](https://cbridge.celer.network/) is a decentralized and non-custodial asset bridge that supports 150+ tokens across 40+ blockchains and layer-2 rollups. Built on top of the [Celer](https://celer.network/) Inter-chain Message Framework, cBridge has processed ~$13B cross-chain asset transfer volume on 40+ blockchains for more than 350K unique users, and is quickly growing and expanding into more blockchains and layer-2s. \ No newline at end of file diff --git a/docs/tools/clients/_category_.yml b/docs/tools/clients/_category_.yml new file mode 100644 index 0000000000..46e07305ec --- /dev/null +++ b/docs/tools/clients/_category_.yml @@ -0,0 +1,4 @@ +position: 8 +customProps: + description: Diverse programming tools to facilitate seamless interaction with the Flow blockchain network across multiple languages and platforms. + \ No newline at end of file diff --git a/docs/tooling/fcl-js/api.md b/docs/tools/clients/fcl-js/api.md similarity index 98% rename from docs/tooling/fcl-js/api.md rename to docs/tools/clients/fcl-js/api.md index 2f0a934595..c075617217 100644 --- a/docs/tooling/fcl-js/api.md +++ b/docs/tools/clients/fcl-js/api.md @@ -370,7 +370,7 @@ import "HelloWorld" FCL will automatically replace the contract name with the address for the network you are using. -> Note: never put private keys in your `flow.json`. You should use the [key/location syntax](../flow-cli/flow.json/security.md) to separate your keys into a separate git ignored file. +> Note: never put private keys in your `flow.json`. You should use the [key/location syntax](../../toolchains/flow-cli/flow.json/security.md) to separate your keys into a separate git ignored file. --- @@ -503,7 +503,7 @@ A **convenience method** that produces the needed authorization details for the #### Usage -**Note:** The default values for `proposer`, `payer`, and `authorizations` are already `fcl.authz` so there is no need to include these parameters, it is shown only for example purposes. See more on [signing roles](../../concepts/start-here/accounts-and-keys.md#signing-a-transaction). +**Note:** The default values for `proposer`, `payer`, and `authorizations` are already `fcl.authz` so there is no need to include these parameters, it is shown only for example purposes. See more on [signing roles](../../../concepts/start-here/accounts-and-keys.md#signing-a-transaction). ```javascript import * as fcl from "@onflow/fcl"; @@ -658,7 +658,7 @@ export const signMessage = async () => { Discovery abstracts away code so that developers don't have to deal with the discovery of Flow compatible wallets, integration, or authentication. Using `discovery` from FCL allows dapps to list and authenticate with wallets while having full control over the UI. Common use cases for this are login or registration pages. -(Alternatively, if you don't need control over your UI you can continue to use the `discovery.wallet` config value documented in the [Quickstart](../../tutorials/flow-app-quickstart.mdx) for the simplest configuration.) +(Alternatively, if you don't need control over your UI you can continue to use the `discovery.wallet` config value documented in the [Quickstart](../../../tutorials/flow-app-quickstart.mdx) for the simplest configuration.) > ⚠️**The following methods can only be used in web browsers.** @@ -742,7 +742,7 @@ The callback sent to `subscribe` will be called with a list of `authn` services. > πŸ“£ **These methods can be used in browsers and NodeJS.** -These methods allows dapps to interact directly with the Flow blockchain via a set of functions that currently use the [Access Node API](../../concepts//nodes/access-api.mdx). +These methods allows dapps to interact directly with the Flow blockchain via a set of functions that currently use the [Access Node API](../../../concepts//nodes/access-api.mdx). ### Methods @@ -764,7 +764,7 @@ _Pass in the following as a single object with the following keys.All keys are o | --------- | ------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `cadence` | string **(required)** | A valid cadence script. | | `args` | [ArgumentFunction](#argumentfunction) | Any arguments to the script if needed should be supplied via a function that returns an array of arguments. | -| `limit` | number | Compute (Gas) limit for query. Read the [documentation about computation cost](../../concepts/start-here/variable-transaction-fees.md) for information about how computation cost is calculated on Flow. | +| `limit` | number | Compute (Gas) limit for query. Read the [documentation about computation cost](../../../concepts/start-here/variable-transaction-fees.md) for information about how computation cost is calculated on Flow. | #### Returns @@ -1967,11 +1967,11 @@ const signingFunction = ({ | Key | Value Type | Description | | -------------------- | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `args` | object | A list of encoded Cadence values passed into this transaction. These have not been decoded by the JS-SDK. | -| `authorizers` | [\[Address\]](#address) | A list of the accounts that are authorizing this transaction to mutate to their on-chain account state. [See more here](../../concepts/start-here/transaction-signing.md#signer-roles). | -| `envelopeSignatures` | [\[SignableObject\]](#signableobject) | A list of signatures generated by the payer role. [See more here](../../concepts/start-here/transaction-signing.md#anatomy-of-a-transaction). | -| `gasLimit` | number | The maximum number of computational units that can be used to execute this transaction. [See more here](../../concepts/start-here/variable-transaction-fees.md). | -| `payer` | [Address](#address) | The account that pays the fee for this transaction. [See more here](../../concepts/start-here/transaction-signing.md#signer-roles). | -| `payloadSignatures` | [\[SignableObject\]](#signableobject) | A list of signatures generated by the proposer and authorizer roles. [See more here](../../concepts/start-here/transaction-signing.md#anatomy-of-a-transaction). | +| `authorizers` | [\[Address\]](#address) | A list of the accounts that are authorizing this transaction to mutate to their on-chain account state. [See more here](../../../concepts/start-here/transaction-signing.md#signer-roles). | +| `envelopeSignatures` | [\[SignableObject\]](#signableobject) | A list of signatures generated by the payer role. [See more here](../../../concepts/start-here/transaction-signing.md#anatomy-of-a-transaction). | +| `gasLimit` | number | The maximum number of computational units that can be used to execute this transaction. [See more here](../../../concepts/start-here/variable-transaction-fees.md). | +| `payer` | [Address](#address) | The account that pays the fee for this transaction. [See more here](../../../concepts/start-here/transaction-signing.md#signer-roles). | +| `payloadSignatures` | [\[SignableObject\]](#signableobject) | A list of signatures generated by the proposer and authorizer roles. [See more here](../../../concepts/start-here/transaction-signing.md#anatomy-of-a-transaction). | | `proposalKey` | [\[ProposalKey\]](#proposalkeyobject) | The account key used to propose this transaction | | `referenceBlockId` | string | A reference to the block used to calculate the expiry of this transaction. | | `script` | string | The UTF-8 encoded Cadence source code that defines the execution logic for this transaction | @@ -1984,7 +1984,7 @@ const signingFunction = ({ | authorizer | boolean | A Boolean representing if this signature to be produced for an authorizer. | | payer | boolean | A Boolean representing if this signature to be produced for a payer. | -For more on what each transaction role means, see [singing roles](../../concepts/start-here/transaction-signing.md#signer-roles). +For more on what each transaction role means, see [singing roles](../../../concepts/start-here/transaction-signing.md#signer-roles). ### `TransactionStatusObject` @@ -2029,7 +2029,7 @@ ProposalKey is the account key used to propose this transaction. A proposal key references a specific key on an account, along with an up-to-date sequence number for that key. This sequence number is used to prevent replay attacks. -You can find more information about sequence numbers [here](../../concepts/start-here/transaction-signing.md#sequence-numbers) +You can find more information about sequence numbers [here](../../../concepts/start-here/transaction-signing.md#sequence-numbers) Key | Value Type | Description | | ---------------- | ---------- | ---------------------------------------------------------------------------------------- | diff --git a/docs/tooling/fcl-js/authentication.mdx b/docs/tools/clients/fcl-js/authentication.mdx similarity index 95% rename from docs/tooling/fcl-js/authentication.mdx rename to docs/tools/clients/fcl-js/authentication.mdx index 5cd7ad893e..70aa120e0c 100644 --- a/docs/tooling/fcl-js/authentication.mdx +++ b/docs/tools/clients/fcl-js/authentication.mdx @@ -42,6 +42,6 @@ The TL;DR is to call `fcl.authenticate()` and `fcl.unauthenticate()` respectivel On Flow mainnet, you wont even need to configure anything for this to work, the users of your dapp will go through the authentication process and be able to use any FCL compatible wallet providers. During development you will probably want to configure your dapp to use [`@onflow/dev-wallet`](https://github.com/onflow/fcl-dev-wallet). -The [Quick Start](../../tutorials/flow-app-quickstart.mdx) guide will walk you through using it. +The [Quick Start](../../../tutorials/flow-app-quickstart.mdx) guide will walk you through using it. We know this can all be fairly overwhelming, we are commited to help though. If you run into any problems, reach out to us on [Discord](https://discord.gg/k6cZ7QC), we are more than happy to help out. diff --git a/docs/tooling/fcl-js/configure-fcl.mdx b/docs/tools/clients/fcl-js/configure-fcl.mdx similarity index 97% rename from docs/tooling/fcl-js/configure-fcl.mdx rename to docs/tools/clients/fcl-js/configure-fcl.mdx index 5aa30f0a79..53465d0200 100644 --- a/docs/tooling/fcl-js/configure-fcl.mdx +++ b/docs/tools/clients/fcl-js/configure-fcl.mdx @@ -138,4 +138,4 @@ import "HelloWorld" FCL will automatically replace the contract name with the address for the network you are using. -> Note: never put private keys in your `flow.json`. You should use the [key/location syntax](../flow-cli/flow.json/security.md) to separate your keys into a separate git ignored file. \ No newline at end of file +> Note: never put private keys in your `flow.json`. You should use the [key/location syntax](../../toolchains/flow-cli/flow.json/security.md) to separate your keys into a separate git ignored file. \ No newline at end of file diff --git a/docs/tooling/fcl-js/discovery.mdx b/docs/tools/clients/fcl-js/discovery.mdx similarity index 100% rename from docs/tooling/fcl-js/discovery.mdx rename to docs/tools/clients/fcl-js/discovery.mdx diff --git a/docs/tooling/fcl-js/images/discovery.png b/docs/tools/clients/fcl-js/images/discovery.png similarity index 100% rename from docs/tooling/fcl-js/images/discovery.png rename to docs/tools/clients/fcl-js/images/discovery.png diff --git a/docs/tooling/fcl-js/images/wc-discovery.png b/docs/tools/clients/fcl-js/images/wc-discovery.png similarity index 100% rename from docs/tooling/fcl-js/images/wc-discovery.png rename to docs/tools/clients/fcl-js/images/wc-discovery.png diff --git a/docs/tooling/fcl-js/index.md b/docs/tools/clients/fcl-js/index.md similarity index 98% rename from docs/tooling/fcl-js/index.md rename to docs/tools/clients/fcl-js/index.md index 3d9fbc8e40..b5e613053b 100644 --- a/docs/tooling/fcl-js/index.md +++ b/docs/tools/clients/fcl-js/index.md @@ -114,11 +114,11 @@ const txId = await fcl.mutate({ ## Next Steps -See the [Flow App Quick Start](../../tutorials/flow-app-quickstart.mdx). +See the [Flow App Quick Start](../../../tutorials/flow-app-quickstart.mdx). See the full [API Reference](./api.md) for all FCL functionality. -Learn Flow's smart contract language to build any script or transactions: [Cadence](../../cadence/intro.md). +Learn Flow's smart contract language to build any script or transactions: [Cadence](../../../cadence/intro.md). Explore all of Flow [docs and tools](/). diff --git a/docs/tooling/fcl-js/index.mdx.txt b/docs/tools/clients/fcl-js/index.mdx.txt similarity index 99% rename from docs/tooling/fcl-js/index.mdx.txt rename to docs/tools/clients/fcl-js/index.mdx.txt index f7e8149a30..8483a9839b 100644 --- a/docs/tooling/fcl-js/index.mdx.txt +++ b/docs/tools/clients/fcl-js/index.mdx.txt @@ -132,7 +132,7 @@ See the [Flow App Quick Start](./tutorials/flow-app-quickstart.mdx). See the full [API Reference](./api.md) for all FCL functionality. -Learn Flow's smart contract language to build any script or transactions: [Cadence](../../cadence/intro.md). +Learn Flow's smart contract language to build any script or transactions: [Cadence](../../../cadence/intro.md). Explore all of Flow [docs and tools](/). diff --git a/docs/tooling/fcl-js/installation.mdx b/docs/tools/clients/fcl-js/installation.mdx similarity index 100% rename from docs/tooling/fcl-js/installation.mdx rename to docs/tools/clients/fcl-js/installation.mdx diff --git a/docs/tooling/fcl-js/interaction-templates.mdx b/docs/tools/clients/fcl-js/interaction-templates.mdx similarity index 100% rename from docs/tooling/fcl-js/interaction-templates.mdx rename to docs/tools/clients/fcl-js/interaction-templates.mdx diff --git a/docs/tooling/fcl-js/proving-authentication.mdx b/docs/tools/clients/fcl-js/proving-authentication.mdx similarity index 100% rename from docs/tooling/fcl-js/proving-authentication.mdx rename to docs/tools/clients/fcl-js/proving-authentication.mdx diff --git a/docs/tooling/fcl-js/scripts.mdx b/docs/tools/clients/fcl-js/scripts.mdx similarity index 95% rename from docs/tooling/fcl-js/scripts.mdx rename to docs/tools/clients/fcl-js/scripts.mdx index 062a58de40..ab712a186a 100644 --- a/docs/tooling/fcl-js/scripts.mdx +++ b/docs/tools/clients/fcl-js/scripts.mdx @@ -29,7 +29,7 @@ console.log(response) // 3 ### A more complicated Script -Things like [Resources](../../cadence/intro.md#resources) and [Structs](../../cadence/intro.md#structures) are fairly common place in Cadence. +Things like [Resources](../../../cadence/intro.md#resources) and [Structs](../../../cadence/intro.md#structures) are fairly common place in Cadence. In the following code snippet, our script defines a struct called `Point`, it then returns a list of them. diff --git a/docs/tooling/fcl-js/sdk-guidelines.mdx b/docs/tools/clients/fcl-js/sdk-guidelines.mdx similarity index 90% rename from docs/tooling/fcl-js/sdk-guidelines.mdx rename to docs/tools/clients/fcl-js/sdk-guidelines.mdx index d7e475af7d..4b57edcb53 100644 --- a/docs/tooling/fcl-js/sdk-guidelines.mdx +++ b/docs/tools/clients/fcl-js/sdk-guidelines.mdx @@ -52,7 +52,7 @@ config({ }) ``` -πŸ“– **gRPC Access API URLs** can be found [here](../../concepts/nodes/access-api.mdx#flow-access-node-endpoints). `sdk.transport` must be specified if you wish to use the gRPC API. The public Flow gRPC access nodes are accessible at: +πŸ“– **gRPC Access API URLs** can be found [here](../../../concepts/nodes/access-api.mdx#flow-access-node-endpoints). `sdk.transport` must be specified if you wish to use the gRPC API. The public Flow gRPC access nodes are accessible at: - Testnet `https://access-testnet.onflow.org` - Mainnet `https://access-mainnet.onflow.org` - Local Emulator `127.0.0.1:3569` @@ -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](../../../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). πŸ“– **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](../../../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. 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. @@ -279,7 +279,7 @@ Transaction data is composed and signed with help of the SDK. The signed payload ## Transactions A transaction is nothing more than a signed set of data that includes script code which are instructions on how to mutate the network state and properties that define and limit it's execution. All these properties are explained bellow. -πŸ“– **Script** field is the portion of the transaction that describes the state mutation logic. On Flow, transaction logic is written in [Cadence](../../cadence/intro.md). Here is an example transaction script: +πŸ“– **Script** field is the portion of the transaction that describes the state mutation logic. On Flow, transaction logic is written in [Cadence](../../../cadence/intro.md). Here is an example transaction script: ``` transaction(greeting: String) { execute { @@ -290,7 +290,7 @@ transaction(greeting: String) { πŸ“– **Arguments**. A transaction can accept zero or more arguments that are passed into the Cadence script. The arguments on the transaction must match the number and order declared in the Cadence script. Sample script from above accepts a single `String` argument. -πŸ“– **[Proposal key](../../concepts/start-here/transaction-signing.md#proposal-key)** must be provided to act as a sequence number and prevent replay and other potential attacks. +πŸ“– **[Proposal key](../../../concepts/start-here/transaction-signing.md#proposal-key)** must be provided to act as a sequence number and prevent replay and other potential attacks. Each account key maintains a separate transaction sequence counter; the key that lends its sequence number to a transaction is called the proposal key. @@ -301,9 +301,9 @@ A proposal key contains three fields: A transaction is only valid if its declared sequence number matches the current on-chain sequence number for that key. The sequence number increments by one after the transaction is executed. -πŸ“– **[Payer](../../concepts/start-here/transaction-signing.md#signer-roles)** is the account that pays the fees for the transaction. A transaction must specify exactly one payer. The payer is only responsible for paying the network and gas fees; the transaction is not authorized to access resources or code stored in the payer account. +πŸ“– **[Payer](../../../concepts/start-here/transaction-signing.md#signer-roles)** is the account that pays the fees for the transaction. A transaction must specify exactly one payer. The payer is only responsible for paying the network and gas fees; the transaction is not authorized to access resources or code stored in the payer account. -πŸ“– **[Authorizers](../../concepts/start-here/transaction-signing.md#signer-roles)** are accounts that authorize a transaction to read and mutate their resources. A transaction can specify zero or more authorizers, depending on how many accounts the transaction needs to access. +πŸ“– **[Authorizers](../../../concepts/start-here/transaction-signing.md#signer-roles)** are accounts that authorize a transaction to read and mutate their resources. A transaction can specify zero or more authorizers, depending on how many accounts the transaction needs to access. The number of authorizers on the transaction must match the number of AuthAccount parameters declared in the prepare statement of the Cadence script. @@ -315,7 +315,7 @@ transaction { ``` πŸ“– **Gas limit** is the limit on the amount of computation a transaction requires, and it will abort if it exceeds its gas limit. -Cadence uses metering to measure the number of operations per transaction. You can read more about it in the [Cadence documentation](../../cadence/intro.md). +Cadence uses metering to measure the number of operations per transaction. You can read more about it in the [Cadence documentation](../../../cadence/intro.md). The gas limit depends on the complexity of the transaction script. Until dedicated gas estimation tooling exists, it's best to use the emulator to test complex transactions and determine a safe limit. @@ -349,7 +349,7 @@ await fcl.mutate({ Flow supports great flexibility when it comes to transaction signing, we can define multiple authorizers (multi-sig transactions) and have different payer account than proposer. We will explore advanced signing scenarios bellow. -### [Single party, single signature](../../concepts/start-here/transaction-signing.md#single-party-single-signature) +### [Single party, single signature](../../../concepts/start-here/transaction-signing.md#single-party-single-signature) - Proposer, payer and authorizer are the same account (`0x01`). - Only the envelope must be signed. @@ -418,7 +418,7 @@ mutate({ }) ``` -### [Single party, multiple signatures](../../concepts/start-here/transaction-signing.md#single-party-multiple-signatures) +### [Single party, multiple signatures](../../../concepts/start-here/transaction-signing.md#single-party-multiple-signatures) - Proposer, payer and authorizer are the same account (`0x01`). - Only the envelope must be signed. @@ -475,7 +475,7 @@ mutate({ }) ``` -### [Multiple parties](../../concepts/start-here/transaction-signing.md#multiple-parties) +### [Multiple parties](../../../concepts/start-here/transaction-signing.md#multiple-parties) - Proposer and authorizer are the same account (`0x01`). - Payer is a separate account (`0x02`). @@ -535,7 +535,7 @@ mutate({ }) ``` -### [Multiple parties, two authorizers](../../concepts/start-here/transaction-signing.md#multiple-parties) +### [Multiple parties, two authorizers](../../../concepts/start-here/transaction-signing.md#multiple-parties) - Proposer and authorizer are the same account (`0x01`). - Payer is a separate account (`0x02`). @@ -596,7 +596,7 @@ mutate({ }) ``` -### [Multiple parties, multiple signatures](../../concepts/start-here/transaction-signing.md#multiple-parties) +### [Multiple parties, multiple signatures](../../../concepts/start-here/transaction-signing.md#multiple-parties) - Proposer and authorizer are the same account (`0x01`). - Payer is a separate account (`0x02`). diff --git a/docs/tooling/fcl-js/transactions.mdx b/docs/tools/clients/fcl-js/transactions.mdx similarity index 100% rename from docs/tooling/fcl-js/transactions.mdx rename to docs/tools/clients/fcl-js/transactions.mdx diff --git a/docs/tooling/fcl-js/user-signatures.mdx b/docs/tools/clients/fcl-js/user-signatures.mdx similarity index 100% rename from docs/tooling/fcl-js/user-signatures.mdx rename to docs/tools/clients/fcl-js/user-signatures.mdx diff --git a/docs/tooling/fcl-js/wallet-connect.mdx b/docs/tools/clients/fcl-js/wallet-connect.mdx similarity index 100% rename from docs/tooling/fcl-js/wallet-connect.mdx rename to docs/tools/clients/fcl-js/wallet-connect.mdx diff --git a/docs/tooling/flow-go-sdk/error-codes.mdx b/docs/tools/clients/flow-go-sdk/error-codes.mdx similarity index 100% rename from docs/tooling/flow-go-sdk/error-codes.mdx rename to docs/tools/clients/flow-go-sdk/error-codes.mdx diff --git a/docs/tooling/flow-go-sdk/index.mdx b/docs/tools/clients/flow-go-sdk/index.mdx similarity index 94% rename from docs/tooling/flow-go-sdk/index.mdx rename to docs/tools/clients/flow-go-sdk/index.mdx index 336ee54337..ee2b7d9500 100644 --- a/docs/tooling/flow-go-sdk/index.mdx +++ b/docs/tools/clients/flow-go-sdk/index.mdx @@ -303,8 +303,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](../../concepts/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). +Please read more about [events in the documentation](../../../concepts/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). πŸ“– **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](../../../cadence/language/index.md), 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. @@ -510,7 +510,7 @@ Executing a transaction requires couple of steps: A transaction is nothing more than a signed set of data that includes script code which are instructions on how to mutate the network state and properties that define and limit it's execution. All these properties are explained bellow. -πŸ“– **Script** field is the portion of the transaction that describes the state mutation logic. On Flow, transaction logic is written in [Cadence](../../cadence/intro.md). Here is an example transaction script: +πŸ“– **Script** field is the portion of the transaction that describes the state mutation logic. On Flow, transaction logic is written in [Cadence](../../../cadence/intro.md). Here is an example transaction script: ``` transaction(greeting: String) { @@ -522,7 +522,7 @@ transaction(greeting: String) { πŸ“– **Arguments**. A transaction can accept zero or more arguments that are passed into the Cadence script. The arguments on the transaction must match the number and order declared in the Cadence script. Sample script from above accepts a single `String` argument. -πŸ“– **[Proposal key](../../concepts/start-here/transaction-signing.md#proposal-key)** must be provided to act as a sequence number and prevent reply and other potential attacks. +πŸ“– **[Proposal key](../../../concepts/start-here/transaction-signing.md#proposal-key)** must be provided to act as a sequence number and prevent reply and other potential attacks. Each account key maintains a separate transaction sequence counter; the key that lends its sequence number to a transaction is called the proposal key. @@ -534,9 +534,9 @@ A proposal key contains three fields: A transaction is only valid if its declared sequence number matches the current on-chain sequence number for that key. The sequence number increments by one after the transaction is executed. -πŸ“– **[Payer](../../concepts/start-here/transaction-signing.md#signer-roles)** is the account that pays the fees for the transaction. A transaction must specify exactly one payer. The payer is only responsible for paying the network and gas fees; the transaction is not authorized to access resources or code stored in the payer account. +πŸ“– **[Payer](../../../concepts/start-here/transaction-signing.md#signer-roles)** is the account that pays the fees for the transaction. A transaction must specify exactly one payer. The payer is only responsible for paying the network and gas fees; the transaction is not authorized to access resources or code stored in the payer account. -πŸ“– **[Authorizers](../../concepts/start-here/transaction-signing.md#signer-roles)** are accounts that authorize a transaction to read and mutate their resources. A transaction can specify zero or more authorizers, depending on how many accounts the transaction needs to access. +πŸ“– **[Authorizers](../../../concepts/start-here/transaction-signing.md#signer-roles)** are accounts that authorize a transaction to read and mutate their resources. A transaction can specify zero or more authorizers, depending on how many accounts the transaction needs to access. The number of authorizers on the transaction must match the number of AuthAccount parameters declared in the prepare statement of the Cadence script. @@ -549,7 +549,7 @@ transaction { ``` πŸ“– **Gas limit** is the limit on the amount of computation a transaction requires, and it will abort if it exceeds its gas limit. -Cadence uses metering to measure the number of operations per transaction. You can read more about it in the [Cadence documentation](../../cadence/intro.md). +Cadence uses metering to measure the number of operations per transaction. You can read more about it in the [Cadence documentation](../../../cadence/intro.md). The gas limit depends on the complexity of the transaction script. Until dedicated gas estimation tooling exists, it's best to use the emulator to test complex transactions and determine a safe limit. @@ -649,9 +649,9 @@ After you have successfully [built a transaction](#build-the-transaction) the ne [](https://pkg.go.dev/github.com/onflow/flow-go-sdk#Transaction.SignEnvelope) Flow introduces new concepts that allow for more flexibility when creating and signing transactions. -Before trying the examples below, we recommend that you read through the [transaction signature documentation](../../concepts/start-here/accounts-and-keys.md). +Before trying the examples below, we recommend that you read through the [transaction signature documentation](../../../concepts/start-here/accounts-and-keys.md). -After you have successfully [built a transaction](#build-the-transaction) the next step in the process is to sign it. Flow transactions have envelope and payload signatures, and you should learn about each in the [signature documentation](../../concepts/start-here/accounts-and-keys.md#anatomy-of-a-transaction). +After you have successfully [built a transaction](#build-the-transaction) the next step in the process is to sign it. Flow transactions have envelope and payload signatures, and you should learn about each in the [signature documentation](../../../concepts/start-here/accounts-and-keys.md#anatomy-of-a-transaction). Quick example of building a transaction: @@ -695,7 +695,7 @@ if err != nil { Flow supports great flexibility when it comes to transaction signing, we can define multiple authorizers (multi-sig transactions) and have different payer account than proposer. We will explore advanced signing scenarios bellow. -### [Single party, single signature](../../concepts/start-here/transaction-signing.md#single-party-single-signature) +### [Single party, single signature](../../../concepts/start-here/transaction-signing.md#single-party-single-signature) - Proposer, payer and authorizer are the same account (`0x01`). - Only the envelope must be signed. @@ -732,7 +732,7 @@ tx := flow.NewTransaction(). err := tx.SignEnvelope(account1.Address, key1.Index, key1Signer) ``` -### [Single party, multiple signatures](../../concepts/start-here/transaction-signing.md#single-party-multiple-signatures) +### [Single party, multiple signatures](../../../concepts/start-here/transaction-signing.md#single-party-multiple-signatures) - Proposer, payer and authorizer are the same account (`0x01`). - Only the envelope must be signed. @@ -775,7 +775,7 @@ err := tx.SignEnvelope(account1.Address, key1.Index, key1Signer) err = tx.SignEnvelope(account1.Address, key2.Index, key2Signer) ``` -### [Multiple parties](../../concepts/start-here/transaction-signing.md#multiple-parties) +### [Multiple parties](../../../concepts/start-here/transaction-signing.md#multiple-parties) - Proposer and authorizer are the same account (`0x01`). - Payer is a separate account (`0x02`). @@ -822,7 +822,7 @@ err := tx.SignPayload(account1.Address, key1.Index, key1Signer) err = tx.SignEnvelope(account2.Address, key3.Index, key3Signer) ``` -### [Multiple parties, two authorizers](../../concepts/start-here/transaction-signing.md#multiple-parties) +### [Multiple parties, two authorizers](../../../concepts/start-here/transaction-signing.md#multiple-parties) - Proposer and authorizer are the same account (`0x01`). - Payer is a separate account (`0x02`). @@ -874,7 +874,7 @@ err := tx.SignPayload(account1.Address, key1.Index, key1Signer) err = tx.SignEnvelope(account2.Address, key3.Index, key3Signer) ``` -### [Multiple parties, multiple signatures](../../concepts/start-here/transaction-signing.md#multiple-parties) +### [Multiple parties, multiple signatures](../../../concepts/start-here/transaction-signing.md#multiple-parties) - Proposer and authorizer are the same account (`0x01`). - Payer is a separate account (`0x02`). @@ -961,7 +961,7 @@ func demo(tx *flow.Transaction) { On Flow, account creation happens inside a transaction. Because the network allows for a many-to-many relationship between public keys and accounts, it's not possible to derive a new account address from a public key offline. -The Flow VM uses a deterministic address generation algorithm to assign account addresses on chain. You can find more details about address generation in the [accounts & keys documentation](../../concepts/start-here/accounts-and-keys.md). +The Flow VM uses a deterministic address generation algorithm to assign account addresses on chain. You can find more details about address generation in the [accounts & keys documentation](../../../concepts/start-here/accounts-and-keys.md). #### Public Key @@ -971,7 +971,7 @@ Flow uses ECDSA key pairs to control access to user accounts. Each key pair can Flow represents ECDSA public keys in raw form without additional metadata. Each key is a single byte slice containing a concatenation of its X and Y components in big-endian byte form. -A Flow account can contain zero (not possible to control) or more public keys, referred to as account keys. Read more about [accounts in the documentation](../../concepts/start-here/accounts-and-keys.md#accounts). +A Flow account can contain zero (not possible to control) or more public keys, referred to as account keys. Read more about [accounts in the documentation](../../../concepts/start-here/accounts-and-keys.md#accounts). An account key contains the following data: @@ -1051,7 +1051,7 @@ for _, event := range result.Events { ### Generate Keys -[](../../concepts/start-here/accounts-and-keys.md#supported-signature--hash-algorithms) +[](../../../concepts/start-here/accounts-and-keys.md#supported-signature--hash-algorithms) Flow uses [ECDSA](https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm) signatures to control access to user accounts. Each key pair can be used in combination with the `SHA2-256` or `SHA3-256` hashing algorithms. @@ -1072,7 +1072,7 @@ encPrivateKey := privateKey.Encode() publicKey := privateKey.PublicKey() ``` -The example above uses an ECDSA key pair on the P-256 (secp256r1) elliptic curve. Flow also supports the secp256k1 curve used by Bitcoin and Ethereum. Read more about [supported algorithms here](../../concepts/start-here/accounts-and-keys.md#supported-signature--hash-algorithms). +The example above uses an ECDSA key pair on the P-256 (secp256r1) elliptic curve. Flow also supports the secp256k1 curve used by Bitcoin and Ethereum. Read more about [supported algorithms here](../../../concepts/start-here/accounts-and-keys.md#supported-signature--hash-algorithms). ### Transfering Flow diff --git a/docs/tooling/flow-go-sdk/migration-v0.25.0.md b/docs/tools/clients/flow-go-sdk/migration-v0.25.0.md similarity index 100% rename from docs/tooling/flow-go-sdk/migration-v0.25.0.md rename to docs/tools/clients/flow-go-sdk/migration-v0.25.0.md diff --git a/docs/tools/clients/index.md b/docs/tools/clients/index.md new file mode 100644 index 0000000000..7fbbed7bcd --- /dev/null +++ b/docs/tools/clients/index.md @@ -0,0 +1,48 @@ +# Clients + +## Go SDK + +The [Flow Go SDK](./flow-go-sdk/index.mdx) provides a set of packages for Go developers to build applications that interact with the Flow network. + +## Python SDK + +The [Flow Python SDK](https://github.com/janezpodhostnik/flow-py-sdk) provides a set of packages for Python developers to build applications that interact with the Flow network. + +## Ruby + +[FlowClient](https://github.com/glucode/flow_client) is a Ruby gRPC client for Flow (onflow.org) + +## Kotlin + +The [Flow JVM SDK](https://github.com/onflow/flow-jvm-sdk) is a library for JVM languages (e.g. Java, Kotlin) that provides utilities to interact with the Flow blockchain. + +## Unity + +The [Flow SDK for Unity](./unity-sdk/index.md) allows Unity developers to integrate their games and applications with the Flow blockchain. + +## JavaScript (FCL) + +The [Flow Client Library (FCL)](./fcl-js/index.md) JS is a package used to interact with user wallets and the Flow blockchain + +## Swift +[flow-swift] is a tool to build iOS application in Flow mobile realm 🌊 + +## .Net + +[flow.net](https://github.com/tyronbrand/flow.net) is a tool for building .Net applications on Flow + +## Rust + +[Rust SDK](https://github.com/fee1-dead/flow.rs) for the Flow blockchain network + +## PHP + +[PHP SDK](https://github.com/mayvenstudios/flow-php-sdk) for the Flow blockchain + +## Elixir + +[OnFlow](https://github.com/nkezhaya/on_flow) is an Elixir client for interacting with the Flow blockchain. Documentation here: https://hexdocs.pm/on_flow. + +## HTTP API + +[Flow OpenAPI](/http-api) specification \ No newline at end of file diff --git a/docs/tooling/unity-sdk/api-reference.md b/docs/tools/clients/unity-sdk/api-reference.md similarity index 100% rename from docs/tooling/unity-sdk/api-reference.md rename to docs/tools/clients/unity-sdk/api-reference.md diff --git a/docs/tooling/unity-sdk/changelog.md b/docs/tools/clients/unity-sdk/changelog.md similarity index 100% rename from docs/tooling/unity-sdk/changelog.md rename to docs/tools/clients/unity-sdk/changelog.md diff --git a/docs/tooling/unity-sdk/guides/convert.md b/docs/tools/clients/unity-sdk/guides/convert.md similarity index 100% rename from docs/tooling/unity-sdk/guides/convert.md rename to docs/tools/clients/unity-sdk/guides/convert.md diff --git a/docs/tooling/unity-sdk/guides/dev-wallet.md b/docs/tools/clients/unity-sdk/guides/dev-wallet.md similarity index 97% rename from docs/tooling/unity-sdk/guides/dev-wallet.md rename to docs/tools/clients/unity-sdk/guides/dev-wallet.md index d972e0e0cb..720de8d5a3 100644 --- a/docs/tooling/unity-sdk/guides/dev-wallet.md +++ b/docs/tools/clients/unity-sdk/guides/dev-wallet.md @@ -15,7 +15,7 @@ The initial v1.0.0 release of the Flow SDK for Unity does not provide a producti A wallet is a piece of software or hardware that stores the private key associated with a Flow account. The term *custodian* is used to refer to the party that stores the private key. Hardware Wallets (eg Ledger), typically USB devices, allow users to be their own custodian, whereas hosted software wallets (eg Dapper Wallet) act as the custodian on behalf of the user. -For more information about Wallets and Flow accounts, see [user-accounts-and-wallets](../../../tutorials/user-accounts-and-wallets.md). +For more information about Wallets and Flow accounts, see [user-accounts-and-wallets](../../../../tutorials/user-accounts-and-wallets.md). ## What is a Wallet Provider? @@ -97,7 +97,7 @@ public Task SignTransactionPayload(FlowTransaction txn); public Task SignTransactionEnvelope(FlowTransaction txn); ``` -In Flow, there are two parts of a transaction that can be signed - the Payload and the Authorization Envelope. The envelope must always be signed, and is the last thing to be signed by the Payer of the transaction fees. The Payload is only signed by the Proposer and\or the Authorizers IF they are not also the Payer (i.e. nobody signs the transaction twice). For more information see [transaction signing](../../../concepts/start-here/transaction-signing.md). +In Flow, there are two parts of a transaction that can be signed - the Payload and the Authorization Envelope. The envelope must always be signed, and is the last thing to be signed by the Payer of the transaction fees. The Payload is only signed by the Proposer and\or the Authorizers IF they are not also the Payer (i.e. nobody signs the transaction twice). For more information see [transaction signing](../../../../concepts/start-here/transaction-signing.md). The following is an example of how to call `SignTransactionPayload`, but as mentioned, this is automatically done by the SDK's `Transactions.Submit` function. It's an asynchronous so is therefore `await`ed, and returns the signature as a byte array. diff --git a/docs/tooling/unity-sdk/guides/flow-control.md b/docs/tools/clients/unity-sdk/guides/flow-control.md similarity index 97% rename from docs/tooling/unity-sdk/guides/flow-control.md rename to docs/tools/clients/unity-sdk/guides/flow-control.md index 1cc653e146..5e9b2fe6e6 100644 --- a/docs/tooling/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](../../../../cadence/language/contract-updatability.md) 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/tooling/unity-sdk/guides/ios-support.md b/docs/tools/clients/unity-sdk/guides/ios-support.md similarity index 100% rename from docs/tooling/unity-sdk/guides/ios-support.md rename to docs/tools/clients/unity-sdk/guides/ios-support.md diff --git a/docs/tooling/unity-sdk/guides/wallet-connect.md b/docs/tools/clients/unity-sdk/guides/wallet-connect.md similarity index 97% rename from docs/tooling/unity-sdk/guides/wallet-connect.md rename to docs/tools/clients/unity-sdk/guides/wallet-connect.md index 76b7a4ef30..07b78c6190 100644 --- a/docs/tooling/unity-sdk/guides/wallet-connect.md +++ b/docs/tools/clients/unity-sdk/guides/wallet-connect.md @@ -8,7 +8,7 @@ Wallet Connect is a production ready wallet provider which implements the `IWall A wallet is a piece of software or hardware that stores the private key associated with a Flow account. The term *custodian* is used to refer to the party that stores the private key. Hardware Wallets (eg Ledger), typically USB devices, allow users to be their own custodian, whereas hosted software wallets (eg Dapper Wallet) act as the custodian on behalf of the user. -For more information about Wallets and Flow accounts, see [user-accounts-and-wallets](../../../tutorials/user-accounts-and-wallets.md). +For more information about Wallets and Flow accounts, see [user-accounts-and-wallets](../../../../tutorials/user-accounts-and-wallets.md). ## What is a Wallet Provider? @@ -85,7 +85,7 @@ public Task SignTransactionPayload(FlowTransaction txn); public Task SignTransactionEnvelope(FlowTransaction txn); ``` -In Flow, there are two parts of a transaction that can be signed - the Payload and the Authorization Envelope. The envelope must always be signed, and is the last thing to be signed by the Payer of the transaction fees. The Payload is only signed by the Proposer and\or the Authorizers IF they are not also the Payer (i.e. nobody signs the transaction twice). For more information on transaction signing, see [transaction signing](../../../concepts/start-here/transaction-signing.md). +In Flow, there are two parts of a transaction that can be signed - the Payload and the Authorization Envelope. The envelope must always be signed, and is the last thing to be signed by the Payer of the transaction fees. The Payload is only signed by the Proposer and\or the Authorizers IF they are not also the Payer (i.e. nobody signs the transaction twice). For more information on transaction signing, see [transaction signing](../../../../concepts/start-here/transaction-signing.md). The following is an example of how to call `SignTransactionEnvelope`, but as mentioned, this is automatically done by the SDK's `Transactions.Submit` function. It is asynchronous so is therefore `await`ed, and returns the signature as a byte array. diff --git a/docs/tooling/unity-sdk/index.md b/docs/tools/clients/unity-sdk/index.md similarity index 100% rename from docs/tooling/unity-sdk/index.md rename to docs/tools/clients/unity-sdk/index.md diff --git a/docs/tooling/unity-sdk/license.md b/docs/tools/clients/unity-sdk/license.md similarity index 100% rename from docs/tooling/unity-sdk/license.md rename to docs/tools/clients/unity-sdk/license.md diff --git a/docs/tooling/unity-sdk/media/079fee6ed2cb0777c5ee99322d3d6039.png b/docs/tools/clients/unity-sdk/media/079fee6ed2cb0777c5ee99322d3d6039.png similarity index 100% rename from docs/tooling/unity-sdk/media/079fee6ed2cb0777c5ee99322d3d6039.png rename to docs/tools/clients/unity-sdk/media/079fee6ed2cb0777c5ee99322d3d6039.png diff --git a/docs/tooling/unity-sdk/media/079fee6ed2cb0777c5ee99322d3d6040.png b/docs/tools/clients/unity-sdk/media/079fee6ed2cb0777c5ee99322d3d6040.png similarity index 100% rename from docs/tooling/unity-sdk/media/079fee6ed2cb0777c5ee99322d3d6040.png rename to docs/tools/clients/unity-sdk/media/079fee6ed2cb0777c5ee99322d3d6040.png diff --git a/docs/tooling/unity-sdk/media/079fee6ed2cb0777c5ee99322d3d6041.png b/docs/tools/clients/unity-sdk/media/079fee6ed2cb0777c5ee99322d3d6041.png similarity index 100% rename from docs/tooling/unity-sdk/media/079fee6ed2cb0777c5ee99322d3d6041.png rename to docs/tools/clients/unity-sdk/media/079fee6ed2cb0777c5ee99322d3d6041.png diff --git a/docs/tooling/unity-sdk/media/0933fe23c63eedcd9ba2c4f3aac2878c.png b/docs/tools/clients/unity-sdk/media/0933fe23c63eedcd9ba2c4f3aac2878c.png similarity index 100% rename from docs/tooling/unity-sdk/media/0933fe23c63eedcd9ba2c4f3aac2878c.png rename to docs/tools/clients/unity-sdk/media/0933fe23c63eedcd9ba2c4f3aac2878c.png diff --git a/docs/tooling/unity-sdk/media/0bc22650b47abb1cf606b2c7381a6377.png b/docs/tools/clients/unity-sdk/media/0bc22650b47abb1cf606b2c7381a6377.png similarity index 100% rename from docs/tooling/unity-sdk/media/0bc22650b47abb1cf606b2c7381a6377.png rename to docs/tools/clients/unity-sdk/media/0bc22650b47abb1cf606b2c7381a6377.png diff --git a/docs/tooling/unity-sdk/media/15840cee138659b172d6023791b73155.png b/docs/tools/clients/unity-sdk/media/15840cee138659b172d6023791b73155.png similarity index 100% rename from docs/tooling/unity-sdk/media/15840cee138659b172d6023791b73155.png rename to docs/tools/clients/unity-sdk/media/15840cee138659b172d6023791b73155.png diff --git a/docs/tooling/unity-sdk/media/184e8a2ee8440b6b700072a9212e92bb.png b/docs/tools/clients/unity-sdk/media/184e8a2ee8440b6b700072a9212e92bb.png similarity index 100% rename from docs/tooling/unity-sdk/media/184e8a2ee8440b6b700072a9212e92bb.png rename to docs/tools/clients/unity-sdk/media/184e8a2ee8440b6b700072a9212e92bb.png diff --git a/docs/tooling/unity-sdk/media/2466ac711f979da15f6ad5a6cdb6421a.png b/docs/tools/clients/unity-sdk/media/2466ac711f979da15f6ad5a6cdb6421a.png similarity index 100% rename from docs/tooling/unity-sdk/media/2466ac711f979da15f6ad5a6cdb6421a.png rename to docs/tools/clients/unity-sdk/media/2466ac711f979da15f6ad5a6cdb6421a.png diff --git a/docs/tooling/unity-sdk/media/252129f67efc7d03357d9e5070d67ece.png b/docs/tools/clients/unity-sdk/media/252129f67efc7d03357d9e5070d67ece.png similarity index 100% rename from docs/tooling/unity-sdk/media/252129f67efc7d03357d9e5070d67ece.png rename to docs/tools/clients/unity-sdk/media/252129f67efc7d03357d9e5070d67ece.png diff --git a/docs/tooling/unity-sdk/media/270ed3d6ac5df815d35cc82f588a4a18.png b/docs/tools/clients/unity-sdk/media/270ed3d6ac5df815d35cc82f588a4a18.png similarity index 100% rename from docs/tooling/unity-sdk/media/270ed3d6ac5df815d35cc82f588a4a18.png rename to docs/tools/clients/unity-sdk/media/270ed3d6ac5df815d35cc82f588a4a18.png diff --git a/docs/tooling/unity-sdk/media/2ce641e868905901df937c4dd09de105.png b/docs/tools/clients/unity-sdk/media/2ce641e868905901df937c4dd09de105.png similarity index 100% rename from docs/tooling/unity-sdk/media/2ce641e868905901df937c4dd09de105.png rename to docs/tools/clients/unity-sdk/media/2ce641e868905901df937c4dd09de105.png diff --git a/docs/tooling/unity-sdk/media/2e08cbac6f2ff6a2cde89e7cd6c6be62.png b/docs/tools/clients/unity-sdk/media/2e08cbac6f2ff6a2cde89e7cd6c6be62.png similarity index 100% rename from docs/tooling/unity-sdk/media/2e08cbac6f2ff6a2cde89e7cd6c6be62.png rename to docs/tools/clients/unity-sdk/media/2e08cbac6f2ff6a2cde89e7cd6c6be62.png diff --git a/docs/tooling/unity-sdk/media/3421ca4434716e8f2efc89bbf5f3c7ad.png b/docs/tools/clients/unity-sdk/media/3421ca4434716e8f2efc89bbf5f3c7ad.png similarity index 100% rename from docs/tooling/unity-sdk/media/3421ca4434716e8f2efc89bbf5f3c7ad.png rename to docs/tools/clients/unity-sdk/media/3421ca4434716e8f2efc89bbf5f3c7ad.png diff --git a/docs/tooling/unity-sdk/media/35f927dd8c61a096c387264c358eba6a.png b/docs/tools/clients/unity-sdk/media/35f927dd8c61a096c387264c358eba6a.png similarity index 100% rename from docs/tooling/unity-sdk/media/35f927dd8c61a096c387264c358eba6a.png rename to docs/tools/clients/unity-sdk/media/35f927dd8c61a096c387264c358eba6a.png diff --git a/docs/tooling/unity-sdk/media/4444607a3effafd2c5bb8430b8fade3f.png b/docs/tools/clients/unity-sdk/media/4444607a3effafd2c5bb8430b8fade3f.png similarity index 100% rename from docs/tooling/unity-sdk/media/4444607a3effafd2c5bb8430b8fade3f.png rename to docs/tools/clients/unity-sdk/media/4444607a3effafd2c5bb8430b8fade3f.png diff --git a/docs/tooling/unity-sdk/media/4eaf391ee18bc8b70452e4495b5b317a.png b/docs/tools/clients/unity-sdk/media/4eaf391ee18bc8b70452e4495b5b317a.png similarity index 100% rename from docs/tooling/unity-sdk/media/4eaf391ee18bc8b70452e4495b5b317a.png rename to docs/tools/clients/unity-sdk/media/4eaf391ee18bc8b70452e4495b5b317a.png diff --git a/docs/tooling/unity-sdk/media/51d4f1e5f01dc36b0fdd0853eb08b0bd.png b/docs/tools/clients/unity-sdk/media/51d4f1e5f01dc36b0fdd0853eb08b0bd.png similarity index 100% rename from docs/tooling/unity-sdk/media/51d4f1e5f01dc36b0fdd0853eb08b0bd.png rename to docs/tools/clients/unity-sdk/media/51d4f1e5f01dc36b0fdd0853eb08b0bd.png diff --git a/docs/tooling/unity-sdk/media/54f8a5235b61d70f09904c38ed3e5e5c.png b/docs/tools/clients/unity-sdk/media/54f8a5235b61d70f09904c38ed3e5e5c.png similarity index 100% rename from docs/tooling/unity-sdk/media/54f8a5235b61d70f09904c38ed3e5e5c.png rename to docs/tools/clients/unity-sdk/media/54f8a5235b61d70f09904c38ed3e5e5c.png diff --git a/docs/tooling/unity-sdk/media/5569416d261ff8e9d05b53c082c8a1b1.png b/docs/tools/clients/unity-sdk/media/5569416d261ff8e9d05b53c082c8a1b1.png similarity index 100% rename from docs/tooling/unity-sdk/media/5569416d261ff8e9d05b53c082c8a1b1.png rename to docs/tools/clients/unity-sdk/media/5569416d261ff8e9d05b53c082c8a1b1.png diff --git a/docs/tooling/unity-sdk/media/55bad7978ba3915550c8367b319a9944.png b/docs/tools/clients/unity-sdk/media/55bad7978ba3915550c8367b319a9944.png similarity index 100% rename from docs/tooling/unity-sdk/media/55bad7978ba3915550c8367b319a9944.png rename to docs/tools/clients/unity-sdk/media/55bad7978ba3915550c8367b319a9944.png diff --git a/docs/tooling/unity-sdk/media/58d03fbcda193c672c0287da2f3f04ba.png b/docs/tools/clients/unity-sdk/media/58d03fbcda193c672c0287da2f3f04ba.png similarity index 100% rename from docs/tooling/unity-sdk/media/58d03fbcda193c672c0287da2f3f04ba.png rename to docs/tools/clients/unity-sdk/media/58d03fbcda193c672c0287da2f3f04ba.png diff --git a/docs/tooling/unity-sdk/media/5ba73beddcefba8eade5c9ce4322a86d.png b/docs/tools/clients/unity-sdk/media/5ba73beddcefba8eade5c9ce4322a86d.png similarity index 100% rename from docs/tooling/unity-sdk/media/5ba73beddcefba8eade5c9ce4322a86d.png rename to docs/tools/clients/unity-sdk/media/5ba73beddcefba8eade5c9ce4322a86d.png diff --git a/docs/tooling/unity-sdk/media/61267a392954311426b4144345f25dfd.png b/docs/tools/clients/unity-sdk/media/61267a392954311426b4144345f25dfd.png similarity index 100% rename from docs/tooling/unity-sdk/media/61267a392954311426b4144345f25dfd.png rename to docs/tools/clients/unity-sdk/media/61267a392954311426b4144345f25dfd.png diff --git a/docs/tooling/unity-sdk/media/6279d33bd3d9eea312ef2f9b05000dbf.png b/docs/tools/clients/unity-sdk/media/6279d33bd3d9eea312ef2f9b05000dbf.png similarity index 100% rename from docs/tooling/unity-sdk/media/6279d33bd3d9eea312ef2f9b05000dbf.png rename to docs/tools/clients/unity-sdk/media/6279d33bd3d9eea312ef2f9b05000dbf.png diff --git a/docs/tooling/unity-sdk/media/62ec9ee52b31041e7420ac7ad7132684.png b/docs/tools/clients/unity-sdk/media/62ec9ee52b31041e7420ac7ad7132684.png similarity index 100% rename from docs/tooling/unity-sdk/media/62ec9ee52b31041e7420ac7ad7132684.png rename to docs/tools/clients/unity-sdk/media/62ec9ee52b31041e7420ac7ad7132684.png diff --git a/docs/tooling/unity-sdk/media/6d1ca6e13da7d1c65496fd803a3c5f78.png b/docs/tools/clients/unity-sdk/media/6d1ca6e13da7d1c65496fd803a3c5f78.png similarity index 100% rename from docs/tooling/unity-sdk/media/6d1ca6e13da7d1c65496fd803a3c5f78.png rename to docs/tools/clients/unity-sdk/media/6d1ca6e13da7d1c65496fd803a3c5f78.png diff --git a/docs/tooling/unity-sdk/media/6d33d20949b4923d1e805e8e21884935.png b/docs/tools/clients/unity-sdk/media/6d33d20949b4923d1e805e8e21884935.png similarity index 100% rename from docs/tooling/unity-sdk/media/6d33d20949b4923d1e805e8e21884935.png rename to docs/tools/clients/unity-sdk/media/6d33d20949b4923d1e805e8e21884935.png diff --git a/docs/tooling/unity-sdk/media/741a3e12d817f800c2bced3c927912ba.png b/docs/tools/clients/unity-sdk/media/741a3e12d817f800c2bced3c927912ba.png similarity index 100% rename from docs/tooling/unity-sdk/media/741a3e12d817f800c2bced3c927912ba.png rename to docs/tools/clients/unity-sdk/media/741a3e12d817f800c2bced3c927912ba.png diff --git a/docs/tooling/unity-sdk/media/7e85df9713fbb484d0955d698ccd1668.png b/docs/tools/clients/unity-sdk/media/7e85df9713fbb484d0955d698ccd1668.png similarity index 100% rename from docs/tooling/unity-sdk/media/7e85df9713fbb484d0955d698ccd1668.png rename to docs/tools/clients/unity-sdk/media/7e85df9713fbb484d0955d698ccd1668.png diff --git a/docs/tooling/unity-sdk/media/814d81d58a609d94bc2d7bc9a6e90afe.png b/docs/tools/clients/unity-sdk/media/814d81d58a609d94bc2d7bc9a6e90afe.png similarity index 100% rename from docs/tooling/unity-sdk/media/814d81d58a609d94bc2d7bc9a6e90afe.png rename to docs/tools/clients/unity-sdk/media/814d81d58a609d94bc2d7bc9a6e90afe.png diff --git a/docs/tooling/unity-sdk/media/82ea27a997c12eab231ad8bf2e49d335.png b/docs/tools/clients/unity-sdk/media/82ea27a997c12eab231ad8bf2e49d335.png similarity index 100% rename from docs/tooling/unity-sdk/media/82ea27a997c12eab231ad8bf2e49d335.png rename to docs/tools/clients/unity-sdk/media/82ea27a997c12eab231ad8bf2e49d335.png diff --git a/docs/tooling/unity-sdk/media/84ffa7104bc4de009c328960c1c9c6e7.png b/docs/tools/clients/unity-sdk/media/84ffa7104bc4de009c328960c1c9c6e7.png similarity index 100% rename from docs/tooling/unity-sdk/media/84ffa7104bc4de009c328960c1c9c6e7.png rename to docs/tools/clients/unity-sdk/media/84ffa7104bc4de009c328960c1c9c6e7.png diff --git a/docs/tooling/unity-sdk/media/881d1efa0c8e4ff9bffe3382274a255c.png b/docs/tools/clients/unity-sdk/media/881d1efa0c8e4ff9bffe3382274a255c.png similarity index 100% rename from docs/tooling/unity-sdk/media/881d1efa0c8e4ff9bffe3382274a255c.png rename to docs/tools/clients/unity-sdk/media/881d1efa0c8e4ff9bffe3382274a255c.png diff --git a/docs/tooling/unity-sdk/media/894e40fa8ac7a3ebbc60e44c60be135a.png b/docs/tools/clients/unity-sdk/media/894e40fa8ac7a3ebbc60e44c60be135a.png similarity index 100% rename from docs/tooling/unity-sdk/media/894e40fa8ac7a3ebbc60e44c60be135a.png rename to docs/tools/clients/unity-sdk/media/894e40fa8ac7a3ebbc60e44c60be135a.png diff --git a/docs/tooling/unity-sdk/media/8cd5f4e2d4ac66693e0c2a6f796d1b38.png b/docs/tools/clients/unity-sdk/media/8cd5f4e2d4ac66693e0c2a6f796d1b38.png similarity index 100% rename from docs/tooling/unity-sdk/media/8cd5f4e2d4ac66693e0c2a6f796d1b38.png rename to docs/tools/clients/unity-sdk/media/8cd5f4e2d4ac66693e0c2a6f796d1b38.png diff --git a/docs/tooling/unity-sdk/media/999cca57ee98b89bfe5f012ee445766c.png b/docs/tools/clients/unity-sdk/media/999cca57ee98b89bfe5f012ee445766c.png similarity index 100% rename from docs/tooling/unity-sdk/media/999cca57ee98b89bfe5f012ee445766c.png rename to docs/tools/clients/unity-sdk/media/999cca57ee98b89bfe5f012ee445766c.png diff --git a/docs/tooling/unity-sdk/media/999cca57ee98b89bfe5f012ee445766d.png b/docs/tools/clients/unity-sdk/media/999cca57ee98b89bfe5f012ee445766d.png similarity index 100% rename from docs/tooling/unity-sdk/media/999cca57ee98b89bfe5f012ee445766d.png rename to docs/tools/clients/unity-sdk/media/999cca57ee98b89bfe5f012ee445766d.png diff --git a/docs/tooling/unity-sdk/media/AppendixDeployContract.png b/docs/tools/clients/unity-sdk/media/AppendixDeployContract.png similarity index 100% rename from docs/tooling/unity-sdk/media/AppendixDeployContract.png rename to docs/tools/clients/unity-sdk/media/AppendixDeployContract.png diff --git a/docs/tooling/unity-sdk/media/AppendixNewAccount.png b/docs/tools/clients/unity-sdk/media/AppendixNewAccount.png similarity index 100% rename from docs/tooling/unity-sdk/media/AppendixNewAccount.png rename to docs/tools/clients/unity-sdk/media/AppendixNewAccount.png diff --git a/docs/tooling/unity-sdk/media/AppendixTextReplacement.png b/docs/tools/clients/unity-sdk/media/AppendixTextReplacement.png similarity index 100% rename from docs/tooling/unity-sdk/media/AppendixTextReplacement.png rename to docs/tools/clients/unity-sdk/media/AppendixTextReplacement.png diff --git a/docs/tooling/unity-sdk/media/FlowControlAccounts.png b/docs/tools/clients/unity-sdk/media/FlowControlAccounts.png similarity index 100% rename from docs/tooling/unity-sdk/media/FlowControlAccounts.png rename to docs/tools/clients/unity-sdk/media/FlowControlAccounts.png diff --git a/docs/tooling/unity-sdk/media/FlowControlDataAsset.png b/docs/tools/clients/unity-sdk/media/FlowControlDataAsset.png similarity index 100% rename from docs/tooling/unity-sdk/media/FlowControlDataAsset.png rename to docs/tools/clients/unity-sdk/media/FlowControlDataAsset.png diff --git a/docs/tooling/unity-sdk/media/FlowControlEmulator.png b/docs/tools/clients/unity-sdk/media/FlowControlEmulator.png similarity index 100% rename from docs/tooling/unity-sdk/media/FlowControlEmulator.png rename to docs/tools/clients/unity-sdk/media/FlowControlEmulator.png diff --git a/docs/tooling/unity-sdk/media/FlowControlInspector.png b/docs/tools/clients/unity-sdk/media/FlowControlInspector.png similarity index 100% rename from docs/tooling/unity-sdk/media/FlowControlInspector.png rename to docs/tools/clients/unity-sdk/media/FlowControlInspector.png diff --git a/docs/tooling/unity-sdk/media/FlowControlTextReplacement.png b/docs/tools/clients/unity-sdk/media/FlowControlTextReplacement.png similarity index 100% rename from docs/tooling/unity-sdk/media/FlowControlTextReplacement.png rename to docs/tools/clients/unity-sdk/media/FlowControlTextReplacement.png diff --git a/docs/tooling/unity-sdk/media/FlowControlTools.png b/docs/tools/clients/unity-sdk/media/FlowControlTools.png similarity index 100% rename from docs/tooling/unity-sdk/media/FlowControlTools.png rename to docs/tools/clients/unity-sdk/media/FlowControlTools.png diff --git a/docs/tooling/unity-sdk/media/Lilico_Settings.jpg b/docs/tools/clients/unity-sdk/media/Lilico_Settings.jpg similarity index 100% rename from docs/tooling/unity-sdk/media/Lilico_Settings.jpg rename to docs/tools/clients/unity-sdk/media/Lilico_Settings.jpg diff --git a/docs/tooling/unity-sdk/media/Lilico_TestnetEnable.jpg b/docs/tools/clients/unity-sdk/media/Lilico_TestnetEnable.jpg similarity index 100% rename from docs/tooling/unity-sdk/media/Lilico_TestnetEnable.jpg rename to docs/tools/clients/unity-sdk/media/Lilico_TestnetEnable.jpg diff --git a/docs/tooling/unity-sdk/media/aeda525491f7b1b329e57ac7d07fa997.png b/docs/tools/clients/unity-sdk/media/aeda525491f7b1b329e57ac7d07fa997.png similarity index 100% rename from docs/tooling/unity-sdk/media/aeda525491f7b1b329e57ac7d07fa997.png rename to docs/tools/clients/unity-sdk/media/aeda525491f7b1b329e57ac7d07fa997.png diff --git a/docs/tooling/unity-sdk/media/b33bd58a6b1085948b1fbc9b40b2f2b3.png b/docs/tools/clients/unity-sdk/media/b33bd58a6b1085948b1fbc9b40b2f2b3.png similarity index 100% rename from docs/tooling/unity-sdk/media/b33bd58a6b1085948b1fbc9b40b2f2b3.png rename to docs/tools/clients/unity-sdk/media/b33bd58a6b1085948b1fbc9b40b2f2b3.png diff --git a/docs/tooling/unity-sdk/media/bac9d81383b8aeacab6e2f757f6c5f1c.png b/docs/tools/clients/unity-sdk/media/bac9d81383b8aeacab6e2f757f6c5f1c.png similarity index 100% rename from docs/tooling/unity-sdk/media/bac9d81383b8aeacab6e2f757f6c5f1c.png rename to docs/tools/clients/unity-sdk/media/bac9d81383b8aeacab6e2f757f6c5f1c.png diff --git a/docs/tooling/unity-sdk/media/bd9262a67638aa9c519921629e8c9075.png b/docs/tools/clients/unity-sdk/media/bd9262a67638aa9c519921629e8c9075.png similarity index 100% rename from docs/tooling/unity-sdk/media/bd9262a67638aa9c519921629e8c9075.png rename to docs/tools/clients/unity-sdk/media/bd9262a67638aa9c519921629e8c9075.png diff --git a/docs/tooling/unity-sdk/media/bd9b6a0a7261d3c605aad9760a304220.png b/docs/tools/clients/unity-sdk/media/bd9b6a0a7261d3c605aad9760a304220.png similarity index 100% rename from docs/tooling/unity-sdk/media/bd9b6a0a7261d3c605aad9760a304220.png rename to docs/tools/clients/unity-sdk/media/bd9b6a0a7261d3c605aad9760a304220.png diff --git a/docs/tooling/unity-sdk/media/be2bc6569ca5a475b3c147cf34f07c1a.png b/docs/tools/clients/unity-sdk/media/be2bc6569ca5a475b3c147cf34f07c1a.png similarity index 100% rename from docs/tooling/unity-sdk/media/be2bc6569ca5a475b3c147cf34f07c1a.png rename to docs/tools/clients/unity-sdk/media/be2bc6569ca5a475b3c147cf34f07c1a.png diff --git a/docs/tooling/unity-sdk/media/c680c8f205102d2dd4254e0a5a4664b0.png b/docs/tools/clients/unity-sdk/media/c680c8f205102d2dd4254e0a5a4664b0.png similarity index 100% rename from docs/tooling/unity-sdk/media/c680c8f205102d2dd4254e0a5a4664b0.png rename to docs/tools/clients/unity-sdk/media/c680c8f205102d2dd4254e0a5a4664b0.png diff --git a/docs/tooling/unity-sdk/media/cc91513990fc19f6348a32ba3770c543.png b/docs/tools/clients/unity-sdk/media/cc91513990fc19f6348a32ba3770c543.png similarity index 100% rename from docs/tooling/unity-sdk/media/cc91513990fc19f6348a32ba3770c543.png rename to docs/tools/clients/unity-sdk/media/cc91513990fc19f6348a32ba3770c543.png diff --git a/docs/tooling/unity-sdk/media/d4ef2f464230b54400ff46b92f2eb01e.png b/docs/tools/clients/unity-sdk/media/d4ef2f464230b54400ff46b92f2eb01e.png similarity index 100% rename from docs/tooling/unity-sdk/media/d4ef2f464230b54400ff46b92f2eb01e.png rename to docs/tools/clients/unity-sdk/media/d4ef2f464230b54400ff46b92f2eb01e.png diff --git a/docs/tooling/unity-sdk/media/db2741c083bc677b767e5f2973f63e1b.png b/docs/tools/clients/unity-sdk/media/db2741c083bc677b767e5f2973f63e1b.png similarity index 100% rename from docs/tooling/unity-sdk/media/db2741c083bc677b767e5f2973f63e1b.png rename to docs/tools/clients/unity-sdk/media/db2741c083bc677b767e5f2973f63e1b.png diff --git a/docs/tooling/unity-sdk/media/e6a3c62a95440af5c38b47c9efa27a72.png b/docs/tools/clients/unity-sdk/media/e6a3c62a95440af5c38b47c9efa27a72.png similarity index 100% rename from docs/tooling/unity-sdk/media/e6a3c62a95440af5c38b47c9efa27a72.png rename to docs/tools/clients/unity-sdk/media/e6a3c62a95440af5c38b47c9efa27a72.png diff --git a/docs/tooling/unity-sdk/media/e81ec10f19a1f9d51f1ffaa102115244.png b/docs/tools/clients/unity-sdk/media/e81ec10f19a1f9d51f1ffaa102115244.png similarity index 100% rename from docs/tooling/unity-sdk/media/e81ec10f19a1f9d51f1ffaa102115244.png rename to docs/tools/clients/unity-sdk/media/e81ec10f19a1f9d51f1ffaa102115244.png diff --git a/docs/tooling/unity-sdk/media/e96f948858a786b5e26fa08cbcc2c260.png b/docs/tools/clients/unity-sdk/media/e96f948858a786b5e26fa08cbcc2c260.png similarity index 100% rename from docs/tooling/unity-sdk/media/e96f948858a786b5e26fa08cbcc2c260.png rename to docs/tools/clients/unity-sdk/media/e96f948858a786b5e26fa08cbcc2c260.png diff --git a/docs/tooling/unity-sdk/media/eb0fba4dbd9a040424afb3182e5ce345.png b/docs/tools/clients/unity-sdk/media/eb0fba4dbd9a040424afb3182e5ce345.png similarity index 100% rename from docs/tooling/unity-sdk/media/eb0fba4dbd9a040424afb3182e5ce345.png rename to docs/tools/clients/unity-sdk/media/eb0fba4dbd9a040424afb3182e5ce345.png diff --git a/docs/tooling/unity-sdk/media/ecac86c8af7414ac22e95f64340acc44.png b/docs/tools/clients/unity-sdk/media/ecac86c8af7414ac22e95f64340acc44.png similarity index 100% rename from docs/tooling/unity-sdk/media/ecac86c8af7414ac22e95f64340acc44.png rename to docs/tools/clients/unity-sdk/media/ecac86c8af7414ac22e95f64340acc44.png diff --git a/docs/tooling/unity-sdk/media/ed8abd462a98bd71a9abe6a66c04d958.png b/docs/tools/clients/unity-sdk/media/ed8abd462a98bd71a9abe6a66c04d958.png similarity index 100% rename from docs/tooling/unity-sdk/media/ed8abd462a98bd71a9abe6a66c04d958.png rename to docs/tools/clients/unity-sdk/media/ed8abd462a98bd71a9abe6a66c04d958.png diff --git a/docs/tooling/unity-sdk/media/f0dfb75d21cf7462d7f0aaf199d97b27.png b/docs/tools/clients/unity-sdk/media/f0dfb75d21cf7462d7f0aaf199d97b27.png similarity index 100% rename from docs/tooling/unity-sdk/media/f0dfb75d21cf7462d7f0aaf199d97b27.png rename to docs/tools/clients/unity-sdk/media/f0dfb75d21cf7462d7f0aaf199d97b27.png diff --git a/docs/tooling/unity-sdk/media/f30282a8889db37965bcd49b209ac614.png b/docs/tools/clients/unity-sdk/media/f30282a8889db37965bcd49b209ac614.png similarity index 100% rename from docs/tooling/unity-sdk/media/f30282a8889db37965bcd49b209ac614.png rename to docs/tools/clients/unity-sdk/media/f30282a8889db37965bcd49b209ac614.png diff --git a/docs/tooling/unity-sdk/media/f6a8324547c8ec499a2eb68248091ba3.png b/docs/tools/clients/unity-sdk/media/f6a8324547c8ec499a2eb68248091ba3.png similarity index 100% rename from docs/tooling/unity-sdk/media/f6a8324547c8ec499a2eb68248091ba3.png rename to docs/tools/clients/unity-sdk/media/f6a8324547c8ec499a2eb68248091ba3.png diff --git a/docs/tooling/unity-sdk/media/f8bf765df950289fd3d1b7dc8e73d545.png b/docs/tools/clients/unity-sdk/media/f8bf765df950289fd3d1b7dc8e73d545.png similarity index 100% rename from docs/tooling/unity-sdk/media/f8bf765df950289fd3d1b7dc8e73d545.png rename to docs/tools/clients/unity-sdk/media/f8bf765df950289fd3d1b7dc8e73d545.png diff --git a/docs/tooling/unity-sdk/media/fd52a768f2367b763980b22d85479305.png b/docs/tools/clients/unity-sdk/media/fd52a768f2367b763980b22d85479305.png similarity index 100% rename from docs/tooling/unity-sdk/media/fd52a768f2367b763980b22d85479305.png rename to docs/tools/clients/unity-sdk/media/fd52a768f2367b763980b22d85479305.png diff --git a/docs/tooling/unity-sdk/media/fe0ccbbb8fb583dd7c461a1436d9206c.png b/docs/tools/clients/unity-sdk/media/fe0ccbbb8fb583dd7c461a1436d9206c.png similarity index 100% rename from docs/tooling/unity-sdk/media/fe0ccbbb8fb583dd7c461a1436d9206c.png rename to docs/tools/clients/unity-sdk/media/fe0ccbbb8fb583dd7c461a1436d9206c.png diff --git a/docs/tooling/unity-sdk/samples/flow-words-sample.md b/docs/tools/clients/unity-sdk/samples/flow-words-sample.md similarity index 100% rename from docs/tooling/unity-sdk/samples/flow-words-sample.md rename to docs/tools/clients/unity-sdk/samples/flow-words-sample.md diff --git a/docs/tooling/unity-sdk/samples/flow-words-tutorial.md b/docs/tools/clients/unity-sdk/samples/flow-words-tutorial.md similarity index 100% rename from docs/tooling/unity-sdk/samples/flow-words-tutorial.md rename to docs/tools/clients/unity-sdk/samples/flow-words-tutorial.md diff --git a/docs/tooling/unity-sdk/samples/nft-browser.md b/docs/tools/clients/unity-sdk/samples/nft-browser.md similarity index 86% rename from docs/tooling/unity-sdk/samples/nft-browser.md rename to docs/tools/clients/unity-sdk/samples/nft-browser.md index e057fef59c..5d6f1723d0 100644 --- a/docs/tooling/unity-sdk/samples/nft-browser.md +++ b/docs/tools/clients/unity-sdk/samples/nft-browser.md @@ -1,7 +1,6 @@ # Simple NFT Viewer -This example project will show you how to build a simple viewer that will allow you to view NFTs that conform -to the [NFT](https://github.com/onflow/flow-nft) and [MetadataViews](https://github.com/onflow/flow-nft#nft-metadata) standards. +This example project will show you how to build a simple viewer that will allow you to view NFTs that conform to the [NFT](https://github.com/onflow/flow-nft) and [MetadataViews](https://github.com/onflow/flow-nft#nft-metadata) standards. This tutorial will mostly ignore the C# code that actually displays the NFTs and focus on a high level summary of the steps used. @@ -14,8 +13,7 @@ When querying the blockchain we utilize four scripts: * [GetDisplayDataForIDs.cdc](Cadence/GetDisplayDataForIDs.cdc) - Gets just the display data for a given NFT * [GetFullDataForID.cdc](Cadence/GetFullDataForID.cdc) - Gets a more comprehensive set of data for a single NFT. ``` -While we could use a single script to query for all the data, larger collections will cause the script to time out. Instead -we query for just the data we need to reduce the chances of a timeout occurring. +While we could use a single script to query for all the data, larger collections will cause the script to time out. Instead we query for just the data we need to reduce the chances of a timeout occurring. ## Finding Collections @@ -49,13 +47,11 @@ 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](../../../../cadence/language/accounts.mdx#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 -We use this to create a list of collection paths a user can pick from. When the user selects a path to view, we fetch a -list of IDs contained in that collection: +We use this to create a list of collection paths a user can pick from. When the user selects a path to view, we fetch a list of IDs contained in that collection: ```cadence import NonFungibleToken from 0x1d7e57aa55817448 @@ -109,8 +105,7 @@ pub fun main(addr: Address, path: StoragePath, ids: [UInt64]) : {UInt64:AnyStruc return returnData } ``` -This gives us a dictionary that maps NFT IDs to Display structs (```{UInt64:MetadataViews.Display}```). Because accessing this -information can be tedious in C#, we can define some C# classes to make our lives easier: +This gives us a dictionary that maps NFT IDs to Display structs (```{UInt64:MetadataViews.Display}```). Because accessing this information can be tedious in C#, we can define some C# classes to make our lives easier: ```csharp public class File @@ -136,9 +131,7 @@ This line in NFTViewer.cs is an example of converting using Cadence.Convert: Dictionary displayData = Convert.FromCadence>(scriptResponseTask.Result.Value); ``` -You might ask whey we don't combine GetNftIdsForCollection.cdc and GetDisplayDataForIDs.cdc to get the Display data at the -same time we get the list of IDs. This approach would work in many cases, but when an account contains large numbers of NFTs, -this could cause a script timeout. Getting the list of IDs is a cheap call because the NFT contains this list in an array already. +You might ask whey we don't combine GetNftIdsForCollection.cdc and GetDisplayDataForIDs.cdc to get the Display data at the same time we get the list of IDs. This approach would work in many cases, but when an account contains large numbers of NFTs, this could cause a script timeout. Getting the list of IDs is a cheap call because the NFT contains this list in an array already. By getting just the NFT IDs, we could implement paging and use multiple script calls to each fetch a portion of the display data. This example doesn't currently do this type of paging, but could do so without modifying the cadence scripts. @@ -230,13 +223,11 @@ pub fun main(addr: Address, path: StoragePath, id: UInt64) : NFTData? { return nftData } ``` -Here we define a struct NFTData that will contain all the different information we want and fill the struct via multiple -resolveView calls. +Here we define a struct NFTData that will contain all the different information we want and fill the struct via multiple resolveView calls. ## C# Classes for Easy Converting -The end of NFTViewer.cs contains classes that we use to more easily convert from Cadence into C#. One thing to note is that -the Cadence structs contain Optionals, like: +The end of NFTViewer.cs contains classes that we use to more easily convert from Cadence into C#. One thing to note is that the Cadence structs contain Optionals, like: ```var IPFSFile: AnyStruct?``` @@ -244,8 +235,7 @@ while the C# versions do not, such as ```public IPFSFile IPFSFile;``` -This is because we are declaring them as Classes, not Structs. Classes in C# are reference types, which can automatically be -null. We could have used Structs, in which case we'd have to use: +This is because we are declaring them as Classes, not Structs. Classes in C# are reference types, which can automatically be null. We could have used Structs, in which case we'd have to use: ```public IPFSFile? IPFSFile``` @@ -294,8 +284,6 @@ pub struct IPFSFile: File { } ``` -This allows Cadence.Convert to convert either an HTTPFile or an IPFSFile into a File object. We can then check which fields -are populated to determine which it was initially. +This allows Cadence.Convert to convert either an HTTPFile or an IPFSFile into a File object. We can then check which fields are populated to determine which it was initially. -This works fine for this simple viewer, but a more robust approach might be to create a ResolvedFile struct in the cadence script which -has a single uri field and populates it by calling the uri() function on whatever File type was retrieved. +This works fine for this simple viewer, but a more robust approach might be to create a ResolvedFile struct in the cadence script which has a single uri field and populates it by calling the uri() function on whatever File type was retrieved. diff --git a/docs/tooling/unity-sdk/samples/nft-example.md b/docs/tools/clients/unity-sdk/samples/nft-example.md similarity index 99% rename from docs/tooling/unity-sdk/samples/nft-example.md rename to docs/tools/clients/unity-sdk/samples/nft-example.md index 069fb2a501..85775f67fc 100644 --- a/docs/tooling/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.mdx) +We recommend reading through the [NFT tutorial](../../../../cadence/tutorial/05-non-fungible-tokens-1.mdx) 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/tooling/unity-sdk/samples/quickstart.md b/docs/tools/clients/unity-sdk/samples/quickstart.md similarity index 99% rename from docs/tooling/unity-sdk/samples/quickstart.md rename to docs/tools/clients/unity-sdk/samples/quickstart.md index a1c1635fec..eaf78cd4af 100644 --- a/docs/tooling/unity-sdk/samples/quickstart.md +++ b/docs/tools/clients/unity-sdk/samples/quickstart.md @@ -5,7 +5,7 @@ using the FlowControl and Flow SDK. ## Prerequisites Ensure you have flow-cli installed. This will allow us to use an emulated flow environment. -You can install it by following the instructions at [Flow CLI](../../flow-cli/install.md) +You can install it by following the instructions at [Flow CLI](../../../toolchains/flow-cli/install.md) ## Sample walk through You can follow along in FlowControlExample.cs @@ -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](../../../../cadence/language/index.md) First we'll define the script that we want to run: diff --git a/docs/tooling/unity-sdk/samples/ui-usage.md b/docs/tools/clients/unity-sdk/samples/ui-usage.md similarity index 97% rename from docs/tooling/unity-sdk/samples/ui-usage.md rename to docs/tools/clients/unity-sdk/samples/ui-usage.md index 81c0383187..baabaf307a 100644 --- a/docs/tooling/unity-sdk/samples/ui-usage.md +++ b/docs/tools/clients/unity-sdk/samples/ui-usage.md @@ -21,7 +21,7 @@ This will import the sample into a Samples folder under your Assets: To install the Flow emulator, please follow the instructions for your platform here: -[flow-cli/install](../../flow-cli/index.md) +[flow-cli/install](../../../toolchains/flow-cli/index.md) Note that the Flow CLI and Flow emulator are bundled into the same command-line executable. @@ -199,7 +199,7 @@ flow.AccountContractRemoved ### Scripts -Scripts are cadence code that you write and are executed on the blockchain. They can contain arguments and return values, and can interact with Smart Contracts. Scripts are read-only - they cannot mutate anything on the blockchain. Anything held in local memory is discarded when the script finishes execution. For more information on programming see [Cadence](../../../cadence/intro.md). +Scripts are cadence code that you write and are executed on the blockchain. They can contain arguments and return values, and can interact with Smart Contracts. Scripts are read-only - they cannot mutate anything on the blockchain. Anything held in local memory is discarded when the script finishes execution. For more information on programming see [Cadence](../../../../cadence/intro.md). **Execute Simple Script At Latest Block** @@ -253,11 +253,11 @@ 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](../../../../cadence/language/transactions.md). -For more information about Transaction signing, see [concepts/transaction-signing](../../../concepts/start-here/transaction-signing.md). +For more information about Transaction signing, see [concepts/transaction-signing](../../../../concepts/start-here/transaction-signing.md). -For more information about Cadence programming, see [cadence](../../../cadence/intro.md). +For more information about Cadence programming, see [cadence](../../../../cadence/intro.md). **Signing In** @@ -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](../../../../cadence/language/contract-updatability.md). diff --git a/docs/tools/index.mdx b/docs/tools/index.mdx new file mode 100644 index 0000000000..a61543a067 --- /dev/null +++ b/docs/tools/index.mdx @@ -0,0 +1,11 @@ +--- +sidebar_position: 1 +title: Tools +description: Essential tools for the Flow blockchain ecosystem +--- + +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/tools/network-faucets.md b/docs/tools/network-faucets.md new file mode 100644 index 0000000000..cb1e5cf8c2 --- /dev/null +++ b/docs/tools/network-faucets.md @@ -0,0 +1,12 @@ +--- +sidebar_position: 5 +description: Get free Flow tokens for testing. Faucets are like taps for tokens, useful for trying Flow without buying tokens. +--- + +# Network Faucets + +## Flow Faucet +[Flow Faucet](https://testnet-faucet.onflow.org/) is a tool that allows to distribute small amounts of a token to its users for testing and development purposes. This faucet allows you to create an account on the specified network as well as fund small amounts of crypto to any account on these networks. + +### Supported networks +- testnet - https://testnet-faucet.onflow.org/ diff --git a/docs/tools/node-providers.md b/docs/tools/node-providers.md new file mode 100644 index 0000000000..90a1678c40 --- /dev/null +++ b/docs/tools/node-providers.md @@ -0,0 +1,27 @@ +--- +sidebar_position: 1 +description: | + Easy access to Flow's blockchain. Providers handle the technical work, letting you use Flow's features without managing nodes yourself. + - Quick node + - Tatum +--- + +# Node Providers + +## Quick Node + +[QuickNode](https://www.quicknode.com/chains/flow) is a service that provides access to blockchain infrastructure for developers, businesses, and anyone who needs reliable and fast access to blockchain networks. QuickNode allows users to connect to these networks without having to run their own full nodes, which can be resource-intensive. + +### Supported Networks + +- testnet +- mainnet + +## Tatum + +[Tatum](https://tatum.io/) is a platform that provides infrastructure, SDK, and unified API to build, test, and run blockchain apps. You don't need to worry about blockchain node configuration or maintenance, and you don't need to learn to code for individual blockchains. + +### Supported Networks + +- testnet +- mainnet diff --git a/docs/tools/toolchains/_category_.yml b/docs/tools/toolchains/_category_.yml new file mode 100644 index 0000000000..58e65a541c --- /dev/null +++ b/docs/tools/toolchains/_category_.yml @@ -0,0 +1,4 @@ +position: 7 +label: Toolchains +customProps: + description: Curated sets of interconnected software tools that collaboratively enhance the development process for the Flow blockchain ecosystem, optimizing tasks and workflows for efficiency and consistency. diff --git a/docs/tooling/emulator/index.md b/docs/tools/toolchains/emulator/index.md similarity index 96% rename from docs/tooling/emulator/index.md rename to docs/tools/toolchains/emulator/index.md index affe73c496..b428f06a62 100644 --- a/docs/tooling/emulator/index.md +++ b/docs/tools/toolchains/emulator/index.md @@ -1,7 +1,6 @@ --- title: Flow Emulator description: A development tool that looks, acts and talks like Flow -sidebar_label: Introduction sidebar_position: 2 --- diff --git a/docs/tooling/fcl-dev-wallet/_category_.json b/docs/tools/toolchains/fcl-dev-wallet/_category_.json similarity index 100% rename from docs/tooling/fcl-dev-wallet/_category_.json rename to docs/tools/toolchains/fcl-dev-wallet/_category_.json diff --git a/docs/tooling/fcl-dev-wallet/overview.md b/docs/tools/toolchains/fcl-dev-wallet/index.md similarity index 94% rename from docs/tooling/fcl-dev-wallet/overview.md rename to docs/tools/toolchains/fcl-dev-wallet/index.md index 943e35efc9..980bbde3f1 100644 --- a/docs/tooling/fcl-dev-wallet/overview.md +++ b/docs/tools/toolchains/fcl-dev-wallet/index.md @@ -1,6 +1,6 @@ ## Introduction -The FCL dev wallet is a mock Flow wallet that simulates the protocols used by [FCL](../fcl-js/index.md) to interact with the Flow blockchain on behalf of simulated user accounts. +The FCL dev wallet is a mock Flow wallet that simulates the protocols used by [FCL](../../clients/fcl-js/index.md) to interact with the Flow blockchain on behalf of simulated user accounts. **IMPORTANT** diff --git a/docs/tooling/flow-cadut/_category_.json b/docs/tools/toolchains/flow-cadut/_category_.json similarity index 100% rename from docs/tooling/flow-cadut/_category_.json rename to docs/tools/toolchains/flow-cadut/_category_.json diff --git a/docs/tooling/flow-cadut/api.md b/docs/tools/toolchains/flow-cadut/api.md similarity index 96% rename from docs/tooling/flow-cadut/api.md rename to docs/tools/toolchains/flow-cadut/api.md index 956f89dab7..7a57bbf30f 100644 --- a/docs/tooling/flow-cadut/api.md +++ b/docs/tools/toolchains/flow-cadut/api.md @@ -825,9 +825,9 @@ Sends script to the network | Name | Type | Optional | Description | | ------------ | --------------------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | | `code` | string | | Cadence code to execute | -| `payer` | [AuthorizationFunction](../fcl-js/api.md#authorizationfunction) | | The authorization function that returns a valid [AuthorizationObject](../fcl-js/api.md#authorizationobject) for the payer role. | -| `signers` | [AuthorizationFunction] | βœ… | an array of [AuthorizationObject](../fcl-js/api.md#authorizationobject) representing transaction authorizers. Default: same as `payer` | -| `proposer` | [AuthorizationFunction](../fcl-js/api.md#authorizationfunction) | βœ… | The authorization function that returns a valid [AuthorizationObject](../fcl-js/api.md#authorizationobject) for the proposer role. Default: same as `payer` | +| `payer` | [AuthorizationFunction](../../clients/fcl-js/api.md#authorizationfunction) | | The authorization function that returns a valid [AuthorizationObject](../../clients/fcl-js/api.md#authorizationobject) for the payer role. | +| `signers` | [AuthorizationFunction] | βœ… | an array of [AuthorizationObject](../../clients/fcl-js/api.md#authorizationobject) representing transaction authorizers. Default: same as `payer` | +| `proposer` | [AuthorizationFunction](../../clients/fcl-js/api.md#authorizationfunction) | βœ… | The authorization function that returns a valid [AuthorizationObject](../../clients/fcl-js/api.md#authorizationobject) for the proposer role. Default: same as `payer` | | `args` | [Any] | βœ… | Optional if transactions does not expect arguments. Default: `[]` | | `addressMap` | [AddressMap](#AddressMap) | βœ… | address map to use for import replacement. Default: `{}` | | `limit` | number | βœ… | gas limit. Default: `100` | @@ -841,7 +841,7 @@ Transaction result is represented as a tuple `[result, error]` | Name | Type | Description | | ------------------------------------------------- | ----- | ---------------------------------------------------------------------------------- | -| [ResponseObject](../fcl-js/api.md#responseobject) | any | result of transaction execution. Type of this value depends on script return value | +| [ResponseObject](../../clients/fcl-js/api.md#responseobject) | any | result of transaction execution. Type of this value depends on script return value | | `error` | error | Caught error. This will be `null` if script executed successfully | #### Usage diff --git a/docs/tooling/flow-cadut/generator.md b/docs/tools/toolchains/flow-cadut/generator.md similarity index 100% rename from docs/tooling/flow-cadut/generator.md rename to docs/tools/toolchains/flow-cadut/generator.md diff --git a/docs/tooling/flow-cadut/plugins.md b/docs/tools/toolchains/flow-cadut/plugins.md similarity index 100% rename from docs/tooling/flow-cadut/plugins.md rename to docs/tools/toolchains/flow-cadut/plugins.md diff --git a/docs/tooling/flow-cli/README.md b/docs/tools/toolchains/flow-cli/README.md similarity index 100% rename from docs/tooling/flow-cli/README.md rename to docs/tools/toolchains/flow-cli/README.md diff --git a/docs/tooling/flow-cli/_template.md b/docs/tools/toolchains/flow-cli/_template.md similarity index 100% rename from docs/tooling/flow-cli/_template.md rename to docs/tools/toolchains/flow-cli/_template.md diff --git a/docs/tooling/flow-cli/accounts/_category_.json b/docs/tools/toolchains/flow-cli/accounts/_category_.json similarity index 100% rename from docs/tooling/flow-cli/accounts/_category_.json rename to docs/tools/toolchains/flow-cli/accounts/_category_.json diff --git a/docs/tooling/flow-cli/accounts/account-add-contract.md b/docs/tools/toolchains/flow-cli/accounts/account-add-contract.md similarity index 97% rename from docs/tooling/flow-cli/accounts/account-add-contract.md rename to docs/tools/toolchains/flow-cli/accounts/account-add-contract.md index eaab1c9660..18410c61d8 100644 --- a/docs/tooling/flow-cli/accounts/account-add-contract.md +++ b/docs/tools/toolchains/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](../../../../cadence/json-cadence-spec.md) 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](../../../../cadence/json-cadence-spec.md). ### Include Fields diff --git a/docs/tooling/flow-cli/accounts/account-remove-contract.md b/docs/tools/toolchains/flow-cli/accounts/account-remove-contract.md similarity index 100% rename from docs/tooling/flow-cli/accounts/account-remove-contract.md rename to docs/tools/toolchains/flow-cli/accounts/account-remove-contract.md diff --git a/docs/tooling/flow-cli/accounts/account-staking-info.md b/docs/tools/toolchains/flow-cli/accounts/account-staking-info.md similarity index 97% rename from docs/tooling/flow-cli/accounts/account-staking-info.md rename to docs/tools/toolchains/flow-cli/accounts/account-staking-info.md index d06a07f649..9bd662a5dd 100644 --- a/docs/tooling/flow-cli/accounts/account-staking-info.md +++ b/docs/tools/toolchains/flow-cli/accounts/account-staking-info.md @@ -49,7 +49,7 @@ Account Delegation Info: - Name: `address` - Valid Input: Flow account address. -Flow [account address](../../../concepts/start-here/accounts-and-keys.md) (prefixed with `0x` or not). +Flow [account address](../../../../concepts/start-here/accounts-and-keys.md) (prefixed with `0x` or not). ## Flags diff --git a/docs/tooling/flow-cli/accounts/account-update-contract.md b/docs/tools/toolchains/flow-cli/accounts/account-update-contract.md similarity index 97% rename from docs/tooling/flow-cli/accounts/account-update-contract.md rename to docs/tools/toolchains/flow-cli/accounts/account-update-contract.md index 0c15474a34..8442dcb133 100644 --- a/docs/tooling/flow-cli/accounts/account-update-contract.md +++ b/docs/tools/toolchains/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](../../../../cadence/json-cadence-spec.md) 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](../../../../cadence/json-cadence-spec.md). ### Include Fields diff --git a/docs/tooling/flow-cli/accounts/create-accounts.md b/docs/tools/toolchains/flow-cli/accounts/create-accounts.md similarity index 100% rename from docs/tooling/flow-cli/accounts/create-accounts.md rename to docs/tools/toolchains/flow-cli/accounts/create-accounts.md diff --git a/docs/tooling/flow-cli/accounts/get-accounts.md b/docs/tools/toolchains/flow-cli/accounts/get-accounts.md similarity index 96% rename from docs/tooling/flow-cli/accounts/get-accounts.md rename to docs/tools/toolchains/flow-cli/accounts/get-accounts.md index 6f66991977..61e2f520ee 100644 --- a/docs/tooling/flow-cli/accounts/get-accounts.md +++ b/docs/tools/toolchains/flow-cli/accounts/get-accounts.md @@ -44,7 +44,7 @@ Contract: 'FlowStorageFees' - Name: `address` - Valid Input: Flow account address -Flow [account address](../../../concepts/start-here/accounts-and-keys.md) (prefixed with `0x` or not). +Flow [account address](../../../../concepts/start-here/accounts-and-keys.md) (prefixed with `0x` or not). ## Flags diff --git a/docs/tooling/flow-cli/data-collection.md b/docs/tools/toolchains/flow-cli/data-collection.md similarity index 100% rename from docs/tooling/flow-cli/data-collection.md rename to docs/tools/toolchains/flow-cli/data-collection.md diff --git a/docs/tooling/flow-cli/deployment/_category_.json b/docs/tools/toolchains/flow-cli/deployment/_category_.json similarity index 100% rename from docs/tooling/flow-cli/deployment/_category_.json rename to docs/tools/toolchains/flow-cli/deployment/_category_.json diff --git a/docs/tooling/flow-cli/deployment/deploy-project-contracts.md b/docs/tools/toolchains/flow-cli/deployment/deploy-project-contracts.md similarity index 100% rename from docs/tooling/flow-cli/deployment/deploy-project-contracts.md rename to docs/tools/toolchains/flow-cli/deployment/deploy-project-contracts.md diff --git a/docs/tooling/flow-cli/deployment/emulator-snapshot.md b/docs/tools/toolchains/flow-cli/deployment/emulator-snapshot.md similarity index 100% rename from docs/tooling/flow-cli/deployment/emulator-snapshot.md rename to docs/tools/toolchains/flow-cli/deployment/emulator-snapshot.md diff --git a/docs/tooling/flow-cli/deployment/project-contracts.md b/docs/tools/toolchains/flow-cli/deployment/project-contracts.md similarity index 100% rename from docs/tooling/flow-cli/deployment/project-contracts.md rename to docs/tools/toolchains/flow-cli/deployment/project-contracts.md diff --git a/docs/tooling/flow-cli/deployment/start-emulator.md b/docs/tools/toolchains/flow-cli/deployment/start-emulator.md similarity index 100% rename from docs/tooling/flow-cli/deployment/start-emulator.md rename to docs/tools/toolchains/flow-cli/deployment/start-emulator.md diff --git a/docs/tooling/flow-cli/flow.json/_category_.json b/docs/tools/toolchains/flow-cli/flow.json/_category_.json similarity index 100% rename from docs/tooling/flow-cli/flow.json/_category_.json rename to docs/tools/toolchains/flow-cli/flow.json/_category_.json diff --git a/docs/tooling/flow-cli/flow.json/configuration.md b/docs/tools/toolchains/flow-cli/flow.json/configuration.md similarity index 98% rename from docs/tooling/flow-cli/flow.json/configuration.md rename to docs/tools/toolchains/flow-cli/flow.json/configuration.md index 7634591f77..7ffd261efa 100644 --- a/docs/tooling/flow-cli/flow.json/configuration.md +++ b/docs/tools/toolchains/flow-cli/flow.json/configuration.md @@ -120,7 +120,7 @@ The advanced format allows us to specify aliases for each network. Using advanced format we can define `aliases`. Aliases define an address where the contract is already deployed for that specific network. In the example scenario below the contract `FungibleToken` would be imported from the address `9a0766d93b6608b7` when deploying to testnet network and address `ee82856bf20e2aa6` when deploying to the Flow emulator. -We can specify aliases for each network we have defined. When deploying to testnet it is always a good idea to specify aliases for all the [common contracts](../../../concepts/core-contracts/index.md) that have already been deployed to the testnet. +We can specify aliases for each network we have defined. When deploying to testnet it is always a good idea to specify aliases for all the [common contracts](../../../../concepts/core-contracts/index.md) that have already been deployed to the testnet. ⚠️ If we use an alias for the contract we should not specify it in the `deployment` section for that network. diff --git a/docs/tooling/flow-cli/flow.json/initialize-configuration.md b/docs/tools/toolchains/flow-cli/flow.json/initialize-configuration.md similarity index 100% rename from docs/tooling/flow-cli/flow.json/initialize-configuration.md rename to docs/tools/toolchains/flow-cli/flow.json/initialize-configuration.md diff --git a/docs/tooling/flow-cli/flow.json/manage-configuration.md b/docs/tools/toolchains/flow-cli/flow.json/manage-configuration.md similarity index 100% rename from docs/tooling/flow-cli/flow.json/manage-configuration.md rename to docs/tools/toolchains/flow-cli/flow.json/manage-configuration.md diff --git a/docs/tooling/flow-cli/flow.json/security.md b/docs/tools/toolchains/flow-cli/flow.json/security.md similarity index 100% rename from docs/tooling/flow-cli/flow.json/security.md rename to docs/tools/toolchains/flow-cli/flow.json/security.md diff --git a/docs/tooling/flow-cli/get-flow-data/_category_.json b/docs/tools/toolchains/flow-cli/get-flow-data/_category_.json similarity index 100% rename from docs/tooling/flow-cli/get-flow-data/_category_.json rename to docs/tools/toolchains/flow-cli/get-flow-data/_category_.json diff --git a/docs/tooling/flow-cli/get-flow-data/get-blocks.md b/docs/tools/toolchains/flow-cli/get-flow-data/get-blocks.md similarity index 97% rename from docs/tooling/flow-cli/get-flow-data/get-blocks.md rename to docs/tools/toolchains/flow-cli/get-flow-data/get-blocks.md index a9374b2be6..156d214976 100644 --- a/docs/tooling/flow-cli/get-flow-data/get-blocks.md +++ b/docs/tools/toolchains/flow-cli/get-flow-data/get-blocks.md @@ -64,7 +64,7 @@ Specify the block to retrieve by block ID or block height. - Name: `address` - Valid Input: Flow account address -Flow [account address](../../../concepts/start-here/accounts-and-keys.md) (prefixed with `0x` or not). +Flow [account address](../../../../concepts/start-here/accounts-and-keys.md) (prefixed with `0x` or not). ## Flags diff --git a/docs/tooling/flow-cli/get-flow-data/get-collections.md b/docs/tools/toolchains/flow-cli/get-flow-data/get-collections.md similarity index 100% rename from docs/tooling/flow-cli/get-flow-data/get-collections.md rename to docs/tools/toolchains/flow-cli/get-flow-data/get-collections.md diff --git a/docs/tooling/flow-cli/get-flow-data/get-events.md b/docs/tools/toolchains/flow-cli/get-flow-data/get-events.md similarity index 100% rename from docs/tooling/flow-cli/get-flow-data/get-events.md rename to docs/tools/toolchains/flow-cli/get-flow-data/get-events.md diff --git a/docs/tooling/flow-cli/get-flow-data/get-status.md b/docs/tools/toolchains/flow-cli/get-flow-data/get-status.md similarity index 100% rename from docs/tooling/flow-cli/get-flow-data/get-status.md rename to docs/tools/toolchains/flow-cli/get-flow-data/get-status.md diff --git a/docs/tooling/flow-cli/index.md b/docs/tools/toolchains/flow-cli/index.md similarity index 100% rename from docs/tooling/flow-cli/index.md rename to docs/tools/toolchains/flow-cli/index.md diff --git a/docs/tooling/flow-cli/install.md b/docs/tools/toolchains/flow-cli/install.md similarity index 100% rename from docs/tooling/flow-cli/install.md rename to docs/tools/toolchains/flow-cli/install.md diff --git a/docs/tooling/flow-cli/keys/_category_.json b/docs/tools/toolchains/flow-cli/keys/_category_.json similarity index 100% rename from docs/tooling/flow-cli/keys/_category_.json rename to docs/tools/toolchains/flow-cli/keys/_category_.json diff --git a/docs/tooling/flow-cli/keys/decode-keys.md b/docs/tools/toolchains/flow-cli/keys/decode-keys.md similarity index 100% rename from docs/tooling/flow-cli/keys/decode-keys.md rename to docs/tools/toolchains/flow-cli/keys/decode-keys.md diff --git a/docs/tooling/flow-cli/keys/derive-keys.md b/docs/tools/toolchains/flow-cli/keys/derive-keys.md similarity index 100% rename from docs/tooling/flow-cli/keys/derive-keys.md rename to docs/tools/toolchains/flow-cli/keys/derive-keys.md diff --git a/docs/tooling/flow-cli/keys/generate-keys.md b/docs/tools/toolchains/flow-cli/keys/generate-keys.md similarity index 98% rename from docs/tooling/flow-cli/keys/generate-keys.md rename to docs/tools/toolchains/flow-cli/keys/generate-keys.md index ef232345cc..e151a047f3 100644 --- a/docs/tooling/flow-cli/keys/generate-keys.md +++ b/docs/tools/toolchains/flow-cli/keys/generate-keys.md @@ -5,7 +5,7 @@ sidebar_position: 1 --- The Flow CLI provides a command to generate ECDSA key pairs -that can be [attached to new or existing Flow accounts](../../../concepts/start-here/accounts-and-keys.md). +that can be [attached to new or existing Flow accounts](../../../../concepts/start-here/accounts-and-keys.md). ```shell flow keys generate diff --git a/docs/tooling/flow-cli/scripts/_category_.json b/docs/tools/toolchains/flow-cli/scripts/_category_.json similarity index 100% rename from docs/tooling/flow-cli/scripts/_category_.json rename to docs/tools/toolchains/flow-cli/scripts/_category_.json diff --git a/docs/tooling/flow-cli/scripts/execute-scripts.md b/docs/tools/toolchains/flow-cli/scripts/execute-scripts.md similarity index 95% rename from docs/tooling/flow-cli/scripts/execute-scripts.md rename to docs/tools/toolchains/flow-cli/scripts/execute-scripts.md index 527cff0a61..dbb4da2d08 100644 --- a/docs/tooling/flow-cli/scripts/execute-scripts.md +++ b/docs/tools/toolchains/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](../../../../cadence/json-cadence-spec.md) 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](../../../../cadence/json-cadence-spec.md). ### Host diff --git a/docs/tooling/flow-cli/super-commands.md b/docs/tools/toolchains/flow-cli/super-commands.md similarity index 100% rename from docs/tooling/flow-cli/super-commands.md rename to docs/tools/toolchains/flow-cli/super-commands.md diff --git a/docs/tooling/flow-cli/tests/_category_.json b/docs/tools/toolchains/flow-cli/tests/_category_.json similarity index 100% rename from docs/tooling/flow-cli/tests/_category_.json rename to docs/tools/toolchains/flow-cli/tests/_category_.json diff --git a/docs/tooling/flow-cli/tests/run-tests.md b/docs/tools/toolchains/flow-cli/tests/run-tests.md similarity index 97% rename from docs/tooling/flow-cli/tests/run-tests.md rename to docs/tools/toolchains/flow-cli/tests/run-tests.md index 1776871815..9d6329fd3c 100644 --- a/docs/tooling/flow-cli/tests/run-tests.md +++ b/docs/tools/toolchains/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](../../../../cadence/testing-framework.mdx). ## Flags diff --git a/docs/tooling/flow-cli/transactions/_category_.json b/docs/tools/toolchains/flow-cli/transactions/_category_.json similarity index 100% rename from docs/tooling/flow-cli/transactions/_category_.json rename to docs/tools/toolchains/flow-cli/transactions/_category_.json diff --git a/docs/tooling/flow-cli/transactions/build-transactions.md b/docs/tools/toolchains/flow-cli/transactions/build-transactions.md similarity index 94% rename from docs/tooling/flow-cli/transactions/build-transactions.md rename to docs/tools/toolchains/flow-cli/transactions/build-transactions.md index 29a35de367..6c6b773efc 100644 --- a/docs/tooling/flow-cli/transactions/build-transactions.md +++ b/docs/tools/toolchains/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](../../../../cadence/json-cadence-spec.md) matching argument type in transaction code. Input arguments values matching corresponding types in the source code and passed in the same order. @@ -97,7 +97,7 @@ For passing complex argument values see [send transaction](./send-transactions.m - Default: service account Specify account address that will be paying for the transaction. -Read more about payers [here](../../../concepts/start-here/accounts-and-keys.md). +Read more about payers [here](../../../../concepts/start-here/accounts-and-keys.md). ### Proposer @@ -123,7 +123,7 @@ Specify key index for the proposer account. - Default: service account Additional authorizer addresses to add to the transaction. -Read more about authorizers [here](../../../concepts//start-here/accounts-and-keys.md). +Read more about authorizers [here](../../../../concepts//start-here/accounts-and-keys.md). ### Arguments JSON @@ -133,7 +133,7 @@ Read more about authorizers [here](../../../concepts//start-here/accounts-and-ke 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](../../../../cadence/json-cadence-spec.md). ### Gas Limit diff --git a/docs/tooling/flow-cli/transactions/complex-transactions.md b/docs/tools/toolchains/flow-cli/transactions/complex-transactions.md similarity index 96% rename from docs/tooling/flow-cli/transactions/complex-transactions.md rename to docs/tools/toolchains/flow-cli/transactions/complex-transactions.md index 960d5bd50f..53173e5a6a 100644 --- a/docs/tooling/flow-cli/transactions/complex-transactions.md +++ b/docs/tools/toolchains/flow-cli/transactions/complex-transactions.md @@ -54,7 +54,7 @@ transaction { ``` ### Single payer and proposer, multiple authorizers -A transaction that declares same payer and proposer but multiple authorizers each required to sign the transaction. Please note that the order of signing is important, and [the payer must sign last](../../../concepts/start-here/transaction-signing.md#payer-signs-last). +A transaction that declares same payer and proposer but multiple authorizers each required to sign the transaction. Please note that the order of signing is important, and [the payer must sign last](../../../../concepts/start-here/transaction-signing.md#payer-signs-last). Build the transaction: ```shell @@ -93,7 +93,7 @@ transaction { ### Different payer, proposer and authorizer A transaction that declares different payer, proposer and authorizer each signing separately. -Please note that the order of signing is important, and [the payer must sign last](../../../concepts/start-here/transaction-signing.md#payer-signs-last). +Please note that the order of signing is important, and [the payer must sign last](../../../../concepts/start-here/transaction-signing.md#payer-signs-last). Build the transaction: ```shell diff --git a/docs/tooling/flow-cli/transactions/decode-transactions.md b/docs/tools/toolchains/flow-cli/transactions/decode-transactions.md similarity index 100% rename from docs/tooling/flow-cli/transactions/decode-transactions.md rename to docs/tools/toolchains/flow-cli/transactions/decode-transactions.md diff --git a/docs/tooling/flow-cli/transactions/get-transactions.md b/docs/tools/toolchains/flow-cli/transactions/get-transactions.md similarity index 100% rename from docs/tooling/flow-cli/transactions/get-transactions.md rename to docs/tools/toolchains/flow-cli/transactions/get-transactions.md diff --git a/docs/tooling/flow-cli/transactions/send-signed-transactions.md b/docs/tools/toolchains/flow-cli/transactions/send-signed-transactions.md similarity index 100% rename from docs/tooling/flow-cli/transactions/send-signed-transactions.md rename to docs/tools/toolchains/flow-cli/transactions/send-signed-transactions.md diff --git a/docs/tooling/flow-cli/transactions/send-transactions.md b/docs/tools/toolchains/flow-cli/transactions/send-transactions.md similarity index 97% rename from docs/tooling/flow-cli/transactions/send-transactions.md rename to docs/tools/toolchains/flow-cli/transactions/send-transactions.md index eea2b4f87c..fea76adb73 100644 --- a/docs/tooling/flow-cli/transactions/send-transactions.md +++ b/docs/tools/toolchains/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](../../../../cadence/json-cadence-spec.md) 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](../../../../cadence/json-cadence-spec.md). ### Gas Limit diff --git a/docs/tooling/flow-cli/transactions/sign-transaction.md b/docs/tools/toolchains/flow-cli/transactions/sign-transaction.md similarity index 100% rename from docs/tooling/flow-cli/transactions/sign-transaction.md rename to docs/tools/toolchains/flow-cli/transactions/sign-transaction.md diff --git a/docs/tooling/flow-cli/utils/_category_.json b/docs/tools/toolchains/flow-cli/utils/_category_.json similarity index 100% rename from docs/tooling/flow-cli/utils/_category_.json rename to docs/tools/toolchains/flow-cli/utils/_category_.json diff --git a/docs/tooling/flow-cli/utils/signature-generate.md b/docs/tools/toolchains/flow-cli/utils/signature-generate.md similarity index 100% rename from docs/tooling/flow-cli/utils/signature-generate.md rename to docs/tools/toolchains/flow-cli/utils/signature-generate.md diff --git a/docs/tooling/flow-cli/utils/signature-verify.md b/docs/tools/toolchains/flow-cli/utils/signature-verify.md similarity index 100% rename from docs/tooling/flow-cli/utils/signature-verify.md rename to docs/tools/toolchains/flow-cli/utils/signature-verify.md diff --git a/docs/tooling/flow-cli/utils/snapshot-save.md b/docs/tools/toolchains/flow-cli/utils/snapshot-save.md similarity index 100% rename from docs/tooling/flow-cli/utils/snapshot-save.md rename to docs/tools/toolchains/flow-cli/utils/snapshot-save.md diff --git a/docs/tooling/flow-cli/utils/tools.md b/docs/tools/toolchains/flow-cli/utils/tools.md similarity index 100% rename from docs/tooling/flow-cli/utils/tools.md rename to docs/tools/toolchains/flow-cli/utils/tools.md diff --git a/docs/tooling/flow-js-testing/accounts.md b/docs/tools/toolchains/flow-js-testing/accounts.md similarity index 96% rename from docs/tooling/flow-js-testing/accounts.md rename to docs/tools/toolchains/flow-js-testing/accounts.md index 342cbe1901..807f1a5295 100644 --- a/docs/tooling/flow-js-testing/accounts.md +++ b/docs/tools/toolchains/flow-js-testing/accounts.md @@ -40,7 +40,7 @@ Resolves name alias to a Flow address (`0x` prefixed) under the following condit | Type | Description | | ------------------------------------------------------------- | ---------------------------------------- | -| [Address](../fcl-js/api.md#address) | `0x` prefixed address of aliased account | +| [Address](../../clients/fcl-js/api.md#address) | `0x` prefixed address of aliased account | #### Usage @@ -74,4 +74,4 @@ _Pass in the following as a single object with the following keys._ | Type | Description | | ------------------------------------------------------------- | ---------------------------------------- | -| [Address](../fcl-js/api.md#address) | `0x` prefixed address of created account | \ No newline at end of file +| [Address](../../clients/fcl-js/api.md#address) | `0x` prefixed address of created account | \ No newline at end of file diff --git a/docs/tooling/flow-js-testing/api.md b/docs/tools/toolchains/flow-js-testing/api.md similarity index 95% rename from docs/tooling/flow-js-testing/api.md rename to docs/tools/toolchains/flow-js-testing/api.md index 040d842c25..eb6433f399 100644 --- a/docs/tooling/flow-js-testing/api.md +++ b/docs/tools/toolchains/flow-js-testing/api.md @@ -21,7 +21,7 @@ Resolves name alias to a Flow address (`0x` prefixed) under the following condit | Type | Description | | ------------------------------------------------------------- | ---------------------------------------- | -| [Address](../fcl-js/api.md#address) | `0x` prefixed address of aliased account | +| [Address](../../clients/fcl-js/api.md#address) | `0x` prefixed address of aliased account | #### Usage @@ -55,7 +55,7 @@ _Pass in the following as a single object with the following keys._ | Type | Description | | ------------------------------------------------------------- | ---------------------------------------- | -| [Address](../fcl-js/api.md#address) | `0x` prefixed address of created account | +| [Address](../../clients/fcl-js/api.md#address) | `0x` prefixed address of created account | ## Contracts @@ -70,7 +70,7 @@ Props object accepts the following fields: | Name | Type | Optional | Description | | -------------- | ------------------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | | `name` | string | | name of the file in `contracts` folder (with `.cdc` extension) and name of the contract (please note those should be the same) | -| `to` | [Address](../fcl-js/api.md#address) | βœ… | (optional) account address, where contract will be deployed. If this is not specified, framework will create new account with randomized alias. | +| `to` | [Address](../../clients/fcl-js/api.md#address) | βœ… | (optional) account address, where contract will be deployed. If this is not specified, framework will create new account with randomized alias. | | `addressMap` | [AddressMap](./api.md#addressmap) | βœ… | (optional) object to use for address mapping of existing deployed contracts | | `args` | [Any] | βœ… | (optional) arguments, which will be passed to contract initializer. (optional) if template does not expect any arguments. | | `update` | boolean | βœ… | (optional) whether to update deployed contract. Default: `false` | @@ -80,7 +80,7 @@ Props object accepts the following fields: | Type | Description | | --------------------------------------------------------------------------- | ------------------------------------ | -| [ResponseObject](../fcl-js/api.md#responseobject) | Result of the deploying transaction. | +| [ResponseObject](../../clients/fcl-js/api.md#responseobject) | Result of the deploying transaction. | #### Usage @@ -129,7 +129,7 @@ Props object accepts the following fields: | -------------- | ------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------ | | `contractCode` | string | | string representation of contract | | `name` | string | | name of the contract to be deployed. Should be the same as the name of the contract provided in `contractCode` | -| `to` | [Address](../fcl-js/api.md#address) | βœ… | account address, where contract will be deployed. If this is not specified, framework will create new account with randomized alias. | +| `to` | [Address](../../clients/fcl-js/api.md#address) | βœ… | account address, where contract will be deployed. If this is not specified, framework will create new account with randomized alias. | | `addressMap` | [AddressMap](./api.md#addressmap) | βœ… | object to use for import resolver. Default: `{}` | | `args` | [Any] | βœ… | arguments, which will be passed to contract initializer. Default: `[]` | | `update` | boolean | βœ… | whether to update deployed contract. Default: `false` | @@ -139,7 +139,7 @@ Props object accepts the following fields: | Type | Description | | --------------------------------------------------------------------------- | ------------------------------------ | -| [ResponseObject](../fcl-js/api.md#responseobject) | Result of the deploying transaction. | +| [ResponseObject](../../clients/fcl-js/api.md#responseobject) | Result of the deploying transaction. | #### Usage @@ -205,7 +205,7 @@ Returns address of the account where the contract is currently deployed. | Type | Description | | ------------------------------------------------------------- | --------------------- | -| [Address](../fcl-js/api.md#address) | `0x` prefixed address | +| [Address](../../clients/fcl-js/api.md#address) | `0x` prefixed address | #### Usage @@ -275,8 +275,8 @@ The `signUserMessage` method will produce a user signature of some arbitrary dat | Name | Type | Optional | Description | | ----------- | -------------------------------------------------------------------------------------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `msgHex` | string or Buffer | | a hex-encoded string or Buffer which will be used to generate the signature | -| `signer` | [Address](../fcl-js/api.md#address) or [SignerInfo](./api.md#signerinfoobject) | βœ… | [Address](../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). | +| `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). | #### 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](../../../cadence/language/crypto.mdx#hashing-with-a-domain-tag). | #### Returns @@ -483,7 +483,7 @@ Fetch current FlowToken balance of account specified by address | Name | Type | Description | | --------- | ------------------------------------------------------------- | ------------------------------- | -| `address` | [Address](../fcl-js/api.md#address) | address of the account to check | +| `address` | [Address](../../clients/fcl-js/api.md#address) | address of the account to check | #### Returns @@ -528,14 +528,14 @@ Sends transaction to mint specified amount of FLOW token and send it to recipien | Name | Type | Description | | ----------- | ------------------------------------------------------------- | ---------------------------------------------------------- | -| `recipient` | [Address](../fcl-js/api.md#address) | address of the account to check | +| `recipient` | [Address](../../clients/fcl-js/api.md#address) | address of the account to check | | `amount` | string | UFix64 amount of FLOW tokens to mint and send to recipient | #### Returns | Type | Description | | --------------------------------------------------------------------------- | ------------------ | -| [ResponseObject](../fcl-js/api.md#responseobject) | Transaction result | +| [ResponseObject](../../clients/fcl-js/api.md#responseobject) | Transaction result | #### Usage @@ -812,7 +812,7 @@ Ensure transaction does not throw and sealed. | Type | Description | | --------------------------------------------------------------------------- | ------------------ | -| [ResponseObject](../fcl-js/api.md#responseobject) | Transaction result | +| [ResponseObject](../../clients/fcl-js/api.md#responseobject) | Transaction result | #### Usage @@ -884,7 +884,7 @@ Returns Promise, which contains result, when resolved. | Type | Description | | --------------------------------------------------------------------------- | ------------------ | -| [ResponseObject](../fcl-js/api.md#responseobject) | Transaction result | +| [ResponseObject](../../clients/fcl-js/api.md#responseobject) | Transaction result | #### Usage @@ -1039,7 +1039,7 @@ Provides explicit control over how you pass values. | Type | Description | | --------------------------------------------------------------------------- | ------------- | -| [ResponseObject](../fcl-js/api.md#responseobject) | Script result | +| [ResponseObject](../../clients/fcl-js/api.md#responseobject) | Script result | #### Usage @@ -1091,7 +1091,7 @@ Cadence files. | Type | Description | | --------------------------------------------------------------------------- | ------------- | -| [ResponseObject](../fcl-js/api.md#responseobject) | Script result | +| [ResponseObject](../../clients/fcl-js/api.md#responseobject) | Script result | #### Usage @@ -1140,7 +1140,7 @@ Provides explicit control over how you pass values. | `code` | string | βœ… | string representation of Cadence transaction | | `name` | string | βœ… | name of the file in `transaction` folder to use (sans `.cdc` extension) | | `args` | [any] | βœ… | an array of arguments to pass to transaction. Optional if transaction does not expect any arguments. | -| `signers` | [[Address](../fcl-js/api.md#address) or [SignerInfo](./api.md#signerinfoobject)] | βœ… | an array of [Address](../fcl-js/api.md#address) or [SignerInfo](./api.md#signerinfoobject) objects representing transaction autorizers | +| `signers` | [[Address](../../clients/fcl-js/api.md#address) or [SignerInfo](./api.md#signerinfoobject)] | βœ… | an array of [Address](../../clients/fcl-js/api.md#address) or [SignerInfo](./api.md#signerinfoobject) objects representing transaction autorizers | | `addressMap` | [AddressMap](./api.md#addressmap) | βœ… | name/address map to use as lookup table for addresses in import statements | | `transformers` | [[CadenceTransformer](./api.md#cadencetransformer)] | βœ… | an array of operators to modify the code, before submitting it to network | @@ -1202,7 +1202,7 @@ Cadence files. | --------- | ---------------------------------------------------------------------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `name` | string | βœ… | name of the file in `transaction` folder to use (sans `.cdc` extension) | | `args` | [any] | βœ… | an array of arguments to pass to transaction. Optional if transaction does not expect any arguments. | -| `signers` | [[Address](../fcl-js/api.md#address) or [SignerInfoObject](./api.md#signerinfoobject)] | βœ… | an array of [Address](../fcl-js/api.md#address) or array of [SignerInfoObject](./api.md#signerinfoobject) representing transaction autorizers | +| `signers` | [[Address](../../clients/fcl-js/api.md#address) or [SignerInfoObject](./api.md#signerinfoobject)] | βœ… | an array of [Address](../../clients/fcl-js/api.md#address) or array of [SignerInfoObject](./api.md#signerinfoobject) representing transaction autorizers | #### Usage @@ -1624,7 +1624,7 @@ main() ### `AddressMap` -Object to use for address mapping of existing deployed contracts. Key shall be `string` and value shall be [Address](../fcl-js/api.md#address) +Object to use for address mapping of existing deployed contracts. Key shall be `string` and value shall be [Address](../../clients/fcl-js/api.md#address) #### Example @@ -1679,11 +1679,11 @@ Key objects are used to specify signer keys when [creating accounts](./accounts. | `hashAlgorithm` | No | [HashAlgorithm](./api.md#hashalgorithm) | Hashing algorithm to use for generating signatures to be signed by this key (default: `HashAlgorithm.SHA3_256`) | | `privateKey` | Yes | string | Private key to use to generate the signature | | `signatureAlgorithm` | No | [SignatureAlgorithm](./api.md#signaturealgorithm) | Signing algorithm used to sign transactions with this key (default: `SignatureAlgorithm.ECDSA_P256`) | -| `weight` | No | number | Weight of the key - see [Flow Core Concepts](../../concepts/start-here/accounts-and-keys.md#keys) for more information | +| `weight` | No | number | Weight of the key - see [Flow Core Concepts](../../../concepts/start-here/accounts-and-keys.md#keys) for more information | ### PublicKey -Public keys are stored as `Buffer` objects which have been RLP encoded according to the [Flow spec](../../concepts/start-here/accounts-and-keys.md). +Public keys are stored as `Buffer` objects which have been RLP encoded according to the [Flow spec](../../../concepts/start-here/accounts-and-keys.md). In order to generate this object using the Flow JS Testing library, use the [`pubFlowKey` method](./api.md#pubflowkeykeyobject) exported by the library. @@ -1704,8 +1704,8 @@ Signature objects are used to represent a signature for a particular message as | Key | Value Type | Description | | ----------- | ------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `addr` | [Address](../fcl-js/api.md#address) | the address of the account which this signature has been generated for | -| `keyId` | number | [Address](../fcl-js/api.md#address) or [SignerInfo](./api.md#signerinfoobject) object representing user to generate this signature for | +| `addr` | [Address](../../clients/fcl-js/api.md#address) | the address of the account which this signature has been generated for | +| `keyId` | number | [Address](../../clients/fcl-js/api.md#address) or [SignerInfo](./api.md#signerinfoobject) object representing user to generate this signature for | | `signature` | string | a hexidecimal-encoded string representation of the generated signature | ### SignerInfoObject @@ -1714,7 +1714,7 @@ Signer Info objects are used to specify information about which signer and which | Key | Required | Value Type | Description | | -------------------- | -------- | ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `addr` | Yes | [Address](../fcl-js/api.md#address) | The address of the signer's account | +| `addr` | Yes | [Address](../../clients/fcl-js/api.md#address) | The address of the signer's account | | `hashAlgorithm` | No | [HashAlgorithm](./api.md#hashalgorithm) | Hashing algorithm to use for generating the signature (default: `HashAlgorithm.SHA3_256`) | | `keyId` | No | number | The index of the desired key to use from the signer's account (default: `0`) | | `privateKey` | No | string | Private key to use to generate the signature (default: service account private key - this is the default PK for all accounts generated by Flow JS Testing Library, see: [accounts](./accounts.md)) | @@ -1742,7 +1742,7 @@ Signing algorithms may be provided as either an enum (accessible via the `Signat ### `isAddress(address)` -Returns true if the given string is a validly formatted account [address](../fcl-js/api.md#address) (both "0x" prefixed and non-prefixed are valid) +Returns true if the given string is a validly formatted account [address](../../clients/fcl-js/api.md#address) (both "0x" prefixed and non-prefixed are valid) #### Arguments @@ -1754,7 +1754,7 @@ Returns true if the given string is a validly formatted account [address](../fcl | Type | Description | | ------- | -------------------------------------------------------------------------------------------------------------------------- | -| boolean | Returns true if given string is a validly formatted account [address](../fcl-js/api.md#address). | +| boolean | Returns true if given string is a validly formatted account [address](../../clients/fcl-js/api.md#address). | #### Usage diff --git a/docs/tooling/flow-js-testing/contracts.md b/docs/tools/toolchains/flow-js-testing/contracts.md similarity index 92% rename from docs/tooling/flow-js-testing/contracts.md rename to docs/tools/toolchains/flow-js-testing/contracts.md index b2ffd16312..4f2a35316d 100644 --- a/docs/tooling/flow-js-testing/contracts.md +++ b/docs/tools/toolchains/flow-js-testing/contracts.md @@ -17,7 +17,7 @@ Props object accepts the following fields: | Name | Type | Optional | Description | | -------------- | ------------------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | | `name` | string | | name of the file in `contracts` folder (with `.cdc` extension) and name of the contract (please note those should be the same) | -| `to` | [Address](../fcl-js/api.md#address) | βœ… | (optional) account address, where contract will be deployed. If this is not specified, framework will create new account with randomized alias. | +| `to` | [Address](../../clients/fcl-js/api.md#address) | βœ… | (optional) account address, where contract will be deployed. If this is not specified, framework will create new account with randomized alias. | | `addressMap` | [AddressMap](./contracts.md#addressmap) | βœ… | (optional) object to use for address mapping of existing deployed contracts | | `args` | [Any] | βœ… | (optional) arguments, which will be passed to contract initializer. (optional) if template does not expect any arguments. | | `update` | boolean | βœ… | (optional) whether to update deployed contract. Default: `false` | @@ -27,7 +27,7 @@ Props object accepts the following fields: | Type | Description | | --------------------------------------------------------------------------- | ------------------------------------ | -| [ResponseObject](../fcl-js/api.md#responseobject) | Result of the deploying transaction. | +| [ResponseObject](../../clients/fcl-js/api.md#responseobject) | Result of the deploying transaction. | #### Usage @@ -76,7 +76,7 @@ Props object accepts the following fields: | -------------- | ------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------ | | `contractCode` | string | | string representation of contract | | `name` | string | | name of the contract to be deployed. Should be the same as the name of the contract provided in `contractCode` | -| `to` | [Address](../fcl-js/api.md#address) | βœ… | account address, where contract will be deployed. If this is not specified, framework will create new account with randomized alias. | +| `to` | [Address](../../clients/fcl-js/api.md#address) | βœ… | account address, where contract will be deployed. If this is not specified, framework will create new account with randomized alias. | | `addressMap` | [AddressMap](./contracts.md#addressmap) | βœ… | object to use for import resolver. Default: `{}` | | `args` | [Any] | βœ… | arguments, which will be passed to contract initializer. Default: `[]` | | `update` | boolean | βœ… | whether to update deployed contract. Default: `false` | @@ -86,7 +86,7 @@ Props object accepts the following fields: | Type | Description | | --------------------------------------------------------------------------- | ------------------------------------ | -| [ResponseObject](../fcl-js/api.md#responseobject) | Result of the deploying transaction. | +| [ResponseObject](../../clients/fcl-js/api.md#responseobject) | Result of the deploying transaction. | #### Usage @@ -152,7 +152,7 @@ Returns address of the account where the contract is currently deployed. | Type | Description | | ------------------------------------------------------------- | --------------------- | -| [Address](../fcl-js/api.md#address) | `0x` prefixed address | +| [Address](../../clients/fcl-js/api.md#address) | `0x` prefixed address | #### Usage diff --git a/docs/tooling/flow-js-testing/emulator.md b/docs/tools/toolchains/flow-js-testing/emulator.md similarity index 100% rename from docs/tooling/flow-js-testing/emulator.md rename to docs/tools/toolchains/flow-js-testing/emulator.md diff --git a/docs/tooling/flow-js-testing/examples/basic.md b/docs/tools/toolchains/flow-js-testing/examples/basic.md similarity index 100% rename from docs/tooling/flow-js-testing/examples/basic.md rename to docs/tools/toolchains/flow-js-testing/examples/basic.md diff --git a/docs/tooling/flow-js-testing/examples/metadata.md b/docs/tools/toolchains/flow-js-testing/examples/metadata.md similarity index 100% rename from docs/tooling/flow-js-testing/examples/metadata.md rename to docs/tools/toolchains/flow-js-testing/examples/metadata.md diff --git a/docs/tooling/flow-js-testing/execute-scripts.md b/docs/tools/toolchains/flow-js-testing/execute-scripts.md similarity index 96% rename from docs/tooling/flow-js-testing/execute-scripts.md rename to docs/tools/toolchains/flow-js-testing/execute-scripts.md index 743485eb0f..d8bccd27e6 100644 --- a/docs/tooling/flow-js-testing/execute-scripts.md +++ b/docs/tools/toolchains/flow-js-testing/execute-scripts.md @@ -33,7 +33,7 @@ Provides explicit control over how you pass values. | Type | Description | | --------------------------------------------------------------------------- | ------------- | -| [ResponseObject](../fcl-js/api.md#responseobject) | Script result | +| [ResponseObject](../../clients/fcl-js/api.md#responseobject) | Script result | #### Usage @@ -85,7 +85,7 @@ Cadence files. | Type | Description | | --------------------------------------------------------------------------- | ------------- | -| [ResponseObject](../fcl-js/api.md#responseobject) | Script result | +| [ResponseObject](../../clients/fcl-js/api.md#responseobject) | Script result | #### Usage diff --git a/docs/tooling/flow-js-testing/flow-token.md b/docs/tools/toolchains/flow-js-testing/flow-token.md similarity index 91% rename from docs/tooling/flow-js-testing/flow-token.md rename to docs/tools/toolchains/flow-js-testing/flow-token.md index b35a6305ce..067c2cf9df 100644 --- a/docs/tooling/flow-js-testing/flow-token.md +++ b/docs/tools/toolchains/flow-js-testing/flow-token.md @@ -15,7 +15,7 @@ Returns current FLOW token balance of the specified account. | Name | Type | Description | | --------- | ------------------------------------------------------------- | ------------------------------- | -| `address` | [Address](../fcl-js/api.md#address) | address of the account to check | +| `address` | [Address](../../clients/fcl-js/api.md#address) | address of the account to check | #### Returns @@ -60,7 +60,7 @@ Sends transaction to mint the specified amount of FLOW and send it to recipient. | Name | Type | Description | | ----------- | ------------------------------------------------------------- | ---------------------------------------------------------- | -| `recipient` | [Address](../fcl-js/api.md#address) | address of the account to check | +| `recipient` | [Address](../../clients/fcl-js/api.md#address) | address of the account to check | | `amount` | string | UFix64 amount of FLOW tokens to mint and send to recipient | #### Usage diff --git a/docs/tooling/flow-js-testing/generator.md b/docs/tools/toolchains/flow-js-testing/generator.md similarity index 100% rename from docs/tooling/flow-js-testing/generator.md rename to docs/tools/toolchains/flow-js-testing/generator.md diff --git a/docs/tooling/flow-js-testing/index.md b/docs/tools/toolchains/flow-js-testing/index.md similarity index 98% rename from docs/tooling/flow-js-testing/index.md rename to docs/tools/toolchains/flow-js-testing/index.md index a4793568b0..649546158e 100644 --- a/docs/tooling/flow-js-testing/index.md +++ b/docs/tools/toolchains/flow-js-testing/index.md @@ -1,6 +1,5 @@ --- title: Flow Javascript Testing -sidebar_label: Introduction description: A Javascript Framework allowing you to test your Cadence code in a simple way --- diff --git a/docs/tooling/flow-js-testing/init.md b/docs/tools/toolchains/flow-js-testing/init.md similarity index 100% rename from docs/tooling/flow-js-testing/init.md rename to docs/tools/toolchains/flow-js-testing/init.md diff --git a/docs/tooling/flow-js-testing/install.md b/docs/tools/toolchains/flow-js-testing/install.md similarity index 100% rename from docs/tooling/flow-js-testing/install.md rename to docs/tools/toolchains/flow-js-testing/install.md diff --git a/docs/tooling/flow-js-testing/jest-helpers.md b/docs/tools/toolchains/flow-js-testing/jest-helpers.md similarity index 97% rename from docs/tooling/flow-js-testing/jest-helpers.md rename to docs/tools/toolchains/flow-js-testing/jest-helpers.md index f8183a2d35..d53c3ec816 100644 --- a/docs/tooling/flow-js-testing/jest-helpers.md +++ b/docs/tools/toolchains/flow-js-testing/jest-helpers.md @@ -21,7 +21,7 @@ Ensure transaction did not throw and was sealed. | Type | Description | | --------------------------------------------------------------------------- | ------------------ | -| [ResponseObject](../fcl-js/api.md#responseobject) | Transaction result | +| [ResponseObject](../../clients/fcl-js/api.md#responseobject) | Transaction result | #### Usage @@ -93,7 +93,7 @@ Returns Promise, which contains result, when resolved. | Type | Description | | --------------------------------------------------------------------------- | ------------------ | -| [ResponseObject](../fcl-js/api.md#responseobject) | Transaction result | +| [ResponseObject](../../clients/fcl-js/api.md#responseobject) | Transaction result | #### Usage @@ -163,7 +163,7 @@ Ensure interaction resolves without throwing errors. | Type | Description | | --------------------------------------------------------------------------- | ------------------ | -| [ResponseObject](../fcl-js/api.md#responseobject) | Transaction result | +| [ResponseObject](../../clients/fcl-js/api.md#responseobject) | Transaction result | #### Usage diff --git a/docs/tooling/flow-js-testing/send-transactions.md b/docs/tools/toolchains/flow-js-testing/send-transactions.md similarity index 91% rename from docs/tooling/flow-js-testing/send-transactions.md rename to docs/tools/toolchains/flow-js-testing/send-transactions.md index 75bebf63f6..a86554e68c 100644 --- a/docs/tooling/flow-js-testing/send-transactions.md +++ b/docs/tools/toolchains/flow-js-testing/send-transactions.md @@ -22,7 +22,7 @@ Provides explicit control over how you pass values. | `code` | string | βœ… | string representation of Cadence transaction | | `name` | string | βœ… | name of the file in `transaction` folder to use (sans `.cdc` extension) | | `args` | [any] | βœ… | an array of arguments to pass to transaction. Optional if transaction does not expect any arguments. | -| `signers` | [[Address](../fcl-js/api.md#address) or [SignerInfo](./api.md#signerinfoobject)] | βœ… | an array of [Address](../fcl-js/api.md#address) or [SignerInfo](./api.md#signerinfoobject) objects representing transaction autorizers | +| `signers` | [[Address](../../clients/fcl-js/api.md#address) or [SignerInfo](./api.md#signerinfoobject)] | βœ… | an array of [Address](../../clients/fcl-js/api.md#address) or [SignerInfo](./api.md#signerinfoobject) objects representing transaction autorizers | | `addressMap` | [AddressMap](./api.md#addressmap) | βœ… | name/address map to use as lookup table for addresses in import statements | | `transformers` | [[CadenceTransformer](./#cadencetransformer)] | βœ… | an array of operators to modify the code, before submitting it to network | @@ -84,7 +84,7 @@ Cadence files. | --------- | ---------------------------------------------------------------------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `name` | string | βœ… | name of the file in `transaction` folder to use (sans `.cdc` extension) | | `args` | [any] | βœ… | an array of arguments to pass to transaction. Optional if transaction does not expect any arguments. | -| `signers` | [[Address](../fcl-js/api.md#address) or [SignerInfoObject](./api.md#signerinfoobject)] | βœ… | an array of [Address](../fcl-js/api.md#address) or array of [SignerInfoObject](./api.md#signerinfoobject) representing transaction autorizers | +| `signers` | [[Address](../../clients/fcl-js/api.md#address) or [SignerInfoObject](./api.md#signerinfoobject)] | βœ… | an array of [Address](../../clients/fcl-js/api.md#address) or array of [SignerInfoObject](./api.md#signerinfoobject) representing transaction autorizers | #### Usage diff --git a/docs/tooling/flow-js-testing/structure.md b/docs/tools/toolchains/flow-js-testing/structure.md similarity index 100% rename from docs/tooling/flow-js-testing/structure.md rename to docs/tools/toolchains/flow-js-testing/structure.md diff --git a/docs/tooling/flow-js-testing/templates.md b/docs/tools/toolchains/flow-js-testing/templates.md similarity index 100% rename from docs/tooling/flow-js-testing/templates.md rename to docs/tools/toolchains/flow-js-testing/templates.md diff --git a/docs/tooling/flow-js-testing/types.md b/docs/tools/toolchains/flow-js-testing/types.md similarity index 83% rename from docs/tooling/flow-js-testing/types.md rename to docs/tools/toolchains/flow-js-testing/types.md index 3eb051c298..88d5bc4238 100644 --- a/docs/tooling/flow-js-testing/types.md +++ b/docs/tools/toolchains/flow-js-testing/types.md @@ -1,6 +1,6 @@ ### `AddressMap` -Object to use for address mapping of existing deployed contracts. Key shall be `string` and value shall be [Address](../fcl-js/api.md#address) +Object to use for address mapping of existing deployed contracts. Key shall be `string` and value shall be [Address](../../clients/fcl-js/api.md#address) #### Example diff --git a/docs/tools/toolchains/index.md b/docs/tools/toolchains/index.md new file mode 100644 index 0000000000..2df5445719 --- /dev/null +++ b/docs/tools/toolchains/index.md @@ -0,0 +1,41 @@ +--- +sidebar_position: 7 +--- + +# Toolchains + +## Emulator + +[The Flow Emulator](./emulator/index.md) is a lightweight tool that emulates the behavior of the real Flow network. Packaged via CLI. + +## FCL Dev Wallet + +The [FCL dev wallet](./fcl-dev-wallet/index.md) is a mock Flow wallet that simulates the protocols used by FCL to interact with the Flow blockchain on behalf of simulated user accounts. + +## Flow CLI + +[Flow CLI](./flow-cli/index.md) brings Flow to your terminal. Easily interact with the network and build your dapps. + +## VS Code extension + +The [Visual Studio Code](./vscode-extension/index.mdx) extension for Cadence. Extensive features such as code generation, deploying contracts, and a lot more. + +## Flowser + +[Flowser](https://flowser.dev/) lets you inspect the current state of any flow blockchain network emulator, testnet, and mainnet. + +## Flow Cadut + +[Flow Cadut](./flow-cadut/api.md) is Node based template generator to simplify interaction with Cadence files. + +## NFT Catalog + +The [NFT Catalog](./nft-catalog/overview.mdx) is an on chain registry listing NFT collections that exists on Flow which adhere to the NFT metadata standard. This empowers dApp developers to easily build on top of and discover interoperable NFT collections on Flow. + +## NFT Marketplace + +The [NFT Marketplace](./nft-marketplace/index.md) is a guide thet provides required information to the development teams looking to build NFT marketplaces on the Flow blockchain. + +## Flow JS testing (deprecated) + +[Flow JS testing](./flow-js-testing/index.md) is a Jest based framework to enable Cadence testing via a set of JavaScript methods and tools diff --git a/docs/tooling/nft-catalog/_category_.json b/docs/tools/toolchains/nft-catalog/_category_.json similarity index 100% rename from docs/tooling/nft-catalog/_category_.json rename to docs/tools/toolchains/nft-catalog/_category_.json diff --git a/docs/tooling/nft-catalog/cadence-generation.mdx b/docs/tools/toolchains/nft-catalog/cadence-generation.mdx similarity index 100% rename from docs/tooling/nft-catalog/cadence-generation.mdx rename to docs/tools/toolchains/nft-catalog/cadence-generation.mdx diff --git a/docs/tooling/nft-catalog/composability-flowcase-guide.mdx b/docs/tools/toolchains/nft-catalog/composability-flowcase-guide.mdx similarity index 100% rename from docs/tooling/nft-catalog/composability-flowcase-guide.mdx rename to docs/tools/toolchains/nft-catalog/composability-flowcase-guide.mdx diff --git a/docs/tooling/nft-catalog/composability-nft-guide.mdx b/docs/tools/toolchains/nft-catalog/composability-nft-guide.mdx similarity index 99% rename from docs/tooling/nft-catalog/composability-nft-guide.mdx rename to docs/tools/toolchains/nft-catalog/composability-nft-guide.mdx index 1a2bd49633..48b9e3f1ce 100644 --- a/docs/tooling/nft-catalog/composability-nft-guide.mdx +++ b/docs/tools/toolchains/nft-catalog/composability-nft-guide.mdx @@ -13,7 +13,7 @@ All of the resulting code from this guide is available [here](https://github.com Before we begin building our composable NFT, we need to set up the development environment. 1. To start, download and install the Flow CLI [here](../flow-cli/install.md) -2. It is highly recommended to go through the basic NFT tutorial [here](../../cadence/tutorial/05-non-fungible-tokens-1.mdx). This is a more advanced one. +2. It is highly recommended to go through the basic NFT tutorial [here](../../../cadence/tutorial/05-non-fungible-tokens-1.mdx). This is a more advanced one. 3. Using git, clone the [https://github.com/bshahid331/my-nft-project/tree/skeleton](https://github.com/bshahid331/my-nft-project/tree/skeleton) repository as a starting point. 4. Navigate to the newly created my-nft-project folder, the my-nft-project folder with a text editor of your choice (i.e. VSCode) diff --git a/docs/tooling/nft-catalog/npm.mdx b/docs/tools/toolchains/nft-catalog/npm.mdx similarity index 100% rename from docs/tooling/nft-catalog/npm.mdx rename to docs/tools/toolchains/nft-catalog/npm.mdx diff --git a/docs/tooling/nft-catalog/overview.mdx b/docs/tools/toolchains/nft-catalog/overview.mdx similarity index 100% rename from docs/tooling/nft-catalog/overview.mdx rename to docs/tools/toolchains/nft-catalog/overview.mdx diff --git a/docs/tooling/nft-marketplace/best-practices.md b/docs/tools/toolchains/nft-marketplace/best-practices.md similarity index 100% rename from docs/tooling/nft-marketplace/best-practices.md rename to docs/tools/toolchains/nft-marketplace/best-practices.md diff --git a/docs/tooling/nft-marketplace/building-blocks.md b/docs/tools/toolchains/nft-marketplace/building-blocks.md similarity index 87% rename from docs/tooling/nft-marketplace/building-blocks.md rename to docs/tools/toolchains/nft-marketplace/building-blocks.md index ecee8ae10c..85873829c4 100644 --- a/docs/tooling/nft-marketplace/building-blocks.md +++ b/docs/tools/toolchains/nft-marketplace/building-blocks.md @@ -8,12 +8,12 @@ Following are the basic building blocks for any NFT marketplace solution on the - [NFT Standard](https://github.com/onflow/flow-nft): Every NFT minted on Flow should follow this standard. - [Fungible Token Standard](https://github.com/onflow/flow-ft): All fungible tokens on Flow follow this standard. NFTs purchased on an NFT marketplace will be paid for using a fungible token in many scenarios. -- [FLOW Token](../../concepts/flow-token/index.md): Native currency of the Flow blockchain used to pay for the transaction fees. NFT buyers can use FLOW tokens to buy NFTs in a marketplace. +- [FLOW Token](../../../concepts/flow-token/index.md): Native currency of the Flow blockchain used to pay for the transaction fees. NFT buyers can use FLOW tokens to buy NFTs in a marketplace. - [NFT Metadata Standard](https://github.com/onflow/flow-nft/#nft-metadata): A generalized framework for NFTs on Flow to expose their metadata. The framework described already has [a mechanism specified to render the basic representation](https://github.com/onflow/flow-nft/#list-of-common-views) of an NFT. - [Flow NFT Catalog](https://github.com/dapperlabs/nft-catalog): NFT marketplaces can use this on-chain registry of NFTs to obtain the list of NFTs owned by an account and obtain display metadata for those NFTs and their collections. Developers should use the [example scripts](https://github.com/dapperlabs/nft-catalog#using-the-catalog-for-marketplaces-and-other-nft-applications) in conjunction with the [NFT Metadata Standard](https://github.com/onflow/flow-nft/#nft-metadata). - [NFT Storefront Contract](https://github.com/onflow/nft-storefront): ​​Contract used by almost all Flow NFT marketplaces for creating NFT sale listings. Note that you can directly use the version of this contract already deployed on the Mainnet. - [FCL (Flow Client Library)](https://github.com/onflow/fcl-js): This library is like web3.js in Ethereum. Application frontend will use FCL to interact with user wallets and the blockchain. JS-based backends of applications can also use it to interact with the blockchain. -- Flow SDKs: Multiple SDKs are available in different programming languages ([Go](../flow-go-sdk/index.mdx), [Java](https://github.com/the-nft-company/flow-jvm-sdk)) for Flow application backends to interact with the blockchain. +- Flow SDKs: Multiple SDKs are available in different programming languages ([Go](../../clients/flow-go-sdk/index.mdx), [Java](https://github.com/the-nft-company/flow-jvm-sdk)) for Flow application backends to interact with the blockchain. ## Coming from Ethereum @@ -21,11 +21,11 @@ If you are coming from Ethereum, the following list shows corresponding modules | Resource | Ethereum | Flow | | ----------------------------------- | ----------------------- | ----------------------------------------------------------------------------------------------------- | -| Smart Contract Programming Language | Solidity | [Cadence](../../cadence/intro.md) | +| Smart Contract Programming Language | Solidity | [Cadence](../../../cadence/intro.md) | | Fungible Token Standard | ERC-20 | [Flow Fungible Token Standard](https://github.com/onflow/flow-ft) | | NFT Standard | ERC-721/ERC-1155 | [Flow NFT Token Standard](https://github.com/onflow/flow-nft) | | NFT Metadata Standard | ERC-721 | [Flow NFT Metadata Standard](https://github.com/onflow/flow-nft/#nft-metadata) | -| Native Crypto Currency | ETH | [FLOW](../../concepts/flow-token) | +| Native Crypto Currency | ETH | [FLOW](../../../concepts/flow-token) | | Wallet Interaction Library | web3.js | [Flow Client Library (FCL)](https://github.com/onflow/fcl-js) | | Blockchain Interaction SDK | web3.js | [Flow Client Library (FCL)](https://github.com/onflow/fcl-js), [Flow Go SDK](https://github.com/onflow/flow-go-sdk), and [many others](https://github.com/onflow/flip-fest/blob/main/winners.md) | | Block Explorer | Etherscan | Flowscan | diff --git a/docs/tooling/nft-marketplace/handling-accounts.md b/docs/tools/toolchains/nft-marketplace/handling-accounts.md similarity index 88% rename from docs/tooling/nft-marketplace/handling-accounts.md rename to docs/tools/toolchains/nft-marketplace/handling-accounts.md index 3037cfbd46..0983566600 100644 --- a/docs/tooling/nft-marketplace/handling-accounts.md +++ b/docs/tools/toolchains/nft-marketplace/handling-accounts.md @@ -8,9 +8,9 @@ sidebar_label: Handling accounts On many blockchains, decentralized apps offer the Connect Wallet button to let users connect their wallets. Flow blockchain tries to make things even more friendlier for the end-users. It allows applications to offer users the opportunity to register for a wallet (aka create a wallet) if they do not have a Flow wallet already. If users already have a wallet, the Sign-in/up functionality authenticates the user. -Sign-in/up functionality is implemented using [FCL](../fcl-js/). The following documentation provides details on how to implement this functionality on the application frontend: +Sign-in/up functionality is implemented using [FCL](../../clients/fcl-js/index.md). The following documentation provides details on how to implement this functionality on the application frontend: -- [FCL Authentication Functionality](../../tooling/fcl-js/authentication.mdx) +- [FCL Authentication Functionality](../../clients/fcl-js/authentication.mdx) - [Sign-in/up using FCL with Blocto Wallet](https://docs.blocto.app/blocto-sdk/flow/login-register) Using FCL, you can get the authenticated account information for your users. diff --git a/docs/tooling/nft-marketplace/index.md b/docs/tools/toolchains/nft-marketplace/index.md similarity index 95% rename from docs/tooling/nft-marketplace/index.md rename to docs/tools/toolchains/nft-marketplace/index.md index 73bdcd4d0c..5e17b9f0e4 100644 --- a/docs/tooling/nft-marketplace/index.md +++ b/docs/tools/toolchains/nft-marketplace/index.md @@ -1,12 +1,11 @@ --- title: NFT Marketplace description: An overview of the NFT marketplace guide -sidebar_label: Overview --- This guide provides the required information to the development teams looking to build NFT marketplaces on the Flow blockchain. -Developers should read this guide in conjunction with the other materials for developers looking to build on the Flow blockchain, especially the [official developer onboarding guide](../../tutorials/intro.md). +Developers should read this guide in conjunction with the other materials for developers looking to build on the Flow blockchain, especially the [official developer onboarding guide](../../../tutorials/intro.md). ## Custodial vs. non-Custodial model diff --git a/docs/tooling/nft-marketplace/minting-nfts.md b/docs/tools/toolchains/nft-marketplace/minting-nfts.md similarity index 98% rename from docs/tooling/nft-marketplace/minting-nfts.md rename to docs/tools/toolchains/nft-marketplace/minting-nfts.md index dfb8249b11..f14434e3fa 100644 --- a/docs/tooling/nft-marketplace/minting-nfts.md +++ b/docs/tools/toolchains/nft-marketplace/minting-nfts.md @@ -20,6 +20,6 @@ Some blockchains have super high gas fees. That compels NFT platforms, especiall Flow blockchain's mission is to make blockchain accessible for the masses. We will never expect to see high transaction fees on the Flow blockchain. -> **Note**: You can check the details on Flow fees [here](../../concepts/flow-token/concepts.md#fees). +> **Note**: You can check the details on Flow fees [here](../../../concepts/flow-token/concepts.md#fees). Based on current and future low fees on the Flow blockchain, NFT marketplaces do not need to implement lazy minting. diff --git a/docs/tooling/nft-marketplace/selling-nfts.md b/docs/tools/toolchains/nft-marketplace/selling-nfts.md similarity index 98% rename from docs/tooling/nft-marketplace/selling-nfts.md rename to docs/tools/toolchains/nft-marketplace/selling-nfts.md index 764847f7e3..c15f26d4c4 100644 --- a/docs/tooling/nft-marketplace/selling-nfts.md +++ b/docs/tools/toolchains/nft-marketplace/selling-nfts.md @@ -54,7 +54,7 @@ Following are typical ways NFT marketplaces can enable fiat payments for P2P sal - Using crypto on-ramps like Moonpay: With this approach, the NFT marketplace facilitates NFT sales on-chain but leverages crypto on-ramps such as Moonpay/Wyre to help NFT buyers obtain crypto to make the purchase. The downside is that the crypto on-ramps charge hefty fees, and NFT sellers still need to find off-ramps for the proceeds of the crypto sale. - Using a payment gateway to maintain user fund balances: This is the approach that NBA Topshot/Dapper wallet follows. The marketplace uses a payment gateway like Circle where users use fiat payment methods to maintain fund balances. The marketplace also maintains a custodial wallet for each user. It makes the on-chain NFT purchase on behalf of users if sufficient fund balance is maintained with the payment gateway. Fund balances with the payment gateway are updated based on sale/purchase activity on the blockchain. The downside of this approach is that it requires the marketplace to maintain a custodial wallet service. Additionally, the marketplace must incorporate multiple operational checks and balances to comply with the payment/AML regulations and protect against chargeback/fraud risks. -See this [section](../../tutorials/in-dapp-payments.mdx) in the developer onboarding guide as well. +See this [section](../../../tutorials/in-dapp-payments.mdx) in the developer onboarding guide as well. ## Royalty payments diff --git a/docs/tooling/vscode-extension/index.mdx b/docs/tools/toolchains/vscode-extension/index.mdx similarity index 89% rename from docs/tooling/vscode-extension/index.mdx rename to docs/tools/toolchains/vscode-extension/index.mdx index 53bb247e86..75bd66930c 100644 --- a/docs/tooling/vscode-extension/index.mdx +++ b/docs/tools/toolchains/vscode-extension/index.mdx @@ -1,9 +1,8 @@ --- -title: Cadence Visual Studio Code Extension -sidebar_label: Introduction +title: Cadence VS Code Extension --- -This extension integrates [Cadence](../../cadence/intro.md), the resource-oriented smart contract programming language of [Flow](https://www.onflow.org/), into [Visual Studio Code](https://code.visualstudio.com/). +This extension integrates [Cadence](../../../cadence/intro.md), the resource-oriented smart contract programming language of [Flow](https://www.onflow.org/), into [Visual Studio Code](https://code.visualstudio.com/). It provides features like syntax highlighting, type checking, code completion, etc. Note that most editing features (type checking, code completion, etc.) are implemented in the [Cadence Language Server](https://github.com/onflow/cadence/tree/master/languageserver). diff --git a/docs/tools/wallets.md b/docs/tools/wallets.md new file mode 100644 index 0000000000..1fb35a8e4c --- /dev/null +++ b/docs/tools/wallets.md @@ -0,0 +1,60 @@ +--- +sidebar_position: 6 +description: Store, send, and receive Flow tokens and digital assets securily on the Flow blockchain network. A convenient and safe way to manage and interact with cryptocurrency holdings. +--- + +# Wallets + +## Magic.link + +[Magic](https://magic.link/) is a developer SDK that integrates with your application to enable passwordless Web3 onboarding (no seed phrases) and authentication using magic links (similar to Slack and Medium). + +https://magic.link/ + +## Niftory + +[Niftory](https://niftory.com/) is a platform to create, mint, and transfer NFTs + +https://niftory.com/ + +## Blocto + +Manage your crypto, dApps, and NFT all-in-once through [Blocto](https://www.blocto.io/), the cross-chain crypto wallet + +https://www.blocto.io/ + +## Dapper Wallet + +[Dapper Wallet](https://www.meetdapper.com/) is an easy and securely buy and store digital assets from groundbreaking Flow apps and games + +https://www.meetdapper.com/ + +## Ledger + +[Ledger](https://www.ledger.com/) is a hardware wallet to secure, buy, exchange, and grow your crypto assets + +https://www.ledger.com/ + +## NuFi + +[NuFi](https://nu.fi/) Flow's only non-custodial wallet with staking, NFT gallery, dApp connector and Ledger HW support. + +https://nu.fi/ + +## Lilico + +[Lilico](https://lilico.app/) is the First Extension Wallet on Flow + +https://lilico.app/ + +## Finoa + +Safely store and stake your Flow tokens with [Finoa](https://www.finoa.io/) + +https://www.finoa.io/flow/ + +## Dapper Self Custody (Beta) + +A mobile [self custody wallet](https://www.meetdapper.com/dapper-self-custody) to help you explore the world of Flow + +https://www.meetdapper.com/dapper-self-custody diff --git a/docs/tutorials/dapp-infrastructure.md b/docs/tutorials/dapp-infrastructure.md index d15c7b6cea..4ddf4b407b 100644 --- a/docs/tutorials/dapp-infrastructure.md +++ b/docs/tutorials/dapp-infrastructure.md @@ -22,7 +22,7 @@ Admin transactions are transactions that originate from the backend of your dapp For example, you may send an admin transaction that mints a batch of NFTs for purchase, or a transaction that adds an additional gameplay level to your game. -For one-off administrative actions that do not require automation, such as contract deployment, you can use the [Flow CLI](../tooling/flow-cli/). +For one-off administrative actions that do not require automation, such as contract deployment, you can use the [Flow CLI](../tools/toolchains/flow-cli/). ## Reading Data From Flow diff --git a/docs/tutorials/flow-app-quickstart.mdx b/docs/tutorials/flow-app-quickstart.mdx index 8a73e18367..e63f88cc44 100644 --- a/docs/tutorials/flow-app-quickstart.mdx +++ b/docs/tutorials/flow-app-quickstart.mdx @@ -4,7 +4,7 @@ **Last Updated:** January 11th 2022 -> **Note**: This page will walk you through a very bare bones project to get started building a web3 dapp using the Flow Client Library (FCL). If you are looking for a clonable repo, check out the [scaffolds availabe in the Flow CLI](../tooling/flow-cli/super-commands.md#using-scaffolds). +> **Note**: This page will walk you through a very bare bones project to get started building a web3 dapp using the Flow Client Library (FCL). If you are looking for a clonable repo, check out the [scaffolds availabe in the Flow CLI](../tools/toolchains/flow-cli/super-commands.md#using-scaffolds). ## Video Walkthrough @@ -14,7 +14,7 @@ Below is a video walkthrough covering the contents of this tutorial. You are wel ## Before You Start -Make sure you have Flow CLI installed. If you don't, follow the [installation instructions](../tooling/flow-cli/install.md). +Make sure you have Flow CLI installed. If you don't, follow the [installation instructions](../tools/toolchains/flow-cli/install.md). ## Introduction @@ -52,7 +52,7 @@ Then, using the Flow CLI, create a new `flow.json` file in the root of your app. flow init ``` -We don't recommend keeping private keys in your `flow.json`, so for good practice let's move our private key to a `emulator.key` file in the root of our project and point to it using the [key/location pattern](../tooling/flow-cli/flow.json/security.md#private-account-configuration-file) used by Flow CLI. This file will be ignored by git, so it won't be committed to your repository. +We don't recommend keeping private keys in your `flow.json`, so for good practice let's move our private key to a `emulator.key` file in the root of our project and point to it using the [key/location pattern](../tools/toolchains/flow-cli/flow.json/security.md#private-account-configuration-file) used by Flow CLI. This file will be ignored by git, so it won't be committed to your repository. We won't be using emulator and running contracts locally in this quickstart, but FCL will complain if it finds private keys in your `flow.json` file. @@ -111,7 +111,7 @@ config({ The `accessNode.api` key specifies the address of a Flow access node. Flow provides these, but in the future access to Flow may be provided by other 3rd parties, through their own access nodes. `discovery.wallet` is an address that points to a service that lists FCL compatible wallets. Flow's FCL Discovery service is a service that FCL wallet providers can be added to, and be made 'discoverable' to any application that uses the `discovery.wallet` endpoint. -> Learn more about [configuring Discovery](../tooling/fcl-js/discovery.mdx) or [setting configuration values](../tooling/fcl-js/api.md#setting-configuration-values). +> Learn more about [configuring Discovery](../tools/clients/fcl-js/discovery.mdx) or [setting configuration values](../tools/clients/fcl-js/api.md#setting-configuration-values). The main page for Next.js apps is located in `pages/index.js`. So let's finish configuring our dapp by going in the `pages/` directory and importing the config file into the top of our `index.js` file. We'll then swap out the default component in `index.js` to look like this: @@ -145,7 +145,7 @@ Now we're ready to start talking to Flow! ## Authentication -To authenticate a user, all an app has to do is call `fcl.logIn()`. Sign up and unauthenticate are all also as simple as `fcl.signUp()` and `fcl.unauthenticate()`. Once authenticated, FCL sets an object called `fcl.currentUser` which exposes methods for watching changes in user data, signing transactions, and more. For more information on the `currentUser`, read more [here](../tooling/fcl-js/api.md#current-user). +To authenticate a user, all an app has to do is call `fcl.logIn()`. Sign up and unauthenticate are all also as simple as `fcl.signUp()` and `fcl.unauthenticate()`. Once authenticated, FCL sets an object called `fcl.currentUser` which exposes methods for watching changes in user data, signing transactions, and more. For more information on the `currentUser`, read more [here](../tools/clients/fcl-js/api.md#current-user). Let's add in a few buttons for sign up/login and also subscribe to changes on the `currentUser`. When the user is updated (which it will be after authentication), we'll set the user state in our component to reflect this. To demonstrate user authenticated sessions, we'll conditionally render a component based on if the user is or is not logged in. @@ -207,7 +207,7 @@ You should now be able to log in or sign up a user and unauthenticate them. Upon One of the main things you'll often need to do when building a dapp is query the Flow blockchain and the smart contracts deployed on it for data. Since smart contracts will live on both Testnet and Mainnet, let's put the account address where the smart contract lives into the `flow.json` so FCL can pick it up. We are going to also use an alias for testnet. -If you want to see how to use local files for emulator and learn more about aliases, check out the [flow.json documentation](../tooling/flow-cli/flow.json/configuration). For now, know that an alias lets us specify a contract address based on a specific network (e.g. testnet/mainnet). +If you want to see how to use local files for emulator and learn more about aliases, check out the [flow.json documentation](../tools/toolchains/flow-cli/flow.json/configuration). For now, know that an alias lets us specify a contract address based on a specific network (e.g. testnet/mainnet). > **Replace file:** `flow.json` @@ -338,7 +338,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.mdx). -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](../tooling/fcl-js/api.md#ftype). +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). Go ahead and click the "Send Query" button. You should see "No Profile." That's because we haven't initialized the account yet. @@ -651,7 +651,7 @@ export default function Home() { ``` -Now if you click the "Execute Transaction" button you'll see the statuses update next to "Transaction Status." When you see "4" that means it's sealed! Status code meanings [can be found here](../tooling/fcl-js/api.md#transaction-statuses). +Now if you click the "Execute Transaction" button you'll see the statuses update next to "Transaction Status." When you see "4" that means it's sealed! Status code meanings [can be found here](../tools/clients/fcl-js/api.md#transaction-statuses). If you query the account profile again, "Profile Name:" should now display "Flow Developer". 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: @@ -670,11 +670,11 @@ That's it! You now have a shippable Flow dapp that can auth, query, init account - [Advanced Example: Kitty Items](https://github.com/onflow/kitty-items) **More FCL** -- [FCL API Quick Reference](../tooling/fcl-js/api) -- [More on Scripts](../tooling/fcl-js/scripts.mdx) -- [More on Transactions](../tooling/fcl-js/transactions.mdx) -- [User Signatures](../tooling/fcl-js/user-signatures.mdx) -- [Proving Account Ownership](../tooling/fcl-js/proving-authentication.mdx) +- [FCL API Quick Reference](../tools/clients/fcl-js/api) +- [More on Scripts](../tools/clients/fcl-js/scripts.mdx) +- [More on Transactions](../tools/clients/fcl-js/transactions.mdx) +- [User Signatures](../tools/clients/fcl-js/user-signatures.mdx) +- [Proving Account Ownership](../tools/clients/fcl-js/proving-authentication.mdx) **Other** - [Flow Developer Onboarding Guide](../tutorials/intro.md) diff --git a/docs/tutorials/kitty-items/index.md b/docs/tutorials/kitty-items/index.md index 884abf60cb..d46a2fa96f 100644 --- a/docs/tutorials/kitty-items/index.md +++ b/docs/tutorials/kitty-items/index.md @@ -33,13 +33,13 @@ The project consists of 3 key components: ### 1. Front End -This is a complete web application built with NextJS and React that demonstrates how to build a website that connects directly to the Flow blockchain using [FCL](../../tooling/fcl-js/index.md). FCL handles authentication and authorization of [Flow accounts](../../concepts/start-here/accounts-and-keys.md), [signing transactions](../../concepts/start-here/transaction-signing.md), and querying data using using Cadence scripts. +This is a complete web application built with NextJS and React that demonstrates how to build a website that connects directly to the Flow blockchain using [FCL](../../tools/clients/fcl-js/index.md). FCL handles authentication and authorization of [Flow accounts](../../concepts/start-here/accounts-and-keys.md), [signing transactions](../../concepts/start-here/transaction-signing.md), and querying data using using Cadence scripts. ### 2. Back End We love decentralization, but servers are still very useful, and this one's no exception. The backend API helps preserve the separation of concerns, so that your process and business logic doesn't have to implemented on the front-end. Backend operations are necessary to ensure secure handling of accounts and associated keys and to streamline blockchain interactions. -The code in this project demonstrates how to connect to Flow using [FCL](../../tooling/fcl-js/index.md) from a Node JS backend. It's also chock-full of handy patterns you'll probably want to use for more complex and feature-rich blockchain applications, like storing and querying events using a SQL database (SQLite). The API demonstrates how to send transactions to the Flow blockchain, specifically for minting [Kitty Items](https://github.com/onflow/kitty-items/blob/master/cadence/contracts/KittyItems.cdc) (non-fungible tokens). +The code in this project demonstrates how to connect to Flow using [FCL](../../tools/clients/fcl-js/index.md) from a Node JS backend. It's also chock-full of handy patterns you'll probably want to use for more complex and feature-rich blockchain applications, like storing and querying events using a SQL database (SQLite). The API demonstrates how to send transactions to the Flow blockchain, specifically for minting [Kitty Items](https://github.com/onflow/kitty-items/blob/master/cadence/contracts/KittyItems.cdc) (non-fungible tokens). ### 3. Flow Network (Smart Contracts) diff --git a/docs/tutorials/kitty-items/install.md b/docs/tutorials/kitty-items/install.md index ebf3483a14..2b8c685c68 100644 --- a/docs/tutorials/kitty-items/install.md +++ b/docs/tutorials/kitty-items/install.md @@ -28,7 +28,7 @@ v16.x.x ### Flow CLI -Ensure you have the [Flow CLI](../../tooling/flow-cli/install.md). Version **0.32.3+** is required. +Ensure you have the [Flow CLI](../../tools/toolchains/flow-cli/install.md). Version **0.32.3+** is required. ``` > flow version diff --git a/docs/tutorials/kitty-items/modify.md b/docs/tutorials/kitty-items/modify.md index f1d83bdba8..511224d48c 100644 --- a/docs/tutorials/kitty-items/modify.md +++ b/docs/tutorials/kitty-items/modify.md @@ -14,7 +14,7 @@ The following steps will guide you through a modification of the Kitty Items pro ## Start in emulator -In the last step, you started the project on the testnet. For local development, however, it is recommended to emulate the blockchain network locally using the [Flow Emulator](../../tooling/emulator/). Once changes are implemented and tested locally, you will deploy the updates to the testnet. +In the last step, you started the project on the testnet. For local development, however, it is recommended to emulate the blockchain network locally using the [Flow Emulator](../../tools/toolchains/emulator/). Once changes are implemented and tested locally, you will deploy the updates to the testnet. Let's start the project in the emulator by running the command below in the root project folder. diff --git a/docs/tutorials/kitty-items/next-steps.md b/docs/tutorials/kitty-items/next-steps.md index 3134d19e52..f542612215 100644 --- a/docs/tutorials/kitty-items/next-steps.md +++ b/docs/tutorials/kitty-items/next-steps.md @@ -12,7 +12,7 @@ By now, you have a fully-functioning NFT marketplace with your own, new exclusiv ## Learn more about NFT marketplaces -Dive deeper by reading the **[NFT Marketplace Guide](../../tooling/nft-marketplace/)**. It covers topics like the building blocks of marketplaces, how to handle accounts, how to mint and sell NFTs, and best practices for production-readiness. +Dive deeper by reading the **[NFT Marketplace Guide](../../tools/toolchains/nft-marketplace/)**. It covers topics like the building blocks of marketplaces, how to handle accounts, how to mint and sell NFTs, and best practices for production-readiness. ## Improve your Kitty Items project diff --git a/docs/tutorials/mainnet-account-setup.md b/docs/tutorials/mainnet-account-setup.md index dbdf71bb76..9f8b76150d 100644 --- a/docs/tutorials/mainnet-account-setup.md +++ b/docs/tutorials/mainnet-account-setup.md @@ -9,7 +9,7 @@ In order to deploy your smart contracts to the mainnet, you need to register, fu > **Note**: This account will be used for production purposes. Make sure you handle keys appropriately. Using a Key Management Service is the best practice. By default, this command generates an ECDSA key pair on the P-256 curve. Keep in mind the CLI is intended for development purposes only and is not recommended for production use. Handling keys using a Key Management Service is the best practice. ## Create an account -You can easily create a new funded account on mainnet using the Flow CLI. You only need to run a single command `flow accounts create` and select a name for the account and the network, which in this case is `mainnet`. After that the account private key is saved into a seperate file called `{name}.pkey`. We advice switching to KMS system for production use which you [can read more about here](../tooling/flow-cli/flow.json/configuration.md#advanced-format-1). +You can easily create a new funded account on mainnet using the Flow CLI. You only need to run a single command `flow accounts create` and select a name for the account and the network, which in this case is `mainnet`. After that the account private key is saved into a seperate file called `{name}.pkey`. We advice switching to KMS system for production use which you [can read more about here](../tools/toolchains/flow-cli/flow.json/configuration.md#advanced-format-1). ``` flow accounts create @@ -26,4 +26,4 @@ Here’s a summary of all the actions that were taken: ``` -Read more about the command in the [CLI account creation documentation](../tooling/flow-cli/accounts/create-accounts.md#interactive-mode). +Read more about the command in the [CLI account creation documentation](../tools/toolchains/flow-cli/accounts/create-accounts.md#interactive-mode). diff --git a/docs/tutorials/mainnet-deployment.md b/docs/tutorials/mainnet-deployment.md index 170d69de67..7bab05905d 100644 --- a/docs/tutorials/mainnet-deployment.md +++ b/docs/tutorials/mainnet-deployment.md @@ -29,7 +29,7 @@ First, you need to configure the `flow.json` file to add your mainnet account de } ``` -Next, you need to set the [deployment target configuration](../tooling/flow-cli/deployment/deploy-project-contracts.md#define-contract-deployment-targets) for the mainnet: +Next, you need to set the [deployment target configuration](../tools/toolchains/flow-cli/deployment/deploy-project-contracts.md#define-contract-deployment-targets) for the mainnet: ```js flow.json { @@ -45,7 +45,7 @@ Next, you need to set the [deployment target configuration](../tooling/flow-cli/ ## Deploy a contract on mainnet using the CLI -With the configuration changes completed, run the [Flow CLI deployment command](../tooling/flow-cli/deployment/deploy-project-contracts.md): +With the configuration changes completed, run the [Flow CLI deployment command](../tools/toolchains/flow-cli/deployment/deploy-project-contracts.md): ```sh > flow project deploy --network=mainnet @@ -64,11 +64,11 @@ Bar -> 0xab7... (6c243d09e...b878111098) > **Important**: If you see `Error Code: 1103`, your new account does not have enough funds to complete the transaction. Make sure you have enough FLOW (e.g. by [sending some from your Blocto account](./mainnet-account-setup#step-3-send-flow-to-non-custodial-account)). -Once all your contracts are deployed, you can visit [flow-view-source](https://flow-view-source.com/) or run the [Flow CLI get account command](../tooling/flow-cli/accounts/get-accounts.md) to confirm the deployment. +Once all your contracts are deployed, you can visit [flow-view-source](https://flow-view-source.com/) or run the [Flow CLI get account command](../tools/toolchains/flow-cli/accounts/get-accounts.md) to confirm the deployment. ## Update/Re-deploy a contract on mainnet using the CLI -You can use the [Flow CLI contract update command](../tooling/flow-cli/accounts/account-update-contract.md) to re-deploy an updated version of your contract: +You can use the [Flow CLI contract update command](../tools/toolchains/flow-cli/accounts/account-update-contract.md) to re-deploy an updated version of your contract: ```sh > flow accounts update-contract Foo ./Foo.cdc --signer=my-mainnet-account --network=mainnet diff --git a/docs/tutorials/smart-contracts.md b/docs/tutorials/smart-contracts.md index 1ae748c6c6..0e7d627345 100644 --- a/docs/tutorials/smart-contracts.md +++ b/docs/tutorials/smart-contracts.md @@ -23,10 +23,10 @@ After learning the basics, check out the [Kitty Items sample dapp](./kitty-items To build confidently, you will want to set up the appropriate local environment and have an adequate test suite to ensure your smart contracts operate as intended. To do this, familiarize yourself with the following tools: -- [Flow CLI](../tooling/flow-cli/): A utility to directly interact with the chain and manage accounts and contracts. -- [Flow Emulator](../tooling/emulator/): A lightweight server that simulates the Flow blockchain (strongly recommended during development). +- [Flow CLI](../tools/toolchains/flow-cli/): A utility to directly interact with the chain and manage accounts and contracts. +- [Flow Emulator](../tools/toolchains/emulator/): A lightweight server that simulates the Flow blockchain (strongly recommended during development). - [FCL Dev Wallet](https://github.com/onflow/fcl-dev-wallet/): A utility to simulate user wallets in development. -- [Visual Studio Code Extension](../tooling/vscode-extension/): An IDE integration for developing smart contracts. +- [Visual Studio Code Extension](../tools/toolchains/vscode-extension/): An IDE integration for developing smart contracts. - [JS Testing Framework](https://github.com/onflow/flow-js-testing): A framework to test your smart contracts. ## Storing Data on Flow diff --git a/docs/tutorials/testnet-deployment.md b/docs/tutorials/testnet-deployment.md index 202657f348..0144850213 100644 --- a/docs/tutorials/testnet-deployment.md +++ b/docs/tutorials/testnet-deployment.md @@ -6,7 +6,7 @@ sidebar_position: 3 The Flow test network, known as Flow Testnet, exists to help developers test their software and smart contracts against a live network. It's also used as a means of releasing and testing new protocol and smart contract features before they are integrated into Flow's main network (Mainnet). -When the Flow protocol is updated or a new version of Cadence is released, those updates will always be made available on the [Flow Emulator](../tooling/emulator) _before_ they're integrated into Flow Testnet or Flow Mainnet. +When the Flow protocol is updated or a new version of Cadence is released, those updates will always be made available on the [Flow Emulator](../tools/toolchains/emulator) _before_ they're integrated into Flow Testnet or Flow Mainnet. ## Getting Started on Testnet @@ -18,7 +18,7 @@ Anybody can use the [Testnet Faucet](https://testnet-faucet-v2.onflow.org/) to c To start, you'll need to generate an asymmetric cryptographic key pair (see [Accounts & Keys](../concepts/start-here/accounts-and-keys) for a list of supported algorithms). -For Testnet, you can generate a new key pair with the [Flow CLI](../tooling/flow-cli): +For Testnet, you can generate a new key pair with the [Flow CLI](../tools/toolchains/flow-cli): ```sh > flow keys generate @@ -70,7 +70,7 @@ func main() { ### Creating Additional Accounts -It may be necessary to create additional accounts for testing purposes and you can do so using [Flow CLI account create command](../tooling/flow-cli/accounts/create-accounts.md). +It may be necessary to create additional accounts for testing purposes and you can do so using [Flow CLI account create command](../tools/toolchains/flow-cli/accounts/create-accounts.md). First you need to initialize the configuration: @@ -94,7 +94,7 @@ Add the account created with the use of faucet above to the `accounts` property ``` After adding account to the configuration you can use that account to fund the creation of more accounts by using -[CLI account create](../tooling/flow-cli/accounts/create-accounts.md) command. +[CLI account create](../tools/toolchains/flow-cli/accounts/create-accounts.md) command. ``` > flow accounts create \ @@ -116,7 +116,7 @@ Contracts Deployed: 0 ### Deploying a Contract -Using the account you created above, you can deploy additional contract accounts using the [Flow CLI deploy command](../tooling/flow-cli/deployment/deploy-project-contracts.md). +Using the account you created above, you can deploy additional contract accounts using the [Flow CLI deploy command](../tools/toolchains/flow-cli/deployment/deploy-project-contracts.md). Make sure flow project was initialized in the previous step and the `flow.json` is present. @@ -160,7 +160,7 @@ You can now deploy all the contracts by running deploy command: flow project deploy ``` -Please read more about deployment in [the Flow CLI project deployment guide](../tooling/flow-cli/deployment/deploy-project-contracts.md). +Please read more about deployment in [the Flow CLI project deployment guide](../tools/toolchains/flow-cli/deployment/deploy-project-contracts.md). ### Making Use of Core Contracts diff --git a/docusaurus.config.js b/docusaurus.config.js index e4ac79bf2d..2f8ba6f0fc 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -274,9 +274,9 @@ const config = { label: 'Cadence', }, { - to: 'tooling/intro', + to: 'next/tools', position: 'left', - label: 'Tooling', + label: 'Tools', }, { to: 'references/Introduction', @@ -321,7 +321,7 @@ const config = { }, { label: "SDK's & Tools", - to: '/tools', + to: '/next/tools', }, { to: '/learn', @@ -336,19 +336,19 @@ const config = { label: 'Mobile', }, { - to: '/tooling/fcl-js/', + to: '/next/tools/clients/fcl-js/', label: 'FCL', }, { - to: '/tooling/flow-js-testing/', + to: '/next/tools/toolchains/flow-js-testing/', label: 'JS Testing Library', }, { - to: '/tooling/flow-cli/', + to: '/next/tools/toolchains/flow-cli/', label: 'CLI', }, { - to: '/tooling/emulator/', + to: '/next/tools/toolchains/emulator/', label: 'Emulator', }, { @@ -356,7 +356,7 @@ const config = { label: 'Dev Wallet', }, { - to: '/tooling/vscode-extension/', + to: '/next/tools/toolchains/vscode-extension/', label: 'VS Code Extension', }, ], diff --git a/sidebars.js b/sidebars.js index abe73376b5..e7262dfaf0 100644 --- a/sidebars.js +++ b/sidebars.js @@ -13,7 +13,14 @@ /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ const sidebars = { - docsSidebar: [{ type: 'autogenerated', dirName: '.' }], + concepts: [{ type: 'autogenerated', dirName: 'concepts' }], + tutorials: [{ type: 'autogenerated', dirName: 'tutorials' }], + cadence: [{ type: 'autogenerated', dirName: 'cadence' }], + tools: [{ type: 'autogenerated', dirName: 'tools' }], + references: [{ type: 'autogenerated', dirName: 'references' }], + communityResources: [ + { type: 'autogenerated', dirName: 'community-resources' }, + ], }; module.exports = sidebars; diff --git a/src/theme/Admonition/index.js b/src/theme/Admonition/index.tsx similarity index 80% rename from src/theme/Admonition/index.js rename to src/theme/Admonition/index.tsx index 43bfe009d1..703321a716 100644 --- a/src/theme/Admonition/index.js +++ b/src/theme/Admonition/index.tsx @@ -1,9 +1,12 @@ // swizzled component from a standard Admonition -import React from 'react'; +import React, { type ReactNode } from 'react'; import clsx from 'clsx'; -import {ThemeClassNames} from '@docusaurus/theme-common'; +import { ThemeClassNames } from '@docusaurus/theme-common'; import Translate from '@docusaurus/Translate'; +import type { Props } from '@theme/Admonition'; + import styles from './styles.module.css'; + function NoteIcon() { return ( @@ -14,6 +17,7 @@ function NoteIcon() { ); } + function TipIcon() { return ( @@ -24,6 +28,7 @@ function TipIcon() { ); } + function DangerIcon() { return ( @@ -34,6 +39,7 @@ function DangerIcon() { ); } + function InfoIcon() { return ( @@ -44,6 +50,7 @@ function InfoIcon() { ); } + function CautionIcon() { return ( @@ -54,15 +61,23 @@ function CautionIcon() { ); } + +interface AdmonitionConfig { + iconComponent: React.ComponentType; + infimaClassName: string; + label: ReactNode; +} + // eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style -const AdmonitionConfigs = { +const AdmonitionConfigs: Record = { note: { infimaClassName: 'secondary', iconComponent: NoteIcon, label: ( + description="The default label used for the Note admonition (:::note)" + > note ), @@ -73,7 +88,8 @@ const AdmonitionConfigs = { label: ( + description="The default label used for the Tip admonition (:::tip)" + > tip ), @@ -84,7 +100,8 @@ const AdmonitionConfigs = { label: ( + description="The default label used for the Danger admonition (:::danger)" + > danger ), @@ -95,7 +112,8 @@ const AdmonitionConfigs = { label: ( + description="The default label used for the Info admonition (:::info)" + > info ), @@ -106,7 +124,8 @@ const AdmonitionConfigs = { label: ( + description="The default label used for the Caution admonition (:::caution)" + > caution ), @@ -118,12 +137,14 @@ const AdmonitionConfigs = { label: ( + description="The default label used for the Caution admonition (:::caution)" + > warning ), }, }; + // Legacy aliases, undocumented but kept for retro-compatibility const aliases = { secondary: 'note', @@ -131,9 +152,11 @@ const aliases = { success: 'tip', // warning: 'danger', // use custom type instead }; -function getAdmonitionConfig(unsafeType) { - const type = aliases[unsafeType] ?? unsafeType; - const config = AdmonitionConfigs[type]; + +function getAdmonitionConfig(unsafeType: string): AdmonitionConfig { + const type = + (aliases as Record)[unsafeType] ?? unsafeType; + const config = (AdmonitionConfigs as Record)[type]; if (config) { return config; } @@ -142,14 +165,19 @@ function getAdmonitionConfig(unsafeType) { ); return AdmonitionConfigs.info; } + // Workaround because it's difficult in MDX v1 to provide a MDX title as props // See https://github.com/facebook/docusaurus/pull/7152#issuecomment-1145779682 -function extractMDXAdmonitionTitle(children) { +function extractMDXAdmonitionTitle(children: ReactNode): { + mdxAdmonitionTitle: ReactNode | undefined; + rest: ReactNode; +} { const items = React.Children.toArray(children); const mdxAdmonitionTitle = items.find( (item) => React.isValidElement(item) && - item.props?.mdxType === 'mdxAdmonitionTitle', + (item.props as { mdxType: string } | null)?.mdxType === + 'mdxAdmonitionTitle', ); const rest = <>{items.filter((item) => item !== mdxAdmonitionTitle)}; return { @@ -157,19 +185,29 @@ function extractMDXAdmonitionTitle(children) { rest, }; } -function processAdmonitionProps(props) { - const {mdxAdmonitionTitle, rest} = extractMDXAdmonitionTitle(props.children); + +function processAdmonitionProps(props: Props): Props { + const { mdxAdmonitionTitle, rest } = extractMDXAdmonitionTitle( + props.children, + ); return { ...props, title: props.title ?? mdxAdmonitionTitle, children: rest, }; } -export default function Admonition(props) { - const {children, type, title, icon: iconProp} = processAdmonitionProps(props); + +export default function Admonition(props: Props): JSX.Element { + const { + children, + type, + title, + icon: iconProp, + } = processAdmonitionProps(props); + const typeConfig = getAdmonitionConfig(type); const titleLabel = title ?? typeConfig.label; - const {iconComponent: IconComponent} = typeConfig; + const { iconComponent: IconComponent } = typeConfig; const icon = iconProp ?? ; return (
+ )} + >
{icon} {titleLabel} diff --git a/src/theme/DocCard/index.tsx b/src/theme/DocCard/index.tsx new file mode 100644 index 0000000000..683cc688c4 --- /dev/null +++ b/src/theme/DocCard/index.tsx @@ -0,0 +1,120 @@ +// swizzled component from a standard DocCard +import React, { type ReactNode } from 'react'; +import clsx from 'clsx'; +import Link from '@docusaurus/Link'; +import { + findFirstCategoryLink, + useDocById, +} from '@docusaurus/theme-common/internal'; +import isInternalUrl from '@docusaurus/isInternalUrl'; +import { translate } from '@docusaurus/Translate'; +import type { Props } from '@theme/DocCard'; + +import styles from './styles.module.css'; +import type { + PropSidebarItemCategory, + PropSidebarItemLink, +} from '@docusaurus/plugin-content-docs'; + +function CardContainer({ + href, + children, +}: { + href: string; + children: ReactNode; +}): JSX.Element { + return ( + + {children} + + ); +} + +function CardLayout({ + href, + icon, + title, + description, +}: { + href: string; + icon: ReactNode; + title: string; + description?: string; +}): JSX.Element { + return ( + +

+ {icon} {title} +

+ {description && ( +

+ {description} +

+ )} +
+ ); +} + +function CardCategory({ + item, +}: { + item: PropSidebarItemCategory; +}): JSX.Element | null { + const href = findFirstCategoryLink(item); + + // Unexpected: categories that don't have a link have been filtered upfront + if (!href) { + return null; + } + + return ( + + ); +} + +function CardLink({ item }: { item: PropSidebarItemLink }): JSX.Element { + const icon = isInternalUrl(item.href) ? 'πŸ“„οΈ' : 'πŸ”—'; + const doc = useDocById(item.docId ?? undefined); + return ( + + ); +} + +export default function DocCard({ item }: Props): JSX.Element { + switch (item.type) { + case 'link': + return ; + case 'category': + return ; + default: + throw new Error(`unknown item type ${JSON.stringify(item)}`); + } +} diff --git a/src/theme/DocCard/styles.module.css b/src/theme/DocCard/styles.module.css new file mode 100644 index 0000000000..c96ae75493 --- /dev/null +++ b/src/theme/DocCard/styles.module.css @@ -0,0 +1,31 @@ +.cardContainer { + --ifm-link-color: var(--ifm-color-emphasis-800); + --ifm-link-hover-color: var(--ifm-color-emphasis-700); + --ifm-link-hover-decoration: none; + + box-shadow: 0 1.5px 3px 0 rgb(0 0 0 / 15%); + border: 1px solid var(--ifm-color-emphasis-200); + transition: all var(--ifm-transition-fast) ease; + transition-property: border, box-shadow; +} + +.cardContainer:hover { + border-color: var(--ifm-color-primary); + box-shadow: 0 3px 6px 0 rgb(0 0 0 / 20%); +} + +.cardContainer *:last-child { + margin-bottom: 0; +} + +.cardTitle { + font-size: 1.2rem; +} + +.cardDescription { + font-size: 0.8rem; +} + +.preWrap { + white-space: pre-wrap; +} \ No newline at end of file diff --git a/versioned_sidebars/version-stable-sidebars.json b/versioned_sidebars/version-stable-sidebars.json index 4b3ea3569c..07e9a3129c 100644 --- a/versioned_sidebars/version-stable-sidebars.json +++ b/versioned_sidebars/version-stable-sidebars.json @@ -1,9 +1,8 @@ { - - "docsSidebar": [ - { - "type": "autogenerated", - "dirName": "." - } - ] + "concepts": [{ "type": "autogenerated", "dirName": "concepts" }], + "tutorials": [{ "type": "autogenerated", "dirName": "tutorials" }], + "cadence": [{ "type": "autogenerated", "dirName": "cadence" }], + "tooling": [{ "type": "autogenerated", "dirName": "tooling" }], + "references": [{ "type": "autogenerated", "dirName": "references" }], + "community-resources": [{ "type": "autogenerated", "dirName": "community-resources" }] }