LogoLogo
  • Start Here
    • Use Cases
    • Fees
    • Integrated DEXs
    • Submitting an Order
    • Available Tokens
    • Post-Order Analytics
    • Setting Up Notifications
    • Managing DeFi Strategies
    • Smart Order Router (SOR)
    • Terminology
  • Referrals
  • Order Types
    • Dexible's Order Types
      • Segmented Market
      • TWAP
      • Limit
      • Take Profit
      • Stop Loss
      • Trailing Stop
      • Stop Limit
  • DXBL
    • DXBL & Proof of Trade Litepaper
      • Proof of Trade
      • Minting Rate
      • Supply Mechanism
      • Burning $DXBL
      • DXBL Discount
      • Summary
    • DXBL Technical Paper
      • Smart Contract Architecture
      • Design Principles
      • Proxy Pattern
      • Change Process
      • Multisig Approach
      • Configuration
      • Community Vault Contract
      • Dexible Contract
      • DXBL Token Contract
      • Arbitrum Gas
    • DXBL FAQs
      • $DXBL Contract Addresses
      • $DXBL Questions
      • Protocol Mechanics
      • Trader Questions
      • Miscellaneous Questions
    • Terminology
    • Audit & Contract Addresses
  • Support
    • Changelog
    • How to Participate
    • FAQs
  • Miscellaneous
    • Dexible Press Kit
    • 🔗Resource Links
      • Blog
      • Help
      • Academy
    • 🔗Important Links
      • Terms Of Service
      • Privacy Policy
      • Dexible SDK
    • 🔗Community Links
      • Twitter
      • Telegram
      • Discord
      • Youtube
      • Medium
Powered by GitBook
On this page
  • Proxy Pattern
  • Logic Contracts vs Parent Contracts
  • EOA

Was this helpful?

  1. DXBL
  2. DXBL Technical Paper

Proxy Pattern

PreviousDesign PrinciplesNextChange Process

Last updated 2 years ago

Was this helpful?

The Proof of Trade protocol will use the Proxy Pattern in Solidity, delegating "logic" contracts from a static parent proxy contract. This approach offers flexibility but leaves the protocol vulnerable to unwanted changes or bugs. Moreover, because the Proof of Trade requirements dictate that no single EOA can change any contract, upgrades will go through a rigorous process outlined in the .

The exception is the $DXBL token contract, which will never be upgradeable.

Proxy Pattern

The Proxy Pattern is a Solidity design pattern enabling a more dynamic delegation of calls to a target contract. The proxy contract acts as an intermediary between a calling contract and the target contract by forwarding calls and delegating execution. This pattern enables the target contract to be upgraded or changed without affecting the calling contract. The proxy contract remains constant and acts as a stable interface to the target contract.

Logic Contracts vs Parent Contracts

Delegating "logic" contracts from a non-changing parent proxy contract means that the parent contract acts as a static and unchanging intermediary between the calling contract and one or more logic contracts that hold the actual implementation of the desired functionality. The parent contract delegates calls the appropriate logic contract, allowing the logic to be updated or changed without affecting the calling contract. This approach provides a separation of concerns, making it easier to manage and upgrade the logic contracts.

EOA

A single EOA, or Externally Owned Account, is a type of EVM wallet account controlled by a private key held by a human or a program. An EOA does not have its own code or functionality and can be used to interact with smart contracts or send transactions on an EVM network. An EOA is typically created by a user through wallet software, and is used to store and manage addresses' tokens and account privileges.

Change Process