Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 2 additions & 40 deletions app/models/protocol_parser.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ class ProtocolParser

# Protocol name to parser class mapping
PROTOCOL_PARSERS = {
'word-domains' => WordDomainsParser,
'erc-20' => Erc20FixedDenominationParser,
'erc-20-fixed-denomination' => Erc20FixedDenominationParser,
'erc-721-ethscriptions-collection' => Erc721EthscriptionsCollectionParser
Expand All @@ -15,7 +14,6 @@ def self.extract(content_uri, eth_transaction: nil, ethscription_id: nil)
# Parse data URI and extract protocol info
parsed = parse_data_uri_and_protocol(content_uri)

# Special case: plain word-domains registration (data:,word) has no protocol markers
if parsed.nil?
# If we have an ethscription_id, try import fallback for collections regardless of content
if ethscription_id
Expand Down Expand Up @@ -49,7 +47,7 @@ def self.extract(content_uri, eth_transaction: nil, ethscription_id: nil)
end
end

return try_plain_word_domains(content_uri)
return nil
end

# Direct routing - no "try" needed since we know the protocol
Expand Down Expand Up @@ -215,40 +213,4 @@ def self.parse_parameters(parameters)
map
end

def self.try_plain_word_domains(content_uri)
# Try to parse as plain word-domains registration (data:,word)
return nil unless content_uri.is_a?(String)
return nil unless DataUri.valid?(content_uri)

data_uri = DataUri.new(content_uri)
decoded_content = data_uri.decoded_data
return nil unless decoded_content.is_a?(String)

# For plain word-domains: must have blank mimetype and no parameters
# Also reject empty content (like 'data:,')
return nil if decoded_content.strip.empty?
mt = data_uri.mimetype.to_s
return nil unless (mt.empty? || mt == 'text/plain') && data_uri.parameters.empty?

# Special handling for plain word-domains
encoded = WordDomainsParser.validate_and_encode(
decoded_content: decoded_content,
operation: nil, # No operation for plain text
params: {},
source: :plain,
ethscription_id: nil
)

return nil if encoded == DEFAULT_PARAMS

protocol, operation, encoded_data = encoded

{
type: :word_domains,
protocol: protocol,
operation: operation,
params: nil,
encoded_params: encoded_data
}
end
end
end
73 changes: 0 additions & 73 deletions app/models/word_domains_parser.rb

This file was deleted.

8 changes: 1 addition & 7 deletions contracts/script/L2Genesis.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import {Predeploys} from "../src/libraries/Predeploys.sol";
import {Constants} from "../src/libraries/Constants.sol";
import {Ethscriptions} from "../src/Ethscriptions.sol";
import {MetaStoreLib} from "../src/libraries/MetaStoreLib.sol";
import {NameRegistry} from "../src/NameRegistry.sol";
import "forge-std/console.sol";

/// @title GenesisEthscriptions
Expand Down Expand Up @@ -212,8 +211,7 @@ contract L2Genesis is Script {
bool isProxiedContract = addr == Predeploys.ETHSCRIPTIONS ||
addr == Predeploys.ERC20_FIXED_DENOMINATION_MANAGER ||
addr == Predeploys.ETHSCRIPTIONS_PROVER ||
addr == Predeploys.ERC721_ETHSCRIPTIONS_COLLECTION_MANAGER ||
addr == Predeploys.NAME_REGISTRY;
addr == Predeploys.ERC721_ETHSCRIPTIONS_COLLECTION_MANAGER;
if (isProxiedContract) {
address impl = Predeploys.predeployToCodeNamespace(addr);
setImplementation(addr, impl);
Expand All @@ -224,7 +222,6 @@ contract L2Genesis is Script {
_setImplementationCodeNamed(Predeploys.ERC20_FIXED_DENOMINATION_MANAGER, "ERC20FixedDenominationManager");
_setImplementationCodeNamed(Predeploys.ERC721_ETHSCRIPTIONS_COLLECTION_MANAGER, "ERC721EthscriptionsCollectionManager");
_setImplementationCodeNamed(Predeploys.ETHSCRIPTIONS_PROVER, "EthscriptionsProver");
_setImplementationCodeNamed(Predeploys.NAME_REGISTRY, "NameRegistry");
// Templates live directly at their addresses (no proxy wrapping)
_setCodeAt(Predeploys.ERC20_FIXED_DENOMINATION_IMPLEMENTATION, "ERC20FixedDenomination");
_setCodeAt(Predeploys.ERC721_ETHSCRIPTIONS_COLLECTION_IMPLEMENTATION, "ERC721EthscriptionsCollection");
Expand All @@ -245,9 +242,6 @@ contract L2Genesis is Script {

ethscriptions.registerProtocol("erc-721-ethscriptions-collection", Predeploys.ERC721_ETHSCRIPTIONS_COLLECTION_MANAGER);
console.log("Registered erc-721-ethscriptions-collection protocol handler:", Predeploys.ERC721_ETHSCRIPTIONS_COLLECTION_MANAGER);

ethscriptions.registerProtocol("word-domains", Predeploys.NAME_REGISTRY);
console.log("Registered word-domains protocol handler:", Predeploys.NAME_REGISTRY);
}

/// @notice Deploy L1Block contract (stores L1 block attributes)
Expand Down
Loading
Loading