Description:
Smart contract deployed on Ethereum with Factory features.
Blockchain: Ethereum
Source Code: View Code On The Blockchain
Solidity Source Code:
{{
"language": "Vyper",
"sources": {
"src/PortoENSRegistrar.vy": {
"content": "# pragma version ^0.4.3
interface INameWrapper:
def setSubnodeOwner(parentNode: bytes32, label: String[32], owner: address, fuses: uint32, expiry: uint64): nonpayable
def setSubnodeRecord(parentNode: bytes32, label: String[32], owner: address, resolver: address, ttl: uint64, fuses: uint32, expiry: uint64): nonpayable
interface IPublicResolver:
def setAddr(node: bytes32, addr: address): nonpayable
interface IOrchestrator:
def accountImplementationOf(eoa: address) -> address: view
# Mainnet Namewrapper: 0xD4416b13d2b3a9aBae7AcD5D6C2BbDBE25686401
NameWrapper: immutable(INameWrapper)
PublicResolver: immutable(IPublicResolver) # Mainnet 0xF29100983E058B709F3D539b0c765937B804AC15
Orchestrator: constant(IOrchestrator) = IOrchestrator(0xB447BA5a2Fb841406cdac4585Fdc28027d7Ae503) # Mainnet
ITHACA_ACCOUNT: constant(address) = 0x96925ECC9c2132C36b959c0de532576169d37296
@deploy
def __init__(namewrapper: INameWrapper, resolver: IPublicResolver):
NameWrapper = namewrapper
PublicResolver = resolver
@external
def register(parent_node: bytes32, label: String[32]):
implementation: address = staticcall Orchestrator.accountImplementationOf(msg.sender)
assert implementation == ITHACA_ACCOUNT, "Not using Ithaca account"
extcall NameWrapper.setSubnodeOwner(
parent_node,
label,
self,
0,
max_value(uint64)
)
node: bytes32 = keccak256(concat(parent_node, keccak256(label)))
extcall PublicResolver.setAddr(node, msg.sender)
extcall NameWrapper.setSubnodeRecord(
parent_node,
label,
msg.sender,
PublicResolver.address,
0,
0,
max_value(uint64)
)
# ERC1155 Receiver functions
@external
def onERC1155Received(operator: address, from_: address, id: uint256,
_value: uint256, data: Bytes[1024]) -> bytes4:
return method_id("onERC1155Received(address,address,uint256,uint256,bytes)", output_type=bytes4)
@external
def onERC1155BatchReceived(operator: address, from_: address, ids: uint256,
values: uint256, data: Bytes[1024]) -> bytes4:
return method_id("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)", output_type=bytes4)
@external
def supportsInterface(interfaceID: bytes4) -> bool:
return interfaceID == 0x4e2312e0 or interfaceID == 0x01ffc9a7
",
"sha256sum": "8e2699ad717fcb51d9493191c575bd8503b3662a6c3e794eab1e9b97a62b65d1"
}
},
"settings": {
"outputSelection": {
"src/PortoENSRegistrar.vy": [
"evm.bytecode",
"evm.deployedBytecode",
"abi"
]
},
"search_paths": [
"."
]
},
"compiler_version": "v0.4.3+commit.bff19ea2",
"integrity": "67d3f4caa9b0df69066fc4d38f8df80bed412176e4161d96b164d0259b059307"
}}
Submitted on: 2025-09-19 12:48:01
Comments
Log in to comment.
No comments yet.