diff --git a/crates/subgraph/queries/order.graphql b/crates/subgraph/queries/order.graphql index 18fac545a..f47bd4555 100644 --- a/crates/subgraph/queries/order.graphql +++ b/crates/subgraph/queries/order.graphql @@ -15,6 +15,11 @@ query OrderQuery($id: ID!) { tokenVault { id vaultId + vault { + owner { + id + } + } token { id name @@ -27,6 +32,11 @@ query OrderQuery($id: ID!) { tokenVault { id vaultId + vault { + owner { + id + } + } token { id name diff --git a/crates/subgraph/src/types/order.rs b/crates/subgraph/src/types/order.rs index 9ad0a12da..e4952fb39 100644 --- a/crates/subgraph/src/types/order.rs +++ b/crates/subgraph/src/types/order.rs @@ -53,9 +53,16 @@ pub struct Io { pub struct TokenVault { pub id: cynic::Id, pub vault_id: BigInt, + pub vault: Vault, pub token: Erc20, } +#[typeshare] +#[derive(cynic::QueryFragment, Debug, Clone, Serialize)] +pub struct Vault { + pub owner: Account, +} + #[typeshare] #[derive(cynic::QueryFragment, Debug, Clone, Serialize)] #[cynic(graphql_type = "ERC20")] diff --git a/crates/subgraph/src/types/order_traits.rs b/crates/subgraph/src/types/order_traits.rs index 8a8479998..8c49ab8dd 100644 --- a/crates/subgraph/src/types/order_traits.rs +++ b/crates/subgraph/src/types/order_traits.rs @@ -58,7 +58,7 @@ impl TryInto for OrderDetail { #[cfg(test)] mod tests { use super::*; - use crate::types::order::{Account, BigInt, Bytes, Erc20, Io, RainMetaV1, TokenVault}; + use crate::types::order::{Account, BigInt, Bytes, Erc20, Io, RainMetaV1, TokenVault, Vault}; #[test] fn test_try_into_call() { @@ -78,6 +78,11 @@ mod tests { token_vault: TokenVault { id: "".into(), vault_id: BigInt("1".into()), + vault: Vault { + owner: Account { + id: Bytes("".into()), + }, + }, token: Erc20 { id: cynic::Id::new("0x0000000000000000000000000000000000000005"), name: "".into(), @@ -90,6 +95,11 @@ mod tests { token_vault: TokenVault { id: "".into(), vault_id: BigInt("2".into()), + vault: Vault { + owner: Account { + id: Bytes("".into()), + }, + }, token: Erc20 { id: cynic::Id::new("0x0000000000000000000000000000000000000006"), name: "".into(), diff --git a/crates/subgraph/tests/order_test.rs b/crates/subgraph/tests/order_test.rs index 989acc206..a18a68a46 100644 --- a/crates/subgraph/tests/order_test.rs +++ b/crates/subgraph/tests/order_test.rs @@ -25,6 +25,11 @@ fn orders_query_gql_output() { tokenVault { id vaultId + vault { + owner { + id + } + } token { id name @@ -37,6 +42,11 @@ fn orders_query_gql_output() { tokenVault { id vaultId + vault { + owner { + id + } + } token { id name diff --git a/tauri-app/src/lib/components/ButtonBack.svelte b/tauri-app/src/lib/components/ButtonBack.svelte new file mode 100644 index 000000000..149e471be --- /dev/null +++ b/tauri-app/src/lib/components/ButtonBack.svelte @@ -0,0 +1,8 @@ + + + \ No newline at end of file diff --git a/tauri-app/src/lib/components/ButtonVaultLink.svelte b/tauri-app/src/lib/components/ButtonVaultLink.svelte new file mode 100644 index 000000000..a45a06641 --- /dev/null +++ b/tauri-app/src/lib/components/ButtonVaultLink.svelte @@ -0,0 +1,16 @@ + + \ No newline at end of file diff --git a/tauri-app/src/lib/utils/address.ts b/tauri-app/src/lib/utils/address.ts new file mode 100644 index 000000000..60330faca --- /dev/null +++ b/tauri-app/src/lib/utils/address.ts @@ -0,0 +1,8 @@ +import { getAddress, isAddress } from "viem"; + +export function formatAddressShorthand(address: string, size=4) { + if(!isAddress(address)) throw Error("Must be a valid address"); + const cased = getAddress(address); + + return `${cased.slice(0, size+2)}...${cased.slice(cased.length-size, cased.length)}`; +} diff --git a/tauri-app/src/routes/orders/[id]/+page.svelte b/tauri-app/src/routes/orders/[id]/+page.svelte index 2d3040f10..4eb8d1a8f 100644 --- a/tauri-app/src/routes/orders/[id]/+page.svelte +++ b/tauri-app/src/routes/orders/[id]/+page.svelte @@ -1,12 +1,13 @@