Skip to content

Ampleforth tycho integration #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
436 changes: 436 additions & 0 deletions evm/src/ampleforth/AmpleforthSwapAdapter.sol

Large diffs are not rendered by default.

19 changes: 19 additions & 0 deletions evm/src/ampleforth/IBillBroker.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
pragma solidity ^0.8.13;

interface IBillBroker {
function swapPerpsForUSD(uint256 perpAmt, uint256 usdAmtMin)
external
returns (uint256);
function swapUSDForPerps(uint256 usdAmt, uint256 perpAmtMin)
external
returns (uint256);
function computePerpToUSDSwapAmt(uint256 perpAmt)
external
returns (uint256);
function computeUSDToPerpSwapAmt(uint256 usdAmt)
external
returns (uint256);
function usdBalance() external view returns (uint256);
function perpBalance() external view returns (uint256);
}
17 changes: 17 additions & 0 deletions evm/src/ampleforth/ISTAMPL.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
pragma solidity ^0.8.13;

interface ISTAMPL {
function swapUnderlyingForPerps(uint256 underlyingAmt)
external
returns (uint256);
function swapPerpsForUnderlying(uint256 perpAmt)
external
returns (uint256);
function computeUnderlyingToPerpSwapAmt(uint256 underlyingAmt)
external
returns (uint256);
function computePerpToUnderlyingSwapAmt(uint256 perpAmt)
external
returns (uint256);
}
23 changes: 23 additions & 0 deletions evm/src/ampleforth/IWAMPL.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
pragma solidity ^0.8.13;

interface IWAMPL {
function deposit(uint256 underlyingAmt) external returns (uint256);
function depositFor(address user, uint256 underlyingAmt)
external
returns (uint256);
function depositAll() external returns (uint256);
function burn(uint256 wrapperAmt) external returns (uint256);
function burnTo(address user, uint256 wrapperAmt)
external
returns (uint256);
function burnAll() external returns (uint256);
function underlyingToWrapper(uint256 underlyingAmt)
external
view
returns (uint256);
function wrapperToUnderlying(uint256 wrapperAmt)
external
view
returns (uint256);
}
63 changes: 63 additions & 0 deletions evm/src/ampleforth/manifest.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
author:
name: ampleforth.org
email: dev-support@ampleforth.org

constants:
protocol_gas: 30000

contract: AmpleforthSwapAdapter.sol

instances:
- chain:
name: mainnet
id: 0

tests:
instances:
- pool_id: "0xEDB171C18cE90B633DB442f2A6F72874093b49Ef" # WAMPL
sell_token: "0xd46ba6d942050d489dbd938a2c909a5d5039a161" # AMPL
buy_token: "0xEDB171C18cE90B633DB442f2A6F72874093b49Ef" # WAMPL
block: 13275716
chain:
id: 0
name: mainnet

- pool_id: "0xEDB171C18cE90B633DB442f2A6F72874093b49Ef" # WAMPL
sell_token: "0xEDB171C18cE90B633DB442f2A6F72874093b49Ef" # WAMPL
buy_token: "0xd46ba6d942050d489dbd938a2c909a5d5039a161" # AMPL
block: 13275716
chain:
id: 0
name: mainnet

- pool_id: "0x82A91a0D599A45d8E9Af781D67f695d7C72869Bd" # STAMPL
sell_token: "0xd46ba6d942050d489dbd938a2c909a5d5039a161" # AMPL
buy_token: "0xc1f33e0cf7e40a67375007104b929e49a581bafe" # SPOT
block: 20127143
chain:
id: 0
name: mainnet

- pool_id: "0x82A91a0D599A45d8E9Af781D67f695d7C72869Bd" # STAMPL
sell_token: "0xc1f33e0cf7e40a67375007104b929e49a581bafe" # SPOT
buy_token: "0xd46ba6d942050d489dbd938a2c909a5d5039a161" # AMPL
block: 20127143
chain:
id: 0
name: mainnet

- pool_id: "0xA088Aef966CAD7fE0B38e28c2E07590127Ab4ccB" # BillBroker
sell_token: "0xc1f33e0cf7e40a67375007104b929e49a581bafe" # SPOT
buy_token: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" # USDC
block: 20127143
chain:
id: 0
name: mainnet

- pool_id: "0xA088Aef966CAD7fE0B38e28c2E07590127Ab4ccB" # BillBroker
sell_token: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" # USDC
buy_token: "0xc1f33e0cf7e40a67375007104b929e49a581bafe" # SPOT
block: 20127143
chain:
id: 0
name: mainnet
Loading