UNPKG

@coolwallets/bnb

Version:

Binance API for CoolWalletS

58 lines (43 loc) 5.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.publicKeyToAddress = publicKeyToAddress; exports.combineSignature = combineSignature; exports.convertObjectToSignBytes = void 0; var _crypto = _interopRequireDefault(require("crypto")); var _bech = _interopRequireDefault(require("bech32")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { 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); } function publicKeyToAddress(publicKey) { var hash = sha256ripemd160(publicKey); return encodeAddress(hash); } function encodeAddress(value) { var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'bnb'; var words = _bech["default"].toWords(value); return _bech["default"].encode(prefix, words); } function sha256ripemd160(publicKey) { var hash = _crypto["default"].createHash('SHA256').update(Buffer.from(publicKey, 'hex')).digest(); return _crypto["default"].createHash('ripemd160').update(hash).digest(); } function sortObject(obj) { if (obj === null) return null; if (_typeof(obj) !== 'object') return obj; if (Array.isArray(obj)) return obj.map(sortObject); var sortedKeys = Object.keys(obj).sort(); var result = {}; sortedKeys.forEach(function (key) { result[key] = sortObject(obj[key]); }); return result; } var convertObjectToSignBytes = function convertObjectToSignBytes(obj) { return Buffer.from(JSON.stringify(sortObject(obj))); }; exports.convertObjectToSignBytes = convertObjectToSignBytes; function combineSignature(canonicalSignature) { return canonicalSignature.r + canonicalSignature.s; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbInB1YmxpY0tleVRvQWRkcmVzcyIsInB1YmxpY0tleSIsImhhc2giLCJzaGEyNTZyaXBlbWQxNjAiLCJlbmNvZGVBZGRyZXNzIiwidmFsdWUiLCJwcmVmaXgiLCJ3b3JkcyIsImJlY2gzMiIsInRvV29yZHMiLCJlbmNvZGUiLCJjcnlwdG8iLCJjcmVhdGVIYXNoIiwidXBkYXRlIiwiQnVmZmVyIiwiZnJvbSIsImRpZ2VzdCIsInNvcnRPYmplY3QiLCJvYmoiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJzb3J0ZWRLZXlzIiwiT2JqZWN0Iiwia2V5cyIsInNvcnQiLCJyZXN1bHQiLCJmb3JFYWNoIiwia2V5IiwiY29udmVydE9iamVjdFRvU2lnbkJ5dGVzIiwiSlNPTiIsInN0cmluZ2lmeSIsImNvbWJpbmVTaWduYXR1cmUiLCJjYW5vbmljYWxTaWduYXR1cmUiLCJyIiwicyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7Ozs7OztBQUVPLFNBQVNBLGtCQUFULENBQTRCQyxTQUE1QixFQUErQztBQUNwRCxNQUFNQyxJQUFJLEdBQUdDLGVBQWUsQ0FBQ0YsU0FBRCxDQUE1QjtBQUNBLFNBQU9HLGFBQWEsQ0FBQ0YsSUFBRCxDQUFwQjtBQUNEOztBQUVELFNBQVNFLGFBQVQsQ0FBdUJDLEtBQXZCLEVBQXFEO0FBQUEsTUFBaEJDLE1BQWdCLHVFQUFQLEtBQU87O0FBQ25ELE1BQU1DLEtBQUssR0FBR0MsaUJBQU9DLE9BQVAsQ0FBZUosS0FBZixDQUFkOztBQUNBLFNBQU9HLGlCQUFPRSxNQUFQLENBQWNKLE1BQWQsRUFBc0JDLEtBQXRCLENBQVA7QUFDRDs7QUFFRCxTQUFTSixlQUFULENBQXlCRixTQUF6QixFQUFtRDtBQUNqRCxNQUFNQyxJQUFJLEdBQUdTLG1CQUFPQyxVQUFQLENBQWtCLFFBQWxCLEVBQTRCQyxNQUE1QixDQUFtQ0MsTUFBTSxDQUFDQyxJQUFQLENBQVlkLFNBQVosRUFBdUIsS0FBdkIsQ0FBbkMsRUFBa0VlLE1BQWxFLEVBQWI7O0FBQ0EsU0FBT0wsbUJBQU9DLFVBQVAsQ0FBa0IsV0FBbEIsRUFBK0JDLE1BQS9CLENBQXNDWCxJQUF0QyxFQUE0Q2MsTUFBNUMsRUFBUDtBQUNEOztBQUVELFNBQVNDLFVBQVQsQ0FBb0JDLEdBQXBCLEVBQW1DO0FBQ2pDLE1BQUlBLEdBQUcsS0FBSyxJQUFaLEVBQWtCLE9BQU8sSUFBUDtBQUNsQixNQUFJLFFBQU9BLEdBQVAsTUFBZSxRQUFuQixFQUE2QixPQUFPQSxHQUFQO0FBRTdCLE1BQUlDLEtBQUssQ0FBQ0MsT0FBTixDQUFjRixHQUFkLENBQUosRUFBd0IsT0FBT0EsR0FBRyxDQUFDRyxHQUFKLENBQVFKLFVBQVIsQ0FBUDtBQUN4QixNQUFNSyxVQUFVLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZTixHQUFaLEVBQWlCTyxJQUFqQixFQUFuQjtBQUNBLE1BQU1DLE1BQU0sR0FBRyxFQUFmO0FBQ0FKLEVBQUFBLFVBQVUsQ0FBQ0ssT0FBWCxDQUFtQixVQUFDQyxHQUFELEVBQVM7QUFDekJGLElBQUFBLE1BQUQsQ0FBZ0JFLEdBQWhCLElBQXVCWCxVQUFVLENBQUNDLEdBQUcsQ0FBQ1UsR0FBRCxDQUFKLENBQWpDO0FBQ0QsR0FGRDtBQUdBLFNBQU9GLE1BQVA7QUFDRDs7QUFFTSxJQUFNRyx3QkFBd0IsR0FBRyxTQUEzQkEsd0JBQTJCLENBQUNYLEdBQUQ7QUFBQSxTQUFjSixNQUFNLENBQUNDLElBQVAsQ0FBWWUsSUFBSSxDQUFDQyxTQUFMLENBQWVkLFVBQVUsQ0FBQ0MsR0FBRCxDQUF6QixDQUFaLENBQWQ7QUFBQSxDQUFqQzs7OztBQUVBLFNBQVNjLGdCQUFULENBQTBCQyxrQkFBMUIsRUFBMkQ7QUFDaEUsU0FBT0Esa0JBQWtCLENBQUNDLENBQW5CLEdBQXVCRCxrQkFBa0IsQ0FBQ0UsQ0FBakQ7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcnlwdG8gZnJvbSAnY3J5cHRvJztcbmltcG9ydCBiZWNoMzIgZnJvbSAnYmVjaDMyJztcblxuZXhwb3J0IGZ1bmN0aW9uIHB1YmxpY0tleVRvQWRkcmVzcyhwdWJsaWNLZXk6IHN0cmluZykge1xuICBjb25zdCBoYXNoID0gc2hhMjU2cmlwZW1kMTYwKHB1YmxpY0tleSk7XG4gIHJldHVybiBlbmNvZGVBZGRyZXNzKGhhc2gpO1xufVxuXG5mdW5jdGlvbiBlbmNvZGVBZGRyZXNzKHZhbHVlOkJ1ZmZlciwgcHJlZml4ID0gJ2JuYicpIHtcbiAgY29uc3Qgd29yZHMgPSBiZWNoMzIudG9Xb3Jkcyh2YWx1ZSk7XG4gIHJldHVybiBiZWNoMzIuZW5jb2RlKHByZWZpeCwgd29yZHMpO1xufVxuXG5mdW5jdGlvbiBzaGEyNTZyaXBlbWQxNjAocHVibGljS2V5OnN0cmluZyk6IEJ1ZmZlciB7XG4gIGNvbnN0IGhhc2ggPSBjcnlwdG8uY3JlYXRlSGFzaCgnU0hBMjU2JykudXBkYXRlKEJ1ZmZlci5mcm9tKHB1YmxpY0tleSwgJ2hleCcpKS5kaWdlc3QoKTtcbiAgcmV0dXJuIGNyeXB0by5jcmVhdGVIYXNoKCdyaXBlbWQxNjAnKS51cGRhdGUoaGFzaCkuZGlnZXN0KCk7XG59XG5cbmZ1bmN0aW9uIHNvcnRPYmplY3Qob2JqOiBhbnkpOiBhbnkge1xuICBpZiAob2JqID09PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgaWYgKHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSByZXR1cm4gb2JqO1xuXG4gIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHJldHVybiBvYmoubWFwKHNvcnRPYmplY3QpO1xuICBjb25zdCBzb3J0ZWRLZXlzID0gT2JqZWN0LmtleXMob2JqKS5zb3J0KCk7XG4gIGNvbnN0IHJlc3VsdCA9IHt9O1xuICBzb3J0ZWRLZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgIChyZXN1bHQgYXMgYW55KVtrZXldID0gc29ydE9iamVjdChvYmpba2V5XSk7XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgY29uc3QgY29udmVydE9iamVjdFRvU2lnbkJ5dGVzID0gKG9iajogYW55KSA9PiBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShzb3J0T2JqZWN0KG9iaikpKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVTaWduYXR1cmUoY2Fub25pY2FsU2lnbmF0dXJlOiBhbnkpOiBzdHJpbmcge1xuICByZXR1cm4gY2Fub25pY2FsU2lnbmF0dXJlLnIgKyBjYW5vbmljYWxTaWduYXR1cmUucztcbn1cbiJdfQ==