xrpl 2.13.0 → 2.14.1
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.
- package/build/xrpl-latest-min.js +1 -1
- package/build/xrpl-latest-min.js.map +1 -1
- package/build/xrpl-latest.js +992 -1041
- package/build/xrpl-latest.js.map +1 -1
- package/dist/npm/Wallet/defaultFaucets.d.ts +1 -3
- package/dist/npm/Wallet/defaultFaucets.d.ts.map +1 -1
- package/dist/npm/Wallet/defaultFaucets.js +0 -7
- package/dist/npm/Wallet/defaultFaucets.js.map +1 -1
- package/dist/npm/client/index.d.ts +2 -1
- package/dist/npm/client/index.d.ts.map +1 -1
- package/dist/npm/client/index.js.map +1 -1
- package/dist/npm/models/ledger/AMM.d.ts +1 -1
- package/dist/npm/models/ledger/AMM.d.ts.map +1 -1
- package/dist/npm/models/ledger/Bridge.d.ts +1 -1
- package/dist/npm/models/ledger/Bridge.d.ts.map +1 -1
- package/dist/npm/models/ledger/DID.d.ts +11 -0
- package/dist/npm/models/ledger/DID.d.ts.map +1 -0
- package/dist/npm/models/ledger/DID.js +3 -0
- package/dist/npm/models/ledger/DID.js.map +1 -0
- package/dist/npm/models/ledger/LedgerEntry.d.ts +1 -1
- package/dist/npm/models/ledger/LedgerEntry.d.ts.map +1 -1
- package/dist/npm/models/ledger/index.d.ts +2 -1
- package/dist/npm/models/ledger/index.d.ts.map +1 -1
- package/dist/npm/models/ledger/index.js.map +1 -1
- package/dist/npm/models/methods/index.d.ts +4 -3
- package/dist/npm/models/methods/index.d.ts.map +1 -1
- package/dist/npm/models/methods/ledgerEntry.d.ts +1 -0
- package/dist/npm/models/methods/ledgerEntry.d.ts.map +1 -1
- package/dist/npm/models/methods/serverDefinitions.d.ts +32 -0
- package/dist/npm/models/methods/serverDefinitions.d.ts.map +1 -0
- package/dist/npm/models/methods/serverDefinitions.js +3 -0
- package/dist/npm/models/methods/serverDefinitions.js.map +1 -0
- package/dist/npm/models/methods/tx.d.ts +3 -1
- package/dist/npm/models/methods/tx.d.ts.map +1 -1
- package/dist/npm/models/transactions/DIDDelete.d.ts +6 -0
- package/dist/npm/models/transactions/DIDDelete.d.ts.map +1 -0
- package/dist/npm/models/transactions/DIDDelete.js +9 -0
- package/dist/npm/models/transactions/DIDDelete.js.map +1 -0
- package/dist/npm/models/transactions/DIDSet.d.ts +9 -0
- package/dist/npm/models/transactions/DIDSet.d.ts.map +1 -0
- package/dist/npm/models/transactions/DIDSet.js +18 -0
- package/dist/npm/models/transactions/DIDSet.js.map +1 -0
- package/dist/npm/models/transactions/index.d.ts +2 -0
- package/dist/npm/models/transactions/index.d.ts.map +1 -1
- package/dist/npm/models/transactions/index.js.map +1 -1
- package/dist/npm/models/transactions/transaction.d.ts +3 -1
- package/dist/npm/models/transactions/transaction.d.ts.map +1 -1
- package/dist/npm/models/transactions/transaction.js +20 -12
- package/dist/npm/models/transactions/transaction.js.map +1 -1
- package/dist/npm/snippets/src/bridgeTransfer.js +2 -3
- package/dist/npm/snippets/src/bridgeTransfer.js.map +1 -1
- package/dist/npm/snippets/tsconfig.tsbuildinfo +1 -1
- package/dist/npm/src/Wallet/defaultFaucets.d.ts +1 -3
- package/dist/npm/src/Wallet/defaultFaucets.d.ts.map +1 -1
- package/dist/npm/src/Wallet/defaultFaucets.js +0 -7
- package/dist/npm/src/Wallet/defaultFaucets.js.map +1 -1
- package/dist/npm/src/client/index.d.ts +2 -1
- package/dist/npm/src/client/index.d.ts.map +1 -1
- package/dist/npm/src/client/index.js.map +1 -1
- package/dist/npm/src/models/ledger/AMM.d.ts +1 -1
- package/dist/npm/src/models/ledger/AMM.d.ts.map +1 -1
- package/dist/npm/src/models/ledger/Bridge.d.ts +1 -1
- package/dist/npm/src/models/ledger/Bridge.d.ts.map +1 -1
- package/dist/npm/src/models/ledger/DID.d.ts +11 -0
- package/dist/npm/src/models/ledger/DID.d.ts.map +1 -0
- package/dist/npm/src/models/ledger/DID.js +3 -0
- package/dist/npm/src/models/ledger/DID.js.map +1 -0
- package/dist/npm/src/models/ledger/LedgerEntry.d.ts +1 -1
- package/dist/npm/src/models/ledger/LedgerEntry.d.ts.map +1 -1
- package/dist/npm/src/models/ledger/index.d.ts +2 -1
- package/dist/npm/src/models/ledger/index.d.ts.map +1 -1
- package/dist/npm/src/models/ledger/index.js.map +1 -1
- package/dist/npm/src/models/methods/index.d.ts +4 -3
- package/dist/npm/src/models/methods/index.d.ts.map +1 -1
- package/dist/npm/src/models/methods/ledgerEntry.d.ts +1 -0
- package/dist/npm/src/models/methods/ledgerEntry.d.ts.map +1 -1
- package/dist/npm/src/models/methods/serverDefinitions.d.ts +32 -0
- package/dist/npm/src/models/methods/serverDefinitions.d.ts.map +1 -0
- package/dist/npm/src/models/methods/serverDefinitions.js +3 -0
- package/dist/npm/src/models/methods/serverDefinitions.js.map +1 -0
- package/dist/npm/src/models/methods/tx.d.ts +3 -1
- package/dist/npm/src/models/methods/tx.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/DIDDelete.d.ts +6 -0
- package/dist/npm/src/models/transactions/DIDDelete.d.ts.map +1 -0
- package/dist/npm/src/models/transactions/DIDDelete.js +9 -0
- package/dist/npm/src/models/transactions/DIDDelete.js.map +1 -0
- package/dist/npm/src/models/transactions/DIDSet.d.ts +9 -0
- package/dist/npm/src/models/transactions/DIDSet.d.ts.map +1 -0
- package/dist/npm/src/models/transactions/DIDSet.js +18 -0
- package/dist/npm/src/models/transactions/DIDSet.js.map +1 -0
- package/dist/npm/src/models/transactions/index.d.ts +2 -0
- package/dist/npm/src/models/transactions/index.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/index.js.map +1 -1
- package/dist/npm/src/models/transactions/transaction.d.ts +3 -1
- package/dist/npm/src/models/transactions/transaction.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/transaction.js +20 -12
- package/dist/npm/src/models/transactions/transaction.js.map +1 -1
- package/dist/npm/src/utils/parseNFTokenID.d.ts.map +1 -1
- package/dist/npm/src/utils/parseNFTokenID.js +10 -1
- package/dist/npm/src/utils/parseNFTokenID.js.map +1 -1
- package/dist/npm/utils/parseNFTokenID.d.ts.map +1 -1
- package/dist/npm/utils/parseNFTokenID.js +10 -1
- package/dist/npm/utils/parseNFTokenID.js.map +1 -1
- package/package.json +3 -3
- package/src/Wallet/defaultFaucets.ts +0 -8
- package/src/Wallet/fundWallet.ts +1 -1
- package/src/client/index.ts +5 -0
- package/src/models/ledger/AMM.ts +1 -1
- package/src/models/ledger/Bridge.ts +7 -7
- package/src/models/ledger/DID.ts +22 -0
- package/src/models/ledger/LedgerEntry.ts +1 -0
- package/src/models/ledger/index.ts +2 -0
- package/src/models/methods/index.ts +8 -0
- package/src/models/methods/ledgerEntry.ts +6 -0
- package/src/models/methods/nftInfo.ts +1 -1
- package/src/models/methods/serverDefinitions.ts +61 -0
- package/src/models/methods/subscribe.ts +1 -1
- package/src/models/methods/tx.ts +12 -1
- package/src/models/transactions/DIDDelete.ts +20 -0
- package/src/models/transactions/DIDSet.ts +49 -0
- package/src/models/transactions/XChainAccountCreateCommit.ts +1 -1
- package/src/models/transactions/index.ts +2 -0
- package/src/models/transactions/transaction.ts +32 -20
- package/src/utils/parseNFTokenID.ts +11 -1
@@ -7,7 +7,16 @@ const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
7
7
|
const ripple_address_codec_1 = require("ripple-address-codec");
|
8
8
|
const errors_1 = require("../errors");
|
9
9
|
function unscrambleTaxon(taxon, tokenSeq) {
|
10
|
-
|
10
|
+
const seed = 384160001;
|
11
|
+
const increment = 2459;
|
12
|
+
const max = 4294967296;
|
13
|
+
const scramble = new bignumber_js_1.default(seed)
|
14
|
+
.multipliedBy(tokenSeq)
|
15
|
+
.modulo(max)
|
16
|
+
.plus(increment)
|
17
|
+
.modulo(max)
|
18
|
+
.toNumber();
|
19
|
+
return (taxon ^ scramble) >>> 0;
|
11
20
|
}
|
12
21
|
function parseNFTokenID(nftokenID) {
|
13
22
|
const expectedLength = 64;
|
@@ -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,
|
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.
|
3
|
+
"version": "2.14.1",
|
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.
|
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": "
|
94
|
+
"gitHead": "f7d0cfb93ad9aa61e819e34638b6c9ceda9c3710"
|
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.',
|
package/src/Wallet/fundWallet.ts
CHANGED
@@ -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,
|
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.
|
package/src/client/index.ts
CHANGED
@@ -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>
|
package/src/models/ledger/AMM.ts
CHANGED
@@ -60,7 +60,7 @@ export default interface AMM extends BaseLedgerEntry, MissingPreviousTxnID {
|
|
60
60
|
* The holders of these tokens can vote on the AMM's trading fee in proportion to their holdings,
|
61
61
|
* or redeem the tokens for a share of the AMM's assets which grows with the trading fees collected.
|
62
62
|
*/
|
63
|
-
LPTokenBalance:
|
63
|
+
LPTokenBalance: IssuedCurrencyAmount
|
64
64
|
/**
|
65
65
|
* The percentage fee to be charged for trades against this AMM instance, in units of 1/100,000.
|
66
66
|
* The maximum value is 1000, for a 1% fee.
|
@@ -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
|
+
}
|
@@ -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
|
@@ -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
|
package/src/models/methods/tx.ts
CHANGED
@@ -12,7 +12,14 @@ import { BaseRequest, BaseResponse } from './baseMethod'
|
|
12
12
|
*/
|
13
13
|
export interface TxRequest extends BaseRequest {
|
14
14
|
command: 'tx'
|
15
|
-
|
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
|
-
*
|
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
|
-
|
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
|
|