From b94091a2b52b941a27f3cf582d40eff312320c17 Mon Sep 17 00:00:00 2001 From: Tim McMackin Date: Fri, 23 Aug 2024 15:16:45 -0400 Subject: [PATCH 1/3] Relative links from the same folder --- docs/architecture.md | 16 ++++++------ docs/architecture/accounts.md | 4 +-- docs/architecture/governance.md | 4 +-- docs/architecture/smart-rollups.md | 4 +-- docs/architecture/tokens.md | 10 +++---- docs/dApps.md | 16 ++++++------ docs/dApps/sending-transactions.md | 2 +- docs/dApps/wallets.md | 2 +- docs/developing.md | 6 ++--- docs/developing/information.md | 6 ++--- .../information/block-explorers/tzstats.mdx | 2 +- docs/developing/information/indexers.md | 2 +- docs/developing/sandbox.md | 2 +- docs/developing/testing.md | 2 +- docs/developing/testnets.md | 2 +- docs/overview/glossary.md | 6 +++-- docs/smart-contracts.mdx | 2 +- docs/smart-contracts/creating.md | 4 +-- docs/smart-contracts/data-types.md | 6 ++--- docs/smart-contracts/entrypoints.md | 6 ++--- docs/smart-contracts/languages.md | 8 +++--- docs/smart-contracts/storage.md | 2 +- docs/tutorials/build-an-nft-marketplace.md | 8 +++--- .../build-an-nft-marketplace/part-1.md | 2 +- .../build-an-nft-marketplace/part-2.md | 2 +- .../build-an-nft-marketplace/part-3.md | 2 +- .../tutorials/build-files-archive-with-dal.md | 4 +-- .../get-dal-params.md | 4 +-- .../get-slot-info.md | 4 +-- .../publishing-on-the-dal.md | 4 +-- .../set-up-environment.md | 2 +- docs/tutorials/create-an-nft.md | 6 ++--- docs/tutorials/dapp.md | 2 +- docs/tutorials/dapp/part-1.md | 2 +- docs/tutorials/dapp/part-2.md | 2 +- docs/tutorials/dapp/part-3.md | 2 +- docs/tutorials/join-dal-baker.md | 4 +-- .../join-dal-baker/prepare-account.md | 2 +- docs/tutorials/join-dal-baker/run-baker.md | 2 +- docs/tutorials/join-dal-baker/run-dal-node.md | 2 +- docs/tutorials/join-dal-baker/run-node.md | 2 +- docs/tutorials/mobile.md | 2 +- docs/tutorials/mobile/part-1.md | 2 +- docs/tutorials/mobile/part-2.md | 2 +- docs/tutorials/mobile/part-3.md | 2 +- docs/tutorials/security.md | 2 +- docs/tutorials/security/part-1.md | 2 +- docs/tutorials/security/part-2.md | 2 +- docs/tutorials/smart-contract.md | 8 +++--- docs/tutorials/smart-contract/archetype.md | 6 ++--- docs/tutorials/smart-contract/cameligo.mdx | 6 ++--- docs/tutorials/smart-contract/jsligo.mdx | 6 ++--- docs/tutorials/smart-contract/smartpy.mdx | 6 ++--- docs/tutorials/smart-rollup.md | 2 +- .../customizing-operations.md | 4 +-- docs/unity.md | 8 +++--- docs/unity/connecting-accounts.md | 12 ++++----- docs/unity/managing-contracts.md | 24 ++++++++--------- docs/unity/managing-tokens.md | 2 +- docs/unity/prefabs.md | 4 +-- docs/unity/quickstart.md | 26 +++++++++---------- docs/unity/reference.md | 16 ++++++------ docs/unity/reference/API.md | 2 +- docs/unity/reference/DataProviderConfigSO.md | 2 +- docs/unity/reference/TezosConfigSO.md | 2 +- docs/unity/reference/TokenContract.md | 8 +++--- docs/unity/sample-game.md | 8 +++--- docs/unity/scenes.md | 14 +++++----- 68 files changed, 177 insertions(+), 175 deletions(-) diff --git a/docs/architecture.md b/docs/architecture.md index 7db03db85..febff8845 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -74,7 +74,7 @@ This protocol is responsible for interpreting the operations in each block. It also provides the logic that identifies erroneous blocks. Updates to the protocol can change this logic through a voting process, using dedicated voting operations such as protocol proposals or protocol upvotes. -For information about the voting process, see [Governance](./architecture/governance). +For information about the voting process, see [Governance](/architecture/governance). The protocol has constants such as the time between blocks and the amount of tez that an account must stake to be a baker. These constants can be different for different Tezos networks. @@ -116,7 +116,7 @@ For example, different bakers may implement different transaction selection stra The node accepts calls from clients through its RPC interface. It has control over which clients to accept calls from, which calls to accept, or whether to accept RPC calls at all. -For more information on the RPC interface, see [The RPC interface](./architecture/rpc). +For more information on the RPC interface, see [The RPC interface](/architecture/rpc). ### The baker daemon @@ -167,9 +167,9 @@ They are an important part of block explorers, which are applications that provi For more information about the architecture of Tezos, see: -- [Accounts and addresses](./architecture/accounts) -- [Tokens](./architecture/tokens) -- [Smart Optimistic Rollups](./architecture/smart-rollups) -- [Governance](./architecture/governance) -- [Indexers](./developing/information/indexers) -- [Block explorers](./developing/information/block-explorers) +- [Accounts and addresses](/architecture/accounts) +- [Tokens](/architecture/tokens) +- [Smart Optimistic Rollups](/architecture/smart-rollups) +- [Governance](/architecture/governance) +- [Indexers](/developing/information/indexers) +- [Block explorers](/developing/information/block-explorers) diff --git a/docs/architecture/accounts.md b/docs/architecture/accounts.md index bcf1c8647..ca975e1ba 100644 --- a/docs/architecture/accounts.md +++ b/docs/architecture/accounts.md @@ -13,7 +13,7 @@ Tezos uses these types of accounts: Any wallet application or the Octez command-line tool can create user accounts. - Smart contract accounts (sometimes known as _originated accounts_) store immutable code, mutable storage, tez (ꜩ), and tickets. -See [Smart contracts](../smart-contracts). +See [Smart contracts](/smart-contracts). ### Revealing accounts @@ -31,4 +31,4 @@ To reveal an account, send any transaction from it, such as calling a smart cont - Smart Rollups have addresses, but are not accounts because they cannot store tez. Their addresses start with "SR1". They have a tree of commitments attached to them. -See [Smart Optimistic Rollups](./smart-rollups). +See [Smart Optimistic Rollups](/architecture/smart-rollups). diff --git a/docs/architecture/governance.md b/docs/architecture/governance.md index aed2b6f71..6d92288cb 100644 --- a/docs/architecture/governance.md +++ b/docs/architecture/governance.md @@ -5,10 +5,10 @@ last_update: --- Tezos incorporates a built-in, on-chain mechanism for proposing, selecting, testing, and activating protocol upgrades without the need to hard fork. -This mechanism makes Tezos a self-amending blockchain and allows any user to propose changes to the [economic protocol](../architecture#the-tezos-self-amending-protocol), which defines the possible blockchain operations and how they are processed. +This mechanism makes Tezos a self-amending blockchain and allows any user to propose changes to the [economic protocol](/architecture#the-tezos-self-amending-protocol), which defines the possible blockchain operations and how they are processed. -This self-amendment process is separate from the less formal [Tezos Improvement Process](./governance/improvement-process). +This self-amendment process is separate from the less formal [Tezos Improvement Process](/architecture/governance/improvement-process). ## Amendment periods diff --git a/docs/architecture/smart-rollups.md b/docs/architecture/smart-rollups.md index d98d8d6fe..e06ce2e3e 100644 --- a/docs/architecture/smart-rollups.md +++ b/docs/architecture/smart-rollups.md @@ -18,7 +18,7 @@ During normal execution, the Smart Rollup can use any virtual machine that is co Using the PVM and optionally a compatible VM guarantees that if a divergence in results is found, it can be tracked down to a single elementary step that was not executed correctly by some node. In this way, multiple nodes can run the same rollup and each node can verify the state of the rollup. -For a tutorial on Smart Rollups, see [Deploy a Smart Rollup](../tutorials/smart-rollup). +For a tutorial on Smart Rollups, see [Deploy a Smart Rollup](/tutorials/smart-rollup). For reference on Smart Rollups, see [Smart Optimistic Rollups](https://tezos.gitlab.io/active/smart_rollups.html) in the Octez documentation. @@ -46,7 +46,7 @@ Smart Rollups are limited to information from these sources: - The Smart Rollup inbox, which contains messages from layer 1 to all rollups - The reveal data channel, which allows Smart Rollups to request information from outside sources -- The [Data availability layer](./data-availability-layer) +- The [Data availability layer](/architecture/data-availability-layer) These are the only sources of information that rollups can use. In particular, Smart Rollup nodes cannot communicate directly with each other; they do not have a peer-to-peer communication channel like layer 1 nodes. diff --git a/docs/architecture/tokens.md b/docs/architecture/tokens.md index 8c17af75f..93a68e840 100644 --- a/docs/architecture/tokens.md +++ b/docs/architecture/tokens.md @@ -30,8 +30,8 @@ However, Tezos also offers a built-in abstraction called tickets, which are fung To start right away using tokens, see these tutorials: -- [Create an NFT](../tutorials/create-an-nft) -- [Build a simple web application](../tutorials/build-your-first-app) +- [Create an NFT](/tutorials/create-an-nft) +- [Build a simple web application](/tutorials/build-your-first-app) ## Fungible tokens @@ -113,9 +113,9 @@ Tezos provides two standards for tokens. The standard that you use for your tokens depends on the kind of tokens that you want to create. These standards are named with the prefix FA, which stands for _financial application_. -- [FA1.2](./tokens/FA1.2) tokens are fungible tokens -- [FA2](./tokens/FA2) tokens can be multiple types of tokens, including fungible and non-fungible tokens, and a single smart contract that follows this standard can create multiple types of tokens -- [FA2.1](./tokens/FA2.1) tokens can be multiple types of tokens like FA2 tokens, and they include features of FA1.2 tokens and of tickets +- [FA1.2](/architecture/tokens/FA1.2) tokens are fungible tokens +- [FA2](/architecture/tokens/FA2) tokens can be multiple types of tokens, including fungible and non-fungible tokens, and a single smart contract that follows this standard can create multiple types of tokens +- [FA2.1](/architecture/tokens/FA2.1) tokens can be multiple types of tokens like FA2 tokens, and they include features of FA1.2 tokens and of tickets You can use templates for smart contracts adhering to these standards, instead of writing your own contract from scratch: diff --git a/docs/dApps.md b/docs/dApps.md index aac7fbb84..baafce594 100644 --- a/docs/dApps.md +++ b/docs/dApps.md @@ -11,8 +11,8 @@ Decentralized applications (dApps or Dapps) take advantage of these features to In general, dApps have these parts: - **Frontend**: An off-chain component that can act as a user interface to simplify interaction with the on-chain component, run off-chain processing, and get information from sources that are not available to the on-chain component -- **Middleware**: Optionally, an [indexer](./developing/information/indexers) to interpret the backend information and provide it in a more convenient format for the front-end component -- **Backend**: An on-chain component that consists of one or more [smart contracts](./smart-contracts) +- **Middleware**: Optionally, an [indexer](/developing/information/indexers) to interpret the backend information and provide it in a more convenient format for the front-end component +- **Backend**: An on-chain component that consists of one or more [smart contracts](/smart-contracts) The off-chain component can be nearly any kind of program, including a web application, mobile or desktop app, or command-line interface. It relies on wallets and tools to interact with the smart contracts on behalf of a user's Tezos account. @@ -22,16 +22,16 @@ It relies on wallets and tools to interact with the smart contracts on behalf of Some of these tools that allow an off-chain component to interact with smart contracts include: -- [Taquito](./dApps/taquito), an SDK for JavaScript/TypeScript applications -- The [Tezos Unity SDK](./unity), a toolkit for the [Unity](https://unity.com/) game development platform +- [Taquito](/dApps/taquito), an SDK for JavaScript/TypeScript applications +- The [Tezos Unity SDK](/unity), a toolkit for the [Unity](https://unity.com/) game development platform - [Taqueria](https://taqueria.io/), a development platform for dApps -The next pages in this section illustrate dApps with [examples](./dApps/samples), detail the main steps when developing dApps such as [Connecting to wallets](./dApps/wallets) and [Sending transactions](./dApps/sending-transactions), and introduce some [best practices](./dApps/best-practices) +The next pages in this section illustrate dApps with [examples](/dApps/samples), detail the main steps when developing dApps such as [Connecting to wallets](/dApps/wallets) and [Sending transactions](/dApps/sending-transactions), and introduce some [best practices](/dApps/best-practices) ## Tutorials These tutorials cover dApps of different complexities: -- For a simple dApp, see [Build a simple web application](./tutorials/build-your-first-app) -- For a dApp that mints NFTs, see [Mint NFTs from a web app](./tutorials/create-an-nft/nft-web-app) -- For a large dApp that allows users to buy and sell NFTs, see [Build an NFT marketplace](./tutorials/build-an-nft-marketplace) +- For a simple dApp, see [Build a simple web application](/tutorials/build-your-first-app) +- For a dApp that mints NFTs, see [Mint NFTs from a web app](/tutorials/create-an-nft/nft-web-app) +- For a large dApp that allows users to buy and sell NFTs, see [Build an NFT marketplace](/tutorials/build-an-nft-marketplace) diff --git a/docs/dApps/sending-transactions.md b/docs/dApps/sending-transactions.md index 0ed227daa..86da71c0c 100644 --- a/docs/dApps/sending-transactions.md +++ b/docs/dApps/sending-transactions.md @@ -31,7 +31,7 @@ For information about calling contracts from other contracts, see [Operations](. ## Taquito You can use the Taquito SDK to send transactions from JavaScript/TypeScript applications. -For more information about Taquito, see [Taquito](./taquito). +For more information about Taquito, see [Taquito](/dApps/taquito). ### Sending tez diff --git a/docs/dApps/wallets.md b/docs/dApps/wallets.md index 4c8ddbc05..f85674c98 100644 --- a/docs/dApps/wallets.md +++ b/docs/dApps/wallets.md @@ -24,7 +24,7 @@ The primary tools that dApps use to connect to wallets are: Taquito provides a wrapper for Beacon so dApps can interact with wallets and with Tezos with the same code. - For more information about Taquito, see [Taquito](./taquito). + For more information about Taquito, see [Taquito](/dApps/taquito). ## Beacon and Taquito diff --git a/docs/developing.md b/docs/developing.md index 14c5f538a..001c024e0 100644 --- a/docs/developing.md +++ b/docs/developing.md @@ -13,12 +13,12 @@ Developing dApps on Tezos is not very different from developing other types of c Wallets maintain a user's credentials and signs transactions on their behalf. In most cases, Tezos developers need a wallet to submit transactions to their dApps. -See [Installing and funding a wallet](developing/wallet-setup). +See [Installing and funding a wallet](/developing/wallet-setup). ### The Octez client The Octez client lets you work with accounts and smart contracts from the command line. -For more information, see [The Octez client](developing/octez-client). +For more information, see [The Octez client](/developing/octez-client). ## IDEs and extensions @@ -62,6 +62,6 @@ To test smart contracts and dApps, you can use these test environments: - Sandbox environments like [Flextesa](https://tezos.gitlab.io/flextesa/) run Tezos nodes locally on your computer in a sandbox mode. - You can also set up your own private test network. -For more information about test environments, see [Testing on sandboxes and testnets](developing/testnets). +For more information about test environments, see [Testing on sandboxes and testnets](/developing/testnets). LIGO and SmartPy also have built-in testing capabilities. diff --git a/docs/developing/information.md b/docs/developing/information.md index 0ea27f890..b04bed6e7 100644 --- a/docs/developing/information.md +++ b/docs/developing/information.md @@ -9,7 +9,7 @@ Developers and dApps can get information about the Tezos blockchain, such as acc ## The Octez client -The [The Octez client](./octez-client) provides information about accounts, addresses, and many other things. +The [The Octez client](/developing/octez-client) provides information about accounts, addresses, and many other things. For example, you can get the balance of an account with this command: ```bash @@ -38,11 +38,11 @@ For example, you can use the [TZKT API](https://api.tzkt.io/) to get the recent curl -X GET https://api.ghostnet.tzkt.io/v1/accounts/tz1QCVQinE8iVj1H2fckqx6oiM85CNJSK9Sx/operations ``` -For more information, see [Indexers](./information/indexers). +For more information, see [Indexers](/developing/information/indexers). ## Block explorers Block explorers use data from indexers to show information in a human-friendly interface. For example, this link shows information about a contract, including its current storage, entrypoints, and transaction history: https://better-call.dev/ghostnet/KT1R4i4qEaxF7v3zg1M8nTeyrqk8JFmdGLuu/operations -For more information about block explorers, see [Block explorers](./information/block-explorers). +For more information about block explorers, see [Block explorers](/developing/information/block-explorers). diff --git a/docs/developing/information/block-explorers/tzstats.mdx b/docs/developing/information/block-explorers/tzstats.mdx index 9cae8802c..d04c666e9 100644 --- a/docs/developing/information/block-explorers/tzstats.mdx +++ b/docs/developing/information/block-explorers/tzstats.mdx @@ -7,7 +7,7 @@ last_update: import Figure from '@site/src/components/Figure'; -In this chapter, we will use the [TzStats](https://tzstats.com/) explorer to illustrate the different features of an explorer, but similar features are usually available on others. Concerning the observation of smart contracts, the different aspects are discussed in the [following chapter](./inspect-contract-tzstats). +In this chapter, we will use the [TzStats](https://tzstats.com/) explorer to illustrate the different features of an explorer, but similar features are usually available on others. Concerning the observation of smart contracts, the different aspects are discussed in the [following chapter](/developing/information/block-explorers/inspect-contract-tzstats). [TzStats](https://tzstats.com/) is developed by _Blockwatch Data Inc._ It is a block explorer for public and private Tezos networks and it is based on the [TzIndex indexer](https://github.com/blockwatch-cc/tzindex). diff --git a/docs/developing/information/indexers.md b/docs/developing/information/indexers.md index 922b349e7..ec6331f2e 100644 --- a/docs/developing/information/indexers.md +++ b/docs/developing/information/indexers.md @@ -6,7 +6,7 @@ last_update: --- Indexers are off-chain applications that retrieve blockchain data, process it, and store it in a way that makes it easier to search and use. -Indexers are an important component of [Block explorers](./block-explorers). +Indexers are an important component of [Block explorers](/developing/information/block-explorers). You can use indexers to provide the data that you need for your dApps. diff --git a/docs/developing/sandbox.md b/docs/developing/sandbox.md index e47b2778d..6251292af 100644 --- a/docs/developing/sandbox.md +++ b/docs/developing/sandbox.md @@ -11,7 +11,7 @@ They run a simulated version of the Tezos protocol locally so you can test contr Sandboxes can be convenient if you want to run all your tests locally but still need a realistic Tezos environment, such as if you need to interact with nodes and the consensus mechanism. Testing locally can also keep your work confidential until you decide to put it into production. -However, sandboxes lack some features that [testnets](./testnets) have, such as indexers. +However, sandboxes lack some features that [testnets](/developing/testnets) have, such as indexers. If you want an indexer or your testnet, you must run it yourself. Here are some options for running local Tezos sandboxes: diff --git a/docs/developing/testing.md b/docs/developing/testing.md index 3de4e5690..3065defde 100644 --- a/docs/developing/testing.md +++ b/docs/developing/testing.md @@ -109,4 +109,4 @@ For more information about avoiding flaws in contracts, see [Avoiding flaws](htt ## Next steps When you're done testing contracts locally, you can deploy them to a test network and test them there. -See [Testing on sandboxes and testnets](./testnets). +See [Testing on sandboxes and testnets](/developing/testnets). diff --git a/docs/developing/testnets.md b/docs/developing/testnets.md index 21e726d38..d41c00050 100644 --- a/docs/developing/testnets.md +++ b/docs/developing/testnets.md @@ -11,7 +11,7 @@ The current testnets and details about them are at https://teztnets.com/. If you are a smart contract developer, testing contracts is a big part of your work. More time is spent testing contracts than writing them. You will often need to test new versions of your contracts and run many tests starting from their deployment to calling every entrypoint in all kinds of ways. -After you have tested contracts locally as described in [Testing locally](./testing), you can deploy them to test networks to test them in a realistic environment. +After you have tested contracts locally as described in [Testing locally](/developing/testing), you can deploy them to test networks to test them in a realistic environment. Similarly, bakers often test their setups on test networks to ensure that they will work on new versions of the Tezos protocol. diff --git a/docs/overview/glossary.md b/docs/overview/glossary.md index d66c90903..b638fbc59 100644 --- a/docs/overview/glossary.md +++ b/docs/overview/glossary.md @@ -2,6 +2,8 @@ title: Glossary --- - +import GlossaryAnchorScript from '@site/src/components/GlossaryAnchorScript'; -

