ETH Price: $2,711.22 (+0.05%)

Contract

0xc7A60D14e4D8d1bBe7eEfe2B03EDD8D9d23Cc332
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Zap150566042022-07-01 12:25:13960 days ago1656678313IN
0xc7A60D14...9d23Cc332
0 ETH0.0036309412.54031799
Zap143091922022-03-02 18:16:431081 days ago1646245003IN
0xc7A60D14...9d23Cc332
0 ETH0.0151214252.21485243
Zap140157692022-01-16 9:38:021126 days ago1642325882IN
0xc7A60D14...9d23Cc332
0 ETH0.0273411194.40992875
Zap140155992022-01-16 9:01:071126 days ago1642323667IN
0xc7A60D14...9d23Cc332
0 ETH0.0276228395.3827168
Zap137772432021-12-10 11:54:271163 days ago1639137267IN
0xc7A60D14...9d23Cc332
0 ETH0.01392748.09529103
Zap135567292021-11-05 13:03:011198 days ago1636117381IN
0xc7A60D14...9d23Cc332
0 ETH0.03415311117.93203629
Zap135483352021-11-04 5:21:021200 days ago1636003262IN
0xc7A60D14...9d23Cc332
0 ETH0.030408105
Zap134979102021-10-27 6:46:571207 days ago1635317217IN
0xc7A60D14...9d23Cc332
0 ETH0.03459296119.45083683
Zap134596292021-10-21 7:15:291213 days ago1634800529IN
0xc7A60D14...9d23Cc332
0 ETH0.0140140948.39606524
Zap134595482021-10-21 6:56:111213 days ago1634799371IN
0xc7A60D14...9d23Cc332
0 ETH0.0134614646.48760464
Zap134591822021-10-21 5:35:101214 days ago1634794510IN
0xc7A60D14...9d23Cc332
0 ETH0.0186857264.52252419
Zap134372472021-10-17 19:15:021217 days ago1634498102IN
0xc7A60D14...9d23Cc332
0 ETH0.0226773178.31349107
Zap134365842021-10-17 16:48:481217 days ago1634489328IN
0xc7A60D14...9d23Cc332
0 ETH0.019692868
Zap134336152021-10-17 5:36:131218 days ago1634448973IN
0xc7A60D14...9d23Cc332
0 ETH0.0135712646.86678257
Zap134335532021-10-17 5:25:161218 days ago1634448316IN
0xc7A60D14...9d23Cc332
0 ETH0.0156368354
Zap134152882021-10-14 8:32:311220 days ago1634200351IN
0xc7A60D14...9d23Cc332
0 ETH0.0201684469.6424274
Zap134096282021-10-13 11:02:271221 days ago1634122947IN
0xc7A60D14...9d23Cc332
0 ETH0.0199622568.93735812
Zap134094872021-10-13 10:28:461221 days ago1634120926IN
0xc7A60D14...9d23Cc332
0 ETH0.0217275
Zap134084422021-10-13 6:26:381221 days ago1634106398IN
0xc7A60D14...9d23Cc332
0 ETH0.0174844860
Zap134034352021-10-12 11:49:151222 days ago1634039355IN
0xc7A60D14...9d23Cc332
0 ETH0.014190449
Zap134022362021-10-12 7:05:301222 days ago1634022330IN
0xc7A60D14...9d23Cc332
0 ETH0.0257735189
Zap133920572021-10-10 16:42:531224 days ago1633884173IN
0xc7A60D14...9d23Cc332
0 ETH0.0193040366.65756253
Zap133911622021-10-10 13:33:321224 days ago1633872812IN
0xc7A60D14...9d23Cc332
0 ETH0.0170185658.76577166
Zap133845562021-10-09 12:31:471225 days ago1633782707IN
0xc7A60D14...9d23Cc332
0 ETH0.0144850
Zap133749322021-10-08 0:14:541227 days ago1633652094IN
0xc7A60D14...9d23Cc332
0 ETH0.0224057777.3680169
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x09C4B30a...20EBF6f08
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
Vyper_contract

Compiler Version
vyper:0.2.12

Optimization Enabled:
N/A

Other Settings:
default evmVersion, GNU AGPLv3 license

Contract Source Code (Vyper language format)

# @version 0.2.12

"""
@title Unagii Zap 0.1.1
@author stakewith.us
@license AGPL-3.0-or-later
"""

from vyper.interfaces import ERC20


