Deployments icon indicating copy to clipboard operation
Deployments copied to clipboard

[Galleon wallet] Invalid Signature with Beacon Wallet

Open Gau-thier opened this issue 2 years ago • 0 comments

Describe the bug (current behavior)

When using Beacon-SDK to sign a custom payload on our Deku Layer 2 solution for Tezos, the signature generated by Galleon is invalid.

If I use the InMemorySigner with the address and the secret of my wallet inside Galleon, the signature is accepted and valid.

We successfully signed using AirGap wallet and Umami with Beacon-SDK.

Hence, I am wondering how is generated this signature.

Information:

  • system: MacOS 12.5.1
  • Galleon: Version 1.3.3 (59) (downloaded from GitHub)

I don't know if there is a way to reproduce it without using our dApp, so here is the code we use to create the BeaconWallet and sign using it:

const Tezos = new TezosToolkit("https://mainnet.tezos.marigold.dev/");
const myWallet = new BeaconWallet({
    name: "decookies",
    preferredNetwork: NetworkType.CUSTOM,
});

Tezos.setWalletProvider(myWallet);
dispatch(saveWallet(myWallet));

// then later
await wallet.requestPermissions({
    network: {
        type: NetworkType.CUSTOM,
        rpcUrl: "https://mainnet.tezos.marigold.dev/"
    }
});

And finally, when we sign:

const signature = await signer.client.requestSignPayload({
    signingType: SigningType.RAW,
    payload: stringToHex(fullPayload)
}).then(val => val.signature);

This generated signature is then considered as invalid by Deku.

Please note that because of this, Galleon Wallet is not available for our Layer 2 solution...

Cheers,

Gauthier

Gau-thier avatar Aug 30 '22 13:08 Gau-thier