xrpl 2.13.0 → 2.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/build/xrpl-latest-min.js +1 -1
  2. package/build/xrpl-latest-min.js.map +1 -1
  3. package/build/xrpl-latest.js +984 -1033
  4. package/build/xrpl-latest.js.map +1 -1
  5. package/dist/npm/Wallet/defaultFaucets.d.ts +1 -3
  6. package/dist/npm/Wallet/defaultFaucets.d.ts.map +1 -1
  7. package/dist/npm/Wallet/defaultFaucets.js +0 -7
  8. package/dist/npm/Wallet/defaultFaucets.js.map +1 -1
  9. package/dist/npm/client/index.d.ts +2 -1
  10. package/dist/npm/client/index.d.ts.map +1 -1
  11. package/dist/npm/client/index.js.map +1 -1
  12. package/dist/npm/models/ledger/Bridge.d.ts +1 -1
  13. package/dist/npm/models/ledger/Bridge.d.ts.map +1 -1
  14. package/dist/npm/models/ledger/DID.d.ts +11 -0
  15. package/dist/npm/models/ledger/DID.d.ts.map +1 -0
  16. package/dist/npm/models/ledger/DID.js +3 -0
  17. package/dist/npm/models/ledger/DID.js.map +1 -0
  18. package/dist/npm/models/ledger/LedgerEntry.d.ts +1 -1
  19. package/dist/npm/models/ledger/LedgerEntry.d.ts.map +1 -1
  20. package/dist/npm/models/ledger/index.d.ts +2 -1
  21. package/dist/npm/models/ledger/index.d.ts.map +1 -1
  22. package/dist/npm/models/ledger/index.js.map +1 -1
  23. package/dist/npm/models/methods/index.d.ts +4 -3
  24. package/dist/npm/models/methods/index.d.ts.map +1 -1
  25. package/dist/npm/models/methods/ledgerEntry.d.ts +1 -0
  26. package/dist/npm/models/methods/ledgerEntry.d.ts.map +1 -1
  27. package/dist/npm/models/methods/serverDefinitions.d.ts +32 -0
  28. package/dist/npm/models/methods/serverDefinitions.d.ts.map +1 -0
  29. package/dist/npm/models/methods/serverDefinitions.js +3 -0
  30. package/dist/npm/models/methods/serverDefinitions.js.map +1 -0
  31. package/dist/npm/models/methods/tx.d.ts +3 -1
  32. package/dist/npm/models/methods/tx.d.ts.map +1 -1
  33. package/dist/npm/models/transactions/DIDDelete.d.ts +6 -0
  34. package/dist/npm/models/transactions/DIDDelete.d.ts.map +1 -0
  35. package/dist/npm/models/transactions/DIDDelete.js +9 -0
  36. package/dist/npm/models/transactions/DIDDelete.js.map +1 -0
  37. package/dist/npm/models/transactions/DIDSet.d.ts +9 -0
  38. package/dist/npm/models/transactions/DIDSet.d.ts.map +1 -0
  39. package/dist/npm/models/transactions/DIDSet.js +18 -0
  40. package/dist/npm/models/transactions/DIDSet.js.map +1 -0
  41. package/dist/npm/models/transactions/index.d.ts +2 -0
  42. package/dist/npm/models/transactions/index.d.ts.map +1 -1
  43. package/dist/npm/models/transactions/index.js.map +1 -1
  44. package/dist/npm/models/transactions/transaction.d.ts +3 -1
  45. package/dist/npm/models/transactions/transaction.d.ts.map +1 -1
  46. package/dist/npm/models/transactions/transaction.js +20 -12
  47. package/dist/npm/models/transactions/transaction.js.map +1 -1
  48. package/dist/npm/snippets/src/bridgeTransfer.js +2 -3
  49. package/dist/npm/snippets/src/bridgeTransfer.js.map +1 -1
  50. package/dist/npm/snippets/tsconfig.tsbuildinfo +1 -1
  51. package/dist/npm/src/Wallet/defaultFaucets.d.ts +1 -3
  52. package/dist/npm/src/Wallet/defaultFaucets.d.ts.map +1 -1
  53. package/dist/npm/src/Wallet/defaultFaucets.js +0 -7
  54. package/dist/npm/src/Wallet/defaultFaucets.js.map +1 -1
  55. package/dist/npm/src/client/index.d.ts +2 -1
  56. package/dist/npm/src/client/index.d.ts.map +1 -1
  57. package/dist/npm/src/client/index.js.map +1 -1
  58. package/dist/npm/src/models/ledger/Bridge.d.ts +1 -1
  59. package/dist/npm/src/models/ledger/Bridge.d.ts.map +1 -1
  60. package/dist/npm/src/models/ledger/DID.d.ts +11 -0
  61. package/dist/npm/src/models/ledger/DID.d.ts.map +1 -0
  62. package/dist/npm/src/models/ledger/DID.js +3 -0
  63. package/dist/npm/src/models/ledger/DID.js.map +1 -0
  64. package/dist/npm/src/models/ledger/LedgerEntry.d.ts +1 -1
  65. package/dist/npm/src/models/ledger/LedgerEntry.d.ts.map +1 -1
  66. package/dist/npm/src/models/ledger/index.d.ts +2 -1
  67. package/dist/npm/src/models/ledger/index.d.ts.map +1 -1
  68. package/dist/npm/src/models/ledger/index.js.map +1 -1
  69. package/dist/npm/src/models/methods/index.d.ts +4 -3
  70. package/dist/npm/src/models/methods/index.d.ts.map +1 -1
  71. package/dist/npm/src/models/methods/ledgerEntry.d.ts +1 -0
  72. package/dist/npm/src/models/methods/ledgerEntry.d.ts.map +1 -1
  73. package/dist/npm/src/models/methods/serverDefinitions.d.ts +32 -0
  74. package/dist/npm/src/models/methods/serverDefinitions.d.ts.map +1 -0
  75. package/dist/npm/src/models/methods/serverDefinitions.js +3 -0
  76. package/dist/npm/src/models/methods/serverDefinitions.js.map +1 -0
  77. package/dist/npm/src/models/methods/tx.d.ts +3 -1
  78. package/dist/npm/src/models/methods/tx.d.ts.map +1 -1
  79. package/dist/npm/src/models/transactions/DIDDelete.d.ts +6 -0
  80. package/dist/npm/src/models/transactions/DIDDelete.d.ts.map +1 -0
  81. package/dist/npm/src/models/transactions/DIDDelete.js +9 -0
  82. package/dist/npm/src/models/transactions/DIDDelete.js.map +1 -0
  83. package/dist/npm/src/models/transactions/DIDSet.d.ts +9 -0
  84. package/dist/npm/src/models/transactions/DIDSet.d.ts.map +1 -0
  85. package/dist/npm/src/models/transactions/DIDSet.js +18 -0
  86. package/dist/npm/src/models/transactions/DIDSet.js.map +1 -0
  87. package/dist/npm/src/models/transactions/index.d.ts +2 -0
  88. package/dist/npm/src/models/transactions/index.d.ts.map +1 -1
  89. package/dist/npm/src/models/transactions/index.js.map +1 -1
  90. package/dist/npm/src/models/transactions/transaction.d.ts +3 -1
  91. package/dist/npm/src/models/transactions/transaction.d.ts.map +1 -1
  92. package/dist/npm/src/models/transactions/transaction.js +20 -12
  93. package/dist/npm/src/models/transactions/transaction.js.map +1 -1
  94. package/dist/npm/src/utils/parseNFTokenID.d.ts.map +1 -1
  95. package/dist/npm/src/utils/parseNFTokenID.js +10 -1
  96. package/dist/npm/src/utils/parseNFTokenID.js.map +1 -1
  97. package/dist/npm/utils/parseNFTokenID.d.ts.map +1 -1
  98. package/dist/npm/utils/parseNFTokenID.js +10 -1
  99. package/dist/npm/utils/parseNFTokenID.js.map +1 -1
  100. package/package.json +3 -3
  101. package/src/Wallet/defaultFaucets.ts +0 -8
  102. package/src/Wallet/fundWallet.ts +1 -1
  103. package/src/client/index.ts +5 -0
  104. package/src/models/ledger/Bridge.ts +7 -7
  105. package/src/models/ledger/DID.ts +22 -0
  106. package/src/models/ledger/LedgerEntry.ts +1 -0
  107. package/src/models/ledger/index.ts +2 -0
  108. package/src/models/methods/index.ts +8 -0
  109. package/src/models/methods/ledgerEntry.ts +6 -0
  110. package/src/models/methods/nftInfo.ts +1 -1
  111. package/src/models/methods/serverDefinitions.ts +61 -0
  112. package/src/models/methods/subscribe.ts +1 -1
  113. package/src/models/methods/tx.ts +12 -1
  114. package/src/models/transactions/DIDDelete.ts +20 -0
  115. package/src/models/transactions/DIDSet.ts +49 -0
  116. package/src/models/transactions/XChainAccountCreateCommit.ts +1 -1
  117. package/src/models/transactions/index.ts +2 -0
  118. package/src/models/transactions/transaction.ts +32 -20
  119. package/src/utils/parseNFTokenID.ts +11 -1
@@ -1 +1 @@
1
- {"version":3,"file":"parseNFTokenID.js","sourceRoot":"","sources":["../../../src/utils/parseNFTokenID.ts"],"names":[],"mappings":";;;;;AACA,gEAAoC;AACpC,+DAAsD;AAEtD,sCAAqC;AAoBrC,SAAS,eAAe,CAAC,KAAa,EAAE,QAAgB;IAEtD,OAAO,CAAC,KAAK,GAAG,CAAC,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC,GAAG,UAAU,CAAA;AAE7D,CAAC;AAyBD,SAAwB,cAAc,CAAC,SAAiB;IAQtD,MAAM,cAAc,GAAG,EAAE,CAAA;IACzB,IAAI,SAAS,CAAC,MAAM,KAAK,cAAc,EAAE;QACvC,MAAM,IAAI,kBAAS,CAAC,+CAA+C,SAAS,CAAC,MAAM;yCAC9C,cAAc,EAAE,CAAC,CAAA;KACvD;IAED,MAAM,cAAc,GAAG,IAAI,sBAAS,CAClC,SAAS,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAC3B,EAAE,CACH,CAAC,QAAQ,EAAE,CAAA;IACZ,MAAM,QAAQ,GAAG,IAAI,sBAAS,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAA;IAE1E,MAAM,aAAa,GAAG;QACpB,SAAS,EAAE,SAAS;QACpB,KAAK,EAAE,IAAI,sBAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC9D,WAAW,EAAE,IAAI,sBAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;QACpE,MAAM,EAAE,IAAA,sCAAe,EAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACvE,KAAK,EAAE,eAAe,CAAC,cAAc,EAAE,QAAQ,CAAC;QAChD,QAAQ,EAAE,QAAQ;KACnB,CAAA;IAED,OAAO,aAAa,CAAA;AACtB,CAAC;AA9BD,iCA8BC"}
1
+ {"version":3,"file":"parseNFTokenID.js","sourceRoot":"","sources":["../../../src/utils/parseNFTokenID.ts"],"names":[],"mappings":";;;;;AACA,gEAAoC;AACpC,+DAAsD;AAEtD,sCAAqC;AAoBrC,SAAS,eAAe,CAAC,KAAa,EAAE,QAAgB;IAEtD,MAAM,IAAI,GAAG,SAAS,CAAA;IACtB,MAAM,SAAS,GAAG,IAAI,CAAA;IACtB,MAAM,GAAG,GAAG,UAAU,CAAA;IAEtB,MAAM,QAAQ,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC;SACjC,YAAY,CAAC,QAAQ,CAAC;SACtB,MAAM,CAAC,GAAG,CAAC;SACX,IAAI,CAAC,SAAS,CAAC;SACf,MAAM,CAAC,GAAG,CAAC;SACX,QAAQ,EAAE,CAAA;IACb,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;AAEjC,CAAC;AAyBD,SAAwB,cAAc,CAAC,SAAiB;IAQtD,MAAM,cAAc,GAAG,EAAE,CAAA;IACzB,IAAI,SAAS,CAAC,MAAM,KAAK,cAAc,EAAE;QACvC,MAAM,IAAI,kBAAS,CAAC,+CAA+C,SAAS,CAAC,MAAM;yCAC9C,cAAc,EAAE,CAAC,CAAA;KACvD;IAED,MAAM,cAAc,GAAG,IAAI,sBAAS,CAClC,SAAS,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAC3B,EAAE,CACH,CAAC,QAAQ,EAAE,CAAA;IACZ,MAAM,QAAQ,GAAG,IAAI,sBAAS,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAA;IAE1E,MAAM,aAAa,GAAG;QACpB,SAAS,EAAE,SAAS;QACpB,KAAK,EAAE,IAAI,sBAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC9D,WAAW,EAAE,IAAI,sBAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;QACpE,MAAM,EAAE,IAAA,sCAAe,EAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACvE,KAAK,EAAE,eAAe,CAAC,cAAc,EAAE,QAAQ,CAAC;QAChD,QAAQ,EAAE,QAAQ;KACnB,CAAA;IAED,OAAO,aAAa,CAAA;AACtB,CAAC;AA9BD,iCA8BC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xrpl",
3
- "version": "2.13.0",
3
+ "version": "2.14.0",
4
4
  "license": "ISC",
5
5
  "description": "A TypeScript/JavaScript API for interacting with the XRP Ledger in Node.js and the browser",
6
6
  "files": [
@@ -29,7 +29,7 @@
29
29
  "https-proxy-agent": "^5.0.0",
30
30
  "lodash": "^4.17.4",
31
31
  "ripple-address-codec": "^4.3.1",
32
- "ripple-binary-codec": "^1.10.0",
32
+ "ripple-binary-codec": "^1.11.0",
33
33
  "ripple-keypairs": "^1.3.1",
34
34
  "ws": "^8.2.2",
35
35
  "xrpl-secret-numbers": "^0.3.3"
@@ -91,5 +91,5 @@
91
91
  "engines": {
92
92
  "node": ">=10.13.0"
93
93
  },
94
- "gitHead": "29c5a70ebc717fee88354264d1ef9285c7142d90"
94
+ "gitHead": "99dd0eb44c00b6a4e934467a68036f15320ae69b"
95
95
  }
@@ -14,17 +14,13 @@ export interface FaucetWallet {
14
14
  export enum FaucetNetwork {
15
15
  Testnet = 'faucet.altnet.rippletest.net',
16
16
  Devnet = 'faucet.devnet.rippletest.net',
17
- AMMDevnet = 'ammfaucet.devnet.rippletest.net',
18
17
  HooksV3Testnet = 'hooks-testnet-v3.xrpl-labs.com',
19
- SidechainDevnet = 'sidechain-faucet.devnet.rippletest.net',
20
18
  }
21
19
 
22
20
  export const FaucetNetworkPaths: Record<string, string> = {
23
21
  [FaucetNetwork.Testnet]: '/accounts',
24
22
  [FaucetNetwork.Devnet]: '/accounts',
25
- [FaucetNetwork.AMMDevnet]: '/accounts',
26
23
  [FaucetNetwork.HooksV3Testnet]: '/accounts',
27
- [FaucetNetwork.SidechainDevnet]: '/accounts',
28
24
  }
29
25
 
30
26
  /**
@@ -46,10 +42,6 @@ export function getFaucetHost(client: Client): FaucetNetwork | undefined {
46
42
  return FaucetNetwork.Testnet
47
43
  }
48
44
 
49
- if (connectionUrl.includes('amm')) {
50
- return FaucetNetwork.AMMDevnet
51
- }
52
-
53
45
  if (connectionUrl.includes('sidechain-net2')) {
54
46
  throw new XRPLFaucetError(
55
47
  'Cannot fund an account on an issuing chain. Accounts must be created via the bridge.',
@@ -67,7 +67,7 @@ const MAX_ATTEMPTS = 20
67
67
  * @param wallet - An existing XRPL Wallet to fund. If undefined or null, a new Wallet will be created.
68
68
  * @param options - See below.
69
69
  * @param options.faucetHost - A custom host for a faucet server. On devnet,
70
- * testnet, AMM devnet, and HooksV3 testnet, `fundWallet` will
70
+ * testnet, devnet, and HooksV3 testnet, `fundWallet` will
71
71
  * attempt to determine the correct server automatically. In other environments,
72
72
  * or if you would like to customize the faucet host in devnet or testnet,
73
73
  * you should provide the host using this option.
@@ -98,6 +98,8 @@ import {
98
98
  // AMM methods
99
99
  AMMInfoRequest,
100
100
  AMMInfoResponse,
101
+ ServerDefinitionsRequest,
102
+ ServerDefinitionsResponse,
101
103
  } from '../models/methods'
102
104
  import { BaseRequest, BaseResponse } from '../models/methods/baseMethod'
103
105
  import {
@@ -346,6 +348,9 @@ class Client extends EventEmitter {
346
348
  public async request(
347
349
  r: RipplePathFindRequest,
348
350
  ): Promise<RipplePathFindResponse>
351
+ public async request(
352
+ r: ServerDefinitionsRequest,
353
+ ): Promise<ServerDefinitionsResponse>
349
354
  public async request(r: ServerInfoRequest): Promise<ServerInfoResponse>
350
355
  public async request(r: ServerStateRequest): Promise<ServerStateResponse>
351
356
  public async request(r: SubmitRequest): Promise<SubmitResponse>
@@ -22,13 +22,6 @@ export default interface Bridge extends BaseLedgerEntry, HasPreviousTxnID {
22
22
  */
23
23
  SignatureReward: Amount
24
24
 
25
- /**
26
- * The minimum amount, in XRP, required for an {@link XChainAccountCreateCommit}
27
- * transaction. If this isn't present, the {@link XChainAccountCreateCommit}
28
- * transaction will fail. This field can only be present on XRP-XRP bridges.
29
- */
30
- MinAccountCreateAmount?: string
31
-
32
25
  /**
33
26
  * The door accounts and assets of the bridge this object correlates to.
34
27
  */
@@ -58,6 +51,13 @@ export default interface Bridge extends BaseLedgerEntry, HasPreviousTxnID {
58
51
  */
59
52
  XChainAccountClaimCount: string
60
53
 
54
+ /**
55
+ * The minimum amount, in XRP, required for an {@link XChainAccountCreateCommit}
56
+ * transaction. If this isn't present, the {@link XChainAccountCreateCommit}
57
+ * transaction will fail. This field can only be present on XRP-XRP bridges.
58
+ */
59
+ MinAccountCreateAmount?: string
60
+
61
61
  /**
62
62
  * A bit-map of boolean flags. No flags are defined for Bridges, so this value
63
63
  * is always 0.
@@ -0,0 +1,22 @@
1
+ import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry'
2
+
3
+ // TODO: add docs
4
+
5
+ /**
6
+ * @category Ledger Entries
7
+ */
8
+ export default interface DID extends BaseLedgerEntry, HasPreviousTxnID {
9
+ LedgerEntryType: 'DID'
10
+
11
+ Account: string
12
+
13
+ Data: string
14
+
15
+ DIDDocument: string
16
+
17
+ URI: string
18
+
19
+ Flags: 0
20
+
21
+ OwnerNode: string
22
+ }
@@ -44,6 +44,7 @@ type LedgerEntryFilter =
44
44
  | 'bridge'
45
45
  | 'check'
46
46
  | 'deposit_preauth'
47
+ | 'did'
47
48
  | 'directory'
48
49
  | 'escrow'
49
50
  | 'fee'
@@ -7,6 +7,7 @@ import AMM, { VoteSlot } from './AMM'
7
7
  import Bridge from './Bridge'
8
8
  import Check from './Check'
9
9
  import DepositPreauth from './DepositPreauth'
10
+ import DID from './DID'
10
11
  import DirectoryNode from './DirectoryNode'
11
12
  import Escrow from './Escrow'
12
13
  import FeeSettings, {
@@ -39,6 +40,7 @@ export {
39
40
  Check,
40
41
  DepositPreauth,
41
42
  DirectoryNode,
43
+ DID,
42
44
  Escrow,
43
45
  FEE_SETTINGS_ID,
44
46
  FeeSettings,
@@ -108,6 +108,10 @@ import {
108
108
  RipplePathFindResponse,
109
109
  SourceCurrencyAmount,
110
110
  } from './ripplePathFind'
111
+ import {
112
+ ServerDefinitionsRequest,
113
+ ServerDefinitionsResponse,
114
+ } from './serverDefinitions'
111
115
  import {
112
116
  JobType,
113
117
  ServerInfoRequest,
@@ -186,6 +190,7 @@ type Request =
186
190
  // server info methods
187
191
  | FeeRequest
188
192
  | ManifestRequest
193
+ | ServerDefinitionsRequest
189
194
  | ServerInfoRequest
190
195
  | ServerStateRequest
191
196
  // utility methods
@@ -239,6 +244,7 @@ type Response =
239
244
  // server info methods
240
245
  | FeeResponse
241
246
  | ManifestResponse
247
+ | ServerDefinitionsResponse
242
248
  | ServerInfoResponse
243
249
  | ServerStateResponse
244
250
  // utility methods
@@ -360,6 +366,8 @@ export {
360
366
  FeeResponse,
361
367
  ManifestRequest,
362
368
  ManifestResponse,
369
+ ServerDefinitionsRequest,
370
+ ServerDefinitionsResponse,
363
371
  ServerInfoRequest,
364
372
  ServerInfoResponse,
365
373
  ServerStateRequest,
@@ -74,6 +74,12 @@ export interface LedgerEntryRequest extends BaseRequest, LookupByLedgerRequest {
74
74
  }
75
75
  | string
76
76
 
77
+ /**
78
+ * Specify a DID object to retrieve. If a string, must be the
79
+ * object ID of the DID object, as hexadecimal, or the account ID.
80
+ */
81
+ did?: string
82
+
77
83
  /**
78
84
  * The DirectoryNode to retrieve. If a string, must be the object ID of the
79
85
  * directory, as hexadecimal. If an object, requires either `dir_root` o
@@ -16,7 +16,7 @@ export interface NFTInfoRequest extends BaseRequest, LookupByLedgerRequest {
16
16
  }
17
17
 
18
18
  /**
19
- * Response expected from an {@link NFTInfoResponse}.
19
+ * Response expected from an {@link NFTInfoRequest}.
20
20
  *
21
21
  * @category Responses
22
22
  */
@@ -0,0 +1,61 @@
1
+ import { BaseRequest, BaseResponse } from './baseMethod'
2
+
3
+ /**
4
+ * The `server_definitions` method retrieves information about the definition
5
+ * enums available in this rippled node. Expects a response in the form of a
6
+ * {@link ServerDefinitionsResponse}.
7
+ *
8
+ * @category Requests
9
+ */
10
+ export interface ServerDefinitionsRequest extends BaseRequest {
11
+ command: 'server_definitions'
12
+ /**
13
+ * The hash of a `server_definitions` response.
14
+ */
15
+ hash?: string
16
+ }
17
+
18
+ /**
19
+ * Response expected from an {@link ServerDefinitionsRequest}.
20
+ *
21
+ * @category Responses
22
+ */
23
+ export interface ServerDefinitionsResponse extends BaseResponse {
24
+ result: {
25
+ hash: string
26
+ } & (
27
+ | {
28
+ FIELDS: Array<
29
+ [
30
+ string,
31
+ {
32
+ nth: number
33
+ isVLEncoded: boolean
34
+ isSerialized: boolean
35
+ isSigningField: boolean
36
+ type: string
37
+ },
38
+ ]
39
+ >
40
+
41
+ LEDGER_ENTRY_TYPES: Record<string, number>
42
+
43
+ TRANSACTION_RESULTS: Record<string, number>
44
+
45
+ TRANSACTION_TYPES: Record<string, number>
46
+
47
+ TYPES: Record<string, number>
48
+ }
49
+ | {
50
+ FIELDS?: never
51
+
52
+ LEDGER_ENTRY_TYPES?: never
53
+
54
+ TRANSACTION_RESULTS?: never
55
+
56
+ TRANSACTION_TYPES?: never
57
+
58
+ TYPES?: never
59
+ }
60
+ )
61
+ }
@@ -38,7 +38,7 @@ export interface SubscribeBook {
38
38
 
39
39
  /**
40
40
  * The subscribe method requests periodic notifications from the server when
41
- * certain events happen. Expects a response in the form of a.
41
+ * certain events happen. Expects a response in the form of a
42
42
  * {@link SubscribeResponse}.
43
43
  *
44
44
  * @category Requests
@@ -12,7 +12,14 @@ import { BaseRequest, BaseResponse } from './baseMethod'
12
12
  */
13
13
  export interface TxRequest extends BaseRequest {
14
14
  command: 'tx'
15
- transaction: string
15
+ /**
16
+ * The transaction hash to look up. Exactly one of `transaction` or `ctid` must be specified for a TxRequest.
17
+ */
18
+ transaction?: string
19
+ /**
20
+ * The Concise Transaction ID to look up. Exactly one of `transaction` or `ctid` must be specified for a TxRequest.
21
+ */
22
+ ctid?: string
16
23
  /**
17
24
  * If true, return transaction data and metadata as binary serialized to
18
25
  * hexadecimal strings. If false, return transaction data and metadata as.
@@ -46,6 +53,10 @@ export interface TxResponse<
46
53
  result: {
47
54
  /** The SHA-512 hash of the transaction. */
48
55
  hash: string
56
+ /**
57
+ * The Concise Transaction Identifier of the transaction (16-byte hex string)
58
+ */
59
+ ctid?: string
49
60
  /** The ledger index of the ledger that includes this transaction. */
50
61
  ledger_index?: number
51
62
  /** Transaction metadata, which describes the results of the transaction.
@@ -0,0 +1,20 @@
1
+ import { BaseTransaction, validateBaseTransaction } from './common'
2
+
3
+ // TODO: add docs
4
+
5
+ /**
6
+ * @category Transaction Models
7
+ */
8
+ export interface DIDDelete extends BaseTransaction {
9
+ TransactionType: 'DIDDelete'
10
+ }
11
+
12
+ /**
13
+ * Verify the form and type of a DIDDelete at runtime.
14
+ *
15
+ * @param tx - A DIDDelete Transaction.
16
+ * @throws When the DIDDelete is malformed.
17
+ */
18
+ export function validateDIDDelete(tx: Record<string, unknown>): void {
19
+ validateBaseTransaction(tx)
20
+ }
@@ -0,0 +1,49 @@
1
+ import { ValidationError } from '../../errors'
2
+
3
+ import {
4
+ BaseTransaction,
5
+ isString,
6
+ validateBaseTransaction,
7
+ validateOptionalField,
8
+ } from './common'
9
+
10
+ // TODO: add docs
11
+
12
+ /**
13
+ * @category Transaction Models
14
+ */
15
+ export interface DIDSet extends BaseTransaction {
16
+ TransactionType: 'DIDSet'
17
+
18
+ Data?: string
19
+
20
+ DIDDocument?: string
21
+
22
+ URI?: string
23
+ }
24
+
25
+ /**
26
+ * Verify the form and type of a DIDSet at runtime.
27
+ *
28
+ * @param tx - A DIDSet Transaction.
29
+ * @throws When the DIDSet is malformed.
30
+ */
31
+ export function validateDIDSet(tx: Record<string, unknown>): void {
32
+ validateBaseTransaction(tx)
33
+
34
+ validateOptionalField(tx, 'Data', isString)
35
+
36
+ validateOptionalField(tx, 'DIDDocument', isString)
37
+
38
+ validateOptionalField(tx, 'URI', isString)
39
+
40
+ if (
41
+ tx.Data === undefined &&
42
+ tx.DIDDocument === undefined &&
43
+ tx.URI === undefined
44
+ ) {
45
+ throw new ValidationError(
46
+ 'DIDSet: Must have at least one of `Data`, `DIDDocument`, and `URI`',
47
+ )
48
+ }
49
+ }
@@ -14,7 +14,7 @@ import {
14
14
  * The XChainAccountCreateCommit transaction creates a new account on one of the
15
15
  * chains a bridge connects, which serves as the bridge entrance for that chain.
16
16
  *
17
- * Warning: This transaction should only be executed if the witness attestations
17
+ * WARNING: This transaction should only be executed if the witness attestations
18
18
  * will be reliably delivered to the destination chain. If the signatures aren't
19
19
  * delivered, then account creation will be blocked until attestations are received.
20
20
  * This can be used maliciously; to disable this transaction on XRP-XRP bridges,
@@ -31,6 +31,8 @@ export { CheckCancel } from './checkCancel'
31
31
  export { CheckCash } from './checkCash'
32
32
  export { CheckCreate } from './checkCreate'
33
33
  export { Clawback } from './clawback'
34
+ export { DIDDelete } from './DIDDelete'
35
+ export { DIDSet } from './DIDSet'
34
36
  export { DepositPreauth } from './depositPreauth'
35
37
  export { EscrowCancel } from './escrowCancel'
36
38
  export { EscrowCreate } from './escrowCreate'
@@ -20,6 +20,8 @@ import { CheckCreate, validateCheckCreate } from './checkCreate'
20
20
  import { Clawback, validateClawback } from './clawback'
21
21
  import { isIssuedCurrency } from './common'
22
22
  import { DepositPreauth, validateDepositPreauth } from './depositPreauth'
23
+ import { DIDDelete, validateDIDDelete } from './DIDDelete'
24
+ import { DIDSet, validateDIDSet } from './DIDSet'
23
25
  import { EnableAmendment } from './enableAmendment'
24
26
  import { EscrowCancel, validateEscrowCancel } from './escrowCancel'
25
27
  import { EscrowCreate, validateEscrowCreate } from './escrowCreate'
@@ -91,18 +93,20 @@ import {
91
93
  * @category Transaction Models
92
94
  */
93
95
  export type Transaction =
94
- | AccountDelete
95
- | AccountSet
96
96
  | AMMBid
97
+ | AMMCreate
97
98
  | AMMDelete
98
99
  | AMMDeposit
99
- | AMMCreate
100
100
  | AMMVote
101
101
  | AMMWithdraw
102
+ | AccountDelete
103
+ | AccountSet
102
104
  | CheckCancel
103
105
  | CheckCash
104
106
  | CheckCreate
105
107
  | Clawback
108
+ | DIDDelete
109
+ | DIDSet
106
110
  | DepositPreauth
107
111
  | EscrowCancel
108
112
  | EscrowCreate
@@ -122,13 +126,13 @@ export type Transaction =
122
126
  | SignerListSet
123
127
  | TicketCreate
124
128
  | TrustSet
129
+ | XChainAccountCreateCommit
125
130
  | XChainAddAccountCreateAttestation
126
131
  | XChainAddClaimAttestation
127
132
  | XChainClaim
128
133
  | XChainCommit
129
134
  | XChainCreateBridge
130
135
  | XChainCreateClaimID
131
- | XChainAccountCreateCommit
132
136
  | XChainModifyBridge
133
137
 
134
138
  export type PseudoTransaction = EnableAmendment | SetFee | UNLModify
@@ -210,18 +214,14 @@ export function validate(transaction: Record<string, unknown>): void {
210
214
  // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- okay here
211
215
  setTransactionFlagsToNumber(tx as unknown as Transaction)
212
216
  switch (tx.TransactionType) {
213
- case 'AccountDelete':
214
- validateAccountDelete(tx)
215
- break
216
-
217
- case 'AccountSet':
218
- validateAccountSet(tx)
219
- break
220
-
221
217
  case 'AMMBid':
222
218
  validateAMMBid(tx)
223
219
  break
224
220
 
221
+ case 'AMMCreate':
222
+ validateAMMCreate(tx)
223
+ break
224
+
225
225
  case 'AMMDelete':
226
226
  validateAMMDelete(tx)
227
227
  break
@@ -230,10 +230,6 @@ export function validate(transaction: Record<string, unknown>): void {
230
230
  validateAMMDeposit(tx)
231
231
  break
232
232
 
233
- case 'AMMCreate':
234
- validateAMMCreate(tx)
235
- break
236
-
237
233
  case 'AMMVote':
238
234
  validateAMMVote(tx)
239
235
  break
@@ -242,6 +238,14 @@ export function validate(transaction: Record<string, unknown>): void {
242
238
  validateAMMWithdraw(tx)
243
239
  break
244
240
 
241
+ case 'AccountDelete':
242
+ validateAccountDelete(tx)
243
+ break
244
+
245
+ case 'AccountSet':
246
+ validateAccountSet(tx)
247
+ break
248
+
245
249
  case 'CheckCancel':
246
250
  validateCheckCancel(tx)
247
251
  break
@@ -258,6 +262,14 @@ export function validate(transaction: Record<string, unknown>): void {
258
262
  validateClawback(tx)
259
263
  break
260
264
 
265
+ case 'DIDDelete':
266
+ validateDIDDelete(tx)
267
+ break
268
+
269
+ case 'DIDSet':
270
+ validateDIDSet(tx)
271
+ break
272
+
261
273
  case 'DepositPreauth':
262
274
  validateDepositPreauth(tx)
263
275
  break
@@ -334,6 +346,10 @@ export function validate(transaction: Record<string, unknown>): void {
334
346
  validateTrustSet(tx)
335
347
  break
336
348
 
349
+ case 'XChainAccountCreateCommit':
350
+ validateXChainAccountCreateCommit(tx)
351
+ break
352
+
337
353
  case 'XChainAddAccountCreateAttestation':
338
354
  validateXChainAddAccountCreateAttestation(tx)
339
355
  break
@@ -358,10 +374,6 @@ export function validate(transaction: Record<string, unknown>): void {
358
374
  validateXChainCreateClaimID(tx)
359
375
  break
360
376
 
361
- case 'XChainAccountCreateCommit':
362
- validateXChainAccountCreateCommit(tx)
363
- break
364
-
365
377
  case 'XChainModifyBridge':
366
378
  validateXChainModifyBridge(tx)
367
379
  break
@@ -24,7 +24,17 @@ import { XrplError } from '../errors'
24
24
  */
25
25
  function unscrambleTaxon(taxon: number, tokenSeq: number): number {
26
26
  /* eslint-disable no-bitwise -- XOR is part of the encode/decode scheme. */
27
- return (taxon ^ (384160001 * tokenSeq + 2459)) % 4294967296
27
+ const seed = 384160001
28
+ const increment = 2459
29
+ const max = 4294967296
30
+
31
+ const scramble = new BigNumber(seed)
32
+ .multipliedBy(tokenSeq)
33
+ .modulo(max)
34
+ .plus(increment)
35
+ .modulo(max)
36
+ .toNumber()
37
+ return (taxon ^ scramble) >>> 0
28
38
  /* eslint-enable no-bitwise */
29
39
  }
30
40