@cfxlabsinc/b2b-services
    Preparing search index...

    The NTT manager writes, run on the worker: the only site that signs them. EVM goes through wallet-api's ntt.* ops; Solana through transaction.create.

    type NttManagerActivityDependencies = {
        backgroundTemporalClient: Pick<
            TemporalWorkflowClient<RevertedSendFeeRegistry>,
            "idempotentStart",
        >;
        backofficeWalletQueryService: Pick<BackofficeWalletQueryService, "search">;
        backofficeWalletService: Pick<BackofficeWalletService, "sign">;
        nttManagerAdminService: Pick<NttManagerAdminService, "get">;
        nttWalletApiClient: Pick<WalletApiClient, "evmDeploy">;
        solanaNttClient: Pick<
            SolanaNttClient,
            "setPausedInstruction"
            | "setPeerInstruction"
            | "setLimitInstruction",
        >;
        solanaTransactionSenderService: Pick<
            SolanaTransactionSenderService,
            "sendAndConfirmTransaction",
        >;
        solanaTransactionService: Pick<
            SolanaTransactionService,
            "transactionWithBlockhash",
        >;
    }
    Index
    backgroundTemporalClient: Pick<
        TemporalWorkflowClient<RevertedSendFeeRegistry>,
        "idempotentStart",
    >

    background-<env>, where revertedSendFeeWorkflow records a FAILED send's gas.

    backofficeWalletQueryService: Pick<BackofficeWalletQueryService, "search">
    backofficeWalletService: Pick<BackofficeWalletService, "sign">
    nttManagerAdminService: Pick<NttManagerAdminService, "get">
    nttWalletApiClient: Pick<WalletApiClient, "evmDeploy">
    solanaNttClient: Pick<
        SolanaNttClient,
        "setPausedInstruction"
        | "setPeerInstruction"
        | "setLimitInstruction",
    >
    solanaTransactionSenderService: Pick<
        SolanaTransactionSenderService,
        "sendAndConfirmTransaction",
    >
    solanaTransactionService: Pick<
        SolanaTransactionService,
        "transactionWithBlockhash",
    >