Skip to content

Commit

Permalink
unsafe reads fixed
Browse files Browse the repository at this point in the history
  • Loading branch information
SwayStar123 committed Dec 7, 2023
1 parent 6cb7bd0 commit 18361e5
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 6 deletions.
7 changes: 5 additions & 2 deletions examples/src_6/multi_token_vault/src/main.sw
Original file line number Diff line number Diff line change
Expand Up @@ -151,14 +151,17 @@ fn vault_asset_id(asset: AssetId, sub_id: SubId) -> (AssetId, SubId) {

#[storage(read)]
fn managed_assets(share_asset: AssetId) -> u64 {
storage.vault_info.get(share_asset).read().managed_assets
match storage.vault_info.get(share_asset).try_read() {
Some(vault_info) => vault_info.managed_assets,
None => 0,
}
}

#[storage(read)]
fn preview_deposit(asset: AssetId, sub_id: SubId, assets: u64) -> (u64, AssetId, SubId) {
let (share_asset_id, share_asset_sub_id) = vault_asset_id(asset, sub_id);

let shares_supply = storage.total_supply.get(share_asset_id).read();
let shares_supply = storage.total_supply.get(share_asset_id).try_read().unwrap_or(0);
if shares_supply == 0 {
(assets, share_asset_id, share_asset_sub_id)
} else {
Expand Down
4 changes: 2 additions & 2 deletions examples/src_6/single_token_single_sub_vault/src/main.sw
Original file line number Diff line number Diff line change
Expand Up @@ -165,12 +165,12 @@ fn vault_assetid() -> AssetId {
fn preview_deposit(assets: u64) -> (u64, AssetId) {
let share_asset_id = vault_assetid();

let shares_supply = storage.total_supply.read();
let shares_supply = storage.total_supply.try_read().unwrap_or(0);
if shares_supply == 0 {
(assets, share_asset_id)
} else {
(
assets * shares_supply / storage.managed_assets.read(),
assets * shares_supply / storage.managed_assets.try_read().unwrap_or(0),
share_asset_id,
)
}
Expand Down
7 changes: 5 additions & 2 deletions examples/src_6/single_token_vault/src/main.sw
Original file line number Diff line number Diff line change
Expand Up @@ -171,14 +171,17 @@ fn vault_asset_id(asset: AssetId, sub_id: SubId) -> (AssetId, SubId) {

#[storage(read)]
fn managed_assets(share_asset: AssetId) -> u64 {
storage.vault_info.get(share_asset).read().managed_assets
match storage.vault_info.get(share_asset).try_read() {
Some(vault_info) => vault_info.managed_assets,
None => 0,
}
}

#[storage(read)]
fn preview_deposit(asset: AssetId, sub_id: SubId, assets: u64) -> (u64, AssetId, SubId) {
let (share_asset_id, share_asset_sub_id) = vault_asset_id(asset, sub_id);

let shares_supply = storage.total_supply.get(share_asset_id).read();
let shares_supply = storage.total_supply.get(share_asset_id).try_read().unwrap_or(0);
if shares_supply == 0 {
(assets, share_asset_id, share_asset_sub_id)
} else {
Expand Down

0 comments on commit 18361e5

Please sign in to comment.