Latest 25 from a total of 2,099 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Deposit_and_stak... | 31276957 | 9 mins ago | IN | 0 FRAX | 0.00000858 | ||||
| Deposit_and_stak... | 31262911 | 7 hrs ago | IN | 0 FRAX | 0.0000053 | ||||
| Deposit_and_stak... | 31251063 | 14 hrs ago | IN | 0 FRAX | 0.00000505 | ||||
| Deposit_and_stak... | 31230517 | 25 hrs ago | IN | 0 FRAX | 0.00004117 | ||||
| Deposit_and_stak... | 31230443 | 26 hrs ago | IN | 0 FRAX | 0.0000386 | ||||
| Deposit_and_stak... | 31228362 | 27 hrs ago | IN | 0 FRAX | 0.00002349 | ||||
| Deposit_and_stak... | 31228070 | 27 hrs ago | IN | 0 FRAX | 0.00001107 | ||||
| Deposit_and_stak... | 31227659 | 27 hrs ago | IN | 0 FRAX | 0.00000913 | ||||
| Deposit_and_stak... | 31227507 | 27 hrs ago | IN | 0 FRAX | 0.0000088 | ||||
| Deposit_and_stak... | 31226393 | 28 hrs ago | IN | 0 FRAX | 0.00000969 | ||||
| Deposit_and_stak... | 31205219 | 40 hrs ago | IN | 0 FRAX | 0.00000765 | ||||
| Deposit_and_stak... | 31174928 | 2 days ago | IN | 0 FRAX | 0.00000993 | ||||
| Deposit_and_stak... | 31172318 | 2 days ago | IN | 0 FRAX | 0.00000679 | ||||
| Deposit_and_stak... | 31164664 | 2 days ago | IN | 0 FRAX | 0.00000499 | ||||
| Deposit_and_stak... | 31164613 | 2 days ago | IN | 0 FRAX | 0.00000582 | ||||
| Deposit_and_stak... | 31129407 | 3 days ago | IN | 0 FRAX | 0.00001128 | ||||
| Deposit_and_stak... | 31093853 | 4 days ago | IN | 0 FRAX | 0.00003503 | ||||
| Deposit_and_stak... | 31091295 | 4 days ago | IN | 0 FRAX | 0.00001145 | ||||
| Deposit_and_stak... | 31074230 | 4 days ago | IN | 0 FRAX | 0.00000819 | ||||
| Deposit_and_stak... | 31073778 | 4 days ago | IN | 0 FRAX | 0.00000978 | ||||
| Deposit_and_stak... | 31052704 | 5 days ago | IN | 0 FRAX | 0.00000939 | ||||
| Deposit_and_stak... | 31050901 | 5 days ago | IN | 0 FRAX | 0.00000954 | ||||
| Deposit_and_stak... | 31050112 | 5 days ago | IN | 0 FRAX | 0.00000828 | ||||
| Deposit_and_stak... | 31049873 | 5 days ago | IN | 0 FRAX | 0.00000847 | ||||
| Deposit_and_stak... | 31049834 | 5 days ago | IN | 0 FRAX | 0.00000799 |
Cross-Chain Transactions
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
CurveDeposit&StakeZap
Compiler Version
vyper:0.3.10
Contract Source Code (Vyper language format)
# @version 0.3.10
"""
@title CurveDeposit&StakeZap
@custom:version 1.0.0
@author Curve.Fi
@license Copyright (c) Curve.Fi, 2020-2024 - all rights reserved
@notice A zap to add liquidity to pool and deposit into gauge in one transaction
"""
version: public(constant(String[8])) = "1.0.0"
# External Contracts
from vyper.interfaces import ERC20
interface Pool2:
def add_liquidity(amounts: uint256[2], min_mint_amount: uint256): nonpayable
interface Pool3:
def add_liquidity(amounts: uint256[3], min_mint_amount: uint256): nonpayable
interface PoolStableNg:
def add_liquidity(_amounts: DynArray[uint256, MAX_COINS], _min_mint_amount: uint256): nonpayable
interface MetaZap:
def add_liquidity(pool: address, _amounts: DynArray[uint256, MAX_COINS], _min_mint_amount: uint256): nonpayable
interface Gauge:
def deposit(lp_token_amount: uint256, addr: address): nonpayable
MAX_COINS: constant(uint256) = 9
@external
@nonreentrant('lock')
def deposit_and_stake(
deposit: address,
lp_token: address,
gauge: address,
n_coins: uint256,
coins: DynArray[address, MAX_COINS],
amounts: DynArray[uint256, MAX_COINS],
min_mint_amount: uint256,
use_dynarray: bool,
pool: address = empty(address),
) -> uint256:
"""
@notice Deposit coins into pool and stake obtained LP tokens into gauge.
Zap address should be passed to `deposit` arg in case of meta-pool deposit with underlying coins.
@param deposit Zap address for meta-pool deposit with underlying coins, pool address for other cases.
@param lp_token The address of LP token
@param gauge The address of gauge
@param n_coins The number of tokens (underlying or wrapped for meta-pools)
@param coins List of addresses of coins (underlying or wrapped for meta-pools)
@param amounts List of amounts of coins to deposit (underlying or wrapped for meta-pools)
@param min_mint_amount Minimum amount of LP tokens to mint from the deposit
@param use_dynarray True - plain stable, meta stable with underlying coins
False - twocrypto, tricrypto, meta stable with wrapped coins
@param pool The address of meta-pool in case of deposit with underlying coins
@return Amount of LP tokens staked into gauge
"""
assert n_coins >= 2, 'n_coins must be >=2'
assert n_coins <= MAX_COINS, 'n_coins must be <=MAX_COINS'
# Ensure allowance for swap or zap
for i in range(MAX_COINS):
if i == n_coins:
break
if amounts[i] == 0 or ERC20(coins[i]).allowance(self, deposit) > 0:
continue
ERC20(coins[i]).approve(deposit, max_value(uint256), default_return_value=True)
# Ensure allowance for gauge
if ERC20(lp_token).allowance(self, gauge) == 0:
ERC20(lp_token).approve(gauge, max_value(uint256))
# Transfer coins from owner
for i in range(MAX_COINS):
if i == n_coins:
break
if amounts[i] > 0:
assert ERC20(coins[i]).transferFrom(msg.sender, self, amounts[i], default_return_value=True)
# Deposit into pool
if pool != empty(address): # meta-pool deposit with underlying coins, deposit is zap here
MetaZap(deposit).add_liquidity(pool, amounts, min_mint_amount)
elif use_dynarray: # plain stable pool
PoolStableNg(deposit).add_liquidity(amounts, min_mint_amount)
else:
if n_coins == 2: # twocrypto or meta-pool deposit with wrapped coins
Pool2(deposit).add_liquidity([amounts[0], amounts[1]], min_mint_amount)
elif n_coins == 3: # tricrypto
Pool3(deposit).add_liquidity([amounts[0], amounts[1], amounts[2]], min_mint_amount)
else:
raise "Wrong arguments"
# Stake into gauge
lp_token_amount: uint256 = ERC20(lp_token).balanceOf(self)
assert lp_token_amount > 0 # dev: swap-token mismatch
Gauge(gauge).deposit(lp_token_amount, msg.sender)
return lp_token_amount
@payable
@external
def __default__():
passContract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"stateMutability":"nonpayable","type":"function","name":"deposit_and_stake","inputs":[{"name":"deposit","type":"address"},{"name":"lp_token","type":"address"},{"name":"gauge","type":"address"},{"name":"n_coins","type":"uint256"},{"name":"coins","type":"address[]"},{"name":"amounts","type":"uint256[]"},{"name":"min_mint_amount","type":"uint256"},{"name":"use_dynarray","type":"bool"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"deposit_and_stake","inputs":[{"name":"deposit","type":"address"},{"name":"lp_token","type":"address"},{"name":"gauge","type":"address"},{"name":"n_coins","type":"uint256"},{"name":"coins","type":"address[]"},{"name":"amounts","type":"uint256[]"},{"name":"min_mint_amount","type":"uint256"},{"name":"use_dynarray","type":"bool"},{"name":"pool","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"view","type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string"}]}]Contract Creation Code
61088461001161000039610884610000f35f3560e01c60026003820660011b61087e01601e395f51565b6354fd4d508118610878573461087a5760208060805260056040527f312e302e3000000000000000000000000000000000000000000000000000000060605260408160800181518152602082015160208201528051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506080f3610878565b6210d5a78118610878576101443610341761087a575f610340526100e456610878565b63c0c702dc8118610878576101643610341761087a57610104358060a01c61087a57610340525b6004358060a01c61087a576040526024358060a01c61087a576060526044358060a01c61087a57608052608435600401600981351161087a5780355f816009811161087a57801561015657905b8060051b6020850101358060a01c61087a578160051b60c00152600101818118610131575b50508060a052505060a435600401600981351161087a57803560208160051b0180836101e03750505060e4358060011c61087a57610320525f5460021461087a5760025f556002606435101561020b576013610360527f6e5f636f696e73206d757374206265203e3d32000000000000000000000000006103805261036050610360518061038001601f825f031636823750506308c379a061032052602061034052601f19601f61036051011660440161033cfd5b6009606435111561027b57601b610360527f6e5f636f696e73206d757374206265203c3d4d41585f434f494e5300000000006103805261036050610360518061038001601f825f031636823750506308c379a061032052602061034052601f19601f61036051011660440161033cfd5b5f6009905b80610360526064356103605118610296576103bb565b610360516101e05181101561087a5760051b61020001516102b857600161030c565b6103605160a05181101561087a5760051b60c0015163dd62ed3e61038052306103a0526040516103c0526020610380604461039c845afa6102fb573d5f5f3e3d5ffd5b60203d1061087a5761038090505115155b15610316576103b0565b6103605160a05181101561087a5760051b60c0015163095ea7b3610380526040516103a0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6103c0526020610380604461039c5f855af161037a573d5f5f3e3d5ffd5b3d61039157803b1561087a5760016103e0526103aa565b60203d1061087a57610380518060011c61087a576103e0525b6103e050505b600101818118610280575b505060605163dd62ed3e6103605230610380526080516103a0526020610360604461037c845afa6103ee573d5f5f3e3d5ffd5b60203d1061087a576103609050516104705760605163095ea7b36103c0526080516103e0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6104005260206103c060446103dc5f855af1610452573d5f5f3e3d5ffd5b60203d1061087a576103c0518060011c61087a576104205261042050505b5f6009905b8061036052606435610360511861048b5761054b565b610360516101e05181101561087a5760051b610200015115610540576103605160a05181101561087a5760051b60c001516323b872dd61038052336103a052306103c052610360516101e05181101561087a5760051b61020001516103e0526020610380606461039c5f855af1610504573d5f5f3e3d5ffd5b3d61051b57803b1561087a57600161040052610534565b60203d1061087a57610380518060011c61087a57610400525b6104009050511561087a575b600101818118610475575b505061034051156105f15760405163fd9de6316103605260606103405161038052806103a05280610380015f6101e0518083528060051b5f826009811161087a5780156105b257905b8060051b61020001518160051b602088010152600101818118610594575b5050820160200191505090508101905060c4356103c05250803b1561087a575f6103606101a461037c5f855af16105eb573d5f5f3e3d5ffd5b506107ee565b6103205161075f5760026064351861066b57604051630b4c7e4d610360526101e0511561087a575f60051b61020001516103805260026101e0511061087a57600160051b61020001516103a05260c4356103c052803b1561087a575f610360606461037c5f855af1610665573d5f5f3e3d5ffd5b506107ee565b6003606435186106f657604051634515cef3610360526101e0511561087a575f60051b61020001516103805260026101e0511061087a57600160051b61020001516103a05260036101e0511061087a57600260051b61020001516103c05260c4356103e052803b1561087a575f610360608461037c5f855af16106f0573d5f5f3e3d5ffd5b506107ee565b600f610360527f57726f6e6720617267756d656e747300000000000000000000000000000000006103805261036050610360518061038001601f825f031636823750506308c379a061032052602061034052601f19601f61036051011660440161033cfd6107ee565b60405163b72df5de610360526040806103805280610380015f6101e0518083528060051b5f826009811161087a5780156107b357905b8060051b61020001518160051b602088010152600101818118610795575b5050820160200191505090508101905060c4356103a05250803b1561087a575f61036061018461037c5f855af16107ec573d5f5f3e3d5ffd5b505b6060516370a0823161038052306103a0526020610380602461039c845afa610818573d5f5f3e3d5ffd5b60203d1061087a5761038090505161036052610360511561087a57608051636e553f6561038052610360516103a052336103c052803b1561087a575f610380604461039c5f855af161086c573d5f5f3e3d5ffd5b50602061036060035f55f35b005b5f80fd009a00bd001884190884810600a16576797065728300030a0014
Deployed Bytecode
0x5f3560e01c60026003820660011b61087e01601e395f51565b6354fd4d508118610878573461087a5760208060805260056040527f312e302e3000000000000000000000000000000000000000000000000000000060605260408160800181518152602082015160208201528051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506080f3610878565b6210d5a78118610878576101443610341761087a575f610340526100e456610878565b63c0c702dc8118610878576101643610341761087a57610104358060a01c61087a57610340525b6004358060a01c61087a576040526024358060a01c61087a576060526044358060a01c61087a57608052608435600401600981351161087a5780355f816009811161087a57801561015657905b8060051b6020850101358060a01c61087a578160051b60c00152600101818118610131575b50508060a052505060a435600401600981351161087a57803560208160051b0180836101e03750505060e4358060011c61087a57610320525f5460021461087a5760025f556002606435101561020b576013610360527f6e5f636f696e73206d757374206265203e3d32000000000000000000000000006103805261036050610360518061038001601f825f031636823750506308c379a061032052602061034052601f19601f61036051011660440161033cfd5b6009606435111561027b57601b610360527f6e5f636f696e73206d757374206265203c3d4d41585f434f494e5300000000006103805261036050610360518061038001601f825f031636823750506308c379a061032052602061034052601f19601f61036051011660440161033cfd5b5f6009905b80610360526064356103605118610296576103bb565b610360516101e05181101561087a5760051b61020001516102b857600161030c565b6103605160a05181101561087a5760051b60c0015163dd62ed3e61038052306103a0526040516103c0526020610380604461039c845afa6102fb573d5f5f3e3d5ffd5b60203d1061087a5761038090505115155b15610316576103b0565b6103605160a05181101561087a5760051b60c0015163095ea7b3610380526040516103a0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6103c0526020610380604461039c5f855af161037a573d5f5f3e3d5ffd5b3d61039157803b1561087a5760016103e0526103aa565b60203d1061087a57610380518060011c61087a576103e0525b6103e050505b600101818118610280575b505060605163dd62ed3e6103605230610380526080516103a0526020610360604461037c845afa6103ee573d5f5f3e3d5ffd5b60203d1061087a576103609050516104705760605163095ea7b36103c0526080516103e0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6104005260206103c060446103dc5f855af1610452573d5f5f3e3d5ffd5b60203d1061087a576103c0518060011c61087a576104205261042050505b5f6009905b8061036052606435610360511861048b5761054b565b610360516101e05181101561087a5760051b610200015115610540576103605160a05181101561087a5760051b60c001516323b872dd61038052336103a052306103c052610360516101e05181101561087a5760051b61020001516103e0526020610380606461039c5f855af1610504573d5f5f3e3d5ffd5b3d61051b57803b1561087a57600161040052610534565b60203d1061087a57610380518060011c61087a57610400525b6104009050511561087a575b600101818118610475575b505061034051156105f15760405163fd9de6316103605260606103405161038052806103a05280610380015f6101e0518083528060051b5f826009811161087a5780156105b257905b8060051b61020001518160051b602088010152600101818118610594575b5050820160200191505090508101905060c4356103c05250803b1561087a575f6103606101a461037c5f855af16105eb573d5f5f3e3d5ffd5b506107ee565b6103205161075f5760026064351861066b57604051630b4c7e4d610360526101e0511561087a575f60051b61020001516103805260026101e0511061087a57600160051b61020001516103a05260c4356103c052803b1561087a575f610360606461037c5f855af1610665573d5f5f3e3d5ffd5b506107ee565b6003606435186106f657604051634515cef3610360526101e0511561087a575f60051b61020001516103805260026101e0511061087a57600160051b61020001516103a05260036101e0511061087a57600260051b61020001516103c05260c4356103e052803b1561087a575f610360608461037c5f855af16106f0573d5f5f3e3d5ffd5b506107ee565b600f610360527f57726f6e6720617267756d656e747300000000000000000000000000000000006103805261036050610360518061038001601f825f031636823750506308c379a061032052602061034052601f19601f61036051011660440161033cfd6107ee565b60405163b72df5de610360526040806103805280610380015f6101e0518083528060051b5f826009811161087a5780156107b357905b8060051b61020001518160051b602088010152600101818118610795575b5050820160200191505090508101905060c4356103a05250803b1561087a575f61036061018461037c5f855af16107ec573d5f5f3e3d5ffd5b505b6060516370a0823161038052306103a0526020610380602461039c845afa610818573d5f5f3e3d5ffd5b60203d1061087a5761038090505161036052610360511561087a57608051636e553f6561038052610360516103a052336103c052803b1561087a575f610380604461039c5f855af161086c573d5f5f3e3d5ffd5b50602061036060035f55f35b005b5f80fd009a00bd0018
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in FRAX
0
Token Allocations
FRAX
100.00%
ETH
0.00%
AVAX
0.00%
Others
0.00%
Multichain Portfolio | 35 Chains
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.