# LumiWave.move

#### init (private func)

{% hint style="info" %}
Executed only once upon contract deployment: Issues 77,007,546 LWA tokens Creates voting dashboard shared object information Creates the denyCapobject
{% endhint %}

#### make\_voteboard (private func)

```
// func parameter
ctx [TxContext]: transaction information (auto-filled)
```

{% hint style="info" %}
Creates the voting dashboard object.
{% endhint %}

#### add\_deny (public entry func)

```
// func parameter
denylist [DenyList]: deny list (fixed at 0x403)
deny_cap[DenyCap<LWA>]: information for the deny (block)
objectrecipient[address]: wallet address information for adding to the deny
listctx[TxContext]: transaction information (auto-filled)
```

{% hint style="info" %}
Adds a specific wallet to the LWA deny list.
{% endhint %}

#### remove\_deny (public entry func)

```
// func parameter
denylist [DenyList]: deny list (fixed at 0x403)
deny_cap[DenyCap<LWA>]: information for the deny (block) object
recipient [address]: wallet address information for removing from the deny list
ctx[TxContext]: transaction information (auto-filled)
```

{% hint style="info" %}
Removes a specific wallet from the LWA deny list.
{% endhint %}

#### mint (public func)

```
// func parameter
treasury_cap[TreasuryCap<LWA>]: object created during `init`
amount [u64]: quantity to be minted
recipient [address]: wallet address to receive the minted amount
ctx[TxContext]: transaction information (auto-filled)
```

{% hint style="info" %}
Function for additional LWA minting, ensuring that the total supply does not exceed the maximum limit.
{% endhint %}

#### lock\_coin\_transfer (public entry func)

```
// func parameter
treasury_cap[TreasuryCap<LWA>]: object created during init
my_coin[Coin<LWA>]: the LWA object currently held
recipient [address]: wallet address to receive the transfer
amount [u64]: amount to be extracted and transferred from my_coinbalance
unlock_ts[u64]: lock release timestamp (UTC / ms)
ctx[TxContext]: transaction information (auto-filled)
```

{% hint style="info" %}
Transfers LWA to a specific wallet by applying a lock through a wrapper.
{% endhint %}

#### unlock\_coin (public entry func)

```
// func parameter
locked_coin[LockedCoin<LWA>]: wrapped object with a lock applied
clock[Clock]: current time information (fixed at 0x6)
```

{% hint style="info" %}
Unwraps the locked object, allowing it to be used as LWA.
{% endhint %}

#### burn (public entry func)

```
// func parameter
treasury_cap[TreasuryCap<LWA>]: object created during init
coin [Coin<LWA>]: coin object to be burned
```

{% hint style="info" %}
Burns the coin held by the creator.
{% endhint %}

#### enable\_vote (public entry func)

```
// func parameter
treasury_cap[TreasuryCap<LWA>]: object created during init
vote_board[VoteBoard]: voting dashboard shared object
is_enable[bool]: indicates whether voting is enabled
vote_start_ts[u64]: voting start time (UTC / ms)
vote_end_ts[u64]: voting end time (UTC / ms)
ctx[TxContext]: transaction information (auto-filled)
```

{% hint style="info" %}
Enables or disables the voting functionality.
{% endhint %}

#### vote (public entry func)

```
// func parameter
vote_board[VoteBoard]: voting dashboard shared object
coin [Coin<LWA>]: coin object held by the voter
clock_vote[Clock]: current time information (fixed at 0x6)
is_agree[bool]: vote in favor (true) or against (false)
ctx[TxContext]: transaction information (auto-filled)
```

{% hint style="info" %}
Casts a vote.
{% endhint %}

#### vote\_counting (public entry func)

```
// func parameter
recipient [address]: recipient wallet address
lock_ts[u64]: coin lock timestamp (UTC / ms)
unlock_ts[u64]: coin unlock timestamp (UTC / ms)
balance [Balance<T>]: information of the coins to be locked
ctx[TxContext]: transaction information (auto-filled)
```

{% hint style="info" %}
Tallies the completed vote, and if the result is in favor, proceeds with additional coin minting.
{% endhint %}

#### vote\_reset (public entry func)

```
// func parameter
treasury_cap[TreasuryCap<LWA>]: object created during init
vote_board[VoteBoard]: voting dashboard shared object
ctx[TxContext]: transaction information (auto-filled)
```

{% hint style="info" %}
Resets the completed tally to prepare for the next vote.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://lumiwave-inno.gitbook.io/lumiwave-whitepaper/tokenomics/lumiwave-lwa-token/contract-spec/lumiwave.move.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
