Client side contract deployments with MetaMask and hardware wallet broken

Within the last 2 days, something has broken with Metamask and Hardware wallets with respect to contract deployment transactions.

This is happening across Mac/Windows and on MetaMask version 10.0.2 and 10.0.3, using both web3js and ethers.js libraries.

Any attempts to deploy a contract using MetaMask and a hardware wallet results in the following MetaMask error:
{code: -32603, message: “TypeError: Cannot read property ‘buf’ of undefined”, stack: “Error: TypeError: Cannot read property ‘buf’ of undefined”}

Contract deployment without a hardware wallet is fine.

2 Likes

Further details, it appears as though the root issue is that metamask (for whatever reason) is not triggering a hardware wallet authorization request, as it seems as though metamask immediately sends an RPC call for the deployment which is what is triggering the error.

Actually, it appears the issue is completely isolated to Ledger integration on Chrome, Firefox and all browsers.

Contract deployment transactions have suddenly stopped triggering Ledger authorization requests, resulting in an RPC error:

Chrome:
{code: -32603, message: “TypeError: Cannot read property ‘buf’ of undefined”, stack: “Error: TypeError: Cannot read property ‘buf’ of undefined”}

Firefox:
MetaMask - RPC Error: TypeError: t.to is undefined
{ code: -32603, message: “TypeError: t.to is undefined” }

This RPC error appears to be triggered by the MetaMask/Ledger JsonRPC interaction, and only occurs for contract deployment transactions (where the to: field is blank, which aligns with the FireFox RPC error message of “to” being undefined.)

1 Like

I am also facing this same problem with all browsers from last 3 days - TypeError: Cannot read property ‘buf’ of undefined

Requesting Metamask team to check and fix this issue immediately

1 Like