More Info
Private Name Tags
ContractCreator:
Sponsored
Latest 25 from a total of 981 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Deposit | 71306402 | 125 days ago | IN | 0 FTM | 0.10784814 | ||||
Claim | 67706786 | 209 days ago | IN | 0 FTM | 0.00322822 | ||||
Sweep Token | 67613645 | 211 days ago | IN | 0 FTM | 0.00384215 | ||||
Claim | 66249016 | 248 days ago | IN | 0 FTM | 0.63000233 | ||||
Claim | 66009362 | 254 days ago | IN | 0 FTM | 0.00404132 | ||||
Claim | 65525367 | 262 days ago | IN | 0 FTM | 0.03587011 | ||||
Claim | 64809300 | 274 days ago | IN | 0 FTM | 0.00420386 | ||||
Claim | 64358910 | 283 days ago | IN | 0 FTM | 0.0038693 | ||||
Claim | 64108348 | 288 days ago | IN | 0 FTM | 0.00474501 | ||||
Claim | 63779609 | 294 days ago | IN | 0 FTM | 0.00425262 | ||||
Claim | 63260106 | 305 days ago | IN | 0 FTM | 0.00764687 | ||||
Claim And Withdr... | 62920222 | 310 days ago | IN | 0 FTM | 0.09438303 | ||||
Claim And Withdr... | 62920170 | 310 days ago | IN | 0 FTM | 0.15053013 | ||||
Claim | 62739950 | 313 days ago | IN | 0 FTM | 0.00737775 | ||||
Claim | 62367860 | 318 days ago | IN | 0 FTM | 0.00674452 | ||||
Claim | 62060872 | 322 days ago | IN | 0 FTM | 0.01528707 | ||||
Claim | 61700109 | 326 days ago | IN | 0 FTM | 0.00677511 | ||||
Claim | 61547379 | 328 days ago | IN | 0 FTM | 0.01023973 | ||||
Claim | 61232089 | 332 days ago | IN | 0 FTM | 0.01569622 | ||||
Claim | 60857185 | 337 days ago | IN | 0 FTM | 0.057322 | ||||
Claim | 60564905 | 341 days ago | IN | 0 FTM | 0.02076091 | ||||
Claim | 60484969 | 342 days ago | IN | 0 FTM | 0.02353705 | ||||
Claim | 60473173 | 342 days ago | IN | 0 FTM | 0.01252396 | ||||
Claim | 60290150 | 344 days ago | IN | 0 FTM | 0.02141081 | ||||
Claim | 60022422 | 348 days ago | IN | 0 FTM | 0.00851684 |
Latest 1 internal transaction
Parent Txn Hash | Block | From | To | Value | ||
---|---|---|---|---|---|---|
46906273 | 561 days ago | Contract Creation | 0 FTM |
Loading...
Loading
Contract Name:
TokenStaking
Compiler Version
v0.7.0+commit.9e61f92b
Contract Source Code (Solidity)
/** *Submitted for verification at ftmscan.com on 2022-09-14 */ // SPDX-License-Identifier: CC-BY-SA 4.0 //https://creativecommons.org/licenses/by-sa/4.0/ // TL;DR: The creators of this contract (@LogETH) & (@jellyfantom) are not liable for any damages associated with using the following code // This contract must be deployed with credits toward the original creators, @LogETH @jellyfantom . // You must indicate if changes were made in a reasonable manner, but not in any way that suggests we endorse you or your use. // If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. // You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. // This TL;DR is solely an explaination and is not a representation of the license. // By deploying this contract, you agree to the license above and the terms and conditions that come with it. pragma solidity >=0.7.0 <0.9.0; contract TokenStaking{ //// This contract locks tokens for a period of time and then releases them with an additional reward. //// THIS CONTRACT MUST BE IMMUNE TO/EXCLUDED FROM ANY FEE ON TRANSFER MECHANISMS. (Or else things will break) //// Commissioned by spagetti#7777 on 5/17/2022 // now to the code: // the constructor that activates when you deploy the contract, as you can see, it makes you the admin. constructor(){ admin = msg.sender; } ////////////////////////// ///////////////////////// ///////////////////////// ////////////////////////// //////////////////////// Variables that this contract has: /////////////////////////// /////////////////////// //////////////////////////// ////////////////////// ///////////////////////////// //// The ERC20 Token and the reward token: ERC20 Token; ERC20 RewardToken; //// All the Variables that this contract uses mapping(address => uint) LockTimestamp; mapping(address => bool) public Staked; mapping(address => uint) public StakedTokens; uint public totalStaked; uint public VaultReward; uint public LockingPeriod; uint public Limit; address admin; ////////////////////////// ///////////////////////// ///////////////////////// ////////////////////////// //////////////////////// Visible functions this contract has: /////////////////////////// /////////////////////// //////////////////////////// ////////////////////// ///////////////////////////// // Functions that let the Admin of this contract change settings. function EditRewardToken(ERC20 WhatToken) public { require(msg.sender == admin, "You aren't the admin so you can't press this button"); RewardToken = WhatToken; } function SetDepositToken(ERC20 WhatToken) public { require(msg.sender == admin, "You aren't the admin so you can't press this button"); Token = WhatToken; } function EditLockingPeriod(uint HowManyBlocks) public { require(msg.sender == admin, "You aren't the admin so you can't press this button"); LockingPeriod = HowManyBlocks; // Changes the token (DOES NOT RESET REWARDS) } // Enter in how many reward tokens should be given to 1 LP token per lock. function EditLockReward(uint HowManyTokens) public { require(msg.sender == admin, "You aren't the admin so you can't press this button"); VaultReward = HowManyTokens; // Switches to the new reward percentage } function SweepToken(ERC20 TokenAddress) public { require(msg.sender == admin, "You aren't the admin so you can't press this button"); require(TokenAddress != Token || TokenAddress != RewardToken, "You cannot sweep a token that is being used by the contract"); TokenAddress.transfer(msg.sender, TokenAddress.balanceOf(address(this))); } // The deposit button deposits your tokens into the vault. // WARNING: Depositing more resets the timer!!! function deposit(uint amount) public { Token.transferFrom(msg.sender, address(this), amount); Staked[msg.sender] = true; StakedTokens[msg.sender] += amount; LockTimestamp[msg.sender] = block.timestamp; } // The Claim Button opens the vault and gives out the rewards and your staked balance if you call claimAndWithdraw() function claim() public { require(Staked[msg.sender] = true, "You have not deposited anything yet"); require(CalculateTime(msg.sender) > LockingPeriod, "Your Locking time has not finished yet."); RewardToken.transfer(msg.sender, CalculateReward(msg.sender)); LockTimestamp[msg.sender] = block.timestamp; } function claimAndWithdraw() public { require(Staked[msg.sender] = true, "You have not deposited anything yet"); require(CalculateTime(msg.sender) > LockingPeriod, "Your Locking time has not finished yet."); RewardToken.transfer(msg.sender, CalculateReward(msg.sender)); Token.transfer(msg.sender, StakedTokens[msg.sender]); Staked[msg.sender] = false; StakedTokens[msg.sender] = 0; } ////////////////////////// ///////////////////////// ///////////////////////// ////////////////////////// //////////////////////// Internal and external functions this contract has: /////////////////////////// /////////////////////// //////////////////////////// ////////////////////// ///////////////////////////// // (msg.sender SHOULD NOT be used/assumed in any of these functions.) // CalculateTime returns a uint with 18 decimals. function CalculateTime(address YourAddress) internal view returns (uint256){ uint Time = (block.timestamp - LockTimestamp[YourAddress]); if(LockTimestamp[YourAddress] == block.timestamp){Time = 0;} return Time; } function CalculateReward(address Who) public view returns (uint){ return (StakedTokens[Who]*VaultReward)/(10**RewardToken.decimals()); } ////////////////////////// ///////////////////////// ///////////////////////// ////////////////////////// //////////////////////// Functions used for UI data /////////////////////////// /////////////////////// //////////////////////////// ////////////////////// ///////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //// Additional functions that are not part of the core functionality, if you add anything, please add it here //// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /* function something() public { blah blah blah blah; } */ } ////////////////////////// ///////////////////////// ///////////////////////// ////////////////////////// //////////////////////// Contracts that this contract uses, contractception! /////////////////////////// /////////////////////// //////////////////////////// ////////////////////// ///////////////////////////// interface NFT{ function transferFrom(address, address, uint256) external; function balanceOf(address) external returns (uint); } interface ERC20{ function transferFrom(address, address, uint256) external; function transfer(address, uint256) external; function balanceOf(address) external view returns(uint); function decimals() external view returns (uint8); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"Who","type":"address"}],"name":"CalculateReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"HowManyTokens","type":"uint256"}],"name":"EditLockReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"HowManyBlocks","type":"uint256"}],"name":"EditLockingPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"WhatToken","type":"address"}],"name":"EditRewardToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Limit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LockingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"WhatToken","type":"address"}],"name":"SetDepositToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"Staked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"StakedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"TokenAddress","type":"address"}],"name":"SweepToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"VaultReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimAndWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5033600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506113c4806100616000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806387cb550211610097578063b6b55f2511610066578063b6b55f25146102ee578063d3da6ed51461031c578063e34e73d414610374578063ffd9cf5a146103b8576100f5565b806387cb55021461021a578063a3b112eb1461025e578063aead9e471461028c578063b4c7325914610296576100f5565b80634e71d92d116100d35780634e71d92d1461017a5780634f0575061461018457806377338642146101a2578063817b1cd2146101fc576100f5565b806335ce4c54146100fa5780633a2632cc1461013e5780634695aa441461015c575b600080fd5b61013c6004803603602081101561011057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103e6565b005b6101466106b7565b6040518082815260200191505060405180910390f35b6101646106bd565b6040518082815260200191505060405180910390f35b6101826106c3565b005b61018c6108ca565b6040518082815260200191505060405180910390f35b6101e4600480360360208110156101b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108d0565b60405180821515815260200191505060405180910390f35b6102046108f0565b6040518082815260200191505060405180910390f35b61025c6004803603602081101561023057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108f6565b005b61028a6004803603602081101561027457600080fd5b81019080803590602001909291905050506109df565b005b610294610a8f565b005b6102d8600480360360208110156102ac57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dd7565b6040518082815260200191505060405180910390f35b61031a6004803603602081101561030457600080fd5b8101908080359060200190929190505050610ed5565b005b61035e6004803603602081101561033257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611088565b6040518082815260200191505060405180910390f35b6103b66004803603602081101561038a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110a0565b005b6103e4600480360360208110156103ce57600080fd5b810190808035906020019092919050505061118a565b005b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461048c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806113126033913960400191505060405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415806105355750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b61058a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001806112d7603b913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561060e57600080fd5b505afa158015610622573d6000803e3d6000fd5b505050506040513d602081101561063857600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561069c57600080fd5b505af11580156106b0573d6000803e3d6000fd5b5050505050565b60065481565b60075481565b6001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905561076f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061136c6023913960400191505060405180910390fd5b60075461077b3361123a565b116107d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806113456027913960400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3361081933610dd7565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561086c57600080fd5b505af1158015610880573d6000803e3d6000fd5b5050505042600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550565b60085481565b60036020528060005260406000206000915054906101000a900460ff1681565b60055481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461099c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806113126033913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a85576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806113126033913960400191505060405180910390fd5b8060068190555050565b6001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055610b3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061136c6023913960400191505060405180910390fd5b600754610b473361123a565b11610b9d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806113456027913960400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33610be533610dd7565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610c3857600080fd5b505af1158015610c4c573d6000803e3d6000fd5b5050505060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610d2057600080fd5b505af1158015610d34573d6000803e3d6000fd5b505050506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015610e4157600080fd5b505afa158015610e55573d6000803e3d6000fd5b505050506040513d6020811015610e6b57600080fd5b810190808051906020019092919050505060ff16600a0a600654600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540281610ecd57fe5b049050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610f8457600080fd5b505af1158015610f98573d6000803e3d6000fd5b505050506001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555042600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60046020528060005260406000206000915090505481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611146576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806113126033913960400191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611230576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806113126033913960400191505060405180910390fd5b8060078190555050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544203905042600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156112cd57600090505b8091505091905056fe596f752063616e6e6f74207377656570206120746f6b656e2074686174206973206265696e6720757365642062792074686520636f6e7472616374596f75206172656e2774207468652061646d696e20736f20796f752063616e2774207072657373207468697320627574746f6e596f7572204c6f636b696e672074696d6520686173206e6f742066696e6973686564207965742e596f752068617665206e6f74206465706f736974656420616e797468696e6720796574a2646970667358221220fe7c0a77260c52b13fce4408646207cbf69a8419ed66dd2482679b6df045fd8064736f6c63430007000033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100f55760003560e01c806387cb550211610097578063b6b55f2511610066578063b6b55f25146102ee578063d3da6ed51461031c578063e34e73d414610374578063ffd9cf5a146103b8576100f5565b806387cb55021461021a578063a3b112eb1461025e578063aead9e471461028c578063b4c7325914610296576100f5565b80634e71d92d116100d35780634e71d92d1461017a5780634f0575061461018457806377338642146101a2578063817b1cd2146101fc576100f5565b806335ce4c54146100fa5780633a2632cc1461013e5780634695aa441461015c575b600080fd5b61013c6004803603602081101561011057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103e6565b005b6101466106b7565b6040518082815260200191505060405180910390f35b6101646106bd565b6040518082815260200191505060405180910390f35b6101826106c3565b005b61018c6108ca565b6040518082815260200191505060405180910390f35b6101e4600480360360208110156101b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108d0565b60405180821515815260200191505060405180910390f35b6102046108f0565b6040518082815260200191505060405180910390f35b61025c6004803603602081101561023057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108f6565b005b61028a6004803603602081101561027457600080fd5b81019080803590602001909291905050506109df565b005b610294610a8f565b005b6102d8600480360360208110156102ac57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dd7565b6040518082815260200191505060405180910390f35b61031a6004803603602081101561030457600080fd5b8101908080359060200190929190505050610ed5565b005b61035e6004803603602081101561033257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611088565b6040518082815260200191505060405180910390f35b6103b66004803603602081101561038a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110a0565b005b6103e4600480360360208110156103ce57600080fd5b810190808035906020019092919050505061118a565b005b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461048c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806113126033913960400191505060405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415806105355750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b61058a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001806112d7603b913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561060e57600080fd5b505afa158015610622573d6000803e3d6000fd5b505050506040513d602081101561063857600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561069c57600080fd5b505af11580156106b0573d6000803e3d6000fd5b5050505050565b60065481565b60075481565b6001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905561076f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061136c6023913960400191505060405180910390fd5b60075461077b3361123a565b116107d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806113456027913960400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3361081933610dd7565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561086c57600080fd5b505af1158015610880573d6000803e3d6000fd5b5050505042600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550565b60085481565b60036020528060005260406000206000915054906101000a900460ff1681565b60055481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461099c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806113126033913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a85576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806113126033913960400191505060405180910390fd5b8060068190555050565b6001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055610b3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061136c6023913960400191505060405180910390fd5b600754610b473361123a565b11610b9d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806113456027913960400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33610be533610dd7565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610c3857600080fd5b505af1158015610c4c573d6000803e3d6000fd5b5050505060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610d2057600080fd5b505af1158015610d34573d6000803e3d6000fd5b505050506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015610e4157600080fd5b505afa158015610e55573d6000803e3d6000fd5b505050506040513d6020811015610e6b57600080fd5b810190808051906020019092919050505060ff16600a0a600654600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540281610ecd57fe5b049050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610f8457600080fd5b505af1158015610f98573d6000803e3d6000fd5b505050506001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555042600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60046020528060005260406000206000915090505481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611146576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806113126033913960400191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611230576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806113126033913960400191505060405180910390fd5b8060078190555050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544203905042600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156112cd57600090505b8091505091905056fe596f752063616e6e6f74207377656570206120746f6b656e2074686174206973206265696e6720757365642062792074686520636f6e7472616374596f75206172656e2774207468652061646d696e20736f20796f752063616e2774207072657373207468697320627574746f6e596f7572204c6f636b696e672074696d6520686173206e6f742066696e6973686564207965742e596f752068617665206e6f74206465706f736974656420616e797468696e6720796574a2646970667358221220fe7c0a77260c52b13fce4408646207cbf69a8419ed66dd2482679b6df045fd8064736f6c63430007000033
Deployed Bytecode Sourcemap
965:6948:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4058:370;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2336:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2366:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4935:360;;;:::i;:::-;;2398:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2210:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2306:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3291:181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3814:236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5303:450;;;:::i;:::-;;6730:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4555:248;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2255:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3096:187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3480:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4058:370;4140:5;;;;;;;;;;;4126:19;;:10;:19;;;4118:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4236:5;;;;;;;;;;4220:21;;:12;:21;;;;:52;;;;4261:11;;;;;;;;;;;4245:27;;:12;:27;;;;4220:52;4212:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4347:12;:21;;;4369:10;4381:12;:22;;;4412:4;4381:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4347:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4058:370;:::o;2336:23::-;;;;:::o;2366:25::-;;;;:::o;4935:360::-;5001:4;4980:6;:18;4987:10;4980:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;4972:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5092:13;;5064:25;5078:10;5064:13;:25::i;:::-;:41;5056:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5162:11;;;;;;;;;;;:20;;;5183:10;5195:27;5211:10;5195:15;:27::i;:::-;5162:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5272:15;5244:13;:25;5258:10;5244:25;;;;;;;;;;;;;;;:43;;;;4935:360::o;2398:17::-;;;;:::o;2210:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;2306:23::-;;;;:::o;3291:181::-;3375:5;;;;;;;;;;;3361:19;;:10;:19;;;3353:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3455:9;3447:5;;:17;;;;;;;;;;;;;;;;;;3291:181;:::o;3814:236::-;3900:5;;;;;;;;;;;3886:19;;:10;:19;;;3878:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3988:13;3974:11;:27;;;;3814:236;:::o;5303:450::-;5380:4;5359:6;:18;5366:10;5359:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;5351:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5471:13;;5443:25;5457:10;5443:13;:25::i;:::-;:41;5435:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5541:11;;;;;;;;;;;:20;;;5562:10;5574:27;5590:10;5574:15;:27::i;:::-;5541:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5613:5;;;;;;;;;;:14;;;5628:10;5640:12;:24;5653:10;5640:24;;;;;;;;;;;;;;;;5613:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5699:5;5678:6;:18;5685:10;5678:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;5742:1;5715:12;:24;5728:10;5715:24;;;;;;;;;;;;;;;:28;;;;5303:450::o;6730:152::-;6789:4;6851:11;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6847:26;;:2;:26;6833:11;;6815:12;:17;6828:3;6815:17;;;;;;;;;;;;;;;;:29;6814:60;;;;;;6807:67;;6730:152;;;:::o;4555:248::-;4605:5;;;;;;;;;;:18;;;4624:10;4644:4;4651:6;4605:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:4;4671:6;:18;4678:10;4671:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;4735:6;4707:12;:24;4720:10;4707:24;;;;;;;;;;;;;;;;:34;;;;;;;;;;;4780:15;4752:13;:25;4766:10;4752:25;;;;;;;;;;;;;;;:43;;;;4555:248;:::o;2255:44::-;;;;;;;;;;;;;;;;;:::o;3096:187::-;3180:5;;;;;;;;;;;3166:19;;:10;:19;;;3158:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3266:9;3252:11;;:23;;;;;;;;;;;;;;;;;;3096:187;:::o;3480:244::-;3569:5;;;;;;;;;;;3555:19;;:10;:19;;;3547:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3657:13;3641;:29;;;;3480:244;:::o;6474:248::-;6541:7;6562:9;6593:13;:26;6607:11;6593:26;;;;;;;;;;;;;;;;6575:15;:44;6562:58;;6664:15;6634:13;:26;6648:11;6634:26;;;;;;;;;;;;;;;;:45;6631:60;;;6688:1;6681:8;;6631:60;6710:4;6703:11;;;6474:248;;;:::o
Swarm Source
ipfs://fe7c0a77260c52b13fce4408646207cbf69a8419ed66dd2482679b6df045fd80
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.