# ShareTransferModule The ShareTransferModule is a Swift module that provides functions for requesting, approving and transfering a share to another device/ storage. To use the ShareTransferModule in your Swift project, you will need to import the module as follows: ``` import tkey_pkg ``` | Function | Description | Arguments | Async | return | | ------------------- | ------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- | `request_new_share` | request a new share | `threshold_key: ThresholdKey, user_agent: String, available_share_indexes: String` | Yes | `String` | `add_custom_info_to_request` | Add custom info to share request | `threshold_key: ThresholdKey, enc_pub_key_x: String, custom_info: String` | Yes | `void` | `look_for_request` | Returns an array of indexes of pending requests | `threshold_key: ThresholdKey ` | Yes | `[String]` | `approve_request` | approve the shareStore to be shared | `threshold_key: ThresholdKey, enc_pub_key_x: String, share_store: ShareStore` | Yes | `void` | `approve_request_with_share_index` | approve sharing with share index | `tthreshold_key: ThresholdKey, enc_pub_key_x: String, share_index: String` | Yes | `void` | `get_store` | Get share transfer store | `threshold_key: ThresholdKey` | Yes | `ShareTransferStore` | `set_store` | Set share transfer store | `threshold_key: ThresholdKey, store: ShareTransferStore` | Yes | `Bool` | `delete_store` | Delete share transfer store | `threshold_key: ThresholdKey, enc_pub_key_x: String` | Yes | `Bool` | `get_current_encryption_key` | Get security questions stored in tKey | `threshold_key: ThresholdKey` | No | `String` | `request_status_check` | start request status checking | `threshold_key: ThresholdKey, enc_pub_key_x: String, delete_request_on_completion: Bool` | Yes | `ShareStore` | `cleanup_request` | cleanup the request | `threshold_key: ThresholdKey` | No | `Bool` | ### `request_new_share` Request a new share for the given user. Parameters: - threshold_key: A ThresholdKey object representing the user's threshold key. - user_agent: A string representing the user's user agent. - available_share_indexes: A string representing the available share indexes for the user. Returns: - String: A string representing the requested share. ### `add_custom_info_to_request` Adds custom information to a share request. Parameters: - threshold_key: A ThresholdKey object representing the user's threshold key. - enc_pub_key_x: A string representing the user's encryption public key. - custom_info: A string representing the custom information to add to the request. ### `look_for_request` Check the status of the user's share request. Parameters: - threshold_key: A ThresholdKey object representing the user's threshold key. Returns: - [String]: An array of strings representing the status of the user's share request. ### `approve_request` Approves a share request for the user. Parameters: - threshold_key: A ThresholdKey object representing the user's threshold key. - enc_pub_key_x: A string representing the user's encryption public key. - share_store: A ShareStore object representing the user's share store. ### `approve_request_with_share_index` Approves a share request for the user using a specific share index. Parameters: - threshold_key: A ThresholdKey object representing the user's threshold key. - enc_pub_key_x: A string representing the user's encryption public key. - share_index: A string representing the specific share index to use for the share request. ### `get_store` Get the user's share store. Parameters: - threshold_key: A ThresholdKey object representing the user's threshold key. Returns: - ShareTransferStore: A ShareTransferStore object representing the user's share store. ### `set_store` Set the user's share store. Parameters: - threshold_key: A ThresholdKey object representing the user's threshold key. - store: A ShareTransferStore object representing the user's share store. Returns: - Bool: A boolean value indicating whether the operation was successful. ### `delete_store` Delete the user's share store. Parameters: - threshold_key: A ThresholdKey object representing the user's threshold key. - enc_pub_key_x: A string representing the user's encryption public key. Returns: - Bool: A boolean value indicating whether the operation was successful. ### `get_current_encryption_key` This method is used to get the current encryption key for the given threshold_key. Parameters: - threshold_key: A ThresholdKey object representing the user's threshold key. Throws: - ShareTransferError: If there is an issue with the underlying share transfer module. - RuntimeError: If there is an issue with the runtime environment. Returns: - String: A string value representing the current encryption key. ### `request_status_check` This method is used to check the status of a request for the specified enc_pub_key_x under the given threshold_key. Parameters: - threshold_key: The ThresholdKey object for the associated share transfer module. - enc_pub_key_x: The encrypted public key X for the request to be checked. - delete_request_on_completion: A boolean value indicating whether the request should be deleted upon completion. Throws: - ShareTransferError: If there is an issue with the underlying share transfer module. - RuntimeError: If there is an issue with the runtime environment. Returns: - ShareStore: A ShareStore object representing the current status of the request. ### `cleanup_request` This method is used to clean up any remaining requests for the specified threshold_key. Parameters: - threshold_key: The ThresholdKey object for the associated share transfer module. Throws: - ShareTransferError: If there is an issue with the underlying share transfer module. - RuntimeError: If there is an issue with the runtime environment.