@coolwallet/sol
Version:
Coolwallet Solana sdk
108 lines (105 loc) • 12.8 kB
JavaScript
;
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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