Skip to content

Commit 0c40018

Browse files
not working still
1 parent cc9da9c commit 0c40018

File tree

15 files changed

+80
-236
lines changed

15 files changed

+80
-236
lines changed

server/Cargo.lock

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

server/Cargo.toml

+20-6
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,25 @@ members = [
44
"blockchain",
55
"engagement",
66
"engine",
7-
"types/evm",
8-
"types/fraction",
9-
"types/infinity",
10-
"types/macros",
11-
"types/pricelevel",
12-
"types/value",
7+
"types/*",
138
"worker",
149
]
10+
11+
[workspace.package]
12+
name = "ksox-server"
13+
version = "0.1.0"
14+
edition = "2021"
15+
16+
[workspace.dependencies]
17+
ethereum-types = "0.14.1"
18+
num-bigint = { version = "0.4.3", features = ["serde", "arbitrary", "quickcheck"] }
19+
prefix-hex = "0.7.1"
20+
serde = { version = "1.0.183", features = ["derive"] }
21+
sqlx = { version = "0.7.1", features = [
22+
"runtime-tokio-native-tls",
23+
"postgres",
24+
"uuid",
25+
"bigdecimal",
26+
"chrono"
27+
] }
28+
uuid = { version = "1.4.1", features = ["v4", "serde"] }

server/blockchain/src/database/managers/assets.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ impl AssetsManager {
3434
sqlx::query_as!(
3535
Asset,
3636
r#"
37-
SELECT
37+
SELECT
3838
a.id,
3939
em.address as "address: Address",
4040
em.decimals as "decimals: Fraction"

server/blockchain/src/database/managers/deposits.rs

+9-7
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
use crate::database::projections::deposit::{Deposit, DepositInsert};
22
use chrono::Utc;
3-
use evm::{address::Address, txhash::TxHash, confirmations_counter::Confirmations};
3+
use evm::{address::Address, confirmations_counter::Confirmations, txhash::TxHash};
44
use fraction::Fraction;
55
use sqlx::{postgres::PgQueryResult, Postgres, Transaction};
6+
use uuid::Uuid;
67

78
#[derive(Debug, Clone)]
89
pub struct DepositsManager {}
@@ -17,7 +18,7 @@ impl DepositsManager {
1718
Deposit,
1819
r#"
1920
INSERT INTO "assets"."deposit_evm_metadata"
20-
(created_at, last_modification_at, owner, spender, asset, amount, tx_hash, confirmations)
21+
(created_at, last_modification_at, owner, spender, asset, amount, tx_hash, confirmations)
2122
VALUES
2223
($1, $2, $3, $4, $5, $6::fraction, $7, $8::confirmations)
2324
RETURNING
@@ -46,21 +47,22 @@ impl DepositsManager {
4647

4748
pub async fn update<'t>(
4849
t: &'t mut Transaction<'_, Postgres>,
49-
deposit: Deposit,
50+
id: Uuid,
51+
confirmations: Confirmations,
5052
) -> sqlx::Result<PgQueryResult> {
5153
let now = Utc::now();
5254
sqlx::query!(
5355
r#"
5456
UPDATE
55-
deposits
57+
"assets"."deposit_evm_metadata"
5658
SET
57-
confirmations = $2::fraction,
59+
confirmations = $2::confirmations,
5860
last_modification_at = $3
5961
WHERE
6062
id = $1
6163
"#,
62-
deposit.id,
63-
deposit.confirmations.to_tuple_string() as _,
64+
id,
65+
confirmations.to_tuple_string() as _,
6466
now
6567
)
6668
.execute(t.as_mut())

server/blockchain/src/database/managers/users.rs

+23-12
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,30 @@ impl UsersManager {
1414
address: &Address,
1515
) -> Result<User> {
1616
let now = Utc::now();
17-
sqlx::query_as!(
17+
let user = sqlx::query_as!(
1818
User,
1919
r#"
20-
INSERT INTO
21-
users
22-
(last_modification_at, address) VALUES ($1, $2)
23-
RETURNING id, address as "address: Address"
20+
INSERT INTO "users"."user"
21+
(created_at, last_modification_at)
22+
VALUES
23+
($1, $2)
24+
RETURNING id
2425
"#,
2526
now,
26-
&address.to_string()
27+
now,
2728
)
2829
.fetch_one(t.as_mut())
29-
.await
30+
.await?;
31+
sqlx::query!(
32+
r#"
33+
INSERT INTO "users"."address"
34+
(network_id, user_id, address)
35+
VALUES
36+
($1, $2)
37+
RETURNING id
38+
"#
39+
);
40+
user
3041
}
3142

3243
pub async fn get_by_address<'t>(
@@ -36,11 +47,11 @@ impl UsersManager {
3647
sqlx::query_as!(
3748
User,
3849
r#"
39-
SELECT
40-
id,
41-
address as "address: Address"
42-
FROM users
43-
WHERE address = $1
50+
SELECT
51+
u.id
52+
FROM "users"."user" u
53+
JOIN "users"."address" a ON u.id = a.user_id
54+
WHERE a.address = $1
4455
"#,
4556
address.to_string()
4657
)
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
use evm::address::Address;
21
use serde::{Deserialize, Serialize};
32
use sqlx::types::Uuid;
43

54
#[derive(Debug, Clone, Serialize, Deserialize)]
65
pub struct User {
76
pub id: Uuid,
8-
pub address: Address,
97
}

server/types/evm/Makefile.toml

-41
This file was deleted.

server/types/fraction/Cargo.toml

-3
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,3 @@ seq-macro = "0.3.5"
1515
serde = { version = "1.0.183", features = ["derive"] }
1616
serde_json = "1.0.105"
1717
sqlx = { version = "0.7.1", features = [ "postgres", "bigdecimal" ] }
18-
19-
[package.metadata.cargo-udeps.ignore]
20-
normal = ["proptest", "seq-macro"]

server/types/fraction/Makefile.toml

-41
This file was deleted.

server/types/infinity/Makefile.toml

-41
This file was deleted.

server/types/network/Cargo.toml

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[package]
2+
name = "network"
3+
version = "0.1.0"
4+
edition = "2021"
5+
6+
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
7+
8+
[dependencies]
9+
serde.workspace = true
10+
uuid.workspace = true

server/types/network/src/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
pub mod network;

server/types/network/src/network.rs

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
use serde::{Deserialize, Serialize};
2+
use uuid::Uuid;
3+
4+
#[derive(Debug, Deserialize, Serialize)]
5+
struct Network {
6+
id: Uuid,
7+
name: String,
8+
}

server/types/pricelevel/Makefile.toml

-41
This file was deleted.

0 commit comments

Comments
 (0)