Skip to content

Commit 748297e

Browse files
authored
Merge pull request #2809 from XRPLF/ka_20241015
Update latest amendment status & related fixes
2 parents 7cc34ad + afa179f commit 748297e

File tree

7 files changed

+138
-106
lines changed

7 files changed

+138
-106
lines changed

docs/_snippets/common-links.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -503,6 +503,8 @@
503503
[fixNFTokenRemintの修正]: /resources/known-amendments.md#fixnftokenremint
504504
[fixPayChanRecipientOwnerDir amendment]: /resources/known-amendments.md#fixpaychanrecipientownerdir
505505
[fixPayChanRecipientOwnerDirの修正]: /resources/known-amendments.md#fixpaychanrecipientownerdir
506+
[fixPreviousTxnID amendment]: /resources/known-amendments.md#fixprevioustxnid
507+
[fixPreviousTxnIDの修正]: /resources/known-amendments.md#fixprevioustxnid
506508
[fixQualityUpperBound amendment]: /resources/known-amendments.md#fixqualityupperbound
507509
[fixQualityUpperBoundの修正]: /resources/known-amendments.md#fixqualityupperbound
508510
[fixRemoveNFTokenAutoTrustLine amendment]: /resources/known-amendments.md#fixremovenftokenautotrustline

docs/references/protocol/ledger-data/ledger-entry-types/amendments.md

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,36 +15,47 @@ The `Amendments` ledger entry type contains a list of [Amendments](../../../../c
1515

1616
```json
1717
{
18-
"Majorities": [
19-
{
20-
"Majority": {
21-
"Amendment": "1562511F573A19AE9BD103B5D6B9E01B3B46805AEC5D3C4805C902B514399146",
22-
"CloseTime": 535589001
23-
}
24-
}
25-
],
2618
"Amendments": [
2719
"42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE",
2820
"4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373",
29-
"6781F8368C4771B83E8B821D88F580202BCB4228075297B19E4FDC5233F1EFDC",
30-
"740352F2412A9909880C23A559FCECEDA3BE2126FED62FC7660D628A06927F11"
21+
// (... Long list of enabled amendment IDs ...)
22+
"03BDC0099C4E14163ADA272C1B6F6FABB448CC3E51F522F978041E4B57D9158C",
23+
"35291ADD2D79EB6991343BDA0912269C817D0F094B02226C1C14AD2858962ED4"
3124
],
3225
"Flags": 0,
3326
"LedgerEntryType": "Amendments",
27+
"Majorities": [
28+
{
29+
"Majority": {
30+
"Amendment": "7BB62DC13EC72B775091E9C71BF8CF97E122647693B50C5E87A80DFD6FCFAC50",
31+
"CloseTime": 779561310
32+
}
33+
},
34+
{
35+
"Majority": {
36+
"Amendment": "755C971C29971C9F20C6F080F2ED96F87884E40AD19554A5EBECDCEC8A1F77FE",
37+
"CloseTime": 779561310
38+
}
39+
}
40+
],
3441
"index": "7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4"
3542
}
3643
```
3744

45+
<!-- Note: At time of writing (2024-10-15) fixPreviousTxnID is the most recently enabled amendment, which means that the last time the Amendments entry changed was when it became enabled. Amendments' changes don't apply until the next ledger, so fixPreviousTxnID was not in effect at the time. The PreviousTxnID and PreviousTxnLgrSeq fields will be added to the Amendments entry the next time any amendment gains supermajority support. -->
46+
3847
## {% $frontmatter.seo.title %} Fields
3948

4049
In addition to the [common fields](../common-fields.md), the {% code-page-name /%} ledger entry has the following fields:
4150

42-
| Name | JSON Type | [Internal Type][] | Required? | Description |
43-
|-------------------|-----------|-------------------|-----------|-------------|
44-
| `Amendments` | Array | Vector256 | No | Array of 256-bit [amendment IDs](../../../../concepts/networks-and-servers/amendments.md) for all currently enabled amendments. If omitted, there are no enabled amendments. |
45-
| `Flags` | Number | UInt32 | Yes | A bit-map of boolean flags enabled for this object. Currently, the protocol defines no flags for `Amendments` objects. The value is always `0`. |
46-
| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0066`, mapped to the string `Amendments`, indicates that this object describes the status of amendments to the XRP Ledger. |
47-
| `Majorities` | Array | STArray | No | Array of objects describing the status of amendments that have majority support but are not yet enabled. If omitted, there are no pending amendments with majority support. |
51+
| Name | JSON Type | [Internal Type][] | Required? | Description |
52+
|---------------------|-----------|-------------------|-----------|-------------|
53+
| `Amendments` | Array | Vector256 | No | Array of 256-bit [amendment IDs](../../../../concepts/networks-and-servers/amendments.md) for all currently enabled amendments. If omitted, there are no enabled amendments. |
54+
| `Flags` | Number | UInt32 | Yes | A bit-map of boolean flags enabled for this object. Currently, the protocol defines no flags for `Amendments` objects. The value is always `0`. |
55+
| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0066`, mapped to the string `Amendments`, indicates that this object describes the status of amendments to the XRP Ledger. |
56+
| `Majorities` | Array | STArray | No | Array of objects describing the status of amendments that have majority support but are not yet enabled. If omitted, there are no pending amendments with majority support. |
57+
| `PreviousTxnID` | String | Hash256 | No | The identifying hash of the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
58+
| `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
4859

4960
Each member of the `Majorities` field, if it is present, is an object with one field, `Majority`, whose contents are a nested object with the following fields:
5061

docs/references/protocol/ledger-data/ledger-entry-types/amm.md

Lines changed: 34 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -18,52 +18,44 @@ An `AMM` ledger entry describes a single [Automated Market Maker](../../../../co
1818

1919
```json
2020
{
21-
"Account" : "rE54zDvgnghAoPopCgvtiqWNq3dU5y836S",
22-
"Asset" : {
23-
"currency" : "XRP"
21+
"Account": "rBp3UDRuEteeJqp4rEk5kxMe7BGWNYrF9A",
22+
"Asset": {
23+
"currency": "XRP"
2424
},
25-
"Asset2" : {
26-
"currency" : "TST",
27-
"issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd"
25+
"Asset2": {
26+
"currency": "NEX",
27+
"issuer": "rQGiPFWhaTDdue1xHX7cVpxGqPQK54zng1"
2828
},
29-
"AuctionSlot" : {
30-
"Account" : "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm",
31-
"AuthAccounts" : [
32-
{
33-
"AuthAccount" : {
34-
"Account" : "rMKXGCbJ5d8LbrqthdG46q3f969MVK2Qeg"
35-
}
36-
},
37-
{
38-
"AuthAccount" : {
39-
"Account" : "rBepJuTLFJt3WmtLXYAxSjtBWAeQxVbncv"
40-
}
41-
}
42-
],
43-
"DiscountedFee" : 60,
44-
"Expiration" : 721870180,
45-
"Price" : {
46-
"currency" : "039C99CD9AB0B70B32ECDA51EAAE471625608EA2",
47-
"issuer" : "rE54zDvgnghAoPopCgvtiqWNq3dU5y836S",
48-
"value" : "0.8696263565463045"
29+
"AuctionSlot": {
30+
"Account": "r3ZGQZw1NCbBp5AEGkMDE9NgNpzw91aofD",
31+
"Expiration": 778576560,
32+
"Price": {
33+
"currency": "03DC324562A8915B7C65E9D31B93D62D02BC491C",
34+
"issuer": "rBp3UDRuEteeJqp4rEk5kxMe7BGWNYrF9A",
35+
"value": "0"
4936
}
5037
},
51-
"Flags" : 0,
52-
"LPTokenBalance" : {
53-
"currency" : "039C99CD9AB0B70B32ECDA51EAAE471625608EA2",
54-
"issuer" : "rE54zDvgnghAoPopCgvtiqWNq3dU5y836S",
55-
"value" : "71150.53584131501"
38+
"Flags": 0,
39+
"LPTokenBalance": {
40+
"currency": "03DC324562A8915B7C65E9D31B93D62D02BC491C",
41+
"issuer": "rBp3UDRuEteeJqp4rEk5kxMe7BGWNYrF9A",
42+
"value": "5509581.299648495"
5643
},
57-
"TradingFee" : 600,
58-
"VoteSlots" : [
44+
"LedgerEntryType": "AMM",
45+
"OwnerNode": "0",
46+
"PreviousTxnID": "9E8E9B8FD27391C818525BFF6A29452F7A9888F31622BEF6FC36064D05CF6436",
47+
"PreviousTxnLgrSeq": 91448830,
48+
"TradingFee": 1,
49+
"VoteSlots": [
5950
{
60-
"VoteEntry" : {
61-
"Account" : "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm",
62-
"TradingFee" : 600,
63-
"VoteWeight" : 100000
64-
}
51+
"VoteEntry": {
52+
"Account": "r3ZGQZw1NCbBp5AEGkMDE9NgNpzw91aofD",
53+
"TradingFee": 1,
54+
"VoteWeight": 100000
55+
}
6556
}
66-
]
57+
],
58+
"index": "F490627BACE2D0AA744514A640B4999D50E495DD1677550D8B10E2D20FBB15C3"
6759
}
6860
```
6961

@@ -78,9 +70,12 @@ In addition to the [common fields](../common-fields.md), {% code-page-name /%} e
7870
| `Account` | String | AccountID | Yes | The address of the [special account](accountroot.md#special-amm-accountroot-entries) that holds this AMM's assets. |
7971
| `AuctionSlot` | Object | STObject | No | Details of the current owner of the auction slot, as an [Auction Slot object](#auction-slot-object). |
8072
| `LPTokenBalance` | [Currency Amount][] | Amount | Yes | The total outstanding balance of liquidity provider tokens from this AMM instance. The holders of these tokens can vote on the AMM's trading fee in proportion to their holdings, or redeem the tokens for a share of the AMM's assets which grows with the trading fees collected. |
73+
| `PreviousTxnID` | String | Hash256 | No | The identifying hash of the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
74+
| `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
8175
| `TradingFee` | Number | UInt16 | Yes | The percentage fee to be charged for trades against this AMM instance, in units of 1/100,000. The maximum value is 1000, for a 1% fee. |
8276
| `VoteSlots` | Array | STArray | No | A list of vote objects, representing votes on the pool's trading fee. |
8377

78+
8479
### Auction Slot Object
8580

8681
The `AuctionSlot` field contains an object with the following nested fields:

docs/references/protocol/ledger-data/ledger-entry-types/directorynode.md

Lines changed: 50 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,20 @@ There are three kinds of directory:
2323
{% tab label="Offer Directory" %}
2424
```json
2525
{
26-
"ExchangeRate": "4F069BA8FF484000",
26+
"ExchangeRate": "4e133c40576f7c00",
2727
"Flags": 0,
2828
"Indexes": [
29-
"AD7EAE148287EF12D213A251015F86E6D4BD34B3C4A0A1ED9A17198373F908AD"
29+
"353E55E7A0B0E82D16DF6E748D48BDAFE4C56045DF5A8B0ED723FF3C38A4787A"
3030
],
3131
"LedgerEntryType": "DirectoryNode",
32-
"RootIndex": "1BBEF97EDE88D40CEE2ADE6FEF121166AFE80D99EBADB01A4F069BA8FF484000",
32+
"PreviousTxnID": "0F79E60C8642A23658ECB29D939499EA0F28D804077B7EE16613BE0C813A2DD6",
33+
"PreviousTxnLgrSeq": 91448326,
34+
"RootIndex": "79C54A4EBD69AB2EADCE313042F36092BE432423CC6A4F784E133C40576F7C00",
3335
"TakerGetsCurrency": "0000000000000000000000000000000000000000",
3436
"TakerGetsIssuer": "0000000000000000000000000000000000000000",
35-
"TakerPaysCurrency": "0000000000000000000000004A50590000000000",
36-
"TakerPaysIssuer": "5BBC0F22F61D9224A110650CFE21CC0C4BE13098",
37-
"index": "1BBEF97EDE88D40CEE2ADE6FEF121166AFE80D99EBADB01A4F069BA8FF484000"
37+
"TakerPaysCurrency": "0000000000000000000000005553440000000000",
38+
"TakerPaysIssuer": "2ADB0B3959D60A6E6991F729E1918B7163925230",
39+
"index": "79C54A4EBD69AB2EADCE313042F36092BE432423CC6A4F784E133C40576F7C00"
3840
}
3941
```
4042
{% /tab %}
@@ -43,37 +45,46 @@ There are three kinds of directory:
4345
```json
4446
{
4547
"Flags": 0,
48+
"IndexNext": "0",
49+
"IndexPrevious": "0",
4650
"Indexes": [
47-
"AD7EAE148287EF12D213A251015F86E6D4BD34B3C4A0A1ED9A17198373F908AD",
48-
"E83BBB58949A8303DF07172B16FB8EFBA66B9191F3836EC27A4568ED5997BAC5"
51+
"1192C0191D1B8861AA6F5A84A575E0CBE4B97574A5E8B3D7B7AD64643EE38CA7",
52+
"16A0674079229DB47EDDF4FD83AFEA59ADAC944DD5F16EA5D9C989ED8F918AE0",
53+
"1F65776E640C97B76E365763E97E5B59B6C4CDBB46FB7C8869D1712528985E6D",
54+
"35D6A9F578E63C875EDB6348E55EFADBD300A0817290276D8CC3DD3587FAD4B3",
55+
"36B236D80688C2975A5D24935020B75BEB4B26F5115D71943356E86CCD3B8CE4",
56+
"39E8F12D519E5C6C1AC36434D7340281C362508B7D5BC863166C8FE8621A124C",
57+
"4DF14053E1BD697C5B4A4A1A7BA8988BD802F0CD5DB6ED9C2AC74AD8A7B91A35",
58+
"5E2D97ABAB0D2BE1948F275823096597E3359DD0696CF2938A712169394236BE",
59+
"678CE03A2F8157FBF7D5EFDED2D55D127F60EC26BC4F51DBC8FB05DF370B248E",
60+
"8250CE37F6495903C1F7D16E072E8823ECE06FA73F011A0F8D79D5626BF581BB",
61+
"C353DA9F84EB02B4206D6F5166A9277916559115EEDF7B841C38E4473084A010",
62+
"CB2D979DE863A7AF792A12D6C4518E2B299EF782E361705DE7F1D0077521D521",
63+
"DFA7CB434A3D9D782C2FACEB95F431476D3AAAD62078C0FBE8C115E00039C6F5"
4964
],
5065
"LedgerEntryType": "DirectoryNode",
51-
"Owner": "rpR95n1iFkTqpoy1e878f4Z1pVHVtWKMNQ",
52-
"RootIndex": "193C591BF62482468422313F9D3274B5927CA80B4DD3707E42015DD609E39C94",
53-
"index": "193C591BF62482468422313F9D3274B5927CA80B4DD3707E42015DD609E39C94"
66+
"Owner": "rBTwLga3i2gz3doX6Gva3MgEV8ZCD8jjah",
67+
"PreviousTxnID": "CB802FC111C4C03B1E1D762E813D3F1F47347E57C68D00B5F92822C417C2484C",
68+
"PreviousTxnLgrSeq": 91448329,
69+
"RootIndex": "0A2600D85F8309FE7F75A490C19613F1CE0C37483B856DB69B8140154C2335F3",
70+
"index": "0A2600D85F8309FE7F75A490C19613F1CE0C37483B856DB69B8140154C2335F3"
5471
}
5572
```
5673
{% /tab %}
5774

5875
{% tab label="NFT Offer Directory" %}
5976
```json
6077
{
61-
"result": {
62-
"index": "CC45A27DAF06BFA45E8AFC92801AD06A06B7004DAD0F7022E439B3A2F6FA5B5A",
63-
"ledger_current_index": 310,
64-
"node": {
65-
"Flags": 2,
66-
"Indexes": [
67-
"83C81AC39F9771DDBCD66F6C225FC76EFC0971384EC6148BAFA5BD18019FC495"
68-
],
69-
"LedgerEntryType": "DirectoryNode",
70-
"NFTokenID": "000800009988C43C563A7BB35AF34D642990CDF089F11B445EB3DCCD00000132",
71-
"RootIndex": "CC45A27DAF06BFA45E8AFC92801AD06A06B7004DAD0F7022E439B3A2F6FA5B5A",
72-
"index": "CC45A27DAF06BFA45E8AFC92801AD06A06B7004DAD0F7022E439B3A2F6FA5B5A"
73-
},
74-
"status": "success",
75-
"validated": false
76-
}
78+
"Flags": 1,
79+
"Indexes": [
80+
"68227B203065DED9EEB8B73FC952494A1DA6A69CEABEAA99923836EB5E77C95A"
81+
],
82+
"LedgerEntryType": "DirectoryNode",
83+
"NFTokenID": "000822603EA060FD1026C04B2D390CC132D07D600DA9B082CB5CE9AC0487E50B",
84+
"PreviousTxnID": "EF8A9AD51E7CC6BBD219C3C980EC3145C7B0814ED3184471FD952D9D23A1918D",
85+
"PreviousTxnLgrSeq": 91448417,
86+
"RootIndex": "0EC5802BD1AB56527A9DE524CCA2A2BA25E1085CCE7EA112940ED115FFF91EE2",
87+
"index": "0EC5802BD1AB56527A9DE524CCA2A2BA25E1085CCE7EA112940ED115FFF91EE2"
7788
}
7889
```
7990
{% /tab %}
@@ -90,18 +101,27 @@ There are three kinds of directory:
90101
| `IndexNext` | Number | UInt64 | No | If this directory consists of multiple pages, this ID links to the next object in the chain, wrapping around at the end. |
91102
| `IndexPrevious` | Number | UInt64 | No | If this directory consists of multiple pages, this ID links to the previous object in the chain, wrapping around at the beginning. |
92103
| `LedgerEntryType` | String | UInt16 | Yes | The value `0x0064`, mapped to the string `DirectoryNode`, indicates that this object is part of a directory. |
93-
| `NFTokenID` | String | Hash25 | No |(NFT offer directories only) ID of the NFT in a buy or sell offer. |
104+
| `NFTokenID` | String | Hash256 | No | (NFT offer directories only) ID of the NFT in a buy or sell offer. |
94105
| `Owner` | String | AccountID | No | (Owner directories only) The address of the account that owns the objects in this directory. |
106+
| `PreviousTxnID` | String | Hash256 | No | The identifying hash of the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
107+
| `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
95108
| `RootIndex` | String | Hash256 | Yes | The ID of root object for this directory. |
96109
| `TakerGetsCurrency` | String | Hash160 | No | (Offer directories only) The currency code of the `TakerGets` amount from the offers in this directory. |
97110
| `TakerGetsIssuer` | String | Hash160 | No | (Offer directories only) The issuer of the `TakerGets` amount from the offers in this directory. |
98-
| `TakerPaysCurrency` | String | Hash160 | No |(Offer directories only) The currency code of the `TakerPays` amount from the offers in this directory. |
111+
| `TakerPaysCurrency` | String | Hash160 | No | (Offer directories only) The currency code of the `TakerPays` amount from the offers in this directory. |
99112
| `TakerPaysIssuer` | String | Hash160 | No | (Offer directories only) The issuer of the `TakerPays` amount from the offers in this directory. |
100113

101114

102115
## {% $frontmatter.seo.title %} Flags
103116

104-
There are no flags defined for {% code-page-name /%} entries.
117+
{% code-page-name /%} entries can have the following values in the `Flags` field:
118+
119+
| Flag Name | Hex Value | Decimal Value | Description |
120+
|:-----------------------|:-------------|:--------------|:------------|
121+
| `lsfNFTokenBuyOffers` | `0x00000001` | 1 | This directory contains NFT buy offers. |
122+
| `lsfNFTokenSellOffers` | `0x00000002` | 2 | This directory contains NFT sell offers. |
123+
124+
Owner directories and offer directories for fungible tokens do not use flags; their `Flags` value is always 0.
105125

106126

107127
## {% $frontmatter.seo.title %} Reserve

docs/references/protocol/ledger-data/ledger-entry-types/feesettings.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ In addition to the [common fields](../common-fields.md), the {% code-page-name /
3737
| `ReferenceFeeUnits` | Number | UInt32 | Yes | The `BaseFee` translated into "fee units". |
3838
| `ReserveBase` | Number | UInt32 | Yes | The [base reserve](../../../../concepts/accounts/reserves.md#base-reserve-and-owner-reserve) for an account in the XRP Ledger, as drops of XRP. |
3939
| `ReserveIncrement` | Number | UInt32 | Yes | The incremental [owner reserve](../../../../concepts/accounts/reserves.md#base-reserve-and-owner-reserve) for owning objects, as drops of XRP. |
40+
| `PreviousTxnID` | String | Hash256 | No | The identifying hash of the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
41+
| `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. _(Added by the [fixPreviousTxnID amendment][].)_ |
4042

4143
{% admonition type="danger" name="Warning" %}The JSON format for this ledger entry type is unusual. The `BaseFee`, `ReserveBase`, and `ReserveIncrement` indicate drops of XRP but ***not*** in the usual format for [specifying XRP][Currency Amount].{% /admonition %}
4244

0 commit comments

Comments
 (0)