@coolwallet/xrp
Version:
Coolwallet Ripple App
97 lines (69 loc) • 12.3 kB
JavaScript
;
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.generateIouTransferRawTx = exports.generateTrustSetRawTx = exports.getAccount = exports.pubKeyToAddress = exports.generateRawTx = void 0;
var cryptoUtil = _interopRequireWildcard(require("./cryptoUtil"));
var params = _interopRequireWildcard(require("../config/params"));
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
var base58 = require('base-x')(params.R_B58_DICT);
var codec = require('ripple-binary-codec');
var generateRawTx = function generateRawTx(signature, payment) {
/* eslint-disable-next-line no-param-reassign */
payment.TxnSignature = signature.toUpperCase();
return codec.encode(payment);
}; // eslint-disable-next-line import/prefer-default-export
exports.generateRawTx = generateRawTx;
var pubKeyToAddress = function pubKeyToAddress(publicKey) {
var pubKeyBuf = Buffer.from(publicKey, 'hex');
var pubkeyHash = cryptoUtil.sha256(pubKeyBuf);
var accountId = cryptoUtil.ripemd160(pubkeyHash);
var addressTypePrefix = Buffer.from('00', 'hex');
var payload = Buffer.concat([addressTypePrefix, accountId]);
var checksum = cryptoUtil.sha256(cryptoUtil.sha256(payload)).slice(0, 4);
var address = base58.encode(Buffer.concat([payload, checksum]));
return address;
};
exports.pubKeyToAddress = pubKeyToAddress;
var getAccount = function getAccount(address) {
var addressBuf = base58.decode(address);
var accountBuf = addressBuf.slice(1, 21);
return accountBuf.toString('hex');
};
exports.getAccount = getAccount;
var generateTrustSetRawTx = function generateTrustSetRawTx(signature, tokenPayment) {
var Token = tokenPayment.Token,
rest = _objectWithoutProperties(tokenPayment, ["Token"]);
var payload = _objectSpread(_objectSpread({}, rest), {}, {
TxnSignature: signature.toUpperCase(),
LimitAmount: {
currency: Token.code,
issuer: Token.issuer,
value: Token.value
}
});
return codec.encode(payload);
};
exports.generateTrustSetRawTx = generateTrustSetRawTx;
var generateIouTransferRawTx = function generateIouTransferRawTx(signature, iouPayment) {
var Token = iouPayment.Token,
rest = _objectWithoutProperties(iouPayment, ["Token"]);
var payload = _objectSpread(_objectSpread({}, rest), {}, {
TxnSignature: signature.toUpperCase(),
Amount: {
currency: Token.code,
issuer: Token.issuer,
value: Token.value
}
});
return codec.encode(payload);
};
exports.generateIouTransferRawTx = generateIouTransferRawTx;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy90cmFjc2FjdGlvblV0aWwudHMiXSwibmFtZXMiOlsiYmFzZTU4IiwicmVxdWlyZSIsInBhcmFtcyIsIlJfQjU4X0RJQ1QiLCJjb2RlYyIsImdlbmVyYXRlUmF3VHgiLCJzaWduYXR1cmUiLCJwYXltZW50IiwiVHhuU2lnbmF0dXJlIiwidG9VcHBlckNhc2UiLCJlbmNvZGUiLCJwdWJLZXlUb0FkZHJlc3MiLCJwdWJsaWNLZXkiLCJwdWJLZXlCdWYiLCJCdWZmZXIiLCJmcm9tIiwicHVia2V5SGFzaCIsImNyeXB0b1V0aWwiLCJzaGEyNTYiLCJhY2NvdW50SWQiLCJyaXBlbWQxNjAiLCJhZGRyZXNzVHlwZVByZWZpeCIsInBheWxvYWQiLCJjb25jYXQiLCJjaGVja3N1bSIsInNsaWNlIiwiYWRkcmVzcyIsImdldEFjY291bnQiLCJhZGRyZXNzQnVmIiwiZGVjb2RlIiwiYWNjb3VudEJ1ZiIsInRvU3RyaW5nIiwiZ2VuZXJhdGVUcnVzdFNldFJhd1R4IiwidG9rZW5QYXltZW50IiwiVG9rZW4iLCJyZXN0IiwiTGltaXRBbW91bnQiLCJjdXJyZW5jeSIsImNvZGUiLCJpc3N1ZXIiLCJ2YWx1ZSIsImdlbmVyYXRlSW91VHJhbnNmZXJSYXdUeCIsImlvdVBheW1lbnQiLCJBbW91bnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBTUEsTUFBTSxHQUFHQyxPQUFPLENBQUMsUUFBRCxDQUFQLENBQWtCQyxNQUFNLENBQUNDLFVBQXpCLENBQWY7O0FBQ0EsSUFBTUMsS0FBSyxHQUFHSCxPQUFPLENBQUMscUJBQUQsQ0FBckI7O0FBRU8sSUFBTUksYUFBYSxHQUFHLFNBQWhCQSxhQUFnQixDQUFDQyxTQUFELEVBQW9CQyxPQUFwQixFQUEyRDtBQUN0RjtBQUNBQSxFQUFBQSxPQUFPLENBQUNDLFlBQVIsR0FBdUJGLFNBQVMsQ0FBQ0csV0FBVixFQUF2QjtBQUNBLFNBQU9MLEtBQUss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IGZyb20gJy4uL2NvbmZpZy90eXBlcyc7XG5pbXBvcnQgKiBhcyBjcnlwdG9VdGlsIGZyb20gJy4vY3J5cHRvVXRpbCc7XG5pbXBvcnQgKiBhcyBwYXJhbXMgZnJvbSAnLi4vY29uZmlnL3BhcmFtcyc7XG5cbmNvbnN0IGJhc2U1OCA9IHJlcXVpcmUoJ2Jhc2UteCcpKHBhcmFtcy5SX0I1OF9ESUNUKTtcbmNvbnN0IGNvZGVjID0gcmVxdWlyZSgncmlwcGxlLWJpbmFyeS1jb2RlYycpO1xuXG5leHBvcnQgY29uc3QgZ2VuZXJhdGVSYXdUeCA9IChzaWduYXR1cmU6IHN0cmluZywgcGF5bWVudDogdHlwZXMuQmFzZVBheW1lbnQpOiBzdHJpbmcgPT4ge1xuICAvKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbiAgcGF5bWVudC5UeG5TaWduYXR1cmUgPSBzaWduYXR1cmUudG9VcHBlckNhc2UoKTtcbiAgcmV0dXJuIGNvZGVjLmVuY29kZShwYXltZW50KTtcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvcHJlZmVyLWRlZmF1bHQtZXhwb3J0XG5leHBvcnQgY29uc3QgcHViS2V5VG9BZGRyZXNzID0gKHB1YmxpY0tleTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgcHViS2V5QnVmID0gQnVmZmVyLmZyb20ocHVibGljS2V5LCAnaGV4Jyk7XG4gIGNvbnN0IHB1YmtleUhhc2ggPSBjcnlwdG9VdGlsLnNoYTI1NihwdWJLZXlCdWYpO1xuICBjb25zdCBhY2NvdW50SWQgPSBjcnlwdG9VdGlsLnJpcGVtZDE2MChwdWJrZXlIYXNoKTtcblxuICBjb25zdCBhZGRyZXNzVHlwZVByZWZpeCA9IEJ1ZmZlci5mcm9tKCcwMCcsICdoZXgnKTtcbiAgY29uc3QgcGF5bG9hZCA9IEJ1ZmZlci5jb25jYXQoW2FkZHJlc3NUeXBlUHJlZml4LCBhY2NvdW50SWRdKTtcbiAgY29uc3QgY2hlY2tzdW0gPSBjcnlwdG9VdGlsLnNoYTI1NihjcnlwdG9VdGlsLnNoYTI1NihwYXlsb2FkKSkuc2xpY2UoMCwgNCk7XG4gIGNvbnN0IGFkZHJlc3MgPSBiYXNlNTguZW5jb2RlKEJ1ZmZlci5jb25jYXQoW3BheWxvYWQsIGNoZWNrc3VtXSkpO1xuICByZXR1cm4gYWRkcmVzcztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRBY2NvdW50ID0gKGFkZHJlc3M6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGFkZHJlc3NCdWYgPSBiYXNlNTguZGVjb2RlKGFkZHJlc3MpO1xuICBjb25zdCBhY2NvdW50QnVmID0gYWRkcmVzc0J1Zi5zbGljZSgxLCAyMSk7XG4gIHJldHVybiBhY2NvdW50QnVmLnRvU3RyaW5nKCdoZXgnKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZW5lcmF0ZVRydXN0U2V0UmF3VHggPSAoc2lnbmF0dXJlOiBzdHJpbmcsIHRva2VuUGF5bWVudDogdHlwZXMuVG9rZW5QYXltZW50KTogc3RyaW5nID0+IHtcbiAgY29uc3QgeyBUb2tlbiwgLi4ucmVzdCB9ID0gdG9rZW5QYXltZW50O1xuICBjb25zdCBwYXlsb2FkID0ge1xuICAgIC4uLnJlc3QsXG4gICAgVHhuU2lnbmF0dXJlOiBzaWduYXR1cmUudG9VcHBlckNhc2UoKSxcbiAgICBMaW1pdEFtb3VudDoge1xuICAgICAgY3VycmVuY3k6IFRva2VuLmNvZGUsXG4gICAgICBpc3N1ZXI6IFRva2VuLmlzc3VlcixcbiAgICAgIHZhbHVlOiBUb2tlbi52YWx1ZSxcbiAgICB9LFxuICB9O1xuICByZXR1cm4gY29kZWMuZW5jb2RlKHBheWxvYWQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdlbmVyYXRlSW91VHJhbnNmZXJSYXdUeCA9IChzaWduYXR1cmU6IHN0cmluZywgaW91UGF5bWVudDogdHlwZXMuSW91VHJhbnNmZXJQYXltZW50KTogc3RyaW5nID0+IHtcbiAgY29uc3QgeyBUb2tlbiwgLi4ucmVzdCB9ID0gaW91UGF5bWVudDtcbiAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAuLi5yZXN0LFxuICAgIFR4blNpZ25hdHVyZTogc2lnbmF0dXJlLnRvVXBwZXJDYXNlKCksXG4gICAgQW1vdW50OiB7XG4gICAgICBjdXJyZW5jeTogVG9rZW4uY29kZSxcbiAgICAgIGlzc3VlcjogVG9rZW4uaXNzdWVyLFxuICAgICAgdmFsdWU6IFRva2VuLnZhbHVlLFxuICAgIH0sXG4gIH07XG4gIHJldHVybiBjb2RlYy5lbmNvZGUocGF5bG9hZCk7XG59O1xuIl19