xrpl 3.0.0-beta.0 → 3.0.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.
- package/build/xrpl-latest-min.js +1 -1
- package/build/xrpl-latest-min.js.map +1 -1
- package/build/xrpl-latest.js +707 -3074
- 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/Wallet/fundWallet.js +4 -4
- package/dist/npm/Wallet/fundWallet.js.map +1 -1
- package/dist/npm/Wallet/rfc1751.d.ts +1 -2
- package/dist/npm/Wallet/rfc1751.d.ts.map +1 -1
- package/dist/npm/Wallet/rfc1751.js +21 -5
- package/dist/npm/Wallet/rfc1751.js.map +1 -1
- package/dist/npm/Wallet/signer.d.ts.map +1 -1
- package/dist/npm/Wallet/signer.js +2 -1
- package/dist/npm/Wallet/signer.js.map +1 -1
- package/dist/npm/client/connection.d.ts.map +1 -1
- package/dist/npm/client/connection.js +3 -3
- package/dist/npm/client/connection.js.map +1 -1
- package/dist/npm/client/index.d.ts +6 -6
- package/dist/npm/client/index.d.ts.map +1 -1
- package/dist/npm/client/index.js +3 -3
- package/dist/npm/client/index.js.map +1 -1
- package/dist/npm/client/partialPayment.d.ts.map +1 -1
- package/dist/npm/client/partialPayment.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/Ledger.d.ts +2 -2
- package/dist/npm/models/ledger/Ledger.d.ts.map +1 -1
- 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 +5 -4
- 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/submit.d.ts +2 -2
- package/dist/npm/models/methods/submit.d.ts.map +1 -1
- package/dist/npm/models/methods/tx.d.ts +4 -3
- 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 +3 -1
- 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 +4 -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 +4 -5
- 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/Wallet/fundWallet.js +4 -4
- package/dist/npm/src/Wallet/fundWallet.js.map +1 -1
- package/dist/npm/src/Wallet/rfc1751.d.ts +1 -2
- package/dist/npm/src/Wallet/rfc1751.d.ts.map +1 -1
- package/dist/npm/src/Wallet/rfc1751.js +21 -5
- package/dist/npm/src/Wallet/rfc1751.js.map +1 -1
- package/dist/npm/src/Wallet/signer.d.ts.map +1 -1
- package/dist/npm/src/Wallet/signer.js +2 -1
- package/dist/npm/src/Wallet/signer.js.map +1 -1
- package/dist/npm/src/client/connection.d.ts.map +1 -1
- package/dist/npm/src/client/connection.js +3 -3
- package/dist/npm/src/client/connection.js.map +1 -1
- package/dist/npm/src/client/index.d.ts +6 -6
- package/dist/npm/src/client/index.d.ts.map +1 -1
- package/dist/npm/src/client/index.js +3 -3
- package/dist/npm/src/client/index.js.map +1 -1
- package/dist/npm/src/client/partialPayment.d.ts.map +1 -1
- package/dist/npm/src/client/partialPayment.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/Ledger.d.ts +2 -2
- package/dist/npm/src/models/ledger/Ledger.d.ts.map +1 -1
- 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 +5 -4
- 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/submit.d.ts +2 -2
- package/dist/npm/src/models/methods/submit.d.ts.map +1 -1
- package/dist/npm/src/models/methods/tx.d.ts +4 -3
- 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 +3 -1
- 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 +4 -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/sugar/submit.d.ts +5 -6
- package/dist/npm/src/sugar/submit.d.ts.map +1 -1
- package/dist/npm/src/sugar/submit.js.map +1 -1
- package/dist/npm/src/utils/collections.d.ts +1 -3
- package/dist/npm/src/utils/collections.d.ts.map +1 -1
- package/dist/npm/src/utils/collections.js +7 -5
- package/dist/npm/src/utils/collections.js.map +1 -1
- package/dist/npm/src/utils/hashes/hashLedger.d.ts +1 -2
- package/dist/npm/src/utils/hashes/hashLedger.d.ts.map +1 -1
- package/dist/npm/src/utils/hashes/hashLedger.js +7 -7
- package/dist/npm/src/utils/hashes/hashLedger.js.map +1 -1
- package/dist/npm/src/utils/hashes/index.d.ts.map +1 -1
- package/dist/npm/src/utils/hashes/index.js +3 -2
- package/dist/npm/src/utils/hashes/index.js.map +1 -1
- package/dist/npm/src/utils/index.d.ts.map +1 -1
- package/dist/npm/src/utils/index.js +6 -29
- package/dist/npm/src/utils/index.js.map +1 -1
- package/dist/npm/src/utils/parseNFTokenID.d.ts.map +1 -1
- package/dist/npm/src/utils/parseNFTokenID.js +12 -2
- package/dist/npm/src/utils/parseNFTokenID.js.map +1 -1
- package/dist/npm/src/utils/stringConversion.d.ts +1 -2
- package/dist/npm/src/utils/stringConversion.d.ts.map +1 -1
- package/dist/npm/src/utils/stringConversion.js +3 -2
- package/dist/npm/src/utils/stringConversion.js.map +1 -1
- package/dist/npm/src/utils/xrpConversion.d.ts +1 -1
- package/dist/npm/src/utils/xrpConversion.js +1 -1
- package/dist/npm/src/utils/xrpConversion.js.map +1 -1
- package/dist/npm/sugar/submit.d.ts +5 -6
- package/dist/npm/sugar/submit.d.ts.map +1 -1
- package/dist/npm/sugar/submit.js.map +1 -1
- package/dist/npm/utils/collections.d.ts +1 -3
- package/dist/npm/utils/collections.d.ts.map +1 -1
- package/dist/npm/utils/collections.js +7 -5
- package/dist/npm/utils/collections.js.map +1 -1
- package/dist/npm/utils/hashes/hashLedger.d.ts +1 -2
- package/dist/npm/utils/hashes/hashLedger.d.ts.map +1 -1
- package/dist/npm/utils/hashes/hashLedger.js +7 -7
- package/dist/npm/utils/hashes/hashLedger.js.map +1 -1
- package/dist/npm/utils/hashes/index.d.ts.map +1 -1
- package/dist/npm/utils/hashes/index.js +3 -2
- package/dist/npm/utils/hashes/index.js.map +1 -1
- package/dist/npm/utils/index.d.ts.map +1 -1
- package/dist/npm/utils/index.js +6 -29
- package/dist/npm/utils/index.js.map +1 -1
- package/dist/npm/utils/parseNFTokenID.d.ts.map +1 -1
- package/dist/npm/utils/parseNFTokenID.js +12 -2
- package/dist/npm/utils/parseNFTokenID.js.map +1 -1
- package/dist/npm/utils/stringConversion.d.ts +1 -2
- package/dist/npm/utils/stringConversion.d.ts.map +1 -1
- package/dist/npm/utils/stringConversion.js +3 -2
- package/dist/npm/utils/stringConversion.js.map +1 -1
- package/dist/npm/utils/xrpConversion.d.ts +1 -1
- package/dist/npm/utils/xrpConversion.js +1 -1
- package/dist/npm/utils/xrpConversion.js.map +1 -1
- package/package.json +7 -7
- package/src/Wallet/defaultFaucets.ts +0 -8
- package/src/Wallet/fundWallet.ts +7 -7
- package/src/Wallet/rfc1751.ts +45 -16
- package/src/Wallet/signer.ts +2 -1
- package/src/client/connection.ts +6 -4
- package/src/client/index.ts +13 -11
- package/src/client/partialPayment.ts +2 -6
- 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/Ledger.ts +2 -8
- package/src/models/ledger/LedgerEntry.ts +1 -0
- package/src/models/ledger/index.ts +2 -0
- package/src/models/methods/index.ts +10 -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/submit.ts +2 -2
- package/src/models/methods/subscribe.ts +1 -1
- package/src/models/methods/tx.ts +14 -6
- 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 +3 -0
- package/src/models/transactions/transaction.ts +47 -21
- package/src/sugar/submit.ts +14 -8
- package/src/utils/collections.ts +16 -12
- package/src/utils/hashes/hashLedger.ts +7 -9
- package/src/utils/hashes/index.ts +3 -2
- package/src/utils/index.ts +12 -6
- package/src/utils/parseNFTokenID.ts +13 -2
- package/src/utils/stringConversion.ts +11 -6
- package/src/utils/xrpConversion.ts +2 -2
@@ -1,8 +1,4 @@
|
|
1
|
-
import {
|
2
|
-
PseudoTransaction,
|
3
|
-
Transaction,
|
4
|
-
TransactionMetadata,
|
5
|
-
} from '../transactions'
|
1
|
+
import { Transaction, TransactionMetadata } from '../transactions'
|
6
2
|
|
7
3
|
import { LedgerEntry } from './LedgerEntry'
|
8
4
|
|
@@ -65,7 +61,5 @@ export default interface Ledger {
|
|
65
61
|
* either JSON or binary depending on whether the request specified binary
|
66
62
|
* as true.
|
67
63
|
*/
|
68
|
-
transactions?: Array<
|
69
|
-
(Transaction | PseudoTransaction) & { metaData?: TransactionMetadata }
|
70
|
-
>
|
64
|
+
transactions?: Array<Transaction & { metaData?: TransactionMetadata }>
|
71
65
|
}
|
@@ -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,
|
@@ -114,6 +114,10 @@ import {
|
|
114
114
|
RipplePathFindResponse,
|
115
115
|
SourceCurrencyAmount,
|
116
116
|
} from './ripplePathFind'
|
117
|
+
import {
|
118
|
+
ServerDefinitionsRequest,
|
119
|
+
ServerDefinitionsResponse,
|
120
|
+
} from './serverDefinitions'
|
117
121
|
import {
|
118
122
|
JobType,
|
119
123
|
ServerInfoRequest,
|
@@ -192,6 +196,7 @@ type Request =
|
|
192
196
|
// server info methods
|
193
197
|
| FeeRequest
|
194
198
|
| ManifestRequest
|
199
|
+
| ServerDefinitionsRequest
|
195
200
|
| ServerInfoRequest
|
196
201
|
| ServerStateRequest
|
197
202
|
// utility methods
|
@@ -245,6 +250,7 @@ type Response =
|
|
245
250
|
// server info methods
|
246
251
|
| FeeResponse
|
247
252
|
| ManifestResponse
|
253
|
+
| ServerDefinitionsResponse
|
248
254
|
| ServerInfoResponse
|
249
255
|
| ServerStateResponse
|
250
256
|
// utility methods
|
@@ -385,6 +391,8 @@ export type RequestResponseMap<T> = T extends AccountChannelsRequest
|
|
385
391
|
? ServerInfoResponse
|
386
392
|
: T extends ServerStateRequest
|
387
393
|
? ServerStateResponse
|
394
|
+
: T extends ServerDefinitionsRequest
|
395
|
+
? ServerDefinitionsResponse
|
388
396
|
: T extends PingRequest
|
389
397
|
? PingResponse
|
390
398
|
: T extends RandomRequest
|
@@ -535,6 +543,8 @@ export {
|
|
535
543
|
FeeResponse,
|
536
544
|
ManifestRequest,
|
537
545
|
ManifestResponse,
|
546
|
+
ServerDefinitionsRequest,
|
547
|
+
ServerDefinitionsResponse,
|
538
548
|
ServerInfoRequest,
|
539
549
|
ServerInfoResponse,
|
540
550
|
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
|
+
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { SubmittableTransaction } from '../transactions'
|
2
2
|
|
3
3
|
import { BaseRequest, BaseResponse } from './baseMethod'
|
4
4
|
|
@@ -39,7 +39,7 @@ export interface SubmitResponse extends BaseResponse {
|
|
39
39
|
/** The complete transaction in hex string format. */
|
40
40
|
tx_blob: string
|
41
41
|
/** The complete transaction in JSON format. */
|
42
|
-
tx_json:
|
42
|
+
tx_json: SubmittableTransaction & { hash?: string }
|
43
43
|
/**
|
44
44
|
* The value true indicates that the transaction was applied, queued,
|
45
45
|
* broadcast, or kept for later. The value `false` indicates that none of
|
@@ -39,7 +39,7 @@ export interface SubscribeBook {
|
|
39
39
|
|
40
40
|
/**
|
41
41
|
* The subscribe method requests periodic notifications from the server when
|
42
|
-
* certain events happen. Expects a response in the form of a
|
42
|
+
* certain events happen. Expects a response in the form of a
|
43
43
|
* {@link SubscribeResponse}.
|
44
44
|
*
|
45
45
|
* @category Requests
|
package/src/models/methods/tx.ts
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
import { Transaction, TransactionMetadata } from '../transactions'
|
2
2
|
import { BaseTransaction } from '../transactions/common'
|
3
|
-
import { PseudoTransaction } from '../transactions/transaction'
|
4
3
|
|
5
4
|
import { BaseRequest, BaseResponse } from './baseMethod'
|
6
5
|
|
@@ -12,8 +11,14 @@ import { BaseRequest, BaseResponse } from './baseMethod'
|
|
12
11
|
*/
|
13
12
|
export interface TxRequest extends BaseRequest {
|
14
13
|
command: 'tx'
|
15
|
-
/**
|
16
|
-
|
14
|
+
/**
|
15
|
+
* The transaction hash to look up. Exactly one of `transaction` or `ctid` must be specified for a TxRequest.
|
16
|
+
*/
|
17
|
+
transaction?: string
|
18
|
+
/**
|
19
|
+
* The Concise Transaction ID to look up. Exactly one of `transaction` or `ctid` must be specified for a TxRequest.
|
20
|
+
*/
|
21
|
+
ctid?: string
|
17
22
|
/**
|
18
23
|
* If true, return transaction data and metadata as binary serialized to
|
19
24
|
* hexadecimal strings. If false, return transaction data and metadata as.
|
@@ -41,12 +46,15 @@ export interface TxRequest extends BaseRequest {
|
|
41
46
|
*
|
42
47
|
* @category Responses
|
43
48
|
*/
|
44
|
-
export interface TxResponse<
|
45
|
-
|
46
|
-
> extends BaseResponse {
|
49
|
+
export interface TxResponse<T extends BaseTransaction = Transaction>
|
50
|
+
extends BaseResponse {
|
47
51
|
result: {
|
48
52
|
/** The SHA-512 hash of the transaction. */
|
49
53
|
hash: string
|
54
|
+
/**
|
55
|
+
* The Concise Transaction Identifier of the transaction (16-byte hex string)
|
56
|
+
*/
|
57
|
+
ctid?: string
|
50
58
|
/** The ledger index of the ledger that includes this transaction. */
|
51
59
|
ledger_index?: number
|
52
60
|
/** 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,
|
@@ -2,6 +2,7 @@ export { BaseTransaction } from './common'
|
|
2
2
|
export {
|
3
3
|
validate,
|
4
4
|
PseudoTransaction,
|
5
|
+
SubmittableTransaction,
|
5
6
|
TransactionAndMetadata,
|
6
7
|
Transaction,
|
7
8
|
} from './transaction'
|
@@ -31,6 +32,8 @@ export { CheckCancel } from './checkCancel'
|
|
31
32
|
export { CheckCash } from './checkCash'
|
32
33
|
export { CheckCreate } from './checkCreate'
|
33
34
|
export { Clawback } from './clawback'
|
35
|
+
export { DIDDelete } from './DIDDelete'
|
36
|
+
export { DIDSet } from './DIDSet'
|
34
37
|
export { DepositPreauth } from './depositPreauth'
|
35
38
|
export { EscrowCancel } from './escrowCancel'
|
36
39
|
export { EscrowCreate } from './escrowCreate'
|
@@ -20,6 +20,8 @@ import { CheckCreate, validateCheckCreate } from './checkCreate'
|
|
20
20
|
import { Clawback, validateClawback } from './clawback'
|
21
21
|
import { BaseTransaction, 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'
|
@@ -88,21 +90,25 @@ import {
|
|
88
90
|
} from './XChainModifyBridge'
|
89
91
|
|
90
92
|
/**
|
93
|
+
* Transactions that can be submitted by clients
|
94
|
+
*
|
91
95
|
* @category Transaction Models
|
92
96
|
*/
|
93
|
-
export type
|
94
|
-
| AccountDelete
|
95
|
-
| AccountSet
|
97
|
+
export type SubmittableTransaction =
|
96
98
|
| AMMBid
|
99
|
+
| AMMCreate
|
97
100
|
| AMMDelete
|
98
101
|
| AMMDeposit
|
99
|
-
| AMMCreate
|
100
102
|
| AMMVote
|
101
103
|
| AMMWithdraw
|
104
|
+
| AccountDelete
|
105
|
+
| AccountSet
|
102
106
|
| CheckCancel
|
103
107
|
| CheckCash
|
104
108
|
| CheckCreate
|
105
109
|
| Clawback
|
110
|
+
| DIDDelete
|
111
|
+
| DIDSet
|
106
112
|
| DepositPreauth
|
107
113
|
| EscrowCancel
|
108
114
|
| EscrowCreate
|
@@ -122,17 +128,29 @@ export type Transaction =
|
|
122
128
|
| SignerListSet
|
123
129
|
| TicketCreate
|
124
130
|
| TrustSet
|
131
|
+
| XChainAccountCreateCommit
|
125
132
|
| XChainAddAccountCreateAttestation
|
126
133
|
| XChainAddClaimAttestation
|
127
134
|
| XChainClaim
|
128
135
|
| XChainCommit
|
129
136
|
| XChainCreateBridge
|
130
137
|
| XChainCreateClaimID
|
131
|
-
| XChainAccountCreateCommit
|
132
138
|
| XChainModifyBridge
|
133
139
|
|
140
|
+
/**
|
141
|
+
* Transactions that can only be created by validators.
|
142
|
+
*
|
143
|
+
* @category Transaction Models
|
144
|
+
*/
|
134
145
|
export type PseudoTransaction = EnableAmendment | SetFee | UNLModify
|
135
146
|
|
147
|
+
/**
|
148
|
+
* All transactions that can live on the XRPL
|
149
|
+
*
|
150
|
+
* @category Transaction Models
|
151
|
+
*/
|
152
|
+
export type Transaction = SubmittableTransaction | PseudoTransaction
|
153
|
+
|
136
154
|
/**
|
137
155
|
* @category Transaction Models
|
138
156
|
*/
|
@@ -212,18 +230,14 @@ export function validate(transaction: Record<string, unknown>): void {
|
|
212
230
|
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- okay here
|
213
231
|
setTransactionFlagsToNumber(tx as unknown as Transaction)
|
214
232
|
switch (tx.TransactionType) {
|
215
|
-
case 'AccountDelete':
|
216
|
-
validateAccountDelete(tx)
|
217
|
-
break
|
218
|
-
|
219
|
-
case 'AccountSet':
|
220
|
-
validateAccountSet(tx)
|
221
|
-
break
|
222
|
-
|
223
233
|
case 'AMMBid':
|
224
234
|
validateAMMBid(tx)
|
225
235
|
break
|
226
236
|
|
237
|
+
case 'AMMCreate':
|
238
|
+
validateAMMCreate(tx)
|
239
|
+
break
|
240
|
+
|
227
241
|
case 'AMMDelete':
|
228
242
|
validateAMMDelete(tx)
|
229
243
|
break
|
@@ -232,10 +246,6 @@ export function validate(transaction: Record<string, unknown>): void {
|
|
232
246
|
validateAMMDeposit(tx)
|
233
247
|
break
|
234
248
|
|
235
|
-
case 'AMMCreate':
|
236
|
-
validateAMMCreate(tx)
|
237
|
-
break
|
238
|
-
|
239
249
|
case 'AMMVote':
|
240
250
|
validateAMMVote(tx)
|
241
251
|
break
|
@@ -244,6 +254,14 @@ export function validate(transaction: Record<string, unknown>): void {
|
|
244
254
|
validateAMMWithdraw(tx)
|
245
255
|
break
|
246
256
|
|
257
|
+
case 'AccountDelete':
|
258
|
+
validateAccountDelete(tx)
|
259
|
+
break
|
260
|
+
|
261
|
+
case 'AccountSet':
|
262
|
+
validateAccountSet(tx)
|
263
|
+
break
|
264
|
+
|
247
265
|
case 'CheckCancel':
|
248
266
|
validateCheckCancel(tx)
|
249
267
|
break
|
@@ -260,6 +278,14 @@ export function validate(transaction: Record<string, unknown>): void {
|
|
260
278
|
validateClawback(tx)
|
261
279
|
break
|
262
280
|
|
281
|
+
case 'DIDDelete':
|
282
|
+
validateDIDDelete(tx)
|
283
|
+
break
|
284
|
+
|
285
|
+
case 'DIDSet':
|
286
|
+
validateDIDSet(tx)
|
287
|
+
break
|
288
|
+
|
263
289
|
case 'DepositPreauth':
|
264
290
|
validateDepositPreauth(tx)
|
265
291
|
break
|
@@ -336,6 +362,10 @@ export function validate(transaction: Record<string, unknown>): void {
|
|
336
362
|
validateTrustSet(tx)
|
337
363
|
break
|
338
364
|
|
365
|
+
case 'XChainAccountCreateCommit':
|
366
|
+
validateXChainAccountCreateCommit(tx)
|
367
|
+
break
|
368
|
+
|
339
369
|
case 'XChainAddAccountCreateAttestation':
|
340
370
|
validateXChainAddAccountCreateAttestation(tx)
|
341
371
|
break
|
@@ -360,10 +390,6 @@ export function validate(transaction: Record<string, unknown>): void {
|
|
360
390
|
validateXChainCreateClaimID(tx)
|
361
391
|
break
|
362
392
|
|
363
|
-
case 'XChainAccountCreateCommit':
|
364
|
-
validateXChainAccountCreateCommit(tx)
|
365
|
-
break
|
366
|
-
|
367
393
|
case 'XChainModifyBridge':
|
368
394
|
validateXChainModifyBridge(tx)
|
369
395
|
break
|
package/src/sugar/submit.ts
CHANGED
@@ -1,10 +1,16 @@
|
|
1
1
|
import { decode, encode } from 'ripple-binary-codec'
|
2
2
|
|
3
|
-
import type {
|
3
|
+
import type {
|
4
|
+
Client,
|
5
|
+
SubmitRequest,
|
6
|
+
SubmitResponse,
|
7
|
+
SubmittableTransaction,
|
8
|
+
Transaction,
|
9
|
+
Wallet,
|
10
|
+
} from '..'
|
4
11
|
import { ValidationError, XrplError } from '../errors'
|
5
12
|
import { Signer } from '../models/common'
|
6
13
|
import { TxRequest, TxResponse } from '../models/methods'
|
7
|
-
import { Transaction } from '../models/transactions'
|
8
14
|
import { BaseTransaction } from '../models/transactions/common'
|
9
15
|
|
10
16
|
/** Approximate time for a ledger to close, in milliseconds */
|
@@ -42,7 +48,7 @@ async function sleep(ms: number): Promise<void> {
|
|
42
48
|
*/
|
43
49
|
export async function submitRequest(
|
44
50
|
client: Client,
|
45
|
-
signedTransaction:
|
51
|
+
signedTransaction: SubmittableTransaction | string,
|
46
52
|
failHard = false,
|
47
53
|
): Promise<SubmitResponse> {
|
48
54
|
if (!isSigned(signedTransaction)) {
|
@@ -104,7 +110,7 @@ export async function submitRequest(
|
|
104
110
|
*/
|
105
111
|
// eslint-disable-next-line max-params, max-lines-per-function -- this function needs to display and do with more information.
|
106
112
|
export async function waitForFinalTransactionOutcome<
|
107
|
-
T extends BaseTransaction =
|
113
|
+
T extends BaseTransaction = SubmittableTransaction,
|
108
114
|
>(
|
109
115
|
client: Client,
|
110
116
|
txHash: string,
|
@@ -159,7 +165,7 @@ export async function waitForFinalTransactionOutcome<
|
|
159
165
|
}
|
160
166
|
|
161
167
|
// checks if the transaction has been signed
|
162
|
-
function isSigned(transaction:
|
168
|
+
function isSigned(transaction: SubmittableTransaction | string): boolean {
|
163
169
|
const tx = typeof transaction === 'string' ? decode(transaction) : transaction
|
164
170
|
if (typeof tx === 'string') {
|
165
171
|
return false
|
@@ -218,7 +224,7 @@ function isSigned(transaction: Transaction | string): boolean {
|
|
218
224
|
*/
|
219
225
|
export async function getSignedTx(
|
220
226
|
client: Client,
|
221
|
-
transaction:
|
227
|
+
transaction: SubmittableTransaction | string,
|
222
228
|
{
|
223
229
|
autofill = true,
|
224
230
|
wallet,
|
@@ -228,7 +234,7 @@ export async function getSignedTx(
|
|
228
234
|
// A wallet to sign a transaction. It must be provided when submitting an unsigned transaction.
|
229
235
|
wallet?: Wallet
|
230
236
|
} = {},
|
231
|
-
): Promise<
|
237
|
+
): Promise<SubmittableTransaction | string> {
|
232
238
|
if (isSigned(transaction)) {
|
233
239
|
return transaction
|
234
240
|
}
|
@@ -242,7 +248,7 @@ export async function getSignedTx(
|
|
242
248
|
let tx =
|
243
249
|
typeof transaction === 'string'
|
244
250
|
? // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- converts JsonObject to correct Transaction type
|
245
|
-
(decode(transaction) as unknown as
|
251
|
+
(decode(transaction) as unknown as SubmittableTransaction)
|
246
252
|
: transaction
|
247
253
|
|
248
254
|
if (autofill) {
|
package/src/utils/collections.ts
CHANGED
@@ -14,20 +14,24 @@ type ValueOf<T> = T[keyof T]
|
|
14
14
|
*/
|
15
15
|
export function groupBy<T>(
|
16
16
|
array: T[],
|
17
|
-
iteratee: (value: T, index: number, array: T[]) => string,
|
18
|
-
):
|
17
|
+
iteratee: (value: T, index: number, array: T[]) => string | number,
|
18
|
+
): Record<string | number, T[]> {
|
19
19
|
// eslint-disable-next-line max-params -- need all the params for the fallback
|
20
|
-
|
21
|
-
acc,
|
22
|
-
value,
|
23
|
-
index,
|
24
|
-
arrayReference,
|
25
|
-
) {
|
26
|
-
|
27
|
-
|
20
|
+
function predicate(
|
21
|
+
acc: Record<string | number, T[]>,
|
22
|
+
value: T,
|
23
|
+
index: number,
|
24
|
+
arrayReference: T[],
|
25
|
+
): Record<string | number, T[]> {
|
26
|
+
const key = iteratee(value, index, arrayReference) || 0
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Find existing group or create a new one
|
28
|
+
const group = acc[key] || []
|
29
|
+
group.push(value)
|
30
|
+
acc[key] = group
|
28
31
|
return acc
|
29
|
-
}
|
30
|
-
|
32
|
+
}
|
33
|
+
|
34
|
+
return array.reduce(predicate, {})
|
31
35
|
}
|
32
36
|
|
33
37
|
/**
|
@@ -3,6 +3,7 @@
|
|
3
3
|
/* eslint-disable no-bitwise -- this file mimics behavior in rippled. It uses
|
4
4
|
bitwise operators for and-ing numbers with a mask and bit shifting. */
|
5
5
|
|
6
|
+
import { bytesToHex } from '@xrplf/isomorphic/utils'
|
6
7
|
import BigNumber from 'bignumber.js'
|
7
8
|
import { decode, encode } from 'ripple-binary-codec'
|
8
9
|
|
@@ -10,7 +11,6 @@ import { ValidationError, XrplError } from '../../errors'
|
|
10
11
|
import type { Ledger } from '../../models/ledger'
|
11
12
|
import { LedgerEntry } from '../../models/ledger'
|
12
13
|
import { Transaction, TransactionMetadata } from '../../models/transactions'
|
13
|
-
import { PseudoTransaction } from '../../models/transactions/transaction'
|
14
14
|
|
15
15
|
import HashPrefix from './HashPrefix'
|
16
16
|
import sha512Half from './sha512Half'
|
@@ -30,10 +30,6 @@ function intToHex(integer: number, byteLength: number): string {
|
|
30
30
|
return foo
|
31
31
|
}
|
32
32
|
|
33
|
-
function bytesToHex(bytes: number[]): string {
|
34
|
-
return Buffer.from(bytes).toString('hex')
|
35
|
-
}
|
36
|
-
|
37
33
|
function bigintToHex(
|
38
34
|
integerString: string | number | BigNumber,
|
39
35
|
byteLength: number,
|
@@ -84,7 +80,11 @@ export function hashSignedTx(tx: Transaction | string): string {
|
|
84
80
|
txObject = tx
|
85
81
|
}
|
86
82
|
|
87
|
-
if (
|
83
|
+
if (
|
84
|
+
txObject.TxnSignature === undefined &&
|
85
|
+
txObject.Signers === undefined &&
|
86
|
+
txObject.SigningPubKey === undefined
|
87
|
+
) {
|
88
88
|
throw new ValidationError('The transaction must be signed to hash it.')
|
89
89
|
}
|
90
90
|
|
@@ -125,9 +125,7 @@ export function hashLedgerHeader(ledgerHeader: Ledger): string {
|
|
125
125
|
* @category Utilities
|
126
126
|
*/
|
127
127
|
export function hashTxTree(
|
128
|
-
transactions: Array<
|
129
|
-
(Transaction | PseudoTransaction) & { metaData?: TransactionMetadata }
|
130
|
-
>,
|
128
|
+
transactions: Array<Transaction & { metaData?: TransactionMetadata }>,
|
131
129
|
): string {
|
132
130
|
const shamap = new SHAMap()
|
133
131
|
for (const txJSON of transactions) {
|
@@ -3,6 +3,7 @@
|
|
3
3
|
/* eslint-disable no-bitwise -- this file mimics behavior in rippled. It uses
|
4
4
|
bitwise operators for and-ing numbers with a mask and bit shifting. */
|
5
5
|
|
6
|
+
import { bytesToHex } from '@xrplf/isomorphic/utils'
|
6
7
|
import BigNumber from 'bignumber.js'
|
7
8
|
import { decodeAccountID } from 'ripple-address-codec'
|
8
9
|
|
@@ -20,7 +21,7 @@ const HEX = 16
|
|
20
21
|
const BYTE_LENGTH = 4
|
21
22
|
|
22
23
|
function addressToHex(address: string): string {
|
23
|
-
return
|
24
|
+
return bytesToHex(decodeAccountID(address))
|
24
25
|
}
|
25
26
|
|
26
27
|
function ledgerSpaceHex(name: keyof typeof ledgerSpaces): string {
|
@@ -37,7 +38,7 @@ function currencyToHex(currency: string): string {
|
|
37
38
|
bytes[12] = currency.charCodeAt(0) & MASK
|
38
39
|
bytes[13] = currency.charCodeAt(1) & MASK
|
39
40
|
bytes[14] = currency.charCodeAt(2) & MASK
|
40
|
-
return
|
41
|
+
return bytesToHex(Uint8Array.from(bytes))
|
41
42
|
}
|
42
43
|
|
43
44
|
/**
|