# memez\_config

<mark style="color:yellow;">set\_public\_key -</mark> allows the admin to set a public key address to verify signatures for protected pools. It is one per configuration.

```rust
public fun set_public_key<ConfigWitness>(
    self: &mut MemezConfig,
    _: &AdminWitness<MEMEZ>,
    public_key: vector<u8>,
    _ctx: &mut TxContext,
) 
```

**Arguments:**

* **`self: &mut MemezConfig`**\
  A mutable reference to the Memez global configuration object.\
  This is the config being updated with the new public key.
* **`_: &AdminWitness<MEMEZ>`**\
  An admin witness proving that the caller is authorized to update the Memez configuration.
* **`public_key: vector<u8>`**\
  The new public key (as raw bytes) to be set in the configuration.\
  It is used for verifying signatures in the Memez system.
* **`_ctx: &mut TxContext`**\
  A mutable reference to the transaction context provided by the Sui blockchain.<br>

<mark style="color:yellow;">set\_fees -</mark> allows the admin to set the fees for a configuration. This includes: creation, meme swap, quote swap, allocation and migration fee values.

```rust
public fun set_fees<ConfigWitness>(
    self: &mut MemezConfig,
    _: &AdminWitness<MEMEZ>,
    values: vector<vector<u64>>,
    recipients: vector<vector<address>>,
    _ctx: &mut TxContext,
)
```

**Arguments:**

* **`self: &mut MemezConfig`**\
  A mutable reference to the Memez global configuration object.\
  This is the config being updated with new fee settings.
* **`_: &AdminWitness<MEMEZ>`**\
  An admin witness proving that the caller is authorized to update the Memez configuration.
* `values: vector<vector<u64>>`\
  A nested vector of fee values, expressed in basis points or absolute units.\
  Defines the fee structure to apply across different pools or operations.
* **`recipients: vector<vector<address>>`**\
  A nested vector of recipient addresses corresponding to each fee value.\
  Specifies how fees are distributed among multiple beneficiaries (e.g., treasury, referrers, liquidity providers).
* **`_ctx: &mut TxContext`**\
  A mutable reference to the transaction context provided by the Sui blockchain.<br>

<mark style="color:yellow;">set\_meme\_referrer\_fee -</mark> allows the admin to set fee that will be shared with a referrer address during meme coin swaps. It is in basis points.

```rust
public fun set_meme_referrer_fee<ConfigWitness>(
    self: &mut MemezConfig,
    _: &AdminWitness<MEMEZ>,
    fee: u64,
    _ctx: &mut TxContext,
)
```

**Arguments:**

* **`self: &mut MemezConfig`**\
  A mutable reference to the Memez global configuration object.\
  This is the config being updated with a new meme referrer fee setting.
* **`_: &AdminWitness<MEMEZ>`**\
  An admin witness proving that the caller is authorized to update the Memez configuration.\
  Ensures only governance or privileged accounts can modify referrer fees.
* **`fee: u64`**\
  The new referrer fee value, expressed in basis points. Determines the portion of each meme trade allocated to the referrer.
* **`_ctx: &mut TxContext`**\
  A mutable reference to the transaction context provided by the Sui blockchain.<br>

<mark style="color:yellow;">set\_quote\_referrer\_fee -</mark> allows the admin to set fee that will be shared with a referrer address during quote coin swaps. It is in basis points.

```rust
public fun set_quote_referrer_fee<ConfigWitness>(
    self: &mut MemezConfig,
    _: &AdminWitness<MEMEZ>,
    fee: u64,
    _ctx: &mut TxContext,
)
```

**Arguments:**

* **`self: &mut MemezConfig`**\
  A mutable reference to the Memez global configuration object.\
  This is the config being updated with a new meme referrer fee setting.
* **`_: &AdminWitness<MEMEZ>`**\
  An admin witness proving that the caller is authorized to update the Memez configuration.\
  Ensures only governance or privileged accounts can modify referrer fees.
* **`fee: u64`**\
  The new referrer fee value, expressed in basis points. Determines the portion of each meme trade allocated to the referrer.
* **`_ctx: &mut TxContext`**\
  A mutable reference to the transaction context provided by the Sui blockchain.

<mark style="color:yellow;">remove -</mark> allows the admin to remove the values of a configuration.

```rust
public fun remove<ConfigWitness, Model: drop + store>(
    self: &mut MemezConfig,
    _: &AdminWitness<MEMEZ>,
    _ctx: &mut TxContext,
)
```

**Arguments:**

* **`self: &mut MemezConfig`**\
  A mutable reference to the Memez global configuration object.\
  This is the config instance being removed.
* **`_: &AdminWitness<MEMEZ>`**\
  An admin witness proving that the caller is authorized to remove a Memez configuration.\
  Ensures only governance or privileged accounts can perform this destructive action.
* **`_ctx: &mut TxContext`**\
  A mutable reference to the transaction context provided by the Sui blockchain.

<mark style="color:yellow;">add\_quote\_coin -</mark> whitelists a quote coin for a specific configuration.

```rust
public fun add_quote_coin<ConfigWitness, Quote>(
    self: &mut MemezConfig,
    _: &AdminWitness<MEMEZ>,
    _: &mut TxContext,
)
```

**Arguments:**

* **`self: &mut MemezConfig`**\
  A mutable reference to the Memez global configuration object.\
  This is the config instance being removed.
* **`_: &AdminWitness<MEMEZ>`**\
  An admin witness proving that the caller is an admin.
* **`_ctx: &mut TxContext`**\
  A mutable reference to the transaction context provided by the Sui blockchain.

<mark style="color:yellow;">remove\_quote\_coin -</mark> removes a quote coin from the whitelist of a specific configuration.

```rust
public fun remove_quote_coin<ConfigWitness, Quote>(
    self: &mut MemezConfig,
    _: &AdminWitness<MEMEZ>,
    _: &mut TxContext,
)
```

**Arguments:**

* **`self: &mut MemezConfig`**\
  A mutable reference to the Memez global configuration object.\
  This is the config instance being removed.
* **`_: &AdminWitness<MEMEZ>`**\
  An admin witness proving that the caller is an admin.
* **`_ctx: &mut TxContext`**\
  A mutable reference to the transaction context provided by the Sui blockchain.

<mark style="color:yellow;">add\_migrator\_witness -</mark> whitelists a migrator witness for a specific configuration.

```rust
public fun add_migrator_witness<ConfigWitness, MigratorWitness>(
    self: &mut MemezConfig,
    _: &AdminWitness<MEMEZ>,
    _: &mut TxContext,
)
```

**Arguments:**

* **`self: &mut MemezConfig`**\
  A mutable reference to the Memez global configuration object.\
  This is the config instance being removed.
* **`_: &AdminWitness<MEMEZ>`**\
  An admin witness proving that the caller is an admin.
* **`_ctx: &mut TxContext`**\
  A mutable reference to the transaction context provided by the Sui blockchain.

<mark style="color:yellow;">remove\_migrator\_witness -</mark> removes a migrator witness from the whitelist of a specific configuration.

```rust
public fun remove_migrator_witness<ConfigWitness, MigratorWitness>(
    self: &mut MemezConfig,
    _: &AdminWitness<MEMEZ>,
    _: &mut TxContext,
)
```

**Arguments:**

* **`self: &mut MemezConfig`**\
  A mutable reference to the Memez global configuration object.\
  This is the config instance being removed.
* **`_: &AdminWitness<MEMEZ>`**\
  An admin witness proving that the caller is an admin.
* **`_ctx: &mut TxContext`**\
  A mutable reference to the transaction context provided by the Sui blockchain.
