Skip to content

Commit 19c8023

Browse files
committed
adds a description to the behaviour of transactions
1 parent 3cca2d2 commit 19c8023

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

XLS-0090-multi-purpose-token-domain/README.md

+9-9
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
Title: <b>PermissionedDomain for Multi-Purpose Token</b>
33
Type: <b>draft</b>
44
State: <b>Updates: XLS-33</b>
5-
Requires: <b>XLS-80</b>
5+
Requires: <b> XLS-80</b>
66

77
Authors:
88
<a href="mailto:[email protected]">Vito Tumas</a>
@@ -15,7 +15,7 @@ Affiliation: <a href="https://ripple.com">Ripple</a>
1515

1616
The issuer of a Multi-Purpose Token may require explicit authorization for individuals to hold the token. This is done through the issuer submitting an `MPTokenAuthorize` transaction, which authorizes each account individually.
1717

18-
The (XLS-80)[https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0080-permissioned-domains] specification introduces a new mechanism for broader authorization. The Permissioned Domain specifies a list of accepted `(Issuer, Type)` credential pairs within the domain. Any holder of valid credentials can interact with the protocols in this Permissioned Domain.
18+
The [XLS-80](https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0080-permissioned-domains) specification introduces a new mechanism for broader authorization. The Permissioned Domain specifies a list of accepted `(Issuer, Type)` credential pairs within the domain. Any holder of valid credentials can interact with the protocols in this Permissioned Domain.
1919

2020
This specification adds `PermissionedDomain` support to the Multi-Purpose Token. By allowing the issuer to set a `DomainID`, we provide a more unified and efficient mechanism for controlling who may hold or receive the asset.
2121

@@ -25,7 +25,8 @@ This specification adds `PermissionedDomain` support to the Multi-Purpose Token.
2525

2626
### 2.1. `MPTokenIssuance` Ledger Entry
2727

28-
This section outlines the changes made to the `MPTokenIssuance` object. In summary, the XLS adds a new `DomainID` field to the `MPTokenIssuance` object.
28+
This section outlines the changes made to the `MPTokenIssuance` object. In summary, the XLS adds a new `DomainID` field to the `MPTokenIssuance` object. The `DomainID` is used to track which `PermissionedDomain` the `MPT` uses to controll access rules.
29+
2930

3031
#### 2.1.1. Fields
3132

@@ -39,7 +40,7 @@ An optional identifier for the `PermissionedDomain` object linked to the `MPToke
3940

4041
### 2.2. `MPToken` Ledger Entry
4142

42-
This section outlines the changes made to the `MPToken` object. In summary, the XLS adds a new `Flags` value, `lsfMPTDomainCheck`.
43+
This section outlines the changes made to the `MPToken` object. In summary, the XLS adds a new `Flags` value, `lsfMPTDomainCheck`. The `lsfMPTDomainCheck` flag indicates that the credentials of the MPT holder must be verified. This flag is set automatically when the `MPToken` object is created and the associated `MPTokenIssuance` object has the `DomainID` set.
4344

4445
#### 2.2.1. Fields
4546

@@ -61,7 +62,7 @@ The `Vault` object supports the following flags:
6162

6263
#### 3.1.1. `MPTokenIssuaceCreate` Transaction
6364

64-
This section outlines changes made to the `MPTokenIssuanceCreate` transaction. In summary, the specification adds a new `DomainID` field to the transaction.
65+
This section outlines changes made to the `MPTokenIssuanceCreate` transaction. The specification adds a new `DomainID` field to the transaction. If the `DomainID` is specified when creating a new `MPTokenIssuance` it can be later changed by submitting a `MPTokenIssuanceSet` transaction. If the `DomainID` was not set when creating the `MPTokenIssuance` it cannot be assigned later. See [3.1.2.](#312-mptokenissuanceset-transaction) for additional details.
6566

6667
#### 3.1.1.1. Fields
6768

@@ -94,7 +95,7 @@ This section outlines changes made to the `MPTokenIssuanceCreate` transaction. I
9495

9596
### 3.1.2. `MPTokenIssuanceSet` Transaction
9697

97-
This section outlines changes made to the `MPTokenIssuanceSet` transaction. In summary, the specification adds a new `DomainID` field to the transaction.
98+
This section describes the modifications made to the `MPTokenIssuanceSet` transaction. A new `DomainID` field has been added to the transaction specification. The `DomainID` can only be changed if the `MPTokenIssuance` object was initially created with a `DomainID`. Additionally, all `MPToken` objects linked to an `MPTokenIssuance` with a PermissionedDomain must have the `lsfMPTDomainCheck` flag enabled. However, there is currently no method to identify all `MPToken` objects associated with a specific `MPTokenIssuance`. Retroactively assigning a `DomainID` would necessitate updating the `lsfMPTDomainCheck` for all related `MPToken` objects. Since these objects cannot be retrieved, this process could lead to inconsistencies.
9899

99100
#### 3.1.2.1. Fields
100101

@@ -105,7 +106,7 @@ This section outlines changes made to the `MPTokenIssuanceSet` transaction. In s
105106
#### 3.1.2.2. Failure Conditions
106107

107108
- The `PermissionedDomain(DomainID)` object does not exist on the ledger.
108-
- If the ` MPTokenIssuance.lsfMPTRequireAuth` flag is NOT set and `DomainID` is provided (a Domain cannot be added to a public Multi-Purpose Token).
109+
- The ` MPTokenIssuance.DomainID` field is not set (a Domain cannot be added to a to a Multi-Purpose Token was not created with a PermissionedDomain).
109110

110111
#### 3.1.2.3. State Changes
111112

@@ -123,7 +124,6 @@ This section outlines changes made to the `MPTokenIssuanceSet` transaction. In s
123124
}
124125
```
125126

126-
127127
## 3.2. `MPToken` Transactions
128128

129129
### 3.2.1.`MPTokenAuthorize` Transaction
@@ -145,7 +145,7 @@ This change does not introduce additional failure conditions.
145145

146146
### 3.3.1. `Payment` Transaction
147147

148-
The following changes are made to the payment transaction.
148+
The following changes have been made to the Payment transaction. When transferring Multi-Purpose Tokens (MPTs) that belong to a PermissionedDomain, both the sender and the receiver must either have credentials accepted in the Domain or receive explicit authorization from the `Issuer`, as indicated by the `MPToken.lsfMPTAuthorized` flag. However, Payment transactions involving the `Issuer` of the Multi-Purpose Token are exempt from this requirement.
149149

150150
#### 3.3.1.1. Fields
151151

0 commit comments

Comments
 (0)