crates/sui-framework/docs/deepbook/custodian.md
AccountAccountCapCustodianmint_account_capaccount_balancenewwithdraw_assetincrease_user_available_balancedecrease_user_available_balanceincrease_user_locked_balancedecrease_user_locked_balancelock_balanceunlock_balanceaccount_available_balanceaccount_locked_balanceborrow_mut_account_balance<a name="deepbook_custodian_Account"></a>
Account<a name="deepbook_custodian_AccountCap"></a>
AccountCap<a name="deepbook_custodian_Custodian"></a>
Custodian<a name="deepbook_custodian_mint_account_cap"></a>
mint_account_capCreate an <code><a href="../deepbook/custodian.md#deepbook_custodian_AccountCap">AccountCap</a></code> that can be used across all DeepBook pool
<pre><code><b>public</b> <b>fun</b> <a href="../deepbook/custodian.md#deepbook_custodian_mint_account_cap">mint_account_cap</a>(_ctx: &<b>mut</b> <a href="../sui/tx_context.md#sui_tx_context_TxContext">sui::tx_context::TxContext</a>): <a href="../deepbook/custodian.md#deepbook_custodian_AccountCap">deepbook::custodian::AccountCap</a> </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../deepbook/custodian.md#deepbook_custodian_mint_account_cap">mint_account_cap</a>(_ctx: &<b>mut</b> TxContext): <a href="../deepbook/custodian.md#deepbook_custodian_AccountCap">AccountCap</a> { <b>abort</b> 1337 } </code></pre> </details><a name="deepbook_custodian_account_balance"></a>
account_balance<a name="deepbook_custodian_new"></a>
new<a name="deepbook_custodian_withdraw_asset"></a>
withdraw_asset<a name="deepbook_custodian_increase_user_available_balance"></a>
increase_user_available_balance<a name="deepbook_custodian_decrease_user_available_balance"></a>
decrease_user_available_balance<a name="deepbook_custodian_increase_user_locked_balance"></a>
increase_user_locked_balance<a name="deepbook_custodian_decrease_user_locked_balance"></a>
decrease_user_locked_balance<a name="deepbook_custodian_lock_balance"></a>
lock_balanceMove <code>quantity</code> from the unlocked balance of <code>user</code> to the locked balance of <code>user</code>
<pre><code><b>public</b>(package) <b>fun</b> <a href="../deepbook/custodian.md#deepbook_custodian_lock_balance">lock_balance</a><T>(<a href="../deepbook/custodian.md#deepbook_custodian">custodian</a>: &<b>mut</b> <a href="../deepbook/custodian.md#deepbook_custodian_Custodian">deepbook::custodian::Custodian</a><T>, account_cap: &<a href="../deepbook/custodian.md#deepbook_custodian_AccountCap">deepbook::custodian::AccountCap</a>, quantity: u64) </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b>(package) <b>fun</b> <a href="../deepbook/custodian.md#deepbook_custodian_lock_balance">lock_balance</a><T>( <a href="../deepbook/custodian.md#deepbook_custodian">custodian</a>: &<b>mut</b> <a href="../deepbook/custodian.md#deepbook_custodian_Custodian">Custodian</a><T>, account_cap: &<a href="../deepbook/custodian.md#deepbook_custodian_AccountCap">AccountCap</a>, quantity: u64, ) { <b>let</b> to_lock = <a href="../deepbook/custodian.md#deepbook_custodian_decrease_user_available_balance">decrease_user_available_balance</a>(<a href="../deepbook/custodian.md#deepbook_custodian">custodian</a>, account_cap, quantity); <a href="../deepbook/custodian.md#deepbook_custodian_increase_user_locked_balance">increase_user_locked_balance</a>(<a href="../deepbook/custodian.md#deepbook_custodian">custodian</a>, account_cap, to_lock); } </code></pre> </details><a name="deepbook_custodian_unlock_balance"></a>
unlock_balanceMove <code>quantity</code> from the locked balance of <code>user</code> to the unlocked balance of <code>user</code>
<pre><code><b>public</b>(package) <b>fun</b> <a href="../deepbook/custodian.md#deepbook_custodian_unlock_balance">unlock_balance</a><T>(<a href="../deepbook/custodian.md#deepbook_custodian">custodian</a>: &<b>mut</b> <a href="../deepbook/custodian.md#deepbook_custodian_Custodian">deepbook::custodian::Custodian</a><T>, user: <a href="../sui/object.md#sui_object_ID">sui::object::ID</a>, quantity: u64) </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b>(package) <b>fun</b> <a href="../deepbook/custodian.md#deepbook_custodian_unlock_balance">unlock_balance</a><T>( <a href="../deepbook/custodian.md#deepbook_custodian">custodian</a>: &<b>mut</b> <a href="../deepbook/custodian.md#deepbook_custodian_Custodian">Custodian</a><T>, user: ID, quantity: u64, ) { <b>let</b> locked_balance = <a href="../deepbook/custodian.md#deepbook_custodian_decrease_user_locked_balance">decrease_user_locked_balance</a><T>(<a href="../deepbook/custodian.md#deepbook_custodian">custodian</a>, user, quantity); <a href="../deepbook/custodian.md#deepbook_custodian_increase_user_available_balance">increase_user_available_balance</a><T>(<a href="../deepbook/custodian.md#deepbook_custodian">custodian</a>, user, locked_balance) } </code></pre> </details><a name="deepbook_custodian_account_available_balance"></a>
account_available_balance<a name="deepbook_custodian_account_locked_balance"></a>
account_locked_balance<a name="deepbook_custodian_borrow_mut_account_balance"></a>
borrow_mut_account_balance