xrpl 2.2.2 → 2.3.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 +2 -1
- package/build/xrpl-latest-min.js.map +1 -0
- package/build/xrpl-latest.js +70798 -388
- package/build/xrpl-latest.js.map +1 -0
- package/dist/npm/Wallet/fundWallet.d.ts +2 -1
- package/dist/npm/Wallet/fundWallet.d.ts.map +1 -1
- package/dist/npm/Wallet/fundWallet.js +4 -0
- package/dist/npm/Wallet/fundWallet.js.map +1 -1
- package/dist/npm/Wallet/index.d.ts +6 -3
- package/dist/npm/Wallet/index.d.ts.map +1 -1
- package/dist/npm/Wallet/index.js +87 -16
- package/dist/npm/Wallet/index.js.map +1 -1
- package/dist/npm/Wallet/rfc1751.d.ts +5 -0
- package/dist/npm/Wallet/rfc1751.d.ts.map +1 -0
- package/dist/npm/Wallet/rfc1751.js +111 -0
- package/dist/npm/Wallet/rfc1751.js.map +1 -0
- package/dist/npm/Wallet/rfc1751Words.json +243 -0
- package/dist/npm/client/connection.d.ts.map +1 -1
- package/dist/npm/client/connection.js +13 -2
- package/dist/npm/client/connection.js.map +1 -1
- package/dist/npm/client/index.js +5 -1
- package/dist/npm/client/index.js.map +1 -1
- package/dist/npm/index.d.ts +1 -0
- package/dist/npm/index.d.ts.map +1 -1
- package/dist/npm/index.js +9 -2
- package/dist/npm/index.js.map +1 -1
- package/dist/npm/models/index.js +5 -1
- package/dist/npm/models/index.js.map +1 -1
- package/dist/npm/models/methods/accountOffers.d.ts +1 -2
- package/dist/npm/models/methods/accountOffers.d.ts.map +1 -1
- package/dist/npm/models/methods/index.d.ts +2 -2
- package/dist/npm/models/methods/index.d.ts.map +1 -1
- package/dist/npm/models/transactions/NFTokenMint.d.ts.map +1 -1
- package/dist/npm/models/transactions/NFTokenMint.js +4 -0
- package/dist/npm/models/transactions/NFTokenMint.js.map +1 -1
- package/dist/npm/models/utils/index.d.ts +1 -0
- package/dist/npm/models/utils/index.d.ts.map +1 -1
- package/dist/npm/models/utils/index.js +6 -1
- package/dist/npm/models/utils/index.js.map +1 -1
- package/dist/npm/sugar/index.js +5 -1
- package/dist/npm/sugar/index.js.map +1 -1
- package/dist/npm/sugar/submit.js +2 -1
- package/dist/npm/sugar/submit.js.map +1 -1
- package/dist/npm/utils/hashes/SHAMap/index.js +5 -1
- package/dist/npm/utils/hashes/SHAMap/index.js.map +1 -1
- package/dist/npm/utils/hashes/hashLedger.js +5 -1
- package/dist/npm/utils/hashes/hashLedger.js.map +1 -1
- package/dist/npm/utils/hashes/index.js +5 -1
- package/dist/npm/utils/hashes/index.js.map +1 -1
- package/dist/npm/utils/index.js +5 -1
- package/dist/npm/utils/index.js.map +1 -1
- package/package.json +6 -4
@@ -2,7 +2,8 @@ import type { Client } from '..';
|
|
2
2
|
import Wallet from '.';
|
3
3
|
declare enum FaucetNetwork {
|
4
4
|
Testnet = "faucet.altnet.rippletest.net",
|
5
|
-
Devnet = "faucet.devnet.rippletest.net"
|
5
|
+
Devnet = "faucet.devnet.rippletest.net",
|
6
|
+
NFTDevnet = "faucet-nft.ripple.com"
|
6
7
|
}
|
7
8
|
declare function fundWallet(this: Client, wallet?: Wallet | null, options?: {
|
8
9
|
faucetHost?: string;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"fundWallet.d.ts","sourceRoot":"","sources":["../../../src/Wallet/fundWallet.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,CAAA;AAGhC,OAAO,MAAM,MAAM,GAAG,CAAA;AAYtB,aAAK,aAAa;IAChB,OAAO,iCAAiC;IACxC,MAAM,iCAAiC;
|
1
|
+
{"version":3,"file":"fundWallet.d.ts","sourceRoot":"","sources":["../../../src/Wallet/fundWallet.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,CAAA;AAGhC,OAAO,MAAM,MAAM,GAAG,CAAA;AAYtB,aAAK,aAAa;IAChB,OAAO,iCAAiC;IACxC,MAAM,iCAAiC;IACvC,SAAS,0BAA0B;CACpC;AA6BD,iBAAe,UAAU,CACvB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EACtB,OAAO,CAAC,EAAE;IACR,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,GACA,OAAO,CAAC;IACT,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB,CAAC,CAuCD;AA0MD,iBAAS,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAiBhE;AAED,eAAe,UAAU,CAAA;AAEzB,QAAA,MAAM,QAAQ;;;CAGb,CAAA;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
|
@@ -21,6 +21,7 @@ var FaucetNetwork;
|
|
21
21
|
(function (FaucetNetwork) {
|
22
22
|
FaucetNetwork["Testnet"] = "faucet.altnet.rippletest.net";
|
23
23
|
FaucetNetwork["Devnet"] = "faucet.devnet.rippletest.net";
|
24
|
+
FaucetNetwork["NFTDevnet"] = "faucet-nft.ripple.com";
|
24
25
|
})(FaucetNetwork || (FaucetNetwork = {}));
|
25
26
|
const INTERVAL_SECONDS = 1;
|
26
27
|
const MAX_ATTEMPTS = 20;
|
@@ -162,6 +163,9 @@ function getFaucetHost(client) {
|
|
162
163
|
if (connectionUrl.includes('devnet')) {
|
163
164
|
return FaucetNetwork.Devnet;
|
164
165
|
}
|
166
|
+
if (connectionUrl.includes('xls20-sandbox')) {
|
167
|
+
return FaucetNetwork.NFTDevnet;
|
168
|
+
}
|
165
169
|
throw new errors_1.XRPLFaucetError('Faucet URL is not defined or inferrable.');
|
166
170
|
}
|
167
171
|
exports.default = fundWallet;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"fundWallet.js","sourceRoot":"","sources":["../../../src/Wallet/fundWallet.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,iCAA+D;AAE/D,+DAA4D;AAG5D,sCAAyD;AAEzD,yCAAsB;AAYtB,IAAK,
|
1
|
+
{"version":3,"file":"fundWallet.js","sourceRoot":"","sources":["../../../src/Wallet/fundWallet.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,iCAA+D;AAE/D,+DAA4D;AAG5D,sCAAyD;AAEzD,yCAAsB;AAYtB,IAAK,aAIJ;AAJD,WAAK,aAAa;IAChB,yDAAwC,CAAA;IACxC,wDAAuC,CAAA;IACvC,oDAAmC,CAAA;AACrC,CAAC,EAJI,aAAa,KAAb,aAAa,QAIjB;AAGD,MAAM,gBAAgB,GAAG,CAAC,CAAA;AAE1B,MAAM,YAAY,GAAG,EAAE,CAAA;AAwBvB,SAAe,UAAU,CAEvB,MAAsB,EACtB,OAEC;;QAKD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;YACvB,MAAM,IAAI,qBAAY,CAAC,0CAA0C,CAAC,CAAA;SACnE;QAGD,MAAM,YAAY,GAChB,MAAM,IAAI,IAAA,4CAAqB,EAAC,MAAM,CAAC,cAAc,CAAC;YACpD,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,UAAM,CAAC,QAAQ,EAAE,CAAA;QAGvB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAC1B,IAAI,WAAW,EAAE,CAAC,MAAM,CACtB,IAAI,CAAC,SAAS,CAAC;YACb,WAAW,EAAE,YAAY,CAAC,cAAc;SACzC,CAAC,CACH,CACF,CAAA;QAED,IAAI,eAAe,GAAG,CAAC,CAAA;QACvB,IAAI;YACF,eAAe,GAAG,MAAM,CACtB,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,cAAc,CAAC,CACtD,CAAA;SACF;QAAC,WAAM;SAEP;QAGD,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,CAAC,CAAA;QAEvE,OAAO,aAAa,CAClB,WAAW,EACX,IAAI,EACJ,eAAe,EACf,YAAY,EACZ,QAAQ,CACT,CAAA;IACH,CAAC;CAAA;AAGD,SAAe,aAAa,CAC1B,OAAuB,EACvB,MAAc,EACd,eAAuB,EACvB,YAAoB,EACpB,QAAgB;;QAKhB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,OAAO,GAAG,IAAA,eAAY,EAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACjD,MAAM,MAAM,GAAiB,EAAE,CAAA;gBAC/B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;gBAEhD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAS,EAAE;oBAC5B,OAAA,KAAK,CACH,QAAQ,EACR,MAAM,EACN,MAAM,EACN,eAAe,EACf,YAAY,EACZ,OAAO,EACP,MAAM,CACP,CAAA;kBAAA,CACF,CAAA;YACH,CAAC,CAAC,CAAA;YAEF,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YAEvB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC5B,MAAM,CAAC,KAAK,CAAC,CAAA;YACf,CAAC,CAAC,CAAA;YAEF,OAAO,CAAC,GAAG,EAAE,CAAA;QACf,CAAC,CAAC,CAAA;IACJ,CAAC;CAAA;AAED,SAAS,cAAc,CACrB,MAAc,EACd,QAAoB,EACpB,QAAiB;IAEjB,OAAO;QACL,QAAQ,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,aAAa,CAAC,MAAM,CAAC;QAC3C,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,gBAAgB,EAAE,QAAQ,CAAC,MAAM;SAClC;KACF,CAAA;AACH,CAAC;AAGD,SAAe,KAAK,CAClB,QAAyB,EACzB,MAAoB,EACpB,MAAc,EACd,eAAuB,EACvB,YAAoB,EACpB,OAAgE,EAChE,MAAyD;;;QAEzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;QAG7C,IAAI,MAAA,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,0CAAE,UAAU,CAAC,kBAAkB,CAAC,EAAE;YACpE,MAAM,yBAAyB,CAC7B,MAAM,EACN,IAAI,EACJ,eAAe,EACf,YAAY,EACZ,OAAO,EACP,MAAM,CACP,CAAA;SACF;aAAM;YACL,MAAM,CACJ,IAAI,wBAAe,CACjB,6CAA6C,IAAI,CAAC,SAAS,CAAC;gBAC1D,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC;gBAC7C,IAAI;aACL,CAAC,EAAE,CACL,CACF,CAAA;SACF;;CACF;AAGD,SAAe,yBAAyB,CACtC,MAAc,EACd,IAAY,EACZ,eAAuB,EACvB,YAAoB,EACpB,OAAgE,EAChE,MAAyD;;QAGzD,MAAM,YAAY,GAAiB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACnD,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,cAAc,CAAA;QAE1D,IAAI,CAAC,cAAc,EAAE;YACnB,MAAM,CAAC,IAAI,wBAAe,CAAC,iCAAiC,CAAC,CAAC,CAAA;YAC9D,OAAM;SACP;QACD,IAAI;YAEF,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAC5C,MAAM,EACN,cAAc,EACd,eAAe,CAChB,CAAA;YAED,IAAI,cAAc,GAAG,eAAe,EAAE;gBACpC,OAAO,CAAC;oBACN,MAAM,EAAE,YAAY;oBACpB,OAAO,EAAE,MAAM,iBAAiB,CAC9B,MAAM,EACN,YAAY,CAAC,cAAc,EAC3B,eAAe,CAChB;iBACF,CAAC,CAAA;aACH;iBAAM;gBACL,MAAM,CACJ,IAAI,wBAAe,CACjB,oDACE,gBAAgB,GAAG,YACrB,UAAU,CACX,CACF,CAAA;aACF;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,GAAG,YAAY,KAAK,EAAE;gBACxB,MAAM,CAAC,IAAI,wBAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;aACzC;YACD,MAAM,CAAC,GAAG,CAAC,CAAA;SACZ;IACH,CAAC;CAAA;AAUD,SAAe,iBAAiB,CAC9B,MAAc,EACd,OAAe,EACf,eAAuB;;QAEvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,QAAQ,GAAG,YAAY,CAAA;YAE3B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAS,EAAE;gBACtC,IAAI,QAAQ,GAAG,CAAC,EAAE;oBAChB,aAAa,CAAC,QAAQ,CAAC,CAAA;oBACvB,OAAO,CAAC,eAAe,CAAC,CAAA;iBACzB;qBAAM;oBACL,QAAQ,IAAI,CAAC,CAAA;iBACd;gBAED,IAAI;oBACF,IAAI,UAAU,CAAA;oBACd,IAAI;wBACF,UAAU,GAAG,MAAM,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAA;qBACzD;oBAAC,WAAM;qBAEP;oBAED,IAAI,UAAU,GAAG,eAAe,EAAE;wBAChC,aAAa,CAAC,QAAQ,CAAC,CAAA;wBACvB,OAAO,CAAC,UAAU,CAAC,CAAA;qBACpB;iBACF;gBAAC,OAAO,GAAG,EAAE;oBACZ,aAAa,CAAC,QAAQ,CAAC,CAAA;oBACvB,IAAI,GAAG,YAAY,KAAK,EAAE;wBACxB,MAAM,CACJ,IAAI,wBAAe,CACjB,kCAAkC,OAAO,kCAAkC,GAAG,CAAC,OAAO,EAAE,CACzF,CACF,CAAA;qBACF;oBACD,MAAM,CAAC,GAAG,CAAC,CAAA;iBACZ;YACH,CAAC,CAAA,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAAA;QAC7B,CAAC,CAAC,CAAA;IACJ,CAAC;CAAA;AASD,SAAS,aAAa,CAAC,MAAc;IACnC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAA;IAGhC,IAAI,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;QACzE,OAAO,aAAa,CAAC,OAAO,CAAA;KAC7B;IAED,IAAI,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QACpC,OAAO,aAAa,CAAC,MAAM,CAAA;KAC5B;IAED,IAAI,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;QAC3C,OAAO,aAAa,CAAC,SAAS,CAAA;KAC/B;IAED,MAAM,IAAI,wBAAe,CAAC,0CAA0C,CAAC,CAAA;AACvE,CAAC;AAED,kBAAe,UAAU,CAAA;AAEzB,MAAM,QAAQ,GAAG;IACf,aAAa;IACb,aAAa;CACd,CAAA;AAEQ,4BAAQ"}
|
@@ -16,14 +16,17 @@ declare class Wallet {
|
|
16
16
|
algorithm?: ECDSA;
|
17
17
|
}): Wallet;
|
18
18
|
static fromSecret: typeof Wallet.fromSeed;
|
19
|
-
static
|
19
|
+
static fromEntropy(entropy: Uint8Array | number[], opts?: {
|
20
20
|
masterAddress?: string;
|
21
|
-
|
21
|
+
algorithm?: ECDSA;
|
22
22
|
}): Wallet;
|
23
|
-
static
|
23
|
+
static fromMnemonic(mnemonic: string, opts?: {
|
24
24
|
masterAddress?: string;
|
25
|
+
derivationPath?: string;
|
26
|
+
mnemonicEncoding?: 'bip39' | 'rfc1751';
|
25
27
|
algorithm?: ECDSA;
|
26
28
|
}): Wallet;
|
29
|
+
private static fromRFC1751Mnemonic;
|
27
30
|
private static deriveWallet;
|
28
31
|
sign(this: Wallet, transaction: Transaction, multisign?: boolean | string): {
|
29
32
|
tx_blob: string;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Wallet/index.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Wallet/index.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,MAAM,UAAU,CAAA;AAG5B,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAiEpD,cAAM,MAAM;IACV,SAAgB,SAAS,EAAE,MAAM,CAAA;IACjC,SAAgB,UAAU,EAAE,MAAM,CAAA;IAClC,SAAgB,cAAc,EAAE,MAAM,CAAA;IACtC,SAAgB,IAAI,CAAC,EAAE,MAAM,CAAA;IAO7B,IAAW,OAAO,IAAI,MAAM,CAE3B;gBAYC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE;QACJ,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,IAAI,CAAC,EAAE,MAAM,CAAA;KACT;WAgBM,QAAQ,CAAC,SAAS,GAAE,KAAyB,GAAG,MAAM;WActD,QAAQ,CACpB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,KAAK,CAAA;KAAO,GACvD,MAAM;IAiBT,OAAc,UAAU,yBAAkB;WAW5B,WAAW,CACvB,OAAO,EAAE,UAAU,GAAG,MAAM,EAAE,EAC9B,IAAI,GAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,KAAK,CAAA;KAAO,GACvD,MAAM;WA4BK,YAAY,CACxB,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE;QACJ,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QACtC,SAAS,CAAC,EAAE,KAAK,CAAA;KACb,GACL,MAAM;IAmCT,OAAO,CAAC,MAAM,CAAC,mBAAmB;IA4BlC,OAAO,CAAC,MAAM,CAAC,YAAY;IAwBpB,IAAI,CACT,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,WAAW,EACxB,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,GAC3B;QACD,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,EAAE,MAAM,CAAA;KACb;IAsDM,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO;IAcrD,WAAW,CAAC,GAAG,GAAE,MAAM,GAAG,KAAa,EAAE,SAAS,UAAQ,GAAG,MAAM;IAgB1E,OAAO,CAAC,oBAAoB;CAmG7B;AAgED,eAAe,MAAM,CAAA"}
|
package/dist/npm/Wallet/index.js
CHANGED
@@ -3,6 +3,7 @@ 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 bignumber_js_1 = __importDefault(require("bignumber.js"));
|
6
7
|
const bip32_1 = require("bip32");
|
7
8
|
const bip39_1 = require("bip39");
|
8
9
|
const lodash_1 = __importDefault(require("lodash"));
|
@@ -11,8 +12,11 @@ const ripple_binary_codec_1 = require("ripple-binary-codec");
|
|
11
12
|
const ripple_keypairs_1 = require("ripple-keypairs");
|
12
13
|
const ECDSA_1 = __importDefault(require("../ECDSA"));
|
13
14
|
const errors_1 = require("../errors");
|
14
|
-
const
|
15
|
+
const common_1 = require("../models/transactions/common");
|
16
|
+
const utils_1 = require("../models/utils");
|
17
|
+
const utils_2 = require("../sugar/utils");
|
15
18
|
const hashLedger_1 = require("../utils/hashes/hashLedger");
|
19
|
+
const rfc1751_1 = require("./rfc1751");
|
16
20
|
const DEFAULT_ALGORITHM = ECDSA_1.default.ed25519;
|
17
21
|
const DEFAULT_DERIVATION_PATH = "m/44'/144'/0'/0/0";
|
18
22
|
function hexFromBuffer(buffer) {
|
@@ -23,7 +27,7 @@ class Wallet {
|
|
23
27
|
this.publicKey = publicKey;
|
24
28
|
this.privateKey = privateKey;
|
25
29
|
this.classicAddress = opts.masterAddress
|
26
|
-
? (0,
|
30
|
+
? (0, utils_2.ensureClassicAddress)(opts.masterAddress)
|
27
31
|
: (0, ripple_keypairs_1.deriveAddress)(publicKey);
|
28
32
|
this.seed = opts.seed;
|
29
33
|
}
|
@@ -40,8 +44,27 @@ class Wallet {
|
|
40
44
|
masterAddress: opts.masterAddress,
|
41
45
|
});
|
42
46
|
}
|
47
|
+
static fromEntropy(entropy, opts = {}) {
|
48
|
+
var _a;
|
49
|
+
const algorithm = (_a = opts.algorithm) !== null && _a !== void 0 ? _a : DEFAULT_ALGORITHM;
|
50
|
+
const options = {
|
51
|
+
entropy: Uint8Array.from(entropy),
|
52
|
+
algorithm,
|
53
|
+
};
|
54
|
+
const seed = (0, ripple_keypairs_1.generateSeed)(options);
|
55
|
+
return Wallet.deriveWallet(seed, {
|
56
|
+
algorithm,
|
57
|
+
masterAddress: opts.masterAddress,
|
58
|
+
});
|
59
|
+
}
|
43
60
|
static fromMnemonic(mnemonic, opts = {}) {
|
44
61
|
var _a;
|
62
|
+
if (opts.mnemonicEncoding === 'rfc1751') {
|
63
|
+
return Wallet.fromRFC1751Mnemonic(mnemonic, {
|
64
|
+
masterAddress: opts.masterAddress,
|
65
|
+
algorithm: opts.algorithm,
|
66
|
+
});
|
67
|
+
}
|
45
68
|
const seed = (0, bip39_1.mnemonicToSeedSync)(mnemonic);
|
46
69
|
const masterNode = (0, bip32_1.fromSeed)(seed);
|
47
70
|
const node = masterNode.derivePath((_a = opts.derivationPath) !== null && _a !== void 0 ? _a : DEFAULT_DERIVATION_PATH);
|
@@ -54,17 +77,19 @@ class Wallet {
|
|
54
77
|
masterAddress: opts.masterAddress,
|
55
78
|
});
|
56
79
|
}
|
57
|
-
static
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
80
|
+
static fromRFC1751Mnemonic(mnemonic, opts) {
|
81
|
+
const seed = (0, rfc1751_1.rfc1751MnemonicToKey)(mnemonic);
|
82
|
+
let encodeAlgorithm;
|
83
|
+
if (opts.algorithm === ECDSA_1.default.ed25519) {
|
84
|
+
encodeAlgorithm = 'ed25519';
|
85
|
+
}
|
86
|
+
else {
|
87
|
+
encodeAlgorithm = 'secp256k1';
|
88
|
+
}
|
89
|
+
const encodedSeed = (0, ripple_address_codec_1.encodeSeed)(seed, encodeAlgorithm);
|
90
|
+
return Wallet.fromSeed(encodedSeed, {
|
67
91
|
masterAddress: opts.masterAddress,
|
92
|
+
algorithm: opts.algorithm,
|
68
93
|
});
|
69
94
|
}
|
70
95
|
static deriveWallet(seed, opts = {}) {
|
@@ -85,10 +110,12 @@ class Wallet {
|
|
85
110
|
else if (multisign) {
|
86
111
|
multisignAddress = this.classicAddress;
|
87
112
|
}
|
88
|
-
|
113
|
+
const tx = Object.assign({}, transaction);
|
114
|
+
if (tx.TxnSignature || tx.Signers) {
|
89
115
|
throw new errors_1.ValidationError('txJSON must not contain "TxnSignature" or "Signers" properties');
|
90
116
|
}
|
91
|
-
|
117
|
+
removeTrailingZeros(tx);
|
118
|
+
const txToSignAndEncode = Object.assign({}, tx);
|
92
119
|
txToSignAndEncode.SigningPubKey = multisignAddress ? '' : this.publicKey;
|
93
120
|
if (multisignAddress) {
|
94
121
|
const signer = {
|
@@ -102,7 +129,7 @@ class Wallet {
|
|
102
129
|
txToSignAndEncode.TxnSignature = computeSignature(txToSignAndEncode, this.privateKey);
|
103
130
|
}
|
104
131
|
const serialized = (0, ripple_binary_codec_1.encode)(txToSignAndEncode);
|
105
|
-
this.checkTxSerialization(serialized,
|
132
|
+
this.checkTxSerialization(serialized, tx);
|
106
133
|
return {
|
107
134
|
tx_blob: serialized,
|
108
135
|
hash: (0, hashLedger_1.hashSignedTx)(serialized),
|
@@ -142,7 +169,34 @@ class Wallet {
|
|
142
169
|
}
|
143
170
|
return memo;
|
144
171
|
});
|
145
|
-
if (
|
172
|
+
if (txCopy.TransactionType === 'NFTokenMint' && txCopy.URI) {
|
173
|
+
if (!(0, utils_1.isHex)(txCopy.URI)) {
|
174
|
+
throw new errors_1.ValidationError('URI must be a hex value');
|
175
|
+
}
|
176
|
+
txCopy.URI = txCopy.URI.toUpperCase();
|
177
|
+
}
|
178
|
+
Object.keys(txCopy).forEach((key) => {
|
179
|
+
const standard_currency_code_len = 3;
|
180
|
+
if (txCopy[key] && (0, common_1.isIssuedCurrency)(txCopy[key])) {
|
181
|
+
const decodedAmount = decoded[key];
|
182
|
+
const decodedCurrency = decodedAmount.currency;
|
183
|
+
const txCurrency = txCopy[key].currency;
|
184
|
+
if (txCurrency.length === standard_currency_code_len &&
|
185
|
+
txCurrency.toUpperCase() === 'XRP') {
|
186
|
+
throw new errors_1.XrplError(`Trying to sign an issued currency with a similar standard code to XRP (received '${txCurrency}'). XRP is not an issued currency.`);
|
187
|
+
}
|
188
|
+
const amount = txCopy[key];
|
189
|
+
if (amount.currency.length !== decodedCurrency.length) {
|
190
|
+
if (decodedCurrency.length === standard_currency_code_len) {
|
191
|
+
decodedAmount.currency = isoToHex(decodedCurrency);
|
192
|
+
}
|
193
|
+
else {
|
194
|
+
txCopy[key].currency = isoToHex(txCopy[key].currency);
|
195
|
+
}
|
196
|
+
}
|
197
|
+
}
|
198
|
+
});
|
199
|
+
if (!lodash_1.default.isEqual(decoded, txCopy)) {
|
146
200
|
const data = {
|
147
201
|
decoded,
|
148
202
|
tx,
|
@@ -162,5 +216,22 @@ function computeSignature(tx, privateKey, signAs) {
|
|
162
216
|
}
|
163
217
|
return (0, ripple_keypairs_1.sign)((0, ripple_binary_codec_1.encodeForSigning)(tx), privateKey);
|
164
218
|
}
|
219
|
+
function removeTrailingZeros(tx) {
|
220
|
+
if (tx.TransactionType === 'Payment' &&
|
221
|
+
typeof tx.Amount !== 'string' &&
|
222
|
+
tx.Amount.value.includes('.') &&
|
223
|
+
tx.Amount.value.endsWith('0')) {
|
224
|
+
tx.Amount = Object.assign({}, tx.Amount);
|
225
|
+
tx.Amount.value = new bignumber_js_1.default(tx.Amount.value).toString();
|
226
|
+
}
|
227
|
+
}
|
228
|
+
function isoToHex(iso) {
|
229
|
+
const bytes = Buffer.alloc(20);
|
230
|
+
if (iso !== 'XRP') {
|
231
|
+
const isoBytes = iso.split('').map((chr) => chr.charCodeAt(0));
|
232
|
+
bytes.set(isoBytes, 12);
|
233
|
+
}
|
234
|
+
return bytes.toString('hex').toUpperCase();
|
235
|
+
}
|
165
236
|
exports.default = Wallet;
|
166
237
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Wallet/index.ts"],"names":[],"mappings":";;;;;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Wallet/index.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"rfc1751.d.ts","sourceRoot":"","sources":["../../../src/Wallet/rfc1751.ts"],"names":[],"mappings":";AA2DA,iBAAS,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA+BrD;AASD,iBAAS,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA4BrD;AAoDD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,CAAA"}
|
@@ -0,0 +1,111 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.keyToRFC1751Mnemonic = exports.rfc1751MnemonicToKey = void 0;
|
7
|
+
const rfc1751Words_json_1 = __importDefault(require("./rfc1751Words.json"));
|
8
|
+
const rfc1751WordList = rfc1751Words_json_1.default;
|
9
|
+
const BINARY = ['0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111',
|
10
|
+
'1000', '1001', '1010', '1011', '1100', '1101', '1110', '1111'];
|
11
|
+
function keyToBinary(key) {
|
12
|
+
let res = '';
|
13
|
+
for (const num of key) {
|
14
|
+
res += BINARY[num >> 4] + BINARY[num & 0x0f];
|
15
|
+
}
|
16
|
+
return res;
|
17
|
+
}
|
18
|
+
function extract(key, start, length) {
|
19
|
+
const subKey = key.substring(start, start + length);
|
20
|
+
let acc = 0;
|
21
|
+
for (let index = 0; index < subKey.length; index++) {
|
22
|
+
acc = acc * 2 + subKey.charCodeAt(index) - 48;
|
23
|
+
}
|
24
|
+
return acc;
|
25
|
+
}
|
26
|
+
function keyToRFC1751Mnemonic(hex_key) {
|
27
|
+
const buf = Buffer.from(hex_key.replace(/\s+/gu, ''), 'hex');
|
28
|
+
let key = bufferToArray(swap128(buf));
|
29
|
+
const padding = [];
|
30
|
+
for (let index = 0; index < (8 - (key.length % 8)) % 8; index++) {
|
31
|
+
padding.push(0);
|
32
|
+
}
|
33
|
+
key = padding.concat(key);
|
34
|
+
const english = [];
|
35
|
+
for (let index = 0; index < key.length; index += 8) {
|
36
|
+
const subKey = key.slice(index, index + 8);
|
37
|
+
let skbin = keyToBinary(subKey);
|
38
|
+
let parity = 0;
|
39
|
+
for (let j = 0; j < 64; j += 2) {
|
40
|
+
parity += extract(skbin, j, 2);
|
41
|
+
}
|
42
|
+
subKey.push((parity << 6) & 0xff);
|
43
|
+
skbin = keyToBinary(subKey);
|
44
|
+
for (let j = 0; j < 64; j += 11) {
|
45
|
+
english.push(rfc1751WordList[extract(skbin, j, 11)]);
|
46
|
+
}
|
47
|
+
}
|
48
|
+
return english.join(' ');
|
49
|
+
}
|
50
|
+
exports.keyToRFC1751Mnemonic = keyToRFC1751Mnemonic;
|
51
|
+
function rfc1751MnemonicToKey(english) {
|
52
|
+
const words = english.split(' ');
|
53
|
+
let key = [];
|
54
|
+
for (let index = 0; index < words.length; index += 6) {
|
55
|
+
const { subKey, word } = getSubKey(words, index);
|
56
|
+
const skbin = keyToBinary(subKey);
|
57
|
+
let parity = 0;
|
58
|
+
for (let j = 0; j < 64; j += 2) {
|
59
|
+
parity += extract(skbin, j, 2);
|
60
|
+
}
|
61
|
+
const cs0 = extract(skbin, 64, 2);
|
62
|
+
const cs1 = parity & 3;
|
63
|
+
if (cs0 !== cs1) {
|
64
|
+
throw new Error(`Parity error at ${word}`);
|
65
|
+
}
|
66
|
+
key = key.concat(subKey.slice(0, 8));
|
67
|
+
}
|
68
|
+
const bufferKey = swap128(Buffer.from(key));
|
69
|
+
return bufferKey;
|
70
|
+
}
|
71
|
+
exports.rfc1751MnemonicToKey = rfc1751MnemonicToKey;
|
72
|
+
function getSubKey(words, index) {
|
73
|
+
const sublist = words.slice(index, index + 6);
|
74
|
+
let bits = 0;
|
75
|
+
const ch = [0, 0, 0, 0, 0, 0, 0, 0, 0];
|
76
|
+
let word = '';
|
77
|
+
for (word of sublist) {
|
78
|
+
const idx = rfc1751WordList.indexOf(word);
|
79
|
+
const shift = (8 - ((bits + 11) % 8)) % 8;
|
80
|
+
const y = idx << shift;
|
81
|
+
const cl = y >> 16;
|
82
|
+
const cc = (y >> 8) & 0xff;
|
83
|
+
const cr = y & 0xff;
|
84
|
+
const t = Math.floor(bits / 8);
|
85
|
+
if (shift > 5) {
|
86
|
+
ch[t] |= cl;
|
87
|
+
ch[t + 1] |= cc;
|
88
|
+
ch[t + 2] |= cr;
|
89
|
+
}
|
90
|
+
else if (shift > -3) {
|
91
|
+
ch[t] |= cc;
|
92
|
+
ch[t + 1] |= cr;
|
93
|
+
}
|
94
|
+
else {
|
95
|
+
ch[t] |= cr;
|
96
|
+
}
|
97
|
+
bits += 11;
|
98
|
+
}
|
99
|
+
const subKey = ch.slice();
|
100
|
+
return { subKey, word };
|
101
|
+
}
|
102
|
+
function bufferToArray(buf) {
|
103
|
+
return Array.prototype.slice.call(buf);
|
104
|
+
}
|
105
|
+
function swap128(buf) {
|
106
|
+
const result = Buffer.alloc(16);
|
107
|
+
result.writeBigUInt64LE(buf.readBigUInt64BE(0), 8);
|
108
|
+
result.writeBigUInt64LE(buf.readBigUInt64BE(8), 0);
|
109
|
+
return result;
|
110
|
+
}
|
111
|
+
//# sourceMappingURL=rfc1751.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"rfc1751.js","sourceRoot":"","sources":["../../../src/Wallet/rfc1751.ts"],"names":[],"mappings":"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"}
|