@coolwallet/xlm
Version:
Coolwallet Stella sdk
51 lines (39 loc) • 6.64 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.encodeCheck = encodeCheck;
exports.encodeEd25519PublicKey = encodeEd25519PublicKey;
exports.pubKeyToAddress = pubKeyToAddress;
var _crc = _interopRequireDefault(require("crc"));
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 _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
/* eslint-disable no-bitwise */
var base32 = require('base32.js');
function calculateChecksum(payload) {
// This code calculates CRC16-XModem checksum of payload
// and returns it as Buffer in little-endian order.
var checksum = Buffer.allocUnsafe(2);
checksum.writeUInt16LE(_crc["default"].crc16xmodem(payload), 0);
return checksum;
}
function encodeCheck(versionByteName, data) {
var versionByte = params.VERSION_BYTES[versionByteName];
var versionBuffer = Buffer.from([versionByte]);
var payload = Buffer.concat([versionBuffer, data]);
var checksum = calculateChecksum(payload);
var unencoded = Buffer.concat([payload, checksum]);
return base32.encode(unencoded);
}
function encodeEd25519PublicKey(data) {
return encodeCheck('ed25519PublicKey', data);
}
function pubKeyToAddress(publicKey) {
var pubKey = publicKey.length === 66 ? publicKey.slice(2) : publicKey;
var pubKeyBuf = Buffer.from(pubKey, 'hex');
return encodeEd25519PublicKey(pubKeyBuf);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy90cmFuc2FjdGlvblV0aWwudHMiXSwibmFtZXMiOlsiYmFzZTMyIiwicmVxdWlyZSIsImNhbGN1bGF0ZUNoZWNrc3VtIiwicGF5bG9hZCIsImNoZWNrc3VtIiwiQnVmZmVyIiwiYWxsb2NVbnNhZmUiLCJ3cml0ZVVJbnQxNkxFIiwiY3JjIiwiY3JjMTZ4bW9kZW0iLCJlbmNvZGVDaGVjayIsInZlcnNpb25CeXRlTmFtZSIsImRhdGEiLCJ2ZXJzaW9uQnl0ZSIsInBhcmFtcyIsIlZFUlNJT05fQllURVMiLCJ2ZXJzaW9uQnVmZmVyIiwiZnJvbSIsImNvbmNhdCIsInVuZW5jb2RlZCIsImVuY29kZSIsImVuY29kZUVkMjU1MTlQdWJsaWNLZXkiLCJwdWJLZXlUb0FkZHJlc3MiLCJwdWJsaWNLZXkiLCJwdWJLZXkiLCJsZW5ndGgiLCJzbGljZSIsInB1YktleUJ1ZiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFDQTs7QUFFQTs7Ozs7Ozs7QUFIQTtBQUtBLElBQU1BLE1BQU0sR0FBR0MsT0FBTyxDQUFDLFdBQUQsQ0FBdEI7O0FBRUEsU0FBU0MsaUJBQVQsQ0FBMkJDLE9BQTNCLEVBQTRDO0FBQzFDO0FBQ0E7QUFDQSxNQUFNQyxRQUFRLEdBQUdDLE1BQU0sQ0FBQ0MsV0FBUCxDQUFtQixDQUFuQixDQUFqQjtBQUNBRixFQUFBQSxRQUFRLENBQUNHLGFBQVQsQ0FBdUJDLGdCQUFJQyxXQUFKLENBQWdCTixPQUFoQixDQUF2QixFQUFpRCxDQUFqRDtBQUNBLFNBQU9DLFFBQVA7QUFDRDs7QUFFTSxTQUFTTSxXQUFULENBQXFCQyxlQUFyQixFQUE4REMsSUFBOUQsRUFBNEU7QUFDakYsTUFBTUMsV0FBVyxHQUFHQyxNQUFNLENBQUNDLGFBQVAsQ0FBcUJKLGVBQXJCLENBQXBCO0FBRUEsTUFBTUssYUFBYSxHQUFHWCxNQUFNLENBQUNZLElBQVAsQ0FBWSxDQUFDSixXQUFELENBQVosQ0FBdEI7QUFDQSxNQUFNVixPQUFPLEdBQUdFLE1BQU0sQ0FBQ2EsTUFBUCxDQUFjLENBQUNGLGFBQUQsRUFBZ0JKLElBQWhCLENBQWQsQ0FBaEI7QUFDQSxNQUFNUixRQUFRLEdBQUdGLGlCQUFpQixDQUFDQyxPQUFELENBQWxDO0FBQ0EsTUFBTWdCLFNBQVMsR0FBR2QsTUFBTSxDQUFDYSxNQUFQLENBQWMsQ0FBQ2YsT0FBRCxFQUFVQyxRQUFWLENBQWQsQ0FBbEI7QUFFQSxTQUFPSixNQUFNLENBQUNvQixNQUFQLENBQWNELFNBQWQsQ0FBUDtBQUNEOztBQUVNLFNBQVNFLHNCQUFULENBQWdDVCxJQUFoQyxFQUE4QztBQUNuRCxTQUFPRixXQUFXLENBQUMsa0JBQUQsRUFBcUJFLElBQXJCLENBQWxCO0FBQ0Q7O0FBRU0sU0FBU1UsZUFBVCxDQUF5QkMsU0FBekIsRUFBb0Q7QUFDekQsTUFBTUMsTUFBTSxHQUFHRCxTQUFTLENBQUNFLE1BQVYsS0FBcUIsRUFBckIsR0FBMEJGLFNBQVMsQ0FBQ0csS0FBVixDQUFnQixDQUFoQixDQUExQixHQUErQ0gsU0FBOUQ7QUFFQSxNQUFNSSxTQUFTLEdBQUd0QixNQUFNLENBQUNZLElBQVAsQ0FBWU8sTUFBWixFQUFvQixLQUFwQixDQUFsQjtBQUNBLFNBQU9ILHNCQUFzQixDQUFDTSxTQUFELENBQTdCO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1iaXR3aXNlICovXG5pbXBvcnQgY3JjIGZyb20gJ2NyYyc7XG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuLi9jb25maWcvdHlwZXMnO1xuaW1wb3J0ICogYXMgcGFyYW1zIGZyb20gJy4uL2NvbmZpZy9wYXJhbXMnO1xuXG5jb25zdCBiYXNlMzIgPSByZXF1aXJlKCdiYXNlMzIuanMnKTtcblxuZnVuY3Rpb24gY2FsY3VsYXRlQ2hlY2tzdW0ocGF5bG9hZDogQnVmZmVyKSB7XG4gIC8vIFRoaXMgY29kZSBjYWxjdWxhdGVzIENSQzE2LVhNb2RlbSBjaGVja3N1bSBvZiBwYXlsb2FkXG4gIC8vIGFuZCByZXR1cm5zIGl0IGFzIEJ1ZmZlciBpbiBsaXR0bGUtZW5kaWFuIG9yZGVyLlxuICBjb25zdCBjaGVja3N1bSA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSgyKTtcbiAgY2hlY2tzdW0ud3JpdGVVSW50MTZMRShjcmMuY3JjMTZ4bW9kZW0ocGF5bG9hZCksIDApO1xuICByZXR1cm4gY2hlY2tzdW07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVDaGVjayh2ZXJzaW9uQnl0ZU5hbWU6IHR5cGVzLnZlcnNpb25CeXRlTmFtZXMsIGRhdGE6IEJ1ZmZlcikge1xuICBjb25zdCB2ZXJzaW9uQnl0ZSA9IHBhcmFtcy5WRVJTSU9OX0JZVEVTW3ZlcnNpb25CeXRlTmFtZV07XG5cbiAgY29uc3QgdmVyc2lvbkJ1ZmZlciA9IEJ1ZmZlci5mcm9tKFt2ZXJzaW9uQnl0ZV0pO1xuICBjb25zdCBwYXlsb2FkID0gQnVmZmVyLmNvbmNhdChbdmVyc2lvbkJ1ZmZlciwgZGF0YV0pO1xuICBjb25zdCBjaGVja3N1bSA9IGNhbGN1bGF0ZUNoZWNrc3VtKHBheWxvYWQpO1xuICBjb25zdCB1bmVuY29kZWQgPSBCdWZmZXIuY29uY2F0KFtwYXlsb2FkLCBjaGVja3N1bV0pO1xuXG4gIHJldHVybiBiYXNlMzIuZW5jb2RlKHVuZW5jb2RlZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVFZDI1NTE5UHVibGljS2V5KGRhdGE6IEJ1ZmZlcikge1xuICByZXR1cm4gZW5jb2RlQ2hlY2soJ2VkMjU1MTlQdWJsaWNLZXknLCBkYXRhKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHB1YktleVRvQWRkcmVzcyhwdWJsaWNLZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHB1YktleSA9IHB1YmxpY0tleS5sZW5ndGggPT09IDY2ID8gcHVibGljS2V5LnNsaWNlKDIpIDogcHVibGljS2V5O1xuXG4gIGNvbnN0IHB1YktleUJ1ZiA9IEJ1ZmZlci5mcm9tKHB1YktleSwgJ2hleCcpO1xuICByZXR1cm4gZW5jb2RlRWQyNTUxOVB1YmxpY0tleShwdWJLZXlCdWYpO1xufVxuIl19