From fbcd74312f3451022e75143392fb122f618ae140 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Sun, 31 May 2020 15:48:55 +0200 Subject: [PATCH 01/13] Upgrade karma to 5.0.9 --- yarn.lock | 276 +++++++++++++++++++++++++++++------------------------- 1 file changed, 147 insertions(+), 129 deletions(-) diff --git a/yarn.lock b/yarn.lock index f671929c..e7f945b0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1722,13 +1722,6 @@ async-limiter@~1.0.0: resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -async@^2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -1786,10 +1779,10 @@ base64-js@^1.0.2, base64-js@^1.3.0: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== -base64id@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" - integrity sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY= +base64id@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" + integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== base@^0.11.1: version "0.11.2" @@ -1880,7 +1873,7 @@ bn.js@^5.1.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.1.tgz#48efc4031a9c4041b9c99c6941d903463ab62eb5" integrity sha512-IUTD/REb78Z2eodka1QZyyEk66pciRcP6Sroka0aI3tG/iwIdYLrBD62RsubR7vqdt3WyX8p4jxeatzmRSphtA== -body-parser@^1.16.1: +body-parser@^1.19.0: version "1.19.0" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== @@ -2354,7 +2347,7 @@ colors@1.1.2: resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM= -colors@^1.1.0, colors@^1.3.3: +colors@^1.3.3, colors@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== @@ -2402,7 +2395,7 @@ component-emitter@1.2.1: resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= -component-emitter@^1.2.1: +component-emitter@^1.2.1, component-emitter@~1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== @@ -2445,7 +2438,7 @@ config-chain@^1.1.11: ini "^1.3.4" proto-list "~1.2.1" -connect@^3.6.0: +connect@^3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== @@ -2710,11 +2703,16 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -date-format@^2.0.0: +date-format@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/date-format/-/date-format-2.1.0.tgz#31d5b5ea211cf5fd764cd38baf9d033df7e125cf" integrity sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA== +date-format@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/date-format/-/date-format-3.0.0.tgz#eb8780365c7d2b1511078fb491e6479780f3ad95" + integrity sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w== + dateformat@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" @@ -2734,14 +2732,14 @@ debug@3.1.0, debug@=3.1.0, debug@~3.1.0: dependencies: ms "2.0.0" -debug@^3.0.0, debug@^3.1.0, debug@^3.2.6: +debug@^3.0.0, debug@^3.1.0: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: ms "^2.1.1" -debug@^4.0.1, debug@^4.1.1: +debug@^4.0.1, debug@^4.1.1, debug@~4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== @@ -2932,7 +2930,7 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dom-serialize@^2.2.0: +dom-serialize@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" integrity sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs= @@ -3041,27 +3039,27 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -engine.io-client@~3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36" - integrity sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw== +engine.io-client@~3.4.0: + version "3.4.2" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.4.2.tgz#4fb2ef2b1fe1d3aa1c621c6a8d87f1fc55426b50" + integrity sha512-AWjc1Xg06a6UPFOBAzJf48W1UR/qKYmv/ubgSCumo9GXgvL/xGIvo05dXoBL+2NTLMipDI7in8xK61C17L25xg== dependencies: - component-emitter "1.2.1" + component-emitter "~1.3.0" component-inherit "0.0.3" - debug "~3.1.0" - engine.io-parser "~2.1.1" + debug "~4.1.0" + engine.io-parser "~2.2.0" has-cors "1.1.0" indexof "0.0.1" parseqs "0.0.5" parseuri "0.0.5" - ws "~3.3.1" + ws "~6.1.0" xmlhttprequest-ssl "~1.5.4" yeast "0.1.2" -engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6" - integrity sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA== +engine.io-parser@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.0.tgz#312c4894f57d52a02b420868da7b5c1c84af80ed" + integrity sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w== dependencies: after "0.8.2" arraybuffer.slice "~0.0.7" @@ -3069,17 +3067,17 @@ engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: blob "0.0.5" has-binary2 "~1.0.2" -engine.io@~3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.1.tgz#b60281c35484a70ee0351ea0ebff83ec8c9522a2" - integrity sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w== +engine.io@~3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.4.1.tgz#a61cbc13fa0cb27d9453fd079a29ee980564b069" + integrity sha512-8MfIfF1/IIfxuc2gv5K+XlFZczw/BpTvqBdl0E2fBLkYQp4miv4LuDTVtYt4yMyaIFLEr4vtaSgV4mjvll8Crw== dependencies: accepts "~1.3.4" - base64id "1.0.0" + base64id "2.0.0" cookie "0.3.1" - debug "~3.1.0" - engine.io-parser "~2.1.0" - ws "~3.3.1" + debug "~4.1.0" + engine.io-parser "~2.2.0" + ws "^7.1.2" enhanced-resolve@4.1.0: version "4.1.0" @@ -3633,6 +3631,11 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== +flatted@^2.0.1, flatted@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== + flush-write-stream@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" @@ -3694,15 +3697,6 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" -fs-extra@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" - integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -3969,6 +3963,11 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== +graceful-fs@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== + handlebars@^4.4.0: version "4.7.4" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.4.tgz#902c579cc97b350bb4bc12e6cabd85b57dcd9975" @@ -4143,10 +4142,10 @@ http-proxy-agent@^2.1.0: agent-base "4" debug "3.1.0" -http-proxy@^1.13.0: - version "1.18.0" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz#dbe55f63e75a347db7f3d99974f2692a314a6a3a" - integrity sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ== +http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== dependencies: eventemitter3 "^4.0.0" follow-redirects "^1.0.0" @@ -4625,7 +4624,7 @@ isarray@2.0.1: resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= -isbinaryfile@^4.0.2: +isbinaryfile@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.6.tgz#edcb62b224e2b4710830b67498c8e4e5a4d2610b" integrity sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg== @@ -4781,32 +4780,32 @@ karma-jasmine@^3: jasmine-core "^3.5.0" karma@^5: - version "5.0.2" - resolved "https://registry.yarnpkg.com/karma/-/karma-5.0.2.tgz#e404373dac6e3fa08409ae4d9eda7d83adb43ee5" - integrity sha512-RpUuCuGJfN3WnjYPGIH+VBF8023Lfm3TQH6D1kcNL+FxtEPc2UUz/nVjbVAGXH4Pm+Q7FVOAQjdAeFUpXpQ3IA== + version "5.0.9" + resolved "https://registry.yarnpkg.com/karma/-/karma-5.0.9.tgz#11a119b0c763a806fdc471b40c594a2240b5ca13" + integrity sha512-dUA5z7Lo7G4FRSe1ZAXqOINEEWxmCjDBbfRBmU/wYlSMwxUQJP/tEEP90yJt3Uqo03s9rCgVnxtlfq+uDhxSPg== dependencies: - body-parser "^1.16.1" + body-parser "^1.19.0" braces "^3.0.2" chokidar "^3.0.0" - colors "^1.1.0" - connect "^3.6.0" + colors "^1.4.0" + connect "^3.7.0" di "^0.0.1" - dom-serialize "^2.2.0" - flatted "^2.0.0" - glob "^7.1.1" - graceful-fs "^4.1.2" - http-proxy "^1.13.0" - isbinaryfile "^4.0.2" - lodash "^4.17.14" - log4js "^4.0.0" - mime "^2.3.1" - minimatch "^3.0.2" - qjobs "^1.1.4" - range-parser "^1.2.0" - rimraf "^2.6.0" - socket.io "2.1.1" + dom-serialize "^2.2.1" + flatted "^2.0.2" + glob "^7.1.6" + graceful-fs "^4.2.4" + http-proxy "^1.18.1" + isbinaryfile "^4.0.6" + lodash "^4.17.15" + log4js "^6.2.1" + mime "^2.4.5" + minimatch "^3.0.4" + qjobs "^1.2.0" + range-parser "^1.2.1" + rimraf "^3.0.2" + socket.io "^2.3.0" source-map "^0.6.1" - tmp "0.0.33" + tmp "0.2.1" ua-parser-js "0.7.21" yargs "^15.3.1" @@ -5132,16 +5131,16 @@ lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.2.1: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== -log4js@^4.0.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-4.5.1.tgz#e543625e97d9e6f3e6e7c9fc196dd6ab2cae30b5" - integrity sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw== +log4js@^6.2.1: + version "6.3.0" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.3.0.tgz#10dfafbb434351a3e30277a00b9879446f715bcb" + integrity sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw== dependencies: - date-format "^2.0.0" + date-format "^3.0.0" debug "^4.1.1" - flatted "^2.0.0" + flatted "^2.0.1" rfdc "^1.1.4" - streamroller "^1.0.6" + streamroller "^2.2.4" long@^4.0.0: version "4.0.0" @@ -5368,10 +5367,10 @@ mime-types@^2.1.12, mime-types@^2.1.18, mime-types@~2.1.19, mime-types@~2.1.24: dependencies: mime-db "1.43.0" -mime@^2.3.1: - version "2.4.4" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" - integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== +mime@^2.4.5: + version "2.4.6" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" + integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== mimic-fn@^1.0.0: version "1.2.0" @@ -5393,7 +5392,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@^3.0.2, minimatch@^3.0.4: +minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -6375,7 +6374,7 @@ q@^1.5.1: resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= -qjobs@^1.1.4: +qjobs@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== @@ -6430,7 +6429,7 @@ randomfill@^1.0.3: randombytes "^2.0.5" safe-buffer "^5.1.0" -range-parser@^1.2.0: +range-parser@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== @@ -6783,13 +6782,20 @@ rimraf@2.6.3: dependencies: glob "^7.1.3" -rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.2, rimraf@^2.6.3: +rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + ripemd160@^2.0.0, ripemd160@^2.0.1, ripemd160@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -6999,46 +7005,55 @@ socket.io-adapter@~1.1.0: resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== -socket.io-client@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz#dcb38103436ab4578ddb026638ae2f21b623671f" - integrity sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ== +socket.io-client@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.3.0.tgz#14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4" + integrity sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA== dependencies: backo2 "1.0.2" base64-arraybuffer "0.1.5" component-bind "1.0.0" component-emitter "1.2.1" - debug "~3.1.0" - engine.io-client "~3.2.0" + debug "~4.1.0" + engine.io-client "~3.4.0" has-binary2 "~1.0.2" has-cors "1.1.0" indexof "0.0.1" object-component "0.0.3" parseqs "0.0.5" parseuri "0.0.5" - socket.io-parser "~3.2.0" + socket.io-parser "~3.3.0" to-array "0.1.4" -socket.io-parser@~3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077" - integrity sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA== +socket.io-parser@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f" + integrity sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng== dependencies: component-emitter "1.2.1" debug "~3.1.0" isarray "2.0.1" -socket.io@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz#a069c5feabee3e6b214a75b40ce0652e1cfb9980" - integrity sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA== +socket.io-parser@~3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.4.1.tgz#b06af838302975837eab2dc980037da24054d64a" + integrity sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A== dependencies: - debug "~3.1.0" - engine.io "~3.2.0" + component-emitter "1.2.1" + debug "~4.1.0" + isarray "2.0.1" + +socket.io@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.3.0.tgz#cd762ed6a4faeca59bc1f3e243c0969311eb73fb" + integrity sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg== + dependencies: + debug "~4.1.0" + engine.io "~3.4.0" has-binary2 "~1.0.2" socket.io-adapter "~1.1.0" - socket.io-client "2.1.1" - socket.io-parser "~3.2.0" + socket.io-client "2.3.0" + socket.io-parser "~3.4.0" socks-proxy-agent@^4.0.0: version "4.0.2" @@ -7221,16 +7236,14 @@ stream-shift@^1.0.0: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== -streamroller@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-1.0.6.tgz#8167d8496ed9f19f05ee4b158d9611321b8cacd9" - integrity sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg== +streamroller@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-2.2.4.tgz#c198ced42db94086a6193608187ce80a5f2b0e53" + integrity sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ== dependencies: - async "^2.6.2" - date-format "^2.0.0" - debug "^3.2.6" - fs-extra "^7.0.1" - lodash "^4.17.14" + date-format "^2.1.0" + debug "^4.1.1" + fs-extra "^8.1.0" string-width@^1.0.1: version "1.0.2" @@ -7514,7 +7527,14 @@ timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" -tmp@0.0.33, tmp@^0.0.33: +tmp@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + +tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== @@ -7706,11 +7726,6 @@ uid-number@0.0.6: resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" integrity sha1-DqEOgDXo61uOREnwbaHHMGY7qoE= -ultron@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" - integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== - umask@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" @@ -8085,14 +8100,17 @@ write@1.0.3: dependencies: mkdirp "^0.5.1" -ws@~3.3.1: - version "3.3.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" - integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== +ws@^7.1.2: + version "7.3.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.0.tgz#4b2f7f219b3d3737bc1a2fbf145d825b94d38ffd" + integrity sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w== + +ws@~6.1.0: + version "6.1.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" + integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA== dependencies: async-limiter "~1.0.0" - safe-buffer "~5.1.0" - ultron "~1.1.0" xmlhttprequest-ssl@~1.5.4: version "1.5.5" From 0ca2be0e517f351e22b1e8ba5f44bc492cbd7634 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Fri, 5 Jun 2020 10:04:10 +0200 Subject: [PATCH 02/13] Fix bug in deduplicate --- packages/bcp/src/cosmosconnection.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/bcp/src/cosmosconnection.ts b/packages/bcp/src/cosmosconnection.ts index f9ed3f4e..83e55905 100644 --- a/packages/bcp/src/cosmosconnection.ts +++ b/packages/bcp/src/cosmosconnection.ts @@ -63,7 +63,7 @@ function isDefined(value: X | undefined): value is X { function deduplicate(input: ReadonlyArray, comparator: (a: T, b: T) => number): Array { const out = new Array(); for (const element of input) { - if (!out.find((o) => comparator(o, element) === 0)) { + if (out.find((o) => comparator(o, element) === 0) === undefined) { out.push(element); } } From f75a2b9ad2e10ac1b4dc9999491ede9234ede3db Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Fri, 5 Jun 2020 10:05:10 +0200 Subject: [PATCH 03/13] Use alice instead of faucet for pubkey getter --- packages/bcp/src/cosmosconnection.spec.ts | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/packages/bcp/src/cosmosconnection.spec.ts b/packages/bcp/src/cosmosconnection.spec.ts index 82acce8a..2f587d17 100644 --- a/packages/bcp/src/cosmosconnection.spec.ts +++ b/packages/bcp/src/cosmosconnection.spec.ts @@ -39,15 +39,12 @@ function makeRandomAddress(): Address { return Bech32.encode(defaultAddressPrefix, Random.getBytes(20)) as Address; } -const faucet = { - mnemonic: - "economy stock theory fatal elder harbor betray wasp final emotion task crumble siren bottom lizard educate guess current outdoor pair theory focus wife stone", - path: HdPaths.cosmosHub(0), - pubkey: { +const alice = { + address0: "cosmos14qemq0vw6y3gc3u3e0aty2e764u4gs5le3hada" as Address, + pubkey0: { algo: Algorithm.Secp256k1, - data: fromBase64("A08EGB7ro1ORuFhjOnZcSgwYlpe0DSFjVNUIkNNQxwKQ") as PubkeyBytes, + data: fromBase64("A9cXhWb8ZpqCzkA8dQCPV29KdeRLV3rUYxrkHudLbQtS") as PubkeyBytes, }, - address: "cosmos1pkptre7fdkl6gfrzlesjjvhxhlc3r4gmmk8rs6" as Address, }; /** @@ -238,8 +235,8 @@ describe("CosmosConnection", () => { it("has a pubkey when getting account with transactions", async () => { pendingWithoutWasmd(); const connection = await CosmosConnection.establish(httpUrl, defaultAddressPrefix, defaultConfig); - const account = await connection.getAccount({ address: faucet.address }); - expect(account?.pubkey).toEqual(faucet.pubkey); + const account = await connection.getAccount({ address: alice.address0 }); + expect(account?.pubkey).toEqual(alice.pubkey0); connection.disconnect(); }); }); From da8af6f5ae47ea2972fb24549ff350f2e2d66c8d Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Fri, 5 Jun 2020 10:07:12 +0200 Subject: [PATCH 04/13] Update BCP test account --- packages/bcp/src/cosmosconnection.spec.ts | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/packages/bcp/src/cosmosconnection.spec.ts b/packages/bcp/src/cosmosconnection.spec.ts index 2f587d17..851e22a4 100644 --- a/packages/bcp/src/cosmosconnection.spec.ts +++ b/packages/bcp/src/cosmosconnection.spec.ts @@ -52,14 +52,13 @@ const alice = { * with multiple messages are found. */ const bob = { - mnemonic: - "economy stock theory fatal elder harbor betray wasp final emotion task crumble siren bottom lizard educate guess current outdoor pair theory focus wife stone", - path: HdPaths.cosmosHub(4), + mnemonic: "remain fragile remove stamp quiz bus country dress critic mammal office need", + path0: HdPaths.cosmosHub(0), pubkey: { algo: Algorithm.Secp256k1, - data: fromBase64("Aum2063ub/ErUnIUB36sK55LktGUStgcbSiaAnL1wadu") as PubkeyBytes, + data: fromBase64("A0d/GxY+UALE+miWJP0qyq4/EayG1G6tsg24v+cbD6By") as PubkeyBytes, }, - address: "cosmos1hsm76p4ahyhl5yh3ve9ur49r5kemhp2r0dcjvx" as Address, + address: "cosmos1lvrwcvrqlc5ktzp2c4t22xgkx29q3y83lktgzl" as Address, }; describe("CosmosConnection", () => { @@ -283,7 +282,7 @@ describe("CosmosConnection", () => { const profile = new UserProfile(); const wallet = profile.addWallet(Secp256k1HdWallet.fromMnemonic(bob.mnemonic)); - const sender = await profile.createIdentity(wallet.id, defaultChainId, bob.path); + const sender = await profile.createIdentity(wallet.id, defaultChainId, bob.path0); const senderAddress = connection.codec.identityToAddress(sender); for (const i of [0, 1]) { @@ -311,7 +310,7 @@ describe("CosmosConnection", () => { const connection = await CosmosConnection.establish(httpUrl, defaultAddressPrefix, defaultConfig); const profile = new UserProfile(); const wallet = profile.addWallet(Secp256k1HdWallet.fromMnemonic(bob.mnemonic)); - const senderIdentity = await profile.createIdentity(wallet.id, defaultChainId, bob.path); + const senderIdentity = await profile.createIdentity(wallet.id, defaultChainId, bob.path0); const senderAddress = connection.codec.identityToAddress(senderIdentity); const unsigned = await connection.withDefaultFee({ @@ -418,7 +417,7 @@ describe("CosmosConnection", () => { const connection = await CosmosConnection.establish(httpUrl, defaultAddressPrefix, defaultConfig); const profile = new UserProfile(); const wallet = profile.addWallet(Secp256k1HdWallet.fromMnemonic(bob.mnemonic)); - const sender = await profile.createIdentity(wallet.id, defaultChainId, bob.path); + const sender = await profile.createIdentity(wallet.id, defaultChainId, bob.path0); const senderAddress = connection.codec.identityToAddress(sender); const unsigned = await connection.withDefaultFee({ @@ -508,7 +507,7 @@ describe("CosmosConnection", () => { const connection = await CosmosConnection.establish(httpUrl, defaultAddressPrefix, defaultConfig); const profile = new UserProfile(); const wallet = profile.addWallet(Secp256k1HdWallet.fromMnemonic(bob.mnemonic)); - const sender = await profile.createIdentity(wallet.id, defaultChainId, bob.path); + const sender = await profile.createIdentity(wallet.id, defaultChainId, bob.path0); const senderAddress = connection.codec.identityToAddress(sender); const recipient = makeRandomAddress(); @@ -720,7 +719,7 @@ describe("CosmosConnection", () => { const profile = new UserProfile(); const wallet = profile.addWallet(Secp256k1HdWallet.fromMnemonic(bob.mnemonic)); - const sender = await profile.createIdentity(wallet.id, defaultChainId, bob.path); + const sender = await profile.createIdentity(wallet.id, defaultChainId, bob.path0); // send transactions @@ -803,7 +802,7 @@ describe("CosmosConnection", () => { const profile = new UserProfile(); const wallet = profile.addWallet(Secp256k1HdWallet.fromMnemonic(bob.mnemonic)); - const sender = await profile.createIdentity(wallet.id, defaultChainId, bob.path); + const sender = await profile.createIdentity(wallet.id, defaultChainId, bob.path0); const recipientAddress = makeRandomAddress(); const send = await connection.withDefaultFee({ @@ -853,7 +852,7 @@ describe("CosmosConnection", () => { const profile = new UserProfile(); const wallet = profile.addWallet(Secp256k1HdWallet.fromMnemonic(bob.mnemonic)); - const sender = await profile.createIdentity(wallet.id, defaultChainId, bob.path); + const sender = await profile.createIdentity(wallet.id, defaultChainId, bob.path0); // send transactions From a504d1a3c66038556c9a51b7e921a64bd05f0430 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Fri, 5 Jun 2020 10:40:57 +0200 Subject: [PATCH 05/13] Get sendUnsuccessful.height from error this makes parallel testing more stable --- .../src/cosmwasmclient.searchtx.spec.ts | 19 +++++++++++-------- packages/cosmwasm/src/cosmwasmclient.ts | 2 +- .../sdk38/src/cosmosclient.searchtx.spec.ts | 19 +++++++++++-------- packages/sdk38/src/cosmosclient.ts | 2 +- 4 files changed, 24 insertions(+), 18 deletions(-) diff --git a/packages/cosmwasm/src/cosmwasmclient.searchtx.spec.ts b/packages/cosmwasm/src/cosmwasmclient.searchtx.spec.ts index 03f2664a..f278f0ba 100644 --- a/packages/cosmwasm/src/cosmwasmclient.searchtx.spec.ts +++ b/packages/cosmwasm/src/cosmwasmclient.searchtx.spec.ts @@ -1,5 +1,6 @@ /* eslint-disable @typescript-eslint/camelcase */ import { Coin, CosmosSdkTx, isMsgSend, makeSignBytes, MsgSend, Secp256k1Pen } from "@cosmjs/sdk38"; +import { Uint53 } from "@iov/encoding"; import { assert, sleep } from "@iov/utils"; import { CosmWasmClient } from "./cosmwasmclient"; @@ -112,20 +113,22 @@ describe("CosmWasmClient.searchTx", () => { }, }; const transactionId = await client.getIdentifier(tx); - const heightBeforeThis = await client.getHeight(); try { await client.postTx(tx.value); } catch (error) { // postTx() throws on execution failures, which is a questionable design. Ignore for now. // console.log(error); + const errorMessage: string = error.toString(); + const [_, heightMatch] = errorMessage.match(/at height ([0-9]+)/) || ["", ""]; + + sendUnsuccessful = { + sender: alice.address0, + recipient: recipient, + hash: transactionId, + height: Uint53.fromString(heightMatch).toNumber(), + tx: tx, + }; } - sendUnsuccessful = { - sender: alice.address0, - recipient: recipient, - hash: transactionId, - height: heightBeforeThis + 1, - tx: tx, - }; } { diff --git a/packages/cosmwasm/src/cosmwasmclient.ts b/packages/cosmwasm/src/cosmwasmclient.ts index dbbdaffb..d22be7aa 100644 --- a/packages/cosmwasm/src/cosmwasmclient.ts +++ b/packages/cosmwasm/src/cosmwasmclient.ts @@ -296,7 +296,7 @@ export class CosmWasmClient { if (result.code) { throw new Error( - `Error when posting tx ${result.txhash}. Code: ${result.code}; Raw log: ${result.raw_log}`, + `Error when posting tx ${result.txhash} at height ${result.height}. Code: ${result.code}; Raw log: ${result.raw_log}`, ); } diff --git a/packages/sdk38/src/cosmosclient.searchtx.spec.ts b/packages/sdk38/src/cosmosclient.searchtx.spec.ts index c33e9247..3cf19b05 100644 --- a/packages/sdk38/src/cosmosclient.searchtx.spec.ts +++ b/packages/sdk38/src/cosmosclient.searchtx.spec.ts @@ -1,4 +1,5 @@ /* eslint-disable @typescript-eslint/camelcase */ +import { Uint53 } from "@iov/encoding"; import { assert, sleep } from "@iov/utils"; import { Coin } from "./coins"; @@ -104,20 +105,22 @@ describe("CosmosClient.searchTx", () => { }, }; const transactionId = await client.getIdentifier(tx); - const heightBeforeThis = await client.getHeight(); try { await client.postTx(tx.value); } catch (error) { // postTx() throws on execution failures, which is a questionable design. Ignore for now. // console.log(error); + const errorMessage: string = error.toString(); + const [_, heightMatch] = errorMessage.match(/at height ([0-9]+)/) || ["", ""]; + + sendUnsuccessful = { + sender: faucet.address, + recipient: recipient, + hash: transactionId, + height: Uint53.fromString(heightMatch).toNumber(), + tx: tx, + }; } - sendUnsuccessful = { - sender: faucet.address, - recipient: recipient, - hash: transactionId, - height: heightBeforeThis + 1, - tx: tx, - }; } } }); diff --git a/packages/sdk38/src/cosmosclient.ts b/packages/sdk38/src/cosmosclient.ts index d3b5d807..3a390e6a 100644 --- a/packages/sdk38/src/cosmosclient.ts +++ b/packages/sdk38/src/cosmosclient.ts @@ -278,7 +278,7 @@ export class CosmosClient { if (result.code) { throw new Error( - `Error when posting tx ${result.txhash}. Code: ${result.code}; Raw log: ${result.raw_log}`, + `Error when posting tx ${result.txhash} at height ${result.height}. Code: ${result.code}; Raw log: ${result.raw_log}`, ); } From c448d6beb106e126612809946a1df35e3840a2c1 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Fri, 5 Jun 2020 10:54:28 +0200 Subject: [PATCH 06/13] Stabilize height search tests for parallel testing --- packages/bcp/src/cosmosconnection.spec.ts | 29 ++++++++++------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/packages/bcp/src/cosmosconnection.spec.ts b/packages/bcp/src/cosmosconnection.spec.ts index 851e22a4..e08f55a2 100644 --- a/packages/bcp/src/cosmosconnection.spec.ts +++ b/packages/bcp/src/cosmosconnection.spec.ts @@ -488,16 +488,13 @@ describe("CosmosConnection", () => { // search by height const heightResults = await connection.searchTx({ height: byIdResult.height }); - expect(heightResults.length).toEqual(1); - const heightResult = heightResults[0]; - expect(heightResult.transactionId).toEqual(transactionId); - assert(isConfirmedTransaction(heightResult), "Expected transaction to succeed"); - assert(heightResult.log, "Log must be available"); - const [firstHeightLog] = JSON.parse(heightResult.log); - expect(firstHeightLog.events.length).toEqual(2); - const heightTransaction = heightResult.transaction; - assert(isSendTransaction(heightTransaction), "Expected send transaction"); - expect(heightTransaction).toEqual(unsigned); + expect(heightResults.length).toBeGreaterThanOrEqual(1); + expect(heightResults).toContain( + jasmine.objectContaining({ + transactionId: transactionId, + transaction: unsigned, + }), + ); connection.disconnect(); }); @@ -647,23 +644,23 @@ describe("CosmosConnection", () => { // search by height { const results = await connection.searchTx({ height: height }); - expect(results.length).toEqual(1); + expect(results.length).toBeGreaterThanOrEqual(1); } { const results = await connection.searchTx({ height: height, minHeight: height }); - expect(results.length).toEqual(1); + expect(results.length).toBeGreaterThanOrEqual(1); } { const results = await connection.searchTx({ height: height, minHeight: height - 2 }); - expect(results.length).toEqual(1); + expect(results.length).toBeGreaterThanOrEqual(1); } { const results = await connection.searchTx({ height: height, maxHeight: height }); - expect(results.length).toEqual(1); + expect(results.length).toBeGreaterThanOrEqual(1); } { const results = await connection.searchTx({ height: height, maxHeight: height + 2 }); - expect(results.length).toEqual(1); + expect(results.length).toBeGreaterThanOrEqual(1); } { const results = await connection.searchTx({ height: height, minHeight: height + 1 }); @@ -679,7 +676,7 @@ describe("CosmosConnection", () => { minHeight: height, maxHeight: height, }); - expect(results.length).toEqual(1); + expect(results.length).toBeGreaterThanOrEqual(1); } { const results = await connection.searchTx({ height: height, minHeight: height + 1 }); From 4701e1aaeaaab02f06419cf4b04dbf22fee4b345 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Fri, 5 Jun 2020 11:06:47 +0200 Subject: [PATCH 07/13] Allow multiple tx results in "can query transactions by height" --- packages/cosmwasm/src/restclient.spec.ts | 6 +++--- packages/sdk38/src/restclient.spec.ts | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/cosmwasm/src/restclient.spec.ts b/packages/cosmwasm/src/restclient.spec.ts index a0a810cd..978e2f20 100644 --- a/packages/cosmwasm/src/restclient.spec.ts +++ b/packages/cosmwasm/src/restclient.spec.ts @@ -515,12 +515,12 @@ describe("RestClient", () => { const client = new RestClient(wasmd.endpoint); const result = await client.txsQuery(`tx.height=${posted.height}&limit=26`); expect(result).toEqual({ - count: "1", + count: jasmine.stringMatching(/^(1|2|3|4|5)$/), // 1-5 transactions as string limit: "26", page_number: "1", page_total: "1", - total_count: "1", - txs: [posted.tx], + total_count: jasmine.stringMatching(/^(1|2|3|4|5)$/), // 1-5 transactions as string + txs: jasmine.arrayContaining([posted.tx]), }); }); diff --git a/packages/sdk38/src/restclient.spec.ts b/packages/sdk38/src/restclient.spec.ts index 6088738b..3e919e14 100644 --- a/packages/sdk38/src/restclient.spec.ts +++ b/packages/sdk38/src/restclient.spec.ts @@ -387,12 +387,12 @@ describe("RestClient", () => { const client = new RestClient(wasmd.endpoint); const result = await client.txsQuery(`tx.height=${posted.height}&limit=26`); expect(result).toEqual({ - count: "1", + count: jasmine.stringMatching(/^(1|2|3|4|5)$/), // 1-5 transactions as string limit: "26", page_number: "1", page_total: "1", - total_count: "1", - txs: [posted.tx], + total_count: jasmine.stringMatching(/^(1|2|3|4|5)$/), // 1-5 transactions as string + txs: jasmine.arrayContaining([posted.tx]), }); }); From 71012f9c67921bb7d0a14ee1084047713744aae9 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Fri, 5 Jun 2020 11:07:08 +0200 Subject: [PATCH 08/13] Add test-firefox command --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 199632ab..5698c9ae 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "lint": "lerna run lint", "lint-fix": "lerna run lint-fix", "test": "lerna run test", + "test-firefox": "lerna run test-firefox", "build": "lerna run build", "docs": "lerna run docs" }, From 5a3d17b817db27bec2e9c43af3407595bdde332d Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Fri, 5 Jun 2020 11:10:22 +0200 Subject: [PATCH 09/13] Add and update test-chrome command --- package.json | 1 + packages/bcp/karma.conf.js | 7 ------- packages/bcp/package.json | 2 +- packages/cosmwasm/karma.conf.js | 7 ------- packages/cosmwasm/package.json | 2 +- packages/demo-staking/karma.conf.js | 7 ------- packages/demo-staking/package.json | 2 +- packages/sdk38/karma.conf.js | 7 ------- packages/sdk38/package.json | 2 +- 9 files changed, 5 insertions(+), 32 deletions(-) diff --git a/package.json b/package.json index 5698c9ae..49b39373 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "lint-fix": "lerna run lint-fix", "test": "lerna run test", "test-firefox": "lerna run test-firefox", + "test-chrome": "lerna run test-chrome", "build": "lerna run build", "docs": "lerna run docs" }, diff --git a/packages/bcp/karma.conf.js b/packages/bcp/karma.conf.js index e68db403..006da5fe 100644 --- a/packages/bcp/karma.conf.js +++ b/packages/bcp/karma.conf.js @@ -43,12 +43,5 @@ module.exports = function (config) { // Keep brower open for debugging. This is overridden by yarn scripts singleRun: false, - - customLaunchers: { - ChromeHeadlessInsecure: { - base: "ChromeHeadless", - flags: ["--disable-web-security"], - }, - }, }); }; diff --git a/packages/bcp/package.json b/packages/bcp/package.json index df6bd64f..7d6289ef 100644 --- a/packages/bcp/package.json +++ b/packages/bcp/package.json @@ -34,7 +34,7 @@ "build-or-skip": "[ -n \"$SKIP_BUILD\" ] || yarn build", "test-node": "node jasmine-testrunner.js", "test-firefox": "yarn pack-web && karma start --single-run --browsers Firefox", - "test-chrome": "yarn pack-web && karma start --single-run --browsers ChromeHeadlessInsecure", + "test-chrome": "yarn pack-web && karma start --single-run --browsers ChromeHeadless", "test": "yarn build-or-skip && yarn test-node", "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.js" }, diff --git a/packages/cosmwasm/karma.conf.js b/packages/cosmwasm/karma.conf.js index e68db403..006da5fe 100644 --- a/packages/cosmwasm/karma.conf.js +++ b/packages/cosmwasm/karma.conf.js @@ -43,12 +43,5 @@ module.exports = function (config) { // Keep brower open for debugging. This is overridden by yarn scripts singleRun: false, - - customLaunchers: { - ChromeHeadlessInsecure: { - base: "ChromeHeadless", - flags: ["--disable-web-security"], - }, - }, }); }; diff --git a/packages/cosmwasm/package.json b/packages/cosmwasm/package.json index c579ac34..57b00043 100644 --- a/packages/cosmwasm/package.json +++ b/packages/cosmwasm/package.json @@ -31,7 +31,7 @@ "build-or-skip": "[ -n \"$SKIP_BUILD\" ] || yarn build", "test-node": "node jasmine-testrunner.js", "test-firefox": "yarn pack-web && karma start --single-run --browsers Firefox", - "test-chrome": "yarn pack-web && karma start --single-run --browsers ChromeHeadlessInsecure", + "test-chrome": "yarn pack-web && karma start --single-run --browsers ChromeHeadless", "test": "yarn build-or-skip && yarn test-node", "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.js" }, diff --git a/packages/demo-staking/karma.conf.js b/packages/demo-staking/karma.conf.js index e68db403..006da5fe 100644 --- a/packages/demo-staking/karma.conf.js +++ b/packages/demo-staking/karma.conf.js @@ -43,12 +43,5 @@ module.exports = function (config) { // Keep brower open for debugging. This is overridden by yarn scripts singleRun: false, - - customLaunchers: { - ChromeHeadlessInsecure: { - base: "ChromeHeadless", - flags: ["--disable-web-security"], - }, - }, }); }; diff --git a/packages/demo-staking/package.json b/packages/demo-staking/package.json index c0f203f7..a4bc8ac2 100644 --- a/packages/demo-staking/package.json +++ b/packages/demo-staking/package.json @@ -29,7 +29,7 @@ "build-or-skip": "[ -n \"$SKIP_BUILD\" ] || yarn build", "test-node": "node jasmine-testrunner.js", "test-firefox": "yarn pack-web && karma start --single-run --browsers Firefox", - "test-chrome": "yarn pack-web && karma start --single-run --browsers ChromeHeadlessInsecure", + "test-chrome": "yarn pack-web && karma start --single-run --browsers ChromeHeadless", "test": "yarn build-or-skip && yarn test-node", "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.js" }, diff --git a/packages/sdk38/karma.conf.js b/packages/sdk38/karma.conf.js index e68db403..006da5fe 100644 --- a/packages/sdk38/karma.conf.js +++ b/packages/sdk38/karma.conf.js @@ -43,12 +43,5 @@ module.exports = function (config) { // Keep brower open for debugging. This is overridden by yarn scripts singleRun: false, - - customLaunchers: { - ChromeHeadlessInsecure: { - base: "ChromeHeadless", - flags: ["--disable-web-security"], - }, - }, }); }; diff --git a/packages/sdk38/package.json b/packages/sdk38/package.json index f0adc349..878cdcb3 100644 --- a/packages/sdk38/package.json +++ b/packages/sdk38/package.json @@ -31,7 +31,7 @@ "build-or-skip": "[ -n \"$SKIP_BUILD\" ] || yarn build", "test-node": "node jasmine-testrunner.js", "test-firefox": "yarn pack-web && karma start --single-run --browsers Firefox", - "test-chrome": "yarn pack-web && karma start --single-run --browsers ChromeHeadlessInsecure", + "test-chrome": "yarn pack-web && karma start --single-run --browsers ChromeHeadless", "test": "yarn build-or-skip && yarn test-node", "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.js" }, From ae043aae69bf11e4a0f1a15aaabb3b74c3d6b544 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Fri, 5 Jun 2020 11:13:02 +0200 Subject: [PATCH 10/13] Run browser test in CI --- .circleci/config.yml | 59 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 45ee54c6..77faee8b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -8,6 +8,9 @@ workflows: - test: requires: - build + - test-chrome: + requires: + - build jobs: build: @@ -98,6 +101,62 @@ jobs: command: yarn selftest - run: command: ./scripts/wasmd/stop.sh + test-chrome: + machine: + # We can't use a containerized environment since it requires remote docker to start custom containers. + # However, we can't access the remote docker's network from the primary container. This is a + # feature, as documented in https://circleci.com/docs/2.0/building-docker-images/#separation-of-environments + # As a consequence, we cannot use the circleci CLI for this job because "You cannot use the machine + # executor in local jobs." (https://circleci.com/docs/2.0/local-cli/#limitations-of-running-jobs-locally) + # + # Available images: https://circleci.com/docs/2.0/configuration-reference/#available-machine-images + image: ubuntu-1604:202004-01 + steps: + - checkout + - run: # start early for less wait time below + command: ./scripts/wasmd/start.sh + background: true + - attach_workspace: + at: /tmp/builds + - run: + name: Merge build folders into project (merge with hardlinks) + command: cp --recursive --link /tmp/builds/* . + - run: + # The images ubuntu-1604:201903-01 comes with preinstalled nvm, which does not work well with non-login shells + name: Uninstall nvm + command: rm -rf "$NVM_DIR" ~/.npm ~/.bower + - run: + name: Install nodejs and yarn + command: | + curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - + curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - + echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list + sudo apt update && sudo apt install nodejs yarn + - run: + name: Version information + command: echo "node $(node --version)"; echo "yarn $(yarn --version)" + - restore_cache: + name: Restore Yarn Package Cache + keys: + - yarn-packages-{{ checksum "yarn.lock" }} + - run: + name: Install Dependencies + command: yarn install --frozen-lockfile + - save_cache: + name: Save Yarn Package Cache + key: yarn-packages-{{ checksum "yarn.lock" }} + paths: + - ~/.cache/yarn + - run: + name: Initialize blockchain (deploy contracts and friends) + command: ./scripts/wasmd/init.sh + - run: + environment: + WASMD_ENABLED: 1 + SKIP_BUILD: 1 + command: yarn test-chrome + - run: + command: ./scripts/wasmd/stop.sh lint: docker: - image: circleci/node:10 From 61d655a2694fd775f7d289d5c0234b7ef42113af Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Fri, 5 Jun 2020 11:29:25 +0200 Subject: [PATCH 11/13] Stabilize height tests --- packages/cosmwasm/src/cosmwasmclient.spec.ts | 7 +++++-- packages/sdk38/src/cosmosclient.spec.ts | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/cosmwasm/src/cosmwasmclient.spec.ts b/packages/cosmwasm/src/cosmwasmclient.spec.ts index 59234101..f5783812 100644 --- a/packages/cosmwasm/src/cosmwasmclient.spec.ts +++ b/packages/cosmwasm/src/cosmwasmclient.spec.ts @@ -21,6 +21,8 @@ import { wasmdEnabled, } from "./testutils.spec"; +const blockTime = 1_000; // ms + const guest = { address: "cosmos17d0jcz59jf68g52vq38tuuncmwwjk42u6mcxej", }; @@ -92,9 +94,10 @@ describe("CosmWasmClient", () => { const height2 = await client.getHeight(); expect(height2).toBeGreaterThan(0); - await sleep(1_000); + await sleep(blockTime); const height3 = await client.getHeight(); - expect(height3).toEqual(height2 + 1); + expect(height3).toBeGreaterThanOrEqual(height2 + 1); + expect(height3).toBeLessThanOrEqual(height2 + 2); expect(blockLatestSpy).toHaveBeenCalledTimes(1); expect(authAccountsSpy).toHaveBeenCalledTimes(2); diff --git a/packages/sdk38/src/cosmosclient.spec.ts b/packages/sdk38/src/cosmosclient.spec.ts index b41ae6f2..d3b97955 100644 --- a/packages/sdk38/src/cosmosclient.spec.ts +++ b/packages/sdk38/src/cosmosclient.spec.ts @@ -17,6 +17,8 @@ import { } from "./testutils.spec"; import { MsgSend, StdFee } from "./types"; +const blockTime = 1_000; // ms + const guest = { address: "cosmos17d0jcz59jf68g52vq38tuuncmwwjk42u6mcxej", }; @@ -80,9 +82,10 @@ describe("CosmosClient", () => { const height2 = await client.getHeight(); expect(height2).toBeGreaterThan(0); - await sleep(1_000); + await sleep(blockTime); const height3 = await client.getHeight(); - expect(height3).toEqual(height2 + 1); + expect(height3).toBeGreaterThanOrEqual(height2 + 1); + expect(height3).toBeLessThanOrEqual(height2 + 2); expect(blockLatestSpy).toHaveBeenCalledTimes(1); expect(authAccountsSpy).toHaveBeenCalledTimes(3); From 2292de6e19a8f4904187d599c91f37082981963a Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Fri, 5 Jun 2020 11:42:08 +0200 Subject: [PATCH 12/13] Add some tolerance for slow chains --- packages/cosmwasm/src/cosmwasmclient.spec.ts | 2 +- packages/sdk38/src/cosmosclient.spec.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/cosmwasm/src/cosmwasmclient.spec.ts b/packages/cosmwasm/src/cosmwasmclient.spec.ts index f5783812..d456dc3b 100644 --- a/packages/cosmwasm/src/cosmwasmclient.spec.ts +++ b/packages/cosmwasm/src/cosmwasmclient.spec.ts @@ -94,7 +94,7 @@ describe("CosmWasmClient", () => { const height2 = await client.getHeight(); expect(height2).toBeGreaterThan(0); - await sleep(blockTime); + await sleep(blockTime * 1.3); // tolerate chain being 30% slower than expected const height3 = await client.getHeight(); expect(height3).toBeGreaterThanOrEqual(height2 + 1); expect(height3).toBeLessThanOrEqual(height2 + 2); diff --git a/packages/sdk38/src/cosmosclient.spec.ts b/packages/sdk38/src/cosmosclient.spec.ts index d3b97955..d5e00079 100644 --- a/packages/sdk38/src/cosmosclient.spec.ts +++ b/packages/sdk38/src/cosmosclient.spec.ts @@ -82,7 +82,7 @@ describe("CosmosClient", () => { const height2 = await client.getHeight(); expect(height2).toBeGreaterThan(0); - await sleep(blockTime); + await sleep(blockTime * 1.3); // tolerate chain being 30% slower than expected const height3 = await client.getHeight(); expect(height3).toBeGreaterThanOrEqual(height2 + 1); expect(height3).toBeLessThanOrEqual(height2 + 2); From 6acdb3051ac4c9c3a0f849eef066cc9676510a68 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Fri, 5 Jun 2020 12:04:14 +0200 Subject: [PATCH 13/13] Stabilize "gets height via last block" --- packages/cosmwasm/src/cosmwasmclient.spec.ts | 5 +++-- packages/sdk38/src/cosmosclient.spec.ts | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/cosmwasm/src/cosmwasmclient.spec.ts b/packages/cosmwasm/src/cosmwasmclient.spec.ts index d456dc3b..a48ceb12 100644 --- a/packages/cosmwasm/src/cosmwasmclient.spec.ts +++ b/packages/cosmwasm/src/cosmwasmclient.spec.ts @@ -72,9 +72,10 @@ describe("CosmWasmClient", () => { const height1 = await client.getHeight(); expect(height1).toBeGreaterThan(0); - await sleep(1_000); + await sleep(blockTime * 1.3); // tolerate chain being 30% slower than expected const height2 = await client.getHeight(); - expect(height2).toEqual(height1 + 1); + expect(height2).toBeGreaterThanOrEqual(height1 + 1); + expect(height2).toBeLessThanOrEqual(height1 + 2); expect(blockLatestSpy).toHaveBeenCalledTimes(2); }); diff --git a/packages/sdk38/src/cosmosclient.spec.ts b/packages/sdk38/src/cosmosclient.spec.ts index d5e00079..12bce12b 100644 --- a/packages/sdk38/src/cosmosclient.spec.ts +++ b/packages/sdk38/src/cosmosclient.spec.ts @@ -60,9 +60,10 @@ describe("CosmosClient", () => { const height1 = await client.getHeight(); expect(height1).toBeGreaterThan(0); - await sleep(1_000); + await sleep(blockTime * 1.3); // tolerate chain being 30% slower than expected const height2 = await client.getHeight(); - expect(height2).toEqual(height1 + 1); + expect(height2).toBeGreaterThanOrEqual(height1 + 1); + expect(height2).toBeLessThanOrEqual(height1 + 2); expect(blockLatestSpy).toHaveBeenCalledTimes(2); });