SynthSwapper
Last updated
Was this helpful?
Last updated
Was this helpful?
Replacement of Virtual Synths in favor of gas savings. Allows swapping synths via the Synthetix protocol or Saddle's pools. The Bridge.sol
contract will deploy minimal clones of this contract upon initiating any cross-asset swaps.
constructor()
Initializes the contract when deploying this directly. This prevents others from calling initialize() on the target contract and setting themself as the owner.
initialize()
Sets the owner
as the caller of this function
swapSynth(bytes32 sourceKey, uint256 synthAmount, bytes32 destKey) → uint256
Swaps the synth to another synth via the Synthetix protocol.
sourceKey
: currency key of the source synth
synthAmount
: amount of the synth to swap
destKey
: currency key of the destination synth
amount of the destination synth received
swapSynthToToken(contract ISwap swap, contract IERC20 tokenFrom, uint8 tokenFromIndex, uint8 tokenToIndex, uint256 tokenFromAmount, uint256 minAmount, uint256 deadline, address recipient) → contract IERC20, uint256
Approves the given tokenFrom
and swaps it to another token via the given swap
pool.
swap
: the address of a pool to swap through
tokenFrom
: the address of the stored synth
tokenFromIndex
: the index of the token to swap from
tokenToIndex
: the token the user wants to swap to
tokenFromAmount
: the amount of the token to swap
minAmount
: the min amount the user would like to receive, or revert.
deadline
: latest timestamp to accept this transaction
recipient
: the address of the recipient
withdraw(contract IERC20 token, address recipient, uint256 withdrawAmount, bool shouldDestroy)
Withdraws the given amount of token
to the recipient
.
token
: the address of the token to withdraw
recipient
: the address of the account to receive the token
withdrawAmount
: the amount of the token to withdraw
shouldDestroy
: whether this contract should be destroyed after this call
destroy()
Destroys this contract. Only owner can call this function.