Blocto wallet will NOT follow ERC-1654 in July. The change is going to affect the signature verification when you’re using personalSign
. For compatibility with newer and current versions of Blocto app, we have already updated related libs and you just need to update one-line code to upgrade it, which is usually on your backend.
@dapperlabs/dappauth
from npmjs, please update to @blocto/dappauth
with version 2.1.0
package.json
{
"dependencies": {
"@blocto/sdk": "0.4.8",
- "@dapperlabs/dappauth": "2.0.5",
+ "@blocto/dappauth": "2.1.0",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-scripts": "4.0.0",
"web3": "1.8.0"
},
}
github.com/portto/dappauth
instead.package ...
- import "github.com/dapperlabs/dappauth"
+ import "github.com/portto/dappauth"
...
Please check the newer method first → [The New Method: EIP-191 version 0x00 + version 0x45 ](https://portto.notion.site/The-New-Method-EIP-191-version-0x00-version-0x45-3dc9573c29104465a2b6ea8757b11373). For backward compatible of older Blocto apps, you also need to support ERC-1654 which means:
Step 1. verify by calling ERC-1271 isValidSignature and the parameter hash
is Keccak256(0x19
+ 0x45 (E)
+ <thereum Signed Message:\\n"
+ len(message)
+ message
)
Step 2. if step 1 returns false, then call ERC-1271 isValidSignature and the parameter hash
is Keccak256(message
)
Step 3. if both step 1 & 2 are failed, then we can say the signature is mismatch.
You can refer to the changes of verification libs: