More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 4,709 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Pay For Myself | 5867409 | 2385 days ago | IN | 1 ETH | 0.00056995 | ||||
Pay For Myself | 5212540 | 2497 days ago | IN | 0.5 ETH | 0.00136404 | ||||
Pay For Myself | 5212538 | 2497 days ago | IN | 0.5 ETH | 0.00102591 | ||||
Pay For Myself | 5116629 | 2514 days ago | IN | 0.1 ETH | 0.00102591 | ||||
Pay For Myself | 5116622 | 2514 days ago | IN | 0.1 ETH | 0.00102591 | ||||
Pay For Myself | 5115327 | 2514 days ago | IN | 0.075 ETH | 0.00102591 | ||||
Pay For Myself | 5072916 | 2521 days ago | IN | 0.15 ETH | 0.00102591 | ||||
Pay For Myself | 5072663 | 2521 days ago | IN | 1.13147826 ETH | 0 | ||||
Pay For Myself | 5072141 | 2521 days ago | IN | 0.2 ETH | 0.00102591 | ||||
Pay For Myself | 5071946 | 2521 days ago | IN | 0.025 ETH | 0.00000227 | ||||
Pay For Myself | 5071915 | 2521 days ago | IN | 0.2 ETH | 0.00093471 | ||||
Pay For Myself | 5071888 | 2521 days ago | IN | 0.08897343 ETH | 0.00093471 | ||||
Transfer | 5071852 | 2521 days ago | IN | 0.07025159 ETH | 0.00086288 | ||||
Transfer | 5071838 | 2521 days ago | IN | 0.06 ETH | 0.00067807 | ||||
Pay For Myself | 5071837 | 2521 days ago | IN | 3 ETH | 0.00102591 | ||||
Transfer | 5071832 | 2521 days ago | IN | 0.07192218 ETH | 0.00086288 | ||||
Pay For Myself | 5071832 | 2521 days ago | IN | 0.1129518 ETH | 0.00102591 | ||||
Transfer | 5071804 | 2521 days ago | IN | 0.08 ETH | 0.000861 | ||||
Transfer | 5071798 | 2521 days ago | IN | 0.08345548 ETH | 0.000861 | ||||
Transfer | 5071791 | 2521 days ago | IN | 0.05 ETH | 0.00044196 | ||||
Pay For Myself | 5071784 | 2521 days ago | IN | 0.3 ETH | 0.00093471 | ||||
Pay For Myself | 5071780 | 2521 days ago | IN | 2.97608155 ETH | 0.00102591 | ||||
Halt | 5071775 | 2521 days ago | IN | 0 ETH | 0.00032395 | ||||
Pay For Myself | 5071775 | 2521 days ago | IN | 0.5 ETH | 0.0038461 | ||||
Pay For Myself | 5071771 | 2521 days ago | IN | 2 ETH | 0.00226143 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
5071775 | 2521 days ago | 0.5 ETH | ||||
5071771 | 2521 days ago | 2 ETH | ||||
5071767 | 2521 days ago | 0.6 ETH | ||||
5071760 | 2521 days ago | 2.6 ETH | ||||
5071759 | 2521 days ago | 0.5 ETH | ||||
5071759 | 2521 days ago | 80 ETH | ||||
5071756 | 2521 days ago | 0.17 ETH | ||||
5071753 | 2521 days ago | 0.5 ETH | ||||
5071752 | 2521 days ago | 7 ETH | ||||
5071747 | 2521 days ago | 0.5 ETH | ||||
5071744 | 2521 days ago | 0.49 ETH | ||||
5071744 | 2521 days ago | 0.5 ETH | ||||
5071741 | 2521 days ago | 0.81 ETH | ||||
5071741 | 2521 days ago | 0.02 ETH | ||||
5071740 | 2521 days ago | 0.198 ETH | ||||
5071739 | 2521 days ago | 0.5 ETH | ||||
5071738 | 2521 days ago | 2 ETH | ||||
5071737 | 2521 days ago | 90 ETH | ||||
5071736 | 2521 days ago | 2.5 ETH | ||||
5071736 | 2521 days ago | 2 ETH | ||||
5071730 | 2521 days ago | 0.12 ETH | ||||
5071724 | 2521 days ago | 0.5 ETH | ||||
5071724 | 2521 days ago | 0.1 ETH | ||||
5071723 | 2521 days ago | 3 ETH | ||||
5071720 | 2521 days ago | 0.62 ETH |
Loading...
Loading
Contract Name:
PaymentForwarder
Compiler Version
v0.4.18+commit.9cf6e910
Optimization Enabled:
Yes with 500 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-01-30 */ /** * This smart contract code is Copyright 2017 TokenMarket Ltd. For more information see https://tokenmarket.net * * Licensed under the Apache License, version 2.0: https://github.com/TokenMarketNet/ico/blob/master/LICENSE.txt */ /** * This smart contract code is Copyright 2017 TokenMarket Ltd. For more information see https://tokenmarket.net * * Licensed under the Apache License, version 2.0: https://github.com/TokenMarketNet/ico/blob/master/LICENSE.txt */ /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ function Ownable() { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) onlyOwner { require(newOwner != address(0)); owner = newOwner; } } /* * Haltable * * Abstract contract that allows children to implement an * emergency stop mechanism. Differs from Pausable by causing a throw when in halt mode. * * * Originally envisioned in FirstBlood ICO contract. */ contract Haltable is Ownable { bool public halted; modifier stopInEmergency { if (halted) throw; _; } modifier stopNonOwnersInEmergency { if (halted && msg.sender != owner) throw; _; } modifier onlyInEmergency { if (!halted) throw; _; } // called by the owner on emergency, triggers stopped state function halt() external onlyOwner { halted = true; } // called by the owner on end of emergency, returns to normal state function unhalt() external onlyOwner onlyInEmergency { halted = false; } } /** * Forward Ethereum payments to another wallet and track them with an event. * * Allows to identify customers who made Ethereum payment for a central token issuance. * Furthermore allow making a payment on behalf of another address. * * Allow pausing to signal the end of the crowdsale. */ contract PaymentForwarder is Haltable { /** Who will get all ETH in the end */ address public teamMultisig; /** Total incoming money */ uint public totalTransferred; /** How many distinct customers we have that have made a payment */ uint public customerCount; /** Total incoming money per centrally tracked customer id */ mapping(uint128 => uint) public paymentsByCustomer; /** Total incoming money per benefactor address */ mapping(address => uint) public paymentsByBenefactor; /** A customer has made a payment. Benefactor is the address where the tokens will be ultimately issued.*/ event PaymentForwarded(address source, uint amount, uint128 customerId, address benefactor); function PaymentForwarder(address _owner, address _teamMultisig) { teamMultisig = _teamMultisig; owner = _owner; } function payWithoutChecksum(uint128 customerId, address benefactor) public stopInEmergency payable { uint weiAmount = msg.value; PaymentForwarded(msg.sender, weiAmount, customerId, benefactor); // We trust Ethereum amounts cannot overflow uint256 totalTransferred += weiAmount; if(paymentsByCustomer[customerId] == 0) { customerCount++; } paymentsByCustomer[customerId] += weiAmount; // We track benefactor addresses for extra safety; // In the case of central ETH issuance tracking has problems we can // construct ETH contributions solely based on blockchain data paymentsByBenefactor[benefactor] += weiAmount; // May run out of gas if(!teamMultisig.send(weiAmount)) throw; } /** * Pay on a behalf of an address. * * @param customerId Identifier in the central database, UUID v4 * */ function pay(uint128 customerId, address benefactor, bytes1 checksum) public stopInEmergency payable { // see customerid.py if (bytes1(sha3(customerId, benefactor)) != checksum) throw; payWithoutChecksum(customerId, benefactor); } /** * Pay on a behalf of the sender. * * @param customerId Identifier in the central database, UUID v4 * */ function payForMyselfWithChecksum(uint128 customerId, bytes1 checksum) public payable { // see customerid.py if (bytes1(sha3(customerId)) != checksum) throw; payWithoutChecksum(customerId, msg.sender); } /** * Legacy API signature. */ function payForMyself(uint128 customerId) public payable { payWithoutChecksum(customerId, msg.sender); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"customerId","type":"uint128"}],"name":"payForMyself","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"customerId","type":"uint128"},{"name":"benefactor","type":"address"}],"name":"payWithoutChecksum","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"customerId","type":"uint128"},{"name":"checksum","type":"bytes1"}],"name":"payForMyselfWithChecksum","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"halt","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"customerCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalTransferred","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"halted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"customerId","type":"uint128"},{"name":"benefactor","type":"address"},{"name":"checksum","type":"bytes1"}],"name":"pay","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"unhalt","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"teamMultisig","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"paymentsByBenefactor","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint128"}],"name":"paymentsByCustomer","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_owner","type":"address"},{"name":"_teamMultisig","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"source","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"customerId","type":"uint128"},{"indexed":false,"name":"benefactor","type":"address"}],"name":"PaymentForwarded","type":"event"}]
Contract Creation Code
6060604052341561000f57600080fd5b6040516040806107bd83398101604052808051919060200180516000805460018054600160a060020a03948516600160a060020a03199182161790915595831633939093169086161790941617909255505061074d806100706000396000f3006060604052600436106100cf5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663274465b481146100d457806331288397146100f357806346f2e8801461011c5780635ed7ca5b1461015e5780638da5cb5b146101715780639757e8a3146101a05780639b087b2d146101c5578063b9b8af0b146101d8578063bbc43d41146101ff578063cb3e64fd1461024d578063dbc0c08514610260578063ef3336f514610273578063f2fde38b14610292578063f9215676146102b1575b600080fd5b6100f16fffffffffffffffffffffffffffffffff600435166102d9565b005b6100f16fffffffffffffffffffffffffffffffff60043516600160a060020a03602435166102e6565b6100f16fffffffffffffffffffffffffffffffff600435167fff000000000000000000000000000000000000000000000000000000000000006024351661042d565b341561016957600080fd5b6100f16104c4565b341561017c57600080fd5b610184610516565b604051600160a060020a03909116815260200160405180910390f35b34156101ab57600080fd5b6101b3610525565b60405190815260200160405180910390f35b34156101d057600080fd5b6101b361052b565b34156101e357600080fd5b6101eb610531565b604051901515815260200160405180910390f35b6100f16fffffffffffffffffffffffffffffffff60043516600160a060020a03602435167fff0000000000000000000000000000000000000000000000000000000000000060443516610552565b341561025857600080fd5b6100f161062b565b341561026b57600080fd5b61018461068f565b341561027e57600080fd5b6101b3600160a060020a036004351661069e565b341561029d57600080fd5b6100f1600160a060020a03600435166106b0565b34156102bc57600080fd5b6101b36fffffffffffffffffffffffffffffffff6004351661070f565b6102e381336102e6565b50565b6000805474010000000000000000000000000000000000000000900460ff161561030f57600080fd5b50347f4e4e2d6da11427f2d85d47e2bced64efa9ccd9694ae97786772a22d465bc80a433828585604051600160a060020a03948516815260208101939093526fffffffffffffffffffffffffffffffff90911660408084019190915292166060820152608001905180910390a160028054820190556fffffffffffffffffffffffffffffffff831660009081526004602052604090205415156103b6576003805460010190555b6fffffffffffffffffffffffffffffffff83166000908152600460209081526040808320805485019055600160a060020a038086168452600590925291829020805484019055600154169082156108fc0290839051600060405180830381858888f19350505050151561042857600080fd5b505050565b7fff000000000000000000000000000000000000000000000000000000000000008116826040516fffffffffffffffffffffffffffffffff919091167001000000000000000000000000000000000281526010016040519081900390207fff0000000000000000000000000000000000000000000000000000000000000016146104b657600080fd5b6104c082336102e6565b5050565b60005433600160a060020a039081169116146104df57600080fd5b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600054600160a060020a031681565b60035481565b60025481565b60005474010000000000000000000000000000000000000000900460ff1681565b60005474010000000000000000000000000000000000000000900460ff161561057a57600080fd5b7fff00000000000000000000000000000000000000000000000000000000000000811683836040516fffffffffffffffffffffffffffffffff92909216700100000000000000000000000000000000028252600160a060020a03166c010000000000000000000000000260108201526024016040519081900390207fff00000000000000000000000000000000000000000000000000000000000000161461062157600080fd5b61042883836102e6565b60005433600160a060020a0390811691161461064657600080fd5b60005474010000000000000000000000000000000000000000900460ff16151561066f57600080fd5b6000805474ff000000000000000000000000000000000000000019169055565b600154600160a060020a031681565b60056020526000908152604090205481565b60005433600160a060020a039081169116146106cb57600080fd5b600160a060020a03811615156106e057600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600460205260009081526040902054815600a165627a7a7230582085782cb25c342be9183a6d0cf459cd45c1f3c99111e7ba969a5e3d2a52888a6900290000000000000000000000007b4a608746296ab1cf55c9c19078ccdc38b18dc000000000000000000000000043fccd4f59956a50f5005ef014308bbbc78ffe65
Deployed Bytecode
0x6060604052600436106100cf5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663274465b481146100d457806331288397146100f357806346f2e8801461011c5780635ed7ca5b1461015e5780638da5cb5b146101715780639757e8a3146101a05780639b087b2d146101c5578063b9b8af0b146101d8578063bbc43d41146101ff578063cb3e64fd1461024d578063dbc0c08514610260578063ef3336f514610273578063f2fde38b14610292578063f9215676146102b1575b600080fd5b6100f16fffffffffffffffffffffffffffffffff600435166102d9565b005b6100f16fffffffffffffffffffffffffffffffff60043516600160a060020a03602435166102e6565b6100f16fffffffffffffffffffffffffffffffff600435167fff000000000000000000000000000000000000000000000000000000000000006024351661042d565b341561016957600080fd5b6100f16104c4565b341561017c57600080fd5b610184610516565b604051600160a060020a03909116815260200160405180910390f35b34156101ab57600080fd5b6101b3610525565b60405190815260200160405180910390f35b34156101d057600080fd5b6101b361052b565b34156101e357600080fd5b6101eb610531565b604051901515815260200160405180910390f35b6100f16fffffffffffffffffffffffffffffffff60043516600160a060020a03602435167fff0000000000000000000000000000000000000000000000000000000000000060443516610552565b341561025857600080fd5b6100f161062b565b341561026b57600080fd5b61018461068f565b341561027e57600080fd5b6101b3600160a060020a036004351661069e565b341561029d57600080fd5b6100f1600160a060020a03600435166106b0565b34156102bc57600080fd5b6101b36fffffffffffffffffffffffffffffffff6004351661070f565b6102e381336102e6565b50565b6000805474010000000000000000000000000000000000000000900460ff161561030f57600080fd5b50347f4e4e2d6da11427f2d85d47e2bced64efa9ccd9694ae97786772a22d465bc80a433828585604051600160a060020a03948516815260208101939093526fffffffffffffffffffffffffffffffff90911660408084019190915292166060820152608001905180910390a160028054820190556fffffffffffffffffffffffffffffffff831660009081526004602052604090205415156103b6576003805460010190555b6fffffffffffffffffffffffffffffffff83166000908152600460209081526040808320805485019055600160a060020a038086168452600590925291829020805484019055600154169082156108fc0290839051600060405180830381858888f19350505050151561042857600080fd5b505050565b7fff000000000000000000000000000000000000000000000000000000000000008116826040516fffffffffffffffffffffffffffffffff919091167001000000000000000000000000000000000281526010016040519081900390207fff0000000000000000000000000000000000000000000000000000000000000016146104b657600080fd5b6104c082336102e6565b5050565b60005433600160a060020a039081169116146104df57600080fd5b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600054600160a060020a031681565b60035481565b60025481565b60005474010000000000000000000000000000000000000000900460ff1681565b60005474010000000000000000000000000000000000000000900460ff161561057a57600080fd5b7fff00000000000000000000000000000000000000000000000000000000000000811683836040516fffffffffffffffffffffffffffffffff92909216700100000000000000000000000000000000028252600160a060020a03166c010000000000000000000000000260108201526024016040519081900390207fff00000000000000000000000000000000000000000000000000000000000000161461062157600080fd5b61042883836102e6565b60005433600160a060020a0390811691161461064657600080fd5b60005474010000000000000000000000000000000000000000900460ff16151561066f57600080fd5b6000805474ff000000000000000000000000000000000000000019169055565b600154600160a060020a031681565b60056020526000908152604090205481565b60005433600160a060020a039081169116146106cb57600080fd5b600160a060020a03811615156106e057600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600460205260009081526040902054815600a165627a7a7230582085782cb25c342be9183a6d0cf459cd45c1f3c99111e7ba969a5e3d2a52888a690029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007b4a608746296ab1cf55c9c19078ccdc38b18dc000000000000000000000000043fccd4f59956a50f5005ef014308bbbc78ffe65
-----Decoded View---------------
Arg [0] : _owner (address): 0x7B4A608746296Ab1CF55C9C19078cCdC38b18Dc0
Arg [1] : _teamMultisig (address): 0x43fCcd4f59956A50F5005EF014308bBBC78FfE65
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007b4a608746296ab1cf55c9c19078ccdc38b18dc0
Arg [1] : 00000000000000000000000043fccd4f59956a50f5005ef014308bbbc78ffe65
Swarm Source
bzzr://85782cb25c342be9183a6d0cf459cd45c1f3c99111e7ba969a5e3d2a52888a69
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.044812 | 5 | $0.224 |
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.