This commit is contained in:
ckamm 2023-04-13 07:11:48 +00:00
parent 1730dbc106
commit f8ad2f9f2f
51 changed files with 130 additions and 194 deletions

View File

@ -1 +1 @@
{"rustc_fingerprint":14222168446744610989,"outputs":{"15729799797837862367":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu\noff\npacked\nunpacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\nunix\n","stderr":""},"4614504638168534921":{"success":true,"status":"","code":0,"stdout":"rustc 1.68.2 (9eb3afe9e 2023-03-27)\nbinary: rustc\ncommit-hash: 9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0\ncommit-date: 2023-03-27\nhost: x86_64-unknown-linux-gnu\nrelease: 1.68.2\nLLVM version: 15.0.6\n","stderr":""}},"successes":{}}
{"rustc_fingerprint":17293980124813996245,"outputs":{"15729799797837862367":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu\noff\npacked\nunpacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\nunix\n","stderr":""},"4614504638168534921":{"success":true,"status":"","code":0,"stdout":"rustc 1.68.2 (9eb3afe9e 2023-03-27)\nbinary: rustc\ncommit-hash: 9eb3afe9ebe9c7d2b84b71002d44f4a0edac95e0\ncommit-date: 2023-03-27\nhost: x86_64-unknown-linux-gnu\nrelease: 1.68.2\nLLVM version: 15.0.6\n","stderr":""}},"successes":{}}

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `bank_seeds` macro in crate `mango_v4`."><meta name="keywords" content="rust, rustlang, rust-lang, bank_seeds"><title>bank_seeds in mango_v4 - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc macro"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="logo-container" href="../mango_v4/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../mango_v4/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In mango_v4</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Macro <a href="index.html">mango_v4</a>::<wbr><a class="macro" href="#">bank_seeds</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/mango_v4/state/bank.rs.html#858-868">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><div class="item-decl"><div class="example-wrap"><pre class="rust macro"><code><span class="macro">macro_rules! </span>bank_seeds {
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `bank_seeds` macro in crate `mango_v4`."><meta name="keywords" content="rust, rustlang, rust-lang, bank_seeds"><title>bank_seeds in mango_v4 - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc macro"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="logo-container" href="../mango_v4/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../mango_v4/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In mango_v4</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Macro <a href="index.html">mango_v4</a>::<wbr><a class="macro" href="#">bank_seeds</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/mango_v4/state/bank.rs.html#831-841">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><div class="item-decl"><div class="example-wrap"><pre class="rust macro"><code><span class="macro">macro_rules! </span>bank_seeds {
( <span class="macro-nonterminal">$bank</span>:expr ) =&gt; { ... };
}</code></pre></div>
</div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="mango_v4" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.2 (9eb3afe9e 2023-03-27)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>

View File

@ -1,4 +1,4 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `bank_seeds` macro in crate `mango_v4`."><meta name="keywords" content="rust, rustlang, rust-lang, bank_seeds"><title>bank_seeds in mango_v4::state - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc macro"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="logo-container" href="../../mango_v4/index.html"><img class="rust-logo" src="../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../../mango_v4/index.html"><img class="rust-logo" src="../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In mango_v4::state</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Macro <a href="../index.html">mango_v4</a>::<wbr><a href="index.html">state</a>::<wbr><a class="macro" href="#">bank_seeds</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/mango_v4/state/bank.rs.html#858-868">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><div class="item-decl"><div class="example-wrap"><pre class="rust macro"><code><span class="macro">macro_rules! </span>bank_seeds {
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `bank_seeds` macro in crate `mango_v4`."><meta name="keywords" content="rust, rustlang, rust-lang, bank_seeds"><title>bank_seeds in mango_v4::state - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-93196c7a1c3542a8.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-4743e13df3dfe8c4.css"><link rel="stylesheet" disabled href="../../static.files/dark-0e1b889528bd466b.css"><link rel="stylesheet" disabled href="../../static.files/ayu-65289d5d067c7c66.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-3367e395607fafc1.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc macro"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="logo-container" href="../../mango_v4/index.html"><img class="rust-logo" src="../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../../mango_v4/index.html"><img class="rust-logo" src="../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In mango_v4::state</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Macro <a href="../index.html">mango_v4</a>::<wbr><a href="index.html">state</a>::<wbr><a class="macro" href="#">bank_seeds</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/mango_v4/state/bank.rs.html#831-841">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><div class="item-decl"><div class="example-wrap"><pre class="rust macro"><code><span class="macro">macro_rules! </span>bank_seeds {
( <span class="macro-nonterminal">$bank</span>:expr ) =&gt; { ... };
}</code></pre></div>
</div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="mango_v4" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.2 (9eb3afe9e 2023-03-27)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>

View File

@ -65,7 +65,7 @@ Set to f64::MAX to disable.</p>
down to keep the total collateral value constant.
Set to f64::MAX to disable.</p>
<p>See scaled_init_asset_weight().</p>
</div><span id="structfield.reduce_only" class="structfield small-section-header"><a href="#structfield.reduce_only" class="anchor field">§</a><code>reduce_only: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u8.html">u8</a></code></span><span id="structfield.reserved" class="structfield small-section-header"><a href="#structfield.reserved" class="anchor field">§</a><code>reserved: [<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u8.html">u8</a>; <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.array.html">2119</a>]</code></span><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Bank" class="impl has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#166-855">source</a><a href="#impl-Bank" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Bank.html" title="struct mango_v4::state::Bank">Bank</a></h3></section></summary><div class="impl-items"><section id="method.from_existing_bank" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#167-224">source</a><h4 class="code-header">pub fn <a href="#method.from_existing_bank" class="fn">from_existing_bank</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;existing_bank: &amp;<a class="struct" href="struct.Bank.html" title="struct mango_v4::state::Bank">Bank</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;vault: Pubkey,<br>&nbsp;&nbsp;&nbsp;&nbsp;bank_num: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u32.html">u32</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;bump: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u8.html">u8</a><br>) -&gt; Self</h4></section><section id="method.name" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#226-230">source</a><h4 class="code-header">pub fn <a href="#method.name" class="fn">name</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html">str</a></h4></section><section id="method.is_reduce_only" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#232-234">source</a><h4 class="code-header">pub fn <a href="#method.is_reduce_only" class="fn">is_reduce_only</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.bool.html">bool</a></h4></section><section id="method.native_borrows" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#237-239">source</a><h4 class="code-header">pub fn <a href="#method.native_borrows" class="fn">native_borrows</a>(&amp;self) -&gt; <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></h4></section><section id="method.native_deposits" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#242-244">source</a><h4 class="code-header">pub fn <a href="#method.native_deposits" class="fn">native_deposits</a>(&amp;self) -&gt; <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></h4></section><details class="toggle method-toggle" open><summary><section id="method.enforce_min_vault_to_deposits_ratio" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#248-267">source</a><h4 class="code-header">pub fn <a href="#method.enforce_min_vault_to_deposits_ratio" class="fn">enforce_min_vault_to_deposits_ratio</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;vault_ai: &amp;AccountInfo&lt;'_&gt;<br>) -&gt; Result&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.unit.html">()</a>&gt;</h4></section></summary><div class="docblock"><p>Prevent borrowing away the full bank vault.
</div><span id="structfield.reduce_only" class="structfield small-section-header"><a href="#structfield.reduce_only" class="anchor field">§</a><code>reduce_only: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u8.html">u8</a></code></span><span id="structfield.reserved" class="structfield small-section-header"><a href="#structfield.reserved" class="anchor field">§</a><code>reserved: [<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u8.html">u8</a>; <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.array.html">2119</a>]</code></span><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Bank" class="impl has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#166-828">source</a><a href="#impl-Bank" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Bank.html" title="struct mango_v4::state::Bank">Bank</a></h3></section></summary><div class="impl-items"><section id="method.from_existing_bank" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#167-224">source</a><h4 class="code-header">pub fn <a href="#method.from_existing_bank" class="fn">from_existing_bank</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;existing_bank: &amp;<a class="struct" href="struct.Bank.html" title="struct mango_v4::state::Bank">Bank</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;vault: Pubkey,<br>&nbsp;&nbsp;&nbsp;&nbsp;bank_num: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u32.html">u32</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;bump: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u8.html">u8</a><br>) -&gt; Self</h4></section><section id="method.name" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#226-230">source</a><h4 class="code-header">pub fn <a href="#method.name" class="fn">name</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html">str</a></h4></section><section id="method.is_reduce_only" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#232-234">source</a><h4 class="code-header">pub fn <a href="#method.is_reduce_only" class="fn">is_reduce_only</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.bool.html">bool</a></h4></section><section id="method.native_borrows" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#237-239">source</a><h4 class="code-header">pub fn <a href="#method.native_borrows" class="fn">native_borrows</a>(&amp;self) -&gt; <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></h4></section><section id="method.native_deposits" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#242-244">source</a><h4 class="code-header">pub fn <a href="#method.native_deposits" class="fn">native_deposits</a>(&amp;self) -&gt; <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></h4></section><details class="toggle method-toggle" open><summary><section id="method.enforce_min_vault_to_deposits_ratio" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#248-267">source</a><h4 class="code-header">pub fn <a href="#method.enforce_min_vault_to_deposits_ratio" class="fn">enforce_min_vault_to_deposits_ratio</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;vault_ai: &amp;AccountInfo&lt;'_&gt;<br>) -&gt; Result&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.unit.html">()</a>&gt;</h4></section></summary><div class="docblock"><p>Prevent borrowing away the full bank vault.
Keep some in reserve to satisfy non-borrow withdraws.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.deposit" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#277-284">source</a><h4 class="code-header">pub fn <a href="#method.deposit" class="fn">deposit</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;position: &amp;mut <a class="struct" href="struct.TokenPosition.html" title="struct mango_v4::state::TokenPosition">TokenPosition</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;native_amount: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;now_ts: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u64.html">u64</a><br>) -&gt; Result&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.bool.html">bool</a>&gt;</h4></section></summary><div class="docblock"><p>Deposits <code>native_amount</code>.</p>
<p>If the token position ends up positive but below one native token and this token
@ -76,32 +76,32 @@ fractional deposits can be relevant during liquidation, for example</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.deposit_with_dusting" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#289-297">source</a><h4 class="code-header">pub fn <a href="#method.deposit_with_dusting" class="fn">deposit_with_dusting</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;position: &amp;mut <a class="struct" href="struct.TokenPosition.html" title="struct mango_v4::state::TokenPosition">TokenPosition</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;native_amount: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;now_ts: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u64.html">u64</a><br>) -&gt; Result&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.bool.html">bool</a>&gt;</h4></section></summary><div class="docblock"><p>Like <code>deposit()</code>, but allows dusting of in-use accounts.</p>
<p>Returns Ok(false) if the position was dusted and was not in-use.</p>
</div></details><section id="method.deposit_internal_wrapper" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#299-310">source</a><h4 class="code-header">pub fn <a href="#method.deposit_internal_wrapper" class="fn">deposit_internal_wrapper</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;position: &amp;mut <a class="struct" href="struct.TokenPosition.html" title="struct mango_v4::state::TokenPosition">TokenPosition</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;native_amount: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;allow_dusting: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.bool.html">bool</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;now_ts: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u64.html">u64</a><br>) -&gt; Result&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.bool.html">bool</a>&gt;</h4></section><details class="toggle method-toggle" open><summary><section id="method.deposit_internal" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#313-374">source</a><h4 class="code-header">pub fn <a href="#method.deposit_internal" class="fn">deposit_internal</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;position: &amp;mut <a class="struct" href="struct.TokenPosition.html" title="struct mango_v4::state::TokenPosition">TokenPosition</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;native_amount: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;allow_dusting: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.bool.html">bool</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;now_ts: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u64.html">u64</a><br>) -&gt; Result&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.bool.html">bool</a>&gt;</h4></section></summary><div class="docblock"><p>Internal function to deposit funds</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.withdraw_without_fee" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#384-401">source</a><h4 class="code-header">pub fn <a href="#method.withdraw_without_fee" class="fn">withdraw_without_fee</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;position: &amp;mut <a class="struct" href="struct.TokenPosition.html" title="struct mango_v4::state::TokenPosition">TokenPosition</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;native_amount: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;now_ts: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u64.html">u64</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;oracle_price: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a><br>) -&gt; Result&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.bool.html">bool</a>&gt;</h4></section></summary><div class="docblock"><p>Withdraws <code>native_amount</code> without applying the loan origination fee.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.withdraw_without_fee" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#384-399">source</a><h4 class="code-header">pub fn <a href="#method.withdraw_without_fee" class="fn">withdraw_without_fee</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;position: &amp;mut <a class="struct" href="struct.TokenPosition.html" title="struct mango_v4::state::TokenPosition">TokenPosition</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;native_amount: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;now_ts: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u64.html">u64</a><br>) -&gt; Result&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.bool.html">bool</a>&gt;</h4></section></summary><div class="docblock"><p>Withdraws <code>native_amount</code> without applying the loan origination fee.</p>
<p>If the token position ends up positive but below one native token and this token
position isnt marked as in-use, the token balance will be dusted, the position
will be set to zero and this function returns Ok(false).</p>
<p>native_amount must be &gt;= 0
fractional withdraws can be relevant during liquidation, for example</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.withdraw_without_fee_with_dusting" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#406-422">source</a><h4 class="code-header">pub fn <a href="#method.withdraw_without_fee_with_dusting" class="fn">withdraw_without_fee_with_dusting</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;position: &amp;mut <a class="struct" href="struct.TokenPosition.html" title="struct mango_v4::state::TokenPosition">TokenPosition</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;native_amount: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;now_ts: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u64.html">u64</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;oracle_price: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a><br>) -&gt; Result&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.bool.html">bool</a>&gt;</h4></section></summary><div class="docblock"><p>Like <code>withdraw_without_fee()</code> but allows dusting of in-use token accounts.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.withdraw_without_fee_with_dusting" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#404-412">source</a><h4 class="code-header">pub fn <a href="#method.withdraw_without_fee_with_dusting" class="fn">withdraw_without_fee_with_dusting</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;position: &amp;mut <a class="struct" href="struct.TokenPosition.html" title="struct mango_v4::state::TokenPosition">TokenPosition</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;native_amount: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;now_ts: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u64.html">u64</a><br>) -&gt; Result&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.bool.html">bool</a>&gt;</h4></section></summary><div class="docblock"><p>Like <code>withdraw_without_fee()</code> but allows dusting of in-use token accounts.</p>
<p>Returns Ok(false) on dusted positions that werent in-use.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.withdraw_with_fee" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#432-447">source</a><h4 class="code-header">pub fn <a href="#method.withdraw_with_fee" class="fn">withdraw_with_fee</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;position: &amp;mut <a class="struct" href="struct.TokenPosition.html" title="struct mango_v4::state::TokenPosition">TokenPosition</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;native_amount: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;now_ts: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u64.html">u64</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;oracle_price: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a><br>) -&gt; Result&lt;(<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.bool.html">bool</a>, <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>)&gt;</h4></section></summary><div class="docblock"><p>Withdraws <code>native_amount</code> while applying the loan origination fee if a borrow is created.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.withdraw_with_fee" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#422-429">source</a><h4 class="code-header">pub fn <a href="#method.withdraw_with_fee" class="fn">withdraw_with_fee</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;position: &amp;mut <a class="struct" href="struct.TokenPosition.html" title="struct mango_v4::state::TokenPosition">TokenPosition</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;native_amount: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;now_ts: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u64.html">u64</a><br>) -&gt; Result&lt;(<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.bool.html">bool</a>, <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>)&gt;</h4></section></summary><div class="docblock"><p>Withdraws <code>native_amount</code> while applying the loan origination fee if a borrow is created.</p>
<p>If the token position ends up positive but below one native token and this token
position isnt marked as in-use, the token balance will be dusted, the position
will be set to zero and this function returns Ok(false).</p>
<p>native_amount must be &gt;= 0
fractional withdraws can be relevant during liquidation, for example</p>
</div></details><section id="method.withdraw_loan_origination_fee" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#534-553">source</a><h4 class="code-header">pub fn <a href="#method.withdraw_loan_origination_fee" class="fn">withdraw_loan_origination_fee</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;position: &amp;mut <a class="struct" href="struct.TokenPosition.html" title="struct mango_v4::state::TokenPosition">TokenPosition</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;already_borrowed_native_amount: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;now_ts: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u64.html">u64</a><br>) -&gt; Result&lt;(<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.bool.html">bool</a>, <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>)&gt;</h4></section><details class="toggle method-toggle" open><summary><section id="method.change_without_fee" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#556-568">source</a><h4 class="code-header">pub fn <a href="#method.change_without_fee" class="fn">change_without_fee</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;position: &amp;mut <a class="struct" href="struct.TokenPosition.html" title="struct mango_v4::state::TokenPosition">TokenPosition</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;native_amount: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;now_ts: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u64.html">u64</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;oracle_price: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a><br>) -&gt; Result&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.bool.html">bool</a>&gt;</h4></section></summary><div class="docblock"><p>Change a position without applying the loan origination fee</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.change_with_fee" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#571-583">source</a><h4 class="code-header">pub fn <a href="#method.change_with_fee" class="fn">change_with_fee</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;position: &amp;mut <a class="struct" href="struct.TokenPosition.html" title="struct mango_v4::state::TokenPosition">TokenPosition</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;native_amount: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;now_ts: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u64.html">u64</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;oracle_price: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a><br>) -&gt; Result&lt;(<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.bool.html">bool</a>, <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>)&gt;</h4></section></summary><div class="docblock"><p>Change a position, while taking the loan origination fee into account</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.update_net_borrows" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#588-602">source</a><h4 class="code-header">pub fn <a href="#method.update_net_borrows" class="fn">update_net_borrows</a>(&amp;mut self, native_amount: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>, now_ts: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u64.html">u64</a>)</h4></section></summary><div class="docblock"><p>Update the banks net_borrows fields.</p>
</div></details><section id="method.withdraw_loan_origination_fee" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#510-528">source</a><h4 class="code-header">pub fn <a href="#method.withdraw_loan_origination_fee" class="fn">withdraw_loan_origination_fee</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;position: &amp;mut <a class="struct" href="struct.TokenPosition.html" title="struct mango_v4::state::TokenPosition">TokenPosition</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;already_borrowed_native_amount: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;now_ts: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u64.html">u64</a><br>) -&gt; Result&lt;(<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.bool.html">bool</a>, <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>)&gt;</h4></section><details class="toggle method-toggle" open><summary><section id="method.change_without_fee" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#531-542">source</a><h4 class="code-header">pub fn <a href="#method.change_without_fee" class="fn">change_without_fee</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;position: &amp;mut <a class="struct" href="struct.TokenPosition.html" title="struct mango_v4::state::TokenPosition">TokenPosition</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;native_amount: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;now_ts: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u64.html">u64</a><br>) -&gt; Result&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.bool.html">bool</a>&gt;</h4></section></summary><div class="docblock"><p>Change a position without applying the loan origination fee</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.change_with_fee" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#545-556">source</a><h4 class="code-header">pub fn <a href="#method.change_with_fee" class="fn">change_with_fee</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;position: &amp;mut <a class="struct" href="struct.TokenPosition.html" title="struct mango_v4::state::TokenPosition">TokenPosition</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;native_amount: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;now_ts: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u64.html">u64</a><br>) -&gt; Result&lt;(<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.bool.html">bool</a>, <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>)&gt;</h4></section></summary><div class="docblock"><p>Change a position, while taking the loan origination fee into account</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.update_net_borrows" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#561-575">source</a><h4 class="code-header">pub fn <a href="#method.update_net_borrows" class="fn">update_net_borrows</a>(&amp;mut self, native_amount: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>, now_ts: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u64.html">u64</a>)</h4></section></summary><div class="docblock"><p>Update the banks net_borrows fields.</p>
<p>If oracle_price is set, also do a net borrows check and error if the threshold is exceeded.</p>
</div></details><section id="method.check_net_borrows" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#604-622">source</a><h4 class="code-header">pub fn <a href="#method.check_net_borrows" class="fn">check_net_borrows</a>(&amp;self, oracle_price: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>) -&gt; Result&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.unit.html">()</a>&gt;</h4></section><section id="method.update_cumulative_interest" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#624-646">source</a><h4 class="code-header">pub fn <a href="#method.update_cumulative_interest" class="fn">update_cumulative_interest</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;position: &amp;mut <a class="struct" href="struct.TokenPosition.html" title="struct mango_v4::state::TokenPosition">TokenPosition</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;opening_indexed_position: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a><br>)</h4></section><section id="method.compute_index" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#648-695">source</a><h4 class="code-header">pub fn <a href="#method.compute_index" class="fn">compute_index</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;indexed_total_deposits: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;indexed_total_borrows: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;diff_ts: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a><br>) -&gt; Result&lt;(<a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>, <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>, <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>, <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>, <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>)&gt;</h4></section><details class="toggle method-toggle" open><summary><section id="method.compute_interest_rate" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#699-708">source</a><h4 class="code-header">pub fn <a href="#method.compute_interest_rate" class="fn">compute_interest_rate</a>(&amp;self, utilization: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>) -&gt; <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></h4></section></summary><div class="docblock"><p>returns the current interest rate in APR</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.interest_rate_curve_calculator" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#713-733">source</a><h4 class="code-header">pub fn <a href="#method.interest_rate_curve_calculator" class="fn">interest_rate_curve_calculator</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;utilization: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;util0: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;rate0: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;util1: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;rate1: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;max_rate: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a><br>) -&gt; <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></h4></section></summary><div class="docblock"><p>calcualtor function that can be used to compute an interest
</div></details><section id="method.check_net_borrows" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#577-595">source</a><h4 class="code-header">pub fn <a href="#method.check_net_borrows" class="fn">check_net_borrows</a>(&amp;self, oracle_price: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>) -&gt; Result&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.unit.html">()</a>&gt;</h4></section><section id="method.update_cumulative_interest" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#597-619">source</a><h4 class="code-header">pub fn <a href="#method.update_cumulative_interest" class="fn">update_cumulative_interest</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;position: &amp;mut <a class="struct" href="struct.TokenPosition.html" title="struct mango_v4::state::TokenPosition">TokenPosition</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;opening_indexed_position: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a><br>)</h4></section><section id="method.compute_index" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#621-668">source</a><h4 class="code-header">pub fn <a href="#method.compute_index" class="fn">compute_index</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;indexed_total_deposits: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;indexed_total_borrows: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;diff_ts: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a><br>) -&gt; Result&lt;(<a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>, <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>, <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>, <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>, <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>)&gt;</h4></section><details class="toggle method-toggle" open><summary><section id="method.compute_interest_rate" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#672-681">source</a><h4 class="code-header">pub fn <a href="#method.compute_interest_rate" class="fn">compute_interest_rate</a>(&amp;self, utilization: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>) -&gt; <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></h4></section></summary><div class="docblock"><p>returns the current interest rate in APR</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.interest_rate_curve_calculator" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#686-706">source</a><h4 class="code-header">pub fn <a href="#method.interest_rate_curve_calculator" class="fn">interest_rate_curve_calculator</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;utilization: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;util0: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;rate0: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;util1: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;rate1: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;max_rate: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a><br>) -&gt; <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></h4></section></summary><div class="docblock"><p>calcualtor function that can be used to compute an interest
rate based on the given parameters</p>
</div></details><section id="method.compute_new_avg_utilization" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#736-764">source</a><h4 class="code-header">pub fn <a href="#method.compute_new_avg_utilization" class="fn">compute_new_avg_utilization</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;indexed_total_deposits: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;indexed_total_borrows: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;now_ts: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u64.html">u64</a><br>) -&gt; <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></h4></section><section id="method.compute_rates" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#767-795">source</a><h4 class="code-header">pub fn <a href="#method.compute_rates" class="fn">compute_rates</a>(&amp;self) -&gt; (<a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>, <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>, <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>)</h4></section><section id="method.oracle_price" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#797-809">source</a><h4 class="code-header">pub fn <a href="#method.oracle_price" class="fn">oracle_price</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;oracle_acc: &amp;impl <a class="trait" href="../accounts_zerocopy/trait.KeyedAccountReader.html" title="trait mango_v4::accounts_zerocopy::KeyedAccountReader">KeyedAccountReader</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;staleness_slot: <a class="enum" href="https://doc.rust-lang.org/1.68.2/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u64.html">u64</a>&gt;<br>) -&gt; Result&lt;<a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>&gt;</h4></section><section id="method.stable_price" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#811-813">source</a><h4 class="code-header">pub fn <a href="#method.stable_price" class="fn">stable_price</a>(&amp;self) -&gt; <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></h4></section><details class="toggle method-toggle" open><summary><section id="method.scaled_init_asset_weight" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#821-834">source</a><h4 class="code-header">pub fn <a href="#method.scaled_init_asset_weight" class="fn">scaled_init_asset_weight</a>(&amp;self, price: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>) -&gt; <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></h4></section></summary><div class="docblock"><p>Returns the init asset weight, adjusted for the number of deposits on the bank.</p>
</div></details><section id="method.compute_new_avg_utilization" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#709-737">source</a><h4 class="code-header">pub fn <a href="#method.compute_new_avg_utilization" class="fn">compute_new_avg_utilization</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;indexed_total_deposits: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;indexed_total_borrows: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;now_ts: <a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u64.html">u64</a><br>) -&gt; <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></h4></section><section id="method.compute_rates" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#740-768">source</a><h4 class="code-header">pub fn <a href="#method.compute_rates" class="fn">compute_rates</a>(&amp;self) -&gt; (<a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>, <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>, <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>)</h4></section><section id="method.oracle_price" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#770-782">source</a><h4 class="code-header">pub fn <a href="#method.oracle_price" class="fn">oracle_price</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;oracle_acc: &amp;impl <a class="trait" href="../accounts_zerocopy/trait.KeyedAccountReader.html" title="trait mango_v4::accounts_zerocopy::KeyedAccountReader">KeyedAccountReader</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;staleness_slot: <a class="enum" href="https://doc.rust-lang.org/1.68.2/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u64.html">u64</a>&gt;<br>) -&gt; Result&lt;<a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>&gt;</h4></section><section id="method.stable_price" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#784-786">source</a><h4 class="code-header">pub fn <a href="#method.stable_price" class="fn">stable_price</a>(&amp;self) -&gt; <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></h4></section><details class="toggle method-toggle" open><summary><section id="method.scaled_init_asset_weight" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#794-807">source</a><h4 class="code-header">pub fn <a href="#method.scaled_init_asset_weight" class="fn">scaled_init_asset_weight</a>(&amp;self, price: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>) -&gt; <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></h4></section></summary><div class="docblock"><p>Returns the init asset weight, adjusted for the number of deposits on the bank.</p>
<p>If max_collateral is 0, then the scaled init weight will be 0.
Otherwise the weight is unadjusted until max_collateral and then scaled down
such that scaled_init_weight * deposits remains constant.</p>
</div></details><section id="method.scaled_init_liab_weight" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#837-854">source</a><h4 class="code-header">pub fn <a href="#method.scaled_init_liab_weight" class="fn">scaled_init_liab_weight</a>(&amp;self, price: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>) -&gt; <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></h4></section></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-AccountDeserialize-for-Bank" class="impl has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#24">source</a><a href="#impl-AccountDeserialize-for-Bank" class="anchor">§</a><h3 class="code-header">impl AccountDeserialize for <a class="struct" href="struct.Bank.html" title="struct mango_v4::state::Bank">Bank</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.try_deserialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#24">source</a><a href="#method.try_deserialize" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_deserialize</a>(buf: &amp;mut &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u8.html">u8</a>]) -&gt; Result&lt;Self&gt;</h4></section></summary><div class='docblock'>Deserializes previously initialized account data. Should fail for all
</div></details><section id="method.scaled_init_liab_weight" class="method has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#810-827">source</a><h4 class="code-header">pub fn <a href="#method.scaled_init_liab_weight" class="fn">scaled_init_liab_weight</a>(&amp;self, price: <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a>) -&gt; <a class="type" href="https://docs.rs/fixed/~1.11/fixed/types/type.I80F48.html" title="type fixed::types::I80F48">I80F48</a></h4></section></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-AccountDeserialize-for-Bank" class="impl has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#24">source</a><a href="#impl-AccountDeserialize-for-Bank" class="anchor">§</a><h3 class="code-header">impl AccountDeserialize for <a class="struct" href="struct.Bank.html" title="struct mango_v4::state::Bank">Bank</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.try_deserialize" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/mango_v4/state/bank.rs.html#24">source</a><a href="#method.try_deserialize" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_deserialize</a>(buf: &amp;mut &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive.u8.html">u8</a>]) -&gt; Result&lt;Self&gt;</h4></section></summary><div class='docblock'>Deserializes previously initialized account data. Should fail for all
uninitialized accounts, where the bytes are zeroed. Implementations
should be unique to a particular account type so that one can never
successfully deserialize the data of one account type into another.

