Address Details
contract

0x9214cC8ec286211E608C6a0b2694c966fD8c0268

Contract Name
Vault
Creator
0x2af722–4f1851 at 0x54765d–49987c
Balance
0.01 CELO ( )
Locked CELO Balance
0.00 CELO
Voting CELO Balance
0.00 CELO
Pending Unlocked Gold
0.00 CELO
Tokens
Fetching tokens...
Transactions
3 Transactions
Transfers
1 Transfers
Gas Used
172,462
Last Balance Update
8739524
This contract has been verified via Sourcify. View contract in Sourcify repository
Contract name:
Vault




Optimization enabled
false
Compiler version
v0.8.7+commit.e28d00a7




EVM Version
london




Verified at
2021-09-10T11:41:58.659367Z

Contract source code

//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract Vault {
  uint256 public feePercentage;
  uint256 public feesCollected;
  address public admin;
  address payable public wallet;
  
  mapping(address => uint256) public balances;
  
  event Sweeped(address wallet, uint256 value);
  event Deposited(address from, uint256 value, uint256 fee);
  event Withdrawn(address to, uint256 value);
  event FeeChanged(uint256 newFee);
  
  modifier onlyAdmin() {
    require(msg.sender == admin, "Unauthorized");
    _;
  }

  function initialize(uint256 _fee, address _admin, address payable _wallet) public {
    require(admin == address(0), "Already initialized");
    wallet = _wallet;
    admin = _admin;
    feePercentage = _fee;
  }

  function version() public virtual pure returns (string memory) {
    return "v1";
  }

  function deposit() public virtual payable {
    uint256 fee = msg.value * feePercentage / 100;
    balances[msg.sender] += (msg.value - fee);
    feesCollected += fee;
    emit Deposited(msg.sender, msg.value, fee);
  }

  function withdraw() public virtual {
    uint256 funds = balances[msg.sender];
    balances[msg.sender] = 0;
    payable(msg.sender).transfer(funds);
    emit Withdrawn(msg.sender, funds);
  }
  
  function setFee(uint256 _fee) onlyAdmin public {
    feePercentage = _fee;
    emit FeeChanged(_fee);
  }

  function sweep() public {
    wallet.transfer(feesCollected);
    emit Sweeped(wallet, feesCollected);
    feesCollected = 0;
  }
}

contract VaultV2 is Vault {
  bool public paused;

  event Paused();
  event Unpaused();

  modifier whenNotPaused() {
    require(!paused, "Contract is paused");
    _;
  }

  function version() public override virtual pure returns (string memory) {
    return "v2";
  }

  function pause() public {
    require(!paused, "Contract already paused");
    paused = true;
    emit Paused();
  }

  function unpause() public {
    require(paused, "Contract not paused");
    paused = false;
    emit Unpaused(); 
  }

  function withdraw() public override whenNotPaused {
    super.withdraw();
  }

  function deposit() public payable override whenNotPaused {
    super.deposit();
  }
}

contract VaultV3 is VaultV2 {
  function version() public override pure returns (string memory) {
    return "v3.0";
  }
}
        

Contract ABI

