Skip to content

Commit eca3249

Browse files
authored
Move swapper out of gemstone (#726)
1 parent 1d7139b commit eca3249

File tree

187 files changed

+2871
-2541
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

187 files changed

+2871
-2541
lines changed

.github/workflows/ci.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ jobs:
3535

3636
- name: Build all integration tests only
3737
run: |
38-
just --unstable gemstone build-integration-tests
3938
just --unstable build-integration-tests
4039
4140
- name: Check gemstone dependencies

AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Gem Wallet Core is a Rust-based cryptocurrency wallet backend engine supporting
2020

2121
### Cross-Platform Library (`gemstone/`)
2222
Shared Rust library compiled to iOS Swift Package and Android AAR using UniFFI bindings. Contains blockchain RPC clients, swap integrations, payment URI decoding, and message signing.
23-
- Key module: `gemstone::swapper` — swapper module for on-device swap integrations
23+
- Key module: `gemstone::gem_swapper` — swapper module for on-device swap integrations
2424

2525
### Blockchain Support
2626
Individual `gem_*` crates for each blockchain with unified RPC client patterns:

Cargo.lock

Lines changed: 54 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ members = [
4343
"crates/number_formatter",
4444
"crates/pricer_dex",
4545
"crates/streamer",
46+
"crates/swapper",
4647
"crates/tracing",
4748
]
4849

apps/api/src/assets/cilent.rs

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use std::error::Error;
22

33
use primitives::{Asset, AssetBasic, AssetFull, AssetId, ChainAddress, NFTCollection, Perpetual};
4-
use search_index::{ASSETS_INDEX_NAME, AssetDocument, NFTS_INDEX_NAME, NFTDocument, PERPETUALS_INDEX_NAME, PerpetualDocument, SearchIndexClient};
4+
use search_index::{ASSETS_INDEX_NAME, AssetDocument, NFTDocument, NFTS_INDEX_NAME, PERPETUALS_INDEX_NAME, PerpetualDocument, SearchIndexClient};
55
use storage::DatabaseClient;
66

77
pub struct AssetsClient {
@@ -84,7 +84,14 @@ impl SearchClient {
8484

8585
let assets: Vec<AssetDocument> = self
8686
.client
87-
.search(ASSETS_INDEX_NAME, &request.query, &build_filter(filters), [].as_ref(), request.limit, request.offset)
87+
.search(
88+
ASSETS_INDEX_NAME,
89+
&request.query,
90+
&build_filter(filters),
91+
[].as_ref(),
92+
request.limit,
93+
request.offset,
94+
)
8895
.await?;
8996

9097
Ok(assets.into_iter().map(|x| AssetBasic::new(x.asset, x.properties, x.score)).collect())
@@ -93,7 +100,14 @@ impl SearchClient {
93100
pub async fn get_perpetuals_search(&self, request: &SearchRequest) -> Result<Vec<Perpetual>, Box<dyn Error + Send + Sync>> {
94101
let perpetuals: Vec<PerpetualDocument> = self
95102
.client
96-
.search(PERPETUALS_INDEX_NAME, &request.query, &build_filter(vec![]), [].as_ref(), request.limit, request.offset)
103+
.search(
104+
PERPETUALS_INDEX_NAME,
105+
&request.query,
106+
&build_filter(vec![]),
107+
[].as_ref(),
108+
request.limit,
109+
request.offset,
110+
)
97111
.await?;
98112

99113
Ok(perpetuals.into_iter().map(|x| x.perpetual).collect())
@@ -102,7 +116,14 @@ impl SearchClient {
102116
pub async fn get_nfts_search(&self, request: &SearchRequest) -> Result<Vec<NFTCollection>, Box<dyn Error + Send + Sync>> {
103117
let nfts: Vec<NFTDocument> = self
104118
.client
105-
.search(NFTS_INDEX_NAME, &request.query, &build_filter(vec![]), [].as_ref(), request.limit, request.offset)
119+
.search(
120+
NFTS_INDEX_NAME,
121+
&request.query,
122+
&build_filter(vec![]),
123+
[].as_ref(),
124+
request.limit,
125+
request.offset,
126+
)
106127
.await?;
107128

108129
Ok(nfts.into_iter().map(|x| x.collection).collect())

apps/daemon/src/consumers/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,8 @@ pub async fn run_consumer_fetch_nft_associations(settings: Settings, database: A
146146
let nft_client = NFTClient::new(&settings.postgres.url, nft_config).await;
147147
let nft_client = Arc::new(Mutex::new(nft_client));
148148
let consumer = FetchNftAssetsAddressesConsumer::new(database.clone(), stream_producer, cacher, nft_client);
149-
streamer::run_consumer::<ChainAddressPayload, FetchNftAssetsAddressesConsumer, usize>(&name, stream_reader, queue, consumer, ConsumerConfig::default()).await
149+
streamer::run_consumer::<ChainAddressPayload, FetchNftAssetsAddressesConsumer, usize>(&name, stream_reader, queue, consumer, ConsumerConfig::default())
150+
.await
150151
}
151152

152153
pub async fn run_consumer_support(settings: Settings, _database: Arc<Mutex<DatabaseClient>>) -> Result<(), Box<dyn Error + Send + Sync>> {

apps/daemon/src/worker/search/mod.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,5 @@ pub async fn jobs(settings: Settings) -> Vec<Pin<Box<dyn Future<Output = ()> + S
4646
}
4747
});
4848

49-
vec![
50-
Box::pin(assets_index_updater),
51-
Box::pin(perpetuals_index_updater),
52-
Box::pin(nfts_index_updater),
53-
]
49+
vec![Box::pin(assets_index_updater), Box::pin(perpetuals_index_updater), Box::pin(nfts_index_updater)]
5450
}

bin/gas-bench/src/client.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ use std::error::Error;
33
use gem_evm::fee_calculator::FeeCalculator;
44
use gem_evm::models::fee::EthereumFeeHistory;
55
use gem_evm::{ether_conv::EtherConv, jsonrpc::EthereumRpc};
6-
use gemstone::network::{alien_provider::NativeProvider, jsonrpc_client_with_chain};
6+
use gemstone::alien::reqwest_provider::NativeProvider;
7+
use gemstone::network::jsonrpc_client_with_chain;
78
use num_bigint::BigInt;
89
use primitives::{Chain, PriorityFeeValue, fee::FeePriority};
910
use std::fmt::Display;

bin/gas-bench/src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use crate::{
1313
etherscan::EtherscanClient,
1414
gasflow::GasflowClient,
1515
};
16-
use gemstone::network::alien_provider::NativeProvider;
16+
use gemstone::alien::reqwest_provider::NativeProvider;
1717
use primitives::fee::FeePriority;
1818

1919
#[derive(Debug, Clone)]

crates/gem_client/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ serde_json = { workspace = true }
1414
serde_urlencoded = { workspace = true }
1515
reqwest = { workspace = true, optional = true }
1616
hex = { workspace = true }
17-
tokio = { workspace = true, features = ["time"], optional = true }
17+
tokio = { workspace = true, features = ["time"], optional = true }

0 commit comments

Comments
 (0)