For a glossary of Tezos terms, see Glossary.

+ + +

This glossary is divided in two sections, the first one concerns Tezos, and the second one concerns the economic protocol. The definitions in the latter section may be different for other protocol versions.

Tezos

Block

The Tezos blockchain is a linked list of blocks (or actually, a tree when several competing branches exist). Blocks conceptually contain a header and a list of operations, which are specific to the economic protocol.

The header itself decomposes into a shell header (common to all Tezos economic protocols), and a protocol-specific header. The shell header contains protocol-agnostic data such as the predecessor’s block hash and the block’s timestamp.

Context

The state of the blockchain. The context is defined by the economic protocol and typically includes information such as “this account is credited with this many tez” and “this is the code for that smart contract.”

The context is modified by operations. For example, an operation can transfer tez from one account to another, which modifies the part of the context that tracks account credit.

Economic protocol

The economic protocol is the set of rules defining valid operations and blocks, how the network agrees on the next block to build (the consensus algorithm), and how operations update the blockchain state, also called context.

In Tezos, the economic protocol can be upgraded without interruption or forking of the blockchain. This is because the procedure for an upgrade is also defined within the economic protocol, which can thus update itself.

Fitness (a.k.a. score, weight)

For each block, the consensus algotrithm can compute a score called fitness which determines the quality of the chain leading to that block. The shell changes the head of the chain to the valid block that has the highest fitness.

Height

See level.

Level (a.k.a. block height)

The position of a block in the blockchain, that is, the number of blocks since the genesis block, where the genesis block is at level 0.

Mempool

A pool (set) of operations maintained by a node and not yet included in a block.

Metadata

A (block or operation) metadata is a piece of data computed as a result of the application of the block or operation on an associated context. The metadata consists of many pieces of information such as the operation receipts, rewards updates, voting period, etc.

A block’s metadata is the collections of operations metadata for all the operations included in the block (if the validation was successful).

For a detailed metadata content check the Paris RPCs - Reference under the prefix ../<block_id>/metadata.

Node

A peer in the P2P network. It maintains a local state and propagates blocks and operations.

Operation

An operation transforms the context; this is what makes the state of the chain change. Operations are grouped into blocks; thus, the chain progresses in batches. For the different kinds of operations defined by the protocol, see operation kinds.

Score

See fitness.

Shell

The shell is a software component of the node. It is parameterized by a specific economic protocol. It serves as the bridge between the P2P layer (handling communication between nodes) and the economic protocol layer (handling the context, operation application, scoring, etc.).

Weight

See fitness.

Protocol

Accuser

When a delegate attempts double signing (or when it tries to abuse the network in another similar way), another delegate can make an accusation, by providing evidence of the offense. The delegate injecting the accusation in a newly baked block is called the accuser.

The accuser is awarded some funds from the security deposit of the accused.

When using Octez, accusation operations are emitted by the accuser daemon. Note that this daemon is not associated to a delegate: accusation operations are anonymous, and any delegate can include them in a block.

Account

An account is an address managed by the protocol. In the context, each account is associated with a balance (an amount of tez available).

An account can be either an originated account or an implicit account.

Baker

When a delegate creates a new block, it is called the baker of this block. Baking rights are distributed to different delegates based on their available stake. Only a delegate with baking rights is allowed to bake. The baker selects transactions from the mempool to be included in the block it bakes.

When using Octez, baking and other consensus actions are handled by the baker daemon, on behalf of one or more delegate accounts. By extension, a baker designates the owner of such a delegate account, typically running the baker daemon on its behalf.

Baking

The act of creating a new block by a baker.

Baking rights

Baking/attesting a block can only be done by a delegate who holds the baking/attesting right for that block level and round. At the start of a cycle, baking and attesting rights are computed for all the block levels and rounds in the cycle, based on the proportion of the stake of each delegate.

For each block level and round, there is exactly one account that is allowed to bake, but several accounts are allowed to attest.

Burn

To ensure responsible use of the storage space on the public blockchain, there are some costs charged to users for consuming storage. These costs are burnt (i.e., the amount of tez is destroyed). For example, a per-byte storage cost is burnt for increasing the storage space of a smart contract; a fixed amount is burnt for allocating a new contract (which consumes space by storing its address on the blockchain).

See also fee.

Constant

Protocols are parameterized by several parameters called protocol constants, which may vary from one protocol to another or from one network to another.

Contract

See account.

Cycle

A cycle is a sequence of consecutive blocks of fixed length (given by a protocol constant). E.g., cycle 12 started at block level 49152 and ended at block level 53248.

Cycles are used as a unit of “time” in the block chain. For example, the different phases in the amendment voting procedures are defined based on numbers of cycles.

The length of a cycle is a (parametric) protocol constant, and thus might change across different Tezos protocols.

Delegate

An implicit account that can participate in consensus and in governance. Actual participation is under further provisions, like having a minimal stake. An implicit account becomes a delegate by registering as such. Through delegation, other accounts can delegate their rights to a delegate account. The delegate’s rights are calculated based on its stake. Note that tz4 accounts cannot be delegates.

Delegation

An operation in which an account designates a delegate. The delegating account’s balance increases the delegate’s stake and consequently its baking rights and attesting rights. However, the delegate does not control the funds of the delegating account, e.g., it can not spend them.

Double signing

The situation when a baker signs two different blocks at the same level and same round, is called double baking. Double baking is detrimental to the network and might be indicative of an attempt to double spend. The same goes for signing two different attestations at the same level and the same round. As such, double signing (i.e., double baking or double attesting) is punished by the network: an accuser can provide proof of the double signing to be awarded part of the double signer’s deposit – see Slashing.

Failing Noop

The Failing_noop operation implements a No-op, which always fails at application time, and should never appear in applied blocks. This operation allows end-users to sign arbitrary messages which have no computational semantics.

Attesting

When a block is created and propagated on the network, delegates that have attesting rights for the matching block level and round can emit an attestation operation. Attestation operations are included in the next block.

Attesting rights

See baking rights.

Fee

To ensure responsible use of computation resources of other nodes, and also to encourage active participation in the consensus protocol, users pay fees to bakers for including their operations in blocks. For example, fees are paid to a baker for operations such as a transaction or a revelation of a public key.

Currently, only manager operationsrequire collecting fees from its sender account.

See also burn.

Gas

A measure of the number of elementary steps performed during the execution of a smart contract. Gas is used to measure how much computing power is used to execute a smart contract.

Implicit account

An account that is linked to a public key. Contrary to a smart contract, an implicit account cannot include a script and it cannot reject incoming transactions.

If registered, an implicit account can act as a delegate.

The address of an implicit account always starts with the letters tz followed by 1, 2, 3, or 4 (depending on the signature scheme) and finally the hash of the public key. See Accounts and addresses for a more detailed explanation on addresses.

Layer 1

The primary blockchain i.e. the Tezos chain. Within any blockchain ecosystem, Layer 1 (L1) refers to the main chain to which side chains, rollups, or other protocols connect and settle to. The Layer 1 chain is deemed to be most secure, since it has the most value (or stake) tied to it, and be most decentralized and censorship resistant. However, transaction space is limited leading to low throughput and possibly high transaction costs. See Layer 2.

Layer 2

Layer 2 (L2) includes sidechains, rollups, payment channels, etc. that batch their transactions and write to the Layer 1 chain. By processing transactions on layer 2 networks, greater scalability in speed and throughput can be achieved by the ecosystem overall, since the number of transactions the Layer 1 can process directly is limited. By cementing transactions from a L2 to L1, the security of the L1 chain backs those operations. Currently, Layer 2 solutions on Tezos are built as smart rollups.

Michelson

The built-in language used by a smart contract.

Minimal stake

An amount of tez (e.g., 6000ꜩ) serving as a minimal amount for a delegate to have baking rights and voting rights in a cycle.

Operation kinds

The main kinds of operations in the protocol are transactions (to transfer funds or to execute smart contracts), accusations, activations, delegations, attestations, and originations. For the full list of operations, see Blocks and Operations.

Originated account

See smart contract.

Origination

A manager operation whose purpose is to create – that is, to deploy – a smart contract on the Tezos blockchain.

PVM

