EVM Smart Contracts | Architecture
Component Interactions
Entry Points
BandoRouter: The main entry point for users to submit fulfillment requests
BandoFulfillmentManager: The entry point for fulfillers to register fulfillment results
Data Flow
Request Submission:
User submits a request through the BandoRouter
Router forwards the request to the appropriate fulfillable contract
Fund Management:
BandoFulfillable holds native currency in escrow
BandoERC20Fulfillable holds ERC20 tokens in escrow
Both contracts track fulfillment records and manage fund pools
Fulfillment Registration:
Fulfiller submits fulfillment results to the BandoFulfillmentManager
Manager validates the fulfiller's authorization with the FulfillableRegistry
Manager registers the result with the appropriate fulfillable contract
Fund Release:
Upon successful fulfillment, funds are released to beneficiaries
Fees are accumulated for fulfillers
In V1.2, funds can be swapped to stablecoins before release
Proxy Architecture
Each core contract is deployed behind a proxy:
BandoRouterProxy: Proxy for the BandoRouter
BandoFulfillmentManagerProxy: Proxy for the BandoFulfillmentManager
BandoFulfillableProxy: Proxy for the BandoFulfillable
BandoERC20FulfillableProxy: Proxy for the BandoERC20Fulfillable
FulfillableRegistryProxy: Proxy for the FulfillableRegistry
ERC20TokenRegistryProxy: Proxy for the ERC20TokenRegistry
Last updated
Was this helpful?