# ERC1155

## Overview

This contract is an advanced ERC1155 implementation, featuring mint limits, whitelisting, scheduled drops, airdrop functionality, and social media integration. It's designed to offer flexible and controlled NFT minting and distribution.

## Methods

## <mark style="color:blue;">`setPresaleTime`</mark>

Sets the timestamp for starting pre-sales.

### Parameters

| Name          | Type    | Description                      |
| ------------- | ------- | -------------------------------- |
| \_preSaleTime | uint256 | Timestamp to start the pre-sale. |

## <mark style="color:blue;">`perWalletPreSaleMint`</mark>

Allows whitelisted addresses to mint a specified amount of tokens during the pre-sale, adhering to per-wallet limits.

### Parameters

| Name   | Type    | Description               |
| ------ | ------- | ------------------------- |
| amount | uint256 | Number of tokens to mint. |

## <mark style="color:blue;">`preSaleMint`</mark>

Allows whitelisted addresses to mint a specified amount of tokens during the pre-sale.

### Parameters

| Name   | Type    | Description               |
| ------ | ------- | ------------------------- |
| amount | uint256 | Number of tokens to mint. |

## <mark style="color:blue;">`setScheduleDropMintTime`</mark>

Sets the start and end times for scheduled drop mints.

### Parameters

| Name            | Type    | Description                   |
| --------------- | ------- | ----------------------------- |
| \_startDropTime | uint256 | Start time for the drop mint. |
| \_endDropTime   | uint256 | End time for the drop mint.   |

## <mark style="color:blue;">`scheduledDropMint`</mark>

Enables minting during a scheduled drop for whitelisted addresses.

### Parameters

| Name   | Type    | Description               |
| ------ | ------- | ------------------------- |
| amount | uint256 | Number of tokens to mint. |

## <mark style="color:blue;">`setURI`</mark>

Updates the base URI for the token metadata.

### Parameters

| Name   | Type   | Description       |
| ------ | ------ | ----------------- |
| newuri | string | The new base URI. |

## <mark style="color:blue;">`addToWhitelist`</mark>

Adds addresses to the whitelist for pre-sale and scheduled drops.

### Parameters

| Name     | Type       | Description                             |
| -------- | ---------- | --------------------------------------- |
| accounts | address\[] | Addresses to be added to the whitelist. |

## <mark style="color:blue;">`removeFromWhitelist`</mark>

Removes addresses from the whitelist.

### Parameters

| Name     | Type       | Description                                 |
| -------- | ---------- | ------------------------------------------- |
| accounts | address\[] | Addresses to be removed from the whitelist. |

## <mark style="color:blue;">`isWhitelisted`</mark>

Checks if an address is whitelisted.

### Parameters

| Name    | Type    | Description                            |
| ------- | ------- | -------------------------------------- |
| account | address | Address to check for whitelist status. |

### Returns

| Name        | Type | Description                                          |
| ----------- | ---- | ---------------------------------------------------- |
| whitelisted | bool | True if the address is whitelisted, false otherwise. |

## <mark style="color:blue;">`mint`</mark>

Mint tokens and are only accessible by the owner.

## <mark style="color:blue;">`mintBatch`</mark>

Mint batches of tokens. Only accessible by the owner.

## <mark style="color:blue;">`airdrop`</mark>

Distributes tokens to multiple addresses.

### Parameters

| Name       | Type       | Description                                |
| ---------- | ---------- | ------------------------------------------ |
| recipients | address\[] | Array of recipient addresses.              |
| amounts    | uint256\[] | Array of token amounts for each recipient. |

## <mark style="color:blue;">`burn`</mark>

Burns a specified amount of tokens from a given account.

### Parameters

| Name    | Type    | Description                  |
| ------- | ------- | ---------------------------- |
| account | address | Address of the token holder. |
| id      | uint256 | Token ID to burn.            |
| amount  | uint256 | Amount of tokens to burn.    |

## <mark style="color:blue;">`setTwitterProfile`</mark>

Sets the respective social media or website URL for the contract.

### Parameters

| Name  | Type   | Description        |
| ----- | ------ | ------------------ |
| \_url | string | The URL to be set. |

## <mark style="color:blue;">`transferFromWhitelisted`</mark>

Allows whitelisted addresses to transfer a specified amount of tokens to any address.

### Parameters

| Name   | Type    | Description                      |
| ------ | ------- | -------------------------------- |
| to     | address | Recipient address.               |
| id     | uint256 | ID of the token.                 |
| amount | uint256 | Amount of the token to transfer. |

## <mark style="color:blue;">`mintByWhitelisted`</mark>

Allows a whitelisted address to mint a specified amount of tokens.

### Parameters

| Name   | Type    | Description               |
| ------ | ------- | ------------------------- |
| amount | uint256 | Number of tokens to mint. |

## <mark style="color:blue;">`setWebsiteURL`</mark>

Sets the website URL for the contract.

### Parameters

| Name         | Type   | Description         |
| ------------ | ------ | ------------------- |
| \_websiteURL | string | URL of the website. |

## <mark style="color:blue;">`setTelegramChannel`</mark>

Sets the Telegram channel link for the contract.

### Parameters

| Name              | Type   | Description                  |
| ----------------- | ------ | ---------------------------- |
| \_telegramChannel | string | URL of the Telegram channel. |

## <mark style="color:blue;">`preSaleMintBatch`</mark>

Allows whitelisted addresses to mint batches of tokens during the pre-sale.

### Parameters

| Name    | Type       | Description             |
| ------- | ---------- | ----------------------- |
| to      | address    | Recipient address.      |
| ids     | uint256\[] | Array of token IDs.     |
| amounts | uint256\[] | Array of token amounts. |

## <mark style="color:blue;">`perWalletPreSaleMintBatch`</mark>

Allows whitelisted addresses to mint batches of tokens during the pre-sale, adhering to per-wallet limits.

### Parameters

| Name      | Type        | Description             |
| --------- | ----------- | ----------------------- |
| `to`      | `address`   | Recipient address.      |
| `ids`     | `uint256[]` | Array of token IDs.     |
| `amounts` | `uint256[]` | Array of token amounts. |

## <mark style="color:blue;">`pause`</mark>

Pauses all contract activities, preventing transfers and other state-changing operations.

## <mark style="color:blue;">`unpause`</mark>

Resumes all contract activities, allowing transfers and other state-changing operations to occur again.
