• Add the Sapphire transaction encryption wrapper to a wallet client

    Example:

    walletClient = await wrapWalletClient(createWalletClient({
    account,
    chain: sapphireLocalnet,
    transport: sapphireHttpTransport()
    }));

    Type Parameters

    • T extends {
          account: undefined | Account;
          addChain: ((args) => Promise<void>);
          batch?: {
              multicall?: boolean | {
                  batchSize?: number;
                  deployless?: boolean;
                  wait?: number;
              };
          };
          cacheTime: number;
          ccipRead?: false | {
              request?: ((parameters) => Promise<`0x${string}`>);
          };
          chain: undefined | Chain;
          deployContract: (<const abi, chainOverride>(args) => Promise<`0x${string}`>);
          experimental_blockTag?: BlockTag;
          extend: (<const client>(fn) => Client<Transport, undefined | Chain, undefined | Account, WalletRpcSchema, {
              [K in string | number | symbol]: client[K]
          } & WalletActions<undefined | Chain, undefined | Account>>);
          fillTransaction: (<chainOverride, accountOverride>(args) => Promise<FillTransactionReturnType<undefined | Chain, chainOverride>>);
          getAddresses: (() => Promise<GetAddressesReturnType>);
          getCallsStatus: ((parameters) => Promise<{
              atomic: boolean;
              capabilities?: {
                  [key: string]: any;
              } | {};
              chainId: number;
              id: string;
              receipts?: WalletCallReceipt<bigint, "success" | "reverted">[];
              status: undefined | "pending" | "success" | "failure";
              statusCode: number;
              version: string;
          }>);
          getCapabilities: (<chainId>(parameters?) => Promise<{
              [K in string | number | symbol]: (chainId extends number
                  ? {
                      atomic?: {
                          status: "supported" | "ready" | "unsupported";
                      };
                      paymasterService?: {
                          supported: boolean;
                      };
                      unstable_addSubAccount?: {
                          keyTypes: ((...) | (...) | (...) | (...))[];
                          supported: boolean;
                      };
                  }
                  : ChainIdToCapabilities<Capabilities<{
                      atomic?: {
                          status: ...;
                      };
                      paymasterService?: {
                          supported: ...;
                      };
                      unstable_addSubAccount?: {
                          keyTypes: ...;
                          supported: ...;
                      };
                  }>, number>)[K]
          }>);
          getChainId: (() => Promise<number>);
          getPermissions: (() => Promise<GetPermissionsReturnType>);
          key: string;
          name: string;
          pollingInterval: number;
          prepareAuthorization: ((parameters) => Promise<PrepareAuthorizationReturnType>);
          prepareTransactionRequest: (<const request, chainOverride, accountOverride>(args) => Promise<{
              [K in string | number | symbol]: (UnionRequiredBy<Extract<UnionOmit<(...), (...)> & ((...) extends (...)
                  ? (...)
                  : (...)) & ((...) extends (...)
                  ? (...)
                  : (...)), IsNever<(...)> extends true
                  ? unknown
                  : ExactPartial<(...)>> & {
                  chainId?: number;
              }, ParameterTypeToParameters<request["parameters"] extends readonly PrepareTransactionRequestParameterType[]
                  ? any[any][number]
                  : "fees" | "gas" | "nonce" | "type" | "blobVersionedHashes" | "chainId">> & (unknown extends request["kzg"]
                  ? {}
                  : Pick<request, "kzg">))[K]
          }>);
          request: EIP1193RequestFn<WalletRpcSchema>;
          requestAddresses: (() => Promise<RequestAddressesReturnType>);
          requestPermissions: ((args) => Promise<RequestPermissionsReturnType>);
          sendCalls: (<const calls, chainOverride>(parameters) => Promise<{
              capabilities?: {};
              id: string;
          }>);
          sendCallsSync: (<const calls, chainOverride>(parameters) => Promise<{
              atomic: boolean;
              capabilities?: {
                  [key: string]: any;
              } | {};
              chainId: number;
              id: string;
              receipts?: WalletCallReceipt<bigint, "success" | "reverted">[];
              status: undefined | "pending" | "success" | "failure";
              statusCode: number;
              version: string;
          }>);
          sendRawTransaction: ((args) => Promise<`0x${string}`>);
          sendRawTransactionSync: ((args) => Promise<TransactionReceipt>);
          sendTransaction: (<const request, chainOverride>(args) => Promise<`0x${string}`>);
          sendTransactionSync: (<const request, chainOverride>(args) => Promise<TransactionReceipt>);
          showCallsStatus: ((parameters) => Promise<void>);
          signAuthorization: ((parameters) => Promise<SignAuthorizationReturnType>);
          signMessage: ((args) => Promise<`0x${string}`>);
          signTransaction: (<chainOverride, const request>(args) => Promise<TransactionSerialized<GetTransactionType<request, (request extends LegacyProperties
              ? "legacy"
              : never) | (request extends EIP1559Properties
              ? "eip1559"
              : never) | (request extends EIP2930Properties
              ? "eip2930"
              : never) | (request extends EIP4844Properties
              ? "eip4844"
              : never) | (request extends EIP7702Properties
              ? "eip7702"
              : never) | (request["type"] extends undefined | string
              ? Extract<any[any], string>
              : never)>, (GetTransactionType<request, (request extends LegacyProperties
                  ? "legacy"
                  : never) | (request extends EIP1559Properties
                  ? "eip1559"
                  : never) | (request extends EIP2930Properties
                  ? "eip2930"
                  : never) | (request extends EIP4844Properties
                  ? "eip4844"
                  : never) | (request extends EIP7702Properties
                  ? "eip7702"
                  : never) | (request["type"] extends undefined | string
                  ? Extract<any[any], string>
                  : never)> extends "eip1559"
              ? `0x02${string}`
              : never) | (GetTransactionType<request, (request extends LegacyProperties
                  ? "legacy"
                  : never) | (request extends EIP1559Properties
                  ? "eip1559"
                  : never) | (request extends EIP2930Properties
                  ? "eip2930"
                  : never) | (request extends EIP4844Properties
                  ? "eip4844"
                  : never) | (request extends EIP7702Properties
                  ? "eip7702"
                  : never) | (request["type"] extends undefined | string
                  ? Extract<any[any], string>
                  : never)> extends "eip2930"
              ? `0x01${string}`
              : never) | (GetTransactionType<request, (request extends LegacyProperties
                  ? "legacy"
                  : never) | (request extends EIP1559Properties
                  ? "eip1559"
                  : never) | (request extends EIP2930Properties
                  ? "eip2930"
                  : never) | (request extends EIP4844Properties
                  ? "eip4844"
                  : never) | (request extends EIP7702Properties
                  ? "eip7702"
                  : never) | (request["type"] extends undefined | string
                  ? Extract<any[any], string>
                  : never)> extends "eip4844"
              ? `0x03${string}`
              : never) | (GetTransactionType<request, (request extends LegacyProperties
                  ? "legacy"
                  : never) | (request extends EIP1559Properties
                  ? "eip1559"
                  : never) | (request extends EIP2930Properties
                  ? "eip2930"
                  : never) | (request extends EIP4844Properties
                  ? "eip4844"
                  : never) | (request extends EIP7702Properties
                  ? "eip7702"
                  : never) | (request["type"] extends undefined | string
                  ? Extract<any[any], string>
                  : never)> extends "eip7702"
              ? `0x04${string}`
              : never) | (GetTransactionType<request, (request extends LegacyProperties
                  ? "legacy"
                  : never) | (request extends EIP1559Properties
                  ? "eip1559"
                  : never) | (request extends EIP2930Properties
                  ? "eip2930"
                  : never) | (request extends EIP4844Properties
                  ? "eip4844"
                  : never) | (request extends EIP7702Properties
                  ? "eip7702"
                  : never) | (request["type"] extends undefined | string
                  ? Extract<any[any], string>
                  : never)> extends "legacy"
              ? TransactionSerializedLegacy
              : never)>>);
          signTypedData: (<const typedData, primaryType>(args) => Promise<`0x${string}`>);
          switchChain: ((args) => Promise<void>);
          transport: TransportConfig<string, EIP1193RequestFn> & Record<string, any>;
          type: string;
          uid: string;
          waitForCallsStatus: ((parameters) => Promise<{
              atomic: boolean;
              capabilities?: {
                  [key: string]: any;
              } | {};
              chainId: number;
              id: string;
              receipts?: WalletCallReceipt<bigint, "success" | "reverted">[];
              status: undefined | "pending" | "success" | "failure";
              statusCode: number;
              version: string;
          }>);
          watchAsset: ((args) => Promise<boolean>);
          writeContract: (<const abi, functionName, args, chainOverride>(args) => Promise<`0x${string}`>);
          writeContractSync: (<const abi, functionName, args, chainOverride>(args) => Promise<TransactionReceipt>);
      }

    Parameters

    • client: T

      Wagmi wallet client

    Returns Promise<T>

    wrapped wallet client