File diff suppressed because one or more lines are too long

View File

@ -1210,10 +1210,6 @@
<a href="#1210" id="1210">1210</a>
<a href="#1211" id="1211">1211</a>
<a href="#1212" id="1212">1212</a>
<a href="#1213" id="1213">1213</a>
<a href="#1214" id="1214">1214</a>
<a href="#1215" id="1215">1215</a>
<a href="#1216" id="1216">1216</a>
</pre><pre class="rust"><code><span class="kw">use </span>anchor_lang::prelude::<span class="kw-2">*</span>;
<span class="kw">use </span>fixed::types::I80F48;
@ -2075,7 +2071,6 @@
account.ensure_token_position(<span class="number">4</span>).unwrap().<span class="number">0</span>,
I80F48::from(<span class="number">10</span>),
DUMMY_NOW_TS,
DUMMY_PRICE,
)
.unwrap();
@ -2159,7 +2154,6 @@
account.ensure_token_position(<span class="number">1</span>).unwrap().<span class="number">0</span>,
I80F48::from(testcase.token1),
DUMMY_NOW_TS,
DUMMY_PRICE,
)
.unwrap();
bank2
@ -2168,7 +2162,6 @@
account.ensure_token_position(<span class="number">4</span>).unwrap().<span class="number">0</span>,
I80F48::from(testcase.token2),
DUMMY_NOW_TS,
DUMMY_PRICE,
)
.unwrap();
bank3
@ -2177,7 +2170,6 @@
account.ensure_token_position(<span class="number">5</span>).unwrap().<span class="number">0</span>,
I80F48::from(testcase.token3),
DUMMY_NOW_TS,
DUMMY_PRICE,
)
.unwrap();
<span class="kw">for </span>(settings, bank) <span class="kw">in </span>testcase

