ripple-lib
Version:
Deprecated - consider migrating to xrpl.js: https://xrpl.org/xrpljs2-migration-guide.html
276 lines • 14.7 kB
JavaScript
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.RippleAPI = void 0;
const events_1 = require("events");
const common_1 = require("./common");
const server_1 = require("./server/server");
const transaction_1 = __importDefault(require("./ledger/transaction"));
const transactions_1 = __importDefault(require("./ledger/transactions"));
const trustlines_1 = __importDefault(require("./ledger/trustlines"));
const balances_1 = __importDefault(require("./ledger/balances"));
const balance_sheet_1 = __importDefault(require("./ledger/balance-sheet"));
const pathfind_1 = __importDefault(require("./ledger/pathfind"));
const orders_1 = __importDefault(require("./ledger/orders"));
const orderbook_1 = require("./ledger/orderbook");
const settings_1 = require("./ledger/settings");
const accountinfo_1 = __importDefault(require("./ledger/accountinfo"));
const accountobjects_1 = __importDefault(require("./ledger/accountobjects"));
const payment_channel_1 = __importDefault(require("./ledger/payment-channel"));
const payment_1 = __importDefault(require("./transaction/payment"));
const trustline_1 = __importDefault(require("./transaction/trustline"));
const order_1 = __importDefault(require("./transaction/order"));
const ordercancellation_1 = __importDefault(require("./transaction/ordercancellation"));
const escrow_creation_1 = __importDefault(require("./transaction/escrow-creation"));
const escrow_execution_1 = __importDefault(require("./transaction/escrow-execution"));
const escrow_cancellation_1 = __importDefault(require("./transaction/escrow-cancellation"));
const payment_channel_create_1 = __importDefault(require("./transaction/payment-channel-create"));
const payment_channel_fund_1 = __importDefault(require("./transaction/payment-channel-fund"));
const payment_channel_claim_1 = __importDefault(require("./transaction/payment-channel-claim"));
const check_create_1 = __importDefault(require("./transaction/check-create"));
const check_cancel_1 = __importDefault(require("./transaction/check-cancel"));
const check_cash_1 = __importDefault(require("./transaction/check-cash"));
const settings_2 = __importDefault(require("./transaction/settings"));
const ticket_1 = __importDefault(require("./transaction/ticket"));
const sign_1 = __importDefault(require("./transaction/sign"));
const combine_1 = __importDefault(require("./transaction/combine"));
const submit_1 = __importDefault(require("./transaction/submit"));
const utils_1 = require("./offline/utils");
const derive_1 = require("./offline/derive");
const ledgerhash_1 = __importDefault(require("./offline/ledgerhash"));
const sign_payment_channel_claim_1 = __importDefault(require("./offline/sign-payment-channel-claim"));
const verify_payment_channel_claim_1 = __importDefault(require("./offline/verify-payment-channel-claim"));
const ledger_1 = __importDefault(require("./ledger/ledger"));
const rangeset_1 = __importDefault(require("./common/rangeset"));
const ledgerUtils = __importStar(require("./ledger/utils"));
const transactionUtils = __importStar(require("./transaction/utils"));
const schemaValidator = __importStar(require("./common/schema-validator"));
const serverinfo_1 = require("./common/serverinfo");
const utils_2 = require("./ledger/utils");
const ripple_address_codec_1 = require("ripple-address-codec");
const hashes_1 = require("./common/hashes");
const wallet_generation_1 = __importDefault(require("./wallet/wallet-generation"));
function getCollectKeyFromCommand(command) {
switch (command) {
case 'account_offers':
case 'book_offers':
return 'offers';
case 'account_lines':
return 'lines';
default:
return undefined;
}
}
class RippleAPI extends events_1.EventEmitter {
constructor(options = {}) {
super();
this.generateAddress = utils_1.generateAddress;
this.generateXAddress = utils_1.generateXAddress;
this.connect = server_1.connect;
this.disconnect = server_1.disconnect;
this.isConnected = server_1.isConnected;
this.getServerInfo = serverinfo_1.getServerInfo;
this.getFee = serverinfo_1.getFee;
this.getLedgerVersion = server_1.getLedgerVersion;
this.getTransaction = transaction_1.default;
this.getTransactions = transactions_1.default;
this.getTrustlines = trustlines_1.default;
this.getBalances = balances_1.default;
this.getBalanceSheet = balance_sheet_1.default;
this.getPaths = pathfind_1.default;
this.getOrderbook = orderbook_1.getOrderbook;
this.getOrders = orders_1.default;
this.getSettings = settings_1.getSettings;
this.getAccountInfo = accountinfo_1.default;
this.getAccountObjects = accountobjects_1.default;
this.getPaymentChannel = payment_channel_1.default;
this.getLedger = ledger_1.default;
this.parseAccountFlags = settings_1.parseAccountFlags;
this.preparePayment = payment_1.default;
this.prepareTrustline = trustline_1.default;
this.prepareOrder = order_1.default;
this.prepareOrderCancellation = ordercancellation_1.default;
this.prepareEscrowCreation = escrow_creation_1.default;
this.prepareEscrowExecution = escrow_execution_1.default;
this.prepareEscrowCancellation = escrow_cancellation_1.default;
this.preparePaymentChannelCreate = payment_channel_create_1.default;
this.preparePaymentChannelFund = payment_channel_fund_1.default;
this.preparePaymentChannelClaim = payment_channel_claim_1.default;
this.prepareCheckCreate = check_create_1.default;
this.prepareCheckCash = check_cash_1.default;
this.prepareCheckCancel = check_cancel_1.default;
this.prepareTicketCreate = ticket_1.default;
this.prepareSettings = settings_2.default;
this.sign = sign_1.default;
this.combine = combine_1.default;
this.submit = submit_1.default;
this.deriveKeypair = derive_1.deriveKeypair;
this.deriveAddress = derive_1.deriveAddress;
this.computeLedgerHash = ledgerhash_1.default;
this.signPaymentChannelClaim = sign_payment_channel_claim_1.default;
this.verifyPaymentChannelClaim = verify_payment_channel_claim_1.default;
this.generateFaucetWallet = wallet_generation_1.default;
this.errors = common_1.errors;
this.xrpToDrops = common_1.xrpToDrops;
this.dropsToXrp = common_1.dropsToXrp;
this.rippleTimeToISO8601 = common_1.rippleTimeToISO8601;
this.iso8601ToRippleTime = common_1.iso8601ToRippleTime;
this.txFlags = common_1.txFlags;
this.accountSetFlags = common_1.constants.AccountSetFlags;
this.isValidAddress = schemaValidator.isValidAddress;
this.isValidSecret = schemaValidator.isValidSecret;
common_1.validate.apiOptions(options);
this._feeCushion = options.feeCushion || 1.2;
this._maxFeeXRP = options.maxFeeXRP || '2';
const serverURL = options.server;
if (serverURL != null) {
this.connection = new common_1.Connection(serverURL, options);
this.connection.on('ledgerClosed', (message) => {
this.emit('ledger', server_1.formatLedgerClose(message));
});
this.connection.on('error', (errorCode, errorMessage, data) => {
this.emit('error', errorCode, errorMessage, data);
});
this.connection.on('connected', () => {
this.emit('connected');
});
this.connection.on('disconnected', (code) => {
let finalCode = code;
if (finalCode === 1005 || finalCode === 4000) {
finalCode = 1000;
}
this.emit('disconnected', finalCode);
});
}
else {
this.connection = new common_1.Connection(null, options);
}
}
request(command, params = {}) {
return __awaiter(this, void 0, void 0, function* () {
return this.connection.request(Object.assign(Object.assign({}, params), { command, account: params.account ? common_1.ensureClassicAddress(params.account) : undefined }));
});
}
hasNextPage(currentResponse) {
return !!currentResponse.marker;
}
requestNextPage(command, params = {}, currentResponse) {
return __awaiter(this, void 0, void 0, function* () {
if (!currentResponse.marker) {
return Promise.reject(new common_1.errors.NotFoundError('response does not have a next page'));
}
const nextPageParams = Object.assign({}, params, {
marker: currentResponse.marker
});
return this.request(command, nextPageParams);
});
}
prepareTransaction(txJSON, instructions = {}) {
return __awaiter(this, void 0, void 0, function* () {
return transactionUtils.prepareTransaction(txJSON, this, instructions);
});
}
convertStringToHex(string) {
return transactionUtils.convertStringToHex(string);
}
_requestAll(command, params = {}, options = {}) {
return __awaiter(this, void 0, void 0, function* () {
const collectKey = options.collect || getCollectKeyFromCommand(command);
if (!collectKey) {
throw new common_1.errors.ValidationError(`no collect key for command ${command}`);
}
const countTo = params.limit != null ? params.limit : Infinity;
let count = 0;
let marker = params.marker;
let lastBatchLength;
const results = [];
do {
const countRemaining = utils_2.clamp(countTo - count, 10, 400);
const repeatProps = Object.assign(Object.assign({}, params), { limit: countRemaining, marker });
const singleResult = yield this.request(command, repeatProps);
const collectedData = singleResult[collectKey];
marker = singleResult['marker'];
results.push(singleResult);
const isExpectedFormat = Array.isArray(collectedData);
if (isExpectedFormat) {
count += collectedData.length;
lastBatchLength = collectedData.length;
}
else {
lastBatchLength = 0;
}
} while (!!marker && count < countTo && lastBatchLength !== 0);
return results;
});
}
}
exports.RippleAPI = RippleAPI;
RippleAPI._PRIVATE = {
validate: common_1.validate,
RangeSet: rangeset_1.default,
ledgerUtils,
schemaValidator
};
RippleAPI.renameCounterpartyToIssuer = utils_2.renameCounterpartyToIssuer;
RippleAPI.formatBidsAndAsks = orderbook_1.formatBidsAndAsks;
RippleAPI.deriveXAddress = derive_1.deriveXAddress;
RippleAPI.deriveClassicAddress = derive_1.deriveAddress;
RippleAPI.classicAddressToXAddress = ripple_address_codec_1.classicAddressToXAddress;
RippleAPI.xAddressToClassicAddress = ripple_address_codec_1.xAddressToClassicAddress;
RippleAPI.isValidXAddress = ripple_address_codec_1.isValidXAddress;
RippleAPI.isValidClassicAddress = ripple_address_codec_1.isValidClassicAddress;
RippleAPI.encodeSeed = ripple_address_codec_1.encodeSeed;
RippleAPI.decodeSeed = ripple_address_codec_1.decodeSeed;
RippleAPI.encodeAccountID = ripple_address_codec_1.encodeAccountID;
RippleAPI.decodeAccountID = ripple_address_codec_1.decodeAccountID;
RippleAPI.encodeNodePublic = ripple_address_codec_1.encodeNodePublic;
RippleAPI.decodeNodePublic = ripple_address_codec_1.decodeNodePublic;
RippleAPI.encodeAccountPublic = ripple_address_codec_1.encodeAccountPublic;
RippleAPI.decodeAccountPublic = ripple_address_codec_1.decodeAccountPublic;
RippleAPI.encodeXAddress = ripple_address_codec_1.encodeXAddress;
RippleAPI.decodeXAddress = ripple_address_codec_1.decodeXAddress;
RippleAPI.computeBinaryTransactionHash = hashes_1.computeBinaryTransactionHash;
RippleAPI.computeTransactionHash = hashes_1.computeTransactionHash;
RippleAPI.computeBinaryTransactionSigningHash = hashes_1.computeBinaryTransactionSigningHash;
RippleAPI.computeAccountLedgerObjectID = hashes_1.computeAccountLedgerObjectID;
RippleAPI.computeSignerListLedgerObjectID = hashes_1.computeSignerListLedgerObjectID;
RippleAPI.computeOrderID = hashes_1.computeOrderID;
RippleAPI.computeTrustlineHash = hashes_1.computeTrustlineHash;
RippleAPI.computeTransactionTreeHash = hashes_1.computeTransactionTreeHash;
RippleAPI.computeStateTreeHash = hashes_1.computeStateTreeHash;
RippleAPI.computeLedgerHash = ledgerhash_1.default;
RippleAPI.computeEscrowHash = hashes_1.computeEscrowHash;
RippleAPI.computePaymentChannelHash = hashes_1.computePaymentChannelHash;
RippleAPI.txFlags = common_1.txFlags;
RippleAPI.accountSetFlags = common_1.constants.AccountSetFlags;
//# sourceMappingURL=api.js.map