Address Contract Partially Verified
Address
0x4667468BDe9fc417D4C6f266BFDff16A6038C01e
Balance
0 ETH
Nonce
1
Code Size
8855 bytes
Creator
0x0DA419C2...fB7c at tx 0x6db2262a...fc44b6
Indexed Transactions
1 (24,422,709 → 24,422,709)
Gas Used (indexed)
192,317
Contract Bytecode
8855 bytes
0x608060405234801561000f575f5ffd5b506004361061012a575f3560e01c80636fc9e257116100ab578063d4e643481161006f578063d4e6434814610313578063dac9cdf614610331578063eb2e277f1461034f578063f2fde38b1461036d578063f739ed9e146103895761012a565b80636fc9e25714610281578063715018a61461029d5780638da5cb5b146102a7578063aebaadeb146102c5578063b4cfeaab146102f55761012a565b806333f3d628116100f257806333f3d628146101c55780633d4053a1146101e15780633d5ec47e146101ff578063557546f51461023357806363809953146102635761012a565b80630f0491ac1461012e57806312eb4c931461014c57806320800a001461016a5780632f669b0c1461017457806331388b4d146101a7575b5f5ffd5b6101366103a5565b60405161014391906118c0565b60405180910390f35b6101546103ca565b60405161016191906118f1565b60405180910390f35b6101726103d0565b005b61018e60048036038101906101899190611938565b61042a565b60405161019e9493929190611976565b60405180910390f35b6101af610809565b6040516101bc91906118f1565b60405180910390f35b6101df60048036038101906101da91906119e3565b61080f565b005b6101e961082d565b6040516101f691906118c0565b60405180910390f35b61021960048036038101906102149190611a21565b610852565b60405161022a959493929190611a4c565b60405180910390f35b61024d60048036038101906102489190611938565b6108d1565b60405161025a91906118f1565b60405180910390f35b61026b6108f1565b60405161027891906118f1565b60405180910390f35b61029b60048036038101906102969190611a9d565b6108f8565b005b6102a5610d65565b005b6102af610d78565b6040516102bc91906118c0565b60405180910390f35b6102df60048036038101906102da9190611938565b610d9f565b6040516102ec91906118f1565b60405180910390f35b6102fd610dbf565b60405161030a91906118f1565b60405180910390f35b61031b610dc5565b60405161032891906118f1565b60405180910390f35b610339610dcb565b60405161034691906118f1565b60405180910390f35b610357610dd1565b60405161036491906118f1565b60405180910390f35b61038760048036038101906103829190611a9d565b610dd7565b005b6103a3600480360381019061039e91906119e3565b610e59565b005b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b6103d86114d8565b5f4790506103e4610d78565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610426573d5f5f3e3d5ffd5b5050565b5f5f5f5f8473ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361059c576004549350600654421061059357600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054600b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461058c9190611af5565b9050610597565b5f90505b610707565b8473ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610706576005549350600754421061070157600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054600b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546106fa9190611af5565b9050610705565b5f90505b5b5b83600b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054600c5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205493509350935092959194509250565b60095481565b6108176114d8565b61082982610823610d78565b83611556565b5050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a8181548110610861575f80fd5b905f5260205f2090600502015f91509050805f015490806001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154908060040154905085565b600b602052815f5260405f20602052805f5260405f205f91509150505481565b6201518081565b60026001540361093d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093490611b82565b60405180910390fd5b60026001819055508073ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806109ec57508073ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610a2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2290611bea565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610ac957600654421015610ac4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abb90611c52565b60405180910390fd5b610b64565b8073ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610b6357600754421015610b62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5990611c52565b60405180910390fd5b5b5b5f600c5f610b70611686565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054600b5f610bf0611686565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610c6f9190611af5565b90505f8111610cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610caa90611cba565b60405180910390fd5b80600c5f610cbf611686565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610d419190611cd8565b92505081905550610d5a82610d54611686565b83611556565b506001808190555050565b610d6d6114d8565b610d765f61168d565b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c602052815f5260405f20602052805f5260405f205f91509150505481565b60065481565b60045481565b60055481565b60085481565b610ddf6114d8565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4490611d7b565b60405180910390fd5b610e568161168d565b50565b600260015403610e9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9590611b82565b60405180910390fd5b60026001819055503273ffffffffffffffffffffffffffffffffffffffff16610ec5611686565b73ffffffffffffffffffffffffffffffffffffffff1614610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1290611de3565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610fc257508173ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611001576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff890611bea565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611113576006544210611099576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109090611e4b565b60405180910390fd5b6004548110156110de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d590611ed9565b60405180910390fd5b63ee6b28006006540361110e57620151806008546110fc9190611ef7565b426111079190611cd8565b6006819055505b611222565b8173ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036112215760075442106111ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a290611e4b565b60405180910390fd5b6005548110156111f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e790611ed9565b60405180910390fd5b63ee6b280060075403611220576201518060095461120e9190611ef7565b426112199190611cd8565b6007819055505b5b5b808273ffffffffffffffffffffffffffffffffffffffff166370a08231611247611686565b6040518263ffffffff1660e01b815260040161126391906118c0565b602060405180830381865afa15801561127e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112a29190611f4c565b10156112e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112da90611fc1565b60405180910390fd5b6112f6826112ef611686565b308461174e565b5f6040518060a001604052806001600a805490506113149190611cd8565b8152602001611321611686565b73ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff168152602001428152602001838152509050600a81908060018154018082558091505060019003905f5260205f2090600502015f909190919091505f820151815f01556020820151816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816003015560808201518160040155505081600b5f611443611686565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546114c59190611cd8565b9250508190555050600180819055505050565b6114e0611686565b73ffffffffffffffffffffffffffffffffffffffff166114fe610d78565b73ffffffffffffffffffffffffffffffffffffffff1614611554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154b90612029565b60405180910390fd5b565b5f5f8473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401611587929190612047565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516115d591906120c0565b5f604051808303815f865af19150503d805f811461160e576040519150601f19603f3d011682016040523d82523d5f602084013e611613565b606091505b509150915081801561164057505f8151148061163f57508080602001905181019061163e919061210b565b5b5b61167f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167690612180565b60405180910390fd5b5050505050565b5f33905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5f8573ffffffffffffffffffffffffffffffffffffffff166323b872dd8686866040516024016117819392919061219e565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516117cf91906120c0565b5f604051808303815f865af19150503d805f8114611808576040519150601f19603f3d011682016040523d82523d5f602084013e61180d565b606091505b509150915081801561183a57505f81511480611839575080806020019051810190611838919061210b565b5b5b611879576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187090612243565b60405180910390fd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6118aa82611881565b9050919050565b6118ba816118a0565b82525050565b5f6020820190506118d35f8301846118b1565b92915050565b5f819050919050565b6118eb816118d9565b82525050565b5f6020820190506119045f8301846118e2565b92915050565b5f5ffd5b611917816118a0565b8114611921575f5ffd5b50565b5f813590506119328161190e565b92915050565b5f5f6040838503121561194e5761194d61190a565b5b5f61195b85828601611924565b925050602061196c85828601611924565b9150509250929050565b5f6080820190506119895f8301876118e2565b61199660208301866118e2565b6119a360408301856118e2565b6119b060608301846118e2565b95945050505050565b6119c2816118d9565b81146119cc575f5ffd5b50565b5f813590506119dd816119b9565b92915050565b5f5f604083850312156119f9576119f861190a565b5b5f611a0685828601611924565b9250506020611a17858286016119cf565b9150509250929050565b5f60208284031215611a3657611a3561190a565b5b5f611a43848285016119cf565b91505092915050565b5f60a082019050611a5f5f8301886118e2565b611a6c60208301876118b1565b611a7960408301866118b1565b611a8660608301856118e2565b611a9360808301846118e2565b9695505050505050565b5f60208284031215611ab257611ab161190a565b5b5f611abf84828501611924565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611aff826118d9565b9150611b0a836118d9565b9250828203905081811115611b2257611b21611ac8565b5b92915050565b5f82825260208201905092915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f611b6c601f83611b28565b9150611b7782611b38565b602082019050919050565b5f6020820190508181035f830152611b9981611b60565b9050919050565b7f546f6b656e204e6f7420537570706f72742e00000000000000000000000000005f82015250565b5f611bd4601283611b28565b9150611bdf82611ba0565b602082019050919050565b5f6020820190508181035f830152611c0181611bc8565b9050919050565b7f556e5374616b65204e6f742053746172742e00000000000000000000000000005f82015250565b5f611c3c601283611b28565b9150611c4782611c08565b602082019050919050565b5f6020820190508181035f830152611c6981611c30565b9050919050565b7f4e6f20546f6b656e20546f20436c61696d2e00000000000000000000000000005f82015250565b5f611ca4601283611b28565b9150611caf82611c70565b602082019050919050565b5f6020820190508181035f830152611cd181611c98565b9050919050565b5f611ce2826118d9565b9150611ced836118d9565b9250828201905080821115611d0557611d04611ac8565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f611d65602683611b28565b9150611d7082611d0b565b604082019050919050565b5f6020820190508181035f830152611d9281611d59565b9050919050565b7f43616e206e6f742066726f6d20636f6e74726163742e000000000000000000005f82015250565b5f611dcd601683611b28565b9150611dd882611d99565b602082019050919050565b5f6020820190508181035f830152611dfa81611dc1565b9050919050565b7f5374616b652053746f707065642e0000000000000000000000000000000000005f82015250565b5f611e35600e83611b28565b9150611e4082611e01565b602082019050919050565b5f6020820190508181035f830152611e6281611e29565b9050919050565b7f42656c6f7720746865206d696e696d756d20696e766573746d656e7420616d6f5f8201527f756e742e00000000000000000000000000000000000000000000000000000000602082015250565b5f611ec3602483611b28565b9150611ece82611e69565b604082019050919050565b5f6020820190508181035f830152611ef081611eb7565b9050919050565b5f611f01826118d9565b9150611f0c836118d9565b9250828202611f1a816118d9565b91508282048414831517611f3157611f30611ac8565b5b5092915050565b5f81519050611f46816119b9565b92915050565b5f60208284031215611f6157611f6061190a565b5b5f611f6e84828501611f38565b91505092915050565b7f42616c616e6365204e6f7420456e6f7567682e000000000000000000000000005f82015250565b5f611fab601383611b28565b9150611fb682611f77565b602082019050919050565b5f6020820190508181035f830152611fd881611f9f565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612013602083611b28565b915061201e82611fdf565b602082019050919050565b5f6020820190508181035f83015261204081612007565b9050919050565b5f60408201905061205a5f8301856118b1565b61206760208301846118e2565b9392505050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f61209a8261206e565b6120a48185612078565b93506120b4818560208601612082565b80840191505092915050565b5f6120cb8284612090565b915081905092915050565b5f8115159050919050565b6120ea816120d6565b81146120f4575f5ffd5b50565b5f81519050612105816120e1565b92915050565b5f602082840312156121205761211f61190a565b5b5f61212d848285016120f7565b91505092915050565b7f5472616e7366657248656c7065723a205452414e534645525f4641494c4544005f82015250565b5f61216a601f83611b28565b915061217582612136565b602082019050919050565b5f6020820190508181035f8301526121978161215e565b9050919050565b5f6060820190506121b15f8301866118b1565b6121be60208301856118b1565b6121cb60408301846118e2565b949350505050565b7f5472616e7366657248656c7065723a205452414e534645525f46524f4d5f46415f8201527f494c454400000000000000000000000000000000000000000000000000000000602082015250565b5f61222d602483611b28565b9150612238826121d3565b604082019050919050565b5f6020820190508181035f83015261225a81612221565b905091905056fea2646970667358221220ceab5c0288f6decdd9c243514d99f2e9fd345854b1b64b3272fa4381a0522caa64736f6c634300081e0033
Verified Source Code Partial Match
Compiler: v0.8.30+commit.73712a01
EVM: prague
Optimization: No
BMBTokenStake.sol 216 lines
/**
*Submitted for verification at testnet.bscscan.com on 2025-09-08
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor() {
_transferOwnership(_msgSender());
}
modifier onlyOwner() {
_checkOwner();
_;
}
function owner() public view virtual returns (address) {
return _owner;
}
function _checkOwner() internal view virtual {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
}
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
library TransferHelper {
function safeTransfer(address token, address to, uint value) internal {
// bytes4(keccak256(bytes('transfer(address,uint256)')));
(bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));
require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FAILED');
}
function safeTransferFrom(address token, address from, address to, uint value) internal {
// bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));
(bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));
require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FROM_FAILED');
}
}
interface IERC20 {
function balanceOf(address account) external view returns (uint256);
}
abstract contract ReentrancyGuard {
uint256 private constant _NOT_ENTERED = 1;
uint256 private constant _ENTERED = 2;
uint256 private _status;
constructor() {
_status = _NOT_ENTERED;
}
modifier nonReentrant() {
require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
_status = _ENTERED;
_;
_status = _NOT_ENTERED;
}
}
contract BMBTokenStake is Ownable, ReentrancyGuard {
address public addressBMB = 0x9447dd95f576fdF6ED8219ffF45BD1362430B787;
address public addressBMC = 0x0cA7244F798765De51A2b911f16EbCb7367362d1;
uint256 public stakeMinBMB = 100000;
uint256 public stakeMinBMC = 100000;
uint256 public unStakeTimeBMB = 4000000000; // ʼʱ
uint256 public unStakeTimeBMC = 4000000000; // ʼʱ
uint256 public releaseDaysBMB = 180;
uint256 public releaseDaysBMC = 180;
uint256 constant public secondsPerDay = 86400; // ʱ 100 ʾ100 һ 죬 86400
struct StakeInfo {
uint256 id;
address user; // Ѻ û
address token; // Ѻ Ĵ
uint256 time; // Ѻʱ
uint256 stakeAmt; // Ѻ
}
StakeInfo[] public stakeInfos; // Ѻ Ϣ-ÿ Ѻ
mapping (address => mapping (address => uint256)) public userTokenStakeAmt; // û Ѻij ҵ û => =>
mapping (address => mapping (address => uint256)) public userTokenUnStakeAmt; // û ij ҵ û => =>
constructor() {
stakeInfos.push(StakeInfo({id:1,user:address(0),token:address(0),time:0,stakeAmt:0}));
}
// Ѻ token Լ ַ stakeAmt_ û 100000 Ȩ Լ
function stakeToken(address token_, uint256 stakeAmt_) external nonReentrant {
require(_msgSender() == tx.origin, "Can not from contract.");
require(addressBMB == token_ || addressBMC == token_, "Token Not Support.");
if (addressBMB == token_) {
require(block.timestamp < unStakeTimeBMB, "Stake Stopped.");
require(stakeAmt_ >= stakeMinBMB, "Below the minimum investment amount.");
if (unStakeTimeBMB == 4000000000) {
unStakeTimeBMB = block.timestamp + releaseDaysBMB * secondsPerDay;
}
} else if (addressBMC == token_) {
require(block.timestamp < unStakeTimeBMC, "Stake Stopped.");
require(stakeAmt_ >= stakeMinBMC, "Below the minimum investment amount.");
if (unStakeTimeBMC == 4000000000) {
unStakeTimeBMC = block.timestamp + releaseDaysBMC * secondsPerDay;
}
}
require(IERC20(token_).balanceOf(_msgSender()) >= stakeAmt_, "Balance Not Enough.");
TransferHelper.safeTransferFrom(token_, _msgSender(), address(this), stakeAmt_);
StakeInfo memory di = StakeInfo({
id: stakeInfos.length + 1,
user: _msgSender(),
token: token_,
time: block.timestamp,
stakeAmt: stakeAmt_
});
stakeInfos.push(di);
userTokenStakeAmt[_msgSender()][token_] += stakeAmt_;
}
function redemption(address token_) external nonReentrant {
require(addressBMB == token_ || addressBMC == token_, "Token Not Support.");
if (addressBMB == token_) {
require(block.timestamp >= unStakeTimeBMB, "UnStake Not Start.");
} else if (addressBMC == token_) {
require(block.timestamp >= unStakeTimeBMC, "UnStake Not Start.");
}
uint256 _returnAmt = userTokenStakeAmt[_msgSender()][token_] - userTokenUnStakeAmt[_msgSender()][token_];
require(_returnAmt > 0, "No Token To Claim.");
userTokenUnStakeAmt[_msgSender()][token_] += _returnAmt;
TransferHelper.safeTransfer(token_, _msgSender(), _returnAmt);
}
// ȡ û Ѻ Ϣ _user 뵱ǰ û ĵ ַ,token_ Һ Լ
// أ
// _minAmt ǰ ҵ С Ѻ
// _stakeAmt ǰ û ǰ ܹ Ѻ صģ
// _unStakeAmt ǰ û ǰ ܹ ص
// _canUnStakeAmt ǰ û ǰ ҿ ص
// ذ ť _canUnStakeAmt > 0ʱ Ե ʱ redemption
function getStakeInfos(address _user, address token_) public view returns(
uint256 _minAmt, uint256 _stakeAmt, uint256 _unStakeAmt, uint256 _canUnStakeAmt) {
if (addressBMB == token_) {
_minAmt = stakeMinBMB;
if (block.timestamp >= unStakeTimeBMB) {
_canUnStakeAmt = userTokenStakeAmt[_user][token_] - userTokenUnStakeAmt[_user][token_];
} else {
_canUnStakeAmt = 0;
}
} else if (addressBMC == token_) {
_minAmt = stakeMinBMC;
if (block.timestamp >= unStakeTimeBMC) {
_canUnStakeAmt = userTokenStakeAmt[_user][token_] - userTokenUnStakeAmt[_user][token_];
} else {
_canUnStakeAmt = 0;
}
}
return (_minAmt, userTokenStakeAmt[_user][token_], userTokenUnStakeAmt[_user][token_], _canUnStakeAmt);
}
function rescueToken(address tokenAddr_, uint256 amt_) external onlyOwner {
TransferHelper.safeTransfer(tokenAddr_, owner(), amt_);
}
function rescueETH() external onlyOwner {
uint256 balance = address(this).balance;
payable(owner()).transfer(balance);
}
}
Read Contract
addressBMB 0x0f0491ac → address
addressBMC 0x3d4053a1 → address
getStakeInfos 0x2f669b0c → uint256, uint256, uint256, uint256
owner 0x8da5cb5b → address
releaseDaysBMB 0xeb2e277f → uint256
releaseDaysBMC 0x31388b4d → uint256
secondsPerDay 0x63809953 → uint256
stakeInfos 0x3d5ec47e → uint256, address, address, uint256, uint256
stakeMinBMB 0xd4e64348 → uint256
stakeMinBMC 0xdac9cdf6 → uint256
unStakeTimeBMB 0xb4cfeaab → uint256
unStakeTimeBMC 0x12eb4c93 → uint256
userTokenStakeAmt 0x557546f5 → uint256
userTokenUnStakeAmt 0xaebaadeb → uint256
Write Contract 6 functions
These functions modify contract state and require a wallet transaction to execute.
redemption 0x6fc9e257
address token_
renounceOwnership 0x715018a6
No parameters
rescueETH 0x20800a00
No parameters
rescueToken 0x33f3d628
address tokenAddr_
uint256 amt_
stakeToken 0xf739ed9e
address token_
uint256 stakeAmt_
transferOwnership 0xf2fde38b
address newOwner
Top Interactions
| Address | Txns | Sent | Received |
|---|---|---|---|
| 0x36B0D936...9dba | 1 | 1 |
Recent Transactions
|
| Hash | Block | Age | From/To | Value | |
|---|---|---|---|---|---|
| 0x5510e882...1e5333 | 24,422,709 | IN | 0x36B0D936...9dba | 0 ETH |