<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
      <title>Wallet Test Framework</title>
      <link>https://wtf.allwallet.dev/</link>
      <description>A testing framework for Ethereum wallets.</description>
      <generator>Zola</generator>
      <language>en</language>
      <atom:link href="https://wtf.allwallet.dev/rss.xml" rel="self" type="application/rss+xml"/>
      <lastBuildDate>Fri, 01 Mar 2024 00:00:00 +0000</lastBuildDate>
      <item>
          <title>Test Report #2</title>
          <pubDate>Fri, 01 Mar 2024 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://wtf.allwallet.dev/week-47/</link>
          <guid>https://wtf.allwallet.dev/week-47/</guid>
          <description>&lt;h2 id=&quot;test-report&quot;&gt;Test Report&lt;a class=&quot;zola-anchor&quot; href=&quot;#test-report&quot; aria-label=&quot;Anchor link for: test-report&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;summary&quot;&gt;Summary&lt;a class=&quot;zola-anchor&quot; href=&quot;#summary&quot; aria-label=&quot;Anchor link for: summary&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;div class=&quot;report-holder&quot;&gt;
&lt;table class=&quot;report&quot;&gt;
    &lt;caption&gt;
        &lt;p&gt;
            Wallet Test Framework –
            &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;94f9943cea81ccb8a3456ec031ad1bd00ee9a1f6&quot;&gt;
                &lt;code&gt;94f9943cea81ccb8a3456ec031ad1bd00ee9a1f6&lt;&#x2F;code&gt;
            &lt;&#x2F;a&gt;
            &lt;br&gt;
            &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&quot;&gt;
                https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework
            &lt;&#x2F;a&gt;
        &lt;&#x2F;p&gt;
        &lt;p&gt;
            &lt;em&gt;Not a statement of a wallet&#x27;s quality or correctness.&lt;&#x2F;em&gt;
        &lt;&#x2F;p&gt;
    &lt;&#x2F;caption&gt;
    &lt;thead&gt;
        &lt;tr&gt;
            &lt;th&gt;Wallet&lt;&#x2F;th&gt;
            &lt;th&gt;Automated&lt;&#x2F;th&gt;
            &lt;th&gt;Version&lt;&#x2F;th&gt;
            &lt;th&gt;Passing Tests&lt;&#x2F;th&gt;
            &lt;th&gt;Pass %&lt;&#x2F;th&gt;
            &lt;th&gt;Platform&lt;&#x2F;th&gt;
            &lt;th&gt;Notes&lt;&#x2F;th&gt;
        &lt;&#x2F;tr&gt;
    &lt;&#x2F;thead&gt;
    &lt;tbody&gt;
        &lt;tr class=&quot;platinum&quot;&gt;
            &lt;th&gt;Brave Wallet&lt;&#x2F;th&gt;
            &lt;td&gt;❌&lt;&#x2F;td&gt;
            &lt;td&gt;&lt;&#x2F;td&gt;
            &lt;td&gt;61&lt;&#x2F;td&gt;
            &lt;td&gt;100%&lt;&#x2F;td&gt;
            &lt;td&gt;Brave v1.63.16&lt;&#x2F;td&gt;
            &lt;td&gt;&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
        &lt;tr class=&quot;gold&quot;&gt;
            &lt;th&gt;Frame&lt;&#x2F;th&gt;
            &lt;td&gt;❌&lt;&#x2F;td&gt;
            &lt;td&gt;0.6.8&lt;&#x2F;td&gt;
            &lt;td&gt;60&lt;&#x2F;td&gt;
            &lt;td&gt;98%&lt;&#x2F;td&gt;
            &lt;td&gt;Chromium 120.0.6099.129&lt;&#x2F;td&gt;
            &lt;td&gt;signTransaction unsupported&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
        &lt;tr class=&quot;gold&quot;&gt;
            &lt;th&gt;Taho&lt;&#x2F;th&gt;
            &lt;td&gt;✔️&lt;&#x2F;td&gt;
            &lt;td&gt;0.57&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;tahowallet&#x2F;extension&#x2F;pull&#x2F;3737&quot;&gt;+&lt;&#x2F;a&gt;
            &lt;&#x2F;td&gt;
            &lt;td&gt;60&lt;&#x2F;td&gt;
            &lt;td&gt;98%&lt;&#x2F;td&gt;
            &lt;td&gt;Chrome 122.0.6261.94&lt;&#x2F;td&gt;
            &lt;td&gt;Changed definition of sign test to exclude hex&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
        &lt;tr class=&quot;gold&quot;&gt;
            &lt;th&gt;Enkrypt&lt;&#x2F;th&gt;
            &lt;td&gt;❌&lt;&#x2F;td&gt;
            &lt;td&gt;1.33.0&lt;&#x2F;td&gt;
            &lt;td&gt;59&lt;&#x2F;td&gt;
            &lt;td&gt;97%&lt;&#x2F;td&gt;
            &lt;td&gt;Chrome 122.0.6261.94&lt;&#x2F;td&gt;
            &lt;td&gt;signTransaction unsupported, doesn&#x27;t show destination address&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
        &lt;tr class=&quot;gold&quot;&gt;
            &lt;th&gt;Rainbow&lt;&#x2F;th&gt;
            &lt;td&gt;❌&lt;&#x2F;td&gt;
            &lt;td&gt;1.4.8&lt;&#x2F;td&gt;
            &lt;td&gt;56&lt;&#x2F;td&gt;
            &lt;td&gt;92%&lt;&#x2F;td&gt;
            &lt;td&gt;Chrome 122.0.6261.94&lt;&#x2F;td&gt;
            &lt;td&gt;signTransaction opened, but was blank&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
        &lt;tr class=&quot;gold&quot;&gt;
            &lt;th&gt;Backpack&lt;&#x2F;th&gt;
            &lt;td&gt;❌&lt;&#x2F;td&gt;
            &lt;td&gt;0.10.37&lt;&#x2F;td&gt;
            &lt;td&gt;56&lt;&#x2F;td&gt;
            &lt;td&gt;92%&lt;&#x2F;td&gt;
            &lt;td&gt;Chrome 122.0.6261.94&lt;&#x2F;td&gt;
            &lt;td&gt;sendTransaction invalid length, sign just closed&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
        &lt;tr class=&quot;gold&quot;&gt;
            &lt;th&gt;Opera Wallet&lt;&#x2F;th&gt;
            &lt;td&gt;❌&lt;&#x2F;td&gt;
            &lt;td&gt;&lt;&#x2F;td&gt;
            &lt;td&gt;56&lt;&#x2F;td&gt;
            &lt;td&gt;92%&lt;&#x2F;td&gt;
            &lt;td&gt;Opera 107.0.5045.36&lt;&#x2F;td&gt;
            &lt;td&gt;Doesn&#x27;t update balance before sending&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
        &lt;tr class=&quot;gold&quot;&gt;
            &lt;th&gt;Coin98&lt;&#x2F;th&gt;
            &lt;td&gt;❌&lt;&#x2F;td&gt;
            &lt;td&gt;9.1.6&lt;&#x2F;td&gt;
            &lt;td&gt;55&lt;&#x2F;td&gt;
            &lt;td&gt;90%&lt;&#x2F;td&gt;
            &lt;td&gt;Chrome 122.0.6261.94&lt;&#x2F;td&gt;
            &lt;td&gt;Doesn&#x27;t display full addresses&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
        &lt;tr class=&quot;gold&quot;&gt;
            &lt;th&gt;Aurox&lt;&#x2F;th&gt;
            &lt;td&gt;❌&lt;&#x2F;td&gt;
            &lt;td&gt;2.0.0&lt;&#x2F;td&gt;
            &lt;td&gt;53&lt;&#x2F;td&gt;
            &lt;td&gt;87%&lt;&#x2F;td&gt;
            &lt;td&gt;Chrome 122.0.6261.94&lt;&#x2F;td&gt;
            &lt;td&gt;&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
        &lt;tr class=&quot;silver&quot;&gt;
            &lt;th&gt;Metamask&lt;&#x2F;th&gt;
            &lt;td&gt;❌&lt;&#x2F;td&gt;
            &lt;td&gt;11.10.1&lt;&#x2F;td&gt;
            &lt;td&gt;48&lt;&#x2F;td&gt;
            &lt;td&gt;79%&lt;&#x2F;td&gt;
            &lt;td&gt;Chromium 120.0.6099.129&lt;&#x2F;td&gt;
            &lt;td&gt;signTransaction unsupported, logging&#x2F;storage seems to lag behind chain&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
        &lt;tr class=&quot;silver&quot;&gt;
            &lt;th&gt;Coinbase&lt;&#x2F;th&gt;
            &lt;td&gt;✔️&lt;&#x2F;td&gt;
            &lt;td&gt;3.57.0&lt;&#x2F;td&gt;
            &lt;td&gt;47&lt;&#x2F;td&gt;
            &lt;td&gt;77%&lt;&#x2F;td&gt;
            &lt;td&gt;Chromium 120.0.6099.129&lt;&#x2F;td&gt;
            &lt;td&gt;Doesn&#x27;t show full addresses, can&#x27;t differentiate sign&#x2F;send transaction&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
        &lt;tr class=&quot;silver&quot;&gt;
            &lt;th&gt;TokenPocket&lt;&#x2F;th&gt;
            &lt;td&gt;❌&lt;&#x2F;td&gt;
            &lt;td&gt;1.2.4&lt;&#x2F;td&gt;
            &lt;td&gt;46&lt;&#x2F;td&gt;
            &lt;td&gt;75%&lt;&#x2F;td&gt;
            &lt;td&gt;Chrome 122.0.6261.94&lt;&#x2F;td&gt;
            &lt;td&gt;signTransaction unsupported&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
        &lt;tr class=&quot;silver&quot;&gt;
            &lt;th&gt;xdefi&lt;&#x2F;th&gt;
            &lt;td&gt;❌&lt;&#x2F;td&gt;
            &lt;td&gt;&amp;lt;28.3.6&lt;&#x2F;td&gt;
            &lt;td&gt;45&lt;&#x2F;td&gt;
            &lt;td&gt;74%&lt;&#x2F;td&gt;
            &lt;td&gt;Chrome 122.0.6261.94&lt;&#x2F;td&gt;
            &lt;td&gt;Notably different signTransaction behaviour&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
        &lt;tr class=&quot;silver&quot;&gt;
            &lt;th&gt;Trust&lt;&#x2F;th&gt;
            &lt;td&gt;❌&lt;&#x2F;td&gt;
            &lt;td&gt;2.7.2&lt;&#x2F;td&gt;
            &lt;td&gt;43&lt;&#x2F;td&gt;
            &lt;td&gt;70%&lt;&#x2F;td&gt;
            &lt;td&gt;Chrome 122.0.6261.94&lt;&#x2F;td&gt;
            &lt;td&gt;Doesn&#x27;t support filters&#x2F;subscriptions&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
        &lt;tr class=&quot;silver&quot;&gt;
            &lt;th&gt;BlockWallet&lt;&#x2F;th&gt;
            &lt;td&gt;❌&lt;&#x2F;td&gt;
            &lt;td&gt;1.2.4&lt;&#x2F;td&gt;
            &lt;td&gt;40&lt;&#x2F;td&gt;
            &lt;td&gt;66%&lt;&#x2F;td&gt;
            &lt;td&gt;Chrome 122.0.6261.94&lt;&#x2F;td&gt;
            &lt;td&gt;&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
        &lt;tr class=&quot;bronze&quot;&gt;
            &lt;th&gt;OKX&lt;&#x2F;th&gt;
            &lt;td&gt;❌&lt;&#x2F;td&gt;
            &lt;td&gt;2.85.0&lt;&#x2F;td&gt;
            &lt;td&gt;22&lt;&#x2F;td&gt;
            &lt;td&gt;36%&lt;&#x2F;td&gt;
            &lt;td&gt;Chromium 120.0.6099.129&lt;&#x2F;td&gt;
            &lt;td&gt;As likely to be a bug in WTF as a wallet problem&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
    &lt;&#x2F;tbody&gt;
