pub async fn set(&self, frozen_state: &str) -> Result<(), IdbError> {
        let transaction = self
            .db
            .transaction(&["frozen_state"], TransactionMode::ReadWrite)
            .map_err(|err| IdbError::TransactionError { source: err })?;
        let store = transaction
            .store("frozen_state")
            .map_err(|err| IdbError::TransactionError { source: err })?;

        // We only store a single frozen state, and they can be quite large, so we'll
        // remove any that are already in here
        store
            .clear()
            .await
            .map_err(|err| IdbError::ClearError { source: err })?;
        // We can add the frozen state directly because it's already a serialized string
        // This returns the ID, but we don't need to care about that
        store
            .add(&JsValue::from(frozen_state), None)
            .await
            .map_err(|err| IdbError::SetError { source: err })?;
        transaction
            .commit()
            .await
            .map_err(|err| IdbError::SetError { source: err })?;

        Ok(())
    }
Sets the content to a new frozen state.
packages/perseus/src/state/freeze_idb.rs