Skip to content

Commit

Permalink
Merge branch 'main' into ci/node-v20
Browse files Browse the repository at this point in the history
  • Loading branch information
CJ42 committed Jan 8, 2025
2 parents 9eaa7dc + af0b843 commit 8d17066
Show file tree
Hide file tree
Showing 174 changed files with 5,882 additions and 2,778 deletions.
2 changes: 1 addition & 1 deletion docs/faq/network/network-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ There are no extra rewards for being very quick. When the appointed time for a v
You can find more information about firewall and port settings within the specifications of the supported blockchain clients:

- [Geth Port Specification](https://geth.ethereum.org/docs/fundamentals/security)
- [Erigon Port Specification](https://github.com/ledgerwatch/erigon#default-ports-and-firewalls)
- [Erigon Port Specification](https://github.com/erigontech/erigon#default-ports-and-firewalls)
- [Nethermind Port Specification](https://docs.nethermind.io/fundamentals/security/#networking-security)
- [Besu Port Specification](https://besu.hyperledger.org/development/public-networks/how-to/connect/configure-ports)
- [Prysm Port Specification](https://docs.prylabs.network/docs/prysm-usage/p2p-host-ip#configure-your-firewall)
Expand Down
2 changes: 1 addition & 1 deletion docs/faq/network/node-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Currently, LUKSO officially supports Geth, Erigon, Lighthouse, and Prysm. All cl

- **[Geth](https://github.com/ethereum/go-ethereum)** is the most popular and widely used Ethereum execution client. It's written in the Go programming language. Geth can be used for various tasks, including creating smart contracts, transferring tokens, mining ether, and exploring block history. It's developed and maintained by the Ethereum Foundation.

- **[Erigon](https://github.com/ledgerwatch/erigon)** is an Ethereum execution client that aims to offer a more efficient and faster alternative to Geth. It's written in Go and includes several optimizations to reduce the amount of data stored and improve processing speed. However, these optimizations can make Erigon more complex to maintain and update.
- **[Erigon](https://github.com/erigontech/erigon)** is an Ethereum execution client that aims to offer a more efficient and faster alternative to Geth. It's written in Go and includes several optimizations to reduce the amount of data stored and improve processing speed. However, these optimizations can make Erigon more complex to maintain and update.

- **[Nethermind](https://github.com/NethermindEth/nethermind)** is an Ethereum execution client built on .NET framework and developed by Nethermind. Its plugin system makes it especially easy to configure and use it. Combining this with a very stable runtime, this makes it a great client to use on the network.

Expand Down
2 changes: 1 addition & 1 deletion docs/faq/onboarding/tools-and-services.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ If you want to experiment with simple code snippets for LSPs, please look at the

## Which tools can be used to develop dApps on LUKSO?

We have a [full set of tools](../../tools/libraries/getting-started/) and libraries that you can use to build on LSPs and interact with Universal Profiles. You can also [install the latest Universal Profile Extension](/install-up-browser-extension) to connect Universal Profiles with dApps.
We have a [full set of tools](../../tools/) and libraries that you can use to build on LSPs and interact with Universal Profiles. You can also [install the latest Universal Profile Extension](/install-up-browser-extension) to connect Universal Profiles with dApps.

## Where can I get LYXt for test deployments?

Expand Down
2 changes: 1 addition & 1 deletion docs/learn/benefits-lukso-standards.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ Below are the benefits offered by the LUKSO Token standards [**LSP7 Digital Asse
| ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [**🔘 Easier functions for developers**](#-easier-functions-for-developers) | You are a developer? Stop learning different functions for each new ERC token standard! (ERC20, ERC721, ERC1155, etc...).<br/>LSP7 and LSP8 use the **same function names** for transfer and operator approvals, whether it is a token or NFT transfer. |
| [**🗄️ Unlimited & Dynamic Metadata for Tokens & NFTs**](#️-unlimited--dynamic-metadata) | Your NFT is not only an image. It can now hold as many information as can be imagined (custom traits, attributes, ...). This information can evolve overtime. |
| **䷓ Flexible Batching functionalities** | Distribute multiple tokens or NFTs easily to users with [`transferBatch(...)`](../contracts/contracts/LSP8IdentifiableDigitalAsset/LSP8IdentifiableDigitalAsset.md#transferbatch) or perform multiple actions in a single transaction with [`batchCalls(...)`](../contracts/contracts/LSP8IdentifiableDigitalAsset/LSP8IdentifiableDigitalAsset.md#batchcalls). <br/> _(e.g: authorize multiple operators, transfer an NFT and update its metadata)_. |
| **䷓ Flexible Batching functionalities** | Distribute multiple tokens or NFTs easily to users with [`transferBatch(...)`](../contracts/contracts/LSP8IdentifiableDigitalAsset/LSP8IdentifiableDigitalAsset.md#transferbatch) or perform multiple actions in a single transaction with [`batchCalls(...)`](../contracts/contracts/LSP8IdentifiableDigitalAsset/LSP8IdentifiableDigitalAsset.md#batchcalls). <br/> _(e.g: authorize multiple operators, transfer an NFT and update its metadata)_. |
| [**📢 Notify sender & recipient(s) on transfer and new operators**](#-notify-on-transfers) | Sender is notified _"I have sent tokens"_, recipient is notified _"I have received tokens"_ and both can have custom logic to react on these notifications. <br/><br/>**Finished the old _"`approve(...)` then `transferFrom(...)`"_ flow!**. Using the Universal Receiver and automatic reactions on notifications is the new way! |
| **⚙️ Extendability with pluggable Extensions** | New features (like new function selectors not present by default in the smart contract code) can be added to a Digital Asset, using a system of extensions. |
| [**✋🏻 Safety parameter (by default!) to prevent accidental transfers**](#-safety-to-prevent-accidental-transfers) | Prevent bad web3 user stories and reduce the number of Google searches for:<br/> _"Transferred tokens to the wrong wallet address. How can I recover them?"_. |
Expand Down
78 changes: 0 additions & 78 deletions docs/learn/developer-content.json

This file was deleted.

4 changes: 3 additions & 1 deletion docs/learn/digital-assets/.assets.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ sidebar_position: 4
description: Learn how to prepare and use assets for LUKSO Universal Profiles and digital assets (LSP7 / LSP8).
---

<!-- TODO: finish guide for uploading asset metadata -->

# 📃 Working with assets

When creating/editing Universal Profiles or Digital Assets, you will need to upload assets (such as images, icons, videos, etc.) and [metadata JSON files](../../standards/tokens/LSP4-Digital-Asset-Metadata.md). This can be tricky, but this guide will help you get through this process.
Expand Down Expand Up @@ -241,7 +243,7 @@ The `generateLSP4JSONVerifiableURI` will return you directly what needs to be se

## Encode the LSP4 Metadata

To encode the LSP4 Metadata with ease, you can use the 🛠️ [`erc725.js`](../../tools/libraries/erc725js/getting-started.md) library. The tool provides all necessary LSP Schemas and the `encodeData()` function.
To encode the LSP4 Metadata with ease, you can use the 🛠️ [`erc725.js`](../../tools/dapps/erc725js/getting-started.md) library. The tool provides all necessary LSP Schemas and the `encodeData()` function.

```js
import { ERC725 } from '@erc725/erc725.js';
Expand Down
2 changes: 1 addition & 1 deletion docs/learn/digital-assets/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import TabItem from '@theme/TabItem';

# Getting started building Tokens & NFTs

The LUKSO ecosystem offers smart contract developers a lot of [new standards](../../standards/introduction.md) and [tools](../../tools/libraries/getting-started.md) to build **powerful, modular, and standardized** blockchain applications.
The LUKSO ecosystem offers smart contract developers a lot of [new standards](../../standards/introduction.md) and [tools](../../tools) to build **powerful, modular, and standardized** blockchain applications.

This page will guide you in setting up your development environment to build and deploy tokens and NFTs on LUKSO.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ To implement Cascade and Sense support, you can reference [this](./cascade-and-s

:::tip Convenience Tool

You can use the 🛠️ [`erc725.js`](../../../tools/libraries/erc725js/getting-started.md) library
You can use the 🛠️ [`erc725.js`](../../../tools/dapps/erc725js/getting-started.md) library
to encode the LSP4 Metadata. The tool provides all necessary LSP schemas as well as the `encodeData()` function.

:::
Expand Down
14 changes: 7 additions & 7 deletions docs/learn/digital-assets/metadata-management/read-asset-data.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ npm i @lukso/lsp-smart-contracts @erc725/erc725.js

:::info

If you are using the 📃 [lsp-smart-contracts](../../../tools/libraries/lsp-smart-contracts/getting-started) library, you can fetch the list of `interfaceId` directly from the package's [constants](../../../tools/libraries/lsp-smart-contracts/constants) called `INTERFACE_IDS`.
If you are using the 📃 [lsp-smart-contracts](../../../tools/lsp-smart-contracts/getting-started) library, you can fetch the list of `interfaceId` directly from the package's [constants](../../../tools/lsp-smart-contracts/constants) called `INTERFACE_IDS`.

Optionally, you can also find a full list of interface IDs on the [Contracts > Interface ID](https://docs.lukso.tech/contracts/interface-ids/) page and input them manually.

Expand Down Expand Up @@ -176,7 +176,7 @@ The following data keys can be fetched 👇
| `LSP4TokenSymbol` | The utf8 hex characters of the string representing the asset's symbol. |
| `LSP4TokenName` | The utf8 hex characters of the string representing the asset's name. |

To retrieve and decode the value stored under this data keys, we will use [erc725.js](../../../tools/libraries/erc725js/getting-started.md) and instantiate the class with:
To retrieve and decode the value stored under this data keys, we will use [erc725.js](../../../tools/dapps/erc725js/getting-started.md) and instantiate the class with:

1. the LSP4 Schema that defines the data keys above and how to decode them
2. the address of your digital asset
Expand All @@ -200,9 +200,9 @@ const erc725js = new ERC725(

We can fetch the digital asset data in three ways:

1. using [`getData()`](../../../tools/libraries/erc725js/methods#getdata) without parameters. This will fetch the value of all data keys at once.
1. using [`getData()`](../../../tools/dapps/erc725js/methods#getdata) without parameters. This will fetch the value of all data keys at once.
2. using `getData("DataKeyName")` to fetch the value of a specific data key. For instance `getData("LSP4Metadata")`.
3. using [`fetchData('LSP4Metadata')`](../../../tools/libraries/erc725js/methods.md#fetchdata) which decodes the `VerifiableURI` to extract the JSON metadata file link and fetch its content from IPFS (or another storage service).
3. using [`fetchData('LSP4Metadata')`](../../../tools/dapps/erc725js/methods.md#fetchdata) which decodes the `VerifiableURI` to extract the JSON metadata file link and fetch its content from IPFS (or another storage service).

### Asset Name and Symbol

Expand Down Expand Up @@ -232,10 +232,10 @@ console.log(tokenSymbol);

### Global Token Information

To fetch the whole JSON file of the asset's metadata, you can use the following 2 functions of the [`erc725js`](../../../tools/libraries/erc725js/getting-started.md) library:
To fetch the whole JSON file of the asset's metadata, you can use the following 2 functions of the [`erc725js`](../../../tools/dapps/erc725js/getting-started.md) library:

- [`fetchData('LSP4Metadata')`](../../../tools/libraries/erc725js/methods.md#fetchdata): This will download and decode the content of `VerifiableURI` as JSON.
- [`getData(LSP4Metadata)`](../../../tools/libraries/erc725js/methods#getdata): This will retrieve the raw data value from the smart contract. You will then need to decode the `VerifiableURI` maunually using [`decodeData(...)`](../../../tools/libraries/erc725js/methods.md#decodedata).
- [`fetchData('LSP4Metadata')`](../../../tools/dapps/erc725js/methods.md#fetchdata): This will download and decode the content of `VerifiableURI` as JSON.
- [`getData(LSP4Metadata)`](../../../tools/dapps/erc725js/methods#getdata): This will retrieve the raw data value from the smart contract. You will then need to decode the `VerifiableURI` maunually using [`decodeData(...)`](../../../tools/dapps/erc725js/methods.md#decodedata).

```ts
// Download and verify the asset metadata JSON file
Expand Down
6 changes: 3 additions & 3 deletions docs/learn/digital-assets/nft/read-nft-metadata.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ If neither _Token ID Metadata_ nor _Base URI_ are set, you should fall back and

We will need the following dependencies to follow this guide:

- [`lsp-smart-contracts`](../../../tools/libraries/lsp-smart-contracts/getting-started.md) to import the LSP8 contract ABI.
- [`erc725.js`](../../../tools/libraries/erc725js/getting-started.md) to easily get [ERC725Y](/standards/erc725.md) data keys and decode their values.
- [`lsp-smart-contracts`](../../../tools/lsp-smart-contracts/getting-started.md) to import the LSP8 contract ABI.
- [`erc725.js`](../../../tools/dapps/erc725js/getting-started.md) to easily get [ERC725Y](/standards/erc725.md) data keys and decode their values.

<Tabs groupId="provider-lib">
<TabItem value="ethers" label="ethers" attributes={{className: "tab_ethers"}}>
Expand Down Expand Up @@ -385,7 +385,7 @@ After retrieving the metadata from the contract, you can continue to [retrieve t

:::caution Version Support

Assets created with LSP versions below 🛠️ [`@lukso/lsp-smart-contracts`](../../../tools/libraries/lsp-smart-contracts/getting-started.md) of `v0.14.0` lack support for retrieving token ID metadata from a Base URI. For previous LSP8 assets, the Base URI may be retrievable by calling the [`fetchData`](../../../tools/libraries/erc725js/methods.md#fetchdata) function as described in the [Global Token Information](#global-token-information) section.
Assets created with LSP versions below 🛠️ [`@lukso/lsp-smart-contracts`](/tools/lsp-smart-contracts/getting-started.md) of `v0.14.0` lack support for retrieving token ID metadata from a Base URI. For previous LSP8 assets, the Base URI may be retrievable by calling the [`fetchData`](../../../tools/dapps/erc725js/methods.md#fetchdata) function as described in the [Global Token Information](#global-token-information) section.

:::

Expand Down
2 changes: 1 addition & 1 deletion docs/learn/digital-assets/nft/set-nft-metadata.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ The next step is to encode the metadata. To do so, we need:
- a JSON file that contains all the metadata of the specific NFT. This metadata has the same format as the `LSP4Metadata`.
- the IPFS url where this JSON file has been uploaded

The value will be encoded as a `VerifiableURI`. We will use the `encodeData` function from the [_erc725.js_](../../../tools/libraries/erc725js/methods.md#encodedata) library to encode a `VerifiableURI` easily.
The value will be encoded as a `VerifiableURI`. We will use the `encodeData` function from the [_erc725.js_](../../../tools/dapps/erc725js/methods.md#encodedata) library to encode a `VerifiableURI` easily.

```js title="encodeVerifiableURI.ts"
import { ERC725 } from '@erc725/erc725.js';
Expand Down
4 changes: 2 additions & 2 deletions docs/learn/digital-assets/retrieve-token-type.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ Token Types are beneficial because of the wide range of asset use cases. The [LS

:::tip Convenience Tools

You can use the ⚒️ [`erc725.js`](../../tools/libraries/erc725js/getting-started.md) library, which automatically decodes [ERC725Y](/standards/erc725.md#erc725y-generic-data-keyvalue-store) storage keys for you.
You can use the ⚒️ [`erc725.js`](../../tools/dapps/erc725js/getting-started.md) library, which automatically decodes [ERC725Y](/standards/erc725.md#erc725y-generic-data-keyvalue-store) storage keys for you.

If you are using a regular contract instance from Ethers or Web3, you can use the data keys from the [`lsp-smart-contracts`](../../tools/libraries/lsp-smart-contracts/getting-started.md) library by importing the `ERC725YDataKeys` constant.
If you are using a regular contract instance from Ethers or Web3, you can use the data keys from the [`lsp-smart-contracts`](../../tools/lsp-smart-contracts/getting-started.md) library by importing the `ERC725YDataKeys` constant.

:::

Expand Down
Loading

0 comments on commit 8d17066

Please sign in to comment.