View File

@ -1367,7 +1367,6 @@
<a href="#1367" id="1367">1367</a>
<a href="#1368" id="1368">1368</a>
<a href="#1369" id="1369">1369</a>
<a href="#1370" id="1370">1370</a>
</pre><pre class="rust"><code><span class="attr">#![cfg(feature = <span class="string">&quot;client&quot;</span>)]
</span><span class="kw">use </span>anchor_lang::prelude::<span class="kw-2">*</span>;
@ -1429,7 +1428,8 @@
<span class="kw">let </span>target_amount = amount * price;
<span class="kw">let </span><span class="kw-2">mut </span>source_bank = source_bank.clone();
source_bank.withdraw_with_fee(<span class="kw-2">&amp;mut </span>source_position, amount, now_ts, source_oracle_price)<span class="question-mark">?</span>;
source_bank.withdraw_with_fee(<span class="kw-2">&amp;mut </span>source_position, amount, now_ts)<span class="question-mark">?</span>;
source_bank.check_net_borrows(source_oracle_price)<span class="question-mark">?</span>;
<span class="kw">let </span><span class="kw-2">mut </span>target_bank = target_bank.clone();
target_bank.deposit(<span class="kw-2">&amp;mut </span>target_position, target_amount, now_ts)<span class="question-mark">?</span>;
@ -1773,7 +1773,8 @@
<span class="kw">let </span><span class="kw-2">mut </span>position = account.token_position(bank.token_index)<span class="question-mark">?</span>.clone();
<span class="kw">let </span><span class="kw-2">mut </span>bank = bank.clone();
bank.withdraw_with_fee(<span class="kw-2">&amp;mut </span>position, amount, now_ts, token.prices.oracle)<span class="question-mark">?</span>;
bank.withdraw_with_fee(<span class="kw-2">&amp;mut </span>position, amount, now_ts)<span class="question-mark">?</span>;
bank.check_net_borrows(token.prices.oracle)<span class="question-mark">?</span>;
<span class="kw">let </span><span class="kw-2">mut </span>resulting_cache = <span class="self">self</span>.clone();
resulting_cache.adjust_token_balance(<span class="kw-2">&amp;</span>bank, -amount)<span class="question-mark">?</span>;
@ -2503,7 +2504,6 @@
account.ensure_token_position(<span class="number">1</span>).unwrap().<span class="number">0</span>,
I80F48::from(<span class="number">100</span>),
DUMMY_NOW_TS,
DUMMY_PRICE,
)
.unwrap();
@ -2586,7 +2586,6 @@
account.ensure_token_position(<span class="number">1</span>).unwrap().<span class="number">0</span>,
I80F48::from(<span class="number">100</span>),
DUMMY_NOW_TS,
DUMMY_PRICE,
)
.unwrap();
bank1
@ -2595,7 +2594,6 @@
account2.ensure_token_position(<span class="number">1</span>).unwrap().<span class="number">0</span>,
I80F48::from(-<span class="number">100</span>),
DUMMY_NOW_TS,
DUMMY_PRICE,
)
.unwrap();

