Address Details
contract
0x926a9E7C1A9cb608b6f3068F3CA3811dDE792b7D
- Contract Name
- Signatures
- Creator
- 0xe23a4c–2b2dee at 0x2887bd–f4643e
- Balance
- 0 CELO ( )
- Locked CELO Balance
- 0.00 CELO
- Voting CELO Balance
- 0.00 CELO
- Pending Unlocked Gold
- 0.00 CELO
- Tokens
-
Fetching tokens...
- Transactions
- 0 Transactions
- Transfers
- 0 Transfers
- Gas Used
- Fetching gas used...
- Last Balance Update
- 3626309
- Contract name:
- Signatures
- Optimization enabled
- false
- Compiler version
- v0.5.8+commit.23d335f2
- Verified at
- 2020-04-22T22:51:03.831943Z
Contract source code
pragma solidity ^0.5.3; library ECDSA { function recover(bytes32 hash, bytes memory signature) internal pure returns (address) { if (signature.length != 65) { return (address(0)); } bytes32 r; bytes32 s; uint8 v; assembly { r := mload(add(signature, 0x20)) s := mload(add(signature, 0x40)) v := byte(0, mload(add(signature, 0x60))) } if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) { return address(0); } if (v != 27 && v != 28) { return address(0); } return ecrecover(hash, v, r, s); } function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32) { return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash)); } } library Signatures { function getSignerOfAddress(address message, uint8 v, bytes32 r, bytes32 s) public pure returns (address) { bytes32 hash = keccak256(abi.encodePacked(message)); return getSignerOfMessageHash(hash, v, r, s); } function getSignerOfMessageHash(bytes32 messageHash, uint8 v, bytes32 r, bytes32 s) public pure returns (address) { bytes memory signature = new bytes(65); assembly { mstore(add(signature, 32), r) mstore(add(signature, 64), s) mstore8(add(signature, 96), v) } bytes32 prefixedHash = ECDSA.toEthSignedMessageHash(messageHash); return ECDSA.recover(prefixedHash, signature); } }
Contract ABI
[{"type":"function","stateMutability":"pure","payable":false,"outputs":[{"type":"address","name":""}],"name":"getSignerOfAddress","inputs":[{"type":"address","name":"message"},{"type":"uint8","name":"v"},{"type":"bytes32","name":"r"},{"type":"bytes32","name":"s"}],"constant":true},{"type":"function","stateMutability":"pure","payable":false,"outputs":[{"type":"address","name":""}],"name":"getSignerOfMessageHash","inputs":[{"type":"bytes32","name":"messageHash"},{"type":"uint8","name":"v"},{"type":"bytes32","name":"r"},{"type":"bytes32","name":"s"}],"constant":true}]
Contract Creation Code
0x6103e3610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100405760003560e01c806396ef41a114610045578063b3abdb0c146100ea575b600080fd5b6100a86004803603608081101561005b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291908035906020019092919080359060200190929190505050610179565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101376004803603608081101561010057600080fd5b8101908080359060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506101eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008085604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014019150506040516020818303038152906040528051906020012090506101e0818686866101eb565b915050949350505050565b6000606060416040519080825280601f01601f1916602001820160405280156102235781602001600182028038833980820191505090505b50905083602082015282604082015284606082015360006102438761025b565b905061024f81836102b3565b92505050949350505050565b60008160405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c01828152602001915050604051602081830303815290604052805190602001209050919050565b600060418251146102c757600090506103b1565b60008060006020850151925060408501519150606085015160001a90507f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08260001c111561031b57600093505050506103b1565b601b8160ff16141580156103335750601c8160ff1614155b1561034457600093505050506103b1565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156103a1573d6000803e3d6000fd5b5050506020604051035193505050505b9291505056fea165627a7a7230582007494890c8cc39b258586073f9498f533275e0a6c818e30a0f320926f66f23750029
Deployed ByteCode
0x73926a9e7c1a9cb608b6f3068f3ca3811dde792b7d30146080604052600436106100405760003560e01c806396ef41a114610045578063b3abdb0c146100ea575b600080fd5b6100a86004803603608081101561005b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291908035906020019092919080359060200190929190505050610179565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101376004803603608081101561010057600080fd5b8101908080359060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506101eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008085604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014019150506040516020818303038152906040528051906020012090506101e0818686866101eb565b915050949350505050565b6000606060416040519080825280601f01601f1916602001820160405280156102235781602001600182028038833980820191505090505b50905083602082015282604082015284606082015360006102438761025b565b905061024f81836102b3565b92505050949350505050565b60008160405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c01828152602001915050604051602081830303815290604052805190602001209050919050565b600060418251146102c757600090506103b1565b60008060006020850151925060408501519150606085015160001a90507f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08260001c111561031b57600093505050506103b1565b601b8160ff16141580156103335750601c8160ff1614155b1561034457600093505050506103b1565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156103a1573d6000803e3d6000fd5b5050506020604051035193505050505b9291505056fea165627a7a7230582007494890c8cc39b258586073f9498f533275e0a6c818e30a0f320926f66f23750029