Channels
Update to my original post A few weeks ago I made a post because my ETH withdrawal got stuck in “Initiating” without a TXID and remained there for weeks. At first I believed it was just a temporary technical issue and that support would eventually solve it, but after weeks of getting nowhere I decided to investigate the exchange myself. For weeks I was trying to understand why my withdrawal wasn’t moving. Support kept asking for patience, tickets received generic responses and Telegram admins eventually stopped replying altogether. The only way to get their attention again was to create a new Telegram account and ask questions publicly inside the official group. Every time I did that, admins suddenly became active again while private messages continued to be ignored. A few days ago I reached the point where I simply couldn’t accept that my funds might be gone, so I started spending time on blockchain explorers trying to understand what was actually happening. During the last two days I began analyzing AscendEX hot wallets across multiple chains: Arbitrum Ethereum BSC Polygon Solana Arkham Multichain hot wallet: 0x983873529f95132BD1812A3B52c98Fb271d2f679 What I found was very concerning. The exchange appears to hold millions of dollars in assets, but most of the value comes from newly listed low-liquidity project tokens such as REUR, ASD, FTRB and other small-cap tokens. AscendEX constantly lists new projects and users deposit USDT, ETH and other liquid assets to buy them, but when users want to withdraw their funds, certain assets and networks appear to become extremely difficult to withdraw. While my ETH withdrawal remained stuck, some of their wallets contained almost no native ETH. At the same time trading activity continued normally and markets remained active. Personally, after monitoring the exchange activity and wallet movements during the last several days, I became convinced that a significant part of the exchange volume is likely generated by market-making bots. Markets remain active, orders continue moving and volume looks healthy even while users struggle to withdraw certain assets. During my research I also discovered another Telegram group (t .me / ascendexx) Inside that group I recognized several usernames that I had previously seen asking questions inside the official AscendEX Telegram group before being banned. I was eventually banned myself after repeatedly asking questions regarding my withdrawal. Speaking with these users confirmed many of my suspicions and showed me that my case was not an isolated incident. The most important thing I learned is that support was completely useless. The only progress I made came from monitoring the wallets myself. I started checking which assets were actually available on specific chains and whether enough liquidity existed before attempting withdrawals. After identifying a token that was present in one of their wallets, I performed a small test withdrawal and it succeeded. At this point I have managed to recover a small portion of my funds and I continue withdrawing through assets that still appear to have available liquidity and that can easily be exchanged elsewhere after withdrawal. The fact that users have to monitor exchange wallets in real time in order to determine which assets can actually be withdrawn should concern everyone using this exchange. Everything I learned came from blockchain analysis, wallet monitoring and communication with other affected users. Support never explained which assets were working, which networks had problems or how users could recover their funds. At this point I strongly do not recommend depositing funds to AscendEX under any circumstances. In my experience, getting money into the exchange is very easy, but getting it back out can become extremely difficult. If you currently have funds on AscendEX, I would strongly recommend testing small withdrawals immediately and verifying that the assets you hold can actually be withdrawn before depositing anything else. submitted by /u/itsckomi [link] [Kommentare]
Front end end errors are a primary driver of denials. The Substrate Eligibility Agent can help remediate them.
I'm a software engineer in San Francisco, currently working on a platform to streamline release management for VPCs: Bottlerocket. Posts 2026-06-23 A Rust macros use case: Tightly-coupled API definitions for the client and server A Rust macros use case: Tightly-coupled API definitions for the client and server I’m working on a Kubernetes operator and an API server for it to interface with. Both of these are crates in the same Rust workspace. The motivation for this was that I wanted to define all of the types used by the two services in one place, and keep the services tightly-coupled. When writing the operator, I wrote a protocol to define the HTTP requests the operator sends to the server: pub trait ApiPath { type Request: serde::Serialize; type Response: serde::de::DeserializeOwned; const METHOD: Method; const PATH: &'static str; } So that I could define paths/endpoints like this: pub async fn send(&self, body: P::Request) -> Result { let url = format!("https://{}/{}", self.host, P::PATH); self.client .request(P::METHOD, url) .bearer_auth(&self.token) .json(&body) .send() .await? .error_for_status()? .json::() .await } This worked super well when implementing the operator. All I had to do was call this generic send function with a struct that implemented ApiPath, which reduced a lot of boilerplate code, and let me define the method, body type, response type and path all in one place for each endpoint. When I started implementing the API server, which I used the axum crate for, I was having a hard time adding the routing/handling in an elegant way using the protocol I created for the operator. When defining a route in axum, you usually do something like this: axum::Router::new().route("/poll", axum::routing::get(poll)); The issue here though is that I’m now defining the path and method for each endpoint in a different place. I could do something like this, but I don’t really like how I’m specifying the endpoint struct in two places: axum::Router::new().route(Poll::PATH, method_to_handler_func(Poll::METHOD)(handler)); I was only vaguely familiar with macros and thought I’d see if this would be a good use case. After some iteration I got this: macro_rules! into_route { ($path:ty, $handler:expr) => { axum::Router::new().route(::PATH, from_method(::METHOD, $handler)) }; } * from_method just matches the http::Method to the axum handler, e.g. axum::routing::get. Now I can just define my router like this: let operator_routes = axum::Router::new() .merge(into_route!(Poll, poll)) .merge(into_route!(ListImages, list_images)) All I have to do is pass in the struct implementing the ApiPath protocol and the handler function! This was my first practical use of macros, and I thought it was interesting enough to share.
Create a free gift registry that works at any store — Amazon, Etsy, IKEA and more. Guests claim gifts anonymously so surprises stay secret. Perfect for weddings, baby showers, birthdays and more.
AI-powered job search tools that help you find, research, and apply to jobs 3x faster. Automate applications, optimize resumes, and track your progress with FrogHire.ai.