ETH Price: $1,671.98 (+2.52%)
Gas: 7 Gwei
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Sponsored

Transaction Hash
Method
Block
From
To
Value
Zap150566042022-07-01 12:25:13454 days 21 hrs ago1656678313IN
0xc7A60D...d23Cc332
0 ETH0.0036309412.54031799
Zap143091922022-03-02 18:16:43575 days 16 hrs ago1646245003IN
0xc7A60D...d23Cc332
0 ETH0.0151214252.21485243
Zap140157692022-01-16 9:38:02621 days 40 mins ago1642325882IN
0xc7A60D...d23Cc332
0 ETH0.0273411194.40992875
Zap140155992022-01-16 9:01:07621 days 1 hr ago1642323667IN
0xc7A60D...d23Cc332
0 ETH0.0276228395.3827168
Zap137772432021-12-10 11:54:27657 days 22 hrs ago1639137267IN
0xc7A60D...d23Cc332
0 ETH0.01392748.09529103
Zap135567292021-11-05 13:03:01692 days 21 hrs ago1636117381IN
0xc7A60D...d23Cc332
0 ETH0.03415311117.93203629
Zap135483352021-11-04 5:21:02694 days 4 hrs ago1636003262IN
0xc7A60D...d23Cc332
0 ETH0.030408105
Zap134979102021-10-27 6:46:57702 days 3 hrs ago1635317217IN
0xc7A60D...d23Cc332
0 ETH0.03459296119.45083683
Zap134596292021-10-21 7:15:29708 days 3 hrs ago1634800529IN
0xc7A60D...d23Cc332
0 ETH0.0140140948.39606524
Zap134595482021-10-21 6:56:11708 days 3 hrs ago1634799371IN
0xc7A60D...d23Cc332
0 ETH0.0134614646.48760464
Zap134591822021-10-21 5:35:10708 days 4 hrs ago1634794510IN
0xc7A60D...d23Cc332
0 ETH0.0186857264.52252419
Zap134372472021-10-17 19:15:02711 days 15 hrs ago1634498102IN
0xc7A60D...d23Cc332
0 ETH0.0226773178.31349107
Zap134365842021-10-17 16:48:48711 days 17 hrs ago1634489328IN
0xc7A60D...d23Cc332
0 ETH0.019692868
Zap134336152021-10-17 5:36:13712 days 4 hrs ago1634448973IN
0xc7A60D...d23Cc332
0 ETH0.0135712646.86678257
Zap134335532021-10-17 5:25:16712 days 4 hrs ago1634448316IN
0xc7A60D...d23Cc332
0 ETH0.0156368354
Zap134152882021-10-14 8:32:31715 days 1 hr ago1634200351IN
0xc7A60D...d23Cc332
0 ETH0.0201684469.6424274
Zap134096282021-10-13 11:02:27715 days 23 hrs ago1634122947IN
0xc7A60D...d23Cc332
0 ETH0.0199622568.93735812
Zap134094872021-10-13 10:28:46715 days 23 hrs ago1634120926IN
0xc7A60D...d23Cc332
0 ETH0.0217275
Zap134084422021-10-13 6:26:38716 days 3 hrs ago1634106398IN
0xc7A60D...d23Cc332
0 ETH0.0174844860
Zap134034352021-10-12 11:49:15716 days 22 hrs ago1634039355IN
0xc7A60D...d23Cc332
0 ETH0.014190449
Zap134022362021-10-12 7:05:30717 days 3 hrs ago1634022330IN
0xc7A60D...d23Cc332
0 ETH0.0257735189
Zap133920572021-10-10 16:42:53718 days 17 hrs ago1633884173IN
0xc7A60D...d23Cc332
0 ETH0.0193040366.65756253
Zap133911622021-10-10 13:33:32718 days 20 hrs ago1633872812IN
0xc7A60D...d23Cc332
0 ETH0.0170185658.76577166
Zap133845562021-10-09 12:31:47719 days 21 hrs ago1633782707IN
0xc7A60D...d23Cc332
0 ETH0.0144850
Zap133749322021-10-08 0:14:54721 days 10 hrs ago1633652094IN
0xc7A60D...d23Cc332
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 0x09C4B3...0EBF6f08
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:
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
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

Validator Index Block Amount
View All Withdrawals

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