# swivel.abstracts.market\_place

### Classes

#### Class `MarketPlace` <a href="#id" id="id"></a>

> ```
> class MarketPlace
> ```

Helper class that provides a standard way to create an ABC using inheritance.

**Ancestors**

* [swivel.abstracts.deployed.Deployed](#id-13)

**Descendants**

* [swivel.contracts.market\_place.MarketPlace](#id-17)

**Methods**

**Method `admin`**

> ```
> def admin(
>     self,
>     opts=None
> )
> ```

The stored admin address for this contract

### Returns

web3 callable, opts

**Method `c_token_address`**

> ```
> def c_token_address(
>     self,
>     u,
>     m,
>     opts=None
> )
> ```

Gets the compound token address associated with a given market

### Parameters

u (string) Underlying token address

m (int) Maturity epoch

opts (dict) optional call opts

### Returns

web3 callable, opts

**Method `create_market`**

> ```
> def create_market(
>     self,
>     m,
>     c,
>     n,
>     s,
>     opts=None
> )
> ```

Creates a new market

### Description

New instances of both ZcToken and VaultTracker are deployed, their addresses then being associated with the newly created market.

Note that this method is only callable by the admin

### Parameters

m (int) Epoch in seconds, the maturity of the market

c (string) Address of the Compound token associated with the market

n (string) Name for the new ZcToken s (string) Name for the new ZcToken

opts (dict) Optional transaction options

### Returns

web3 transactable, opts

**Method `markets`**

> ```
> def markets(
>     self,
>     u,
>     m,
>     opts=None
> )
> ```

Gets the market associated with the given underlying and maturity arguments

### Description

The returned Market object is { cTokenAddr, ZcTokenAddr, vaultAddr }

### Parameters

u (string) Underlying token address&#x20;

m (int) Muturity epoch opts (dict) optional call opts

### Returns

web3 callable, opts

**Method `mature_market`**

> ```
> def mature_market(
>     self,
>     u,
>     m,
>     opts=None
> )
> ```

Called after maturity, allowing all of the zcTokens to earn floating interest on Compound until funds are released

### Parameters

u (string) Underlying token address

m (int) Maturity epoch opts (dict) optional call opts

### Returns

web3 transactable, opts

**Method `pause`**

> ```
> def pause(
>     self,
>     b,
>     opts=None
> )
> ```

Allows the admin to pause / unpause market transactions

### Parameters

b Boolean which acts as a toggle. True to pause, False to unpause

### Returns

web3 transactable, opts

**Method `paused`**

> ```
> def paused(
>     self,
>     opts=None
> )
> ```

A boolean which indicates a pause in all markets if truthy

### Returns

web3 callable, opts

**Method `set_swivel_address`**

> ```
> def set_swivel_address(
>     self,
>     a,
>     opts=None
> )
> ```

Sets the address of the Swivel smart contract this market place is associated with

### Description

Note that this method is only callable by the admin once

### Parameters

a (address) The address of a deployed Swivel smart contract

opts (dict) Optional transaction options

### Returns

web3 transactable, opts

**Method `swivel`**

> ```
> def swivel(
>     self,
>     opts=None
> )
> ```

The address of the associated Swivel contract deployment

### Returns

web3 callable, opts

**Method `transfer_admin`**

> ```
> def transfer_admin(
>     self,
>     a,
>     opts=None
> )
> ```

Allows the current admin to transfer the title to another party

### Description

Note that this method is only callable by the admin

### Parameters

a (address) Address of the new admin

### Returns

web3 transactable, opts

**Method `transfer_vault_notional`**

> ```
> def transfer_vault_notional(
>     self,
>     u,
>     m,
>     t,
>     a,
>     opts=None
> )
> ```

Transfer vault notional from sender to a given address

### Parameters

u (string) Underlying token address

m (int) Muturity epoch

t (string) Address of the amount owner

a (int) Amount to transfer

opts (dict) Optional transaction opts

### Returns

web3 transactable, opts
