Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 1 from a total of 1 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Say Yes | 23270266 | 189 days ago | IN | 0 ETH | 0.00008661 |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
WillYouMarryMe
Compiler Version
v0.8.20+commit.a1b79de6
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
contract WillYouMarryMe {
address public immutable proposer;
address public immutable proposee;
enum Response { None, Yes, No }
Response public response;
uint256 public respondedAt;
string public proposerName;
string public proposeeName;
bool public namesSet;
event Proposed(address indexed proposer, address indexed proposee);
event Responded(address indexed responder, Response response, uint256 timestamp);
event NamesSet(string proposerName, string proposeeName);
event SaidYes(address indexed responder, uint256 timestamp);
event SaidNo(address indexed responder, uint256 timestamp);
modifier onlyEOA() {
require(msg.sender == tx.origin, "No contracts");
_;
}
constructor(address _proposee) {
require(_proposee != address(0), "Invalid proposee");
proposer = msg.sender;
proposee = _proposee;
emit Proposed(proposer, proposee);
}
function _respond(bool accept) internal {
require(msg.sender == proposee, "Only proposee can answer");
require(response == Response.None, "Already answered");
response = accept ? Response.Yes : Response.No;
respondedAt = block.timestamp;
emit Responded(msg.sender, response, respondedAt);
if (accept) {
emit SaidYes(msg.sender, respondedAt);
} else {
emit SaidNo(msg.sender, respondedAt);
}
}
function sayYes() external onlyEOA {
_respond(true);
}
function sayNo() external onlyEOA {
_respond(false);
}
function setNames(string calldata _proposerName, string calldata _proposeeName) external onlyEOA {
require(msg.sender == proposer, "Only proposer can set names");
require(!namesSet, "Names already set");
proposerName = _proposerName;
proposeeName = _proposeeName;
namesSet = true;
emit NamesSet(_proposerName, _proposeeName);
}
function responseText() external view returns (string memory) {
if (response == Response.Yes) return "Yes";
if (response == Response.No) return "No";
return "None";
}
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"evmVersion": "paris",
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_proposee","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"proposerName","type":"string"},{"indexed":false,"internalType":"string","name":"proposeeName","type":"string"}],"name":"NamesSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"proposer","type":"address"},{"indexed":true,"internalType":"address","name":"proposee","type":"address"}],"name":"Proposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"responder","type":"address"},{"indexed":false,"internalType":"enum WillYouMarryMe.Response","name":"response","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Responded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"responder","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SaidNo","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"responder","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SaidYes","type":"event"},{"inputs":[],"name":"namesSet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposee","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposeeName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposerName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"respondedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"response","outputs":[{"internalType":"enum WillYouMarryMe.Response","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"responseText","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sayNo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sayYes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_proposerName","type":"string"},{"internalType":"string","name":"_proposeeName","type":"string"}],"name":"setNames","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60c060405234801561001057600080fd5b50604051610af6380380610af683398101604081905261002f916100c3565b6001600160a01b03811661007c5760405162461bcd60e51b815260206004820152601060248201526f496e76616c69642070726f706f73656560801b604482015260640160405180910390fd5b3360808190526001600160a01b03821660a08190526040519091907f2d55e9009d2ba2489867b9a937e7cefc252f9a6a959643a905cb0bd46e91d19f90600090a3506100f3565b6000602082840312156100d557600080fd5b81516001600160a01b03811681146100ec57600080fd5b9392505050565b60805160a0516109d061012660003960008181610122015261049b015260008181610183015261027601526109d06000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063796d56cc11610071578063796d56cc1461011d5780637a7f01a71461015c5780639bee336514610176578063a8e4fb901461017e578063ba95b235146101a5578063fe289477146101ad57600080fd5b80633bda64da146100ae5780634fceba4d146100cc5780635938d807146100e15780635ef1a3c5146100e95780636f7eab8614610100575b600080fd5b6100b66101b5565b6040516100c3919061064f565b60405180910390f35b6100df6100da3660046106e6565b610243565b005b6100b6610397565b6100f260015481565b6040519081526020016100c3565b60045461010d9060ff1681565b60405190151581526020016100c3565b6101447f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100c3565b6000546101699060ff1681565b6040516100c3919061078a565b6100df6103a4565b6101447f000000000000000000000000000000000000000000000000000000000000000081565b6100df6103cf565b6100b66103f8565b600380546101c29061079e565b80601f01602080910402602001604051908101604052809291908181526020018280546101ee9061079e565b801561023b5780601f106102105761010080835404028352916020019161023b565b820191906000526020600020905b81548152906001019060200180831161021e57829003601f168201915b505050505081565b33321461026b5760405162461bcd60e51b8152600401610262906107d8565b60405180910390fd5b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102e35760405162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070726f706f7365722063616e20736574206e616d657300000000006044820152606401610262565b60045460ff161561032a5760405162461bcd60e51b815260206004820152601160248201527013985b595cc8185b1c9958591e481cd95d607a1b6044820152606401610262565b6002610337848683610863565b506003610345828483610863565b506004805460ff191660011790556040517fbb63da38df6fbc88670bd508cbe905457cf16889bf054c1bca51a9351e8d927e9061038990869086908690869061094d565b60405180910390a150505050565b600280546101c29061079e565b3332146103c35760405162461bcd60e51b8152600401610262906107d8565b6103cd6001610490565b565b3332146103ee5760405162461bcd60e51b8152600401610262906107d8565b6103cd6000610490565b6060600160005460ff16600281111561041357610413610752565b03610436575060408051808201909152600381526259657360e81b602082015290565b600260005460ff16600281111561044f5761044f610752565b0361047157506040805180820190915260028152614e6f60f01b602082015290565b506040805180820190915260048152634e6f6e6560e01b602082015290565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105085760405162461bcd60e51b815260206004820152601860248201527f4f6e6c792070726f706f7365652063616e20616e7377657200000000000000006044820152606401610262565b6000805460ff16600281111561052057610520610752565b146105605760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e48185b9cddd95c995960821b6044820152606401610262565b8061056c57600261056f565b60015b6000805460ff1916600183600281111561058b5761058b610752565b021790555042600181905560005460405133927fb2f7d5b588a389aeb597bcc484fe3c0803771562a47c533db9cb43cc023c822b926105d09260ff909116919061097f565b60405180910390a2801561061a5760015460405190815233907f8535216f8b19255104cfa679025907bb9a6cb4d411114731aaf8d8f667dabe94906020015b60405180910390a250565b60015460405190815233907fb90e8321c6e7973931f1bd789783f821fd667ab46df12c1826ab33de02f0e5149060200161060f565b600060208083528351808285015260005b8181101561067c57858101830151858201604001528201610660565b506000604082860101526040601f19601f8301168501019250505092915050565b60008083601f8401126106af57600080fd5b50813567ffffffffffffffff8111156106c757600080fd5b6020830191508360208285010111156106df57600080fd5b9250929050565b600080600080604085870312156106fc57600080fd5b843567ffffffffffffffff8082111561071457600080fd5b6107208883890161069d565b9096509450602087013591508082111561073957600080fd5b506107468782880161069d565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b6003811061078657634e487b7160e01b600052602160045260246000fd5b9052565b602081016107988284610768565b92915050565b600181811c908216806107b257607f821691505b6020821081036107d257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600c908201526b4e6f20636f6e74726163747360a01b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b601f82111561085e57600081815260208120601f850160051c8101602086101561083b5750805b601f850160051c820191505b8181101561085a57828155600101610847565b5050505b505050565b67ffffffffffffffff83111561087b5761087b6107fe565b61088f83610889835461079e565b83610814565b6000601f8411600181146108c357600085156108ab5750838201355b600019600387901b1c1916600186901b17835561091d565b600083815260209020601f19861690835b828110156108f457868501358255602094850194600190920191016108d4565b50868210156109115760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000610961604083018688610924565b8281036020840152610974818587610924565b979650505050505050565b6040810161098d8285610768565b826020830152939250505056fea2646970667358221220ccf7b6ea0f1762d3c97b83844f5cdebdf638165e7cc1b9fee0323b083b24603464736f6c63430008140033000000000000000000000000d9f921e487ad8216bcf2e792f1604f171a90c645
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100a95760003560e01c8063796d56cc11610071578063796d56cc1461011d5780637a7f01a71461015c5780639bee336514610176578063a8e4fb901461017e578063ba95b235146101a5578063fe289477146101ad57600080fd5b80633bda64da146100ae5780634fceba4d146100cc5780635938d807146100e15780635ef1a3c5146100e95780636f7eab8614610100575b600080fd5b6100b66101b5565b6040516100c3919061064f565b60405180910390f35b6100df6100da3660046106e6565b610243565b005b6100b6610397565b6100f260015481565b6040519081526020016100c3565b60045461010d9060ff1681565b60405190151581526020016100c3565b6101447f000000000000000000000000d9f921e487ad8216bcf2e792f1604f171a90c64581565b6040516001600160a01b0390911681526020016100c3565b6000546101699060ff1681565b6040516100c3919061078a565b6100df6103a4565b6101447f000000000000000000000000f2dafc94754dfef0a535562ec1e8cc56743e446981565b6100df6103cf565b6100b66103f8565b600380546101c29061079e565b80601f01602080910402602001604051908101604052809291908181526020018280546101ee9061079e565b801561023b5780601f106102105761010080835404028352916020019161023b565b820191906000526020600020905b81548152906001019060200180831161021e57829003601f168201915b505050505081565b33321461026b5760405162461bcd60e51b8152600401610262906107d8565b60405180910390fd5b336001600160a01b037f000000000000000000000000f2dafc94754dfef0a535562ec1e8cc56743e446916146102e35760405162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070726f706f7365722063616e20736574206e616d657300000000006044820152606401610262565b60045460ff161561032a5760405162461bcd60e51b815260206004820152601160248201527013985b595cc8185b1c9958591e481cd95d607a1b6044820152606401610262565b6002610337848683610863565b506003610345828483610863565b506004805460ff191660011790556040517fbb63da38df6fbc88670bd508cbe905457cf16889bf054c1bca51a9351e8d927e9061038990869086908690869061094d565b60405180910390a150505050565b600280546101c29061079e565b3332146103c35760405162461bcd60e51b8152600401610262906107d8565b6103cd6001610490565b565b3332146103ee5760405162461bcd60e51b8152600401610262906107d8565b6103cd6000610490565b6060600160005460ff16600281111561041357610413610752565b03610436575060408051808201909152600381526259657360e81b602082015290565b600260005460ff16600281111561044f5761044f610752565b0361047157506040805180820190915260028152614e6f60f01b602082015290565b506040805180820190915260048152634e6f6e6560e01b602082015290565b336001600160a01b037f000000000000000000000000d9f921e487ad8216bcf2e792f1604f171a90c64516146105085760405162461bcd60e51b815260206004820152601860248201527f4f6e6c792070726f706f7365652063616e20616e7377657200000000000000006044820152606401610262565b6000805460ff16600281111561052057610520610752565b146105605760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e48185b9cddd95c995960821b6044820152606401610262565b8061056c57600261056f565b60015b6000805460ff1916600183600281111561058b5761058b610752565b021790555042600181905560005460405133927fb2f7d5b588a389aeb597bcc484fe3c0803771562a47c533db9cb43cc023c822b926105d09260ff909116919061097f565b60405180910390a2801561061a5760015460405190815233907f8535216f8b19255104cfa679025907bb9a6cb4d411114731aaf8d8f667dabe94906020015b60405180910390a250565b60015460405190815233907fb90e8321c6e7973931f1bd789783f821fd667ab46df12c1826ab33de02f0e5149060200161060f565b600060208083528351808285015260005b8181101561067c57858101830151858201604001528201610660565b506000604082860101526040601f19601f8301168501019250505092915050565b60008083601f8401126106af57600080fd5b50813567ffffffffffffffff8111156106c757600080fd5b6020830191508360208285010111156106df57600080fd5b9250929050565b600080600080604085870312156106fc57600080fd5b843567ffffffffffffffff8082111561071457600080fd5b6107208883890161069d565b9096509450602087013591508082111561073957600080fd5b506107468782880161069d565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b6003811061078657634e487b7160e01b600052602160045260246000fd5b9052565b602081016107988284610768565b92915050565b600181811c908216806107b257607f821691505b6020821081036107d257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600c908201526b4e6f20636f6e74726163747360a01b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b601f82111561085e57600081815260208120601f850160051c8101602086101561083b5750805b601f850160051c820191505b8181101561085a57828155600101610847565b5050505b505050565b67ffffffffffffffff83111561087b5761087b6107fe565b61088f83610889835461079e565b83610814565b6000601f8411600181146108c357600085156108ab5750838201355b600019600387901b1c1916600186901b17835561091d565b600083815260209020601f19861690835b828110156108f457868501358255602094850194600190920191016108d4565b50868210156109115760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000610961604083018688610924565b8281036020840152610974818587610924565b979650505050505050565b6040810161098d8285610768565b826020830152939250505056fea2646970667358221220ccf7b6ea0f1762d3c97b83844f5cdebdf638165e7cc1b9fee0323b083b24603464736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000d9f921e487ad8216bcf2e792f1604f171a90c645
-----Decoded View---------------
Arg [0] : _proposee (address): 0xd9f921E487ad8216bcF2E792f1604F171A90C645
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000d9f921e487ad8216bcf2e792f1604f171a90c645
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.