You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: LSPs/LSP-10-ReceivedVaults.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ The following two data keys (including their ERC725Y JSON schema) are proposed t
20
20
The data key `LSP10VaultsMap` also helps to prevent adding duplications to the array, when automatically added via smart contract (e.g. a [LSP1-UniversalReceiverDelegate](./LSP-1-UniversalReceiver.md)).
21
21
22
22
## Motivation
23
-
To be able to display received vaults in a profile we need to keep track of all received vaults contract addresses. This is important for [LSP3 UniversalProfile](./LSP-3-UniversalProfile.md), but also Assets smart contracts via [LSP5-ReceivedAssets](./LSP-5-ReceivedAssets.md) Standard.
23
+
To be able to display received vaults in a profile we need to keep track of all received vaults contract addresses. This is important for [LSP0-ERC725Account](./LSP-0-ERC725Account.md).
References owned [LSP9Vaults](./LSP-9-Vault.md). This data key exists so that smart contracts can detect whether the address of a vault is present in the `LSP10Vaults[]` array without looping all over it on-chain. Moreover, it helps to identify at which index in the `LSP10Vaults[]` the vault address is located for easy access and to change or remove this specific vault from the array. Finally, it also allows the detection of the interface supported by the vault.
50
50
51
-
The data value MUST be constructed as follows: `bytes4(standardInterfaceId) + bytes8(indexNumber)`. Where:
51
+
The data value MUST be constructed as follows: `bytes4(standardInterfaceId) + uint128(indexNumber)`. Where:
52
52
-`standardInterfaceId` = the [ERC165 interface ID](https://eips.ethereum.org/EIPS/eip-165) of a [LSP9Vaults](./LSP-9-Vault.md): `0xfd4d5c50`.
53
53
-`indexNumber` = the index in the [`LSP10Vaults[]` Array](#lsp10vaults)
Copy file name to clipboardExpand all lines: LSPs/LSP-12-IssuedAssets.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -59,7 +59,7 @@ For more info about how to access each index of the `LSP12IssuedAssets[]` array,
59
59
60
60
References issued smart contract assets, like tokens (_e.g.: [LSP7 Digital Assets](./LSP-7-DigitalAsset)_) and NFTs (_e.g.: [LSP8 Identifiable Digital Assets](./LSP-8-IdentifiableDigitalAsset)_). This data key exists so that smart contracts can detect whether the address of an asset is present in the `LSP12IssuedAssets[]` array without looping all over it on-chain. Moreover, it helps to identify at which index in the `LSP12IssuedAssets[]` the asset address is located for easy access and to change or remove this specific asset from the array. Finally, it also allows the detection of the interface supported by the asset.
61
61
62
-
The data value MUST be constructed as follows: `bytes4(standardInterfaceId) + bytes8(indexNumber)`. Where:
62
+
The data value MUST be constructed as follows: `bytes4(standardInterfaceId) + uint128(indexNumber)`. Where:
63
63
-`standardInterfaceId` = the [ERC165 interface ID](https://eips.ethereum.org/EIPS/eip-165) of the standard that the token or asset smart contract implements (if the ERC165 interface ID is unknown, `standardInterfaceId = 0xffffffff`).
64
64
-`indexNumber` = the index in the [`LSP12IssuedAssets[]` Array](#LSP12Issuedassets)
65
65
@@ -70,7 +70,7 @@ Value example: `0x5fcaac27000000000000000c` (interfaceId: `0x5fcaac27` for a [LS
Copy file name to clipboardExpand all lines: LSPs/LSP-15-TransactionRelayServiceAPI.md
+17-10Lines changed: 17 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,21 +14,28 @@ A Transaction Relay Service API for consistency across all Transaction Relay Ser
14
14
15
15
## Abstract
16
16
17
-
The [LSP-6-KeyManager](./LSP-6-KeyManager.md) proposes an [`executeRelayCall()`](./LSP-6-KeyManager.md#executerelaycall) function. It allows anybody to execute `_calldata` payload on a set ERC725 X or Y smart contract, given they have a signed message from a valid executor. This opens the way to Transaction Relay Services which send transactions on behalf of a user to cover their gas costs.
17
+
The [LSP-6-KeyManager](./LSP-6-KeyManager.md) proposes an [`executeRelayCall()`](./LSP-6-KeyManager.md#executerelaycall) function. It allows anybody to execute `_calldata` payload on a set ERC725 X or Y smart contract, given they have a signed message from a valid executor. This opens the way to Transaction Relay Services which send transactions on behalf of a user to cover their gas costs.
18
18
19
19
This document describes the API for a Transaction Relay Service.
20
20
21
21
## Motivation
22
+
22
23
Standardizing the Transaction Relay Service API enables applications to be compatible with all Transaction Relay Services which may be built, and avoids a situation where specific applications are only compatible with specific Transaction Relay Services. This is essential for an open marketplace of Transaction Relay Services where a user can select the service which best fits their needs.
23
24
24
25
## Specification
25
26
26
27
### API
27
28
28
-
29
29
#### POST `/execute`
30
30
31
-
Executes a signed transaction on behalf of a Universal Profile using `executeRelayCall()`.
31
+
Executes a signed transaction on behalf of a Universal Profile using `executeRelayCall`.
32
+
33
+
-`address` - The address of the Universal Profile which is executing the transaction.
34
+
-`transaction` - An object containing the transaction parameters which will be executed with `executeRelayCall`.
35
+
-`abi` - The abi-encoded transaction data (_e.g: a function call on the Universal Profile smart contract_) which will be passed as the payload parameter to the `executeRelayCall` function.
36
+
-`signature` - The signed message according to LSP6 specification.
37
+
-`nonce` - The nonce of the KeyManager fetched by calling `getNonce(address address, uint128 channelId)` on the LSP6 KeyManager contract.
38
+
-`validityTimestamps` (optional) - Two concatenated `uint128` timestamps which indicate a time duration for which the transaction will be considered valid. If no validityTimestamps parameter is passed the relayer should assume that validityTimestamps is `0` and the transaction will be valid indefinitely until it is executed.
32
39
33
40
##### Request body
34
41
@@ -38,26 +45,27 @@ Executes a signed transaction on behalf of a Universal Profile using `executeRel
Returns the available quota left for a registered Universal Profile.
57
65
58
-
-`signature`is the result of signing a hash calculated as an EIP-712 hash where the message is keccak256(`address`, `timestamp`).
59
-
-`address`is the controller address with permissions on the Universal Profile used to create the signature value.
60
-
-`timestamp`represents the time the signature was created. Must be +/- 300 seconds from current time to be considered a valid request. Value should be `int`, `int256`, `uint` or `uint256`.
66
+
-`signature`- The result of signing a hash calculated as an EIP-712 hash where the message is keccak256(`address`, `timestamp`).
67
+
-`address`- The controller address with permissions on the Universal Profile used to create the signature value.
68
+
-`timestamp`- Represents the time the signature was created. Must be +/- 300 seconds from current time to be considered a valid request. Value should be `int`, `int256`, `uint` or `uint256`.
61
69
62
70
##### Request body
63
71
@@ -87,7 +95,6 @@ Returns the available quota left for a registered Universal Profile.
87
95
88
96
> Quota systems could also use a Pay As You Go model, in which case totalQuota and resetData can be omitted
89
97
90
-
91
98
## Copyright
92
99
93
100
Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).
0 commit comments