A PVM (Proof-generating Virtual Machine) is a reference implementation for a device on top of which a smart rollup can be executed. This reference implementation is part of the economic protocol and is the unique source of truth regarding the semantics of rollups. The PVM is able to produce proofs enforcing this truth. This ability is used during the final step of a refutation game.

Refutation game

A process by which the economic protocol solves a conflict between two rollup committers. Note that the refutation mechanism used in Tezos smart rollups corresponds to the notion of fraud proofs used in other blockchain/Layer 2 ecosystems.

Refutation period

When the first rollup commitment for a rollup commitment period is published, a refutation period of two weeks starts to allow this commitment to be challenged.

Roll

deprecated; see minimal stake.

Rollup commitment

A claim that the interpretation of all rollup inbox messages published during a given period, and applied on the state of a parent rollup commitment, led to a given new state by performing a given number of execution steps of the PVM.

Rollup commitment period

A period of roughly 15 minutes during which all rollup inboxmessages must be processed by the rollup node state to compute a rollup commitment. A commitment must be published for each commitment period.

Rollup committer

An implicit account that has published and made a deposit on a rollup commitment.

Rollup inbox

A sequence of messages from the Layer 1 to all the smart rollups. The contents of the inbox are determined by the consensus of the economic protocol.

Rollup node

A daemon required for deploying and operating smart rollups. The rollup node is responsible for making the rollup progress by publishing rollup commitments and by playing refutation games.

Rollup outbox

A sequence of messages from a smart rollup to the Layer 1. Messages are smart contract calls, potentially containing tickets. These calls can be triggered only when the related rollup commitment is cemented (hence, at least two weeks after the actual execution of the operation).

Round

An attempt to reach consensus on a block at a given level. A round is represented by an index, starting with 0. Each round corresponds to a time span. A baker with baking rights at a given round is only allowed to bake during the round’s corresponding time span. Baking outside of one’s designated round results in an invalid block.

Smart contract

Account which is associated to a Michelson script. They are created with an explicit origination operation and are therefore sometimes called originated accounts. The address of a smart contract always starts with the letters KT1.

Smart Rollup

Smart rollups constitute a Layer 2 solution that can be used to deploy either a general-purpose polyvalent Layer 2 blockchain (e.g., an EVM-compatible one), or an application-specific DApp. See Smart Optimistic Rollups.

Stake

The amount of tokens that determines a delegate’s weight in the governance process and in the selection of its baking and attesting rights. A delegate’s stake is usually given by the delegate’s own tokens plus the sum of tokens delegated to it. However, there are cases when this is not the case, see here for details.

Staker

An implicit account that made a security deposit. The implicit account must have set a delegate. The security deposit accrues to the stake of the implicit account’s delegate and is subject to slashing in case the delegate misbehaves – see Slashing.

Transaction

An operation to transfer tez between two accounts, or to run the code of a smart contract.

Validation pass

An index (a natural number) associated with a particular kind of operations, allowing to group them into classes. Validation passes enable prioritizing the validation and application of certain classes of operations.

Voting period

Any of the proposal, exploration, cooldown, promotion or adoption stages in the voting procedure when amending the economic protocol.

Voting listings

The list calculated at the beginning of each voting period that contains the staking balance (in number of mutez) of each delegate that owns more than the minimal stake at that moment. For each delegate, the voting listings reflect the weight of the vote emitted by the delegate when amending the economic protocol.

