Skip to content

Commit

Permalink
Merge branch 'main' into feature/learn
Browse files Browse the repository at this point in the history
  • Loading branch information
fhildeb authored Nov 2, 2023
2 parents 9fd10a5 + 69ade60 commit b491dbc
Show file tree
Hide file tree
Showing 33 changed files with 1,207 additions and 1,206 deletions.
4 changes: 2 additions & 2 deletions docs/contracts/_interface_ids_table.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
| **LSP1UniversalReceiver** | `0x6bb56a14` | Interface of the LSP1 - Universal Receiver standard, an entry function for a contract to receive arbitrary information. |
| **LSP1UniversalReceiverDelegate** | `0xa245bbda` | Interface of the LSP1 - Universal Receiver Delegate standard. |
| **LSP6KeyManager** | `0x23f34c62` | Interface of the LSP6 - Key Manager standard, a contract acting as a controller of an ERC725 Account using predfined permissions. |
| **LSP7DigitalAsset** | `0x05519512` | Interface of the LSP7 - Digital Asset standard, a fungible digital asset. |
| **LSP8IdentifiableDigitalAsset** | `0x1ae9ba1f` | Interface of the LSP8 - Identifiable Digital Asset standard, a non-fungible digital asset. |
| **LSP7DigitalAsset** | `0xdaa746b7` | Interface of the LSP7 - Digital Asset standard, a fungible digital asset. |
| **LSP8IdentifiableDigitalAsset** | `0x30dc5278` | Interface of the LSP8 - Identifiable Digital Asset standard, a non-fungible digital asset. |
| **LSP9Vault** | `0x28af17e6` | Interface of LSP9 - Vault standard, a blockchain vault that can hold assets and interact with other smart contracts. |
| **LSP11BasicSocialRecovery** | `0x049a28f1` | Interface of the LSP11 - Basic Social Recovery standard, a contract to recover access control into an account. |
| **LSP14Ownable2Step** | `0x94be5999` | Interface of the LSP14 - Ownable 2-step standard, an extension of the [EIP173] (Ownable) standard with 2-step process to transfer or renounce ownership. |
Expand Down
109 changes: 48 additions & 61 deletions docs/contracts/contracts/LSP0ERC725Account/LSP0ERC725Account.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ Set `initialOwner` as the contract owner. The `constructor` also allows funding

**Emitted events:**

