Skip to content

Commit

Permalink
Merge pull request #593 from lukso-network/lsp3
Browse files Browse the repository at this point in the history
docs: rename LSP3 Standard to Profile-Metadata
  • Loading branch information
CJ42 authored Aug 4, 2023
2 parents 1504c93 + 186e5c3 commit 27790e2
Show file tree
Hide file tree
Showing 9 changed files with 27 additions and 27 deletions.
2 changes: 1 addition & 1 deletion docs/guides/key-manager/execute-relay-transactions.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ The [LSP6 KeyManager](../../standards/universal-profile/lsp6-key-manager.md) sta

Relayed execution enables use cases such as Transaction Relayer Services to be possible where users can send their transaction details to a third party to be executed, moving the gas cost burden away from the user who owns the Universal Profile.

For example, Alice can send an encoded transaction which updates the [LSP3Profile](../../standards/universal-profile/lsp3-universal-profile-metadata.md) picture on her Universal Profile to a second user, Bob, who executes the transaction and pays the gas cost of the transaction on behalf of Alice.
For example, Alice can send an encoded transaction which updates the [LSP3Profile](../../standards/universal-profile/lsp3-profile-metadata.md) picture on her Universal Profile to a second user, Bob, who executes the transaction and pays the gas cost of the transaction on behalf of Alice.

To execute the transaction, Bob needs to know:

Expand Down
2 changes: 1 addition & 1 deletion docs/guides/universal-profile/create-profile.md
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ The final step is to deploy our UP by calling `lspFactory.UniversalProfile.deplo
The `deploy` function takes an object as an argument that contains two elements:

- `controllerAddresses`: the EOA address(es) that we will use to control our UP.
- `lsp3Profile`: an object that represents your [`LSP3Profile` Metadata](../../standards/universal-profile/lsp3-universal-profile-metadata).
- `lsp3Profile`: an object that represents your [`LSP3Profile` Metadata](../../standards/universal-profile/lsp3-profile-metadata).

> We keep our `LSP3Profile` metadata simple in this tutorial. But you can easily add more details about your UP in this object such as `profileImage`, `backgroundImage` and `avatar`. Read how to do this with lsp-factory [here](../../tools/lsp-factoryjs/deployment/universal-profile.md#setting-images-in-lsp3metadata)
Expand Down
4 changes: 2 additions & 2 deletions docs/guides/universal-profile/read-profile-data.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ Complete "ready to use" JSON and JS files are available at the end in the [**Fin

To inspect the address and check if it has an ERC725 contract, we can call its interface through the `erc725.js` library. The instance of the contract will need the following information:

- [LSP3 - Universal Profile Metadata](../../standards/universal-profile/lsp3-universal-profile-metadata) describes the data in the Universal Profile contract storage, and which keys to use to retrieve it. We can import the schema directly from the [erc725.js](../../tools/erc725js/schemas#standard-lsp-schemas) library.
- [LSP3 - Profile Metadata](../../standards/universal-profile/lsp3-profile-metadata) describes the data in the Universal Profile contract storage, and which data keys to use to retrieve it. We can import the schema directly from the [erc725.js](../../tools/erc725js/schemas#standard-lsp-schemas) library.

- `SupportedStandards` shows the interface using a Metadata Standard with a key. In our case we use `SupportedStandards:LSP3UniversalProfile` from to check if the contract is a Universal Profile.
- `LSP3Profile` shows the data of the Universal Profile.
Expand Down Expand Up @@ -104,7 +104,7 @@ fetchProfile(SAMPLE_PROFILE_ADDRESS).then((profileData) =>
);
```

If everything went fine, we now have the profile's [LSP3 - Universal Profile Metadata](../../standards/universal-profile/lsp3-universal-profile-metadata) JSON. It should look like this JSON file:
If everything went fine, we now have the profile's [LSP3 - Universal Profile Metadata](../../standards/universal-profile/lsp3-profile-metadata) JSON. It should look like this JSON file:

<details>
<summary>Show JSON response</summary>
Expand Down
10 changes: 5 additions & 5 deletions docs/standards/standard-detection.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ The **`interfaceId`** and the **`SupportedStandards:{StandardName}`** data key i

There are two types of **LSP** standards used to interact with smart contracts on the LUKSO blockchain.

