Developer Docs
AppGitHub
  • Welcome!
  • Smart contracts
    • Core
      • Introduction
      • Deep Dive
      • Smart Contract Reference
        • PWN Hub
          • Tags
        • PWN Config
        • PWN Vault
        • Loan Types
          • Simple Loan
        • Proposals
          • Simple Loan Proposal
            • Simple Proposal
            • List Proposal
            • Elastic Proposal
            • Elastic Chainlink Proposal
            • Dutch Proposal
        • PWN Utilized Credit
        • PWN LOAN
        • PWN Revoked Nonce
        • Peripheral Contracts
          • Acceptor Controller
            • World ID
          • State Fingerprint Computer
            • UniV3
            • Chicken Bonds
          • Pool Adapter
            • Aave
            • Compound
            • ERC4626
        • Miscellaneous
          • PWN Fee Calculator
          • PWN Signature Checker
          • PWN Errors
          • PWN Periphery
          • Timelock
    • PWN DAO
      • Governance
        • Optimistic
        • Token
      • Tokens
        • PWN
        • stPWN
        • vePWN
          • Stake
          • Power
          • Metadata
      • Epoch Clock
      • Miscellaneous
        • Errors
        • EpochPowerLib
    • Tools
      • PWN Safe
        • Architecture
        • Security considerations
        • Smart Contract Reference
          • PWN Safe Factory
          • ATR Module
            • Tokenized Asset Manager
            • Recipient Permission Manager
          • Whitelist
          • ATR Guard
            • Operators context
      • Token Bundler
      • PWN Deployer
    • Libraries
      • MultiToken
    • Contract Addresses
  • More documentation
    • PWN Docs
    • FAQ
    • Audits
    • Using PWN without front-end
  • Deprecated
    • PWN Beta
      • Architecture
      • PWN
        • Off-chain signed offer
        • Offer types
      • PWN Vault
      • PWN LOAN
Powered by GitBook
On this page
  • 1. Summary
  • 2. Important links
  • 3. Implementation
Edit on GitHub
  1. Smart contracts
  2. Core
  3. Smart Contract Reference
  4. Peripheral Contracts

Acceptor Controller

PreviousPeripheral ContractsNextWorld ID

Last updated 1 month ago

1. Summary

IPWNAcceptorController.sol defines an interface each Acceptor Controller contract has to implement. Acceptor Controllers allow users to define specific eligibility parameters for their counterparties, such as World ID verification, OFAC compliance, and many others.

2. Important links

3. Implementation

// SPDX-License-Identifier: GPL-3.0-only
pragma solidity 0.8.16;

import { IERC20 } from "MultiToken/MultiToken.sol";


/**
 * @title IPWNAcceptorController
 * @dev Interface for a contract that checks if a given proposal acceptor is valid.
 */
interface IPWNAcceptorController {

    /**
     * @notice Check if the proposal acceptor is valid.
     * @dev Must return IPWNAcceptorController interface id (0x75327ccb) or revert if the acceptor is not valid.
     * @param acceptor The address of the proposal acceptor.
     * @param proposerData The data of the proposal proposer.
     * @param acceptorData The data of the proposal acceptor.
     * @return The IPWNAcceptorController interface id (0x75327ccb) if the acceptor is valid.
     */
    function checkAcceptor(
        address acceptor, bytes memory proposerData, bytes memory acceptorData
    ) external view returns (bytes4);

}

pwn_protocol/src/interfaces/IPWNAcceptorController.sol at v1.4 · PWNDAO/pwn_protocolGitHub
Logo