From c9958ec3626eb8df58bfc726fecc1dbc4ec953a3 Mon Sep 17 00:00:00 2001 From: CJ42 Date: Thu, 9 Nov 2023 00:12:15 +0000 Subject: [PATCH 1/3] [create-pull-request] automated change --- .../LSP0ERC725Account/LSP0ERC725Account.md | 105 ++++++---- .../LSP17ContractExtension/LSP17Extendable.md | 6 +- .../LSP17ContractExtension/LSP17Extension.md | 48 +++-- .../LSP17Extensions/Extension4337.md | 54 +++-- .../OnERC721ReceivedExtension.md | 93 +++++++++ .../LSP1UniversalReceiverDelegateUP.md | 58 +++--- .../LSP1UniversalReceiverDelegateVault.md | 52 +++-- .../LSP25MultiChannelNonce.md | 14 +- .../LSP6KeyManager/LSP6KeyManager.md | 195 +++++++++--------- .../LSP7DigitalAsset/LSP7DigitalAsset.md | 55 ++--- .../extensions/LSP7Burnable.md | 55 ++--- .../extensions/LSP7CappedSupply.md | 39 +--- .../extensions/LSP7CompatibleERC20.md | 31 +-- .../presets/LSP7CompatibleERC20Mintable.md | 33 +-- .../LSP7DigitalAsset/presets/LSP7Mintable.md | 57 ++--- .../LSP8IdentifiableDigitalAsset.md | 53 ++--- .../extensions/LSP8Burnable.md | 53 ++--- .../extensions/LSP8CappedSupply.md | 49 +---- .../extensions/LSP8CompatibleERC721.md | 41 +--- .../extensions/LSP8Enumerable.md | 53 ++--- .../presets/LSP8CompatibleERC721Mintable.md | 43 +--- .../presets/LSP8Mintable.md | 55 ++--- .../contracts/LSP9Vault/LSP9Vault.md | 66 +++--- docs/contracts/contracts/UniversalProfile.md | 89 ++++---- docs/contracts/libraries/LSP1Utils.md | 4 +- docs/contracts/libraries/LSP6Utils.md | 2 +- 26 files changed, 577 insertions(+), 826 deletions(-) diff --git a/docs/contracts/contracts/LSP0ERC725Account/LSP0ERC725Account.md b/docs/contracts/contracts/LSP0ERC725Account/LSP0ERC725Account.md index ee9b762c63..1f3b9ea8d6 100644 --- a/docs/contracts/contracts/LSP0ERC725Account/LSP0ERC725Account.md +++ b/docs/contracts/contracts/LSP0ERC725Account/LSP0ERC725Account.md @@ -54,7 +54,11 @@ constructor(address initialOwner); _Deploying a LSP0ERC725Account contract with owner set to address `initialOwner`._ -Set `initialOwner` as the contract owner. The `constructor` also allows funding the contract on deployment. +Set `initialOwner` as the contract owner. + +- The `constructor` also allows funding the contract on deployment. + +- The `initialOwner` will then be allowed to call protected functions marked with the `onlyOwner` modifier.
@@ -82,6 +86,13 @@ Set `initialOwner` as the contract owner. The `constructor` also allows funding ::: +:::info + +Whenever the call is associated with native tokens, the function will delegate the handling of native tokens internally to the [`universalReceiver`](#universalreceiver) function +passing `_TYPEID_LSP0_VALUE_RECEIVED` as typeId and the calldata as received data, except when the native token will be sent directly to the extension. + +::: + ```solidity fallback(bytes calldata callData) external payable returns (bytes memory); ``` @@ -125,6 +136,13 @@ This function is executed when: ::: +:::info + +This function internally delegates the handling of native tokens to the [`universalReceiver`](#universalreceiver) function +passing `_TYPEID_LSP0_VALUE_RECEIVED` as typeId and an empty bytes array as received data. + +::: + ```solidity receive() external payable; ``` @@ -139,7 +157,7 @@ Executed: **Emitted events:** -- [`UniversalReceiver`](#universalreceiver) event when receiving native tokens. +- Emits a [`UniversalReceiver`](#universalreceiver) event when the `universalReceiver` logic is executed upon receiving native tokens.
@@ -197,6 +215,31 @@ function RENOUNCE_OWNERSHIP_CONFIRMATION_PERIOD()
+### VERSION + +:::note References + +- Specification details: [**LSP-0-ERC725Account**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-0-ERC725Account.md#version) +- Solidity implementation: [`LSP0ERC725Account.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP0ERC725Account/LSP0ERC725Account.sol) +- Function signature: `VERSION()` +- Function selector: `0xffa1ad74` + +::: + +```solidity +function VERSION() external view returns (string); +``` + +_Contract version._ + +#### Returns + +| Name | Type | Description | +| ---- | :------: | ----------- | +| `0` | `string` | - | + +
+ ### acceptOwnership :::note References @@ -245,7 +288,7 @@ Transfer ownership of the contract from the current [`owner()`](#owner) to the [ :::info -It's not possible to send value along the functions call due to the use of `delegatecall`. +It's not possible to send value along the functions call due to the use of `delegatecall`. ::: @@ -487,6 +530,12 @@ Get in the ERC725Y storage the bytes data stored at multiple data keys `dataKeys ::: +:::caution Warning + +This function does not enforce by default the inclusion of the address of this contract in the signature digest. It is recommended that protocols or applications using this contract include the targeted address (= this contract) in the data to sign. To ensure that a signature is valid for a specific LSP0ERC725Account and prevent signatures from the same EOA to be replayed across different LSP0ERC725Accounts. + +::: + ```solidity function isValidSignature( bytes32 dataHash, @@ -812,7 +861,7 @@ Achieves the goal of [LSP-1-UniversalReceiver] by allowing the account to be not - If there is an address stored under the data key, check if this address supports the LSP1 interfaceId. -- If yes, call this address with the typeId and data (params), along with additional calldata consisting of 20 bytes of `msg.sender` and 32 bytes of `msg.value`. If not, continue the execution of the function. +- If yes, call this address with the typeId and data (params), along with additional calldata consisting of 20 bytes of `msg.sender` and 32 bytes of `msg.value`. If not, continue the execution of the function. This function delegates internally the handling of native tokens to the [`universalReceiver`](#universalreceiver) function itself passing `_TYPEID_LSP0_VALUE_RECEIVED` as typeId and the calldata as received data.
@@ -838,33 +887,6 @@ Achieves the goal of [LSP-1-UniversalReceiver] by allowing the account to be not
-### version - -:::note References - -- Specification details: [**LSP-0-ERC725Account**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-0-ERC725Account.md#version) -- Solidity implementation: [`LSP0ERC725Account.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP0ERC725Account/LSP0ERC725Account.sol) -- Function signature: `version()` -- Function selector: `0x54fd4d50` - -::: - -```solidity -function version() external view returns (string); -``` - -_Contract version._ - -Get the version of the contract. - -#### Returns - -| Name | Type | Description | -| ---- | :------: | -------------------------------- | -| `0` | `string` | The version of the the contract. | - -
- ## Internal Methods Any method labeled as `internal` serves as utility function within the contract. They can be used when writing solidity contracts that inherit from this contract. These methods can be extended or modified by overriding their internal behavior to suit specific needs. @@ -1180,26 +1202,21 @@ function _getExtensionAndForwardValue( ) internal view returns (address, bool); ``` -Returns the extension address stored under the following data key: +Returns the extension address and the boolean indicating whether to forward the value received to the extension, stored under the following data key: - [`_LSP17_EXTENSION_PREFIX`](#_lsp17_extension_prefix) + `` (Check [LSP2-ERC725YJSONSchema] for encoding the data key). - If no extension is stored, returns the address(0). +- If the stored value is 20 bytes, return false for the boolean +
### \_fallbackLSP17Extendable :::tip Hint -This function does not forward to the extension contract the `msg.value` received by the contract that inherits `LSP17Extendable`. -If you would like to forward the `msg.value` to the extension contract, you can override the code of this internal function as follow: - -```solidity -(bool success, bytes memory result) = extension.call\{value: msg.value\}( - abi.encodePacked(callData, msg.sender, msg.value) -); -``` +If you would like to forward the `msg.value` to the extension contract, you should store an additional `0x01` byte after the address of the extension under the corresponding LSP17 data key. ::: @@ -1464,11 +1481,11 @@ Emitted when the [`universalReceiver`](#universalreceiver) function was called w | Name | Type | Description | | ---------------------- | :-------: | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `from` **`indexed`** | `address` | The address of the EOA or smart contract that called the \{universalReceiver(...)\} function. | -| `value` **`indexed`** | `uint256` | The amount sent to the \{universalReceiver(...)\} function. | +| `from` **`indexed`** | `address` | The address of the EOA or smart contract that called the [`universalReceiver(...)`](#universalreceiver) function. | +| `value` **`indexed`** | `uint256` | The amount sent to the [`universalReceiver(...)`](#universalreceiver) function. | | `typeId` **`indexed`** | `bytes32` | A `bytes32` unique identifier (= _"hook"_)that describe the type of notification, information or transaction received by the contract. Can be related to a specific standard or a hook. | -| `receivedData` | `bytes` | Any arbitrary data that was sent to the \{universalReceiver(...)\} function. | -| `returnedValue` | `bytes` | The value returned by the \{universalReceiver(...)\} function. | +| `receivedData` | `bytes` | Any arbitrary data that was sent to the [`universalReceiver(...)`](#universalreceiver) function. | +| `returnedValue` | `bytes` | The value returned by the [`universalReceiver(...)`](#universalreceiver) function. |
diff --git a/docs/contracts/contracts/LSP17ContractExtension/LSP17Extendable.md b/docs/contracts/contracts/LSP17ContractExtension/LSP17Extendable.md index dc87fc5b78..9ce0eb1667 100644 --- a/docs/contracts/contracts/LSP17ContractExtension/LSP17Extendable.md +++ b/docs/contracts/contracts/LSP17ContractExtension/LSP17Extendable.md @@ -124,10 +124,6 @@ If there is an extension for the function selector being called, it calls the ex
-### Additional Resources - -- [🎥 BuildUP #2 | Adding Functionalities to Universal Profiles using LSP17 - Contract Extension (YouTube)](https://www.youtube.com/watch?v=0KxkLZHFa0E) - @@ -317,4 +313,4 @@ If there is an extension for the function selector being called, it calls the ex [`LSP10Utils.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP10ReceivedVaults/LSP10Utils.sol [`LSP10Constants.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP10ReceivedVaults/LSP10Constants.sol - \ No newline at end of file + diff --git a/docs/contracts/contracts/LSP17ContractExtension/LSP17Extension.md b/docs/contracts/contracts/LSP17ContractExtension/LSP17Extension.md index 3e8f0778b8..fb16012049 100644 --- a/docs/contracts/contracts/LSP17ContractExtension/LSP17Extension.md +++ b/docs/contracts/contracts/LSP17ContractExtension/LSP17Extension.md @@ -23,61 +23,59 @@ Implementation of the extension logic according to LSP17ContractExtension. This Public methods are accessible externally from users, allowing interaction with this function from dApps or other smart contracts. When marked as 'public', a method can be called both externally and internally, on the other hand, when marked as 'external', a method can only be called externally. -### supportsInterface +### VERSION :::note References -- Specification details: [**LSP-17-ContractExtension**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-17-ContractExtension.md#supportsinterface) +- Specification details: [**LSP-17-ContractExtension**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-17-ContractExtension.md#version) - Solidity implementation: [`LSP17Extension.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP17ContractExtension/LSP17Extension.sol) -- Function signature: `supportsInterface(bytes4)` -- Function selector: `0x01ffc9a7` +- Function signature: `VERSION()` +- Function selector: `0xffa1ad74` ::: ```solidity -function supportsInterface(bytes4 interfaceId) external view returns (bool); +function VERSION() external view returns (string); ``` -See [`IERC165-supportsInterface`](#ierc165-supportsinterface). - -#### Parameters - -| Name | Type | Description | -| ------------- | :------: | ----------- | -| `interfaceId` | `bytes4` | - | +_Contract version._ #### Returns -| Name | Type | Description | -| ---- | :----: | ----------- | -| `0` | `bool` | - | +| Name | Type | Description | +| ---- | :------: | ----------- | +| `0` | `string` | - |
-### version +### supportsInterface :::note References -- Specification details: [**LSP-17-ContractExtension**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-17-ContractExtension.md#version) +- Specification details: [**LSP-17-ContractExtension**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-17-ContractExtension.md#supportsinterface) - Solidity implementation: [`LSP17Extension.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP17ContractExtension/LSP17Extension.sol) -- Function signature: `version()` -- Function selector: `0x54fd4d50` +- Function signature: `supportsInterface(bytes4)` +- Function selector: `0x01ffc9a7` ::: ```solidity -function version() external view returns (string); +function supportsInterface(bytes4 interfaceId) external view returns (bool); ``` -_Contract version._ +See [`IERC165-supportsInterface`](#ierc165-supportsinterface). -Get the version of the contract. +#### Parameters + +| Name | Type | Description | +| ------------- | :------: | ----------- | +| `interfaceId` | `bytes4` | - | #### Returns -| Name | Type | Description | -| ---- | :------: | -------------------------------- | -| `0` | `string` | The version of the the contract. | +| Name | Type | Description | +| ---- | :----: | ----------- | +| `0` | `bool` | - |
diff --git a/docs/contracts/contracts/LSP17Extensions/Extension4337.md b/docs/contracts/contracts/LSP17Extensions/Extension4337.md index ea47d2fd33..054047d806 100644 --- a/docs/contracts/contracts/LSP17Extensions/Extension4337.md +++ b/docs/contracts/contracts/LSP17Extensions/Extension4337.md @@ -40,6 +40,31 @@ constructor(address entryPoint_);
+### VERSION + +:::note References + +- Specification details: [**LSP-17-Extensions**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-17-Extensions.md#version) +- Solidity implementation: [`Extension4337.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP17Extensions/Extension4337.sol) +- Function signature: `VERSION()` +- Function selector: `0xffa1ad74` + +::: + +```solidity +function VERSION() external view returns (string); +``` + +_Contract version._ + +#### Returns + +| Name | Type | Description | +| ---- | :------: | ----------- | +| `0` | `string` | - | + +
+ ### entryPoint :::note References @@ -131,34 +156,7 @@ Must validate caller is the entryPoint. Must validate the signature and nonce | Name | Type | Description | | ---- | :-------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `0` | `uint256` | packaged ValidationData structure. use `_packValidationData` and `_unpackValidationData` to encode and decode \<20-byte\> sigAuthorizer - 0 for valid signature, 1 to mark signature failure, otherwise, an address of an "authorizer" contract. \<6-byte\> validUntil - last timestamp this operation is valid. 0 for "indefinite" \<6-byte\> validAfter - first timestamp this operation is valid If an account doesn't use time-range, it is enough to return SIG_VALIDATION_FAILED value (1) for signature failure. Note that the validation code cannot use block.timestamp (or block.number) directly. | - -
- -### version - -:::note References - -- Specification details: [**LSP-17-Extensions**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-17-Extensions.md#version) -- Solidity implementation: [`Extension4337.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP17Extensions/Extension4337.sol) -- Function signature: `version()` -- Function selector: `0x54fd4d50` - -::: - -```solidity -function version() external view returns (string); -``` - -_Contract version._ - -Get the version of the contract. - -#### Returns - -| Name | Type | Description | -| ---- | :------: | -------------------------------- | -| `0` | `string` | The version of the the contract. | +| `0` | `uint256` | packaged ValidationData structure. use `_packValidationData` and `_unpackValidationData` to encode and decode <20-byte> sigAuthorizer - 0 for valid signature, 1 to mark signature failure, otherwise, an address of an "authorizer" contract. <6-byte> validUntil - last timestamp this operation is valid. 0 for "indefinite" <6-byte> validAfter - first timestamp this operation is valid If an account doesn't use time-range, it is enough to return SIG_VALIDATION_FAILED value (1) for signature failure. Note that the validation code cannot use block.timestamp (or block.number) directly. |
diff --git a/docs/contracts/contracts/LSP17Extensions/OnERC721ReceivedExtension.md b/docs/contracts/contracts/LSP17Extensions/OnERC721ReceivedExtension.md index 0dd7097e92..7f6f0ec9fc 100644 --- a/docs/contracts/contracts/LSP17Extensions/OnERC721ReceivedExtension.md +++ b/docs/contracts/contracts/LSP17Extensions/OnERC721ReceivedExtension.md @@ -21,6 +21,31 @@ LSP17 Extension that can be attached to a LSP17Extendable contract to allow it t Public methods are accessible externally from users, allowing interaction with this function from dApps or other smart contracts. When marked as 'public', a method can be called both externally and internally, on the other hand, when marked as 'external', a method can only be called externally. +### VERSION + +:::note References + +- Specification details: [**LSP-17-Extensions**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-17-Extensions.md#version) +- Solidity implementation: [`OnERC721ReceivedExtension.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP17Extensions/OnERC721ReceivedExtension.sol) +- Function signature: `VERSION()` +- Function selector: `0xffa1ad74` + +::: + +```solidity +function VERSION() external view returns (string); +``` + +_Contract version._ + +#### Returns + +| Name | Type | Description | +| ---- | :------: | ----------- | +| `0` | `string` | - | + +
+ ### onERC721Received :::note References @@ -60,6 +85,74 @@ See [`IERC721Receiver-onERC721Received`](#ierc721receiver-onerc721received). Alw
+### supportsInterface + +:::note References + +- Specification details: [**LSP-17-Extensions**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-17-Extensions.md#supportsinterface) +- Solidity implementation: [`OnERC721ReceivedExtension.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP17Extensions/OnERC721ReceivedExtension.sol) +- Function signature: `supportsInterface(bytes4)` +- Function selector: `0x01ffc9a7` + +::: + +```solidity +function supportsInterface(bytes4 interfaceId) external view returns (bool); +``` + +See [`IERC165-supportsInterface`](#ierc165-supportsinterface). + +#### Parameters + +| Name | Type | Description | +| ------------- | :------: | ----------- | +| `interfaceId` | `bytes4` | - | + +#### Returns + +| Name | Type | Description | +| ---- | :----: | ----------- | +| `0` | `bool` | - | + +
+ +## Internal Methods + +Any method labeled as `internal` serves as utility function within the contract. They can be used when writing solidity contracts that inherit from this contract. These methods can be extended or modified by overriding their internal behavior to suit specific needs. + +Internal functions cannot be called externally, whether from other smart contracts, dApp interfaces, or backend services. Their restricted accessibility ensures that they remain exclusively available within the context of the current contract, promoting controlled and encapsulated usage of these internal utilities. + +### \_extendableMsgData + +```solidity +function _extendableMsgData() internal view returns (bytes); +``` + +Returns the original `msg.data` passed to the extendable contract +without the appended `msg.sender` and `msg.value`. + +
+ +### \_extendableMsgSender + +```solidity +function _extendableMsgSender() internal view returns (address); +``` + +Returns the original `msg.sender` calling the extendable contract. + +
+ +### \_extendableMsgValue + +```solidity +function _extendableMsgValue() internal view returns (uint256); +``` + +Returns the original `msg.value` sent to the extendable contract. + +
+ diff --git a/docs/contracts/contracts/LSP1UniversalReceiver/LSP1UniversalReceiverDelegateUP/LSP1UniversalReceiverDelegateUP.md b/docs/contracts/contracts/LSP1UniversalReceiver/LSP1UniversalReceiverDelegateUP/LSP1UniversalReceiverDelegateUP.md index 4a38598bea..4dde9b462a 100644 --- a/docs/contracts/contracts/LSP1UniversalReceiver/LSP1UniversalReceiverDelegateUP/LSP1UniversalReceiverDelegateUP.md +++ b/docs/contracts/contracts/LSP1UniversalReceiver/LSP1UniversalReceiverDelegateUP/LSP1UniversalReceiverDelegateUP.md @@ -27,6 +27,31 @@ The [`LSP1UniversalReceiverDelegateUP`](#lsp1universalreceiverdelegateup) follow Public methods are accessible externally from users, allowing interaction with this function from dApps or other smart contracts. When marked as 'public', a method can be called both externally and internally, on the other hand, when marked as 'external', a method can only be called externally. +### VERSION + +:::note References + +- Specification details: [**LSP-1-UniversalReceiver**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-1-UniversalReceiver.md#version) +- Solidity implementation: [`LSP1UniversalReceiverDelegateUP.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP1UniversalReceiver/LSP1UniversalReceiverDelegateUP/LSP1UniversalReceiverDelegateUP.sol) +- Function signature: `VERSION()` +- Function selector: `0xffa1ad74` + +::: + +```solidity +function VERSION() external view returns (string); +``` + +_Contract version._ + +#### Returns + +| Name | Type | Description | +| ---- | :------: | ----------- | +| `0` | `string` | - | + +
+ ### supportsInterface :::note References @@ -78,7 +103,7 @@ See [`IERC165-supportsInterface`](#ierc165-supportsinterface). :::caution Warning -When the data stored in the ERC725Y storage of the LSP0 contract is corrupted (\_e.g: ([LSP-5-ReceivedAssets]'s Array length not 16 bytes long, the token received is already registered in `LSP5ReceivetAssets[]`, the token being sent is not sent as full balance, etc...), the function call will still pass and return (**not revert!**) and not modify any data key on the storage of the [LSP-0-ERC725Account]. +When the data stored in the ERC725Y storage of the LSP0 contract is corrupted (\_e.g: ([LSP-5-ReceivedAssets]'s Array length not 16 bytes long, the token received is already registered in `LSP5ReceivetAssets[]`, the token being sent is not sent as full balance, etc...), the function call will still pass and return (**not revert!**) and not modify any data key on the storage of the [LSP-0-ERC725Account]. ::: @@ -123,33 +148,6 @@ _Reacted on received notification with `typeId`._
-### version - -:::note References - -- Specification details: [**LSP-1-UniversalReceiver**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-1-UniversalReceiver.md#version) -- Solidity implementation: [`LSP1UniversalReceiverDelegateUP.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP1UniversalReceiver/LSP1UniversalReceiverDelegateUP/LSP1UniversalReceiverDelegateUP.sol) -- Function signature: `version()` -- Function selector: `0x54fd4d50` - -::: - -```solidity -function version() external view returns (string); -``` - -_Contract version._ - -Get the version of the contract. - -#### Returns - -| Name | Type | Description | -| ---- | :------: | -------------------------------- | -| `0` | `string` | The version of the the contract. | - -
- ## Internal Methods Any method labeled as `internal` serves as utility function within the contract. They can be used when writing solidity contracts that inherit from this contract. These methods can be extended or modified by overriding their internal behavior to suit specific needs. @@ -278,7 +276,3 @@ Reverts when EOA calls the [`universalReceiver(..)`](#universalreceiver) functio | `caller` | `address` | The address of the EOA |
- -### Additional Resources - -- [🎥 BuildUP #2 | Adding Reactivity to Universal Profiles using LSP1 - Universal Receiver (YouTube)](https://www.youtube.com/watch?v=aE00rHVAWbw) \ No newline at end of file diff --git a/docs/contracts/contracts/LSP1UniversalReceiver/LSP1UniversalReceiverDelegateVault/LSP1UniversalReceiverDelegateVault.md b/docs/contracts/contracts/LSP1UniversalReceiver/LSP1UniversalReceiverDelegateVault/LSP1UniversalReceiverDelegateVault.md index 609078570e..368b822868 100644 --- a/docs/contracts/contracts/LSP1UniversalReceiver/LSP1UniversalReceiverDelegateVault/LSP1UniversalReceiverDelegateVault.md +++ b/docs/contracts/contracts/LSP1UniversalReceiver/LSP1UniversalReceiverDelegateVault/LSP1UniversalReceiverDelegateVault.md @@ -25,6 +25,31 @@ The [`LSP1UniversalReceiverDelegateVault`](#lsp1universalreceiverdelegatevault) Public methods are accessible externally from users, allowing interaction with this function from dApps or other smart contracts. When marked as 'public', a method can be called both externally and internally, on the other hand, when marked as 'external', a method can only be called externally. +### VERSION + +:::note References + +- Specification details: [**LSP-1-UniversalReceiver**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-1-UniversalReceiver.md#version) +- Solidity implementation: [`LSP1UniversalReceiverDelegateVault.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP1UniversalReceiver/LSP1UniversalReceiverDelegateVault/LSP1UniversalReceiverDelegateVault.sol) +- Function signature: `VERSION()` +- Function selector: `0xffa1ad74` + +::: + +```solidity +function VERSION() external view returns (string); +``` + +_Contract version._ + +#### Returns + +| Name | Type | Description | +| ---- | :------: | ----------- | +| `0` | `string` | - | + +
+ ### supportsInterface :::note References @@ -112,33 +137,6 @@ Handles two cases: Writes the received [LSP-7-DigitalAsset] or [LSP-8-Identifiab
-### version - -:::note References - -- Specification details: [**LSP-1-UniversalReceiver**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-1-UniversalReceiver.md#version) -- Solidity implementation: [`LSP1UniversalReceiverDelegateVault.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP1UniversalReceiver/LSP1UniversalReceiverDelegateVault/LSP1UniversalReceiverDelegateVault.sol) -- Function signature: `version()` -- Function selector: `0x54fd4d50` - -::: - -```solidity -function version() external view returns (string); -``` - -_Contract version._ - -Get the version of the contract. - -#### Returns - -| Name | Type | Description | -| ---- | :------: | -------------------------------- | -| `0` | `string` | The version of the the contract. | - -
- ## Internal Methods Any method labeled as `internal` serves as utility function within the contract. They can be used when writing solidity contracts that inherit from this contract. These methods can be extended or modified by overriding their internal behavior to suit specific needs. diff --git a/docs/contracts/contracts/LSP25ExecuteRelayCall/LSP25MultiChannelNonce.md b/docs/contracts/contracts/LSP25ExecuteRelayCall/LSP25MultiChannelNonce.md index f1b09d012c..03a820f3fd 100644 --- a/docs/contracts/contracts/LSP25ExecuteRelayCall/LSP25MultiChannelNonce.md +++ b/docs/contracts/contracts/LSP25ExecuteRelayCall/LSP25MultiChannelNonce.md @@ -86,13 +86,13 @@ The address of the signer will be recovered using the LSP25 signature format. #### Parameters -| Name | Type | Description | -| -------------------- | :-------: | ----------------------------------------------------------------------------------------------------------------------- | -| `signature` | `bytes` | A 65 bytes long signature generated according to the signature format specified in the LSP25 standard. | -| `nonce` | `uint256` | The nonce that the signer used to generate the `signature`. | -| `validityTimestamps` | `uint256` | The validity timestamp that the signer used to generate the signature (See \{\_verifyValidityTimestamps\} to learn more). | -| `msgValue` | `uint256` | The amount of native tokens intended to be sent for the relay transaction. | -| `callData` | `bytes` | The calldata to execute as a relay transaction that the signer signed for. | +| Name | Type | Description | +| -------------------- | :-------: | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `signature` | `bytes` | A 65 bytes long signature generated according to the signature format specified in the LSP25 standard. | +| `nonce` | `uint256` | The nonce that the signer used to generate the `signature`. | +| `validityTimestamps` | `uint256` | The validity timestamp that the signer used to generate the signature (See [`_verifyValidityTimestamps`](#_verifyvaliditytimestamps) to learn more). | +| `msgValue` | `uint256` | The amount of native tokens intended to be sent for the relay transaction. | +| `callData` | `bytes` | The calldata to execute as a relay transaction that the signer signed for. | #### Returns diff --git a/docs/contracts/contracts/LSP6KeyManager/LSP6KeyManager.md b/docs/contracts/contracts/LSP6KeyManager/LSP6KeyManager.md index 6a5d712883..94cf2a297c 100644 --- a/docs/contracts/contracts/LSP6KeyManager/LSP6KeyManager.md +++ b/docs/contracts/contracts/LSP6KeyManager/LSP6KeyManager.md @@ -48,6 +48,31 @@ Deploy a Key Manager and set the `target_` address in the contract storage, maki
+### VERSION + +:::note References + +- Specification details: [**LSP-6-KeyManager**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-6-KeyManager.md#version) +- Solidity implementation: [`LSP6KeyManager.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP6KeyManager/LSP6KeyManager.sol) +- Function signature: `VERSION()` +- Function selector: `0xffa1ad74` + +::: + +```solidity +function VERSION() external view returns (string); +``` + +_Contract version._ + +#### Returns + +| Name | Type | Description | +| ---- | :------: | ----------- | +| `0` | `string` | - | + +
+ ### execute :::note References @@ -77,15 +102,15 @@ Execute A `payload` on the linked [`target`](#target) contract after having veri #### Parameters -| Name | Type | Description | -| --------- | :-----: | ---------------------------------------------------------------- | -| `payload` | `bytes` | The abi-encoded function call to execute on the linked \{target}. | +| Name | Type | Description | +| --------- | :-----: | --------------------------------------------------------------------------- | +| `payload` | `bytes` | The abi-encoded function call to execute on the linked [`target`](#target). | #### Returns -| Name | Type | Description | -| ---- | :-----: | ---------------------------------------------------------------------------- | -| `0` | `bytes` | The abi-decoded data returned by the function called on the linked \{target}. | +| Name | Type | Description | +| ---- | :-----: | --------------------------------------------------------------------------------------- | +| `0` | `bytes` | The abi-decoded data returned by the function called on the linked [`target`](#target). |
@@ -125,16 +150,16 @@ Same as [`execute`](#execute) but execute a batch of payloads (abi-encoded funct #### Parameters -| Name | Type | Description | -| ---------- | :---------: | -------------------------------------------------------------------------------------- | -| `values` | `uint256[]` | An array of amount of native tokens to be transferred for each `payload`. | -| `payloads` | `bytes[]` | An array of abi-encoded function calls to execute successively on the linked \{target}. | +| Name | Type | Description | +| ---------- | :---------: | ------------------------------------------------------------------------------------------------- | +| `values` | `uint256[]` | An array of amount of native tokens to be transferred for each `payload`. | +| `payloads` | `bytes[]` | An array of abi-encoded function calls to execute successively on the linked [`target`](#target). | #### Returns -| Name | Type | Description | -| ---- | :-------: | ------------------------------------------------------------------------------------- | -| `0` | `bytes[]` | An array of abi-decoded data returned by the functions called on the linked \{target}. | +| Name | Type | Description | +| ---- | :-------: | ------------------------------------------------------------------------------------------------ | +| `0` | `bytes[]` | An array of abi-decoded data returned by the functions called on the linked [`target`](#target). |
@@ -151,7 +176,7 @@ Same as [`execute`](#execute) but execute a batch of payloads (abi-encoded funct :::tip Hint -If you are looking to learn how to sign and execute relay transactions via the Key Manager, see our Javascript step by step guide [_"Execute Relay Transactions"_](../../../learn/expert-guides/key-manager/execute-relay-transactions.md). See the LSP6 Standard page for more details on how to [generate a valid signature for Execute Relay Call](../../../standards/universal-profile/lsp6-key-manager.md#how-to-sign-relay-transactions). +If you are looking to learn how to sign and execute relay transactions via the Key Manager, see our Javascript step by step guide [_"Execute Relay Transactions"_](../../../guides/key-manager/execute-relay-transactions.md). See the LSP6 Standard page for more details on how to [generate a valid signature for Execute Relay Call](../../../standards/universal-profile/lsp6-key-manager.md#how-to-sign-relay-transactions). ::: @@ -181,7 +206,7 @@ Allows any address (executor) to execute a payload (= abi-encoded function call) | Name | Type | Description | | -------------------- | :-------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `signature` | `bytes` | A 65 bytes long signature for a meta transaction according to LSP25. | -| `nonce` | `uint256` | The nonce of the address that signed the calldata (in a specific `_channel`), obtained via \{getNonce}. Used to prevent replay attack. | +| `nonce` | `uint256` | The nonce of the address that signed the calldata (in a specific `_channel`), obtained via [`getNonce`](#getnonce). Used to prevent replay attack. | | `validityTimestamps` | `uint256` | Two `uint128` timestamps concatenated together that describes when the relay transaction is valid "from" (left `uint128`) and "until" as a deadline (right `uint128`). | | `payload` | `bytes` | The abi-encoded function call to execute. | @@ -229,13 +254,13 @@ Same as [`executeRelayCall`](#executerelaycall) but execute a batch of signed ca #### Parameters -| Name | Type | Description | -| -------------------- | :---------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `signatures` | `bytes[]` | An array of 65 bytes long signatures for meta transactions according to LSP25. | -| `nonces` | `uint256[]` | An array of nonces of the addresses that signed the calldata payloads (in specific channels). Obtained via \{getNonce}. Used to prevent replay attack. | -| `validityTimestamps` | `uint256[]` | An array of two `uint128` concatenated timestamps that describe when the relay transaction is valid "from" (left `uint128`) and "until" (right `uint128`). | -| `values` | `uint256[]` | An array of amount of native tokens to be transferred for each calldata `payload`. | -| `payloads` | `bytes[]` | An array of abi-encoded function calls to be executed successively. | +| Name | Type | Description | +| -------------------- | :---------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `signatures` | `bytes[]` | An array of 65 bytes long signatures for meta transactions according to LSP25. | +| `nonces` | `uint256[]` | An array of nonces of the addresses that signed the calldata payloads (in specific channels). Obtained via [`getNonce`](#getnonce). Used to prevent replay attack. | +| `validityTimestamps` | `uint256[]` | An array of two `uint128` concatenated timestamps that describe when the relay transaction is valid "from" (left `uint128`) and "until" (right `uint128`). | +| `values` | `uint256[]` | An array of amount of native tokens to be transferred for each calldata `payload`. | +| `payloads` | `bytes[]` | An array of abi-encoded function calls to be executed successively. | #### Returns @@ -261,7 +286,7 @@ Same as [`executeRelayCall`](#executerelaycall) but execute a batch of signed ca A signer can choose its channel number arbitrarily. The recommended practice is to: - use `channelId == 0` for transactions for which the ordering of execution matters.abi _Example: you have two transactions A and B, and transaction A must be executed first and complete successfully before transaction B should be executed)._ -- use any other `channelId` number for transactions that you want to be order independant (out-of-order execution, execution _"in parallel"_). \_Example: you have two transactions A and B. You want transaction B to be executed a) without having to wait for transaction A to complete, or b) regardless if transaction A completed successfully or not. +- use any other `channelId` number for transactions that you want to be order independant (out-of-order execution, execution _"in parallel"_). \_Example: you have two transactions A and B. You want transaction B to be executed a) without having to wait for transaction A to complete, or b) regardless if transaction A completed successfully or not. ::: @@ -302,6 +327,12 @@ Get the nonce for a specific `from` address that can be used for signing relay t ::: +:::caution Warning + +This function does not enforce by default the inclusion of the address of this contract in the signature digest. It is recommended that protocols or applications using this contract include the targeted address (= this contract) in the data to sign. To ensure that a signature is valid for a specific LSP6KeyManager and prevent signatures from the same EOA to be replayed across different LSP6KeyManager. + +::: + ```solidity function isValidSignature( bytes32 dataHash, @@ -339,7 +370,7 @@ Checks if a signature was signed by a controller that has the permission `SIGN`. :::tip Hint -This function can call by any other address than the \{`target`}. This allows to verify permissions in a _"read-only"_ manner. Anyone can call this function to verify if the `caller` has the right permissions to perform the abi-encoded function call `data` on the \{`target`\} contract (while sending `msgValue` alongside the call). If the permissions have been verified successfully and `caller` is authorized, one of the following two LSP20 success value will be returned: +This function can call by any other address than the [`target`](#`target`). This allows to verify permissions in a _"read-only"_ manner. Anyone can call this function to verify if the `caller` has the right permissions to perform the abi-encoded function call `data` on the [`target`](#`target`) contract (while sending `msgValue` alongside the call). If the permissions have been verified successfully and `caller` is authorized, one of the following two LSP20 success value will be returned: - `0x1a238000`: LSP20 success value **without** post verification (last byte is `0x00`). - `0x1a238001`: LSP20 success value **with** post-verification (last byte is `0x01`). @@ -463,33 +494,6 @@ Get The address of the contract linked to this Key Manager.
-### version - -:::note References - -- Specification details: [**LSP-6-KeyManager**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-6-KeyManager.md#version) -- Solidity implementation: [`LSP6KeyManager.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP6KeyManager/LSP6KeyManager.sol) -- Function signature: `version()` -- Function selector: `0x54fd4d50` - -::: - -```solidity -function version() external view returns (string); -``` - -_Contract version._ - -Get the version of the contract. - -#### Returns - -| Name | Type | Description | -| ---- | :------: | -------------------------------- | -| `0` | `string` | The version of the the contract. | - -
- ## Internal Methods Any method labeled as `internal` serves as utility function within the contract. They can be used when writing solidity contracts that inherit from this contract. These methods can be extended or modified by overriding their internal behavior to suit specific needs. @@ -906,7 +910,7 @@ function _verifyAllowedCall( function _extractCallType( uint256 operationType, uint256 value, - bool isEmptyCall + bytes data ) internal pure returns (bytes4 requiredCallTypes); ``` @@ -918,7 +922,7 @@ extract the bytes4 representation of a single bit for the type of call according | --------------- | :-------: | -------------------------------------------- | | `operationType` | `uint256` | 0 = CALL, 3 = STATICCALL or 3 = DELEGATECALL | | `value` | `uint256` | - | -| `isEmptyCall` | `bool` | - | +| `data` | `bytes` | - | #### Returns @@ -955,7 +959,7 @@ function _isAllowedStandard( ```solidity function _isAllowedFunction( bytes allowedCall, - bytes4 requiredFunction + bytes data ) internal pure returns (bool); ``` @@ -1056,13 +1060,13 @@ The address of the signer will be recovered using the LSP25 signature format. #### Parameters -| Name | Type | Description | -| -------------------- | :-------: | ----------------------------------------------------------------------------------------------------------------------- | -| `signature` | `bytes` | A 65 bytes long signature generated according to the signature format specified in the LSP25 standard. | -| `nonce` | `uint256` | The nonce that the signer used to generate the `signature`. | -| `validityTimestamps` | `uint256` | The validity timestamp that the signer used to generate the signature (See \{\_verifyValidityTimestamps\} to learn more). | -| `msgValue` | `uint256` | The amount of native tokens intended to be sent for the relay transaction. | -| `callData` | `bytes` | The calldata to execute as a relay transaction that the signer signed for. | +| Name | Type | Description | +| -------------------- | :-------: | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `signature` | `bytes` | A 65 bytes long signature generated according to the signature format specified in the LSP25 standard. | +| `nonce` | `uint256` | The nonce that the signer used to generate the `signature`. | +| `validityTimestamps` | `uint256` | The validity timestamp that the signer used to generate the signature (See [`_verifyValidityTimestamps`](#_verifyvaliditytimestamps) to learn more). | +| `msgValue` | `uint256` | The amount of native tokens intended to be sent for the relay transaction. | +| `callData` | `bytes` | The calldata to execute as a relay transaction that the signer signed for. | #### Returns @@ -1133,7 +1137,7 @@ function _execute( Be aware that this function can also throw an error if the `callData` was signed incorrectly (not conforming to the signature format defined in the LSP25 standard). This is because the contract cannot distinguish if the data is signed correctly or not. Instead, it will recover an incorrect signer address from the signature -and throw an \{InvalidRelayNonce\} error with the incorrect signer address as the first parameter. +and throw an [`InvalidRelayNonce`](#invalidrelaynonce) error with the incorrect signer address as the first parameter. ::: @@ -1176,17 +1180,17 @@ _Execute the `payload` passed to `execute(...)` or `executeRelayCall(...)`_ #### Parameters -| Name | Type | Description | -| ---------------- | :-------: | ------------------------------------------------------------------ | -| `targetContract` | `address` | - | -| `msgValue` | `uint256` | - | -| `payload` | `bytes` | The abi-encoded function call to execute on the \{target\} contract. | +| Name | Type | Description | +| ---------------- | :-------: | ----------------------------------------------------------------------------- | +| `targetContract` | `address` | - | +| `msgValue` | `uint256` | - | +| `payload` | `bytes` | The abi-encoded function call to execute on the [`target`](#target) contract. | #### Returns -| Name | Type | Description | -| ---- | :-----: | ------------------------------------------------------------------------- | -| `0` | `bytes` | bytes The data returned by the call made to the linked \{target\} contract. | +| Name | Type | Description | +| ---- | :-----: | ------------------------------------------------------------------------------------ | +| `0` | `bytes` | bytes The data returned by the call made to the linked [`target`](#target) contract. |
@@ -1205,12 +1209,12 @@ Verify if the `from` address is allowed to execute the `payload` on the [`target #### Parameters -| Name | Type | Description | -| ---------------- | :-------: | ------------------------------------------------------------------- | -| `targetContract` | `address` | The contract that is owned by the Key Manager | -| `from` | `address` | Either the caller of \{execute\} or the signer of \{executeRelayCall}. | -| `isRelayedCall` | `bool` | - | -| `payload` | `bytes` | The abi-encoded function call to execute on the \{target\} contract. | +| Name | Type | Description | +| ---------------- | :-------: | ---------------------------------------------------------------------------------------------------- | +| `targetContract` | `address` | The contract that is owned by the Key Manager | +| `from` | `address` | Either the caller of [`execute`](#execute) or the signer of [`executeRelayCall`](#executerelaycall). | +| `isRelayedCall` | `bool` | - | +| `payload` | `bytes` | The abi-encoded function call to execute on the [`target`](#target) contract. |
@@ -1224,9 +1228,12 @@ function _nonReentrantBefore( ) internal nonpayable returns (bool reentrancyStatus); ``` -Update the status from `_NON_ENTERED` to `_ENTERED` and checks if -the status is `_ENTERED` in order to revert the call unless the caller has the REENTRANCY permission -Used in the beginning of the `nonReentrant` modifier, before the method execution starts. +Check if we are in the context of a reentrant call, by checking if the reentrancy status is `true`. + +- If the status is `true`, the caller (or signer for relay call) MUST have the `REENTRANCY` permission. Otherwise, the call is reverted. + +- If the status is `false`, it is set to `true` only if we are not dealing with a call to the functions `setData` or `setDataBatch`. + Used at the beginning of the [`lsp20VerifyCall`](#`lsp20verifycall`), [`_execute`](#`_execute`) and [`_executeRelayCall`](#`_executerelaycall`) functions, before the methods execution starts.
@@ -1236,8 +1243,8 @@ Used in the beginning of the `nonReentrant` modifier, before the method executio function _nonReentrantAfter(address targetContract) internal nonpayable; ``` -Resets the status to `false` -Used in the end of the `nonReentrant` modifier after the method execution is terminated +Resets the reentrancy status to `false` +Used at the end of the [`lsp20VerifyCall`](#`lsp20verifycall`), [`_execute`](#`_execute`) and [`_executeRelayCall`](#`_executerelaycall`) functions after the functions' execution is terminated.
@@ -1264,11 +1271,11 @@ Emitted when the LSP6KeyManager contract verified the permissions of the `signer #### Parameters -| Name | Type | Description | -| ------------------------ | :-------: | -------------------------------------------------------------------------------------------------------------------------------------------------- | -| `signer` **`indexed`** | `address` | The address of the controller that executed the calldata payload (either directly via \{execute\} or via meta transaction using \{executeRelayCall}). | -| `value` **`indexed`** | `uint256` | The amount of native token to be transferred in the calldata payload. | -| `selector` **`indexed`** | `bytes4` | The bytes4 function of the function that was executed on the linked \{target\} | +| Name | Type | Description | +| ------------------------ | :-------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `signer` **`indexed`** | `address` | The address of the controller that executed the calldata payload (either directly via [`execute`](#execute) or via meta transaction using [`executeRelayCall`](#executerelaycall)). | +| `value` **`indexed`** | `uint256` | The amount of native token to be transferred in the calldata payload. | +| `selector` **`indexed`** | `bytes4` | The bytes4 function of the function that was executed on the linked [`target`](#target) |
@@ -1476,9 +1483,9 @@ Reverts when trying to call a function on the linked [`target`](#target), that i #### Parameters -| Name | Type | Description | -| ----------------- | :------: | ---------------------------------------------------------------------------------------------------------------- | -| `invalidFunction` | `bytes4` | The `bytes4` selector of the function that was attempted to be called on the linked \{target\} but not recognised. | +| Name | Type | Description | +| ----------------- | :------: | --------------------------------------------------------------------------------------------------------------------------- | +| `invalidFunction` | `bytes4` | The `bytes4` selector of the function that was attempted to be called on the linked [`target`](#target) but not recognised. |
@@ -1827,7 +1834,7 @@ Reverts when `from` is not authorised to call the `execute(uint256,address,uint2 | Name | Type | Description | | ---------- | :-------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `from` | `address` | The controller that tried to call the `execute(uint256,address,uint256,bytes)` function. | -| `to` | `address` | The address of an EOA or contract that `from` tried to call using the linked \{target\} | +| `to` | `address` | The address of an EOA or contract that `from` tried to call using the linked [`target`](#target) | | `selector` | `bytes4` | If `to` is a contract, the bytes4 selector of the function that `from` is trying to call. If no function is called (_e.g: a native token transfer_), selector = `0x00000000` |
@@ -1853,10 +1860,10 @@ Reverts when address `from` is not authorised to set the key `disallowedKey` on #### Parameters -| Name | Type | Description | -| --------------- | :-------: | ------------------------------------------------------------------------------------------------------ | -| `from` | `address` | address The controller that tried to `setData` on the linked \{target}. | -| `disallowedKey` | `bytes32` | A bytes32 data key that `from` is not authorised to set on the ERC725Y storage of the linked \{target}. | +| Name | Type | Description | +| --------------- | :-------: | ----------------------------------------------------------------------------------------------------------------- | +| `from` | `address` | address The controller that tried to `setData` on the linked [`target`](#target). | +| `disallowedKey` | `bytes32` | A bytes32 data key that `from` is not authorised to set on the ERC725Y storage of the linked [`target`](#target). |
diff --git a/docs/contracts/contracts/LSP7DigitalAsset/LSP7DigitalAsset.md b/docs/contracts/contracts/LSP7DigitalAsset/LSP7DigitalAsset.md index 9589281aab..7071169cde 100644 --- a/docs/contracts/contracts/LSP7DigitalAsset/LSP7DigitalAsset.md +++ b/docs/contracts/contracts/LSP7DigitalAsset/LSP7DigitalAsset.md @@ -90,7 +90,7 @@ Reverts whenever someone tries to send native tokens to a LSP7 contract. :::danger -To avoid front-running and Allowance Double-Spend Exploit when increasing or decreasing the authorized amount of an operator, it is advised to: 1. either call \{revokeOperator\} first, and then re-call \{authorizeOperator\} with the new amount. 2. or use the non-standard functions \{increaseAllowance\} or \{decreaseAllowance}. For more information, see: https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/ +To avoid front-running and Allowance Double-Spend Exploit when increasing or decreasing the authorized amount of an operator, it is advised to: 1. either call [`revokeOperator`](#revokeoperator) first, and then re-call [`authorizeOperator`](#authorizeoperator) with the new amount. 2. or use the non-standard functions [`increaseAllowance`](#increaseallowance) or [`decreaseAllowance`](#decreaseallowance). For more information, see: https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/ ::: @@ -696,33 +696,6 @@ Transfers ownership of the contract to a new account (`newOwner`). Can only be c
-### version - -:::note References - -- Specification details: [**LSP-7-DigitalAsset**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-7-DigitalAsset.md#version) -- Solidity implementation: [`LSP7DigitalAsset.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP7DigitalAsset/LSP7DigitalAsset.sol) -- Function signature: `version()` -- Function selector: `0x54fd4d50` - -::: - -```solidity -function version() external view returns (string); -``` - -_Contract version._ - -Get the version of the contract. - -#### Returns - -| Name | Type | Description | -| ---- | :------: | -------------------------------- | -| `0` | `string` | The version of the the contract. | - -
- ## Internal Methods Any method labeled as `internal` serves as utility function within the contract. They can be used when writing solidity contracts that inherit from this contract. These methods can be extended or modified by overriding their internal behavior to suit specific needs. @@ -821,9 +794,9 @@ If the amount is zero then the operator is being revoked, otherwise the operator Any logic in the: -- \{\_beforeTokenTransfer\} function will run before updating the balances. +- [`_beforeTokenTransfer`](#_beforetokentransfer) function will run before updating the balances. -- \{\_afterTokenTransfer\} function will run after updating the balances, **but before notifying the recipient via LSP1**. +- [`_afterTokenTransfer`](#_aftertokentransfer) function will run after updating the balances, **but before notifying the recipient via LSP1**. ::: @@ -848,12 +821,12 @@ Mints `amount` of tokens and transfers it to `to`. #### Parameters -| Name | Type | Description | -| -------- | :-------: | ------------------------------------------------------------------------------------------------------------------------- | -| `to` | `address` | The address to mint tokens for. | -| `amount` | `uint256` | The amount of tokens to mint. | -| `force` | `bool` | A boolean that describe if transfer to a `to` address that does not support LSP1 is allowed or not. | -| `data` | `bytes` | Additional data the caller wants included in the emitted \{Transfer\} event, and sent in the LSP1 hook to the `to` address. | +| Name | Type | Description | +| -------- | :-------: | -------------------------------------------------------------------------------------------------------------------------------------- | +| `to` | `address` | The address to mint tokens for. | +| `amount` | `uint256` | The amount of tokens to mint. | +| `force` | `bool` | A boolean that describe if transfer to a `to` address that does not support LSP1 is allowed or not. | +| `data` | `bytes` | Additional data the caller wants included in the emitted [`Transfer`](#transfer) event, and sent in the LSP1 hook to the `to` address. |
@@ -863,9 +836,9 @@ Mints `amount` of tokens and transfers it to `to`. Any logic in the: -- \{\_beforeTokenTransfer\} function will run before updating the balances. +- [`_beforeTokenTransfer`](#_beforetokentransfer) function will run before updating the balances. -- \{\_afterTokenTransfer\} function will run after updating the balances, **but before notifying the sender via LSP1**. +- [`_afterTokenTransfer`](#_aftertokentransfer) function will run after updating the balances, **but before notifying the sender via LSP1**. ::: @@ -930,9 +903,9 @@ Spend `amountToSpend` from the `operator`'s authorized on behalf of the `tokenOw Any logic in the: -- \{\_beforeTokenTransfer\} function will run before updating the balances. +- [`_beforeTokenTransfer`](#_beforetokentransfer) function will run before updating the balances. -- \{\_afterTokenTransfer\} function will run after updating the balances, **but before notifying the sender/recipient via LSP1**. +- [`_afterTokenTransfer`](#_aftertokentransfer) function will run after updating the balances, **but before notifying the sender/recipient via LSP1**. ::: @@ -1044,7 +1017,7 @@ If `to` is is an EOA or a contract that does not support the LSP1 interface, the | Name | Type | Description | | ---------- | :-------: | --------------------------------------------------------------------------------------------------- | -| `to` | `address` | The address to call the \{universalReceiver\} function on. | +| `to` | `address` | The address to call the [`universalReceiver`](#universalreceiver) function on. | | `force` | `bool` | A boolean that describe if transfer to a `to` address that does not support LSP1 is allowed or not. | | `lsp1Data` | `bytes` | The data to be sent to the `to` address in the `universalReceiver(...)` call. | diff --git a/docs/contracts/contracts/LSP7DigitalAsset/extensions/LSP7Burnable.md b/docs/contracts/contracts/LSP7DigitalAsset/extensions/LSP7Burnable.md index 9465e29d2e..1979177df9 100644 --- a/docs/contracts/contracts/LSP7DigitalAsset/extensions/LSP7Burnable.md +++ b/docs/contracts/contracts/LSP7DigitalAsset/extensions/LSP7Burnable.md @@ -88,7 +88,7 @@ Reverts whenever someone tries to send native tokens to a LSP7 contract. :::danger -To avoid front-running and Allowance Double-Spend Exploit when increasing or decreasing the authorized amount of an operator, it is advised to: 1. either call \{revokeOperator\} first, and then re-call \{authorizeOperator\} with the new amount. 2. or use the non-standard functions \{increaseAllowance\} or \{decreaseAllowance}. For more information, see: https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/ +To avoid front-running and Allowance Double-Spend Exploit when increasing or decreasing the authorized amount of an operator, it is advised to: 1. either call [`revokeOperator`](#revokeoperator) first, and then re-call [`authorizeOperator`](#authorizeoperator) with the new amount. 2. or use the non-standard functions [`increaseAllowance`](#increaseallowance) or [`decreaseAllowance`](#decreaseallowance). For more information, see: https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/ ::: @@ -721,33 +721,6 @@ Transfers ownership of the contract to a new account (`newOwner`). Can only be c
-### version - -:::note References - -- Specification details: [**LSP-7-DigitalAsset**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-7-DigitalAsset.md#version) -- Solidity implementation: [`LSP7Burnable.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP7DigitalAsset/extensions/LSP7Burnable.sol) -- Function signature: `version()` -- Function selector: `0x54fd4d50` - -::: - -```solidity -function version() external view returns (string); -``` - -_Contract version._ - -Get the version of the contract. - -#### Returns - -| Name | Type | Description | -| ---- | :------: | -------------------------------- | -| `0` | `string` | The version of the the contract. | - -
- ## Internal Methods Any method labeled as `internal` serves as utility function within the contract. They can be used when writing solidity contracts that inherit from this contract. These methods can be extended or modified by overriding their internal behavior to suit specific needs. @@ -846,9 +819,9 @@ If the amount is zero then the operator is being revoked, otherwise the operator Any logic in the: -- \{\_beforeTokenTransfer\} function will run before updating the balances. +- [`_beforeTokenTransfer`](#_beforetokentransfer) function will run before updating the balances. -- \{\_afterTokenTransfer\} function will run after updating the balances, **but before notifying the recipient via LSP1**. +- [`_afterTokenTransfer`](#_aftertokentransfer) function will run after updating the balances, **but before notifying the recipient via LSP1**. ::: @@ -873,12 +846,12 @@ Mints `amount` of tokens and transfers it to `to`. #### Parameters -| Name | Type | Description | -| -------- | :-------: | ------------------------------------------------------------------------------------------------------------------------- | -| `to` | `address` | The address to mint tokens for. | -| `amount` | `uint256` | The amount of tokens to mint. | -| `force` | `bool` | A boolean that describe if transfer to a `to` address that does not support LSP1 is allowed or not. | -| `data` | `bytes` | Additional data the caller wants included in the emitted \{Transfer\} event, and sent in the LSP1 hook to the `to` address. | +| Name | Type | Description | +| -------- | :-------: | -------------------------------------------------------------------------------------------------------------------------------------- | +| `to` | `address` | The address to mint tokens for. | +| `amount` | `uint256` | The amount of tokens to mint. | +| `force` | `bool` | A boolean that describe if transfer to a `to` address that does not support LSP1 is allowed or not. | +| `data` | `bytes` | Additional data the caller wants included in the emitted [`Transfer`](#transfer) event, and sent in the LSP1 hook to the `to` address. |
@@ -888,9 +861,9 @@ Mints `amount` of tokens and transfers it to `to`. Any logic in the: -- \{\_beforeTokenTransfer\} function will run before updating the balances. +- [`_beforeTokenTransfer`](#_beforetokentransfer) function will run before updating the balances. -- \{\_afterTokenTransfer\} function will run after updating the balances, **but before notifying the sender via LSP1**. +- [`_afterTokenTransfer`](#_aftertokentransfer) function will run after updating the balances, **but before notifying the sender via LSP1**. ::: @@ -955,9 +928,9 @@ Spend `amountToSpend` from the `operator`'s authorized on behalf of the `tokenOw Any logic in the: -- \{\_beforeTokenTransfer\} function will run before updating the balances. +- [`_beforeTokenTransfer`](#_beforetokentransfer) function will run before updating the balances. -- \{\_afterTokenTransfer\} function will run after updating the balances, **but before notifying the sender/recipient via LSP1**. +- [`_afterTokenTransfer`](#_aftertokentransfer) function will run after updating the balances, **but before notifying the sender/recipient via LSP1**. ::: @@ -1069,7 +1042,7 @@ If `to` is is an EOA or a contract that does not support the LSP1 interface, the | Name | Type | Description | | ---------- | :-------: | --------------------------------------------------------------------------------------------------- | -| `to` | `address` | The address to call the \{universalReceiver\} function on. | +| `to` | `address` | The address to call the [`universalReceiver`](#universalreceiver) function on. | | `force` | `bool` | A boolean that describe if transfer to a `to` address that does not support LSP1 is allowed or not. | | `lsp1Data` | `bytes` | The data to be sent to the `to` address in the `universalReceiver(...)` call. | diff --git a/docs/contracts/contracts/LSP7DigitalAsset/extensions/LSP7CappedSupply.md b/docs/contracts/contracts/LSP7DigitalAsset/extensions/LSP7CappedSupply.md index 431a6fc1a4..d69b08eff5 100644 --- a/docs/contracts/contracts/LSP7DigitalAsset/extensions/LSP7CappedSupply.md +++ b/docs/contracts/contracts/LSP7DigitalAsset/extensions/LSP7CappedSupply.md @@ -88,7 +88,7 @@ Reverts whenever someone tries to send native tokens to a LSP7 contract. :::danger -To avoid front-running and Allowance Double-Spend Exploit when increasing or decreasing the authorized amount of an operator, it is advised to: 1. either call \{revokeOperator\} first, and then re-call \{authorizeOperator\} with the new amount. 2. or use the non-standard functions \{increaseAllowance\} or \{decreaseAllowance}. For more information, see: https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/ +To avoid front-running and Allowance Double-Spend Exploit when increasing or decreasing the authorized amount of an operator, it is advised to: 1. either call [`revokeOperator`](#revokeoperator) first, and then re-call [`authorizeOperator`](#authorizeoperator) with the new amount. 2. or use the non-standard functions [`increaseAllowance`](#increaseallowance) or [`decreaseAllowance`](#decreaseallowance). For more information, see: https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/ ::: @@ -721,33 +721,6 @@ Transfers ownership of the contract to a new account (`newOwner`). Can only be c
-### version - -:::note References - -- Specification details: [**LSP-7-DigitalAsset**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-7-DigitalAsset.md#version) -- Solidity implementation: [`LSP7CappedSupply.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP7DigitalAsset/extensions/LSP7CappedSupply.sol) -- Function signature: `version()` -- Function selector: `0x54fd4d50` - -::: - -```solidity -function version() external view returns (string); -``` - -_Contract version._ - -Get the version of the contract. - -#### Returns - -| Name | Type | Description | -| ---- | :------: | -------------------------------- | -| `0` | `string` | The version of the the contract. | - -
- ## Internal Methods Any method labeled as `internal` serves as utility function within the contract. They can be used when writing solidity contracts that inherit from this contract. These methods can be extended or modified by overriding their internal behavior to suit specific needs. @@ -862,9 +835,9 @@ after `amount` of tokens have been minted. Any logic in the: -- \{\_beforeTokenTransfer\} function will run before updating the balances. +- [`_beforeTokenTransfer`](#_beforetokentransfer) function will run before updating the balances. -- \{\_afterTokenTransfer\} function will run after updating the balances, **but before notifying the sender via LSP1**. +- [`_afterTokenTransfer`](#_aftertokentransfer) function will run after updating the balances, **but before notifying the sender via LSP1**. ::: @@ -929,9 +902,9 @@ Spend `amountToSpend` from the `operator`'s authorized on behalf of the `tokenOw Any logic in the: -- \{\_beforeTokenTransfer\} function will run before updating the balances. +- [`_beforeTokenTransfer`](#_beforetokentransfer) function will run before updating the balances. -- \{\_afterTokenTransfer\} function will run after updating the balances, **but before notifying the sender/recipient via LSP1**. +- [`_afterTokenTransfer`](#_aftertokentransfer) function will run after updating the balances, **but before notifying the sender/recipient via LSP1**. ::: @@ -1043,7 +1016,7 @@ If `to` is is an EOA or a contract that does not support the LSP1 interface, the | Name | Type | Description | | ---------- | :-------: | --------------------------------------------------------------------------------------------------- | -| `to` | `address` | The address to call the \{universalReceiver\} function on. | +| `to` | `address` | The address to call the [`universalReceiver`](#universalreceiver) function on. | | `force` | `bool` | A boolean that describe if transfer to a `to` address that does not support LSP1 is allowed or not. | | `lsp1Data` | `bytes` | The data to be sent to the `to` address in the `universalReceiver(...)` call. | diff --git a/docs/contracts/contracts/LSP7DigitalAsset/extensions/LSP7CompatibleERC20.md b/docs/contracts/contracts/LSP7DigitalAsset/extensions/LSP7CompatibleERC20.md index 01a18d8c61..b1669e7d61 100644 --- a/docs/contracts/contracts/LSP7DigitalAsset/extensions/LSP7CompatibleERC20.md +++ b/docs/contracts/contracts/LSP7DigitalAsset/extensions/LSP7CompatibleERC20.md @@ -158,7 +158,7 @@ Approval function from th ERC20 standard interface. :::danger -To avoid front-running and Allowance Double-Spend Exploit when increasing or decreasing the authorized amount of an operator, it is advised to: 1. either call \{revokeOperator\} first, and then re-call \{authorizeOperator\} with the new amount. 2. or use the non-standard functions \{increaseAllowance\} or \{decreaseAllowance}. For more information, see: https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/ +To avoid front-running and Allowance Double-Spend Exploit when increasing or decreasing the authorized amount of an operator, it is advised to: 1. either call [`revokeOperator`](#revokeoperator) first, and then re-call [`authorizeOperator`](#authorizeoperator) with the new amount. 2. or use the non-standard functions [`increaseAllowance`](#increaseallowance) or [`decreaseAllowance`](#decreaseallowance). For more information, see: https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/ ::: @@ -898,33 +898,6 @@ Transfers ownership of the contract to a new account (`newOwner`). Can only be c
-### version - -:::note References - -- Specification details: [**LSP-7-DigitalAsset**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-7-DigitalAsset.md#version) -- Solidity implementation: [`LSP7CompatibleERC20.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP7DigitalAsset/extensions/LSP7CompatibleERC20.sol) -- Function signature: `version()` -- Function selector: `0x54fd4d50` - -::: - -```solidity -function version() external view returns (string); -``` - -_Contract version._ - -Get the version of the contract. - -#### Returns - -| Name | Type | Description | -| ---- | :------: | -------------------------------- | -| `0` | `string` | The version of the the contract. | - -
- ## Internal Methods Any method labeled as `internal` serves as utility function within the contract. They can be used when writing solidity contracts that inherit from this contract. These methods can be extended or modified by overriding their internal behavior to suit specific needs. @@ -1132,7 +1105,7 @@ If `to` is is an EOA or a contract that does not support the LSP1 interface, the | Name | Type | Description | | ---------- | :-------: | --------------------------------------------------------------------------------------------------- | -| `to` | `address` | The address to call the \{universalReceiver\} function on. | +| `to` | `address` | The address to call the [`universalReceiver`](#universalreceiver) function on. | | `force` | `bool` | A boolean that describe if transfer to a `to` address that does not support LSP1 is allowed or not. | | `lsp1Data` | `bytes` | The data to be sent to the `to` address in the `universalReceiver(...)` call. | diff --git a/docs/contracts/contracts/LSP7DigitalAsset/presets/LSP7CompatibleERC20Mintable.md b/docs/contracts/contracts/LSP7DigitalAsset/presets/LSP7CompatibleERC20Mintable.md index c0956843c3..3cb8ba241c 100644 --- a/docs/contracts/contracts/LSP7DigitalAsset/presets/LSP7CompatibleERC20Mintable.md +++ b/docs/contracts/contracts/LSP7DigitalAsset/presets/LSP7CompatibleERC20Mintable.md @@ -14,7 +14,7 @@ ::: -> LSP7CompatibleERC20 deployable preset contract with a public \{mint\} function callable only by the contract \{owner}. +> LSP7CompatibleERC20 deployable preset contract with a public [`mint`](#mint) function callable only by the contract [`owner`](#owner). ## Public Methods @@ -159,7 +159,7 @@ Approval function from th ERC20 standard interface. :::danger -To avoid front-running and Allowance Double-Spend Exploit when increasing or decreasing the authorized amount of an operator, it is advised to: 1. either call \{revokeOperator\} first, and then re-call \{authorizeOperator\} with the new amount. 2. or use the non-standard functions \{increaseAllowance\} or \{decreaseAllowance}. For more information, see: https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/ +To avoid front-running and Allowance Double-Spend Exploit when increasing or decreasing the authorized amount of an operator, it is advised to: 1. either call [`revokeOperator`](#revokeoperator) first, and then re-call [`authorizeOperator`](#authorizeoperator) with the new amount. 2. or use the non-standard functions [`increaseAllowance`](#increaseallowance) or [`decreaseAllowance`](#decreaseallowance). For more information, see: https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/ ::: @@ -932,33 +932,6 @@ Transfers ownership of the contract to a new account (`newOwner`). Can only be c
-### version - -:::note References - -- Specification details: [**LSP-7-DigitalAsset**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-7-DigitalAsset.md#version) -- Solidity implementation: [`LSP7CompatibleERC20Mintable.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP7DigitalAsset/presets/LSP7CompatibleERC20Mintable.sol) -- Function signature: `version()` -- Function selector: `0x54fd4d50` - -::: - -```solidity -function version() external view returns (string); -``` - -_Contract version._ - -Get the version of the contract. - -#### Returns - -| Name | Type | Description | -| ---- | :------: | -------------------------------- | -| `0` | `string` | The version of the the contract. | - -
- ## Internal Methods Any method labeled as `internal` serves as utility function within the contract. They can be used when writing solidity contracts that inherit from this contract. These methods can be extended or modified by overriding their internal behavior to suit specific needs. @@ -1166,7 +1139,7 @@ If `to` is is an EOA or a contract that does not support the LSP1 interface, the | Name | Type | Description | | ---------- | :-------: | --------------------------------------------------------------------------------------------------- | -| `to` | `address` | The address to call the \{universalReceiver\} function on. | +| `to` | `address` | The address to call the [`universalReceiver`](#universalreceiver) function on. | | `force` | `bool` | A boolean that describe if transfer to a `to` address that does not support LSP1 is allowed or not. | | `lsp1Data` | `bytes` | The data to be sent to the `to` address in the `universalReceiver(...)` call. | diff --git a/docs/contracts/contracts/LSP7DigitalAsset/presets/LSP7Mintable.md b/docs/contracts/contracts/LSP7DigitalAsset/presets/LSP7Mintable.md index 1d35abdbf7..4998d6f025 100644 --- a/docs/contracts/contracts/LSP7DigitalAsset/presets/LSP7Mintable.md +++ b/docs/contracts/contracts/LSP7DigitalAsset/presets/LSP7Mintable.md @@ -14,7 +14,7 @@ ::: -> LSP7DigitalAsset deployable preset contract with a public \{mint\} function callable only by the contract \{owner}. +> LSP7DigitalAsset deployable preset contract with a public [`mint`](#mint) function callable only by the contract [`owner`](#owner). ## Public Methods @@ -119,7 +119,7 @@ Reverts whenever someone tries to send native tokens to a LSP7 contract. :::danger -To avoid front-running and Allowance Double-Spend Exploit when increasing or decreasing the authorized amount of an operator, it is advised to: 1. either call \{revokeOperator\} first, and then re-call \{authorizeOperator\} with the new amount. 2. or use the non-standard functions \{increaseAllowance\} or \{decreaseAllowance}. For more information, see: https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/ +To avoid front-running and Allowance Double-Spend Exploit when increasing or decreasing the authorized amount of an operator, it is advised to: 1. either call [`revokeOperator`](#revokeoperator) first, and then re-call [`authorizeOperator`](#authorizeoperator) with the new amount. 2. or use the non-standard functions [`increaseAllowance`](#increaseallowance) or [`decreaseAllowance`](#decreaseallowance). For more information, see: https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/ ::: @@ -758,33 +758,6 @@ Transfers ownership of the contract to a new account (`newOwner`). Can only be c
-### version - -:::note References - -- Specification details: [**LSP-7-DigitalAsset**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-7-DigitalAsset.md#version) -- Solidity implementation: [`LSP7Mintable.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP7DigitalAsset/presets/LSP7Mintable.sol) -- Function signature: `version()` -- Function selector: `0x54fd4d50` - -::: - -```solidity -function version() external view returns (string); -``` - -_Contract version._ - -Get the version of the contract. - -#### Returns - -| Name | Type | Description | -| ---- | :------: | -------------------------------- | -| `0` | `string` | The version of the the contract. | - -
- ## Internal Methods Any method labeled as `internal` serves as utility function within the contract. They can be used when writing solidity contracts that inherit from this contract. These methods can be extended or modified by overriding their internal behavior to suit specific needs. @@ -883,9 +856,9 @@ If the amount is zero then the operator is being revoked, otherwise the operator Any logic in the: -- \{\_beforeTokenTransfer\} function will run before updating the balances. +- [`_beforeTokenTransfer`](#_beforetokentransfer) function will run before updating the balances. -- \{\_afterTokenTransfer\} function will run after updating the balances, **but before notifying the recipient via LSP1**. +- [`_afterTokenTransfer`](#_aftertokentransfer) function will run after updating the balances, **but before notifying the recipient via LSP1**. ::: @@ -910,12 +883,12 @@ Mints `amount` of tokens and transfers it to `to`. #### Parameters -| Name | Type | Description | -| -------- | :-------: | ------------------------------------------------------------------------------------------------------------------------- | -| `to` | `address` | The address to mint tokens for. | -| `amount` | `uint256` | The amount of tokens to mint. | -| `force` | `bool` | A boolean that describe if transfer to a `to` address that does not support LSP1 is allowed or not. | -| `data` | `bytes` | Additional data the caller wants included in the emitted \{Transfer\} event, and sent in the LSP1 hook to the `to` address. | +| Name | Type | Description | +| -------- | :-------: | -------------------------------------------------------------------------------------------------------------------------------------- | +| `to` | `address` | The address to mint tokens for. | +| `amount` | `uint256` | The amount of tokens to mint. | +| `force` | `bool` | A boolean that describe if transfer to a `to` address that does not support LSP1 is allowed or not. | +| `data` | `bytes` | Additional data the caller wants included in the emitted [`Transfer`](#transfer) event, and sent in the LSP1 hook to the `to` address. |
@@ -925,9 +898,9 @@ Mints `amount` of tokens and transfers it to `to`. Any logic in the: -- \{\_beforeTokenTransfer\} function will run before updating the balances. +- [`_beforeTokenTransfer`](#_beforetokentransfer) function will run before updating the balances. -- \{\_afterTokenTransfer\} function will run after updating the balances, **but before notifying the sender via LSP1**. +- [`_afterTokenTransfer`](#_aftertokentransfer) function will run after updating the balances, **but before notifying the sender via LSP1**. ::: @@ -992,9 +965,9 @@ Spend `amountToSpend` from the `operator`'s authorized on behalf of the `tokenOw Any logic in the: -- \{\_beforeTokenTransfer\} function will run before updating the balances. +- [`_beforeTokenTransfer`](#_beforetokentransfer) function will run before updating the balances. -- \{\_afterTokenTransfer\} function will run after updating the balances, **but before notifying the sender/recipient via LSP1**. +- [`_afterTokenTransfer`](#_aftertokentransfer) function will run after updating the balances, **but before notifying the sender/recipient via LSP1**. ::: @@ -1106,7 +1079,7 @@ If `to` is is an EOA or a contract that does not support the LSP1 interface, the | Name | Type | Description | | ---------- | :-------: | --------------------------------------------------------------------------------------------------- | -| `to` | `address` | The address to call the \{universalReceiver\} function on. | +| `to` | `address` | The address to call the [`universalReceiver`](#universalreceiver) function on. | | `force` | `bool` | A boolean that describe if transfer to a `to` address that does not support LSP1 is allowed or not. | | `lsp1Data` | `bytes` | The data to be sent to the `to` address in the `universalReceiver(...)` call. | diff --git a/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/LSP8IdentifiableDigitalAsset.md b/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/LSP8IdentifiableDigitalAsset.md index ebbb046928..9a162cb7a8 100644 --- a/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/LSP8IdentifiableDigitalAsset.md +++ b/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/LSP8IdentifiableDigitalAsset.md @@ -663,33 +663,6 @@ Transfers ownership of the contract to a new account (`newOwner`). Can only be c
-### version - -:::note References - -- Specification details: [**LSP-8-IdentifiableDigitalAsset**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-8-IdentifiableDigitalAsset.md#version) -- Solidity implementation: [`LSP8IdentifiableDigitalAsset.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP8IdentifiableDigitalAsset/LSP8IdentifiableDigitalAsset.sol) -- Function signature: `version()` -- Function selector: `0x54fd4d50` - -::: - -```solidity -function version() external view returns (string); -``` - -_Contract version._ - -Get the version of the contract. - -#### Returns - -| Name | Type | Description | -| ---- | :------: | -------------------------------- | -| `0` | `string` | The version of the the contract. | - -
- ## Internal Methods Any method labeled as `internal` serves as utility function within the contract. They can be used when writing solidity contracts that inherit from this contract. These methods can be extended or modified by overriding their internal behavior to suit specific needs. @@ -837,9 +810,9 @@ When `tokenId` does not exist then revert with an error. Any logic in the: -- \{\_beforeTokenTransfer\} function will run before updating the balances and ownership of `tokenId`s. +- [`_beforeTokenTransfer`](#_beforetokentransfer) function will run before updating the balances and ownership of `tokenId`s. -- \{\_afterTokenTransfer\} function will run after updating the balances and ownership of `tokenId`s, **but before notifying the recipient via LSP1**. +- [`_afterTokenTransfer`](#_aftertokentransfer) function will run after updating the balances and ownership of `tokenId`s, **but before notifying the recipient via LSP1**. ::: @@ -879,9 +852,9 @@ Create `tokenId` by minting it and transfers it to `to`. Any logic in the: -- \{\_beforeTokenTransfer\} function will run before updating the balances and ownership of `tokenId`s. +- [`_beforeTokenTransfer`](#_beforetokentransfer) function will run before updating the balances and ownership of `tokenId`s. -- \{\_afterTokenTransfer\} function will run after updating the balances and ownership of `tokenId`s, **but before notifying the sender via LSP1**. +- [`_afterTokenTransfer`](#_aftertokentransfer) function will run after updating the balances and ownership of `tokenId`s, **but before notifying the sender via LSP1**. ::: @@ -924,9 +897,9 @@ all the parameters in the calldata packed encoded. Any logic in the: -- \{\_beforeTokenTransfer\} function will run before updating the balances and ownership of `tokenId`s. +- [`_beforeTokenTransfer`](#_beforetokentransfer) function will run before updating the balances and ownership of `tokenId`s. -- \{\_afterTokenTransfer\} function will run after updating the balances and ownership of `tokenId`s, **but before notifying the sender/recipient via LSP1**. +- [`_afterTokenTransfer`](#_aftertokentransfer) function will run after updating the balances and ownership of `tokenId`s, **but before notifying the sender/recipient via LSP1**. ::: @@ -1196,13 +1169,13 @@ Emitted when `tokenOwner` disables `operator` to transfer or burn `tokenId` on i #### Parameters -| Name | Type | Description | -| -------------------------- | :-------: | --------------------------------------------------------------- | -| `operator` **`indexed`** | `address` | The address revoked from the operator array (getOperatorsOf). | -| `tokenOwner` **`indexed`** | `address` | The owner of the `tokenId`. | -| `tokenId` **`indexed`** | `bytes32` | The tokenId `operator` is revoked from operating on. | -| `notified` | `bool` | Bool indicating whether the operator has been notified or not | -| `operatorNotificationData` | `bytes` | The data to notify the operator about via LSP1. | +| Name | Type | Description | +| -------------------------- | :-------: | ---------------------------------------------------------------------------------- | +| `operator` **`indexed`** | `address` | The address revoked from the operator array ([`getOperatorsOf`](#getoperatorsof)). | +| `tokenOwner` **`indexed`** | `address` | The owner of the `tokenId`. | +| `tokenId` **`indexed`** | `bytes32` | The tokenId `operator` is revoked from operating on. | +| `notified` | `bool` | Bool indicating whether the operator has been notified or not | +| `operatorNotificationData` | `bytes` | The data to notify the operator about via LSP1. |
diff --git a/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8Burnable.md b/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8Burnable.md index e074c74513..444e18139c 100644 --- a/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8Burnable.md +++ b/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8Burnable.md @@ -689,33 +689,6 @@ Transfers ownership of the contract to a new account (`newOwner`). Can only be c
-### version - -:::note References - -- Specification details: [**LSP-8-IdentifiableDigitalAsset**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-8-IdentifiableDigitalAsset.md#version) -- Solidity implementation: [`LSP8Burnable.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8Burnable.sol) -- Function signature: `version()` -- Function selector: `0x54fd4d50` - -::: - -```solidity -function version() external view returns (string); -``` - -_Contract version._ - -Get the version of the contract. - -#### Returns - -| Name | Type | Description | -| ---- | :------: | -------------------------------- | -| `0` | `string` | The version of the the contract. | - -
- ## Internal Methods Any method labeled as `internal` serves as utility function within the contract. They can be used when writing solidity contracts that inherit from this contract. These methods can be extended or modified by overriding their internal behavior to suit specific needs. @@ -863,9 +836,9 @@ When `tokenId` does not exist then revert with an error. Any logic in the: -- \{\_beforeTokenTransfer\} function will run before updating the balances and ownership of `tokenId`s. +- [`_beforeTokenTransfer`](#_beforetokentransfer) function will run before updating the balances and ownership of `tokenId`s. -- \{\_afterTokenTransfer\} function will run after updating the balances and ownership of `tokenId`s, **but before notifying the recipient via LSP1**. +- [`_afterTokenTransfer`](#_aftertokentransfer) function will run after updating the balances and ownership of `tokenId`s, **but before notifying the recipient via LSP1**. ::: @@ -905,9 +878,9 @@ Create `tokenId` by minting it and transfers it to `to`. Any logic in the: -- \{\_beforeTokenTransfer\} function will run before updating the balances and ownership of `tokenId`s. +- [`_beforeTokenTransfer`](#_beforetokentransfer) function will run before updating the balances and ownership of `tokenId`s. -- \{\_afterTokenTransfer\} function will run after updating the balances and ownership of `tokenId`s, **but before notifying the sender via LSP1**. +- [`_afterTokenTransfer`](#_aftertokentransfer) function will run after updating the balances and ownership of `tokenId`s, **but before notifying the sender via LSP1**. ::: @@ -950,9 +923,9 @@ all the parameters in the calldata packed encoded. Any logic in the: -- \{\_beforeTokenTransfer\} function will run before updating the balances and ownership of `tokenId`s. +- [`_beforeTokenTransfer`](#_beforetokentransfer) function will run before updating the balances and ownership of `tokenId`s. -- \{\_afterTokenTransfer\} function will run after updating the balances and ownership of `tokenId`s, **but before notifying the sender/recipient via LSP1**. +- [`_afterTokenTransfer`](#_aftertokentransfer) function will run after updating the balances and ownership of `tokenId`s, **but before notifying the sender/recipient via LSP1**. ::: @@ -1222,13 +1195,13 @@ Emitted when `tokenOwner` disables `operator` to transfer or burn `tokenId` on i #### Parameters -| Name | Type | Description | -| -------------------------- | :-------: | --------------------------------------------------------------- | -| `operator` **`indexed`** | `address` | The address revoked from the operator array (getOperatorsOf). | -| `tokenOwner` **`indexed`** | `address` | The owner of the `tokenId`. | -| `tokenId` **`indexed`** | `bytes32` | The tokenId `operator` is revoked from operating on. | -| `notified` | `bool` | Bool indicating whether the operator has been notified or not | -| `operatorNotificationData` | `bytes` | The data to notify the operator about via LSP1. | +| Name | Type | Description | +| -------------------------- | :-------: | ---------------------------------------------------------------------------------- | +| `operator` **`indexed`** | `address` | The address revoked from the operator array ([`getOperatorsOf`](#getoperatorsof)). | +| `tokenOwner` **`indexed`** | `address` | The owner of the `tokenId`. | +| `tokenId` **`indexed`** | `bytes32` | The tokenId `operator` is revoked from operating on. | +| `notified` | `bool` | Bool indicating whether the operator has been notified or not | +| `operatorNotificationData` | `bytes` | The data to notify the operator about via LSP1. |
diff --git a/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8CappedSupply.md b/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8CappedSupply.md index d1c851f7ed..8ff5da68ed 100644 --- a/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8CappedSupply.md +++ b/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8CappedSupply.md @@ -688,33 +688,6 @@ Transfers ownership of the contract to a new account (`newOwner`). Can only be c
-### version - -:::note References - -- Specification details: [**LSP-8-IdentifiableDigitalAsset**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-8-IdentifiableDigitalAsset.md#version) -- Solidity implementation: [`LSP8CappedSupply.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8CappedSupply.sol) -- Function signature: `version()` -- Function selector: `0x54fd4d50` - -::: - -```solidity -function version() external view returns (string); -``` - -_Contract version._ - -Get the version of the contract. - -#### Returns - -| Name | Type | Description | -| ---- | :------: | -------------------------------- | -| `0` | `string` | The version of the the contract. | - -
- ## Internal Methods Any method labeled as `internal` serves as utility function within the contract. They can be used when writing solidity contracts that inherit from this contract. These methods can be extended or modified by overriding their internal behavior to suit specific needs. @@ -879,9 +852,9 @@ after a new `tokenId` has of tokens have been minted. Any logic in the: -- \{\_beforeTokenTransfer\} function will run before updating the balances and ownership of `tokenId`s. +- [`_beforeTokenTransfer`](#_beforetokentransfer) function will run before updating the balances and ownership of `tokenId`s. -- \{\_afterTokenTransfer\} function will run after updating the balances and ownership of `tokenId`s, **but before notifying the sender via LSP1**. +- [`_afterTokenTransfer`](#_aftertokentransfer) function will run after updating the balances and ownership of `tokenId`s, **but before notifying the sender via LSP1**. ::: @@ -924,9 +897,9 @@ all the parameters in the calldata packed encoded. Any logic in the: -- \{\_beforeTokenTransfer\} function will run before updating the balances and ownership of `tokenId`s. +- [`_beforeTokenTransfer`](#_beforetokentransfer) function will run before updating the balances and ownership of `tokenId`s. -- \{\_afterTokenTransfer\} function will run after updating the balances and ownership of `tokenId`s, **but before notifying the sender/recipient via LSP1**. +- [`_afterTokenTransfer`](#_aftertokentransfer) function will run after updating the balances and ownership of `tokenId`s, **but before notifying the sender/recipient via LSP1**. ::: @@ -1196,13 +1169,13 @@ Emitted when `tokenOwner` disables `operator` to transfer or burn `tokenId` on i #### Parameters -| Name | Type | Description | -| -------------------------- | :-------: | --------------------------------------------------------------- | -| `operator` **`indexed`** | `address` | The address revoked from the operator array (getOperatorsOf). | -| `tokenOwner` **`indexed`** | `address` | The owner of the `tokenId`. | -| `tokenId` **`indexed`** | `bytes32` | The tokenId `operator` is revoked from operating on. | -| `notified` | `bool` | Bool indicating whether the operator has been notified or not | -| `operatorNotificationData` | `bytes` | The data to notify the operator about via LSP1. | +| Name | Type | Description | +| -------------------------- | :-------: | ---------------------------------------------------------------------------------- | +| `operator` **`indexed`** | `address` | The address revoked from the operator array ([`getOperatorsOf`](#getoperatorsof)). | +| `tokenOwner` **`indexed`** | `address` | The owner of the `tokenId`. | +| `tokenId` **`indexed`** | `bytes32` | The tokenId `operator` is revoked from operating on. | +| `notified` | `bool` | Bool indicating whether the operator has been notified or not | +| `operatorNotificationData` | `bytes` | The data to notify the operator about via LSP1. |
diff --git a/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8CompatibleERC721.md b/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8CompatibleERC721.md index fde89a41a6..dda3eb65b2 100644 --- a/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8CompatibleERC721.md +++ b/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8CompatibleERC721.md @@ -1039,33 +1039,6 @@ Transfers ownership of the contract to a new account (`newOwner`). Can only be c
-### version - -:::note References - -- Specification details: [**LSP-8-IdentifiableDigitalAsset**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-8-IdentifiableDigitalAsset.md#version) -- Solidity implementation: [`LSP8CompatibleERC721.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8CompatibleERC721.sol) -- Function signature: `version()` -- Function selector: `0x54fd4d50` - -::: - -```solidity -function version() external view returns (string); -``` - -_Contract version._ - -Get the version of the contract. - -#### Returns - -| Name | Type | Description | -| ---- | :------: | -------------------------------- | -| `0` | `string` | The version of the the contract. | - -
- ## Internal Methods Any method labeled as `internal` serves as utility function within the contract. They can be used when writing solidity contracts that inherit from this contract. These methods can be extended or modified by overriding their internal behavior to suit specific needs. @@ -1560,13 +1533,13 @@ Emitted when `tokenOwner` disables `operator` to transfer or burn `tokenId` on i #### Parameters -| Name | Type | Description | -| -------------------------- | :-------: | --------------------------------------------------------------- | -| `operator` **`indexed`** | `address` | The address revoked from the operator array (getOperatorsOf). | -| `tokenOwner` **`indexed`** | `address` | The owner of the `tokenId`. | -| `tokenId` **`indexed`** | `bytes32` | The tokenId `operator` is revoked from operating on. | -| `notified` | `bool` | Bool indicating whether the operator has been notified or not | -| `operatorNotificationData` | `bytes` | The data to notify the operator about via LSP1. | +| Name | Type | Description | +| -------------------------- | :-------: | ---------------------------------------------------------------------------------- | +| `operator` **`indexed`** | `address` | The address revoked from the operator array ([`getOperatorsOf`](#getoperatorsof)). | +| `tokenOwner` **`indexed`** | `address` | The owner of the `tokenId`. | +| `tokenId` **`indexed`** | `bytes32` | The tokenId `operator` is revoked from operating on. | +| `notified` | `bool` | Bool indicating whether the operator has been notified or not | +| `operatorNotificationData` | `bytes` | The data to notify the operator about via LSP1. |
diff --git a/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8Enumerable.md b/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8Enumerable.md index f701947f09..24136c3e94 100644 --- a/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8Enumerable.md +++ b/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8Enumerable.md @@ -694,33 +694,6 @@ Transfers ownership of the contract to a new account (`newOwner`). Can only be c
-### version - -:::note References - -- Specification details: [**LSP-8-IdentifiableDigitalAsset**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-8-IdentifiableDigitalAsset.md#version) -- Solidity implementation: [`LSP8Enumerable.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8Enumerable.sol) -- Function signature: `version()` -- Function selector: `0x54fd4d50` - -::: - -```solidity -function version() external view returns (string); -``` - -_Contract version._ - -Get the version of the contract. - -#### Returns - -| Name | Type | Description | -| ---- | :------: | -------------------------------- | -| `0` | `string` | The version of the the contract. | - -
- ## Internal Methods Any method labeled as `internal` serves as utility function within the contract. They can be used when writing solidity contracts that inherit from this contract. These methods can be extended or modified by overriding their internal behavior to suit specific needs. @@ -868,9 +841,9 @@ When `tokenId` does not exist then revert with an error. Any logic in the: -- \{\_beforeTokenTransfer\} function will run before updating the balances and ownership of `tokenId`s. +- [`_beforeTokenTransfer`](#_beforetokentransfer) function will run before updating the balances and ownership of `tokenId`s. -- \{\_afterTokenTransfer\} function will run after updating the balances and ownership of `tokenId`s, **but before notifying the recipient via LSP1**. +- [`_afterTokenTransfer`](#_aftertokentransfer) function will run after updating the balances and ownership of `tokenId`s, **but before notifying the recipient via LSP1**. ::: @@ -910,9 +883,9 @@ Create `tokenId` by minting it and transfers it to `to`. Any logic in the: -- \{\_beforeTokenTransfer\} function will run before updating the balances and ownership of `tokenId`s. +- [`_beforeTokenTransfer`](#_beforetokentransfer) function will run before updating the balances and ownership of `tokenId`s. -- \{\_afterTokenTransfer\} function will run after updating the balances and ownership of `tokenId`s, **but before notifying the sender via LSP1**. +- [`_afterTokenTransfer`](#_aftertokentransfer) function will run after updating the balances and ownership of `tokenId`s, **but before notifying the sender via LSP1**. ::: @@ -955,9 +928,9 @@ all the parameters in the calldata packed encoded. Any logic in the: -- \{\_beforeTokenTransfer\} function will run before updating the balances and ownership of `tokenId`s. +- [`_beforeTokenTransfer`](#_beforetokentransfer) function will run before updating the balances and ownership of `tokenId`s. -- \{\_afterTokenTransfer\} function will run after updating the balances and ownership of `tokenId`s, **but before notifying the sender/recipient via LSP1**. +- [`_afterTokenTransfer`](#_aftertokentransfer) function will run after updating the balances and ownership of `tokenId`s, **but before notifying the sender/recipient via LSP1**. ::: @@ -1224,13 +1197,13 @@ Emitted when `tokenOwner` disables `operator` to transfer or burn `tokenId` on i #### Parameters -| Name | Type | Description | -| -------------------------- | :-------: | --------------------------------------------------------------- | -| `operator` **`indexed`** | `address` | The address revoked from the operator array (getOperatorsOf). | -| `tokenOwner` **`indexed`** | `address` | The owner of the `tokenId`. | -| `tokenId` **`indexed`** | `bytes32` | The tokenId `operator` is revoked from operating on. | -| `notified` | `bool` | Bool indicating whether the operator has been notified or not | -| `operatorNotificationData` | `bytes` | The data to notify the operator about via LSP1. | +| Name | Type | Description | +| -------------------------- | :-------: | ---------------------------------------------------------------------------------- | +| `operator` **`indexed`** | `address` | The address revoked from the operator array ([`getOperatorsOf`](#getoperatorsof)). | +| `tokenOwner` **`indexed`** | `address` | The owner of the `tokenId`. | +| `tokenId` **`indexed`** | `bytes32` | The tokenId `operator` is revoked from operating on. | +| `notified` | `bool` | Bool indicating whether the operator has been notified or not | +| `operatorNotificationData` | `bytes` | The data to notify the operator about via LSP1. |
diff --git a/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/presets/LSP8CompatibleERC721Mintable.md b/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/presets/LSP8CompatibleERC721Mintable.md index 100adf9418..27faa9f0de 100644 --- a/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/presets/LSP8CompatibleERC721Mintable.md +++ b/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/presets/LSP8CompatibleERC721Mintable.md @@ -14,7 +14,7 @@ ::: -> LSP8CompatibleERC721Mintable deployable preset contract with a public \{mint\} function callable only by the contract \{owner}. +> LSP8CompatibleERC721Mintable deployable preset contract with a public [`mint`](#mint) function callable only by the contract [`owner`](#owner). ## Public Methods @@ -1081,33 +1081,6 @@ Transfers ownership of the contract to a new account (`newOwner`). Can only be c
-### version - -:::note References - -- Specification details: [**LSP-8-IdentifiableDigitalAsset**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-8-IdentifiableDigitalAsset.md#version) -- Solidity implementation: [`LSP8CompatibleERC721Mintable.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP8IdentifiableDigitalAsset/presets/LSP8CompatibleERC721Mintable.sol) -- Function signature: `version()` -- Function selector: `0x54fd4d50` - -::: - -```solidity -function version() external view returns (string); -``` - -_Contract version._ - -Get the version of the contract. - -#### Returns - -| Name | Type | Description | -| ---- | :------: | -------------------------------- | -| `0` | `string` | The version of the the contract. | - -
- ## Internal Methods Any method labeled as `internal` serves as utility function within the contract. They can be used when writing solidity contracts that inherit from this contract. These methods can be extended or modified by overriding their internal behavior to suit specific needs. @@ -1602,13 +1575,13 @@ Emitted when `tokenOwner` disables `operator` to transfer or burn `tokenId` on i #### Parameters -| Name | Type | Description | -| -------------------------- | :-------: | --------------------------------------------------------------- | -| `operator` **`indexed`** | `address` | The address revoked from the operator array (getOperatorsOf). | -| `tokenOwner` **`indexed`** | `address` | The owner of the `tokenId`. | -| `tokenId` **`indexed`** | `bytes32` | The tokenId `operator` is revoked from operating on. | -| `notified` | `bool` | Bool indicating whether the operator has been notified or not | -| `operatorNotificationData` | `bytes` | The data to notify the operator about via LSP1. | +| Name | Type | Description | +| -------------------------- | :-------: | ---------------------------------------------------------------------------------- | +| `operator` **`indexed`** | `address` | The address revoked from the operator array ([`getOperatorsOf`](#getoperatorsof)). | +| `tokenOwner` **`indexed`** | `address` | The owner of the `tokenId`. | +| `tokenId` **`indexed`** | `bytes32` | The tokenId `operator` is revoked from operating on. | +| `notified` | `bool` | Bool indicating whether the operator has been notified or not | +| `operatorNotificationData` | `bytes` | The data to notify the operator about via LSP1. |
diff --git a/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/presets/LSP8Mintable.md b/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/presets/LSP8Mintable.md index 9ab0f85453..12cc1672a9 100644 --- a/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/presets/LSP8Mintable.md +++ b/docs/contracts/contracts/LSP8IdentifiableDigitalAsset/presets/LSP8Mintable.md @@ -14,7 +14,7 @@ ::: -> LSP8IdentifiableDigitalAsset deployable preset contract with a public \{mint\} function callable only by the contract \{owner}. +> LSP8IdentifiableDigitalAsset deployable preset contract with a public [`mint`](#mint) function callable only by the contract [`owner`](#owner). ## Public Methods @@ -727,33 +727,6 @@ Transfers ownership of the contract to a new account (`newOwner`). Can only be c
-### version - -:::note References - -- Specification details: [**LSP-8-IdentifiableDigitalAsset**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-8-IdentifiableDigitalAsset.md#version) -- Solidity implementation: [`LSP8Mintable.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP8IdentifiableDigitalAsset/presets/LSP8Mintable.sol) -- Function signature: `version()` -- Function selector: `0x54fd4d50` - -::: - -```solidity -function version() external view returns (string); -``` - -_Contract version._ - -Get the version of the contract. - -#### Returns - -| Name | Type | Description | -| ---- | :------: | -------------------------------- | -| `0` | `string` | The version of the the contract. | - -
- ## Internal Methods Any method labeled as `internal` serves as utility function within the contract. They can be used when writing solidity contracts that inherit from this contract. These methods can be extended or modified by overriding their internal behavior to suit specific needs. @@ -901,9 +874,9 @@ When `tokenId` does not exist then revert with an error. Any logic in the: -- \{\_beforeTokenTransfer\} function will run before updating the balances and ownership of `tokenId`s. +- [`_beforeTokenTransfer`](#_beforetokentransfer) function will run before updating the balances and ownership of `tokenId`s. -- \{\_afterTokenTransfer\} function will run after updating the balances and ownership of `tokenId`s, **but before notifying the recipient via LSP1**. +- [`_afterTokenTransfer`](#_aftertokentransfer) function will run after updating the balances and ownership of `tokenId`s, **but before notifying the recipient via LSP1**. ::: @@ -943,9 +916,9 @@ Create `tokenId` by minting it and transfers it to `to`. Any logic in the: -- \{\_beforeTokenTransfer\} function will run before updating the balances and ownership of `tokenId`s. +- [`_beforeTokenTransfer`](#_beforetokentransfer) function will run before updating the balances and ownership of `tokenId`s. -- \{\_afterTokenTransfer\} function will run after updating the balances and ownership of `tokenId`s, **but before notifying the sender via LSP1**. +- [`_afterTokenTransfer`](#_aftertokentransfer) function will run after updating the balances and ownership of `tokenId`s, **but before notifying the sender via LSP1**. ::: @@ -988,9 +961,9 @@ all the parameters in the calldata packed encoded. Any logic in the: -- \{\_beforeTokenTransfer\} function will run before updating the balances and ownership of `tokenId`s. +- [`_beforeTokenTransfer`](#_beforetokentransfer) function will run before updating the balances and ownership of `tokenId`s. -- \{\_afterTokenTransfer\} function will run after updating the balances and ownership of `tokenId`s, **but before notifying the sender/recipient via LSP1**. +- [`_afterTokenTransfer`](#_aftertokentransfer) function will run after updating the balances and ownership of `tokenId`s, **but before notifying the sender/recipient via LSP1**. ::: @@ -1260,13 +1233,13 @@ Emitted when `tokenOwner` disables `operator` to transfer or burn `tokenId` on i #### Parameters -| Name | Type | Description | -| -------------------------- | :-------: | --------------------------------------------------------------- | -| `operator` **`indexed`** | `address` | The address revoked from the operator array (getOperatorsOf). | -| `tokenOwner` **`indexed`** | `address` | The owner of the `tokenId`. | -| `tokenId` **`indexed`** | `bytes32` | The tokenId `operator` is revoked from operating on. | -| `notified` | `bool` | Bool indicating whether the operator has been notified or not | -| `operatorNotificationData` | `bytes` | The data to notify the operator about via LSP1. | +| Name | Type | Description | +| -------------------------- | :-------: | ---------------------------------------------------------------------------------- | +| `operator` **`indexed`** | `address` | The address revoked from the operator array ([`getOperatorsOf`](#getoperatorsof)). | +| `tokenOwner` **`indexed`** | `address` | The owner of the `tokenId`. | +| `tokenId` **`indexed`** | `bytes32` | The tokenId `operator` is revoked from operating on. | +| `notified` | `bool` | Bool indicating whether the operator has been notified or not | +| `operatorNotificationData` | `bytes` | The data to notify the operator about via LSP1. |
diff --git a/docs/contracts/contracts/LSP9Vault/LSP9Vault.md b/docs/contracts/contracts/LSP9Vault/LSP9Vault.md index 45f9af3d04..9d5972f5c6 100644 --- a/docs/contracts/contracts/LSP9Vault/LSP9Vault.md +++ b/docs/contracts/contracts/LSP9Vault/LSP9Vault.md @@ -183,6 +183,31 @@ function RENOUNCE_OWNERSHIP_CONFIRMATION_PERIOD()
+### VERSION + +:::note References + +- Specification details: [**LSP-9-Vault**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-9-Vault.md#version) +- Solidity implementation: [`LSP9Vault.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP9Vault/LSP9Vault.sol) +- Function signature: `VERSION()` +- Function selector: `0xffa1ad74` + +::: + +```solidity +function VERSION() external view returns (string); +``` + +_Contract version._ + +#### Returns + +| Name | Type | Description | +| ---- | :------: | ----------- | +| `0` | `string` | - | + +
+ ### acceptOwnership :::note References @@ -231,7 +256,7 @@ Transfer ownership of the contract from the current [`owner()`](#owner) to the [ :::info -It's not possible to send value along the functions call due to the use of `delegatecall`. +It's not possible to send value along the functions call due to the use of `delegatecall`. ::: @@ -778,33 +803,6 @@ Achieves the goal of [LSP-1-UniversalReceiver] by allowing the account to be not
-### version - -:::note References - -- Specification details: [**LSP-9-Vault**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-9-Vault.md#version) -- Solidity implementation: [`LSP9Vault.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP9Vault/LSP9Vault.sol) -- Function signature: `version()` -- Function selector: `0x54fd4d50` - -::: - -```solidity -function version() external view returns (string); -``` - -_Contract version._ - -Get the version of the contract. - -#### Returns - -| Name | Type | Description | -| ---- | :------: | -------------------------------- | -| `0` | `string` | The version of the the contract. | - -
- ## Internal Methods Any method labeled as `internal` serves as utility function within the contract. They can be used when writing solidity contracts that inherit from this contract. These methods can be extended or modified by overriding their internal behavior to suit specific needs. @@ -836,7 +834,7 @@ This pattern is useful in inheritance. :::caution Warning -Providing operation type DELEGATECALL (4) as argument will result in custom error \{ERC725X_UnknownOperationType(4)} +Providing operation type DELEGATECALL (4) as argument will result in custom error [`ERC725X_UnknownOperationType(4)`](#erc725x_unknownoperationtype) ::: @@ -1180,7 +1178,7 @@ If there is an extension for the function selector being called, it calls the ex function _validateAndIdentifyCaller() internal view returns (bool isURD); ``` -Modifier restricting the call to the owner of the contract and the UniversalReceiverDelegate +Internal method restricting the call to the owner of the contract and the UniversalReceiverDelegate
@@ -1393,11 +1391,11 @@ Emitted when the [`universalReceiver`](#universalreceiver) function was called w | Name | Type | Description | | ---------------------- | :-------: | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `from` **`indexed`** | `address` | The address of the EOA or smart contract that called the \{universalReceiver(...)\} function. | -| `value` **`indexed`** | `uint256` | The amount sent to the \{universalReceiver(...)\} function. | +| `from` **`indexed`** | `address` | The address of the EOA or smart contract that called the [`universalReceiver(...)`](#universalreceiver) function. | +| `value` **`indexed`** | `uint256` | The amount sent to the [`universalReceiver(...)`](#universalreceiver) function. | | `typeId` **`indexed`** | `bytes32` | A `bytes32` unique identifier (= _"hook"_)that describe the type of notification, information or transaction received by the contract. Can be related to a specific standard or a hook. | -| `receivedData` | `bytes` | Any arbitrary data that was sent to the \{universalReceiver(...)\} function. | -| `returnedValue` | `bytes` | The value returned by the \{universalReceiver(...)\} function. | +| `receivedData` | `bytes` | Any arbitrary data that was sent to the [`universalReceiver(...)`](#universalreceiver) function. | +| `returnedValue` | `bytes` | The value returned by the [`universalReceiver(...)`](#universalreceiver) function. |
diff --git a/docs/contracts/contracts/UniversalProfile.md b/docs/contracts/contracts/UniversalProfile.md index 2413319629..5cb62121b7 100644 --- a/docs/contracts/contracts/UniversalProfile.md +++ b/docs/contracts/contracts/UniversalProfile.md @@ -38,7 +38,11 @@ constructor(address initialOwner); _Deploying a UniversalProfile contract with owner set to address `initialOwner`._ -Set `initialOwner` as the contract owner and the `SupportedStandards:LSP3UniversalProfile` data key in the ERC725Y data key/value store. The `constructor` also allows funding the contract on deployment. +Set `initialOwner` as the contract owner and the `SupportedStandards:LSP3Profile` data key in the ERC725Y data key/value store. + +- The `constructor` is payable and allows funding the contract on deployment. + +- The `initialOwner` will then be allowed to call protected functions marked with the `onlyOwner` modifier.
@@ -140,6 +144,31 @@ function RENOUNCE_OWNERSHIP_CONFIRMATION_PERIOD()
+### VERSION + +:::note References + +- Specification details: [**UniversalProfile**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-3-UniversalProfile-Metadata.md#version) +- Solidity implementation: [`UniversalProfile.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/UniversalProfile.sol) +- Function signature: `VERSION()` +- Function selector: `0xffa1ad74` + +::: + +```solidity +function VERSION() external view returns (string); +``` + +_Contract version._ + +#### Returns + +| Name | Type | Description | +| ---- | :------: | ----------- | +| `0` | `string` | - | + +
+ ### acceptOwnership :::note References @@ -188,7 +217,7 @@ Transfer ownership of the contract from the current [`owner()`](#owner) to the [ :::info -It's not possible to send value along the functions call due to the use of `delegatecall`. +It's not possible to send value along the functions call due to the use of `delegatecall`. ::: @@ -430,6 +459,12 @@ Get in the ERC725Y storage the bytes data stored at multiple data keys `dataKeys ::: +:::caution Warning + +This function does not enforce by default the inclusion of the address of this contract in the signature digest. It is recommended that protocols or applications using this contract include the targeted address (= this contract) in the data to sign. To ensure that a signature is valid for a specific LSP0ERC725Account and prevent signatures from the same EOA to be replayed across different LSP0ERC725Accounts. + +::: + ```solidity function isValidSignature( bytes32 dataHash, @@ -755,7 +790,7 @@ Achieves the goal of [LSP-1-UniversalReceiver] by allowing the account to be not - If there is an address stored under the data key, check if this address supports the LSP1 interfaceId. -- If yes, call this address with the typeId and data (params), along with additional calldata consisting of 20 bytes of `msg.sender` and 32 bytes of `msg.value`. If not, continue the execution of the function. +- If yes, call this address with the typeId and data (params), along with additional calldata consisting of 20 bytes of `msg.sender` and 32 bytes of `msg.value`. If not, continue the execution of the function. This function delegates internally the handling of native tokens to the [`universalReceiver`](#universalreceiver) function itself passing `_TYPEID_LSP0_VALUE_RECEIVED` as typeId and the calldata as received data.
@@ -781,33 +816,6 @@ Achieves the goal of [LSP-1-UniversalReceiver] by allowing the account to be not
-### version - -:::note References - -- Specification details: [**UniversalProfile**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-3-UniversalProfile-Metadata.md#version) -- Solidity implementation: [`UniversalProfile.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/UniversalProfile.sol) -- Function signature: `version()` -- Function selector: `0x54fd4d50` - -::: - -```solidity -function version() external view returns (string); -``` - -_Contract version._ - -Get the version of the contract. - -#### Returns - -| Name | Type | Description | -| ---- | :------: | -------------------------------- | -| `0` | `string` | The version of the the contract. | - -
- ## Internal Methods Any method labeled as `internal` serves as utility function within the contract. They can be used when writing solidity contracts that inherit from this contract. These methods can be extended or modified by overriding their internal behavior to suit specific needs. @@ -1123,26 +1131,21 @@ function _getExtensionAndForwardValue( ) internal view returns (address, bool); ``` -Returns the extension address stored under the following data key: +Returns the extension address and the boolean indicating whether to forward the value received to the extension, stored under the following data key: - [`_LSP17_EXTENSION_PREFIX`](#_lsp17_extension_prefix) + `` (Check [LSP2-ERC725YJSONSchema] for encoding the data key). - If no extension is stored, returns the address(0). +- If the stored value is 20 bytes, return false for the boolean +
### \_fallbackLSP17Extendable :::tip Hint -This function does not forward to the extension contract the `msg.value` received by the contract that inherits `LSP17Extendable`. -If you would like to forward the `msg.value` to the extension contract, you can override the code of this internal function as follow: - -```solidity -(bool success, bytes memory result) = extension.call{value: msg.value}( - abi.encodePacked(callData, msg.sender, msg.value) -); -``` +If you would like to forward the `msg.value` to the extension contract, you should store an additional `0x01` byte after the address of the extension under the corresponding LSP17 data key. ::: @@ -1407,11 +1410,11 @@ Emitted when the [`universalReceiver`](#universalreceiver) function was called w | Name | Type | Description | | ---------------------- | :-------: | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `from` **`indexed`** | `address` | The address of the EOA or smart contract that called the \{universalReceiver(...)\} function. | -| `value` **`indexed`** | `uint256` | The amount sent to the \{universalReceiver(...)\} function. | +| `from` **`indexed`** | `address` | The address of the EOA or smart contract that called the [`universalReceiver(...)`](#universalreceiver) function. | +| `value` **`indexed`** | `uint256` | The amount sent to the [`universalReceiver(...)`](#universalreceiver) function. | | `typeId` **`indexed`** | `bytes32` | A `bytes32` unique identifier (= _"hook"_)that describe the type of notification, information or transaction received by the contract. Can be related to a specific standard or a hook. | -| `receivedData` | `bytes` | Any arbitrary data that was sent to the \{universalReceiver(...)\} function. | -| `returnedValue` | `bytes` | The value returned by the \{universalReceiver(...)\} function. | +| `receivedData` | `bytes` | Any arbitrary data that was sent to the [`universalReceiver(...)`](#universalreceiver) function. | +| `returnedValue` | `bytes` | The value returned by the [`universalReceiver(...)`](#universalreceiver) function. |
diff --git a/docs/contracts/libraries/LSP1Utils.md b/docs/contracts/libraries/LSP1Utils.md index c116ad6c8a..a897fa7d04 100644 --- a/docs/contracts/libraries/LSP1Utils.md +++ b/docs/contracts/libraries/LSP1Utils.md @@ -24,10 +24,10 @@ Any method labeled as `internal` serves as utility function within the contract. Internal functions cannot be called externally, whether from other smart contracts, dApp interfaces, or backend services. Their restricted accessibility ensures that they remain exclusively available within the context of the current contract, promoting controlled and encapsulated usage of these internal utilities. -### tryNotifyUniversalReceiver +### notifyUniversalReceiver ```solidity -function tryNotifyUniversalReceiver( +function notifyUniversalReceiver( address lsp1Implementation, bytes32 typeId, bytes data diff --git a/docs/contracts/libraries/LSP6Utils.md b/docs/contracts/libraries/LSP6Utils.md index 5da90cae49..61ad46ad3b 100644 --- a/docs/contracts/libraries/LSP6Utils.md +++ b/docs/contracts/libraries/LSP6Utils.md @@ -29,7 +29,7 @@ Internal functions cannot be called externally, whether from other smart contrac :::info If the raw value fetched from the ERC725Y storage of `target` is not 32 bytes long, this is considered -like _"no permissions are set"_ and will return 32 x `0x00` bytes as `bytes32(0)`. +like _"no permissions are set"_ and will return 32 x `0x00` bytes as `bytes32(0)`. ::: From 8ba6c9665867999e91ca99a8fb3cf1e4c972246e Mon Sep 17 00:00:00 2001 From: CJ42 Date: Thu, 9 Nov 2023 10:40:28 +0000 Subject: [PATCH 2/3] chore: fix 4337 extension docs --- .../LSP17Extensions/Extension4337.md | 224 ++---------------- 1 file changed, 23 insertions(+), 201 deletions(-) diff --git a/docs/contracts/contracts/LSP17Extensions/Extension4337.md b/docs/contracts/contracts/LSP17Extensions/Extension4337.md index 054047d806..c7632c1f7b 100644 --- a/docs/contracts/contracts/LSP17Extensions/Extension4337.md +++ b/docs/contracts/contracts/LSP17Extensions/Extension4337.md @@ -132,6 +132,12 @@ See [`IERC165-supportsInterface`](#ierc165-supportsinterface). ::: +:::info + +In addition to the logic of the `IAccount` interface from 4337, the permissions of the address that signed the user operation are checked to ensure that it has the permission `_4337_PERMISSION`. + +::: + ```solidity function validateUserOp( UserOperation userOp, @@ -140,23 +146,30 @@ function validateUserOp( ) external nonpayable returns (uint256); ``` -_Validate user's signature and nonce the entryPoint will make the call to the recipient only if this validation call returns successfully. signature failure should be reported by returning SIG_VALIDATION_FAILED (1). This allows making a "simulation call" without a valid signature Other failures (e.g. nonce mismatch, or invalid signature format) should still revert to signal failure._ +Validate user's signature and nonce. The entryPoint will make the call to the recipient only if this validation call returns successfully. Signature failure should be reported by returning `SIG_VALIDATION_FAILED` (`1`). This allows making a "simulation call" without a valid signature. Other failures (_e.g. nonce mismatch, or invalid signature format_) should still revert to signal failure. The third parameter (not mentioned but `missingAccountFunds` from the `IAccount` interface) describes the missing funds on the account's deposit in the entrypoint. This is the minimum amount to transfer to the sender(entryPoint) to be able to make the call. The excess is left as a deposit in the entrypoint, for future calls. Can be withdrawn anytime using "entryPoint.withdrawTo()" In case there is a paymaster in the request (or the current deposit is high enough), this value will be zero. -Must validate caller is the entryPoint. Must validate the signature and nonce +
+ +**Requirements:** + +- caller MUST be the **entrypoint contract**. +- the signature and nonce must be valid. + +
#### Parameters -| Name | Type | Description | -| ------------ | :-------------: | ------------------------------------------------------------------------ | -| `userOp` | `UserOperation` | the operation that is about to be executed. | -| `userOpHash` | `bytes32` | hash of the user's request data. can be used as the basis for signature. | -| `_2` | `uint256` | - | +| Name | Type | Description | +| ------------ | :-------------: | ----------- | +| `userOp` | `UserOperation` | - | +| `userOpHash` | `bytes32` | - | +| `_2` | `uint256` | - | #### Returns -| Name | Type | Description | -| ---- | :-------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `0` | `uint256` | packaged ValidationData structure. use `_packValidationData` and `_unpackValidationData` to encode and decode <20-byte> sigAuthorizer - 0 for valid signature, 1 to mark signature failure, otherwise, an address of an "authorizer" contract. <6-byte> validUntil - last timestamp this operation is valid. 0 for "indefinite" <6-byte> validAfter - first timestamp this operation is valid If an account doesn't use time-range, it is enough to return SIG_VALIDATION_FAILED value (1) for signature failure. Note that the validation code cannot use block.timestamp (or block.number) directly. | +| Name | Type | Description | +| ---- | :-------: | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `0` | `uint256` | validationData packaged ValidationData structure. use `_packValidationData` and `_unpackValidationData` to encode and decode - `<20-byte>` sigAuthorizer - 0 for valid signature, 1 to mark signature failure, otherwise, an address of an "authorizer" contract. - `<6-byte>` validUntil - last timestamp this operation is valid. 0 for "indefinite" - `<6-byte>` validAfter - first timestamp this operation is valid If an account doesn't use time-range, it is enough to return SIG_VALIDATION_FAILED value (1) for signature failure. Note that the validation code cannot use block.timestamp (or block.number) directly. |
@@ -196,194 +209,3 @@ function _extendableMsgValue() internal view returns (uint256); Returns the original `msg.value` sent to the extendable contract.
- - - - - - - -[ERC-165]: https://eips.ethereum.org/EIPS/eip-165 -[EIP-165]: https://eips.ethereum.org/EIPS/eip-165 -[ERC-173]: https://eips.ethereum.org/EIPS/eip-173 -[EIP-173]: https://eips.ethereum.org/EIPS/eip-173 -[ERC-191]: https://eips.ethereum.org/EIPS/eip-191 -[EIP-191]: https://eips.ethereum.org/EIPS/eip-191 -[ERC-725X]: https://github.com/ERC725Alliance/ERC725/blob/main/docs/ERC-725.md#ERC725X -[ERC-725Y]: https://github.com/ERC725Alliance/ERC725/blob/main/docs/ERC-725.md#ERC725Y -[ERC-725]: https://github.com/ERC725Alliance/ERC725/blob/main/docs/ERC-725.md -[ERC-1271]: https://eips.ethereum.org/EIPS/eip-1271 -[EIP-1271]: https://eips.ethereum.org/EIPS/eip-1271 -[LSP-0-ERC725Account]: https://github.com/lukso-network/LIPs/tree/main/LSPs/LSP-0-ERC725Account.md -[LSP-1-UniversalReceiver]: https://github.com/lukso-network/LIPs/tree/main/LSPs/LSP-1-UniversalReceiver.md -[LSP-2-ERC725YJSONSchema]: https://github.com/lukso-network/LIPs/tree/main/LSPs/LSP-2-ERC725YJSONSchema.md -[LSP-3-UniversalProfile-Metadata]: https://github.com/lukso-network/LIPs/tree/main/LSPs/LSP-3-UniversalProfile-Metadata.md -[LSP-4-DigitalAsset-Metadata]: https://github.com/lukso-network/LIPs/tree/main/LSPs/LSP-4-DigitalAsset-Metadata.md -[LSP-5-ReceivedAssets]: https://github.com/lukso-network/LIPs/tree/main/LSPs/LSP-5-ReceivedAssets.md -[LSP-6-KeyManager]: https://github.com/lukso-network/LIPs/tree/main/LSPs/LSP-6-KeyManager.md -[LSP-7-DigitalAsset]: https://github.com/lukso-network/LIPs/tree/main/LSPs/LSP-7-DigitalAsset.md -[LSP-8-IdentifiableDigitalAsset]: https://github.com/lukso-network/LIPs/tree/main/LSPs/LSP-8-IdentifiableDigitalAsset.md -[LSP-9-Vault.md]: https://github.com/lukso-network/LIPs/tree/main/LSPs/LSP-9-Vault.md.md -[LSP-10-ReceivedVaults]: https://github.com/lukso-network/LIPs/tree/main/LSPs/LSP-10-ReceivedVaults.md -[LSP-11-BasicSocialRecovery]: https://github.com/lukso-network/LIPs/tree/main/LSPs/LSP-11-BasicSocialRecovery.md -[LSP-12-IssuedAssets]: https://github.com/lukso-network/LIPs/tree/main/LSPs/LSP-12-IssuedAssets.md -[LSP-14-Ownable2Step]: https://github.com/lukso-network/LIPs/tree/main/LSPs/LSP-14-Ownable2Step.md -[LSP-15-TransactionRelayServiceAPI]: https://github.com/lukso-network/LIPs/tree/main/LSPs/LSP-15-TransactionRelayServiceAPI.md -[LSP-16-UniversalFactory]: https://github.com/lukso-network/LIPs/tree/main/LSPs/LSP-16-UniversalFactory.md -[LSP-17-ContractExtension]: https://github.com/lukso-network/LIPs/tree/main/LSPs/LSP-17-ContractExtension.md -[LSP-20-CallVerification]: https://github.com/lukso-network/LIPs/tree/main/LSPs/LSP-20-CallVerification.md - - - -[ERC725]: https://docs.lukso.tech/standards/lsp-background/erc725 -[UniversalProfile]: https://docs.lukso.tech/standards/universal-profile/introduction -[LSP0ERC725Account]: https://docs.lukso.tech/standards/universal-profile/lsp0-erc725account -[LSP1UniversalReceiver]: https://docs.lukso.tech/standards/generic-standards/lsp1-universal-receiver -[LSP1UniversalReceiverDelegate]: https://docs.lukso.tech/standards/generic-standards/lsp1-universal-receiver-delegate -[LSP2ERC725YJSONSchema]: https://docs.lukso.tech/standards/generic-standards/lsp2-json-schema -[LSP4DigitalAssetMetadata]: https://docs.lukso.tech/standards/tokens/LSP4-Digital-Asset-Metadata -[LSP5ReceivedVaults]: https://docs.lukso.tech/standards/universal-profile/lsp5-received-assets -[LSP6KeyManager]: https://docs.lukso.tech/standards/universal-profile/lsp6-key-manager -[LSP7DigitalAsset]: https://docs.lukso.tech/standards/tokens/LSP7-Digital-Asset -[LSP8IdentifiableDigitalAsset]: https://docs.lukso.tech/standards/tokens/LSP8-Identifiable-Digital-Asset -[LSP10ReceivedVaults]: https://docs.lukso.tech/standards/universal-profile/lsp10-received-vaults -[LSP14Ownable2Step]: https://docs.lukso.tech/standards/generic-standards/lsp14-ownable-2-step -[LSP17ContractExtension]: https://docs.lukso.tech/standards/generic-standards/lsp17-contract-extension -[LSP20CallVerification]: https://docs.lukso.tech/standards/generic-standards/lsp20-call-verification - - - -[_LSP17_EXTENSION_PREFIX]: https://github.com/lukso-network/LIPs/blob/main/LSPs/LSP-17-ContractExtension.md#lsp17extendable-specification -[_LSP1_UNIVERSAL_RECEIVER_DELEGATE_KEY]: https://github.com/lukso-network/LIPs/blob/main/LSPs/LSP-1-UniversalReceiver.md#specification-1 -[_LSP1_UNIVERSAL_RECEIVER_DELEGATE_PREFIX]: https://github.com/lukso-network/LIPs/blob/main/LSPs/LSP-1-UniversalReceiver.md#specification-1 - - - -[LSP0OwnershipTransferStarted]: https://github.com/lukso-network/LIPs/blob/main/LSPs/LSP-0-ERC725Account.md#transferownership -[LSP0OwnershipTransferred_SenderNotification]: https://github.com/lukso-network/LIPs/blob/main/LSPs/LSP-0-ERC725Account.md#acceptownership -[LSP0OwnershipTransferred_RecipientNotification]: https://github.com/lukso-network/LIPs/blob/main/LSPs/LSP-0-ERC725Account.md#acceptownership - - - -[`ERC725.sol`]: https://github.com/ERC725Alliance/ERC725/blob/v5.1.0/implementations/contracts/ERC725.sol -[`ERC725Init.sol`]: https://github.com/ERC725Alliance/ERC725/blob/v5.1.0/implementations/contracts/ERC725Init.sol -[`ERC725InitAbstract.sol`]: https://github.com/ERC725Alliance/ERC725/blob/v5.1.0/implementations/contracts/ERC725InitAbstract -[`IERC725X.sol`]: https://github.com/ERC725Alliance/ERC725/blob/v5.1.0/implementations/contracts/interfaces/IERC725X.sol -[`ERC725X.sol`]: https://github.com/ERC725Alliance/ERC725/blob/v5.1.0/implementations/contracts/ERC725X.sol -[`ERC725XCore.sol`]: https://github.com/ERC725Alliance/ERC725/blob/v5.1.0/implementations/contracts/ERC725XCore.sol -[`ERC725XInit.sol`]: https://github.com/ERC725Alliance/ERC725/blob/v5.1.0/implementations/contracts/ERC725XInit.sol -[`ERC725XInitAbstract.sol`]: https://github.com/ERC725Alliance/ERC725/blob/v5.1.0/implementations/contracts/ERC725XInitAbstract.sol -[`IERC725Y.sol`]: https://github.com/ERC725Alliance/ERC725/blob/v5.1.0/implementations/contracts/interfaces/IERC725Y.sol -[`ERC725Y.sol`]: https://github.com/ERC725Alliance/ERC725/blob/v5.1.0/implementations/contracts/ERC725Y.sol -[`ERC725YCore.sol`]: https://github.com/ERC725Alliance/ERC725/blob/v5.1.0/implementations/contracts/ERC725YCore.sol -[`ERC725YInit.sol`]: https://github.com/ERC725Alliance/ERC725/blob/v5.1.0/implementations/contracts/ERC725YInit.sol -[`ERC725YInitAbstract.sol`]: https://github.com/ERC725Alliance/ERC725/blob/v5.1.0/implementations/contracts/ERC725YInitAbstract.soll -[`OwnableUnset.sol`]: https://github.com/ERC725Alliance/ERC725/blob/v5.1.0/implementations/contracts/custom/OwnableUnset.sol - - - -[`Create2.sol`]: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.2/contracts/utils/Create2.sol -[`ECDSA.sol`]: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.2/contracts/utils/cryptography/ECDSA.sol -[`ERC165Checker.sol`]: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.2/contracts/utils/introspection/ERC165Checker.sol -[`Address.sol`]: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.2/contracts/utils/Address.sol -[`ERC165.sol`]: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.2/contracts/utils/introspection/ERC165.sol -[`EnumerableSet.sol`]: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.2/contracts/utils/structs/EnumerableSet.so -[`Initializable.sol`]: https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/blob/v4.9.2/contracts/proxy/utils/Initializable.sol -[`BytesLib.sol`]: https://github.com/GNSPS/solidity-bytes-utils/blob/v0.8.0/contracts/BytesLib.sol - - - -[`LSP0ERC725AccountCore.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP0ERC725Account/LSP0ERC725AccountCore.sol -[`LSP0Utils.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP0ERC725Account/LSP0Utils.sol -[`LSP0ERC725AccountInitAbstract.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP0ERC725Account/LSP0ERC725AccountInitAbstract.sol -[`ILSP0ERC725Account.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP0ERC725Account/ILSP0ERC725Account.sol -[`LSP0ERC725Account.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP0ERC725Account/LSP0ERC725Account.sol -[`LSP0ERC725AccountInit.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP0ERC725Account/LSP0ERC725AccountInit.sol -[`LSP0Constants.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP0ERC725Account/LSP0Constants.sol -[`UniversalProfileInitAbstract.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/UniversalProfileInitAbstract.sol -[`UniversalProfile.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/UniversalProfile.sol -[`UniversalProfileInit.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/UniversalProfileInit.sol -[`LSP1UniversalReceiverDelegateUP.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP1UniversalReceiver/LSP1UniversalReceiverDelegateUP/LSP1UniversalReceiverDelegateUP.sol -[`LSP1Utils.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP1UniversalReceiver/LSP1Utils.sol -[`LSP1UniversalReceiverDelegateVault.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP1UniversalReceiver/LSP1UniversalReceiverDelegateVault/LSP1UniversalReceiverDelegateVault.sol -[`ILSP1UniversalReceiver.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP1UniversalReceiver/ILSP1UniversalReceiver.sol -[`LSP1Constants.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP1UniversalReceiver/LSP1Constants.sol -[`LSP1Errors.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP1UniversalReceiver/LSP1Errors.sol -[`LSP4DigitalAssetMetadataInitAbstract.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP4DigitalAssetMetadata/LSP4DigitalAssetMetadataInitAbstract.sol -[`LSP4DigitalAssetMetadata.sol`]: chttps://github.com/code-423n4/2023-06-lukso/tree/main/ontracts/LSP4DigitalAssetMetadata/LSP4DigitalAssetMetadata.sol -[`LSP4Compatibility.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP4DigitalAssetMetadata/LSP4Compatibility.sol -[`LSP4Constants.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP4DigitalAssetMetadata/LSP4Constants.sol -[`ILSP4Compatibility.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP4DigitalAssetMetadata/ILSP4Compatibility.sol -[`LSP4Errors.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP4DigitalAssetMetadata/LSP4Errors.sol -[`LSP6SetDataModule.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP6KeyManager/LSP6Modules/LSP6SetDataModule.sol -[`LSP6KeyManagerCore.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP6KeyManager/LSP6KeyManagerCore.sol -[`LSP6ExecuteModule.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP6KeyManager/LSP6Modules/LSP6ExecuteModule.sol -[`LSP6Utils.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP6KeyManager/LSP6Utils.sol -[`LSP6Constants.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP6KeyManager/LSP6Constants.sol -[`ILSP6KeyManager.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP6KeyManager/ILSP6KeyManager.sol -[`LSP6Errors.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP6KeyManager/LSP6Errors.sol -[`LSP6OwnershipModule.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP6KeyManager/LSP6Modules/LSP6OwnershipModule.sol -[`LSP6KeyManagerInitAbstract.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP6KeyManager/LSP6KeyManagerInitAbstract.sol -[`LSP6KeyManager.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP6KeyManager/LSP6KeyManager.sol -[`LSP6KeyManagerInit.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP6KeyManager/LSP6KeyManagerInit.sol -[`LSP7DigitalAssetCore.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP7DigitalAsset/LSP7DigitalAssetCore.sol -[`LSP7CompatibleERC20InitAbstract.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP7DigitalAsset/extensions/LSP7CompatibleERC20InitAbstract.sol -[`LSP7CompatibleERC20.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP7DigitalAsset/extensions/LSP7CompatibleERC20.sol -[`ILSP7DigitalAsset.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP7DigitalAsset/ILSP7DigitalAsset.sol -[`LSP7DigitalAssetInitAbstract.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP7DigitalAsset/LSP7DigitalAssetInitAbstract.sol -[`LSP7CappedSupply.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP7DigitalAsset/extensions/LSP7CappedSupply.sol -[`LSP7CappedSupplyInitAbstract.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP7DigitalAsset/extensions/LSP7CappedSupplyInitAbstract.sol -[`LSP7DigitalAsset.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP7DigitalAsset/LSP7DigitalAsset.sol -[`LSP7MintableInitAbstract.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP7DigitalAsset/presets/LSP7MintableInitAbstract.sol -[`LSP7CompatibleERC20MintableInitAbstract.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP7DigitalAsset/presets/LSP7CompatibleERC20MintableInitAbstract.sol -[`LSP7Mintable.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP7DigitalAsset/presets/LSP7Mintable.sol -[`LSP7CompatibleERC20Mintable.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP7DigitalAsset/presets/LSP7CompatibleERC20Mintable.sol -[`LSP7Errors.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP7DigitalAsset/LSP7Errors.sol -[`LSP7CompatibleERC20MintableInit.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP7DigitalAsset/presets/LSP7CompatibleERC20MintableInit.sol -[`LSP7MintableInit.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP7DigitalAsset/presets/LSP7MintableInit.sol -[`ILSP7CompatibleERC20.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP7DigitalAsset/extensions/ILSP7CompatibleERC20.sol -[`ILSP7Mintable.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP7DigitalAsset/presets/ILSP7Mintable.sol -[`LSP7Burnable.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP7DigitalAsset/extensions/LSP7Burnable.sol -[`LSP7BurnableInitAbstract.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP7DigitalAsset/extensions/LSP7BurnableInitAbstract.sol -[`LSP7Constants.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP7DigitalAsset/LSP7Constants.sol -[`LSP8IdentifiableDigitalAssetCore.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP8IdentifiableDigitalAsset/LSP8IdentifiableDigitalAssetCore.sol -[`LSP8CompatibleERC721InitAbstract.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8CompatibleERC721InitAbstract.sol -[`LSP8CompatibleERC721.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8CompatibleERC721.sol -[`ILSP8IdentifiableDigitalAsset.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP8IdentifiableDigitalAsset/ILSP8IdentifiableDigitalAsset.sol -[`LSP8EnumerableInitAbstract.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8EnumerableInitAbstract.sol -[`LSP8Enumerable.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8Enumerable.sol -[`LSP8CappedSupplyInitAbstract.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8CappedSupplyInitAbstract.sol -[`LSP8CappedSupply.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8CappedSupply.sol -[`LSP8IdentifiableDigitalAssetInitAbstract.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP8IdentifiableDigitalAsset/LSP8IdentifiableDigitalAssetInitAbstract.sol -[`LSP8MintableInitAbstract.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP8IdentifiableDigitalAsset/presets/LSP8MintableInitAbstract.sol -[`ILSP8CompatibleERC721.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP8IdentifiableDigitalAsset/extensions/ILSP8CompatibleERC721.sol -[`LSP8IdentifiableDigitalAsset.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP8IdentifiableDigitalAsset/LSP8IdentifiableDigitalAsset.sol -[`LSP8CompatibleERC721MintableInitAbstract.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP8IdentifiableDigitalAsset/presets/LSP8CompatibleERC721MintableInitAbstract.s -[`LSP8Mintable.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP8IdentifiableDigitalAsset/presets/LSP8Mintable.sol -[`LSP8CompatibleERC721Mintable.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP8IdentifiableDigitalAsset/presets/LSP8CompatibleERC721Mintable.sol -[`LSP8CompatibleERC721MintableInit.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP8IdentifiableDigitalAsset/presets/LSP8CompatibleERC721MintableInit.sol -[`LSP8Errors.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP8IdentifiableDigitalAsset/LSP8Errors.sol -[`LSP8MintableInit.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP8IdentifiableDigitalAsset/presets/LSP8MintableInit.sol -[`LSP8Burnable.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP8IdentifiableDigitalAsset/extensions/LSP8Burnable.sol -[`ILSP8Mintable.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP8IdentifiableDigitalAsset/presets/ILSP8Mintable.sol -[`LSP8Constants.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP8IdentifiableDigitalAsset/LSP8Constants.s -[`LSP14Ownable2Step.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP14Ownable2Step/LSP14Ownable2Step.sol -[`ILSP14Ownable2Step.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP14Ownable2Step/ILSP14Ownable2Step.sol -[`LSP14Constants.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP14Ownable2Step/LSP14Constants.sol -[`LSP14Errors.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP14Ownable2Step/LSP14Errors.sol -[`LSP17Extendable.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP17ContractExtension/LSP17Extendable.sol -[`LSP17Extension.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP17ContractExtension/LSP17Extension.sol -[`LSP17Constants.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP17ContractExtension/LSP17Constants.sol -[`LSP17Errors.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP17ContractExtension/LSP17Errors.sol -[`LSP17Utils.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP17ContractExtension/LSP17Utils.sol -[`LSP20CallVerification.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP20CallVerification/LSP20CallVerification.sol -[`ILSP20CallVerifier.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP20CallVerification/ILSP20CallVerifier.sol -[`LSP20Constants.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP20CallVerification/LSP20Constants.sol -[`LSP20Errors.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP20CallVerification/LSP20Errors.sol -[`LSP2Utils.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP2ERC725YJSONSchema/LSP2Utils.sol -[`LSP5Utils.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP5ReceivedAssets/LSP5Utils.sol -[`LSP5Constants.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP5ReceivedAssets/LSP5Constants.sol -[`LSP10Utils.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP10ReceivedVaults/LSP10Utils.sol -[`LSP10Constants.sol`]: https://github.com/lukso-network/lsp-smart-contracts/tree/main/contracts/LSP10ReceivedVaults/LSP10Constants.sol - - From da3db078346dc0439253407ea423572c44c9ddc1 Mon Sep 17 00:00:00 2001 From: CJ42 Date: Thu, 9 Nov 2023 10:44:01 +0000 Subject: [PATCH 3/3] fix broken link --- docs/contracts/contracts/LSP6KeyManager/LSP6KeyManager.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/contracts/contracts/LSP6KeyManager/LSP6KeyManager.md b/docs/contracts/contracts/LSP6KeyManager/LSP6KeyManager.md index 94cf2a297c..57bba9835a 100644 --- a/docs/contracts/contracts/LSP6KeyManager/LSP6KeyManager.md +++ b/docs/contracts/contracts/LSP6KeyManager/LSP6KeyManager.md @@ -176,7 +176,7 @@ Same as [`execute`](#execute) but execute a batch of payloads (abi-encoded funct :::tip Hint -If you are looking to learn how to sign and execute relay transactions via the Key Manager, see our Javascript step by step guide [_"Execute Relay Transactions"_](../../../guides/key-manager/execute-relay-transactions.md). See the LSP6 Standard page for more details on how to [generate a valid signature for Execute Relay Call](../../../standards/universal-profile/lsp6-key-manager.md#how-to-sign-relay-transactions). +If you are looking to learn how to sign and execute relay transactions via the Key Manager, see our Javascript step by step guide [_"Execute Relay Transactions"_](../../../learn/expert-guides/key-manager/execute-relay-transactions.md). See the LSP6 Standard page for more details on how to [generate a valid signature for Execute Relay Call](../../../standards/universal-profile/lsp6-key-manager.md#how-to-sign-relay-transactions). :::