> For the complete documentation index, see [llms.txt](https://docs.interestprotocol.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.interestprotocol.com/overview/sui/memez.gg/memez.fun/contract/memez_fun.md).

# memez\_fun

<mark style="color:yellow;">destroy -</mark> destroys the Migrator hot potato to get the inner balances.

```rust
public fun destroy<Meme, Quote, Witness: drop>(
    migrator: MemezMigrator<Meme, Quote>,
    _: Witness,
): (address, Balance<Meme>, Balance<Quote>)
```

**Arguments:**

* **`migrator: MemezMigrator<Meme, Quote>`**\
  The migration hot potato representing a Memez pool in its migratable state.\
  Consuming this object finalizes the migration process and allows recovery of the underlying assets.
* **`_: Witness`**\
  A witness type ensuring only the authorized package can invoke `destroy` function.\
  Serves as a compile-time capability check (must have the `drop` ability).

<mark style="color:yellow;">update\_metadata -</mark> replaces the pool metadata.

```rust
public fun update_metadata<Curve, Meme, Quote>(
    self: &mut MemezFun<Curve, Meme, Quote>,
    metadata_cap: &MetadataCap,
    mut metadata: VecMap<String, String>,
)
```

**Arguments:**

* **`self: &mut MemezFun<Curve, Meme, Quote>`**\
  A mutable reference to the Memez pool instance (for any curve type).\
  This is the pool whose metadata will be updated.
* **`metadata_cap: &MetadataCap`**\
  A capability object that authorizes metadata updates.\
  Ensures only accounts with the correct permission can modify the pool’s metadata.
* **`metadata: VecMap<String, String>`**\
  A key–value map of metadata fields (as strings) to attach or update on the pool.\
  Typical entries may include name, symbol, description, or custom fields relevant to frontends or indexers.

<mark style="color:yellow;">metadata -</mark> returns the current pool metadata

```rust
public fun metadata<Curve, Meme, Quote>(
    self: &MemezFun<Curve, Meme, Quote>,
): VecMap<String, String>
```

**Arguments:**

* **`self: &MemezFun<Curve, Meme, Quote>`**\
  An immutable reference to the Memez pool instance (for any curve type).\
  The pool whose metadata will be read.

<mark style="color:yellow;">next\_nonce -</mark> returns the next nonce for the server to create a signature valid for the `user`.

```rust
public fun next_nonce<Curve, Meme, Quote>(self: &MemezFun<Curve, Meme, Quote>, user: address): u64
```

**Arguments:**

* **`self: &MemezFun<Curve, Meme, Quote>`**\
  An immutable reference to the Memez pool instance (for any curve type).\
  The pool from which the nonce will be queried.
* **`user: address`**\
  The address of the user whose next nonce is being requested.\
  It is used to prevent replay attacks and ensure transaction uniqueness for that user in the pool.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.interestprotocol.com/overview/sui/memez.gg/memez.fun/contract/memez_fun.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
