-
Notifications
You must be signed in to change notification settings - Fork 1.1k
update mpt docs for permissioneddomains #3251
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: rippled-3.0.0
Are you sure you want to change the base?
Changes from 3 commits
f20f8c5
015f3ab
45e0809
b9a0772
1143443
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||
|---|---|---|---|---|
|
|
@@ -13,7 +13,7 @@ If the transaction is successful, the newly created token is owned by the accoun | |||
|
|
||||
| Whenever your query returns an `MPTokenIssuance` transaction response, there will always be an `mpt_issuance_id` field on the Transaction Metadata page. | ||||
|
|
||||
| _(Requires the [MPTokensV1 amendment][] {% not-enabled /%}.)_ | ||||
| {% amendment-disclaimer name="MPTokensV1" /%} | ||||
|
|
||||
| ## Example MPTokenIssuanceCreate JSON | ||||
|
|
||||
|
|
@@ -37,6 +37,7 @@ This example assumes that the issuer of the token is the signer of the transacti | |||
| | Field | JSON Type | [Internal Type][] | Required? | Description | | ||||
| |:------------------|:---------------------|:------------------|:----------|:------------| | ||||
| | `AssetScale` | Number | UInt8 | No | Where to put the decimal place when displaying amounts of this MPT. More formally, the asset scale is a non-negative integer (0, 1, 2, …) such that one standard unit equals 10^(-scale) of a corresponding fractional unit. For example, if a US Dollar Stablecoin has an asset scale of _2_, then 1 unit of that MPT would equal 0.01 US Dollars. This indicates to how many decimal places the MPT can be subdivided. If omitted, the default is 0, meaning that the MPT cannot be divided into smaller than 1 unit. | | ||||
| | `DomainID` | String - [Hash][] | UInt256 | No | The ledger entry ID of a permissioned domain that will manage access to the MPT. You must set the `tfMPTRequireAuth` flag to use permissioned domains.<br>{% amendment-disclaimer name="PermissionedDomains" /%}<br>{% amendment-disclaimer name="SingleAssetVault" /%} | | ||||
| | `TransferFee` | Number | UInt16 | No | The value specifies the fee to charged by the issuer for secondary sales of the Token, if such sales are allowed. Valid values for this field are between 0 and 50,000 inclusive, allowing transfer rates of between 0.000% and 50.000% in increments of 0.001. The field _must not_ be present if the tfMPTCanTransfer flag is not set. If it is, the transaction should fail and a fee should be claimed. | | ||||
| | `MaximumAmount` | String - Number | UInt64 | No | The maximum asset amount of this token that can ever be issued, as a base-10 number encoded as a string. The current default maximum limit is 9,223,372,036,854,775,807 (2^63-1). _This limit may increase in the future. If an upper limit is required, you must specify this field._ | | ||||
| | `MPTokenMetadata` | String - Hexadecimal | Blob | No | Arbitrary metadata about this issuance. The limit for this field is 1024 bytes. By convention, the metadata should decode to JSON data describing what the MPT represents. The [XLS-89d specification](https://github.com/XRPLF/XRPL-Standards/pull/293) defines a recommended format for metadata. | | ||||
|
|
@@ -54,4 +55,16 @@ Transactions of the MPTokenIssuanceCreate type support additional values in the | |||
| | `tfMPTCanTransfer` | `0x00000020` | `32` | If set, indicates that tokens can be transferred to other accounts that are not the issuer. | | ||||
| | `tfMPTCanClawback` | `0x00000040` | `64` | If set, indicates that the issuer can use the `Clawback` transaction to claw back value from individual holders. | | ||||
|
|
||||
| ## Error Cases | ||||
|
|
||||
| Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): | ||||
|
|
||||
| | Error Code | Description | | ||||
| |:--------------------------|:------------| | ||||
| | `tecDIR_FULL` | The owner directory of the account creating the `MPTokenIssuance` ledger entry is full. | | ||||
| | `temBAD_TRANSFER_FEE` | The transfer fee specified is greater than the maximum allowed value of 50,000. | | ||||
| | `temDISABLED` | The `MPTokensV1` amendment is disabled. You will also receive this error if you include a `DomainID` field in the transaction, but the `PermissionedDomains` and `SingleAssetVault` amendments are both disabled. | | ||||
| | `tecINSUFFICIENT_RESERVE` | The account creating the `MPTokenIssuance` ledger entry doesn't have enough XRP to meet the owner reserve. | | ||||
| | `temMALFORMED` | - A non-zero transfer fee is set, but the `tfMPTCanTransfer` flag is _not_ set.<br>- The `DomainID` points to an invalid permissioned domain; you can also receive this error if you include a `DomainID` without setting the `tfMPTRequireAuth` flag.<br>- The `MPTokenMetadata` field is an invalid length (0 or exceeds 1024 bytes).<br>- The `MaximumAmount` field is 0 or exceeds 9,223,372,036,854,775,807 (2^63-1). | | ||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. True, but I think it's helpful to explain what specifically you could be malforming to make it easier for someone to troubleshoot. Maybe I could preface it with something like: "Besides generally malformed transactions, you can receive this error if ..." |
||||
|
|
||||
| {% raw-partial file="/docs/_snippets/common-links.md" /%} | ||||
| Original file line number | Diff line number | Diff line change | ||
|---|---|---|---|---|
|
|
@@ -8,7 +8,7 @@ labels: | |||
|
|
||||
| Use this transaction to update a mutable property for a Multi-purpose Token. The transaction flags determine which change(s) to apply. | ||||
|
|
||||
| _(Requires the [MPTokensV1 amendment][] {% not-enabled /%}.)_ | ||||
| {% amendment-disclaimer name="MPTokensV1" /%} | ||||
|
|
||||
| ## Example | ||||
|
|
||||
|
|
@@ -27,6 +27,7 @@ _(Requires the [MPTokensV1 amendment][] {% not-enabled /%}.)_ | |||
|
|
||||
| | Field | JSON Type | [Internal Type][] | Required? | Description | | ||||
| |:--------------------|:---------------------|:------------------|:----------|-------------| | ||||
| | `DomainID` | String - [Hash][] | UInt256 | No | The ledger entry ID of a permissioned domain that will manage access to the MPT. An empy value or `0` will remove permissioned domain access management. Any accounts that lose access to the MPT because of `DomainID` updates--unless explicitly authorized by the MPT issuer--lose the ability to send or receive MPTs they already hold. The `tfMPTRequireAuth` flag must have been set in the `MPTokenIssuanceCreate` transaction to use permissioned domains.<br>{% amendment-disclaimer name="PermissionedDomains" /%}<br>{% amendment-disclaimer name="SingleAssetVault" /%} | | ||||
oeggert marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||
| | `MPTokenIssuanceID` | String - Hexadecimal | UInt192 | Yes | The identifier of the `MPTokenIssuance` to update. | | ||||
| | `Holder` | String - [Address][] | AccountID | No | An individual token holder. If provided, apply changes to the given holder's balance of the given MPT issuance. If omitted, apply to all accounts holding the given MPT issuance. | | ||||
|
|
||||
|
|
@@ -39,4 +40,17 @@ Transactions of the `MPTokenIssuanceSet` type support additional values in the ` | |||
| | `tfMPTLock` | `0x00000001` | 1 | Enable to lock balances of this MPT issuance. | | ||||
| | `tfMPTUnlock` | `0x00000002` | 2 | Enable to unlock balances of this MPT issuance. | | ||||
|
|
||||
| ## Error Cases | ||||
|
|
||||
| Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): | ||||
|
|
||||
| | Error Code | Description | | ||||
| |:--------------------------|:------------| | ||||
| | `temDISABLED` | The `MPTokensV1` amendment is disabled. You will also receive this error if you include a `DomainID` field in the transaction, but the `PermissionedDomains` and `SingleAssetVault` amendments are both disabled. | | ||||
| | `tecNO_DELEGATE_PERMISSION` | You are attempting to use a delegate account with insufficient permissions to submit this transaction. | | ||||
oeggert marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||
| | `tecNO_DST` | The account specified in the `Holder` field doesn't exist. | | ||||
| | `tecNO_PERMISSION` | - The `lsfMPTCanLock` flag isn't enabled, but you are attempting to lock or unlock an MPT.<br>- The `SingleAssetVault` amendment is disabled and you're trying to modify a `DomainID` field. | | ||||
oeggert marked this conversation as resolved.
Show resolved
Hide resolved
|
||||
| | `temMALFORMED` | - You specified a `DomainID` and `Holder` value--only one can be set in a single transaction.<br>- You specified the same account for both `Acount` and `Holder`.<br>- The transaction isn't changing anything; it must either update a flag or modify the `DomainID`. | | ||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Same comment in issuancecreate. I think it's helpful to explain how you'd malform this specific transaction. |
||||
| | `tecOBJECT_NOT_FOUND` | The specified `MPToken`, `MPTokenIssuance`, or `PermissionedDomain` ledger entry doesn't exist. | | ||||
|
|
||||
| {% raw-partial file="/docs/_snippets/common-links.md" /%} | ||||
Uh oh!
There was an error while loading. Please reload this page.