| Standard Type | Description | Examples |
| :---------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Interface Standards** | **Standardize a set of functions**. <br/> Defines the functions that can be called on a smart contract and their expected parameters | [LSP0-ERC725Account](./universal-profile/lsp0-erc725account.md) <br/> [LSP6-KeyManager](./universal-profile/lsp6-key-manager.md) <br/> [LSP7-DigitalAsset](./nft-2.0/LSP7-Digital-Asset.md) |
| **Metadata Standards** | **Standardize a set of ERC725Y data keys**. <br/> Informs about the data set by default on the contract and which data keys to query to retrieve such data | [LSP3-UniversalProfile-Metadata](./universal-profile/lsp3-universal-profile-metadata.md) <br/> [LSP4-DigitalAsset-Metadata](./nft-2.0/LSP4-Digital-Asset-Metadata.md) <br/> [LSP10ReceivedVaults](./universal-profile/lsp10-received-vaults.md) |
| Standard Type | Description | Examples |
| :---------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Interface Standards** | **Standardize a set of functions**. <br/> Defines the functions that can be called on a smart contract and their expected parameters | [LSP0-ERC725Account](./universal-profile/lsp0-erc725account.md) <br/> [LSP6-KeyManager](./universal-profile/lsp6-key-manager.md) <br/> [LSP7-DigitalAsset](./nft-2.0/LSP7-Digital-Asset.md) |
| **Metadata Standards** | **Standardize a set of ERC725Y data keys**. <br/> Informs about the data set by default on the contract and which data keys to query to retrieve such data | [LSP3-Profile-Metadata](./universal-profile/lsp3-profile-metadata.md) <br/> [LSP4-DigitalAsset-Metadata](./nft-2.0/LSP4-Digital-Asset-Metadata.md) <br/> [LSP10ReceivedVaults](./universal-profile/lsp10-received-vaults.md) |

![Interface and metadata standards](/img/standards/standard-detection/standard-detection.jpeg)

Expand All @@ -36,7 +36,7 @@ Calling this function will return **TRUE** if the contract implements this speci

### Interface Example

