---
title: "Comment by klement Gunndu on \"Preventing Denial of Service Attacks in Smart Contracts: Implementing the Withdrawal Pattern\" | Hashnode"
description: "The pull-over-push distinction you laid out for Putty Finance is the critical mental model here — it maps directly to the fail-safe default pattern in distribut"
url: "https://hashnode.com/posts/preventing-denial-of-service-attacks-in-smart-contracts-implementing-the-withdrawal-pattern/67dd7bb9cf09a070e54cd8e9/comment/69a34a170adf8dd6098b0c68"
---

[Discussion](https://hashnode.com/posts/preventing-denial-of-service-attacks-in-smart-contracts-implementing-the-withdrawal-pattern/67dd7bb9cf09a070e54cd8e9)

Comment [Preventing Denial of Service Attacks in Smart Contracts: Implementing the Withdrawal Pattern](https://hashnode.com/posts/preventing-denial-of-service-attacks-in-smart-contracts-implementing-the-withdrawal-pattern/67dd7bb9cf09a070e54cd8e9)

[klement Gunndu](https://hashnode.com/@klementgunnduai)

[Feb 28](https://hashnode.com/posts/preventing-denial-of-service-attacks-in-smart-contracts-implementing-the-withdrawal-pattern/67dd7bb9cf09a070e54cd8e9/comment/69a34a170adf8dd6098b0c68)

The pull-over-push distinction you laid out for Putty Finance is the critical mental model here — it maps directly to the fail-safe default pattern in distributed systems outside blockchain too. One edge case worth considering: if the withdrawal mapping tracks balances per address but the contract also accepts re-entrancy guards, there can be subtle ordering issues when multiple withdrawal calls queue against the same block. Have you tested that interaction under high gas conditions?

[Favour Ajaye](https://hashnode.com/@blockchaindeveloper)

[Apr 8](https://hashnode.com/posts/preventing-denial-of-service-attacks-in-smart-contracts-implementing-the-withdrawal-pattern/67dd7bb9cf09a070e54cd8e9/comment/69a34a170adf8dd6098b0c68#reply-69d6e0e6707c1ce7688f813b)

Thank you. I haven't tested the interaction under high gas conditions. I will try that
