Sign EVM Transaction

by passbird

HTML

<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="utf-8">

    <!-- 
    Import metakeep sdk.
    You can also import npm package if you are using node for building website
    e.g. 
    npm install metakeep@2.2.8
    require(metakeep)
    -->
    <script src="https://cdn.jsdelivr.net/npm/metakeep@2.2.8/lib/index.js" integrity="sha256-dVJ6hf8zqdtHxHJCDJnLAepAyCCbu6lCXzZS3lqMIto=" crossorigin="anonymous">
    </script>
  </head>

</html>

JavaScript

/* Init SDK */
const sdk = new MetaKeep({
  environment: "prod",
  /* App id to configure UI */
  appId: "9cc98bca-da35-4da8-8f10-655b3e51cb9e",
});

/* Call signTransaction. It returns a promise which returns when the operation succeeds.
Otherwise throws an error.
*/
async function sign() {
  try {
    const signResponse = await sdk.signTransaction(
      // Eth transaction object
      {
        type: 2,
        to: "0x97706Df14A769E28EC897dAc5Ba7bCfa5AA9C444",
        value: "0x2710",
        nonce: "0x1",
        data: "0x0123456789",
        gas: 23,
        maxFeePerGas: 1000,
        maxPriorityFeePerGas: 999,
        chainId: 137,
      },
      // signing reason
      "reason",
    );
    console.log("sign successful");
    console.log(signResponse);
  } catch (err) {
    console.log("Error when trying to sign");
    console.log(err.message || err);
  }
}


sign();