From d23afa676a2b2a2a00174a6208ca89d1ba4e3a59 Mon Sep 17 00:00:00 2001 From: Ricardo Guilherme Schmidt Date: Tue, 16 May 2023 18:59:25 -0300 Subject: [PATCH] skel --- contracts/StakeManager.sol | 39 ++++++++++++++++++++++++++++++++++++++ contracts/StakeVault.sol | 36 +++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 contracts/StakeManager.sol create mode 100644 contracts/StakeVault.sol diff --git a/contracts/StakeManager.sol b/contracts/StakeManager.sol new file mode 100644 index 0000000..35e45fd --- /dev/null +++ b/contracts/StakeManager.sol @@ -0,0 +1,39 @@ +// SPDX-License-Identifier: MIT + +pragma solidity 0.6.12; + +import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; + +contract StakeManager is ERC20 { + + address stakedToken; + + bytes32 vaultCodehash; + + mapping (address => Account) account; + + + modifier onlyVault { + require(msg.sender.codehash() == vaultCodehash, "Unauthorized Codehash"); + } + + function join(uint256 amount) external onlyVault { + stakedToken.transferFrom(msg.sender, ) + } + + function lock(uint256 amount, uint256 time) external onlyVault { + + } + + function joinAndLock(uint256 amount, uint256 time) external onlyVault { + + } + + function leave(uint256 amount) external { + + } + + + + +} \ No newline at end of file diff --git a/contracts/StakeVault.sol b/contracts/StakeVault.sol new file mode 100644 index 0000000..9ee98b6 --- /dev/null +++ b/contracts/StakeVault.sol @@ -0,0 +1,36 @@ +// SPDX-License-Identifier: MIT + +pragma solidity 0.6.12; + +import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; + +contract StakeVault { + address owner; + address stakeManager; + + ERC20 stakedToken; + uint256 balance; + uint256 locked; + uint256 multiplier; + + + function join(uint256 amount) external { + stakedToken.transferFrom(msg.sender, address(this), amount); + } + + function lock(uint256 amount, uint256 time) external { + + } + + function joinAndLock(uint256 amount, uint256 time) external { + + } + + function leave(uint256 amount) external { + + } + + + + +} \ No newline at end of file