Skip to content

Commit a313293

Browse files
committed
fix: rebase errors
1 parent c05ad3f commit a313293

File tree

5 files changed

+58
-37
lines changed

5 files changed

+58
-37
lines changed

apps/namadillo/src/App/Ibc/OsmosisSwap.tsx

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1-
import { Asset, IBCTrace } from "@chain-registry/types";
1+
import { Asset } from "@chain-registry/types";
2+
import { IbcTransition } from "@chain-registry/types/assetlist.schema";
23
import { Stack } from "@namada/components";
34
import { AccountType, BparamsMsgValue } from "@namada/types";
45
import { allDefaultAccountsAtom } from "atoms/accounts";
56
import { namadaShieldedAssetsAtom } from "atoms/balance";
6-
import { chainParametersAtom } from "atoms/chain";
7-
import { findAssetsByChainId, ibcChannelsFamily } from "atoms/integrations";
7+
import {
8+
getChainRegistryByChainId,
9+
ibcChannelsFamily,
10+
namadaRegistryChainAssetsMapAtom,
11+
} from "atoms/integrations";
812
import { SwapResponse, SwapResponseError, SwapResponseOk } from "atoms/swaps";
913
import { createOsmosisSwapTxAtom } from "atoms/transfer/atoms";
1014
import BigNumber from "bignumber.js";
@@ -13,7 +17,7 @@ import invariant from "invariant";
1317
import { useAtomValue } from "jotai";
1418
import { broadcastTransaction, signTx } from "lib/query";
1519
import { useCallback, useEffect, useState } from "react";
16-
import { AddressWithAssetAndAmount } from "types";
20+
import { NamadaAssetWithAmount } from "types";
1721
import { getSdkInstance } from "utils/sdk";
1822

1923
const SLIPPAGE = 0.005;
@@ -28,15 +32,14 @@ export const OsmosisSwap: React.FC = () => {
2832
namadaShieldedAssetsAtom
2933
);
3034

31-
const chainParameters = useAtomValue(chainParametersAtom);
35+
const chainAssetsMapAtom = useAtomValue(namadaRegistryChainAssetsMapAtom);
3236
const namadaAssets =
33-
chainParameters.data ?
34-
findAssetsByChainId(chainParameters.data.chainId)
35-
: [];
37+
chainAssetsMapAtom.isSuccess ? Object.values(chainAssetsMapAtom.data) : [];
38+
3639
const osmosisAssets =
37-
chainParameters.data ? findAssetsByChainId("osmosis-1") : [];
40+
getChainRegistryByChainId("osmosis-1")?.assets.assets || [];
3841

39-
const [from, setFrom] = useState<AddressWithAssetAndAmount | undefined>();
42+
const [from, setFrom] = useState<NamadaAssetWithAmount | undefined>();
4043
const [to, setTo] = useState<Asset | undefined>();
4144
const [amount, setAmount] = useState<string>("");
4245
const [recipient, setRecipient] = useState<string>(
@@ -91,7 +94,7 @@ export const OsmosisSwap: React.FC = () => {
9194
if (from && to && amount) {
9295
call();
9396
}
94-
}, [from?.originalAddress, to?.address, amount]);
97+
}, [from?.asset.address, to?.address, amount]);
9598

