https://github.com/truethari/timecipher
TimeCipher is a blockchain-based time-locked messaging system that securely encrypts messages with a timestamp, ensuring they can only be decrypted after the specified time. This innovative solution combines privacy and delayed access, perfect for secure future communication.
https://github.com/truethari/timecipher
blockchain encryption messaging privacy secure-communication time-lock timecipher
Last synced: about 2 months ago
JSON representation
TimeCipher is a blockchain-based time-locked messaging system that securely encrypts messages with a timestamp, ensuring they can only be decrypted after the specified time. This innovative solution combines privacy and delayed access, perfect for secure future communication.
- Host: GitHub
- URL: https://github.com/truethari/timecipher
- Owner: truethari
- License: mit
- Created: 2024-12-15T09:31:55.000Z (6 months ago)
- Default Branch: master
- Last Pushed: 2024-12-16T14:18:25.000Z (6 months ago)
- Last Synced: 2025-04-24T03:08:30.527Z (about 2 months ago)
- Topics: blockchain, encryption, messaging, privacy, secure-communication, time-lock, timecipher
- Language: Solidity
- Homepage: https://www.npmjs.com/package/timecipher
- Size: 133 KB
- Stars: 7
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# TimeCipher
TimeCipher is a blockchain-based time-locked messaging system that securely encrypts messages with a timestamp, ensuring they can only be decrypted after the specified time. This innovative solution combines privacy and delayed access, perfect for secure future communication.
### Table of Contents
- [Installation](#installation)
- [Features](#features)
- [Usage](#usage)
- [API Documentation](#api-documentation)
- [Types](#types)
- [License](#license)## Installation
Install the library using npm or yarn or bun:
```bash
npm install timecipher
```or
```bash
yarn install timecipher
```or
```bash
bun install timecipher
```## Features
- Encrypt and decrypt messages using the contract's logic.
- Check the active status of an encrypted message.
- Get the activation timestamp of an encrypted message.
- Retrieve timestamps from the smart contract.## Usage
First, import the necessary methods from the library:
```javascript
import { getTimestamp, encryptMessage, decryptMessage, isActive, whenActive } from "timecipher";
```Example: Encrypting a message
```javascript
const message = "Hello, World!";
const timestamp = Math.floor(Date.now() / 1000);const encryptedMessage = await encryptMessage(message, timestamp);
console.log("Encrypted Message:", encryptedMessage);
```Example: Decrypting a message
```javascript
const decryptedMessage = await decryptMessage(encryptedMessage);
console.log("Decrypted Message:", decryptedMessage);
```Example: Checking if a message is active
```javascript
const active = await isActive(encryptedMessage);
console.log("Is Active:", active);
```Example: Getting the activation timestamp
```javascript
const activationTimestamp = await whenActive(encryptedMessage);
console.log("Activation Timestamp:", activationTimestamp);
```Example: Retrieving the current timestamp
```javascript
const timestamp = await getTimestamp();
console.log("Current Timestamp:", timestamp);
```## API Documentation
`decryptMessage(encryptedMessage: string, _config?: IExtendedConfig): Promise`
Decrypts an encrypted message using the smart contract.
**Parameters:**
- encryptedMessage: The encrypted message to decrypt.
- `_config` (optional): An object to override default configuration.**Returns:**
- A promise that resolves to the decrypted message as a string.
---
`isActive(encryptedMsg: string, _config?: IExtendedConfig): Promise`
Checks if a message is active in the smart contract.
**Parameters:**
- encryptedMsg: The encrypted message to check.
- `_config` (optional): An object to override default configuration.**Returns:**
- A promise that resolves to a boolean indicating if the message is active.
---
`whenActive(encryptedMsg: string, _config?: IExtendedConfig): Promise`
Gets the activation timestamp of an encrypted message.
**Parameters:**
- encryptedMsg: The encrypted message to check.
- `_config` (optional): An object to override default configuration.**Returns:**
- A promise that resolves to the activation timestamp as a number.
---
`getTimestamp(_config?: IExtendedConfig): Promise`
Retrieves the current timestamp from the smart contract.
**Parameters:**
- `_config` (optional): An object to override default configuration.
**Returns:**
- A promise that resolves to the current timestamp as a number.
## Types
```typescript
interface IExtendedConfig {
provider?: ethers.JsonRpcProvider;
contractAddress?: string;
rpcUrl?: string;
abi?: any;
}
```## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.