View File

@ -1046,33 +1046,6 @@
<a href="#1046" id="1046">1046</a>
<a href="#1047" id="1047">1047</a>
<a href="#1048" id="1048">1048</a>
<a href="#1049" id="1049">1049</a>
<a href="#1050" id="1050">1050</a>
<a href="#1051" id="1051">1051</a>
<a href="#1052" id="1052">1052</a>
<a href="#1053" id="1053">1053</a>
<a href="#1054" id="1054">1054</a>
<a href="#1055" id="1055">1055</a>
<a href="#1056" id="1056">1056</a>
<a href="#1057" id="1057">1057</a>
<a href="#1058" id="1058">1058</a>
<a href="#1059" id="1059">1059</a>
<a href="#1060" id="1060">1060</a>
<a href="#1061" id="1061">1061</a>
<a href="#1062" id="1062">1062</a>
<a href="#1063" id="1063">1063</a>
<a href="#1064" id="1064">1064</a>
<a href="#1065" id="1065">1065</a>
<a href="#1066" id="1066">1066</a>
<a href="#1067" id="1067">1067</a>
<a href="#1068" id="1068">1068</a>
<a href="#1069" id="1069">1069</a>
<a href="#1070" id="1070">1070</a>
<a href="#1071" id="1071">1071</a>
<a href="#1072" id="1072">1072</a>
<a href="#1073" id="1073">1073</a>
<a href="#1074" id="1074">1074</a>
<a href="#1075" id="1075">1075</a>
</pre><pre class="rust"><code><span class="kw">use super</span>::{OracleConfig, TokenIndex, TokenPosition};
<span class="kw">use </span><span class="kw">crate</span>::accounts_zerocopy::KeyedAccountReader;
<span class="kw">use </span><span class="kw">crate</span>::error::<span class="kw-2">*</span>;
@ -1461,7 +1434,6 @@
position: <span class="kw-2">&amp;mut </span>TokenPosition,
native_amount: I80F48,
now_ts: u64,
oracle_price: I80F48,
) -&gt; <span class="prelude-ty">Result</span>&lt;bool&gt; {
<span class="kw">let </span>(position_is_active, <span class="kw">_</span>) = <span class="self">self</span>.withdraw_internal_wrapper(
position,
@ -1469,7 +1441,6 @@
<span class="bool-val">false</span>,
!position.is_in_use(),
now_ts,
<span class="prelude-val">Some</span>(oracle_price),
)<span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>(position_is_active)
@ -1483,17 +1454,9 @@
position: <span class="kw-2">&amp;mut </span>TokenPosition,
native_amount: I80F48,
now_ts: u64,
oracle_price: I80F48,
) -&gt; <span class="prelude-ty">Result</span>&lt;bool&gt; {
<span class="self">self</span>.withdraw_internal_wrapper(
position,
native_amount,
<span class="bool-val">false</span>,
<span class="bool-val">true</span>,
now_ts,
<span class="prelude-val">Some</span>(oracle_price),
)
.map(|(not_dusted, <span class="kw">_</span>)| not_dusted || position.is_in_use())
<span class="self">self</span>.withdraw_internal_wrapper(position, native_amount, <span class="bool-val">false</span>, <span class="bool-val">true</span>, now_ts)
.map(|(not_dusted, <span class="kw">_</span>)| not_dusted || position.is_in_use())
}
<span class="doccomment">/// Withdraws `native_amount` while applying the loan origination fee if a borrow is created.
@ -1509,16 +1472,8 @@
position: <span class="kw-2">&amp;mut </span>TokenPosition,
native_amount: I80F48,
now_ts: u64,
oracle_price: I80F48,
) -&gt; <span class="prelude-ty">Result</span>&lt;(bool, I80F48)&gt; {
<span class="self">self</span>.withdraw_internal_wrapper(
position,
native_amount,
<span class="bool-val">true</span>,
!position.is_in_use(),
now_ts,
<span class="prelude-val">Some</span>(oracle_price),
)
<span class="self">self</span>.withdraw_internal_wrapper(position, native_amount, <span class="bool-val">true</span>, !position.is_in_use(), now_ts)
}
<span class="doccomment">/// Internal function to withdraw funds
@ -1529,7 +1484,6 @@
with_loan_origination_fee: bool,
allow_dusting: bool,
now_ts: u64,
oracle_price: <span class="prelude-ty">Option</span>&lt;I80F48&gt;,
) -&gt; <span class="prelude-ty">Result</span>&lt;(bool, I80F48)&gt; {
<span class="kw">let </span>opening_indexed_position = position.indexed_position;
<span class="kw">let </span>res = <span class="self">self</span>.withdraw_internal(
@ -1538,7 +1492,6 @@
with_loan_origination_fee,
allow_dusting,
now_ts,
oracle_price,
);
<span class="self">self</span>.update_cumulative_interest(position, opening_indexed_position);
res
@ -1552,7 +1505,6 @@
with_loan_origination_fee: bool,
allow_dusting: bool,
now_ts: u64,
oracle_price: <span class="prelude-ty">Option</span>&lt;I80F48&gt;,
) -&gt; <span class="prelude-ty">Result</span>&lt;(bool, I80F48)&gt; {
<span class="macro">require_gte!</span>(native_amount, <span class="number">0</span>);
<span class="kw">let </span>native_position = position.native(<span class="self">self</span>);
@ -1598,9 +1550,6 @@
<span class="comment">// net borrows requires updating in only this case, since other branches of the method deal with
// withdraws and not borrows
</span><span class="self">self</span>.update_net_borrows(native_amount, now_ts);
<span class="kw">if let </span><span class="prelude-val">Some</span>(oracle_price) = oracle_price {
<span class="self">self</span>.check_net_borrows(oracle_price)<span class="question-mark">?</span>;
}
<span class="prelude-val">Ok</span>((<span class="bool-val">true</span>, loan_origination_fee))
}
@ -1621,7 +1570,6 @@
<span class="bool-val">false</span>,
!position.is_in_use(),
now_ts,
<span class="prelude-val">None</span>,
)<span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>((position_is_active, loan_origination_fee))
@ -1633,12 +1581,11 @@
position: <span class="kw-2">&amp;mut </span>TokenPosition,
native_amount: I80F48,
now_ts: u64,
oracle_price: I80F48,
) -&gt; <span class="prelude-ty">Result</span>&lt;bool&gt; {
<span class="kw">if </span>native_amount &gt;= <span class="number">0 </span>{
<span class="self">self</span>.deposit(position, native_amount, now_ts)
} <span class="kw">else </span>{
<span class="self">self</span>.withdraw_without_fee(position, -native_amount, now_ts, oracle_price)
<span class="self">self</span>.withdraw_without_fee(position, -native_amount, now_ts)
}
}
@ -1648,12 +1595,11 @@
position: <span class="kw-2">&amp;mut </span>TokenPosition,
native_amount: I80F48,
now_ts: u64,
oracle_price: I80F48,
) -&gt; <span class="prelude-ty">Result</span>&lt;(bool, I80F48)&gt; {
<span class="kw">if </span>native_amount &gt;= <span class="number">0 </span>{
<span class="prelude-val">Ok</span>((<span class="self">self</span>.deposit(position, native_amount, now_ts)<span class="question-mark">?</span>, I80F48::ZERO))
} <span class="kw">else </span>{
<span class="self">self</span>.withdraw_with_fee(position, -native_amount, now_ts, oracle_price)
<span class="self">self</span>.withdraw_with_fee(position, -native_amount, now_ts)
}
}
@ -2032,8 +1978,7 @@
</span><span class="kw">let </span>change = I80F48::from(change);
<span class="kw">let </span>dummy_now_ts = <span class="number">1 </span><span class="kw">as </span>u64;
<span class="kw">let </span>dummy_price = I80F48::ZERO;
<span class="kw">let </span>(is_active, <span class="kw">_</span>) =
bank.change_with_fee(<span class="kw-2">&amp;mut </span>account, change, dummy_now_ts, dummy_price)<span class="question-mark">?</span>;
<span class="kw">let </span>(is_active, <span class="kw">_</span>) = bank.change_with_fee(<span class="kw-2">&amp;mut </span>account, change, dummy_now_ts)<span class="question-mark">?</span>;
<span class="kw">let </span><span class="kw-2">mut </span>expected_native = start_native + change;
<span class="kw">if </span>expected_native &gt;= <span class="number">0.0 </span>&amp;&amp; expected_native &lt; <span class="number">1.0 </span>&amp;&amp; !is_in_use {
@ -2109,40 +2054,41 @@
<span class="kw">let </span><span class="kw-2">mut </span>account = TokenPosition::default();
bank.change_without_fee(<span class="kw-2">&amp;mut </span>account, I80F48::from(<span class="number">100</span>), <span class="number">0</span>, price)
bank.change_without_fee(<span class="kw-2">&amp;mut </span>account, I80F48::from(<span class="number">100</span>), <span class="number">0</span>)
.unwrap();
<span class="macro">assert_eq!</span>(bank.net_borrows_in_window, <span class="number">0</span>);
bank.change_without_fee(<span class="kw-2">&amp;mut </span>account, I80F48::from(-<span class="number">100</span>), <span class="number">0</span>, price)
bank.change_without_fee(<span class="kw-2">&amp;mut </span>account, I80F48::from(-<span class="number">100</span>), <span class="number">0</span>)
.unwrap();
<span class="macro">assert_eq!</span>(bank.net_borrows_in_window, <span class="number">0</span>);
account = TokenPosition::default();
bank.change_without_fee(<span class="kw-2">&amp;mut </span>account, I80F48::from(<span class="number">10</span>), <span class="number">0</span>, price)
bank.change_without_fee(<span class="kw-2">&amp;mut </span>account, I80F48::from(<span class="number">10</span>), <span class="number">0</span>)
.unwrap();
bank.change_without_fee(<span class="kw-2">&amp;mut </span>account, I80F48::from(-<span class="number">110</span>), <span class="number">0</span>, price)
bank.change_without_fee(<span class="kw-2">&amp;mut </span>account, I80F48::from(-<span class="number">110</span>), <span class="number">0</span>)
.unwrap();
<span class="macro">assert_eq!</span>(bank.net_borrows_in_window, <span class="number">100</span>);
bank.change_without_fee(<span class="kw-2">&amp;mut </span>account, I80F48::from(<span class="number">50</span>), <span class="number">0</span>, price)
bank.change_without_fee(<span class="kw-2">&amp;mut </span>account, I80F48::from(<span class="number">50</span>), <span class="number">0</span>)
.unwrap();
<span class="macro">assert_eq!</span>(bank.net_borrows_in_window, <span class="number">50</span>);
bank.change_without_fee(<span class="kw-2">&amp;mut </span>account, I80F48::from(<span class="number">100</span>), <span class="number">0</span>, price)
bank.change_without_fee(<span class="kw-2">&amp;mut </span>account, I80F48::from(<span class="number">100</span>), <span class="number">0</span>)
.unwrap();
<span class="macro">assert_eq!</span>(bank.net_borrows_in_window, <span class="number">1</span>); <span class="comment">// rounding
</span>account = TokenPosition::default();
bank.net_borrows_in_window = <span class="number">0</span>;
bank.change_without_fee(<span class="kw-2">&amp;mut </span>account, I80F48::from(-<span class="number">450</span>), <span class="number">0</span>, price)
bank.change_without_fee(<span class="kw-2">&amp;mut </span>account, I80F48::from(-<span class="number">450</span>), <span class="number">0</span>)
.unwrap();
bank.change_without_fee(<span class="kw-2">&amp;mut </span>account, I80F48::from(-<span class="number">51</span>), <span class="number">0</span>, price)
.unwrap_err();
bank.change_without_fee(<span class="kw-2">&amp;mut </span>account, I80F48::from(-<span class="number">51</span>), <span class="number">0</span>)
.unwrap();
bank.check_net_borrows(price).unwrap_err();
account = TokenPosition::default();
bank.net_borrows_in_window = <span class="number">0</span>;
bank.change_without_fee(<span class="kw-2">&amp;mut </span>account, I80F48::from(-<span class="number">450</span>), <span class="number">0</span>, price)
bank.change_without_fee(<span class="kw-2">&amp;mut </span>account, I80F48::from(-<span class="number">450</span>), <span class="number">0</span>)
.unwrap();
bank.change_without_fee(<span class="kw-2">&amp;mut </span>account, I80F48::from(-<span class="number">50</span>), <span class="number">0</span>, price)
bank.change_without_fee(<span class="kw-2">&amp;mut </span>account, I80F48::from(-<span class="number">50</span>), <span class="number">0</span>)
.unwrap();
bank.change_without_fee(<span class="kw-2">&amp;mut </span>account, I80F48::from(-<span class="number">50</span>), <span class="number">101</span>, price)
bank.change_without_fee(<span class="kw-2">&amp;mut </span>account, I80F48::from(-<span class="number">50</span>), <span class="number">101</span>)
.unwrap();
<span class="prelude-val">Ok</span>(())

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long