An EVM signer backed by an external signing function.

Same as ExternalSigner but uses Ethereum personal_sign message framing (\x19Ethereum Signed Message:\n prefix + keccak256 hashing).

import { ExternalEvmSigner, toFuelCompactSignature } from "@o2exchange/sdk";

const signer = new ExternalEvmSigner(
"0x000000000000000000000000abcd...1234", // b256 (zero-padded)
"0xabcd...1234", // EVM address
(digest) => {
const { r, s, recoveryId } = myKms.sign(digest);
return toFuelCompactSignature(r, s, recoveryId);
},
);

Implements

Constructors

Properties

Methods

Constructors

  • Parameters

    • b256Address: string

      The B256 address (EVM address zero-padded to 32 bytes).

    • evmAddress: string

      The EVM address (0x-prefixed, 40-char hex).

    • signDigest: SignDigestFn

      Callback that signs a 32-byte digest and returns a 64-byte Fuel compact signature.

    Returns ExternalEvmSigner

Properties

b256Address: string

The Fuel B256 address (zero-padded EVM address).

evmAddress: string

The EVM address (0x-prefixed, 40-char hex).

Methods

  • Sign using Ethereum's personal_sign format, delegating to the external signer.

    Computes keccak256("\x19Ethereum Signed Message:\n" + len + message) and passes the 32-byte digest to the signDigest callback.

    Parameters

    • message: Uint8Array

    Returns Uint8Array