interface VaultV1:
    def token() -> address: view
    def withdraw(shares: uint256, _min: uint256): nonpayable
    # VaultV1 is ERC20
    def transferFrom(_from: address, _to: address, amount: uint256) -> bool: nonpayable


interface VaultV2:
    def token() -> address: view
    def uToken() -> address: view
    def deposit(amount: uint256, _min: uint256) -> uint256: nonpayable


v1: public(VaultV1)
v2: public(VaultV2)
token: public(ERC20)
uToken: public(ERC20)


@external
def __init__(v1: address, v2: address, uToken: address):
    self.v1 = VaultV1(v1)
    self.v2 = VaultV1(v2)

    assert self.v1.token() == self.v2.token(), "v1 token != v2 token"
    self.token = ERC20(self.v1.token())

    assert uToken == self.v2.uToken(), "uToken != v2 uToken"
    self.uToken = ERC20(self.v2.uToken())


@internal
def _safeApprove(token: address, spender: address, amount: uint256):
    res: Bytes[32] = raw_call(
        token,
        concat(
            method_id("approve(address,uint256)"),
            convert(spender, bytes32),
            convert(amount, bytes32),
        ),
        max_outsize=32,
    )
    if len(res) > 0:
        assert convert(res, bool), "approve failed"


@external
def zap(shares: uint256, _min: uint256, _minV2Shares: uint256):
    assert self.v1.transferFrom(msg.sender, self, shares), "transfer failed"
    self.v1.withdraw(shares, _min)

    bal: uint256 = self.token.balanceOf(self)
    # use _safeApprove, USDT does not return bool
    self._safeApprove(self.token.address, self.v2.address, bal)
    uShares: uint256 = self.v2.deposit(bal, _minV2Shares)
    self.uToken.transfer(msg.sender, uShares)

Contract Security Audit

Contract ABI

[{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"v1","type":"address"},{"name":"v2","type":"address"},{"name":"uToken","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"zap","inputs":[{"name":"shares","type":"uint256"},{"name":"_min","type":"uint256"},{"name":"_minV2Shares","type":"uint256"}],"outputs":[],"gas":41886},{"stateMutability":"view","type":"function","name":"v1","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2418},{"stateMutability":"view","type":"function","name":"v2","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2448},{"stateMutability":"view","type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2478},{"stateMutability":"view","type":"function","name":"uToken","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2508}]

Deployed Bytecode

0x600436101561000d5761025d565b600035601c52600051341561002157600080fd5b63342fe0ca8114156101fb57602061020060646323b872dd61014052336101605230610180526004356101a05261015c60006000545af161006157600080fd5b601f3d1161006e57600080fd5b6000506102005115156100c0576308c379a061022052602061024052600f610260527f7472616e73666572206661696c656400000000000000000000000000000000006102805261026050606461023cfd5b6000543b6100cd57600080fd5b60006000604463441a3e7061014052604060046101603761015c60006000545af16100f757600080fd5b60206101e060246370a0823161016052306101805261017c6002545afa61011d57600080fd5b601f3d1161012a57600080fd5b6000506101e05161014052610140516002546101605260015461018052610140516101a0526101a051610180516101605160065801610263565b610140526000506020610220604463e2bbb15861018052610140516101a0526044356101c05261019c60006001545af161019d57600080fd5b601f3d116101aa57600080fd5b60005061022051610160526020610220604463a9059cbb61018052336101a052610160516101c05261019c60006003545af16101e557600080fd5b601f3d116101f257600080fd5b60005061022050005b636854171d8114156102135760005460005260206000f35b63f3acae3a81141561022b5760015460005260206000f35b63fc0c546a8114156102435760025460005260206000f35b636331563781141561025b5760035460005260206000f35b505b60006000fd5b6101a05261014052610160526101805260006004610220527f095ea7b3000000000000000000000000000000000000000000000000000000006102405261022060048060208461028001018260208501600060045af15050805182019150506101605160208261028001015260208101905061018051602082610280010152602081019050806102805261028090508051602001806103208284600060045af161030c57600080fd5b505060206103e0610320516103406000610140515af161032b57600080fd5b60203d8082111561033c578061033e565b815b905090506103c0526103c08051602001806101c08284600060045af161036357600080fd5b505060006101c05111156103f7576101c080602001516000825180602090131561038c57600080fd5b809190121561039a57600080fd5b806020036101000a8204905090509050151515156103f7576308c379a061022052602061024052600e610260527f617070726f7665206661696c65640000000000000000000000000000000000006102805261026050606461023cfd5b6101a05156

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ 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.