Propeller Protocol Lib
Last updated
Last updated
Protocol lib is a library used by Propellerheads.xyz solvers to integrate decentralized protocols. Currently, only swap/exchange protocols are supported.
To integrate with PropellerHeads solvers, 3 components need to be provided:
Protocol logic: Provides simulations of the protocols logic.
Indexing: Provides access to the protocol state used by the simulation.
Execution: Given a solution, this component will encode and execute it on-chain.
To propose an integration, create a pull request in this repository with the above components implemented.
PropellerHeads currently exposes two integration modes to specify the protocols' underlying logic:
VM Integration: This integration type requires implementing an adapter interface in any language that compiles to the respective vm byte code. This SDK provides the interface only in Solidity.
Native Rust Integration: Coming soon, this integration type requires implementing a Rust trait that describes the protocol logic.
For indexing purposes, it is required that you provide a package that emits a specified set of messages. If your protocol already has a for indexing implemented, you can adjust it to emit the required messages.
VM Integration Currently the only supported integration is for EVM protocols in order to complement the Solidity protocol logic. .
Native Integration Coming soon, this integration will complement the upcoming native Rust protocol logic.
To create and execute a valid transaction that routes tokens through protocols, each protocol needs to provide implementations for the SwapExecutor
Solidity interface and the SwapEncoder
Python interface. These interfaces work together to form and execute a swap on a protocol..