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
36 changes: 18 additions & 18 deletions metabased-contracts/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,25 +41,25 @@ $ make deploy-based-sequencerchain-frame
| AlwaysAllowedModule | 0x33aB24E0a47A7aAe869755420950A6326e3CB9F3 |
| MetafillerStorage | 0x745bdeFA5C879ADCf739075bB03FD4ecCd03cE22 |

#### Metabased Testnet
#### Metabased Testnet (Private Devnet)

| Contract Name | Address |
| ---------------- | ------------------------------------------ |
| MetabasedFactory | 0xfE0a902d5E3bEe35B7E0D0c10214D0b04947F974 |

Contracts for Testing with Dummy L3 Chain ID `42424242424242424242`
| Contract Name | Address |
| ----------------------- | ------------------------------------------ |
| MetabasedSequencerChain | 0x5b6bB750222ADeE5B6031702a08D239f97F3b063 |
| AlwaysAllowedModule | 0x471584f0B8e35faEB2a618BD58A62316D8882d63 |
| MetafillerStorage | 0xC329B96c47271426B237bA85dF5504375C5cCB28 |
| Contract Name | Address |
| ----------------------------------------- | ------------------------------------------ |
| MetabasedFactory | 0x9a0Ef1333681b357047282144dc06D7DAA1f76Ba |
| MetabasedSequencerChain (With dummy data) | 0x5b6bB750222ADeE5B6031702a08D239f97F3b063 |
| AlwaysAllowedModule | 0x471584f0B8e35faEB2a618BD58A62316D8882d63 |
| MetafillerStorage | 0xC329B96c47271426B237bA85dF5504375C5cCB28 |

### Metabased Stratos
| Contract Name | Address |
| --------------------------------- | ------------------------------------------ |
| MetabasedFactory | 0xc75954B9B4Bb4B80883Cf645744612138b7e4870 |
| MetabasedSequencerChain (Frame) | 0x2d45AA77567618C031b8C8AFD3296ED724793B01 |
| MetabsedSequencerChain (Ham) | 0x869eE769d6ab3221894Cc555792e8c6467953bE1 |
| MetafillerStorage (Frame) | 0xFEA8A2BA8B760348ea95492516620ad45a299d53 |
| MetafillerStorage (Ham) | 0x9cecA064CaB740E5F511b426c7dBD7820795fe13 |

| Contract Name | Address |
| ------------------------------- | ------------------------------------------ |
| MetabasedFactory | 0xc75954B9B4Bb4B80883Cf645744612138b7e4870 |
| AlwaysAllowedModule | 0x471584f0B8e35faEB2a618BD58A62316D8882d63 |
| MetabasedSequencerChain (Frame) | 0x2d45AA77567618C031b8C8AFD3296ED724793B01 |
| MetabsedSequencerChain (Ham) | 0x869eE769d6ab3221894Cc555792e8c6467953bE1 |
| MetafillerStorage (Frame) | 0xFEA8A2BA8B760348ea95492516620ad45a299d53 |
| MetafillerStorage (Ham) | 0x9cecA064CaB740E5F511b426c7dBD7820795fe13 |

