@coolwallet/xlm
Version:
Coolwallet Stella sdk
112 lines (86 loc) • 12.5 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.getScriptAndArguments = void 0;
var _core = require("@coolwallet/core");
var _bignumber = _interopRequireDefault(require("bignumber.js"));
var params = _interopRequireWildcard(require("../config/params"));
var Stellar = _interopRequireWildcard(require("stellar-sdk"));
var _types = require("../config/types");
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 }; }
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
var getTransferArgument = function getTransferArgument(transaction) {
var isCreate = transaction.isCreate ? '00' : '01';
var memoType;
var memo = transaction.memo;
switch (transaction.memoType) {
case Stellar.MemoHash:
memoType = '03';
break;
case Stellar.MemoReturn:
memoType = '04';
break;
case Stellar.MemoText:
memoType = '01';
memo = Buffer.from(memo, 'ascii').toString('hex');
break;
case Stellar.MemoID:
memoType = '02';
memo = parseInt(memo).toString(16);
break;
case Stellar.MemoNone:
default:
memoType = '00';
break;
}
var minTime = transaction.minTime ? transaction.minTime : '0';
var maxTime = transaction.maxTime ? transaction.maxTime : '0';
var argument = transaction.from + transaction.to + parseInt(transaction.amount).toString(16).padStart(16, '0') + parseInt(transaction.fee).toString(16).padStart(16, '0') + new _bignumber["default"](transaction.sequence).toString(16).padStart(16, '0') + parseInt(minTime).toString(16).padStart(16, '0') + parseInt(maxTime).toString(16).padStart(16, '0') + memoType.padStart(2, '0') + //memoType
memo.padStart(64, '0') + //memo
isCreate.padStart(2, '0'); //isCreate
console.debug('argument:' + argument);
return argument;
};
/**
* TODO
* @param {number} addressIndex
* @param {*} transaction
*/
var getScriptAndArguments = /*#__PURE__*/function () {
var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(transaction, transfer, protocol) {
var pathType, path, SEPath, script, argument;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
pathType = protocol === _types.PROTOCOL.BIP44 ? _core.config.PathType.BIP32EDDSA : _core.config.PathType.SLIP0010;
_context.next = 3;
return _core.utils.getPath(params.COIN_TYPE, 0, 3, pathType);
case 3:
path = _context.sent;
SEPath = "0D".concat(path);
console.debug('SEPath: ', SEPath);
script = transfer.script + transfer.signature;
argument = getTransferArgument(transaction);
return _context.abrupt("return", {
script: script,
argument: SEPath + argument
});
case 9:
case "end":
return _context.stop();
}
}
}, _callee);
}));
return function getScriptAndArguments(_x, _x2, _x3) {
return _ref.apply(this, arguments);
};
}();
exports.getScriptAndArguments = getScriptAndArguments;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9zY3JpcHRVdGlsLnRzIl0sIm5hbWVzIjpbImdldFRyYW5zZmVyQXJndW1lbnQiLCJ0cmFuc2FjdGlvbiIsImlzQ3JlYXRlIiwibWVtb1R5cGUiLCJtZW1vIiwiU3RlbGxhciIsIk1lbW9IYXNoIiwiTWVtb1JldHVybiIsIk1lbW9UZXh0IiwiQnVmZmVyIiwiZnJvbSIsInRvU3RyaW5nIiwiTWVtb0lEIiwicGFyc2VJbnQiLCJNZW1vTm9uZSIsIm1pblRpbWUiLCJtYXhUaW1lIiwiYXJndW1lbnQiLCJ0byIsImFtb3VudCIsInBhZFN0YXJ0IiwiZmVlIiwiQmlnTnVtYmVyIiwic2VxdWVuY2UiLCJjb25zb2xlIiwiZGVidWciLCJnZXRTY3JpcHRBbmRBcmd1bWVudHMiLCJ0cmFuc2ZlciIsInByb3RvY29sIiwicGF0aFR5cGUiLCJQUk9UT0NPTCIsIkJJUDQ0IiwiY29uZmlnIiwiUGF0aFR5cGUiLCJCSVAzMkVERFNBIiwiU0xJUDAwMTAiLCJ1dGlscyIsImdldFBhdGgiLCJwYXJhbXMiLCJDT0lOX1RZUEUiLCJwYXRoIiwiU0VQYXRoIiwic2NyaXB0Iiwic2lnbmF0dXJlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7O0FBRUEsSUFBTUEsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFzQixDQUFDQyxXQUFELEVBQXNCO0FBQ2hELE1BQU1DLFFBQVEsR0FBR0QsV0FBVyxDQUFDQyxRQUFaLEdBQXVCLElBQXZCLEdBQThCLElBQS9DO0FBQ0EsTUFBSUMsUUFBSjtBQUNBLE1BQUlDLElBQUksR0FBR0gsV0FBVyxDQUFDRyxJQUF2Qjs7QUFDQSxVQUFRSCxXQUFXLENBQUNFLFFBQXBCO0FBQ0UsU0FBS0UsT0FBTyxDQUFDQyxRQUFiO0FBQ0VILE1BQUFBLFFBQVEsR0FBRyxJQUFYO0FBQ0E7O0FBQ0YsU0FBS0UsT0FBTyxDQUFDRSxVQUFiO0FBQ0VKLE1BQUFBLFFBQVEs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QUNNQyxZQUFBQSxNQVRzQixHQVNiZixRQUFRLENBQUNlLE1BQVQsR0FBa0JmLFFBQVEsQ0FBQ2dCLFNBVGQ7QUFVdEIxQixZQUFBQSxRQVZzQixHQVVYakIsbUJBQW1CLENBQUNDLFdBQUQsQ0FWUjtBQUFBLDZDQVlyQjtBQUNMeUMsY0FBQUEsTUFBTSxFQUFOQSxNQURLO0FBRUx6QixjQUFBQSxRQUFRLEVBQUV3QixNQUFNLEdBQUd4QjtBQUZkLGFBWnFCOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEdBQUg7O0FBQUEsa0JBQXJCUyxxQkFBcUI7QUFBQTtBQUFBO0FBQUEsR0FBM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1dGlscywgY29uZmlnIH0gZnJvbSAnQGNvb2x3YWxsZXQvY29yZSc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgKiBhcyBwYXJhbXMgZnJvbSAnLi4vY29uZmlnL3BhcmFtcyc7XG5pbXBvcnQgKiBhcyBTdGVsbGFyIGZyb20gJ3N0ZWxsYXItc2RrJztcbmltcG9ydCB7IFBST1RPQ09MIH0gZnJvbSAnLi4vY29uZmlnL3R5cGVzJztcblxuY29uc3QgZ2V0VHJhbnNmZXJBcmd1bWVudCA9ICh0cmFuc2FjdGlvbjogYW55KSA9PiB7XG4gIGNvbnN0IGlzQ3JlYXRlID0gdHJhbnNhY3Rpb24uaXNDcmVhdGUgPyAnMDAnIDogJzAxJztcbiAgbGV0IG1lbW9UeXBlO1xuICBsZXQgbWVtbyA9IHRyYW5zYWN0aW9uLm1lbW87XG4gIHN3aXRjaCAodHJhbnNhY3Rpb24ubWVtb1R5cGUpIHtcbiAgICBjYXNlIFN0ZWxsYXIuTWVtb0hhc2g6XG4gICAgICBtZW1vVHlwZSA9ICcwMyc7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFN0ZWxsYXIuTWVtb1JldHVybjpcbiAgICAgIG1lbW9UeXBlID0gJzA0JztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgU3RlbGxhci5NZW1vVGV4dDpcbiAgICAgIG1lbW9UeXBlID0gJzAxJztcbiAgICAgIG1lbW8gPSBCdWZmZXIuZnJvbShtZW1vLCAnYXNjaWknKS50b1N0cmluZygnaGV4Jyk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFN0ZWxsYXIuTWVtb0lEOlxuICAgICAgbWVtb1R5cGUgPSAnMDInO1xuICAgICAgbWVtbyA9IHBhcnNlSW50KG1lbW8pLnRvU3RyaW5nKDE2KTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgU3RlbGxhci5NZW1vTm9uZTpcbiAgICBkZWZhdWx0OlxuICAgICAgbWVtb1R5cGUgPSAnMDAnO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICBjb25zdCBtaW5UaW1lID0gdHJhbnNhY3Rpb24ubWluVGltZSA/IHRyYW5zYWN0aW9uLm1pblRpbWUgOiAnMCc7XG4gIGNvbnN0IG1heFRpbWUgPSB0cmFuc2FjdGlvbi5tYXhUaW1lID8gdHJhbnNhY3Rpb24ubWF4VGltZSA6ICcwJztcblxuICBjb25zdCBhcmd1bWVudCA9XG4gICAgdHJhbnNhY3Rpb24uZnJvbSArXG4gICAgdHJhbnNhY3Rpb24udG8gK1xuICAgIHBhcnNlSW50KHRyYW5zYWN0aW9uLmFtb3VudCkudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDE2LCAnMCcpICtcbiAgICBwYXJzZUludCh0cmFuc2FjdGlvbi5mZWUpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgxNiwgJzAnKSArXG4gICAgbmV3IEJpZ051bWJlcih0cmFuc2FjdGlvbi5zZXF1ZW5jZSkudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDE2LCAnMCcpICtcbiAgICBwYXJzZUludChtaW5UaW1lKS50b1N0cmluZygxNikucGFkU3RhcnQoMTYsICcwJykgK1xuICAgIHBhcnNlSW50KG1heFRpbWUpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgxNiwgJzAnKSArXG4gICAgbWVtb1R5cGUucGFkU3RhcnQoMiwgJzAnKSArIC8vbWVtb1R5cGVcbiAgICBtZW1vLnBhZFN0YXJ0KDY0LCAnMCcpICsgLy9tZW1vXG4gICAgaXNDcmVhdGUucGFkU3RhcnQoMiwgJzAnKTsgLy9pc0NyZWF0ZVxuXG4gIGNvbnNvbGUuZGVidWcoJ2FyZ3VtZW50OicgKyBhcmd1bWVudCk7XG4gIHJldHVybiBhcmd1bWVudDtcbn07XG5cbi8qKlxuICogVE9ET1xuICogQHBhcmFtIHtudW1iZXJ9IGFkZHJlc3NJbmRleFxuICogQHBhcmFtIHsqfSB0cmFuc2FjdGlvblxuICovXG5jb25zdCBnZXRTY3JpcHRBbmRBcmd1bWVudHMgPSBhc3luYyAoXG4gIHRyYW5zYWN0aW9uOiBvYmplY3QsXG4gIHRyYW5zZmVyOiB7IHNjcmlwdDogc3RyaW5nOyBzaWduYXR1cmU6IHN0cmluZyB9LFxuICBwcm90b2NvbDogUFJPVE9DT0xcbikgPT4ge1xuICBjb25zdCBwYXRoVHlwZSA9IHByb3RvY29sID09PSBQUk9UT0NPTC5CSVA0NCA/IGNvbmZpZy5QYXRoVHlwZS5CSVAzMkVERFNBIDogY29uZmlnLlBhdGhUeXBlLlNMSVAwMDEwO1xuICBjb25zdCBwYXRoID0gYXdhaXQgdXRpbHMuZ2V0UGF0aChwYXJhbXMuQ09JTl9UWVBFLCAwLCAzLCBwYXRoVHlwZSk7XG4gIGNvbnN0IFNFUGF0aCA9IGAwRCR7cGF0aH1gO1xuICBjb25zb2xlLmRlYnVnKCdTRVBhdGg6ICcsIFNFUGF0aCk7XG4gIGNvbnN0IHNjcmlwdCA9IHRyYW5zZmVyLnNjcmlwdCArIHRyYW5zZmVyLnNpZ25hdHVyZTtcbiAgY29uc3QgYXJndW1lbnQgPSBnZXRUcmFuc2ZlckFyZ3VtZW50KHRyYW5zYWN0aW9uKTtcblxuICByZXR1cm4ge1xuICAgIHNjcmlwdCxcbiAgICBhcmd1bWVudDogU0VQYXRoICsgYXJndW1lbnQsXG4gIH07XG59O1xuXG5leHBvcnQgeyBnZXRTY3JpcHRBbmRBcmd1bWVudHMgfTtcbiJdfQ==