- [`ValueReceived`](#valuereceived) event when funding the contract on deployment.
- [`UniversalReceiver`](#universalreceiver) event when funding the contract on deployment.
- [`OwnershipTransferred`](#ownershiptransferred) event when `initialOwner` is set as the contract [`owner`](#owner).

</blockquote>
Expand Down Expand Up @@ -110,7 +110,7 @@ This function is executed when:

**Emitted events:**

- [`ValueReceived`](#valuereceived) event when receiving native tokens.
- [`UniversalReceiver`](#universalreceiver) event when receiving native tokens and extension function selector is not found or not payable.

</blockquote>

Expand Down Expand Up @@ -139,7 +139,7 @@ Executed:

**Emitted events:**

- [`ValueReceived`](#valuereceived) event when receiving native tokens.
- [`UniversalReceiver`](#universalreceiver) event when receiving native tokens.

</blockquote>

Expand Down Expand Up @@ -318,7 +318,7 @@ Generic executor function to:

- [`Executed`](#executed) event for each call that uses under `operationType`: `CALL` (0), `STATICCALL` (3) and `DELEGATECALL` (4).
- [`ContractCreated`](#contractcreated) event, when a contract is created under `operationType`: `CREATE` (1) and `CREATE2` (2).
- [`ValueReceived`](#valuereceived) event when receiving native tokens.
- [`UniversalReceiver`](#universalreceiver) event when receiving native tokens.

</blockquote>

Expand Down Expand Up @@ -387,7 +387,7 @@ Batch executor function that behaves the same as [`execute`](#execute) but allow

- [`Executed`](#executed) event for each call that uses under `operationType`: `CALL` (0), `STATICCALL` (3) and `DELEGATECALL` (4). (each iteration)
- [`ContractCreated`](#contractcreated) event, when a contract is created under `operationType`: `CREATE` (1) and `CREATE2` (2) (each iteration)
- [`ValueReceived`](#valuereceived) event when receiving native tokens.
- [`UniversalReceiver`](#universalreceiver) event when receiving native tokens.

</blockquote>

Expand Down Expand Up @@ -651,7 +651,7 @@ Sets a single bytes value `dataValue` in the ERC725Y storage for a specific data

**Emitted events:**

- [`ValueReceived`](#valuereceived) event when receiving native tokens.
- [`UniversalReceiver`](#universalreceiver) event when receiving native tokens.
- [`DataChanged`](#datachanged) event.

</blockquote>
Expand Down Expand Up @@ -696,7 +696,7 @@ Batch data setting function that behaves the same as [`setData`](#setdata) but a

**Emitted events:**

- [`ValueReceived`](#valuereceived) event when receiving native tokens.
- [`UniversalReceiver`](#universalreceiver) event when receiving native tokens.
- [`DataChanged`](#datachanged) event. (on each iteration of setting data)

</blockquote>
Expand Down Expand Up @@ -818,7 +818,7 @@ Achieves the goal of [LSP-1-UniversalReceiver] by allowing the account to be not

**Emitted events:**

- [`ValueReceived`](#valuereceived) when receiving native tokens.
- [`UniversalReceiver`](#universalreceiver) when receiving native tokens.
- [`UniversalReceiver`](#universalreceiver) event with the function parameters, call options, and the response of the UniversalReceiverDelegates (URD) contract that was called.

</blockquote>
Expand All @@ -838,6 +838,33 @@ Achieves the goal of [LSP-1-UniversalReceiver] by allowing the account to be not

<br/>

### 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. |

<br/>

## 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.
Expand Down Expand Up @@ -1145,10 +1172,12 @@ extension if the extension is set, if not it returns false.

<br/>

### \_getExtension
### \_getExtensionAndForwardValue

```solidity
function _getExtension(bytes4 functionSelector) internal view returns (address);
function _getExtensionAndForwardValue(
bytes4 functionSelector
) internal view returns (address, bool);
```

Returns the extension address stored under the following data key:
Expand Down Expand Up @@ -1181,8 +1210,9 @@ function _fallbackLSP17Extendable(
```

Forwards the call to an extension mapped to a function selector.
Calls [`_getExtension`](#_getextension) to get the address of the extension mapped to the function selector being
Calls [`_getExtensionAndForwardValue`](#_getextensionandforwardvalue) to get the address of the extension mapped to the function selector being
called on the account. If there is no extension, the `address(0)` will be returned.
Forwards the value sent with the call to the extension if the function selector is mapped to a payable extension.
Reverts if there is no extension for the function being called, except for the `bytes4(0)` function selector, which passes even if there is no extension for it.
If there is an extension for the function selector being called, it calls the extension with the
`CALL` opcode, passing the `msg.data` appended with the 20 bytes of the [`msg.sender`](#msg.sender) and 32 bytes of the `msg.value`.
Expand All @@ -1198,8 +1228,6 @@ function _verifyCall(
```

Calls [`lsp20VerifyCall`](#lsp20verifycall) function on the logicVerifier.
Reverts in case the value returned does not match the success value (lsp20VerifyCall selector)
Returns whether a verification after the execution should happen based on the last byte of the returnedStatus

<br/>

Expand All @@ -1213,19 +1241,6 @@ function _verifyCallResult(
```

Calls [`lsp20VerifyCallResult`](#lsp20verifycallresult) function on the logicVerifier.
Reverts in case the value returned does not match the success value (lsp20VerifyCallResult selector)

<br/>

### \_validateCall

```solidity
function _validateCall(
bool postCall,
bool success,
bytes returnedData
) internal pure;
```

<br/>

Expand Down Expand Up @@ -1457,34 +1472,6 @@ Emitted when the [`universalReceiver`](#universalreceiver) function was called w

<br/>

### ValueReceived

:::note References

- Specification details: [**LSP-0-ERC725Account**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-0-ERC725Account.md#valuereceived)
- Solidity implementation: [`LSP0ERC725Account.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP0ERC725Account/LSP0ERC725Account.sol)
- Event signature: `ValueReceived(address,uint256)`
- Event topic hash: `0x7e71433ddf847725166244795048ecf3e3f9f35628254ecbf736056664233493`

:::

```solidity
event ValueReceived(address indexed sender, uint256 indexed value);
```

_`value` native tokens received from `sender`._

Emitted when receiving native tokens.

#### Parameters

| Name | Type | Description |
| ---------------------- | :-------: | ---------------------------------------------------------- |
| `sender` **`indexed`** | `address` | The address that sent some native tokens to this contract. |
| `value` **`indexed`** | `uint256` | The amount of native tokens received. |

<br/>

## Errors

### ERC725X_ContractDeploymentFailed
Expand Down Expand Up @@ -1813,23 +1800,23 @@ Reverts when trying to renounce ownership before the initial confirmation delay.

- Specification details: [**LSP-0-ERC725Account**](https://github.com/lukso-network/lips/tree/main/LSPs/LSP-0-ERC725Account.md#lsp20callverificationfailed)
- Solidity implementation: [`LSP0ERC725Account.sol`](https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP0ERC725Account/LSP0ERC725Account.sol)
- Error signature: `LSP20CallVerificationFailed(bool,bytes)`
- Error hash: `0x00c28d0f`
- Error signature: `LSP20CallVerificationFailed(bool,bytes4)`
- Error hash: `0x9d6741e3`

:::

```solidity
error LSP20CallVerificationFailed(bool postCall, bytes returnedData);
error LSP20CallVerificationFailed(bool postCall, bytes4 returnedStatus);
```

reverts when the call to the owner does not return the LSP20 success value

#### Parameters

| Name | Type | Description |
| -------------- | :-----: | ---------------------------------------------------- |
| `postCall` | `bool` | True if the execution call was done, False otherwise |
| `returnedData` | `bytes` | The data returned by the call to the logic verifier |
| Name | Type | Description |
| ---------------- | :------: | ------------------------------------------------------- |
| `postCall` | `bool` | True if the execution call was done, False otherwise |
| `returnedStatus` | `bytes4` | The bytes4 decoded data returned by the logic verifier. |

<br/>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,10 +78,12 @@ extension if the extension is set, if not it returns false.

<br/>

### \_getExtension
### \_getExtensionAndForwardValue

```solidity
function _getExtension(bytes4 functionSelector) internal view returns (address);
function _getExtensionAndForwardValue(
bytes4 functionSelector
) internal view returns (address, bool);
```

Returns the extension mapped to a specific function selector
Expand Down Expand Up @@ -113,8 +115,9 @@ function _fallbackLSP17Extendable(
```

Forwards the call to an extension mapped to a function selector.
Calls [`_getExtension`](#_getextension) to get the address of the extension mapped to the function selector being
Calls [`_getExtensionAndForwardValue`](#_getextensionandforwardvalue) to get the address of the extension mapped to the function selector being
called on the account. If there is no extension, the `address(0)` will be returned.
Forwards the value if the extension is payable.
Reverts if there is no extension for the function being called.
If there is an extension for the function selector being called, it calls the extension with the
`CALL` opcode, passing the `msg.data` appended with the 20 bytes of the [`msg.sender`](#msg.sender) and 32 bytes of the `msg.value`.
Expand Down
27 changes: 27 additions & 0 deletions docs/contracts/contracts/LSP17ContractExtension/LSP17Extension.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,33 @@ See [`IERC165-supportsInterface`](#ierc165-supportsinterface).

<br/>

### version

:::note References

- 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: `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. |

<br/>

## 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.
Expand Down
27 changes: 27 additions & 0 deletions docs/contracts/contracts/LSP17Extensions/Extension4337.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,33 @@ Must validate caller is the entryPoint. Must validate the signature and nonce

<br/>

### 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. |

<br/>

## 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.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,33 @@ _Reacted on received notification with `typeId`._

<br/>

### 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. |

<br/>

## 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.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,33 @@ Handles two cases: Writes the received [LSP-7-DigitalAsset] or [LSP-8-Identifiab

<br/>

### 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. |

<br/>

## 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.
Expand Down
Loading

0 comments on commit b491dbc

Please sign in to comment.