| MetafillerStorage (Frame) | 0xFEA8A2BA8B760348ea95492516620ad45a299d53 |
| MetafillerStorage (Ham) | 0x9cecA064CaB740E5F511b426c7dBD7820795fe13 |
2 changes: 1 addition & 1 deletion metabased-contracts/lib/openzeppelin-contracts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ contract AddBatchTransactionsToMetabasedSequencerChainContract is Script {
// MetabasedSequencerChain address on Base Sepolia
metabasedSequencerChainContract = MetabasedSequencerChain(0x73Ba7D784d13Ec0070a4Ea6F49Ff57dc007Bb48d);

// Example of adding multiple encoded transactions in bulk.
// Example of adding multiple transactions in bulk.

// create transaction list
bytes[] memory transactionList = new bytes[](2);
Expand Down
71 changes: 39 additions & 32 deletions metabased-contracts/src/MetabasedSequencerChain.sol
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ contract MetabasedSequencerChain is RequireListManager {
uint256 public immutable l3ChainId;

/// @notice Emitted when a new transaction is processed.
event TransactionProcessed(address indexed sender, bytes encodedTxn);
event TransactionProcessed(address indexed sender, bytes tx);

/// @notice Emitted when a chunk of transactions is processed.
event ChunkProcessed(uint256 indexed chunkId, uint256 transactionsProcessed);
event TransactionChunkProcessed(bytes txChunk, uint256 index, uint256 totalChunks, bytes32 txHashForParent);

/// @dev Thrown when the transaction form is invalid.
error InvalidTransactionForm();
Expand All @@ -31,54 +31,61 @@ contract MetabasedSequencerChain is RequireListManager {
l3ChainId = _l3ChainId;
}

/// @notice Emits a TransactionProcessed event without additional processing
/// @dev it assumes that the validation is done outise the contract, i.e. op-translator
/// @param encodedTxn The encoded transaction data
function emitTransactionProcessed(bytes calldata encodedTxn) public {
emit TransactionProcessed(msg.sender, encodedTxn);
}

/// @notice Processes a single encoded transaction.
/// @param encodedTxn The encoded transaction data.
function processTransaction(bytes calldata encodedTxn) public {
modifier onlyWhenAllowed(address sender) {
// Check if msg.sender is allowed
requireAllAllowed(msg.sender);
requireAnyAllowed(msg.sender);
_;
}

// Emit event with transaction details
emit TransactionProcessed(msg.sender, encodedTxn);
/// @notice Processes a single compressed transaction.
/// @param txn The compressed transaction data.
function processTransactionRaw(bytes calldata txn) external onlyWhenAllowed(msg.sender) {
emit TransactionProcessed(msg.sender, txn);
}

/// @notice Processes multiple encoded transactions in bulk.
/// @param encodedTxns An array of encoded transaction data.
function processBulkTransactions(bytes[] calldata encodedTxns) public {
uint256 txnCount = encodedTxns.length;
/// @notice process transactions
/// @dev It prepends a zero byte to the transaction data to signal uncompressed data
/// @param txn The transaction data
function processTransaction(bytes calldata txn) external onlyWhenAllowed(msg.sender) {
emit TransactionProcessed(msg.sender, prependZeroByte(txn));
}

/// @notice Processes multiple transactions in bulk.
/// @dev It prepends a zero byte to the transaction data to signal uncompressed data
/// @param txns An array of transaction data.
function processBulkTransactions(bytes[] calldata txns) external onlyWhenAllowed(msg.sender) {
uint256 txnCount = txns.length;

// Process all transactions
for (uint256 i = 0; i < txnCount; i++) {
processTransaction(encodedTxns[i]);
emit TransactionProcessed(msg.sender, prependZeroByte(txns[i]));
}
}

/// @notice Processes a chunk of transactions from a larger batch.
/// @param encodedTxns An array of encoded transaction data.
/// @param startIndex The starting index for this chunk in the overall batch.
/// @param chunkSize The number of transactions to process in this chunk.
/// @param chunkId A unique identifier for this chunk.
function processChunk(bytes[] calldata encodedTxns, uint256 startIndex, uint256 chunkSize, uint256 chunkId)
public
/// @param txChunk the compressed chunked transaction data.
/// @param index The starting index for this chunk in the overall batch.
/// @param totalChunks The number of transactions to process in this chunk.
/// @param txHashForParent The hash of the parent transaction.
function processChunk(bytes calldata txChunk, uint256 index, uint256 totalChunks, bytes32 txHashForParent)
external
onlyWhenAllowed(msg.sender)
{
if (chunkSize == 0) {
if (totalChunks == 0) {
revert InvalidChunkSize();
}

uint256 endIndex = startIndex + chunkSize;
require(endIndex <= encodedTxns.length, "Chunk exceeds batch size");
emit TransactionProcessed(msg.sender, txChunk);

for (uint256 i = startIndex; i < endIndex; i++) {
processTransaction(encodedTxns[i]);
}
emit TransactionChunkProcessed(txChunk, index, totalChunks, txHashForParent);
}

emit ChunkProcessed(chunkId, chunkSize);
/// @notice Prepends a zero byte to the transaction data
/// @dev This helps op-translator identify uncompressed data
/// @param _tx The original transaction data
/// @return bytes The transaction data
function prependZeroByte(bytes calldata _tx) private pure returns (bytes memory) {
return abi.encodePacked(bytes1(0x00), _tx);
}
}
33 changes: 0 additions & 33 deletions metabased-contracts/src/experiment/CounterWithAuction.sol

This file was deleted.

64 changes: 0 additions & 64 deletions metabased-contracts/src/experiment/IAuction.sol

This file was deleted.

95 changes: 0 additions & 95 deletions metabased-contracts/src/experiment/auctions/EnglishAuction.sol

This file was deleted.

Loading