A **[Universal Profile](./universal-profile/lsp3-universal-profile-metadata.md)** is a contract based on [ERC725Account](./universal-profile/lsp0-erc725account.md)(LSP0). Therefore, the contract SHOULD implement the functions defined in the [ERC725Account interface](https://github.com/lukso-network/LIPs/blob/main/LSPs/LSP-0-ERC725Account.md#interface-cheat-sheet).
A **[Universal Profile](./universal-profile/lsp3-profile-metadata.md)** is a contract based on [ERC725Account](./universal-profile/lsp0-erc725account.md)(LSP0). Therefore, the contract MUST implement the functions defined in the [ERC725Account interface](https://github.com/lukso-network/LIPs/blob/main/LSPs/LSP-0-ERC725Account.md#interface-cheat-sheet).

<!-- prettier-ignore-start -->

Expand Down
4 changes: 2 additions & 2 deletions docs/standards/standards-roadmap.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ sidebar_position: 2

## Introduction

As mentioned in the [LSPs Foundation](./introduction.md#lsps-foundation) section, the LSPs are not order dependant meaning a standard could use another one that comes after or before in order. For example **[LSP0 - ERC725Account](#)** uses **[LSP1 - UniversalReceiver](#)**, **[LSP2 - ERC725YJSONSchema](#)** and could use **[LSP3 - UniversalProfileMetadata](#)**, etc.
As mentioned in the [LSPs Foundation](./introduction.md#lsps-foundation) section, the LSPs are not order dependant meaning a standard could use another one that comes after or before in order. For example **[LSP0 - ERC725Account](#)** uses **[LSP1 - UniversalReceiver](#)**, **[LSP2 - ERC725YJSONSchema](#)** and could use **[LSP3 - ProfileMetadata](#)**, etc.

## LSPs Roadmap

Expand All @@ -23,7 +23,7 @@ In order to understand the LSPs properly, they should be studied in the followin

- **[LSP6 - KeyManager](./universal-profile/lsp6-key-manager.md)**

- **[LSP3 - UniversalProfileMetadata](./universal-profile/lsp3-universal-profile-metadata.md)**
- **[LSP3 - ProfileMetadata](./universal-profile/lsp3-profile-metadata.md)**

- **[LSP7 - DigitalAsset](./nft-2.0/LSP7-Digital-Asset.md)**

Expand Down
4 changes: 2 additions & 2 deletions docs/standards/universal-profile/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ An LSP0-ERC725Account can work standalone and doesn't require a Key Manager or a

The **[LSP0 - ERC725Account](./lsp0-erc725account.md)** standard represents a blockchain-based account that does not contain any metadata describing the account. It's important to standardize specific data keys to give the account a unique character and look like a typical **Web2 profile**.

**[LSP3 - UniversalProfile Metadata](./lsp3-universal-profile-metadata.md)** is a standard used to add profile information by setting its defined data keys in the account storage. The combination of these two standards forms a **Universal Profile**.
**[LSP3 - Profile Metadata](./lsp3-profile-metadata.md)** is a standard used to add profile information by setting its defined data keys in the account storage. The combination of these two standards forms a **Universal Profile**.

:::tip

Expand All @@ -53,6 +53,6 @@ The guide [how to check if an address is a Universal Profile?](../../guides/univ
## References

- [LUKSO Standards Proposals: LSP0 - ERC725 Account (Standard Specification, GitHub)](https://github.com/lukso-network/LIPs/blob/main/LSPs/LSP-0-ERC725Account.md)
- [LUKSO Standards Proposals: LSP3 - Universal Profile Metadata (Standard Specification, GitHub)](https://github.com/lukso-network/LIPs/blob/main/LSPs/LSP-3-UniversalProfile-Metadata.md)
- [LUKSO Standards Proposals: LSP3 - Profile Metadata (Standard Specification, GitHub)](https://github.com/lukso-network/LIPs/blob/main/LSPs/LSP-3-Profile-Metadata.md)
- [LUKSO Standards Proposals: LSP6 - Key Manager (Standard Specification, GitHub)](https://github.com/lukso-network/LIPs/blob/main/LSPs/LSP-6-KeyManager.md)
- [LSP1 Universal Receiver: Solidity implementations (GitHub)](https://github.com/lukso-network/lsp-universalprofile-smart-contracts/tree/develop/contracts/LSP1UniversalReceiver)
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
---
sidebar_label: 'LSP3 - Universal Profile Metadata'
sidebar_label: 'LSP3 - Profile Metadata'
sidebar_position: 4
---

# LSP3 - Universal Profile Metadata
# LSP3 - Profile Metadata

:::info Standard Document

[LSP3 - Universal Profile Metadata](https://github.com/lukso-network/LIPs/blob/main/LSPs/LSP-3-UniversalProfile-Metadata.md)
[LSP3 - Profile Metadata](https://github.com/lukso-network/LIPs/blob/main/LSPs/LSP-3-Profile-Metadata.md)

:::

## Introduction

The implementation of the **[LSP0-ERC725Account](./lsp0-erc725account.md)** standard does not contain any metadata describing the account.

**LSP3-UniversalProfile-Metadata** is a Metadata standard that defines specific data keys to describe a Universal Profile. A Universal Profile combines the following two standards.
**LSP3-Profile-Metadata** is a Metadata standard that defines specific data keys to describe a profile. A Universal Profile combines the following two standards.

- **[LSP0-ERC725Account](./lsp0-erc725account.md)**: an interface for a smart contract-based account.
- **LSP3-UniversalProfile-Metadata**: a set of predefined [ERC725Y](lsp0-erc725account.md#erc725y---generic-key-value-store) Data keys to describe the profile.
- **LSP3-Profile-Metadata**: a set of predefined [ERC725Y](lsp0-erc725account.md#erc725y---generic-key-value-store) Data keys to describe the profile.

## ERC725Y Data Keys

Expand Down Expand Up @@ -54,7 +54,7 @@ This data key is used to know if the contract represents a **Universal Profile**
}
```

The value attached to this data key is a [JSONURL-encoded value](../../standards/generic-standards/lsp2-json-schema.md). It represents a reference to a [JSON file that describes the Universal Profile MetaData](https://github.com/lukso-network/LIPs/blob/main/LSPs/LSP-3-UniversalProfile-Metadata.md#lsp3profile). The file can be stored on a centralized or decentralized storage.
The value attached to this data key is a [JSONURL-encoded value](../../standards/generic-standards/lsp2-json-schema.md). It represents a reference to a [JSON file that describes the Profile MetaData](https://github.com/lukso-network/LIPs/blob/main/LSPs/LSP-3-Profile-Metadata.md#lsp3profile). The file can be stored on a centralized or decentralized storage.

Inside the JSON file, the keys `profileImage` and `backgroundImage` can accept an array of images, defining an image with different dimensions, `width` and `height`. Picture scaling is helpful for client interfaces to download and serve the images with the most suitable dimensions instead of re-scale them afterward.

Expand Down
8 changes: 4 additions & 4 deletions docs/tools/lsp-factoryjs/classes/universal-profile.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Deploys and **configures** a [Universal Profile](../../../standards/universal-pr

After, it will:

- upload metadata to IPFS and set the [LSP3 Universal Profile](../../../standards/universal-profile/lsp3-universal-profile-metadata) metadata,
- upload metadata to IPFS and set the [LSP3 Profile](../../../standards/universal-profile/lsp3-profile-metadata) metadata,
- attach the Universal Receiver Delegate to the ERC725 Account contract,
- set the Key Manager as the owner of the LSP0 ERC725 Account, and
- set all [LSP6 Permissions](../../../standards/universal-profile/lsp6-key-manager#-types-of-permissions) to the `controllerAddresses` except `DELEGATECALL`.
Expand Down Expand Up @@ -310,7 +310,7 @@ Deployment Complete
lspFactory.UniversalProfile.uploadProfileData(profileData [, options]);
```

Processes and uploads the [LSP3Profile Metadata](../../../standards/universal-profile/lsp3-universal-profile-metadata) to IPFS. The IPFS gateway can be set inside the `options` object.
Processes and uploads the [LSP3Profile Metadata](../../../standards/universal-profile/lsp3-profile-metadata) to IPFS. The IPFS gateway can be set inside the `options` object.

Will resize and upload passed images.

Expand All @@ -320,7 +320,7 @@ Available as a static or non-static method callable on the LSPFactory library in

#### 1. `profileData` - Object

Object containing the [LSP3 Metadata](../../../standards/universal-profile/lsp3-universal-profile-metadata) fields which will be processed and uploaded to IPFS.
Object containing the [LSP3 Metadata](../../../standards/universal-profile/lsp3-profile-metadata) fields which will be processed and uploaded to IPFS.

:::info
[Read more about how LSP3 Metadata is processed here](../deployment/universal-profile#uploading-lsp3-metadata-to-ipfs).
Expand Down Expand Up @@ -559,4 +559,4 @@ await UniversalProfile.uploadProfileData(
```

[all permissions]: ../../../../../standards/universal-profile/lsp6-key-manager#-address-permissions
[lsp3]: ../../../standards/universal-profile/lsp3-universal-profile-metadata
[lsp3]: ../../../standards/universal-profile/lsp3-profile-metadata
8 changes: 4 additions & 4 deletions docs/tools/lsp-factoryjs/deployment/universal-profile.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@ This will deploy the following contracts:

After, it will:

- upload metadata to IPFS and set the [LSP3 Universal Profile](../../../standards/universal-profile/lsp3-universal-profile-metadata) metadata,
- upload metadata to IPFS and set the [LSP3 Profile](../../../standards/universal-profile/lsp3-profile-metadata) metadata,
- attach the Universal Receiver Delegate to the ERC725 Account,
- set the Key Manager as the owner of the ERC725 Account, and
- set all [permissions](../../../standards/universal-profile/lsp6-key-manager#-types-of-permissions) for the `controllerAddresses` except `DELEGATECALL`.

These smart contracts linked with some [LSP3 Universal Profile Metadata](../../../standards/universal-profile/lsp3-universal-profile-metadata) form a Universal Profile. The metadata is the 'face' of your profile and contains information such as your name, description, and profile image.
These smart contracts linked with some [LSP3 Profile Metadata](../../../standards/universal-profile/lsp3-profile-metadata) form a Universal Profile. The metadata is the 'face' of your profile and contains information such as your name, description, and profile image.

:::caution
The deployment key passed to LSPFactory will be given `CHANGEOWNER` and `CHANGEPERMISSIONS` [LSP6 permissions](../../../standards/universal-profile/lsp6-key-manager#-types-of-permissions) in order to carry out the Universal Profile deployment.
Expand Down Expand Up @@ -207,9 +207,9 @@ An avatar can be set by passing the `avatar` property to the `lsp3Profile` objec

An avatar can be passed as an array where each element is a different file format of the same avatar. Each file format can be passed as a `File` object, or asset metadata object according to the [LSP2 ERC725Y JSON Schema standard](https://github.com/lukso-network/LIPs/blob/main/LSPs/LSP-2-ERC725YJSONSchema.md#Array).

If an avatar file is passed as a `File` object, the file will uploaded to IPFS, converted to the correct asset metadata format and added to the [LSP3 Profile Metadata](https://docs.lukso.tech/standards/universal-profile/lsp3-universal-profile-metadata) Json.
If an avatar file is passed as a `File` object, the file will uploaded to IPFS, converted to the correct asset metadata format and added to the [LSP3 Profile Metadata](https://docs.lukso.tech/standards/universal-profile/lsp3-profile-metadata) Json.

Avatar files passed as a metadata objects will be set directly on the [LSP3 Profile Metadata](https://docs.lukso.tech/standards/universal-profile/lsp3-universal-profile-metadata) Json.
Avatar files passed as a metadata objects will be set directly on the [LSP3 Profile Metadata](https://docs.lukso.tech/standards/universal-profile/lsp3-profile-metadata) Json.

```javascript title='Setting LSP3 metadata to be uploaded with an avatar with two formats'
<input type="file" id="avatar">
Expand Down

0 comments on commit 27790e2

Please sign in to comment.