[{"type":"event","name":"Deposited","inputs":[{"type":"address","name":"from","internalType":"address","indexed":false},{"type":"uint256","name":"value","internalType":"uint256","indexed":false},{"type":"uint256","name":"fee","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"FeeChanged","inputs":[{"type":"uint256","name":"newFee","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"Sweeped","inputs":[{"type":"address","name":"wallet","internalType":"address","indexed":false},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"Withdrawn","inputs":[{"type":"address","name":"to","internalType":"address","indexed":false},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"admin","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"balances","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"payable","outputs":[],"name":"deposit","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"feePercentage","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"feesCollected","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"initialize","inputs":[{"type":"uint256","name":"_fee","internalType":"uint256"},{"type":"address","name":"_admin","internalType":"address"},{"type":"address","name":"_wallet","internalType":"address payable"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setFee","inputs":[{"type":"uint256","name":"_fee","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"sweep","inputs":[]},{"type":"function","stateMutability":"pure","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"version","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address payable"}],"name":"wallet","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"withdraw","inputs":[]}]
              

Contract Creation Code

0x608060405234801561001057600080fd5b50610d9c806100206000396000f3fe60806040526004361061009c5760003560e01c806369fe0e2d1161006457806369fe0e2d14610162578063a001ecdd1461018b578063b4988fd0146101b6578063d0e30db0146101df578063f071db5a146101e9578063f851a440146102145761009c565b806327e235e3146100a157806335faa416146100de5780633ccfd60b146100f5578063521eb2731461010c57806354fd4d5014610137575b600080fd5b3480156100ad57600080fd5b506100c860048036038101906100c391906107cf565b61023f565b6040516100d59190610a58565b60405180910390f35b3480156100ea57600080fd5b506100f3610257565b005b34801561010157600080fd5b5061010a610329565b005b34801561011857600080fd5b50610121610435565b60405161012e9190610952565b60405180910390f35b34801561014357600080fd5b5061014c61045b565b60405161015991906109f6565b60405180910390f35b34801561016e57600080fd5b50610189600480360381019061018491906107fc565b610498565b005b34801561019757600080fd5b506101a0610569565b6040516101ad9190610a58565b60405180910390f35b3480156101c257600080fd5b506101dd60048036038101906101d89190610829565b61056f565b005b6101e761068e565b005b3480156101f557600080fd5b506101fe610764565b60405161020b9190610a58565b60405180910390f35b34801561022057600080fd5b5061022961076a565b6040516102369190610937565b60405180910390f35b60046020528060005260406000206000915090505481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6001549081150290604051600060405180830381858888f193505050501580156102c1573d6000803e3d6000fd5b507f1b94d65e3a03a98b13e90142a41884547fdd622b7f14a4daf94f6338e2e85cf0600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660015460405161031792919061096d565b60405180910390a16000600181905550565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156103f8573d6000803e3d6000fd5b507f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5338260405161042a929190610996565b60405180910390a150565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600281526020017f7631000000000000000000000000000000000000000000000000000000000000815250905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610528576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051f90610a18565b60405180910390fd5b806000819055507f6bbc57480a46553fa4d156ce702beef5f3ad66303b0ed1a5d4cb44966c6584c38160405161055e9190610a58565b60405180910390a150565b60005481565b600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f790610a38565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600081905550505050565b60006064600054346106a09190610b16565b6106aa9190610ae5565b905080346106b89190610b70565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107069190610a8f565b92505081905550806001600082825461071f9190610a8f565b925050819055507f73a19dd210f1a7f902193214c0ee91dd35ee5b4d920cba8d519eca65a7b488ca333483604051610759939291906109bf565b60405180910390a150565b60015481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008135905061079f81610d21565b92915050565b6000813590506107b481610d38565b92915050565b6000813590506107c981610d4f565b92915050565b6000602082840312156107e5576107e4610cb9565b5b60006107f384828501610790565b91505092915050565b60006020828403121561081257610811610cb9565b5b6000610820848285016107ba565b91505092915050565b60008060006060848603121561084257610841610cb9565b5b6000610850868287016107ba565b935050602061086186828701610790565b9250506040610872868287016107a5565b9150509250925092565b61088581610bf2565b82525050565b61089481610bb6565b82525050565b6108a381610ba4565b82525050565b60006108b482610a73565b6108be8185610a7e565b93506108ce818560208601610c28565b6108d781610cbe565b840191505092915050565b60006108ef600c83610a7e565b91506108fa82610ccf565b602082019050919050565b6000610912601383610a7e565b915061091d82610cf8565b602082019050919050565b61093181610be8565b82525050565b600060208201905061094c600083018461089a565b92915050565b6000602082019050610967600083018461088b565b92915050565b6000604082019050610982600083018561087c565b61098f6020830184610928565b9392505050565b60006040820190506109ab600083018561089a565b6109b86020830184610928565b9392505050565b60006060820190506109d4600083018661089a565b6109e16020830185610928565b6109ee6040830184610928565b949350505050565b60006020820190508181036000830152610a1081846108a9565b905092915050565b60006020820190508181036000830152610a31816108e2565b9050919050565b60006020820190508181036000830152610a5181610905565b9050919050565b6000602082019050610a6d6000830184610928565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610a9a82610be8565b9150610aa583610be8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610ada57610ad9610c5b565b5b828201905092915050565b6000610af082610be8565b9150610afb83610be8565b925082610b0b57610b0a610c8a565b5b828204905092915050565b6000610b2182610be8565b9150610b2c83610be8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610b6557610b64610c5b565b5b828202905092915050565b6000610b7b82610be8565b9150610b8683610be8565b925082821015610b9957610b98610c5b565b5b828203905092915050565b6000610baf82610bc8565b9050919050565b6000610bc182610bc8565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610bfd82610c04565b9050919050565b6000610c0f82610c16565b9050919050565b6000610c2182610bc8565b9050919050565b60005b83811015610c46578082015181840152602081019050610c2b565b83811115610c55576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f556e617574686f72697a65640000000000000000000000000000000000000000600082015250565b7f416c726561647920696e697469616c697a656400000000000000000000000000600082015250565b610d2a81610ba4565b8114610d3557600080fd5b50565b610d4181610bb6565b8114610d4c57600080fd5b50565b610d5881610be8565b8114610d6357600080fd5b5056fea26469706673582212208b0ad892fe9a0bc2bb86adb2a4ca869aede4f69f0e520005910c1fc0fe7a64da64736f6c63430008070033

Deployed ByteCode

0x60806040526004361061009c5760003560e01c806369fe0e2d1161006457806369fe0e2d14610162578063a001ecdd1461018b578063b4988fd0146101b6578063d0e30db0146101df578063f071db5a146101e9578063f851a440146102145761009c565b806327e235e3146100a157806335faa416146100de5780633ccfd60b146100f5578063521eb2731461010c57806354fd4d5014610137575b600080fd5b3480156100ad57600080fd5b506100c860048036038101906100c391906107cf565b61023f565b6040516100d59190610a58565b60405180910390f35b3480156100ea57600080fd5b506100f3610257565b005b34801561010157600080fd5b5061010a610329565b005b34801561011857600080fd5b50610121610435565b60405161012e9190610952565b60405180910390f35b34801561014357600080fd5b5061014c61045b565b60405161015991906109f6565b60405180910390f35b34801561016e57600080fd5b50610189600480360381019061018491906107fc565b610498565b005b34801561019757600080fd5b506101a0610569565b6040516101ad9190610a58565b60405180910390f35b3480156101c257600080fd5b506101dd60048036038101906101d89190610829565b61056f565b005b6101e761068e565b005b3480156101f557600080fd5b506101fe610764565b60405161020b9190610a58565b60405180910390f35b34801561022057600080fd5b5061022961076a565b6040516102369190610937565b60405180910390f35b60046020528060005260406000206000915090505481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6001549081150290604051600060405180830381858888f193505050501580156102c1573d6000803e3d6000fd5b507f1b94d65e3a03a98b13e90142a41884547fdd622b7f14a4daf94f6338e2e85cf0600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660015460405161031792919061096d565b60405180910390a16000600181905550565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156103f8573d6000803e3d6000fd5b507f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5338260405161042a929190610996565b60405180910390a150565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600281526020017f7631000000000000000000000000000000000000000000000000000000000000815250905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610528576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051f90610a18565b60405180910390fd5b806000819055507f6bbc57480a46553fa4d156ce702beef5f3ad66303b0ed1a5d4cb44966c6584c38160405161055e9190610a58565b60405180910390a150565b60005481565b600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f790610a38565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600081905550505050565b60006064600054346106a09190610b16565b6106aa9190610ae5565b905080346106b89190610b70565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107069190610a8f565b92505081905550806001600082825461071f9190610a8f565b925050819055507f73a19dd210f1a7f902193214c0ee91dd35ee5b4d920cba8d519eca65a7b488ca333483604051610759939291906109bf565b60405180910390a150565b60015481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008135905061079f81610d21565b92915050565b6000813590506107b481610d38565b92915050565b6000813590506107c981610d4f565b92915050565b6000602082840312156107e5576107e4610cb9565b5b60006107f384828501610790565b91505092915050565b60006020828403121561081257610811610cb9565b5b6000610820848285016107ba565b91505092915050565b60008060006060848603121561084257610841610cb9565b5b6000610850868287016107ba565b935050602061086186828701610790565b9250506040610872868287016107a5565b9150509250925092565b61088581610bf2565b82525050565b61089481610bb6565b82525050565b6108a381610ba4565b82525050565b60006108b482610a73565b6108be8185610a7e565b93506108ce818560208601610c28565b6108d781610cbe565b840191505092915050565b60006108ef600c83610a7e565b91506108fa82610ccf565b602082019050919050565b6000610912601383610a7e565b915061091d82610cf8565b602082019050919050565b61093181610be8565b82525050565b600060208201905061094c600083018461089a565b92915050565b6000602082019050610967600083018461088b565b92915050565b6000604082019050610982600083018561087c565b61098f6020830184610928565b9392505050565b60006040820190506109ab600083018561089a565b6109b86020830184610928565b9392505050565b60006060820190506109d4600083018661089a565b6109e16020830185610928565b6109ee6040830184610928565b949350505050565b60006020820190508181036000830152610a1081846108a9565b905092915050565b60006020820190508181036000830152610a31816108e2565b9050919050565b60006020820190508181036000830152610a5181610905565b9050919050565b6000602082019050610a6d6000830184610928565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610a9a82610be8565b9150610aa583610be8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610ada57610ad9610c5b565b5b828201905092915050565b6000610af082610be8565b9150610afb83610be8565b925082610b0b57610b0a610c8a565b5b828204905092915050565b6000610b2182610be8565b9150610b2c83610be8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610b6557610b64610c5b565b5b828202905092915050565b6000610b7b82610be8565b9150610b8683610be8565b925082821015610b9957610b98610c5b565b5b828203905092915050565b6000610baf82610bc8565b9050919050565b6000610bc182610bc8565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610bfd82610c04565b9050919050565b6000610c0f82610c16565b9050919050565b6000610c2182610bc8565b9050919050565b60005b83811015610c46578082015181840152602081019050610c2b565b83811115610c55576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f556e617574686f72697a65640000000000000000000000000000000000000000600082015250565b7f416c726561647920696e697469616c697a656400000000000000000000000000600082015250565b610d2a81610ba4565b8114610d3557600080fd5b50565b610d4181610bb6565b8114610d4c57600080fd5b50565b610d5881610be8565b8114610d6357600080fd5b5056fea26469706673582212208b0ad892fe9a0bc2bb86adb2a4ca869aede4f69f0e520005910c1fc0fe7a64da64736f6c63430008070033