├── src └── lib.rs ├── .gitignore ├── aave-v3 ├── src │ ├── lib.rs │ └── contracts │ │ ├── context.rs │ │ ├── proxy.rs │ │ ├── versioned_initializable.rs │ │ ├── i_delegation_token.rs │ │ ├── erc165.rs │ │ ├── ierc165.rs │ │ ├── mod.rs │ │ ├── flash_loan_logic.rs │ │ ├── i_sequencer_oracle.rs │ │ ├── pool_storage.rs │ │ ├── address.rs │ │ ├── helpers.rs │ │ ├── strings.rs │ │ ├── safe_cast.rs │ │ ├── safe_math.rs │ │ ├── initializable.rs │ │ ├── data_types.rs │ │ ├── math_utils.rs │ │ ├── wad_ray_math.rs │ │ ├── generic_logic.rs │ │ ├── calldata_logic.rs │ │ ├── g_pv_2_safe_erc20.rs │ │ ├── percentage_math.rs │ │ ├── user_configuration.rs │ │ ├── shared_types.rs │ │ ├── configurator_input_types.rs │ │ ├── selfdestruct_transfer.rs │ │ ├── base_upgradeability_proxy.rs │ │ ├── isolation_mode_logic.rs │ │ ├── reserve_logic.rs │ │ └── i_price_oracle.rs ├── Cargo.toml └── build.rs ├── compound ├── src │ ├── lib.rs │ └── contracts │ │ ├── mod.rs │ │ ├── comp_interface.rs │ │ ├── v1_price_oracle_interface.rs │ │ ├── exponential.rs │ │ ├── careful_math.rs │ │ ├── safe_math.rs │ │ ├── token_error_reporter.rs │ │ ├── c_erc_20_storage.rs │ │ ├── comptroller_error_reporter.rs │ │ ├── vat_like.rs │ │ └── c_delegation_storage.rs ├── Cargo.toml └── build.rs ├── template ├── src │ ├── contracts │ │ └── mod.rs │ └── lib.rs ├── Cargo.toml └── build.rs ├── uniswap-v3-periphery ├── src │ └── lib.rs ├── Cargo.toml └── build.rs ├── Cargo.toml ├── .github └── workflows │ └── ci.yml └── README.md /src/lib.rs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | -------------------------------------------------------------------------------- /aave-v3/src/lib.rs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /compound/src/lib.rs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /template/src/contracts/mod.rs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /uniswap-v3-periphery/src/lib.rs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /template/src/lib.rs: -------------------------------------------------------------------------------- 1 | #![allow(clippy::all)] 2 | #![allow(non_camel_case_types)] 3 | 4 | mod contracts; 5 | pub use contracts::*; -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "defi-bindings" 3 | version = "0.2.0" 4 | edition = "2021" 5 | 6 | [workspace] 7 | members = [ 8 | "aave-v3", 9 | "compound", 10 | "uniswap-v3-periphery", 11 | ] -------------------------------------------------------------------------------- /uniswap-v3-periphery/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "uniswap-v3-periphery-bindings" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [dependencies] 7 | ethers = { git = "https://github.com/gakonst/ethers-rs", features = ["abigen"] } 8 | serde_json = "1.0" 9 | 10 | [build-dependencies] 11 | foundry-binder = { git = "https://github.com/foundry-rs/foundry" } -------------------------------------------------------------------------------- /template/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "template-bindings" 3 | version = "0.2.0" 4 | edition = "2021" 5 | description = """ 6 | Rust bindings for