From c64fdd4e4fc0d21ab156b48884b7de6551187558 Mon Sep 17 00:00:00 2001 From: jg8481 <joshua.gorospe@gmail.com> Date: Thu, 11 Apr 2024 05:56:37 -0400 Subject: [PATCH] Add a Gas Report enhancement to the Hardhat Ethers.js automation --- ...t-contract-hardhat-Ethereum-tests-log.html | 450 ++++++-- ...contract-hardhat-Ethereum-tests-output.xml | 1010 ++++++++--------- .../robotframework-hardhat-remote-library.js | 38 +- ...robotframework-hardhat-test-keywords.robot | 10 +- 4 files changed, 892 insertions(+), 616 deletions(-) diff --git a/solidity-hardhat-multichain-tools/logs/smart-contract-hardhat-Ethereum-tests-log.html b/solidity-hardhat-multichain-tools/logs/smart-contract-hardhat-Ethereum-tests-log.html index 90f6e21..0c16665 100644 --- a/solidity-hardhat-multichain-tools/logs/smart-contract-hardhat-Ethereum-tests-log.html +++ b/solidity-hardhat-multichain-tools/logs/smart-contract-hardhat-Ethereum-tests-log.html @@ -5,16 +5,60 @@ <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Expires" content="-1"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> -<meta content="Robot Framework 6.0.2 (Python 3.9.12 on darwin)" name="Generator"> +<meta content="Robot Framework 7.0 (Python 3.11.8 on darwin)" name="Generator"> <link rel="icon" type="image/x-icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAqAAAAAAAAAAAAAAAAAAAALIAAAD/AAAA4AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA4AAAAP8AAACxAAAAAAAAAKYAAAD/AAAAuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/AAAA/wAAAKkAAAD6AAAAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN8AAAD/AAAA+gAAAMMAAAAAAAAAAgAAAGsAAABrAAAAawAAAGsAAABrAAAAawAAAGsAAABrAAAADAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAIsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAANEAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAAAAAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAFAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAADwAAAB8AAAAAAAAAGAAAABcAAAAAAAAAH8AAABKAAAAAAAAAAAAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAADCAAAA/wAAACkAAADqAAAA4QAAAAAAAAD7AAAA/wAAALAAAAAGAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAIwAAAP4AAAD/AAAA/wAAAGAAAAAAAAAAAAAAAMkAAAD/AAAAigAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAAAAAAAIAAAAcAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAA2gAAAP8AAAD7AAAAywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4AAAD/AAAAqwAAAP8AAACvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALIAAAD/AAAAsgAAAAAAAAC5AAAA/wAAAMoAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMkAAAD/AAAAvAAAAAAAAAAAAAAAAAAAAKwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArQAAAAAAAAAAwAMAAIABAAAf+AAAP/wAAD/8AAAgBAAAP/wAAD/8AAA//AAAJIwAADHEAAA//AAAP/wAAB/4AACAAQAAwAMAAA=="> -<style media="all" type="text/css"> +<style media="all"> +:root { + --text-color: black; + --background-color: white; + --primary-color: #ddd; + --secondary-color: #ccc; + --link-color: #15c; + --link-hover-color: #61c; + --highlight-color: #eee; + --target-color: #f9f9f9; + --pass-color: #97bd61; + --fail-color: #ce3e01; + --warn-color: #fed84f; + --pass-link-color: #098a09; + --warn-link-color: #927201; + --fail-link-color: #ce3e01; + --ascending-icon: url(data:image/gif;base64,R0lGODlhCwAJAKEAAAAAAH9/fwAAAAAAACH5BAEAAAIALAAAAAALAAkAAAIUlBWnFr3cnIr0WQOyBmvzp13CpxQAOw==); + --descending-icon: url(data:image/gif;base64,R0lGODlhCwAJAKEAAAAAAH9/fwAAAAAAACH5BAEAAAIALAAAAAALAAkAAAIUlAWnBr3cnIr0WROyDmvzp13CpxQAOw==); +} +@media (prefers-color-scheme: dark) { + :root { + color-scheme: dark; + } +} +[data-theme="dark"] { + --text-color: #e2e1d7; + --background-color: #1c2227; + --primary-color: #26373b; + --secondary-color: #424f5a; + --link-color: #8cc4ff; + --link-hover-color: #bb86fc; + --highlight-color: #002b36; + --target-color: #1a252e; + --pass-link-color: #97bd61; + --warn-link-color: #fed84f; + --fail-link-color: #ff9b8f; + --ascending-icon: url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAJAgMAAACZCj6+AAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAlQTFRFAAAAfn5+////f/cqYgAAAAN0Uk5TAP//RFDWIQAAACdJREFUeJxjYHBgYGAMYGBgDWFgEA1lAAOtVQwMXCsYGJgWADkNDAA78QP9oKr7vwAAAABJRU5ErkJggg==); + --descending-icon: url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAJAgMAAACZCj6+AAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAlQTFRFAAAA////fn5+K6jOaAAAAAN0Uk5TAP//RFDWIQAAACdJREFUeJxjYHBgYGAMYGBgDWFgEA1lAAOtVQwMXCsYGJgWADkNDAA78QP9oKr7vwAAAABJRU5ErkJggg==); +} /* Generic and misc styles */ body { font-family: Helvetica, sans-serif; font-size: 0.8em; - color: black; + color: black; /* Fallback value */ + color: var(--text-color); padding: 6px; - background: white; + background: white; /* Fallback value */ + background: var(--background-color); + margin-left: 15px; +} +body[theme-toggled] { + transition: background 0.3s, background-color 0.3s, color 0.3s, border-color 0.3s; } table { table-layout: fixed; @@ -29,20 +73,37 @@ mso-data-placement: same-cell; /* maintain line breaks in Excel */ } hr { - background: #ccc; + background: #ccc; /* Fallback value */ + background: var(--secondary-color); height: 1px; border: 0; } a, a:link, a:visited { text-decoration: none; - color: #15c; + color: #15c; /* Fallback value */ + color: var(--link-color); } a > img { - border: 1px solid #15c !important; + border-width: 1px !important; + border-style: solid !important; + border-color: #15c !important; /* Fallback value */ + border-color: var(--link-color) !important; } a:hover, a:active { text-decoration: underline; - color: #61c; + color: #61c; /* Fallback value */ + color: var(--link-hover-color); +} +select { + background-color: white; /* Fallback value */ + background-color: var(--background-color); + color: black; /* Fallback value */ + color: var(--text-color); + border-width: 2px; + border-style: solid; + border-color: #ccc; /* Fallback value */ + border-color: var(--secondary-color); + border-radius: 4px; } .parent-name { font-size: 0.7em; @@ -55,7 +116,7 @@ #header { width: 65em; height: 3em; - margin: 6px 0; + margin: 20px 0 6px 0; } h1 { float: left; @@ -83,14 +144,17 @@ } /* Status text colors -- !important allows using them in links */ .fail { - color: #ce3e01 !important; + color: #ce3e01 !important; /* Fallback value */ + color: var(--fail-link-color) !important; font-weight: bold; } .pass { - color: #098a09 !important; + color: #098a09 !important; /* Fallback value */ + color: var(--pass-link-color) !important; } .skip { - color: #927201 !important; + color: #927201 !important; /* Fallback value */ + color: var(--warn-link-color) !important; font-weight: bold; } .label { @@ -98,8 +162,10 @@ font-size: 0.75em; letter-spacing: 1px; white-space: nowrap; - color: black; - background-color: #ddd; + color: black; /* Fallback value */ + color: var(--text-color); + background-color: #ddd; /* Fallback value */ + background-color: var(--primary-color); border-radius: 3px; } .label.debug, .label.trace, .label.error, .label.keyword { @@ -109,15 +175,18 @@ font-weight: bold; } .label.pass { - background-color: #97bd61; + background-color: #97bd61; /* Fallback value */ + background-color: var(--pass-color); color: #000 !important; } .label.fail, .label.error { - background-color: #ce3e01; + background-color: #ce3e01; /* Fallback value */ + background-color: var(--fail-color); color: #fff !important; } .label.skip, .label.warn { - background-color: #fed84f; + background-color: #fed84f; /* Fallback value */ + background-color: var(--warn-color); color: #000 !important; } /* Top right header */ @@ -146,7 +215,8 @@ padding: 0.3em 0; font-size: 0.9em; border-bottom-left-radius: 4px; - background: #ddd; + background: #ddd; /* Fallback value */ + background: var(--primary-color); } /* Statistics table */ .statistics { @@ -156,15 +226,20 @@ margin-bottom: 1em; } .statistics tr:hover { - background: #f4f4f4; + background: #eee; /* Fallback value */ + background: var(--highlight-color); cursor: pointer; } .statistics th, .statistics td { - border: 1px solid #ccc; + border-width: 1px; + border-style: solid; + border-color: #ccc; /* Fallback value */ + border-color: var(--secondary-color); padding: 0.1em 0.3em; } .statistics th { - background-color: #ddd; + background-color: #ddd; /* Fallback value */ + background-color: var(--primary-color); padding: 0.2em 0.3em; } .statistics td { @@ -200,27 +275,33 @@ } /* Statistics graph */ .graph, .empty-graph { - border: 1px solid #ccc; + border-width: 1px; + border-style: solid; + border-color: #ccc; /* Fallback value */ + border-color: var(--secondary-color); width: auto; height: 7px; padding: 0; - background: #aaa; } .empty-graph { - background: #eee; + background: #eee; /* Fallback value */ + background: var(--highlight-color); } .pass-bar, .fail-bar, .skip-bar { float: left; height: 100%; } .fail-bar { - background: #ce3e01; + background: #ce3e01; /* Fallback value */ + background: var(--fail-color); } .pass-bar { - background: #97bd61; + background: #97bd61; /* Fallback value */ + background: var(--pass-color); } .skip-bar { - background: #fed84f; + background: #fed84f; /* Fallback value */ + background: var(--warn-color); } /* Tablesorter - adapted from provided Blue Skin */ .tablesorter-header { @@ -230,30 +311,84 @@ cursor: pointer; } .tablesorter-header:hover { - background-color: #ccc; + background-color: #ccc; /* Fallback value */ + background-color: var(--secondary-color); } .tablesorter-headerAsc { - background-image: url(data:image/gif;base64,R0lGODlhCwAJAKEAAAAAAH9/fwAAAAAAACH5BAEAAAIALAAAAAALAAkAAAIUlBWnFr3cnIr0WQOyBmvzp13CpxQAOw==); - background-color: #ccc !important; + background-image: url(data:image/gif;base64,R0lGODlhCwAJAKEAAAAAAH9/fwAAAAAAACH5BAEAAAIALAAAAAALAAkAAAIUlBWnFr3cnIr0WQOyBmvzp13CpxQAOw==); /* Fallback value */ + background-image: var(--ascending-icon); + background-color: #ccc !important; /* Fallback value */ + background-color: var(--secondary-color) !important; } .tablesorter-headerDesc { - background-image: url(data:image/gif;base64,R0lGODlhCwAJAKEAAAAAAH9/fwAAAAAAACH5BAEAAAIALAAAAAALAAkAAAIUlAWnBr3cnIr0WROyDmvzp13CpxQAOw==); - background-color: #ccc !important; + background-image: url(data:image/gif;base64,R0lGODlhCwAJAKEAAAAAAH9/fwAAAAAAACH5BAEAAAIALAAAAAALAAkAAAIUlAWnBr3cnIr0WROyDmvzp13CpxQAOw==); /* Fallback value */ + background-image: var(--descending-icon); + background-color: #ccc !important; /* Fallback value */ + background-color: var(--secondary-color) !important; } .sorter-false { background-image: none; cursor: default; } .sorter-false:hover { - background-color: #ddd; + background-color: #ddd; /* Fallback value */ + background-color: var(--primary-color); +} +#theme-toggle { + position: fixed; + right: 0; + bottom: 0; + width: 28px; + height: 28px; + border: none; + padding: 4px; + z-index: 1000; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + background: var(--highlight-color); +} +[data-theme="dark"] .dark-mode-icon, +[data-theme="light"] .light-mode-icon { + display: none; +} +[data-theme="dark"] .light-mode-icon, +[data-theme="light"] .dark-mode-icon { + display: block; +} +@keyframes highlight { + 0% { + background: var(--primary-color) + } + 100% { + background: var(--target-color); + } +} +:target { + background: var(--target-color); + transition: background 0.3s; + animation: highlight 4s; } </style> -<style media="all" type="text/css"> +<style media="all"> /* Icons are from Open Iconic <https://useiconic.com/open/>. Licensed under the MIT License. */ +:root { + --icon-filter: invert(0); + --icon-highlight: var(--secondary-color); + --elapsed-color: #666; +} +/* @media (prefers-color-scheme: dark) { */ +[data-theme="dark"] { + --icon-filter: invert(1); + --icon-highlight: #a39990; + --elapsed-color: #999; +} /* Containers */ .suite, .test, #errors { - border: 1px solid #ccc; + border-color: #ccc; /* Fallback value */ + border-color: var(--secondary-color); + border-width: 1px; + border-style: solid; padding: 0.3em 0.2em; margin: 0.2em 0; } @@ -282,8 +417,10 @@ } .element-header:hover { cursor: pointer; - background-color: #eee; - border-color: #ccc; + background-color: #eee; /* Fallback value */ + background-color: var(--highlight-color); + border-color: #ccc; /* Fallback value */ + border-color: var(--secondary-color); } .element-header-toggle { position: absolute; @@ -293,10 +430,14 @@ background-position: center; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAQAAABKxSfDAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfeCR0JChSkZz20AAAAGklEQVQI12NgQAKMDKzInP8IDhOqMk4G7AAANQwBE427PYUAAAAASUVORK5CYII=); background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik0wIDB2Mmg4di0yaC04eiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAzKSIgLz4KPC9zdmc+), none; + filter: var(--icon-filter); height: 10px; width: 10px; background-size: 6px 6px; - border: 1px solid #ccc; + border-color: #ccc; /* Fallback value */ + border-color: var(--icon-highlight); + border-width: 1px; + border-style: solid; border-radius: 2px; } .closed > .element-header-toggle { @@ -304,7 +445,8 @@ background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik0zIDB2M2gtM3YyaDN2M2gydi0zaDN2LTJoLTN2LTNoLTJ6IiAvPgo8L3N2Zz4=), none; } .element-header:hover > .element-header-toggle { - background-color: #ccc; + background-color: #ccc; /* Fallback value */ + background-color: var(--icon-highlight); } .element-header-right:hover ~ .element-header-toggle { background-color: transparent; @@ -324,23 +466,31 @@ } .name { font-weight: bold; + white-space: pre-wrap; +} +.arg, .assign { + white-space: pre-wrap; } .elapsed { float: right; - color: #666; + color: #666; /* Fallback value */ + color: var(--elapsed-color); padding-left: 1em; } .link { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHlJREFUGJVtzrEJwmAQBtCn6ASuIKTIBhY2gmghBiJYB1udwk10B8FJbKMBcQFbtbkfJHrVwfu+4/idJR64Y9H7E3higj5O3S8Y44ApLnjhnXCNGhV2yNGggDJwiC02gavUbpDFvscRo4QdXOMKDHBufz3HLYKzNn4AbSkV3fncGQYAAAAASUVORK5CYII=); background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik01Ljg4LjAzYy0uMTguMDEtLjM2LjAzLS41My4wOS0uMjcuMS0uNTMuMjUtLjc1LjQ3YS41LjUgMCAxIDAgLjY5LjY5Yy4xMS0uMTEuMjQtLjE3LjM4LS4yMi4zNS0uMTIuNzgtLjA3IDEuMDYuMjIuMzkuMzkuMzkgMS4wNCAwIDEuNDRsLTEuNSAxLjVjLS40NC40NC0uOC40OC0xLjA2LjQ3LS4yNi0uMDEtLjQxLS4xMy0uNDEtLjEzYS41LjUgMCAxIDAtLjUuODhzLjM0LjIyLjg0LjI1Yy41LjAzIDEuMi0uMTYgMS44MS0uNzhsMS41LTEuNWMuNzgtLjc4Ljc4LTIuMDQgMC0yLjgxLS4yOC0uMjgtLjYxLS40NS0uOTctLjUzLS4xOC0uMDQtLjM4LS4wNC0uNTYtLjAzem0tMiAyLjMxYy0uNS0uMDItMS4xOS4xNS0xLjc4Ljc1bC0xLjUgMS41Yy0uNzguNzgtLjc4IDIuMDQgMCAyLjgxLjU2LjU2IDEuMzYuNzIgMi4wNi40Ny4yNy0uMS41My0uMjUuNzUtLjQ3YS41LjUgMCAxIDAtLjY5LS42OWMtLjExLjExLS4yNC4xNy0uMzguMjItLjM1LjEyLS43OC4wNy0xLjA2LS4yMi0uMzktLjM5LS4zOS0xLjA0IDAtMS40NGwxLjUtMS41Yy40LS40Ljc1LS40NSAxLjAzLS40NC4yOC4wMS40Ny4wOS40Ny4wOWEuNS41IDAgMSAwIC40NC0uODhzLS4zNC0uMi0uODQtLjIyeiIKICAvPgo8L3N2Zz4=), none; + filter: var(--icon-filter); } .expand { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAADtJREFUGJVjYCACKDAwMByA0ljFDjAwMPxnYGB4ABVQgLL/Q+VQBB6gseGmIivCkERXhFUSWRFOSawAAEl7E3uv1iMcAAAAAElFTkSuQmCC); background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik0xLjUgMGwtMS41IDEuNSA0IDQgNC00LTEuNS0xLjUtMi41IDIuNS0yLjUtMi41eiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAxKSIgLz4KPC9zdmc+), none; + filter: var(--icon-filter); } .collapse { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAC5JREFUGJVjYCARNEAxTsn/UIyhCFkSQxG6ThQ+C5IpjWhG1yNb4YDFTdjEMAEACi8Q++9Y9TAAAAAASUVORK5CYII=); background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik00IDBsLTQgNCAxLjUgMS41IDIuNS0yLjUgMi41IDIuNSAxLjUtMS41LTQtNHoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMSkiIC8+Cjwvc3ZnPg==), none; + filter: var(--icon-filter); } .expand, .collapse, .link { float: left; @@ -352,7 +502,10 @@ background-size: 8px 8px; background-repeat: no-repeat; background-position: center; - border: 1px solid #ccc; + border-color: #ccc; /* Fallback value */ + border-color: var(--icon-highlight); + border-width: 1px; + border-style: solid; border-radius: 2px; } .link { @@ -362,7 +515,8 @@ visibility: visible; } .expand:hover, .collapse:hover, .link:hover { - background-color: #ccc; + background-color: #ccc; /* Fallback value */ + background-color: var(--icon-highlight); } /* Messages and errors */ .messages .time, .messages .message { @@ -403,11 +557,16 @@ .message-row:hover .select-message div { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAQAAAD8fJRsAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfeCR0MOzhWKZQOAAAASUlEQVQY032PsRHAIAwDX9BkicD+W8UMEqegAQJWKZ/+3sLZJhFGQEZzNaIa4ibh66En867VNaIeoP5WppNuIGoAlOm3g5VC1AdYeQv1BZPRSgAAAABJRU5ErkJggg==); background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik0wIDB2MWg4di0xaC04em0wIDJ2MWg2di0xaC02em0wIDJ2MWg4di0xaC04em0wIDJ2MWg2di0xaC02eiIgLz4KPC9zdmc+), none; - border: 1px solid #ccc; + filter: var(--icon-filter); + border-color: #ccc; /* Fallback value */ + border-color: var(--icon-highlight); + border-width: 1px; + border-style: solid; border-radius: 2px; } .select-message:hover div { - background-color: #ccc; + background-color: #ccc; /* Fallback value */ + background-color: var(--icon-highlight); cursor: pointer; } /* Message tables - these MUST NOT be combined together because otherwise @@ -439,7 +598,7 @@ cursor: default; } </style> -<style media="print" type="text/css"> +<style media="print"> body { background: white !important; padding: 0; @@ -479,7 +638,7 @@ background: #ddd !important; } </style> -<style media="all" type="text/css"> +<style media="all"> #javascript-disabled { width: 600px; margin: 100px auto 0 auto; @@ -502,7 +661,7 @@ font-style: italic; } </style> -<style media="all" type="text/css"> +<style media="all"> .doc > * { margin: 0.7em 1em 0.1em 1em; padding: 0; @@ -514,14 +673,12 @@ margin-top: 0.1em; } .doc table { - border: 1px solid #ccc; background: transparent; border-collapse: collapse; empty-cells: show; font-size: 0.9em; } .doc table th, .doc table td { - border: 1px solid #ccc; background: transparent; padding: 0.1em 0.3em; height: 1.2em; @@ -531,24 +688,32 @@ letter-spacing: 0.1em; } .doc pre { + border-radius: 2px; font-size: 1.1em; letter-spacing: 0.05em; - background: #f4f4f4; + background: #eee; /* Fallback value */ + background: var(--highlight-color); } .doc code { + border-radius: 2px; padding: 0 0.2em; letter-spacing: 0.05em; - background: #eee; + background: #eee; /* Fallback value */ + background: var(--highlight-color); } .doc li { list-style-position: inside; list-style-type: square; } -.doc img { - border: 1px solid #ccc; +.doc img, .doc table, .doc table th, .doc table td { + border-width: 1px; + border-style: solid; + border-color: #ccc; /* Fallback value */ + border-color: var(--secondary-color); } .doc hr { - background: #ccc; + background: #ccc; /* Fallback value */ + background: var(--secondary-color); height: 1px; border: 0; } @@ -560,6 +725,9 @@ } function toggleTest(testId) { toggleElement(testId, ['keyword']); + var test = window.testdata.findLoaded(testId); + if (test.status == "FAIL" || test.status == "SKIP") + expandFailed(test); } function toggleKeyword(kwId) { toggleElement(kwId, ['keyword']); @@ -623,7 +791,7 @@ } } function expandFailed(element) { - if (element.status == "FAIL") { + if (element.status == "FAIL" || (element.type == "test" && element.status == "SKIP")) { window.elementsToExpand = [element]; window.expandDecider = function (e) { return e.status == "FAIL"; @@ -847,7 +1015,6 @@ suite.populateSuites = createIterablePopulator('Suite'); suite.childrenNames = ['keyword', 'suite', 'test']; suite.callWhenChildrenReady = function (callable) { callable(); }; - suite.message = data.message; suite.children = function () { return suite.keywords().concat(suite.tests()).concat(suite.suites()); }; @@ -938,6 +1105,7 @@ name: data.name, doc: data.doc, status: data.status, + message: data.message, times: data.times, id: data.parent ? data.parent.id + '-' + data.id : data.id }; @@ -958,7 +1126,6 @@ return test.keywords(); }; test.tags = data.tags; - test.message = data.message; test.matchesTagPattern = function (pattern) { return containsTagPattern(test.tags, pattern); }; @@ -969,13 +1136,12 @@ } function Keyword(data) { var kw = createModelObject(data); - var flatTypes = ['RETURN', 'BREAK', 'CONTINUE']; kw.libname = data.libname; kw.fullName = (kw.libname ? kw.libname + '.' : '') + kw.name; kw.type = data.type; kw.template = 'keywordTemplate'; kw.arguments = data.args; - kw.assign = data.assign + (data.assign ? ' =' : ''); + kw.assign = data.assign + (data.assign ? ' = ' : ''); kw.tags = data.tags; kw.timeout = data.timeout; kw.populateKeywords = createIterablePopulator('Keyword'); @@ -1354,8 +1520,9 @@ var _statistics = null; var LEVELS = ['TRACE', 'DEBUG', 'INFO', 'WARN', 'ERROR', 'FAIL', 'SKIP']; var STATUSES = ['FAIL', 'PASS', 'SKIP', 'NOT RUN']; - var KEYWORD_TYPES = ['KEYWORD', 'SETUP', 'TEARDOWN', 'FOR', 'ITERATION', 'IF', 'ELSE IF', 'ELSE', 'RETURN', - 'TRY', 'EXCEPT', 'FINALLY', 'WHILE', 'CONTINUE', 'BREAK']; + var KEYWORD_TYPES = ['KEYWORD', 'SETUP', 'TEARDOWN', 'FOR', 'ITERATION', 'IF', + 'ELSE IF', 'ELSE', 'RETURN', 'VAR', 'TRY', 'EXCEPT', 'FINALLY', + 'WHILE', 'CONTINUE', 'BREAK', 'ERROR']; function addElement(elem) { if (!elem.id) elem.id = uniqueId(); @@ -1398,6 +1565,7 @@ return createKeyword(parent, element, strings, index - messages.length); } function createKeyword(parent, element, strings, index) { + var status = element[8]; var kw = model.Keyword({ parent: parent, type: KEYWORD_TYPES[element[0]], @@ -1413,7 +1581,12 @@ this.doc = function () { return doc; }; return doc; }, - status: parseStatus(element[8], strings), + status: parseStatus(status), + message: function () { + var msg = status.length == 4 ? strings.get(status[3]) : ''; + this.message = function () { return msg; }; + return msg; + }, times: model.Times(times(element[8])), isChildrenLoaded: typeof(element[9]) !== 'number' }); @@ -1624,6 +1797,20 @@ }(); </script> <script type="text/javascript"> +const lightModeIcon = ` +<svg class="light-mode-icon" xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" + viewBox="0 0 24 24" fill="var(--text-color)"> + <rect fill="none" height="24" width="24" /> + <path + d="M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0 c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2 c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1 C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06 c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41 l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41 c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36 c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z" /> +</svg>` +const darkModeIcon = ` +<svg class="dark-mode-icon" xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" + viewBox="0 0 24 24" fill="var(--text-color)"> + <rect fill="none" height="24" width="24" /> + <path + d="M11.01,3.05C6.51,3.54,3,7.36,3,12c0,4.97,4.03,9,9,9c4.63,0,8.45-3.5,8.95-8c0.09-0.79-0.78-1.42-1.54-0.95 c-0.84,0.54-1.84,0.85-2.91,0.85c-2.98,0-5.4-2.42-5.4-5.4c0-1.06,0.31-2.06,0.84-2.89C12.39,3.94,11.9,2.98,11.01,3.05z" /> +</svg>` function removeJavaScriptDisabledWarning() { // Not using jQuery here for maximum speed document.getElementById('javascript-disabled').style.display = 'none'; @@ -1659,6 +1846,10 @@ function addHeader() { var generated = util.timestamp(window.output.generated); $.tmpl('<h1>${title}</h1>' + + '<button id=theme-toggle>' + + lightModeIcon + + darkModeIcon + + '</button>' + '<div id="generated">' + '<span>Generated<br>${generated}</span><br>' + '<span id="generated-ago">${ago} ago</span>' + @@ -1670,6 +1861,7 @@ ago: util.createGeneratedAgoString(generated), title: document.title }).appendTo($('#header')); + document.getElementById('theme-toggle')?.addEventListener('click', theme.onClick); } function addReportOrLogLink(myType) { var url; @@ -1798,30 +1990,116 @@ if (event.stopPropagation) event.stopPropagation(); } +const theme = function () { + const storageKey = 'theme-preference'; + const urlParams = new URLSearchParams(window.location.search); + var storage; + var theme; + function init(givenStorage) { + storage = givenStorage; + theme = { value: getPreference() }; + document.body.setAttribute('data-theme', theme.value); + reflectPreference(); + window.matchMedia('(prefers-color-scheme: dark)') + .addEventListener('change', ({matches:isDark}) => { + theme.value = isDark ? 'dark' : 'light'; + setPreference(); + }); + window.addEventListener('storage', ({key, newValue}) => { + if (key === storage.fullKey(storageKey)) { + theme.value = newValue === 'dark' ? 'dark' : 'light'; + setPreference(); + } + }); + } + function getPreference() { + if (urlParams.has('theme')) { + var urlTheme = urlParams.get('theme') === 'dark' ? 'dark' : 'light'; + storage.set(storageKey, urlTheme); + urlParams.delete('theme'); + return urlTheme; + } + if (storage.get(storageKey)) + return storage.get(storageKey) === 'dark' ? 'dark' : 'light'; + return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; + } + function setPreference() { + storage.set(storageKey, theme.value); + reflectPreference(); + } + function reflectPreference() { + document.body.setAttribute('data-theme', theme.value); + document.querySelector('#theme-toggle')?.setAttribute('aria-label', theme.value); + const event = new Event('theme-change', {value: theme.value}); + document.dispatchEvent(event); + } + function onClick() { + theme.value = theme.value === 'light' ? 'dark' : 'light'; + document.body.setAttribute('theme-toggled', ""); + setPreference(); + } + return {init: init, getPreference: getPreference, setPreference: setPreference, + reflectPreference: reflectPreference, onClick: onClick}; +}(); +</script> +<script type="text/javascript"> +storage = function () { + var prefix = 'robot-framework-'; + var storage; + function init(user) { + if (user) + prefix += user + '-'; + storage = getStorage(); + } + function getStorage() { + // Use localStorage if it's accessible, normal object otherwise. + // Inspired by https://stackoverflow.com/questions/11214404 + try { + localStorage.setItem(prefix, prefix); + localStorage.removeItem(prefix); + return localStorage; + } catch (exception) { + return {}; + } + } + function get(key, defaultValue) { + var value = storage[fullKey(key)]; + if (typeof value === 'undefined') + return defaultValue; + return value; + } + function set(key, value) { + storage[fullKey(key)] = value; + } + function fullKey(key) { + return prefix + key; + } + return {init: init, get: get, set: set, fullKey: fullKey}; +}(); </script> <script type="text/javascript"> window.output = {}; </script> <script type="text/javascript"> -window.output["suite"] = [1,2,3,0,[],[1,0,1440],[],[[4,0,0,[5],[1,135,587],[[0,6,7,0,0,8,9,0,[1,136,585],[[721,2,10]]],[0,11,12,0,13,14,0,0,[1,721,1],[]]]],[15,0,0,[],[1,723,37],[[0,16,7,0,0,8,9,0,[1,723,33],[[756,2,17]]],[0,18,0,0,0,19,0,0,[1,757,3],[[0,20,12,0,21,22,0,0,[1,757,0],[[757,2,23]]],[0,24,12,0,25,26,0,0,[1,757,1],[]],[0,24,12,0,25,26,0,0,[1,758,0],[]],[0,24,12,0,25,26,0,0,[1,758,0],[]],[0,24,12,0,25,22,0,0,[1,758,0],[]],[0,24,12,0,25,26,0,0,[1,758,1],[]],[0,24,12,0,25,26,0,0,[1,759,0],[]],[0,24,12,0,25,26,0,0,[1,759,0],[]],[0,27,12,0,28,22,0,0,[1,759,0],[[759,2,29]]],[0,11,12,0,13,30,0,0,[1,759,1],[]],[0,31,12,0,32,33,0,0,[1,760,0],[]]]]]],[34,0,0,[],[1,761,28],[[0,35,7,0,0,8,9,0,[1,761,24],[[785,2,36]]],[0,18,0,0,0,37,0,0,[1,785,4],[[0,20,12,0,21,22,0,0,[1,786,0],[[786,2,38]]],[0,24,12,0,25,26,0,0,[1,786,0],[]],[0,24,12,0,25,26,0,0,[1,786,0],[]],[0,24,12,0,25,26,0,0,[1,786,1],[]],[0,24,12,0,25,22,0,0,[1,787,0],[]],[0,24,12,0,25,26,0,0,[1,787,0],[]],[0,24,12,0,25,26,0,0,[1,787,0],[]],[0,24,12,0,25,26,0,0,[1,788,0],[]],[0,27,12,0,28,22,0,0,[1,788,0],[[788,2,29]]],[0,11,12,0,13,30,0,0,[1,788,0],[]],[0,31,12,0,32,33,0,0,[1,788,1],[]]]]]],[39,0,0,[],[1,789,25],[[0,40,7,0,0,8,9,0,[1,790,20],[[810,2,41]]],[0,18,0,0,0,42,0,0,[1,810,3],[[0,20,12,0,21,22,0,0,[1,811,0],[[811,2,43]]],[0,24,12,0,25,26,0,0,[1,811,0],[]],[0,24,12,0,25,26,0,0,[1,811,0],[]],[0,24,12,0,25,26,0,0,[1,811,1],[]],[0,24,12,0,25,22,0,0,[1,812,0],[]],[0,24,12,0,25,26,0,0,[1,812,0],[]],[0,24,12,0,25,26,0,0,[1,812,0],[]],[0,24,12,0,25,26,0,0,[1,812,1],[]],[0,27,12,0,28,22,0,0,[1,813,0],[[813,2,29]]],[0,11,12,0,13,30,0,0,[1,813,0],[]],[0,31,12,0,32,33,0,0,[1,813,0],[]]]]]],[44,0,0,[],[1,814,35],[[0,45,7,0,0,8,9,0,[1,814,31],[[845,2,46]]],[0,18,0,0,0,47,0,0,[1,846,3],[[0,20,12,0,21,22,0,0,[1,846,0],[[846,2,48]]],[0,24,12,0,25,26,0,0,[1,846,0],[]],[0,24,12,0,25,26,0,0,[1,847,0],[]],[0,24,12,0,25,26,0,0,[1,847,0],[]],[0,24,12,0,25,22,0,0,[1,847,0],[]],[0,24,12,0,25,26,0,0,[1,847,0],[]],[0,24,12,0,25,26,0,0,[1,847,1],[]],[0,24,12,0,25,26,0,0,[1,848,0],[]],[0,27,12,0,28,22,0,0,[1,848,0],[[848,2,29]]],[0,11,12,0,13,30,0,0,[1,848,0],[]],[0,31,12,0,32,33,0,0,[1,848,1],[]]]]]],[49,0,0,[],[1,849,66],[[0,50,7,0,0,8,51,0,[1,849,20],[[868,2,52]]],[0,18,0,0,0,53,0,0,[1,869,5],[[0,20,12,0,21,22,0,0,[1,869,0],[[869,2,54]]],[0,24,12,0,25,26,0,0,[1,869,1],[]],[0,24,12,0,25,26,0,0,[1,870,0],[]],[0,24,12,0,25,26,0,0,[1,870,0],[]],[0,24,12,0,25,22,0,0,[1,870,1],[]],[0,24,12,0,25,26,0,0,[1,871,0],[]],[0,24,12,0,25,26,0,0,[1,871,0],[]],[0,24,12,0,25,26,0,0,[1,872,0],[]],[0,27,12,0,28,22,0,0,[1,872,0],[[872,2,29]]],[0,11,12,0,13,30,0,0,[1,872,1],[]],[0,31,12,0,32,33,0,0,[1,873,0],[]]]],[0,55,7,0,0,8,9,0,[1,874,37],[[911,2,56]]],[0,18,0,0,0,57,0,0,[1,911,4],[[0,20,12,0,21,22,0,0,[1,912,0],[[912,2,58]]],[0,24,12,0,25,26,0,0,[1,912,0],[]],[0,24,12,0,25,26,0,0,[1,912,0],[]],[0,24,12,0,25,26,0,0,[1,913,0],[]],[0,24,12,0,25,22,0,0,[1,913,0],[]],[0,24,12,0,25,26,0,0,[1,913,0],[]],[0,24,12,0,25,26,0,0,[1,913,1],[]],[0,24,12,0,25,26,0,0,[1,914,0],[]],[0,27,12,0,28,22,0,0,[1,914,0],[[914,2,29]]],[0,11,12,0,13,30,0,0,[1,914,0],[]],[0,31,12,0,32,33,0,0,[1,914,1],[]]]]]],[59,0,0,[],[1,915,113],[[0,60,7,0,0,8,61,0,[1,916,16],[[932,2,62]]],[0,18,0,0,0,63,0,0,[1,932,4],[[0,20,12,0,21,22,0,0,[1,933,0],[[933,2,64]]],[0,24,12,0,25,26,0,0,[1,933,0],[]],[0,24,12,0,25,26,0,0,[1,933,1],[]],[0,24,12,0,25,26,0,0,[1,934,0],[]],[0,24,12,0,25,22,0,0,[1,934,0],[]],[0,24,12,0,25,26,0,0,[1,935,0],[]],[0,24,12,0,25,26,0,0,[1,935,0],[]],[0,24,12,0,25,26,0,0,[1,935,1],[]],[0,27,12,0,28,22,0,0,[1,936,0],[[936,2,29]]],[0,11,12,0,13,30,0,0,[1,936,0],[]],[0,31,12,0,32,33,0,0,[1,936,0],[]]]],[0,65,7,0,0,8,9,0,[1,937,86],[[1023,2,66]]],[0,18,0,0,0,67,0,0,[1,1023,5],[[0,20,12,0,21,22,0,0,[1,1024,0],[[1024,2,68]]],[0,24,12,0,25,26,0,0,[1,1024,1],[]],[0,24,12,0,25,26,0,0,[1,1025,0],[]],[0,24,12,0,25,26,0,0,[1,1025,0],[]],[0,24,12,0,25,22,0,0,[1,1025,1],[]],[0,24,12,0,25,26,0,0,[1,1026,0],[]],[0,24,12,0,25,26,0,0,[1,1026,0],[]],[0,24,12,0,25,26,0,0,[1,1026,0],[]],[0,27,12,0,28,22,0,0,[1,1027,0],[[1027,2,29]]],[0,11,12,0,13,30,0,0,[1,1027,0],[]],[0,31,12,0,32,33,0,0,[1,1027,0],[]]]]]],[69,0,0,[],[1,1028,33],[[0,55,7,0,0,8,9,0,[1,1028,29],[[1057,2,70]]],[0,18,0,0,0,57,0,0,[1,1057,4],[[0,20,12,0,21,22,0,0,[1,1058,0],[[1058,2,71]]],[0,24,12,0,25,26,0,0,[1,1058,0],[]],[0,24,12,0,25,26,0,0,[1,1059,0],[]],[0,24,12,0,25,26,0,0,[1,1059,0],[]],[0,24,12,0,25,22,0,0,[1,1059,0],[]],[0,24,12,0,25,26,0,0,[1,1059,0],[]],[0,24,12,0,25,26,0,0,[1,1060,0],[]],[0,24,12,0,25,26,0,0,[1,1060,0],[]],[0,27,12,0,28,22,0,0,[1,1060,0],[[1060,2,29]]],[0,11,12,0,13,30,0,0,[1,1060,0],[]],[0,31,12,0,32,33,0,0,[1,1061,0],[]]]]]],[72,0,0,[],[1,1061,109],[[0,73,7,0,0,8,74,0,[1,1062,64],[[1126,2,75]]],[0,18,0,0,0,76,0,0,[1,1127,6],[[0,20,12,0,21,22,0,0,[1,1127,0],[[1127,2,77]]],[0,24,12,0,25,26,0,0,[1,1128,0],[]],[0,24,12,0,25,26,0,0,[1,1128,0],[]],[0,24,12,0,25,26,0,0,[1,1128,1],[]],[0,24,12,0,25,22,0,0,[1,1129,0],[]],[0,24,12,0,25,26,0,0,[1,1130,0],[]],[0,24,12,0,25,26,0,0,[1,1130,1],[]],[0,24,12,0,25,26,0,0,[1,1131,0],[]],[0,27,12,0,28,22,0,0,[1,1132,0],[[1132,2,29]]],[0,11,12,0,13,30,0,0,[1,1132,0],[]],[0,31,12,0,32,33,0,0,[1,1132,1],[]]]],[0,78,7,0,0,8,9,0,[1,1133,32],[[1165,2,79]]],[0,18,0,0,0,80,0,0,[1,1165,5],[[0,20,12,0,21,22,0,0,[1,1166,1],[[1167,2,81]]],[0,24,12,0,25,26,0,0,[1,1167,0],[]],[0,24,12,0,25,26,0,0,[1,1167,0],[]],[0,24,12,0,25,26,0,0,[1,1167,1],[]],[0,24,12,0,25,22,0,0,[1,1168,0],[]],[0,24,12,0,25,26,0,0,[1,1168,0],[]],[0,24,12,0,25,26,0,0,[1,1168,0],[]],[0,24,12,0,25,26,0,0,[1,1168,1],[]],[0,27,12,0,28,22,0,0,[1,1169,0],[[1169,2,29]]],[0,11,12,0,13,30,0,0,[1,1169,0],[]],[0,31,12,0,32,33,0,0,[1,1169,1],[]]]]]],[82,0,0,[],[1,1170,147],[[0,50,7,0,0,8,51,0,[1,1171,20],[[1191,2,52]]],[0,18,0,0,0,53,0,0,[1,1192,3],[[0,20,12,0,21,22,0,0,[1,1192,0],[[1192,2,54]]],[0,24,12,0,25,26,0,0,[1,1192,0],[]],[0,24,12,0,25,26,0,0,[1,1193,0],[]],[0,24,12,0,25,26,0,0,[1,1193,0],[]],[0,24,12,0,25,22,0,0,[1,1193,0],[]],[0,24,12,0,25,26,0,0,[1,1193,0],[]],[0,24,12,0,25,26,0,0,[1,1194,0],[]],[0,24,12,0,25,26,0,0,[1,1194,0],[]],[0,27,12,0,28,22,0,0,[1,1194,0],[[1194,2,29]]],[0,11,12,0,13,30,0,0,[1,1194,0],[]],[0,31,12,0,32,33,0,0,[1,1195,0],[]]]],[0,60,7,0,0,8,61,0,[1,1195,23],[[1218,2,62]]],[0,18,0,0,0,63,0,0,[1,1218,4],[[0,20,12,0,21,22,0,0,[1,1218,0],[[1218,2,64]]],[0,24,12,0,25,26,0,0,[1,1218,1],[]],[0,24,12,0,25,26,0,0,[1,1219,0],[]],[0,24,12,0,25,26,0,0,[1,1219,1],[]],[0,24,12,0,25,22,0,0,[1,1220,0],[]],[0,24,12,0,25,26,0,0,[1,1220,0],[]],[0,24,12,0,25,26,0,0,[1,1220,0],[]],[0,24,12,0,25,26,0,0,[1,1221,0],[]],[0,27,12,0,28,22,0,0,[1,1221,0],[[1221,2,29]]],[0,11,12,0,13,30,0,0,[1,1221,1],[]],[0,31,12,0,32,33,0,0,[1,1222,0],[]]]],[0,83,7,0,0,8,9,0,[1,1223,90],[[1313,2,84]]],[0,18,0,0,0,85,0,0,[1,1313,3],[[0,20,12,0,21,22,0,0,[1,1314,0],[[1314,2,86]]],[0,24,12,0,25,26,0,0,[1,1314,0],[]],[0,24,12,0,25,26,0,0,[1,1314,0],[]],[0,24,12,0,25,26,0,0,[1,1315,0],[]],[0,24,12,0,25,22,0,0,[1,1315,0],[]],[0,24,12,0,25,26,0,0,[1,1315,0],[]],[0,24,12,0,25,26,0,0,[1,1315,0],[]],[0,24,12,0,25,26,0,0,[1,1315,1],[]],[0,27,12,0,28,22,0,0,[1,1316,0],[[1316,2,29]]],[0,11,12,0,13,30,0,0,[1,1316,0],[]],[0,31,12,0,32,33,0,0,[1,1316,0],[]]]]]],[87,0,0,[],[1,1317,61],[[0,88,7,0,0,8,9,0,[1,1317,57],[[1374,2,89]]],[0,18,0,0,0,90,0,0,[1,1374,4],[[0,20,12,0,21,22,0,0,[1,1375,0],[[1375,2,91]]],[0,24,12,0,25,26,0,0,[1,1375,0],[]],[0,24,12,0,25,26,0,0,[1,1375,1],[]],[0,24,12,0,25,26,0,0,[1,1376,0],[]],[0,24,12,0,25,22,0,0,[1,1376,0],[]],[0,24,12,0,25,26,0,0,[1,1376,0],[]],[0,24,12,0,25,26,0,0,[1,1376,1],[]],[0,24,12,0,25,26,0,0,[1,1377,0],[]],[0,27,12,0,28,22,0,0,[1,1377,0],[[1377,2,29]]],[0,11,12,0,13,30,0,0,[1,1377,0],[]],[0,31,12,0,32,33,0,0,[1,1377,1],[]]]]]],[92,0,0,[],[1,1378,61],[[0,93,7,0,0,8,9,0,[1,1379,56],[[1435,2,94]]],[0,18,0,0,0,95,0,0,[1,1436,3],[[0,20,12,0,21,22,0,0,[1,1436,0],[[1436,2,96]]],[0,24,12,0,25,26,0,0,[1,1436,0],[]],[0,24,12,0,25,26,0,0,[1,1436,1],[]],[0,24,12,0,25,26,0,0,[1,1437,0],[]],[0,24,12,0,25,22,0,0,[1,1437,0],[]],[0,24,12,0,25,26,0,0,[1,1437,0],[]],[0,24,12,0,25,26,0,0,[1,1437,1],[]],[0,24,12,0,25,26,0,0,[1,1438,0],[]],[0,27,12,0,28,22,0,0,[1,1438,0],[[1438,2,29]]],[0,11,12,0,13,30,0,0,[1,1438,0],[]],[0,31,12,0,32,33,0,0,[1,1439,0],[]]]]]]],[],[12,12,0,0]]; +window.output["suite"] = [1,2,3,0,[],[1,0,599],[],[[4,0,0,[5],[1,111,65],[[0,6,7,0,0,8,9,0,[1,112,64],[[175,2,10]]],[0,11,12,0,13,14,0,0,[1,176,0],[]]]],[15,0,0,[],[1,176,17],[[0,16,7,0,0,8,9,0,[1,177,13],[[189,2,17]]],[0,18,0,0,0,19,0,0,[1,190,3],[[0,20,12,0,21,22,0,0,[1,190,0],[[190,2,23]]],[0,24,12,0,25,26,0,0,[1,190,0],[]],[0,24,12,0,25,26,0,0,[1,190,0],[]],[0,24,12,0,25,26,0,0,[1,191,0],[]],[0,24,12,0,25,22,0,0,[1,191,0],[]],[0,24,12,0,25,26,0,0,[1,191,0],[]],[0,24,12,0,25,26,0,0,[1,192,0],[]],[0,24,12,0,25,26,0,0,[1,192,0],[]],[0,27,12,0,28,22,0,0,[1,192,0],[[192,2,29]]],[0,11,12,0,13,30,0,0,[1,192,0],[]],[0,31,12,0,32,33,0,0,[1,193,0],[]]]]]],[34,0,0,[],[1,193,26],[[0,35,7,0,0,8,9,0,[1,194,19],[[212,2,36]]],[0,18,0,0,0,37,0,0,[1,213,7],[[0,20,12,0,21,22,0,0,[1,213,1],[[213,2,38]]],[0,24,12,0,25,26,0,0,[1,214,1],[]],[0,24,12,0,25,26,0,0,[1,215,2],[]],[0,24,12,0,25,26,0,0,[1,217,0],[]],[0,24,12,0,25,22,0,0,[1,217,0],[]],[0,24,12,0,25,26,0,0,[1,218,0],[]],[0,24,12,0,25,26,0,0,[1,218,0],[]],[0,24,12,0,25,26,0,0,[1,218,0],[]],[0,27,12,0,28,22,0,0,[1,219,0],[[219,2,29]]],[0,11,12,0,13,30,0,0,[1,219,0],[]],[0,31,12,0,32,33,0,0,[1,219,0],[]]]]]],[39,0,0,[],[1,220,18],[[0,40,7,0,0,8,9,0,[1,220,13],[[234,2,41]]],[0,18,0,0,0,42,0,0,[1,234,4],[[0,20,12,0,21,22,0,0,[1,234,0],[[235,2,43]]],[0,24,12,0,25,26,0,0,[1,235,0],[]],[0,24,12,0,25,26,0,0,[1,235,0],[]],[0,24,12,0,25,26,0,0,[1,235,0],[]],[0,24,12,0,25,22,0,0,[1,235,1],[]],[0,24,12,0,25,26,0,0,[1,237,0],[]],[0,24,12,0,25,26,0,0,[1,237,0],[]],[0,24,12,0,25,26,0,0,[1,237,0],[]],[0,27,12,0,28,22,0,0,[1,237,0],[[237,2,29]]],[0,11,12,0,13,30,0,0,[1,238,0],[]],[0,31,12,0,32,33,0,0,[1,238,0],[]]]]]],[44,0,0,[],[1,238,19],[[0,45,7,0,0,8,9,0,[1,239,15],[[254,2,46]]],[0,18,0,0,0,47,0,0,[1,254,3],[[0,20,12,0,21,22,0,0,[1,255,0],[[255,2,48]]],[0,24,12,0,25,26,0,0,[1,255,0],[]],[0,24,12,0,25,26,0,0,[1,255,0],[]],[0,24,12,0,25,26,0,0,[1,256,0],[]],[0,24,12,0,25,22,0,0,[1,256,0],[]],[0,24,12,0,25,26,0,0,[1,256,0],[]],[0,24,12,0,25,26,0,0,[1,256,0],[]],[0,24,12,0,25,26,0,0,[1,256,0],[]],[0,27,12,0,28,22,0,0,[1,257,0],[[257,2,29]]],[0,11,12,0,13,30,0,0,[1,257,0],[]],[0,31,12,0,32,33,0,0,[1,257,0],[]]]]]],[49,0,0,[],[1,258,38],[[0,50,7,0,0,8,51,0,[1,258,13],[[271,2,52]]],[0,18,0,0,0,53,0,0,[1,272,3],[[0,20,12,0,21,22,0,0,[1,272,0],[[272,2,54]]],[0,24,12,0,25,26,0,0,[1,272,0],[]],[0,24,12,0,25,26,0,0,[1,272,0],[]],[0,24,12,0,25,26,0,0,[1,273,0],[]],[0,24,12,0,25,22,0,0,[1,273,0],[]],[0,24,12,0,25,26,0,0,[1,273,0],[]],[0,24,12,0,25,26,0,0,[1,273,0],[]],[0,24,12,0,25,26,0,0,[1,273,0],[]],[0,27,12,0,28,22,0,0,[1,274,0],[[274,2,29]]],[0,11,12,0,13,30,0,0,[1,274,0],[]],[0,31,12,0,32,33,0,0,[1,274,0],[]]]],[0,55,7,0,0,8,9,0,[1,275,18],[[292,2,56]]],[0,18,0,0,0,57,0,0,[1,292,3],[[0,20,12,0,21,22,0,0,[1,293,0],[[293,2,58]]],[0,24,12,0,25,26,0,0,[1,293,0],[]],[0,24,12,0,25,26,0,0,[1,293,0],[]],[0,24,12,0,25,26,0,0,[1,294,0],[]],[0,24,12,0,25,22,0,0,[1,294,0],[]],[0,24,12,0,25,26,0,0,[1,294,0],[]],[0,24,12,0,25,26,0,0,[1,295,0],[]],[0,24,12,0,25,26,0,0,[1,295,0],[]],[0,27,12,0,28,22,0,0,[1,295,0],[[295,2,29]]],[0,11,12,0,13,30,0,0,[1,295,0],[]],[0,31,12,0,32,33,0,0,[1,295,0],[]]]]]],[59,0,0,[],[1,296,58],[[0,60,7,0,0,8,61,0,[1,296,13],[[309,2,62]]],[0,18,0,0,0,63,0,0,[1,309,2],[[0,20,12,0,21,22,0,0,[1,309,0],[[310,2,64]]],[0,24,12,0,25,26,0,0,[1,310,0],[]],[0,24,12,0,25,26,0,0,[1,310,0],[]],[0,24,12,0,25,26,0,0,[1,310,0],[]],[0,24,12,0,25,22,0,0,[1,310,0],[]],[0,24,12,0,25,26,0,0,[1,310,0],[]],[0,24,12,0,25,26,0,0,[1,311,0],[]],[0,24,12,0,25,26,0,0,[1,311,0],[]],[0,27,12,0,28,22,0,0,[1,311,0],[[311,2,29]]],[0,11,12,0,13,30,0,0,[1,311,0],[]],[0,31,12,0,32,33,0,0,[1,311,0],[]]]],[0,65,7,0,0,8,9,0,[1,312,39],[[351,2,66]]],[0,18,0,0,0,67,0,0,[1,351,3],[[0,20,12,0,21,22,0,0,[1,352,0],[[352,2,68]]],[0,24,12,0,25,26,0,0,[1,352,0],[]],[0,24,12,0,25,26,0,0,[1,352,0],[]],[0,24,12,0,25,26,0,0,[1,352,0],[]],[0,24,12,0,25,22,0,0,[1,353,0],[]],[0,24,12,0,25,26,0,0,[1,353,0],[]],[0,24,12,0,25,26,0,0,[1,353,0],[]],[0,24,12,0,25,26,0,0,[1,353,0],[]],[0,27,12,0,28,22,0,0,[1,354,0],[[354,2,69]]],[0,11,12,0,13,30,0,0,[1,354,0],[]],[0,31,12,0,32,33,0,0,[1,354,0],[]]]]]],[70,0,0,[],[1,355,21],[[0,55,7,0,0,8,9,0,[1,355,16],[[371,2,71]]],[0,18,0,0,0,57,0,0,[1,372,4],[[0,20,12,0,21,22,0,0,[1,372,0],[[372,2,72]]],[0,24,12,0,25,26,0,0,[1,372,0],[]],[0,24,12,0,25,26,0,0,[1,373,0],[]],[0,24,12,0,25,26,0,0,[1,373,0],[]],[0,24,12,0,25,22,0,0,[1,374,0],[]],[0,24,12,0,25,26,0,0,[1,374,0],[]],[0,24,12,0,25,26,0,0,[1,374,0],[]],[0,24,12,0,25,26,0,0,[1,374,0],[]],[0,27,12,0,28,22,0,0,[1,375,0],[[375,2,29]]],[0,11,12,0,13,30,0,0,[1,375,0],[]],[0,31,12,0,32,33,0,0,[1,375,0],[]]]]]],[73,0,0,[],[1,376,59],[[0,74,7,0,0,8,75,0,[1,377,34],[[411,2,76]]],[0,18,0,0,0,77,0,0,[1,411,4],[[0,20,12,0,21,22,0,0,[1,412,0],[[412,2,78]]],[0,24,12,0,25,26,0,0,[1,413,0],[]],[0,24,12,0,25,26,0,0,[1,413,0],[]],[0,24,12,0,25,26,0,0,[1,413,0],[]],[0,24,12,0,25,22,0,0,[1,413,0],[]],[0,24,12,0,25,26,0,0,[1,414,0],[]],[0,24,12,0,25,26,0,0,[1,414,0],[]],[0,24,12,0,25,26,0,0,[1,414,0],[]],[0,27,12,0,28,22,0,0,[1,414,0],[[415,2,69]]],[0,11,12,0,13,30,0,0,[1,415,0],[]],[0,31,12,0,32,33,0,0,[1,415,0],[]]]],[0,79,7,0,0,8,9,0,[1,415,17],[[432,2,80]]],[0,18,0,0,0,81,0,0,[1,432,3],[[0,20,12,0,21,22,0,0,[1,433,0],[[433,2,82]]],[0,24,12,0,25,26,0,0,[1,433,0],[]],[0,24,12,0,25,26,0,0,[1,433,0],[]],[0,24,12,0,25,26,0,0,[1,433,0],[]],[0,24,12,0,25,22,0,0,[1,434,0],[]],[0,24,12,0,25,26,0,0,[1,434,0],[]],[0,24,12,0,25,26,0,0,[1,434,0],[]],[0,24,12,0,25,26,0,0,[1,434,0],[]],[0,27,12,0,28,22,0,0,[1,435,0],[[435,2,29]]],[0,11,12,0,13,30,0,0,[1,435,0],[]],[0,31,12,0,32,33,0,0,[1,435,0],[]]]]]],[83,0,0,[],[1,436,83],[[0,50,7,0,0,8,51,0,[1,436,13],[[449,2,52]]],[0,18,0,0,0,53,0,0,[1,449,3],[[0,20,12,0,21,22,0,0,[1,450,0],[[450,2,54]]],[0,24,12,0,25,26,0,0,[1,450,0],[]],[0,24,12,0,25,26,0,0,[1,450,0],[]],[0,24,12,0,25,26,0,0,[1,450,0],[]],[0,24,12,0,25,22,0,0,[1,451,0],[]],[0,24,12,0,25,26,0,0,[1,451,0],[]],[0,24,12,0,25,26,0,0,[1,451,0],[]],[0,24,12,0,25,26,0,0,[1,451,0],[]],[0,27,12,0,28,22,0,0,[1,451,0],[[452,2,29]]],[0,11,12,0,13,30,0,0,[1,452,0],[]],[0,31,12,0,32,33,0,0,[1,452,0],[]]]],[0,60,7,0,0,8,61,0,[1,452,12],[[464,2,62]]],[0,18,0,0,0,63,0,0,[1,465,3],[[0,20,12,0,21,22,0,0,[1,465,0],[[465,2,64]]],[0,24,12,0,25,26,0,0,[1,465,0],[]],[0,24,12,0,25,26,0,0,[1,465,0],[]],[0,24,12,0,25,26,0,0,[1,465,0],[]],[0,24,12,0,25,22,0,0,[1,466,0],[]],[0,24,12,0,25,26,0,0,[1,466,0],[]],[0,24,12,0,25,26,0,0,[1,466,0],[]],[0,24,12,0,25,26,0,0,[1,467,0],[]],[0,27,12,0,28,22,0,0,[1,467,0],[[467,2,29]]],[0,11,12,0,13,30,0,0,[1,467,0],[]],[0,31,12,0,32,33,0,0,[1,467,0],[]]]],[0,84,7,0,0,8,9,0,[1,468,48],[[516,2,85]]],[0,18,0,0,0,86,0,0,[1,516,3],[[0,20,12,0,21,22,0,0,[1,516,0],[[516,2,87]]],[0,24,12,0,25,26,0,0,[1,517,0],[]],[0,24,12,0,25,26,0,0,[1,517,0],[]],[0,24,12,0,25,26,0,0,[1,517,0],[]],[0,24,12,0,25,22,0,0,[1,517,0],[]],[0,24,12,0,25,26,0,0,[1,517,0],[]],[0,24,12,0,25,26,0,0,[1,518,0],[]],[0,24,12,0,25,26,0,0,[1,518,0],[]],[0,27,12,0,28,22,0,0,[1,518,0],[[518,2,69]]],[0,11,12,0,13,30,0,0,[1,518,0],[]],[0,31,12,0,32,33,0,0,[1,518,0],[]]]]]],[88,0,0,[],[1,519,39],[[0,89,7,0,0,8,9,0,[1,519,35],[[555,2,90]]],[0,18,0,0,0,91,0,0,[1,555,3],[[0,20,12,0,21,22,0,0,[1,556,0],[[556,2,92]]],[0,24,12,0,25,26,0,0,[1,556,0],[]],[0,24,12,0,25,26,0,0,[1,556,0],[]],[0,24,12,0,25,26,0,0,[1,556,0],[]],[0,24,12,0,25,22,0,0,[1,557,0],[]],[0,24,12,0,25,26,0,0,[1,557,0],[]],[0,24,12,0,25,26,0,0,[1,557,0],[]],[0,24,12,0,25,26,0,0,[1,557,0],[]],[0,27,12,0,28,22,0,0,[1,557,0],[[558,2,69]]],[0,11,12,0,13,30,0,0,[1,558,0],[]],[0,31,12,0,32,33,0,0,[1,558,0],[]]]]]],[93,0,0,[],[1,558,40],[[0,94,7,0,0,8,9,0,[1,559,37],[[595,2,95]]],[0,18,0,0,0,96,0,0,[1,596,2],[[0,20,12,0,21,22,0,0,[1,596,0],[[596,2,97]]],[0,24,12,0,25,26,0,0,[1,596,0],[]],[0,24,12,0,25,26,0,0,[1,596,0],[]],[0,24,12,0,25,26,0,0,[1,597,0],[]],[0,24,12,0,25,22,0,0,[1,597,0],[]],[0,24,12,0,25,26,0,0,[1,597,0],[]],[0,24,12,0,25,26,0,0,[1,597,0],[]],[0,24,12,0,25,26,0,0,[1,597,0],[]],[0,27,12,0,28,22,0,0,[1,598,0],[[598,2,69]]],[0,11,12,0,13,30,0,0,[1,598,0],[]],[0,31,12,0,32,33,0,0,[1,598,0],[]]]]]]],[],[12,12,0,0]]; </script> <script type="text/javascript"> window.output["strings"] = []; </script> <script type="text/javascript"> -window.output["strings"] = window.output["strings"].concat(["*","*Robot Framework Solidity Smart Contract Hardhat Network Ethereum Test","*/Users/jgorospe/Documents/GitHub/Robot-Framework-Solidity-Testing-Toolkit_Dotenv_WIP/solidity-hardhat-multichain-tools/robotframework-hardhat-test-keywords.robot","*../robotframework-hardhat-test-keywords.robot","*HARDHAT ETHERS.JS TEST 1 : Get the deployed smart contract using the hardhat-ethers plugin object and check the result.","*Forked_Mainnet_Test","*Get Contract","*Remote","*%{CONTRACT_ADDRESS}","*${RESULT}","*${RESULT} = {'checkContract': {'interface': {'fragments': [{'name': None, 'type': 'constructor', 'inputs': [], 'payable': False, 'stateMutability': 'nonpayable', 'gas': None, '_isFragment': True}, {'name': 'Appro...","*Should Not Contain","*BuiltIn","*<p>Fails if <code>container\x3c/code> contains <code>item\x3c/code> one or more times.\x3c/p>","*${RESULT}, errorName","*HARDHAT ETHERS.JS TEST 2 : Get token name from the deployed smart contract and check the result.","*Get Name","*${RESULT} = {'name': 'TestToken'}","*Check Smart Contract Results And Log Them","*${RESULT}, name","*Log","*<p>Logs the given message with the given level.\x3c/p>","*${HARDHAT_OUTPUT}","*{'name': 'TestToken'}","*Log To Console","*<p>Logs the given message to the console.\x3c/p>","*...","*Should Not Be Empty","*<p>Verifies that the given item is not empty.\x3c/p>","*Length is 1","*${HARDHAT_OUTPUT}, Error","*Should Contain","*<p>Fails if <code>container\x3c/code> does not contain <code>item\x3c/code> one or more times.\x3c/p>","*${HARDHAT_OUTPUT}, ${HARDHAT_CHECK}","*HARDHAT ETHERS.JS TEST 3 : Get token symbol from the deployed smart contract and check the result.","*Get Symbol","*${RESULT} = {'symbol': 'TEST'}","*${RESULT}, symbol","*{'symbol': 'TEST'}","*HARDHAT ETHERS.JS TEST 4 : Get the decimals from the deployed smart contract and check the result.","*Get Default Decimals","*${RESULT} = {'decimals': 18}","*${RESULT}, decimals","*{'decimals': 18}","*HARDHAT ETHERS.JS TEST 5 : Get total token supply from the deployed smart contract and check the result.","*Get Total Supply","*${RESULT} = {'totalSupplyFormatUnits': '1000000.0'}","*${RESULT}, totalSupplyFormatUnits","*{'totalSupplyFormatUnits': '1000000.0'}","*HARDHAT ETHERS.JS TEST 6 : Get balance of tokens from the address of the deployed smart contract owner and check the result.","*Get Token Balance Address","*${TOKEN_ADDRESS}","*${TOKEN_ADDRESS} = {'testTokenAddress': '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'}","*${TOKEN_ADDRESS}, testTokenAddress","*{'testTokenAddress': '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'}","*Get Balance Of Address","*${RESULT} = {'addressBalance': '1000000.0'}","*${RESULT}, addressBalance","*{'addressBalance': '1000000.0'}","*HARDHAT ETHERS.JS TEST 7 : Transfer tokens to a target address from the contract owner address and check the result.","*Get Receiver Target Address","*${RECEIVING_ADDRESS}","*${RECEIVING_ADDRESS} = {'receivingAddress': '0x70997970C51812dc3A010C7d01b50e0d17dc79C8'}","*${RECEIVING_ADDRESS}, receivingAddress","*{'receivingAddress': '0x70997970C51812dc3A010C7d01b50e0d17dc79C8'}","*Transfer To Target Address","*${RESULT} = {'receiverBalanceFormatUnits': '80000.0'}","*${RESULT}, receiverBalanceFormatUnits","*{'receiverBalanceFormatUnits': '80000.0'}","*HARDHAT ETHERS.JS TEST 8 : Get balance of tokens from the address of the deployed smart contract owner after sending tokens to another address and check the result.","*${RESULT} = {'addressBalance': '920000.0'}","*{'addressBalance': '920000.0'}","*HARDHAT ETHERS.JS TEST 9 : Approve a specific amount of tokens for a target address, show the allowance, and check the result.","*Approve Spender Amount","*${APPROVAL_OUTPUT}","*${APPROVAL_OUTPUT} = {'approvalSuccess': 'Amount has been approved'}","*${APPROVAL_OUTPUT}, approvalSuccess","*{'approvalSuccess': 'Amount has been approved'}","*Show Spender Allowance","*${RESULT} = {'showAllowance': '200000.0'}","*${RESULT}, showAllowance","*{'showAllowance': '200000.0'}","*HARDHAT ETHERS.JS TEST 10 : Transfer tokens from a target address to the contract owner address and check the result.","*Transfer From Target Address","*${RESULT} = {'senderBalanceFormatUnits': '79300.0'}","*${RESULT}, senderBalanceFormatUnits","*{'senderBalanceFormatUnits': '79300.0'}","*HARDHAT ETHERS.JS TEST 11 : Increase the allowance of the spender account and check the result.","*Increase Spender Allowance","*${RESULT} = {'showIncreasedAllowance': '201300.0'}","*${RESULT}, showIncreasedAllowance","*{'showIncreasedAllowance': '201300.0'}","*HARDHAT ETHERS.JS TEST 12 : Decrease the allowance of the spender account and check the result.","*Decrease Spender Allowance","*${RESULT} = {'showDecreasedAllowance': '200300.0'}","*${RESULT}, showDecreasedAllowance","*{'showDecreasedAllowance': '200300.0'}"]); +window.output["strings"] = window.output["strings"].concat(["*","*Robot Framework Solidity Smart Contract Hardhat Network Ethereum Test","*/Users/jgorospe/Documents/GitHub/Robot-Framework-Solidity-Testing-Toolkit_Gas-Report-Enhancement/solidity-hardhat-multichain-tools/robotframework-hardhat-test-keywords.robot","*../robotframework-hardhat-test-keywords.robot","*HARDHAT ETHERS.JS TEST 1 : Get the deployed smart contract using the hardhat-ethers plugin object and check the result.","*Forked_Mainnet_Test","*Get Contract","*Remote","*%{CONTRACT_ADDRESS}","*${RESULT}","*${RESULT} = {'checkContract': {'interface': {'fragments': [{'name': None, 'type': 'constructor', 'inputs': [], 'payable': False, 'stateMutability': 'nonpayable', 'gas': None, '_isFragment': True}, {'name': 'Appro...","*Should Not Contain","*BuiltIn","*<p>Fails if <code>container\x3c/code> contains <code>item\x3c/code> one or more times.\x3c/p>","*${RESULT} errorName","*HARDHAT ETHERS.JS TEST 2 : Get token name from the deployed smart contract and check the result.","*Get Name","*${RESULT} = {'name': 'TestToken'}","*Check Smart Contract Results And Log Them","*${RESULT} name","*Log","*<p>Logs the given message with the given level.\x3c/p>","*${HARDHAT_OUTPUT}","*{'name': 'TestToken'}","*Log To Console","*<p>Logs the given message to the console.\x3c/p>","*...","*Should Not Be Empty","*<p>Verifies that the given item is not empty.\x3c/p>","*Length is 1.","*${HARDHAT_OUTPUT} Error","*Should Contain","*<p>Fails if <code>container\x3c/code> does not contain <code>item\x3c/code> one or more times.\x3c/p>","*${HARDHAT_OUTPUT} ${HARDHAT_CHECK}","*HARDHAT ETHERS.JS TEST 3 : Get token symbol from the deployed smart contract and check the result.","*Get Symbol","*${RESULT} = {'symbol': 'TEST'}","*${RESULT} symbol","*{'symbol': 'TEST'}","*HARDHAT ETHERS.JS TEST 4 : Get the decimals from the deployed smart contract and check the result.","*Get Default Decimals","*${RESULT} = {'decimals': 18}","*${RESULT} decimals","*{'decimals': 18}","*HARDHAT ETHERS.JS TEST 5 : Get total token supply from the deployed smart contract and check the result.","*Get Total Supply","*${RESULT} = {'totalSupplyFormatUnits': '1000000.0'}","*${RESULT} totalSupplyFormatUnits","*{'totalSupplyFormatUnits': '1000000.0'}","*HARDHAT ETHERS.JS TEST 6 : Get balance of tokens from the address of the deployed smart contract owner and check the result.","*Get Token Balance Address","*${TOKEN_ADDRESS}","*${TOKEN_ADDRESS} = {'testTokenAddress': '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'}","*${TOKEN_ADDRESS} testTokenAddress","*{'testTokenAddress': '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'}","*Get Balance Of Address","*${RESULT} = {'addressBalance': '920700.0'}","*${RESULT} addressBalance","*{'addressBalance': '920700.0'}","*HARDHAT ETHERS.JS TEST 7 : Transfer tokens to a target address from the contract owner address and check the result. Show the amount of gas that was used.","*Get Receiver Target Address","*${RECEIVING_ADDRESS}","*${RECEIVING_ADDRESS} = {'receivingAddress': '0x70997970C51812dc3A010C7d01b50e0d17dc79C8'}","*${RECEIVING_ADDRESS} receivingAddress","*{'receivingAddress': '0x70997970C51812dc3A010C7d01b50e0d17dc79C8'}","*Transfer To Target Address","*${RESULT} = {'receiverBalanceFormatUnits': '159300.0', 'gasReport': 'Gas used for transferToTargetAddress: 35111'}","*${RESULT} receiverBalanceFormatUnits","*{'receiverBalanceFormatUnits': '159300.0', 'gasReport': 'Gas used for transferToTargetAddress: 35111'}","*Length is 2.","*HARDHAT ETHERS.JS TEST 8 : Get balance of tokens from the address of the deployed smart contract owner after sending tokens to another address and check the result.","*${RESULT} = {'addressBalance': '840700.0'}","*{'addressBalance': '840700.0'}","*HARDHAT ETHERS.JS TEST 9 : Approve a specific amount of tokens for a target address, show the allowance, and check the result. Show the amount of gas that was used.","*Approve Spender Amount","*${APPROVAL_OUTPUT}","*${APPROVAL_OUTPUT} = {'approvalSuccess': 'Amount has been approved', 'gasReport': 'Gas used for approveSpenderAmount: 29800'}","*${APPROVAL_OUTPUT} approvalSuccess","*{'approvalSuccess': 'Amount has been approved', 'gasReport': 'Gas used for approveSpenderAmount: 29800'}","*Show Spender Allowance","*${RESULT} = {'showAllowance': '200000.0'}","*${RESULT} showAllowance","*{'showAllowance': '200000.0'}","*HARDHAT ETHERS.JS TEST 10 : Transfer tokens from a target address to the contract owner address and check the result. Show the amount of gas that was used.","*Transfer From Target Address","*${RESULT} = {'senderBalanceFormatUnits': '158600.0', 'gasReport': 'Gas used for transferFromTargetAddres: 43268'}","*${RESULT} senderBalanceFormatUnits","*{'senderBalanceFormatUnits': '158600.0', 'gasReport': 'Gas used for transferFromTargetAddres: 43268'}","*HARDHAT ETHERS.JS TEST 11 : Increase the allowance of the spender account and check the result. Show the amount of gas that was used.","*Increase Spender Allowance","*${RESULT} = {'showIncreasedAllowance': '201300.0', 'gasReport': 'Gas used for increaseSpenderAllowance: 30193'}","*${RESULT} showIncreasedAllowance","*{'showIncreasedAllowance': '201300.0', 'gasReport': 'Gas used for increaseSpenderAllowance: 30193'}","*HARDHAT ETHERS.JS TEST 12 : Decrease the allowance of the spender account and check the result. Show the amount of gas that was used.","*Decrease Spender Allowance","*${RESULT} = {'showDecreasedAllowance': '200300.0', 'gasReport': 'Gas used for decreaseSpenderAllowance: 30116'}","*${RESULT} showDecreasedAllowance","*{'showDecreasedAllowance': '200300.0', 'gasReport': 'Gas used for decreaseSpenderAllowance: 30116'}"]); </script> <script type="text/javascript"> -window.output["stats"] = [[{"elapsed":"00:00:01","fail":0,"label":"All Tests","pass":12,"skip":0}],[{"elapsed":"00:00:01","fail":0,"label":"Forked_Mainnet_Test","pass":1,"skip":0}],[{"elapsed":"00:00:01","fail":0,"id":"s1","label":"Robot Framework Solidity Smart Contract Hardhat Network Ethereum Test","name":"Robot Framework Solidity Smart Contract Hardhat Network Ethereum Test","pass":12,"skip":0}]]; +window.output["stats"] = [[{"elapsed":"00:00:00","fail":0,"label":"All Tests","pass":12,"skip":0}],[{"elapsed":"00:00:00","fail":0,"label":"Forked_Mainnet_Test","pass":1,"skip":0}],[{"elapsed":"00:00:01","fail":0,"id":"s1","label":"Robot Framework Solidity Smart Contract Hardhat Network Ethereum Test","name":"Robot Framework Solidity Smart Contract Hardhat Network Ethereum Test","pass":12,"skip":0}]]; </script> <script type="text/javascript"> window.output["errors"] = []; </script> <script type="text/javascript"> -window.output["baseMillis"] = 1675923409246; +window.output["baseMillis"] = 1712829163113; </script> <script type="text/javascript"> -window.output["generated"] = 1457; +window.output["generated"] = 611; </script> <script type="text/javascript"> window.output["expand_keywords"] = null; @@ -1831,7 +2109,7 @@ </script> <title></title> </head> -<body> +<body data-theme="dark"> <div id="javascript-disabled"> <h1>Opening Robot Framework log failed</h1> <ul> @@ -1841,12 +2119,13 @@ <h1>Opening Robot Framework log failed</h1> </ul> </div> <script type="text/javascript">removeJavaScriptDisabledWarning();</script> - <div id="header"></div> <div id="statistics-container"></div> <script type="text/javascript"> $(document).ready(function() { + storage.init(); + theme.init(storage); try { var topsuite = window.testdata.suite(); } catch (error) { @@ -1854,6 +2133,7 @@ <h1>Opening Robot Framework log failed</h1> return; } initLayout(topsuite.name, 'Log'); + theme.reflectPreference(); addStatistics(); addErrors(); addExecutionLog(topsuite); @@ -1894,25 +2174,6 @@ <h1>Opening Robot Framework log failed</h1> // Errors may have moved scroll position. Resetting location re-scrolls. if (window.location.hash) window.location.replace(window.location.hash); - highlightLinkTarget(); - } -} - -function highlightLinkTarget() { - if (window.location.hash) { - var target = $(window.location.hash); - highlight(target); - } -} - -function highlight(element, color) { - if (color === undefined) - color = 242; - if (color < 255) { - element.css({'background-color': 'rgb('+color+','+color+','+color+')'}); - setTimeout(function () { highlight(element, color+1); }, 300); - } else { - element.css({'background-color': ''}); } } @@ -1928,9 +2189,8 @@ <h1>Opening Robot Framework log failed</h1> util.map(ids, expandElementWithId); if (ids.length) { expandFailed(window.testdata.findLoaded(util.last(ids))); - window.location.hash = ''; window.location.hash = id; - highlightLinkTarget(); + document.getElementById(id).scrollIntoView(); } }); } @@ -2128,8 +2388,9 @@ <h2>{{= testOrTask('{Test}')}} Execution Errors</h2> <div class="element-header-left" title="${type} {{if name}}{{html fullName}} {{/if}}[${status}]"> <span class="elapsed" title="Elapsed time">${times.elapsedTime}</span> <span class="label ${status.toLowerCase()}">${type}</span> - <span>{{html assign}}</span> + <span class="assign">{{html assign}}</span> <span class="name"><span class="parent-name">{{html libname}}{{if libname}} . {{/if}}</span>{{html name}}</span> + <span class="arg">{{html arguments}}</span> </div> <div class="element-header-right" onclick="stopPropagation(event)"> @@ -2163,6 +2424,12 @@ <h2>{{= testOrTask('{Test}')}} Execution Errors</h2> <th>Start / End / Elapsed:</th> <td>${times.startTime} / ${times.endTime} / ${times.elapsedTime}</td> </tr> + {{if message()}} + <tr> + <th>Message:</th> + <td class="message">{{html message()}}</td> + </tr> + {{/if}} </table> </div> </div> @@ -2185,6 +2452,7 @@ <h2>{{= testOrTask('{Test}')}} Execution Errors</h2> <div id="log-level-selector"> Log level: <select onchange="logLevelSelected(this.options[selectedIndex].value)"> + <option value="3">WARN</option> <option value="2">INFO</option> <option value="1">DEBUG</option> {{if showTrace()}}<option value="0">TRACE</option>{{/if}} diff --git a/solidity-hardhat-multichain-tools/logs/smart-contract-hardhat-Ethereum-tests-output.xml b/solidity-hardhat-multichain-tools/logs/smart-contract-hardhat-Ethereum-tests-output.xml index 9a1082f..ece9714 100644 --- a/solidity-hardhat-multichain-tools/logs/smart-contract-hardhat-Ethereum-tests-output.xml +++ b/solidity-hardhat-multichain-tools/logs/smart-contract-hardhat-Ethereum-tests-output.xml @@ -1,1176 +1,1176 @@ <?xml version="1.0" encoding="UTF-8"?> -<robot generator="Robot 6.0.2 (Python 3.9.12 on darwin)" generated="20230209 01:16:49.245" rpa="false" schemaversion="3"> -<suite id="s1" name="Robot Framework Solidity Smart Contract Hardhat Network Ethereum Test" source="/Users/jgorospe/Documents/GitHub/Robot-Framework-Solidity-Testing-Toolkit_Dotenv_WIP/solidity-hardhat-multichain-tools/robotframework-hardhat-test-keywords.robot"> +<robot generator="Robot 7.0 (Python 3.11.8 on darwin)" generated="2024-04-11T05:52:43.110632" rpa="false" schemaversion="5"> +<suite id="s1" name="Robot Framework Solidity Smart Contract Hardhat Network Ethereum Test" source="/Users/jgorospe/Documents/GitHub/Robot-Framework-Solidity-Testing-Toolkit_Gas-Report-Enhancement/solidity-hardhat-multichain-tools/robotframework-hardhat-test-keywords.robot"> <test id="s1-t1" name="HARDHAT ETHERS.JS TEST 1 : Get the deployed smart contract using the hardhat-ethers plugin object and check the result." line="9"> -<kw name="Get Contract" library="Remote"> +<kw name="Get Contract" owner="Remote"> +<msg time="2024-04-11T05:52:43.288293" level="INFO">${RESULT} = {'checkContract': {'interface': {'fragments': [{'name': None, 'type': 'constructor', 'inputs': [], 'payable': False, 'stateMutability': 'nonpayable', 'gas': None, '_isFragment': True}, {'name': 'Appro...</msg> <var>${RESULT}</var> <arg>%{CONTRACT_ADDRESS}</arg> -<msg timestamp="20230209 01:16:49.967" level="INFO">${RESULT} = {'checkContract': {'interface': {'fragments': [{'name': None, 'type': 'constructor', 'inputs': [], 'payable': False, 'stateMutability': 'nonpayable', 'gas': None, '_isFragment': True}, {'name': 'Appro...</msg> -<status status="PASS" starttime="20230209 01:16:49.382" endtime="20230209 01:16:49.967"/> +<status status="PASS" start="2024-04-11T05:52:43.224505" elapsed="0.063840"/> </kw> -<kw name="Should Not Contain" library="BuiltIn"> +<kw name="Should Not Contain" owner="BuiltIn"> <arg>${RESULT}</arg> <arg>errorName</arg> <doc>Fails if ``container`` contains ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:49.967" endtime="20230209 01:16:49.968"/> +<status status="PASS" start="2024-04-11T05:52:43.288616" elapsed="0.000206"/> </kw> <tag>Forked_Mainnet_Test</tag> -<status status="PASS" starttime="20230209 01:16:49.381" endtime="20230209 01:16:49.968"/> +<status status="PASS" start="2024-04-11T05:52:43.223791" elapsed="0.065183"/> </test> <test id="s1-t2" name="HARDHAT ETHERS.JS TEST 2 : Get token name from the deployed smart contract and check the result." line="14"> -<kw name="Get Name" library="Remote"> +<kw name="Get Name" owner="Remote"> +<msg time="2024-04-11T05:52:43.302046" level="INFO">${RESULT} = {'name': 'TestToken'}</msg> <var>${RESULT}</var> <arg>%{CONTRACT_ADDRESS}</arg> -<msg timestamp="20230209 01:16:50.002" level="INFO">${RESULT} = {'name': 'TestToken'}</msg> -<status status="PASS" starttime="20230209 01:16:49.969" endtime="20230209 01:16:50.002"/> +<status status="PASS" start="2024-04-11T05:52:43.289549" elapsed="0.012577"/> </kw> <kw name="Check Smart Contract Results And Log Them"> -<arg>${RESULT}</arg> -<arg>name</arg> -<kw name="Log" library="BuiltIn"> +<kw name="Log" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.303059" level="INFO">{'name': 'TestToken'}</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message with the given level.</doc> -<msg timestamp="20230209 01:16:50.003" level="INFO">{'name': 'TestToken'}</msg> -<status status="PASS" starttime="20230209 01:16:50.003" endtime="20230209 01:16:50.003"/> +<status status="PASS" start="2024-04-11T05:52:43.302906" elapsed="0.000201"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.003" endtime="20230209 01:16:50.004"/> +<status status="PASS" start="2024-04-11T05:52:43.303201" elapsed="0.000152"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.004" endtime="20230209 01:16:50.004"/> +<status status="PASS" start="2024-04-11T05:52:43.303462" elapsed="0.000164"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.004" endtime="20230209 01:16:50.004"/> +<status status="PASS" start="2024-04-11T05:52:43.303776" elapsed="0.000207"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.004" endtime="20230209 01:16:50.004"/> +<status status="PASS" start="2024-04-11T05:52:43.304152" elapsed="0.000188"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.004" endtime="20230209 01:16:50.005"/> +<status status="PASS" start="2024-04-11T05:52:43.304463" elapsed="0.000115"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.005" endtime="20230209 01:16:50.005"/> +<status status="PASS" start="2024-04-11T05:52:43.304688" elapsed="0.000107"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.005" endtime="20230209 01:16:50.005"/> +<status status="PASS" start="2024-04-11T05:52:43.304905" elapsed="0.000113"/> </kw> -<kw name="Should Not Be Empty" library="BuiltIn"> +<kw name="Should Not Be Empty" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.305258" level="INFO">Length is 1.</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Verifies that the given item is not empty.</doc> -<msg timestamp="20230209 01:16:50.005" level="INFO">Length is 1</msg> -<status status="PASS" starttime="20230209 01:16:50.005" endtime="20230209 01:16:50.005"/> +<status status="PASS" start="2024-04-11T05:52:43.305122" elapsed="0.000175"/> </kw> -<kw name="Should Not Contain" library="BuiltIn"> +<kw name="Should Not Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>Error</arg> <doc>Fails if ``container`` contains ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.005" endtime="20230209 01:16:50.006"/> +<status status="PASS" start="2024-04-11T05:52:43.305391" elapsed="0.000117"/> </kw> -<kw name="Should Contain" library="BuiltIn"> +<kw name="Should Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>${HARDHAT_CHECK}</arg> <doc>Fails if ``container`` does not contain ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.006" endtime="20230209 01:16:50.006"/> +<status status="PASS" start="2024-04-11T05:52:43.305585" elapsed="0.000132"/> </kw> -<status status="PASS" starttime="20230209 01:16:50.003" endtime="20230209 01:16:50.006"/> +<arg>${RESULT}</arg> +<arg>name</arg> +<status status="PASS" start="2024-04-11T05:52:43.302556" elapsed="0.003222"/> </kw> -<status status="PASS" starttime="20230209 01:16:49.969" endtime="20230209 01:16:50.006"/> +<status status="PASS" start="2024-04-11T05:52:43.289196" elapsed="0.016778"/> </test> <test id="s1-t3" name="HARDHAT ETHERS.JS TEST 3 : Get token symbol from the deployed smart contract and check the result." line="18"> -<kw name="Get Symbol" library="Remote"> +<kw name="Get Symbol" owner="Remote"> +<msg time="2024-04-11T05:52:43.325180" level="INFO">${RESULT} = {'symbol': 'TEST'}</msg> <var>${RESULT}</var> <arg>%{CONTRACT_ADDRESS}</arg> -<msg timestamp="20230209 01:16:50.031" level="INFO">${RESULT} = {'symbol': 'TEST'}</msg> -<status status="PASS" starttime="20230209 01:16:50.007" endtime="20230209 01:16:50.031"/> +<status status="PASS" start="2024-04-11T05:52:43.306723" elapsed="0.018514"/> </kw> <kw name="Check Smart Contract Results And Log Them"> -<arg>${RESULT}</arg> -<arg>symbol</arg> -<kw name="Log" library="BuiltIn"> +<kw name="Log" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.326477" level="INFO">{'symbol': 'TEST'}</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message with the given level.</doc> -<msg timestamp="20230209 01:16:50.032" level="INFO">{'symbol': 'TEST'}</msg> -<status status="PASS" starttime="20230209 01:16:50.032" endtime="20230209 01:16:50.032"/> +<status status="PASS" start="2024-04-11T05:52:43.326180" elapsed="0.000548"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.032" endtime="20230209 01:16:50.032"/> +<status status="PASS" start="2024-04-11T05:52:43.327055" elapsed="0.000530"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.032" endtime="20230209 01:16:50.032"/> +<status status="PASS" start="2024-04-11T05:52:43.328257" elapsed="0.001502"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.032" endtime="20230209 01:16:50.033"/> +<status status="PASS" start="2024-04-11T05:52:43.330083" elapsed="0.000254"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.033" endtime="20230209 01:16:50.033"/> +<status status="PASS" start="2024-04-11T05:52:43.330470" elapsed="0.000250"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.033" endtime="20230209 01:16:50.033"/> +<status status="PASS" start="2024-04-11T05:52:43.330861" elapsed="0.000174"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.033" endtime="20230209 01:16:50.033"/> +<status status="PASS" start="2024-04-11T05:52:43.331228" elapsed="0.000169"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.034" endtime="20230209 01:16:50.034"/> +<status status="PASS" start="2024-04-11T05:52:43.331489" elapsed="0.000118"/> </kw> -<kw name="Should Not Be Empty" library="BuiltIn"> +<kw name="Should Not Be Empty" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.331820" level="INFO">Length is 1.</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Verifies that the given item is not empty.</doc> -<msg timestamp="20230209 01:16:50.034" level="INFO">Length is 1</msg> -<status status="PASS" starttime="20230209 01:16:50.034" endtime="20230209 01:16:50.034"/> +<status status="PASS" start="2024-04-11T05:52:43.331687" elapsed="0.000173"/> </kw> -<kw name="Should Not Contain" library="BuiltIn"> +<kw name="Should Not Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>Error</arg> <doc>Fails if ``container`` contains ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.034" endtime="20230209 01:16:50.034"/> +<status status="PASS" start="2024-04-11T05:52:43.331938" elapsed="0.000119"/> </kw> -<kw name="Should Contain" library="BuiltIn"> +<kw name="Should Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>${HARDHAT_CHECK}</arg> <doc>Fails if ``container`` does not contain ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.034" endtime="20230209 01:16:50.035"/> +<status status="PASS" start="2024-04-11T05:52:43.332139" elapsed="0.000135"/> </kw> -<status status="PASS" starttime="20230209 01:16:50.031" endtime="20230209 01:16:50.035"/> +<arg>${RESULT}</arg> +<arg>symbol</arg> +<status status="PASS" start="2024-04-11T05:52:43.325654" elapsed="0.006683"/> </kw> -<status status="PASS" starttime="20230209 01:16:50.007" endtime="20230209 01:16:50.035"/> +<status status="PASS" start="2024-04-11T05:52:43.306299" elapsed="0.026188"/> </test> <test id="s1-t4" name="HARDHAT ETHERS.JS TEST 4 : Get the decimals from the deployed smart contract and check the result." line="22"> -<kw name="Get Default Decimals" library="Remote"> +<kw name="Get Default Decimals" owner="Remote"> +<msg time="2024-04-11T05:52:43.346706" level="INFO">${RESULT} = {'decimals': 18}</msg> <var>${RESULT}</var> <arg>%{CONTRACT_ADDRESS}</arg> -<msg timestamp="20230209 01:16:50.056" level="INFO">${RESULT} = {'decimals': 18}</msg> -<status status="PASS" starttime="20230209 01:16:50.036" endtime="20230209 01:16:50.056"/> +<status status="PASS" start="2024-04-11T05:52:43.333332" elapsed="0.013414"/> </kw> <kw name="Check Smart Contract Results And Log Them"> -<arg>${RESULT}</arg> -<arg>decimals</arg> -<kw name="Log" library="BuiltIn"> +<kw name="Log" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.347517" level="INFO">{'decimals': 18}</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message with the given level.</doc> -<msg timestamp="20230209 01:16:50.057" level="INFO">{'decimals': 18}</msg> -<status status="PASS" starttime="20230209 01:16:50.057" endtime="20230209 01:16:50.057"/> +<status status="PASS" start="2024-04-11T05:52:43.347374" elapsed="0.000187"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.057" endtime="20230209 01:16:50.057"/> +<status status="PASS" start="2024-04-11T05:52:43.347754" elapsed="0.000138"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.057" endtime="20230209 01:16:50.057"/> +<status status="PASS" start="2024-04-11T05:52:43.347983" elapsed="0.000122"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.057" endtime="20230209 01:16:50.058"/> +<status status="PASS" start="2024-04-11T05:52:43.348194" elapsed="0.000136"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.058" endtime="20230209 01:16:50.058"/> +<status status="PASS" start="2024-04-11T05:52:43.348408" elapsed="0.001262"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.058" endtime="20230209 01:16:50.058"/> +<status status="PASS" start="2024-04-11T05:52:43.349764" elapsed="0.000124"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.058" endtime="20230209 01:16:50.058"/> +<status status="PASS" start="2024-04-11T05:52:43.349971" elapsed="0.000112"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.058" endtime="20230209 01:16:50.059"/> +<status status="PASS" start="2024-04-11T05:52:43.350160" elapsed="0.000107"/> </kw> -<kw name="Should Not Be Empty" library="BuiltIn"> +<kw name="Should Not Be Empty" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.350449" level="INFO">Length is 1.</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Verifies that the given item is not empty.</doc> -<msg timestamp="20230209 01:16:50.059" level="INFO">Length is 1</msg> -<status status="PASS" starttime="20230209 01:16:50.059" endtime="20230209 01:16:50.059"/> +<status status="PASS" start="2024-04-11T05:52:43.350341" elapsed="0.000144"/> </kw> -<kw name="Should Not Contain" library="BuiltIn"> +<kw name="Should Not Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>Error</arg> <doc>Fails if ``container`` contains ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.059" endtime="20230209 01:16:50.059"/> +<status status="PASS" start="2024-04-11T05:52:43.350558" elapsed="0.000115"/> </kw> -<kw name="Should Contain" library="BuiltIn"> +<kw name="Should Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>${HARDHAT_CHECK}</arg> <doc>Fails if ``container`` does not contain ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.059" endtime="20230209 01:16:50.059"/> +<status status="PASS" start="2024-04-11T05:52:43.350750" elapsed="0.000129"/> </kw> -<status status="PASS" starttime="20230209 01:16:50.056" endtime="20230209 01:16:50.059"/> +<arg>${RESULT}</arg> +<arg>decimals</arg> +<status status="PASS" start="2024-04-11T05:52:43.347037" elapsed="0.003897"/> </kw> -<status status="PASS" starttime="20230209 01:16:50.035" endtime="20230209 01:16:50.060"/> +<status status="PASS" start="2024-04-11T05:52:43.332841" elapsed="0.018222"/> </test> <test id="s1-t5" name="HARDHAT ETHERS.JS TEST 5 : Get total token supply from the deployed smart contract and check the result." line="26"> -<kw name="Get Total Supply" library="Remote"> +<kw name="Get Total Supply" owner="Remote"> +<msg time="2024-04-11T05:52:43.367026" level="INFO">${RESULT} = {'totalSupplyFormatUnits': '1000000.0'}</msg> <var>${RESULT}</var> <arg>%{CONTRACT_ADDRESS}</arg> -<msg timestamp="20230209 01:16:50.091" level="INFO">${RESULT} = {'totalSupplyFormatUnits': '1000000.0'}</msg> -<status status="PASS" starttime="20230209 01:16:50.060" endtime="20230209 01:16:50.091"/> +<status status="PASS" start="2024-04-11T05:52:43.351611" elapsed="0.015459"/> </kw> <kw name="Check Smart Contract Results And Log Them"> -<arg>${RESULT}</arg> -<arg>totalSupplyFormatUnits</arg> -<kw name="Log" library="BuiltIn"> +<kw name="Log" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.367994" level="INFO">{'totalSupplyFormatUnits': '1000000.0'}</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message with the given level.</doc> -<msg timestamp="20230209 01:16:50.092" level="INFO">{'totalSupplyFormatUnits': '1000000.0'}</msg> -<status status="PASS" starttime="20230209 01:16:50.092" endtime="20230209 01:16:50.092"/> +<status status="PASS" start="2024-04-11T05:52:43.367841" elapsed="0.000207"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.092" endtime="20230209 01:16:50.092"/> +<status status="PASS" start="2024-04-11T05:52:43.368145" elapsed="0.000153"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.093" endtime="20230209 01:16:50.093"/> +<status status="PASS" start="2024-04-11T05:52:43.368386" elapsed="0.000125"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.093" endtime="20230209 01:16:50.093"/> +<status status="PASS" start="2024-04-11T05:52:43.368605" elapsed="0.000106"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.093" endtime="20230209 01:16:50.093"/> +<status status="PASS" start="2024-04-11T05:52:43.368786" elapsed="0.000141"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.093" endtime="20230209 01:16:50.093"/> +<status status="PASS" start="2024-04-11T05:52:43.369002" elapsed="0.000105"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.093" endtime="20230209 01:16:50.094"/> +<status status="PASS" start="2024-04-11T05:52:43.369183" elapsed="0.000103"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.094" endtime="20230209 01:16:50.094"/> +<status status="PASS" start="2024-04-11T05:52:43.369445" elapsed="0.000142"/> </kw> -<kw name="Should Not Be Empty" library="BuiltIn"> +<kw name="Should Not Be Empty" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.369791" level="INFO">Length is 1.</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Verifies that the given item is not empty.</doc> -<msg timestamp="20230209 01:16:50.094" level="INFO">Length is 1</msg> -<status status="PASS" starttime="20230209 01:16:50.094" endtime="20230209 01:16:50.094"/> +<status status="PASS" start="2024-04-11T05:52:43.369674" elapsed="0.000153"/> </kw> -<kw name="Should Not Contain" library="BuiltIn"> +<kw name="Should Not Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>Error</arg> <doc>Fails if ``container`` contains ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.094" endtime="20230209 01:16:50.094"/> +<status status="PASS" start="2024-04-11T05:52:43.369904" elapsed="0.000116"/> </kw> -<kw name="Should Contain" library="BuiltIn"> +<kw name="Should Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>${HARDHAT_CHECK}</arg> <doc>Fails if ``container`` does not contain ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.094" endtime="20230209 01:16:50.095"/> +<status status="PASS" start="2024-04-11T05:52:43.370099" elapsed="0.000132"/> </kw> -<status status="PASS" starttime="20230209 01:16:50.092" endtime="20230209 01:16:50.095"/> +<arg>${RESULT}</arg> +<arg>totalSupplyFormatUnits</arg> +<status status="PASS" start="2024-04-11T05:52:43.367416" elapsed="0.002876"/> </kw> -<status status="PASS" starttime="20230209 01:16:50.060" endtime="20230209 01:16:50.095"/> +<status status="PASS" start="2024-04-11T05:52:43.351265" elapsed="0.019169"/> </test> <test id="s1-t6" name="HARDHAT ETHERS.JS TEST 6 : Get balance of tokens from the address of the deployed smart contract owner and check the result." line="30"> -<kw name="Get Token Balance Address" library="Remote"> +<kw name="Get Token Balance Address" owner="Remote"> +<msg time="2024-04-11T05:52:43.384175" level="INFO">${TOKEN_ADDRESS} = {'testTokenAddress': '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'}</msg> <var>${TOKEN_ADDRESS}</var> <arg>%{CONTRACT_ADDRESS}</arg> -<msg timestamp="20230209 01:16:50.114" level="INFO">${TOKEN_ADDRESS} = {'testTokenAddress': '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'}</msg> -<status status="PASS" starttime="20230209 01:16:50.095" endtime="20230209 01:16:50.115"/> +<status status="PASS" start="2024-04-11T05:52:43.371029" elapsed="0.013190"/> </kw> <kw name="Check Smart Contract Results And Log Them"> -<arg>${TOKEN_ADDRESS}</arg> -<arg>testTokenAddress</arg> -<kw name="Log" library="BuiltIn"> +<kw name="Log" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.385069" level="INFO">{'testTokenAddress': '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'}</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message with the given level.</doc> -<msg timestamp="20230209 01:16:50.115" level="INFO">{'testTokenAddress': '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'}</msg> -<status status="PASS" starttime="20230209 01:16:50.115" endtime="20230209 01:16:50.115"/> +<status status="PASS" start="2024-04-11T05:52:43.384934" elapsed="0.000183"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.115" endtime="20230209 01:16:50.116"/> +<status status="PASS" start="2024-04-11T05:52:43.385206" elapsed="0.000140"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.116" endtime="20230209 01:16:50.116"/> +<status status="PASS" start="2024-04-11T05:52:43.385423" elapsed="0.000109"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.116" endtime="20230209 01:16:50.116"/> +<status status="PASS" start="2024-04-11T05:52:43.385608" elapsed="0.000104"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.116" endtime="20230209 01:16:50.117"/> +<status status="PASS" start="2024-04-11T05:52:43.385788" elapsed="0.000140"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.117" endtime="20230209 01:16:50.117"/> +<status status="PASS" start="2024-04-11T05:52:43.386043" elapsed="0.000132"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.117" endtime="20230209 01:16:50.117"/> +<status status="PASS" start="2024-04-11T05:52:43.386258" elapsed="0.000115"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.118" endtime="20230209 01:16:50.118"/> +<status status="PASS" start="2024-04-11T05:52:43.386451" elapsed="0.000109"/> </kw> -<kw name="Should Not Be Empty" library="BuiltIn"> +<kw name="Should Not Be Empty" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.386847" level="INFO">Length is 1.</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Verifies that the given item is not empty.</doc> -<msg timestamp="20230209 01:16:50.118" level="INFO">Length is 1</msg> -<status status="PASS" starttime="20230209 01:16:50.118" endtime="20230209 01:16:50.118"/> +<status status="PASS" start="2024-04-11T05:52:43.386642" elapsed="0.000246"/> </kw> -<kw name="Should Not Contain" library="BuiltIn"> +<kw name="Should Not Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>Error</arg> <doc>Fails if ``container`` contains ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.118" endtime="20230209 01:16:50.119"/> +<status status="PASS" start="2024-04-11T05:52:43.386973" elapsed="0.000212"/> </kw> -<kw name="Should Contain" library="BuiltIn"> +<kw name="Should Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>${HARDHAT_CHECK}</arg> <doc>Fails if ``container`` does not contain ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.119" endtime="20230209 01:16:50.119"/> +<status status="PASS" start="2024-04-11T05:52:43.387273" elapsed="0.000135"/> </kw> -<status status="PASS" starttime="20230209 01:16:50.115" endtime="20230209 01:16:50.120"/> +<arg>${TOKEN_ADDRESS}</arg> +<arg>testTokenAddress</arg> +<status status="PASS" start="2024-04-11T05:52:43.384538" elapsed="0.002926"/> </kw> -<kw name="Get Balance Of Address" library="Remote"> +<kw name="Get Balance Of Address" owner="Remote"> +<msg time="2024-04-11T05:52:43.405114" level="INFO">${RESULT} = {'addressBalance': '920700.0'}</msg> <var>${RESULT}</var> <arg>%{CONTRACT_ADDRESS}</arg> -<msg timestamp="20230209 01:16:50.157" level="INFO">${RESULT} = {'addressBalance': '1000000.0'}</msg> -<status status="PASS" starttime="20230209 01:16:50.120" endtime="20230209 01:16:50.157"/> +<status status="PASS" start="2024-04-11T05:52:43.387607" elapsed="0.017541"/> </kw> <kw name="Check Smart Contract Results And Log Them"> -<arg>${RESULT}</arg> -<arg>addressBalance</arg> -<kw name="Log" library="BuiltIn"> +<kw name="Log" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.405937" level="INFO">{'addressBalance': '920700.0'}</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message with the given level.</doc> -<msg timestamp="20230209 01:16:50.158" level="INFO">{'addressBalance': '1000000.0'}</msg> -<status status="PASS" starttime="20230209 01:16:50.158" endtime="20230209 01:16:50.158"/> +<status status="PASS" start="2024-04-11T05:52:43.405780" elapsed="0.000209"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.158" endtime="20230209 01:16:50.158"/> +<status status="PASS" start="2024-04-11T05:52:43.406105" elapsed="0.000189"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.158" endtime="20230209 01:16:50.158"/> +<status status="PASS" start="2024-04-11T05:52:43.406423" elapsed="0.000188"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.159" endtime="20230209 01:16:50.159"/> +<status status="PASS" start="2024-04-11T05:52:43.406727" elapsed="0.000329"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.159" endtime="20230209 01:16:50.159"/> +<status status="PASS" start="2024-04-11T05:52:43.407157" elapsed="0.000176"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.159" endtime="20230209 01:16:50.159"/> +<status status="PASS" start="2024-04-11T05:52:43.407416" elapsed="0.000111"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.159" endtime="20230209 01:16:50.160"/> +<status status="PASS" start="2024-04-11T05:52:43.407606" elapsed="0.000104"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.160" endtime="20230209 01:16:50.160"/> +<status status="PASS" start="2024-04-11T05:52:43.407786" elapsed="0.000104"/> </kw> -<kw name="Should Not Be Empty" library="BuiltIn"> +<kw name="Should Not Be Empty" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.408072" level="INFO">Length is 1.</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Verifies that the given item is not empty.</doc> -<msg timestamp="20230209 01:16:50.160" level="INFO">Length is 1</msg> -<status status="PASS" starttime="20230209 01:16:50.160" endtime="20230209 01:16:50.160"/> +<status status="PASS" start="2024-04-11T05:52:43.407965" elapsed="0.000142"/> </kw> -<kw name="Should Not Contain" library="BuiltIn"> +<kw name="Should Not Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>Error</arg> <doc>Fails if ``container`` contains ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.160" endtime="20230209 01:16:50.160"/> +<status status="PASS" start="2024-04-11T05:52:43.408181" elapsed="0.000114"/> </kw> -<kw name="Should Contain" library="BuiltIn"> +<kw name="Should Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>${HARDHAT_CHECK}</arg> <doc>Fails if ``container`` does not contain ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.160" endtime="20230209 01:16:50.161"/> +<status status="PASS" start="2024-04-11T05:52:43.408372" elapsed="0.000127"/> </kw> -<status status="PASS" starttime="20230209 01:16:50.157" endtime="20230209 01:16:50.161"/> +<arg>${RESULT}</arg> +<arg>addressBalance</arg> +<status status="PASS" start="2024-04-11T05:52:43.405422" elapsed="0.003131"/> </kw> -<status status="PASS" starttime="20230209 01:16:50.095" endtime="20230209 01:16:50.161"/> +<status status="PASS" start="2024-04-11T05:52:43.370640" elapsed="0.038042"/> </test> -<test id="s1-t7" name="HARDHAT ETHERS.JS TEST 7 : Transfer tokens to a target address from the contract owner address and check the result." line="36"> -<kw name="Get Receiver Target Address" library="Remote"> +<test id="s1-t7" name="HARDHAT ETHERS.JS TEST 7 : Transfer tokens to a target address from the contract owner address and check the result. Show the amount of gas that was used." line="36"> +<kw name="Get Receiver Target Address" owner="Remote"> +<msg time="2024-04-11T05:52:43.421815" level="INFO">${RECEIVING_ADDRESS} = {'receivingAddress': '0x70997970C51812dc3A010C7d01b50e0d17dc79C8'}</msg> <var>${RECEIVING_ADDRESS}</var> <arg>%{CONTRACT_ADDRESS}</arg> -<msg timestamp="20230209 01:16:50.178" level="INFO">${RECEIVING_ADDRESS} = {'receivingAddress': '0x70997970C51812dc3A010C7d01b50e0d17dc79C8'}</msg> -<status status="PASS" starttime="20230209 01:16:50.162" endtime="20230209 01:16:50.178"/> +<status status="PASS" start="2024-04-11T05:52:43.409316" elapsed="0.012540"/> </kw> <kw name="Check Smart Contract Results And Log Them"> -<arg>${RECEIVING_ADDRESS}</arg> -<arg>receivingAddress</arg> -<kw name="Log" library="BuiltIn"> +<kw name="Log" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.422519" level="INFO">{'receivingAddress': '0x70997970C51812dc3A010C7d01b50e0d17dc79C8'}</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message with the given level.</doc> -<msg timestamp="20230209 01:16:50.179" level="INFO">{'receivingAddress': '0x70997970C51812dc3A010C7d01b50e0d17dc79C8'}</msg> -<status status="PASS" starttime="20230209 01:16:50.179" endtime="20230209 01:16:50.179"/> +<status status="PASS" start="2024-04-11T05:52:43.422393" elapsed="0.000168"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.179" endtime="20230209 01:16:50.179"/> +<status status="PASS" start="2024-04-11T05:52:43.422641" elapsed="0.000124"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.179" endtime="20230209 01:16:50.180"/> +<status status="PASS" start="2024-04-11T05:52:43.422846" elapsed="0.000112"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.180" endtime="20230209 01:16:50.180"/> +<status status="PASS" start="2024-04-11T05:52:43.423033" elapsed="0.000104"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.180" endtime="20230209 01:16:50.180"/> +<status status="PASS" start="2024-04-11T05:52:43.423212" elapsed="0.000139"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.181" endtime="20230209 01:16:50.181"/> +<status status="PASS" start="2024-04-11T05:52:43.423426" elapsed="0.000103"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.181" endtime="20230209 01:16:50.181"/> +<status status="PASS" start="2024-04-11T05:52:43.423604" elapsed="0.000107"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.181" endtime="20230209 01:16:50.182"/> +<status status="PASS" start="2024-04-11T05:52:43.423785" elapsed="0.000107"/> </kw> -<kw name="Should Not Be Empty" library="BuiltIn"> +<kw name="Should Not Be Empty" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.424064" level="INFO">Length is 1.</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Verifies that the given item is not empty.</doc> -<msg timestamp="20230209 01:16:50.182" level="INFO">Length is 1</msg> -<status status="PASS" starttime="20230209 01:16:50.182" endtime="20230209 01:16:50.182"/> +<status status="PASS" start="2024-04-11T05:52:43.423964" elapsed="0.000134"/> </kw> -<kw name="Should Not Contain" library="BuiltIn"> +<kw name="Should Not Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>Error</arg> <doc>Fails if ``container`` contains ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.182" endtime="20230209 01:16:50.182"/> +<status status="PASS" start="2024-04-11T05:52:43.424171" elapsed="0.000111"/> </kw> -<kw name="Should Contain" library="BuiltIn"> +<kw name="Should Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>${HARDHAT_CHECK}</arg> <doc>Fails if ``container`` does not contain ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.182" endtime="20230209 01:16:50.182"/> +<status status="PASS" start="2024-04-11T05:52:43.424358" elapsed="0.000127"/> </kw> -<status status="PASS" starttime="20230209 01:16:50.178" endtime="20230209 01:16:50.182"/> +<arg>${RECEIVING_ADDRESS}</arg> +<arg>receivingAddress</arg> +<status status="PASS" start="2024-04-11T05:52:43.422112" elapsed="0.002425"/> </kw> -<kw name="Transfer To Target Address" library="Remote"> +<kw name="Transfer To Target Address" owner="Remote"> +<msg time="2024-04-11T05:52:43.464011" level="INFO">${RESULT} = {'receiverBalanceFormatUnits': '159300.0', 'gasReport': 'Gas used for transferToTargetAddress: 35111'}</msg> <var>${RESULT}</var> <arg>%{CONTRACT_ADDRESS}</arg> -<msg timestamp="20230209 01:16:50.269" level="INFO">${RESULT} = {'receiverBalanceFormatUnits': '80000.0'}</msg> -<status status="PASS" starttime="20230209 01:16:50.183" endtime="20230209 01:16:50.269"/> +<status status="PASS" start="2024-04-11T05:52:43.424671" elapsed="0.039377"/> </kw> <kw name="Check Smart Contract Results And Log Them"> -<arg>${RESULT}</arg> -<arg>receiverBalanceFormatUnits</arg> -<kw name="Log" library="BuiltIn"> +<kw name="Log" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.464851" level="INFO">{'receiverBalanceFormatUnits': '159300.0', 'gasReport': 'Gas used for transferToTargetAddress: 35111'}</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message with the given level.</doc> -<msg timestamp="20230209 01:16:50.270" level="INFO">{'receiverBalanceFormatUnits': '80000.0'}</msg> -<status status="PASS" starttime="20230209 01:16:50.270" endtime="20230209 01:16:50.270"/> +<status status="PASS" start="2024-04-11T05:52:43.464705" elapsed="0.000195"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.270" endtime="20230209 01:16:50.271"/> +<status status="PASS" start="2024-04-11T05:52:43.464994" elapsed="0.000153"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.271" endtime="20230209 01:16:50.271"/> +<status status="PASS" start="2024-04-11T05:52:43.465234" elapsed="0.000124"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.271" endtime="20230209 01:16:50.271"/> +<status status="PASS" start="2024-04-11T05:52:43.465443" elapsed="0.000118"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.271" endtime="20230209 01:16:50.272"/> +<status status="PASS" start="2024-04-11T05:52:43.465731" elapsed="0.000165"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.272" endtime="20230209 01:16:50.272"/> +<status status="PASS" start="2024-04-11T05:52:43.465983" elapsed="0.000119"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.272" endtime="20230209 01:16:50.272"/> +<status status="PASS" start="2024-04-11T05:52:43.466185" elapsed="0.000115"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.272" endtime="20230209 01:16:50.272"/> +<status status="PASS" start="2024-04-11T05:52:43.466382" elapsed="0.000112"/> </kw> -<kw name="Should Not Be Empty" library="BuiltIn"> +<kw name="Should Not Be Empty" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.466690" level="INFO">Length is 2.</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Verifies that the given item is not empty.</doc> -<msg timestamp="20230209 01:16:50.273" level="INFO">Length is 1</msg> -<status status="PASS" starttime="20230209 01:16:50.273" endtime="20230209 01:16:50.273"/> +<status status="PASS" start="2024-04-11T05:52:43.466577" elapsed="0.000153"/> </kw> -<kw name="Should Not Contain" library="BuiltIn"> +<kw name="Should Not Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>Error</arg> <doc>Fails if ``container`` contains ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.273" endtime="20230209 01:16:50.273"/> +<status status="PASS" start="2024-04-11T05:52:43.466815" elapsed="0.000126"/> </kw> -<kw name="Should Contain" library="BuiltIn"> +<kw name="Should Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>${HARDHAT_CHECK}</arg> <doc>Fails if ``container`` does not contain ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.273" endtime="20230209 01:16:50.273"/> +<status status="PASS" start="2024-04-11T05:52:43.467030" elapsed="0.000161"/> </kw> -<status status="PASS" starttime="20230209 01:16:50.269" endtime="20230209 01:16:50.274"/> +<arg>${RESULT}</arg> +<arg>receiverBalanceFormatUnits</arg> +<status status="PASS" start="2024-04-11T05:52:43.464350" elapsed="0.002896"/> </kw> -<status status="PASS" starttime="20230209 01:16:50.161" endtime="20230209 01:16:50.274"/> +<status status="PASS" start="2024-04-11T05:52:43.408885" elapsed="0.058491"/> </test> <test id="s1-t8" name="HARDHAT ETHERS.JS TEST 8 : Get balance of tokens from the address of the deployed smart contract owner after sending tokens to another address and check the result." line="42"> -<kw name="Get Balance Of Address" library="Remote"> +<kw name="Get Balance Of Address" owner="Remote"> +<msg time="2024-04-11T05:52:43.484456" level="INFO">${RESULT} = {'addressBalance': '840700.0'}</msg> <var>${RESULT}</var> <arg>%{CONTRACT_ADDRESS}</arg> -<msg timestamp="20230209 01:16:50.303" level="INFO">${RESULT} = {'addressBalance': '920000.0'}</msg> -<status status="PASS" starttime="20230209 01:16:50.274" endtime="20230209 01:16:50.303"/> +<status status="PASS" start="2024-04-11T05:52:43.468049" elapsed="0.016458"/> </kw> <kw name="Check Smart Contract Results And Log Them"> -<arg>${RESULT}</arg> -<arg>addressBalance</arg> -<kw name="Log" library="BuiltIn"> +<kw name="Log" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.485320" level="INFO">{'addressBalance': '840700.0'}</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message with the given level.</doc> -<msg timestamp="20230209 01:16:50.304" level="INFO">{'addressBalance': '920000.0'}</msg> -<status status="PASS" starttime="20230209 01:16:50.304" endtime="20230209 01:16:50.304"/> +<status status="PASS" start="2024-04-11T05:52:43.485190" elapsed="0.000174"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.304" endtime="20230209 01:16:50.304"/> +<status status="PASS" start="2024-04-11T05:52:43.485466" elapsed="0.000496"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.305" endtime="20230209 01:16:50.305"/> +<status status="PASS" start="2024-04-11T05:52:43.486074" elapsed="0.000145"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.305" endtime="20230209 01:16:50.305"/> +<status status="PASS" start="2024-04-11T05:52:43.486301" elapsed="0.000119"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.305" endtime="20230209 01:16:50.305"/> +<status status="PASS" start="2024-04-11T05:52:43.486508" elapsed="0.000202"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.305" endtime="20230209 01:16:50.305"/> +<status status="PASS" start="2024-04-11T05:52:43.486816" elapsed="0.000156"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.306" endtime="20230209 01:16:50.306"/> +<status status="PASS" start="2024-04-11T05:52:43.487082" elapsed="0.000240"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.306" endtime="20230209 01:16:50.306"/> +<status status="PASS" start="2024-04-11T05:52:43.487462" elapsed="0.000212"/> </kw> -<kw name="Should Not Be Empty" library="BuiltIn"> +<kw name="Should Not Be Empty" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.487957" level="INFO">Length is 1.</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Verifies that the given item is not empty.</doc> -<msg timestamp="20230209 01:16:50.306" level="INFO">Length is 1</msg> -<status status="PASS" starttime="20230209 01:16:50.306" endtime="20230209 01:16:50.306"/> +<status status="PASS" start="2024-04-11T05:52:43.487802" elapsed="0.000199"/> </kw> -<kw name="Should Not Contain" library="BuiltIn"> +<kw name="Should Not Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>Error</arg> <doc>Fails if ``container`` contains ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.306" endtime="20230209 01:16:50.306"/> +<status status="PASS" start="2024-04-11T05:52:43.488096" elapsed="0.000130"/> </kw> -<kw name="Should Contain" library="BuiltIn"> +<kw name="Should Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>${HARDHAT_CHECK}</arg> <doc>Fails if ``container`` does not contain ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.307" endtime="20230209 01:16:50.307"/> +<status status="PASS" start="2024-04-11T05:52:43.488308" elapsed="0.000133"/> </kw> -<status status="PASS" starttime="20230209 01:16:50.303" endtime="20230209 01:16:50.307"/> +<arg>${RESULT}</arg> +<arg>addressBalance</arg> +<status status="PASS" start="2024-04-11T05:52:43.484859" elapsed="0.003636"/> </kw> -<status status="PASS" starttime="20230209 01:16:50.274" endtime="20230209 01:16:50.307"/> +<status status="PASS" start="2024-04-11T05:52:43.467595" elapsed="0.021085"/> </test> -<test id="s1-t9" name="HARDHAT ETHERS.JS TEST 9 : Approve a specific amount of tokens for a target address, show the allowance, and check the result." line="46"> -<kw name="Approve Spender Amount" library="Remote"> +<test id="s1-t9" name="HARDHAT ETHERS.JS TEST 9 : Approve a specific amount of tokens for a target address, show the allowance, and check the result. Show the amount of gas that was used." line="46"> +<kw name="Approve Spender Amount" owner="Remote"> +<msg time="2024-04-11T05:52:43.523904" level="INFO">${APPROVAL_OUTPUT} = {'approvalSuccess': 'Amount has been approved', 'gasReport': 'Gas used for approveSpenderAmount: 29800'}</msg> <var>${APPROVAL_OUTPUT}</var> <arg>%{CONTRACT_ADDRESS}</arg> -<msg timestamp="20230209 01:16:50.372" level="INFO">${APPROVAL_OUTPUT} = {'approvalSuccess': 'Amount has been approved'}</msg> -<status status="PASS" starttime="20230209 01:16:50.308" endtime="20230209 01:16:50.372"/> +<status status="PASS" start="2024-04-11T05:52:43.489511" elapsed="0.034447"/> </kw> <kw name="Check Smart Contract Results And Log Them"> -<arg>${APPROVAL_OUTPUT}</arg> -<arg>approvalSuccess</arg> -<kw name="Log" library="BuiltIn"> +<kw name="Log" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.525315" level="INFO">{'approvalSuccess': 'Amount has been approved', 'gasReport': 'Gas used for approveSpenderAmount: 29800'}</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message with the given level.</doc> -<msg timestamp="20230209 01:16:50.373" level="INFO">{'approvalSuccess': 'Amount has been approved'}</msg> -<status status="PASS" starttime="20230209 01:16:50.373" endtime="20230209 01:16:50.373"/> +<status status="PASS" start="2024-04-11T05:52:43.525099" elapsed="0.000309"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.374" endtime="20230209 01:16:50.374"/> +<status status="PASS" start="2024-04-11T05:52:43.525572" elapsed="0.000219"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.374" endtime="20230209 01:16:50.374"/> +<status status="PASS" start="2024-04-11T05:52:43.525955" elapsed="0.000147"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.374" endtime="20230209 01:16:50.375"/> +<status status="PASS" start="2024-04-11T05:52:43.526190" elapsed="0.000114"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.375" endtime="20230209 01:16:50.375"/> +<status status="PASS" start="2024-04-11T05:52:43.526414" elapsed="0.000212"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.376" endtime="20230209 01:16:50.376"/> +<status status="PASS" start="2024-04-11T05:52:43.526725" elapsed="0.000121"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.376" endtime="20230209 01:16:50.377"/> +<status status="PASS" start="2024-04-11T05:52:43.526982" elapsed="0.000145"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.377" endtime="20230209 01:16:50.377"/> +<status status="PASS" start="2024-04-11T05:52:43.527254" elapsed="0.000131"/> </kw> -<kw name="Should Not Be Empty" library="BuiltIn"> +<kw name="Should Not Be Empty" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.527625" level="INFO">Length is 2.</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Verifies that the given item is not empty.</doc> -<msg timestamp="20230209 01:16:50.378" level="INFO">Length is 1</msg> -<status status="PASS" starttime="20230209 01:16:50.378" endtime="20230209 01:16:50.378"/> +<status status="PASS" start="2024-04-11T05:52:43.527489" elapsed="0.000177"/> </kw> -<kw name="Should Not Contain" library="BuiltIn"> +<kw name="Should Not Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>Error</arg> <doc>Fails if ``container`` contains ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.378" endtime="20230209 01:16:50.378"/> +<status status="PASS" start="2024-04-11T05:52:43.527751" elapsed="0.000121"/> </kw> -<kw name="Should Contain" library="BuiltIn"> +<kw name="Should Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>${HARDHAT_CHECK}</arg> <doc>Fails if ``container`` does not contain ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.378" endtime="20230209 01:16:50.379"/> +<status status="PASS" start="2024-04-11T05:52:43.527953" elapsed="0.000148"/> </kw> -<status status="PASS" starttime="20230209 01:16:50.373" endtime="20230209 01:16:50.379"/> +<arg>${APPROVAL_OUTPUT}</arg> +<arg>approvalSuccess</arg> +<status status="PASS" start="2024-04-11T05:52:43.524348" elapsed="0.003897"/> </kw> -<kw name="Show Spender Allowance" library="Remote"> +<kw name="Show Spender Allowance" owner="Remote"> +<msg time="2024-04-11T05:52:43.545075" level="INFO">${RESULT} = {'showAllowance': '200000.0'}</msg> <var>${RESULT}</var> <arg>%{CONTRACT_ADDRESS}</arg> -<msg timestamp="20230209 01:16:50.411" level="INFO">${RESULT} = {'showAllowance': '200000.0'}</msg> -<status status="PASS" starttime="20230209 01:16:50.379" endtime="20230209 01:16:50.411"/> +<status status="PASS" start="2024-04-11T05:52:43.528387" elapsed="0.016726"/> </kw> <kw name="Check Smart Contract Results And Log Them"> -<arg>${RESULT}</arg> -<arg>showAllowance</arg> -<kw name="Log" library="BuiltIn"> +<kw name="Log" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.545785" level="INFO">{'showAllowance': '200000.0'}</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message with the given level.</doc> -<msg timestamp="20230209 01:16:50.413" level="INFO">{'showAllowance': '200000.0'}</msg> -<status status="PASS" starttime="20230209 01:16:50.412" endtime="20230209 01:16:50.413"/> +<status status="PASS" start="2024-04-11T05:52:43.545661" elapsed="0.000166"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.413" endtime="20230209 01:16:50.413"/> +<status status="PASS" start="2024-04-11T05:52:43.545913" elapsed="0.000124"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.413" endtime="20230209 01:16:50.413"/> +<status status="PASS" start="2024-04-11T05:52:43.546114" elapsed="0.000172"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.413" endtime="20230209 01:16:50.414"/> +<status status="PASS" start="2024-04-11T05:52:43.546400" elapsed="0.000157"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.414" endtime="20230209 01:16:50.414"/> +<status status="PASS" start="2024-04-11T05:52:43.546701" elapsed="0.000227"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.414" endtime="20230209 01:16:50.414"/> +<status status="PASS" start="2024-04-11T05:52:43.547043" elapsed="0.000129"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.414" endtime="20230209 01:16:50.414"/> +<status status="PASS" start="2024-04-11T05:52:43.547253" elapsed="0.000116"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.414" endtime="20230209 01:16:50.415"/> +<status status="PASS" start="2024-04-11T05:52:43.547447" elapsed="0.000107"/> </kw> -<kw name="Should Not Be Empty" library="BuiltIn"> +<kw name="Should Not Be Empty" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.547740" level="INFO">Length is 1.</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Verifies that the given item is not empty.</doc> -<msg timestamp="20230209 01:16:50.415" level="INFO">Length is 1</msg> -<status status="PASS" starttime="20230209 01:16:50.415" endtime="20230209 01:16:50.415"/> +<status status="PASS" start="2024-04-11T05:52:43.547629" elapsed="0.000146"/> </kw> -<kw name="Should Not Contain" library="BuiltIn"> +<kw name="Should Not Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>Error</arg> <doc>Fails if ``container`` contains ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.415" endtime="20230209 01:16:50.415"/> +<status status="PASS" start="2024-04-11T05:52:43.547849" elapsed="0.000117"/> </kw> -<kw name="Should Contain" library="BuiltIn"> +<kw name="Should Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>${HARDHAT_CHECK}</arg> <doc>Fails if ``container`` does not contain ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.415" endtime="20230209 01:16:50.416"/> +<status status="PASS" start="2024-04-11T05:52:43.548043" elapsed="0.000130"/> </kw> -<status status="PASS" starttime="20230209 01:16:50.411" endtime="20230209 01:16:50.416"/> +<arg>${RESULT}</arg> +<arg>showAllowance</arg> +<status status="PASS" start="2024-04-11T05:52:43.545379" elapsed="0.002848"/> </kw> -<status status="PASS" starttime="20230209 01:16:50.307" endtime="20230209 01:16:50.416"/> +<status status="PASS" start="2024-04-11T05:52:43.489059" elapsed="0.059296"/> </test> -<test id="s1-t10" name="HARDHAT ETHERS.JS TEST 10 : Transfer tokens from a target address to the contract owner address and check the result." line="52"> -<kw name="Get Token Balance Address" library="Remote"> +<test id="s1-t10" name="HARDHAT ETHERS.JS TEST 10 : Transfer tokens from a target address to the contract owner address and check the result. Show the amount of gas that was used." line="52"> +<kw name="Get Token Balance Address" owner="Remote"> +<msg time="2024-04-11T05:52:43.561747" level="INFO">${TOKEN_ADDRESS} = {'testTokenAddress': '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'}</msg> <var>${TOKEN_ADDRESS}</var> <arg>%{CONTRACT_ADDRESS}</arg> -<msg timestamp="20230209 01:16:50.437" level="INFO">${TOKEN_ADDRESS} = {'testTokenAddress': '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'}</msg> -<status status="PASS" starttime="20230209 01:16:50.417" endtime="20230209 01:16:50.437"/> +<status status="PASS" start="2024-04-11T05:52:43.549144" elapsed="0.012645"/> </kw> <kw name="Check Smart Contract Results And Log Them"> -<arg>${TOKEN_ADDRESS}</arg> -<arg>testTokenAddress</arg> -<kw name="Log" library="BuiltIn"> +<kw name="Log" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.562902" level="INFO">{'testTokenAddress': '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'}</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message with the given level.</doc> -<msg timestamp="20230209 01:16:50.438" level="INFO">{'testTokenAddress': '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266'}</msg> -<status status="PASS" starttime="20230209 01:16:50.438" endtime="20230209 01:16:50.438"/> +<status status="PASS" start="2024-04-11T05:52:43.562551" elapsed="0.000399"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.438" endtime="20230209 01:16:50.438"/> +<status status="PASS" start="2024-04-11T05:52:43.563045" elapsed="0.000147"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.439" endtime="20230209 01:16:50.439"/> +<status status="PASS" start="2024-04-11T05:52:43.563271" elapsed="0.000112"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.439" endtime="20230209 01:16:50.439"/> +<status status="PASS" start="2024-04-11T05:52:43.563458" elapsed="0.000105"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.439" endtime="20230209 01:16:50.439"/> +<status status="PASS" start="2024-04-11T05:52:43.563635" elapsed="0.000145"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.439" endtime="20230209 01:16:50.439"/> +<status status="PASS" start="2024-04-11T05:52:43.563857" elapsed="0.000105"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.440" endtime="20230209 01:16:50.440"/> +<status status="PASS" start="2024-04-11T05:52:43.564035" elapsed="0.000103"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.440" endtime="20230209 01:16:50.440"/> +<status status="PASS" start="2024-04-11T05:52:43.564230" elapsed="0.000135"/> </kw> -<kw name="Should Not Be Empty" library="BuiltIn"> +<kw name="Should Not Be Empty" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.564558" level="INFO">Length is 1.</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Verifies that the given item is not empty.</doc> -<msg timestamp="20230209 01:16:50.440" level="INFO">Length is 1</msg> -<status status="PASS" starttime="20230209 01:16:50.440" endtime="20230209 01:16:50.440"/> +<status status="PASS" start="2024-04-11T05:52:43.564445" elapsed="0.000153"/> </kw> -<kw name="Should Not Contain" library="BuiltIn"> +<kw name="Should Not Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>Error</arg> <doc>Fails if ``container`` contains ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.440" endtime="20230209 01:16:50.440"/> +<status status="PASS" start="2024-04-11T05:52:43.564674" elapsed="0.000116"/> </kw> -<kw name="Should Contain" library="BuiltIn"> +<kw name="Should Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>${HARDHAT_CHECK}</arg> <doc>Fails if ``container`` does not contain ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.441" endtime="20230209 01:16:50.441"/> +<status status="PASS" start="2024-04-11T05:52:43.564868" elapsed="0.000236"/> </kw> -<status status="PASS" starttime="20230209 01:16:50.438" endtime="20230209 01:16:50.441"/> +<arg>${TOKEN_ADDRESS}</arg> +<arg>testTokenAddress</arg> +<status status="PASS" start="2024-04-11T05:52:43.562124" elapsed="0.003066"/> </kw> -<kw name="Get Receiver Target Address" library="Remote"> +<kw name="Get Receiver Target Address" owner="Remote"> +<msg time="2024-04-11T05:52:43.577306" level="INFO">${RECEIVING_ADDRESS} = {'receivingAddress': '0x70997970C51812dc3A010C7d01b50e0d17dc79C8'}</msg> <var>${RECEIVING_ADDRESS}</var> <arg>%{CONTRACT_ADDRESS}</arg> -<msg timestamp="20230209 01:16:50.464" level="INFO">${RECEIVING_ADDRESS} = {'receivingAddress': '0x70997970C51812dc3A010C7d01b50e0d17dc79C8'}</msg> -<status status="PASS" starttime="20230209 01:16:50.441" endtime="20230209 01:16:50.464"/> +<status status="PASS" start="2024-04-11T05:52:43.565394" elapsed="0.011943"/> </kw> <kw name="Check Smart Contract Results And Log Them"> -<arg>${RECEIVING_ADDRESS}</arg> -<arg>receivingAddress</arg> -<kw name="Log" library="BuiltIn"> +<kw name="Log" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.577965" level="INFO">{'receivingAddress': '0x70997970C51812dc3A010C7d01b50e0d17dc79C8'}</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message with the given level.</doc> -<msg timestamp="20230209 01:16:50.464" level="INFO">{'receivingAddress': '0x70997970C51812dc3A010C7d01b50e0d17dc79C8'}</msg> -<status status="PASS" starttime="20230209 01:16:50.464" endtime="20230209 01:16:50.464"/> +<status status="PASS" start="2024-04-11T05:52:43.577846" elapsed="0.000158"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.464" endtime="20230209 01:16:50.465"/> +<status status="PASS" start="2024-04-11T05:52:43.578082" elapsed="0.000116"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.465" endtime="20230209 01:16:50.465"/> +<status status="PASS" start="2024-04-11T05:52:43.578273" elapsed="0.000107"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.465" endtime="20230209 01:16:50.466"/> +<status status="PASS" start="2024-04-11T05:52:43.578454" elapsed="0.000105"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.466" endtime="20230209 01:16:50.466"/> +<status status="PASS" start="2024-04-11T05:52:43.578632" elapsed="0.000146"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.466" endtime="20230209 01:16:50.466"/> +<status status="PASS" start="2024-04-11T05:52:43.578946" elapsed="0.000183"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.466" endtime="20230209 01:16:50.466"/> +<status status="PASS" start="2024-04-11T05:52:43.579294" elapsed="0.000157"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.467" endtime="20230209 01:16:50.467"/> +<status status="PASS" start="2024-04-11T05:52:43.579771" elapsed="0.000185"/> </kw> -<kw name="Should Not Be Empty" library="BuiltIn"> +<kw name="Should Not Be Empty" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.580166" level="INFO">Length is 1.</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Verifies that the given item is not empty.</doc> -<msg timestamp="20230209 01:16:50.467" level="INFO">Length is 1</msg> -<status status="PASS" starttime="20230209 01:16:50.467" endtime="20230209 01:16:50.467"/> +<status status="PASS" start="2024-04-11T05:52:43.580041" elapsed="0.000164"/> </kw> -<kw name="Should Not Contain" library="BuiltIn"> +<kw name="Should Not Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>Error</arg> <doc>Fails if ``container`` contains ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.467" endtime="20230209 01:16:50.468"/> +<status status="PASS" start="2024-04-11T05:52:43.580283" elapsed="0.000118"/> </kw> -<kw name="Should Contain" library="BuiltIn"> +<kw name="Should Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>${HARDHAT_CHECK}</arg> <doc>Fails if ``container`` does not contain ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.468" endtime="20230209 01:16:50.468"/> +<status status="PASS" start="2024-04-11T05:52:43.580481" elapsed="0.000133"/> </kw> -<status status="PASS" starttime="20230209 01:16:50.464" endtime="20230209 01:16:50.468"/> +<arg>${RECEIVING_ADDRESS}</arg> +<arg>receivingAddress</arg> +<status status="PASS" start="2024-04-11T05:52:43.577574" elapsed="0.003098"/> </kw> -<kw name="Transfer From Target Address" library="Remote"> +<kw name="Transfer From Target Address" owner="Remote"> +<msg time="2024-04-11T05:52:43.628728" level="INFO">${RESULT} = {'senderBalanceFormatUnits': '158600.0', 'gasReport': 'Gas used for transferFromTargetAddres: 43268'}</msg> <var>${RESULT}</var> <arg>%{CONTRACT_ADDRESS}</arg> -<msg timestamp="20230209 01:16:50.559" level="INFO">${RESULT} = {'senderBalanceFormatUnits': '79300.0'}</msg> -<status status="PASS" starttime="20230209 01:16:50.469" endtime="20230209 01:16:50.559"/> +<status status="PASS" start="2024-04-11T05:52:43.580812" elapsed="0.047958"/> </kw> <kw name="Check Smart Contract Results And Log Them"> -<arg>${RESULT}</arg> -<arg>senderBalanceFormatUnits</arg> -<kw name="Log" library="BuiltIn"> +<kw name="Log" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.629463" level="INFO">{'senderBalanceFormatUnits': '158600.0', 'gasReport': 'Gas used for transferFromTargetAddres: 43268'}</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message with the given level.</doc> -<msg timestamp="20230209 01:16:50.560" level="INFO">{'senderBalanceFormatUnits': '79300.0'}</msg> -<status status="PASS" starttime="20230209 01:16:50.560" endtime="20230209 01:16:50.560"/> +<status status="PASS" start="2024-04-11T05:52:43.629326" elapsed="0.000180"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.560" endtime="20230209 01:16:50.560"/> +<status status="PASS" start="2024-04-11T05:52:43.629600" elapsed="0.000129"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.560" endtime="20230209 01:16:50.560"/> +<status status="PASS" start="2024-04-11T05:52:43.629808" elapsed="0.000117"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.561" endtime="20230209 01:16:50.561"/> +<status status="PASS" start="2024-04-11T05:52:43.630002" elapsed="0.000115"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.561" endtime="20230209 01:16:50.561"/> +<status status="PASS" start="2024-04-11T05:52:43.630191" elapsed="0.000151"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.561" endtime="20230209 01:16:50.561"/> +<status status="PASS" start="2024-04-11T05:52:43.630419" elapsed="0.000111"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.561" endtime="20230209 01:16:50.561"/> +<status status="PASS" start="2024-04-11T05:52:43.630605" elapsed="0.000109"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.561" endtime="20230209 01:16:50.562"/> +<status status="PASS" start="2024-04-11T05:52:43.630788" elapsed="0.000109"/> </kw> -<kw name="Should Not Be Empty" library="BuiltIn"> +<kw name="Should Not Be Empty" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.631074" level="INFO">Length is 2.</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Verifies that the given item is not empty.</doc> -<msg timestamp="20230209 01:16:50.562" level="INFO">Length is 1</msg> -<status status="PASS" starttime="20230209 01:16:50.562" endtime="20230209 01:16:50.562"/> +<status status="PASS" start="2024-04-11T05:52:43.630971" elapsed="0.000142"/> </kw> -<kw name="Should Not Contain" library="BuiltIn"> +<kw name="Should Not Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>Error</arg> <doc>Fails if ``container`` contains ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.562" endtime="20230209 01:16:50.562"/> +<status status="PASS" start="2024-04-11T05:52:43.631190" elapsed="0.000116"/> </kw> -<kw name="Should Contain" library="BuiltIn"> +<kw name="Should Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>${HARDHAT_CHECK}</arg> <doc>Fails if ``container`` does not contain ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.562" endtime="20230209 01:16:50.562"/> +<status status="PASS" start="2024-04-11T05:52:43.631383" elapsed="0.000131"/> </kw> -<status status="PASS" starttime="20230209 01:16:50.559" endtime="20230209 01:16:50.562"/> +<arg>${RESULT}</arg> +<arg>senderBalanceFormatUnits</arg> +<status status="PASS" start="2024-04-11T05:52:43.629040" elapsed="0.002525"/> </kw> -<status status="PASS" starttime="20230209 01:16:50.416" endtime="20230209 01:16:50.563"/> +<status status="PASS" start="2024-04-11T05:52:43.548554" elapsed="0.083147"/> </test> -<test id="s1-t11" name="HARDHAT ETHERS.JS TEST 11 : Increase the allowance of the spender account and check the result." line="60"> -<kw name="Increase Spender Allowance" library="Remote"> +<test id="s1-t11" name="HARDHAT ETHERS.JS TEST 11 : Increase the allowance of the spender account and check the result. Show the amount of gas that was used." line="60"> +<kw name="Increase Spender Allowance" owner="Remote"> +<msg time="2024-04-11T05:52:43.667694" level="INFO">${RESULT} = {'showIncreasedAllowance': '201300.0', 'gasReport': 'Gas used for increaseSpenderAllowance: 30193'}</msg> <var>${RESULT}</var> <arg>%{CONTRACT_ADDRESS}</arg> -<msg timestamp="20230209 01:16:50.620" level="INFO">${RESULT} = {'showIncreasedAllowance': '201300.0'}</msg> -<status status="PASS" starttime="20230209 01:16:50.563" endtime="20230209 01:16:50.620"/> +<status status="PASS" start="2024-04-11T05:52:43.632442" elapsed="0.035307"/> </kw> <kw name="Check Smart Contract Results And Log Them"> -<arg>${RESULT}</arg> -<arg>showIncreasedAllowance</arg> -<kw name="Log" library="BuiltIn"> +<kw name="Log" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.668923" level="INFO">{'showIncreasedAllowance': '201300.0', 'gasReport': 'Gas used for increaseSpenderAllowance: 30193'}</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message with the given level.</doc> -<msg timestamp="20230209 01:16:50.621" level="INFO">{'showIncreasedAllowance': '201300.0'}</msg> -<status status="PASS" starttime="20230209 01:16:50.621" endtime="20230209 01:16:50.621"/> +<status status="PASS" start="2024-04-11T05:52:43.668700" elapsed="0.000275"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.621" endtime="20230209 01:16:50.621"/> +<status status="PASS" start="2024-04-11T05:52:43.669075" elapsed="0.000145"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.621" endtime="20230209 01:16:50.622"/> +<status status="PASS" start="2024-04-11T05:52:43.669302" elapsed="0.000115"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.622" endtime="20230209 01:16:50.622"/> +<status status="PASS" start="2024-04-11T05:52:43.669495" elapsed="0.000107"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.622" endtime="20230209 01:16:50.622"/> +<status status="PASS" start="2024-04-11T05:52:43.669678" elapsed="0.000154"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.622" endtime="20230209 01:16:50.622"/> +<status status="PASS" start="2024-04-11T05:52:43.669914" elapsed="0.000110"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.622" endtime="20230209 01:16:50.623"/> +<status status="PASS" start="2024-04-11T05:52:43.670101" elapsed="0.000110"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.623" endtime="20230209 01:16:50.623"/> +<status status="PASS" start="2024-04-11T05:52:43.670286" elapsed="0.000111"/> </kw> -<kw name="Should Not Be Empty" library="BuiltIn"> +<kw name="Should Not Be Empty" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.670603" level="INFO">Length is 2.</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Verifies that the given item is not empty.</doc> -<msg timestamp="20230209 01:16:50.623" level="INFO">Length is 1</msg> -<status status="PASS" starttime="20230209 01:16:50.623" endtime="20230209 01:16:50.623"/> +<status status="PASS" start="2024-04-11T05:52:43.670470" elapsed="0.000170"/> </kw> -<kw name="Should Not Contain" library="BuiltIn"> +<kw name="Should Not Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>Error</arg> <doc>Fails if ``container`` contains ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.623" endtime="20230209 01:16:50.623"/> +<status status="PASS" start="2024-04-11T05:52:43.670717" elapsed="0.000115"/> </kw> -<kw name="Should Contain" library="BuiltIn"> +<kw name="Should Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>${HARDHAT_CHECK}</arg> <doc>Fails if ``container`` does not contain ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.623" endtime="20230209 01:16:50.624"/> +<status status="PASS" start="2024-04-11T05:52:43.670910" elapsed="0.000129"/> </kw> -<status status="PASS" starttime="20230209 01:16:50.620" endtime="20230209 01:16:50.624"/> +<arg>${RESULT}</arg> +<arg>showIncreasedAllowance</arg> +<status status="PASS" start="2024-04-11T05:52:43.668122" elapsed="0.002968"/> </kw> -<status status="PASS" starttime="20230209 01:16:50.563" endtime="20230209 01:16:50.624"/> +<status status="PASS" start="2024-04-11T05:52:43.631955" elapsed="0.039279"/> </test> -<test id="s1-t12" name="HARDHAT ETHERS.JS TEST 12 : Decrease the allowance of the spender account and check the result." line="64"> -<kw name="Decrease Spender Allowance" library="Remote"> +<test id="s1-t12" name="HARDHAT ETHERS.JS TEST 12 : Decrease the allowance of the spender account and check the result. Show the amount of gas that was used." line="64"> +<kw name="Decrease Spender Allowance" owner="Remote"> +<msg time="2024-04-11T05:52:43.708322" level="INFO">${RESULT} = {'showDecreasedAllowance': '200300.0', 'gasReport': 'Gas used for decreaseSpenderAllowance: 30116'}</msg> <var>${RESULT}</var> <arg>%{CONTRACT_ADDRESS}</arg> -<msg timestamp="20230209 01:16:50.681" level="INFO">${RESULT} = {'showDecreasedAllowance': '200300.0'}</msg> -<status status="PASS" starttime="20230209 01:16:50.625" endtime="20230209 01:16:50.681"/> +<status status="PASS" start="2024-04-11T05:52:43.671830" elapsed="0.036527"/> </kw> <kw name="Check Smart Contract Results And Log Them"> -<arg>${RESULT}</arg> -<arg>showDecreasedAllowance</arg> -<kw name="Log" library="BuiltIn"> +<kw name="Log" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.709099" level="INFO">{'showDecreasedAllowance': '200300.0', 'gasReport': 'Gas used for decreaseSpenderAllowance: 30116'}</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message with the given level.</doc> -<msg timestamp="20230209 01:16:50.682" level="INFO">{'showDecreasedAllowance': '200300.0'}</msg> -<status status="PASS" starttime="20230209 01:16:50.682" endtime="20230209 01:16:50.682"/> +<status status="PASS" start="2024-04-11T05:52:43.708978" elapsed="0.000162"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.682" endtime="20230209 01:16:50.682"/> +<status status="PASS" start="2024-04-11T05:52:43.709219" elapsed="0.000119"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.682" endtime="20230209 01:16:50.683"/> +<status status="PASS" start="2024-04-11T05:52:43.709414" elapsed="0.000109"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.683" endtime="20230209 01:16:50.683"/> +<status status="PASS" start="2024-04-11T05:52:43.709598" elapsed="0.000104"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.683" endtime="20230209 01:16:50.683"/> +<status status="PASS" start="2024-04-11T05:52:43.709777" elapsed="0.000140"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.683" endtime="20230209 01:16:50.683"/> +<status status="PASS" start="2024-04-11T05:52:43.709995" elapsed="0.000106"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.683" endtime="20230209 01:16:50.684"/> +<status status="PASS" start="2024-04-11T05:52:43.710178" elapsed="0.000104"/> </kw> -<kw name="Log To Console" library="BuiltIn"> +<kw name="Log To Console" owner="BuiltIn"> <arg>...</arg> <doc>Logs the given message to the console.</doc> -<status status="PASS" starttime="20230209 01:16:50.684" endtime="20230209 01:16:50.684"/> +<status status="PASS" start="2024-04-11T05:52:43.710358" elapsed="0.000102"/> </kw> -<kw name="Should Not Be Empty" library="BuiltIn"> +<kw name="Should Not Be Empty" owner="BuiltIn"> +<msg time="2024-04-11T05:52:43.710632" level="INFO">Length is 2.</msg> <arg>${HARDHAT_OUTPUT}</arg> <doc>Verifies that the given item is not empty.</doc> -<msg timestamp="20230209 01:16:50.684" level="INFO">Length is 1</msg> -<status status="PASS" starttime="20230209 01:16:50.684" endtime="20230209 01:16:50.684"/> +<status status="PASS" start="2024-04-11T05:52:43.710533" elapsed="0.000134"/> </kw> -<kw name="Should Not Contain" library="BuiltIn"> +<kw name="Should Not Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>Error</arg> <doc>Fails if ``container`` contains ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.684" endtime="20230209 01:16:50.684"/> +<status status="PASS" start="2024-04-11T05:52:43.710740" elapsed="0.000113"/> </kw> -<kw name="Should Contain" library="BuiltIn"> +<kw name="Should Contain" owner="BuiltIn"> <arg>${HARDHAT_OUTPUT}</arg> <arg>${HARDHAT_CHECK}</arg> <doc>Fails if ``container`` does not contain ``item`` one or more times.</doc> -<status status="PASS" starttime="20230209 01:16:50.685" endtime="20230209 01:16:50.685"/> +<status status="PASS" start="2024-04-11T05:52:43.710930" elapsed="0.000128"/> </kw> -<status status="PASS" starttime="20230209 01:16:50.682" endtime="20230209 01:16:50.685"/> +<arg>${RESULT}</arg> +<arg>showDecreasedAllowance</arg> +<status status="PASS" start="2024-04-11T05:52:43.708698" elapsed="0.002410"/> </kw> -<status status="PASS" starttime="20230209 01:16:50.624" endtime="20230209 01:16:50.685"/> +<status status="PASS" start="2024-04-11T05:52:43.671433" elapsed="0.039801"/> </test> -<status status="PASS" starttime="20230209 01:16:49.246" endtime="20230209 01:16:50.686"/> +<status status="PASS" start="2024-04-11T05:52:43.112520" elapsed="0.599114"/> </suite> <statistics> <total> diff --git a/solidity-hardhat-multichain-tools/robotframework-hardhat-remote-library.js b/solidity-hardhat-multichain-tools/robotframework-hardhat-remote-library.js index 03062ce..bdf2a6e 100644 --- a/solidity-hardhat-multichain-tools/robotframework-hardhat-remote-library.js +++ b/solidity-hardhat-multichain-tools/robotframework-hardhat-remote-library.js @@ -107,12 +107,14 @@ lib.transferToTargetAddress = async function(str) { const decimals = await testToken.decimals(); const testTokenSigners = await ethers.getSigners(); const receivingAddress = testTokenSigners[1].address; - await testToken.transfer(receivingAddress, ethers.utils.parseUnits(amountForTransfer.toString(), decimals)); + const receipt = await (await testToken.transfer(receivingAddress, ethers.utils.parseUnits(amountForTransfer.toString(), decimals))).wait(); + const gasUsed = receipt.gasUsed.toNumber(); + const gasReport = `Gas used for transferToTargetAddress: ${gasUsed}`; const receiverBalance = await testToken.balanceOf(receivingAddress); const receiverBalanceFormatUnits = await ethers.utils.formatUnits(receiverBalance, decimals); var timeStamp = new Date(); console.log(`transferToTargetAddress keyword ran on ${timeStamp}`); - return { receiverBalanceFormatUnits }; + return { receiverBalanceFormatUnits, gasReport }; }; lib.approveSpenderAmount = async function(str) { @@ -122,12 +124,14 @@ lib.approveSpenderAmount = async function(str) { const decimals = await testToken.decimals(); const testTokenSigners = await ethers.getSigners(); const testTokenAddress = testTokenSigners[0].address; - const signerTestToken = testToken.connect(testTokenSigners[1]); - await signerTestToken.approve(testTokenAddress, ethers.utils.parseUnits(amountApproved.toString(), decimals)); + const signerTestToken = testToken.connect(testTokenSigners[1]); + const receipt = await (await signerTestToken.approve(testTokenAddress, ethers.utils.parseUnits(amountApproved.toString(), decimals))).wait(); + const gasUsed = receipt.gasUsed.toNumber(); + const gasReport = `Gas used for approveSpenderAmount: ${gasUsed}`; var timeStamp = new Date(); console.log(`approveSpenderAmount keyword ran on ${timeStamp}`); const approvalSuccess = 'Amount has been approved' - return { approvalSuccess }; + return { approvalSuccess, gasReport }; }; lib.showSpenderAllowance = async function(str) { @@ -152,7 +156,9 @@ lib.transferFromTargetAddress = async function(str) { const testTokenSigners = await ethers.getSigners(); const testTokenAddress = testTokenSigners[0].address; const senderAddress = testTokenSigners[1].address; - await testToken.transferFrom(senderAddress, testTokenAddress, ethers.utils.parseUnits(amountForTransfer.toString(), decimals)); + const receipt = await (await testToken.transferFrom(senderAddress, testTokenAddress, ethers.utils.parseUnits(amountForTransfer.toString(), decimals))).wait(); + const gasUsed = receipt.gasUsed.toNumber(); + const gasReport = `Gas used for transferFromTargetAddres: ${gasUsed}`; const testTokenBalance = await testToken.balanceOf(testTokenAddress); const senderBalance = await testToken.balanceOf(senderAddress); const senderBalanceFormatUnits = await ethers.utils.formatUnits(senderBalance, decimals); @@ -160,7 +166,7 @@ lib.transferFromTargetAddress = async function(str) { console.log(`Sender's available allowance: ${ethers.utils.formatUnits(transferAllowance, decimals)}`); var timeStamp = new Date(); console.log(`transferFromTargetAddress keyword ran on ${timeStamp}`); - return { senderBalanceFormatUnits }; + return { senderBalanceFormatUnits, gasReport }; }; lib.increaseSpenderAllowance = async function(str) { @@ -171,17 +177,18 @@ lib.increaseSpenderAllowance = async function(str) { const testTokenSigners = await ethers.getSigners(); const testTokenAddress = testTokenSigners[0].address; const receivingAddress = testTokenSigners[1].address; - const signerTestToken = testToken.connect(testTokenSigners[1]); - await signerTestToken.increaseAllowance(testTokenAddress, ethers.utils.parseUnits(increaseSpenderAmount.toString(), decimals)); + const signerTestToken = testToken.connect(testTokenSigners[1]); + const receipt = await (await signerTestToken.increaseAllowance(testTokenAddress, ethers.utils.parseUnits(increaseSpenderAmount.toString(), decimals))).wait(); + const gasUsed = receipt.gasUsed.toNumber(); + const gasReport = `Gas used for increaseSpenderAllowance: ${gasUsed}`; const spenderAllowance = await testToken.allowance(receivingAddress, testTokenAddress); const showIncreasedAllowance = await ethers.utils.formatUnits(spenderAllowance, decimals) console.log(`Allowance will be increased by this amount: ${increaseSpenderAmount}`) var timeStamp = new Date(); console.log(`increaseSpenderAllowance keyword ran on ${timeStamp}`); - return { showIncreasedAllowance }; + return { showIncreasedAllowance, gasReport }; }; - lib.decreaseSpenderAllowance = async function(str) { const decreaseSpenderAmount = 1000; const deployedContract = await ethers.getContractFactory('Token'); @@ -190,17 +197,18 @@ lib.decreaseSpenderAllowance = async function(str) { const testTokenSigners = await ethers.getSigners(); const testTokenAddress = testTokenSigners[0].address; const receivingAddress = testTokenSigners[1].address; - const signerTestToken = testToken.connect(testTokenSigners[1]); - await signerTestToken.decreaseAllowance(testTokenAddress, ethers.utils.parseUnits(decreaseSpenderAmount.toString(), decimals)); + const signerTestToken = testToken.connect(testTokenSigners[1]); + const receipt = await (await signerTestToken.decreaseAllowance(testTokenAddress, ethers.utils.parseUnits(decreaseSpenderAmount.toString(), decimals))).wait(); + const gasUsed = receipt.gasUsed.toNumber(); + const gasReport = `Gas used for decreaseSpenderAllowance: ${gasUsed}`; const spenderAllowance = await testToken.allowance(receivingAddress, testTokenAddress); const showDecreasedAllowance = await ethers.utils.formatUnits(spenderAllowance, decimals) console.log(`Allowance will be decreased by this amount: ${decreaseSpenderAmount}`) var timeStamp = new Date(); console.log(`decreaseSpenderAllowance keyword ran on ${timeStamp}`); - return { showDecreasedAllowance }; + return { showDecreasedAllowance, gasReport }; }; - if (!module.parent) { const server = new robot.Server([lib], { host: 'localhost', port: 8270 }); } diff --git a/solidity-hardhat-multichain-tools/robotframework-hardhat-test-keywords.robot b/solidity-hardhat-multichain-tools/robotframework-hardhat-test-keywords.robot index fc9acc6..bac620e 100644 --- a/solidity-hardhat-multichain-tools/robotframework-hardhat-test-keywords.robot +++ b/solidity-hardhat-multichain-tools/robotframework-hardhat-test-keywords.robot @@ -33,7 +33,7 @@ HARDHAT ETHERS.JS TEST 6 : Get balance of tokens from the address of the deploye ${RESULT}= Get Balance Of Address %{CONTRACT_ADDRESS} Check Smart Contract Results And Log Them ${RESULT} addressBalance -HARDHAT ETHERS.JS TEST 7 : Transfer tokens to a target address from the contract owner address and check the result. +HARDHAT ETHERS.JS TEST 7 : Transfer tokens to a target address from the contract owner address and check the result. Show the amount of gas that was used. ${RECEIVING_ADDRESS}= Get Receiver Target Address %{CONTRACT_ADDRESS} Check Smart Contract Results And Log Them ${RECEIVING_ADDRESS} receivingAddress ${RESULT}= Transfer To Target Address %{CONTRACT_ADDRESS} @@ -43,13 +43,13 @@ HARDHAT ETHERS.JS TEST 8 : Get balance of tokens from the address of the deploye ${RESULT}= Get Balance Of Address %{CONTRACT_ADDRESS} Check Smart Contract Results And Log Them ${RESULT} addressBalance -HARDHAT ETHERS.JS TEST 9 : Approve a specific amount of tokens for a target address, show the allowance, and check the result. +HARDHAT ETHERS.JS TEST 9 : Approve a specific amount of tokens for a target address, show the allowance, and check the result. Show the amount of gas that was used. ${APPROVAL_OUTPUT}= Approve Spender Amount %{CONTRACT_ADDRESS} Check Smart Contract Results And Log Them ${APPROVAL_OUTPUT} approvalSuccess ${RESULT}= Show Spender Allowance %{CONTRACT_ADDRESS} Check Smart Contract Results And Log Them ${RESULT} showAllowance -HARDHAT ETHERS.JS TEST 10 : Transfer tokens from a target address to the contract owner address and check the result. +HARDHAT ETHERS.JS TEST 10 : Transfer tokens from a target address to the contract owner address and check the result. Show the amount of gas that was used. ${TOKEN_ADDRESS}= Get Token Balance Address %{CONTRACT_ADDRESS} Check Smart Contract Results And Log Them ${TOKEN_ADDRESS} testTokenAddress ${RECEIVING_ADDRESS}= Get Receiver Target Address %{CONTRACT_ADDRESS} @@ -57,11 +57,11 @@ HARDHAT ETHERS.JS TEST 10 : Transfer tokens from a target address to the contrac ${RESULT}= Transfer From Target Address %{CONTRACT_ADDRESS} Check Smart Contract Results And Log Them ${RESULT} senderBalanceFormatUnits -HARDHAT ETHERS.JS TEST 11 : Increase the allowance of the spender account and check the result. +HARDHAT ETHERS.JS TEST 11 : Increase the allowance of the spender account and check the result. Show the amount of gas that was used. ${RESULT}= Increase Spender Allowance %{CONTRACT_ADDRESS} Check Smart Contract Results And Log Them ${RESULT} showIncreasedAllowance -HARDHAT ETHERS.JS TEST 12 : Decrease the allowance of the spender account and check the result. +HARDHAT ETHERS.JS TEST 12 : Decrease the allowance of the spender account and check the result. Show the amount of gas that was used. ${RESULT}= Decrease Spender Allowance %{CONTRACT_ADDRESS} Check Smart Contract Results And Log Them ${RESULT} showDecreasedAllowance