UNPKG

@coolwallet/sol

Version:
108 lines (105 loc) 12.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createSignInMessage = createSignInMessage; exports.createSignInMessageText = createSignInMessageText; function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } function createSignInMessageText(input) { // ${domain} wants you to sign in with your Solana account: // ${address} // // ${statement} // // URI: ${uri} // Version: ${version} // Chain ID: ${chain} // Nonce: ${nonce} // Issued At: ${issued-at} // Expiration Time: ${expiration-time} // Not Before: ${not-before} // Request ID: ${request-id} // Resources: // - ${resources[0]} // - ${resources[1]} // ... // - ${resources[n]} // The following data are provided by Java Card // ` wants you to sign in with your Solana account:\n`; // `${input.address}`; var optionalMessage = ''; if (input.statement) { optionalMessage += "\n\n".concat(input.statement); } var fields = []; if (input.uri) { fields.push("URI: ".concat(input.uri)); } if (input.version) { fields.push("Version: ".concat(input.version)); } if (input.chainId) { fields.push("Chain ID: ".concat(input.chainId)); } if (input.nonce) { fields.push("Nonce: ".concat(input.nonce)); } if (input.issuedAt) { fields.push("Issued At: ".concat(input.issuedAt)); } if (input.expirationTime) { fields.push("Expiration Time: ".concat(input.expirationTime)); } if (input.notBefore) { fields.push("Not Before: ".concat(input.notBefore)); } if (input.requestId) { fields.push("Request ID: ".concat(input.requestId)); } if (input.resources) { fields.push("Resources:"); var _iterator = _createForOfIteratorHelper(input.resources), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var resource = _step.value; fields.push("- ".concat(resource)); } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } } if (fields.length) { optionalMessage += "\n\n".concat(fields.join('\n')); } return { domain: input.domain, optionalMessage: optionalMessage }; } function createSignInMessage(input, path) { var _createSignInMessageT = createSignInMessageText(input), domain = _createSignInMessageT.domain, optionalMessage = _createSignInMessageT.optionalMessage; var domainLength = domain.length; var optionalMessageLength = optionalMessage.length; if (domainLength > 255) { throw new Error('Domain is too long'); } if (optionalMessageLength > 2048) { throw new Error('Signing message is too long'); } var domainLengthPrefix = String.fromCharCode(domainLength); var optionalMessageLengthPrefix = String.fromCharCode(optionalMessageLength); var message = Buffer.from(domainLengthPrefix, 'utf8').toString('hex'); message += Buffer.from(domain, 'utf8').toString('hex').padEnd(256, '0'); message += Buffer.from(optionalMessageLengthPrefix, 'utf8').toString('hex').padStart(4, '0'); message += Buffer.from(optionalMessage, 'utf8').toString('hex').padEnd(2048, '0'); message += path; return message; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVTaWduSW5NZXNzYWdlVGV4dCIsImlucHV0Iiwib3B0aW9uYWxNZXNzYWdlIiwic3RhdGVtZW50IiwiY29uY2F0IiwiZmllbGRzIiwidXJpIiwicHVzaCIsInZlcnNpb24iLCJjaGFpbklkIiwibm9uY2UiLCJpc3N1ZWRBdCIsImV4cGlyYXRpb25UaW1lIiwibm90QmVmb3JlIiwicmVxdWVzdElkIiwicmVzb3VyY2VzIiwiX2l0ZXJhdG9yIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJfc3RlcCIsInMiLCJuIiwiZG9uZSIsInJlc291cmNlIiwidmFsdWUiLCJlcnIiLCJlIiwiZiIsImxlbmd0aCIsImpvaW4iLCJkb21haW4iLCJjcmVhdGVTaWduSW5NZXNzYWdlIiwicGF0aCIsIl9jcmVhdGVTaWduSW5NZXNzYWdlVCIsImRvbWFpbkxlbmd0aCIsIm9wdGlvbmFsTWVzc2FnZUxlbmd0aCIsIkVycm9yIiwiZG9tYWluTGVuZ3RoUHJlZml4IiwiU3RyaW5nIiwiZnJvbUNoYXJDb2RlIiwib3B0aW9uYWxNZXNzYWdlTGVuZ3RoUHJlZml4IiwibWVzc2FnZSIsIkJ1ZmZlciIsImZyb20iLCJ0b1N0cmluZyIsInBhZEVuZCIsInBhZFN0YXJ0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3NpZ25Jbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlcyB9IGZyb20gJy4uJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNpZ25Jbk1lc3NhZ2VUZXh0KGlucHV0OiB0eXBlcy5TaWduSW5NZXNzYWdlKTogeyBkb21haW46IHN0cmluZzsgb3B0aW9uYWxNZXNzYWdlOiBzdHJpbmcgfSB7XG4gIC8vICR7ZG9tYWlufSB3YW50cyB5b3UgdG8gc2lnbiBpbiB3aXRoIHlvdXIgU29sYW5hIGFjY291bnQ6XG4gIC8vICR7YWRkcmVzc31cbiAgLy9cbiAgLy8gJHtzdGF0ZW1lbnR9XG4gIC8vXG4gIC8vIFVSSTogJHt1cml9XG4gIC8vIFZlcnNpb246ICR7dmVyc2lvbn1cbiAgLy8gQ2hhaW4gSUQ6ICR7Y2hhaW59XG4gIC8vIE5vbmNlOiAke25vbmNlfVxuICAvLyBJc3N1ZWQgQXQ6ICR7aXNzdWVkLWF0fVxuICAvLyBFeHBpcmF0aW9uIFRpbWU6ICR7ZXhwaXJhdGlvbi10aW1lfVxuICAvLyBOb3QgQmVmb3JlOiAke25vdC1iZWZvcmV9XG4gIC8vIFJlcXVlc3QgSUQ6ICR7cmVxdWVzdC1pZH1cbiAgLy8gUmVzb3VyY2VzOlxuICAvLyAtICR7cmVzb3VyY2VzWzBdfVxuICAvLyAtICR7cmVzb3VyY2VzWzFdfVxuICAvLyAuLi5cbiAgLy8gLSAke3Jlc291cmNlc1tuXX1cblxuICAvLyBUaGUgZm9sbG93aW5nIGRhdGEgYXJlIHByb3ZpZGVkIGJ5IEphdmEgQ2FyZFxuICAvLyBgIHdhbnRzIHlvdSB0byBzaWduIGluIHdpdGggeW91ciBTb2xhbmEgYWNjb3VudDpcXG5gO1xuICAvLyBgJHtpbnB1dC5hZGRyZXNzfWA7XG5cbiAgbGV0IG9wdGlvbmFsTWVzc2FnZSA9ICcnO1xuXG4gIGlmIChpbnB1dC5zdGF0ZW1lbnQpIHtcbiAgICBvcHRpb25hbE1lc3NhZ2UgKz0gYFxcblxcbiR7aW5wdXQuc3RhdGVtZW50fWA7XG4gIH1cblxuICBjb25zdCBmaWVsZHM6IHN0cmluZ1tdID0gW107XG4gIGlmIChpbnB1dC51cmkpIHtcbiAgICBmaWVsZHMucHVzaChgVVJJOiAke2lucHV0LnVyaX1gKTtcbiAgfVxuICBpZiAoaW5wdXQudmVyc2lvbikge1xuICAgIGZpZWxkcy5wdXNoKGBWZXJzaW9uOiAke2lucHV0LnZlcnNpb259YCk7XG4gIH1cbiAgaWYgKGlucHV0LmNoYWluSWQpIHtcbiAgICBmaWVsZHMucHVzaChgQ2hhaW4gSUQ6ICR7aW5wdXQuY2hhaW5JZH1gKTtcbiAgfVxuICBpZiAoaW5wdXQubm9uY2UpIHtcbiAgICBmaWVsZHMucHVzaChgTm9uY2U6ICR7aW5wdXQubm9uY2V9YCk7XG4gIH1cbiAgaWYgKGlucHV0Lmlzc3VlZEF0KSB7XG4gICAgZmllbGRzLnB1c2goYElzc3VlZCBBdDogJHtpbnB1dC5pc3N1ZWRBdH1gKTtcbiAgfVxuICBpZiAoaW5wdXQuZXhwaXJhdGlvblRpbWUpIHtcbiAgICBmaWVsZHMucHVzaChgRXhwaXJhdGlvbiBUaW1lOiAke2lucHV0LmV4cGlyYXRpb25UaW1lfWApO1xuICB9XG4gIGlmIChpbnB1dC5ub3RCZWZvcmUpIHtcbiAgICBmaWVsZHMucHVzaChgTm90IEJlZm9yZTogJHtpbnB1dC5ub3RCZWZvcmV9YCk7XG4gIH1cbiAgaWYgKGlucHV0LnJlcXVlc3RJZCkge1xuICAgIGZpZWxkcy5wdXNoKGBSZXF1ZXN0IElEOiAke2lucHV0LnJlcXVlc3RJZH1gKTtcbiAgfVxuICBpZiAoaW5wdXQucmVzb3VyY2VzKSB7XG4gICAgZmllbGRzLnB1c2goYFJlc291cmNlczpgKTtcbiAgICBmb3IgKGNvbnN0IHJlc291cmNlIG9mIGlucHV0LnJlc291cmNlcykge1xuICAgICAgZmllbGRzLnB1c2goYC0gJHtyZXNvdXJjZX1gKTtcbiAgICB9XG4gIH1cbiAgaWYgKGZpZWxkcy5sZW5ndGgpIHtcbiAgICBvcHRpb25hbE1lc3NhZ2UgKz0gYFxcblxcbiR7ZmllbGRzLmpvaW4oJ1xcbicpfWA7XG4gIH1cblxuICByZXR1cm4geyBkb21haW46IGlucHV0LmRvbWFpbiwgb3B0aW9uYWxNZXNzYWdlIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTaWduSW5NZXNzYWdlKGlucHV0OiB0eXBlcy5TaWduSW5NZXNzYWdlLCBwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCB7IGRvbWFpbiwgb3B0aW9uYWxNZXNzYWdlIH0gPSBjcmVhdGVTaWduSW5NZXNzYWdlVGV4dChpbnB1dCk7XG4gIGNvbnN0IGRvbWFpbkxlbmd0aCA9IGRvbWFpbi5sZW5ndGg7XG5cbiAgY29uc3Qgb3B0aW9uYWxNZXNzYWdlTGVuZ3RoID0gb3B0aW9uYWxNZXNzYWdlLmxlbmd0aDtcbiAgaWYgKGRvbWFpbkxlbmd0aCA+IDI1NSkge1xuICAgIHRocm93IG5ldyBFcnJvcignRG9tYWluIGlzIHRvbyBsb25nJyk7XG4gIH1cbiAgaWYgKG9wdGlvbmFsTWVzc2FnZUxlbmd0aCA+IDIwNDgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1NpZ25pbmcgbWVzc2FnZSBpcyB0b28gbG9uZycpO1xuICB9XG5cbiAgY29uc3QgZG9tYWluTGVuZ3RoUHJlZml4ID0gU3RyaW5nLmZyb21DaGFyQ29kZShkb21haW5MZW5ndGgpO1xuICBjb25zdCBvcHRpb25hbE1lc3NhZ2VMZW5ndGhQcmVmaXggPSBTdHJpbmcuZnJvbUNoYXJDb2RlKG9wdGlvbmFsTWVzc2FnZUxlbmd0aCk7XG5cbiAgbGV0IG1lc3NhZ2UgPSBCdWZmZXIuZnJvbShkb21haW5MZW5ndGhQcmVmaXgsICd1dGY4JykudG9TdHJpbmcoJ2hleCcpO1xuICBtZXNzYWdlICs9IEJ1ZmZlci5mcm9tKGRvbWFpbiwgJ3V0ZjgnKS50b1N0cmluZygnaGV4JykucGFkRW5kKDI1NiwgJzAnKTtcbiAgbWVzc2FnZSArPSBCdWZmZXIuZnJvbShvcHRpb25hbE1lc3NhZ2VMZW5ndGhQcmVmaXgsICd1dGY4JykudG9TdHJpbmcoJ2hleCcpLnBhZFN0YXJ0KDQsICcwJyk7XG4gIG1lc3NhZ2UgKz0gQnVmZmVyLmZyb20ob3B0aW9uYWxNZXNzYWdlLCAndXRmOCcpLnRvU3RyaW5nKCdoZXgnKS5wYWRFbmQoMjA0OCwgJzAnKTtcbiAgbWVzc2FnZSArPSBwYXRoO1xuICByZXR1cm4gbWVzc2FnZTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUVPLFNBQVNBLHVCQUF1QkEsQ0FBQ0MsS0FBMEIsRUFBK0M7RUFDL0c7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztFQUVBO0VBQ0E7RUFDQTs7RUFFQSxJQUFJQyxlQUFlLEdBQUcsRUFBRTtFQUV4QixJQUFJRCxLQUFLLENB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