# 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 %}
