@bitgo-beta/sdk-coin-xrp 1.3.3-alpha.402 → 1.3.3-alpha.404
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/dist/src/index.d.ts +6 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +22 -0
- package/dist/src/lib/accountSetBuilder.d.ts +18 -0
- package/dist/src/lib/accountSetBuilder.d.ts.map +1 -0
- package/dist/src/lib/accountSetBuilder.js +63 -0
- package/dist/src/lib/constants.d.ts +8 -0
- package/dist/src/lib/constants.d.ts.map +1 -0
- package/dist/src/lib/constants.js +30 -0
- package/dist/src/lib/iface.d.ts +109 -0
- package/dist/src/lib/iface.d.ts.map +1 -0
- package/dist/src/lib/iface.js +11 -0
- package/dist/src/lib/index.d.ts +14 -0
- package/dist/src/lib/index.d.ts.map +1 -0
- package/dist/src/lib/index.js +43 -0
- package/dist/src/lib/keyPair.d.ts +33 -0
- package/dist/src/lib/keyPair.d.ts.map +1 -0
- package/dist/src/lib/keyPair.js +118 -0
- package/dist/src/lib/tokenTransferBuilder.d.ts +29 -0
- package/dist/src/lib/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/src/lib/tokenTransferBuilder.js +91 -0
- package/dist/src/lib/transaction.d.ts +62 -0
- package/dist/src/lib/transaction.d.ts.map +1 -0
- package/dist/src/lib/transaction.js +381 -0
- package/dist/src/lib/transactionBuilder.d.ts +72 -0
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder.js +263 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts +39 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilderFactory.js +97 -0
- package/dist/src/lib/transferBuilder.d.ts +28 -0
- package/dist/src/lib/transferBuilder.d.ts.map +1 -0
- package/dist/src/lib/transferBuilder.js +82 -0
- package/dist/src/lib/trustsetBuilder.d.ts +21 -0
- package/dist/src/lib/trustsetBuilder.d.ts.map +1 -0
- package/dist/src/lib/trustsetBuilder.js +72 -0
- package/dist/src/lib/utils.d.ts +78 -0
- package/dist/src/lib/utils.d.ts.map +1 -0
- package/dist/src/lib/utils.js +304 -0
- package/dist/src/lib/walletInitializationBuilder.d.ts +19 -0
- package/dist/src/lib/walletInitializationBuilder.d.ts.map +1 -0
- package/dist/src/lib/walletInitializationBuilder.js +76 -0
- package/dist/src/register.d.ts +3 -0
- package/dist/src/register.d.ts.map +1 -0
- package/dist/src/register.js +15 -0
- package/dist/src/ripple.d.ts +117 -0
- package/dist/src/ripple.d.ts.map +1 -0
- package/dist/src/ripple.js +125 -0
- package/dist/src/txrp.d.ts +25 -0
- package/dist/src/txrp.d.ts.map +1 -0
- package/dist/src/txrp.js +32 -0
- package/dist/src/xrp.d.ts +116 -0
- package/dist/src/xrp.d.ts.map +1 -0
- package/dist/src/xrp.js +720 -0
- package/dist/src/xrpToken.d.ts +22 -0
- package/dist/src/xrpToken.d.ts.map +1 -0
- package/dist/src/xrpToken.js +61 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -7
- package/.eslintignore +0 -5
- package/CHANGELOG.md +0 -910
|
@@ -0,0 +1,76 @@
|
|
|
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.WalletInitializationBuilder = void 0;
|
|
7
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
8
|
+
const constants_1 = require("./constants");
|
|
9
|
+
const transactionBuilder_1 = require("./transactionBuilder");
|
|
10
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
11
|
+
class WalletInitializationBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
12
|
+
constructor(_coinConfig) {
|
|
13
|
+
super(_coinConfig);
|
|
14
|
+
this._signerEntries = [];
|
|
15
|
+
}
|
|
16
|
+
get transactionType() {
|
|
17
|
+
return sdk_core_1.TransactionType.WalletInitialization;
|
|
18
|
+
}
|
|
19
|
+
get xrpTransactionType() {
|
|
20
|
+
return 'SignerListSet';
|
|
21
|
+
}
|
|
22
|
+
signerQuorum(quorum) {
|
|
23
|
+
if (typeof quorum !== 'number' || quorum < 1) {
|
|
24
|
+
throw new Error(`quorum must be a valid number greater than 0, got: ${quorum}`);
|
|
25
|
+
}
|
|
26
|
+
this._signerQuorum = quorum;
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
signer(signer) {
|
|
30
|
+
if (this._signerEntries.length > constants_1.MAX_SIGNERS) {
|
|
31
|
+
throw new sdk_core_1.BuildTransactionError(`Cannot have more than ${constants_1.MAX_SIGNERS} signers`);
|
|
32
|
+
}
|
|
33
|
+
utils_1.default.validateSigner(signer);
|
|
34
|
+
this._signerEntries.push({
|
|
35
|
+
SignerEntry: { Account: signer.address, SignerWeight: signer.weight },
|
|
36
|
+
});
|
|
37
|
+
return this;
|
|
38
|
+
}
|
|
39
|
+
initBuilder(tx) {
|
|
40
|
+
super.initBuilder(tx);
|
|
41
|
+
const { signerEntries, signerQuorum } = tx.toJson();
|
|
42
|
+
if (signerQuorum) {
|
|
43
|
+
this.signerQuorum(signerQuorum);
|
|
44
|
+
}
|
|
45
|
+
if (signerEntries?.length) {
|
|
46
|
+
signerEntries.forEach((signer) => this.signer({
|
|
47
|
+
address: signer.SignerEntry.Account,
|
|
48
|
+
weight: signer.SignerEntry.SignerWeight,
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/** @inheritdoc */
|
|
53
|
+
async buildImplementation() {
|
|
54
|
+
if (!this._sender) {
|
|
55
|
+
throw new sdk_core_1.BuildTransactionError('Sender must be set before building the transaction');
|
|
56
|
+
}
|
|
57
|
+
if (!this._signerQuorum || this._signerQuorum < constants_1.MIN_SIGNER_QUORUM) {
|
|
58
|
+
throw new sdk_core_1.BuildTransactionError('Signer quorum must be set before building the transaction');
|
|
59
|
+
}
|
|
60
|
+
if (!this._signerEntries) {
|
|
61
|
+
throw new sdk_core_1.BuildTransactionError('Signers must be set before building the transaction');
|
|
62
|
+
}
|
|
63
|
+
if (this._signerEntries.length < constants_1.MIN_SIGNERS || this._signerEntries.length > constants_1.MAX_SIGNERS) {
|
|
64
|
+
throw new sdk_core_1.BuildTransactionError(`Signers must be between ${constants_1.MIN_SIGNERS} and ${constants_1.MAX_SIGNERS}`);
|
|
65
|
+
}
|
|
66
|
+
this._specificFields = {
|
|
67
|
+
TransactionType: this.xrpTransactionType,
|
|
68
|
+
Account: this._sender,
|
|
69
|
+
SignerQuorum: this._signerQuorum,
|
|
70
|
+
SignerEntries: this._signerEntries,
|
|
71
|
+
};
|
|
72
|
+
return await super.buildImplementation();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
exports.WalletInitializationBuilder = WalletInitializationBuilder;
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi93YWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbURBQThFO0FBRzlFLDJDQUEwRTtBQUcxRSw2REFBMEQ7QUFDMUQsb0RBQTRCO0FBRTVCLE1BQWEsMkJBQTRCLFNBQVEsdUNBQWtCO0lBR2pFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRlgsbUJBQWMsR0FBa0IsRUFBRSxDQUFDO0lBRzdDLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLG9CQUFvQixDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFjLGtCQUFrQjtRQUM5QixPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQWM7UUFDekIsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzdDLE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbEYsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDO1FBQzVCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFxQjtRQUMxQixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLHVCQUFXLEVBQUUsQ0FBQztZQUM3QyxNQUFNLElBQUksZ0NBQXFCLENBQUMseUJBQXlCLHVCQUFXLFVBQVUsQ0FBQyxDQUFDO1FBQ2xGLENBQUM7UUFDRCxlQUFLLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO1lBQ3ZCLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFO1NBQ3RFLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFdBQVcsQ0FBQyxFQUFlO1FBQ3pCLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFdEIsTUFBTSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDcEQsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFFRCxJQUFJLGFBQWEsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUMxQixhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFDVixPQUFPLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFPO2dCQUNuQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxZQUFZO2FBQ3hDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDUixLQUFLLENBQUMsbUJBQW1CO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsTUFBTSxJQUFJLGdDQUFxQixDQUFDLG9EQUFvRCxDQUFDLENBQUM7UUFDeEYsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLEdBQUcsNkJBQWlCLEVBQUUsQ0FBQztZQUNsRSxNQUFNLElBQUksZ0NBQXFCLENBQUMsMkRBQTJELENBQUMsQ0FBQztRQUMvRixDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixNQUFNLElBQUksZ0NBQXFCLENBQUMscURBQXFELENBQUMsQ0FBQztRQUN6RixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyx1QkFBVyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLHVCQUFXLEVBQUUsQ0FBQztZQUN6RixNQUFNLElBQUksZ0NBQXFCLENBQUMsMkJBQTJCLHVCQUFXLFFBQVEsdUJBQVcsRUFBRSxDQUFDLENBQUM7UUFDL0YsQ0FBQztRQUVELElBQUksQ0FBQyxlQUFlLEdBQUc7WUFDckIsZUFBZSxFQUFFLElBQUksQ0FBQyxrQkFBa0I7WUFDeEMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLFlBQVksRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNoQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDbkMsQ0FBQztRQUNGLE9BQU8sTUFBTSxLQUFLLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0NBQ0Y7QUE1RUQsa0VBNEVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVpbGRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBTaWduZXJFbnRyeSB9IGZyb20gJ3hycGwvZGlzdC9ucG0vbW9kZWxzL2NvbW1vbic7XG5pbXBvcnQgeyBNQVhfU0lHTkVSUywgTUlOX1NJR05FUl9RVU9SVU0sIE1JTl9TSUdORVJTIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgU2lnbmVyRGV0YWlscyB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfc2lnbmVyUXVvcnVtOiBudW1iZXI7XG4gIHByb3RlY3RlZCBfc2lnbmVyRW50cmllczogU2lnbmVyRW50cnlbXSA9IFtdO1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb247XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHhycFRyYW5zYWN0aW9uVHlwZSgpOiAnU2lnbmVyTGlzdFNldCcge1xuICAgIHJldHVybiAnU2lnbmVyTGlzdFNldCc7XG4gIH1cblxuICBzaWduZXJRdW9ydW0ocXVvcnVtOiBudW1iZXIpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIGlmICh0eXBlb2YgcXVvcnVtICE9PSAnbnVtYmVyJyB8fCBxdW9ydW0gPCAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHF1b3J1bSBtdXN0IGJlIGEgdmFsaWQgbnVtYmVyIGdyZWF0ZXIgdGhhbiAwLCBnb3Q6ICR7cXVvcnVtfWApO1xuICAgIH1cbiAgICB0aGlzLl9zaWduZXJRdW9ydW0gPSBxdW9ydW07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzaWduZXIoc2lnbmVyOiBTaWduZXJEZXRhaWxzKTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICBpZiAodGhpcy5fc2lnbmVyRW50cmllcy5sZW5ndGggPiBNQVhfU0lHTkVSUykge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgQ2Fubm90IGhhdmUgbW9yZSB0aGFuICR7TUFYX1NJR05FUlN9IHNpZ25lcnNgKTtcbiAgICB9XG4gICAgdXRpbHMudmFsaWRhdGVTaWduZXIoc2lnbmVyKTtcbiAgICB0aGlzLl9zaWduZXJFbnRyaWVzLnB1c2goe1xuICAgICAgU2lnbmVyRW50cnk6IHsgQWNjb3VudDogc2lnbmVyLmFkZHJlc3MsIFNpZ25lcldlaWdodDogc2lnbmVyLndlaWdodCB9LFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdEJ1aWxkZXIodHgpO1xuXG4gICAgY29uc3QgeyBzaWduZXJFbnRyaWVzLCBzaWduZXJRdW9ydW0gfSA9IHR4LnRvSnNvbigpO1xuICAgIGlmIChzaWduZXJRdW9ydW0pIHtcbiAgICAgIHRoaXMuc2lnbmVyUXVvcnVtKHNpZ25lclF1b3J1bSk7XG4gICAgfVxuXG4gICAgaWYgKHNpZ25lckVudHJpZXM/Lmxlbmd0aCkge1xuICAgICAgc2lnbmVyRW50cmllcy5mb3JFYWNoKChzaWduZXIpID0+XG4gICAgICAgIHRoaXMuc2lnbmVyKHtcbiAgICAgICAgICBhZGRyZXNzOiBzaWduZXIuU2lnbmVyRW50cnkuQWNjb3VudCxcbiAgICAgICAgICB3ZWlnaHQ6IHNpZ25lci5TaWduZXJFbnRyeS5TaWduZXJXZWlnaHQsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgaWYgKCF0aGlzLl9zZW5kZXIpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1NlbmRlciBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fc2lnbmVyUXVvcnVtIHx8IHRoaXMuX3NpZ25lclF1b3J1bSA8IE1JTl9TSUdORVJfUVVPUlVNKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdTaWduZXIgcXVvcnVtIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl9zaWduZXJFbnRyaWVzKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdTaWduZXJzIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fc2lnbmVyRW50cmllcy5sZW5ndGggPCBNSU5fU0lHTkVSUyB8fCB0aGlzLl9zaWduZXJFbnRyaWVzLmxlbmd0aCA+IE1BWF9TSUdORVJTKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBTaWduZXJzIG11c3QgYmUgYmV0d2VlbiAke01JTl9TSUdORVJTfSBhbmQgJHtNQVhfU0lHTkVSU31gKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zcGVjaWZpY0ZpZWxkcyA9IHtcbiAgICAgIFRyYW5zYWN0aW9uVHlwZTogdGhpcy54cnBUcmFuc2FjdGlvblR5cGUsXG4gICAgICBBY2NvdW50OiB0aGlzLl9zZW5kZXIsXG4gICAgICBTaWduZXJRdW9ydW06IHRoaXMuX3NpZ25lclF1b3J1bSxcbiAgICAgIFNpZ25lckVudHJpZXM6IHRoaXMuX3NpZ25lckVudHJpZXMsXG4gICAgfTtcbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAKjD,eAAO,MAAM,QAAQ,QAAS,SAAS,KAAG,IAMzC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.register = void 0;
|
|
4
|
+
const txrp_1 = require("./txrp");
|
|
5
|
+
const xrp_1 = require("./xrp");
|
|
6
|
+
const xrpToken_1 = require("./xrpToken");
|
|
7
|
+
const register = (sdk) => {
|
|
8
|
+
sdk.register('xrp', xrp_1.Xrp.createInstance);
|
|
9
|
+
sdk.register('txrp', txrp_1.Txrp.createInstance);
|
|
10
|
+
xrpToken_1.XrpToken.createTokenConstructors().forEach(({ name, coinConstructor }) => {
|
|
11
|
+
sdk.register(name, coinConstructor);
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
exports.register = register;
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaUNBQThCO0FBQzlCLCtCQUE0QjtBQUM1Qix5Q0FBc0M7QUFFL0IsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFjLEVBQVEsRUFBRTtJQUMvQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxTQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsV0FBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFDLG1CQUFRLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFO1FBQ3ZFLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBTlcsUUFBQSxRQUFRLFlBTW5CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHhycCB9IGZyb20gJy4vdHhycCc7XG5pbXBvcnQgeyBYcnAgfSBmcm9tICcuL3hycCc7XG5pbXBvcnQgeyBYcnBUb2tlbiB9IGZyb20gJy4veHJwVG9rZW4nO1xuXG5leHBvcnQgY29uc3QgcmVnaXN0ZXIgPSAoc2RrOiBCaXRHb0Jhc2UpOiB2b2lkID0+IHtcbiAgc2RrLnJlZ2lzdGVyKCd4cnAnLCBYcnAuY3JlYXRlSW5zdGFuY2UpO1xuICBzZGsucmVnaXN0ZXIoJ3R4cnAnLCBUeHJwLmNyZWF0ZUluc3RhbmNlKTtcbiAgWHJwVG9rZW4uY3JlYXRlVG9rZW5Db25zdHJ1Y3RvcnMoKS5mb3JFYWNoKCh7IG5hbWUsIGNvaW5Db25zdHJ1Y3RvciB9KSA9PiB7XG4gICAgc2RrLnJlZ2lzdGVyKG5hbWUsIGNvaW5Db25zdHJ1Y3Rvcik7XG4gIH0pO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @hidden
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
*/
|
|
6
|
+
import * as rippleKeypairs from 'ripple-keypairs';
|
|
7
|
+
import * as xrpl from 'xrpl';
|
|
8
|
+
declare const _default: {
|
|
9
|
+
signWithPrivateKey: (txHex: any, privateKey: any, options: any) => {
|
|
10
|
+
signedTransaction: string;
|
|
11
|
+
id: string;
|
|
12
|
+
};
|
|
13
|
+
Client: typeof xrpl.Client;
|
|
14
|
+
ECDSA: typeof xrpl.ECDSA;
|
|
15
|
+
Wallet: typeof xrpl.Wallet;
|
|
16
|
+
walletFromSecretNumbers: typeof xrpl.walletFromSecretNumbers;
|
|
17
|
+
keyToRFC1751Mnemonic: typeof xrpl.keyToRFC1751Mnemonic;
|
|
18
|
+
rfc1751MnemonicToKey: typeof xrpl.rfc1751MnemonicToKey;
|
|
19
|
+
LedgerEntry: typeof xrpl.LedgerEntry;
|
|
20
|
+
setTransactionFlagsToNumber: typeof xrpl.setTransactionFlagsToNumber;
|
|
21
|
+
parseAccountRootFlags: typeof xrpl.parseAccountRootFlags;
|
|
22
|
+
validate: typeof xrpl.validate;
|
|
23
|
+
AccountSetAsfFlags: typeof xrpl.AccountSetAsfFlags;
|
|
24
|
+
AccountSetTfFlags: typeof xrpl.AccountSetTfFlags;
|
|
25
|
+
AMMDepositFlags: typeof xrpl.AMMDepositFlags;
|
|
26
|
+
AMMWithdrawFlags: typeof xrpl.AMMWithdrawFlags;
|
|
27
|
+
EnableAmendmentFlags: typeof xrpl.EnableAmendmentFlags;
|
|
28
|
+
NFTokenCreateOfferFlags: typeof xrpl.NFTokenCreateOfferFlags;
|
|
29
|
+
NFTokenMintFlags: typeof xrpl.NFTokenMintFlags;
|
|
30
|
+
OfferCreateFlags: typeof xrpl.OfferCreateFlags;
|
|
31
|
+
PaymentFlags: typeof xrpl.PaymentFlags;
|
|
32
|
+
PaymentChannelClaimFlags: typeof xrpl.PaymentChannelClaimFlags;
|
|
33
|
+
TrustSetFlags: typeof xrpl.TrustSetFlags;
|
|
34
|
+
XChainModifyBridgeFlags: typeof xrpl.XChainModifyBridgeFlags;
|
|
35
|
+
isCreatedNode(node: xrpl.Node): node is xrpl.CreatedNode;
|
|
36
|
+
isModifiedNode(node: xrpl.Node): node is xrpl.ModifiedNode;
|
|
37
|
+
isDeletedNode(node: xrpl.Node): node is xrpl.DeletedNode;
|
|
38
|
+
RIPPLED_API_V1: 1;
|
|
39
|
+
RIPPLED_API_V2: 2;
|
|
40
|
+
DEFAULT_API_VERSION: 2;
|
|
41
|
+
getBalanceChanges: typeof xrpl.getBalanceChanges;
|
|
42
|
+
dropsToXrp: typeof xrpl.dropsToXrp;
|
|
43
|
+
xrpToDrops: typeof xrpl.xrpToDrops;
|
|
44
|
+
hasNextPage: typeof xrpl.hasNextPage;
|
|
45
|
+
rippleTimeToISOTime: typeof xrpl.rippleTimeToISOTime;
|
|
46
|
+
isoTimeToRippleTime: typeof xrpl.isoTimeToRippleTime;
|
|
47
|
+
rippleTimeToUnixTime: typeof xrpl.rippleTimeToUnixTime;
|
|
48
|
+
unixTimeToRippleTime: typeof xrpl.unixTimeToRippleTime;
|
|
49
|
+
percentToQuality: typeof xrpl.percentToQuality;
|
|
50
|
+
decimalToQuality: typeof xrpl.decimalToQuality;
|
|
51
|
+
percentToTransferRate: typeof xrpl.percentToTransferRate;
|
|
52
|
+
decimalToTransferRate: typeof xrpl.decimalToTransferRate;
|
|
53
|
+
transferRateToDecimal: typeof xrpl.transferRateToDecimal;
|
|
54
|
+
qualityToDecimal: typeof xrpl.qualityToDecimal;
|
|
55
|
+
isValidSecret: typeof xrpl.isValidSecret;
|
|
56
|
+
isValidAddress: typeof xrpl.isValidAddress;
|
|
57
|
+
hashes: {
|
|
58
|
+
hashSignedTx: typeof import("xrpl/dist/npm/utils/hashes").hashSignedTx;
|
|
59
|
+
hashTx: typeof import("xrpl/dist/npm/utils/hashes").hashTx;
|
|
60
|
+
hashAccountRoot: typeof import("xrpl/dist/npm/utils/hashes").hashAccountRoot;
|
|
61
|
+
hashSignerListId: typeof import("xrpl/dist/npm/utils/hashes").hashSignerListId;
|
|
62
|
+
hashOfferId: typeof import("xrpl/dist/npm/utils/hashes").hashOfferId;
|
|
63
|
+
hashTrustline: typeof import("xrpl/dist/npm/utils/hashes").hashTrustline;
|
|
64
|
+
hashTxTree: typeof import("xrpl/dist/npm/utils/hashes").hashTxTree;
|
|
65
|
+
hashStateTree: typeof import("xrpl/dist/npm/utils/hashes").hashStateTree;
|
|
66
|
+
hashLedger: typeof import("xrpl/dist/npm/utils/hashes").hashLedger;
|
|
67
|
+
hashLedgerHeader: typeof import("xrpl/dist/npm/utils/hashes").hashLedgerHeader;
|
|
68
|
+
hashEscrow: typeof import("xrpl/dist/npm/utils/hashes").hashEscrow;
|
|
69
|
+
hashPaymentChannel: typeof import("xrpl/dist/npm/utils/hashes").hashPaymentChannel;
|
|
70
|
+
};
|
|
71
|
+
deriveKeypair: typeof rippleKeypairs.deriveKeypair;
|
|
72
|
+
deriveAddress: typeof rippleKeypairs.deriveAddress;
|
|
73
|
+
deriveXAddress: typeof xrpl.deriveXAddress;
|
|
74
|
+
signPaymentChannelClaim: typeof xrpl.signPaymentChannelClaim;
|
|
75
|
+
verifyKeypairSignature: typeof rippleKeypairs.verify;
|
|
76
|
+
verifyPaymentChannelClaim: typeof xrpl.verifyPaymentChannelClaim;
|
|
77
|
+
convertStringToHex: typeof xrpl.convertStringToHex;
|
|
78
|
+
convertHexToString: typeof xrpl.convertHexToString;
|
|
79
|
+
classicAddressToXAddress: typeof xrpl.classicAddressToXAddress;
|
|
80
|
+
xAddressToClassicAddress: typeof xrpl.xAddressToClassicAddress;
|
|
81
|
+
isValidXAddress: typeof xrpl.isValidXAddress;
|
|
82
|
+
isValidClassicAddress: typeof xrpl.isValidClassicAddress;
|
|
83
|
+
encodeSeed: typeof xrpl.encodeSeed;
|
|
84
|
+
decodeSeed: typeof rippleKeypairs.decodeSeed;
|
|
85
|
+
encodeAccountID: typeof xrpl.encodeAccountID;
|
|
86
|
+
decodeAccountID: typeof xrpl.decodeAccountID;
|
|
87
|
+
encodeNodePublic: typeof xrpl.encodeNodePublic;
|
|
88
|
+
decodeNodePublic: typeof xrpl.decodeNodePublic;
|
|
89
|
+
encodeAccountPublic: typeof xrpl.encodeAccountPublic;
|
|
90
|
+
decodeAccountPublic: typeof xrpl.decodeAccountPublic;
|
|
91
|
+
encodeXAddress: typeof xrpl.encodeXAddress;
|
|
92
|
+
decodeXAddress: typeof xrpl.decodeXAddress;
|
|
93
|
+
encode: typeof xrpl.encode;
|
|
94
|
+
decode: typeof xrpl.decode;
|
|
95
|
+
encodeForMultiSigning: typeof xrpl.encodeForMultiSigning;
|
|
96
|
+
encodeForSigning: typeof xrpl.encodeForSigning;
|
|
97
|
+
encodeForSigningClaim: typeof xrpl.encodeForSigningClaim;
|
|
98
|
+
getNFTokenID: typeof xrpl.getNFTokenID;
|
|
99
|
+
parseNFTokenID: typeof xrpl.parseNFTokenID;
|
|
100
|
+
getXChainClaimID: typeof xrpl.getXChainClaimID;
|
|
101
|
+
XrplError: typeof xrpl.XrplError;
|
|
102
|
+
UnexpectedError: typeof xrpl.UnexpectedError;
|
|
103
|
+
ConnectionError: typeof xrpl.ConnectionError;
|
|
104
|
+
RippledError: typeof xrpl.RippledError;
|
|
105
|
+
NotConnectedError: typeof xrpl.NotConnectedError;
|
|
106
|
+
DisconnectedError: typeof xrpl.DisconnectedError;
|
|
107
|
+
RippledNotInitializedError: typeof xrpl.RippledNotInitializedError;
|
|
108
|
+
TimeoutError: typeof xrpl.TimeoutError;
|
|
109
|
+
ResponseFormatError: typeof xrpl.ResponseFormatError;
|
|
110
|
+
ValidationError: typeof xrpl.ValidationError;
|
|
111
|
+
NotFoundError: typeof xrpl.NotFoundError;
|
|
112
|
+
XRPLFaucetError: typeof xrpl.XRPLFaucetError;
|
|
113
|
+
verifySignature: typeof xrpl.verifySignature;
|
|
114
|
+
multisign: typeof xrpl.multisign;
|
|
115
|
+
};
|
|
116
|
+
export = _default;
|
|
117
|
+
//# sourceMappingURL=ripple.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ripple.d.ts","sourceRoot":"","sources":["../../src/ripple.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;GACG;AACH,OAAO,KAAK,cAAc,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsF7B,kBAAyC"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @hidden
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
*/
|
|
43
|
+
const rippleKeypairs = __importStar(require("ripple-keypairs"));
|
|
44
|
+
const xrpl = __importStar(require("xrpl"));
|
|
45
|
+
const secp256k1_1 = require("@bitgo-beta/secp256k1");
|
|
46
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
47
|
+
const binary = __importStar(require("ripple-binary-codec"));
|
|
48
|
+
/**
|
|
49
|
+
* Convert an XRP address to a BigNumber for numeric comparison.
|
|
50
|
+
* This is needed for proper sorting of signers as required by the XRP protocol.
|
|
51
|
+
*
|
|
52
|
+
* @param address - The XRP address to convert
|
|
53
|
+
* @returns BigNumber representation of the address
|
|
54
|
+
*/
|
|
55
|
+
function addressToBigNumber(address) {
|
|
56
|
+
const hex = Buffer.from(xrpl.decodeAccountID(address)).toString('hex');
|
|
57
|
+
return new bignumber_js_1.default(hex, 16);
|
|
58
|
+
}
|
|
59
|
+
function computeSignature(tx, privateKey, signAs) {
|
|
60
|
+
const signingData = signAs ? binary.encodeForMultisigning(tx, signAs) : binary.encodeForSigning(tx);
|
|
61
|
+
return rippleKeypairs.sign(signingData, privateKey);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Sign Ripple transaction with a secp256k1 private key
|
|
65
|
+
* @param txHex
|
|
66
|
+
* @param privateKey
|
|
67
|
+
* @param options
|
|
68
|
+
* @returns {{signedTransaction: *, id}}
|
|
69
|
+
*/
|
|
70
|
+
const signWithPrivateKey = function (txHex, privateKey, options) {
|
|
71
|
+
let privateKeyBuffer = Buffer.from(privateKey, 'hex');
|
|
72
|
+
if (privateKeyBuffer.length === 33 && privateKeyBuffer[0] === 0) {
|
|
73
|
+
privateKeyBuffer = privateKeyBuffer.slice(1, 33);
|
|
74
|
+
}
|
|
75
|
+
const publicKey = secp256k1_1.ECPair.fromPrivateKey(privateKeyBuffer).publicKey.toString('hex').toUpperCase();
|
|
76
|
+
let tx;
|
|
77
|
+
try {
|
|
78
|
+
tx = binary.decode(txHex);
|
|
79
|
+
}
|
|
80
|
+
catch (e) {
|
|
81
|
+
try {
|
|
82
|
+
tx = JSON.parse(txHex);
|
|
83
|
+
}
|
|
84
|
+
catch (e) {
|
|
85
|
+
throw new Error('txHex needs to be either hex or JSON string for XRP');
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
tx.SigningPubKey = options && options.signAs ? '' : publicKey;
|
|
89
|
+
if (options && options.signAs) {
|
|
90
|
+
const expectedSigner = rippleKeypairs.deriveAddress(publicKey);
|
|
91
|
+
if (options.signAs !== expectedSigner) {
|
|
92
|
+
throw new Error('signAs does not match private key');
|
|
93
|
+
}
|
|
94
|
+
const signer = {
|
|
95
|
+
Account: options.signAs,
|
|
96
|
+
SigningPubKey: publicKey,
|
|
97
|
+
TxnSignature: computeSignature(tx, privateKey, options.signAs),
|
|
98
|
+
};
|
|
99
|
+
// Ordering of private key signing matters, or the Ripple fullnode will throw an 'Unsorted Signers array' error.
|
|
100
|
+
// XRP requires Signers array to be sorted based on numeric value of signer addresses (lowest first)
|
|
101
|
+
if (tx.Signers) {
|
|
102
|
+
// Add the current signer
|
|
103
|
+
tx.Signers.push({ Signer: signer });
|
|
104
|
+
// Sort the Signers array by numeric value of Account (address) to ensure proper ordering
|
|
105
|
+
tx.Signers.sort((a, b) => {
|
|
106
|
+
const addressBN1 = addressToBigNumber(a.Signer.Account);
|
|
107
|
+
const addressBN2 = addressToBigNumber(b.Signer.Account);
|
|
108
|
+
return addressBN1.comparedTo(addressBN2);
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
tx.Signers = [{ Signer: signer }];
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
tx.TxnSignature = computeSignature(tx, privateKey, undefined);
|
|
117
|
+
}
|
|
118
|
+
const serialized = binary.encode(tx);
|
|
119
|
+
return {
|
|
120
|
+
signedTransaction: serialized,
|
|
121
|
+
id: xrpl.hashes.hashSignedTx(serialized),
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
module.exports = { ...xrpl, signWithPrivateKey };
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlwcGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JpcHBsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSDtHQUNHO0FBQ0gsZ0VBQWtEO0FBQ2xELDJDQUE2QjtBQUM3QixxREFBK0M7QUFDL0MsZ0VBQXFDO0FBRXJDLDREQUE4QztBQUU5Qzs7Ozs7O0dBTUc7QUFDSCxTQUFTLGtCQUFrQixDQUFDLE9BQWU7SUFDekMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZFLE9BQU8sSUFBSSxzQkFBUyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU07SUFDOUMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEcsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxrQkFBa0IsR0FBRyxVQUFVLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTztJQUM3RCxJQUFJLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RELElBQUksZ0JBQWdCLENBQUMsTUFBTSxLQUFLLEVBQUUsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVB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aGlkZGVuXG4gKi9cblxuLyoqXG4gKi9cbmltcG9ydCAqIGFzIHJpcHBsZUtleXBhaXJzIGZyb20gJ3JpcHBsZS1rZXlwYWlycyc7XG5pbXBvcnQgKiBhcyB4cnBsIGZyb20gJ3hycGwnO1xuaW1wb3J0IHsgRUNQYWlyIH0gZnJvbSAnQGJpdGdvLWJldGEvc2VjcDI1NmsxJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcblxuaW1wb3J0ICogYXMgYmluYXJ5IGZyb20gJ3JpcHBsZS1iaW5hcnktY29kZWMnO1xuXG4vKipcbiAqIENvbnZlcnQgYW4gWFJQIGFkZHJlc3MgdG8gYSBCaWdOdW1iZXIgZm9yIG51bWVyaWMgY29tcGFyaXNvbi5cbiAqIFRoaXMgaXMgbmVlZGVkIGZvciBwcm9wZXIgc29ydGluZyBvZiBzaWduZXJzIGFzIHJlcXVpcmVkIGJ5IHRoZSBYUlAgcHJvdG9jb2wuXG4gKlxuICogQHBhcmFtIGFkZHJlc3MgLSBUaGUgWFJQIGFkZHJlc3MgdG8gY29udmVydFxuICogQHJldHVybnMgQmlnTnVtYmVyIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhZGRyZXNzXG4gKi9cbmZ1bmN0aW9uIGFkZHJlc3NUb0JpZ051bWJlcihhZGRyZXNzOiBzdHJpbmcpOiBCaWdOdW1iZXIge1xuICBjb25zdCBoZXggPSBCdWZmZXIuZnJvbSh4cnBsLmRlY29kZUFjY291bnRJRChhZGRyZXNzKSkudG9TdHJpbmcoJ2hleCcpO1xuICByZXR1cm4gbmV3IEJpZ051bWJlcihoZXgsIDE2KTtcbn1cblxuZnVuY3Rpb24gY29tcHV0ZVNpZ25hdHVyZSh0eCwgcHJpdmF0ZUtleSwgc2lnbkFzKSB7XG4gIGNvbnN0IHNpZ25pbmdEYXRhID0gc2lnbkFzID8gYmluYXJ5LmVuY29kZUZvck11bHRpc2lnbmluZyh0eCwgc2lnbkFzKSA6IGJpbmFyeS5lbmNvZGVGb3JTaWduaW5nKHR4KTtcbiAgcmV0dXJuIHJpcHBsZUtleXBhaXJzLnNpZ24oc2lnbmluZ0RhdGEsIHByaXZhdGVLZXkpO1xufVxuXG4vKipcbiAqIFNpZ24gUmlwcGxlIHRyYW5zYWN0aW9uIHdpdGggYSBzZWNwMjU2azEgcHJpdmF0ZSBrZXlcbiAqIEBwYXJhbSB0eEhleFxuICogQHBhcmFtIHByaXZhdGVLZXlcbiAqIEBwYXJhbSBvcHRpb25zXG4gKiBAcmV0dXJucyB7e3NpZ25lZFRyYW5zYWN0aW9uOiAqLCBpZH19XG4gKi9cbmNvbnN0IHNpZ25XaXRoUHJpdmF0ZUtleSA9IGZ1bmN0aW9uICh0eEhleCwgcHJpdmF0ZUtleSwgb3B0aW9ucykge1xuICBsZXQgcHJpdmF0ZUtleUJ1ZmZlciA9IEJ1ZmZlci5mcm9tKHByaXZhdGVLZXksICdoZXgnKTtcbiAgaWYgKHByaXZhdGVLZXlCdWZmZXIubGVuZ3RoID09PSAzMyAmJiBwcml2YXRlS2V5QnVmZmVyWzBdID09PSAwKSB7XG4gICAgcHJpdmF0ZUtleUJ1ZmZlciA9IHByaXZhdGVLZXlCdWZmZXIuc2xpY2UoMSwgMzMpO1xuICB9XG4gIGNvbnN0IHB1YmxpY0tleSA9IEVDUGFpci5mcm9tUHJpdmF0ZUtleShwcml2YXRlS2V5QnVmZmVyKS5wdWJsaWNLZXkudG9TdHJpbmcoJ2hleCcpLnRvVXBwZXJDYXNlKCk7XG5cbiAgbGV0IHR4O1xuICB0cnkge1xuICAgIHR4ID0gYmluYXJ5LmRlY29kZSh0eEhleCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0cnkge1xuICAgICAgdHggPSBKU09OLnBhcnNlKHR4SGV4KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3R4SGV4IG5lZWRzIHRvIGJlIGVpdGhlciBoZXggb3IgSlNPTiBzdHJpbmcgZm9yIFhSUCcpO1xuICAgIH1cbiAgfVxuXG4gIHR4LlNpZ25pbmdQdWJLZXkgPSBvcHRpb25zICYmIG9wdGlvbnMuc2lnbkFzID8gJycgOiBwdWJsaWNLZXk7XG5cbiAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5zaWduQXMpIHtcbiAgICBjb25zdCBleHBlY3RlZFNpZ25lciA9IHJpcHBsZUtleXBhaXJzLmRlcml2ZUFkZHJlc3MocHVibGljS2V5KTtcbiAgICBpZiAob3B0aW9ucy5zaWduQXMgIT09IGV4cGVjdGVkU2lnbmVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3NpZ25BcyBkb2VzIG5vdCBtYXRjaCBwcml2YXRlIGtleScpO1xuICAgIH1cbiAgICBjb25zdCBzaWduZXIgPSB7XG4gICAgICBBY2NvdW50OiBvcHRpb25zLnNpZ25BcyxcbiAgICAgIFNpZ25pbmdQdWJLZXk6IHB1YmxpY0tleSxcbiAgICAgIFR4blNpZ25hdHVyZTogY29tcHV0ZVNpZ25hdHVyZSh0eCwgcHJpdmF0ZUtleSwgb3B0aW9ucy5zaWduQXMpLFxuICAgIH07XG4gICAgLy8gT3JkZXJpbmcgb2YgcHJpdmF0ZSBrZXkgc2lnbmluZyBtYXR0ZXJzLCBvciB0aGUgUmlwcGxlIGZ1bGxub2RlIHdpbGwgdGhyb3cgYW4gJ1Vuc29ydGVkIFNpZ25lcnMgYXJyYXknIGVycm9yLlxuICAgIC8vIFhSUCByZXF1aXJlcyBTaWduZXJzIGFycmF5IHRvIGJlIHNvcnRlZCBiYXNlZCBvbiBudW1lcmljIHZhbHVlIG9mIHNpZ25lciBhZGRyZXNzZXMgKGxvd2VzdCBmaXJzdClcbiAgICBpZiAodHguU2lnbmVycykge1xuICAgICAgLy8gQWRkIHRoZSBjdXJyZW50IHNpZ25lclxuICAgICAgdHguU2lnbmVycy5wdXNoKHsgU2lnbmVyOiBzaWduZXIgfSk7XG5cbiAgICAgIC8vIFNvcnQgdGhlIFNpZ25lcnMgYXJyYXkgYnkgbnVtZXJpYyB2YWx1ZSBvZiBBY2NvdW50IChhZGRyZXNzKSB0byBlbnN1cmUgcHJvcGVyIG9yZGVyaW5nXG4gICAgICB0eC5TaWduZXJzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgY29uc3QgYWRkcmVzc0JOMSA9IGFkZHJlc3NUb0JpZ051bWJlcihhLlNpZ25lci5BY2NvdW50KTtcbiAgICAgICAgY29uc3QgYWRkcmVzc0JOMiA9IGFkZHJlc3NUb0JpZ051bWJlcihiLlNpZ25lci5BY2NvdW50KTtcbiAgICAgICAgcmV0dXJuIGFkZHJlc3NCTjEuY29tcGFyZWRUbyhhZGRyZXNzQk4yKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0eC5TaWduZXJzID0gW3sgU2lnbmVyOiBzaWduZXIgfV07XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHR4LlR4blNpZ25hdHVyZSA9IGNvbXB1dGVTaWduYXR1cmUodHgsIHByaXZhdGVLZXksIHVuZGVmaW5lZCk7XG4gIH1cblxuICBjb25zdCBzZXJpYWxpemVkID0gYmluYXJ5LmVuY29kZSh0eCk7XG4gIHJldHVybiB7XG4gICAgc2lnbmVkVHJhbnNhY3Rpb246IHNlcmlhbGl6ZWQsXG4gICAgaWQ6IHhycGwuaGFzaGVzLmhhc2hTaWduZWRUeChzZXJpYWxpemVkKSxcbiAgfTtcbn07XG5cbmV4cG9ydCA9IHsgLi4ueHJwbCwgc2lnbldpdGhQcml2YXRlS2V5IH07XG4iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Testnet XRP
|
|
3
|
+
*
|
|
4
|
+
* @format
|
|
5
|
+
*/
|
|
6
|
+
import { BaseCoin, BitGoBase } from '@bitgo-beta/sdk-core';
|
|
7
|
+
import { BaseCoin as StaticsBaseCoin } from '@bitgo-beta/statics';
|
|
8
|
+
import { Xrp } from './xrp';
|
|
9
|
+
export declare class Txrp extends Xrp {
|
|
10
|
+
protected constructor(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>);
|
|
11
|
+
static createInstance(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>): BaseCoin;
|
|
12
|
+
/**
|
|
13
|
+
* Identifier for the blockchain which supports this coin
|
|
14
|
+
*/
|
|
15
|
+
getChain(): string;
|
|
16
|
+
/**
|
|
17
|
+
* URL of a well-known, public facing (non-bitgo) rippled instance which can be used for recovery
|
|
18
|
+
*/
|
|
19
|
+
getRippledUrl(): string;
|
|
20
|
+
/**
|
|
21
|
+
* Complete human-readable name of this coin
|
|
22
|
+
*/
|
|
23
|
+
getFullName(): string;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=txrp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"txrp.d.ts","sourceRoot":"","sources":["../../src/txrp.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,qBAAa,IAAK,SAAQ,GAAG;IAC3B,SAAS,aAAa,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAI/E,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;IAG1F;;OAEG;IACI,QAAQ,IAAI,MAAM;IAIzB;;OAEG;IACI,aAAa,IAAI,MAAM;IAI9B;;OAEG;IACI,WAAW,IAAI,MAAM;CAG7B"}
|
package/dist/src/txrp.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Txrp = void 0;
|
|
4
|
+
const xrp_1 = require("./xrp");
|
|
5
|
+
class Txrp extends xrp_1.Xrp {
|
|
6
|
+
constructor(bitgo, staticsCoin) {
|
|
7
|
+
super(bitgo, staticsCoin);
|
|
8
|
+
}
|
|
9
|
+
static createInstance(bitgo, staticsCoin) {
|
|
10
|
+
return new Txrp(bitgo, staticsCoin);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Identifier for the blockchain which supports this coin
|
|
14
|
+
*/
|
|
15
|
+
getChain() {
|
|
16
|
+
return 'txrp';
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* URL of a well-known, public facing (non-bitgo) rippled instance which can be used for recovery
|
|
20
|
+
*/
|
|
21
|
+
getRippledUrl() {
|
|
22
|
+
return 'https://s.altnet.rippletest.net:51234';
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Complete human-readable name of this coin
|
|
26
|
+
*/
|
|
27
|
+
getFullName() {
|
|
28
|
+
return 'Testnet Ripple';
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.Txrp = Txrp;
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhycC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eHJwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU9BLCtCQUE0QjtBQUU1QixNQUFhLElBQUssU0FBUSxTQUFHO0lBQzNCLFlBQXNCLEtBQWdCLEVBQUUsV0FBdUM7UUFDN0UsS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFnQixFQUFFLFdBQXVDO1FBQzdFLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRDs7T0FFRztJQUNJLFFBQVE7UUFDYixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxhQUFhO1FBQ2xCLE9BQU8sdUNBQXVDLENBQUM7SUFDakQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVztRQUNoQixPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7Q0FDRjtBQTVCRCxvQkE0QkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRlc3RuZXQgWFJQXG4gKlxuICogQGZvcm1hdFxuICovXG5pbXBvcnQgeyBCYXNlQ29pbiwgQml0R29CYXNlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgU3RhdGljc0Jhc2VDb2luIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBYcnAgfSBmcm9tICcuL3hycCc7XG5cbmV4cG9ydCBjbGFzcyBUeHJwIGV4dGVuZHMgWHJwIHtcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPikge1xuICAgIHN1cGVyKGJpdGdvLCBzdGF0aWNzQ29pbik7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoYml0Z286IEJpdEdvQmFzZSwgc3RhdGljc0NvaW4/OiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+KTogQmFzZUNvaW4ge1xuICAgIHJldHVybiBuZXcgVHhycChiaXRnbywgc3RhdGljc0NvaW4pO1xuICB9XG4gIC8qKlxuICAgKiBJZGVudGlmaWVyIGZvciB0aGUgYmxvY2tjaGFpbiB3aGljaCBzdXBwb3J0cyB0aGlzIGNvaW5cbiAgICovXG4gIHB1YmxpYyBnZXRDaGFpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiAndHhycCc7XG4gIH1cblxuICAvKipcbiAgICogVVJMIG9mIGEgd2VsbC1rbm93biwgcHVibGljIGZhY2luZyAobm9uLWJpdGdvKSByaXBwbGVkIGluc3RhbmNlIHdoaWNoIGNhbiBiZSB1c2VkIGZvciByZWNvdmVyeVxuICAgKi9cbiAgcHVibGljIGdldFJpcHBsZWRVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ2h0dHBzOi8vcy5hbHRuZXQucmlwcGxldGVzdC5uZXQ6NTEyMzQnO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXBsZXRlIGh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdGhpcyBjb2luXG4gICAqL1xuICBwdWJsaWMgZ2V0RnVsbE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ1Rlc3RuZXQgUmlwcGxlJztcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { AuditDecryptedKeyParams, BaseCoin, BitGoBase, KeyPair, MultisigType, ParsedTransaction, ParseTransactionOptions, TokenEnablementConfig, TransactionParams, VerifyTransactionOptions } from '@bitgo-beta/sdk-core';
|
|
2
|
+
import { BaseCoin as StaticsBaseCoin, XrpCoin } from '@bitgo-beta/statics';
|
|
3
|
+
import { ExplainTransactionOptions, FeeInfo, HalfSignedTransaction, RecoveryInfo, RecoveryOptions, RecoveryTransaction, SignTransactionOptions, SupplementGenerateWalletOptions, TransactionExplanation, VerifyAddressOptions, XrpTransactionType } from './lib/iface';
|
|
4
|
+
export declare class Xrp extends BaseCoin {
|
|
5
|
+
protected _staticsCoin: Readonly<StaticsBaseCoin>;
|
|
6
|
+
protected constructor(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>);
|
|
7
|
+
static createInstance(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>): BaseCoin;
|
|
8
|
+
/**
|
|
9
|
+
* Factor between the coin's base unit and its smallest subdivison
|
|
10
|
+
*/
|
|
11
|
+
getBaseFactor(): number;
|
|
12
|
+
/**
|
|
13
|
+
* Identifier for the blockchain which supports this coin
|
|
14
|
+
*/
|
|
15
|
+
getChain(): string;
|
|
16
|
+
/**
|
|
17
|
+
* Identifier for the coin family
|
|
18
|
+
*/
|
|
19
|
+
getFamily(): string;
|
|
20
|
+
/**
|
|
21
|
+
* Complete human-readable name of this coin
|
|
22
|
+
*/
|
|
23
|
+
getFullName(): string;
|
|
24
|
+
/**
|
|
25
|
+
* Evaluates whether an address string is valid for this coin
|
|
26
|
+
* @param address
|
|
27
|
+
*/
|
|
28
|
+
isValidAddress(address: string): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Return boolean indicating whether input is valid public key for the coin.
|
|
31
|
+
*
|
|
32
|
+
* @param {String} pub the pub to be checked
|
|
33
|
+
* @returns {Boolean} is it valid?
|
|
34
|
+
*/
|
|
35
|
+
isValidPub(pub: string): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Get fee info from server
|
|
38
|
+
*/
|
|
39
|
+
getFeeInfo(): Promise<FeeInfo>;
|
|
40
|
+
/** @inheritdoc */
|
|
41
|
+
valuelessTransferAllowed(): boolean;
|
|
42
|
+
/** inherited doc */
|
|
43
|
+
getDefaultMultisigType(): MultisigType;
|
|
44
|
+
getTokenEnablementConfig(): TokenEnablementConfig;
|
|
45
|
+
/**
|
|
46
|
+
* Assemble keychain and half-sign prebuilt transaction
|
|
47
|
+
* @param params
|
|
48
|
+
* - txPrebuild
|
|
49
|
+
* - prv
|
|
50
|
+
* @returns Bluebird<HalfSignedTransaction>
|
|
51
|
+
*/
|
|
52
|
+
signTransaction({ txPrebuild, prv, isLastSignature, }: SignTransactionOptions): Promise<HalfSignedTransaction | RecoveryTransaction>;
|
|
53
|
+
/**
|
|
54
|
+
* Ripple requires additional parameters for wallet generation to be sent to the server. The additional parameters are
|
|
55
|
+
* the root public key, which is the basis of the root address, two signed, and one half-signed initialization txs
|
|
56
|
+
* @param walletParams
|
|
57
|
+
* - rootPrivateKey: optional hex-encoded Ripple private key
|
|
58
|
+
*/
|
|
59
|
+
supplementGenerateWallet(walletParams: SupplementGenerateWalletOptions): Promise<SupplementGenerateWalletOptions>;
|
|
60
|
+
/**
|
|
61
|
+
* Explain/parse transaction
|
|
62
|
+
* @param params
|
|
63
|
+
*/
|
|
64
|
+
explainTransaction(params?: ExplainTransactionOptions): Promise<TransactionExplanation>;
|
|
65
|
+
getTransactionTypeRawTxHex(txHex: string): XrpTransactionType | undefined;
|
|
66
|
+
verifyTxType(txPrebuildDecoded: TransactionExplanation, txHexPrebuild: string | undefined): void;
|
|
67
|
+
verifyTokenName(txParams: TransactionParams, txPrebuildDecoded: TransactionExplanation, txHexPrebuild: string | undefined, coinConfig: XrpCoin): void;
|
|
68
|
+
verifyActivationAddress(txParams: TransactionParams, txPrebuildDecoded: TransactionExplanation): void;
|
|
69
|
+
verifyTokenIssuer(txParams: TransactionParams, txPrebuildDecoded: TransactionExplanation): void;
|
|
70
|
+
verifyRequiredKeys(txParams: TransactionParams, txPrebuildDecoded: TransactionExplanation): void;
|
|
71
|
+
/**
|
|
72
|
+
* Verify that a transaction prebuild complies with the original intention
|
|
73
|
+
* @param txParams params object passed to send
|
|
74
|
+
* @param txPrebuild prebuild object returned by server
|
|
75
|
+
* @param wallet
|
|
76
|
+
* @returns {boolean}
|
|
77
|
+
*/
|
|
78
|
+
verifyTransaction({ txParams, txPrebuild, verification }: VerifyTransactionOptions): Promise<boolean>;
|
|
79
|
+
/**
|
|
80
|
+
* Check if address is a valid XRP address, and then make sure the root addresses match.
|
|
81
|
+
* This prevents attacks where an attack may switch out the new address for one of their own
|
|
82
|
+
* @param address {String} the address to verify
|
|
83
|
+
* @param rootAddress {String} the wallet's root address
|
|
84
|
+
* @return true iff address is a wallet address (based on rootAddress)
|
|
85
|
+
*/
|
|
86
|
+
isWalletAddress({ address, rootAddress }: VerifyAddressOptions): Promise<boolean>;
|
|
87
|
+
/**
|
|
88
|
+
* URL of a well-known, public facing (non-bitgo) rippled instance which can be used for recovery
|
|
89
|
+
*/
|
|
90
|
+
getRippledUrl(): string;
|
|
91
|
+
/**
|
|
92
|
+
* Builds a funds recovery transaction without BitGo
|
|
93
|
+
* @param params
|
|
94
|
+
* - rootAddress: root XRP wallet address to recover funds from
|
|
95
|
+
* - userKey: [encrypted] xprv
|
|
96
|
+
* - backupKey: [encrypted] xprv, or xpub if the xprv is held by a KRS provider
|
|
97
|
+
* - walletPassphrase: necessary if one of the xprvs is encrypted
|
|
98
|
+
* - bitgoKey: xpub
|
|
99
|
+
* - krsProvider: necessary if backup key is held by KRS
|
|
100
|
+
* - recoveryDestination: target address to send recovered funds to
|
|
101
|
+
*/
|
|
102
|
+
recover(params: RecoveryOptions): Promise<RecoveryInfo | RecoveryTransaction>;
|
|
103
|
+
recoverXrpToken(params: any, tokenParams: any): Promise<RecoveryInfo | {
|
|
104
|
+
txHex: any;
|
|
105
|
+
coin: string;
|
|
106
|
+
}>;
|
|
107
|
+
/**
|
|
108
|
+
* Generate a new keypair for this coin.
|
|
109
|
+
* @param seed Seed from which the new keypair should be generated, otherwise a random seed is used
|
|
110
|
+
*/
|
|
111
|
+
generateKeyPair(seed?: Buffer): KeyPair;
|
|
112
|
+
parseTransaction(params: ParseTransactionOptions): Promise<ParsedTransaction>;
|
|
113
|
+
/** @inheritDoc */
|
|
114
|
+
auditDecryptedKey(params: AuditDecryptedKeyParams): void;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=xrp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xrp.d.ts","sourceRoot":"","sources":["../../src/xrp.ts"],"names":[],"mappings":"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"}
|