9699
const defaultAccounts = useAtomValue(allDefaultAccountsAtom);
97100
const shieldedAccount = defaultAccounts.data?.find(
@@ -111,7 +114,7 @@ export const OsmosisSwap: React.FC = () => {
111114
invariant(localRecoveryAddr, "No local recovery address");
112115
invariant(recipient, "No recipient");
113116

114-
const toTrace = to.traces?.find((t): t is IBCTrace => t.type === "ibc")
117+
const toTrace = to.traces?.find((t): t is IbcTransition => t.type === "ibc")
115118
?.chain.path;
116119
invariant(toTrace, "No IBC trace found for the to asset");
117120
invariant(quote.route[0], "No route found in the quote");
@@ -133,7 +136,7 @@ export const OsmosisSwap: React.FC = () => {
133136
// osmosis channel
134137
channelId: "channel-7",
135138
portId: "transfer",
136-
token: from.originalAddress,
139+
token: from.asset.address,
137140
source: shieldedAccount.pseudoExtendedKey!,
138141
gasSpendingKey: shieldedAccount.pseudoExtendedKey!,
139142
receiver: SWAP_CONTRACT_ADDRESS,
@@ -194,7 +197,7 @@ export const OsmosisSwap: React.FC = () => {
194197
>
195198
<option value=""></option>
196199
{Object.values(availableAssets || {}).map((al, idx) => (
197-
<option key={`${al.asset.base}_${idx}`} value={al.originalAddress}>
200+
<option key={`${al.asset.base}_${idx}`} value={al.asset.address}>
198201
{al.asset.symbol}
199202
</option>
200203
))}

apps/namadillo/src/atoms/transfer/services.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ export const createOsmosisSwapTx = async (
340340

341341
return await workerBuildTxPair({
342342
rpcUrl,
343-
token: transfer.token,
343+
nativeToken: chain.nativeTokenAddress,
344344
buildTxFn: async (workerLink) => {
345345
const msgValue = new OsmosisSwapMsgValue({
346346
...props[0],

packages/shared/lib/src/sdk/args.rs

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use namada_sdk::args::{
77
};
88
use namada_sdk::borsh::{BorshDeserialize, BorshSerialize, BorshSerializeExt};
99
use namada_sdk::collections::HashMap;
10+
use namada_sdk::dec::Dec;
1011
use namada_sdk::ibc::core::host::types::identifiers::{ChannelId, PortId};
1112
use namada_sdk::ibc::IbcShieldingData;
1213
use namada_sdk::masp::partial_deauthorize;
@@ -342,9 +343,6 @@ pub enum Slippage {
342343
/// actual trade price. This must be a decimal number in the range
343344
/// `[0, 100]`.
344345
slippage_percentage: String,
345-
/// The time period (in seconds) over which the average price is
346-
/// calculated
347-
window_seconds: u64,
348346
},
349347
}
350348

@@ -358,11 +356,14 @@ impl From<Slippage> for args::Slippage {
358356
}
359357
Slippage::Twap {
360358
slippage_percentage,
361-
window_seconds,
362-
} => args::Slippage::Twap {
363-
slippage_percentage,
364-
window_seconds,
365-
},
359+
} => {
360+
let slippage_percentage = Dec::from_str(&slippage_percentage)
361+
.expect("Slippage percentage to be valid decimal.");
362+
363+
args::Slippage::Twap {
364+
slippage_percentage,
365+
}
366+
}
366367
}
367368
}
368369
}
@@ -386,12 +387,13 @@ pub struct OsmosisSwapMsg {
386387
pub route: Option<Vec<OsmosisPoolHop>>,
387388
/// The route to take through Osmosis pools
388389
/// A REST rpc endpoint to Osmosis
389-
pub osmosis_rest_rpc: String,
390+
pub osmosis_lcd_rpc: String,
390391
}
391392

392393
pub fn osmosis_swap_tx_args(
393394
osmosis_swap_msg: &[u8],
394395
tx_msg: &[u8],
396+
native_token: Address,
395397
) -> Result<(args::TxOsmosisSwap, Option<StoredBuildParams>), JsError> {
396398
let osmosis_swap_msg = OsmosisSwapMsg::try_from_slice(osmosis_swap_msg)?;
397399

@@ -403,10 +405,11 @@ pub fn osmosis_swap_tx_args(
403405
slippage,
404406
local_recovery_addr,
405407
route,
406-
osmosis_rest_rpc,
408+
osmosis_lcd_rpc,
407409
} = osmosis_swap_msg;
408410

409-
let (ibc_transfer_args, bparams) = ibc_transfer_tx_args(&transfer.serialize_to_vec(), tx_msg)?;
411+
let (ibc_transfer_args, bparams) =
412+
ibc_transfer_tx_args(&transfer.serialize_to_vec(), tx_msg, native_token)?;
410413

411414
let recipient = match Address::from_str(&recipient) {
412415
Ok(address) => Ok(Either::Left(address)),
@@ -428,10 +431,12 @@ pub fn osmosis_swap_tx_args(
428431
output_denom,
429432
recipient,
430433
overflow: Some(overflow),
431-
slippage: slippage.into(),
434+
slippage: Some(slippage.into()),
432435
local_recovery_addr,
433436
route,
434-
osmosis_rest_rpc,
437+
osmosis_lcd_rpc: Some(osmosis_lcd_rpc),
438+
// TODO: not sure if needed
439+
osmosis_sqs_rpc: None,
435440
};
436441

437442
Ok((tx_osmosis_swap_args, bparams))

packages/shared/lib/src/sdk/mod.rs

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -902,26 +902,39 @@ impl Sdk {
902902
osmosis_swap_msg: &[u8],
903903
wrapper_tx_msg: &[u8],
904904
) -> Result<JsValue, JsError> {
905-
let (args, bparams) = args::osmosis_swap_tx_args(osmosis_swap_msg, wrapper_tx_msg)?;
905+
let (args, bparams) = args::osmosis_swap_tx_args(
906+
osmosis_swap_msg,
907+
wrapper_tx_msg,
908+
self.namada.native_token(),
909+
)?;
906910

907-
let _ = &self.namada.shielded_mut().await.load().await?;
908-
let tx = args.into_ibc_transfer(&self.namada).await?;
911+
let _ = &self
912+
.namada
913+
.shielded_mut()
914+
.await
915+
.try_load(async |_| {})
916+
.await;
917+
918+
// TODO: check if returning true is correct here
919+
let tx = args
920+
.into_ibc_transfer(&self.namada, |_route, _min_amount, _quote_amount| true)
921+
.await?;
909922

910923
let bparams = if let Some(bparams) = bparams {
911924
BuildParams::StoredBuildParams(bparams)
912925
} else {
913926
generate_rng_build_params()
914927
};
915928

916-
917929
let xfvks = match tx.source {
918930
TransferSource::Address(_) => vec![],
919931
TransferSource::ExtendedKey(pek) => vec![pek.to_viewing_key()],
920932
};
921933

922934
let ((tx, signing_data, _), masp_signing_data) = match bparams {
923935
BuildParams::RngBuildParams(mut bparams) => {
924-
let tx = build_ibc_transfer(&self.namada, &tx, &mut bparams).await?;
936+
// TODO: replace flase
937+
let tx = build_ibc_transfer(&self.namada, &tx, &mut bparams, false).await?;
925938
let masp_signing_data = MaspSigningData::new(
926939
bparams
927940
.to_stored()
@@ -932,7 +945,8 @@ impl Sdk {
932945
(tx, masp_signing_data)
933946
}
934947
BuildParams::StoredBuildParams(mut bparams) => {
935-
let tx = build_ibc_transfer(&self.namada, &tx, &mut bparams).await?;
948+
// TODO: replace flase
949+
let tx = build_ibc_transfer(&self.namada, &tx, &mut bparams, false).await?;
936950
let masp_signing_data = MaspSigningData::new(bparams, xfvks);
937951

938952
(tx, masp_signing_data)

packages/shared/lib/src/sdk/tx.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ use std::str::FromStr;
44
use gloo_utils::format::JsValueSerdeExt;
55
use namada_sdk::borsh::{self, BorshDeserialize, BorshSerialize};
66
use namada_sdk::collections::HashSet;
7-
use namada_sdk::collections::hash_set::IndexSet;
87
use namada_sdk::masp_primitives::transaction::components::sapling::builder::StoredBuildParams;
98
use namada_sdk::masp_primitives::transaction::components::sapling::fees::{InputView, OutputView};
109
use namada_sdk::masp_primitives::zip32::ExtendedFullViewingKey;
@@ -105,10 +104,10 @@ impl SigningData {
105104
None => None,
106105
};
107106

108-
let mut public_keys = vec![];
107+
let mut public_keys = HashSet::new();
109108
for pk in self.public_keys.clone() {
110109
let pk = PublicKey::from_str(&pk)?;
111-
public_keys.push(pk);
110+
public_keys.insert(pk);
112111
}
113112

114113
let fee_payer = PublicKey::from_str(&self.fee_payer)?;

0 commit comments

Comments
 (0)