@metamask/test-dapp
Version:
A simple dapp used in MetaMask e2e tests.
1 lines • 6.71 kB
JavaScript
(()=>{var __webpack_modules__={84004:()=>{eval("/**\n * Get the `main` section of the page, ensuring that it is the only\n * one present.\n */\nfunction getMainElement() {\n const mainElements = document.getElementsByTagName('main');\n\n if (mainElements.length === 0) {\n throw new Error('Main element not found');\n } else if (mainElements.length > 1) {\n throw new Error('Multiple main elements found');\n }\n return mainElements[0];\n}\n\n/**\n * Get request data from the query string.\n *\n * @returns {object} The request data.\n */\nfunction getRequestData() {\n const queryString = window.location.search;\n\n if (queryString.length === 0) {\n throw new Error('Request invalid: query string empty');\n }\n\n const searchParams = new URLSearchParams(queryString);\n const method = searchParams.get('method');\n\n if (method === null) {\n throw new Error('Request invalid: method not provided in query string');\n }\n\n const rawParams = searchParams.get('params');\n\n let params;\n if (rawParams !== null) {\n try {\n params = JSON.parse(rawParams);\n } catch (error) {\n throw new Error('Request invalid: failed to parse params', {\n cause: error,\n });\n }\n\n if (params === null) {\n throw new Error(`Request invalid: params parsed as null`);\n } else if (typeof params !== 'object') {\n throw new Error(\n `Request invalid: params parsed as type '${typeof params}'`,\n );\n }\n }\n\n const request = { method };\n if (params) {\n request.params = params;\n }\n return request;\n}\n\n/**\n * Run the request encoded in the query parameters.\n */\nasync function main() {\n const mainElement = getMainElement();\n\n /**\n * Log a message, and set it on the page.\n *\n * @param {string} message - The message to log and set on the page.\n */\n function logAndSet(message) {\n console.log(message);\n mainElement.innerText = message;\n }\n\n try {\n if (!window.ethereum) {\n throw new Error('Provider not found');\n }\n\n const requestData = getRequestData();\n\n logAndSet(`Sending request: ${JSON.stringify(requestData)}`);\n\n const result = await window.ethereum.request(requestData);\n\n logAndSet(`Response: ${JSON.stringify(result)}`);\n } catch (error) {\n mainElement.innerText = error.message || 'Unknown error';\n throw error;\n }\n}\n\nmain().catch(console.error);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODQwMDQuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLE9BQU87QUFDUDs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsbURBQW1ELGNBQWM7QUFDakU7QUFDQTtBQUNBOztBQUVBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsa0NBQWtDLDRCQUE0Qjs7QUFFOUQ7O0FBRUEsMkJBQTJCLHVCQUF1QjtBQUNsRCxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AbWV0YW1hc2svdGVzdC1kYXBwLy4vc3JjL3JlcXVlc3QuanM/MmFkZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdldCB0aGUgYG1haW5gIHNlY3Rpb24gb2YgdGhlIHBhZ2UsIGVuc3VyaW5nIHRoYXQgaXQgaXMgdGhlIG9ubHlcbiAqIG9uZSBwcmVzZW50LlxuICovXG5mdW5jdGlvbiBnZXRNYWluRWxlbWVudCgpIHtcbiAgY29uc3QgbWFpbkVsZW1lbnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ21haW4nKTtcblxuICBpZiAobWFpbkVsZW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignTWFpbiBlbGVtZW50IG5vdCBmb3VuZCcpO1xuICB9IGVsc2UgaWYgKG1haW5FbGVtZW50cy5sZW5ndGggPiAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNdWx0aXBsZSBtYWluIGVsZW1lbnRzIGZvdW5kJyk7XG4gIH1cbiAgcmV0dXJuIG1haW5FbGVtZW50c1swXTtcbn1cblxuLyoqXG4gKiBHZXQgcmVxdWVzdCBkYXRhIGZyb20gdGhlIHF1ZXJ5IHN0cmluZy5cbiAqXG4gKiBAcmV0dXJucyB7b2JqZWN0fSBUaGUgcmVxdWVzdCBkYXRhLlxuICovXG5mdW5jdGlvbiBnZXRSZXF1ZXN0RGF0YSgpIHtcbiAgY29uc3QgcXVlcnlTdHJpbmcgPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoO1xuXG4gIGlmIChxdWVyeVN0cmluZy5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVlc3QgaW52YWxpZDogcXVlcnkgc3RyaW5nIGVtcHR5Jyk7XG4gIH1cblxuICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHF1ZXJ5U3RyaW5nKTtcbiAgY29uc3QgbWV0aG9kID0gc2VhcmNoUGFyYW1zLmdldCgnbWV0aG9kJyk7XG5cbiAgaWYgKG1ldGhvZCA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignUmVxdWVzdCBpbnZhbGlkOiBtZXRob2Qgbm90IHByb3ZpZGVkIGluIHF1ZXJ5IHN0cmluZycpO1xuICB9XG5cbiAgY29uc3QgcmF3UGFyYW1zID0gc2VhcmNoUGFyYW1zLmdldCgncGFyYW1zJyk7XG5cbiAgbGV0IHBhcmFtcztcbiAgaWYgKHJhd1BhcmFtcyAhPT0gbnVsbCkge1xuICAgIHRyeSB7XG4gICAgICBwYXJhbXMgPSBKU09OLnBhcnNlKHJhd1BhcmFtcyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWVzdCBpbnZhbGlkOiBmYWlsZWQgdG8gcGFyc2UgcGFyYW1zJywge1xuICAgICAgICBjYXVzZTogZXJyb3IsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFJlcXVlc3QgaW52YWxpZDogcGFyYW1zIHBhcnNlZCBhcyBudWxsYCk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgcGFyYW1zICE9PSAnb2JqZWN0Jykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgUmVxdWVzdCBpbnZhbGlkOiBwYXJhbXMgcGFyc2VkIGFzIHR5cGUgJyR7dHlwZW9mIHBhcmFtc30nYCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcmVxdWVzdCA9IHsgbWV0aG9kIH07XG4gIGlmIChwYXJhbXMpIHtcbiAgICByZXF1ZXN0LnBhcmFtcyA9IHBhcmFtcztcbiAgfVxuICByZXR1cm4gcmVxdWVzdDtcbn1cblxuLyoqXG4gKiBSdW4gdGhlIHJlcXVlc3QgZW5jb2RlZCBpbiB0aGUgcXVlcnkgcGFyYW1ldGVycy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcbiAgY29uc3QgbWFpbkVsZW1lbnQgPSBnZXRNYWluRWxlbWVudCgpO1xuXG4gIC8qKlxuICAgKiBMb2cgYSBtZXNzYWdlLCBhbmQgc2V0IGl0IG9uIHRoZSBwYWdlLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSAtIFRoZSBtZXNzYWdlIHRvIGxvZyBhbmQgc2V0IG9uIHRoZSBwYWdlLlxuICAgKi9cbiAgZnVuY3Rpb24gbG9nQW5kU2V0KG1lc3NhZ2UpIHtcbiAgICBjb25zb2xlLmxvZyhtZXNzYWdlKTtcbiAgICBtYWluRWxlbWVudC5pbm5lclRleHQgPSBtZXNzYWdlO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBpZiAoIXdpbmRvdy5ldGhlcmV1bSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdQcm92aWRlciBub3QgZm91bmQnKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXF1ZXN0RGF0YSA9IGdldFJlcXVlc3REYXRhKCk7XG5cbiAgICBsb2dBbmRTZXQoYFNlbmRpbmcgcmVxdWVzdDogJHtKU09OLnN0cmluZ2lmeShyZXF1ZXN0RGF0YSl9YCk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB3aW5kb3cuZXRoZXJldW0ucmVxdWVzdChyZXF1ZXN0RGF0YSk7XG5cbiAgICBsb2dBbmRTZXQoYFJlc3BvbnNlOiAke0pTT04uc3RyaW5naWZ5KHJlc3VsdCl9YCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgbWFpbkVsZW1lbnQuaW5uZXJUZXh0ID0gZXJyb3IubWVzc2FnZSB8fCAnVW5rbm93biBlcnJvcic7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn1cblxubWFpbigpLmNhdGNoKGNvbnNvbGUuZXJyb3IpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///84004\n")}},__webpack_exports__={};__webpack_modules__[84004]()})();