&lt;&#x2F;table&gt;
&lt;&#x2F;div&gt;
&lt;h3 id=&quot;disclaimer&quot;&gt;Disclaimer&lt;a class=&quot;zola-anchor&quot; href=&quot;#disclaimer&quot; aria-label=&quot;Anchor link for: disclaimer&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Our intent is not to claim that certain wallets are better than others, and a
low score here is as likely to indicate that our tests have problems as it
is to indicate bugs in a wallet. We&#x27;re very interested in improving scores
across the board, so we&#x27;re happy to accept contributions to fix tests and just
as happy to help debug.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;wallet-selection&quot;&gt;Wallet Selection&lt;a class=&quot;zola-anchor&quot; href=&quot;#wallet-selection&quot; aria-label=&quot;Anchor link for: wallet-selection&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Very little of this report is scientific&#x2F;rigorous, and the wallet selection
process was no exception. We chose a few wallets we&#x27;re familiar with, and a
small sampling of random wallets from the &lt;a href=&quot;https:&#x2F;&#x2F;ethereum.org&#x2F;en&#x2F;wallets&#x2F;find-wallet&#x2F;&quot;&gt;Find an Ethereum Wallet&lt;&#x2F;a&gt;
list.&lt;&#x2F;p&gt;
&lt;p&gt;Because Wallet Test Framework only supports &lt;code&gt;window.ethereum&lt;&#x2F;code&gt; so far, we&#x27;re
limited to wallets that provide it; that pretty much excludes mobile wallets for
the time being. Our &lt;a href=&quot;..&#x2F;kick-off&#x2F;&quot;&gt;architecture&lt;&#x2F;a&gt; requires connecting to a custom chain, so
wallets that don&#x27;t support custom chains cannot be tested (omitted from this
table.)&lt;&#x2F;p&gt;
&lt;p&gt;For future reports, get in touch if you&#x27;re interested in having your results
published (or if you&#x27;d prefer we didn&#x27;t mention you.)&lt;&#x2F;p&gt;
&lt;h3 id=&quot;discussion&quot;&gt;Discussion&lt;a class=&quot;zola-anchor&quot; href=&quot;#discussion&quot; aria-label=&quot;Anchor link for: discussion&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;h4 id=&quot;automation&quot;&gt;Automation&lt;a class=&quot;zola-anchor&quot; href=&quot;#automation&quot; aria-label=&quot;Anchor link for: automation&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;The most exciting part of this Test Report is the new &amp;quot;Automated&amp;quot; column.
Wallets with a &amp;quot;✔️ &amp;quot; (currently Taho and Coinbase) use the newest feature of WTF,
custom glue. Both of these wallets use [Selenium WebDriver]-based automation to
interact with their user interface to respond to prompts, like connecting or
signing transactions.&lt;&#x2F;p&gt;
&lt;p&gt;Automating wallets is the first step in our plan—removing humans from the
process means the tests can run unattended and regularly. Next, we plan to build
a reporting platform to track results over time and highlight regressions.&lt;&#x2F;p&gt;
&lt;p&gt;Here&#x27;s what Taho looks like running the tests:&lt;&#x2F;p&gt;
&lt;a href=&quot;.&#x2F;taho.mp4&quot;&gt;
    &lt;video muted autoplay loop src=&quot;.&#x2F;taho.mp4&quot; style=&quot;max-width: 100%&quot;&gt;
    &lt;p&gt;Demo video of Taho with automation.&lt;&#x2F;p&gt;
    &lt;&#x2F;video&gt;
&lt;&#x2F;a&gt;
&lt;h4 id=&quot;common-issues&quot;&gt;Common Issues&lt;a class=&quot;zola-anchor&quot; href=&quot;#common-issues&quot; aria-label=&quot;Anchor link for: common-issues&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;There are several issues that are hurting scores that we see across wallets:
incomplete information, unsupported features, minor deviations from the
JSON-RPC specification, and out-of-date information.&lt;&#x2F;p&gt;
&lt;p&gt;Far too many wallets (like Enkrypt, Coin98, etc.) do not display the source or
destination address when preparing a transaction. Commonly wallets will display
an abbreviated address (&lt;code&gt;0xabcd...1234&lt;&#x2F;code&gt;) and provide no way to view the full
value. This is a security issue, since it is relatively easy to mine addresses
that collide on only four bytes. Always provide a way to access the full value,
like in a tooltip or a &amp;quot;copy&amp;quot; button.&lt;&#x2F;p&gt;
&lt;p&gt;Perhaps following MetaMask&#x27;s lead, many wallets do not support the
&lt;code&gt;eth_signTransaction&lt;&#x2F;code&gt; endpoint. Some other wallets do not support subscriptions.
While adding support for these features is nontrivial, it is important to
provide the same base level of functionality.&lt;&#x2F;p&gt;
&lt;p&gt;In other cases, wallets do provide a feature but do not follow the
specification. Coinbase, for example, omits the &lt;code&gt;0x&lt;&#x2F;code&gt; prefix on hexadecimal log
results and xdefi implements a very different &lt;code&gt;eth_signTransaction&lt;&#x2F;code&gt;. Having to
work around these differences increases the burden on dapp developers.&lt;&#x2F;p&gt;
&lt;p&gt;Finally, there is a whole class of bugs related to out-of-date information being
presented to the user. For example, Opera Wallet does not refresh balance
information while authorizing a transaction, preventing the user from completing
a transaction that would otherwise succeed.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;a class=&quot;zola-anchor&quot; href=&quot;#conclusion&quot; aria-label=&quot;Anchor link for: conclusion&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;That&#x27;s pretty much it for this Test Report. In the meantime,
&lt;a href=&quot;https:&#x2F;&#x2F;allwallet.dev&#x2F;&quot;&gt;join us on Discord&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Year in Review (2023)</title>
          <pubDate>Fri, 08 Dec 2023 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://wtf.allwallet.dev/2023-eoy/</link>
          <guid>https://wtf.allwallet.dev/2023-eoy/</guid>
          <description>&lt;p&gt;Guess we failed pretty spectacularly in keeping up with the biweekly updates. Oh
well.&lt;&#x2F;p&gt;
&lt;p&gt;This post covers everything we&#x27;ve accomplished so far this year, and what we&#x27;re
planning for next year.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;year-in-review&quot;&gt;Year in Review&lt;a class=&quot;zola-anchor&quot; href=&quot;#year-in-review&quot; aria-label=&quot;Anchor link for: year-in-review&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;We began our year by rewriting our prototype for Wallet Test Framework in
TypeScript, to be more accessible to wallet developers. The original
implementation was half TypeScript and half Rust, and without a specific reason
to use Rust, we felt it more consistent to use TypeScript for everything. Around
this time, we also migrated to the Mocha testing framework.&lt;&#x2F;p&gt;
&lt;p&gt;Soon after, we set up our continuous integration pipeline to deploy the
framework to Heroku, making it easier to play with without having to build it.
We simplified the backend, and created scaffolding for glue implementations.&lt;&#x2F;p&gt;
&lt;p&gt;After some bug fixes and new tests, we migrated from ethers to viem, due to some
caching issues. We also introduced support for remote controlling wallets over
WebSockets.&lt;&#x2F;p&gt;
&lt;p&gt;After publishing our first &lt;a href=&quot;https:&#x2F;&#x2F;wtf.allwallet.dev&#x2F;week-19&#x2F;&quot;&gt;Test Report&lt;&#x2F;a&gt;, we moved full steam into
developing automation glue for Coinbase and Taho wallets. We&#x27;ve proven that our
tests are portable between wallets, and we&#x27;ve reported a handful of issues
upstream.&lt;&#x2F;p&gt;
&lt;p&gt;After a fairly successful first year, we&#x27;re really looking forward to 2024!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;roadmap-for-2024&quot;&gt;Roadmap for 2024&lt;a class=&quot;zola-anchor&quot; href=&quot;#roadmap-for-2024&quot; aria-label=&quot;Anchor link for: roadmap-for-2024&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;mobile-wallets&quot;&gt;Mobile Wallets&lt;a class=&quot;zola-anchor&quot; href=&quot;#mobile-wallets&quot; aria-label=&quot;Anchor link for: mobile-wallets&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Our top priority for the upcoming year is to broaden our support for wallets,
especially mobile. Wallet Test Framework currently depends on &lt;code&gt;window.ethereum&lt;&#x2F;code&gt;,
pretty much limiting us to browser extension wallets. To better support the
Ethereum community, we need to integrate technologies like &lt;a href=&quot;https:&#x2F;&#x2F;walletconnect.com&#x2F;&quot;&gt;WalletConnect&lt;&#x2F;a&gt;,
&lt;a href=&quot;https:&#x2F;&#x2F;eips.ethereum.org&#x2F;EIPS&#x2F;eip-6963&quot;&gt;EIP-6963&lt;&#x2F;a&gt;, and vendor-specific SDKs.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;documentation-collaboration&quot;&gt;Documentation &amp;amp; Collaboration&lt;a class=&quot;zola-anchor&quot; href=&quot;#documentation-collaboration&quot; aria-label=&quot;Anchor link for: documentation-collaboration&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Wallet Test Framework is only useful if it is run, and can only find bugs for
areas it tests. Our second goal for 2024 is to write documentation for wallets,
EIP authors, and security experts so that they can all use and contribute easily
to the project.&lt;&#x2F;p&gt;
&lt;p&gt;We plan to write integration guides and documentation for wallets to make it as
easy as possible to run WTF as part of testing pipelines. This will cover topics
like writing the automated glue and adding vendor-specific tests.&lt;&#x2F;p&gt;
&lt;p&gt;Our biggest strength is that once a test is written, it&#x27;s available to every
wallet using the framework. To take full advantage, we need to make it as easy
as possible for anyone—be it wallets themselves, EIP authors, or complete
outsiders—to write WTF tests. Documenting the test-writing process and having
clear guidelines for contributions are necessary to accomplish that goal.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;transaction-decoding&quot;&gt;Transaction Decoding&lt;a class=&quot;zola-anchor&quot; href=&quot;#transaction-decoding&quot; aria-label=&quot;Anchor link for: transaction-decoding&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;This might be a bit of a stretch goal, but we&#x27;d like to start testing how
wallets decode the transactions of some popular applications. This is a wide
attack surface with plenty of room for quality assurance.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;eip-1193-events&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;eips.ethereum.org&#x2F;EIPS&#x2F;eip-1193&quot;&gt;EIP-1193&lt;&#x2F;a&gt; Events&lt;a class=&quot;zola-anchor&quot; href=&quot;#eip-1193-events&quot; aria-label=&quot;Anchor link for: eip-1193-events&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;eips.ethereum.org&#x2F;EIPS&#x2F;eip-1193&quot;&gt;EIP-1193&lt;&#x2F;a&gt; defines several events (like &lt;code&gt;connect&lt;&#x2F;code&gt; or &lt;code&gt;accountsChanged&lt;&#x2F;code&gt;) that
aren&#x27;t covered by the current tests. Emitting these events is essential for
responsive application development, so we&#x27;d like to expand our coverage in this
area.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;account-abstraction-wallets&quot;&gt;Account Abstraction Wallets&lt;a class=&quot;zola-anchor&quot; href=&quot;#account-abstraction-wallets&quot; aria-label=&quot;Anchor link for: account-abstraction-wallets&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The world of account abstraction wallets has exploded since the introduction
of &lt;a href=&quot;https:&#x2F;&#x2F;eips.ethereum.org&#x2F;EIPS&#x2F;eip-4337&quot;&gt;ERC-4337&lt;&#x2F;a&gt;. We&#x27;d like to explore expanding our tests to cover them.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;statistics-reporting&quot;&gt;Statistics &amp;amp; Reporting&lt;a class=&quot;zola-anchor&quot; href=&quot;#statistics-reporting&quot; aria-label=&quot;Anchor link for: statistics-reporting&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;We&#x27;d like to develop a dashboard showing the scores of wallets over time, as
well as automation implementation status, and enabled test suites. These
statistics will allow us to gauge how much of an impact Wallet Test Framework
has on the ecosystem.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;supporters&quot;&gt;Supporters&lt;a class=&quot;zola-anchor&quot; href=&quot;#supporters&quot; aria-label=&quot;Anchor link for: supporters&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;We want to give a huge thank you to the Ethereum Foundation&#x27;s Ecosystem Support
Program and to the donors on Gitcoin for helping to fund our work so far. We&#x27;d
also like to thank Coinbase for being very supportive and responsive when
reporting issues.&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>WTF News (Week 19)</title>
          <pubDate>Fri, 18 Aug 2023 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://wtf.allwallet.dev/week-19/</link>
          <guid>https://wtf.allwallet.dev/week-19/</guid>
          <description>&lt;p&gt;Hello and welcome to issue number nine of WTF News, our biweekly status update.&lt;&#x2F;p&gt;
&lt;p&gt;Over the last two weeks, we ran a handful of wallets through their paces, and
today we can reveal the results! Spoiler alert, but there were more issues in
our tests than in the best scoring wallets.&lt;&#x2F;p&gt;
&lt;p&gt;First, the regular status update!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;call-to-action&quot;&gt;Call to Action&lt;a class=&quot;zola-anchor&quot; href=&quot;#call-to-action&quot; aria-label=&quot;Anchor link for: call-to-action&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;ci-build-pipelines&quot;&gt;CI&#x2F;Build Pipelines&lt;a class=&quot;zola-anchor&quot; href=&quot;#ci-build-pipelines&quot; aria-label=&quot;Anchor link for: ci-build-pipelines&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;What good is a testing framework if it isn&#x27;t used? Get in touch if you want to
integrate WTF into your wallet&#x27;s testing pipeline. We&#x27;ll even build the
automation ourselves!&lt;&#x2F;p&gt;
&lt;h3 id=&quot;testing-the-tests&quot;&gt;Testing the Tests&lt;a class=&quot;zola-anchor&quot; href=&quot;#testing-the-tests&quot; aria-label=&quot;Anchor link for: testing-the-tests&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;We want to expand our tests for WTF, to catch issues with the framework itself.
To that end, if you work on a wallet that works offline (aside from the RPC
provider) and want to try out WTF, get in touch with us!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;code-changes&quot;&gt;Code Changes&lt;a class=&quot;zola-anchor&quot; href=&quot;#code-changes&quot; aria-label=&quot;Anchor link for: code-changes&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;b55b9729be2b82bd113ab821697dc77fc1e876b1&quot;&gt;Upgraded to viem 1.6&lt;&#x2F;a&gt;!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;bug-fixes&quot;&gt;Bug Fixes&lt;a class=&quot;zola-anchor&quot; href=&quot;#bug-fixes&quot; aria-label=&quot;Anchor link for: bug-fixes&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;f999503092a10f2b409b5cc733db065c124e56e5&quot;&gt;Use smaller integers to make ganache happy&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;801d8f9ca0e081a130e04f1ba91121fc29de84c2&quot;&gt;Send WebSocket pings to keep the connection alive&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;a86d4284e9fbada0653105a08deab7b9f88569c1&quot;&gt;Use &lt;code&gt;from&lt;&#x2F;code&gt; instead of &lt;code&gt;account&lt;&#x2F;code&gt; in &lt;code&gt;eth_signTransaction&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;759cbe74604ac56d1f75a367bf285423265625d6&quot;&gt;Use hex instead of decimal in &lt;code&gt;eth_signTransaction&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;52bb9661d135719e6c092a9e87dcd21e577e125c&quot;&gt;Convert &lt;code&gt;BigInt&lt;&#x2F;code&gt; to hex in &lt;code&gt;eth_getProof&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;aab09bd782a75f513d2e8ab6678a384ba32b15ce&quot;&gt;Actually put &lt;code&gt;jsonrpc&lt;&#x2F;code&gt; in responses to the wallet&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;22a116d8754f379c44745d7231e14a1442f9f1fd&quot;&gt;Handle race condition when falling back to adding a chain manually&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;upstream-issues&quot;&gt;Upstream Issues&lt;a class=&quot;zola-anchor&quot; href=&quot;#upstream-issues&quot; aria-label=&quot;Anchor link for: upstream-issues&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ethereum&#x2F;execution-apis&#x2F;issues&#x2F;461&quot;&gt;&lt;code&gt;eth_call&lt;&#x2F;code&gt; unclear when &lt;code&gt;Block&lt;&#x2F;code&gt; parameter is omitted&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;test-report&quot;&gt;Test Report&lt;a class=&quot;zola-anchor&quot; href=&quot;#test-report&quot; aria-label=&quot;Anchor link for: test-report&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;summary&quot;&gt;Summary&lt;a class=&quot;zola-anchor&quot; href=&quot;#summary&quot; aria-label=&quot;Anchor link for: summary&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;div class=&quot;report-holder&quot;&gt;
&lt;table class=&quot;report&quot;&gt;
    &lt;caption&gt;
        &lt;p&gt;
            Wallet Test Framework –
            &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;f999503092a10f2b409b5cc733db065c124e56e5&quot;&gt;
                &lt;code&gt;f999503092a10f2b409b5cc733db065c124e56e5&lt;&#x2F;code&gt;
            &lt;&#x2F;a&gt;
            &lt;br&gt;
            &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&quot;&gt;
                https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework
            &lt;&#x2F;a&gt;
        &lt;&#x2F;p&gt;
        &lt;p&gt;
            &lt;em&gt;Not a statement of a wallet’s quality or correctness.&lt;&#x2F;em&gt;
        &lt;&#x2F;p&gt;
    &lt;&#x2F;caption&gt;
    &lt;thead&gt;
        &lt;tr&gt;
            &lt;th&gt;Wallet&lt;&#x2F;th&gt;
            &lt;th&gt;Version&lt;&#x2F;th&gt;
            &lt;th&gt;Connection&lt;&#x2F;th&gt;
            &lt;th&gt;Passing Tests&lt;&#x2F;th&gt;
            &lt;th&gt;Pass %&lt;&#x2F;th&gt;
            &lt;th&gt;Platforms&lt;&#x2F;th&gt;
            &lt;th&gt;Browser&lt;&#x2F;th&gt;
            &lt;th&gt;Notes&lt;&#x2F;th&gt;
        &lt;&#x2F;tr&gt;
    &lt;&#x2F;thead&gt;
    &lt;tbody&gt;
        &lt;tr class=&quot;platinum&quot;&gt;
            &lt;th&gt;Brave Wallet&lt;&#x2F;th&gt;
            &lt;td&gt;&lt;&#x2F;td&gt;
            &lt;td&gt;EIP-3085&lt;&#x2F;td&gt;
            &lt;td&gt;61&lt;&#x2F;td&gt;
            &lt;td&gt;100%&lt;&#x2F;td&gt;
            &lt;td&gt;Browser&lt;&#x2F;td&gt;
            &lt;td&gt;Brv 1.57.42&lt;&#x2F;td&gt;
            &lt;td&gt;&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
        &lt;tr class=&quot;platinum&quot;&gt;
            &lt;th&gt;Taho&lt;&#x2F;th&gt;
            &lt;td&gt;0.46.1&lt;&#x2F;td&gt;
            &lt;td&gt;EIP-3085&lt;&#x2F;td&gt;
            &lt;td&gt;61&lt;&#x2F;td&gt;
            &lt;td&gt;100%&lt;&#x2F;td&gt;
            &lt;td&gt;Extension&lt;&#x2F;td&gt;
            &lt;td&gt;Chr 115.0.5790.170&lt;&#x2F;td&gt;
            &lt;td&gt;Had to impersonate chainlist.org&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
        &lt;tr class=&quot;gold&quot;&gt;
            &lt;th&gt;Frame&lt;&#x2F;th&gt;
            &lt;td&gt;0.6.7&lt;&#x2F;td&gt;
            &lt;td&gt;EIP-3085&lt;&#x2F;td&gt;
            &lt;td&gt;60&lt;&#x2F;td&gt;
            &lt;td&gt;98%&lt;&#x2F;td&gt;
            &lt;td&gt;Desktop&lt;&#x2F;td&gt;
            &lt;td&gt;Ff 102.14.0esr (64-bit)&lt;&#x2F;td&gt;
            &lt;td&gt;Missing signTransaction&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
        &lt;tr class=&quot;gold&quot;&gt;
            &lt;th&gt;Enkrypt&lt;&#x2F;th&gt;
            &lt;td&gt;1.24.0&lt;&#x2F;td&gt;
            &lt;td&gt;Manual&lt;&#x2F;td&gt;
            &lt;td&gt;59&lt;&#x2F;td&gt;
            &lt;td&gt;97%&lt;&#x2F;td&gt;
            &lt;td&gt;Extension&lt;&#x2F;td&gt;
            &lt;td&gt;Ff 102.14.0esr (64-bit)&lt;&#x2F;td&gt;
            &lt;td&gt;Attempted EIP-3085, but popup doesn’t show RPC url&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
        &lt;tr class=&quot;silver&quot;&gt;
            &lt;th&gt;Coinbase&lt;&#x2F;th&gt;
            &lt;td&gt;3.30.2&lt;&#x2F;td&gt;
            &lt;td&gt;EIP-3085&lt;&#x2F;td&gt;
            &lt;td&gt;48&lt;&#x2F;td&gt;
            &lt;td&gt;79%&lt;&#x2F;td&gt;
            &lt;td&gt;Extension&lt;&#x2F;td&gt;
            &lt;td&gt;Chr 115.0.5790.170&lt;&#x2F;td&gt;
            &lt;td&gt;Missing hex prefix in logs&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
        &lt;tr class=&quot;silver&quot;&gt;
            &lt;th&gt;Metamask&lt;&#x2F;th&gt;
            &lt;td&gt;10.34.0&lt;&#x2F;td&gt;
            &lt;td&gt;EIP-3085&lt;&#x2F;td&gt;
            &lt;td&gt;48&lt;&#x2F;td&gt;
            &lt;td&gt;79%&lt;&#x2F;td&gt;
            &lt;td&gt;Extension&lt;&#x2F;td&gt;
            &lt;td&gt;Ff 102.14.0esr (64-bit)&lt;&#x2F;td&gt;
            &lt;td&gt;&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
        &lt;tr class=&quot;bronze&quot;&gt;
            &lt;th&gt;OKX&lt;&#x2F;th&gt;
            &lt;td&gt;2.58.1&lt;&#x2F;td&gt;
            &lt;td&gt;EIP-3085&lt;&#x2F;td&gt;
            &lt;td&gt;18&lt;&#x2F;td&gt;
            &lt;td&gt;30%&lt;&#x2F;td&gt;
            &lt;td&gt;Extension&lt;&#x2F;td&gt;
            &lt;td&gt;Chr 115.0.5790.170&lt;&#x2F;td&gt;
            &lt;td&gt;Tests stopped running somewhere around getFilterChanges&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
        &lt;tr class=&quot;bronze&quot;&gt;
            &lt;th&gt;TokenPocket&lt;&#x2F;th&gt;
            &lt;td&gt;1.1.19&lt;&#x2F;td&gt;
            &lt;td&gt;EIP-3085&lt;&#x2F;td&gt;
            &lt;td&gt;15&lt;&#x2F;td&gt;
            &lt;td&gt;25%&lt;&#x2F;td&gt;
            &lt;td&gt;Extension&lt;&#x2F;td&gt;
            &lt;td&gt;Chr 115.0.5790.170&lt;&#x2F;td&gt;
            &lt;td&gt;Tests stopped running somewhere around getFilterChanges&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
        &lt;tr class=&quot;garbage&quot;&gt;
            &lt;th&gt;Argent X&lt;&#x2F;th&gt;
            &lt;td&gt;5.7.2&lt;&#x2F;td&gt;
            &lt;td&gt;Can’t Connect&lt;&#x2F;td&gt;
            &lt;td&gt;0&lt;&#x2F;td&gt;
            &lt;td&gt;0%&lt;&#x2F;td&gt;
            &lt;td&gt;Extension&lt;&#x2F;td&gt;
            &lt;td&gt;Chr 115.0.5790.170&lt;&#x2F;td&gt;
            &lt;td&gt;No window.ethereum&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
        &lt;tr class=&quot;garbage&quot;&gt;
            &lt;th&gt;Bitkeep&lt;&#x2F;th&gt;
            &lt;td&gt;1.4.8&lt;&#x2F;td&gt;
            &lt;td&gt;Can’t Connect&lt;&#x2F;td&gt;
            &lt;td&gt;0&lt;&#x2F;td&gt;
            &lt;td&gt;0%&lt;&#x2F;td&gt;
            &lt;td&gt;Extension&lt;&#x2F;td&gt;
            &lt;td&gt;Chr 115.0.5790.170&lt;&#x2F;td&gt;
            &lt;td&gt;Attempted EIP-3085, and Manual, but got system error&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
        &lt;tr class=&quot;garbage&quot;&gt;
            &lt;th&gt;Sequence&lt;&#x2F;th&gt;
            &lt;td&gt;2.0.4&lt;&#x2F;td&gt;
            &lt;td&gt;Can’t Connect&lt;&#x2F;td&gt;
            &lt;td&gt;0&lt;&#x2F;td&gt;
            &lt;td&gt;0%&lt;&#x2F;td&gt;
            &lt;td&gt;Extension&lt;&#x2F;td&gt;
            &lt;td&gt;Chr 115.0.5790.170&lt;&#x2F;td&gt;
            &lt;td&gt;Cannot add custom chains&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
        &lt;tr class=&quot;garbage&quot;&gt;
            &lt;th&gt;Exodus&lt;&#x2F;th&gt;
            &lt;td&gt;23.8.14&lt;&#x2F;td&gt;
            &lt;td&gt;Can’t Connect&lt;&#x2F;td&gt;
            &lt;td&gt;0&lt;&#x2F;td&gt;
            &lt;td&gt;0%&lt;&#x2F;td&gt;
            &lt;td&gt;Extension&lt;&#x2F;td&gt;
            &lt;td&gt;Chr 115.0.5790.170&lt;&#x2F;td&gt;
            &lt;td&gt;Cannot add custom chains&lt;&#x2F;td&gt;
        &lt;&#x2F;tr&gt;
    &lt;&#x2F;tbody&gt;
&lt;&#x2F;table&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;The astute reader may notice that there are in fact 62 tests in the repository
at that commit. Our &lt;code&gt;eth_getProof&lt;&#x2F;code&gt; test is broken, and we are excluding it from
this report.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;disclaimer&quot;&gt;Disclaimer&lt;a class=&quot;zola-anchor&quot; href=&quot;#disclaimer&quot; aria-label=&quot;Anchor link for: disclaimer&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Our intent is not to claim that certain wallets are better than others, and a
low score here is as likely to indicate that our tests have problems as it
is to indicate bugs in a wallet. We&#x27;re very interested in improving scores
across the board, so we&#x27;re happy to accept contributions to fix tests and just
as happy to help debug.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;wallet-selection&quot;&gt;Wallet Selection&lt;a class=&quot;zola-anchor&quot; href=&quot;#wallet-selection&quot; aria-label=&quot;Anchor link for: wallet-selection&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Very little of this report is scientific&#x2F;rigorous, and the wallet selection
process was no exception. We chose a few wallets we&#x27;re familiar with, and a
small sampling of random wallets from the &lt;a href=&quot;https:&#x2F;&#x2F;ethereum.org&#x2F;en&#x2F;wallets&#x2F;find-wallet&#x2F;&quot;&gt;Find an Ethereum Wallet&lt;&#x2F;a&gt;
list.&lt;&#x2F;p&gt;
&lt;p&gt;Because Wallet Test Framework only supports &lt;code&gt;window.ethereum&lt;&#x2F;code&gt; so far, we&#x27;re
limited to wallets that provide it; that pretty much excludes mobile wallets for
the time being. Our &lt;a href=&quot;..&#x2F;kick-off&#x2F;&quot;&gt;architecture&lt;&#x2F;a&gt; requires connecting to a custom chain, so
wallets that don&#x27;t support custom chains cannot be tested (labelled with &lt;code&gt;Can&#x27;t Connect&lt;&#x2F;code&gt; in the table.)&lt;&#x2F;p&gt;
&lt;p&gt;For future reports, get in touch if you&#x27;re interested in having your results
published (or if you&#x27;d prefer we didn&#x27;t mention you.)&lt;&#x2F;p&gt;
&lt;h3 id=&quot;discussion&quot;&gt;Discussion&lt;a class=&quot;zola-anchor&quot; href=&quot;#discussion&quot; aria-label=&quot;Anchor link for: discussion&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Congratulations to &lt;a href=&quot;https:&#x2F;&#x2F;brave.com&#x2F;wallet&#x2F;&quot;&gt;Brave&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;taho.xyz&#x2F;&quot;&gt;Taho&lt;&#x2F;a&gt; for getting perfect scores! Considering
this was our first time trying them out with the Framework (we&#x27;ve been using
&lt;a href=&quot;https:&#x2F;&#x2F;frame.sh&#x2F;&quot;&gt;Frame&lt;&#x2F;a&gt; to develop), this was quite surprising.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;eth-signtransaction&quot;&gt;&lt;code&gt;eth_signTransaction&lt;&#x2F;code&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#eth-signtransaction&quot; aria-label=&quot;Anchor link for: eth-signtransaction&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;This is a contentious endpoint that we&#x27;ve &lt;a href=&quot;..&#x2F;week-13&quot;&gt;discussed previously&lt;&#x2F;a&gt;.
Very few wallets support &lt;code&gt;eth_signTransaction&lt;&#x2F;code&gt;, mostly by choice.&lt;&#x2F;p&gt;
&lt;p&gt;Interestingly, this was Frame&#x27;s only failure: instead of signing in the wallet,
Frame passes these requests through to the RPC provider.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;caching&quot;&gt;Caching&lt;a class=&quot;zola-anchor&quot; href=&quot;#caching&quot; aria-label=&quot;Anchor link for: caching&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;blockquote&gt;
&lt;p&gt;There are only two hard things in Computer Science: cache invalidation and
naming things. &lt;em&gt;Phil Karlton&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Caching is hard. &lt;a href=&quot;..&#x2F;week-07&#x2F;&quot;&gt;We&#x27;ve been bitten by it&lt;&#x2F;a&gt;. In a space where you
have to pay for every API request, but your users expect a free wallet
experience, caching is a necessary evil.&lt;&#x2F;p&gt;
&lt;p&gt;We suspect, but haven&#x27;t verified for all wallets, that many of the test failures
are caused by stale values cached by wallets.&lt;&#x2F;p&gt;
&lt;p&gt;In the case of &lt;code&gt;eth_call&lt;&#x2F;code&gt;, we have verified that MetaMask specifies an old block
number, causing a call into a freshly deployed contract to fail. This is
unlikely to cause major issues on a real network with many seconds between
blocks, but the tests mine blocks much more frequently, triggering the issue.
Regardless, we&#x27;re following up with their team to see what we can do.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;post-merge-endpoints&quot;&gt;Post-merge Endpoints&lt;a class=&quot;zola-anchor&quot; href=&quot;#post-merge-endpoints&quot; aria-label=&quot;Anchor link for: post-merge-endpoints&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;Some of the newer endpoints like &lt;code&gt;eth_maxPriorityFeePerGas&lt;&#x2F;code&gt; aren&#x27;t yet supported
in all wallets. Expect these tests to start passing as they are implemented.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;stalled-tests&quot;&gt;Stalled Tests&lt;a class=&quot;zola-anchor&quot; href=&quot;#stalled-tests&quot; aria-label=&quot;Anchor link for: stalled-tests&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.okx.com&#x2F;web3&quot;&gt;OKX&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;www.tokenpocket.pro&#x2F;en&#x2F;&quot;&gt;TokenPocket&lt;&#x2F;a&gt; both failed somewhere around the &lt;code&gt;eth_getFilterChanges&lt;&#x2F;code&gt;
suites, and didn&#x27;t continue to the rest of the tests. It&#x27;s likely that they
would&#x27;ve passed more tests had they continued.&lt;&#x2F;p&gt;
&lt;p&gt;We haven&#x27;t debugged why the tests stalled. It could be as simple as adding a
timeout to WTF, or something more involved. We&#x27;ll be looking into this before
the next report.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;future-plans&quot;&gt;Future Plans&lt;a class=&quot;zola-anchor&quot; href=&quot;#future-plans&quot; aria-label=&quot;Anchor link for: future-plans&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;We&#x27;ll continue adding tests, and we&#x27;ll try to run through this report somewhat
regularly. That said, this is entirely a manual process. Once wallets start
running WTF as part of their continuous integration processes, we can make some
pretty graphs, include more wallets, and make reports more often.&lt;&#x2F;p&gt;
&lt;p&gt;In the meantime, &lt;a href=&quot;https:&#x2F;&#x2F;allwallet.dev&#x2F;&quot;&gt;join us on Discord&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>WTF News (Week 17)</title>
          <pubDate>Fri, 04 Aug 2023 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://wtf.allwallet.dev/week-17/</link>
          <guid>https://wtf.allwallet.dev/week-17/</guid>
          <description>&lt;p&gt;Hello and welcome to issue number eight of WTF News, our biweekly status update.&lt;&#x2F;p&gt;
&lt;p&gt;We missed last update (sorry about that), but we&#x27;re back with more tests than
ever!&lt;&#x2F;p&gt;
&lt;a href=&quot;.&#x2F;wtf-short.mp4&quot;&gt;
    &lt;video muted autoplay loop src=&quot;.&#x2F;wtf-short.mp4&quot; style=&quot;max-width: 100%&quot;&gt;
    &lt;p&gt;Demo video of an &lt;code&gt;eth_sendTransaction&lt;&#x2F;code&gt; test.&lt;&#x2F;p&gt;
    &lt;&#x2F;video&gt;
&lt;&#x2F;a&gt;
&lt;h2 id=&quot;call-to-action&quot;&gt;Call to Action&lt;a class=&quot;zola-anchor&quot; href=&quot;#call-to-action&quot; aria-label=&quot;Anchor link for: call-to-action&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;ci-build-pipelines&quot;&gt;CI&#x2F;Build Pipelines&lt;a class=&quot;zola-anchor&quot; href=&quot;#ci-build-pipelines&quot; aria-label=&quot;Anchor link for: ci-build-pipelines&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;What good is a testing framework if it isn&#x27;t used? Get in touch if you want to
integrate WTF into your wallet&#x27;s testing pipeline. We&#x27;ll even build the
automation ourselves!&lt;&#x2F;p&gt;
&lt;h3 id=&quot;testing-the-tests&quot;&gt;Testing the Tests&lt;a class=&quot;zola-anchor&quot; href=&quot;#testing-the-tests&quot; aria-label=&quot;Anchor link for: testing-the-tests&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;We want to expand our tests for WTF, to catch issues with the framework itself.
To that end, if you work on a wallet that works offline (aside from the RPC
provider) and want to try out WTF, get in touch with us!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;code-changes&quot;&gt;Code Changes&lt;a class=&quot;zola-anchor&quot; href=&quot;#code-changes&quot; aria-label=&quot;Anchor link for: code-changes&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;0439b7f42f7b2a13c5fef2c35a44a3cfcf20f0df&quot;&gt;Upgraded to ganache 7.9&lt;&#x2F;a&gt;!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;new-tests&quot;&gt;New Tests&lt;a class=&quot;zola-anchor&quot; href=&quot;#new-tests&quot; aria-label=&quot;Anchor link for: new-tests&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;307188aeb6ac0254fa2e0c808a2d6ed9158d1e16&quot;&gt;&lt;code&gt;eth_accounts&lt;&#x2F;code&gt; returns properly formatted hex strings&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;307188aeb6ac0254fa2e0c808a2d6ed9158d1e16&quot;&gt;&lt;code&gt;eth_createAccessList&lt;&#x2F;code&gt; passes through value from ganache&lt;&#x2F;a&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;trufflesuite&#x2F;ganache&#x2F;issues&#x2F;1056&quot;&gt;skipped&lt;&#x2F;a&gt;.)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;0439b7f42f7b2a13c5fef2c35a44a3cfcf20f0df&quot;&gt;&lt;code&gt;eth_getProof&lt;&#x2F;code&gt; works for EOAs and contract storage&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;7129096fb628bcd4aa41e0011436f1da1b9c7e7e&quot;&gt;&lt;code&gt;eth_call&lt;&#x2F;code&gt; can invoke a function and return the result&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;7129096fb628bcd4aa41e0011436f1da1b9c7e7e&quot;&gt;&lt;code&gt;eth_getLogs&lt;&#x2F;code&gt; respects block number and source address when returning blocks&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;7129096fb628bcd4aa41e0011436f1da1b9c7e7e&quot;&gt;&lt;code&gt;eth_maxPriorityFeePerGas&lt;&#x2F;code&gt; passes through value from ganache&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;7129096fb628bcd4aa41e0011436f1da1b9c7e7e&quot;&gt;&lt;code&gt;eth_sendRawTransaction&lt;&#x2F;code&gt; publishes transactions on-chain&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;d02c343295d93e4f7ef15b496688efbd689093dc&quot;&gt;&lt;code&gt;eth_gasPrice&lt;&#x2F;code&gt; passes through value from ganache&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;cf49df91a13b0da16419f128b519132c881304e8&quot;&gt;&lt;code&gt;eth_estimateGas&lt;&#x2F;code&gt; passes through value from ganache&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;cf49df91a13b0da16419f128b519132c881304e8&quot;&gt;&lt;code&gt;eth_feeHistory&lt;&#x2F;code&gt; passes through value from ganache&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;8e857f37c93ab57cbc5cf8120c0fc2571f106631&quot;&gt;&lt;code&gt;eth_sendTransaction&lt;&#x2F;code&gt; encodes call data to contracts&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>WTF News (Week 12)</title>
          <pubDate>Sun, 09 Jul 2023 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://wtf.allwallet.dev/week-13/</link>
          <guid>https://wtf.allwallet.dev/week-13/</guid>
          <description>&lt;p&gt;Hello and welcome to issue number seven of WTF News, our biweekly status update.&lt;&#x2F;p&gt;
&lt;p&gt;This release introduces the first interactive tests, and our first major
inconsistencies between wallets: &lt;code&gt;eth_sign&lt;&#x2F;code&gt; and &lt;code&gt;eth_signTransaction&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Some wallets have treated &lt;code&gt;eth_sign&lt;&#x2F;code&gt; as a &amp;quot;sign raw data&amp;quot; operation, while
others implement it as &amp;quot;sign prefixed text&amp;quot;, while still others disable it
entirely. Similarly, &lt;code&gt;eth_signTransaction&lt;&#x2F;code&gt; is often not supported at all.&lt;&#x2F;p&gt;
&lt;p&gt;For these cases, we&#x27;ve chosen to test for the behaviour specified in the
&lt;a href=&quot;https:&#x2F;&#x2F;ethereum.github.io&#x2F;execution-apis&#x2F;api-documentation&#x2F;&quot;&gt;JSON-RPC&lt;&#x2F;a&gt; specification and treat anything different as a test failure.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;call-to-action&quot;&gt;Call to Action&lt;a class=&quot;zola-anchor&quot; href=&quot;#call-to-action&quot; aria-label=&quot;Anchor link for: call-to-action&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;We want to expand our tests for WTF, to catch issues like last update&#x27;s
connection issue. To that end, if you work on a wallet that works offline (aside
from the RPC provider) and want to try out WTF, get in touch with us!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;code-changes&quot;&gt;Code Changes&lt;a class=&quot;zola-anchor&quot; href=&quot;#code-changes&quot; aria-label=&quot;Anchor link for: code-changes&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Support for &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;glue&#x2F;commit&#x2F;068fa890fed818d4248d1e01ac204df65f2c68ad&quot;&gt;signing messages&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;glue&#x2F;commit&#x2F;1f5d4dd51a67d9d3da3b0b796b7e483cfb69dace&quot;&gt;sending transactions&lt;&#x2F;a&gt; in the
glue.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;new-tests&quot;&gt;New Tests&lt;a class=&quot;zola-anchor&quot; href=&quot;#new-tests&quot; aria-label=&quot;Anchor link for: new-tests&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;16fd0b4be66e792879519a4c93928bfb424e7dcb&quot;&gt;&lt;code&gt;eth_sign&lt;&#x2F;code&gt; creates a valid signature with prefix&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;1d43c057a9f86e0ee46e044b5d5d4ce82062b664&quot;&gt;&lt;code&gt;eth_sendTransaction&lt;&#x2F;code&gt; creates and publishes a transaction&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>WTF News (Week 11)</title>
          <pubDate>Mon, 26 Jun 2023 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://wtf.allwallet.dev/week-11/</link>
          <guid>https://wtf.allwallet.dev/week-11/</guid>
          <description>&lt;p&gt;Hello and welcome to issue number six of WTF News, our biweekly status update.&lt;&#x2F;p&gt;
&lt;p&gt;Over the last two weeks, we&#x27;ve begun to focus on tests involving UI interaction,
like &lt;code&gt;eth_sendTransaction&lt;&#x2F;code&gt; and on the initial steps toward automating wallets.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;code-changes&quot;&gt;Code Changes&lt;a class=&quot;zola-anchor&quot; href=&quot;#code-changes&quot; aria-label=&quot;Anchor link for: code-changes&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;f126a4f0e72b08f402014fbc273b7e624632aee8&quot;&gt;Implement connecting to glue over WebSockets&lt;&#x2F;a&gt;. If you navigate to
URLs of the form &lt;code&gt;https:&#x2F;&#x2F;127.0.0.1:3000&#x2F;#glue=ws:&#x2F;&#x2F;127.0.0.1:3001&#x2F;&lt;&#x2F;code&gt;, the
tests will attempt to open a WebSocket connection to &lt;code&gt;127.0.0.1:3001&lt;&#x2F;code&gt; and
issue commands to a glue instance there. The code is of prototype quality,
and there is no documentation yet. For the adventurous, see the tests in
&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;glue-ws&quot;&gt;wallet-test-framework&#x2F;glue-ws&lt;&#x2F;a&gt; for the gory details.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;bug-fixes&quot;&gt;Bug Fixes&lt;a class=&quot;zola-anchor&quot; href=&quot;#bug-fixes&quot; aria-label=&quot;Anchor link for: bug-fixes&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;During the transition to viem, we broke establishing the initial
connection, so we &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;591cc30cce10163c93ca2b9bbcbc3fdf5f8acf88&quot;&gt;fixed it&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;glue&#x2F;commit&#x2F;27b406ee7880eae4227613bc8bc97be612345d4f&quot;&gt;&lt;code&gt;@wallet-test-framework&#x2F;glue&lt;&#x2F;code&gt; didn&#x27;t have any exports for Node&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;upstream-issues&quot;&gt;Upstream Issues&lt;a class=&quot;zola-anchor&quot; href=&quot;#upstream-issues&quot; aria-label=&quot;Anchor link for: upstream-issues&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Incorrect type bounds for &lt;code&gt;register&lt;&#x2F;code&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;elpheria&#x2F;rpc-websockets&#x2F;issues&#x2F;139&quot;&gt;elpheria&#x2F;rpc-websockets#139&lt;&#x2F;a&gt;.)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>WTF News (Week 9)</title>
          <pubDate>Fri, 09 Jun 2023 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://wtf.allwallet.dev/week-09/</link>
          <guid>https://wtf.allwallet.dev/week-09/</guid>
          <description>&lt;p&gt;Hello and welcome to issue number five of WTF News, our biweekly status update.&lt;&#x2F;p&gt;
&lt;p&gt;Since our last post, we&#x27;ve settled on &lt;a href=&quot;https:&#x2F;&#x2F;viem.sh&#x2F;&quot;&gt;viem&lt;&#x2F;a&gt; for the time being. It fixed our
caching issues, and has excellent TypeScript support!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;code-changes&quot;&gt;Code Changes&lt;a class=&quot;zola-anchor&quot; href=&quot;#code-changes&quot; aria-label=&quot;Anchor link for: code-changes&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;5413056077f7e7905bbb0fe238dfa3ebfcb85b2d&quot;&gt;Migrate from ethers to viem&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Pass errors from Ganache &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;6c91a202d1bb8bb206f6fd0a9fbdbac07db42d80&quot;&gt;over &lt;code&gt;postMessage&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; then
&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;4669cc8e25ace968c2c9e125d42f3cdf8d6b6354&quot;&gt;the WebSocket&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;e1e48ee26ed7b79a9b02c5d2d72fcc44ef46251f&quot;&gt;Increase the slow test timeout&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;e638787b7b5ab642b38a1060f73c798349aa00ad&quot;&gt;Disable minify by default&lt;&#x2F;a&gt;. Now test source code is understandable
in Mocha&#x27;s HTML output!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;new-tests&quot;&gt;New Tests&lt;a class=&quot;zola-anchor&quot; href=&quot;#new-tests&quot; aria-label=&quot;Anchor link for: new-tests&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;0dd0c3c4078e5b8fca0ca9a353fb5da6878bf226&quot;&gt;&lt;code&gt;eth_getTransactionCount&lt;&#x2F;code&gt; for contract accounts&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;562b2fe9a01ece1f8a37720ad2e1b36d747497e7&quot;&gt;&lt;code&gt;eth_getCode&lt;&#x2F;code&gt; returns the contract&#x27;s bytecode&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;e1e48ee26ed7b79a9b02c5d2d72fcc44ef46251f&quot;&gt;&lt;code&gt;eth_newBlockFilter&lt;&#x2F;code&gt; returns new blocks&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;a727791f50613c91a90b9456b6af1b20d64ceab4&quot;&gt;&lt;code&gt;eth_getStorageAt&lt;&#x2F;code&gt; can read contract storage&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;e638787b7b5ab642b38a1060f73c798349aa00ad&quot;&gt;&lt;code&gt;eth_getTransactionByBlockHashAndIndex&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; and
&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;bd2df0747e43f2a937939fb98b453ee405d65eba&quot;&gt;&lt;code&gt;eth_getTransactionByBlockNumberAndIndex&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; get transactions.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;bd2df0747e43f2a937939fb98b453ee405d65eba&quot;&gt;&lt;code&gt;eth_getTransactionReceipt&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; can get receipts.&lt;&#x2F;li&gt;
&lt;li&gt;A &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;f47c1aa3e950f6dad78c0ec7544f14e2b95834de&quot;&gt;whole&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;aecd12cff2fc2cbcfbc7ffcfac8a0f2ae4eea185&quot;&gt;lot&lt;&#x2F;a&gt; of &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;ab9b156a76199bd80be8dcf6244b4f99405afda6&quot;&gt;filter tests&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;upstream-issues&quot;&gt;Upstream Issues&lt;a class=&quot;zola-anchor&quot; href=&quot;#upstream-issues&quot; aria-label=&quot;Anchor link for: upstream-issues&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Ganache returns &lt;code&gt;null&lt;&#x2F;code&gt; from several endpoints, and it&#x27;s unclear if that&#x27;s
allowed in the specification (&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ethereum&#x2F;execution-apis&#x2F;issues&#x2F;288&quot;&gt;ethereum&#x2F;execution-apis#288&lt;&#x2F;a&gt;.)&lt;&#x2F;li&gt;
&lt;li&gt;Getting transactions by index beyond the end of the block throws an
exception (&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;trufflesuite&#x2F;ganache&#x2F;issues&#x2F;4435&quot;&gt;trufflesuite&#x2F;ganache#4435&lt;&#x2F;a&gt;.)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>WTF News (Week 7)</title>
          <pubDate>Fri, 26 May 2023 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://wtf.allwallet.dev/week-07/</link>
          <guid>https://wtf.allwallet.dev/week-07/</guid>
          <description>&lt;p&gt;Hello and welcome to issue number four of WTF News, our biweekly status update.&lt;&#x2F;p&gt;
&lt;p&gt;This time around we&#x27;ve mostly focused on trying out alternatives to &lt;a href=&quot;https:&#x2F;&#x2F;docs.ethers.org&#x2F;v6&#x2F;&quot;&gt;ethers&lt;&#x2F;a&gt;.
After wrestling with &lt;code&gt;eth_blockNumber&lt;&#x2F;code&gt; not returning the latest block number,
and other similar caching issues, we decided it would be best to try out a few
other frameworks to see what they offer. &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;jakemoxey&quot;&gt;@jakemoxey&lt;&#x2F;a&gt; suggested we try out
&lt;a href=&quot;https:&#x2F;&#x2F;viem.sh&#x2F;&quot;&gt;viem&lt;&#x2F;a&gt;, and it&#x27;s been promising so far!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;bug-fixes&quot;&gt;Bug Fixes&lt;a class=&quot;zola-anchor&quot; href=&quot;#bug-fixes&quot; aria-label=&quot;Anchor link for: bug-fixes&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;76570875502ed3abc1ae6b7053184ad6b5ee4ebd&quot;&gt;Don&#x27;t kill web worker on error&lt;&#x2F;a&gt;. Ganache throws exceptions in some
cases instead of returning an error code (&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;issues&#x2F;34&quot;&gt;#34&lt;&#x2F;a&gt;.)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;new-tests&quot;&gt;New Tests&lt;a class=&quot;zola-anchor&quot; href=&quot;#new-tests&quot; aria-label=&quot;Anchor link for: new-tests&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;fe156324643f230b4862b1a8b6b2267708018e73&quot;&gt;&lt;code&gt;eth_newFilter&lt;&#x2F;code&gt; doesn&#x27;t return events from non-matching contracts&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;1e2dbd59ed8677820f3352d9eda7b6e92ac063d8&quot;&gt;&lt;code&gt;eth_newFilter&lt;&#x2F;code&gt; doesn&#x27;t return events from non-matching topics&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;e20f9a7faf15b53fd6ce91e0c9e794ff98abdc03&quot;&gt;Getting balance of contract accounts&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;4704bf2183a6b34f3d0507b32fc9ee50865e74b4&quot;&gt;Getting nonce of externally owned accounts&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>WTF News (Week 5)</title>
          <pubDate>Fri, 12 May 2023 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://wtf.allwallet.dev/week-05/</link>
          <guid>https://wtf.allwallet.dev/week-05/</guid>
          <description>&lt;p&gt;Hello and welcome to issue number three of WTF News, our biweekly status update.&lt;&#x2F;p&gt;
&lt;p&gt;Since the last update, we&#x27;ve mostly been working on bug fixes, stability, and UI updates.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;code-changes&quot;&gt;Code Changes&lt;a class=&quot;zola-anchor&quot; href=&quot;#code-changes&quot; aria-label=&quot;Anchor link for: code-changes&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;332c341cdbdde2218a52ebbaf2331d2d00b4ade5&quot;&gt;Add two new glue events&#x2F;actions: &lt;code&gt;addEthereumChain&lt;&#x2F;code&gt; and &lt;code&gt;switchEthereumChain&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;0f7e863654ed6d18c987d0538b419e09f9ee5455&quot;&gt;Split page into three columns on wide screens&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;884a318f5cdd1b90c606f775dccaf4bdcb4c195a&quot;&gt;Stricter lint rules&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;9f8d6b7dd16e392d34539e1378b77638da7e9aad&quot;&gt;Auto-scroll test resuts&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Added a utility for retrying assertions for a number of seconds.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;bug-fixes&quot;&gt;Bug Fixes&lt;a class=&quot;zola-anchor&quot; href=&quot;#bug-fixes&quot; aria-label=&quot;Anchor link for: bug-fixes&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;e665ff070afd802eb0c73c8216d60b10ca7f8673&quot;&gt;Fixed &amp;quot;Order of mined blocks seems inconsistent&amp;quot;&lt;&#x2F;a&gt;. Likely related to how ethers.js fetches the block number. Fixed by calling &lt;code&gt;eth_blockNumber&lt;&#x2F;code&gt; directly.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;9e00aab73c7c0c11fc981815b7e1ebb12c8c5139&quot;&gt;Fixed some&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;e420e22cbb2d6bd66c5bfa98eb09288ec306697d&quot;&gt;JSON-RPC related&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;846047931c0116ed797d45e44e8857f9666f1efd&quot;&gt;bugs&lt;&#x2F;a&gt; (thanks to &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;asdag8&quot;&gt;Adam Hodges&lt;&#x2F;a&gt; of &lt;a href=&quot;https:&#x2F;&#x2F;www.coinbase.com&#x2F;&quot;&gt;coinbase&lt;&#x2F;a&gt; for reporting.)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;new-tests&quot;&gt;New Tests&lt;a class=&quot;zola-anchor&quot; href=&quot;#new-tests&quot; aria-label=&quot;Anchor link for: new-tests&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;None this update.&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>WTF News (Week 3)</title>
          <pubDate>Fri, 28 Apr 2023 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://wtf.allwallet.dev/week-03/</link>
          <guid>https://wtf.allwallet.dev/week-03/</guid>
          <description>&lt;p&gt;Hello and welcome to issue number two of WTF News, our biweekly status update.
We&#x27;ve written more tests, new features, and broken more things than ever before!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;known-issues&quot;&gt;Known Issues&lt;a class=&quot;zola-anchor&quot; href=&quot;#known-issues&quot; aria-label=&quot;Anchor link for: known-issues&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Order of mined blocks seems inconsistent. This affects tests for:
&lt;code&gt;eth_getBlockByNumber&lt;&#x2F;code&gt;, &lt;code&gt;eth_getBlockByHash&lt;&#x2F;code&gt;,
&lt;code&gt;eth_getBlockTransactionCountByHash&lt;&#x2F;code&gt;, &lt;code&gt;eth_getBlockTransactionCountByNumber&lt;&#x2F;code&gt;,
and &lt;code&gt;eth_blockNumber&lt;&#x2F;code&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;code-changes&quot;&gt;Code Changes&lt;a class=&quot;zola-anchor&quot; href=&quot;#code-changes&quot; aria-label=&quot;Anchor link for: code-changes&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;6d3054e3e4eca4388791d032d4974ccf44704731&quot;&gt;Added an introduction&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;b1c6696ac3de5b6ce02d366959cf0f1a6a60d193&quot;&gt;Separate mocha output from introduction&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;94c312bbcb483576adafded7251e92f88e35b31e&quot;&gt;Dropped support for queueing RPC requests before the WebSocket is established&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;wallet-test-framework.herokuapp.com&#x2F;&quot;&gt;Deployed a demo to Heroku&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Create the &lt;a href=&quot;https:&#x2F;&#x2F;www.npmjs.com&#x2F;package&#x2F;@wallet-test-framework&#x2F;glue&quot;&gt;&lt;code&gt;@wallet-test-framework&#x2F;glue&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; package, and use it to
&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;f86bbe3b50bacd5228c0600598fb2e5f1a2c89aa&quot;&gt;display instructions to the user&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;89892a7455723edcf4e6474de3c6b4009ab3c08e&quot;&gt;Automate compiling Solidity as part of the build&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;bug-fixes&quot;&gt;Bug Fixes&lt;a class=&quot;zola-anchor&quot; href=&quot;#bug-fixes&quot; aria-label=&quot;Anchor link for: bug-fixes&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;None. We only added bugs this update.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;new-tests&quot;&gt;New Tests&lt;a class=&quot;zola-anchor&quot; href=&quot;#new-tests&quot; aria-label=&quot;Anchor link for: new-tests&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;a6e2753fee9584a8f53ca999c704a65de7160da2&quot;&gt;&lt;code&gt;eth_getBlockTransactionCountByHash&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;009ae15b66e633f01aa7ae4cbad404604fd2dd0c&quot;&gt;&lt;code&gt;eth_getBlockTransactionCountByNumber&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;16704f5cdaa1af2f8551756ed5cc8677d49c7151&quot;&gt;&lt;code&gt;eth_newFilter&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>WTF News (Week 1)</title>
          <pubDate>Fri, 14 Apr 2023 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://wtf.allwallet.dev/week-01/</link>
          <guid>https://wtf.allwallet.dev/week-01/</guid>
          <description>&lt;p&gt;Hello and welcome to the first of hopefully many biweekly status updates! We&#x27;re
going to try and write up a summary of the goings on in the Wallet Test
Framework, any features&#x2F;tests that land, and any issues we discover.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;code-changes&quot;&gt;Code Changes&lt;a class=&quot;zola-anchor&quot; href=&quot;#code-changes&quot; aria-label=&quot;Anchor link for: code-changes&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Rewrote the backend in TypeScript (instead of Rust.)&lt;&#x2F;li&gt;
&lt;li&gt;Updated &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ethers-io&#x2F;ethers.js&#x2F;&quot;&gt;ethers.js&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;trufflesuite.com&#x2F;ganache&#x2F;&quot;&gt;Ganache&lt;&#x2F;a&gt; to versions 6.3 and 7.7 respectively.&lt;&#x2F;li&gt;
&lt;li&gt;Switched from the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;lorenzofox3&#x2F;zora&quot;&gt;zora&lt;&#x2F;a&gt; testing library to the more well-known &lt;a href=&quot;https:&#x2F;&#x2F;mochajs.org&#x2F;&quot;&gt;Mocha&lt;&#x2F;a&gt; and
&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;browserify&#x2F;commonjs-assert&quot;&gt;assert&lt;&#x2F;a&gt; libraries.&lt;&#x2F;li&gt;
&lt;li&gt;Use &lt;a href=&quot;https:&#x2F;&#x2F;esbuild.github.io&#x2F;&quot;&gt;esbuild&lt;&#x2F;a&gt; instead of &lt;a href=&quot;https:&#x2F;&#x2F;webpack.js.org&#x2F;&quot;&gt;webpack&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;ee64f255516f3cae66dd94606f0cb6ad078bf463&quot;&gt;Move Ganache into its own WebWorker&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;bug-fixes&quot;&gt;Bug Fixes&lt;a class=&quot;zola-anchor&quot; href=&quot;#bug-fixes&quot; aria-label=&quot;Anchor link for: bug-fixes&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;3ca993d3e175e8ddcdd3b8e7234d3d267ce38483&quot;&gt;Handle wallets that return immediately from &lt;code&gt;wallet_addEthereumChain&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;new-tests&quot;&gt;New Tests&lt;a class=&quot;zola-anchor&quot; href=&quot;#new-tests&quot; aria-label=&quot;Anchor link for: new-tests&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;6d2b11fb29dd9f6d345d5297dc3c331392595b2a&quot;&gt;&lt;code&gt;eth_blockNumber&lt;&#x2F;code&gt; and &lt;code&gt;eth_chainId&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;e1daccd4adc0817530cdabff848a51b27f564d5b&quot;&gt;&lt;code&gt;eth_getTransactionByHash&lt;&#x2F;code&gt; and &lt;code&gt;eth_getBlockByHash&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wallet-test-framework&#x2F;framework&#x2F;commit&#x2F;2fc08714d46b32e0232e47333a4ca14699043833&quot;&gt;&lt;code&gt;eth_getBlockByNumber&lt;&#x2F;code&gt; and &lt;code&gt;eth_getBlockTransactionCountByHash&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Kick Off</title>
          <pubDate>Wed, 05 Apr 2023 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://wtf.allwallet.dev/kick-off/</link>
          <guid>https://wtf.allwallet.dev/kick-off/</guid>
          <description>&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;a class=&quot;zola-anchor&quot; href=&quot;#introduction&quot; aria-label=&quot;Anchor link for: introduction&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Any denizen of the 2000s internet who dabbled in web development probably
remembers the &lt;a href=&quot;http:&#x2F;&#x2F;acid3.acidtests.org&#x2F;&quot;&gt;Acid3&lt;&#x2F;a&gt; browser testing website. The
six squares jittering slightly as they change color, never quite reaching the
rainbow from the reference image:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;wtf.allwallet.dev&#x2F;kick-off&#x2F;.&#x2F;reference.png&quot; alt=&quot;Acid3 Reference Image&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;If you&#x27;ve been following the &lt;a href=&quot;https:&#x2F;&#x2F;allwallet.dev&quot;&gt;AllWalletDevs&lt;&#x2F;a&gt;
meetings—and if you haven&#x27;t been, you should be—you might be aware
that we&#x27;ve prototyped a framework for testing Ethereum wallets inspired by the
Acid3 tests. Our goal is to foster quality and consistency by making it
trivially easy to share tests across wallets.&lt;&#x2F;p&gt;
&lt;p&gt;This project is official now, with a one year grant from the Ethereum
Foundation&#x27;s &lt;a href=&quot;https:&#x2F;&#x2F;esp.ethereum.foundation&#x2F;&quot;&gt;Ecosystem Support Program&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;project&quot;&gt;Project&lt;a class=&quot;zola-anchor&quot; href=&quot;#project&quot; aria-label=&quot;Anchor link for: project&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;The initial scope of the project is split into several milestones spaced out
over one year. After completing these milestones, the testing framework should
be in a reasonable place for outside contributors and be ready for wallets to
integrate.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;milestones&quot;&gt;Milestones&lt;a class=&quot;zola-anchor&quot; href=&quot;#milestones&quot; aria-label=&quot;Anchor link for: milestones&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ol&gt;
&lt;li&gt;Reassess &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Wallet-Test-Framework&#x2F;framework&quot;&gt;the prototype&lt;&#x2F;a&gt;,
and get it into reasonable shape to form the foundation of the framework.&lt;&#x2F;li&gt;
&lt;li&gt;Happy-path coverage of all of the endpoints available in the
&lt;a href=&quot;https:&#x2F;&#x2F;ethereum.github.io&#x2F;execution-apis&#x2F;api-documentation&#x2F;&quot;&gt;&lt;code&gt;execution-apis&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;
specification for a single wallet, where the website walks the user through
the tests with specific human-readable instructions.&lt;&#x2F;li&gt;
&lt;li&gt;Expand the coverage to include multiple wallets, possibly including at least
one browser extension and one hardware wallet.&lt;&#x2F;li&gt;
&lt;li&gt;Build automation glue (eg. &lt;a href=&quot;https:&#x2F;&#x2F;www.w3.org&#x2F;TR&#x2F;webdriver&#x2F;&quot;&gt;WebDriver&lt;&#x2F;a&gt;) for
at least one wallet.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;h3 id=&quot;architecture&quot;&gt;Architecture&lt;a class=&quot;zola-anchor&quot; href=&quot;#architecture&quot; aria-label=&quot;Anchor link for: architecture&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;h4 id=&quot;overview&quot;&gt;Overview&lt;a class=&quot;zola-anchor&quot; href=&quot;#overview&quot; aria-label=&quot;Anchor link for: overview&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;wtf.allwallet.dev&#x2F;kick-off&#x2F;diagram.svg&quot; alt=&quot;Architecture Diagram&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;h4 id=&quot;components&quot;&gt;Components&lt;a class=&quot;zola-anchor&quot; href=&quot;#components&quot; aria-label=&quot;Anchor link for: components&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;h5 id=&quot;proxy&quot;&gt;Proxy&lt;a class=&quot;zola-anchor&quot; href=&quot;#proxy&quot; aria-label=&quot;Anchor link for: proxy&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h5&gt;
&lt;p&gt;A web server that forwards JSON-RPC requests between the wallet and the
simulated chain. Necessary because browsers do not allow web pages to listen for
HTTP or WebSocket connections.&lt;&#x2F;p&gt;
&lt;h5 id=&quot;wallet&quot;&gt;Wallet&lt;a class=&quot;zola-anchor&quot; href=&quot;#wallet&quot; aria-label=&quot;Anchor link for: wallet&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h5&gt;
&lt;p&gt;The software under test. Communicates with the tests using &lt;code&gt;window.ethereum&lt;&#x2F;code&gt;,
and with the simulated chain through the proxy with JSON-RPC.&lt;&#x2F;p&gt;
&lt;h5 id=&quot;simulated-chain&quot;&gt;Simulated Chain&lt;a class=&quot;zola-anchor&quot; href=&quot;#simulated-chain&quot; aria-label=&quot;Anchor link for: simulated-chain&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h5&gt;
&lt;p&gt;An isolated Ethereum-compatible blockchain (like
&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;trufflesuite&#x2F;ganache&quot;&gt;Ganache&lt;&#x2F;a&gt;.) The simulated chain
presents a JSON-RPC interface to the wallet through the proxy.&lt;&#x2F;p&gt;
&lt;h5 id=&quot;tests&quot;&gt;Tests&lt;a class=&quot;zola-anchor&quot; href=&quot;#tests&quot; aria-label=&quot;Anchor link for: tests&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h5&gt;
&lt;p&gt;Collection of functions that put the simulated chain into a known state, then
perform some operation with or retrieve some information through the wallet.&lt;&#x2F;p&gt;
&lt;h5 id=&quot;glue&quot;&gt;Glue&lt;a class=&quot;zola-anchor&quot; href=&quot;#glue&quot; aria-label=&quot;Anchor link for: glue&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h5&gt;
&lt;p&gt;Software specific to each wallet that translates conceptual actions (eg. approve
transaction) into a format that the wallet understands. Initially this will be
on-screen instructions for the user to follow, but later on the glue could be
implemented with, for example, WebDriver for browser-based wallets.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;what-s-next&quot;&gt;What&#x27;s Next?&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-next&quot; aria-label=&quot;Anchor link for: what-s-next&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;You&#x27;ll start to see some activity in the
&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Wallet-Test-Framework&#x2F;framework&quot;&gt;repository&lt;&#x2F;a&gt; in the next
week or so, and perhaps some discussion in
&lt;a href=&quot;https:&#x2F;&#x2F;discord.gg&#x2F;buZVvsAsAN&quot;&gt;#testing&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;If you&#x27;re developing a wallet and want to contribute, please reach out to
&lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;gaudren_&quot;&gt;@gaudren_&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
</description>
      </item>
    </channel>
</rss>
