Skip to content

Instantly share code, notes, and snippets.

@chuasonglin1995
chuasonglin1995 / .deps...npm...hardhat...console.sol
Created November 5, 2023 15:10
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.22+commit.4fc1097e.js&optimize=false&runs=200&gist=
// SPDX-License-Identifier: MIT
pragma solidity >=0.4.22 <0.9.0;
library console {
address constant CONSOLE_ADDRESS =
0x000000000000000000636F6e736F6c652e6c6f67;
function _sendLogPayloadImplementation(bytes memory payload) internal view {
address consoleAddress = CONSOLE_ADDRESS;
/// @solidity memory-safe-assembly
import { DomainEvent } from 'path-to-DomainEvent';
interface DomainEventPublisher {
publish(aggregateType: string, aggregateId: any, domainEvents: DomainEvent[]): void;
}
abstract class AbstractAggregateDomainEventPublisher<A, E extends DomainEvent> {
private idSupplier: (aggregate: A) => any;
private eventPublisher: DomainEventPublisher;
private aggregateType: new () => A;