\ No newline at end of file diff --git a/docs/smart-contracts.mdx b/docs/smart-contracts.mdx index 8a4bf62ea..52e4b3fc4 100644 --- a/docs/smart-contracts.mdx +++ b/docs/smart-contracts.mdx @@ -94,7 +94,7 @@ The origination of a Tezos smart contract must define: After the contract is deployed, it cannot be changed or removed from the blockchain. -{/* TODO link to ./smart-contracts/deploying */} +For more information about deploying smart contracts, see [Deploying smart contracts](/smart-contracts/deploying). ### Call of a Tezos smart contract diff --git a/docs/smart-contracts/creating.md b/docs/smart-contracts/creating.md index 9ac1013a3..2467205dd 100644 --- a/docs/smart-contracts/creating.md +++ b/docs/smart-contracts/creating.md @@ -5,10 +5,10 @@ last_update: date: 6 November 2023 --- ## Introduction -This documentation provides step-by-step instructions for creating smart contracts on Tezos. After creating the contract, you can find the resources on [testing](../developing/testing) and [deploying](deploying.md). +This documentation provides step-by-step instructions for creating smart contracts on Tezos. After creating the contract, you can find the resources on [testing](/developing/testing) and [deploying](/smart-contracts/deploying). ## Choosing your smart contract language -Tezos supports a variety of smart contract [languages](./languages): Michelson, SmartPy, LIGO, Archetype. +Tezos supports a variety of smart contract [languages](/smart-contracts/languages): Michelson, SmartPy, LIGO, Archetype. You can select a language based on your familiarity with programming paradigms, the complexity of the contract you want to deploy, and the specific features you require. Here's a more detailed table for each language: diff --git a/docs/smart-contracts/data-types.md b/docs/smart-contracts/data-types.md index f477cfd53..994dfafa9 100644 --- a/docs/smart-contracts/data-types.md +++ b/docs/smart-contracts/data-types.md @@ -7,8 +7,8 @@ last_update: See these pages for information about the data types that Tezos supports: -- [Primitive data types](./data-types/primitive-data-types) -- [Complex data types](./data-types/complex-data-types) -- [Cryptographic data types](./data-types/crypto-data-types) +- [Primitive data types](/smart-contracts/data-types/primitive-data-types) +- [Complex data types](/smart-contracts/data-types/complex-data-types) +- [Cryptographic data types](/smart-contracts/data-types/crypto-data-types) Higher-level languages may treat data types differently, but they all behave the same way when they are compiled to Michelson and run on Tezos. diff --git a/docs/smart-contracts/entrypoints.md b/docs/smart-contracts/entrypoints.md index 77ddfb3bb..a9ec91bfc 100644 --- a/docs/smart-contracts/entrypoints.md +++ b/docs/smart-contracts/entrypoints.md @@ -15,8 +15,8 @@ The entrypoints in a Tezos smart contract must meet these specifications: Unlike functions and API endpoints, entrypoints do not return a value directly to the caller. To return data from a smart contract, you can use one of these methods: -- Use [Views](./views) to return data to smart contracts or off-chain applications -- Use [Events](./events) to return data to off-chain applications +- Use [Views](/smart-contracts/views) to return data to smart contracts or off-chain applications +- Use [Events](/smart-contracts/events) to return data to off-chain applications - Include a callback parameter that sends information to another smart contract, as in the `getAllowance`, `getBalance`, and `getTotalSupply` entrypoints of [FA1.2](../architecture/tokens/FA1.2) contracts For an example of a simple contract, see the tutorial [Create a smart contract](../tutorials/smart-contract). @@ -34,7 +34,7 @@ An entrypoint may run logic based on: Entrypoints cannot access information outside of Tezos, such as calling external APIs. -If an entrypoint needs information from outside Tezos it must use oracles; see [Oracles](./oracles) and [Using and trusting Oracles](https://opentezos.com/smart-contracts/oracles/) on opentezos.com. +If an entrypoint needs information from outside Tezos it must use oracles; see [Oracles](/smart-contracts/oracles) and [Using and trusting Oracles](https://opentezos.com/smart-contracts/oracles/) on opentezos.com. The only effects that an entrypoint can have are changes to its storage and new operations that are run after the entrypoint completes. An entrypoint can call other entrypoints in its contract or entrypoints in other contracts. diff --git a/docs/smart-contracts/languages.md b/docs/smart-contracts/languages.md index 37edfb1d0..4b98f963c 100644 --- a/docs/smart-contracts/languages.md +++ b/docs/smart-contracts/languages.md @@ -7,10 +7,10 @@ last_update: You can write Tezos smart contracts in any of these high-level languages: -- [LIGO](./languages/ligo), which has versions with syntaxes similar to JavaScript/TypeScript and OCaml -- [SmartPy](./languages/smartpy), which has a syntax similar to Python -- [Archetype](./languages/archetype), which is a high-level language developed specifically for Tezos +- [LIGO](/smart-contracts/languages/ligo), which has versions with syntaxes similar to JavaScript/TypeScript and OCaml +- [SmartPy](/smart-contracts/languages/smartpy), which has a syntax similar to Python +- [Archetype](/smart-contracts/languages/archetype), which is a high-level language developed specifically for Tezos Each of these languages is eventually compiled to Michelson, the base language for Tezos smart contracts. That means that the high-level languages have limitations caused by how Michelson works. -For information about Michelson, see [Michelson](./languages/michelson). +For information about Michelson, see [Michelson](/smart-contracts/languages/michelson). diff --git a/docs/smart-contracts/storage.md b/docs/smart-contracts/storage.md index 1020eba17..c38049f09 100644 --- a/docs/smart-contracts/storage.md +++ b/docs/smart-contracts/storage.md @@ -7,7 +7,7 @@ last_update: Each contract has associated storage, which is persistent internal data that it can read and write to. Contracts can access only their own storage; they can't access the storage of other contracts. -To provide information to other contracts, use [Views](./views). +To provide information to other contracts, use [Views](/smart-contracts/views). However, the content of the storage of a contract is public, like everything else in the state of the blockchain. Therefore, you can see the current value of the storage of any contract using an explorer such as [Better Call Dev](https://better-call.dev/). diff --git a/docs/tutorials/build-an-nft-marketplace.md b/docs/tutorials/build-an-nft-marketplace.md index 8241e96fa..82c70302d 100644 --- a/docs/tutorials/build-an-nft-marketplace.md +++ b/docs/tutorials/build-an-nft-marketplace.md @@ -18,10 +18,10 @@ You will learn: ## Prerequisites -1. Optional: If you haven't worked with Tezos NFTs before, consider doing the tutorial [Create an NFT](./create-an-nft) first. +1. Optional: If you haven't worked with Tezos NFTs before, consider doing the tutorial [Create an NFT](/tutorials/create-an-nft) first. 1. Set up an account with Pinata if you don't have one already and get an API key and API secret. - For instructions, see the [Configure IPFS storage](./create-an-nft/nft-taquito#configure-ipfs-storage) section of the tutorial [Create a contract and web app that mints NFTs](./create-an-nft/nft-taquito). + For instructions, see the [Configure IPFS storage](/tutorials/create-an-nft/nft-taquito#configure-ipfs-storage) section of the tutorial [Create a contract and web app that mints NFTs](/tutorials/create-an-nft/nft-taquito). 1. Make sure that you have installed these tools: @@ -39,7 +39,7 @@ You will learn: ## What are FA2 tokens? -If you've gone through the tutorials under [Create an NFT](./create-an-nft) you know that NFTs are blockchain tokens that represent unique assets, usually created under the FA2 token standard. +If you've gone through the tutorials under [Create an NFT](/tutorials/create-an-nft) you know that NFTs are blockchain tokens that represent unique assets, usually created under the FA2 token standard. However, the Tezos FA2 token standard allows you to create multiple types of tokens, and even more than one kind of token within the same smart contract. When you create tokens, it's important to follow one of the token standards because then tools like wallets and block explorers can automatically work with those tokens. For more information about Tezos token standards, see [Token standards](../architecture/tokens). @@ -82,4 +82,4 @@ You can see a running version of this application here: https://demo.winefactory This application is made up of a smart contract that handles the tokens and a frontend web application that handles the user interface and sends transactions to the backend. As you work through the tutorial, you will use different smart contracts and upgrade the web application to work with them. -When you're ready, go to [Part 1: Minting tokens](./build-an-nft-marketplace/part-1) to begin. +When you're ready, go to [Part 1: Minting tokens](/tutorials/build-an-nft-marketplace/part-1) to begin. diff --git a/docs/tutorials/build-an-nft-marketplace/part-1.md b/docs/tutorials/build-an-nft-marketplace/part-1.md index 7bbc44248..cbacd06cc 100644 --- a/docs/tutorials/build-an-nft-marketplace/part-1.md +++ b/docs/tutorials/build-an-nft-marketplace/part-1.md @@ -919,4 +919,4 @@ Now you can create FA2-compatible NFTs with the `@ligo/fa` library and show them In the next section, you add the buy and sell functions to the smart contract and update the frontend application to allow these actions. -When you are ready, continue to [Part 2: Buying and selling tokens](./part-2). +When you are ready, continue to [Part 2: Buying and selling tokens](/tutorials/build-an-nft-marketplace/part-2). diff --git a/docs/tutorials/build-an-nft-marketplace/part-2.md b/docs/tutorials/build-an-nft-marketplace/part-2.md index fb07b6ffb..9b1af154d 100644 --- a/docs/tutorials/build-an-nft-marketplace/part-2.md +++ b/docs/tutorials/build-an-nft-marketplace/part-2.md @@ -835,4 +835,4 @@ Instead of creating multiple token types with a quantity of exactly 1 as with th For the complete content of the contract and web app at the end of this part, see the completed part 2 app at https://github.com/marigold-dev/training-nft-2. -To continue, go to [Part 3: Managing tokens with quantities](./part-3). +To continue, go to [Part 3: Managing tokens with quantities](/tutorials/build-an-nft-marketplace/part-3). diff --git a/docs/tutorials/build-an-nft-marketplace/part-3.md b/docs/tutorials/build-an-nft-marketplace/part-3.md index 7aa8306c6..08b292338 100644 --- a/docs/tutorials/build-an-nft-marketplace/part-3.md +++ b/docs/tutorials/build-an-nft-marketplace/part-3.md @@ -1390,4 +1390,4 @@ For the complete content of the contract and web app at the end of this part, se In the next part, you update the application to create a multi-asset contract that can handle multiple types of tokens with different quantities. -To continue, go to [Part 4: Handling multi-asset tokens](./part-4). +To continue, go to [Part 4: Handling multi-asset tokens](/tutorials/build-an-nft-marketplace/part-4). diff --git a/docs/tutorials/build-files-archive-with-dal.md b/docs/tutorials/build-files-archive-with-dal.md index 5d097dae1..8198d6c42 100644 --- a/docs/tutorials/build-files-archive-with-dal.md +++ b/docs/tutorials/build-files-archive-with-dal.md @@ -47,7 +47,7 @@ Here is a diagram that shows the components that you set up in this tutorial in ## Prerequisites This article assumes some familiarity with Smart Rollups. -If you are new to Smart Rollups, see the tutorial [Deploy a Smart Rollup](./smart-rollup). +If you are new to Smart Rollups, see the tutorial [Deploy a Smart Rollup](/tutorials/smart-rollup). ## Why the DAL? @@ -106,4 +106,4 @@ When you install a Smart Rollup, you provide only the installer kernel on layer Currently, you cannot send the full kernel data over the Data Availability Layer, so this tutorial relies on the reveal data channel to install the kernel as usual. ::: -When you are ready, get started by going to [Part 1: Setting up an environment](./build-files-archive-with-dal/set-up-environment). +When you are ready, get started by going to [Part 1: Setting up an environment](/tutorials/build-files-archive-with-dal/set-up-environment). diff --git a/docs/tutorials/build-files-archive-with-dal/get-dal-params.md b/docs/tutorials/build-files-archive-with-dal/get-dal-params.md index 4fd156bcb..9824dc63e 100644 --- a/docs/tutorials/build-files-archive-with-dal/get-dal-params.md +++ b/docs/tutorials/build-files-archive-with-dal/get-dal-params.md @@ -31,7 +31,7 @@ In these steps, you set up a simple Smart Rollup to get the current DAL paramete ## Prerequisites -Before you begin, make sure that you have installed the prerequisites and set up an environment and an account as described in [Part 1: Setting up an environment](./set-up-environment). +Before you begin, make sure that you have installed the prerequisites and set up an environment and an account as described in [Part 1: Setting up an environment](/tutorials/build-files-archive-with-dal/set-up-environment). ## Fetching the DAL parameters in a kernel @@ -188,4 +188,4 @@ For example, if you are using the Tezos Docker image, the path is `/bin/sh`, so Then try the command `./deploy_smart_rollup.sh $MY_ACCOUNT` again. In the next section, you will get information about the state of slots in the DAL. -See [Part 3: Getting slot information](./get-slot-info). +See [Part 3: Getting slot information](/tutorials/build-files-archive-with-dal/get-slot-info). diff --git a/docs/tutorials/build-files-archive-with-dal/get-slot-info.md b/docs/tutorials/build-files-archive-with-dal/get-slot-info.md index 798b71228..d920b11f2 100644 --- a/docs/tutorials/build-files-archive-with-dal/get-slot-info.md +++ b/docs/tutorials/build-files-archive-with-dal/get-slot-info.md @@ -127,7 +127,7 @@ Follow these steps to update the Smart Rollup to access information about slot 0 1. Run the commands to build and deploy the Smart Rollup and start the node. - If you set up the deployment script as described in [Part 2: Getting the DAL parameters](./get-dal-params), you can run `./deploy_smart_rollup.sh $MY_ACCOUNT`. + If you set up the deployment script as described in [Part 2: Getting the DAL parameters](/tutorials/build-files-archive-with-dal/get-dal-params), you can run `./deploy_smart_rollup.sh $MY_ACCOUNT`. If not, run these commands, using your account alias for `MY_ACCOUNT`: @@ -170,4 +170,4 @@ This is why you must wait for 4 blocks before seeing slot page contents being logged. Now that you can see the state of the slots, you can find an unused slot and publish data to it. -When you are ready, continue to [Part 3: Publishing on the DAL](./publishing-on-the-dal). +When you are ready, continue to [Part 3: Publishing on the DAL](/tutorials/build-files-archive-with-dal/publishing-on-the-dal). diff --git a/docs/tutorials/build-files-archive-with-dal/publishing-on-the-dal.md b/docs/tutorials/build-files-archive-with-dal/publishing-on-the-dal.md index 327ed8be6..c9e992b78 100644 --- a/docs/tutorials/build-files-archive-with-dal/publishing-on-the-dal.md +++ b/docs/tutorials/build-files-archive-with-dal/publishing-on-the-dal.md @@ -39,7 +39,7 @@ For example, this command uses slot 10: ``` 1. Run the commands to build and deploy the Smart Rollup and start the node. -You can use the script in [Part 2: Getting the DAL parameters](./get-dal-params) to simplify the process. +You can use the script in [Part 2: Getting the DAL parameters](/tutorials/build-files-archive-with-dal/get-dal-params) to simplify the process. ## Publishing messages @@ -178,4 +178,4 @@ If you are using the Tezos Docker image, you can run `sudo apk add jq xxd`. Now you can publish data to the DAL and use it in a Smart Rollup. In the next section, you write to and retrieve the entire slot. -When you are ready, go to [Part 4: Using the entire slot](./using-full-slot). +When you are ready, go to [Part 4: Using the entire slot](/tutorials/build-files-archive-with-dal/using-full-slot). diff --git a/docs/tutorials/build-files-archive-with-dal/set-up-environment.md b/docs/tutorials/build-files-archive-with-dal/set-up-environment.md index 4c764f336..9f5f43d80 100644 --- a/docs/tutorials/build-files-archive-with-dal/set-up-environment.md +++ b/docs/tutorials/build-files-archive-with-dal/set-up-environment.md @@ -150,4 +150,4 @@ After you run these commands, run `$CC --version` to verify that you have versio Also, ensure that your version of Clang `wasm32` target with by running the command `$CC -print-targets | grep wasm32` and verifying that the results include `wasm32`. -When your environment is ready, continue to [Part 2: Getting the DAL parameters](./get-dal-params). +When your environment is ready, continue to [Part 2: Getting the DAL parameters](/tutorials/build-files-archive-with-dal/get-dal-params). diff --git a/docs/tutorials/create-an-nft.md b/docs/tutorials/create-an-nft.md index 35a4d6210..d9a29d8bd 100644 --- a/docs/tutorials/create-an-nft.md +++ b/docs/tutorials/create-an-nft.md @@ -5,6 +5,6 @@ title: Create an NFT There are many ways to create (or "mint") NFTs; in particular, you can create all of the NFTs in a collection at once or set up an application that can create NFTs as users request them. Try one of these tutorials to see different ways of minting NFTs: -- [Create NFTs from the command line](./create-an-nft/nft-tznft): Create metadata files to describe NFTs and then use a command-line tool to mint them and manipulate them -- [Mint NFTs from a web app](./create-an-nft/nft-web-app): Use a pre-existing contract to create NFTs from a web application -- [Create a contract and web app that mints NFTs](./create-an-nft/nft-taquito): Set up a web application that authorized users can use to create NFTs and all users can use to see the NFTs in a collection +- [Create NFTs from the command line](/tutorials/create-an-nft/nft-tznft): Create metadata files to describe NFTs and then use a command-line tool to mint them and manipulate them +- [Mint NFTs from a web app](/tutorials/create-an-nft/nft-web-app): Use a pre-existing contract to create NFTs from a web application +- [Create a contract and web app that mints NFTs](/tutorials/create-an-nft/nft-taquito): Set up a web application that authorized users can use to create NFTs and all users can use to see the NFTs in a collection diff --git a/docs/tutorials/dapp.md b/docs/tutorials/dapp.md index c5ffe475e..468f3d08c 100644 --- a/docs/tutorials/dapp.md +++ b/docs/tutorials/dapp.md @@ -53,4 +53,4 @@ The application looks like this: The code for the completed application is in this GitHub repository: [solution](https://github.com/marigold-dev/training-dapp-1/tree/main/solution) -When you're ready, move to the next section [Create your minimum dApp on Tezos](./dapp/part-1) to begin setting up the application. +When you're ready, move to the next section [Create your minimum dApp on Tezos](/tutorials/dapp/part-1) to begin setting up the application. diff --git a/docs/tutorials/dapp/part-1.md b/docs/tutorials/dapp/part-1.md index 6895d9b89..a29374df1 100644 --- a/docs/tutorials/dapp/part-1.md +++ b/docs/tutorials/dapp/part-1.md @@ -661,4 +661,4 @@ Now, you can create any smart contract using LIGO and create a complete Dapp via In the next section, you will learn how to call a Smart contract from a smart contract using callbacks and also write unit and mutation tests. -When you are ready, continue to [Part 2: Inter-contract calls and testing](./part-2). +When you are ready, continue to [Part 2: Inter-contract calls and testing](/tutorials/dapp/part-2). diff --git a/docs/tutorials/dapp/part-2.md b/docs/tutorials/dapp/part-2.md index 49d2fc1c9..9281f17f6 100644 --- a/docs/tutorials/dapp/part-2.md +++ b/docs/tutorials/dapp/part-2.md @@ -635,4 +635,4 @@ The higher the percentage of mutants killed, the more effective your tests are. Now, you can call other contracts, use views, and test your smart contract before deploying it. In the next training, you will learn how to use tickets. -When you are ready, continue to [Part 3: Tickets](./part-3). +When you are ready, continue to [Part 3: Tickets](/tutorials/dapp/part-3). diff --git a/docs/tutorials/dapp/part-3.md b/docs/tutorials/dapp/part-3.md index 4cf26f6cd..d7712e041 100644 --- a/docs/tutorials/dapp/part-3.md +++ b/docs/tutorials/dapp/part-3.md @@ -666,4 +666,4 @@ Now, you understand tickets. If you want to learn more about tickets, read this In the next training, you will learn how to upgrade smart contracts. -When you are ready, continue to [Part 4: Smart contract upgrades](./part-4). +When you are ready, continue to [Part 4: Smart contract upgrades](/tutorials/dapp/part-4). diff --git a/docs/tutorials/join-dal-baker.md b/docs/tutorials/join-dal-baker.md index 56fe0204f..cc1e22d86 100644 --- a/docs/tutorials/join-dal-baker.md +++ b/docs/tutorials/join-dal-baker.md @@ -47,9 +47,9 @@ This tutorial requires a cloud-based computer or a computer that stays running c ## References - For an overview of the DAL, see [Data Availability Layer](../architecture/data-availability-layer). -- For an introduction to how the DAL works, see the tutorial [Implement a file archive with the DAL and a Smart Rollup](./build-files-archive-with-dal). +- For an introduction to how the DAL works, see the tutorial [Implement a file archive with the DAL and a Smart Rollup](/tutorials/build-files-archive-with-dal). - For technical information about the DAL, see [Data-Availability Layer](https://tezos.gitlab.io/shell/dal.html) in the Octez documentation. ## Getting started -To get started, go to [Step 1: Run an Octez node](./join-dal-baker/run-node). +To get started, go to [Step 1: Run an Octez node](/tutorials/join-dal-baker/run-node). diff --git a/docs/tutorials/join-dal-baker/prepare-account.md b/docs/tutorials/join-dal-baker/prepare-account.md index 4144fef62..f81c20cc2 100644 --- a/docs/tutorials/join-dal-baker/prepare-account.md +++ b/docs/tutorials/join-dal-baker/prepare-account.md @@ -87,4 +87,4 @@ This command creates an account and associates it with the `my_baker` alias: Now the account has staked enough tez to earn the right to make attestations, including attestations that data is available on the DAL. However, it does not receive these rights until the baking daemon is running and a certain amount of time has passed. -While you wait for attestation rights, continue to [Step 3: Run an Octez DAL node](./run-dal-node). +While you wait for attestation rights, continue to [Step 3: Run an Octez DAL node](/tutorials/join-dal-baker/run-dal-node). diff --git a/docs/tutorials/join-dal-baker/run-baker.md b/docs/tutorials/join-dal-baker/run-baker.md index e157ce599..ab3961a24 100644 --- a/docs/tutorials/join-dal-baker/run-baker.md +++ b/docs/tutorials/join-dal-baker/run-baker.md @@ -83,7 +83,7 @@ For example, if the delay is 307,200 seconds, that time is about 3.5 days. The exact time depends on what time in the current cycle the account staked its tez. -1. Wait for the attestation delay to be over and then proceed to [Step 5: Verify attestation rights](./verify-rights). +1. Wait for the attestation delay to be over and then proceed to [Step 5: Verify attestation rights](/tutorials/join-dal-baker/verify-rights). :::note diff --git a/docs/tutorials/join-dal-baker/run-dal-node.md b/docs/tutorials/join-dal-baker/run-dal-node.md index 302007578..1d20ac60b 100644 --- a/docs/tutorials/join-dal-baker/run-dal-node.md +++ b/docs/tutorials/join-dal-baker/run-dal-node.md @@ -69,4 +69,4 @@ You can also refer to [Run a persistent baking node](https://opentezos.com/node- ``` Now that you have a DAL node running, you can start a baking daemon that uses that DAL node. -Continue to [Step 4: Run an Octez baking daemon](./run-baker). +Continue to [Step 4: Run an Octez baking daemon](/tutorials/join-dal-baker/run-baker). diff --git a/docs/tutorials/join-dal-baker/run-node.md b/docs/tutorials/join-dal-baker/run-node.md index b771f5dc6..f1335763f 100644 --- a/docs/tutorials/join-dal-baker/run-node.md +++ b/docs/tutorials/join-dal-baker/run-node.md @@ -56,4 +56,4 @@ At first launch, the node generates a fresh identity file used to identify itsel Then it bootstraps the chain, which takes a variable amount of time depending on how many blocks need to be loaded. In the meantime, you can continue the baking infrastructure while the node is bootstrapping. -Continue to [Step 2: Set up a baker account](./prepare-account). +Continue to [Step 2: Set up a baker account](/tutorials/join-dal-baker/prepare-account). diff --git a/docs/tutorials/mobile.md b/docs/tutorials/mobile.md index 60ef34697..8a7875d6b 100644 --- a/docs/tutorials/mobile.md +++ b/docs/tutorials/mobile.md @@ -51,4 +51,4 @@ The application can be downloaded on [the Android store here](https://play.googl The code for the completed application is in this GitHub repository: [solution](https://github.com/marigold-dev/training-dapp-shifumi/tree/main/solution) -When you're ready, move to the next section [Part 1: Create the smart contract](./mobile/part-1) to begin setting up the application. +When you're ready, move to the next section [Part 1: Create the smart contract](/tutorials/mobile/part-1) to begin setting up the application. diff --git a/docs/tutorials/mobile/part-1.md b/docs/tutorials/mobile/part-1.md index 99cb597aa..3385d2a57 100644 --- a/docs/tutorials/mobile/part-1.md +++ b/docs/tutorials/mobile/part-1.md @@ -122,4 +122,4 @@ On this first section, you will: That's all for the smart contract. On the next section, you will create the mobile application and connect to your smart contract -When you are ready, continue to [Part 2: Create an Ionic mobile application](./part-2). +When you are ready, continue to [Part 2: Create an Ionic mobile application](/tutorials/mobile/part-2). diff --git a/docs/tutorials/mobile/part-2.md b/docs/tutorials/mobile/part-2.md index eda7a7d5e..0b508c236 100644 --- a/docs/tutorials/mobile/part-2.md +++ b/docs/tutorials/mobile/part-2.md @@ -1150,4 +1150,4 @@ A web3 mobile application is not different from a web2 one in terms of its basic You have a mobile application where you can connect and disconnect a wallet, some default UI components and styles but not yet an interaction with your smart contract. The next step is to be able to create a game, join a game and play a session. -When you are ready, continue to [Part 3: Create the game pages](./part-3). +When you are ready, continue to [Part 3: Create the game pages](/tutorials/mobile/part-3). diff --git a/docs/tutorials/mobile/part-3.md b/docs/tutorials/mobile/part-3.md index 2391571c4..4e80952cb 100644 --- a/docs/tutorials/mobile/part-3.md +++ b/docs/tutorials/mobile/part-3.md @@ -826,4 +826,4 @@ In this section, you will create the pages to: You have successfully create a Web3 game that runs 100% on-chain. The next step is to build and distribute your game as an Android app. -When you are ready, continue to [Part 4: Publish on the Android store](./part-4). +When you are ready, continue to [Part 4: Publish on the Android store](/tutorials/mobile/part-4). diff --git a/docs/tutorials/security.md b/docs/tutorials/security.md index 304df706f..8ce770c05 100644 --- a/docs/tutorials/security.md +++ b/docs/tutorials/security.md @@ -72,4 +72,4 @@ TAQ_LIGO_IMAGE=ligolang/ligo:1.1.0 taq compile .jsligo --- -When you're ready, go to [Part 1: Programming errors](./security/part-1) +When you're ready, go to [Part 1: Programming errors](/tutorials/security/part-1) diff --git a/docs/tutorials/security/part-1.md b/docs/tutorials/security/part-1.md index cda90228a..1bde6b3de 100644 --- a/docs/tutorials/security/part-1.md +++ b/docs/tutorials/security/part-1.md @@ -234,4 +234,4 @@ Another example is in the tutorial [Create a mobile game](../mobile). The contra --- -Go to [Part 2: Leaks](./part-2). +Go to [Part 2: Leaks](/tutorials/security/part-2). diff --git a/docs/tutorials/security/part-2.md b/docs/tutorials/security/part-2.md index 8ff265cec..2e45608ef 100644 --- a/docs/tutorials/security/part-2.md +++ b/docs/tutorials/security/part-2.md @@ -266,4 +266,4 @@ Manipulating arithmetic operations can lead to overflows and underflows. > Do not confuse the OCaml Zarith library with the [Ligo MathLib library](https://packages.ligolang.org/package/@ligo/math-lib), which provides manipulation of floats and rationals instead of using basic types. -Go to [Part 3: User trust & management](./part-3). +Go to [Part 3: User trust & management](/tutorials/security/part-3). diff --git a/docs/tutorials/smart-contract.md b/docs/tutorials/smart-contract.md index 84ee56f22..d5f6b6e50 100644 --- a/docs/tutorials/smart-contract.md +++ b/docs/tutorials/smart-contract.md @@ -23,7 +23,7 @@ This tutorial has different versions for different programming languages. You can run the tutorial with the version of the language you are most familiar with or want to learn. You do not need an experience in these languages to run the tutorial. -- To use SmartPy, a language similar to Python, see [Deploy a smart contract with SmartPy](./smart-contract/smartpy) -- To use JsLIGO, a language similar to JavaScript and TypeScript, see [Deploy a smart contract with JsLIGO](./smart-contract/jsligo) -- To use CameLIGO, a language similar to OCaml, see [Deploy a smart contract with CameLIGO](./smart-contract/cameligo) -- To learn the Archetype language, try [Deploy a smart contract with Archetype](./smart-contract/archetype). +- To use SmartPy, a language similar to Python, see [Deploy a smart contract with SmartPy](/tutorials/smart-contract/smartpy) +- To use JsLIGO, a language similar to JavaScript and TypeScript, see [Deploy a smart contract with JsLIGO](/tutorials/smart-contract/jsligo) +- To use CameLIGO, a language similar to OCaml, see [Deploy a smart contract with CameLIGO](/tutorials/smart-contract/cameligo) +- To learn the Archetype language, try [Deploy a smart contract with Archetype](/tutorials/smart-contract/archetype). diff --git a/docs/tutorials/smart-contract/archetype.md b/docs/tutorials/smart-contract/archetype.md index c25e0aa2e..6672b9833 100644 --- a/docs/tutorials/smart-contract/archetype.md +++ b/docs/tutorials/smart-contract/archetype.md @@ -8,9 +8,9 @@ last_update: This tutorial covers writing a smart contract and deploying it to Tezos in the Archetype programming language. It uses the completium-cli command-line tool, which lets you work with Archetype contracts and Tezos from the command line. -- If you are more familiar with Python, try [Deploy a smart contract with SmartPy](./smartpy). -- If you are more familiar with OCaml, try [Deploy a smart contract with CameLIGO](./cameligo). -- If you are more familiar with JavaScript, try [Deploy a smart contract with JsLIGO](./jsligo). +- If you are more familiar with Python, try [Deploy a smart contract with SmartPy](/tutorials/smart-contract/smartpy). +- If you are more familiar with OCaml, try [Deploy a smart contract with CameLIGO](/tutorials/smart-contract/cameligo). +- If you are more familiar with JavaScript, try [Deploy a smart contract with JsLIGO](/tutorials/smart-contract/jsligo). In this tutorial, you will learn how to: diff --git a/docs/tutorials/smart-contract/cameligo.mdx b/docs/tutorials/smart-contract/cameligo.mdx index dd6da939f..0c4ea7279 100644 --- a/docs/tutorials/smart-contract/cameligo.mdx +++ b/docs/tutorials/smart-contract/cameligo.mdx @@ -8,9 +8,9 @@ last_update: This tutorial covers writing and deploying a simple smart contract with the LIGO programming language. Specifically, this tutorial uses the CameLIGO version of LIGO, which has syntax similar to OCaml, but you don't need any experience with OCaml or LIGO to do this tutorial. -- If you are more familiar with JavaScript, try [Deploy a smart contract with JsLIGO](./jsligo). -- If you are more familiar with Python, try [Deploy a smart contract with SmartPy](./smartpy). -- To learn the Archetype language, try [Deploy a smart contract with Archetype](./archetype). +- If you are more familiar with JavaScript, try [Deploy a smart contract with JsLIGO](/tutorials/smart-contract/jsligo). +- If you are more familiar with Python, try [Deploy a smart contract with SmartPy](/tutorials/smart-contract/smartpy). +- To learn the Archetype language, try [Deploy a smart contract with Archetype](/tutorials/smart-contract/archetype). LIGO is a high-level programming language that you can use to write smart contracts for the Tezos blockchain. It abstracts away the complexity of using Michelson (the smart contract language directly available on-chain) to make it easier to write smart contracts on Tezos. diff --git a/docs/tutorials/smart-contract/jsligo.mdx b/docs/tutorials/smart-contract/jsligo.mdx index bd35afd63..165387b23 100644 --- a/docs/tutorials/smart-contract/jsligo.mdx +++ b/docs/tutorials/smart-contract/jsligo.mdx @@ -8,9 +8,9 @@ last_update: This tutorial covers writing and deploying a simple smart contract with the LIGO programming language. Specifically, this tutorial uses the JsLIGO version of LIGO, which has syntax similar to JavaScript, but you don't need any experience with JavaScript or LIGO to do this tutorial. -- If you are more familiar with Python, try [Deploy a smart contract with SmartPy](./smartpy). -- If you are more familiar with OCaml, try [Deploy a smart contract with CameLIGO](./cameligo). -- To learn the Archetype language, try [Deploy a smart contract with Archetype](./archetype). +- If you are more familiar with Python, try [Deploy a smart contract with SmartPy](/tutorials/smart-contract/smartpy). +- If you are more familiar with OCaml, try [Deploy a smart contract with CameLIGO](/tutorials/smart-contract/cameligo). +- To learn the Archetype language, try [Deploy a smart contract with Archetype](/tutorials/smart-contract/archetype). LIGO is a high-level programming language that you can use to write smart contracts for the Tezos blockchain. It abstracts away the complexity of using Michelson (the smart contract language directly available on-chain) to make it easier to write smart contracts on Tezos. diff --git a/docs/tutorials/smart-contract/smartpy.mdx b/docs/tutorials/smart-contract/smartpy.mdx index eac8c85cc..8d7f521be 100644 --- a/docs/tutorials/smart-contract/smartpy.mdx +++ b/docs/tutorials/smart-contract/smartpy.mdx @@ -8,9 +8,9 @@ last_update: This tutorial covers writing and deploying a simple smart contract with the SmartPy programming language. SmartPy has syntax similar to Python, but you don't need any experience with Python or SmartPy to do this tutorial. -- If you are more familiar with OCaml, try [Deploy a smart contract with CameLIGO](./cameligo). -- If you are more familiar with JavaScript, try [Deploy a smart contract with JsLIGO](./jsligo). -- To learn the Archetype language, try [Deploy a smart contract with Archetype](./archetype). +- If you are more familiar with OCaml, try [Deploy a smart contract with CameLIGO](/tutorials/smart-contract/cameligo). +- If you are more familiar with JavaScript, try [Deploy a smart contract with JsLIGO](/tutorials/smart-contract/jsligo). +- To learn the Archetype language, try [Deploy a smart contract with Archetype](/tutorials/smart-contract/archetype). SmartPy is a high-level programming language that you can use to write smart contracts for the Tezos blockchain. It abstracts away the complexity of using Michelson (the smart contract language directly available on-chain) to make it easier to write smart contracts on Tezos. diff --git a/docs/tutorials/smart-rollup.md b/docs/tutorials/smart-rollup.md index 4a59a13b7..e194600f0 100644 --- a/docs/tutorials/smart-rollup.md +++ b/docs/tutorials/smart-rollup.md @@ -21,7 +21,7 @@ Smart Rollups use Tezos for information and transactions but can run large appli In this way, Smart Rollups allow Tezos to scale to support large, complex applications without slowing Tezos itself or incurring large transaction and storage fees. The processing that runs on Tezos itself via smart contracts is referred to as _layer 1_ and the processing that Smart Rollups run is referred to as _layer 2_. -To learn about running code in smart contracts, see the tutorial [Deploy a smart contract](./smart-contract). +To learn about running code in smart contracts, see the tutorial [Deploy a smart contract](/tutorials/smart-contract). Rollups also have an outbox, which consists of calls to smart contracts on layer 1. These calls are how rollups send messages back to layer 1. diff --git a/docs/tutorials/smartpy-fa2-fungible/customizing-operations.md b/docs/tutorials/smartpy-fa2-fungible/customizing-operations.md index cbe707ae8..1dfc91e4a 100644 --- a/docs/tutorials/smartpy-fa2-fungible/customizing-operations.md +++ b/docs/tutorials/smartpy-fa2-fungible/customizing-operations.md @@ -19,7 +19,7 @@ To convert one token into another, the entrypoint follows these general steps: 1. Mint the target tokens by increasing the amount in the ledger for the account. The burn and mint steps are straightforward as long as you understand how FA2 contracts store information in their ledger. -As described in [Part 1](./basic-fa2-token), the contract stores information about who owns tokens in a key-value store: +As described in [Part 1](/tutorials/smartpy-fa2-fungible/basic-fa2-token), the contract stores information about who owns tokens in a key-value store: - The key is a pair that contains the address of the owner and the ID of the token - The value is the quantity of tokens @@ -179,5 +179,5 @@ That's all that's necessary to convert one fungible token into another. If you wanted to extend this feature, you could implement an exchange rate, take a fee for converting tokens, or allow only certain accounts to convert tokens. You could also test the entrypoint more thoroughly, such as testing that a user can't convert more tokens than they have. -If you want to, you can deploy this new contract to the mockup mode with the same commands as in [Part 1: Setting up a simple FA2 token](./basic-fa2-token) and try it out locally. +If you want to, you can deploy this new contract to the mockup mode with the same commands as in [Part 1: Setting up a simple FA2 token](/tutorials/smartpy-fa2-fungible/basic-fa2-token) and try it out locally. In the next section, you deploy it to a test network. diff --git a/docs/unity.md b/docs/unity.md index 737dafabd..b4c964b0d 100644 --- a/docs/unity.md +++ b/docs/unity.md @@ -16,21 +16,21 @@ You can use Tezos via the SDK to: ## Installation and use -For a walkthrough of installing and using the SDK in an existing Unity project, see [Quickstart](./unity/quickstart). +For a walkthrough of installing and using the SDK in an existing Unity project, see [Quickstart](/unity/quickstart). ## Tutorial scenes The SDK includes tutorial scenes that demonstrate how to use the SDK. -For information about setting up and using the scenes, see [Tutorial scenes](./unity/scenes). +For information about setting up and using the scenes, see [Tutorial scenes](/unity/scenes). ## Sample game -For information about a complete sample game that you can load locally and explore, see [Sample game](./unity/sample-game). +For information about a complete sample game that you can load locally and explore, see [Sample game](/unity/sample-game). ## SDK objects The SDK provides objects that you can use to interact with user wallets and with Tezos. -See [Unity SDK reference](./unity/reference). +See [Unity SDK reference](/unity/reference). ## Dependencies diff --git a/docs/unity/connecting-accounts.md b/docs/unity/connecting-accounts.md index 3d4b292db..044c0398c 100644 --- a/docs/unity/connecting-accounts.md +++ b/docs/unity/connecting-accounts.md @@ -12,7 +12,7 @@ Users still confirm or reject all transactions in their wallet application, so y Using a wallet application in this way saves you from having to implement payment processing and security in your application. Game developers can also use the wallet and its account as a unique account identifier and as the user's inventory. -For an example of connecting to wallets, see the [WalletConnection tutorial scene](./scenes#wallet-connection-scene). +For an example of connecting to wallets, see the [WalletConnection tutorial scene](/unity/scenes#wallet-connection-scene). For more information about Tezos wallets, see [Installing and funding a wallet](../developing/wallet-setup). @@ -39,7 +39,7 @@ Deep link | The application opens the user's wallet app directly | Yes | Yes | N Social wallets | The application opens the user's Kukai web-based wallet | Yes | No | No Regardless of the connection method, the Tezos Unity SDK runs the `WalletConnected` or `WalletConnectionFailed` event, as appropriate. -For more information about events, see the [Unity SDK EventManager object](./reference/EventManager). +For more information about events, see the [Unity SDK EventManager object](/unity/reference/EventManager). @@ -48,7 +48,7 @@ For more information about events, see the [Unity SDK EventManager object](./ref This method generates a QR code that a user scans with their wallet application: -1. The Unity application calls the [`Wallet.Connect()`](./reference/Wallet#connect) method with the `walletProvider` parameter set to `WalletProviderType.beacon` to send a connection request to a wallet application via the [TZIP-10 protocol](https://gitlab.com/tezos/tzip/-/tree/master/proposals/tzip-10). +1. The Unity application calls the [`Wallet.Connect()`](/unity/reference/Wallet#connect) method with the `walletProvider` parameter set to `WalletProviderType.beacon` to send a connection request to a wallet application via the [TZIP-10 protocol](https://gitlab.com/tezos/tzip/-/tree/master/proposals/tzip-10). 1. The wallet returns a handshake that includes pairing information for the wallet, which triggers the `HandshakeReceived` event. 1. From the handshake information, the SDK generates a QR code. The `TezosAuthenticator` prefab handles the QR code generation with the `QrCodeGenerator` class. @@ -60,7 +60,7 @@ The `TezosAuthenticator` prefab handles the QR code generation with the `QrCodeG Deep link connections open the user's wallet app directly, which can be a mobile app or a browser extension. This method relies on the Beacon SDK to interact with wallet apps: -1. The Unity WebGL application calls the [`Wallet.Connect()`](./reference/Wallet#connect) method with the `walletProvider` parameter set to `WalletProviderType.beacon`. +1. The Unity WebGL application calls the [`Wallet.Connect()`](/unity/reference/Wallet#connect) method with the `walletProvider` parameter set to `WalletProviderType.beacon`. The Beacon SDK detects that it is running in a web application and opens a popup window with the wallets that Beacon can connect to: Beacon popup window with wallet types including Temple and Umami @@ -72,11 +72,11 @@ The Beacon SDK detects that it is running in a web application and opens a popup Social wallets exist as accounts managed by web apps such as [Kukai](https://kukai.app/). -To connect to a social wallet, the Unity WebGL application calls [`Wallet.Connect()`](./reference/Wallet#connect) with the `walletProvider` parameter set to `WalletProviderType.kukai`. +To connect to a social wallet, the Unity WebGL application calls [`Wallet.Connect()`](/unity/reference/Wallet#connect) with the `walletProvider` parameter set to `WalletProviderType.kukai`. ## Disconnecting It's important to provide a disconnect button so the user can disconnect when they are finished with the application or if they want to connect with a different account. -To disconnect the active wallet, call the [`Wallet.Disconnect()`](./reference/Wallet#disconnect) method. +To disconnect the active wallet, call the [`Wallet.Disconnect()`](/unity/reference/Wallet#disconnect) method. diff --git a/docs/unity/managing-contracts.md b/docs/unity/managing-contracts.md index 0c9904512..c894db130 100644 --- a/docs/unity/managing-contracts.md +++ b/docs/unity/managing-contracts.md @@ -22,15 +22,15 @@ The Contract tutorial scene shows how to deploy a copy of the built-in contract The SDK includes a built-in contract that you can use to manage tokens for your Unity projects. The contract has entrypoints that allow you to create and transfer tokens. -See [Managing tokens](./managing-tokens). +See [Managing tokens](/unity/managing-tokens). The Michelson source code of the built-in contract is in the `Resources/Contracts` folder of the SDK, but it isn't very human-readable. -For a list of the entrypoints in the contract, see [TokenContract object](./reference/TokenContract). +For a list of the entrypoints in the contract, see [TokenContract object](/unity/reference/TokenContract). For an example of a deployed contract, see https://ghostnet.tzkt.io/KT1Nhr9Bmhy7kcUmezRxbbDybh5buNnrVLTY/entrypoints. ## Deploying the built-in contract -To deploy the built-in contract, call the [`TokenContract.Deploy()`](./reference/TokenContract#deploy) method and pass a callback function: +To deploy the built-in contract, call the [`TokenContract.Deploy()`](/unity/reference/TokenContract#deploy) method and pass a callback function: ```csharp public void DeployContract() @@ -54,28 +54,28 @@ It can take a few minutes for the contract to deploy and be confirmed in multipl The address that deployed the contract becomes the administrator of the contract and is the only account that can create tokens. -The SDK provides information about the contract such as its address in the [`TokenContract`](./reference/TokenContract) object. +The SDK provides information about the contract such as its address in the [`TokenContract`](/unity/reference/TokenContract) object. You can use block explorers such as [Better Call Dev](https://better-call.dev/) to see information about the deployed contract. -For information about using the built-in contract, see [Managing tokens](./managing-tokens). +For information about using the built-in contract, see [Managing tokens](/unity/managing-tokens). ## Getting the contract address -When you deploy a contract with the [`TokenContract.Deploy()`](./reference/TokenContract#deploy) method, the SDK saves the contract address by running this code: +When you deploy a contract with the [`TokenContract.Deploy()`](/unity/reference/TokenContract#deploy) method, the SDK saves the contract address by running this code: ```csharp PlayerPrefs.SetString("CurrentContract:" + Tezos.Wallet.GetActiveAddress(), contractAddress); ``` -Then during SDK initialization, the SDK saves the address to the [`TokenContract.Address`](./reference/TokenContract) property. +Then during SDK initialization, the SDK saves the address to the [`TokenContract.Address`](/unity/reference/TokenContract) property. -To retrieve the address of contracts that you haven't deployed through the project, you can use the [`API.GetOriginatedContractsForOwner()`](./reference/API#getoriginatedcontractsforowner) method. +To retrieve the address of contracts that you haven't deployed through the project, you can use the [`API.GetOriginatedContractsForOwner()`](/unity/reference/API#getoriginatedcontractsforowner) method. ## Calling contracts -The built-in contract has convenience methods for minting and transferring tokens; see [Managing tokens](./managing-tokens). +The built-in contract has convenience methods for minting and transferring tokens; see [Managing tokens](/unity/managing-tokens). -To call the contract's other entrypoints, use the [`Wallet.CallContract()`](./reference/Wallet#callcontract) method. +To call the contract's other entrypoints, use the [`Wallet.CallContract()`](/unity/reference/Wallet#callcontract) method. For example, to call the contract's `set_administrator` entrypoint to set a new administrator account, use this code: ```csharp @@ -86,7 +86,7 @@ TezosManager.Instance.Tezos.Wallet.CallContract( ); ``` -For information about the entrypoints in the built-in contract, see [Unity SDK TokenContract object](./reference/TokenContract#entrypoints). +For information about the entrypoints in the built-in contract, see [Unity SDK TokenContract object](/unity/reference/TokenContract#entrypoints). You can call any other contract by using its address, entrypoint name, and parameter value, as in this example: @@ -285,7 +285,7 @@ Then, ensure that the code of the code and initial storage value of the contract } ``` -To deploy the contract from the Unity project, use the [`Wallet.OriginateContract()`](./reference/Wallet#originatecontract) method, as in this example: +To deploy the contract from the Unity project, use the [`Wallet.OriginateContract()`](/unity/reference/Wallet#originatecontract) method, as in this example: ```csharp var contractJSON = Resources.Load("Contracts/MyContract").text; diff --git a/docs/unity/managing-tokens.md b/docs/unity/managing-tokens.md index e91cc7dce..4e03c924a 100644 --- a/docs/unity/managing-tokens.md +++ b/docs/unity/managing-tokens.md @@ -97,7 +97,7 @@ For a complete example, see the Transfer tutorial scene. ## Getting token balances -To get the tokens that the connected account owns, call the [`API.GetTokensForOwner()`](./reference/API#gettokensforowner) method in a coroutine. +To get the tokens that the connected account owns, call the [`API.GetTokensForOwner()`](/unity/reference/API#gettokensforowner) method in a coroutine. This example prints information about the tokens that the account owns to the log: ```csharp diff --git a/docs/unity/prefabs.md b/docs/unity/prefabs.md index 515ae12b6..e7e44d2b5 100644 --- a/docs/unity/prefabs.md +++ b/docs/unity/prefabs.md @@ -11,7 +11,7 @@ The Tezos Unity SDK provides these prefabs: ## TezosManager This prefab sets the metadata for the scene, such as the application name that users see in their wallet applications before connecting to the project. -It also initializes the Tezos SDK for use in the scene and creates an instance of the `TezosSDK.Tezos.Tezos` class, which provides access to the SDK objects such as the [Wallet](./reference/Wallet) and [EventManager](./reference/EventManager) objects. +It also initializes the Tezos SDK for use in the scene and creates an instance of the `TezosSDK.Tezos.Tezos` class, which provides access to the SDK objects such as the [Wallet](/unity/reference/Wallet) and [EventManager](/unity/reference/EventManager) objects. Its fields control what users see in their wallet applications before connecting to the project, as shown in this picture of the Inspector panel: @@ -33,4 +33,4 @@ The prefab's `LoginPanel` object includes objects that connect to wallets in dif For details about how the prefab works, see the file `TezosAuthenticator.cs`. -For an example of the prefab in use, see the [WalletConnection tutorial scene](./scenes#wallet-connection-scene). +For an example of the prefab in use, see the [WalletConnection tutorial scene](/unity/scenes#wallet-connection-scene). diff --git a/docs/unity/quickstart.md b/docs/unity/quickstart.md index f3472d52e..4287cb770 100644 --- a/docs/unity/quickstart.md +++ b/docs/unity/quickstart.md @@ -29,7 +29,7 @@ For instructions, see [Installing and funding a wallet](../developing/wallet-set 1. If you want to publish the project to WebGL, follow the steps in [Enabling WebGL support](#enabling-webgl-support). -1. To import the tutorial scenes, see [Scenes](./scenes). +1. To import the tutorial scenes, see [Scenes](/unity/scenes). ## Enabling WebGL support @@ -63,7 +63,7 @@ Game developers can also use the wallet and its account as a unique account iden 1. Copy the `TezosAuthenticator` and `TezosManager` prefabs to your scene. These prefabs provide prerequisites to use Tezos in a scene and help connect to accounts. -For more information about them, see [Prefabs](./prefabs). +For more information about them, see [Prefabs](/unity/prefabs). The `TezosAuthenticator` prefab automatically adds features that connect to users' wallets. If you copy these prefabs into your scene and run it, it shows a QR code or connection buttons that Tezos wallet applications can scan to connect with the application. @@ -100,9 +100,9 @@ You can use this event to get the address of the connected account, as in this c You can use this address as a user's account ID because Tezos account addresses are unique. 1. To respond to other events, add listeners for the events that the SDK provides. -You can see these events and their return values in the [EventManager object](./reference/EventManager). +You can see these events and their return values in the [EventManager object](/unity/reference/EventManager). -For an example, see the [WalletConnection tutorial scene](./scenes#wallet-connection-scene). +For an example, see the [WalletConnection tutorial scene](/unity/scenes#wallet-connection-scene). ## Deploying contracts @@ -117,7 +117,7 @@ The ContractAndMinting tutorial scene shows how to deploy a contract from a Unit The SDK provides a built-in contract that you can use instead of writing your own. This contract manages different kinds of tokens. -To deploy the built-in contract, call the [`TokenContract.Deploy()`](./reference/TokenContract#deploy) method and pass a callback function: +To deploy the built-in contract, call the [`TokenContract.Deploy()`](/unity/reference/TokenContract#deploy) method and pass a callback function: ```csharp public void DeployContract() @@ -136,9 +136,9 @@ private void OnContractDeployed(string contractAddress) ``` The project sends the deployment transaction to the connected wallet, which must approve the transaction and pay the related fees. -The SDK stores the address of the contract as [`TokenContract.address`](./reference/TokenContract). +The SDK stores the address of the contract as [`TokenContract.address`](/unity/reference/TokenContract). -For an example, see the [ContractAndMinting tutorial scene](./scenes#contractandminting-scene). +For an example, see the [ContractAndMinting tutorial scene](/unity/scenes#contractandminting-scene). ## Creating tokens @@ -192,7 +192,7 @@ private void OnTokenMinted(TokenBalance tokenBalance) } ``` -For an example, see the [ContractAndMinting tutorial scene](./scenes#contractandminting-scene). +For an example, see the [ContractAndMinting tutorial scene](/unity/scenes#contractandminting-scene). ## Transferring tokens @@ -225,11 +225,11 @@ private void TransferCompleted(string txHash) } ``` -For a complete example, see the [Transfer tutorial scene](./scenes#transfer-scene). +For a complete example, see the [Transfer tutorial scene](/unity/scenes#transfer-scene). ## Getting token balances -To get the tokens that the connected account owns, call the [`API.GetTokensForOwner()`](./reference/API#gettokensforowner) method in a coroutine. +To get the tokens that the connected account owns, call the [`API.GetTokensForOwner()`](/unity/reference/API#gettokensforowner) method in a coroutine. This example prints information about the tokens that the account owns to the log: ```csharp @@ -309,7 +309,7 @@ public void HandleUploadClick() } ``` -For a complete example, see the [IPFSUpload tutorial scene](./scenes#ipfsupload-scene). +For a complete example, see the [IPFSUpload tutorial scene](/unity/scenes#ipfsupload-scene). ## Signing messages @@ -346,10 +346,10 @@ As described in [The RPC interface](../architecture/rpc), Tezos clients includin By default, the SDK sends requests to a public RPC node that uses the Ghostnet test network, where you can test transactions without spending real tez. For more information about test networks, see [Testing on sandboxes and testnets](../developing/testnets). -If you need to change the RPC node that the SDK uses, such as if the default node is overloaded or if you are ready to send transactions to Mainnet, you can set the RPC node by creating an instance of the [TezosConfigSO scriptable object](./reference/TezosConfigSO) and setting the node in the **Rpc Url Format** field, as in this picture: +If you need to change the RPC node that the SDK uses, such as if the default node is overloaded or if you are ready to send transactions to Mainnet, you can set the RPC node by creating an instance of the [TezosConfigSO scriptable object](/unity/reference/TezosConfigSO) and setting the node in the **Rpc Url Format** field, as in this picture: Adding the Pinata API key and the data provider to the TezosConfigSO object Then, drag this instance of the TezosConfigSO scriptable object to the Config field of the TezosManager prefab. -For more examples of how to work with the SDK, see [Tutorial scenes](./scenes). +For more examples of how to work with the SDK, see [Tutorial scenes](/unity/scenes). diff --git a/docs/unity/reference.md b/docs/unity/reference.md index 04d78be37..f2a0cf744 100644 --- a/docs/unity/reference.md +++ b/docs/unity/reference.md @@ -9,12 +9,12 @@ last_update: The Tezos Unity SDK provides several objects that your Unity project can use to work with Tezos. These pages provide reference for the most important of these objects: -- [API object](./reference/API): Provides information about the Tezos blockchain, such as what tokens accounts or contracts control -- [DAppMetadata object](./reference/DAppMetadata): Provides read-only properties that describe the project -- [DataProviderConfigSO scriptable object](./reference/DataProviderConfigSO): Sets the indexer to get information about Tezos from -- [EventManager object](./reference/EventManager): Provides events that you can add listeners to, such as when users connect their wallets -- [TezosConfigSO scriptable object](./reference/TezosConfigSO): Stores information about connecting to Tezos, including the RPC node and Pinata API key to use -- [TokenContract object](./reference/TokenContract): Provides a built-in FA2-compatible smart contract and convenience methods to work with it -- [Wallet object](./reference/Wallet): Provides methods to connect to wallets and send transactions from the connected account +- [API object](/unity/reference/API): Provides information about the Tezos blockchain, such as what tokens accounts or contracts control +- [DAppMetadata object](/unity/reference/DAppMetadata): Provides read-only properties that describe the project +- [DataProviderConfigSO scriptable object](/unity/reference/DataProviderConfigSO): Sets the indexer to get information about Tezos from +- [EventManager object](/unity/reference/EventManager): Provides events that you can add listeners to, such as when users connect their wallets +- [TezosConfigSO scriptable object](/unity/reference/TezosConfigSO): Stores information about connecting to Tezos, including the RPC node and Pinata API key to use +- [TokenContract object](/unity/reference/TokenContract): Provides a built-in FA2-compatible smart contract and convenience methods to work with it +- [Wallet object](/unity/reference/Wallet): Provides methods to connect to wallets and send transactions from the connected account -The SDK also provides Unity prefabs that are prerequisites for the SDK; see [Prefabs](./prefabs). +The SDK also provides Unity prefabs that are prerequisites for the SDK; see [Prefabs](/unity/prefabs). diff --git a/docs/unity/reference/API.md b/docs/unity/reference/API.md index 4279c61e3..dab06102d 100644 --- a/docs/unity/reference/API.md +++ b/docs/unity/reference/API.md @@ -505,7 +505,7 @@ IEnumerator GetOriginatedContractsForOwner( Gets the contracts that the specified account deployed (originated). Optionally, you can pass the hash of a contract to return only contracts that match that hash. -For example, the hash of the contract in the [`TokenContract`](./TokenContract) object is in the `Resources/Contracts/FA2TokenContractCodeHash.txt` file. +For example, the hash of the contract in the [`TokenContract`](/unity/reference/TokenContract) object is in the `Resources/Contracts/FA2TokenContractCodeHash.txt` file. Example: diff --git a/docs/unity/reference/DataProviderConfigSO.md b/docs/unity/reference/DataProviderConfigSO.md index 8f179966b..ff5831472 100644 --- a/docs/unity/reference/DataProviderConfigSO.md +++ b/docs/unity/reference/DataProviderConfigSO.md @@ -8,7 +8,7 @@ last_update: The DataProviderConfigSO scriptable object sets the indexer that the SDK uses to get information about Tezos, such as an account's token balances. Some Tezos dApps use a custom indexer to provide specific information that they need. -To use this object, create an instance of it, put your information in its fields, and then drag this instance to the Data Provider Config field of the [TezosConfigSO scriptable object](./TezosConfigSO) object, as in this picture: +To use this object, create an instance of it, put your information in its fields, and then drag this instance to the Data Provider Config field of the [TezosConfigSO scriptable object](/unity/reference/TezosConfigSO) object, as in this picture: Adding the Pinata API key and the data provider to the TezosConfigSO object diff --git a/docs/unity/reference/TezosConfigSO.md b/docs/unity/reference/TezosConfigSO.md index e60d3db91..c0a20eba3 100644 --- a/docs/unity/reference/TezosConfigSO.md +++ b/docs/unity/reference/TezosConfigSO.md @@ -18,6 +18,6 @@ To use this object, create an instance of it, put your information in its fields - `RPC Url Format`: The URL of the RPC node to use; this value replaces the variable `{network}` with the value of the `Network` field - `Request Timeout Seconds`: The time in seconds to wait for a response from the indexer - `Pinata Api Key`: The Pinata JWT (not the API key or secret key) to use to upload files and data to IPFS -- `Data Provider Config`: The instance of the [DataProviderConfig](./DataProviderConfigSO) scriptable object to use +- `Data Provider Config`: The instance of the [DataProviderConfig](/unity/reference/DataProviderConfigSO) scriptable object to use For more information about RPC nodes, see [The RPC interface](../../architecture/rpc). diff --git a/docs/unity/reference/TokenContract.md b/docs/unity/reference/TokenContract.md index 669a0eb47..46c2d56d9 100644 --- a/docs/unity/reference/TokenContract.md +++ b/docs/unity/reference/TokenContract.md @@ -8,7 +8,7 @@ last_update: The Unity SDK class `TezosSDK.Tezos.API.Models.TokenContract`, which is available at runtime as the `TezosManager.Instance.Tezos.TokenContract` object, provides a built-in FA2-compatible smart contract and convenience methods to work with it. -For information about FA2 contracts and tokens, see [FA2 tokens](../../architecture/tokens/FA2). +For information about FA2 contracts and tokens, see [FA2 tokens](/architecture/tokens/FA2). The Michelson source code of the built-in contract is in the `Resources/Contracts` folder of the SDK. @@ -35,11 +35,11 @@ For a simpler way to create tokens, see the [`Mint()`](#mint) method. - `balance_of`: Sends information about an owner's token balance to another contract. Its parameters are a callback contract that accepts a list of token IDs and the amount that the specified account owns. -For a simpler way to get information about token ownership, see the [`API.GetTokensForOwner()`](./API#gettokensforowner) method. +For a simpler way to get information about token ownership, see the [`API.GetTokensForOwner()`](/unity/reference/API#gettokensforowner) method. - `update_operators`: Adds or removes operators for the specified token owners and token IDs. Its parameters are a list of commands to add or remove operators for token owners and IDs. -For information about operators, see [Operators](../../architecture/tokens/FA2#operators). +For information about operators, see [Operators](/architecture/tokens/FA2#operators). - `set_administrator`: Changes the account that can mint tokens. Its parameter is the address of the new administrator account. @@ -47,7 +47,7 @@ This entrypoint can be called only by the current administrator account. - `set_metadata`: Creates or changes a metadata field in the specified contract's storage. Its parameters are a key-value pair for the new or updated metadata value. -This metadata is a value in the contract's storage, which is different from the metadata returned by the [`API.GetContractMetadata()`](./API#getcontractmetadata) method. +This metadata is a value in the contract's storage, which is different from the metadata returned by the [`API.GetContractMetadata()`](/unity/reference/API#getcontractmetadata) method. This entrypoint can be called only by the current administrator account. - `set_pause`: Sets the value of the `paused` storage field. diff --git a/docs/unity/sample-game.md b/docs/unity/sample-game.md index 376f08af7..3e841e2a2 100644 --- a/docs/unity/sample-game.md +++ b/docs/unity/sample-game.md @@ -51,7 +51,7 @@ The Unity application calls it from the `Assets/Scripts/Api/GameApi.cs` file for - The **smart contract** is a program that runs on the Tezos blockchain to manage tokens that represent in-game items. It maintains a ledger of tokens and owners and allows the backend's administrator account to transfer them to players. -The sample game uses a custom contract, but you can use the SDK's built-in FA2-compliant contract; see [Managing contracts](./managing-contracts). +The sample game uses a custom contract, but you can use the SDK's built-in FA2-compliant contract; see [Managing contracts](/unity/managing-contracts). You can view and interact with the contract on a block explorer, such as tzkt.io: https://tzkt.io/KT1TSZfPJ5uZW1GjcnXmvt1npAQ2nh5S1FAj/operations. - The **Interplanetary File System (IPFS)** stores metadata for the tokens, including pictures and descriptions. @@ -65,7 +65,7 @@ This diagram shows the basic interaction between these components: The game uses the user's Tezos account as a source of authentication. It prompts the user to connect their Tezos wallet so it can retrieve the user's account address. -For more information about connecting to user wallets, see [Connecting accounts](./connecting-accounts). +For more information about connecting to user wallets, see [Connecting accounts](/unity/connecting-accounts). When the wallet is connected, the game prompts the user to sign a payload to prove that they have the key for the account. The process follows these general steps: @@ -83,7 +83,7 @@ Here is a diagram of the process: ![Authentication flow diagram](/img/unity/unity-sample-game-authentication.png) -For more information about signing messages, see [Signing messages](./quickstart#signing-messages) in the Unity SDK quickstart. +For more information about signing messages, see [Signing messages](/unity/quickstart#signing-messages) in the Unity SDK quickstart. ## Tokens @@ -128,7 +128,7 @@ The [`UserDataManager.cs`](https://github.com/baking-bad/tezos-unity-game/blob/m Some of this information (such as the tokens that the player owns) comes from Tezos and other information (such as the player's statistics) comes from the backend. Information about the current game session and pending rewards are non-persistent data that are stored by the Unity application. -The `UserDataManager` class responds to [events](./reference/EventManager) such as when the user connects their wallet and then loads information from the backend and from Tezos directly. +The `UserDataManager` class responds to [events](/unity/reference/EventManager) such as when the user connects their wallet and then loads information from the backend and from Tezos directly. ## Opening the sample game diff --git a/docs/unity/scenes.md b/docs/unity/scenes.md index 92baeed59..aca3cf159 100644 --- a/docs/unity/scenes.md +++ b/docs/unity/scenes.md @@ -13,7 +13,7 @@ For instructions, see [Installing and funding a wallet](../developing/wallet-set ## Setup instructions -After you have installed the SDK according to the instructions in the [Quickstart](./quickstart), you can import the tutorial scenes from the Package Manager panel: +After you have installed the SDK according to the instructions in the [Quickstart](/unity/quickstart), you can import the tutorial scenes from the Package Manager panel: 1. In the Package Manager panel, click the Tezos Unity SDK package. @@ -97,7 +97,7 @@ This picture of the Wallet Connection scene in WebGL mode shows the deep link an The start of the WalletConnection scene, with no account information, showing deep link and social connection buttons -These UI elements call the [`Wallet.Connect()`](./reference/Wallet#connect) method with the `walletProvider` parameter set to `WalletProviderType.beacon` for the direct links or QR code connections and the `walletProvider` parameter set to `WalletProviderType.kukai` for the social wallet connections. +These UI elements call the [`Wallet.Connect()`](/unity/reference/Wallet#connect) method with the `walletProvider` parameter set to `WalletProviderType.beacon` for the direct links or QR code connections and the `walletProvider` parameter set to `WalletProviderType.kukai` for the social wallet connections. After the user approves the connection in the wallet, the scene shows the address of the connected account and its balance, as in the following picture. At the bottom of the scene there is a logout button that closes the connection. @@ -115,7 +115,7 @@ In this case, the smart contract keeps track of tokens, their metadata, and who The SDK comes with a sample smart contract that allows a Unity project to create tokens. You can customize these tokens, give them to users, and treat them like the players' in-game inventories. The Michelson source code of the built-in contract is in the `Resources/Contracts` folder of the SDK, but it isn't very human-readable. -For a list of the entrypoints in the contract, see [TokenContract object](./reference/TokenContract). +For a list of the entrypoints in the contract, see [TokenContract object](/unity/reference/TokenContract). For an example of a deployed contract, see https://ghostnet.tzkt.io/KT1Nhr9Bmhy7kcUmezRxbbDybh5buNnrVLTY/entrypoints. Like the Wallet Connection scene, you must first connect to a wallet. @@ -125,7 +125,7 @@ When you click "Deploy Contract," your connected wallet prompts you to confirm t Because you are connected to the test network, these are worthless testnet tokens and not real currency. This process can take some time. -The scene calls the [`TokenContract.Deploy()`](./reference/TokenContract#deploy) method to deploy the contract to Tezos. +The scene calls the [`TokenContract.Deploy()`](/unity/reference/TokenContract#deploy) method to deploy the contract to Tezos. When you confirm the transaction in the wallet app, you must wait for the contract to be deployed on Tezos. The log in the Console panel shows a message that looks like `Received operation with hash oopFjLYGTbZTEFsTh4p1YPnHR1Up1SNnvE5xk2SRaGH6PZ4ry56`, which is the address of the Tezos transaction that deployed the contract. @@ -159,7 +159,7 @@ Because the contract follows the FA2 standard for tokens, the block explorer als The tokens that this scene creates have randomly generated metadata. To change the metadata, open the `TezosSDK/Examples/Contract/Scripts/MintToken.cs` file. -The file's `HandleMint` function creates the token by generating random numbers, creating a metadata object for the token, and using the [`TokenContract.Mint()`](./reference/TokenContract#mint) method to send the mint transaction to the contract: +The file's `HandleMint` function creates the token by generating random numbers, creating a metadata object for the token, and using the [`TokenContract.Mint()`](/unity/reference/TokenContract#mint) method to send the mint transaction to the contract: ```csharp public void HandleMint() @@ -173,7 +173,7 @@ public void HandleMint() ``` In your projects, you can set the metadata to store information about what the token represents. -For more information about working with Tokens, see [Managing tokens](./managing-tokens) and the tutorials [Create an NFT](../tutorials/create-an-nft) and [Build an NFT marketplace](../../tutorials/build-an-nft-marketplace). +For more information about working with Tokens, see [Managing tokens](/unity/managing-tokens) and the tutorials [Create an NFT](../tutorials/create-an-nft) and [Build an NFT marketplace](../../tutorials/build-an-nft-marketplace). ## Transfer scene @@ -196,7 +196,7 @@ For example, this entry shows that the account that ends in `2zD` owns 9 of the The block explorer's Storage tab, showing the account address and the quantity of a token it owns -The transfer tutorial scene uses the [`TokenContract.Transfer()`](./reference/TokenContract#transfer) method to transfer the token: +The transfer tutorial scene uses the [`TokenContract.Transfer()`](/unity/reference/TokenContract#transfer) method to transfer the token: ```csharp public void HandleTransfer() From ec1751dc86ebd1a979c41533f07af48460ddfe79 Mon Sep 17 00:00:00 2001 From: Tim McMackin Date: Fri, 23 Aug 2024 15:18:59 -0400 Subject: [PATCH 2/3] Relative links from depth --- docs/architecture/data-availability-layer.md | 4 +-- .../governance/amendment-history.md | 2 +- docs/architecture/tokens/FA2.1.md | 8 +++--- docs/architecture/tokens/FA2.md | 4 +-- docs/dApps/samples.md | 2 +- docs/dApps/sending-transactions.md | 8 +++--- docs/dApps/wallets.md | 4 +-- docs/developing/information.md | 2 +- .../information/block-explorers/tzstats.mdx | 4 +-- docs/developing/information/indexers.md | 2 +- docs/developing/octez-client/accounts.md | 2 +- docs/developing/octez-client/transactions.md | 4 +-- docs/developing/testing.md | 2 +- docs/overview/resources.md | 2 +- docs/overview/tezos-different.md | 2 +- docs/reference/style-guide.md | 2 +- docs/smart-contracts.mdx | 26 +++++++++---------- .../data-types/complex-data-types.md | 2 +- .../data-types/crypto-data-types.md | 2 +- .../data-types/primitive-data-types.md | 14 +++++----- docs/smart-contracts/entrypoints.md | 8 +++--- docs/smart-contracts/languages/ligo.md | 4 +-- docs/smart-contracts/languages/michelson.mdx | 4 +-- docs/smart-contracts/languages/smartpy.md | 2 +- docs/smart-contracts/multisig.md | 2 +- docs/tutorials/build-an-nft-marketplace.md | 2 +- .../build-an-nft-marketplace/part-1.md | 6 ++--- .../get-dal-params.md | 4 +-- .../getting-information.md | 2 +- docs/tutorials/create-an-nft/nft-taquito.md | 4 +-- docs/tutorials/create-an-nft/nft-tznft.md | 2 +- docs/tutorials/create-an-nft/nft-web-app.md | 4 +-- .../nft-web-app/defining-functions.md | 2 +- .../create-an-nft/nft-web-app/lets-play.md | 2 +- docs/tutorials/dapp/part-1.md | 2 +- docs/tutorials/join-dal-baker.md | 2 +- docs/tutorials/security/part-1.md | 2 +- docs/tutorials/security/part-3.md | 4 +-- docs/tutorials/smart-contract/archetype.md | 4 +-- docs/tutorials/smart-contract/cameligo.mdx | 6 ++--- docs/tutorials/smart-contract/jsligo.mdx | 6 ++--- docs/tutorials/smart-contract/smartpy.mdx | 4 +-- docs/tutorials/smart-rollup.md | 2 +- docs/tutorials/smart-rollup/run.md | 2 +- docs/tutorials/smartpy-fa2-fungible.md | 4 +-- .../smartpy-fa2-fungible/adding-metadata.md | 2 +- .../smartpy-fa2-fungible/basic-fa2-token.md | 2 +- .../deploying-contract.md | 4 +-- docs/unity/connecting-accounts.md | 4 +-- docs/unity/managing-contracts.md | 4 +-- docs/unity/managing-tokens.md | 2 +- docs/unity/quickstart.md | 6 ++--- docs/unity/reference/API.md | 2 +- docs/unity/reference/DataProviderConfigSO.md | 2 +- docs/unity/reference/TezosConfigSO.md | 2 +- docs/unity/reference/TokenContract.md | 2 +- docs/unity/reference/Wallet.md | 2 +- docs/unity/sample-game.md | 4 +-- docs/unity/scenes.md | 4 +-- 59 files changed, 113 insertions(+), 113 deletions(-) diff --git a/docs/architecture/data-availability-layer.md b/docs/architecture/data-availability-layer.md index ee8e26f46..951a23ecf 100644 --- a/docs/architecture/data-availability-layer.md +++ b/docs/architecture/data-availability-layer.md @@ -8,7 +8,7 @@ last_update: The Data Availability Layer (DAL) is a companion peer-to-peer network for the Tezos blockchain, designed to provide additional data bandwidth to Smart Rollups. It allows users to share large amounts of data in a way that is decentralized and permissionless, because anyone can join the network and post and read data on it. -For a tutorial on how to use the DAL, see [Implement a file archive with the DAL and a Smart Rollup](../tutorials/build-files-archive-with-dal). +For a tutorial on how to use the DAL, see [Implement a file archive with the DAL and a Smart Rollup](/tutorials/build-files-archive-with-dal). ## How the DAL works @@ -108,7 +108,7 @@ Sending data to the DAL is a two-step process: with proof "${proof}" ``` -For an example of sending larger amounts of data, see [Implement a file archive with the DAL and a Smart Rollup](../tutorials/build-files-archive-with-dal). +For an example of sending larger amounts of data, see [Implement a file archive with the DAL and a Smart Rollup](/tutorials/build-files-archive-with-dal). ## Getting data from the DAL diff --git a/docs/architecture/governance/amendment-history.md b/docs/architecture/governance/amendment-history.md index e9f4258ae..720af6993 100644 --- a/docs/architecture/governance/amendment-history.md +++ b/docs/architecture/governance/amendment-history.md @@ -5,7 +5,7 @@ last_update: date: 6 June 2024 --- -As presented in [Governance](../governance), the Tezos blockchain is constantly evolving, through new amendments. +As presented in [Governance](/architecture/governance), the Tezos blockchain is constantly evolving, through new amendments. These approved amendments form the history of the Tezos protocol: diff --git a/docs/architecture/tokens/FA2.1.md b/docs/architecture/tokens/FA2.1.md index 6eeca35f6..908142d1c 100644 --- a/docs/architecture/tokens/FA2.1.md +++ b/docs/architecture/tokens/FA2.1.md @@ -15,9 +15,9 @@ For the full details of the FA2.1 standard, see [Tezos Improvement Proposal 26 ( - FA2.1 allows contracts to export tokens as tickets, use those tickets outside of the contract, and import those tickets back into the contract. -- FA2.1 includes on-chain [views](../../smart-contracts/views) that allow contracts to provide information to on-chain and off-chain applications. +- FA2.1 includes on-chain [views](/smart-contracts/views) that allow contracts to provide information to on-chain and off-chain applications. -- FA2.1 includes [events](../../smart-contracts/events), which provide notifications of token-related activity to off-chain applications. +- FA2.1 includes [events](/smart-contracts/events), which provide notifications of token-related activity to off-chain applications. - FA2.1 adds the concept of allowances from FA1.2 so contracts can use operators or allowances to control access to tokens. @@ -30,11 +30,11 @@ For examples of FA2.1 contracts, see the [Implementation](https://gitlab.com/tez Like FA2 tokens, each FA2.1 token has metadata that describes what the token represents. The standard provides multiple options for the structure of the metadata and it refers to other standards for how the metadata is stored. FA2.1 suggests that contracts store metadata according to [TZIP-21](https://gitlab.com/tezos/tzip/-/blob/master/proposals/tzip-21/tzip-21.md), which is an extension of the TZIP-16 metadata standard used in FA2. -For examples of working with metadata, see the NFT-related tutorials at [Create an NFT](../../tutorials/create-an-nft). +For examples of working with metadata, see the NFT-related tutorials at [Create an NFT](/tutorials/create-an-nft). ## Tickets -A major change in FA2.1 is that contracts can optionally export [tickets](../../smart-contracts/data-types/complex-data-types#tickets) that represent tokens. +A major change in FA2.1 is that contracts can optionally export [tickets](/smart-contracts/data-types/complex-data-types#tickets) that represent tokens. In this case, the contract decreases an owner's balance of tokens and creates a ticket that represents those tokens. It keeps the total balance of the tokens in its ledger the same. Then the ticket owner can transfer the ticket without using the original contract, similar to a wrapped token. diff --git a/docs/architecture/tokens/FA2.md b/docs/architecture/tokens/FA2.md index 138174353..1ad37893c 100644 --- a/docs/architecture/tokens/FA2.md +++ b/docs/architecture/tokens/FA2.md @@ -17,14 +17,14 @@ For the full details of the FA2 standard, see [Tezos Improvement Proposal 12 (TZ ## Examples -For examples of FA2 contracts, see [Sample smart contracts](../../smart-contracts/samples). +For examples of FA2 contracts, see [Sample smart contracts](/smart-contracts/samples). ## Metadata Any FA2 token has some metadata that describes what the token represents. The standard provides multiple options for the structure of the metadata and it refers to other standards for how the metadata is stored. FA2 suggests that contracts store metadata according to [TZIP-16](https://gitlab.com/tezos/tzip/-/blob/master/proposals/tzip-16/tzip-16.md). -For examples of working with metadata, see the NFT-related tutorials at [Create an NFT](../../tutorials/create-an-nft). +For examples of working with metadata, see the NFT-related tutorials at [Create an NFT](/tutorials/create-an-nft). ## Operators diff --git a/docs/dApps/samples.md b/docs/dApps/samples.md index 42508880d..fb396a234 100644 --- a/docs/dApps/samples.md +++ b/docs/dApps/samples.md @@ -7,6 +7,6 @@ last_update: Here are some sample web applications that access Tezos: -- Completed applications from the [tutorials on this website](../tutorials/) are in the repository https://github.com/trilitech/tutorial-applications +- Completed applications from the [tutorials on this website](/tutorials/) are in the repository https://github.com/trilitech/tutorial-applications - Example applications that use Taquito: https://tezostaquito.io/docs/contracts_collection/ - A sample application that uses Taqueria: https://taqueria.io/docs/scaffolds/taco-shop/ diff --git a/docs/dApps/sending-transactions.md b/docs/dApps/sending-transactions.md index 86da71c0c..b65df3bb0 100644 --- a/docs/dApps/sending-transactions.md +++ b/docs/dApps/sending-transactions.md @@ -26,7 +26,7 @@ These calls can include: Tools can originate a smart contract from source code. -For information about calling contracts from other contracts, see [Operations](../smart-contracts/logic/operations). +For information about calling contracts from other contracts, see [Operations](/smart-contracts/logic/operations). ## Taquito @@ -94,7 +94,7 @@ console.log(parameterSchema.ExtractSignatures()); The response shows the entrypoints in the contract and the parameters that they accept. -For example, the [FA2](../architecture/tokens/FA2) `transfer` entrypoint appears like this: +For example, the [FA2](/architecture/tokens/FA2) `transfer` entrypoint appears like this: ```json [ @@ -181,7 +181,7 @@ console.log( ); ``` -For more examples of calling smart contracts, see tutorials such as [Build a simple web application](../tutorials/build-your-first-app) or [Create a contract and web app that mints NFTs](../tutorials/create-an-nft/nft-taquito). +For more examples of calling smart contracts, see tutorials such as [Build a simple web application](/tutorials/build-your-first-app) or [Create a contract and web app that mints NFTs](/tutorials/create-an-nft/nft-taquito). For more information about using Taquito, see [Smart contracts](https://tezostaquito.io/docs/smartcontracts) in the Taquito documentation. @@ -234,4 +234,4 @@ const result = await dAppClient.requestOperation({ ## Octez The Octez command-line client can send tez and call contracts from the command line. -See [Interacting with contracts](../developing/octez-client/transactions). +See [Interacting with contracts](/developing/octez-client/transactions). diff --git a/docs/dApps/wallets.md b/docs/dApps/wallets.md index f85674c98..5292f2064 100644 --- a/docs/dApps/wallets.md +++ b/docs/dApps/wallets.md @@ -29,7 +29,7 @@ The primary tools that dApps use to connect to wallets are: ## Beacon and Taquito Most of the time, dApps use Beacon and Taquito together for a straightforward way to connect to wallets and submit transactions. -For an example, see the tutorial [Build a simple web application](../tutorials/build-your-first-app). +For an example, see the tutorial [Build a simple web application](/tutorials/build-your-first-app). ### Connecting to wallets @@ -49,7 +49,7 @@ const address = await wallet.getPKH(); When this code runs, Beacon opens a popup window that guides the user through connecting their wallet. Then the application can send transactions to Tezos. -See [Part 3: Sending transactions](../tutorials/build-your-first-app/sending-transactions) in the tutorial [Build a simple web application](../tutorials/build-your-first-app). +See [Part 3: Sending transactions](/tutorials/build-your-first-app/sending-transactions) in the tutorial [Build a simple web application](/tutorials/build-your-first-app). ### Reconnecting to wallets diff --git a/docs/developing/information.md b/docs/developing/information.md index b04bed6e7..7c5a10530 100644 --- a/docs/developing/information.md +++ b/docs/developing/information.md @@ -18,7 +18,7 @@ octez-client get balance for tz1QCVQinE8iVj1H2fckqx6oiM85CNJSK9Sx ## The RPC interface -[The RPC interface](../architecture/rpc) provides information about the blockchain that nodes use to communicate with each other. +[The RPC interface](/architecture/rpc) provides information about the blockchain that nodes use to communicate with each other. This data is not always in the format that developers and dApps need. For example, the RPC interface does not provide a way to get information about a specific operation by its hash. diff --git a/docs/developing/information/block-explorers/tzstats.mdx b/docs/developing/information/block-explorers/tzstats.mdx index d04c666e9..b0d98d568 100644 --- a/docs/developing/information/block-explorers/tzstats.mdx +++ b/docs/developing/information/block-explorers/tzstats.mdx @@ -45,12 +45,12 @@ TzStats has a complete guide available [here](https://tzstats.com/docs/guide). alt="tzstats-bakers-page" caption="Figure 5: TzStats Bakers Page" /> -- [Protocols](https://tzstats.com/protocols): This page shows the past and current protocol used by Tezos and the overall age of the Tezos blockchain. See [History of amendments](../../../architecture/governance/amendment-history) to understand each protocol. +- [Protocols](https://tzstats.com/protocols): This page shows the past and current protocol used by Tezos and the overall age of the Tezos blockchain. See [History of amendments](/architecture/governance/amendment-history) to understand each protocol.
-- [Voting](https://tzstats.com/election/head): This page shows the past and current elections and indicates when it ends. See [Governance](../../../architecture/governance) to understand the voting process. +- [Voting](https://tzstats.com/election/head): This page shows the past and current elections and indicates when it ends. See [Governance](/architecture/governance) to understand the voting process.
diff --git a/docs/developing/information/indexers.md b/docs/developing/information/indexers.md index ec6331f2e..816534c97 100644 --- a/docs/developing/information/indexers.md +++ b/docs/developing/information/indexers.md @@ -12,7 +12,7 @@ You can use indexers to provide the data that you need for your dApps. ## Why indexers are needed -Tezos nodes store copies of blocks, but they provide only certain information about those blocks through the [RPC interface](../../architecture/rpc). +Tezos nodes store copies of blocks, but they provide only certain information about those blocks through the [RPC interface](/architecture/rpc). For example, assume that you want information about an operation and all you have is its hash. The RPC interface can't provide this information directly, so you would have to search each block until you found the block with this operation, which is very inefficient. diff --git a/docs/developing/octez-client/accounts.md b/docs/developing/octez-client/accounts.md index 91a14c58a..122070698 100644 --- a/docs/developing/octez-client/accounts.md +++ b/docs/developing/octez-client/accounts.md @@ -24,7 +24,7 @@ octez-client show address local_account The account address (technically the hash of the public key) starts with `tz1`, `tz2`, or `tz3`. You can use this address to send tez to this account, such as from a faucet if you are using a testnet. -See [Testing on sandboxes and testnets](../testnets). +See [Testing on sandboxes and testnets](/developing/testnets).