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
package/dist/npm/utils/index.js
CHANGED
@@ -1,27 +1,4 @@
|
|
1
1
|
"use strict";
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
-
if (k2 === undefined) k2 = k;
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
-
}
|
8
|
-
Object.defineProperty(o, k2, desc);
|
9
|
-
}) : (function(o, m, k, k2) {
|
10
|
-
if (k2 === undefined) k2 = k;
|
11
|
-
o[k2] = m[k];
|
12
|
-
}));
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
-
}) : function(o, v) {
|
16
|
-
o["default"] = v;
|
17
|
-
});
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
-
if (mod && mod.__esModule) return mod;
|
20
|
-
var result = {};
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
-
__setModuleDefault(result, mod);
|
23
|
-
return result;
|
24
|
-
};
|
25
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
26
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
27
4
|
};
|
@@ -42,7 +19,7 @@ Object.defineProperty(exports, "encodeXAddress", { enumerable: true, get: functi
|
|
42
19
|
Object.defineProperty(exports, "isValidClassicAddress", { enumerable: true, get: function () { return ripple_address_codec_1.isValidClassicAddress; } });
|
43
20
|
Object.defineProperty(exports, "isValidXAddress", { enumerable: true, get: function () { return ripple_address_codec_1.isValidXAddress; } });
|
44
21
|
Object.defineProperty(exports, "xAddressToClassicAddress", { enumerable: true, get: function () { return ripple_address_codec_1.xAddressToClassicAddress; } });
|
45
|
-
const
|
22
|
+
const ripple_binary_codec_1 = require("ripple-binary-codec");
|
46
23
|
const ripple_keypairs_1 = require("ripple-keypairs");
|
47
24
|
Object.defineProperty(exports, "verifyKeypairSignature", { enumerable: true, get: function () { return ripple_keypairs_1.verify; } });
|
48
25
|
const derive_1 = require("./derive");
|
@@ -91,23 +68,23 @@ function isValidSecret(secret) {
|
|
91
68
|
}
|
92
69
|
exports.isValidSecret = isValidSecret;
|
93
70
|
function encode(object) {
|
94
|
-
return
|
71
|
+
return (0, ripple_binary_codec_1.encode)(object);
|
95
72
|
}
|
96
73
|
exports.encode = encode;
|
97
74
|
function encodeForSigning(object) {
|
98
|
-
return
|
75
|
+
return (0, ripple_binary_codec_1.encodeForSigning)(object);
|
99
76
|
}
|
100
77
|
exports.encodeForSigning = encodeForSigning;
|
101
78
|
function encodeForSigningClaim(object) {
|
102
|
-
return
|
79
|
+
return (0, ripple_binary_codec_1.encodeForSigningClaim)(object);
|
103
80
|
}
|
104
81
|
exports.encodeForSigningClaim = encodeForSigningClaim;
|
105
82
|
function encodeForMultiSigning(object, signer) {
|
106
|
-
return
|
83
|
+
return (0, ripple_binary_codec_1.encodeForMultisigning)(object, signer);
|
107
84
|
}
|
108
85
|
exports.encodeForMultiSigning = encodeForMultiSigning;
|
109
86
|
function decode(hex) {
|
110
|
-
return
|
87
|
+
return (0, ripple_binary_codec_1.decode)(hex);
|
111
88
|
}
|
112
89
|
exports.decode = decode;
|
113
90
|
function isValidAddress(address) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parseNFTokenID.d.ts","sourceRoot":"","sources":["../../../src/utils/parseNFTokenID.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"parseNFTokenID.d.ts","sourceRoot":"","sources":["../../../src/utils/parseNFTokenID.ts"],"names":[],"mappings":"AAgEA,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG;IACzD,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB,CAuBA"}
|
@@ -3,11 +3,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
4
|
};
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
const utils_1 = require("@xrplf/isomorphic/utils");
|
6
7
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
7
8
|
const ripple_address_codec_1 = require("ripple-address-codec");
|
8
9
|
const errors_1 = require("../errors");
|
9
10
|
function unscrambleTaxon(taxon, tokenSeq) {
|
10
|
-
|
11
|
+
const seed = 384160001;
|
12
|
+
const increment = 2459;
|
13
|
+
const max = 4294967296;
|
14
|
+
const scramble = new bignumber_js_1.default(seed)
|
15
|
+
.multipliedBy(tokenSeq)
|
16
|
+
.modulo(max)
|
17
|
+
.plus(increment)
|
18
|
+
.modulo(max)
|
19
|
+
.toNumber();
|
20
|
+
return (taxon ^ scramble) >>> 0;
|
11
21
|
}
|
12
22
|
function parseNFTokenID(nftokenID) {
|
13
23
|
const expectedLength = 64;
|
@@ -21,7 +31,7 @@ function parseNFTokenID(nftokenID) {
|
|
21
31
|
NFTokenID: nftokenID,
|
22
32
|
Flags: new bignumber_js_1.default(nftokenID.substring(0, 4), 16).toNumber(),
|
23
33
|
TransferFee: new bignumber_js_1.default(nftokenID.substring(4, 8), 16).toNumber(),
|
24
|
-
Issuer: (0, ripple_address_codec_1.encodeAccountID)(
|
34
|
+
Issuer: (0, ripple_address_codec_1.encodeAccountID)((0, utils_1.hexToBytes)(nftokenID.substring(8, 48))),
|
25
35
|
Taxon: unscrambleTaxon(scrambledTaxon, sequence),
|
26
36
|
Sequence: sequence,
|
27
37
|
};
|
@@ -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,mDAAoD;AACpD,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,IAAA,kBAAU,EAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/D,KAAK,EAAE,eAAe,CAAC,cAAc,EAAE,QAAQ,CAAC;QAChD,QAAQ,EAAE,QAAQ;KACnB,CAAA;IAED,OAAO,aAAa,CAAA;AACtB,CAAC;AA9BD,iCA8BC"}
|
@@ -1,5 +1,4 @@
|
|
1
|
-
/// <reference types="node" />
|
2
1
|
declare function convertStringToHex(string: string): string;
|
3
|
-
declare function convertHexToString(hex: string, encoding?:
|
2
|
+
declare function convertHexToString(hex: string, encoding?: string): string;
|
4
3
|
export { convertHexToString, convertStringToHex };
|
5
4
|
//# sourceMappingURL=stringConversion.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"stringConversion.d.ts","sourceRoot":"","sources":["../../../src/utils/stringConversion.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"stringConversion.d.ts","sourceRoot":"","sources":["../../../src/utils/stringConversion.ts"],"names":[],"mappings":"AAYA,iBAAS,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAElD;AAaD,iBAAS,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,SAAS,GAAG,MAAM,CAElE;AAED,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAA"}
|
@@ -1,12 +1,13 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.convertStringToHex = exports.convertHexToString = void 0;
|
4
|
+
const utils_1 = require("@xrplf/isomorphic/utils");
|
4
5
|
function convertStringToHex(string) {
|
5
|
-
return
|
6
|
+
return (0, utils_1.stringToHex)(string);
|
6
7
|
}
|
7
8
|
exports.convertStringToHex = convertStringToHex;
|
8
9
|
function convertHexToString(hex, encoding = 'utf8') {
|
9
|
-
return
|
10
|
+
return (0, utils_1.hexToString)(hex, encoding);
|
10
11
|
}
|
11
12
|
exports.convertHexToString = convertHexToString;
|
12
13
|
//# sourceMappingURL=stringConversion.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"stringConversion.js","sourceRoot":"","sources":["../../../src/utils/stringConversion.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"stringConversion.js","sourceRoot":"","sources":["../../../src/utils/stringConversion.ts"],"names":[],"mappings":";;;AAAA,mDAAkE;AAYlE,SAAS,kBAAkB,CAAC,MAAc;IACxC,OAAO,IAAA,mBAAW,EAAC,MAAM,CAAC,CAAA;AAC5B,CAAC;AAiB4B,gDAAkB;AAJ/C,SAAS,kBAAkB,CAAC,GAAW,EAAE,QAAQ,GAAG,MAAM;IACxD,OAAO,IAAA,mBAAW,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;AACnC,CAAC;AAEQ,gDAAkB"}
|
@@ -1,4 +1,4 @@
|
|
1
1
|
import BigNumber from 'bignumber.js';
|
2
|
-
export declare function dropsToXrp(dropsToConvert: BigNumber.Value):
|
2
|
+
export declare function dropsToXrp(dropsToConvert: BigNumber.Value): number;
|
3
3
|
export declare function xrpToDrops(xrpToConvert: BigNumber.Value): string;
|
4
4
|
//# sourceMappingURL=xrpConversion.d.ts.map
|
@@ -23,7 +23,7 @@ function dropsToXrp(dropsToConvert) {
|
|
23
23
|
` value '${drops}',` +
|
24
24
|
` does not match (^-?[0-9]+$).`);
|
25
25
|
}
|
26
|
-
return new bignumber_js_1.default(drops).dividedBy(DROPS_PER_XRP).
|
26
|
+
return new bignumber_js_1.default(drops).dividedBy(DROPS_PER_XRP).toNumber();
|
27
27
|
}
|
28
28
|
exports.dropsToXrp = dropsToXrp;
|
29
29
|
function xrpToDrops(xrpToConvert) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"xrpConversion.js","sourceRoot":"","sources":["../../../src/utils/xrpConversion.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAoC;AAEpC,sCAA2C;AAE3C,MAAM,aAAa,GAAG,SAAS,CAAA;AAC/B,MAAM,mBAAmB,GAAG,CAAC,CAAA;AAC7B,MAAM,QAAQ,GAAG,EAAE,CAAA;AACnB,MAAM,YAAY,GAAG,cAAc,CAAA;AAUnC,SAAgB,UAAU,CAAC,cAA+B;IAMxD,MAAM,KAAK,GAAG,IAAI,sBAAS,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAG9D,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,KAAK,KAAK,KAAK,EAAE;QACzD,MAAM,IAAI,wBAAe,CACvB,8BAA8B,cAAc,oDAAoD,CACjG,CAAA;KACF;IAGD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACvB,MAAM,IAAI,wBAAe,CACvB,sBAAsB,KAAK,gCAAgC,CAC5D,CAAA;KACF;IAOD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QAC7B,MAAM,IAAI,wBAAe,CACvB,mCAAmC;YACjC,WAAW,KAAK,IAAI;YACpB,+BAA+B,CAClC,CAAA;KACF;IAED,OAAO,IAAI,sBAAS,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,QAAQ,
|
1
|
+
{"version":3,"file":"xrpConversion.js","sourceRoot":"","sources":["../../../src/utils/xrpConversion.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAoC;AAEpC,sCAA2C;AAE3C,MAAM,aAAa,GAAG,SAAS,CAAA;AAC/B,MAAM,mBAAmB,GAAG,CAAC,CAAA;AAC7B,MAAM,QAAQ,GAAG,EAAE,CAAA;AACnB,MAAM,YAAY,GAAG,cAAc,CAAA;AAUnC,SAAgB,UAAU,CAAC,cAA+B;IAMxD,MAAM,KAAK,GAAG,IAAI,sBAAS,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAG9D,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,KAAK,KAAK,KAAK,EAAE;QACzD,MAAM,IAAI,wBAAe,CACvB,8BAA8B,cAAc,oDAAoD,CACjG,CAAA;KACF;IAGD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACvB,MAAM,IAAI,wBAAe,CACvB,sBAAsB,KAAK,gCAAgC,CAC5D,CAAA;KACF;IAOD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QAC7B,MAAM,IAAI,wBAAe,CACvB,mCAAmC;YACjC,WAAW,KAAK,IAAI;YACpB,+BAA+B,CAClC,CAAA;KACF;IAED,OAAO,IAAI,sBAAS,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAA;AACjE,CAAC;AApCD,gCAoCC;AAUD,SAAgB,UAAU,CAAC,YAA6B;IAEtD,MAAM,GAAG,GAAG,IAAI,sBAAS,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAG1D,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,GAAG,KAAK,KAAK,EAAE;QACrD,MAAM,IAAI,wBAAe,CACvB,8BAA8B,YAAY,oDAAoD,CAC/F,CAAA;KACF;IAOD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAC3B,MAAM,IAAI,wBAAe,CACvB,4CAA4C,GAAG,kCAAkC,CAClF,CAAA;KACF;IAED,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACjC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QACzB,MAAM,IAAI,wBAAe,CACvB,4CAA4C,GAAG,gCAAgC,CAChF,CAAA;KACF;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,CAAA;IACrC,IAAI,QAAQ,CAAC,MAAM,GAAG,mBAAmB,EAAE;QACzC,MAAM,IAAI,wBAAe,CACvB,sBAAsB,GAAG,gCAAgC,CAC1D,CAAA;KACF;IAED,OAAO,IAAI,sBAAS,CAAC,GAAG,CAAC;SACtB,KAAK,CAAC,aAAa,CAAC;SACpB,YAAY,CAAC,sBAAS,CAAC,WAAW,CAAC;SACnC,QAAQ,CAAC,QAAQ,CAAC,CAAA;AACvB,CAAC;AAxCD,gCAwCC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "xrpl",
|
3
|
-
"version": "3.0.0
|
3
|
+
"version": "3.0.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": [
|
@@ -24,14 +24,14 @@
|
|
24
24
|
"dependencies": {
|
25
25
|
"@scure/bip32": "^1.3.1",
|
26
26
|
"@scure/bip39": "^1.2.1",
|
27
|
-
"@xrplf/isomorphic": "^1.0.0
|
28
|
-
"@xrplf/secret-numbers": "^1.0.0
|
27
|
+
"@xrplf/isomorphic": "^1.0.0",
|
28
|
+
"@xrplf/secret-numbers": "^1.0.0",
|
29
29
|
"bignumber.js": "^9.0.0",
|
30
30
|
"cross-fetch": "^4.0.0",
|
31
31
|
"eventemitter3": "^5.0.1",
|
32
|
-
"ripple-address-codec": "^5.0.0
|
33
|
-
"ripple-binary-codec": "^2.0.0
|
34
|
-
"ripple-keypairs": "^2.0.0
|
32
|
+
"ripple-address-codec": "^5.0.0",
|
33
|
+
"ripple-binary-codec": "^2.0.0",
|
34
|
+
"ripple-keypairs": "^2.0.0"
|
35
35
|
},
|
36
36
|
"devDependencies": {
|
37
37
|
"@types/node": "^16.18.38",
|
@@ -89,5 +89,5 @@
|
|
89
89
|
"engines": {
|
90
90
|
"node": ">=16.0.0"
|
91
91
|
},
|
92
|
-
"gitHead": "
|
92
|
+
"gitHead": "a09084289b2ba61eff2363773379573584e084d1"
|
93
93
|
}
|
@@ -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
@@ -158,14 +158,14 @@ export async function requestFunding(
|
|
158
158
|
body: JSON.stringify(postBody),
|
159
159
|
})
|
160
160
|
|
161
|
-
// eslint-disable-next-line @typescript-eslint/
|
162
|
-
const body =
|
163
|
-
// "application/json; charset=utf-8"
|
161
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- it can be anything
|
162
|
+
const body = await response.json()
|
164
163
|
if (
|
165
164
|
response.ok &&
|
166
165
|
response.headers.get('Content-Type')?.startsWith('application/json')
|
167
166
|
) {
|
168
|
-
|
167
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- It's a FaucetWallet
|
168
|
+
const classicAddress = (body as FaucetWallet).account.classicAddress
|
169
169
|
return processSuccessfulResponse(
|
170
170
|
client,
|
171
171
|
classicAddress,
|
@@ -173,7 +173,7 @@ export async function requestFunding(
|
|
173
173
|
startingBalance,
|
174
174
|
)
|
175
175
|
}
|
176
|
-
return processError(response)
|
176
|
+
return processError(response, body)
|
177
177
|
}
|
178
178
|
|
179
179
|
// eslint-disable-next-line max-params -- Only used as a helper function, lines inc due to added balance.
|
@@ -218,12 +218,12 @@ async function processSuccessfulResponse(
|
|
218
218
|
}
|
219
219
|
}
|
220
220
|
|
221
|
-
async function processError(response: Response): Promise<never> {
|
221
|
+
async function processError(response: Response, body): Promise<never> {
|
222
222
|
return Promise.reject(
|
223
223
|
new XRPLFaucetError(
|
224
224
|
`Request failed: ${JSON.stringify({
|
225
225
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- json response could be anything
|
226
|
-
body:
|
226
|
+
body: body || {},
|
227
227
|
contentType: response.headers.get('Content-Type'),
|
228
228
|
statusCode: response.status,
|
229
229
|
})}`,
|
package/src/Wallet/rfc1751.ts
CHANGED
@@ -10,6 +10,8 @@
|
|
10
10
|
*is part of the public domain.
|
11
11
|
*/
|
12
12
|
|
13
|
+
import { hexToBytes, concat } from '@xrplf/isomorphic/utils'
|
14
|
+
|
13
15
|
import rfc1751Words from './rfc1751Words.json'
|
14
16
|
|
15
17
|
const rfc1751WordList: string[] = rfc1751Words
|
@@ -59,7 +61,7 @@ function extract(key: string, start: number, length: number): number {
|
|
59
61
|
*/
|
60
62
|
function keyToRFC1751Mnemonic(hex_key: string): string {
|
61
63
|
// Remove whitespace and interpret hex
|
62
|
-
const buf =
|
64
|
+
const buf = hexToBytes(hex_key.replace(/\s+/gu, ''))
|
63
65
|
// Swap byte order and use rfc1751
|
64
66
|
let key: number[] = bufferToArray(swap128(buf))
|
65
67
|
|
@@ -97,7 +99,7 @@ function keyToRFC1751Mnemonic(hex_key: string): string {
|
|
97
99
|
* @throws Error if the parity after decoding does not match.
|
98
100
|
* @returns A Buffer containing an encoded secret.
|
99
101
|
*/
|
100
|
-
function rfc1751MnemonicToKey(english: string):
|
102
|
+
function rfc1751MnemonicToKey(english: string): Uint8Array {
|
101
103
|
const words = english.split(' ')
|
102
104
|
let key: number[] = []
|
103
105
|
|
@@ -123,7 +125,7 @@ function rfc1751MnemonicToKey(english: string): Buffer {
|
|
123
125
|
}
|
124
126
|
|
125
127
|
// This is a step specific to the XRPL's implementation
|
126
|
-
const bufferKey = swap128(
|
128
|
+
const bufferKey = swap128(Uint8Array.from(key))
|
127
129
|
return bufferKey
|
128
130
|
}
|
129
131
|
|
@@ -165,26 +167,53 @@ function getSubKey(
|
|
165
167
|
return { subKey, word }
|
166
168
|
}
|
167
169
|
|
168
|
-
function bufferToArray(buf:
|
170
|
+
function bufferToArray(buf: Uint8Array): number[] {
|
169
171
|
/* eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- We know the end type */
|
170
172
|
return Array.prototype.slice.call(buf) as number[]
|
171
173
|
}
|
172
174
|
|
175
|
+
function swap(arr: Uint8Array, n: number, m: number): void {
|
176
|
+
const i = arr[n]
|
177
|
+
// eslint-disable-next-line no-param-reassign -- we have to swap
|
178
|
+
arr[n] = arr[m]
|
179
|
+
// eslint-disable-next-line no-param-reassign -- see above
|
180
|
+
arr[m] = i
|
181
|
+
}
|
182
|
+
|
183
|
+
/**
|
184
|
+
* Interprets arr as an array of 64-bit numbers and swaps byte order in 64 bit chunks.
|
185
|
+
* Example of two 64 bit numbers 0000000100000002 => 1000000020000000
|
186
|
+
*
|
187
|
+
* @param arr A Uint8Array representation of one or more 64 bit numbers
|
188
|
+
* @returns Uint8Array An array containing the bytes of 64 bit numbers each with reversed endianness
|
189
|
+
*/
|
190
|
+
function swap64(arr: Uint8Array): Uint8Array {
|
191
|
+
const len = arr.length
|
192
|
+
|
193
|
+
for (let i = 0; i < len; i += 8) {
|
194
|
+
swap(arr, i, i + 7)
|
195
|
+
swap(arr, i + 1, i + 6)
|
196
|
+
swap(arr, i + 2, i + 5)
|
197
|
+
swap(arr, i + 3, i + 4)
|
198
|
+
}
|
199
|
+
|
200
|
+
return arr
|
201
|
+
}
|
202
|
+
|
173
203
|
/**
|
174
|
-
* Swap the byte order of a 128-bit
|
204
|
+
* Swap the byte order of a 128-bit array.
|
205
|
+
* Ex. 0000000100000002 => 2000000010000000
|
175
206
|
*
|
176
|
-
* @param
|
177
|
-
* @returns
|
207
|
+
* @param arr - A 128-bit (16 byte) array
|
208
|
+
* @returns An array containing the same data with reversed endianness
|
178
209
|
*/
|
179
|
-
function swap128(
|
180
|
-
// Interprets
|
181
|
-
|
182
|
-
|
183
|
-
//
|
184
|
-
|
185
|
-
|
186
|
-
16,
|
187
|
-
)
|
210
|
+
function swap128(arr: Uint8Array): Uint8Array {
|
211
|
+
// Interprets arr as an array of (two, in this case) 64-bit numbers and swaps byte order in 64 bit chunks.
|
212
|
+
// Ex. 0000000100000002 => 1000000020000000
|
213
|
+
const reversedBytes = swap64(arr)
|
214
|
+
// Further swap the two 64-bit numbers since our buffer is 128 bits.
|
215
|
+
// Ex. 1000000020000000 => 2000000010000000
|
216
|
+
return concat([reversedBytes.slice(8, 16), reversedBytes.slice(0, 8)])
|
188
217
|
}
|
189
218
|
|
190
219
|
export { rfc1751MnemonicToKey, keyToRFC1751Mnemonic }
|
package/src/Wallet/signer.ts
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
import { bytesToHex } from '@xrplf/isomorphic/utils'
|
1
2
|
import { BigNumber } from 'bignumber.js'
|
2
3
|
import { decodeAccountID } from 'ripple-address-codec'
|
3
4
|
import { decode, encode, encodeForSigning } from 'ripple-binary-codec'
|
@@ -144,7 +145,7 @@ function compareSigners(left: Signer, right: Signer): number {
|
|
144
145
|
const NUM_BITS_IN_HEX = 16
|
145
146
|
|
146
147
|
function addressToBigNumber(address: string): BigNumber {
|
147
|
-
const hex =
|
148
|
+
const hex = bytesToHex(decodeAccountID(address))
|
148
149
|
return new BigNumber(hex, NUM_BITS_IN_HEX)
|
149
150
|
}
|
150
151
|
|
package/src/client/connection.ts
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
/* eslint-disable max-lines -- Connection is a large file w/ lots of imports/exports */
|
2
2
|
import type { Agent } from 'http'
|
3
3
|
|
4
|
+
import { bytesToHex, hexToString } from '@xrplf/isomorphic/utils'
|
4
5
|
import WebSocket, { ClientOptions } from '@xrplf/isomorphic/ws'
|
5
6
|
import { EventEmitter } from 'eventemitter3'
|
6
7
|
|
@@ -68,10 +69,9 @@ function createWebSocket(
|
|
68
69
|
options.headers = config.headers
|
69
70
|
}
|
70
71
|
if (config.authorization != null) {
|
71
|
-
const base64 = Buffer.from(config.authorization).toString('base64')
|
72
72
|
options.headers = {
|
73
73
|
...options.headers,
|
74
|
-
Authorization: `Basic ${
|
74
|
+
Authorization: `Basic ${btoa(config.authorization)}`,
|
75
75
|
}
|
76
76
|
}
|
77
77
|
const websocketOptions = { ...options }
|
@@ -382,7 +382,7 @@ export class Connection extends EventEmitter {
|
|
382
382
|
this.emit('error', 'websocket', error.message, error),
|
383
383
|
)
|
384
384
|
// Handle a closed connection: reconnect if it was unexpected
|
385
|
-
this.ws.once('close', (code?: number, reason?:
|
385
|
+
this.ws.once('close', (code?: number, reason?: Uint8Array) => {
|
386
386
|
if (this.ws == null) {
|
387
387
|
throw new XrplError('onceClose: ws is null')
|
388
388
|
}
|
@@ -390,7 +390,9 @@ export class Connection extends EventEmitter {
|
|
390
390
|
this.clearHeartbeatInterval()
|
391
391
|
this.requestManager.rejectAll(
|
392
392
|
new DisconnectedError(
|
393
|
-
`websocket was closed, ${
|
393
|
+
`websocket was closed, ${
|
394
|
+
reason ? hexToString(bytesToHex(reason)) : ''
|
395
|
+
}`,
|
394
396
|
),
|
395
397
|
)
|
396
398
|
this.ws.removeAllListeners()
|
package/src/client/index.ts
CHANGED
@@ -41,7 +41,7 @@ import type {
|
|
41
41
|
EventTypes,
|
42
42
|
OnEventToListenerMap,
|
43
43
|
} from '../models/methods/subscribe'
|
44
|
-
import type {
|
44
|
+
import type { SubmittableTransaction } from '../models/transactions'
|
45
45
|
import { setTransactionFlagsToNumber } from '../models/utils/flags'
|
46
46
|
import {
|
47
47
|
ensureClassicAddress,
|
@@ -623,12 +623,12 @@ class Client extends EventEmitter<EventTypes> {
|
|
623
623
|
* in an unsigned transaction along with your wallet to be submitted.
|
624
624
|
*
|
625
625
|
* @template T
|
626
|
-
* @param transaction - A {@link
|
626
|
+
* @param transaction - A {@link SubmittableTransaction} in JSON format
|
627
627
|
* @param signersCount - The expected number of signers for this transaction.
|
628
628
|
* Only used for multisigned transactions.
|
629
629
|
* @returns The autofilled transaction.
|
630
630
|
*/
|
631
|
-
public async autofill<T extends
|
631
|
+
public async autofill<T extends SubmittableTransaction>(
|
632
632
|
transaction: T,
|
633
633
|
signersCount?: number,
|
634
634
|
): Promise<T> {
|
@@ -693,7 +693,7 @@ class Client extends EventEmitter<EventTypes> {
|
|
693
693
|
* ```
|
694
694
|
*/
|
695
695
|
public async submit(
|
696
|
-
transaction:
|
696
|
+
transaction: SubmittableTransaction | string,
|
697
697
|
opts?: {
|
698
698
|
// If true, autofill a transaction.
|
699
699
|
autofill?: boolean
|
@@ -764,7 +764,9 @@ class Client extends EventEmitter<EventTypes> {
|
|
764
764
|
* ledger, the promise returned by `submitAndWait()` will be rejected with an error.
|
765
765
|
* @returns A promise that contains TxResponse, that will return when the transaction has been validated.
|
766
766
|
*/
|
767
|
-
public async submitAndWait<
|
767
|
+
public async submitAndWait<
|
768
|
+
T extends SubmittableTransaction = SubmittableTransaction,
|
769
|
+
>(
|
768
770
|
transaction: T | string,
|
769
771
|
opts?: {
|
770
772
|
// If true, autofill a transaction.
|
@@ -804,7 +806,7 @@ class Client extends EventEmitter<EventTypes> {
|
|
804
806
|
* @deprecated Use autofill instead, provided for users familiar with v1
|
805
807
|
*/
|
806
808
|
public async prepareTransaction(
|
807
|
-
transaction:
|
809
|
+
transaction: SubmittableTransaction,
|
808
810
|
signersCount?: number,
|
809
811
|
): ReturnType<Client['autofill']> {
|
810
812
|
return this.autofill(transaction, signersCount)
|
@@ -829,7 +831,7 @@ class Client extends EventEmitter<EventTypes> {
|
|
829
831
|
* @param [options] - Additional options for fetching the balance (optional).
|
830
832
|
* @param [options.ledger_hash] - The hash of the ledger to retrieve the balance from (optional).
|
831
833
|
* @param [options.ledger_index] - The index of the ledger to retrieve the balance from (optional).
|
832
|
-
* @returns A promise that resolves with the XRP balance as a
|
834
|
+
* @returns A promise that resolves with the XRP balance as a number.
|
833
835
|
*/
|
834
836
|
public async getXrpBalance(
|
835
837
|
address: string,
|
@@ -837,7 +839,7 @@ class Client extends EventEmitter<EventTypes> {
|
|
837
839
|
ledger_hash?: string
|
838
840
|
ledger_index?: LedgerIndex
|
839
841
|
} = {},
|
840
|
-
): Promise<
|
842
|
+
): Promise<number> {
|
841
843
|
const xrpRequest: AccountInfoRequest = {
|
842
844
|
command: 'account_info',
|
843
845
|
account: address,
|
@@ -911,7 +913,7 @@ class Client extends EventEmitter<EventTypes> {
|
|
911
913
|
const balances: Balance[] = []
|
912
914
|
|
913
915
|
// get XRP balance
|
914
|
-
let xrpPromise: Promise<
|
916
|
+
let xrpPromise: Promise<number> = Promise.resolve(0)
|
915
917
|
if (!options.peer) {
|
916
918
|
xrpPromise = this.getXrpBalance(address, {
|
917
919
|
ledger_hash: options.ledger_hash,
|
@@ -936,8 +938,8 @@ class Client extends EventEmitter<EventTypes> {
|
|
936
938
|
const accountLinesBalance = linesResponses.flatMap((response) =>
|
937
939
|
formatBalances(response.result.lines),
|
938
940
|
)
|
939
|
-
if (xrpBalance !==
|
940
|
-
balances.push({ currency: 'XRP', value: xrpBalance })
|
941
|
+
if (xrpBalance !== 0) {
|
942
|
+
balances.push({ currency: 'XRP', value: xrpBalance.toString() })
|
941
943
|
}
|
942
944
|
balances.push(...accountLinesBalance)
|
943
945
|
},
|
@@ -10,11 +10,7 @@ import type {
|
|
10
10
|
import type { Amount } from '../models/common'
|
11
11
|
import type { RequestResponseMap } from '../models/methods'
|
12
12
|
import { BaseRequest, BaseResponse } from '../models/methods/baseMethod'
|
13
|
-
import {
|
14
|
-
PaymentFlags,
|
15
|
-
PseudoTransaction,
|
16
|
-
Transaction,
|
17
|
-
} from '../models/transactions'
|
13
|
+
import { PaymentFlags, Transaction } from '../models/transactions'
|
18
14
|
import type { TransactionMetadata } from '../models/transactions/metadata'
|
19
15
|
import { isFlagEnabled } from '../models/utils'
|
20
16
|
|
@@ -40,7 +36,7 @@ function amountsEqual(amt1: Amount, amt2: Amount): boolean {
|
|
40
36
|
}
|
41
37
|
|
42
38
|
function isPartialPayment(
|
43
|
-
tx?: Transaction
|
39
|
+
tx?: Transaction,
|
44
40
|
metadata?: TransactionMetadata | string,
|
45
41
|
): boolean {
|
46
42
|
if (tx == null || metadata == null || tx.TransactionType !== 'Payment') {
|
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
|
+
}
|