NashPoint
NashPoint
  • Introduction
    • Introduction To Nashpoint
    • Current Features & Capabilities
    • Post Launch Roadmap
  • User Documentation
    • Node Contract Overview
    • Node Owner & Rebalancer Roles
    • Portfolio Management
    • Rebalancing & Strategy Execution
    • User Deposits & Shares
    • Asynchronous Redemptions
      • Two Step Process
    • Swing Pricing
    • Processing User Redemptions
    • Management & Execution Fees
  • Developer Documentation
    • Overview
    • Role-Based Access Control
    • Smart Contract Architecture
  • Routers
    • ERC-4626 Router
    • ERC-7540 Router
    • Router Tolerance
  • Creating A Node
  • Asynchronous Redemptions
  • Managing a Node
    • Adding & Removing Components
    • Updating Component Allocations
    • Rebalance Window & Cooldown
    • Rebalancing a Node
    • Managing Rebalancers
    • Processing User Redemptions
      • Reserve vs Component Fulfillment
    • Reserve Management
    • Fees Configuration
    • Liquidation Queue Configuration
    • Max Deposit Limits
    • Operator Permissions
    • Emergency Controls
  • Upgrading a Node
    • Adding Quoters & Routers
    • Custom Router Development
    • Multi-Tier Permissioning
  • Cached Data & Gas Efficiency
  • Swing Pricing Calculations
  • Adding Routers and Components - Step by Step Guide
  • Node Execute Function
  • Resources
    • FAQ
    • Glossary
    • Supported Networks & Protocols
    • Deployments
    • Audits
    • GitHub
    • Telegram
    • NashPoint
  • Node Strategies
    • Test Node A
Powered by GitBook
On this page
  • Overview
  • Configuration
  • Example Usage
  • Governance Process
Edit on GitHub
  1. Routers

Router Tolerance

Overview

Router tolerance is a safety mechanism that allows for minor discrepancies between expected and actual returns when interacting with components. This accounts for potential rounding differences in share/asset calculations across different protocols.

Configuration

  • Set by Registry Owner via setTolerance() function

  • Can be configured independently for each Router

  • Default value is 1 (smallest possible unit)

  • Should be kept minimal to ensure tight bounds on returns

Example Usage

// If actual shares returned are within tolerance of expected, transaction succeeds
if ((sharesReturned + tolerance) < expectedShares) {
    revert ErrorsLib.InsufficientSharesReturned();
}

Governance Process

  1. Registry Owner identifies need for tolerance adjustment

  2. Proposes new tolerance value based on component behavior

  3. Executes setTolerance() on target Router:

router.setTolerance(newToleranceValue);

Tolerance values should be carefully considered as they represent acceptable slippage in component interactions. Higher values provide more flexibility but reduce precision of return validation.

PreviousERC-7540 RouterNextCreating A Node

Last updated 2 months ago